{"version":3,"sources":["webpack:///./src/views/Tickets/Ticket.vue?4769","webpack:///./src/views/Tickets/TicketView.vue?4897","webpack:///src/views/Tickets/TicketView.vue","webpack:///./src/views/Tickets/TicketView.vue?043e","webpack:///./src/views/Tickets/TicketView.vue","webpack:///src/views/Tickets/Ticket.vue","webpack:///./src/views/Tickets/Ticket.vue?26b4","webpack:///./src/views/Tickets/Ticket.vue","webpack:///./src/views/Tickets/TicketCompose.vue?071d","webpack:///./src/components/Pagination.vue?f9a7","webpack:///src/components/Pagination.vue","webpack:///./src/components/Pagination.vue?b5b2","webpack:///./src/components/Pagination.vue","webpack:///./src/views/Tickets/Ticket.vue?e206","webpack:///./src/views/Tickets/TicketCompose.vue?762b","webpack:///./src/views/Tickets/TicketLeftSidebar.vue?1515","webpack:///src/views/Tickets/TicketLeftSidebar.vue","webpack:///./src/views/Tickets/TicketLeftSidebar.vue?03e4","webpack:///./src/views/Tickets/TicketLeftSidebar.vue","webpack:///./src/views/Tickets/TicketMessageCard.vue?faab","webpack:///src/views/Tickets/TicketMessageCard.vue","webpack:///./src/views/Tickets/TicketMessageCard.vue?54f1","webpack:///./src/views/Tickets/TicketMessageCard.vue","webpack:///./src/views/Tickets/TicketCompose.vue?900a","webpack:///src/views/Tickets/TicketCompose.vue","webpack:///./src/views/Tickets/TicketCompose.vue?6382","webpack:///./src/views/Tickets/TicketCompose.vue","webpack:///./src/views/Tickets/TicketView.vue?8c38","webpack:///./src/views/Tickets/TicketView.vue?dda9","webpack:///./src/assets/logo.png","webpack:///./src/views/Tickets/TicketCompose.vue?f434","webpack:///./src/views/Tickets/TicketDetail.vue?e422","webpack:///src/views/Tickets/TicketDetail.vue","webpack:///./src/views/Tickets/TicketDetail.vue?023c","webpack:///./src/views/Tickets/TicketDetail.vue"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticStyle","attrs","staticClass","class","show","mqShallShowLeftSidebar","on","$event","$t","updateRouteQuery","model","value","callback","$$v","searchQuery","expression","_v","_s","total","selectedEmails","length","showEmailDetails","_e","per_page","changePage","current_page","selectAllEmailCheckbox","isSelectAllEmailCheckboxIndeterminate","selectAllCheckboxUpdate","routeParams","status_id","informative","status","_l","el","key","id","name","HasPermissionTO","has_replies","created_by_consultant","getEmails","last_consultant_reply","directives","rawName","modifiers","toggleSelectedMailStarred","changeSeletecTicketStatus","ref","perfectScrollbarSettings","loading","email","index","refInFor","is_starred","style","resolveLabelColor","subtag","type","goTo","created_by","avatar","includes","toggleSelectedMail","nativeOn","stopPropagation","firstname","lastname","subject","replies_count","odoo_id","tag","toggleStarred","attachments","$moment","updated_at","fromNow","count","last_reply","description","replace","substring","tickets_ids","emailViewData","loadTicket","opendedEmailMeta","closeTicketModal","markOpenEmailAsUnread","changeOpenedEmail","getCompose","emailsMeta","GET_LEFT_BAR","tags","staticRenderFns","$store","state","appConfig","isRTL","closeDialog","goToContract","scrollToReply","editItem","ToFaq","scopedSlots","_u","fn","getUrl","proxy","icon","text","url","replaceAll","hasPreviousEmail","$emit","hasNextEmail","tag_id","subtag_id","threadMail","editorOption","onEditorChange","composeData","$set","server","reply","save","zoom","editedItem","subtags","filter","toLowerCase","option","onSelectModal","dialog","items","item","onSearch","onSelect","search","searching","show_add_modal","attributes","_b","title","selected","saveNewModal","addDialog","composeDataModal","editorOptionModal","onEditorChangeModal","FilePondPluginFileValidateType","FilePondPluginFileValidateSize","FilePondPluginImagePreview","components","quillEditor","vSelect","VuePerfectScrollbar","TicketMessageCard","TicketDetail","Ripple","props","required","setup","maxScrollbarLength","showWholeThread","data","editedIndex","modules","toolbar","container","handlers","Text","placeholder","defaultItem","test","refresh","socialShareIcons","watch","handler","val","window","setTimeout","self","immediate","computed","mapGetters","user","updated","nd","document","btns","exist","created","mounted","then","catch","console","process","fieldName","file","metadata","load","error","progress","abort","transfer","options","reader","methods","mapActions","modal_show","params","clearTimeout","selectedOption","ticket","query","close","payload","showCancelButton","confirmButtonText","cancelButtonText","customClass","confirmButton","cancelButton","buttonsStyling","component","TicketLeftSidebar","TicketView","TicketCompose","Pagination","status_list","timer","emails","emailTest","currentlength","shallShowEmailComposeModal","JSON","beforeDestroy","get","set","routeQuery","Boolean","get_filter","get_has_replies","get_created_by_consultant","oldVal","deep","mapMutations","updateEmailViewData","loadMoreEmails","e","label","mailId","orderMails","sort","mail","moveOpenEmailToFolder","folder","moveSelectedEmailsToFolder","updateOpenEmailLabel","updateSelectedEmailsLabel","markSelectedEmailsAsUnread","dir","evt","page","rows","align","composeTicket","element","$route","path","route","isDynamicRouteActive","resolveFilterBadgeColor","badge","suppressScrollX","wheelPropagation","mobileCheck","a","check","navigator","message","created_at","domProps","attachment","extension","download","split","pop","humanFileSize","size","zoomPic","picToBeZoomed","fetch","method","referrerPolicy","aElement","URL","bytes","Math","u","setCompose","discardEmail","assign","users","onSearchUsers","onSelectElement","selectedList","deselect","multiple","disabled","groupes","parameters","parameter_id","tagname","subtagname","assign_user_from_odoo","errors","sendTicket","modalShow","zoomItem","FilePond","ValidationProvider","ValidationObserver","prop","event","timerusers","assignees","sub_tag_id","competences_groups_ids","user_ids","btn","variant","action_id","module","exports"],"mappings":"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","file":"Ticket~f71cff67.25b984f7.js?version=1727726453033","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"height\":\"inherit\"},attrs:{\"id\":\"tickets_interface\"}},[_c('div',{staticClass:\"body-content-overlay\",class:{ show: _vm.mqShallShowLeftSidebar },on:{\"click\":function($event){_vm.mqShallShowLeftSidebar = false}}}),_c('div',{staticClass:\"email-app-list\"},[_c('div',{staticClass:\"app-fixed-search d-md-flex align-items-center\"},[_c('div',{staticClass:\"sidebar-toggle d-block d-lg-none ml-1\"},[_c('feather-icon',{staticClass:\"cursor-pointer\",attrs:{\"icon\":\"MenuIcon\",\"size\":\"21\"},on:{\"click\":function($event){_vm.mqShallShowLeftSidebar = true}}})],1),_c('div',{staticClass:\"d-flex align-content-baseline justify-content-between w-100\"},[_c('b-input-group',{staticClass:\"input-group-merge\"},[_c('b-input-group-prepend',{attrs:{\"is-text\":\"\"}},[_c('feather-icon',{staticClass:\"text-muted\",attrs:{\"icon\":\"SearchIcon\"}})],1),_c('b-form-input',{attrs:{\"id\":\"search_ticket\",\"placeholder\":_vm.$t('Search ticket')},on:{\"input\":_vm.updateRouteQuery},model:{value:(_vm.searchQuery),callback:function ($$v) {_vm.searchQuery=$$v},expression:\"searchQuery\"}})],1)],1),_c('div',{staticClass:\"d-flex align-content-baseline align-items-center justify-content-around\"},[_c('div',{staticClass:\"mb-1 mx-md-2\"},[_c('b-badge',[_vm._v(\" \"+_vm._s(_vm.total)+\" \"+_vm._s(_vm.$t(\"Tickets\")))])],1),_c('div',{staticClass:\"align-items-center\",class:{ 'd-flex': _vm.selectedEmails.length }},[(!_vm.showEmailDetails)?_c('b-pagination',{attrs:{\"total-rows\":_vm.total,\"per-page\":_vm.per_page,\"base-url\":\"#\",\"align\":\"default\"},on:{\"page-click\":_vm.changePage},model:{value:(_vm.current_page),callback:function ($$v) {_vm.current_page=$$v},expression:\"current_page\"}}):_vm._e()],1)])]),_c('div',{staticClass:\"app-action d-flex flex-wrap\"},[_c('div',{staticClass:\"action-left\"},[_c('div',{staticClass:\"d-flex\"},[_c('b-form-checkbox',{staticClass:\"mr-2\",attrs:{\"checked\":_vm.selectAllEmailCheckbox,\"indeterminate\":_vm.isSelectAllEmailCheckboxIndeterminate},on:{\"change\":_vm.selectAllCheckboxUpdate}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Select All\"))+\" \")]),(\n            _vm.routeParams &&\n            !_vm.routeParams.status_id &&\n            !_vm.routeParams.informative\n          )?_c('b-form-radio-group',{attrs:{\"name\":\"permission\",\"switches\":\"\"},model:{value:(_vm.status),callback:function ($$v) {_vm.status=$$v},expression:\"status\"}},[_vm._l((_vm.status_list),function(el){return [_c('b-form-radio',{key:el.id,staticClass:\"rounded-pill mx-1 text-capitalize\",attrs:{\"value\":el.id}},[_vm._v(\" \"+_vm._s(_vm.$t(el.name))+\" \")])]})],2):_vm._e(),(\n            _vm.HasPermissionTO('close', 'ticket') &&\n            _vm.status == 2 &&\n            _vm.routeParams &&\n            !_vm.routeParams.status_id\n          )?_c('b-form-checkbox',{staticClass:\"ml-2\",attrs:{\"id\":\"checkbox-1\",\"name\":\"checkbox-1\",\"value\":\"1\",\"unchecked-value\":\"0\",\"switch\":\"\",\"variant\":\"success\"},model:{value:(_vm.has_replies),callback:function ($$v) {_vm.has_replies=$$v},expression:\"has_replies\"}},[_vm._v(\" \"+_vm._s(_vm.has_replies == 1 ? _vm.$t(\"Avec Réponse\") : _vm.$t(\"Sans Réponse\"))+\" \")]):_vm._e(),(\n            _vm.HasPermissionTO('close', 'ticket') &&\n            _vm.status == 1 \n          )?_c('b-form-checkbox',{staticClass:\"ml-2\",attrs:{\"id\":\"checkbox-1\",\"name\":\"checkbox-1\",\"value\":\"0\",\"unchecked-value\":\"1\",\"switch\":\"\",\"variant\":\"success\"},model:{value:(_vm.created_by_consultant),callback:function ($$v) {_vm.created_by_consultant=$$v},expression:\"created_by_consultant\"}},[_vm._v(\" \"+_vm._s(_vm.created_by_consultant == 1 ? _vm.$t(\"consultant\") : _vm.$t(\"backoffice\"))+\" \")]):_vm._e(),(\n            _vm.has_replies == 1 &&\n            _vm.HasPermissionTO('close', 'ticket') &&\n            _vm.status == 2 &&\n            _vm.routeParams &&\n            !_vm.routeParams.status_id\n          )?_c('b-form-checkbox',{staticClass:\"ml-2\",attrs:{\"id\":\"checkbox-55\",\"name\":\"checkbox-55\",\"value\":\"0\",\"unchecked-value\":\"1\",\"switch\":\"\",\"variant\":\"success\"},on:{\"change\":_vm.getEmails},model:{value:(_vm.last_consultant_reply),callback:function ($$v) {_vm.last_consultant_reply=$$v},expression:\"last_consultant_reply\"}},[_vm._v(\" \"+_vm._s(_vm.last_consultant_reply == 1 ? _vm.$t(\"consultant\") : _vm.$t(\"backoffice\"))+\" \")]):_vm._e()],1)]),(_vm.selectedEmails.length)?_c('div',{staticClass:\"align-items-center\",class:{ 'd-flex': _vm.selectedEmails.length }},[_c('div',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],attrs:{\"title\":_vm.$t('Bookmark Ticket')},on:{\"click\":_vm.toggleSelectedMailStarred}},[_c('b-avatar',{staticClass:\"mr-2 text-white\",attrs:{\"variant\":\"success\",\"icon\":\"bookmark-star-fill\"}})],1),_c('Can',{attrs:{\"i\":\"close\",\"a\":\"ticket\"}},[_c('div',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],attrs:{\"title\":_vm.$t('Close Ticket')},on:{\"click\":function($event){return _vm.changeSeletecTicketStatus(3)}}},[_c('b-avatar',{staticClass:\"mr-2\",attrs:{\"variant\":\"danger\",\"icon\":\"x-circle-fill\"}})],1)])],1):_c('div',{staticClass:\"align-items-center\",class:{ 'd-flex': _vm.selectedEmails.length }},[_c('div',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],attrs:{\"title\":_vm.$t('Refresh')},on:{\"click\":_vm.getEmails}},[_c('b-avatar',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.selectedEmails.length),expression:\"!selectedEmails.length\"}],attrs:{\"variant\":\"success\",\"icon\":\"arrow-clockwise\"}})],1)])]),_c('vue-perfect-scrollbar',{ref:\"perfect\",staticClass:\"email-user-list scroll-area\",attrs:{\"settings\":_vm.perfectScrollbarSettings}},[(!_vm.loading)?_c('ul',{staticClass:\"email-media-list\"},_vm._l((_vm.emails),function(email,index){return _c('li',{key:email.id,ref:(\"\" + ('email' + email.id)),refInFor:true},[_c('b-media',{class:{\n            'border shadow-lg': email.is_starred,\n            'mail-read': !email.is_starred,\n          },style:((\"background-color:\" + (_vm.resolveLabelColor(\n              email.status.name,\n              email.subtag.type.name\n            )))),attrs:{\"tag\":\"li\",\"no-body\":\"\"},on:{\"click\":function($event){return _vm.goTo(email)}}},[_c('b-media-aside',{staticClass:\"media-left mr-50\"},[_c('b-avatar',{staticClass:\"avatar\",attrs:{\"size\":\"40\",\"variant\":\"primary\",\"src\":email.created_by.avatar}}),_c('div',{staticClass:\"user-action\"},[_c('b-form-checkbox',{attrs:{\"checked\":_vm.selectedEmails.includes(email.id)},on:{\"change\":function($event){return _vm.toggleSelectedMail(email.id)}},nativeOn:{\"click\":function($event){$event.stopPropagation();}}})],1)],1),_c('b-media-body',[_c('div',{staticClass:\"mail-details\"},[_c('div',{staticClass:\"mail-items\"},[_c('h5',{staticClass:\"mb-25\"},[_vm._v(\" \"+_vm._s(email.created_by.firstname)+\" \"+_vm._s(email.created_by.lastname)+\" : [\"+_vm._s(email.subject)+\"] \"),(email.replies_count)?_c('b-badge',{key:email.id,staticClass:\"text-capitalize mr-50\",attrs:{\"pill\":\"\",\"variant\":\"primary\"}},[_vm._v(\" \"+_vm._s(email.replies_count)+\" \")]):_vm._e()],1),_c('span',{staticClass:\"text-truncate\"},[_c('div',{staticClass:\"email-label\"},[(email.id)?_c('b-badge',{key:email.id,staticClass:\"text-capitalize mr-50\",attrs:{\"pill\":\"\",\"variant\":(\"light-\" + (_vm.resolveLabelColor(email.id)))}},[_vm._v(\" ID : \"+_vm._s(email.id)+\" \")]):_vm._e(),(email.odoo_id)?_c('b-badge',{key:email.odoo_id,staticClass:\"text-capitalize mr-50\",attrs:{\"pill\":\"\",\"variant\":(\"light-\" + (_vm.resolveLabelColor(email.odoo_id)))}},[_vm._v(\" Référence : \"+_vm._s(email.odoo_id)+\" \")]):_vm._e(),_c('b-badge',{key:email.tag.id,staticClass:\"text-capitalize mr-50\",attrs:{\"pill\":\"\",\"variant\":(\"light-\" + (_vm.resolveLabelColor(email.tag.id)))}},[_vm._v(\" \"+_vm._s(_vm.$t(email.tag.name))+\" \")]),_c('b-badge',{key:email.subtag.id,staticClass:\"text-capitalize mr-50\",attrs:{\"pill\":\"\",\"variant\":(\"light-\" + (_vm.resolveLabelColor(\n                        email.subtag.id\n                      )))}},[_vm._v(\" \"+_vm._s(_vm.$t(email.subtag.name))+\" \")])],1)])]),_c('div',{staticClass:\"mail-meta-item\"},[_c('div',{staticClass:\"email-favorite text-right\"},[_c('feather-icon',{class:{\n                      'text-warning fill-current ': email.is_starred,\n                    },attrs:{\"icon\":\"BookmarkIcon\",\"size\":\"25\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.toggleStarred(email)}}})],1),(email.attachments && email.attachments.length)?_c('feather-icon',{attrs:{\"icon\":\"PaperclipIcon\"}}):_vm._e(),_c('span',{staticClass:\"mail-date\"},[_vm._v(_vm._s(_vm.$moment(email.updated_at).fromNow()))])],1)]),_c('div',{staticClass:\"mail-message\"},[_vm._v(\" \"+_vm._s(email.count)+\" \"),(email.replies_count && email.last_reply)?_c('p',{staticClass:\"text-truncate mb-0\"},[_vm._v(\" \"+_vm._s(email.last_reply.description.replace(/(<([^>]+)>)/gi, \"\") .length > 100 ? email.last_reply.description .replace(/(<([^>]+)>)/gi, \"\") .substring(0, 100) + \"...\" : email.last_reply.description.replace( /(<([^>]+)>)/gi, \"\" ))+\" \")]):_c('p',{staticClass:\"text-truncate mb-0\"},[_vm._v(\" \"+_vm._s(email.description.replace(/(<([^>]+)>)/gi, \"\").length > 100 ? email.description .replace(/(<([^>]+)>)/gi, \"\") .substring(0, 100) + \"...\" : email.description.replace(/(<([^>]+)>)/gi, \"\"))+\" \")])])])],1)],1)}),0):_c('ul',{staticClass:\"email-media-list\"},[_c('div',{attrs:{\"id\":\"loading-bg\"}},[_c('div',{staticClass:\"loading-logo\"},[_c('img',{attrs:{\"src\":require('@/assets/logo.png'),\"alt\":\"Logo\"}})]),_c('div',{staticClass:\"loading\"},[_c('div',{staticClass:\"effect-1 effects\"}),_c('div',{staticClass:\"effect-2 effects\"}),_c('div',{staticClass:\"effect-3 effects\"})])])])])],1),_c('ticket-view',{class:{ show: _vm.showEmailDetails },attrs:{\"tickets_ids\":_vm.tickets_ids,\"email-view-data\":_vm.emailViewData,\"loading\":_vm.loadTicket,\"opended-email-meta\":_vm.opendedEmailMeta},on:{\"close-email-view\":_vm.closeTicketModal,\"mark-email-unread\":_vm.markOpenEmailAsUnread,\"toggleStarred\":_vm.toggleStarred,\"change-opened-email\":_vm.changeOpenedEmail}}),_c('portal',{attrs:{\"to\":\"content-renderer-sidebar-left\"}},[_c('ticket-left-sidebar',{class:{ show: _vm.mqShallShowLeftSidebar },attrs:{\"shall-show-email-compose-modal\":_vm.getCompose,\"emails-meta\":_vm.emailsMeta,\"email-test\":_vm.GET_LEFT_BAR},on:{\"close-left-sidebar\":function($event){_vm.mqShallShowLeftSidebar = false}}})],1),_c('ticket-compose',{attrs:{\"tags\":_vm.tags},on:{\"rerender\":_vm.getEmails},model:{value:(_vm.getCompose),callback:function ($$v) {_vm.getCompose=$$v},expression:\"getCompose\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"email-app-details\"},[_c('div',{staticClass:\"email-detail-header\"},[_c('div',{staticClass:\"email-header-left d-flex align-items-center\"},[_c('span',{staticClass:\"go-back mr-1\"},[_c('feather-icon',{staticClass:\"align-bottom\",attrs:{\"icon\":_vm.$store.state.appConfig.isRTL\n                ? 'ChevronRightIcon'\n                : 'ChevronLeftIcon',\"size\":\"20\"},on:{\"click\":_vm.closeDialog}})],1),_c('h4',{staticClass:\"email-subject mb-0\"},[_vm._l((_vm.emailViewData.tags),function(tag){return _c('b-badge',{key:tag.id,staticClass:\"mr-2\",attrs:{\"pill\":\"\",\"variant\":\"secondary\"}},[_vm._v(_vm._s(_vm.$t(tag.name))+\" \")])}),_c('b',{staticClass:\"mr-2\"},[_vm._v(_vm._s(_vm.emailViewData.subject))]),_c('b-badge',{key:_vm.emailViewData.status_id,staticClass:\"text-capitalize mr-50\",attrs:{\"pill\":\"\",\"variant\":(\"light-\" + (_vm.resolveLabelColor(\n              _vm.emailViewData.status ? _vm.emailViewData.status.name : null\n            )))}},[_vm._v(\" \"+_vm._s(_vm.emailViewData.status ? _vm.$t(_vm.emailViewData.status.name) : \"\")+\" \")])],2)]),_c('div',{staticClass:\"email-header-right ml-2 pl-1 d-flex\"},[(\n            _vm.emailViewData.odoo_id &&\n            _vm.emailViewData.odoo_id[0] &&\n            _vm.emailViewData.odoo_id[0] == 'S'\n          )?_c('a',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],attrs:{\"title\":_vm.$t('View Contract')},on:{\"click\":_vm.goToContract}},[_c('b-avatar',{staticClass:\"mr-2\",attrs:{\"variant\":\"danger\",\"icon\":\"eye\"}})],1):_vm._e(),(\n            _vm.emailViewData &&\n            _vm.emailViewData.subtag &&\n            _vm.emailViewData.subtag.type &&\n            _vm.emailViewData.subtag.type.name !== 'informatif' &&\n            _vm.emailViewData.status.name !== 'closed'\n          )?_c('div',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],attrs:{\"title\":_vm.$t('Reply')},on:{\"click\":_vm.scrollToReply}},[_c('b-avatar',{staticClass:\"mr-2 text-white\",attrs:{\"variant\":\"danger\",\"icon\":\"reply-fill\"}})],1):_vm._e(),_c('div',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],attrs:{\"title\":_vm.$t('Bookmark Ticket')},on:{\"click\":_vm.toggleStarred}},[_c('b-avatar',{staticClass:\"mr-2 text-white\",class:{\n              'text-warning fill-current ': _vm.is_starred,\n            },attrs:{\"variant\":_vm.is_starred || _vm.is_starred ? 'success' : 'danger',\"icon\":\"bookmark-star-fill\"}})],1),_c('Can',{attrs:{\"i\":\"close\",\"a\":\"ticket\"}},[(_vm.emailViewData.status_id != 3)?_c('div',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],attrs:{\"title\":_vm.$t('Close Ticket')},on:{\"click\":function($event){return _vm.changeSeletecTicketStatus(3)}}},[_c('b-avatar',{staticClass:\"mr-2\",attrs:{\"variant\":\"danger\",\"icon\":\"x-circle-fill\"}})],1):_vm._e()]),_c('Can',{attrs:{\"i\":\"update\",\"a\":\"ticket\"}},[_c('div',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],attrs:{\"title\":_vm.$t('Reassign Ticket')},on:{\"click\":_vm.editItem}},[_c('b-avatar',{staticClass:\"mr-2\",attrs:{\"variant\":\"danger\",\"icon\":\"arrow-left-right\"}})],1)]),_c('Can',{attrs:{\"i\":\"convert\",\"a\":\"ticket\"}},[_c('div',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],attrs:{\"title\":_vm.$t('Convert Ticket To Faq')},on:{\"click\":_vm.ToFaq}},[_c('b-avatar',{staticClass:\"mr-2\",attrs:{\"variant\":\"danger\",\"icon\":\"file-earmark-plus\"}})],1)]),_c('b-dropdown',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],staticClass:\"mr-2 text-center\",attrs:{\"variant\":\"link\",\"no-caret\":\"\",\"right\":\"\",\"toggle-class\":\"p-0\",\"title\":_vm.$t('Share Ticket')},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('div',{on:{\"click\":_vm.getUrl}},[_c('b-avatar',{staticClass:\"mr-2\",attrs:{\"variant\":\"danger\",\"icon\":\"share-fill\"}})],1)]},proxy:true}])},_vm._l((_vm.socialShareIcons),function(icon){return _c('b-dropdown-item',{key:icon.icon,attrs:{\"href\":\"#\"}},[_c('ShareNetwork',{attrs:{\"network\":icon.text,\"url\":_vm.url,\"title\":_vm.emailViewData ? _vm.emailViewData.subject : '',\"description\":_vm.emailViewData && _vm.emailViewData.description\n                  ? _vm.emailViewData.description\n                      .replaceAll('<br>', '\\n')\n                      .replace(/<[^>]+>/g, '')\n                  : null}},[_c('div',{staticStyle:{\"vertical-align\":\"middle\"}},[_c('span',{staticClass:\"h2\",class:icon.icon,staticStyle:{\"display\":\"inline-block\"}}),_c('span',{staticClass:\"h5\",staticStyle:{\"display\":\"inline-block\"}},[_vm._v(\" \"+_vm._s(icon.text))])])])],1)}),1),_c('div',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],attrs:{\"title\":_vm.$t('Previous'),\"disabled\":!_vm.hasPreviousEmail},on:{\"click\":function($event){return _vm.$emit('change-opened-email', 'previous')}}},[_c('feather-icon',{staticClass:\"ml-75 cursor-pointer\",class:{ 'text-muted pointer-events-none': !_vm.hasPreviousEmail },attrs:{\"icon\":_vm.$store.state.appConfig.isRTL\n                ? 'ChevronRightIcon'\n                : 'ChevronLeftIcon',\"size\":\"25\"}})],1),_c('div',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],attrs:{\"title\":_vm.$t('Next'),\"disabled\":!_vm.hasNextEmail},on:{\"click\":function($event){return _vm.$emit('change-opened-email', 'next')}}},[_c('feather-icon',{staticClass:\"ml-75 cursor-pointer\",class:{ 'text-muted pointer-events-none': !_vm.hasNextEmail },attrs:{\"icon\":_vm.$store.state.appConfig.isRTL\n                ? 'ChevronLeftIcon'\n                : 'ChevronRightIcon',\"size\":\"25\"}})],1)],1)]),(_vm.emailViewData && !_vm.loading)?_c('vue-perfect-scrollbar',{staticClass:\"email-scroll-area scroll-area\",attrs:{\"settings\":_vm.perfectScrollbarSettings}},[[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"email-label\"},[(_vm.emailViewData.id)?_c('b-badge',{key:_vm.emailViewData.id,staticClass:\"text-capitalize mr-50\",attrs:{\"pill\":\"\",\"variant\":(\"light-\" + (_vm.resolveLabelColor(_vm.emailViewData.id)))}},[_vm._v(\" ID : \"+_vm._s(_vm.emailViewData.id)+\" \")]):_vm._e(),_c('b-badge',{key:_vm.emailViewData.odoo_id,staticClass:\"text-capitalize mr-50\",attrs:{\"pill\":\"\",\"variant\":(\"light-\" + (_vm.resolveLabelColor(_vm.emailViewData.odoo_id)))}},[_vm._v(\" Référence : \"+_vm._s(_vm.emailViewData.odoo_id)+\" \")]),_c('b-badge',{key:_vm.emailViewData.tag_id,staticClass:\"text-capitalize mr-50\",attrs:{\"pill\":\"\",\"variant\":(\"light-\" + (_vm.resolveLabelColor(_vm.emailViewData.tag_id)))}},[_vm._v(\" \"+_vm._s(_vm.emailViewData.tag ? _vm.$t(_vm.emailViewData.tag.name) : \"\")+\" \")]),_c('b-badge',{key:_vm.emailViewData.subtag_id,staticClass:\"text-capitalize mr-50\",attrs:{\"pill\":\"\",\"variant\":(\"light-\" + (_vm.resolveLabelColor(_vm.emailViewData.subtag_id)))}},[_vm._v(\" \"+_vm._s(_vm.emailViewData.subtag ? _vm.$t(_vm.emailViewData.subtag.name) : \"\")+\" \")])],1)])],1),_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('ticket-detail',{attrs:{\"message\":_vm.emailViewData}})],1)],1),_vm._l((_vm.emailViewData.replies),function(threadMail){return _c('b-row',{key:threadMail.id},[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('ticket-message-card',{attrs:{\"message\":threadMail}})],1)],1)})],(\n          _vm.emailViewData &&\n          _vm.emailViewData.subtag &&\n          _vm.emailViewData.subtag.type &&\n          _vm.emailViewData.subtag.type.name !== 'informatif' &&\n          _vm.emailViewData.status.name !== 'closed'\n        )?_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('b-card',[_c('b-form',[_c('div',{staticClass:\"message-editor\",attrs:{\"id\":\"quil-content2\"}},[_c('quill-editor',{ref:\"reply_box\",attrs:{\"options\":_vm.editorOption},on:{\"change\":function($event){return _vm.onEditorChange($event)}},model:{value:(_vm.composeData.description),callback:function ($$v) {_vm.$set(_vm.composeData, \"description\", $$v)},expression:\"composeData.description\"}}),_c('file-pond',{ref:\"pond\",attrs:{\"name\":\"test\",\"label-idle\":_vm.$t('labelIdle'),\"allow-multiple\":true,\"allow-image-preview\":false,\"allow-remove\":\"false\",\"accepted-file-types\":[\n                    'image/*',\n                    'application/pdf',\n                    'audio/wav',\n                    'audio/mpeg' ],\"server\":_vm.server,\"max-file-size\":'12MB',\"label-invalid-field\":_vm.$t('labelInvalidField'),\"label-file-waiting-for-size\":_vm.$t('labelFileWaitingForSize'),\"label-file-size-not-available\":_vm.$t('labelFileSizeNotAvailable'),\"label-file-loading\":_vm.$t('labelFileLoading'),\"label-file-load-error\":_vm.$t('labelFileLoadError'),\"label-file-processing\":_vm.$t('labelFileProcessing'),\"label-file-processing-complete\":_vm.$t('labelFileProcessingComplete'),\"label-file-processing-aborted\":_vm.$t('labelFileProcessingAborted'),\"label-file-processing-error\":_vm.$t('labelFileProcessingError'),\"label-file-processing-revert-error\":_vm.$t('labelFileProcessingRevertError'),\"label-file-remove-error\":_vm.$t('labelFileRemoveError'),\"label-tap-to-cancel\":_vm.$t('labelTapToCancel'),\"label-tap-to-retry\":_vm.$t('labelTapToRetry'),\"label-tap-to-undo\":_vm.$t('labelTapToUndo'),\"label-button-remove-item\":_vm.$t('labelButtonRemoveItem'),\"label-button-abort-item-load\":_vm.$t('labelButtonAbortItemLoad'),\"label-button-retry-item-load\":_vm.$t('labelButtonRetryItemLoad'),\"label-button-abort-item-processing\":_vm.$t('labelButtonAbortItemProcessing'),\"label-button-undo-item-processing\":_vm.$t('labelButtonUndoItemProcessing'),\"label-button-retry-item-processing\":_vm.$t('labelButtonRetryItemProcessing'),\"label-button-process-item\":_vm.$t('labelButtonProcessItem'),\"label-max-file-size-exceeded\":_vm.$t('labelMaxFileSizeExceeded'),\"label-max-file-size\":_vm.$t('labelMaxFileSize'),\"label-max-total-file-size-exceeded\":_vm.$t('labelMaxTotalFileSizeExceeded'),\"label-max-total-file-size\":_vm.$t('labelMaxTotalFileSize'),\"label-file-type-not-allowed\":_vm.$t('labelFileTypeNotAllowed'),\"image-validate-size-label-format-error\":_vm.$t('imageValidateSizeLabelFormatError'),\"image-validate-size-label-image-size-too-small\":_vm.$t('imageValidateSizeLabelImageSizeTooSmall'),\"image-validate-size-label-image-size-too-big\":_vm.$t('imageValidateSizeLabelImageSizeTooBig'),\"image-validate-size-label-expected-min-size\":_vm.$t('imageValidateSizeLabelExpectedMinSize'),\"image-validate-size-label-expected-max-size\":_vm.$t('imageValidateSizeLabelExpectedMaxSize'),\"image-validate-size-label-image-resolution-too-low\":_vm.$t('imageValidateSizeLabelImageResolutionTooLow'),\"image-validate-size-label-image-resolution-too-high\":_vm.$t('imageValidateSizeLabelImageResolutionTooHigh'),\"image-validate-size-label-expected-min-resolution\":_vm.$t('imageValidateSizeLabelExpectedMinResolution'),\"image-validate-size-label-expected-max-resolution\":_vm.$t('imageValidateSizeLabelExpectedMaxResolution')}})],1),_c('b-row',{staticClass:\"d-flex justify-content-end\"},[_c('b-button',{staticClass:\"m-2\",attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.reply}},[_vm._v(_vm._s(_vm.$t(\"Répondre\")))])],1)],1)],1)],1)],1):_vm._e()],2):_c('div',{staticClass:\"d-flex justify-content-center align-items-center\",staticStyle:{\"height\":\"100%\"}},[_c('div',{attrs:{\"id\":\"loading-bg\"}},[_c('div',{staticClass:\"loading-logo\"},[_c('img',{attrs:{\"src\":require('@/assets/logo.png'),\"alt\":\"Logo\"}})]),_c('div',{staticClass:\"loading\"},[_c('div',{staticClass:\"effect-1 effects\"}),_c('div',{staticClass:\"effect-2 effects\"}),_c('div',{staticClass:\"effect-3 effects\"})])])]),_c('b-modal',{attrs:{\"id\":\"modal-1\",\"title\":_vm.$t('Reassign Ticket')},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(){return [_c('div',[_c('b-row',{staticClass:\"clas d-flex justify-content-between\"},[_c('div',[_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(255, 255, 255, 0.15)'),expression:\"'rgba(255, 255, 255, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"split\":\"\",\"variant\":\"primary\",\"right\":\"\"},on:{\"click\":_vm.save}},[_vm._v(\" Modifier \")])],1)])],1)]},proxy:true}]),model:{value:(_vm.zoom),callback:function ($$v) {_vm.zoom=$$v},expression:\"zoom\"}},[_c('b-form',[_c('div',{staticClass:\"compose-mail-form-field d-flex flex-column\"},[_c('label',{staticClass:\"d-block text-left w-100\",attrs:{\"for\":\"email-subject\"}},[_vm._v(\"Sélectionnez l'élément pour lequel vous avez besoin d'aide \")]),_c('b-form-select',{attrs:{\"id\":\"email-subject\",\"options\":_vm.tags,\"text-field\":\"name\",\"value-field\":\"id\"},model:{value:(_vm.editedItem.tag_id),callback:function ($$v) {_vm.$set(_vm.editedItem, \"tag_id\", $$v)},expression:\"editedItem.tag_id\"}})],1),_c('div',{staticClass:\"compose-mail-form-field d-flex flex-column\"},[_c('label',{staticClass:\"d-block text-left w-100\",attrs:{\"for\":\"email-subject\"}},[_vm._v(\"Sélectionnez l'élément pour lequel vous avez besoin d'aide \")]),_c('b-form-select',{attrs:{\"id\":\"email-subject\"},model:{value:(_vm.editedItem.sub_tag_id),callback:function ($$v) {_vm.$set(_vm.editedItem, \"sub_tag_id\", $$v)},expression:\"editedItem.sub_tag_id\"}},[_vm._l((_vm.subtags.filter(function (subtag){ return !subtag.name.toLowerCase().includes('rejets'); })),function(option){return [_c('b-form-select-option',{key:option.id,staticClass:\"rounded-pill mx-1\",attrs:{\"value\":option.id}},[_vm._v(\" \"+_vm._s(_vm.$t(option.name))+\" (\"+_vm._s(_vm.$t(option.type.name))+\") \")])]})],2)],1),_c('div',{staticClass:\"compose-mail-form-field d-flex flex-column\"},[_c('label',{staticClass:\"d-block text-left w-100\",attrs:{\"for\":\"email-subject\"}},[_vm._v(_vm._s(_vm.$t(\"Numéro contrat odoo (si nécessaire)\"))+\" \")]),_c('b-form-input',{staticClass:\"border\",attrs:{\"id\":\"email-subject\"},model:{value:(_vm.editedItem.odoo_id),callback:function ($$v) {_vm.$set(_vm.editedItem, \"odoo_id\", $$v)},expression:\"editedItem.odoo_id\"}})],1)])],1),_c('b-modal',{on:{\"ok\":_vm.onSelectModal},model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('v-select',{attrs:{\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"options\":_vm.items,\"label\":\"title\",\"filterable\":false,\"reduce\":function (item) { return item.id; },\"selectable\":function () { return true; }},on:{\"search\":_vm.onSearch,\"option:selecting\":_vm.onSelect},scopedSlots:_vm._u([{key:\"no-options\",fn:function(ref){\n                  var search = ref.search;\n                  var searching = ref.searching;\n                  var loading = ref.loading;\nreturn [_vm._v(\" Aucune resultats \")]}},{key:\"list-header\",fn:function(){return [_c('Can',{attrs:{\"i\":\"create\",\"a\":\"ticket_predefined_description\"}},[_c('b-button',{attrs:{\"block\":\"\",\"variant\":\"outline-primary\"},on:{\"click\":_vm.show_add_modal}},[_c('feather-icon',{attrs:{\"icon\":\"PlusIcon\"}}),_vm._v(_vm._s(_vm.$t(\"Ajouter un message prédéfini\")))],1)],1)]},proxy:true},{key:\"open-indicator\",fn:function(ref){\n                  var attributes = ref.attributes;\nreturn [_c('span',_vm._b({},'span',attributes,false),[_vm._v(\"🔽\")])]}},{key:\"option\",fn:function(ref){\n                  var title = ref.title;\nreturn [_c('div',[_c('span',[_vm._v(\" \"+_vm._s(title))])])]}}]),model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})],1)],1),_c('b-modal',{attrs:{\"size\":\"xl\"},on:{\"ok\":_vm.saveNewModal},model:{value:(_vm.addDialog),callback:function ($$v) {_vm.addDialog=$$v},expression:\"addDialog\"}},[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"compose-mail-form-field d-flex flex-column my-2\"},[_c('label',{staticClass:\"d-block text-left w-100 mb-1\",attrs:{\"for\":\"email-subject\"}},[_vm._v(_vm._s(_vm.$t(\"Title\"))+\" \")]),_c('b-form-input',{staticClass:\"border\",attrs:{\"id\":\"email-subject\"},model:{value:(_vm.composeDataModal.title),callback:function ($$v) {_vm.$set(_vm.composeDataModal, \"title\", $$v)},expression:\"composeDataModal.title\"}})],1),_c('div',{staticClass:\"message-editor\"},[_c('quill-editor',{attrs:{\"options\":_vm.editorOptionModal},on:{\"change\":function($event){return _vm.onEditorChangeModal($event)}},model:{value:(_vm.composeDataModal.description),callback:function ($$v) {_vm.$set(_vm.composeDataModal, \"description\", $$v)},expression:\"composeDataModal.description\"}})],1)])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div class=\"email-app-details\">\n    <!-- Email Header -->\n    <div class=\"email-detail-header\">\n      <!-- Header: Left -->\n      <div class=\"email-header-left d-flex align-items-center\">\n        <span class=\"go-back mr-1\">\n          <feather-icon\n            :icon=\"\n              $store.state.appConfig.isRTL\n                ? 'ChevronRightIcon'\n                : 'ChevronLeftIcon'\n            \"\n            size=\"20\"\n            class=\"align-bottom\"\n            @click=\"closeDialog\"\n          />\n        </span>\n        <h4 class=\"email-subject mb-0\">\n          <!-- {{ emailViewData.subject }} -->\n\n          <b-badge\n            v-for=\"tag in emailViewData.tags\"\n            :key=\"tag.id\"\n            pill\n            variant=\"secondary\"\n            class=\"mr-2\"\n            >{{ $t(tag.name) }} </b-badge\n          ><b class=\"mr-2\">{{ emailViewData.subject }}</b>\n          <b-badge\n            :key=\"emailViewData.status_id\"\n            pill\n            class=\"text-capitalize mr-50\"\n            :variant=\"`light-${resolveLabelColor(\n              emailViewData.status ? emailViewData.status.name : null\n            )}`\"\n          >\n            {{ emailViewData.status ? $t(emailViewData.status.name) : \"\" }}\n          </b-badge>\n        </h4>\n      </div>\n\n      <!-- Header: Right -->\n      <div class=\"email-header-right ml-2 pl-1 d-flex\">\n        <!-- v-if=\"emailViewData.odoo_id\" -->\n        <a\n          v-if=\"\n            emailViewData.odoo_id &&\n            emailViewData.odoo_id[0] &&\n            emailViewData.odoo_id[0] == 'S'\n          \"\n          v-b-tooltip.hover\n          :title=\"$t('View Contract')\"\n          @click=\"goToContract\"\n        >\n          <b-avatar class=\"mr-2\" variant=\"danger\" icon=\"eye\" />\n        </a>\n\n        <div\n          v-if=\"\n            emailViewData &&\n            emailViewData.subtag &&\n            emailViewData.subtag.type &&\n            emailViewData.subtag.type.name !== 'informatif' &&\n            emailViewData.status.name !== 'closed'\n          \"\n          v-b-tooltip.hover\n          :title=\"$t('Reply')\"\n          @click=\"scrollToReply\"\n        >\n          <b-avatar\n            class=\"mr-2 text-white\"\n            variant=\"danger\"\n            icon=\"reply-fill\"\n          />\n        </div>\n        <!-- Mark Starred -->\n        <div\n          v-b-tooltip.hover\n          :title=\"$t('Bookmark Ticket')\"\n          @click=\"toggleStarred\"\n        >\n          <b-avatar\n            class=\"mr-2 text-white\"\n            :variant=\"is_starred || is_starred ? 'success' : 'danger'\"\n            :class=\"{\n              'text-warning fill-current ': is_starred,\n            }\"\n            icon=\"bookmark-star-fill\"\n          />\n        </div>\n\n        <Can i=\"close\" a=\"ticket\">\n          <div\n            v-if=\"emailViewData.status_id != 3\"\n            v-b-tooltip.hover\n            :title=\"$t('Close Ticket')\"\n            @click=\"changeSeletecTicketStatus(3)\"\n          >\n            <b-avatar class=\"mr-2\" variant=\"danger\" icon=\"x-circle-fill\" />\n          </div>\n        </Can>\n\n        <Can i=\"update\" a=\"ticket\">\n          <div\n            v-b-tooltip.hover\n            :title=\"$t('Reassign Ticket')\"\n            @click=\"editItem\"\n          >\n            <b-avatar class=\"mr-2\" variant=\"danger\" icon=\"arrow-left-right\" />\n          </div>\n        </Can>\n        <Can i=\"convert\" a=\"ticket\">\n          <div\n            v-b-tooltip.hover\n            :title=\"$t('Convert Ticket To Faq')\"\n            @click=\"ToFaq\"\n          >\n            <b-avatar class=\"mr-2\" variant=\"danger\" icon=\"file-earmark-plus\" />\n          </div>\n        </Can>\n        <b-dropdown\n          v-b-tooltip.hover\n          variant=\"link\"\n          no-caret\n          class=\"mr-2 text-center\"\n          right\n          toggle-class=\"p-0\"\n          :title=\"$t('Share Ticket')\"\n        >\n          <template #button-content>\n            <div @click=\"getUrl\">\n              <b-avatar class=\"mr-2\" variant=\"danger\" icon=\"share-fill\" />\n            </div>\n          </template>\n          <b-dropdown-item\n            v-for=\"icon in socialShareIcons\"\n            :key=\"icon.icon\"\n            href=\"#\"\n            class=\"\"\n          >\n            <ShareNetwork\n              :network=\"icon.text\"\n              :url=\"url\"\n              :title=\"emailViewData ? emailViewData.subject : ''\"\n              :description=\"\n                emailViewData && emailViewData.description\n                  ? emailViewData.description\n                      .replaceAll('<br>', '\\n')\n                      .replace(/<[^>]+>/g, '')\n                  : null\n              \"\n            >\n              <!-- quote=\"The hot reload is so fast it\\'s near instant. - Evan You\" hashtags=\"vuejs,vite\" -->\n              <div style=\"vertical-align: middle\">\n                <span\n                  :class=\"icon.icon\"\n                  style=\"display: inline-block\"\n                  class=\"h2\"\n                />\n                <span class=\"h5\" style=\"display: inline-block\">\n                  {{ icon.text }}</span\n                >\n              </div>\n            </ShareNetwork>\n          </b-dropdown-item>\n        </b-dropdown>\n        <!-- Show Previous Mail -->\n        <div\n          v-b-tooltip.hover\n          :title=\"$t('Previous')\"\n          :disabled=\"!hasPreviousEmail\"\n          @click=\"$emit('change-opened-email', 'previous')\"\n        >\n          <feather-icon\n            :icon=\"\n              $store.state.appConfig.isRTL\n                ? 'ChevronRightIcon'\n                : 'ChevronLeftIcon'\n            \"\n            size=\"25\"\n            class=\"ml-75 cursor-pointer\"\n            :class=\"{ 'text-muted pointer-events-none': !hasPreviousEmail }\"\n          />\n        </div>\n        <div\n          v-b-tooltip.hover\n          :title=\"$t('Next')\"\n          :disabled=\"!hasNextEmail\"\n          @click=\"$emit('change-opened-email', 'next')\"\n        >\n          <feather-icon\n            :icon=\"\n              $store.state.appConfig.isRTL\n                ? 'ChevronLeftIcon'\n                : 'ChevronRightIcon'\n            \"\n            size=\"25\"\n            class=\"ml-75 cursor-pointer\"\n            :class=\"{ 'text-muted pointer-events-none': !hasNextEmail }\"\n          />\n        </div>\n\n        <!-- Show Next Mail -->\n\n        <!-- Move email to folder -->\n        <!-- <b-dropdown\n          variant=\"link\"\n          no-caret\n          toggle-class=\"p-0\"\n          right\n          class=\"ml-75\"\n        >\n          <template #button-content>\n            <feather-icon icon=\"FolderIcon\" size=\"17\" />\n          </template>\n\n          <b-dropdown-item @click=\"$emit('move-email-to-folder', 'draft')\">\n            <feather-icon icon=\"Edit2Icon\" />\n            <span class=\"align-middle ml-50\">Draft</span>\n          </b-dropdown-item>\n\n          <b-dropdown-item @click=\"$emit('move-email-to-folder', 'spam')\">\n            <feather-icon icon=\"InfoIcon\" />\n            <span class=\"align-middle ml-50\">Spam</span>\n          </b-dropdown-item>\n\n          <b-dropdown-item\n            v-show=\"$route.params.folder !== 'trash'\"\n            @click=\"$emit('move-email-to-folder', 'trash')\"\n          >\n            <feather-icon icon=\"TrashIcon\" />\n            <span class=\"align-middle ml-50\">Trash</span>\n          </b-dropdown-item>\n        </b-dropdown> -->\n\n        <!-- Update Label -->\n        <!-- <b-dropdown\n          variant=\"link\"\n          no-caret\n          toggle-class=\"p-0\"\n          class=\"ml-75\"\n          right\n        >\n          <template #button-content>\n            <feather-icon\n              icon=\"TagIcon\"\n              size=\"17\"\n              class=\"align-middle text-body\"\n            />\n          </template>\n          <b-dropdown-item @click=\"$emit('update-email-label', 'personal')\">\n            <span class=\"mr-50 bullet bullet-success bullet-sm\" />\n            <span>Personal</span>\n          </b-dropdown-item>\n          <b-dropdown-item @click=\"$emit('update-email-label', 'company')\">\n            <span class=\"mr-50 bullet bullet-primary bullet-sm\" />\n            <span>Company</span>\n          </b-dropdown-item>\n          <b-dropdown-item @click=\"$emit('update-email-label', 'important')\">\n            <span class=\"mr-50 bullet bullet-warning bullet-sm\" />\n            <span>Important</span>\n          </b-dropdown-item>\n          <b-dropdown-item @click=\"$emit('update-email-label', 'private')\">\n            <span class=\"mr-50 bullet bullet-danger bullet-sm\" />\n            <span>Private</span>\n          </b-dropdown-item>\n        </b-dropdown> -->\n\n        <!-- Mark Un-Read -->\n        <!-- <feather-icon\n          icon=\"MailIcon\"\n          class=\"ml-75 cursor-pointer\"\n          size=\"17\"\n          @click=\"$emit('mark-email-unread')\"\n        /> -->\n\n        <!-- Move to Trash -->\n        <!-- <feather-icon\n          v-show=\"$route.params.folder !== 'trash'\"\n          icon=\"TrashIcon\"\n          class=\"ml-75\"\n          size=\"17\"\n          @click=\"$emit('move-email-to-folder', 'trash')\"\n        /> -->\n\n        <!-- Show Previous Mail -->\n        <!-- <feather-icon\n          :icon=\"\n            $store.state.appConfig.isRTL\n              ? 'ChevronRightIcon'\n              : 'ChevronLeftIcon'\n          \"\n          size=\"17\"\n          class=\"ml-75 cursor-pointer\"\n          :class=\"{\n            'text-muted pointer-events-none': true,\n            /*!opendedEmailMeta.hasPreviousEmail,*/\n          }\"\n          @click=\"$emit('change-opened-email', 'previous')\"\n        /> -->\n\n        <!-- Show Next Mail -->\n        <!-- <feather-icon :icon=\"\n          $store.state.appConfig.isRTL\n            ? 'ChevronLeftIcon'\n            : 'ChevronRightIcon'\n        \" size=\"17\" class=\"ml-75 cursor-pointer\" :class=\"{\n  'text-muted pointer-events-none': true /*!opendedEmailMeta.hasNextEmail*/,\n}\" @click=\"$emit('change-opened-email', 'next')\" /> -->\n      </div>\n    </div>\n\n    <!-- Email Details -->\n    <vue-perfect-scrollbar\n      v-if=\"emailViewData && !loading\"\n      :settings=\"perfectScrollbarSettings\"\n      class=\"email-scroll-area scroll-area\"\n    >\n      <!-- Label Row -->\n\n      <template>\n        <b-row>\n          <b-col cols=\"12\">\n            <div class=\"email-label\">\n              <b-badge\n                v-if=\"emailViewData.id\"\n                :key=\"emailViewData.id\"\n                pill\n                class=\"text-capitalize mr-50\"\n                :variant=\"`light-${resolveLabelColor(emailViewData.id)}`\"\n              >\n                ID : {{ emailViewData.id }}\n              </b-badge>\n              <b-badge\n                :key=\"emailViewData.odoo_id\"\n                pill\n                class=\"text-capitalize mr-50\"\n                :variant=\"`light-${resolveLabelColor(emailViewData.odoo_id)}`\"\n              >\n                Référence : {{ emailViewData.odoo_id }}\n              </b-badge>\n              <b-badge\n                :key=\"emailViewData.tag_id\"\n                pill\n                class=\"text-capitalize mr-50\"\n                :variant=\"`light-${resolveLabelColor(emailViewData.tag_id)}`\"\n              >\n                {{ emailViewData.tag ? $t(emailViewData.tag.name) : \"\" }}\n              </b-badge>\n              <b-badge\n                :key=\"emailViewData.subtag_id\"\n                pill\n                class=\"text-capitalize mr-50\"\n                :variant=\"`light-${resolveLabelColor(emailViewData.subtag_id)}`\"\n              >\n                {{ emailViewData.subtag ? $t(emailViewData.subtag.name) : \"\" }}\n              </b-badge>\n            </div>\n          </b-col>\n        </b-row>\n        <b-row>\n          <b-col cols=\"12\">\n            <ticket-detail :message=\"emailViewData\" />\n          </b-col>\n        </b-row>\n        <b-row v-for=\"threadMail in emailViewData.replies\" :key=\"threadMail.id\">\n          <b-col cols=\"12\">\n            <ticket-message-card :message=\"threadMail\" />\n          </b-col>\n        </b-row>\n      </template>\n\n      <b-row\n        v-if=\"\n          emailViewData &&\n          emailViewData.subtag &&\n          emailViewData.subtag.type &&\n          emailViewData.subtag.type.name !== 'informatif' &&\n          emailViewData.status.name !== 'closed'\n        \"\n      >\n        <b-col cols=\"12\">\n          <b-card>\n            <b-form>\n              <div id=\"quil-content2\" class=\"message-editor\">\n                <quill-editor\n                  ref=\"reply_box\"\n                  v-model=\"composeData.description\"\n                  :options=\"editorOption\"\n                  @change=\"onEditorChange($event)\"\n                />\n                <file-pond\n                  ref=\"pond\"\n                  name=\"test\"\n                  :label-idle=\"$t('labelIdle')\"\n                  :allow-multiple=\"true\"\n                  :allow-image-preview=\"false\"\n                  allow-remove=\"false\"\n                  :accepted-file-types=\"[\n                    'image/*',\n                    'application/pdf',\n                    'audio/wav',\n                    'audio/mpeg',\n                  ]\"\n                  :server=\"server\"\n                  :max-file-size=\"'12MB'\"\n                  :label-invalid-field=\"$t('labelInvalidField')\"\n                  :label-file-waiting-for-size=\"$t('labelFileWaitingForSize')\"\n                  :label-file-size-not-available=\"\n                    $t('labelFileSizeNotAvailable')\n                  \"\n                  :label-file-loading=\"$t('labelFileLoading')\"\n                  :label-file-load-error=\"$t('labelFileLoadError')\"\n                  :label-file-processing=\"$t('labelFileProcessing')\"\n                  :label-file-processing-complete=\"\n                    $t('labelFileProcessingComplete')\n                  \"\n                  :label-file-processing-aborted=\"\n                    $t('labelFileProcessingAborted')\n                  \"\n                  :label-file-processing-error=\"$t('labelFileProcessingError')\"\n                  :label-file-processing-revert-error=\"\n                    $t('labelFileProcessingRevertError')\n                  \"\n                  :label-file-remove-error=\"$t('labelFileRemoveError')\"\n                  :label-tap-to-cancel=\"$t('labelTapToCancel')\"\n                  :label-tap-to-retry=\"$t('labelTapToRetry')\"\n                  :label-tap-to-undo=\"$t('labelTapToUndo')\"\n                  :label-button-remove-item=\"$t('labelButtonRemoveItem')\"\n                  :label-button-abort-item-load=\"$t('labelButtonAbortItemLoad')\"\n                  :label-button-retry-item-load=\"$t('labelButtonRetryItemLoad')\"\n                  :label-button-abort-item-processing=\"\n                    $t('labelButtonAbortItemProcessing')\n                  \"\n                  :label-button-undo-item-processing=\"\n                    $t('labelButtonUndoItemProcessing')\n                  \"\n                  :label-button-retry-item-processing=\"\n                    $t('labelButtonRetryItemProcessing')\n                  \"\n                  :label-button-process-item=\"$t('labelButtonProcessItem')\"\n                  :label-max-file-size-exceeded=\"$t('labelMaxFileSizeExceeded')\"\n                  :label-max-file-size=\"$t('labelMaxFileSize')\"\n                  :label-max-total-file-size-exceeded=\"\n                    $t('labelMaxTotalFileSizeExceeded')\n                  \"\n                  :label-max-total-file-size=\"$t('labelMaxTotalFileSize')\"\n                  :label-file-type-not-allowed=\"$t('labelFileTypeNotAllowed')\"\n                  :image-validate-size-label-format-error=\"\n                    $t('imageValidateSizeLabelFormatError')\n                  \"\n                  :image-validate-size-label-image-size-too-small=\"\n                    $t('imageValidateSizeLabelImageSizeTooSmall')\n                  \"\n                  :image-validate-size-label-image-size-too-big=\"\n                    $t('imageValidateSizeLabelImageSizeTooBig')\n                  \"\n                  :image-validate-size-label-expected-min-size=\"\n                    $t('imageValidateSizeLabelExpectedMinSize')\n                  \"\n                  :image-validate-size-label-expected-max-size=\"\n                    $t('imageValidateSizeLabelExpectedMaxSize')\n                  \"\n                  :image-validate-size-label-image-resolution-too-low=\"\n                    $t('imageValidateSizeLabelImageResolutionTooLow')\n                  \"\n                  :image-validate-size-label-image-resolution-too-high=\"\n                    $t('imageValidateSizeLabelImageResolutionTooHigh')\n                  \"\n                  :image-validate-size-label-expected-min-resolution=\"\n                    $t('imageValidateSizeLabelExpectedMinResolution')\n                  \"\n                  :image-validate-size-label-expected-max-resolution=\"\n                    $t('imageValidateSizeLabelExpectedMaxResolution')\n                  \"\n                />\n              </div>\n\n              <b-row class=\"d-flex justify-content-end\">\n                <b-button variant=\"primary\" class=\"m-2\" @click=\"reply\">{{\n                  $t(\"Répondre\")\n                }}</b-button>\n              </b-row>\n            </b-form>\n          </b-card>\n        </b-col>\n      </b-row>\n    </vue-perfect-scrollbar>\n    <div\n      v-else\n      class=\"d-flex justify-content-center align-items-center\"\n      style=\"height: 100%\"\n    >\n      <div id=\"loading-bg\">\n        <div class=\"loading-logo\">\n          <img :src=\"require('@/assets/logo.png')\" alt=\"Logo\" />\n        </div>\n        <div class=\"loading\">\n          <div class=\"effect-1 effects\" />\n          <div class=\"effect-2 effects\" />\n          <div class=\"effect-3 effects\" />\n        </div>\n      </div>\n    </div>\n    <b-modal id=\"modal-1\" v-model=\"zoom\" :title=\"$t('Reassign Ticket')\">\n      <!-- Modal Footer -->\n      <template #modal-footer>\n        <!-- Footer: Left Content -->\n        <div>\n          <b-row class=\"clas d-flex justify-content-between\">\n            <div>\n              <b-button\n                v-ripple.400=\"'rgba(255, 255, 255, 0.15)'\"\n                split\n                variant=\"primary\"\n                right\n                @click=\"save\"\n              >\n                Modifier\n              </b-button>\n            </div>\n          </b-row>\n        </div>\n      </template>\n\n      <!-- Modal: Body -->\n      <b-form>\n        <!-- Field: To -->\n\n        <!-- Field: Subject -->\n        <div class=\"compose-mail-form-field d-flex flex-column\">\n          <label class=\"d-block text-left w-100\" for=\"email-subject\"\n            >Sélectionnez l'élément pour lequel vous avez besoin d'aide\n          </label>\n          <b-form-select\n            id=\"email-subject\"\n            v-model=\"editedItem.tag_id\"\n            :options=\"tags\"\n            text-field=\"name\"\n            value-field=\"id\"\n          />\n        </div>\n        <div class=\"compose-mail-form-field d-flex flex-column\">\n          <label class=\"d-block text-left w-100\" for=\"email-subject\"\n            >Sélectionnez l'élément pour lequel vous avez besoin d'aide\n          </label>\n\n          <b-form-select id=\"email-subject\" v-model=\"editedItem.sub_tag_id\">\n            <template v-for=\"option in subtags.filter(subtag=>!subtag.name.toLowerCase().includes('rejets'))\">\n              <b-form-select-option\n                :key=\"option.id\"\n                :value=\"option.id\"\n                class=\"rounded-pill mx-1\"\n              >\n                {{ $t(option.name) }} ({{ $t(option.type.name) }})\n              </b-form-select-option>\n            </template>\n          </b-form-select>\n        </div>\n\n        <div class=\"compose-mail-form-field d-flex flex-column\">\n          <label class=\"d-block text-left w-100\" for=\"email-subject\"\n            >{{ $t(\"Numéro contrat odoo (si nécessaire)\") }}\n          </label>\n          <b-form-input\n            id=\"email-subject\"\n            v-model=\"editedItem.odoo_id\"\n            class=\"border\"\n          />\n        </div>\n\n        <!-- <div class=\"compose-mail-form-field d-flex flex-column\">\n          <label class=\"d-block text-left w-100\" for=\"email-subject\"\n            >Sujet\n          </label>\n          <b-form-input\n            class=\"border\"\n            id=\"email-subject\"\n            v-model=\"composeData.subject\"\n          />\n        </div> -->\n\n        <!-- Field: Message - Quill Editor -->\n        <!-- <div class=\"message-editor\">\n        <quill-editor\n          id=\"quil-content\"\n          v-model=\"composeData.description\"\n          @change=\"onEditorChange($event)\"\n          :options=\"editorOption\"\n        >\n        </quill-editor>\n      </div> -->\n      </b-form>\n    </b-modal>\n    <b-modal v-model=\"dialog\" @ok=\"onSelectModal\"\n      ><b-col cols=\"12\">\n        <v-select\n          v-model=\"selected\"\n          :dir=\"$store.state.appConfig.isRTL ? 'rtl' : 'ltr'\"\n          :options=\"items\"\n          label=\"title\"\n          :filterable=\"false\"\n          :reduce=\"(item) => item.id\"\n          :selectable=\"() => true\"\n          @search=\"onSearch\"\n          @option:selecting=\"onSelect\"\n        >\n          <template #no-options=\"{ search, searching, loading }\">\n            Aucune resultats\n          </template>\n          <template #list-header>\n            <Can i=\"create\" a=\"ticket_predefined_description\">\n              <b-button block variant=\"outline-primary\" @click=\"show_add_modal\"\n                ><feather-icon icon=\"PlusIcon\" />{{\n                  $t(\"Ajouter un message prédéfini\")\n                }}</b-button\n              >\n            </Can>\n          </template>\n          <template #open-indicator=\"{ attributes }\">\n            <span v-bind=\"attributes\">🔽</span>\n          </template>\n          <template #option=\"{ title }\">\n            <div>\n              <span> {{ title }}</span>\n            </div>\n          </template>\n        </v-select>\n\n        <!--  <v-select :options=\"items\" @search=\"onSearch\" label=\"title\">\n          <template v-slot:option=\"option\">\n            <span :class=\"option.firstname\"></span>\n            {{ option.firstname }}\n          </template>\n\n        </v-select> -->\n      </b-col></b-modal\n    >\n    <b-modal v-model=\"addDialog\" size=\"xl\" @ok=\"saveNewModal\"\n      ><b-col cols=\"12\">\n        <div class=\"compose-mail-form-field d-flex flex-column my-2\">\n          <label class=\"d-block text-left w-100 mb-1\" for=\"email-subject\"\n            >{{ $t(\"Title\") }}\n          </label>\n          <b-form-input\n            id=\"email-subject\"\n            v-model=\"composeDataModal.title\"\n            class=\"border\"\n          />\n        </div>\n        <div class=\"message-editor\">\n          <quill-editor\n            v-model=\"composeDataModal.description\"\n            :options=\"editorOptionModal\"\n            @change=\"onEditorChangeModal($event)\"\n          />\n        </div>\n      </b-col>\n    </b-modal>\n  </div>\n</template>\n\n<script>\nimport { quillEditor } from \"vue-quill-editor\";\nimport vueFilePond from \"vue-filepond\";\n\n// Import FilePond styles\nimport \"filepond/dist/filepond.min.css\";\n\n// Import FilePond plugins\n// Please note that you need to install these plugins separately\n\n// Import image preview plugin styles\nimport \"filepond-plugin-image-preview/dist/filepond-plugin-image-preview.min.css\";\n\n// Import image preview and file type validation plugins\nimport FilePondPluginFileValidateType from \"filepond-plugin-file-validate-type\";\nimport FilePondPluginFileValidateSize from \"filepond-plugin-file-validate-size\";\nimport FilePondPluginImagePreview from \"filepond-plugin-image-preview\";\n/// /import // FilePondPluginPdfPreview from \"filepond-plugin-pdf-preview\"\n// Create component\nimport Ripple from \"vue-ripple-directive\";\nimport vSelect from \"vue-select\";\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\";\nimport { ref, watch } from \"@vue/composition-api\";\n// import useEmail from \"./useEmail\";\nimport { mapActions, mapGetters } from \"vuex\";\nimport TicketMessageCard from \"./TicketMessageCard.vue\";\nimport TicketDetail from \"./TicketDetail.vue\";\n\nconst FilePond = vueFilePond(\n  FilePondPluginFileValidateType,\n  FilePondPluginFileValidateSize,\n  FilePondPluginImagePreview\n  /// /// FilePondPluginPdfPreview,\n);\n\nexport default {\n  components: {\n    // BSV\n\n    quillEditor,\n    // 3rd Party\n    vSelect,\n    VuePerfectScrollbar,\n    quillEditor,\n\n    // SFC\n    TicketMessageCard,\n    TicketDetail,\n  },\n  directives: {\n    Ripple,\n  },\n  props: {\n    emailViewData: {\n      type: Object,\n      required: true,\n    },\n    tickets_ids: {\n      type: Array,\n      required: true,\n    },\n    // tags: {\n    //   type: Array,\n    // },\n    loading: {\n      type: Boolean,\n      required: true,\n    },\n    // opendedEmailMeta: {\n    //   type: Object,\n    //   required: true,\n    // },\n  },\n\n  setup(props) {\n    const resolveLabelColor = (label) => {\n      if (label === \"closed\") return \"success\";\n      if (label === \"open\") return \"warning\";\n      if (label === \"pending\") return \"danger\";\n      return \"secondary\";\n    };\n    const perfectScrollbarSettings = {\n      maxScrollbarLength: 200,\n    };\n    const attachments = ref([]);\n\n    const showWholeThread = ref(false);\n\n    // watch(\n    //   () => props.emailViewData.id,\n    //   () => {\n    //     showWholeThread.value = false;\n\n    //   }\n    // );\n    const email = {};\n\n    return {\n      // UI\n      perfectScrollbarSettings,\n      showWholeThread,\n      email,\n      attachments,\n      // useEmail\n      resolveLabelColor,\n    };\n  },\n  data() {\n    return {\n      subtags: [],\n      editedIndex: -1,\n      editedItem: {\n        name: \"\",\n      },\n      composeDataModal: {\n        // created_by: 1,\n\n        title: \"\",\n        description: \"\",\n      },\n      editorOption: {\n        modules: {\n          toolbar: {\n            container: [\n              [\"bold\", \"italic\", \"underline\", \"strike\"],\n              // [\"blockquote\", \"code-block\"],\n              // [{ header: 1 }, { header: 2 }],\n              // [{ list: \"ordered\" }, { list: \"bullet\" }],\n              // [{ script: \"sub\" }, { script: \"super\" }],\n              // [{ indent: \"-1\" }, { indent: \"+1\" }],\n              // [{ direction: \"rtl\" }],\n              // [{ size: [\"small\", false, \"large\", \"huge\"] }],\n              // [{ header: [1, 2, 3, 4, 5, 6, false] }],\n              // [{ font: [] }],\n              // [{ color: [] }, { background: [] }],\n              // [{ align: [] }],\n              // [\"clean\"],\n              // [\"link\", \"image\", \"video\"],\n            ],\n            handlers: {\n              Text: this.modal_show,\n            },\n          },\n        },\n\n        placeholder: this.$t(\"Rédigez votre réponse ici ...\"),\n      },\n      editorOptionModal: {\n        modules: {\n          toolbar: {\n            container: [\n              [\"bold\", \"italic\", \"underline\", \"strike\"],\n              // [\"blockquote\", \"code-block\"],\n              // [{ header: 1 }, { header: 2 }],\n              // [{ list: \"ordered\" }, { list: \"bullet\" }],\n              // [{ script: \"sub\" }, { script: \"super\" }],\n              // [{ indent: \"-1\" }, { indent: \"+1\" }],\n              // [{ direction: \"rtl\" }],\n              // [{ size: [\"small\", false, \"large\", \"huge\"] }],\n              // [{ header: [1, 2, 3, 4, 5, 6, false] }],\n              // [{ font: [] }],\n              // [{ color: [] }, { background: [] }],\n              // [{ align: [] }],\n              // [\"clean\"],\n              // [\"link\", \"image\", \"video\"],\n            ],\n          },\n        },\n\n        placeholder: this.$t(\"Ecrivez votre message prédéfini\"),\n      },\n      defaultItem: {\n        name: \"\",\n      },\n      addDialog: false,\n      items: [],\n      selected: null,\n      dialog: false,\n      zoom: false,\n      composeData: {\n        description: \"\",\n        attachments: [],\n      },\n      url: \"\",\n      test: null,\n\n      refresh: false,\n      socialShareIcons: [\n        { icon: \"mdi mdi-whatsapp\", text: \"Whatsapp\" },\n        { icon: \"mdi mdi-facebook\", text: \"Facebook\" },\n        { icon: \"mdi mdi-facebook-messenger\", text: \"Messenger\" },\n        { icon: \"mdi mdi-email\", text: \"Email\" },\n      ],\n    };\n  },\n  watch: {\n    \"emailViewData.id\": {\n      handler(val) {\n        this.showWholeThread = false;\n        var self = this;\n        window.removeEventListener(\"ticket_status_updated_event\", () => {\n        });\n        window.removeEventListener(\"ticket_reply_created_event\", () => {});\n        setTimeout(() => {\n          window.addEventListener(\"ticket_status_updated_event\", (event) => {\n            let ticket = event.detail.ticket;\n\n            if (self.emailViewData && self.emailViewData.id == ticket.id) {\n              self.emailViewData.status = ticket.status;\n              self.emailViewData.status_id = ticket.status_id;\n            }\n          });\n          window.addEventListener(\"ticket_reply_created_event\", (event) => {\n            let ticket = event.detail.ticket;\n            let reply = event.detail.reply;\n            if (self.emailViewData && self.emailViewData.id == ticket.id) {\n              if (\n                self.emailViewData.replies.findIndex(\n                  (el) => el.id == reply.id\n                ) == -1\n              ) {\n                self.emailViewData.replies.push(reply);\n                self.emailViewData.status = ticket.status;\n                self.emailViewData.status_id = ticket.status_id;\n              }\n            }\n          });\n        }, 100);\n        // if (val) {\n        //   // Retrieve current params\n        //   const currentParams = this.$router.currentRoute.params;\n\n        //   // Create new params object\n        //   const mergedParams = { ...currentParams, id:val };\n\n        //   // When router is not supplied path or name,\n        //   // it simply tries to update current route with new params or query\n        //   // Almost everything is optional.\n        //   this.$router.push({ params: mergedParams,replace:true });\n        // }\n      },\n      // force eager callback execution\n      immediate: true,\n    },\n    \"editedItem.tag_id\": {\n      handler(val) {\n        if (this.tags && this.tags.length > 0) {\n          const filter = this.tags.filter((tag) => tag.id == val);\n\n          if (filter[0] && filter[0].subtags) {\n            this.editedItem.sub_tag_id = filter[0].subtags[0].id;\n\n            this.subtags = filter[0].subtags;\n          } else {\n            this.editedItem.sub_tag_id = null;\n            this.subtags = [];\n          }\n        } else {\n          this.subtags = [];\n        }\n      },\n      immediate: true,\n    },\n  },\n\n  computed: {\n    ...mapGetters(\"auth\", { user: \"GET_USER_DATA\" }),\n    ...mapGetters(\"tickets\", [\"GET_STARRED\"]),\n    ...mapGetters(\"auth\", [\"HasPermissionTO\"]),\n    hasPreviousEmail() {\n      if (this.emailViewData && this.emailViewData.id) {\n        const index = this.tickets_ids.findIndex(\n          (el) => el == this.emailViewData.id\n        );\n        return !!(index > -1 && index - 1 >= 0);\n      }\n      return false;\n    },\n    hasNextEmail() {\n      if (this.emailViewData && this.emailViewData.id) {\n        const index = this.tickets_ids.findIndex(\n          (el) => el == this.emailViewData.id\n        );\n        return !!(index > -1 && index + 1 < this.tickets_ids.length);\n      }\n      return false;\n    },\n    is_starred() {\n      return this.GET_STARRED.includes(this.emailViewData.id);\n    },\n  },\n  async updated() {\n    if (this.HasPermissionTO(\"all\", \"ticket_predefined_description\")) {\n      const nd = document.createElement(\"span\");\n      nd.classList.add(\"mdi\", \"mdi-message-outline\");\n      const btns = document.querySelector(\"#quil-content2 .ql-Text\");\n      const exist = document.querySelectorAll(\"#quil-content2 .ql-Text span\");\n      if (btns && exist.length == 0) {\n        btns.appendChild(nd);\n      }\n    }\n  },\n  created() {\n    if (this.HasPermissionTO(\"all\", \"ticket_predefined_description\"))\n      this.editorOption.modules.toolbar.container.push([\"Text\"]);\n  },\n  async mounted() {\n    this.GET_TAGS()\n      .then((res) => {\n        this.tags = res.filter((el) => el.subtags && el.subtags.length > 0);\n      })\n      .catch((err) => {\n        console.log(err);\n      });\n    this.server = {\n      process: (\n        fieldName,\n        file,\n        metadata,\n        load,\n        error,\n        progress,\n        abort,\n        transfer,\n        options\n      ) => {\n        const reader = new FileReader();\n        reader.readAsDataURL(file);\n\n        const self = this;\n        reader.onload = function () {\n          self.composeData.attachments.push(reader.result);\n\n          load(reader.result);\n        };\n      },\n    };\n  },\n  methods: {\n    ...mapActions(\"tickets\", [\"SEARCH_MODAL\", \"ADD_TICKET_MODAL\"]),\n    modal_show() {\n      this.dialog = true;\n    },\n    scrollToReply() {\n      setTimeout(() => {\n        const container = this.$el.querySelector(\".ps-container\");\n        container.scrollTop = container.scrollHeight;\n        document.querySelector(\".ql-editor.ql-blank\").focus();\n      }, 0);\n    },\n    saveNewModal() {\n      this.ADD_TICKET_MODAL(this.composeDataModal).then((res) => {\n        if (res) {\n          this.composeData.description = res.description;\n          this.composeDataModal = {\n            title: \"\",\n            description: \"\",\n          };\n        }\n      });\n    },\n    show_add_modal() {\n      this.addDialog = true;\n      this.dialog = false;\n    },\n    goToContract() {\n      let { odoo_id } = this.emailViewData;\n\n      const array = odoo_id.split(\" - \");\n      odoo_id = array[0];\n      const url = `/${this.emailViewData.tag.name}/list?odoo_id=${odoo_id}`;\n      if (this.emailViewData.tag.name.toLowerCase().includes(\"total\")) {\n        this.$router.push({\n          name: \"DetailMega\",\n          params: { id: odoo_id },\n        });\n      } else if (this.emailViewData.tag.name.toLowerCase().includes(\"ucare\")) {\n        this.$router.push({\n          name: \"DetailUCare\",\n          params: { id: odoo_id },\n        });\n      } else {\n        this.$router.push({\n          name: \"DetailProximus\",\n          params: { id: odoo_id },\n        });\n      }\n    },\n    onSelectModal() {\n      this.composeData.description = this.body;\n    },\n    onSearch(search, loading) {\n      clearTimeout(this.timer);\n      this.timer = setTimeout(() => {\n        if (search.length >= 1) {\n          this.items = [];\n          loading(true);\n          this.SEARCH_MODAL(search).then((res) => {\n            this.items = res;\n            loading(false);\n            clearTimeout(this.timer);\n          });\n        }\n      }, 1000);\n    },\n\n    onSelect(selectedOption) {\n      this.body = selectedOption.description;\n      this.selected = selectedOption;\n    },\n    getUrl() {\n      this.SHORT_URL({ ticket: this.emailViewData.id }).then((res) => {\n        //console.log;\n        this.url = res;\n      });\n    },\n    closeDialog() {\n      // this.$router.go(-1);\n      const query = { ...this.$route.query };\n      delete query.id;\n      this.$router.replace({ query });\n      this.$emit(\"close-email-view\", this.emailViewData.id);\n    },\n    toggleStarred() {\n      // eslint-disable-next-line no-param-reassign\n      this.emailViewData.is_starred = this.is_starred;\n      this.$emit(\"toggleStarred\", this.emailViewData);\n    },\n    ToFaq() {\n      this.$router.push({\n        name: \"ticket-to-faq\",\n        params: {\n          id: this.emailViewData.id,\n        },\n      });\n    },\n    editItem() {\n      this.editedItem = { ...this.emailViewData };\n      this.zoom = true;\n    },\n    close() {\n      this.zoom = false;\n      this.$nextTick(() => {});\n    },\n    save() {\n      this.UPDATE_TICKET({\n        id: this.emailViewData.id,\n        payload: this.editedItem,\n      }).then((res) => {\n        this.emailViewData = { ...res };\n        this.close();\n      });\n    },\n    changeSeletecTicketStatus(val) {\n      this.$swal({\n        title: this.$t(\"Fermer ce Ticket\"),\n        text: this.$t(\"Vous êtes sur le point de fermer ce contrat\"),\n        icon: \"warning\",\n        showCancelButton: true,\n        confirmButtonText: this.$t(\"Oui, fermer\"),\n        cancelButtonText: this.$t(\"Annuler\"),\n        customClass: {\n          confirmButton: \"btn btn-primary\",\n          cancelButton: \"btn btn-outline-danger ml-1\",\n        },\n        buttonsStyling: false,\n      }).then((result) => {\n        if (result.value) {\n          this.STWICTH_TICKET_STATUS({\n            status_id: val,\n            tickets_ids: [this.emailViewData.id],\n          })\n            .then((res) => {\n              console.log(res);\n              this.emailViewData.status = res[0].status;\n              this.emailViewData.status_id = res[0].status_id;\n            })\n            .catch((e) => {});\n        } else if (result.dismiss === \"cancel\") {\n          this.$swal({\n            title: this.$t(\"Annulée\"),\n            text: this.$t(\"Votre ticket n'a pas été fermé\"),\n            icon: \"error\",\n            customClass: {\n              confirmButton: \"btn btn-success\",\n            },\n          });\n        }\n      });\n    },\n    ...mapActions(\"uhub\", [\n      \"GET_TICKET\",\n      \"TICKET_REPLY\",\n      \"GET_TAGS\",\n      \"UPDATE_TICKET\",\n    ]),\n\n    ...mapActions(\"tickets\", [\n      \"STWICTH_TICKET_STATUS\",\n      \"TOGGLE_STARRED\",\n      \"SHORT_URL\",\n    ]),\n    onEditorChange({ html }) {\n      const filtred = html.replace(/<img[^>]+>/, \"\");\n      this.composeData.description = filtred;\n    },\n    onEditorChangeModal({ html }) {\n      const filtred = html.replace(/<img[^>]+>/, \"\");\n      this.composeDataModal.description = filtred;\n    },\n    reply() {\n      // this.composeData.created_by = 1;\n      const data = {\n        id: this.emailViewData.id,\n        payload: this.composeData,\n      };\n\n      this.TICKET_REPLY(data)\n        .then((res) => {\n          //  console.log(res);\n          this.emailViewData.replies.push(res);\n\n          this.$refs.pond.removeFiles();\n          this.emailViewData.status_id = 2;\n          this.emailViewData.status = {\n            id: 2,\n            name: \"pending\",\n          };\n          this.composeData = {\n            description: \"\",\n            attachments: [],\n          };\n        })\n        .catch((e) => console.log(e));\n    },\n  },\n};\n</script>\n\n<style lang=\"scss\">\n@import \"@core/scss/vue/libs/vue-select.scss\";\n@import \"@core/scss/vue/libs/quill.scss\";\n</style>\n<style>\n.ql-editor {\n  max-height: 20vh !important;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TicketView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TicketView.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TicketView.vue?vue&type=template&id=e8a385fe&\"\nimport script from \"./TicketView.vue?vue&type=script&lang=js&\"\nexport * from \"./TicketView.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TicketView.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./TicketView.vue?vue&type=style&index=1&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","<template>\n  <!-- Need to add height inherit because Vue 2 don't support multiple root ele -->\n  <div id=\"tickets_interface\" style=\"height: inherit\">\n    <div class=\"body-content-overlay\" :class=\"{ show: mqShallShowLeftSidebar }\"\n      @click=\"mqShallShowLeftSidebar = false\" />\n\n    <!-- Email List -->\n    <div class=\"email-app-list\">\n      <!-- App Searchbar Header -->\n      <div class=\"app-fixed-search d-md-flex align-items-center\">\n        <!-- Toggler -->\n        <div class=\"sidebar-toggle d-block d-lg-none ml-1\">\n          <feather-icon icon=\"MenuIcon\" size=\"21\" class=\"cursor-pointer\" @click=\"mqShallShowLeftSidebar = true\" />\n        </div>\n\n        <!-- Searchbar -->\n        <div class=\"d-flex align-content-baseline justify-content-between w-100\">\n          <b-input-group class=\"input-group-merge\">\n            <b-input-group-prepend is-text>\n              <feather-icon icon=\"SearchIcon\" class=\"text-muted\" />\n            </b-input-group-prepend>\n            <b-form-input id=\"search_ticket\" v-model=\"searchQuery\" :placeholder=\"$t('Search ticket')\"\n              @input=\"updateRouteQuery\" />\n          </b-input-group>\n        </div>\n        <div class=\"d-flex align-content-baseline align-items-center justify-content-around\">\n          <div class=\"mb-1 mx-md-2\">\n            <b-badge> {{ total }} {{ $t(\"Tickets\") }}</b-badge>\n          </div>\n          <div class=\"align-items-center\" :class=\"{ 'd-flex': selectedEmails.length }\">\n            <!-- Update Mail Folder Dropdown -->\n\n            <b-pagination v-if=\"!showEmailDetails\" v-model=\"current_page\" :total-rows=\"total\" :per-page=\"per_page\"\n              base-url=\"#\" align=\"default\" @page-click=\"changePage\" />\n          </div>\n        </div>\n      </div>\n\n      <!-- App Action Bar -->\n      <div class=\"app-action d-flex flex-wrap\">\n        <div class=\"action-left\">\n          <div class=\"d-flex\">\n            <b-form-checkbox class=\"mr-2\" :checked=\"selectAllEmailCheckbox\"\n              :indeterminate=\"isSelectAllEmailCheckboxIndeterminate\" @change=\"selectAllCheckboxUpdate\">\n              {{ $t(\"Select All\") }}\n            </b-form-checkbox>\n\n            <b-form-radio-group v-if=\"\n              routeParams &&\n              !routeParams.status_id &&\n              !routeParams.informative\n            \" v-model=\"status\" name=\"permission\" switches>\n              <template v-for=\"el in status_list\">\n                <b-form-radio :key=\"el.id\" :value=\"el.id\" class=\"rounded-pill mx-1 text-capitalize\">\n                  {{ $t(el.name) }}\n                </b-form-radio>\n              </template>\n            </b-form-radio-group>\n\n            <b-form-checkbox v-if=\"\n              HasPermissionTO('close', 'ticket') &&\n              status == 2 &&\n              routeParams &&\n              !routeParams.status_id\n            \" id=\"checkbox-1\" v-model=\"has_replies\" class=\"ml-2\" name=\"checkbox-1\" value=\"1\" unchecked-value=\"0\"\n              switch variant=\"success\">\n              {{ has_replies == 1 ? $t(\"Avec Réponse\") : $t(\"Sans Réponse\") }}\n            </b-form-checkbox>\n            <b-form-checkbox v-if=\"\n              HasPermissionTO('close', 'ticket') &&\n              status == 1 \n            \" id=\"checkbox-1\" v-model=\"created_by_consultant\" class=\"ml-2\" name=\"checkbox-1\" value=\"0\"\n              unchecked-value=\"1\" switch variant=\"success\">\n              {{ created_by_consultant == 1 ? $t(\"consultant\") : $t(\"backoffice\") }}\n            </b-form-checkbox>\n\n\n            <b-form-checkbox v-if=\"\n              has_replies == 1 &&\n              HasPermissionTO('close', 'ticket') &&\n              status == 2 &&\n              routeParams &&\n              !routeParams.status_id\n            \" id=\"checkbox-55\" v-model=\"last_consultant_reply\" class=\"ml-2\" name=\"checkbox-55\" value=\"0\"\n              unchecked-value=\"1\" switch @change=\"getEmails\" variant=\"success\">\n              {{ last_consultant_reply == 1 ? $t(\"consultant\") : $t(\"backoffice\") }}\n            </b-form-checkbox>\n          </div>\n        </div>\n        <div v-if=\"selectedEmails.length\" class=\"align-items-center\" :class=\"{ 'd-flex': selectedEmails.length }\">\n          <!-- Update Mail Folder Dropdown -->\n          <div v-b-tooltip.hover :title=\"$t('Bookmark Ticket')\" @click=\"toggleSelectedMailStarred\">\n            <b-avatar class=\"mr-2 text-white\" variant=\"success\" icon=\"bookmark-star-fill\" />\n          </div>\n          <Can i=\"close\" a=\"ticket\">\n            <div v-b-tooltip.hover :title=\"$t('Close Ticket')\" @click=\"changeSeletecTicketStatus(3)\">\n              <b-avatar class=\"mr-2\" variant=\"danger\" icon=\"x-circle-fill\" />\n            </div>\n          </Can>\n        </div>\n        <div v-else class=\"align-items-center\" :class=\"{ 'd-flex': selectedEmails.length }\">\n          <!-- Update Mail Folder Dropdown -->\n          <div v-b-tooltip.hover :title=\"$t('Refresh')\" @click=\"getEmails\">\n            <b-avatar v-show=\"!selectedEmails.length\" variant=\"success\" icon=\"arrow-clockwise\" />\n          </div>\n        </div>\n      </div>\n\n      <!-- Emails List -->\n      <!-- @ps-y-reach-end=\"loadMoreEmails\" -->\n      <vue-perfect-scrollbar ref=\"perfect\" :settings=\"perfectScrollbarSettings\" class=\"email-user-list scroll-area\">\n        <ul v-if=\"!loading\" class=\"email-media-list\">\n          <li v-for=\"(email, index) in emails\" :key=\"email.id\" :ref=\"`${'email' + email.id}`\">\n            <b-media tag=\"li\" no-body :class=\"{\n              'border shadow-lg': email.is_starred,\n              'mail-read': !email.is_starred,\n            }\" :style=\"`background-color:${resolveLabelColor(\n                email.status.name,\n                email.subtag.type.name\n              )}`\" @click=\"goTo(email)\">\n              <b-media-aside class=\"media-left mr-50\">\n                <b-avatar class=\"avatar\" size=\"40\" variant=\"primary\" :src=\"email.created_by.avatar\" />\n                <div class=\"user-action\">\n                  <b-form-checkbox :checked=\"selectedEmails.includes(email.id)\" @change=\"toggleSelectedMail(email.id)\"\n                    @click.native.stop />\n                </div>\n              </b-media-aside>\n\n              <b-media-body>\n                <div class=\"mail-details\">\n                  <div class=\"mail-items\">\n                    <h5 class=\"mb-25\">\n                      {{ email.created_by.firstname }}\n                      {{ email.created_by.lastname }}\n                      : [{{ email.subject }}]\n                      <b-badge v-if=\"email.replies_count\" :key=\"email.id\" pill class=\"text-capitalize mr-50\"\n                        :variant=\"`primary`\">\n                        {{ email.replies_count }}\n                      </b-badge>\n                    </h5>\n                    <span class=\"text-truncate\">\n                      <div class=\"email-label\">\n                        <b-badge v-if=\"email.id\" :key=\"email.id\" pill class=\"text-capitalize mr-50\"\n                          :variant=\"`light-${resolveLabelColor(email.id)}`\">\n                          ID : {{ email.id }}\n                        </b-badge>\n                        <b-badge v-if=\"email.odoo_id\" :key=\"email.odoo_id\" pill class=\"text-capitalize mr-50\"\n                          :variant=\"`light-${resolveLabelColor(email.odoo_id)}`\">\n                          Référence : {{ email.odoo_id }}\n                        </b-badge>\n                        <b-badge :key=\"email.tag.id\" pill class=\"text-capitalize mr-50\"\n                          :variant=\"`light-${resolveLabelColor(email.tag.id)}`\">\n                          {{ $t(email.tag.name) }}\n                        </b-badge>\n                        <b-badge :key=\"email.subtag.id\" pill class=\"text-capitalize mr-50\" :variant=\"`light-${resolveLabelColor(\n                          email.subtag.id\n                        )}`\">\n                          {{ $t(email.subtag.name) }}\n                        </b-badge>\n                      </div>\n                    </span>\n                  </div>\n                  <div class=\"mail-meta-item\">\n                    <div class=\"email-favorite text-right\">\n                      <feather-icon icon=\"BookmarkIcon\" size=\"25\" :class=\"{\n                        'text-warning fill-current ': email.is_starred,\n                      }\" @click.stop=\"toggleStarred(email)\" />\n                    </div>\n                    <feather-icon v-if=\"email.attachments && email.attachments.length\" icon=\"PaperclipIcon\" />\n\n                    <span class=\"mail-date\">{{\n                      $moment(email.updated_at).fromNow()\n                    }}</span>\n                  </div>\n                </div>\n\n                <div class=\"mail-message\">\n                  {{ email.count }}\n                  <p v-if=\"email.replies_count && email.last_reply\" class=\"text-truncate mb-0\">\n                    <!-- {{email.last_reply.created_by.firstname+' '+email.last_reply.created_by.firstname+' : '}} -->\n\n                    {{\n                      email.last_reply.description.replace(/(<([^>]+)>)/gi, \"\")\n                        .length > 100\n                        ? email.last_reply.description\n                          .replace(/(<([^>]+)>)/gi, \"\")\n                          .substring(0, 100) + \"...\"\n                        : email.last_reply.description.replace(\n                          /(<([^>]+)>)/gi,\n                          \"\"\n                        )\n                    }}\n                  </p>\n                  <p v-else class=\"text-truncate mb-0\">\n                    {{\n                      email.description.replace(/(<([^>]+)>)/gi, \"\").length >\n                        100\n                        ? email.description\n                          .replace(/(<([^>]+)>)/gi, \"\")\n                          .substring(0, 100) + \"...\"\n                        : email.description.replace(/(<([^>]+)>)/gi, \"\")\n                    }}\n                  </p>\n                </div>\n              </b-media-body>\n            </b-media>\n            <!-- <b-media v-else tag=\"li\" no-body>\n                <b-media-aside class=\"media-left mr-50\">\n                  <b-skeleton type=\"avatar\"></b-skeleton>\n                  <div class=\"user-action\">\n                    <div class=\"email-favorite\">\n                      <b-skeleton-icon width=\"70\"></b-skeleton-icon>\n                    </div>\n                  </div>\n                </b-media-aside>\n\n                <b-media-body>\n                  <b-skeleton-img no-aspect height=\"75px\"></b-skeleton-img>\n                </b-media-body>\n              </b-media> -->\n          </li>\n        </ul>\n        <ul v-else class=\"email-media-list\">\n          <div id=\"loading-bg\">\n            <div class=\"loading-logo\">\n              <img :src=\"require('@/assets/logo.png')\" alt=\"Logo\" />\n            </div>\n            <div class=\"loading\">\n              <div class=\"effect-1 effects\" />\n              <div class=\"effect-2 effects\" />\n              <div class=\"effect-3 effects\" />\n            </div>\n          </div>\n        </ul>\n      </vue-perfect-scrollbar>\n    </div>\n\n    <!-- Email View/Detail -->\n    <ticket-view :tickets_ids=\"tickets_ids\" :class=\"{ show: showEmailDetails }\" :email-view-data=\"emailViewData\"\n      :loading=\"loadTicket\" :opended-email-meta=\"opendedEmailMeta\" @close-email-view=\"closeTicketModal\"\n      @mark-email-unread=\"markOpenEmailAsUnread\" @toggleStarred=\"toggleStarred\"\n      @change-opened-email=\"changeOpenedEmail\" />\n    <!-- @close-email-view=\"showEmailDetails = false\"\n      @move-email-to-folder=\"moveOpenEmailToFolder\"\n      @toggle-email-starred=\"toggleStarred(emailViewData)\"\n      @update-email-label=\"updateOpenEmailLabel\"\n       @mark-email-unread=\"markOpenEmailAsUnread\"\n      @change-opened-email=\"changeOpenedEmail\"\n        :opended-email-meta=\"opendedEmailMeta\" -->\n    <!-- Sidebar -->\n    <portal to=\"content-renderer-sidebar-left\">\n      <ticket-left-sidebar :shall-show-email-compose-modal=\"getCompose\" :emails-meta=\"emailsMeta\"\n        :email-test=\"GET_LEFT_BAR\" :class=\"{ show: mqShallShowLeftSidebar }\"\n        @close-left-sidebar=\"mqShallShowLeftSidebar = false\" />\n    </portal>\n\n    <!-- Compose Email Modal -->\n    <ticket-compose v-model=\"getCompose\" :tags=\"tags\" @rerender=\"getEmails\" />\n  </div>\n</template>\n\n<script>\nimport store from \"@/store\";\nimport { mapActions, mapGetters, mapMutations } from \"vuex\";\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\";\nimport { filterTags, formatDateToMonthShort } from \"@core/utils/filter\";\nimport { useRouter } from \"@core/utils/utils\";\nimport { useResponsiveAppLeftSidebarVisibility } from \"@core/comp-functions/ui/app\";\nimport Pagination from \"@/components/Pagination.vue\";\nimport TicketLeftSidebar from \"./TicketLeftSidebar.vue\";\nimport TicketView from \"./TicketView.vue\";\n// import emailStoreModule from \"./emailStoreModule\";\n// import useTicket from \"./useTicket\";\nimport TicketCompose from \"./TicketCompose.vue\";\n// const { route, router } = useRouter();\n\n// Left Sidebar Responsiveness\n\nexport default {\n  components: {\n    // 3rd Party\n    VuePerfectScrollbar,\n    // App SFC\n    TicketLeftSidebar,\n    TicketView,\n    TicketCompose,\n    Pagination,\n  },\n\n  data() {\n    return {\n      status_list: [\n        { id: null, name: \"all\" },\n        { id: 1, name: \"open\" },\n        { id: 2, name: \"pending\" },\n        { id: 3, name: \"closed\" },\n      ],\n      timer: null,\n      tags: [],\n      emails: [],\n      emailsMeta: {},\n      perfectScrollbarSettings: {\n        maxScrollbarLength: 150,\n      },\n      emailTest: [],\n      total: 0,\n      searchQuery: \"\",\n      current_page: 1,\n      per_page: 50,\n      loading: false,\n      loadTicket: false,\n      currentlength: 0,\n      selectedEmails: [],\n      showEmailDetails: false,\n      emailViewData: {},\n      shallShowEmailComposeModal: false,\n      mqShallShowLeftSidebar: false,\n      // useResponsiveAppLeftSidebarVisibility().mqShallShowLeftSidebar\n    };\n  },\n\n  async mounted() {\n    this.last_consultant_reply = 0;\n    this.RESET_TICKETS();\n    this.loading = true;\n    this.GET_MY_TAGS()\n      .then((res) => {\n        this.tags = res.filter((el) => el.subtags && el.subtags.length > 0);\n      })\n      .catch((err) => {\n        console.log(err);\n      });\n    this.setCompose(false);\n\n    await this.ALL_FAVOURITES();\n    await this.getEmails();\n\n    const self = this;\n    window.addEventListener(\"ticket_created_event\", (event) => {\n      // self.getEmails()\n      let ticket = event.detail.ticket;\n      // console.log(\"ticket_created_event\",ticket),\n      self.total++;\n      if (\n        self.current_page != 1 ||\n        self.emails.findIndex((el) => el.id == ticket.id) > -1\n      ) {\n        return;\n      }\n\n      const params = self.routeParams\n        ? JSON.parse(JSON.stringify(self.routeParams))\n        : {};\n      if (!params.status_id && this.status) {\n        params.status_id = this.status;\n      }\n\n      if (\n        params &&\n        ((params.tag_id && params.tag_id == ticket.tag_id) ||\n          (params.sub_tag_id && params.sub_tag_id == ticket.sub_tag_id) ||\n          (params.group_id && params.group_id == ticket.group_id) ||\n          (params.mine && ticket.created_by.id == self.user.id) ||\n          (params.reject && ticket.subtag.name.includes(\"rejet\")) ||\n          (params.informative &&\n            ticket.subtag.type.name.includes(\"informatif\")))\n      ) {\n        //  console.log(params);\n\n        //   console.log({\"params.tag_id && params.tag_id == ticket.tag_id \":params && params.tag_id && params.tag_id == ticket.tag_id ,\n        //       \"params.sub_tag_id && params.sub_tag_id == ticket.sub_tag_id\":params && params.sub_tag_id && params.sub_tag_id == ticket.sub_tag_id ,\n        //       \"params.group_id && params.group_id == ticket.group_id\":params && params.group_id && params.group_id == ticket.group_id ,\n        //       \"params.mine && ticket.created_by.id == self.user.id\":params && params.mine && ticket.created_by.id == self.user.id ,\n        //       \"params.reject && ticket.subtag.name.includes('rejet')\":params && params.reject && ticket.subtag.name.includes(\"rejet\") ,\n        //       \"params.informative && ticket.subtag.type.name.includes('informatif')\":params && params.informative && ticket.subtag.type.name.includes(\"informatif\") ,\n        //       \"params.status_id \":params && !params.status_id ,\n        //       \"params.status_id && params.status_id == ticket.status_id\":params && params.status_id && params.status_id == ticket.status_id}\n        //       );\n        if (\n          !params.status_id ||\n          (params.status_id && params.status_status_id == ticket.status_id)\n        ) {\n          self.emails.unshift(ticket);\n          self.emails.pop();\n          self.orderMails();\n        }\n      } else if (Object.keys(params).length == 0) {\n        self.emails.unshift(ticket);\n        self.emails.pop();\n        self.orderMails();\n      }\n    });\n    window.addEventListener(\"ticket_reply_created_event\", (event) => {\n      let ticket = event.detail.ticket;\n      let index = self.emails.findIndex((el) => el.id == ticket.id);\n      if (index > -1) {\n        ticket.replies_count = ticket.replies.length;\n        self.emails[index] = ticket;\n        self.emails[index].updated_at = ticket.updated_at;\n\n        self.orderMails();\n      }\n    });\n\n    window.addEventListener(\"ticket_status_updated_event\", (event) => {\n      let ticket = event.detail.ticket;\n      let index = self.emails.findIndex((el) => el.id == ticket.id);\n      if (index > -1) {\n        self.emails[index].status = ticket.status;\n        self.emails[index].status_id = ticket.status_id;\n        self.emails[index].updated_at = ticket.updated_at;\n        self.orderMails();\n      }\n    });\n  },\n  beforeDestroy() {\n    window.removeEventListener(\"ticket_created_event\", () => { });\n    window.removeEventListener(\"ticket_reply_created_event\", () => { });\n    window.removeEventListener(\"ticket_status_updated_event\", () => { });\n  },\n  computed: {\n    ...mapGetters(\"tickets\", [\n      \"GET_STARRED\",\n      \"get_filter\",\n      \"get_has_replies\",\n      \"get_created_by_consultant\",\n      \"get_last_consultant_reply\",\n    ]),\n    ...mapGetters(\"auth\", [\"HasPermissionTO\"]),\n    ...mapGetters(\"auth\", {\n      user: \"GET_UHUB_USER_DATA\",\n    }),\n    ...mapGetters(\"uhub\", [\"getCompose\", \"GET_LEFT_BAR\"]),\n    status: {\n      get() {\n        return this.get_filter;\n      },\n      set(val) {\n        // set does not return anything\n        this.set_filter(val);\n      },\n    },\n    has_replies: {\n      get() {\n        return this.get_has_replies;\n      },\n      set(val) {\n        // set does not return anything\n        this.set_has_replies(val);\n      },\n    },\n    created_by_consultant: {\n      get() {\n        return this.get_created_by_consultant;\n      },\n      set(val) {\n        // set does not return anything\n        this.set_created_by_consultant(val);\n      },\n    },\n    last_consultant_reply: {\n      get() {\n        return this.get_last_consultant_reply;\n      },\n      set(val) {\n        console.log(val);\n        // set does not return anything\n        this.set_last_consultant_reply(val);\n      },\n    },\n    tickets_ids() {\n      return this.emails.map((el) => el.id);\n    },\n    routeParams() {\n      return this.$route.params;\n    },\n    routeQuery() {\n      return this.$route.query;\n    },\n    selectAllEmailCheckbox() {\n      this.emails.length && this.emails.length === this.selectedEmails.length;\n    },\n    isSelectAllEmailCheckboxIndeterminate() {\n      return (\n        Boolean(this.selectedEmails.length) &&\n        this.emails.length !== this.selectedEmails.length\n      );\n    },\n    opendedEmailMeta() {\n      const openedEmailIndex = this.emails.findIndex(\n        (e) => e.id === this.emailViewData.id\n      );\n      return {\n        hasNextEmail: Boolean(this.emails[openedEmailIndex + 1]),\n        hasPreviousEmail: Boolean(this.emails[openedEmailIndex - 1]),\n      };\n    },\n  },\n  watch: {\n    get_filter() {\n      this.getEmails();\n    },\n    get_has_replies() {\n      this.getEmails();\n    },\n    get_created_by_consultant() {\n      this.getEmails();\n    },\n    // get_last_consultant_reply() {\n    //   this.getEmails();\n    // },\n    shallShowEmailComposeModal(val) { },\n    routeParams: {\n      handler(val, oldVal) {\n        this.showEmailDetails = false;\n        this.selectedEmails = [];\n        // if (val && val.sub_tag_id) {\n        //   this.removeTickets(val.sub_tag_id);\n        // }\n        this.getEmails();\n      },\n      immediate: false,\n      deep: true,\n    },\n    routeQuery: {\n      handler(val) {\n        if (val && val.id) {\n          this.updateEmailViewData(val);\n        }\n        if (val && val.search) {\n          this.searchQuery = val.search;\n        }\n      },\n      // force eager callback execution\n      immediate: true,\n    },\n    searchQuery() {\n      this.timer = setTimeout(() => {\n        this.getEmails();\n        clearTimeout(this.timer);\n      }, 2000);\n    },\n    emailViewData() {\n      this.showEmailDetails = true;\n    },\n  },\n  methods: {\n    closeTicketModal(val) {\n      this.showEmailDetails = false;\n\n      if (this.$refs[`email${val}`]) {\n        const [el] = this.$refs[`email${val}`];\n        if (el) {\n          this.$nextTick(function () {\n            this.$refs.perfect.$el.scrollTop = el.offsetTop;\n          });\n        }\n      }\n    },\n    ...mapActions(\"uhub\", [\"GET_TICKETS\", \"GET_TICKET\", \"GET_MY_TAGS\"]),\n    ...mapActions(\"tickets\", [\n      \"TOGGLE_STARRED\",\n      \"ALL_FAVOURITES\",\n      \"STWICTH_TICKET_STATUS\",\n    ]),\n    ...mapMutations(\"uhub\", [\"setCompose\", \"removeTickets\"]),\n    ...mapMutations(\"tickets\", [\n      \"set_filter\",\n      \"RESET_TICKETS\",\n      \"set_has_replies\",\n      \"set_created_by_consultant\",\n      \"set_last_consultant_reply\"\n    ]),\n\n    goTo(item) {\n      this.$router.push({ name: this.$router.name, query: { id: item.id } });\n    },\n    updateEmailViewData(email) {\n      this.loading = true;\n      this.loadTicket = true;\n      this.GET_TICKET(email.id)\n\n        .then((res) => {\n          this.emailViewData = res;\n          this.loadTicket = false;\n        })\n        .catch((e) => console.log(e));\n      this.showEmailDetails = true;\n    },\n    loadMoreEmails(e) {\n      // if (this.emails.length == this.currentlength) {\n      //   this.emails = this.emails.concat(this.emails);\n      //   this.currentlength = this.emails.length;\n      // }\n    },\n    changeSeletecTicketStatus(val) {\n      this.$swal({\n        title: this.$t(\"Fermer ce Ticket\"),\n        text: this.$t(\"Vous êtes sur le point de fermer ce contrat\"),\n        icon: \"warning\",\n        showCancelButton: true,\n        confirmButtonText: this.$t(\"Oui, fermer\"),\n        cancelButtonText: this.$t(\"Annuler\"),\n        customClass: {\n          confirmButton: \"btn btn-primary\",\n          cancelButton: \"btn btn-outline-danger ml-1\",\n        },\n        buttonsStyling: false,\n      }).then((result) => {\n        if (result.value) {\n          this.STWICTH_TICKET_STATUS({\n            status_id: val,\n            tickets_ids: [...this.selectedEmails],\n          })\n            .then(() => {\n              this.getEmails();\n            })\n            .catch((e) => { });\n        } else if (result.dismiss === \"cancel\") {\n          this.$swal({\n            title: this.$t(\"Annulée\"),\n            text: this.$t(\"Votre ticket n'a pas été fermé\"),\n            icon: \"error\",\n            customClass: {\n              confirmButton: \"btn btn-success\",\n            },\n          });\n        }\n      });\n    },\n\n    resolveLabelColor(label, status = null) {\n      if (label === \"closed\") {\n        if (status && status == \"informatif\") {\n          return \"rgba(0,255,255,0.08)\";\n        }\n        return \"rgba(0,255,0,0.08)\";\n      }\n      if (label === \"open\") return \"rgba(255,255,0,0.08\";\n      if (label === \"pending\") return \"rgba(255,0,0,0.08\";\n      return \"dark\";\n    },\n    updateRouteQuery(val) {\n      const currentRouteQuery = JSON.parse(JSON.stringify(this.$route.query));\n\n      if (val) currentRouteQuery.q = val;\n      else delete currentRouteQuery.q;\n\n      // router.replace({ name: route.name, query: currentRouteQuery });\n    },\n    toggleSelectedMail(mailId) {\n      const mailIndex = this.selectedEmails.indexOf(mailId);\n\n      if (mailIndex === -1) this.selectedEmails.push(mailId);\n      else this.selectedEmails.splice(mailIndex, 1);\n    },\n    selectAllCheckboxUpdate(val) {\n      this.selectedEmails = val ? this.emails.map((mail) => mail.id) : [];\n    },\n    toggleStarred(email) {\n      // eslint-disable-next-line no-param-reassign\n      email.is_starred = !email.is_starred;\n      this.TOGGLE_STARRED({ id: email.id, is_starred: email.is_starred }).then(\n        () => {\n          this.orderMails();\n        }\n      );\n    },\n    orderMails() {\n      const emails = this.emails.map((email) => {\n        email.is_starred = this.GET_STARRED.includes(email.id);\n        return email;\n      });\n      const starred = emails\n        .filter((mail) => mail.is_starred)\n        .sort((a, b) =>\n          this.$moment(a.updated_at) > this.$moment(b.updated_at) ? -1 : 1\n        );\n      const others = emails\n        .filter((mail) => !mail.is_starred)\n        .sort((a, b) =>\n          this.$moment(a.updated_at) > this.$moment(b.updated_at) ? -1 : 1\n        );\n\n      this.emails = [...starred, ...others];\n    },\n    toggleSelectedMailStarred() {\n      this.emails = this.emails.map((mail) => {\n        if (this.selectedEmails.includes(mail.id)) {\n          mail.is_starred = true;\n\n          this.TOGGLE_STARRED({ id: mail.id, is_starred: mail.is_starred });\n        }\n        return mail;\n      });\n      this.getEmails();\n      // eslint-disable-next-line no-param-reassign\n      // email.is_starred = !email.is_starred;\n    },\n\n    // moveSelectedEmailsToFolder(folder) {\n    //   store\n    //     .dispatch(\"app-email/updateEmail\", {\n    //       emailIds: this.selectedEmails,\n    //       dataToUpdate: { folder },\n    //     })\n    //     .then(() => {\n    //       this.getEmails();\n    //     })\n    //     .finally(() => {\n    //       this.selectedEmails = [];\n    //     });\n    // },\n    // updateSelectedEmailsLabel(label) {\n    //   store\n    //     .dispatch(\"app-email/updateEmailLabels\", {\n    //       emailIds: this.selectedEmails,\n    //       label,\n    //     })\n    //     .then(() => {\n    //       this.getEmails();\n    //     })\n    //     .finally(() => {\n    //       this.selectedEmails = [];\n    //     });\n    // },\n    // markSelectedEmailsAsUnread() {\n    //   store\n    //     .dispatch(\"app-email/updateEmail\", {\n    //       emailIds: this.selectedEmails,\n    //       dataToUpdate: { isRead: false },\n    //     })\n    //     .then(() => {\n    //       this.getEmails();\n    //     })\n    //     .finally(() => {\n    //       this.selectedEmails = [];\n    //     });\n    // },\n    moveOpenEmailToFolder(folder) {\n      this.selectedEmails = [this.emailViewData.id];\n      moveSelectedEmailsToFolder(folder);\n      this.selectedEmails = [];\n      this.showEmailDetails = false;\n    },\n    updateOpenEmailLabel(label) {\n      this.selectedEmails = [this.emailViewData.id];\n      updateSelectedEmailsLabel(label);\n\n      // Update label in opened email\n      const labelIndex = this.emailViewData.labels.indexOf(label);\n      if (labelIndex === -1) this.emailViewData.labels.push(label);\n      else this.emailViewData.labels.splice(labelIndex, 1);\n\n      this.selectedEmails = [];\n    },\n\n    markOpenEmailAsUnread() {\n      this.selectedEmails = [this.emailViewData.id];\n      markSelectedEmailsAsUnread();\n\n      this.selectedEmails = [];\n      this.showEmailDetails = false;\n    },\n\n    changeOpenedEmail(dir) {\n      const openedEmailIndex = this.emails.findIndex(\n        (e) => e.id === this.emailViewData.id\n      );\n      const newEmailIndex =\n        dir === \"previous\" ? openedEmailIndex - 1 : openedEmailIndex + 1;\n\n      const email = this.emails[newEmailIndex];\n      if (email) this.goTo(email);\n    },\n    changePage(evt, page) {\n      this.current_page = page;\n      this.getEmails();\n    },\n    getEmails() {\n      this.loading = true;\n      const params = this.routeParams\n        ? JSON.parse(JSON.stringify(this.routeParams))\n        : {};\n      params.page = this.current_page;\n      params.search = this.searchQuery;\n      if (!params.status_id && this.status) {\n        params.status_id = this.status;\n        if (params.status_id == 2) {\n          params.has_replies = this.has_replies;\n          params.last_consultant_reply = this.last_consultant_reply;\n        }\n        if (params.status_id == 1)\n          params.created_by_consultant = this.created_by_consultant;\n      }\n      this.GET_TICKETS(params).then((res) => {\n        this.per_page = res.per_page;\n        this.current_page = res.current_page;\n        this.total = res.total;\n        const data = res.data.map((e) => {\n          e.is_starred = this.GET_STARRED.includes(e.id);\n          // e.isRead = parseFloat(Math.round(Math.random()));\n          e.labels = [];\n          return e;\n        });\n\n        this.emails = data;\n\n        this.orderMails();\n        this.loading = false;\n        // this.currentlength = this.emails.length;\n      });\n    },\n  },\n};\n</script>\n\n<style lang=\"scss\">\n@import \"~@core/scss/base/pages/app-email.scss\";\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Ticket.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Ticket.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Ticket.vue?vue&type=template&id=3eefa53c&\"\nimport script from \"./Ticket.vue?vue&type=script&lang=js&\"\nexport * from \"./Ticket.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Ticket.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TicketCompose.vue?vue&type=style&index=0&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"demo-spacing-0\"},[_c('b-pagination',{attrs:{\"total-rows\":_vm.rows,\"base-url\":\"#\",\"align\":_vm.align},model:{value:(_vm.page),callback:function ($$v) {_vm.page=$$v},expression:\"page\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div class=\"demo-spacing-0\">\n    <!-- pagination -->\n    <b-pagination\n      v-model=\"page\"\n      :total-rows=\"rows\"\n      base-url=\"#\"\n      :align=\"align\"\n    />\n  </div>\n</template>\n\n<script>\nexport default {\n  props: ['align', 'rows', 'currentPage'],\n  data() {\n    return {\n      page: 1,\n    }\n  },\n  mounted() {\n    this.page = this.currentPage\n  },\n}\n</script>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pagination.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pagination.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Pagination.vue?vue&type=template&id=f0c8fd38&\"\nimport script from \"./Pagination.vue?vue&type=script&lang=js&\"\nexport * from \"./Pagination.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Ticket.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TicketCompose.vue?vue&type=style&index=2&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"sidebar-left\"},[_c('div',{staticClass:\"sidebar\"},[_c('div',{staticClass:\"sidebar-content email-app-sidebar\"},[_c('div',{staticClass:\"email-app-menu\"},[_c('div',{staticClass:\"form-group-compose text-center compose-btn\"},[_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(255, 255, 255, 0.15)'),expression:\"'rgba(255, 255, 255, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"variant\":\"primary\",\"block\":\"\"},on:{\"click\":_vm.composeTicket}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Compose\"))+\" \")])],1),(!_vm.loading)?_c('vue-perfect-scrollbar',{staticClass:\"sidebar-menu-list scroll-area\",attrs:{\"settings\":_vm.perfectScrollbarSettings}},_vm._l((_vm.emailTest),function(element,index){return _c('div',{key:index},[_c('p',{staticClass:\"h4 mt-3 mb-1 px-2 h1 text-muted\"},[_vm._v(\" \"+_vm._s(_vm.$t(element.title))+\" \")]),_c('b-list-group',{staticClass:\"list-group-messages\"},_vm._l((element.children),function(filter){return _c('div',{key:filter.title + _vm.$route.path + index},[_c('b-list-group-item',{attrs:{\"to\":filter.route,\"active\":_vm.isDynamicRouteActive(filter.route)},on:{\"click\":function($event){return _vm.$emit('close-left-sidebar')}}},[(filter.route.name !== 'tickets-status')?_c('feather-icon',{staticClass:\"mr-75\",attrs:{\"icon\":filter.icon,\"size\":\"18\"}}):_c('span',{staticClass:\"p-0 m-0 text-capitalize\"},[(filter.title == 'open')?_c('span',{staticClass:\"mdi mdi-email-sync-outline mr-75 h3 pt-0 mt-0\"}):_vm._e(),(filter.title == 'pending')?_c('span',{staticClass:\"mdi mdi-email-open-outline mr-75 h3 p-0 m-0\"}):_vm._e(),(filter.title == 'closed')?_c('span',{staticClass:\"mdi mdi-email-check-outline mr-75 h3 p-0 m-0\"}):_vm._e(),(filter.title == 'spam')?_c('span',{staticClass:\"mdi mdi-email-alert-outline mr-75 h3 p-0 m-0\"}):_vm._e()]),_c('span',{staticClass:\"align-text-bottom line-height-1 text-capitalize\"},[_vm._v(_vm._s(filter.title.length > 19 ? _vm.$t(filter.title).substring(0, 19) + \"...\" : _vm.$t(filter.title)))]),(filter.badge)?_c('b-badge',{staticClass:\"float-right\",attrs:{\"pill\":\"\",\"variant\":_vm.resolveFilterBadgeColor(filter.title)}},[_vm._v(\" \"+_vm._s(filter.badge>4999 ? '+5000' : filter.badge)+\" \")]):_vm._e()],1),(filter.children)?_c('div',{staticClass:\"pl-2\"},_vm._l((filter.children),function(el){return _c('b-list-group-item',{key:el.title + _vm.$route.path + index,attrs:{\"to\":el.route,\"active\":_vm.isDynamicRouteActive(el.route)},on:{\"click\":function($event){return _vm.$emit('close-left-sidebar')}}},[(el.route.name !== 'tickets-status')?_c('feather-icon',{staticClass:\"mr-75\",attrs:{\"icon\":el.icon,\"size\":\"18\"}}):_c('span',{staticClass:\"p-0 m-0 text-capitalize\"},[(el.title == 'open')?_c('span',{staticClass:\"mdi mdi-email-open-outline mr-75 h3 pt-0 mt-0\"}):_vm._e(),(el.title == 'pending')?_c('span',{staticClass:\"mdi mdi-email-sync-outline mr-75 h3 p-0 m-0\"}):_vm._e(),(el.title == 'closed')?_c('span',{staticClass:\"mdi mdi-email-check-outline mr-75 h3 p-0 m-0\"}):_vm._e(),(el.title == 'spam')?_c('span',{staticClass:\"mdi mdi-email-alert-outline mr-75 h3 p-0 m-0\"}):_vm._e()]),_c('span',{staticClass:\"align-text-bottom line-height-1 text-capitalize\"},[_vm._v(_vm._s(el.title.length > 15 ? _vm.$t(el.title).substring(0, 15) + \"...\" : _vm.$t(el.title)))]),(el.badge)?_c('b-badge',{staticClass:\"float-right\",attrs:{\"pill\":\"\",\"variant\":_vm.resolveFilterBadgeColor(el.title)}},[_vm._v(\" \"+_vm._s(el.badge>4999 ? '+5000' : el.badge)+\" \")]):_vm._e()],1)}),1):_vm._e()],1)}),0)],1)}),0):_vm._e()],1)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div class=\"sidebar-left\">\n    <div class=\"sidebar\">\n      <div class=\"sidebar-content email-app-sidebar\">\n        <div class=\"email-app-menu\">\n          <div class=\"form-group-compose text-center compose-btn\">\n            <b-button\n              v-ripple.400=\"'rgba(255, 255, 255, 0.15)'\"\n              variant=\"primary\"\n              block\n              @click=\"composeTicket\"\n            >\n              {{ $t(\"Compose\") }}\n            </b-button>\n          </div>\n\n          <vue-perfect-scrollbar\n            v-if=\"!loading\"\n            :settings=\"perfectScrollbarSettings\"\n            class=\"sidebar-menu-list scroll-area\"\n          >\n            <div\n              v-for=\"(element, index) in emailTest\"\n              :key=\"index\"\n            >\n              <p class=\"h4 mt-3 mb-1 px-2 h1 text-muted\">\n                {{ $t(element.title) }}\n              </p>\n              <b-list-group class=\"list-group-messages\">\n                <div\n                  v-for=\"filter in element.children\"\n                  :key=\"filter.title + $route.path + index\"\n                >\n                  <b-list-group-item\n                    :to=\"filter.route\"\n                    :active=\"isDynamicRouteActive(filter.route)\"\n                    @click=\"$emit('close-left-sidebar')\"\n                  >\n                    <feather-icon\n                      v-if=\"filter.route.name !== 'tickets-status'\"\n                      :icon=\"filter.icon\"\n                      size=\"18\"\n                      class=\"mr-75\"\n                    />\n                    <span\n                      v-else\n                      class=\"p-0 m-0 text-capitalize\"\n                    >\n                      <span\n                        v-if=\"filter.title == 'open'\"\n                        class=\"mdi mdi-email-sync-outline mr-75 h3 pt-0 mt-0\"\n                      />\n                      <span\n                        v-if=\"filter.title == 'pending'\"\n                        class=\"mdi mdi-email-open-outline mr-75 h3 p-0 m-0\"\n                      />\n                      <span\n                        v-if=\"filter.title == 'closed'\"\n                        class=\"mdi mdi-email-check-outline mr-75 h3 p-0 m-0\"\n                      />\n                      <span\n                        v-if=\"filter.title == 'spam'\"\n                        class=\"mdi mdi-email-alert-outline mr-75 h3 p-0 m-0\"\n                      />\n                    </span>\n                    <span\n                      class=\"align-text-bottom line-height-1 text-capitalize\"\n                    >{{\n                      filter.title.length > 19\n                        ? $t(filter.title).substring(0, 19) + \"...\"\n                        : $t(filter.title)\n                    }}</span>\n\n                    <b-badge\n                      v-if=\"filter.badge\"\n                      pill\n                      :variant=\"resolveFilterBadgeColor(filter.title)\"\n                      class=\"float-right\"\n                    >\n                      {{ filter.badge>4999 ? '+5000' : filter.badge}}\n                    </b-badge>\n                  </b-list-group-item>\n                  <div\n                    v-if=\"filter.children\"\n                    class=\"pl-2\"\n                  >\n                    <b-list-group-item\n                      v-for=\"el in filter.children\"\n                      :key=\"el.title + $route.path + index\"\n                      :to=\"el.route\"\n                      :active=\"isDynamicRouteActive(el.route)\"\n                      @click=\"$emit('close-left-sidebar')\"\n                    >\n                      <feather-icon\n                        v-if=\"el.route.name !== 'tickets-status'\"\n                        :icon=\"el.icon\"\n                        size=\"18\"\n                        class=\"mr-75\"\n                      />\n                      <span\n                        v-else\n                        class=\"p-0 m-0 text-capitalize\"\n                      >\n                        <span\n                          v-if=\"el.title == 'open'\"\n                          class=\"mdi mdi-email-open-outline mr-75 h3 pt-0 mt-0\"\n                        />\n                        <span\n                          v-if=\"el.title == 'pending'\"\n                          class=\"mdi mdi-email-sync-outline mr-75 h3 p-0 m-0\"\n                        />\n                        <span\n                          v-if=\"el.title == 'closed'\"\n                          class=\"mdi mdi-email-check-outline mr-75 h3 p-0 m-0\"\n                        />\n                        <span\n                          v-if=\"el.title == 'spam'\"\n                          class=\"mdi mdi-email-alert-outline mr-75 h3 p-0 m-0\"\n                        />\n                      </span>\n                      <span\n                        class=\"align-text-bottom line-height-1 text-capitalize\"\n                      >{{\n                        el.title.length > 15\n                          ? $t(el.title).substring(0, 15) + \"...\"\n                          : $t(el.title)\n                      }}</span>\n                      <b-badge\n                        v-if=\"el.badge\"\n                        pill\n                        :variant=\"resolveFilterBadgeColor(el.title)\"\n                        class=\"float-right\"\n                      >\n                      {{ el.badge>4999 ? '+5000' : el.badge}}\n                      </b-badge>\n                      <!-- <b-badge\n                    v-if=\"emailsMeta[filter.title.toLowerCase()]\"\n                    pill\n                    :variant=\"resolveFilterBadgeColor(filter.title)\"\n                    class=\"float-right\"\n                  >\n                    {{ emailsMeta[filter.title.toLowerCase()] }}\n                  </b-badge> -->\n                    </b-list-group-item>\n                  </div>\n                </div>\n              </b-list-group>\n            </div>\n          </vue-perfect-scrollbar>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script>\nimport VuePerfectScrollbar from 'vue-perfect-scrollbar'\nimport { isDynamicRouteActive } from '@core/utils/utils'\nimport Ripple from 'vue-ripple-directive'\nimport { mapGetters, mapMutations } from 'vuex'\n\nexport default {\n  directives: {\n    Ripple,\n  },\n  components: {\n    // BSV\n    // 3rd Party\n    VuePerfectScrollbar,\n  },\n  props: {\n    shallShowEmailComposeModal: {\n      type: Boolean,\n      required: true,\n    },\n    emailTest: {\n      type: Array,\n      required: true,\n    },\n  },\n  data() {\n    return {\n      perfectScrollbarSettings: {\n        suppressScrollX: true,\n        wheelPropagation: false,\n      },\n      loading: false,\n      emailTest: [],\n\n      perfectScrollbarSettings: {\n        maxScrollbarLength: 60,\n      },\n\n      resolveFilterBadgeColor: filter => {\n        if (filter === 'Draft') return 'light-warning'\n        if (filter === 'Spam') return 'light-danger'\n        return 'light-primary'\n      },\n      isDynamicRouteActive,\n    }\n  },\n  computed: {\n    ...mapGetters('lang', ['GET_LANG']),\n    mobileCheck() {\n      let check = false;\n      (function (a) {\n        if (\n          /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(\n            a,\n          )\n          || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(\n            a.substr(0, 4),\n          )\n        ) check = true\n      }(navigator.userAgent || navigator.vendor || window.opera))\n      return check\n    },\n  },\n  watch: {},\n  mounted() {},\n\n  methods: {\n    ...mapMutations('uhub', ['setCompose']),\n    composeTicket() {\n      if (this.mobileCheck) {\n        this.$router.push({ name: 'composeTicket' })\n      } else {\n        this.setCompose(true)\n        this.$emit('close-left-sidebar')\n      }\n    },\n  },\n}\n</script>\n\n<style></style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TicketLeftSidebar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TicketLeftSidebar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TicketLeftSidebar.vue?vue&type=template&id=00729ade&\"\nimport script from \"./TicketLeftSidebar.vue?vue&type=script&lang=js&\"\nexport * from \"./TicketLeftSidebar.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',{attrs:{\"no-body\":\"\"}},[(_vm.message.created_by)?_c('b-card-header',{staticClass:\"email-detail-head\"},[_c('div',{staticClass:\"user-details d-flex justify-content-between align-items-center flex-wrap\"},[_c('b-avatar',{staticClass:\"mr-75\",attrs:{\"size\":\"48\",\"src\":_vm.message.created_by.avatar}}),_c('div',{staticClass:\"mail-items\"},[_c('h5',{staticClass:\"mb-0\"},[_vm._v(\" \"+_vm._s(_vm.message.created_by.id == _vm.user.id ? \"Vous\" : _vm.message.created_by.firstname + \" \" + _vm.message.created_by.lastname)+\" \")])])],1),_c('div',{staticClass:\"mail-meta-item d-flex align-items-center\"},[_c('small',{staticClass:\"mail-date-time text-muted\"},[_vm._v(_vm._s(_vm.$moment(_vm.message.created_at).fromNow()))])])]):_vm._e(),_c('b-card-body',{staticClass:\"mail-message-wrapper pt-2\"},[_c('div',{staticClass:\"mail-message\",domProps:{\"innerHTML\":_vm._s(_vm.message.description)}})]),(_vm.message.attachments && _vm.message.attachments.length)?_c('b-card-footer',[_c('div',{staticClass:\"mail-attachments\"},[_c('div',{staticClass:\"d-flex align-items-center mb-1\"},[_c('feather-icon',{attrs:{\"icon\":\"PaperclipIcon\",\"size\":\"16\"}}),_c('h5',{staticClass:\"font-weight-bolder text-body mb-0 ml-50\"},[_vm._v(\" \"+_vm._s(_vm.message.attachments.length)+\" Attachment\"+_vm._s(_vm.message.attachments.length > 1 ? \"s\" : \"\")+\" \")])],1),_c('div',{staticClass:\"d-flex flex-column\"},_vm._l((_vm.message.attachments),function(attachment,index){return _c('span',{key:index},[(attachment.file)?_c('div',[(!['wav','mp3'].includes(attachment.file.extension))?_c('b-link',{class:{ 'mt-75': index },attrs:{\"target\":\"_blank\"},on:{\"click\":function($event){return _vm.zoom(attachment.file.url)}}},[_c('i',{class:(\"mr-50 fiv-cla fiv-icon-\" + (attachment.file.extension)),staticStyle:{\"font-size\":\"35px\"}}),_c('span',{staticClass:\"text-muted font-weight-bolder align-text-top\"},[_vm._v(_vm._s(attachment.path.split(\"/\").pop()))]),_c('span',{staticClass:\"text-muted font-small-2 ml-25\"},[_vm._v(\"(\"+_vm._s(_vm.humanFileSize(attachment.file.size))+\")\")]),_c('b-link',{on:{\"click\":function($event){return _vm.download(attachment)}}},[_c('feather-icon',{staticClass:\"ml-1\",attrs:{\"icon\":\"ArrowDownCircleIcon\",\"size\":\"17\"}})],1)],1):_c('div',{staticClass:\"d-flex align-items-center\",class:{ 'mt-75': index }},[_c('vue-plyr',[_c('audio',{attrs:{\"crossorigin\":\"\",\"playsinline\":\"\"}},[_c('source',{attrs:{\"src\":attachment.file.url,\"type\":\"audio/wav\"}})])]),_c('b-link',{on:{\"click\":function($event){return _vm.download(attachment)}}},[_c('feather-icon',{staticClass:\"ml-1\",attrs:{\"icon\":\"ArrowDownCircleIcon\",\"size\":\"17\"}})],1)],1)],1):_vm._e()])}),0)])]):_vm._e(),_c('b-modal',{attrs:{\"id\":\"modal-primary\",\"hide-footer\":\"\",\"modal-class\":\"modal-primary\",\"centered\":\"\",\"size\":\"xl\"},model:{value:(_vm.zoomPic),callback:function ($$v) {_vm.zoomPic=$$v},expression:\"zoomPic\"}},[_c('b-embed',{attrs:{\"src\":_vm.picToBeZoomed,\"aspect\":\"16by9\",\"type\":\"iframe\",\"allowfullscreen\":\"\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <b-card no-body>\n    <b-card-header v-if=\"message.created_by\" class=\"email-detail-head\">\n      <div\n        class=\"user-details d-flex justify-content-between align-items-center flex-wrap\"\n      >\n        <b-avatar size=\"48\" :src=\"message.created_by.avatar\" class=\"mr-75\" />\n        <div class=\"mail-items\">\n          <h5 class=\"mb-0\">\n            {{\n              message.created_by.id == user.id\n                ? \"Vous\"\n                : message.created_by.firstname +\n                  \" \" +\n                  message.created_by.lastname\n            }}\n          </h5>\n          <!-- <b-dropdown\n            variant=\"link\"\n            no-caret\n            toggle-class=\"p-0\"\n            class=\"email-info-dropup\"\n          >\n            <template #button-content>\n              <span class=\"font-small-3 text-muted mr-25\">{{\n                message.user.email\n              }}</span>\n              <feather-icon icon=\"ChevronDownIcon\" size=\"10\" />\n            </template>\n            <table class=\"table table-sm table-borderless font-small-3\">\n              <tbody>\n                <tr>\n                  <td class=\"text-right text-muted align-top\">From:</td>\n                  <td>{{ message.user.email }}</td>\n                </tr>\n                <tr>\n                  <td class=\"text-right text-muted align-top\">To:</td>\n\n                </tr>\n                <tr>\n                  <td class=\"text-right text-muted align-top\">Date:</td>\n                  <td>{{message.created_at_formatted}}</td>\n                </tr>\n              </tbody>\n            </table>\n          </b-dropdown> -->\n        </div>\n      </div>\n      <div class=\"mail-meta-item d-flex align-items-center\">\n        <small class=\"mail-date-time text-muted\">{{\n          $moment(message.created_at).fromNow()\n        }}</small>\n        <!-- Mail Action DD -->\n        <!-- <b-dropdown variant=\"link\" no-caret toggle-class=\"p-0\" right>\n          <template #button-content>\n            <feather-icon\n              icon=\"MoreVerticalIcon\"\n              size=\"17\"\n              class=\"ml-50 text-body\"\n            />\n          </template>\n\n          <b-dropdown-item>\n            <feather-icon icon=\"CornerUpLeftIcon\" />\n            <span class=\"align-middle ml-50\">Reply</span>\n          </b-dropdown-item>\n\n          <b-dropdown-item>\n            <feather-icon icon=\"CornerUpRightIcon\" />\n            <span class=\"align-middle ml-50\">Forward</span>\n          </b-dropdown-item>\n\n          <b-dropdown-item>\n            <feather-icon icon=\"TrashIcon\" />\n            <span class=\"align-middle ml-50\">{{$t('Delete')}}</span>\n          </b-dropdown-item>\n        </b-dropdown> -->\n      </div>\n    </b-card-header>\n\n    <b-card-body class=\"mail-message-wrapper pt-2\">\n      <!-- eslint-disable vue/no-v-html -->\n\n      <div class=\"mail-message\" v-html=\"message.description\" />\n      <!-- eslint-enable -->\n    </b-card-body>\n\n    <b-card-footer v-if=\"message.attachments && message.attachments.length\">\n      <div class=\"mail-attachments\">\n        <div class=\"d-flex align-items-center mb-1\">\n          <feather-icon icon=\"PaperclipIcon\" size=\"16\" />\n          <h5 class=\"font-weight-bolder text-body mb-0 ml-50\">\n            {{ message.attachments.length }} Attachment{{\n              message.attachments.length > 1 ? \"s\" : \"\"\n            }}\n          </h5>\n        </div>\n\n        <div class=\"d-flex flex-column\">\n          <span v-for=\"(attachment, index) in message.attachments\" :key=\"index\">\n            <div v-if=\"attachment.file\">\n              <b-link\n                v-if=\"!['wav','mp3'].includes(attachment.file.extension)\"\n                target=\"_blank\"\n                :class=\"{ 'mt-75': index }\"\n                @click=\"zoom(attachment.file.url)\"\n              >\n                <i\n                  style=\"font-size: 35px\"\n                  :class=\"`mr-50 fiv-cla fiv-icon-${attachment.file.extension}`\"\n                />\n\n                <span class=\"text-muted font-weight-bolder align-text-top\">{{\n                  attachment.path.split(\"/\").pop()\n                }}</span>\n                <span class=\"text-muted font-small-2 ml-25\"\n                  >({{ humanFileSize(attachment.file.size) }})</span\n                >\n                <b-link @click=\"download(attachment)\"\n                ><feather-icon\n                  icon=\"ArrowDownCircleIcon\"\n                  size=\"17\"\n                  class=\"ml-1\"\n              /></b-link>\n              </b-link>\n              <div class=\"d-flex align-items-center\" :class=\"{ 'mt-75': index }\" v-else>\n                <vue-plyr >\n                  <audio crossorigin playsinline>\n                    <source :src=\"attachment.file.url\" type=\"audio/wav\" />\n                  </audio>\n                </vue-plyr>\n                <b-link @click=\"download(attachment)\"\n                ><feather-icon\n                  icon=\"ArrowDownCircleIcon\"\n                  size=\"17\"\n                  class=\"ml-1\"\n              /></b-link>\n              </div>\n             \n            </div>\n          </span>\n        </div>\n      </div>\n    </b-card-footer>\n    <b-modal\n      id=\"modal-primary\"\n      v-model=\"zoomPic\"\n      hide-footer\n      modal-class=\"modal-primary\"\n      centered\n      size=\"xl\"\n    >\n      <b-embed\n        :src=\"picToBeZoomed\"\n        aspect=\"16by9\"\n        type=\"iframe\"\n        allowfullscreen\n      />\n    </b-modal>\n  </b-card>\n</template>\n\n<script>\nimport \"file-icon-vectors/dist/file-icon-vectors.min.css\";\n// import { formatDate } from \"@core/utils/filter\";\nimport { mapGetters } from \"vuex\";\n\nexport default {\n  props: {\n    message: {\n      type: Object,\n      required: true,\n    },\n  },\n  computed: {\n    ...mapGetters(\"auth\", {\n      user: \"GET_USER_DATA\",\n    }),\n  },\n  setup() {\n    return {};\n  },\n  data() {\n    return {\n      picToBeZoomed: null,\n      zoomPic: false,\n    };\n  },\n  mounted() {},\n  methods: {\n    download(item) {\n      // var element = document.createElement(\"a\");\n      // element.setAttribute(\"href\", item.file.url);\n      // element.setAttribute(\"target\", \"_blank\");\n      // element.setAttribute(\n      //   \"download\",\n      //   item.path.split(\"/\").pop() + \".\" + item.file.extension\n      // );\n      // document.body.appendChild(element);\n      // element.click();\n\n      fetch(item.file.url, {\n        method: \"get\",\n\n        referrerPolicy: \"no-referrer\",\n      })\n        .then((res) => res.blob())\n        .then((res) => {\n          const aElement = document.createElement(\"a\");\n          aElement.setAttribute(\"download\", item.path.split(\"/\").pop());\n          const href = URL.createObjectURL(res);\n          aElement.href = href;\n          aElement.setAttribute(\"target\", \"_blank\");\n          aElement.click();\n          URL.revokeObjectURL(href);\n        });\n    },\n    zoom(value) {\n      this.zoomPic = true;\n      this.picToBeZoomed = value;\n    },\n    humanFileSize(bytes, si = true, dp = 1) {\n      const thresh = si ? 1000 : 1024;\n\n      if (Math.abs(bytes) < thresh) {\n        return `${bytes} B`;\n      }\n\n      const units = si\n        ? [\"kB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"]\n        : [\"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\", \"EiB\", \"ZiB\", \"YiB\"];\n      let u = -1;\n      const r = 10 ** dp;\n\n      do {\n        bytes /= thresh;\n        ++u;\n      } while (\n        Math.round(Math.abs(bytes) * r) / r >= thresh &&\n        u < units.length - 1\n      );\n\n      return `${bytes.toFixed(dp)} ${units[u]}`;\n    },\n  },\n};\n</script>\n\n<style></style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TicketMessageCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TicketMessageCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TicketMessageCard.vue?vue&type=template&id=8eaac6f4&\"\nimport script from \"./TicketMessageCard.vue?vue&type=script&lang=js&\"\nexport * from \"./TicketMessageCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-modal',{attrs:{\"id\":\"modal-primary\",\"hide-footer\":\"\",\"modal-class\":\"modal-primary\",\"centered\":\"\",\"size\":\"xl\"},model:{value:(_vm.zoomPic),callback:function ($$v) {_vm.zoomPic=$$v},expression:\"zoomPic\"}},[_c('b-embed',{attrs:{\"src\":_vm.picToBeZoomed,\"aspect\":\"16by9\",\"type\":\"iframe\",\"allowfullscreen\":\"\"}})],1),_c('b-modal',{attrs:{\"id\":\"compose-mail\",\"visible\":_vm.shallShowEmailComposeModal,\"title\":_vm.$t('Compose Email'),\"modal-class\":\"modal-sticky\",\"footer-class\":\"d-flex justify-content-between\",\"body-class\":\"p-0\",\"size\":\"lg\",\"no-fade\":\"\",\"hide-footer\":\"\",\"hide-backdrop\":\"\",\"static\":\"\"},on:{\"change\":function (val) { return _vm.setCompose(val); }},scopedSlots:_vm._u([{key:\"modal-header\",fn:function(){return [_c('h5',{staticClass:\"modal-title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Créer un ticket\"))+\" \")]),_c('div',{staticClass:\"modal-actions\"},[_c('feather-icon',{staticClass:\"ml-1 cursor-pointer\",attrs:{\"icon\":\"XIcon\"},on:{\"click\":_vm.discardEmail}})],1)]},proxy:true}])},[_c('validation-observer',{ref:\"client\"},[_c('b-form',[_c('div',{staticClass:\"compose-mail-form-field d-flex flex-column my-1\"},[_c('label',{staticClass:\"d-block text-left w-100 mb-1\",attrs:{\"for\":\"email-tag\"}},[_vm._v(_vm._s(_vm.$t(\"Sélectionnez la catégorie de votre demande\"))+\" \")]),_c('b-form-select',{attrs:{\"id\":\"email-tag\",\"text-field\":\"name\",\"value-field\":\"id\"},model:{value:(_vm.composeData.tag_id),callback:function ($$v) {_vm.$set(_vm.composeData, \"tag_id\", $$v)},expression:\"composeData.tag_id\"}},[_vm._l((_vm.tags),function(option){return [_c('b-form-select-option',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],key:option.id,staticClass:\"rounded-pill mx-1\",attrs:{\"value\":option.id,\"title\":option.name}},[_vm._v(\" \"+_vm._s(_vm.$t(option.name))+\" \")])]})],2)],1),_c('div',{staticClass:\"compose-mail-form-field d-flex flex-column my-1\"},[_c('label',{staticClass:\"d-block text-left w-100 mb-1\",attrs:{\"for\":\"email-subtag\"}},[_vm._v(_vm._s(_vm.$t(\"Sélectionnez l'élément pour lequel vous avez besoin d'aide\"))+\" \")]),_c('b-form-select',{attrs:{\"id\":\"email-subtag\"},model:{value:(_vm.composeData.sub_tag_id),callback:function ($$v) {_vm.$set(_vm.composeData, \"sub_tag_id\", $$v)},expression:\"composeData.sub_tag_id\"}},[_vm._l((_vm.subtags),function(option){return [_c('b-form-select-option',{key:option.id,staticClass:\"rounded-pill mx-1\",attrs:{\"value\":option.id}},[_vm._v(\" \"+_vm._s(_vm.$t(option.name))+\" (\"+_vm._s(_vm.$t(option.type.name))+\") \")])]})],2)],1),(_vm.assign)?_c('div',{staticClass:\"compose-mail-form-field d-flex flex-column my-1\"},[_c('label',{staticClass:\"d-block text-left w-100 mb-1\",attrs:{\"for\":\"email-assign\"}},[_vm._v(_vm._s(_vm.$t(\"Assingez le ticket à ?\"))+\" \")]),_c('b-form-radio-group',{staticClass:\"my-1\",attrs:{\"name\":\"type\"},model:{value:(_vm.assign),callback:function ($$v) {_vm.assign=$$v},expression:\"assign\"}},[_vm._l((_vm.assignees),function(option){return [_c('b-form-radio',{key:option,staticClass:\"rounded-pill mx-1\",attrs:{\"value\":option}},[_vm._v(\" \"+_vm._s(_vm.$t(option))+\" \")])]})],2)],1):_vm._e(),(_vm.assign == 'Utilisateur(s)')?_c('div',{staticClass:\"mx-2\"},[_c('v-select',{staticClass:\"form\",attrs:{\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"options\":_vm.users,\"label\":\"firstname\",\"filterable\":false,\"multiple\":\"\",\"reduce\":function (item) { return item.id; },\"selectable\":function () { return true; }},on:{\"search\":_vm.onSearchUsers,\"option:selecting\":_vm.onSelectElement},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('div',{staticStyle:{\"opacity\":\"0.8\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Nombre des utilisateurs sélectionnées est\"))+\" (\"+_vm._s(_vm.selectedList.length)+\") \")])]},proxy:true},{key:\"open-indicator\",fn:function(ref){\nvar attributes = ref.attributes;\nreturn [_c('span',_vm._b({},'span',attributes,false),[_vm._v(\"🔽\")])]}},{key:\"option\",fn:function(ref){\nvar firstname = ref.firstname;\nvar lastname = ref.lastname;\nvar email = ref.email;\nreturn [_c('div',[_c('span',[_vm._v(\" \"+_vm._s(firstname)+\" \"+_vm._s(lastname))])])]}},{key:\"selected-option-container\",fn:function(ref){\n              var option = ref.option;\n              var deselect = ref.deselect;\n              var multiple = ref.multiple;\n              var disabled = ref.disabled;\nreturn [_c('div',{staticClass:\"vs__selected d-none\"})]}}],null,false,3821319834)})],1):_vm._e(),(_vm.assign == 'Groupe(s)')?_c('div',{staticClass:\"mx-2\"},[_c('v-select',{staticClass:\"form\",attrs:{\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"options\":_vm.groupes,\"label\":\"name\",\"filterable\":\"true\",\"multiple\":\"\",\"reduce\":function (item) { return item.id; },\"selectable\":function () { return true; }},on:{\"option:selecting\":_vm.onSelectElement},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('div',{staticStyle:{\"opacity\":\"0.8\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Nombre des groupes sélectionnées est\"))+\" (\"+_vm._s(_vm.selectedList.length)+\") \")])]},proxy:true},{key:\"open-indicator\",fn:function(ref){\n              var attributes = ref.attributes;\nreturn [_c('span',_vm._b({},'span',attributes,false),[_vm._v(\"🔽\")])]}},{key:\"option\",fn:function(ref){\n              var name = ref.name;\nreturn [_c('div',[_c('span',[_vm._v(\" \"+_vm._s(name))])])]}},{key:\"selected-option-container\",fn:function(ref){\n              var option = ref.option;\n              var deselect = ref.deselect;\n              var multiple = ref.multiple;\n              var disabled = ref.disabled;\nreturn [_c('div',{staticClass:\"vs__selected d-none\"})]}}],null,false,2743932264)})],1):_vm._e(),(_vm.parameters.length > 0)?_c('div',{staticClass:\"compose-mail-form-field d-flex flex-column my-1\"},[_c('label',{staticClass:\"d-block text-left w-100 mb-1\",attrs:{\"for\":\"email-action\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Sélectionnez la raison du rejet\"))+\" \")]),_c('b-form-select',{attrs:{\"id\":\"email-action\"},model:{value:(_vm.parameter_id),callback:function ($$v) {_vm.parameter_id=$$v},expression:\"parameter_id\"}},[_vm._l((_vm.parameters),function(option){return [_c('b-form-select-option',{key:option.id,staticClass:\"rounded-pill mx-1\",attrs:{\"value\":option.id}},[_vm._v(\" \"+_vm._s(_vm.$t(option.name))+\" \")])]})],2)],1):_vm._e(),(\n            (!['news', 'formation', 'finances', 'administratif'].includes(\n              _vm.tagname.toLowerCase()\n            ) &&\n              ![\n                'mail to consultant',\n                'problème de connexion',\n                'Demande d\\'accès/ annulation',\n                'mise à jour des données' ].includes(_vm.subtagname.toLowerCase())) ||\n            _vm.assign=='Utilisateur Odoo'\n          )?_c('div',{staticClass:\"compose-mail-form-field d-flex flex-column my-1 w-100\"},[_c('label',{staticClass:\"d-block text-left w-100 mb-1\",attrs:{\"for\":\"email-odoo\"}},[_vm._v(_vm._s(_vm.$t(\"Numéro contrat odoo (si nécessaire)\"))+\" \")]),_c('validation-provider',{staticClass:\"w-100 border\",attrs:{\"name\":_vm.$t('Numéro contrat odoo'),\"rules\":(\"\" + ([\n                'problème contrat',\n                'rejets provisoires',\n                'rejets définitifs' ].includes(_vm.subtagname.toLowerCase()) ||\n              _vm.composeData.assign_user_from_odoo\n              ? 'required|min:6|max:10|regex:^[A-z]+([0-9]+)$'\n              : 'min:6|max:10|regex:^[A-z]+([0-9]+)$'))},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n            var errors = ref.errors;\nreturn [_c('b-form-input',{staticClass:\"d-block text-left w-100 mb-1\",attrs:{\"id\":\"email-odoo\"},model:{value:(_vm.composeData.odoo_id),callback:function ($$v) {_vm.$set(_vm.composeData, \"odoo_id\", $$v)},expression:\"composeData.odoo_id\"}}),_c('small',{staticClass:\"text-danger\"},[_vm._v(_vm._s(errors[0]))])]}}],null,false,2391584574)})],1):_vm._e(),(!_vm.parameter_id)?_c('div',{staticClass:\"compose-mail-form-field d-flex flex-column\"},[_c('label',{staticClass:\"d-block text-left w-100 mb-1\",attrs:{\"for\":\"email-subject\"}},[_vm._v(_vm._s(_vm.$t(\"Sujet\"))+\" \")]),_c('b-form-input',{staticClass:\"border\",class:{\n              'bg-secondary': _vm.parameter_id,\n              'text-white': _vm.parameter_id,\n            },attrs:{\"id\":\"email-subject\",\"readonly\":_vm.parameter_id},model:{value:(_vm.composeData.subject),callback:function ($$v) {_vm.$set(_vm.composeData, \"subject\", $$v)},expression:\"composeData.subject\"}})],1):_vm._e(),_c('div',{attrs:{\"id\":\"quil-content-1\"}},[_c('quill-editor',{attrs:{\"options\":_vm.editorOption},on:{\"change\":function($event){return _vm.onEditorChange($event)}},model:{value:(_vm.composeData.description),callback:function ($$v) {_vm.$set(_vm.composeData, \"description\", $$v)},expression:\"composeData.description\"}}),_c('div',{staticClass:\"w-100 p-2 compose-mail\"},[_c('file-pond',{ref:\"pond_compose\",attrs:{\"name\":\"test\",\"label-idle\":_vm.$t('labelIdle'),\"allow-multiple\":true,\"allow-image-preview\":false,\"allow-remove\":\"false\",\"accepted-file-types\":['image/*', 'application/pdf', 'audio/wav','audio/mpeg'],\"server\":_vm.server,\"max-file-size\":'12MB',\"label-invalid-field\":_vm.$t('labelInvalidField'),\"label-file-waiting-for-size\":_vm.$t('labelFileWaitingForSize'),\"label-file-size-not-available\":_vm.$t('labelFileSizeNotAvailable'),\"label-file-loading\":_vm.$t('labelFileLoading'),\"label-file-load-error\":_vm.$t('labelFileLoadError'),\"label-file-processing\":_vm.$t('labelFileProcessing'),\"label-file-processing-complete\":_vm.$t('labelFileProcessingComplete'),\"label-file-processing-aborted\":_vm.$t('labelFileProcessingAborted'),\"label-file-processing-error\":_vm.$t('labelFileProcessingError'),\"label-file-processing-revert-error\":_vm.$t('labelFileProcessingRevertError'),\"label-file-remove-error\":_vm.$t('labelFileRemoveError'),\"label-tap-to-cancel\":_vm.$t('labelTapToCancel'),\"label-tap-to-retry\":_vm.$t('labelTapToRetry'),\"label-tap-to-undo\":_vm.$t('labelTapToUndo'),\"label-button-remove-item\":_vm.$t('labelButtonRemoveItem'),\"label-button-abort-item-load\":_vm.$t('labelButtonAbortItemLoad'),\"label-button-retry-item-load\":_vm.$t('labelButtonRetryItemLoad'),\"label-button-abort-item-processing\":_vm.$t('labelButtonAbortItemProcessing'),\"label-button-undo-item-processing\":_vm.$t('labelButtonUndoItemProcessing'),\"label-button-retry-item-processing\":_vm.$t('labelButtonRetryItemProcessing'),\"label-button-process-item\":_vm.$t('labelButtonProcessItem'),\"label-max-file-size-exceeded\":_vm.$t('labelMaxFileSizeExceeded'),\"label-max-file-size\":_vm.$t('labelMaxFileSize'),\"label-max-total-file-size-exceeded\":_vm.$t('labelMaxTotalFileSizeExceeded'),\"label-max-total-file-size\":_vm.$t('labelMaxTotalFileSize'),\"label-file-type-not-allowed\":_vm.$t('labelFileTypeNotAllowed'),\"image-validate-size-label-format-error\":_vm.$t('imageValidateSizeLabelFormatError'),\"image-validate-size-label-image-size-too-small\":_vm.$t('imageValidateSizeLabelImageSizeTooSmall'),\"image-validate-size-label-image-size-too-big\":_vm.$t('imageValidateSizeLabelImageSizeTooBig'),\"image-validate-size-label-expected-min-size\":_vm.$t('imageValidateSizeLabelExpectedMinSize'),\"image-validate-size-label-expected-max-size\":_vm.$t('imageValidateSizeLabelExpectedMaxSize'),\"image-validate-size-label-image-resolution-too-low\":_vm.$t('imageValidateSizeLabelImageResolutionTooLow'),\"image-validate-size-label-image-resolution-too-high\":_vm.$t('imageValidateSizeLabelImageResolutionTooHigh'),\"image-validate-size-label-expected-min-resolution\":_vm.$t('imageValidateSizeLabelExpectedMinResolution'),\"image-validate-size-label-expected-max-resolution\":_vm.$t('imageValidateSizeLabelExpectedMaxResolution')}}),(_vm.composeData.attachments)?_c('b-row'):_vm._e(),_c('div',{staticClass:\"d-flex justify-content-between\"},[_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(255, 255, 255, 0.15)'),expression:\"'rgba(255, 255, 255, 0.15)'\",modifiers:{\"400\":true}}],staticClass:\"d-block\",staticStyle:{\"width\":\"100%\"},attrs:{\"split\":\"\",\"variant\":\"primary\"},on:{\"click\":_vm.sendTicket}},[_c('feather-icon',{staticClass:\"mr-1\",attrs:{\"icon\":\"SendIcon\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"Send\"))+\" \")],1),_c('div',{on:{\"click\":function($event){_vm.modalShow = !_vm.modalShow}}},[_c('b-avatar',{staticStyle:{\"background-color\":\"transparent\"},attrs:{\"badge\":(\"\" + (_vm.composeData.attachments\n                      ? _vm.composeData.attachments.length\n                      : 0)),\"badge-variant\":\"primary\",\"square\":\"\",\"badge-right\":\"\"}},[_c('feather-icon',{attrs:{\"icon\":\"PaperclipIcon\",\"size\":\"25\",\"color\":\"grey\"}})],1)],1)],1)],1)],1)])],1)],1),_c('b-modal',{on:{\"ok\":_vm.onSelectModal},model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('v-select',{attrs:{\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"options\":_vm.items,\"label\":\"title\",\"filterable\":false,\"reduce\":function (item) { return item.id; },\"selectable\":function () { return true; }},on:{\"search\":_vm.onSearch,\"option:selecting\":_vm.onSelect},scopedSlots:_vm._u([{key:\"no-options\",fn:function(ref){\n                  var search = ref.search;\n                  var searching = ref.searching;\n                  var loading = ref.loading;\nreturn [_vm._v(\" Aucune resultats \")]}},{key:\"list-header\",fn:function(){return [_c('Can',{attrs:{\"i\":\"create\",\"a\":\"ticket_predefined_description\"}},[_c('b-button',{attrs:{\"block\":\"\",\"variant\":\"outline-primary\"},on:{\"click\":_vm.show_add_modal}},[_c('feather-icon',{attrs:{\"icon\":\"PlusIcon\"}}),_vm._v(_vm._s(_vm.$t(\"Ajouter un message prédéfini\")))],1)],1)]},proxy:true},{key:\"open-indicator\",fn:function(ref){\n                  var attributes = ref.attributes;\nreturn [_c('span',_vm._b({},'span',attributes,false),[_vm._v(\"🔽\")])]}},{key:\"option\",fn:function(ref){\n                  var title = ref.title;\nreturn [_c('div',[_c('span',[_vm._v(\" \"+_vm._s(title))])])]}}]),model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})],1)],1),_c('b-modal',{attrs:{\"size\":\"xl\"},on:{\"ok\":_vm.saveNewModal},model:{value:(_vm.addDialog),callback:function ($$v) {_vm.addDialog=$$v},expression:\"addDialog\"}},[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"compose-mail-form-field d-flex flex-column my-2\"},[_c('label',{staticClass:\"d-block text-left w-100 mb-1\",attrs:{\"for\":\"email-subject\"}},[_vm._v(_vm._s(_vm.$t(\"Title\"))+\" \")]),_c('b-form-input',{staticClass:\"border\",attrs:{\"id\":\"email-subject\"},model:{value:(_vm.composeDataModal.title),callback:function ($$v) {_vm.$set(_vm.composeDataModal, \"title\", $$v)},expression:\"composeDataModal.title\"}})],1),_c('div',{staticClass:\"message-editor\"},[_c('quill-editor',{attrs:{\"options\":_vm.editorOptionModal},on:{\"change\":function($event){return _vm.onEditorChangeModal($event)}},model:{value:(_vm.composeDataModal.description),callback:function ($$v) {_vm.$set(_vm.composeDataModal, \"description\", $$v)},expression:\"composeDataModal.description\"}})],1)])],1),_c('b-modal',{attrs:{\"title\":_vm.$t('Pièces jointes'),\"scrollable\":\"\",\"size\":\"lg\",\"ok-only\":\"\"},model:{value:(_vm.modalShow),callback:function ($$v) {_vm.modalShow=$$v},expression:\"modalShow\"}},[(_vm.composeData.attachments && _vm.composeData.attachments.length > 0)?_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('b-row',{staticClass:\"d-flex justify-content-between align-content-start align-items-center\"},_vm._l((_vm.composeData.attachments),function(file,index){return _c('b-col',{key:index,staticClass:\"mb-2\",staticStyle:{\"cursor\":\"zoom-in\"},on:{\"click\":function($event){return _vm.zoomItem(file)}}},[(file.includes('image/'))?_c('b-img',{staticStyle:{\"width\":\"10rem\",\"height\":\"10rem\"},attrs:{\"src\":file}}):(file.includes('application/'))?_c('i',{class:\"mr-50 fiv-cla fiv-icon-pdf\",staticStyle:{\"font-size\":\"10rem\"}}):(file.includes('audio/'))?_c('i',{class:\"mr-50 fiv-cla fiv-icon-wav\",staticStyle:{\"font-size\":\"10rem\"}}):_vm._e()],1)}),1)],1):_c('b-col',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Aucune pièce jointe\"))+\" \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div>\n    <b-modal\n      id=\"modal-primary\"\n      v-model=\"zoomPic\"\n      hide-footer\n      modal-class=\"modal-primary\"\n      centered\n      size=\"xl\"\n    >\n      <b-embed\n        :src=\"picToBeZoomed\"\n        aspect=\"16by9\"\n        type=\"iframe\"\n        allowfullscreen\n      />\n    </b-modal>\n    <b-modal\n      id=\"compose-mail\"\n      :visible=\"shallShowEmailComposeModal\"\n      :title=\"$t('Compose Email')\"\n      modal-class=\"modal-sticky\"\n      footer-class=\"d-flex justify-content-between\"\n      body-class=\"p-0\"\n      size=\"lg\"\n      no-fade\n      hide-footer\n      hide-backdrop\n      static\n      @change=\"(val) => setCompose(val)\"\n    >\n      <!-- Modal Header -->\n      <template #modal-header>\n        <h5 class=\"modal-title\">\n          {{ $t(\"Créer un ticket\") }}\n        </h5>\n        <div class=\"modal-actions\">\n          <feather-icon\n            icon=\"XIcon\"\n            class=\"ml-1 cursor-pointer\"\n            @click=\"discardEmail\"\n          />\n        </div>\n      </template>\n\n      <!-- Modal: Body -->\n      <validation-observer ref=\"client\">\n        <b-form>\n          <!-- Field: To -->\n\n          <!-- Field: Subject -->\n          <div class=\"compose-mail-form-field d-flex flex-column my-1\">\n            <label class=\"d-block text-left w-100 mb-1\" for=\"email-tag\"\n              >{{ $t(\"Sélectionnez la catégorie de votre demande\") }}\n            </label>\n            <b-form-select\n              id=\"email-tag\"\n              v-model=\"composeData.tag_id\"\n              text-field=\"name\"\n              value-field=\"id\"\n            >\n              <template v-for=\"option in tags\">\n                <b-form-select-option\n                  :key=\"option.id\"\n                  v-b-tooltip.hover\n                  :value=\"option.id\"\n                  class=\"rounded-pill mx-1\"\n                  :title=\"option.name\"\n                >\n                  {{ $t(option.name) }}\n                </b-form-select-option>\n              </template>\n            </b-form-select>\n          </div>\n          <div class=\"compose-mail-form-field d-flex flex-column my-1\">\n            <label class=\"d-block text-left w-100 mb-1\" for=\"email-subtag\"\n              >{{\n                $t(\"Sélectionnez l'élément pour lequel vous avez besoin d'aide\")\n              }}\n            </label>\n\n            <b-form-select id=\"email-subtag\" v-model=\"composeData.sub_tag_id\">\n              <template v-for=\"option in subtags\">\n                <b-form-select-option\n                  :key=\"option.id\"\n                  :value=\"option.id\"\n                  class=\"rounded-pill mx-1\"\n                >\n                  {{ $t(option.name) }} ({{ $t(option.type.name) }})\n                </b-form-select-option>\n              </template>\n            </b-form-select>\n          </div>\n          <div\n            v-if=\"assign\"\n            class=\"compose-mail-form-field d-flex flex-column my-1\"\n          >\n            <label class=\"d-block text-left w-100 mb-1\" for=\"email-assign\"\n              >{{ $t(\"Assingez le ticket à ?\") }}\n            </label>\n\n            <b-form-radio-group v-model=\"assign\" name=\"type\" class=\"my-1\">\n              <template v-for=\"option in assignees\">\n                <b-form-radio\n                  :key=\"option\"\n                  :value=\"option\"\n                  class=\"rounded-pill mx-1\"\n                >\n                  {{ $t(option) }}\n                </b-form-radio>\n              </template>\n            </b-form-radio-group>\n          </div>\n          <div v-if=\"assign == 'Utilisateur(s)'\" class=\"mx-2\">\n            <v-select\n              class=\"form\"\n              :dir=\"$store.state.appConfig.isRTL ? 'rtl' : 'ltr'\"\n              :options=\"users\"\n              label=\"firstname\"\n              :filterable=\"false\"\n              multiple\n              :reduce=\"(item) => item.id\"\n              :selectable=\"() => true\"\n              @search=\"onSearchUsers\"\n              @option:selecting=\"onSelectElement\"\n            >\n              <template #header>\n                <div style=\"opacity: 0.8\">\n                  {{ $t(\"Nombre des utilisateurs sélectionnées est\") }} ({{\n                    selectedList.length\n                  }})\n                </div>\n              </template>\n              <template #open-indicator=\"{ attributes }\">\n                <span v-bind=\"attributes\">🔽</span>\n              </template>\n              <template #option=\"{ firstname, lastname, email }\">\n                <div>\n                  <span> {{ firstname }} {{ lastname }}</span>\n                </div>\n              </template>\n              <template\n                #selected-option-container=\"{\n                  option,\n                  deselect,\n                  multiple,\n                  disabled,\n                }\"\n              >\n                <div class=\"vs__selected d-none\" />\n              </template>\n            </v-select>\n          </div>\n          <div v-if=\"assign == 'Groupe(s)'\" class=\"mx-2\">\n            <v-select\n              class=\"form\"\n              :dir=\"$store.state.appConfig.isRTL ? 'rtl' : 'ltr'\"\n              :options=\"groupes\"\n              label=\"name\"\n              filterable=\"true\"\n              multiple\n              :reduce=\"(item) => item.id\"\n              :selectable=\"() => true\"\n              @option:selecting=\"onSelectElement\"\n            >\n              <template #header>\n                <div style=\"opacity: 0.8\">\n                  {{ $t(\"Nombre des groupes sélectionnées est\") }} ({{\n                    selectedList.length\n                  }})\n                </div>\n              </template>\n              <template #open-indicator=\"{ attributes }\">\n                <span v-bind=\"attributes\">🔽</span>\n              </template>\n              <template #option=\"{ name }\">\n                <div>\n                  <span> {{ name }}</span>\n                </div>\n              </template>\n              <template\n                #selected-option-container=\"{\n                  option,\n                  deselect,\n                  multiple,\n                  disabled,\n                }\"\n              >\n                <div class=\"vs__selected d-none\" />\n              </template>\n            </v-select>\n          </div>\n          <div\n            v-if=\"parameters.length > 0\"\n            class=\"compose-mail-form-field d-flex flex-column my-1\"\n          >\n            <label class=\"d-block text-left w-100 mb-1\" for=\"email-action\">\n              {{ $t(\"Sélectionnez la raison du rejet\") }}\n            </label>\n            <b-form-select id=\"email-action\" v-model=\"parameter_id\">\n              <template v-for=\"option in parameters\">\n                <b-form-select-option\n                  :key=\"option.id\"\n                  :value=\"option.id\"\n                  class=\"rounded-pill mx-1\"\n                >\n                  {{ $t(option.name) }}\n                </b-form-select-option>\n              </template>\n            </b-form-select>\n          </div>\n\n          <div\n            v-if=\"\n              (!['news', 'formation', 'finances', 'administratif'].includes(\n                tagname.toLowerCase()\n              ) &&\n                ![\n                  'mail to consultant',\n                  'problème de connexion',\n                  'Demande d\\'accès/ annulation',\n                  'mise à jour des données',\n                ].includes(subtagname.toLowerCase())) ||\n              assign=='Utilisateur Odoo'\n            \"\n            class=\"compose-mail-form-field d-flex flex-column my-1 w-100\"\n          >\n            <label class=\"d-block text-left w-100 mb-1\" for=\"email-odoo\"\n              >{{ $t(\"Numéro contrat odoo (si nécessaire)\") }}\n            </label>\n            <validation-provider\n              v-slot=\"{ errors }\"\n              class=\"w-100 border\"\n              :name=\"$t('Numéro contrat odoo')\"\n              :rules=\"`${\n                [\n                  'problème contrat',\n                  'rejets provisoires',\n                  'rejets définitifs',\n                ].includes(subtagname.toLowerCase()) ||\n                composeData.assign_user_from_odoo\n                ? 'required|min:6|max:10|regex:^[A-z]+([0-9]+)$'\n                : 'min:6|max:10|regex:^[A-z]+([0-9]+)$'\n              }`\"\n            >\n              <!-- :rules=\"`${aci_status ? '' : 'required|max:100'}`\" -->\n              <b-form-input\n                id=\"email-odoo\"\n                v-model=\"composeData.odoo_id\"\n                class=\"d-block text-left w-100 mb-1\"\n              />\n              <small class=\"text-danger\">{{ errors[0] }}</small>\n            </validation-provider>\n          </div>\n\n          <div\n            v-if=\"!parameter_id\"\n            class=\"compose-mail-form-field d-flex flex-column\"\n          >\n            <label class=\"d-block text-left w-100 mb-1\" for=\"email-subject\"\n              >{{ $t(\"Sujet\") }}\n            </label>\n            <b-form-input\n              id=\"email-subject\"\n              v-model=\"composeData.subject\"\n              class=\"border\"\n              :readonly=\"parameter_id\"\n              :class=\"{\n                'bg-secondary': parameter_id,\n                'text-white': parameter_id,\n              }\"\n            />\n          </div>\n\n          <!-- Field: Message - Quill Editor -->\n          <div id=\"quil-content-1\">\n            <quill-editor\n              v-model=\"composeData.description\"\n              :options=\"editorOption\"\n              @change=\"onEditorChange($event)\"\n            />\n            <div class=\"w-100 p-2 compose-mail\">\n              <file-pond\n                ref=\"pond_compose\"\n                name=\"test\"\n                :label-idle=\"$t('labelIdle')\"\n                :allow-multiple=\"true\"\n                :allow-image-preview=\"false\"\n                allow-remove=\"false\"\n                :accepted-file-types=\"['image/*', 'application/pdf', 'audio/wav','audio/mpeg']\"\n                :server=\"server\"\n                :max-file-size=\"'12MB'\"\n                :label-invalid-field=\"$t('labelInvalidField')\"\n                :label-file-waiting-for-size=\"$t('labelFileWaitingForSize')\"\n                :label-file-size-not-available=\"$t('labelFileSizeNotAvailable')\"\n                :label-file-loading=\"$t('labelFileLoading')\"\n                :label-file-load-error=\"$t('labelFileLoadError')\"\n                :label-file-processing=\"$t('labelFileProcessing')\"\n                :label-file-processing-complete=\"\n                  $t('labelFileProcessingComplete')\n                \"\n                :label-file-processing-aborted=\"\n                  $t('labelFileProcessingAborted')\n                \"\n                :label-file-processing-error=\"$t('labelFileProcessingError')\"\n                :label-file-processing-revert-error=\"\n                  $t('labelFileProcessingRevertError')\n                \"\n                :label-file-remove-error=\"$t('labelFileRemoveError')\"\n                :label-tap-to-cancel=\"$t('labelTapToCancel')\"\n                :label-tap-to-retry=\"$t('labelTapToRetry')\"\n                :label-tap-to-undo=\"$t('labelTapToUndo')\"\n                :label-button-remove-item=\"$t('labelButtonRemoveItem')\"\n                :label-button-abort-item-load=\"$t('labelButtonAbortItemLoad')\"\n                :label-button-retry-item-load=\"$t('labelButtonRetryItemLoad')\"\n                :label-button-abort-item-processing=\"\n                  $t('labelButtonAbortItemProcessing')\n                \"\n                :label-button-undo-item-processing=\"\n                  $t('labelButtonUndoItemProcessing')\n                \"\n                :label-button-retry-item-processing=\"\n                  $t('labelButtonRetryItemProcessing')\n                \"\n                :label-button-process-item=\"$t('labelButtonProcessItem')\"\n                :label-max-file-size-exceeded=\"$t('labelMaxFileSizeExceeded')\"\n                :label-max-file-size=\"$t('labelMaxFileSize')\"\n                :label-max-total-file-size-exceeded=\"\n                  $t('labelMaxTotalFileSizeExceeded')\n                \"\n                :label-max-total-file-size=\"$t('labelMaxTotalFileSize')\"\n                :label-file-type-not-allowed=\"$t('labelFileTypeNotAllowed')\"\n                :image-validate-size-label-format-error=\"\n                  $t('imageValidateSizeLabelFormatError')\n                \"\n                :image-validate-size-label-image-size-too-small=\"\n                  $t('imageValidateSizeLabelImageSizeTooSmall')\n                \"\n                :image-validate-size-label-image-size-too-big=\"\n                  $t('imageValidateSizeLabelImageSizeTooBig')\n                \"\n                :image-validate-size-label-expected-min-size=\"\n                  $t('imageValidateSizeLabelExpectedMinSize')\n                \"\n                :image-validate-size-label-expected-max-size=\"\n                  $t('imageValidateSizeLabelExpectedMaxSize')\n                \"\n                :image-validate-size-label-image-resolution-too-low=\"\n                  $t('imageValidateSizeLabelImageResolutionTooLow')\n                \"\n                :image-validate-size-label-image-resolution-too-high=\"\n                  $t('imageValidateSizeLabelImageResolutionTooHigh')\n                \"\n                :image-validate-size-label-expected-min-resolution=\"\n                  $t('imageValidateSizeLabelExpectedMinResolution')\n                \"\n                :image-validate-size-label-expected-max-resolution=\"\n                  $t('imageValidateSizeLabelExpectedMaxResolution')\n                \"\n              />\n              <b-row v-if=\"composeData.attachments\" />\n              <div class=\"d-flex justify-content-between\">\n                <b-button\n                  v-ripple.400=\"'rgba(255, 255, 255, 0.15)'\"\n                  split\n                  variant=\"primary\"\n                  class=\"d-block\"\n                  style=\"width: 100%\"\n                  @click=\"sendTicket\"\n                >\n                  <feather-icon icon=\"SendIcon\" class=\"mr-1\" />\n\n                  {{ $t(\"Send\") }}\n                </b-button>\n\n                <!-- Footer: Right Content -->\n                <div @click=\"modalShow = !modalShow\">\n                  <!-- Discard Compose -->\n\n                  <b-avatar\n                    :badge=\"`${\n                      composeData.attachments\n                        ? composeData.attachments.length\n                        : 0\n                    }`\"\n                    badge-variant=\"primary\"\n                    square\n                    badge-right\n                    style=\"background-color: transparent\"\n                  >\n                    <feather-icon icon=\"PaperclipIcon\" size=\"25\" color=\"grey\" />\n                  </b-avatar>\n                </div>\n              </div>\n            </div>\n          </div>\n        </b-form>\n      </validation-observer>\n    </b-modal>\n    <b-modal v-model=\"dialog\" @ok=\"onSelectModal\"\n      ><b-col cols=\"12\">\n        <v-select\n          v-model=\"selected\"\n          :dir=\"$store.state.appConfig.isRTL ? 'rtl' : 'ltr'\"\n          :options=\"items\"\n          label=\"title\"\n          :filterable=\"false\"\n          :reduce=\"(item) => item.id\"\n          :selectable=\"() => true\"\n          @search=\"onSearch\"\n          @option:selecting=\"onSelect\"\n        >\n          <template #no-options=\"{ search, searching, loading }\">\n            Aucune resultats\n          </template>\n          <template #list-header>\n            <Can i=\"create\" a=\"ticket_predefined_description\">\n              <b-button block variant=\"outline-primary\" @click=\"show_add_modal\"\n                ><feather-icon icon=\"PlusIcon\" />{{\n                  $t(\"Ajouter un message prédéfini\")\n                }}</b-button\n              >\n            </Can>\n          </template>\n          <template #open-indicator=\"{ attributes }\">\n            <span v-bind=\"attributes\">🔽</span>\n          </template>\n          <template #option=\"{ title }\">\n            <div>\n              <span> {{ title }}</span>\n            </div>\n          </template>\n        </v-select>\n\n        <!--  <v-select :options=\"items\" @search=\"onSearch\" label=\"title\">\n          <template v-slot:option=\"option\">\n            <span :class=\"option.firstname\"></span>\n            {{ option.firstname }}\n          </template>\n\n        </v-select> -->\n      </b-col></b-modal\n    >\n    <b-modal v-model=\"addDialog\" size=\"xl\" @ok=\"saveNewModal\"\n      ><b-col cols=\"12\">\n        <div class=\"compose-mail-form-field d-flex flex-column my-2\">\n          <label class=\"d-block text-left w-100 mb-1\" for=\"email-subject\"\n            >{{ $t(\"Title\") }}\n          </label>\n          <b-form-input\n            id=\"email-subject\"\n            v-model=\"composeDataModal.title\"\n            class=\"border\"\n          />\n        </div>\n        <div class=\"message-editor\">\n          <quill-editor\n            v-model=\"composeDataModal.description\"\n            :options=\"editorOptionModal\"\n            @change=\"onEditorChangeModal($event)\"\n          />\n        </div>\n      </b-col>\n    </b-modal>\n    <b-modal\n      v-model=\"modalShow\"\n      :title=\"$t('Pièces jointes')\"\n      scrollable\n      size=\"lg\"\n      ok-only\n    >\n      <b-col\n        v-if=\"composeData.attachments && composeData.attachments.length > 0\"\n        cols=\"12\"\n      >\n        <b-row\n          class=\"d-flex justify-content-between align-content-start align-items-center\"\n        >\n          <b-col\n            v-for=\"(file, index) in composeData.attachments\"\n            :key=\"index\"\n            class=\"mb-2\"\n            style=\"cursor: zoom-in\"\n            @click=\"zoomItem(file)\"\n          >\n   \n          <b-img v-if=\"file.includes('image/')\"\n          :src=\"file\"\n          style=\"width: 10rem; height: 10rem\"\n        />\n        <i v-else-if=\"file.includes('application/')\"\n            style=\"font-size: 10rem\"\n            :class=\"`mr-50 fiv-cla fiv-icon-pdf`\"\n          />\n          <i v-else-if=\"file.includes('audio/')\"\n            style=\"font-size: 10rem\"\n            :class=\"`mr-50 fiv-cla fiv-icon-wav`\"\n          />\n          </b-col>\n        </b-row>\n      </b-col>\n      <b-col v-else class=\"text-center\">\n        {{ $t(\"Aucune pièce jointe\") }}\n      </b-col>\n    </b-modal>\n  </div>\n</template>\n\n<script>\nimport { ValidationProvider, ValidationObserver } from \"vee-validate\";\n\nimport Ripple from \"vue-ripple-directive\";\nimport { ref } from \"@vue/composition-api\";\nimport { quillEditor } from \"vue-quill-editor\";\nimport vSelect from \"vue-select\";\nimport vueFilePond from \"vue-filepond\";\n\n// Import FilePond styles\nimport \"filepond/dist/filepond.min.css\";\n\n// Import FilePond plugins\n// Please note that you need to install these plugins separately\n\n// Import image preview plugin styles\nimport \"filepond-plugin-image-preview/dist/filepond-plugin-image-preview.min.css\";\n\n// Import image preview and file type validation plugins\nimport FilePondPluginFileValidateType from \"filepond-plugin-file-validate-type\";\nimport FilePondPluginFileValidateSize from \"filepond-plugin-file-validate-size\";\nimport FilePondPluginImagePreview from \"filepond-plugin-image-preview\";\nimport { mapActions, mapGetters, mapMutations } from \"vuex\";\nimport ToastificationContentVue from \"@/@core/components/toastification/ToastificationContent.vue\";\n/// /import // FilePondPluginPdfPreview from \"filepond-plugin-pdf-preview\"\n// Create component\n\nconst FilePond = vueFilePond(\n  FilePondPluginFileValidateType,\n  FilePondPluginFileValidateSize,\n  FilePondPluginImagePreview\n  /// /// FilePondPluginPdfPreview,\n);\nexport default {\n  directives: {\n    Ripple,\n  },\n  components: {\n    // BSV\n\n    FilePond,\n    // 3rd Party\n    quillEditor,\n    vSelect,\n    ValidationProvider,\n    ValidationObserver,\n  },\n  model: {\n    prop: \"shallShowEmailComposeModal\",\n    event: \"update:shall-show-email-compose-modal\",\n  },\n  props: {\n    shallShowEmailComposeModal: {\n      type: Boolean,\n      required: true,\n    },\n    tags: {\n      type: Array,\n    },\n  },\n  data() {\n    return {\n      timerusers: null,\n      users: [],\n      assignees: [\"Utilisateur(s)\", \"Groupe(s)\", \"Utilisateur Odoo\"],\n      modalShow: false,\n      editedIndex: -1,\n      editedItem: {\n        name: \"\",\n      },\n      defaultItem: {\n        name: \"\",\n      },\n      zoomPic: false,\n      picToBeZoomed: null,\n      addDialog: false,\n      items: [],\n      selected: null,\n      selectedList: [],\n      dialog: false,\n      assign: null,\n      composeData: {\n        // created_by: 1,\n        assign_user_from_odoo: false,\n        odoo_id: \"\",\n        subject: \"\",\n        description: \"\",\n        tag_id: null,\n        sub_tag_id: null,\n        status_id: 1,\n        attachments: [],\n        competences_groups_ids: [],\n        user_ids: [],\n      },\n      composeDataModal: {\n        // created_by: 1,\n\n        title: \"\",\n        description: \"\",\n      },\n      // composeData: {},\n      parameter_id: null,\n      server: null,\n      editorOption: {\n        modules: {\n          toolbar: {\n            container: [\n              [\"bold\", \"italic\", \"underline\", \"strike\"],\n              // [\"blockquote\", \"code-block\"],\n              // [{ header: 1 }, { header: 2 }],\n              // [{ list: \"ordered\" }, { list: \"bullet\" }],\n              // [{ script: \"sub\" }, { script: \"super\" }],\n              // [{ indent: \"-1\" }, { indent: \"+1\" }],\n              // [{ direction: \"rtl\" }],\n              // [{ size: [\"small\", false, \"large\", \"huge\"] }],\n              // [{ header: [1, 2, 3, 4, 5, 6, false] }],\n              // [{ font: [] }],\n              // [{ color: [] }, { background: [] }],\n              // [{ align: [] }],\n              // [\"clean\"],\n              // [\"link\", \"image\", \"video\"],\n            ],\n            handlers: {\n              Text: this.modal_show,\n            },\n          },\n        },\n\n        placeholder: this.$t(\n          \"Dites-nous en plus... Veuillez être aussi détaillé que possible.\"\n        ),\n      },\n      editorOptionModal: {\n        modules: {\n          toolbar: {\n            container: [\n              [\"bold\", \"italic\", \"underline\", \"strike\"],\n              // [\"blockquote\", \"code-block\"],\n              // [{ header: 1 }, { header: 2 }],\n              // [{ list: \"ordered\" }, { list: \"bullet\" }],\n              // [{ script: \"sub\" }, { script: \"super\" }],\n              // [{ indent: \"-1\" }, { indent: \"+1\" }],\n              // [{ direction: \"rtl\" }],\n              // [{ size: [\"small\", false, \"large\", \"huge\"] }],\n              // [{ header: [1, 2, 3, 4, 5, 6, false] }],\n              // [{ font: [] }],\n              // [{ color: [] }, { background: [] }],\n              // [{ align: [] }],\n              // [\"clean\"],\n              // [\"link\", \"image\", \"video\"],\n            ],\n          },\n        },\n\n        placeholder: this.$t(\"Ecrivez votre message prédéfini\"),\n      },\n    };\n  },\n  watch: {\n    // 'composeData.tag_id': {\n    //   handler(val) {\n    //     // localStorage.setItem(\"ticket\", JSON.stringify(val));\n    //     // if (!val.attachments || Array.isArray(!val.attachments)) {\n    //     //   val.attachments = [];\n    //     // }\n    //   },\n    //   deep: true,\n    // },\n    assign(val) {\n      if (val) {\n        this.selectedList = [];\n      }\n    },\n    parameter_id: {\n      handler(val) {\n        if (val) {\n          const parameter = this.parameters.filter(\n            (parameter) => parameter.id == val\n          );\n\n          if (parameter && parameter.length)\n            this.composeData.subject = parameter[0].name;\n        }\n      },\n      immediate: true,\n    },\n  },\n  created() {\n    if (this.HasPermissionTO(\"all\", \"ticket_predefined_description\"))\n      this.editorOption.modules.toolbar.container.push([\"Text\"]);\n  },\n  async mounted() {\n    if (this.HasPermissionTO(\"all\", \"ticket_predefined_description\")) {\n      const nd = document.createElement(\"span\");\n      nd.classList.add(\"mdi\", \"mdi-message-outline\");\n      const btns = document.querySelectorAll(\"#quil-content-1 .ql-Text\");\n\n      if (btns.length > 0) {\n        for (const btn of btns) {\n          btn.appendChild(nd);\n        }\n      }\n    }\n\n    this.GET_GROUPES().then((res) => {\n      this.groupes = res;\n    });\n    //   if (this.HasPermissionTo(\"all\", \"ticket_predefined_description\")) {\n    // }\n    // let ticket = localStorage.getItem(\"ticket\");\n\n    // if (!ticket) {\n    //   ticket = JSON.stringify({\n    //     //created_by: null,\n    //     odoo_id: null,\n    //     subject: \"\",\n    //     description: \"\",\n    //     tag_id: null,\n    //     sub_tag_id: null,\n    //   });\n    // }\n\n    // this.composeData = JSON.parse(ticket);\n    //     let nd = document.createElement(\"span\");\n    // nd.classList.add(\"mdi\",\"mdi-message-outline\");\n\n    //  let btns = document.querySelectorAll(\".ql-Text\");\n    // if (btns.length>0) {\n    //  for(let btn of btns) {\n    //    btn.appendChild(nd);\n    // }\n    // }\n\n    this.server = {\n      process: (\n        fieldName,\n        file,\n        metadata,\n        load,\n        error,\n        progress,\n        abort,\n        transfer,\n        options\n      ) => {\n        const reader = new FileReader();\n        reader.readAsDataURL(file);\n\n        const self = this;\n        reader.onload = function () {\n          self.composeData.attachments.push(reader.result);\n          self.$refs.pond_compose.removeFiles();\n          load(reader.result);\n        };\n      },\n    };\n  },\n  updated() {\n    if (this.tags && this.tags.length > 0) {\n      if (!this.composeData || !this.composeData.tag_id) {\n        this.composeData.tag_id = this.tags[0].id;\n      }\n    }\n  },\n\n  computed: {\n    ...mapGetters(\"auth\", [\"HasPermissionTO\"]),\n\n    subtags() {\n      this.assign = null;\n      if (this.tags.length > 0) {\n        const filter = this.tags.filter(\n          (tag) => tag.id == this.composeData.tag_id\n        );\n\n        if (filter.length > 0) {\n          this.composeData.sub_tag_id = filter[0].subtags[0].id;\n\n          return filter[0].subtags;\n        }\n        return [];\n      }\n      return [];\n      // return this.tags.map((tag) =>\n      //   tag.id == this.composeData.tag_id ? tag.sub_tags : []\n      // );\n    },\n    tagname() {\n      const index = this.tags.findIndex(\n        (tag) => tag.id == this.composeData.tag_id\n      );\n      if (index > -1) {\n        //console.log(this.tags[index]);\n        return this.tags[index].name;\n      }\n      return \"false\";\n    },\n    subtagname() {\n      const index = this.subtags.findIndex(\n        (subtag) => subtag.id == this.composeData.sub_tag_id\n      );\n      if (index > -1) {\n        return this.subtags[index].name;\n      }\n      return \"false\";\n    },\n    parameters() {\n      this.assign = null;\n      if (this.subtags.length > 0) {\n        const filter = this.subtags.filter(\n          (subtag) => subtag.id == this.composeData.sub_tag_id\n        );\n        this.assign =\n          filter[0].type.name == \"informatif\" ? \"Utilisateur(s)\" : null;\n        this.composeData.competences_groups_ids = [];\n        this.composeData.user_ids = [];\n        if (\n          filter.length > 0 &&\n          filter[0].parameters &&\n          filter[0].parameters.length > 0\n        ) {\n          this.parameter_id = filter[0].parameters[0].id;\n\n          return filter[0].parameters;\n        }\n        this.parameter_id = null;\n        this.composeData.subject = null;\n        return [];\n      }\n      return [];\n      // if (this.subtags.length > 0) {\n      //   let filter = this.subtags.filter(\n      //     (subtag) => subtag.id == this.composeData.sub_tag_id\n      //   );\n      //   if (\n      //     filter.length > 0 &&\n      //     filter[0].parameters &&\n      //     filter[0].parameters.length > 0\n      //   ) {\n      //     if (!this.composeData || !this.composeData.action_id) {\n      //       this.composeData.action_id = filter[0].parameters[0].id;\n      //     }\n      //     return filter[0].actions;\n      //   }\n      //   return [];\n      // }\n      // return [];\n      // return this.tags.map((tag) =>\n      //   tag.id == this.composeData.tag_id ? tag.sub_tags : []\n      // );\n    },\n    ...mapGetters(\"auth\", {\n      user: \"GET_USER_DATA\",\n    }),\n  },\n  methods: {\n    zoomItem(item) {\n      this.zoomPic = !this.zoomPic;\n      this.picToBeZoomed = item;\n    },\n    onSelectElement(item) {\n      const index = this.selectedList.findIndex((el) => el.id == item.id);\n\n      if (index == -1) {\n        this.selectedList.push(item);\n      } else {\n        this.selectedList.splice(index, 1);\n      }\n    },\n    ...mapMutations(\"uhub\", [\n      \"SET_TICKET_DATA\",\n      \"CLEAR_TICKET_DATA\",\n      \"setCompose\",\n    ]),\n    ...mapActions(\"uhub\", [\n      \"GET_TAGS\",\n      \"GET_MY_TAGS\",\n      \"GET_SUBTAGS\",\n      \"ADD_TICKET\",\n    ]),\n    ...mapActions(\"tickets\", [\"SEARCH_MODAL\", \"ADD_TICKET_MODAL\"]),\n    ...mapActions(\"groupes\", [\"GET_GROUPES\"]),\n\n    ...mapGetters(\"uhub\", [\"GET_TICKET_DATA\"]),\n    modal_show() {\n      this.dialog = true;\n    },\n    saveNewModal() {\n      this.ADD_TICKET_MODAL(this.composeDataModal).then((res) => {\n        if (res) {\n          this.composeData.description = res.description;\n          this.composeDataModal = {\n            title: \"\",\n            description: \"\",\n          };\n        }\n      });\n    },\n    show_add_modal() {\n      this.addDialog = true;\n      this.dialog = false;\n    },\n    onSelectModal() {\n      this.composeData.description = this.body;\n    },\n    ...mapActions(\"users_uhub\", [\"GET_USERS\", \"USER_SEARCH\"]),\n\n    onSearch(search, loading) {\n      clearTimeout(this.timer);\n      this.timer = setTimeout(() => {\n        if (search.length >= 1) {\n          this.items = [];\n          loading(true);\n          this.SEARCH_MODAL(search).then((res) => {\n            this.items = res;\n            loading(false);\n            clearTimeout(this.timer);\n          });\n        }\n      }, 1000);\n    },\n    onSearchUsers(search, loading) {\n      clearTimeout(this.timerusers);\n      this.timerusers = setTimeout(() => {\n        if (search.length >= 1) {\n          this.users = [];\n          loading(true);\n          this.USER_SEARCH(search).then((res) => {\n            this.users = res;\n            loading(false);\n            clearTimeout(this.timerusers);\n          });\n        }\n      }, 1000);\n    },\n\n    onSelect(selectedOption) {\n      this.body = selectedOption.description;\n      this.selected = selectedOption;\n    },\n    sendTicket() {\n      this.$refs.client.validate().then(async (success) => {\n        if (success) {\n          if (this.assign) {\n            if (this.assign == \"Utilisateur(s)\") {\n              this.composeData.user_ids = this.selectedList.map((el) => el.id);\n              this.composeData.competences_groups_ids = [];\n              this.composeData.assign_user_from_odoo = false;\n            } else if (this.assign == \"Groupe(s)\") {\n              this.composeData.competences_groups_ids = this.selectedList.map(\n                (el) => el.id\n              );\n              this.composeData.user_ids = [];\n              this.composeData.assign_user_from_odoo = false;\n            } else {\n              this.composeData.assign_user_from_odoo = true;\n              this.composeData.competences_groups_ids = [];\n              this.composeData.user_ids = [];\n            }\n          } else {\n            this.composeData.competences_groups_ids = [];\n            this.composeData.assign_user_from_odoo = false;\n            this.composeData.user_ids = [];\n          }\n          this.ADD_TICKET(this.composeData)\n            .then(() => {\n              this.discardEmail();\n              // this.$emit(\"rerender\");\n              this.$toast({\n                component: ToastificationContentVue,\n                props: {\n                  title: this.$t(\"Ticket Créé avec success\"),\n                  variant: \"success\",\n                },\n              });\n            })\n            .catch((e) => console.log(e));\n        }\n      });\n    },\n    discardEmail() {\n      this.composeData = {\n        // created_by: 1,\n        odoo_id: \"\",\n        subject: \"\",\n        description: \"\",\n        tag_id: this.composeData.tag_id,\n        sub_tag_id: null,\n        status_id: 1,\n        action_id: null,\n        attachments: [],\n        competences_groups_ids: [],\n        user_ids: [],\n        assign_user_from_odoo: false,\n      };\n      this.parameter_id = null;\n      this.$refs.pond_compose.removeFiles();\n      // localStorage.setItem(\n      //   \"ticket\",\n      //   JSON.stringify({\n      //     //created_by: null,\n      //     odoo_id: null,\n      //     subject: \"\",\n      //     description: \"\",\n      //     tag_id: null,\n      //     sub_tag_id: null,\n      //   })\n      // );\n      this.setCompose(false);\n      // this.$emit(\"update:shall-show-email-compose-modal\", false);\n    },\n    onEditorChange({ html }) {\n      const filtred = html.replace(/<img[^>]+>/, \"\");\n      this.composeData.description = filtred;\n    },\n    onEditorChangeModal({ html }) {\n      const filtred = html.replace(/<img[^>]+>/, \"\");\n      this.composeDataModal.description = filtred;\n    },\n  },\n};\n</script>\n\n<style lang=\"scss\">\n@import \"@core/scss/vue/libs/vue-select.scss\";\n@import \"@core/scss/vue/libs/quill.scss\";\n</style>\n\n<style lang=\"scss\" scoped>\nform ::v-deep {\n  // Mail To vue-select style\n\n  .v-select {\n    .vs__dropdown-toggle {\n      border: 1;\n      box-shadow: none;\n    }\n\n    .vs__open-indicator {\n      display: none;\n    }\n  }\n\n  // Quill Editor Style\n  .quill-editor {\n    .ql-container.ql-snow {\n      border-bottom: 0 !important;\n    }\n  }\n}\n</style>\n<style>\n#compose-mail {\n  max-height: 100vh;\n  z-index: 99999999999999999999999999;\n}\n\n#compose-mail .ql-editor {\n  max-height: 10vh !important;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TicketCompose.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TicketCompose.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TicketCompose.vue?vue&type=template&id=bb80c4f8&scoped=true&\"\nimport script from \"./TicketCompose.vue?vue&type=script&lang=js&\"\nexport * from \"./TicketCompose.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TicketCompose.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./TicketCompose.vue?vue&type=style&index=1&id=bb80c4f8&lang=scss&scoped=true&\"\nimport style2 from \"./TicketCompose.vue?vue&type=style&index=2&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"bb80c4f8\",\n  null\n  \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TicketView.vue?vue&type=style&index=1&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TicketView.vue?vue&type=style&index=0&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/logo.3cc71217.png\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TicketCompose.vue?vue&type=style&index=1&id=bb80c4f8&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',{attrs:{\"no-body\":\"\"}},[(_vm.message.created_by)?_c('b-card-header',{staticClass:\"email-detail-head\"},[_c('div',{staticClass:\"user-details d-flex justify-content-between align-items-center flex-wrap\"},[_c('b-avatar',{staticClass:\"mr-75\",attrs:{\"size\":\"48\",\"src\":_vm.message.created_by.avatar}}),_c('div',{staticClass:\"mail-items\"},[_c('h5',{staticClass:\"mb-0\"},[_vm._v(\" \"+_vm._s(_vm.message.created_by.id == _vm.user.id ? \"Vous\" : _vm.message.created_by.firstname + \" \" + _vm.message.created_by.lastname)+\" \")])])],1),_c('div',{staticClass:\"mail-meta-item d-flex align-items-center\"},[_c('small',{staticClass:\"mail-date-time text-muted\"},[_vm._v(_vm._s(_vm.$moment(_vm.message.created_at).fromNow()))])])]):_vm._e(),_c('b-card-body',{staticClass:\"mail-message-wrapper pt-2\"},[_c('div',{staticClass:\"mail-message\",domProps:{\"innerHTML\":_vm._s(_vm.message.description)}})]),(_vm.message.attachments && _vm.message.attachments.length)?_c('b-card-footer',[_c('div',{staticClass:\"mail-attachments\"},[_c('div',{staticClass:\"d-flex align-items-center mb-1\"},[_c('feather-icon',{attrs:{\"icon\":\"PaperclipIcon\",\"size\":\"16\"}}),_c('h5',{staticClass:\"font-weight-bolder text-body mb-0 ml-50\"},[_vm._v(\" \"+_vm._s(_vm.message.attachments.length)+\" Attachment\"+_vm._s(_vm.message.attachments.length > 1 ? \"s\" : \"\")+\" \")])],1),_c('div',{staticClass:\"d-flex flex-column\"},_vm._l((_vm.message.attachments),function(attachment,index){return _c('span',{key:index},[(attachment.file)?_c('div',[(!['wav','mp3'].includes(attachment.file.extension))?_c('b-link',{class:{ 'mt-75': index },attrs:{\"target\":\"_blank\"},on:{\"click\":function($event){return _vm.zoom(attachment.file.url)}}},[_c('i',{class:(\"mr-50 fiv-cla fiv-icon-\" + (attachment.file.extension)),staticStyle:{\"font-size\":\"35px\"}}),_c('span',{staticClass:\"text-muted font-weight-bolder align-text-top\"},[_vm._v(_vm._s(attachment.path.split(\"/\").pop()))]),_c('span',{staticClass:\"text-muted font-small-2 ml-25\"},[_vm._v(\"(\"+_vm._s(_vm.humanFileSize(attachment.file.size))+\")\")]),_c('b-link',{on:{\"click\":function($event){return _vm.download(attachment)}}},[_c('feather-icon',{staticClass:\"ml-1\",attrs:{\"icon\":\"ArrowDownCircleIcon\",\"size\":\"17\"}})],1)],1):_c('div',{staticClass:\"d-flex align-items-center\",class:{ 'mt-75': index }},[_c('vue-plyr',[_c('audio',{attrs:{\"crossorigin\":\"\",\"playsinline\":\"\"}},[_c('source',{attrs:{\"src\":attachment.file.url,\"type\":\"audio/wav\"}})])]),_c('b-link',{on:{\"click\":function($event){return _vm.download(attachment)}}},[_c('feather-icon',{staticClass:\"ml-1\",attrs:{\"icon\":\"ArrowDownCircleIcon\",\"size\":\"17\"}})],1)],1)],1):_vm._e()])}),0)])]):_vm._e(),_c('b-modal',{attrs:{\"id\":\"modal-primary\",\"hide-footer\":\"\",\"modal-class\":\"modal-primary\",\"centered\":\"\",\"size\":\"xl\"},model:{value:(_vm.zoomPic),callback:function ($$v) {_vm.zoomPic=$$v},expression:\"zoomPic\"}},[_c('b-embed',{attrs:{\"src\":_vm.picToBeZoomed,\"aspect\":\"16by9\",\"type\":\"iframe\",\"allowfullscreen\":\"\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <b-card no-body>\n    <b-card-header\n      v-if=\"message.created_by\"\n      class=\"email-detail-head\"\n    >\n      <div\n        class=\"user-details d-flex justify-content-between align-items-center flex-wrap\"\n      >\n        <b-avatar\n          size=\"48\"\n          :src=\"message.created_by.avatar\"\n          class=\"mr-75\"\n        />\n        <div class=\"mail-items\">\n          <h5 class=\"mb-0\">\n            {{\n              message.created_by.id == user.id\n                ? \"Vous\"\n                : message.created_by.firstname +\n                  \" \" +\n                  message.created_by.lastname\n            }}\n          </h5>\n          <!-- <b-dropdown\n            variant=\"link\"\n            no-caret\n            toggle-class=\"p-0\"\n            class=\"email-info-dropup\"\n          >\n            <template #button-content>\n              <span class=\"font-small-3 text-muted mr-25\">{{\n                message.user.email\n              }}</span>\n              <feather-icon icon=\"ChevronDownIcon\" size=\"10\" />\n            </template>\n            <table class=\"table table-sm table-borderless font-small-3\">\n              <tbody>\n                <tr>\n                  <td class=\"text-right text-muted align-top\">From:</td>\n                  <td>{{ message.user.email }}</td>\n                </tr>\n                <tr>\n                  <td class=\"text-right text-muted align-top\">To:</td>\n\n                </tr>\n                <tr>\n                  <td class=\"text-right text-muted align-top\">Date:</td>\n                  <td>{{message.created_at_formatted}}</td>\n                </tr>\n              </tbody>\n            </table>\n          </b-dropdown> -->\n        </div>\n      </div>\n      <div class=\"mail-meta-item d-flex align-items-center\">\n        <small class=\"mail-date-time text-muted\">{{\n          $moment(message.created_at).fromNow()\n        }}</small>\n        <!-- Mail Action DD -->\n        <!-- <b-dropdown variant=\"link\" no-caret toggle-class=\"p-0\" right>\n          <template #button-content>\n            <feather-icon\n              icon=\"MoreVerticalIcon\"\n              size=\"17\"\n              class=\"ml-50 text-body\"\n            />\n          </template>\n\n          <b-dropdown-item>\n            <feather-icon icon=\"CornerUpLeftIcon\" />\n            <span class=\"align-middle ml-50\">Reply</span>\n          </b-dropdown-item>\n\n          <b-dropdown-item>\n            <feather-icon icon=\"CornerUpRightIcon\" />\n            <span class=\"align-middle ml-50\">Forward</span>\n          </b-dropdown-item>\n\n          <b-dropdown-item>\n            <feather-icon icon=\"TrashIcon\" />\n            <span class=\"align-middle ml-50\">{{$t('Delete')}}</span>\n          </b-dropdown-item>\n        </b-dropdown> -->\n      </div>\n    </b-card-header>\n\n    <b-card-body class=\"mail-message-wrapper pt-2\">\n      <!-- eslint-disable vue/no-v-html -->\n\n      <div\n        class=\"mail-message\"\n        v-html=\"message.description\"\n      />\n      <!-- eslint-enable -->\n    </b-card-body>\n\n    <b-card-footer v-if=\"message.attachments && message.attachments.length\">\n      <div class=\"mail-attachments\">\n        <div class=\"d-flex align-items-center mb-1\">\n          <feather-icon\n            icon=\"PaperclipIcon\"\n            size=\"16\"\n          />\n          <h5 class=\"font-weight-bolder text-body mb-0 ml-50\">\n            {{ message.attachments.length }} Attachment{{\n              message.attachments.length > 1 ? \"s\" : \"\"\n            }}\n          </h5>\n        </div>\n\n        <div class=\"d-flex flex-column\">\n          <span\n            v-for=\"(attachment, index) in message.attachments\"\n            :key=\"index\"\n          >\n          <div v-if=\"attachment.file\">\n            <b-link\n              v-if=\"!['wav','mp3'].includes(attachment.file.extension)\"\n              target=\"_blank\"\n              :class=\"{ 'mt-75': index }\"\n              @click=\"zoom(attachment.file.url)\"\n            >\n              <i\n                style=\"font-size: 35px\"\n                :class=\"`mr-50 fiv-cla fiv-icon-${attachment.file.extension}`\"\n              />\n\n              <span class=\"text-muted font-weight-bolder align-text-top\">{{\n                attachment.path.split(\"/\").pop()\n              }}</span>\n              <span class=\"text-muted font-small-2 ml-25\"\n                >({{ humanFileSize(attachment.file.size) }})</span\n              >\n              <b-link @click=\"download(attachment)\"\n              ><feather-icon\n                icon=\"ArrowDownCircleIcon\"\n                size=\"17\"\n                class=\"ml-1\"\n            /></b-link>\n            </b-link>\n            <div class=\"d-flex align-items-center\" :class=\"{ 'mt-75': index }\" v-else>\n              <vue-plyr >\n                <audio crossorigin playsinline>\n                  <source :src=\"attachment.file.url\" type=\"audio/wav\" />\n                </audio>\n              </vue-plyr>\n              <b-link @click=\"download(attachment)\"\n              ><feather-icon\n                icon=\"ArrowDownCircleIcon\"\n                size=\"17\"\n                class=\"ml-1\"\n            /></b-link>\n            </div>\n           \n          </div>\n          </span>\n        </div>\n      </div>\n    </b-card-footer>\n\n    <b-modal\n      id=\"modal-primary\"\n      v-model=\"zoomPic\"\n      hide-footer\n      modal-class=\"modal-primary\"\n      centered\n      size=\"xl\"\n    >\n      <b-embed\n        :src=\"picToBeZoomed\"\n        aspect=\"16by9\"\n        type=\"iframe\"\n        allowfullscreen\n      />\n    </b-modal>\n  </b-card>\n</template>\n\n<script>\nimport 'file-icon-vectors/dist/file-icon-vectors.min.css'\n// import { formatDate } from \"@core/utils/filter\";\nimport { mapGetters } from 'vuex'\n\nexport default {\n  props: {\n    message: {\n      type: Object,\n      required: true,\n    },\n  },\n  computed: {\n    ...mapGetters('auth', {\n      user: 'GET_USER_DATA',\n    }),\n  },\n  setup() {\n    return {}\n  },\n  data() {\n    return {\n      picToBeZoomed: null,\n      zoomPic: false,\n    }\n  },\n  mounted() {},\n  methods: {\n    download(item) {\n      // var element = document.createElement(\"a\");\n      // element.setAttribute(\"href\", item.file.url);\n      // element.setAttribute(\"target\", \"_blank\");\n      // element.setAttribute(\n      //   \"download\",\n      //   item.path.split(\"/\").pop() + \".\" + item.file.extension\n      // );\n      // document.body.appendChild(element);\n      // element.click();\n\n      fetch(item.file.url, {\n        method: 'get',\n\n        referrerPolicy: 'no-referrer',\n      })\n        .then(res => res.blob())\n        .then(res => {\n          const aElement = document.createElement('a')\n          aElement.setAttribute('download', item.path.split('/').pop())\n          const href = URL.createObjectURL(res)\n          aElement.href = href\n          aElement.setAttribute('target', '_blank')\n          aElement.click()\n          URL.revokeObjectURL(href)\n        })\n    },\n    zoom(value) {\n      this.zoomPic = true\n      this.picToBeZoomed = value\n    },\n    humanFileSize(bytes, si = true, dp = 1) {\n      const thresh = si ? 1000 : 1024\n\n      if (Math.abs(bytes) < thresh) {\n        return `${bytes} B`\n      }\n\n      const units = si\n        ? ['kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']\n        : ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB']\n      let u = -1\n      const r = 10 ** dp\n\n      do {\n        bytes /= thresh\n        ++u\n      } while (\n        Math.round(Math.abs(bytes) * r) / r >= thresh\n        && u < units.length - 1\n      )\n\n      return `${bytes.toFixed(dp)} ${units[u]}`\n    },\n  },\n}\n</script>\n\n<style></style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TicketDetail.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TicketDetail.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TicketDetail.vue?vue&type=template&id=7040fd94&\"\nimport script from \"./TicketDetail.vue?vue&type=script&lang=js&\"\nexport * from \"./TicketDetail.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports"],"sourceRoot":""}