!function(){"use strict";functiona(a,h){a.state("app",{url:"/addressbooks",abstract:!0,views:{addressbooks:{templateUrl:"UIxContactFoldersView",controller:"AddressBooksController",controllerAs:"app"}},resolve:{stateAddressbooks:b}}).state("app.addressbook",{url:"/:addressbookId",views:{addressbook:{templateUrl:"addressbook",controller:"AddressBookController",controllerAs:"addressbook"}},resolve:{stateAddressbook:c}}).state("app.addressbook.new",{url:"/{contactType:(?:card|list)}/new",views:{card:{templateUrl:"UIxContactEditorTemplate",controller:"CardController",controllerAs:"editor"}},resolve:{stateCard:d}}).state("app.addressbook.card",{url:"/:cardId",abstract:!0,views:{card:{template:"<ui-view/>"}},resolve:{stateCard:e},onEnter:f,onExit:g}).state("app.addressbook.card.view",{url:"/view",views:{"card@app.addressbook":{templateUrl:"UIxContactViewTemplate",controller:"CardController",controllerAs:"editor"}}}).state("app.addressbook.card.editor",{url:"/edit",views:{"card@app.addressbook":{templateUrl:"UIxContactEditorTemplate",controller:"CardController",controllerAs:"editor"}}}),h.otherwise("/addressbooks/personal")}functionb(a){returna.$findAll(window.contactFolders)}functionc(a,b,c,d){vare=_.find(d.$findAll(),function(a){returna.id==c.addressbookId});returne?(deletee.selectedCard,e.$reload(),e):a.reject("Addressbook "+c.addressbookId+" not found")}functiond(a,b,c){vard="v"+a.contactType,e=newc({pid:a.addressbookId,c_component:d});returnb.selectedCard=!0,e}functione(a,b,c){vard;if(d=_.find(c.$cards,function(a){returna.id==b.cardId}))returnd.$reload();a.go("app.addressbook")}functionf(a,b){b.selectedCard=a.cardId}functiong(a){deletec.selectedCard}functionh(a,b,c){a.$on("$stateChangeError",function(a,d,e,f,g,h){b.error(h),c.go("app.addressbook",{addressbookId:"personal"})}),a.$on("$routeChangeError",function(a,c,d,e){b.error(a,c,d,e)})}angular.module("SOGo.ContactsUI",["ngCookies","ui.router","angularFileUpload","ck","SOGo.Common","SOGo.PreferencesUI","SOGo.MailerUI"]).config(a).run(h),a.$inject=["$stateProvider","$urlRouterProvider"],b.$inject=["AddressBook"],c.$inject=["$q","$state","$stateParams","AddressBook"],d.$inject=["$stateParams","stateAddressbook","Card"],e.$inject=["$state","$stateParams","stateAddressbook"],f.$inject=["$stateParams","stateAddressbook"],g.$inject=["stateAddressbook"],h.$inject=["$rootScope","$log","$state"]}(),function(){"use strict";functiona(a,b,c,d,e,f,g,h,i,j,k,m,n,o,p,q){functionr(a){d.go("app.addressbook.card.view",{cardId:a.id})}functions(a,b){varc,d,e,f=L.selectedFolder;if(b||(b=f.$selectedCard()),b.selected=!b.selected,L.mode.multiple+=b.selected?1:-1,a.shiftKey&&f.$selectedCount()>1){for(c=f.idsMap[b.id],d=c-2;d>=0&&!f.$cards[d].selected;)d--;if(d<0)for(d=c+2;d<f.getLength()&&!f.$cards[d].selected;)d++;if(d>=0&&d<f.getLength())for(e=Math.min(c,d);e<=Math.max(c,d);e++)f.$cards[e].selected=!0}a.preventDefault(),a.stopPropagation()}functiont(a){d.go("app.addressbook.new",{contactType:a})}functionu(){_.forEach(L.selectedFolder.$cards,function(a){a.selected=!1}),L.mode.multiple=0}functionv(a){varb=L.selectedFolder.$selectedCardIndex();returnangular.isDefined(b)?(b--,L.selectedFolder.$topIndex>0&&L.selectedFolder.$topIndex--):(b=L.selectedFolder.$cards.length()-1,L.selectedFolder.$topIndex=L.selectedFolder.getLength()),b>-1&&r(L.selectedFolder.$cards[b]),a.preventDefault(),b}functionw(a){varb=L.selectedFolder.$selectedCardIndex();returnangular.isDefined(b)?(b++,L.selectedFolder.$topIndex<L.selectedFolder.$cards.length&&L.selectedFolder.$topIndex++):b=0,b<L.selectedFolder.$cards.length?r(L.selectedFolder.$cards[b]):b=-1,a.preventDefault(),b}functionx(a){varb;L.selectedFolder.hasSelectedCard()&&(b=v(a))>=0&&s(a,L.selectedFolder.$cards[b])}functiony(a){varb;L.selectedFolder.hasSelectedCard()&&(b=w(a))>=0&&s(a,L.selectedFolder.$cards[b])}functionz(a){varb=L.selectedFolder.$selectedCards();_.size(b)>0&&m.confirm(l("Warning"),l("Are you sure you want to delete the selected contacts?"),{ok:l("Delete")}).then(function(){L.selectedFolder.$deleteCards(b).then(f