verben-ticketing-ui 0.6.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.
- package/README.md +25 -0
- package/esm2022/public-api.mjs +9 -0
- package/esm2022/src/lib/components/add-ticket/add-ticket.component.mjs +306 -0
- package/esm2022/src/lib/components/add-ticket/add-ticket.module.mjs +98 -0
- package/esm2022/src/lib/components/add-ticket/index.mjs +2 -0
- package/esm2022/src/lib/components/add-ticket/public-api.mjs +3 -0
- package/esm2022/src/lib/components/add-ticket/verben-ticketing-ui-src-lib-components-add-ticket.mjs +5 -0
- package/esm2022/src/lib/components/file-render/file-render.component.mjs +34 -0
- package/esm2022/src/lib/components/file-render/file-render.module.mjs +94 -0
- package/esm2022/src/lib/components/file-render/index.mjs +2 -0
- package/esm2022/src/lib/components/file-render/public-api.mjs +3 -0
- package/esm2022/src/lib/components/file-render/verben-ticketing-ui-src-lib-components-file-render.mjs +5 -0
- package/esm2022/src/lib/components/ticketing/base-table-style.mjs +56 -0
- package/esm2022/src/lib/components/ticketing/index.mjs +2 -0
- package/esm2022/src/lib/components/ticketing/public-api.mjs +4 -0
- package/esm2022/src/lib/components/ticketing/ticketing.component.mjs +813 -0
- package/esm2022/src/lib/components/ticketing/ticketing.module.mjs +96 -0
- package/esm2022/src/lib/components/ticketing/ticketing.service.mjs +220 -0
- package/esm2022/src/lib/components/ticketing/verben-ticketing-ui-src-lib-components-ticketing.mjs +5 -0
- package/esm2022/src/lib/components/ticketing-detail/chat-control/chat-control.component.mjs +240 -0
- package/esm2022/src/lib/components/ticketing-detail/chat-control/chat-control.module.mjs +98 -0
- package/esm2022/src/lib/components/ticketing-detail/index.mjs +2 -0
- package/esm2022/src/lib/components/ticketing-detail/public-api.mjs +3 -0
- package/esm2022/src/lib/components/ticketing-detail/ticketing-detail.component.mjs +592 -0
- package/esm2022/src/lib/components/ticketing-detail/ticketing-detail.module.mjs +109 -0
- package/esm2022/src/lib/components/ticketing-detail/verben-ticketing-ui-src-lib-components-ticketing-detail.mjs +5 -0
- package/esm2022/src/lib/constants/index.mjs +2 -0
- package/esm2022/src/lib/constants/keynames.mjs +2 -0
- package/esm2022/src/lib/constants/pagesize.mjs +3 -0
- package/esm2022/src/lib/constants/public-api.mjs +3 -0
- package/esm2022/src/lib/constants/verben-ticketing-ui-src-lib-constants.mjs +5 -0
- package/esm2022/src/lib/models/Application.mjs +2 -0
- package/esm2022/src/lib/models/ApplicationRoleAction.mjs +2 -0
- package/esm2022/src/lib/models/ApplicationRoleContext.mjs +2 -0
- package/esm2022/src/lib/models/BaseModel.mjs +2 -0
- package/esm2022/src/lib/models/CacheDataRequest.mjs +2 -0
- package/esm2022/src/lib/models/Company.mjs +2 -0
- package/esm2022/src/lib/models/ErrorResponse.mjs +11 -0
- package/esm2022/src/lib/models/File.mjs +2 -0
- package/esm2022/src/lib/models/FilterTypes.mjs +9 -0
- package/esm2022/src/lib/models/HttpRequestType.mjs +8 -0
- package/esm2022/src/lib/models/KeyValueParam.mjs +2 -0
- package/esm2022/src/lib/models/ModelRelationship.mjs +2 -0
- package/esm2022/src/lib/models/OAuthParam.mjs +2 -0
- package/esm2022/src/lib/models/OAuthType.mjs +9 -0
- package/esm2022/src/lib/models/PagedResult.mjs +2 -0
- package/esm2022/src/lib/models/PasswordRequestParam.mjs +2 -0
- package/esm2022/src/lib/models/PermissionConfig.mjs +2 -0
- package/esm2022/src/lib/models/ResponseKeyValue.mjs +2 -0
- package/esm2022/src/lib/models/Role.mjs +2 -0
- package/esm2022/src/lib/models/RoleAction.mjs +2 -0
- package/esm2022/src/lib/models/RoleContext.mjs +2 -0
- package/esm2022/src/lib/models/Schedule.mjs +2 -0
- package/esm2022/src/lib/models/ScheduleType.mjs +6 -0
- package/esm2022/src/lib/models/SearchDynamicWrapper.mjs +2 -0
- package/esm2022/src/lib/models/SearchOperator.mjs +6 -0
- package/esm2022/src/lib/models/SearchPropertySign.mjs +11 -0
- package/esm2022/src/lib/models/SearchPropertyValue.mjs +2 -0
- package/esm2022/src/lib/models/SearchPropertyValueType.mjs +11 -0
- package/esm2022/src/lib/models/SortDirection.mjs +7 -0
- package/esm2022/src/lib/models/TaskUser.mjs +2 -0
- package/esm2022/src/lib/models/Tenant.mjs +2 -0
- package/esm2022/src/lib/models/TenantConfig.mjs +2 -0
- package/esm2022/src/lib/models/TenantPriority.mjs +2 -0
- package/esm2022/src/lib/models/Ticket.mjs +2 -0
- package/esm2022/src/lib/models/TicketMessage.mjs +2 -0
- package/esm2022/src/lib/models/TicketStatus.mjs +8 -0
- package/esm2022/src/lib/models/UserRequest.mjs +2 -0
- package/esm2022/src/lib/models/auth-mechanism.mjs +8 -0
- package/esm2022/src/lib/models/base.mjs +2 -0
- package/esm2022/src/lib/models/conditions.mjs +13 -0
- package/esm2022/src/lib/models/index.mjs +2 -0
- package/esm2022/src/lib/models/log-in.mjs +2 -0
- package/esm2022/src/lib/models/mainUser.mjs +2 -0
- package/esm2022/src/lib/models/oauth-resp.mjs +2 -0
- package/esm2022/src/lib/models/oauth-response.mjs +2 -0
- package/esm2022/src/lib/models/object-state.mjs +8 -0
- package/esm2022/src/lib/models/otpValue.mjs +2 -0
- package/esm2022/src/lib/models/paged.mjs +2 -0
- package/esm2022/src/lib/models/public-api.mjs +57 -0
- package/esm2022/src/lib/models/query-params.mjs +2 -0
- package/esm2022/src/lib/models/request-status.mjs +5 -0
- package/esm2022/src/lib/models/resend-otp-data.mjs +2 -0
- package/esm2022/src/lib/models/sign-up.mjs +2 -0
- package/esm2022/src/lib/models/single-sign-on.mjs +2 -0
- package/esm2022/src/lib/models/status.mjs +6 -0
- package/esm2022/src/lib/models/user-access-request-status.mjs +7 -0
- package/esm2022/src/lib/models/user-access-request.mjs +2 -0
- package/esm2022/src/lib/models/user-management.mjs +2 -0
- package/esm2022/src/lib/models/user.mjs +2 -0
- package/esm2022/src/lib/models/verben-ticketing-ui-src-lib-models.mjs +5 -0
- package/esm2022/src/lib/pipes/async-label.pipe.mjs +26 -0
- package/esm2022/src/lib/pipes/company-date.pipe.mjs +30 -0
- package/esm2022/src/lib/pipes/ellipse-word.pipe.mjs +23 -0
- package/esm2022/src/lib/pipes/index.mjs +2 -0
- package/esm2022/src/lib/pipes/public-api.mjs +4 -0
- package/esm2022/src/lib/pipes/verben-ticketing-ui-src-lib-pipes.mjs +5 -0
- package/esm2022/src/lib/services/company-settings.service.mjs +23 -0
- package/esm2022/src/lib/services/environment.service.mjs +26 -0
- package/esm2022/src/lib/services/http-web-request.service.mjs +100 -0
- package/esm2022/src/lib/services/import.service.mjs +247 -0
- package/esm2022/src/lib/services/index.mjs +2 -0
- package/esm2022/src/lib/services/label.service.mjs +261 -0
- package/esm2022/src/lib/services/public-api.mjs +8 -0
- package/esm2022/src/lib/services/shared.service.mjs +58 -0
- package/esm2022/src/lib/services/util.service.mjs +72 -0
- package/esm2022/src/lib/services/verben-ticketing-ui-src-lib-services.mjs +5 -0
- package/esm2022/src/utils/components/base-data-view.component.mjs +111 -0
- package/esm2022/src/utils/index.mjs +2 -0
- package/esm2022/src/utils/models/DataViewConfig.mjs +2 -0
- package/esm2022/src/utils/public-api.mjs +3 -0
- package/esm2022/src/utils/verben-ticketing-ui-src-utils.mjs +5 -0
- package/esm2022/verben-ticketing-ui.mjs +5 -0
- package/fesm2022/verben-ticketing-ui-src-lib-components-add-ticket.mjs +403 -0
- package/fesm2022/verben-ticketing-ui-src-lib-components-add-ticket.mjs.map +1 -0
- package/fesm2022/verben-ticketing-ui-src-lib-components-file-render.mjs +130 -0
- package/fesm2022/verben-ticketing-ui-src-lib-components-file-render.mjs.map +1 -0
- package/fesm2022/verben-ticketing-ui-src-lib-components-ticketing-detail.mjs +1018 -0
- package/fesm2022/verben-ticketing-ui-src-lib-components-ticketing-detail.mjs.map +1 -0
- package/fesm2022/verben-ticketing-ui-src-lib-components-ticketing.mjs +1166 -0
- package/fesm2022/verben-ticketing-ui-src-lib-components-ticketing.mjs.map +1 -0
- package/fesm2022/verben-ticketing-ui-src-lib-constants.mjs +11 -0
- package/fesm2022/verben-ticketing-ui-src-lib-constants.mjs.map +1 -0
- package/fesm2022/verben-ticketing-ui-src-lib-models.mjs +138 -0
- package/fesm2022/verben-ticketing-ui-src-lib-models.mjs.map +1 -0
- package/fesm2022/verben-ticketing-ui-src-lib-pipes.mjs +81 -0
- package/fesm2022/verben-ticketing-ui-src-lib-pipes.mjs.map +1 -0
- package/fesm2022/verben-ticketing-ui-src-lib-services.mjs +770 -0
- package/fesm2022/verben-ticketing-ui-src-lib-services.mjs.map +1 -0
- package/fesm2022/verben-ticketing-ui-src-utils.mjs +118 -0
- package/fesm2022/verben-ticketing-ui-src-utils.mjs.map +1 -0
- package/fesm2022/verben-ticketing-ui.mjs +14 -0
- package/fesm2022/verben-ticketing-ui.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/package.json +82 -0
- package/public-api.d.ts +4 -0
- package/src/lib/components/add-ticket/add-ticket.component.d.ts +44 -0
- package/src/lib/components/add-ticket/add-ticket.module.d.ts +15 -0
- package/src/lib/components/add-ticket/index.d.ts +1 -0
- package/src/lib/components/add-ticket/public-api.d.ts +2 -0
- package/src/lib/components/file-render/file-render.component.d.ts +14 -0
- package/src/lib/components/file-render/file-render.module.d.ts +14 -0
- package/src/lib/components/file-render/index.d.ts +1 -0
- package/src/lib/components/file-render/public-api.d.ts +2 -0
- package/src/lib/components/ticketing/base-table-style.d.ts +1 -0
- package/src/lib/components/ticketing/index.d.ts +1 -0
- package/src/lib/components/ticketing/public-api.d.ts +3 -0
- package/src/lib/components/ticketing/ticketing.component.d.ts +100 -0
- package/src/lib/components/ticketing/ticketing.module.d.ts +12 -0
- package/src/lib/components/ticketing/ticketing.service.d.ts +27 -0
- package/src/lib/components/ticketing-detail/chat-control/chat-control.component.d.ts +47 -0
- package/src/lib/components/ticketing-detail/chat-control/chat-control.module.d.ts +15 -0
- package/src/lib/components/ticketing-detail/index.d.ts +1 -0
- package/src/lib/components/ticketing-detail/public-api.d.ts +2 -0
- package/src/lib/components/ticketing-detail/ticketing-detail.component.d.ts +77 -0
- package/src/lib/components/ticketing-detail/ticketing-detail.module.d.ts +17 -0
- package/src/lib/constants/index.d.ts +1 -0
- package/src/lib/constants/keynames.d.ts +1 -0
- package/src/lib/constants/pagesize.d.ts +2 -0
- package/src/lib/constants/public-api.d.ts +2 -0
- package/src/lib/models/Application.d.ts +5 -0
- package/src/lib/models/ApplicationRoleAction.d.ts +9 -0
- package/src/lib/models/ApplicationRoleContext.d.ts +9 -0
- package/src/lib/models/BaseModel.d.ts +14 -0
- package/src/lib/models/CacheDataRequest.d.ts +7 -0
- package/src/lib/models/Company.d.ts +22 -0
- package/src/lib/models/ErrorResponse.d.ts +6 -0
- package/src/lib/models/File.d.ts +7 -0
- package/src/lib/models/FilterTypes.d.ts +6 -0
- package/src/lib/models/HttpRequestType.d.ts +6 -0
- package/src/lib/models/KeyValueParam.d.ts +5 -0
- package/src/lib/models/ModelRelationship.d.ts +7 -0
- package/src/lib/models/OAuthParam.d.ts +9 -0
- package/src/lib/models/OAuthType.d.ts +7 -0
- package/src/lib/models/PagedResult.d.ts +9 -0
- package/src/lib/models/PasswordRequestParam.d.ts +5 -0
- package/src/lib/models/PermissionConfig.d.ts +7 -0
- package/src/lib/models/ResponseKeyValue.d.ts +5 -0
- package/src/lib/models/Role.d.ts +9 -0
- package/src/lib/models/RoleAction.d.ts +10 -0
- package/src/lib/models/RoleContext.d.ts +10 -0
- package/src/lib/models/Schedule.d.ts +22 -0
- package/src/lib/models/ScheduleType.d.ts +4 -0
- package/src/lib/models/SearchDynamicWrapper.d.ts +7 -0
- package/src/lib/models/SearchOperator.d.ts +4 -0
- package/src/lib/models/SearchPropertySign.d.ts +9 -0
- package/src/lib/models/SearchPropertyValue.d.ts +14 -0
- package/src/lib/models/SearchPropertyValueType.d.ts +9 -0
- package/src/lib/models/SortDirection.d.ts +5 -0
- package/src/lib/models/TaskUser.d.ts +10 -0
- package/src/lib/models/Tenant.d.ts +22 -0
- package/src/lib/models/TenantConfig.d.ts +20 -0
- package/src/lib/models/TenantPriority.d.ts +10 -0
- package/src/lib/models/Ticket.d.ts +21 -0
- package/src/lib/models/TicketMessage.d.ts +11 -0
- package/src/lib/models/TicketStatus.d.ts +6 -0
- package/src/lib/models/UserRequest.d.ts +32 -0
- package/src/lib/models/auth-mechanism.d.ts +14 -0
- package/src/lib/models/base.d.ts +12 -0
- package/src/lib/models/conditions.d.ts +11 -0
- package/src/lib/models/index.d.ts +1 -0
- package/src/lib/models/log-in.d.ts +8 -0
- package/src/lib/models/mainUser.d.ts +19 -0
- package/src/lib/models/oauth-resp.d.ts +6 -0
- package/src/lib/models/oauth-response.d.ts +6 -0
- package/src/lib/models/object-state.d.ts +6 -0
- package/src/lib/models/otpValue.d.ts +9 -0
- package/src/lib/models/paged.d.ts +9 -0
- package/src/lib/models/public-api.d.ts +56 -0
- package/src/lib/models/query-params.d.ts +7 -0
- package/src/lib/models/request-status.d.ts +3 -0
- package/src/lib/models/resend-otp-data.d.ts +8 -0
- package/src/lib/models/sign-up.d.ts +9 -0
- package/src/lib/models/single-sign-on.d.ts +7 -0
- package/src/lib/models/status.d.ts +4 -0
- package/src/lib/models/user-access-request-status.d.ts +5 -0
- package/src/lib/models/user-access-request.d.ts +9 -0
- package/src/lib/models/user-management.d.ts +8 -0
- package/src/lib/models/user.d.ts +24 -0
- package/src/lib/pipes/async-label.pipe.d.ts +11 -0
- package/src/lib/pipes/company-date.pipe.d.ts +10 -0
- package/src/lib/pipes/ellipse-word.pipe.d.ts +8 -0
- package/src/lib/pipes/index.d.ts +1 -0
- package/src/lib/pipes/public-api.d.ts +3 -0
- package/src/lib/services/company-settings.service.d.ts +11 -0
- package/src/lib/services/environment.service.d.ts +22 -0
- package/src/lib/services/http-web-request.service.d.ts +24 -0
- package/src/lib/services/import.service.d.ts +14 -0
- package/src/lib/services/index.d.ts +1 -0
- package/src/lib/services/label.service.d.ts +24 -0
- package/src/lib/services/public-api.d.ts +7 -0
- package/src/lib/services/shared.service.d.ts +16 -0
- package/src/lib/services/util.service.d.ts +15 -0
- package/src/utils/components/base-data-view.component.d.ts +34 -0
- package/src/utils/index.d.ts +1 -0
- package/src/utils/models/DataViewConfig.d.ts +11 -0
- package/src/utils/public-api.d.ts +2 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verben-ticketing-ui-src-lib-components-ticketing-detail.mjs","sources":["../../../projects/verben-ticketing-ui/src/lib/components/ticketing-detail/chat-control/chat-control.component.ts","../../../projects/verben-ticketing-ui/src/lib/components/ticketing-detail/chat-control/chat-control.component.html","../../../projects/verben-ticketing-ui/src/lib/components/ticketing-detail/ticketing-detail.component.ts","../../../projects/verben-ticketing-ui/src/lib/components/ticketing-detail/ticketing-detail.component.html","../../../projects/verben-ticketing-ui/src/lib/components/ticketing-detail/chat-control/chat-control.module.ts","../../../projects/verben-ticketing-ui/src/lib/components/ticketing-detail/ticketing-detail.module.ts","../../../projects/verben-ticketing-ui/src/lib/components/ticketing-detail/verben-ticketing-ui-src-lib-components-ticketing-detail.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n\n@Component({\n selector: 'lib-chat-control',\n templateUrl: './chat-control.component.html',\n styleUrls: ['./chat-control.component.css'],\n})\nexport class ChatControlComponent {\n @Input() message: string = '';\n files: File[] = [];\n @Input() color='#ffe681'\n @Input() textColor='#000'\n @Input() disabled: boolean = false;\n @Input() placeholder: string = '';\n @Input() hideBtn:boolean=false\n @Output() messageChange = new EventEmitter<string>();\n @Output() formSubmit = new EventEmitter();\n @Output() sendMessageResult = new EventEmitter();\n@Output() filesChange = new EventEmitter<File[]>();\n\n isOpen: boolean = false;\n isRecording: boolean = false;\n audioBlobUrl: string | null = null;\n audioDuration: number |string= 0;\n isPlaying: boolean = false;\n private mediaRecorder: MediaRecorder | null = null;\n private audioChunks: BlobPart[] = [];\n private audio: HTMLAudioElement | null = null;\n currentTime: string|number = \"0:00\"\n showDefault:boolean=false\n addEmoji(event: any) {\n if (event.emoji?.native) {\n this.message += event.emoji.native;\n this.messageChange.emit(this.message);\n }\n }\n\n onFileSelected(event: any) {\n const selectedFiles = event.target.files;\n if (selectedFiles) {\n for (let i = 0; i < selectedFiles.length; i++) {\n this.files.push(selectedFiles[i]);\n }\n this.filesChange.emit(this.files);\n }\n}\n\n\n toggleEmojiPicker() {\n this.isOpen = !this.isOpen;\n }\n\n onClose(value: boolean) {\n this.isOpen = value;\n }\n\n getFileIcon(file: File): string {\n const fileType = file.type.split('/')[0];\n switch (fileType) {\n case 'image': return '🖼️';\n case 'video': return '🎥';\n case 'audio': return '🎵';\n case 'application': return '📄';\n default: return '📁';\n }\n }\n\n sendMessage() {\n const payload = {\n message: this.message,\n };\n\n console.log('Sending:', payload);\n\n this.message = '';\n this.audioBlobUrl = null;\n this.audioDuration = 0;\n this.sendMessageResult.emit();\n this.messageChange.emit(this.message);\n }\n\n onMessageInput(event: Event) {\n const inputElement = event.target as HTMLTextAreaElement;\n this.message = inputElement.value;\n this.messageChange.emit(this.message);\n }\n\n onKeyDown(event: KeyboardEvent) {\n if (event.key === 'Enter' && !event.shiftKey && this.message.trim() !== '' &&!this.hideBtn) {\n event.preventDefault();\n this.sendMessage();\n }\n }\n\n\n\ntoggleRecording() {\n this.isRecording = !this.isRecording;\n\n if (this.isRecording) {\n this.startWaveAnimation();\n this.startRecording()\n } else {\n this.stopWaveAnimation();\n this.stopRecording()\n }\n}\n\n\nasync startRecording() {\n this.deleteRecording()\n try {\n const stream = await navigator.mediaDevices.getUserMedia({ audio: true });\n this.mediaRecorder = new MediaRecorder(stream);\n this.audioChunks = [];\n\n this.mediaRecorder.ondataavailable = (event) => {\n this.audioChunks.push(event.data);\n };\n\n this.mediaRecorder.onstop = async () => {\n const audioBlob = new Blob(this.audioChunks, { type: \"audio/wav\" });\n this.audioBlobUrl = URL.createObjectURL(audioBlob);\n this.audio = new Audio(this.audioBlobUrl);\n \n this.generateWaveform(); \n this.audio.onloadedmetadata = () => {\n if (!isNaN(this.audio!.duration) && this.audio!.duration !== Infinity) {\n this.audioDuration = this.formatTime(this.audio!.duration); \n \n this.currentTime = this.audioDuration; \n \n \n } else {\n this.fixAudioDuration();\n }\n };\n\n this.audio.onended = () => {\n this.isPlaying = false;\n this.currentTime = this.audioDuration;\n };\n };\n\n this.mediaRecorder.start();\n this.isRecording = true;\n } catch (error) {\n console.error(\"Error accessing microphone:\", error);\n }\n}\n\n\ngetDuration = (event: Event) => {\n const target = event.target as HTMLAudioElement;\n target.currentTime = 0; // Reset time\n target.removeEventListener(\"timeupdate\", this.getDuration);\n this.audioDuration = Math.floor(target.duration) || 0;\n console.log(\"Fixed Duration:\", this.audioDuration);\n};\n\n\nstopRecording() {\n if (this.mediaRecorder) {\n this.mediaRecorder.stop();\n \n console.log(\"Stopping recording...\");\n this.isRecording = false;\n }\n}\n\ntoggleAudioPlayback() {\n if (!this.audio) return;\n this.showDefault=false\n if (this.audio.paused) {\n this.audio.play();\n if (!this.isPlaying) {\n this.startWaveAnimation();\n }\n this.isPlaying = true;\n\n this.audio.ontimeupdate = () => {\n if (this.isPlaying) {\n const remainingTime = this.audio!.duration - this.audio!.currentTime;\n this.currentTime = this.formatTime(remainingTime);\n }\n };\n\n this.audio.onended = () => {\n this.isPlaying = false;\n this.currentTime = this.audioDuration; \n this.stopWaveAnimation();\n };\n\n } else {\n this.audio.pause();\n this.stopWaveAnimation();\n this.isPlaying = false;\n }\n}\n\n\nformatTime(seconds: number): string {\n const minutes = Math.floor(seconds / 60);\n const secs = Math.floor(seconds % 60);\n return `${minutes}:${secs < 10 ? \"0\" : \"\"}${secs}`;\n}\n\n\n deleteRecording() {\n this.audioBlobUrl = null;\n this.audioDuration = 0;\n }\n \nbars = new Array(20).fill(0); // Creates 30 bars dynamically\n\ngenerateWaveform() {\n this.bars = Array.from({ length: 20 }, () => ({\n height: Math.random() * (20 - 5) + 5 // Generate random height between 5px and 20px\n }));\n \n}\nstartWaveAnimation() {\n setTimeout(() => {\n const bars = document.querySelectorAll(\".bar\");\n bars.forEach((bar) => {\n (bar as HTMLElement).style.animationDuration = `${Math.random() * (0.75 - 0.25) + 0.25}s`;\n });\n }, 100);\n}\nfixAudioDuration() {\n if (!this.audio) return;\n\n this.audio.currentTime = 1e101;\n this.audio.ontimeupdate = () => {\n this.audio!.ontimeupdate = null; \n this.audio!.currentTime = 0;\n this.audioDuration = this.formatTime(this.audio!.duration);\n this.currentTime=this.audioDuration\n };\n}\nstopWaveAnimation() {\n const bars = document.querySelectorAll(\".bar\");\n bars.forEach((bar) => {\n const el = bar as HTMLElement;\n el.style.animation = \"none\"; // Stop animation\n el.offsetHeight; // Force reflow to reset animation\n el.style.animation = \"\"; // Restart animation (CSS should handle it)\n });\n}\n\n\n}\n","<div class=\"chat-control\">\n <div class=\"chat-control-container\">\n <div class=\"file-previews\">\n <div *ngFor=\"let file of files\" class=\"file-preview\">\n <span class=\"file-icon\">{{ getFileIcon(file) }}</span>\n <span class=\"file-name\">{{ file.name }}</span>\n </div>\n </div>\n\n \n <div class=\"flex items-center gap-1\" *ngIf=\"audioBlobUrl\">\n <div class=\"voice-message bg-primary rounded-[40px] px-2 py-2 w-[300px] flex items-center gap-1\">\n <button (click)=\"toggleAudioPlayback()\" class=\"pr-2\">\n <verben-svg [width]=\"18\" [height]=\"18\" [stroke]=\"'#fff'\" *ngIf=\"!isPlaying\" [icon]=\"'play'\"></verben-svg>\n <verben-svg [width]=\"18\" [height]=\"18\" *ngIf=\"isPlaying\" [icon]=\"'pause'\"></verben-svg>\n </button>\n <div class=\"sound-wave-container\">\n <div class=\"sound-wave-bars\">\n <div *ngFor=\"let bar of bars\" class=\"bar bg-[white]\" [ngStyle]=\"{ height: bar.height + 'px' }\"></div>\n </div>\n </div> \n \n \n \n <span class=\"duration bg-[white] px-2 block rounded-2xl\">{{ currentTime }}</span>\n \n </div>\n <button (click)=\"deleteRecording()\" class=\"delete-button \">\n <verben-svg [width]=\"12\" [height]=\"12\" [stroke]=\"'#D4A007'\" [icon]=\"'close-no-circle'\"></verben-svg>\n </button>\n </div>\n\n <textarea\n *ngIf=\"!isRecording\"\n [placeholder]=\"placeholder\"\n (input)=\"onMessageInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n [(ngModel)]=\"message\"\n class=\"text-sm\"\n placeholder=\"Type a message...\"\n ></textarea>\n\n\n <div class=\"flex justify-between\">\n <div class=\"flex\">\n <div class=\"emoji-picker\" (click)=\"toggleEmojiPicker()\">\n <verben-pop-Up\n (dropdownOpenChange)=\"onClose($event)\"\n [customStyles]=\"{ 'z-index': '99' }\"\n [dropdownOpen]=\"isOpen\"\n [enableMouseLeave]=\"false\"\n (close)=\"isOpen = false\"\n >\n <verben-svg\n *ngIf=\"!isRecording\" \n class=\"cursor-pointer actions-icon\"\n (click)=\"isOpen = true\"\n dropdown-trigger\n [stroke]=\"'#d3d1d1'\"\n [icon]=\"'emoji'\"\n ></verben-svg>\n <div class=\"pop-up-content absolute top-[-490px] left-0\" dropdown-content>\n <emoji-mart [showPreview]=\"false\" (emojiSelect)=\"addEmoji($event)\" title=\"Pick an emoji\"></emoji-mart>\n </div>\n </verben-pop-Up>\n </div>\n\n <label *ngIf=\"!isRecording\" for=\"file-upload\" class=\"file-upload\">\n <verben-svg [icon]=\"'file'\"></verben-svg>\n <input id=\"file-upload\" type=\"file\" (change)=\"onFileSelected($event)\" multiple />\n </label>\n\n \n <div class=\"flex items-center gap-5\">\n <!-- Voice Recording Button -->\n <button (click)=\"toggleRecording()\" class=\"voice-button\"> \n <verben-svg class=\"opacity-[0.5]\" *ngIf=\"!isRecording\" [icon]=\"'mic'\"></verben-svg>\n <verben-svg *ngIf=\"isRecording\" [icon]=\"'stop'\"></verben-svg>\n </button>\n <div class=\"sound-wave-container\" *ngIf=\"isRecording\">\n <div class=\"sound-wave-bars\">\n <div *ngFor=\"let bar of bars\" class=\"bar bg-primary\"></div>\n </div>\n </div> \n </div>\n </div>\n\n <!-- Send Button -->\n <div>\n <button *ngIf=\"!hideBtn\" [disabled]=\"disabled\" (click)=\"sendMessage()\" [style.background-color]=\"color\" [style.color]=\"textColor\" class=\"disabled:opacity-60 disabled:cursor-not-allowed\">\n Send\n </button>\n </div>\n </div>\n </div>\n</div>\n","import {\n Component,\n Input,\n input,\n OnInit,\n QueryList,\n ViewChildren,\n} from '@angular/core';\nimport { ActivatedRoute, ParamMap } from '@angular/router';\nimport { ObjectState, SortDirection } from 'verben-ticketing-ui/src/lib/models';\nimport { Ticket } from 'verben-ticketing-ui/src/lib/models';\nimport { TicketStatus } from 'verben-ticketing-ui/src/lib/models';\nimport { HttpWebRequestService } from 'verben-ticketing-ui/src/lib/services';\nimport { SearchPropertyValue } from 'verben-ticketing-ui/src/lib/models';\nimport { SearchOperator } from 'verben-ticketing-ui/src/lib/models';\nimport { SearchPropertySign } from 'verben-ticketing-ui/src/lib/models';\nimport { UtilService as AppUtilService } from 'verben-ticketing-ui/src/lib/services';\nimport { EnvironmentService } from 'verben-ticketing-ui/src/lib/services';\nimport { ErrorResponse } from 'verben-ticketing-ui/src/lib/models';\nimport { PagedResult } from 'verben-ticketing-ui/src/lib/models';\nimport { TicketMessage } from 'verben-ticketing-ui/src/lib/models';\nimport { SharedService } from 'verben-ticketing-ui/src/lib/services';\nimport { DEFAULT_MESSAGE_FOR_INITIAL_UPLOAD } from 'verben-ticketing-ui/src/lib/constants';\nimport { User } from 'verben-ticketing-ui/src/lib/models';\n\nimport { TenantPriority } from 'verben-ticketing-ui/src/lib/models';\nimport { Location } from '@angular/common';\nimport { File } from 'verben-ticketing-ui/src/lib/models';\nimport { debounceTime, Subject } from 'rxjs';\nimport { VerbenPopUpComponent } from 'verben-ng-ui';\n\n@Component({\n selector: 'app-ticketing-detail',\n templateUrl: './ticketing-detail.component.html',\n styleUrl: './ticketing-detail.component.css',\n})\nexport class TicketingDetailComponent implements OnInit {\n @Input() user!: User;\n @Input() defaultCompany: string = '';\n constructor(\n private route: ActivatedRoute,\n private server: HttpWebRequestService,\n private utilService: AppUtilService,\n private sharedService: SharedService,\n private location: Location,\n private envSvc: EnvironmentService,\n ) {\n this.ticketingAPI = `${this.envSvc.environment.TicketingAPI}/Ticket`;\n\n this.glAPI = this.envSvc.environment.GLAPI;\n }\n showForm: boolean = false;\n data!: Ticket;\n typingQuery: string = '';\n isSearchingUsers = false;\n @ViewChildren('userPopup') userPopups!: QueryList<VerbenPopUpComponent>;\n ticketStatus = TicketStatus;\n ticketingAPI: string = '';\n tenantOptions: TenantPriority[] = [];\n glAPI: string = '';\n attachedMessage: TicketMessage | null = null;\n maxFileSize = 15 * 1024 * 1024;\n message: string = '';\n action: any;\n searchTrigger$ = new Subject<string>();\n fileData: File[] = [];\n code: string = '';\n @Input() color = '#ffe681';\n @Input() textColor = '#000';\n statusOptions: string[] = Object.keys(TicketStatus);\n ngOnInit(): void {\n this.route.paramMap.subscribe(async (params: ParamMap) => {\n const code = params.get('code');\n\n if (code) {\n this.code = code;\n this.getTicketDetail(code);\n this.getAllTask(code);\n this.getTenantPriority();\n }\n this.searchTrigger$.pipe(debounceTime(300)).subscribe((query) => {\n if (query) {\n this.searchUsers(query);\n }\n });\n });\n }\n onFormClose(isShow: boolean) {\n this.showForm = isShow;\n }\n onFormOpen(isShow: boolean) {\n this.showForm = true;\n }\n\n async onFilesUpdate(files: any) {\n if (!files || files.length === 0) return;\n\n // Helper function to convert a file to base64\n const toBase64 = (file: any): Promise<string> =>\n new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result as string);\n reader.onerror = (error) => reject(error);\n });\n\n try {\n const convertedFiles = await Promise.all(\n files.map(async (file: any) => {\n const base64Data = await toBase64(file);\n const name = file.name || 'file';\n const extension = name.split('.').pop() || '';\n return {\n Name: name,\n Extension: extension,\n Data: base64Data,\n DataState: ObjectState.New as any,\n };\n }),\n );\n\n this.fileData = convertedFiles;\n } catch (error) {\n console.error('Error converting files to base64:', error);\n }\n }\n\n async saveMessageChat(ticket: Ticket, newMessageContent: string) {\n if (!newMessageContent || newMessageContent.trim().length === 0) {\n this.utilService.showInfo('Message cannot be empty');\n return;\n }\n\n const newMessage = {\n Code: '',\n Name: this.user?.MailAddress || 'perfection.chizuruoke@verbenalogic.com',\n TicketCode: ticket.Code || '',\n Subject: '',\n Content: newMessageContent.trim(),\n Attachments: this.fileData.length ? this.fileData : [],\n AttachmentUrls: [],\n Company: ticket.Company,\n TenantId: '',\n Upsert: false,\n ServiceName: '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n UpdatedBy: '',\n CreatedBy: '',\n DataState: ObjectState.New,\n Id: '',\n };\n\n // if (!this.data.Messages) this.data.Messages = [];\n\n // this.data.Messages.push(newMessage);\n\n // this.data.DataState = ObjectState.Changed;\n\n try {\n this.utilService.sendBI(true);\n\n const res = await this.server.post(\n `Ticket/SendMailToTicketOwner`,\n newMessage,\n this.envSvc.environment.TicketingAPI,\n );\n\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) {\n this.utilService.showError('Failed to send message.');\n return;\n }\n\n const result = res as TicketMessage;\n if (result) {\n this.data.Messages = [...this.data.Messages, result];\n\n this.data = { ...this.data };\n\n this.utilService.showSuccess('Message sent successfully');\n }\n } catch (error) {\n console.error(error);\n this.utilService.sendBI(false);\n this.utilService.showError('Something went wrong while sending message');\n }\n }\n async save() {\n const item = this.data;\n\n ((item.DataState = this.data ? ObjectState.Changed : ObjectState.New),\n this.utilService.sendBI(true));\n const res = await this.server.post(\n `Ticket/SaveTicket`,\n [item],\n this.envSvc.environment.TicketingAPI,\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n } else {\n this.utilService.showSuccess('Ticket saved successfully');\n const result = res as Ticket;\n if (result !== null) {\n this.data = { ...this.data, ...result };\n }\n }\n }\n\n goBack() {\n this.location.back();\n }\n disableChatBoxButton() {\n return false;\n }\n onKeyDown(e: any) {}\n messageChange(e: any) {\n this.message = e;\n this.detectUserSearchTrigger(e);\n }\n\n selectUser(user: any) {\n const before = this.message.replace(/@([a-zA-Z0-9_]*)$/, '');\n this.message = before + '@' + user.MailAddress + ' ';\n\n this.messageChange(this.message);\n this.closeUserPopup();\n }\n\n openUserPopup() {\n this.userPopups.forEach((p) => {\n if (!p.dropdownOpen) p.toggleDropdown();\n });\n }\n\n closeUserPopup() {\n this.userPopups.forEach((p) => {\n if (p.dropdownOpen) p.toggleDropdown();\n });\n }\n\n detectUserSearchTrigger(text: string) {\n const regex = /@([a-zA-Z0-9_]*)$/;\n const match = text.match(regex);\n\n if (match) {\n this.typingQuery = match[1];\n this.isSearchingUsers = true;\n\n this.searchTrigger$.next(this.typingQuery);\n } else {\n this.typingQuery = '';\n this.isSearchingUsers = false;\n this.closeUserPopup();\n }\n }\n\n usersResult: any[] = [];\n\n async searchUsers(query: string) {\n if (!query) {\n this.usersResult = [];\n return;\n }\n\n const payload: SearchPropertyValue[] = [\n {\n PropertyName: 'MailAddress',\n EntityValue: query,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.LIKE,\n },\n ];\n\n const res = await this.server.post(\n `SearchUsers/0/20`,\n payload,\n this.envSvc.environment.AuthenticationAPI,\n );\n\n if (res instanceof ErrorResponse) return;\n\n this.usersResult = (res as PagedResult<any>).Result;\n this.openUserPopup();\n }\n\n triggerFileUpload(): void {\n const fileInput: HTMLInputElement = document.createElement('input');\n fileInput.type = 'file';\n fileInput.accept = '.png, .jpg, .jpeg, .pdf';\n fileInput.style.display = 'none'; // Hidden file input\n document.body.appendChild(fileInput); // Temporarily add to DOM\n\n fileInput.addEventListener('change', () => {\n const file = fileInput.files?.[0];\n if (file) {\n this.processFile(file);\n }\n document.body.removeChild(fileInput); // Clean up after use\n });\n\n fileInput.click(); // Programmatically trigger click\n }\n private async processFile(selectedFile: globalThis.File): Promise<void> {\n // Check file size\n if (selectedFile.size > this.maxFileSize) {\n const limitInMB = this.maxFileSize / 1024 / 1024;\n this.utilService.showInfo(`File size limit of ${limitInMB}mb exceeded`);\n return;\n }\n\n // let fileToProcess: globalThis.File | null = selectedFile;\n // const safeNumber: number = 1 * 1024 * 1024;\n // if (fileToProcess.size > safeNumber) {\n // fileToProcess = await this.utilService.compressImage(selectedFile);\n // if (!fileToProcess) {\n // this.utilService.showError('Error compressing image');\n // return;\n // }\n // }\n\n // Read file and convert to base64\n const reader = new FileReader();\n reader.readAsDataURL(selectedFile);\n reader.onload = () => {\n const base64data = reader.result as string;\n const file = this.sharedService.createCustomFile(\n base64data,\n 0,\n selectedFile,\n );\n if (file && this.attachedMessage) {\n this.attachedMessage.Attachments.push(file);\n this.attachedMessage.AttachmentUrls.push(`${file.Name}`);\n // this.profileImage = base64data;\n }\n };\n }\n async getTicketDetail(code: string): Promise<Ticket | undefined> {\n const payload: SearchPropertyValue[] = [\n {\n PropertyName: 'Code',\n EntityValue: code,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n },\n {\n PropertyName: 'TenantId',\n EntityValue: '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.NEQ,\n },\n ];\n\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `Ticket/SearchTicket/0/50`,\n payload,\n this.envSvc.environment.TicketingAPI,\n );\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) return undefined;\n\n const result = (res as PagedResult<Ticket>).Result;\n if (result?.length > 0) {\n this.data = result[0];\n this.getMessages(this.data.Code).then((data) => {\n if (data) {\n this.data.Messages = data;\n }\n });\n\n return result[0];\n }\n\n return undefined;\n }\n async getMessages(code: string): Promise<TicketMessage[] | undefined> {\n const payload: SearchPropertyValue[] = [\n {\n PropertyName: 'TicketCode',\n EntityValue: code,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n Sort: SortDirection.Desc,\n },\n {\n PropertyName: 'TenantId',\n EntityValue: '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.NEQ,\n Sort: SortDirection.Desc,\n },\n ];\n\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `Ticket/SearchTicketMessage/0/500`,\n payload,\n this.envSvc.environment.TicketingAPI,\n );\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) return undefined;\n\n const result = (res as PagedResult<TicketMessage>).Result;\n if (result?.length > 0) {\n return result;\n }\n\n return undefined;\n }\n async getTenantPriority(): Promise<TenantPriority | undefined> {\n const payload: SearchPropertyValue[] = [\n {\n PropertyName: 'TenantId',\n EntityValue: '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.NEQ,\n },\n ];\n\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `Ticket/SearchTenantPriority/0/50`,\n payload,\n this.envSvc.environment.TicketingAPI,\n );\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) return undefined;\n\n const result = (res as PagedResult<TenantPriority>).Result;\n if (result?.length > 0) {\n this.tenantOptions = result;\n }\n\n return undefined;\n }\n\n cssColorToHex(color: string): string | null {\n const ctx = document.createElement('canvas').getContext('2d');\n\n if (!ctx) return null;\n\n ctx.fillStyle = '#000'; // set a known color\n ctx.fillStyle = color; // assign any CSS-valid color\n\n const computed = ctx.fillStyle;\n // If the browser does NOT understand the value, it won’t change from '#000'\n if (\n computed.toLowerCase() === '#000000' &&\n color.toLowerCase() !== 'black'\n ) {\n return null; // invalid color name or unsupported value\n }\n\n return computed.toUpperCase(); // returns hex like #1E90FF\n }\n softenColor(hex: string, lightenPercent = 55, alphaPercent = 55): string {\n // Remove #\n if (!hex.startsWith('#')) {\n const converted = this.cssColorToHex(hex);\n if (converted) {\n hex = converted;\n }\n }\n\n hex = hex.replace(/^#/, '');\n if (hex.length === 3) {\n // Convert shorthand (#abc → #aabbcc)\n hex = hex\n .split('')\n .map((x) => x + x)\n .join('');\n }\n\n const num = parseInt(hex, 16);\n let r = (num >> 16) & 0xff;\n let g = (num >> 8) & 0xff;\n let b = num & 0xff;\n\n // Lighten toward white by the given percentage\n r = Math.min(255, Math.round(r + (255 - r) * (lightenPercent / 100)));\n g = Math.min(255, Math.round(g + (255 - g) * (lightenPercent / 100)));\n b = Math.min(255, Math.round(b + (255 - b) * (lightenPercent / 100)));\n\n // Convert alpha percent to 2-digit hex\n const alpha = Math.round((alphaPercent / 100) * 255);\n const aHex = alpha.toString(16).padStart(2, '0').toUpperCase();\n\n return `#${r.toString(16).padStart(2, '0').toUpperCase()}${g\n .toString(16)\n .padStart(2, '0')\n .toUpperCase()}${b.toString(16).padStart(2, '0').toUpperCase()}${aHex}`;\n }\n getTicketMessage(): TicketMessage {\n if (this.data) {\n const initialMessage = this.data.Messages.find(\n (x) => x.Subject == DEFAULT_MESSAGE_FOR_INITIAL_UPLOAD,\n );\n if (initialMessage) {\n return { ...initialMessage, DataState: ObjectState.Changed };\n } else {\n const newMessage: TicketMessage = {\n TicketCode: '',\n Subject: DEFAULT_MESSAGE_FOR_INITIAL_UPLOAD,\n Content: '',\n Attachments: [],\n AttachmentUrls: [],\n Company: this.defaultCompany,\n Id: '',\n Code: '',\n TenantId: '',\n ServiceName: '',\n id: '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n };\n return newMessage;\n }\n } else {\n const newMessage: TicketMessage = {\n TicketCode: '',\n Subject: DEFAULT_MESSAGE_FOR_INITIAL_UPLOAD,\n Content: '',\n Attachments: [],\n AttachmentUrls: [],\n Company: this.defaultCompany,\n Id: '',\n Code: '',\n TenantId: '',\n ServiceName: '',\n id: '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n };\n return newMessage;\n }\n }\n async getAllTask(code: string): Promise<any[] | undefined> {\n this.utilService.sendBI(true);\n\n const res = await this.server.get(\n `Task/GetTaskInfo/${code}`,\n this.envSvc.environment.WorkFlowAPI,\n );\n\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) {\n return undefined;\n } else {\n const result = res as any[];\n if (result) {\n this.data.TaskData = result;\n }\n return result;\n }\n }\n async passOn(\n data: Ticket,\n fromStage: string,\n toStage: string,\n comment?: string,\n recipient?: string,\n ) {\n if (!data) return;\n const payload = {\n ...data.TaskData,\n DataState: ObjectState.Changed,\n HistoryToDate: data.TaskData.HistoryToDate.map((item: any) => ({\n ...item,\n Actor: item.Actor\n ? {\n ...item.Actor,\n ActorTags: [],\n }\n : null,\n })),\n CurrentActors: data.TaskData.CurrentActors.map((item: any) => ({\n ...item,\n ActorTags: [],\n })),\n };\n\n delete (payload as any).FullStages;\n\n this.utilService.sendBI(true);\n\n try {\n const res = await this.server.post(\n `Task/PassOn/${fromStage}/${toStage}/${comment}${\n recipient ? '/' + recipient : ''\n }`,\n payload,\n this.envSvc.environment.WorkFlowAPI,\n );\n\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) {\n return undefined;\n } else {\n const result = res as any;\n if (result) {\n data.TaskData = result;\n this.getAllTask(data.Code).then((taskRes) => {\n if (taskRes && data) {\n data.TaskData = taskRes;\n }\n });\n this.showForm = false;\n this.action = null;\n data.TaskComment = '';\n const updatedItem = await this.getUpdatedTicket(data.Code);\n if (updatedItem) {\n data.Status = updatedItem.Status;\n }\n }\n\n return result;\n }\n } catch (err) {\n this.utilService.sendBI(false);\n console.error('PassOn Error:', err);\n return undefined;\n }\n }\n\n async formFill(formValues: any, ticket: Ticket) {\n const payload = formValues;\n\n this.utilService.sendBI(true);\n\n try {\n const res = await this.server.post(\n `Form/FillForm/${this.code}`,\n payload,\n this.envSvc.environment.WorkFlowAPI,\n );\n\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) {\n return undefined;\n } else {\n await this.passOn(\n ticket,\n this.action.action?.FromStage,\n this.action.action?.ToStage,\n this.action.comment,\n '',\n );\n }\n } catch (err) {\n this.utilService.sendBI(false);\n console.error('PassOn Error:', err);\n return undefined;\n }\n }\n\n async getUpdatedTicket(code: string): Promise<Ticket | undefined> {\n const payload: SearchPropertyValue[] = [\n {\n PropertyName: 'Code',\n EntityValue: code,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n },\n {\n PropertyName: 'TenantId',\n EntityValue: '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.NEQ,\n },\n ];\n const res = await this.server.post(\n `Ticket/SearchTicket/0/50`,\n payload,\n this.envSvc.environment.TicketingAPI,\n );\n if (res instanceof ErrorResponse) {\n return undefined;\n }\n\n var result = res as PagedResult<Ticket>;\n if (result.Result.length > 0) {\n return result.Result[0];\n } else {\n return undefined;\n }\n }\n\n async handleActionComplete(action: any, data: Ticket) {\n data.TaskComment = action.comment;\n\n const hasForms = data.TaskData?.TaskForms?.length > 0;\n\n if (hasForms) {\n this.showForm = true;\n this.action = action;\n return;\n }\n\n await this.passOn(\n data,\n action?.action.FromStage,\n action?.action.ToStage,\n data.TaskComment,\n '',\n );\n }\n}\n","<div\n (click)=\"goBack()\"\n class=\"my-4 w-fit ml-auto border p-1 rounded-lg border-gray-400 cursor-pointer\"\n>\n <verben-svg [icon]=\"'arrow-left'\"></verben-svg>\n</div>\n<div *ngIf=\"data\" class=\"grid grid-cols-12 gap-8\">\n <div\n class=\"lg:col-span-8 col-span-12 border relative rounded-2xl p-6 border-[#0000001A]\"\n >\n \n <div class=\"flex gap-2 items-center mt-6\">\n <h3 class=\"mt-2 font-bold\">{{ data.Title }}</h3>\n\n <div\n *ngIf=\"\n data.Priority && data.Priority\n | asyncLabel : 'TenantPriority' : 'Color' : ticketingAPI\n | async as color\n \"\n class=\"enum-val rounded-[8px] flex gap-2 items-center justify-center\"\n [style.backgroundColor]=\"softenColor(color)\"\n >\n <span [style.backgroundColor]=\"color\" class=\"enum-dot\"></span>\n <span>{{\n data.Priority\n | asyncLabel : \"TenantPriority\" : \"Name\" : ticketingAPI\n | async\n }}</span>\n </div>\n </div>\n <p class=\"mt-2 text-sm\">{{ data.Description }}</p>\n <div class=\"attachment-section p-2 flex flex-col gap-3\">\n <div\n class=\"attachments-container grid grid-cols-3 gap-2\"\n *ngIf=\"data.FileUrls\"\n >\n <ng-container *ngFor=\"let file of data.FileUrls\">\n <app-file-render [fileUrl]=\"file\"></app-file-render>\n </ng-container>\n </div>\n </div>\n <div class=\"max-h-[500px] lg:max-h-[230px] overflow-y-auto pr-1\">\n <div *ngFor=\"let message of data.Messages; let last = last\">\n <div\n class=\"mt-6 flex justify-between items-center pb-4\"\n [ngClass]=\"{ 'border-b border-gray-300': !last }\"\n >\n <div class=\"flex items-center gap-2\">\n <img\n class=\"w-[50px] h-[50px] object-cover rounded-full\"\n [src]=\"'/assets/images/avatar.png'\"\n alt=\"avatar\"\n />\n <div>\n <h4 class=\"font-medium\">\n {{\n message.Company\n | asyncLabel : \"Company\" : \"Description\" : glAPI\n | async\n }}\n </h4>\n <p class=\"text-xs\">{{ !message.Name ? \"Nil\" : message.Name }}</p>\n </div>\n </div>\n\n <p class=\"text-sm text-gray-600\">\n {{ message.CreatedAt | companyDate }}\n </p>\n </div>\n\n <p class=\"mt-6 text-sm\">\n {{ !message.Content ? \"Nil\" : message.Content }}\n </p>\n\n <div class=\"attachment-section p-2 flex flex-col gap-3\">\n <div\n class=\"attachments-container grid grid-cols-3 gap-2\"\n *ngIf=\"message.AttachmentUrls\"\n >\n <ng-container *ngFor=\"let file of message.AttachmentUrls\">\n <app-file-render [fileUrl]=\"file\"></app-file-render>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"pt-5\">\n <div class=\"border rounded-lg p-4 border-[#0000001A]\">\n \n\n <lib-chat-control\n (messageChange)=\"messageChange($event)\"\n [placeholder]=\"'Start typing a message....'\"\n [disabled]=\"disableChatBoxButton()\"\n (sendMessageResult)=\"saveMessageChat(data, message)\"\n [(message)]=\"message\"\n [color]=\"color\"\n [textColor]=\"textColor\"\n (filesChange)=\"onFilesUpdate($event)\"\n (formSubmit)=\"onKeyDown($event)\"\n ></lib-chat-control>\n </div>\n <verben-pop-Up\n #userPopup\n [customStyles]=\"{\n 'z-index': '99',\n position: 'absolute',\n bottom: '70px',\n left: '300px'\n }\"\n [enableMouseLeave]=\"false\"\n >\n <div\n class=\"pop-up-content flex flex-col max-h-[200px] w-[300px] overflow-y-auto p-3\"\n dropdown-content\n [style.border-color]=\"color\"\n > \n <p class=\"text-gray-500 p-2\">Suggestions</p>\n\n <div\n *ngFor=\"let u of usersResult\"\n class=\"p-2 hover:bg-gray-100 text-sm cursor-pointer w-fit\"\n (click)=\"selectUser(u)\"\n >\n {{ u.MailAddress }}\n </div>\n\n <p *ngIf=\"usersResult.length === 0\" class=\"text-gray-500 text-sm\">\n No matching users\n </p>\n </div>\n </verben-pop-Up>\n </div>\n </div>\n <div\n class=\"lg:col-span-4 col-span-12 p-4 border rounded-md border-[#0000001A]\"\n >\n <h3 class=\"mt-2 font-bold\">Details</h3>\n <div class=\"flex items-center justify-between mt-4\">\n <p class=\"text-sm font-light\">Ticket ID :</p>\n <p>{{ data.Code }}</p>\n </div>\n <div class=\"flex items-center justify-between mt-4\">\n <p class=\"text-sm font-light\">Subject:</p>\n <p class=\"text-xs text-right\">{{ data.Title }}</p>\n </div>\n <div class=\"flex items-center justify-between mt-4\">\n <p class=\"text-sm font-light\">Status:</p>\n <div\n *ngIf=\"data.Status\"\n class=\"enum-val rounded-[8px] flex gap-2 items-center justify-center {{\n data.Status\n }}\"\n >\n <span class=\"enum-dot\"></span>\n <span>{{ data.Status }}</span>\n </div>\n </div>\n <div class=\"flex items-center justify-between mt-4\">\n <p class=\"text-sm font-light\">CreatedAt :</p>\n <p class=\"text-sm\">{{ data.CreatedAt | companyDate }}</p>\n </div>\n <div\n *ngIf=\"data.Status === ticketStatus.Completed\"\n class=\"flex items-center justify-between mt-4\"\n >\n <p class=\"text-sm font-light\">Execution Time :</p>\n <p class=\"text-sm\">{{ data.ExecutionTime }}</p>\n </div>\n <div class=\"flex items-center justify-between mt-4\">\n <p class=\"text-sm font-light\">Priority :</p>\n <div\n *ngIf=\"\n data.Priority && data.Priority\n | asyncLabel : 'TenantPriority' : 'Color' : ticketingAPI\n | async as color\n \"\n class=\"enum-val rounded-[8px] flex gap-2 items-center justify-center\"\n [style.backgroundColor]=\"softenColor(color)\"\n >\n <span [style.backgroundColor]=\"color\" class=\"enum-dot\"></span>\n <span>{{\n data.Priority\n | asyncLabel : \"TenantPriority\" : \"Name\" : ticketingAPI\n | async\n }}</span>\n </div>\n </div>\n <section class=\"mt-6\">\n <h3 class=\"font-bold\">Properties</h3>\n\n <div class=\"flex flex-col gap-1 mt-2\">\n <div class=\"text-sm text-gray-600\">Status</div>\n <verben-drop-down\n width=\"100%\"\n placeholder=\"Select Status\"\n [disabled]=\"true\"\n [options]=\"statusOptions\"\n [(ngModel)]=\"data.Status\"\n >\n </verben-drop-down>\n </div>\n <div class=\"flex flex-col gap-1 mt-2 mb-18\">\n <div class=\"text-sm text-gray-600\">Priority</div>\n <verben-drop-down\n optionLabel=\"Name\"\n [filter]=\"true\"\n optionValue=\"Code\"\n [disabled]=\"true\"\n [options]=\"tenantOptions\"\n [(ngModel)]=\"data.Priority\"\n [width]=\"'100%'\"\n ></verben-drop-down>\n </div>\n <!-- <verbena-button\n (click)=\"save()\"\n [width]=\"'100%'\"\n [textColor]=\"'#fff'\"\n [text]=\"'Update'\"\n [bgColor]=\"'#9C56BA'\"\n ></verbena-button> -->\n </section>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport {\n CardDataViewModule,\n DataExportModule,\n DataTableModule,\n DataViewModule,\n DropDownModule,\n SortTableModule,\n SvgModule,\n TableFilterModule,\n TooltipModule,\n VerbenaButtonModule,\n VerbenaInputModule,\n VerbenaSwitchModule,\n VerbenDialogueModule,\n VerbenPopUpModule,\n VisibleColumnModule,\n DataImportModule,\n DataXportModule\n} from 'verben-ng-ui';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AsyncLabelPipe } from 'verben-ticketing-ui/src/lib/pipes';\nimport { ChatControlComponent } from './chat-control.component';\nimport { PickerModule , PickerComponent} from '@ctrl/ngx-emoji-mart';\nexport const appRoutes: Routes = [\n\n];\n@NgModule({\n declarations: [ChatControlComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n DataTableModule,\n SvgModule,\n VerbenPopUpModule,\n DataViewModule,\n VerbenaButtonModule,\n CardDataViewModule,\n DropDownModule,\n VerbenaSwitchModule,\n TableFilterModule,\n VisibleColumnModule,\n AsyncLabelPipe,\n SortTableModule,\n DataExportModule,\n TooltipModule,\n VerbenDialogueModule,\n VerbenaInputModule,\n DataImportModule,\n DataExportModule,\n PickerComponent,\n PickerModule,\n DataXportModule,\n \n RouterModule.forChild(appRoutes),\n ],\n exports: [ChatControlComponent],\n})\nexport class ChatControlLibModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport {\n CardDataViewModule,\n DataExportModule,\n DataTableModule,\n DataViewModule,\n DropDownModule,\n SortTableModule,\n SvgModule,\n TableFilterModule,\n TooltipModule,\n VerbenaButtonModule,\n VerbenaInputModule,\n VerbenaSwitchModule,\n VerbenDialogueModule,\n VerbenPopUpModule,\n VisibleColumnModule,\n DataImportModule,\n DataXportModule,\n} from 'verben-ng-ui';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AsyncLabelPipe } from 'verben-ticketing-ui/src/lib/pipes';\nimport { CompanyDatePipe } from 'verben-ticketing-ui/src/lib/pipes';\nimport { EllipseWordPipe } from 'verben-ticketing-ui/src/lib/pipes';\nimport { AddTicketLibModule } from 'verben-ticketing-ui/src/lib/components/add-ticket';\nimport { TicketingDetailComponent } from './ticketing-detail.component';\nimport { ChatControlLibModule } from './chat-control/chat-control.module';\nimport { FileRenderLibModule } from 'verben-ticketing-ui/src/lib/components/file-render';\nexport const appRoutes: Routes = [];\n@NgModule({\n declarations: [TicketingDetailComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n DataTableModule,\n SvgModule,\n VerbenPopUpModule,\n DataViewModule,\n VerbenaButtonModule,\n CardDataViewModule,\n DropDownModule,\n VerbenaSwitchModule,\n TableFilterModule,\n VisibleColumnModule,\n AsyncLabelPipe,\n SortTableModule,\n DataExportModule,\n TooltipModule,\n VerbenDialogueModule,\n VerbenaInputModule,\n DataImportModule,\n DataExportModule,\n DataXportModule,\n EllipseWordPipe,\n CompanyDatePipe,\n ChatControlLibModule,\n AddTicketLibModule,\n FileRenderLibModule,\n RouterModule.forChild(appRoutes),\n ],\n exports: [TicketingDetailComponent],\n})\nexport class TicketDetailLibModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i3","i2","i4","i6.ChatControlComponent","appRoutes"],"mappings":"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"}
|