{"version":3,"sources":["webpack:///./src/views/Tickets/TicketCompose.vue?071d","webpack:///./src/navigation/horizontal/Accueil.js","webpack:///./src/navigation/horizontal/NouveauClient.js","webpack:///./src/navigation/horizontal/NouveauContrat.js","webpack:///./src/navigation/horizontal/MesClients.js","webpack:///./src/navigation/horizontal/MesContrats.js","webpack:///./src/navigation/horizontal/Outils.js","webpack:///./src/navigation/horizontal/Documents.js","webpack:///./src/navigation/horizontal/Permissions.js","webpack:///./src/navigation/horizontal/Administration.js","webpack:///./src/navigation/horizontal/tickets.js","webpack:///./src/navigation/horizontal/faqs.js","webpack:///./src/navigation/horizontal/index.js","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/SharedTicket.vue?e2cd","webpack:///./src/views/Tickets/SharedTicketView.vue?f254","webpack:///src/views/Tickets/SharedTicketView.vue","webpack:///./src/views/Tickets/SharedTicketView.vue?2b12","webpack:///./src/views/Tickets/SharedTicketView.vue","webpack:///src/views/Tickets/SharedTicket.vue","webpack:///./src/views/Tickets/SharedTicket.vue?501b","webpack:///./src/views/Tickets/SharedTicket.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/SharedTicket.vue?b8e6","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":["title","icon","popup","resource","action","route","tag","header","children","id","store","getters","routes","tickets","accueil","nouveauClient","nouveauContrat","mesClients","mesContrats","outils","permissions","documents","faqs","administration","render","_vm","this","_h","$createElement","_c","_self","staticClass","directives","name","rawName","value","expression","modifiers","attrs","on","composeTicket","_v","_s","$t","loading","_e","perfectScrollbarSettings","_l","element","index","key","filter","$route","path","isDynamicRouteActive","$event","$emit","length","substring","resolveFilterBadgeColor","badge","el","staticRenderFns","Ripple","components","VuePerfectScrollbar","props","shallShowEmailComposeModal","type","required","emailTest","data","suppressScrollX","wheelPropagation","maxScrollbarLength","computed","mapGetters","mobileCheck","a","check","navigator","watch","mounted","methods","mapMutations","component","message","created_by","avatar","user","firstname","lastname","$moment","created_at","fromNow","domProps","description","attachments","attachment","includes","file","extension","class","url","download","zoom","staticStyle","split","pop","humanFileSize","size","model","callback","$$v","zoomPic","picToBeZoomed","setup","item","fetch","method","referrerPolicy","then","aElement","URL","bytes","Math","u","slot","emailViewData","loadTicket","opendedEmailMeta","showEmailDetails","changeOpenedEmail","subject","status_id","resolveLabelColor","status","tag_id","subtag_id","subtag","threadMail","FilePondPluginFileValidateType","FilePondPluginFileValidateSize","FilePondPluginImagePreview","quillEditor","TicketMessageCard","TicketDetail","modules","toolbar","placeholder","showWholeThread","email","editorOption","dialog","composeData","test","tags","refresh","socialShareIcons","text","handler","val","immediate","mapActions","AppNavbarHorizontalLayoutBrand","TicketLeftSidebar","SharedTicketView","TicketCompose","Pagination","LayoutHorizontal","emails","emailsMeta","payload","total","searchQuery","current_page","per_page","currentlength","selectedEmails","mqShallShowLeftSidebar","beforeMount","document","routeParams","routeQuery","selectAllEmailCheckbox","isSelectAllEmailCheckboxIndeterminate","Boolean","hasNextEmail","hasPreviousEmail","goTo","params","updateEmailViewData","catch","loadMoreEmails","e","changeSeletecTicketStatus","tickets_ids","label","updateRouteQuery","toggleSelectedMail","mailId","selectAllCheckboxUpdate","toggleStarred","is_starred","orderMails","sort","toggleSelectedMailStarred","mail","moveSelectedEmailsToFolder","folder","dispatch","emailIds","dataToUpdate","finally","updateSelectedEmailsLabel","markSelectedEmailsAsUnread","isRead","moveOpenEmailToFolder","updateOpenEmailLabel","markOpenEmailAsUnread","dir","changePage","evt","page","getEmails","setCompose","scopedSlots","_u","fn","discardEmail","proxy","ref","$set","option","assign","$store","state","appConfig","isRTL","users","onSearchUsers","onSelectElement","selectedList","attributes","_b","deselect","multiple","disabled","groupes","parameters","parameter_id","tagname","toLowerCase","subtagname","assign_user_from_odoo","errors","onEditorChange","server","sendTicket","modalShow","onSelectModal","items","onSearch","onSelect","search","searching","show_add_modal","selected","saveNewModal","addDialog","composeDataModal","editorOptionModal","onEditorChangeModal","zoomItem","FilePond","vSelect","ValidationProvider","ValidationObserver","prop","event","timerusers","assignees","editedIndex","editedItem","defaultItem","odoo_id","sub_tag_id","competences_groups_ids","user_ids","container","handlers","Text","created","nd","btns","btn","process","fieldName","metadata","load","error","progress","abort","transfer","options","reader","self","updated","subtags","modal_show","clearTimeout","selectedOption","variant","action_id"],"mappings":"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","file":"SharedTicket~2185abbe.25b984f7.js?version=1727726453033","sourcesContent":["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&\"","export default [\n\n  {\n    title: 'U-MAG',\n    icon: 'VideoIcon',\n    popup:true,\n    resource: 'proximus',\n        action: 'create',\n    // route:'popup'\n  },\n  // {\n  //   title: 'Qualification',\n  //   icon: 'UserCheckIcon',\n  //   route: 'Qualification',\n  //   action: 'read',\n  //   resource: 'qualification',\n  // },\n  {\n    title: 'Chat',\n    icon: 'MessageCircleIcon',\n    route: 'apps-chat',\n    action: 'respond_to',\n    resource: 'chat_room',\n    tag: true,\n  },\n  {\n    title: 'Mega Check',\n    icon: 'mdi mdi-cloud-sync-outline',\n    route: 'MegaCheck',\n    action: 'check',\n    resource: 'mega',\n    \n  },\n]\n","export default [\n  {\n    title: 'Nouveau client',\n    icon: 'UserPlusIcon',\n    route: 'CRUClients',\n    resource: 'client',\n    action: 'create',\n  },\n  // {\n  //   title: \"Nouveau consultant\",\n  //   icon: \"UserPlusIcon\",\n  //   route: \"CRUConsultants\",\n  //   resource: \"*\",\n  // action: \"*\",\n  // },\n]\n","export default [{\n    header: 'Nouveau contrat',\n    icon: 'FilePlusIcon',\n\n    children: [{\n            title: 'Proximus',\n            route: 'CRUProximus',\n            icon: 'CommandIcon',\n            resource: 'proximus',\n            action: 'create',\n        },\n        {\n            title: 'Scarlet',\n            route: 'CRUScarletContract',\n            icon: 'CommandIcon',\n            resource: 'scarlet',\n            action: 'create',\n        },\n        {\n            title: 'Mega',\n            route: 'CRUMega',\n            icon: 'CloudLightningIcon',\n            resource: 'mega',\n            action: 'create',\n        },\n        {\n            title: 'ForestCoffeeClub',\n            route: 'CRUForestCoffeeClub',\n            icon: 'CoffeeIcon',\n            resource: 'forest_coffee',\n            action: 'create',\n        },\n        {\n            title: 'ACI',\n            route: 'CRUAci',\n            icon: 'mdi mdi-cctv',\n            resource: 'aci',\n            action: 'create',\n        },\n     \n        {\n            title: 'U-Care',\n            route: 'CRUUCare',\n            icon: 'SmileIcon',\n            resource: 'ucare',\n            action: 'create',\n        },\n        {\n            title: 'Convention',\n            route: 'CRUConventions',\n            icon: 'AwardIcon',\n            resource: 'convention',\n            action: 'create',\n        },\n        {\n            title: 'U-Safe',\n            route: 'CRUP&V',\n            icon: 'mdi mdi-ampersand',\n            resource: 'pv_insurance',\n            action: 'create',\n        },\n        {\n            title: 'U-Power',\n            route: 'CRUUpower',\n            icon: 'mdi mdi-sun-wireless',\n            resource: 'upower',\n            action: 'create',\n        },\n        {\n            title: 'Numera',\n            route: 'CRUNumera',\n            icon: 'mdi mdi-leaf',\n            resource: 'numera',\n            action: 'create',\n        },\n    ],\n}, ]","export default [\n    // {\n    //   title: \"Consultants\",\n    //   icon: \"UsersIcon\",\n    //   route: \"ListAllConsultants\",\n    //   resource: \"*\",\n    // action: \"*\",\n    // },\n    // {\n    //   title: \"Clients\",\n    //   icon: \"UsersIcon\",\n    //   route: \"ListAllClients\",\n    //   resource: \"client\",\n    //   action: \"all\",\n    // },\n    {\n        header: 'Clients',\n        icon: 'UsersIcon',\n\n        children: [{\n                id: 'clients1',\n                title: 'Clients',\n                icon: 'UsersIcon',\n                resource: 'client',\n                action: 'all',\n                route: 'ListAllClients',\n            },\n            {\n                id: 'clients2',\n                title: 'Lead scarlet ',\n                icon: 'SunriseIcon',\n                resource: 'scarlet_client',\n                action: 'all',\n                route: 'ScarletClients',\n            },\n            // {\n            //     id: 'clients3',\n            //     title: 'Lead ACI ',\n            //     icon: 'mdi mdi-cctv',\n            //     resource: 'aci_client',\n            //     action: 'all',\n            //     route: 'AciClients',\n            // },\n        ],\n    },\n    {\n        header: 'Mes clients',\n        icon: 'UsersIcon',\n\n        children: [{\n                id: 'clients1',\n                title: 'Mes clients',\n                icon: 'UsersIcon',\n\n                resource: 'client',\n                action: 'mine',\n                route: 'ListClients',\n            },\n            {\n                id: 'clients2',\n                title: 'Lead scarlet ',\n                icon: 'SunriseIcon',\n                resource: 'scarlet_client',\n                action: 'mine',\n                route: 'ScarletClients',\n            },\n            // {\n            //     id: 'clients3',\n            //     title: 'Lead ACI ',\n            //     icon: 'mdi mdi-cctv',\n            //     resource: 'aci_client',\n            //     action: 'mine',\n            //     route: 'AciClients',\n            // },\n        ],\n    },\n]","export default [\n  {\n    header: 'Mes contrats',\n    icon: 'ArchiveIcon',\n\n    children: [\n      {\n        title: 'Proximus',\n        route: 'ListProximus',\n        icon: 'CommandIcon',\n        resource: 'proximus',\n        action: 'mine',\n      },\n      {\n        title: 'Scarlet',\n        route: 'ListScarletContract',\n        icon: 'CommandIcon',\n        resource: 'scarlet',\n        action: 'mine',\n      },\n      // {\n      //   title: \"Scarlet\",\n      //   route: \"ListScarlet\",\n      //   icon: \"SunriseIcon\",\n      //   disabled: true,\n      // },\n      {\n        title: 'Mega',\n        route: 'ListMega',\n        icon: 'CloudLightningIcon',\n        resource: 'mega',\n        action: 'mine',\n      },\n      {\n        title: 'ForestCoffeeClub',\n        route: 'ListForestCoffeeClub',\n        icon: 'CoffeeIcon',\n        resource: 'forest_coffee',\n        action: 'mine',\n      },\n      {\n        title: 'ACI',\n        route: 'ListAci',\n        icon: 'mdi mdi-cctv',\n        resource: 'aci',\n        action: 'mine',\n      },\n      {\n        title: 'U-Care',\n        route: 'ListUCare',\n        icon: 'SmileIcon',\n        resource: 'ucare',\n        action: 'mine',\n      },\n      {\n        title: 'Convention',\n        route: 'ListConventions',\n        icon: 'AwardIcon',\n        resource: 'convention',\n        action: 'mine',\n      },\n      {\n        title: 'U-Safe',\n        route: 'ListP&V',\n        icon: 'mdi mdi-ampersand',\n        resource: 'pv_insurance',\n        action: 'mine',\n      },\n      {\n        title: 'U-Power',\n        route: 'ListUpower',\n        icon: 'mdi mdi-sun-wireless',\n        resource: 'upower',\n        action: 'mine',\n    },\n    {\n      title: 'Numera',\n      route: 'ListNumera',\n      icon: 'mdi mdi-leaf',\n      resource: 'numera',\n      action: 'mine',\n  },\n    ],\n  },\n\n  {\n    header: 'Contrats',\n    icon: 'ArchiveIcon',\n\n    children: [\n      {\n        title: 'Proximus',\n        route: 'ListAllProximus',\n        icon: 'CommandIcon',\n        resource: 'proximus',\n        action: 'all',\n      },\n      {\n        title: 'Scarlet',\n        route: 'ListAllScarletContract',\n        icon: 'CommandIcon',\n        resource: 'scarlet',\n        action: 'all',\n      },\n\n      {\n        title: 'Mega',\n        route: 'ListAllMega',\n        icon: 'CloudLightningIcon',\n        resource: 'mega',\n        action: 'all',\n      },\n      {\n        title: 'ForestCoffeeClub',\n        route: 'ListAllForestCoffeeClub',\n        icon: 'CoffeeIcon',\n        resource: 'forest_coffee',\n        action: 'all',\n      },\n      {\n        title: 'ACI',\n        route: 'ListAllAci',\n        icon: 'mdi mdi-cctv',\n        resource: 'aci',\n        action: 'all',\n      },\n      // {\n      //   title: \"ForestCoffeeClub\",\n      //   route: \"ListAllForestCoffeeClub\",\n      //   icon: \"CoffeeIcon\",\n      //   odoo\n      // },\n      {\n        title: 'U-Care',\n        route: 'ListAllUCare',\n        icon: 'SmileIcon',\n        resource: 'ucare',\n        action: 'all',\n      },\n      {\n        title: 'Convention',\n        route: 'ListAllConventions',\n        icon: 'AwardIcon',\n        resource: 'convention',\n        action: 'all',\n      },\n      {\n        title: 'U-Safe',\n        route: 'ListAllP&V',\n        icon: 'mdi mdi-ampersand',\n        resource: 'pv_insurance',\n        action: 'all',\n      },\n      {\n        title: 'U-Power',\n        route: 'ListAllUpower',\n        icon: 'mdi mdi-sun-wireless',\n        resource: 'upower',\n        action: 'all',\n    },\n    {\n      title: 'Numera',\n      route: 'ListAllNumera',\n      icon: 'mdi mdi-leaf',\n      resource: 'numera',\n      action: 'all',\n  },\n    ],\n  },\n]\n","import store from '@/store'\n\nexport default [\n  {\n    header: 'Outils',\n    icon: 'ToolIcon',\n    resource: 'document',\n    action: 'read',\n    children: [...store.getters['statics/get_outils'], {\n      title: 'Fcm Compaign',\n      icon: 'BellIcon',\n      route: 'fcm_compaign',\n      resource: 'news',\n      action: 'create',\n    },]\n  },\n  {\n    title: 'Documents & Outils',\n    icon: 'ToolIcon',\n    route: 'CRUDocOutils',\n    resource: 'document',\n    action: 'create',\n  },\n  {\n    title: 'News',\n    icon: 'AlignLeftIcon',\n    route: 'CRUNews',\n    resource: 'news',\n    action: 'create',\n  },\n \n]\n","import store from '@/store'\n\nconst routes = [\n  {\n    header: 'Documents',\n    icon: 'LayersIcon',\n    action: 'read',\n    resource: 'document',\n    children: [\n      {\n        id: 'proximus',\n        title: 'Proximus',\n        icon: 'CommandIcon',\n        children: store.getters['statics/get_proximus'],\n      },\n      // {\n      //   id: 'lampiris',\n      //   title: 'Mega',\n      //   icon: 'CloudLightningIcon',\n      //   children: store.getters['statics/get_lampiris'],\n      // },\n      {\n        id: 'aci_system',\n        title: 'U-Protect',\n        icon: 'mdi mdi-cctv',\n        children: store.getters['statics/get_aci_system'],\n      },\n      {\n        id: 'mega',\n        title: 'Mega',\n        icon: 'CloudLightningIcon',\n        children: store.getters['statics/get_mega'],\n      },\n      {\n        id: 'upower',\n        title: 'U-Power',\n        icon: 'mdi mdi-sun-wireless',\n        resource: 'upower',\n        action: 'read',\n        children: store.getters['statics/get_upower'],\n      },\n    ],\n  },\n]\nexport default routes\n","export default [\n  {\n    header: 'Utilisateurs & Permissions',\n    icon: 'UnlockIcon',\n\n    children: [\n      {\n        id: 'usell',\n        title: 'USell',\n        icon: '',\n        children: [\n          {\n            title: 'Utilisateurs',\n            route: 'UsellUsersPermissions',\n            icon: 'UsersIcon',\n            resource: 'usell_users_permissions',\n            action: 'all',\n          },\n          // {\n          //   title: \"Roles\",\n          //   route: \"Roles\",\n          //   icon: \"CommandIcon\",\n          //   resource: \"*\",\n          //   action: \"*\",\n          // },\n          {\n            title: 'Permissions',\n            route: 'UsellPermissions',\n            icon: 'KeyIcon',\n            resource: 'usell_users_permissions',\n            action: 'all',\n          },\n        ],\n      },\n      {\n        id: 'uhub',\n        title: 'UHub',\n        icon: '',\n        children: [\n          {\n            title: 'Utilisateurs',\n            route: 'UhubUsersPermissions',\n            icon: 'UsersIcon',\n            resource: 'uhub_users_permissions',\n            action: 'all',\n          },\n          {\n            title: 'Groupes',\n            route: 'Groupes',\n            icon: 'CommandIcon',\n            resource: 'competence_group',\n            action: 'all',\n          },\n          {\n            title: 'Permissions',\n            route: 'UhubPermissions',\n            icon: 'KeyIcon',\n            resource: 'uhub_users_permissions',\n            action: 'all',\n          },\n        ],\n      },\n    ],\n  },\n]\n","export default [{\n        header: 'Administration',\n        icon: 'mdi mdi-account-cog-outline',\n        // resource: 'upower_admin',\n        // action: 'read',\n        children: [{\n            id: 'upower',\n            title: 'U-Power',\n            icon: 'mdi mdi-sun-wireless',\n            children: [{\n                    title: 'Gestion des catégories',\n                    route: 'UpowerCategoriesManagment',\n                    icon: 'mdi mdi-group',\n                    resource: 'upower_admin',\n                    action: 'read',\n                },\n                {\n                    title: 'Gestion des coefficients',\n                    route: 'UpowerCoefficientManagment',\n                    icon: 'mdi mdi-group',\n                    resource: 'upower_admin',\n                    action: 'read',\n                },\n                {\n                    title: 'Gestion des produits',\n                    route: 'UpowerProductsManagment',\n                    icon: 'UsersIcon',\n                    resource: 'upower_admin',\n                    action: 'read',\n                },\n                {\n                    title: 'Gestion des variables',\n                    route: 'UpowerVariablesManagment',\n                    icon: 'SettingsIcon',\n                    resource: 'upower_admin',\n                    action: 'read',\n                }\n            ],\n        },\n        {\n            id: 'uprotect',\n            title: 'U-Protect',\n            icon: 'mdi mdi-cctv',\n            children: [{\n                    title: 'Gestion des catégories',\n                    route: 'UProtectCategoriesManagment',\n                    icon: 'mdi mdi-group',\n                    // action: '*',\n                    // resource: '*',\n                \n                    resource: 'uprotect_admin',\n                    action: 'read',\n                },\n\n                {\n                    title: 'Gestion des produits',\n                    route: 'UProtectProductsManagment',\n                    icon: 'UsersIcon',\n                    // action: '*',\n                    // resource: '*',\n                \n                    resource: 'uprotect_admin',\n                    action: 'read',\n                },\n                {\n                    title: 'Gestion des packs',\n                    route: 'UProtectPacksManagment',\n                    icon: 'UsersIcon',\n                    // action: '*',\n                    // resource: '*',\n                \n                    resource: 'uprotect_admin',\n                    action: 'read',\n                },\n                \n            ],\n        } ],\n    },\n\n]","import store from '@/store'\n\nconst routes = [\n  {\n    id: 'ticket',\n    title: 'Tickets',\n    icon: 'mdi mdi-email-multiple-outline',\n    route: 'tickets',\n    resource: '*',\n    action: '*',\n    tag: true,\n  },\n  {\n    header: 'Tags & Subtags',\n    icon: 'mdi mdi-format-list-checks',\n\n    children: [\n      {\n        id: 'tags',\n        title: 'Catégories',\n        icon: 'MenuIcon',\n        route: 'Tags',\n        resource: '*',\n        action: '*',\n      },\n      {\n        id: 'subtags',\n        title: 'Sous Catégories',\n        icon: 'ListIcon',\n        route: 'Subtags',\n        resource: '*',\n        action: '*',\n      },\n    ],\n  },\n]\nexport default routes\n","import store from '@/store'\n\nconst routes = [\n  {\n    header: 'FAQ',\n    icon: 'mdi mdi-folder-question-outline',\n\n    children: [\n      {\n        id: 'faqs',\n        title: 'Ajouter FAQ',\n        icon: 'PlusCircleIcon',\n        route: 'FaqCru',\n        resource: 'faq',\n        action: 'create',\n      },\n      {\n        id: 'subfaqs',\n        title: 'Mes FAQs',\n        icon: 'FolderIcon',\n        route: 'FaqList',\n        resource: 'faq',\n        action: 'mine',\n      },\n      {\n        id: 'listfaqs',\n        title: 'Liste des FAQs',\n        icon: 'FolderIcon',\n        route: 'FaqListAll',\n        resource: 'faq',\n        action: 'all',\n      },\n    ],\n  },\n  {\n    id: 'faqs',\n    title: 'FAQ',\n    icon: 'HelpCircleIcon',\n    route: 'FaqSearch',\n    resource: 'faq',\n    action: 'read',\n  },\n]\nexport default routes\n","/*\n\nNOTE: tag is not supported in horizontal menu\n\nArray of object\n\nTop level object can be:\n2. Group (Group can have navItems as children)\n3. navItem\n\n* Supported Options\n\n/--- nav Grp (top level grp is called header group) ---/\n\ntitle\nicon (if it's on top/second level)\nchildren\n\n/--- nav Item (top level item is called header link) ---/\n\nicon (if it's on top/second level)\ntitle\nroute: [route_obj/route_name] (I have to resolve name somehow from the route obj)\n\n*/\nimport accueil from './Accueil'\nimport nouveauClient from './NouveauClient'\nimport nouveauContrat from './NouveauContrat'\nimport mesClients from './MesClients'\nimport mesContrats from './MesContrats'\nimport outils from './Outils'\nimport documents from './Documents'\nimport permissions from './Permissions'\nimport administration from './Administration'\n\nimport tickets from './tickets'\nimport faqs from './faqs'\n// import Analytique from \"./Analytique\";\n// import store from \"../../store\";\n\n// let docs=store.getters['statics/GET_DOCUMENTS_UTILES']\n// Object.entries(docs).forEach(el=>{\n// })\n// Array of sections\n\nimport store from '@/store'\nlet invite = [store.getters['statics/get_invite']]\n\nexport default [\n    ...tickets,\n\n    ...accueil,\n    // ...Analytique,\n    ...nouveauClient,\n    ...nouveauContrat,\n    ...mesClients,\n    ...mesContrats,\n    ...outils,\n    ...permissions,\n    ...documents,\n    ...faqs,\n    // ...invite,\n    ...administration,\n    \n]","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('layout-horizontal',[_c('div',{attrs:{\"slot\":\"navbar\"},slot:\"navbar\"},[_c('AppNavbarHorizontalLayoutBrand',{staticClass:\"pt-2\"})],1),_c('shared-ticket-view',{staticClass:\"show\",attrs:{\"email-view-data\":_vm.emailViewData,\"loading\":_vm.loadTicket,\"opended-email-meta\":_vm.opendedEmailMeta},on:{\"close-email-view\":function($event){_vm.showEmailDetails = false},\"change-opened-email\":_vm.changeOpenedEmail}})],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 w-100\"},[_c('div',{staticClass:\"email-detail-header\"},[_c('div',{staticClass:\"email-header-left d-flex align-items-center\"},[_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(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.emailViewData.status.name : \"\")+\" \")])],2)])]),_c('vue-perfect-scrollbar',{staticClass:\"email-scroll-area scroll-area\",attrs:{\"settings\":_vm.perfectScrollbarSettings}},[(_vm.emailViewData && !_vm.loading)?[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"email-label\"},[_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.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.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)})]:_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('b-row'):_vm._e()],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div class=\"email-app-details w-100\">\n    <!-- Email Header -->\n    <div class=\"email-detail-header\">\n      <!-- Header: Left -->\n      <div class=\"email-header-left d-flex align-items-center\">\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          >\n            {{ tag.name }} </b-badge><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 ? emailViewData.status.name : \"\" }}\n          </b-badge>\n        </h4>\n      </div>\n    </div>\n\n    <!-- Email Details -->\n    <vue-perfect-scrollbar\n      :settings=\"perfectScrollbarSettings\"\n      class=\"email-scroll-area scroll-area\"\n    >\n      <!-- Label Row -->\n\n      <template v-if=\"emailViewData && !loading\">\n        <b-row>\n          <b-col cols=\"12\">\n            <div class=\"email-label\">\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 ? 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 ? 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\n          v-for=\"threadMail in emailViewData.replies\"\n          :key=\"threadMail.id\"\n        >\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    </vue-perfect-scrollbar>\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 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    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\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 === 'pending') return 'warning'\n      if (label === 'open') return 'danger'\n      return 'secondary'\n    }\n    const perfectScrollbarSettings = {\n      maxScrollbarLength: 150,\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    const editorOption = {\n      modules: {\n        toolbar: [\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      placeholder: 'Ajouter une réponse pour ce mail',\n    }\n    return {\n      // UI\n      perfectScrollbarSettings,\n      showWholeThread,\n      email,\n      editorOption,\n      attachments,\n      // useEmail\n      resolveLabelColor,\n    }\n  },\n  data() {\n    return {\n      dialog: false,\n      composeData: {\n        description: '',\n        attachments: [],\n      },\n      test: null,\n\n      tags: [],\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        // 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  },\n\n  computed: {\n    ...mapGetters('auth', { user: 'GET_USER_DATA' }),\n    ...mapGetters('tickets', ['GET_STARRED']),\n  },\n  async mounted() {},\n  methods: {\n    ...mapActions('uhub', [\n      'GET_TICKET',\n      'TICKET_REPLY',\n      'GET_TAGS',\n      'UPDATE_TICKET',\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!./SharedTicketView.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!./SharedTicketView.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SharedTicketView.vue?vue&type=template&id=39b12cd2&\"\nimport script from \"./SharedTicketView.vue?vue&type=script&lang=js&\"\nexport * from \"./SharedTicketView.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","<template>\n  <layout-horizontal>\n    <div slot=\"navbar\">\n      <AppNavbarHorizontalLayoutBrand class=\"pt-2\" />\n    </div>\n    <shared-ticket-view\n      class=\"show\"\n      :email-view-data=\"emailViewData\"\n      :loading=\"loadTicket\"\n      :opended-email-meta=\"opendedEmailMeta\"\n      @close-email-view=\"showEmailDetails = false\"\n      @change-opened-email=\"changeOpenedEmail\"\n    />\n  </layout-horizontal>\n</template>\n\n<script>\nimport store from '@/store'\nimport { mapActions, mapGetters } 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 LayoutHorizontal from '@core/layouts/layout-horizontal/LayoutHorizontal.vue'\nimport AppNavbarHorizontalLayoutBrand from '@core/layouts/components/app-navbar/AppNavbarHorizontalLayoutBrand'\nimport TicketLeftSidebar from './TicketLeftSidebar.vue'\nimport SharedTicketView from './SharedTicketView.vue'\n// import emailStoreModule from \"./emailStoreModule\";\n// import useTicket from \"./useTicket\";\nimport TicketCompose from './TicketCompose.vue'\n// const { route, router } = useRouter();\n// Left Sidebar Responsiveness\n\nexport default {\n  components: {\n    AppNavbarHorizontalLayoutBrand,\n\n    // 3rd Party\n    VuePerfectScrollbar,\n\n    // App SFC\n    TicketLeftSidebar,\n    SharedTicketView,\n    TicketCompose,\n    Pagination,\n    LayoutHorizontal,\n  },\n\n  data() {\n    return {\n      emails: [],\n      emailsMeta: {},\n      perfectScrollbarSettings: {\n        maxScrollbarLength: 150,\n      },\n      payload: {},\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  beforeMount() {\n    // document.getElementsByClassName(\"horizontal-menu-wrapper\")[0].remove();\n  },\n  async mounted() {\n    document.getElementsByClassName('horizontal-menu-wrapper')[0].remove()\n  },\n  computed: {\n    ...mapGetters('tickets', ['GET_STARRED']),\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    routeParams: {\n      handler(val) {\n        this.showEmailDetails = false\n        this.selectedEmails = []\n        if (val) {\n          this.updateEmailViewData(val)\n        }\n      },\n      // force eager callback execution\n      immediate: true,\n    },\n    routeQuery(val) {},\n    searchQuery() {\n      this.getEmails()\n    },\n    emailViewData() {\n      this.showEmailDetails = true\n    },\n    // routeParams(){\n    //   this.showEmailDetails = false;\n    // }\n  },\n  methods: {\n    ...mapActions('uhub', ['GET_TICKETS', 'GET_TICKET']),\n    ...mapActions('tickets', [\n      'TOGGLE_STARRED',\n      'ALL_FAVOURITES',\n      'STWICTH_TICKET_STATUS',\n      'Auth_Shared',\n    ]),\n    goTo(item) {\n      this.$router.push({ name: 'tickets-folder', params: { id: item.id } })\n    },\n    updateEmailViewData(email) {\n      this.loadTicket = true\n\n      this.Auth_Shared(this.$route.query)\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.STWICTH_TICKET_STATUS({\n        status_id: val,\n        tickets_ids: [...this.selectedEmails],\n      })\n        .then(() => {\n          this.getEmails()\n        })\n        .catch(e => {})\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 === 'pending') return 'rgba(255,255,0,0.08'\n      if (label === 'open') 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) => (this.$moment(a.updated_at) > this.$moment(b.updated_at) ? -1 : 1))\n      const others = emails\n        .filter(mail => !mail.is_starred)\n        .sort((a, b) => (this.$moment(a.updated_at) > this.$moment(b.updated_at) ? -1 : 1))\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.orderMails()\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 = dir === 'previous' ? openedEmailIndex - 1 : openedEmailIndex + 1\n      this.emailViewData = this.emails[newEmailIndex]\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 ? this.routeParams : {}\n      params.page = this.current_page\n      params.search = this.searchQuery\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        // let { replies, ...item } = res;\n        // if (data.replies && data.replies.length > 0) {\n        //   data.replies.unshift(item);\n        // } else {\n        //   data.replies = [item];\n        // }\n\n        this.emails = data\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!./SharedTicket.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!./SharedTicket.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SharedTicket.vue?vue&type=template&id=e2db1d94&\"\nimport script from \"./SharedTicket.vue?vue&type=script&lang=js&\"\nexport * from \"./SharedTicket.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SharedTicket.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","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--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!./SharedTicket.vue?vue&type=style&index=0&lang=scss&\"","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":""}