!function(){"use strict";functionconfigure($stateProvider,$urlRouterProvider){$stateProvider.state("mail",{url:"/Mail",views:{mailboxes:{templateUrl:"UIxMailMainFrame",controller:"MailboxesController",controllerAs:"app"}},resolve:{stateAccounts:stateAccounts}}).state("mail.account",{url:"/:accountId","abstract":!0,views:{mailbox:{template:"<ui-view/>"}},resolve:{stateAccount:stateAccount}}).state("mail.account.virtualMailbox",{url:"/virtual",views:{"mailbox@mail":{templateUrl:"UIxMailFolderTemplate",controller:"MailboxController",controllerAs:"mailbox"}},resolve:{stateMailbox:stateVirtualMailbox}}).state("mail.account.virtualMailbox.message",{url:"/:mailboxId/:messageId",views:{message:{templateUrl:"UIxMailViewTemplate",controller:"MessageController",controllerAs:"viewer"}},resolve:{stateMailbox:stateVirtualMailboxOfMessage,stateMessages:stateMessages,stateMessage:stateMessage}}).state("mail.account.mailbox",{url:"/:mailboxId",views:{"mailbox@mail":{templateUrl:"UIxMailFolderTemplate",controller:"MailboxController",controllerAs:"mailbox"}},resolve:{stateMailbox:stateMailbox,stateMessages:stateMessages}}).state("mail.account.mailbox.message",{url:"/:messageId",views:{message:{templateUrl:"UIxMailViewTemplate",controller:"MessageController",controllerAs:"viewer"}},resolve:{stateMessage:stateMessage}}),$urlRouterProvider.otherwise("/Mail")}functionstateAccounts($q,Account){varaccounts=Account.$findAll(mailAccounts),promises=[];returnangular.forEach(accounts,function(account,i){varmailboxes=account.$getMailboxes();promises.push(mailboxes.then(function(objects){returnaccount}))}),$q.all(promises)}functionstateAccount($stateParams,stateAccounts){return_.find(stateAccounts,function(account){returnaccount.id==$stateParams.accountId})}functionstateMailbox(Mailbox,$stateParams,stateAccount,decodeUriFilter){var_find,mailboxId=decodeUriFilter($stateParams.mailboxId);return(_find=function(mailboxes){varmailbox=_.find(mailboxes,function(o){returno.path==mailboxId});returnmailbox||angular.forEach(mailboxes,function(o){!mailbox&&o.children&&o.children.length>0&&(mailbox=_find(o.children))}),mailbox})(stateAccount.$mailboxes)}functionstateMessages(Mailbox,stateMailbox){returnMailbox.$virtualMode?[]:stateMailbox.$filter()}functionstateVirtualMailbox($q,Mailbox){returnMailbox.$virtualMode?Mailbox.selectedFolder:$q.reject("No virtual mailbox defined")}functionstateVirtualMailboxOfMessage($q,Mailbox,decodeUriFilter,$stateParams){varmailboxId=decodeUriFilter($stateParams.mailboxId);returnMailbox.$virtualMode?(Mailbox.selectedFolder.resetSelectedMessage(),_.find(Mailbox.selectedFolder.$mailboxes,function(mailboxObject){returnmailboxObject.path==mailboxId})):$q.reject("No virtual mailbox defined for message")}functionstateMessage(Mailbox,encodeUriFilter,$stateParams,$state,stateMailbox,stateMessages){varmessage;return(message=_.find(stateMailbox.$messages,function(messageObject){returnmessageObject.uid==$stateParams.messageId}))?(stateMailbox.selectedMessage=$stateParams.messageId,message.$reload()):void$state.go("mail.account.mailbox",{accountId:stateMailbox.$account.id,mailboxId:encodeUriFilter(stateMailbox.path)})}functionrunBlock($rootScope,$log,$state){$rootScope.$on("$stateChangeError",function(event,toState,toParams,fromState,fromParams,error){$log.error(error),$state.go("mail")}),$rootScope.$on("$routeChangeError",function(event,current,previous,rejection){$log.error(event,current,previous,rejection)})}angular.module("SOGo.MailerUI",["ngSanitize","ui.router","ck","angularFileUpload","SOGo.Common","SOGo.ContactsUI","ngAnimate","SOGo.PreferencesUI"]).config(configure).run(runBlock),configure.$inject=["$stateProvider","$urlRouterProvider"],stateAccounts.$inject=["$q","Account"],stateAccount.$inject=["$stateParams","stateAccounts"],stateMailbox.$inject=["Mailbox","$stateParams","stateAccount","decodeUriFilter"],stateMessages.$inject=["Mailbox","stateMailbox"],stateVirtualMailbox.$inject=["$q","Mailbox"],stateVirtualMailboxOfMessage.$inject=["$q","Mailbox","decodeUriFilter","$stateParams"],stateMessage.$inject=["M