1var StateEnum=Object.freeze({ALL:"ALL",NEW:"NEW",SEEN:"SEEN",DELETED:"DELETED"}),TypeEnum=Object.freeze({TWITTER:"TWITTER",TEXT:"TEXT",MOBILE_APP:"MOBILE_APP",FACEBOOK:"FACEBOOK",INSTAGRAM:"INSTAGRAM",LSR:"LSR",OUTAGE:"OUTAGE",W3W:"W3W"}),SentimentEnum=Object.freeze({positive:"positive",neutral:"neutral",negative:"negative"});function getHumanDate(e){return e.getMonthName().substr(0,3)+" "+e.getDate()+" "+e.getFullYear()}var mainApp=angular.module("mainApp",["ngRoute","ngCookies","ngSanitize","infinite-scroll","iso.directives","highcharts-ng","ui.bootstrap","toaster","timer","angulartics","angulartics.google.analytics","multi-select","ngAnimate","ngTagsInput","angular-bootstrap-select","textAngular","ui-rangeSlider","colorpicker.module","angular-inview","xeditable","ui.bootstrap.datetimepicker","ngFileUpload","percentCircle-directive","rzTable","templates","mainApp.config"]).config(["$controllerProvider","$routeProvider","$httpProvider","$locationProvider","$logProvider","ENV",function(e,t,n,i,r,o){r.debugEnabled(!1),i.hashPrefix("");var a=routingConfig.accessLevels,s=function(e,t,n,i,r){var o=e.defer(),a=i.getObject("user");return void 0!==a?(n.user=a,r.defaults.headers.common["X-Auth-Token"]=a.details.token,o.resolve()):o.reject(),o.promise};s.$inject=["$q","$location","$rootScope","$cookies","$http"],t.when("/login",{access:a.anon}),t.when("/dashboard",{access:a.readOnly,resolve:{authenticated:s}}),t.when("/feed",{access:a.readOnly,resolve:{authenticated:s}}),t.when("/updatePassword",{access:a.readOnly,resolve:{authenticated:s}}),t.when("/updateEmail",{access:a.readOnly,resolve:{authenticated:s}}),t.when("/accounts",{access:a.readOnly,resolve:{authenticated:s}}),t.when("/notify",{access:a.demo,resolve:{authenticated:s}}),t.when("/admin",{access:a.superuser,resolve:{authenticated:s}}),t.when("/settings/event",{access:a.readOnly,resolve:{authenticated:s}}),t.when("/settings/notification",{access:a.readOnly,resolve:{authenticated:s}}),t.when("/events",{access:a.readOnly,resolve:{authenticated:s}}),t.when("/eventDetails",{access:a.readOnly,resolve:{authenticated:s}}),t.when("/algorithms",{access:a.labeler,resolve:{authenticated:s}}),t.otherwise({redirectTo:"/login",access:a.anon});n.interceptors.push(["$location","$q",function(e,t){function n(e){return e}function i(n){return 401===n.status?(e.path("/login"),t.reject(n)):t.reject(n)}return function(e){return e.then(n,i)}}])}]).run(["$rootScope","$http","$location","authService","auditService","$cookies","$timeout",function(e,t,n,i,r,o,a){e.$on("$routeChangeStart",function(t,r,o){e.error=null,i.authorize(r.access)||(i.isLoggedIn()?"labeler"===i.user.role.title?n.path("/algorithms"):n.path("/dashboard"):n.path("/login"))}),e.$on("AUTH_EXPIRED",function(n){t.defaults.headers.common["X-Auth-Token"]&&(e.sessionTimeout=!0),i.logout()}),e.verifyAuth=function(t){401===t&&e.$broadcast("AUTH_EXPIRED")},e.language=window.lang}]);function displayName(e){var t=e.userName;return e.type==TypeEnum.TEXT?t?t+=" ("+e.phoneNumber+")":t=e.phoneNumber:e.type==TypeEnum.MOBILE_APP&&e.displayName&&(t=e.displayName),t}function resizeStream(){var e=angular.element(window).height(),t=angular.element("#navbar").height()+angular.element("#feed-title").height()+angular.element("#filters").height()+43,n=e-t-angular.element("#feed-buttons").height()-100,i=document.getElementById("selfReportsDashboard"),r=e-t-angular.element("#event-search-bar").height()-110-(null==i||null==i.offsetParent?0:90);angular.element("#stream").css("height",n),angular.element("#event-list").css("height",r)}mainApp.run(["editableOptions",function(e){e.theme="bs3"}]),angular.module("mainApp.config",[]).constant("ENV",{SERVER_URL:"https://utilisocial.io",SERVER_APP_PATH:"/datacapable/v1",STATIC_URL:"https://utilisocial.io",APP_VERSION:"utilisocial-25.8.0.3.2",INSTAGRAM_CLIENT_ID:"e61e6ba82e0145c1b513fd4e40fb71b8",BITLY_CLIENT_ID:"0c92e356441214f81fe7847085720fcf9f53fd61",ARCGIS_CLIENT_ID:"tOij88UL2VgNnjfj",ARCGIS_ONLINE_CLIENT_ID:"GlnAD0kx4pdIjWmY",PUSHER_TOKEN:"ca06097e22d80a6c0b98",PUSHER_CLUSTER_NAME:"mt1",DEFAULT_TIMEOUT:5e3}),mainApp.controller("AccountsCtrl",["$log","$rootScope","$scope","$location","$uibModal","$cookies","$timeout","$window","authService","facebookService","eventsService","websocketService","toaster","auditService","groupsService","arcGisService","mapService","auditFactory","ENV",function(e,t,n,i,r,o,a,s,l,u,c,d,p,g,f,m,v,h,y){n.isAdding=!1,n.generatingNewKey=!1,n.language=t.language,n.waitingForArcGisLogin=!1;var S=l.user;n.userRoles=l.userRoles,n.accessLevels=l.accessLevels,n.phoneNumbers=[];var E=!1;function b(){f.clearGroupSettingsCache(),f.getGroupSettings().then(function(e){n.groupSettings=e},function(e){})}function T(){!E&&"/accounts"===i.path()&&n.loggedIn&&(n.groupName=f.getGroupName(),f.getGroup(n.groupName).then(function(e){n.phoneNumbers=e.phoneNumbers,n.group=e}),b(),f.getGroup(S.details.group).then(function(e){n.group=e}),S=l.user,n.userRoles=l.userRoles,n.accessLevels=l.accessLevels,c.refreshArcGisAccounts().then(function(e){n.arcGISAccounts=e,w()}),E=!0)}function w(){n.$$phase||n.$apply()}function A(){m.queryItems().then(function(e){null!=e&&(n.arcGisMaps=e.results,n.loadingArcGisMaps=!1,n.refreshingArcGisMaps=!1,w())},function(e){n.loadingArcGisMaps=!1,n.refreshingArcGisMaps=!1,w()})}n.$on("$routeChangeSuccess",function(){T()}
1),T(),n.$on("$routeChangeSuccess",function(){S=l.user}),n.updateGroupSettings=function(){f.updateGroupSettings(n.groupSettings).then(function(){b(),p.pop("success","Success!","Successfully saved.")},function(e){p.pop("error","Error!","Unable to save")})},n.refreshArcGisMaps=function(){n.refreshingArcGisMaps=!0,A()},n.getAuthCode=function(){var e=n.group.id;window.open("https://www.arcgis.com/sharing/rest/oauth2/authorize?client_id="+y.ARCGIS_ONLINE_CLIENT_ID+"&response_type=code&expires_in=600&expiration=600&redirect_uri="+y.SERVER_URL+y.SERVER_APP_PATH+"/arcgis/redirect_uri/"+e+"&expires_in=600&expiration=600","popup","width=600,height=600")},n.logoutArcGISAccount=function(e){$.ajax({url:y.SERVER_URL+y.SERVER_APP_PATH+"/arcgis/logout/"+e.id,type:"GET",success:function(e){window.location.reload()}})},n.clearSelectedMap=function(){v.setDefaultMap(),n.selectedMapTitle=void 0,n.selectedMapThumbnail=void 0,v.clearSelectedMapCookie()},n.updateSettings=function(){var e=[];for(var t in n.addressParseForTypes)n.addressParseForTypes[t]&&e.push(t);n.groupSettings.addressParseForTypes=e,f.updateGroupSettings(n.groupSettings).then(function(){b(),p.pop("success","Success!","Your settings have been updated successfully")},function(){p.pop("error","Error!","An unexpected error occurred attempting to update your Twitter settings")})}}]),mainApp.controller("AdminCtrl",["$log","$scope","$location","$timeout","groupsService","userService","keywordService","toaster","ENV",function(e,t,n,i,r,o,a,s,l){var u=!1;t.keywords={},t.roles=routingConfig.userRoles,t.selectedRole="general",t.advancedRole="",t.passwordChangeRequired=!1,t.selectedAlgorithmTypes={},t.autoApprovalInputDisabled={},t.keywordLimitInputDisabled={},t.regionLimitInputDisabled={},t.cohorts=[],t.ENV=l,t.algorithmTypes=["GAS_LEAK","ACTIVE_SHOOTER","GAS_OUTAGE","WILDFIRE","STRUCTURE_FIRE","VEHICLE_IMPACT","FLOODING","LANDSLIDE","EARTHQUAKE","OUTAGE","GUNFIRE_AND_SHOOTINGS","BOMB_THREATS","EVACUATIONS","SINKHOLE","TERRORISM","EXPLOSIONS","TORNADO","SHELTER_IN_PLACE","CYBER_THREATS","COMMUNICATION_OUTAGES","INFRASTRUCTURE_INCIDENTS","VEHICLE_ACCIDENTS","TRANSPORTATION","ACCIDENTS","GRID_DAMAGE","BRANDING"],t.eventMapOptions={outages:!0,events:!0,social:!0};const c=["social","events","map","video","admin"];function d(){!u&&"/admin"===n.path()&&t.loggedIn&&(u=!0,r.getAllGroups().then(function(e){const n=e.data;t.groups=n;for(var i=[],r=0;r<n.length;r++){var o=n[r].name;i.push({name:o,ticked:!1}),t.autoApprovalInputDisabled[o]=!0,t.keywordLimitInputDisabled[o]=!0,t.regionLimitInputDisabled[o]=!0}t.newCohort={name:"",groups:i}},function(e){}),r.getAlgorithmTypes().then(function(e){const n=e.data;t.selectedAlgorithmTypes=n},function(e){}),r.getCohorts().then(function(e){t.cohorts=e}))}t.$on("$routeChangeSuccess",function(){d()}),d(),t.roleSelected=function(e){t.selectedRole=e},t.generateNewKey=function(e,n){t.generatingNewKey=!0,r.generateNewKey(e,n.name).then(function(e){n.publicApiKey=e.data,t.generatingNewKey=!1,s.pop("success","Success!"),t.$$phase||t.$apply()},function(e){t.generatingNewKey=!1,s.pop("error","Error!","Could not generate token")})},t.updateAlgorithmType=function(e,n){t.selectedAlgorithmTypes[e]=n,r.updateAlgorithmType(e,n).then(function(){s.pop("success","Success!")},function(e){s.pop("error","Error!","Could not update algorithm type")})},t.deleteUser=function(e){o.deleteUser(e.id).then(function(n){var i=t.users.indexOf(e);i>-1&&t.users.splice(i,1),s.pop("success","Success!")},function(e){t.deleteUserError=e,s.pop("error","Error!","Could not delete the user")})},t.disconnectTwitter=function(e){},t.deleteKeyword=function(e,n){t.keywordError="",a.removeKeyword(e,n).then(function(){t.keywords[e].forEach(function(i,r){i==n&&t.keywords[e].splice(r,1)}),s.pop("success","Success!")},function(){s.pop("error","Error!","Could not remove the keyword")})},t.addKeyword=function(e,n){t.isAddingKeyword=!0,a.addKeywordToAllRegions(e,n).then(function(e){},function(e){t.keywordError="An error occurred attempting to track '"+t.keyword+"'",t.isAddingKeyword=!1})},t.deleteCohort=function(e){r.deleteCohort(e).then(function(){t.cohorts=t.cohorts.filter(t=>t.name!==e)})},t.cohortSelected=function(e){let n=t.cohorts.filter(t=>t.name===e)[0];t.cohort=n,t.cohortOptions=c.map(e=>({title:e,checked:-1!==n.options.indexOf(e)})),$("#cohortModal").modal("show")},t.updateCohortOptions=function(e){r.updateCohortOption(t.cohort.name,e.title,e.checked).then(function(){s.pop("success","Success!","Cohort updated successfully"),e.checked?t.cohort.options.push(e.title):t.cohort.options=t.cohort.options.filter(t=>t!==e.title)}
1,function(){s.pop("error","Error!","Could not update the cohort",0)})},t.groupSelected=function(e){for(var n=0;n<t.groups.length;n++){t.groups[n].name===e&&r.getGroup(e).then(function(n){t.group=n,a.getKeywordsObjects(e).then(function(n){t.keywords[e]=n.data}),o.getAllGroupUsers(e).then(function(e){t.users=e}),r.getEventMapOptions(e).then(function(e){t.eventMapOptions={outages:!1,events:!1,social:!1},e.forEach(e=>{t.eventMapOptions[e]=!0})}),$("#groupModal").modal("show")})}},t.displayCreateUserModal=function(e){t.selectedGroup=e,t.createUserError="",$("#createUserModal").modal("show")},t.displayEditUserModal=(e=>{t.selectedUser=e,t.editUserError="",t.email=e.email,t.selectedRole=e.role,t.advancedRole=e.advancedRole,t.passwordChangeRequired=e.passwordChangeRequired,$("#editUserModal").modal("show")}),t.displaySetLocationModal=function(e){t.selectedGroup=e,t.addLocationError="",$("#addLocationModal").modal("show")},t.displayAddPhoneModal=function(e){t.selectedGroup=e,t.addPhoneNumberError="",$("#addPhoneNumberModal").modal("show")}
1,t.displayAddEmailAddressModal=function(e){t.selectedGroup=e,t.addEmailAddressError="",$("#addEmailAddressModal").modal("show")},t.displaySocialMediaUsersModal=function(e){t.selectedGroup=e,t.socialMediaUsersError="",$("#socialMediaUsersModal").modal("show")},t.addUser=function(e,n,i){t.isAddingUser=!0;var r={groupName:t.selectedGroup,username:e,password:n,email:i,role:t.selectedRole,advancedRole:t.advancedRole,passwordChangeRequired:t.passwordChangeRequired};o.addUser(r).then(function(e){t.users.push(r),t.isAddingUser=!1,t.passwordChangeRequired=!1,$("#createUserModal").modal("hide"),s.pop("success","Success!")},function(e){t.createUserError=e,t.isAddingUser=!1})},t.updateUser=(()=>{let e=t.selectedUser;e.email=t.email,e.role=t.selectedRole,e.advancedRole=t.advancedRole,e.passwordChangeRequired=t.passwordChangeRequired,o.updateUser(e).then(()=>{t.users.forEach(t=>{t.username===e.username&&(t.email=e.email,t.role=e.role,t.advancedRole=e.advancedRole,t.passwordChangeRequired=e.passwordChangeRequired)}),$("#editUserModal").modal("hide"),s.pop("success","Success!")},e=>{t.editUserError=e})}),t.createGroup=function(e,n){t.isCreatingGroup=!0;var i={name:n,userFriendlyName:e,phoneNumbers:[]};r.createGroup(i).then(function(e){t.isCreatingGroup=!1,t.groups.push(i),$("#createGroupModal").modal("hide"),s.pop("success","Success!")},function(e){t.createGroupError=e,t.isCreatingGroup=!1})},t.createCohort=function(){t.isCreatingCohort=!0;var e={name:t.newCohort.name,groupNames:t.newCohort.groups.filter(e=>e.ticked).map(e=>e.name)};r.createCohort(e).then(function(e){t.isCreatingCohort=!1,t.cohorts.push(e),$("#createCohortModal").modal("hide"),s.pop("success","Success!","Added cohort!"),t.newCohort.groups.forEach(function(e){e.ticked=!1})},function(e){""===e&&(e="An unexpected error occurred creating the cohort"),t.createCohortError=e,t.isCreatingCohort=!1})},t.addPhoneNumber=function(e,n){r.addPhoneNumber(e.name,n).then(function(){$("#addPhoneNumberModal").modal("hide"),null==e.phoneNumbers&&(e.phoneNumbers=[]),e.phoneNumbers.push(n),t.addPhoneNumberError="",t.phoneNumber="",s.pop("success","Success!","Phone number added")},function(e){t.addPhoneNumberError=e})},t.deletePhone=function(e,n){r.removePhoneNumber(e.name,n).then(function(){for(var i=0;i<e.phoneNumbers.length;i++)if(e.phoneNumbers[i]==n){e.phoneNumbers.splice(i,1),t.$$phase||t.$apply(),s.pop("success","Success!");break}})},t.addEmailAddress=function(e,n){r.setEmailAddress(e.name,n).then(function(){$("#addEmailAddressModal").modal("hide"),e.emailAddress=n,t.$$phase||t.$apply(),s.pop("success","Success!","Email added")})},t.deleteEmailAddress=function(e){r.removeEmailAddress(e.name).then(function(){e.emailAddress=null,t.$$phase||t.$apply(),s.pop("success","Success!","Email removed")})},t.addLocation=function(e,n){var i=n.split(","),o=i[0],a=i[1];r.setLocation(e.name,o,a).then(function(t){$("#addLocationModal").modal("hide"),e.location=t,s.pop("success","Success!")},function(n){t.addLocationError=n,e.location=void 0})},t.deleteLocation=function(e){r.setLocation(e.name,"","").then(function(){e.location=void 0,s.pop("success","Success!")})},t.updateEventMapOptions=function(e,n){let i=[];for(const[e,n]of Object.entries(t.eventMapOptions))!0===n&&i.push(e);r.updateEventMapOptions(e,i).then(function(){s.pop("success","Success!")},function(){s.pop("error","Error Could not save event map options.")})}}]),mainApp.controller("AlgorithmsCtrl",["$filter","$http","$location","$log","$q","$scope","$timeout","auditFactory","authService","algorithmService","toaster","dateTimeService","groupsService",function(e,t,n,i,r,o,a,s,l,u,c,d,p){var g;o.audits=[],o.auditsForUpdating=[],o.totalLabeledCountForUser=0,o.dateTimeService=d,o.isBusy=s.isBusy,o.isNew=!1,o.isSavingModel=!1,o.isUpdating=!1,o.models=[],o.selectedModel={},o.submitText="Submit",o.selectedUseCaseForTraining={},o.selectedUseCaseForUpdating={},o.postsNotInModel=[],o.next=-1,o.currentAuditForUpdatingStartId=void 0,o.prevAuditForUpdatingStartId=void 0,o.nextAuditForUpdatingCount=void 0,o.noMoreAuditsForUpdating=!1,o.currentPage=0,o.numPerPage=20,o.Math=window.Math,o.numPages=0,o.pages={},o.useCases=[{id:1,title:"Gas leak",label:"GAS_LEAK"},{id:2,title:"Active shooter",label:"ACTIVE_SHOOTER"},{id:3,title:"Gas outage",label:"GAS_OUTAGE"},{id:4,title:"Wildfire",label:"WILDFIRE"},{id:5,title:"House/Structure fire",label:"STRUCTURE_FIRE"},{id:6,title:"Vehicle impact",label:"VEHICLE_IMPACT"},{id:7,title:"Flooding",label:"FLOODING"},{id:8,title:"Landslide",label:"LANDSLIDE"},{id:9,title:"Earthquake",label:"EARTHQUAKE"},{id:10,title:"Power outage",label:"OUTAGE"},{id:11,title:"Gunfire & Shootings",label:"GUNFIRE_AND_SHOOTINGS"},{id:12,title:"Bomb Threats",label:"BOMB_THREATS"},{id:13,title:"Evacuations",label:"EVACUATIONS"},{id:14,title:"Sinkhole",label:"SINKHOLE"},{id:15,title:"Terrorism",label:"TERRORISM"},{id:16,title:"Explosions",label:"EXPLOSIONS"},{id:17,title:"Tornado",label:"TORNADO"},{id:18,title:"Shelter in Place",label:"SHELTER_IN_PLACE"},{id:19,title:"Cyber Threats",label:"CYBER_THREATS"},{id:20,title:"Communication Outages",label:"COMMUNICATION_OUTAGES"}
1,{id:21,title:"Infrastructure Incidents",label:"INFRASTRUCTURE_INCIDENTS"},{id:22,title:"Vehicle Accidents",label:"VEHICLE_ACCIDENTS"},{id:23,title:"Transportation",label:"TRANSPORTATION"},{id:24,title:"Accidents",label:"ACCIDENTS"},{id:25,title:"Grid Damage",label:"GRID_DAMAGE"}];var f=!1,m=l.user;function v(){!f&&"/algorithms"==n.path()&&o.loggedIn?(p.getGroupSettings().then(function(e){var t=e.algorithmType,n=void 0,i=l.user.details.group;if(void 0!==t||""===t)"PGandEGun"===i?n=o.useCases[10]:"PGandEBomb"===i?n=o.useCases[11]:"PGandEEarthquake"===i?n=o.useCases[8]:"PGandEEvacuation"===i?n=o.useCases[12]:"PGandESinkhole"===i?n=o.useCases[13]:"PGandETerrorism"===i&&(n=o.useCases[14]),void 0!==n&&(o.predefinedUseCase=!0,o.selectedUseCaseForTraining.selected=n,o.selectedUseCaseForUpdating.selected=n);else for(var r=0;r<o.useCases.length;r++)t===o.useCases[r].label&&(o.predefinedUseCase=!0,o.selectedUseCaseForTraining.selected=o.useCases[r],o.selectedUseCaseForUpdating.selected=o.useCases[r])}),s.setGroup(m.details.group),y(),h(),busy=!0,u.getAlgorithmModels().then(function(e){if(o.models=e,busy=!1,o.models)for(var t=0;t<o.models.length;t++){var n=o.models[t];u.getNumLabeledPostsNotInAnyModel(n.useCase).then(function(e,t){o.postsNotInModel[e]=t}.bind(null,n.useCase),function(e){}),u.getNumPostsForModel(n.id).then(function(e,t){e.numPosts=t}.bind(null,n),function(e){})}},function(e){busy=!1}),f=!0):busy=!1}function h(){busy=!0,u.getTotalLabeledCount(m.details.id).then(function(e){o.totalLabeledCountForUser=e.data},function(e){}),s.getAlgorithmsAudits(o.numPerPage,g,!1).then(function(e){for(var t=0;t<e.data.length;t++){var n=e.data[t];delete n.groups,delete n.regions,delete n.textMessages,delete n.twitterDirectMessages,delete n.facebookDirectMessages,delete n.facebookComments,delete n.events}g=e.nextStart,o.audits=e.data,0==o.audits.length&&0==parseInt(g)&&(o.noMoreAuditsForLabeling=!0),y(),busy=!1},function(e){busy=!1})}function y(){s.getNumLabeledAudits(!1).then(function(e){o.numUnlabeled=e.totalPostCount},function(e){}),s.getNumLabeledAudits(!0).then(function(e){o.totalNumLabeled=e.totalPostCount},function(e){})}function S(e){var t;o.prev;e?(o.currentPage++,t=o.next):(o.currentPage--,t=o.pages[o.currentPage]),o.pages[o.currentPage]=t,s.getAlgorithmsAudits(o.numPerPage,t,!0,o.selectedUseCaseForUpdating.selected.label).then(function(e){for(var t=[],n=e.data,i=e.nextStart,r=e.prevStart,a={},s=0;s<n.length;s++){var l=n[s].labeledAudit.id;t.push(l),a[l]=n[s],a[l].labeledAuditId=l,a[l].truePositive=a[l].labeledAudit.truePositive}o.next=i,o.prev=r,o.labeledAudits=a,o.loadingLabels=!1,o.loadingLabeledAudits=!1},function(e){c.pop("error","Error!","Unable to get labeled values."),o.loadingLabels=!1})}o.user=m,v(),o.getUrl=function(e){switch(e.type){case"TWITTER":return"https://twitter.com/"+e.userName;case"INSTAGRAM":return"https://instagram.com/"+e.userName;case"FACEBOOK":return"https://www.facebook.com/"+e.originId}},o.prevLabelingAudits=function(){o.numPerPage=20,S(!1)},o.nextLabelingAudits=function(){o.currentPage==o.numPages-1&&(o.numPerPage=o.numLabeled-o.numPerPage*o.currentPage),S(!0)},o.changeUseCase=function(){o.next=-1,o.currentAuditForUpdatingStartId=void 0,o.prevAuditForUpdatingStartId=void 0,o.nextAuditForUpdatingCount=void 0,o.noMoreAuditsForUpdating=!1,o.currentPage=0,o.numPerPage=20,null!=o.selectedUseCaseForUpdating.selected&&s.getNumLabeledAudits(!0,o.selectedUseCaseForUpdating.selected.label).then(function(e){o.numLabeled=e.totalPostCount,o.numPages=Math.ceil(o.numLabeled/o.numPerPage),S(!0)},function(e){})},o.resetAlreadyLabeled=function(){o.next=-1,o.currentAuditForUpdatingStartId=void 0,o.prevAuditForUpdatingStartId=void 0,o.nextAuditForUpdatingCount=void 0,o.noMoreAuditsForUpdating=!1,o.currentPage=0,o.pages={},void 0!==o.predefinedUseCase&&o.changeUseCase()},o.numPostsReadyForTraining=function(e){return d.addCommas(o.postsNotInModel[e])},o.displayEditModelModal=function(e){o.isNew=null==e,o.isNew&&(e={isEnabled:!1}),o.selectedModel=e,$("#editModelModal").modal("show")},o.saveAlgorithmModel=function(){o.editModel.$valid&&(o.isSavingModel=!0,o.isNew?u.addModel(o.selectedModel).then(function(e){o.isSavingModel=!1,$("#editModelModal").modal("hide"),busy=!0,u.getAlgorithmModels().then(function(e){o.models=e,busy=!1},function(e){busy=!1})},function(e){busy=!1}):u.updateModel(o.selectedModel).then(function(e){o.isSavingModel=!1,$("#editModelModal").modal("hide"),busy=!0},function(e){busy=!1}))},o.setActive=function(e){e.isSetting=!0,u.setActiveModel(e.useCase,e.id).then(function(t){return e.isSetting=!1,o.isSavingModel=!0,o.isUpdating=!0,u.getAlgorithmModels().then(function(e){o.models=e,o.isSavingModel=!1},function(e){o.isSavingModel=!1})},function(e){busy=!1,o.isUpdating=!1})},o.submitLabeledAudits=function(){for(var e=[],t=0;t<o.audits.length;t++){var n=o.audits[t];
1if(null==n.truePositive)return void c.pop("error","Error!","You must label all posts.");e.push({auditId:n.id,label:o.selectedUseCaseForTraining.selected.label,labeledByUserId:m.details.id,truePositive:n.truePositive})}o.submitText="Saving...",o.isUpdating=!0,u.saveLabeledAudits(e,o.selectedUseCaseForTraining.selected.label).then(function(e){o.audits=[],h(),o.isUpdating=!1,o.submitText="Submit"},function(e){c.pop("error","Error!","Unable to save posts."),o.isUpdating=!1,o.submitText="Submit"})},o.updateAuditLabel=function(e){var t=[];t.push({id:e.labeledAuditId,auditId:e.id,label:o.selectedUseCaseForUpdating.selected.label,labeledByUserId:m.details.id,truePositive:e.truePositive});var n=!e.truePositive;u.saveLabeledAudits(t,o.selectedUseCaseForUpdating.selected.label).then(function(e){c.pop("success","Success!","Successfully update label!")},function(t){c.pop("error","Error!","Unable to update label."),e.truePositive=n})},o.trainModel=function(e,t){u.trainModel(t,e).then(function(e){c.pop("success","Success!","Training successfully started!")},function(e){c.pop("error","Error!","Unable to initiate training.")})},o.$on("$routeChangeSuccess",function(){v()})}]),mainApp.controller("AuditTemplateCtrl",["$log","$scope","$rootScope","auditService","isotopeService","$uibModal","twilioService","authService","mapService","dateTimeService","$cookies","toaster","$timeout","$sce","$filter","pushNotificationService","$location","analyticsService","eventsService","groupsService",function(e,t,n,i,r,o,a,s,l,u,c,d,p,g,f,m,v,h,y,S){t.textMessage="",t.groupName=s.user.details.group,t.showAllTexts=!1,t.StateEnum=StateEnum,t.accessLevels=s.accessLevels,t.language=n.language,i.setGroup(t.groupName),t.deleteAudit=function(e){h.removeAudit(e),i.updateState([e],StateEnum.DELETED),t.isMap?l.removeAudit(e):($("#isotopeContainer").remove(".isotopeitem"),r.reloadAndRelayout(500))},t.getFormattedDate=function(e){return u.logicalDate(e)},t.gotoMap=function(e){n.$broadcast("LOCATE_AUDIT",e)},t.translate=function(e){e.translating=!0,i.translate(e.message).then(function(t){e.message=t,e.translating=!1,e.english=!0},function(){d.pop("error","Error! Unable to translate."),e.translating=!1})},t.hide=function(e){i.updateState([e],StateEnum.SEEN),t.isMap?l.removeAudit(e):r.reloadAndRelayout(500)},t.removeFromEvent=function(e,t){y.removeAudit([e.id],t,e.detected).then(function(){y.removePostFromEvent(e),d.pop("success","Success! The post was removed from the event"),n.$broadcast("AUDIT_REMOVED_FROM_EVENT",t)},function(){d.pop("error","Error! Could not remove the post from the event")})},t.irrelevant=function(e){h.removeAudit(e),i.updateState([e],StateEnum.IRRELEVANT),t.isMap?l.removeAudit(e):r.reloadAndRelayout(500)},t.stageForAction=function(e,n){o.open({templateUrl:"twitterConfirm.html",controller:"TwitterConfirmModalInstanceCtrl",resolve:{action:function(){return e}}}).result.then(function(e){"retweet"==e?t.retweet(n.tweetId):"favorite"==e&&t.favorite(n.tweetId)},function(){})},t.selectEvents=function(e){o.open({templateUrl:"eventSelection.html",controller:"SelectEventModalInstanceCtrl",resolve:{audit:function(){return e},eventsService:function(){return y},dateTimeService:function(){return u},mapService:function(){return l}}}).result.then(function(t){var r=!0;function o(t,o,a){if(t.length>0&&i.addEventsToAudit(e.id,t,a).then(function(){for(var e=0;e<t.length;e++){for(var i=t[e],r=!1,s=0;s<o.length;s++)if(i===o[s]){r=!0;break}r||y.addPostToEvent(y.getEventById(i,a))}n.$$phase||n.$apply()},function(){r=!1}),o.length>0){for(var s=[],l=0;l<o.length;l++){var u=o[l];0!==t.length&&t.includes(o[l])||s.push(u)}s.length>0&&y.removeAudit(s,e,a).then(function(){for(var e=0;e<s.length;e++)y.removePostFromEvent(y.getEventById(s[e],a))},function(){r=!1})}}o(t.selected.events,t.prev.events),o(t.selected.detectedEvents,t.prev.detectedEvents,!0),r?d.pop("success","Success! The post was successfully updated."):d.pop("error","Error!","Failed to update the post.")},function(){})},t.gotoW3wLocation=function(e,r){t.loadingW3wLoc=!0,document.body.style.cursor="wait",i.getLocationFromW3w(e).then(function(i){n.$broadcast("LOCATE_AUDIT",{latitude:i.lat,longitude:i.lng,message:e,type:"W3W",id:1234}),t.loadingW3wLoc=!1,document.body.style.cursor="default"},function(){t.loadingW3wLoc=!1,document.body.style.cursor="default",d.pop("error","Error
1!","Failed to calculate What3words location.")})},t.getLocationFromW3w=function(e){},t.getW3wLocation=function(e){t.loadingW3w=!0,i.getW3wWords(e.latitude,e.longitude).then(function(n){e.w3w=n,t.loadingW3w=!1},function(){t.loadingW3w=!1})},t.viewWeather=function(e){i.getWeatherData(e.id).then(function(t){o.open({templateUrl:"weather.html",controller:"ViewWeatherModalInstanceCtrl",resolve:{audit:function(){return e},weather:function(){return t}}})})},t.retweet=function(e){},t.favorite=function(e){},t.markSentiment=function(e,t){if(e.sentiment!=t){var n=e.sentiment;i.updateSentiment(e.id,t).then(function(){e.sentiment=t,h.incrementSentiment(t),h.decrementSentiment(n)},function(e){d.pop("error","An unexpected error occurred attempting to update the sentiment of the post")})}},t.isFeatureServiceSet=function(){return S.isFeatureServiceUrlSet()},t.markVisibility=function(e,t){if(null!=e.arcGisId!=t){var n=e.arcGisId;e.arcGisId=t?1:null,i.updateVisibility(e.id,t).then(function(n){t?(e.arcGisId=n,d.pop("success","Success!","Published to your Esri Feature Service")):(e.arcGisId=null,d.pop("success","Success!","Removed from your Esri Feature Service"))},function(i){e.arcGisId=n,t?d.pop("error","Unable to publish to your Esri Feature Service"):d.pop("error","Unable to remove from your Esri Feature Service")})}},t.subTypeDisplay=function(e){switch(e){case"SENT":return"Sent";case"SENT_RETWEET":return"Sent RT";case"FEED":return"Feed";case"FEED_RETWEET":return"Feed RT";case"MENTION":return"@Mention";case"RETWEET":case"RETWEETED":return"RT";case"DIRECT_MESSAGE":return"DM"}},t.reply=function(e){o.open({templateUrl:"twitterReply.html",controller:"TwitterReplyModalInstanceCtrl",resolve:{item:function(){return e}}}).result.then(function(e){},function(){})},t.pushNotification=function(e){o.open({templateUrl:"sendSinglePushNotification.html",controller:"IndividualPushNotificationCtrl",resolve:{audit:function(){return e}}}).result.then(function(n){m.pushNotification([e],n,t.groupName).then(function(t){d.pop("success","Success!","Message sent to "+(e.displayName?e.displayName:e.userName))},function(e){d.pop("error","Failed!","Could not push the message to the device")})},function(){})},t.viewConversation=function(e){var n;t.item=e,n=e.type==TypeEnum.TWITTER?"twitterDmConversation.html":"viewConversation.html",o.open({templateUrl:n,controller:"ViewConversationModalInstanceCtrl",resolve:{item:function(){return t.item},twilioService:function(){return a},groupName:function(){return t.groupName},toaster:function(){return d},dateTimeService:function(){return u},isotopeService:function(){return r}}})},t.call=function(e){o.open({templateUrl:"makeCall.html",controller:"MakeCallModalInstanceCtrl",resolve:{item:function(){return e},groupName:function(){return t.groupName},twilioService:function(){return a},$timeout:function(){return p}}})},t.hangup=function(){t.inCall=!1,a.hangup()},t.showAll=function(){t.showAllTexts=!0,t.isMap||r.reloadAndRelayout(100)},t.rename=function(e){if("admin"!=s.user.role.title&&"superuser"!=s.user.role.title)return!1;t.item=e,o.open({templateUrl:"renameText.html",controller:"RenameModalInstanceCtrl",resolve:{item:function(){return t.item}}}).result.then(function(t){i.renameText(e.id,t).then(function(){e.userName=t})},function(){})},t.loadImage=function(e){t.item=e;o.open({templateUrl:"loadImage.html",controller:"LoadImageModalInstanceCtrl",resolve:{item:function(){return t.item}}})},t.updateLocation=function(e){t.item=e;o.open({templateUrl:"updateLocation.html",controller:"UpdateLocationModalInstanceCtrl",resolve:{item:function(){return t.item},auditService:function(){return i},mapService:function(){return l},toaster:function(){return d}}})},t.mailTo=function(e){var t=escape("\n"),n="subject=Please review message from "+displayName(e)+" - sent via Utilisocial";if(n+="&body=",e.type==TypeEnum.TWITTER&&"DIRECT_MESSAGE"==e.subType){n+="Direct Message Conversation: (last message sent at "+e.date+")"+t+t;for(var i=0;i<e.twitterDirectMessages.length;i++){if((n+=(o=e.twitterDirectMessages[i]).sender.screenName+": "+o.message+t).length>
11900){n+="<further conversation truncated due to length>"+t;break}}n+=t}else if(e.type==TypeEnum.TWITTER)n+="At "+e.date+", "+e.userName+" wrote: "+t+e.message+t+t,n+="Original message:"+t+" http://twitter.com/"+e.userName+"/status/"+e.tweetId+t+t;else if(e.type==TypeEnum.TEXT){if(null!=e.textMessages&&e.textMessages.length>0){n+="Conversation: (last message sent at "+e.date+")"+t+t;for(i=0;i<e.textMessages.length;i++){if((o=e.textMessages[i]).fromNumber==e.phoneNumber?n+=(e.userName?e.userName:e.phoneNumber)+": "+o.message+t:n+=s.user.details.group+": "+o.message+t,o.mms)for(var r=0;r<o.imageUrls.length;r++)n+="Image: "+o.imageUrls[r]+t;if(n.length>1900){n+="<further conversation truncated due to length>"+t;break}}n+=t}}else if(e.type==TypeEnum.MOBILE_APP)n+="At "+e.date+", "+(e.displayName?e.displayName:e.userName)+" posted: "+t+e.message+t,e.imageUrl&&(n+="Image: "+e.imageUrl),n+=t;else if(e.type==TypeEnum.FACEBOOK)if(e.facebookDirectMessages){n+="Direct Message Conversation: (last message sent at "+e.date+")"+t+t;for(i=0;i<e.facebookDirectMessages.length;i++){var o;if((n+=(o=e.facebookDirectMessages[i]).sender.fullName+": "+o.message+t).length>1900){n+="<further conversation truncated due to length>"+t;break}}n+=t}else n+="At "+e.date+", "+e.userName+" wrote: "+t+e.message+t+t,n+="User on Facebook: https://www.facebook.com/"+e.originId+t+t;return n+="This message is powered by DataCapable"}}]),mainApp.controller("ViewConversationModalInstanceCtrl",["$scope","$uibModalInstance","item","twilioService","groupName","toaster","dateTimeService","$cookies","isotopeService",function(e,t,n,i,r,o,a,s,l){e.focus=!0,e.item=n,e.dateTimeService=a,e.textMessage,e.messageMaxLength=160,e.close=function(){t.dismiss()},e.send=function(){e.textMessage=this.textMessage,e.sendingMessage=!0;var t=this;i.sendText(r,e.item.phoneNumber,this.textMessage,e.item.id).then(function(i){var r=a.convertTimestamp(new Date),u={id:parseInt(i),auditId:e.item.id,message:e.textMessage,response:!0,date:r.string,logicalDate:r.logical,orderableDate:r.timestamp},c=n.state;n.state=StateEnum.NEW,n.textMessages.push(u),n.orderableDate=u.orderableDate,e.sendingMessage=!1,t.textMessage="",o.pop("success","Success!","The message was sent to "+(n.userName?n.userName:n.phoneNumber)),c!=StateEnum.NEW&&o.pop("info","The conversation is no longer marked as "+c.toLowerCase()),"grid"!=s.get("view")||e.isMap||setTimeout(function(){l.reloadAndRelayout(),l.sort()},100)},function(t){e.sendError=t,e.sendingMessage=!1})},e.sendDM=function(e){},e.close=function(){t.dismiss("close")}}]),mainApp.controller("MakeCallModalInstanceCtrl",["$scope","$uibModalInstance","item","groupName","twilioService","$timeout",function(e,t,n,i,r,o){e.errorMessage="",e.item=n,e.isError=!1,e.inCall=!1;var a=r.getToken();e.$on("connected",function(){e.inCall=!0,o(function(){e.$apply()})}),e.$on("disconnected",function(){e.inCall=!1,o(function(){e.$apply()})}),e.call=function(){a.then(function(e){r.makeCall(n.phoneNumber,i,e)})},e.hangup=function(){r.hangup(),t.dismiss("cancel")},e.cancel=function(){t.dismiss("cancel")}}]),mainApp.controller("RenameModalInstanceCtrl",["$scope","$uibModalInstance","item",function(e,t,n){e.focus=!0,e.item=n,e.save=function(){t.close(this.newName)},e.cancel=function(){t.dismiss("cancel")}}]),mainApp.controller("UpdateLocationModalInstanceCtrl",["$scope","$uibModalInstance","$log","$rootScope","item","mapService","auditService","toaster",function(e,t,n,i,r,o,a,s){e.item=r,e.place=null,e.init=function(){var t,n=document.querySelector("#location-search-input"),r=o.getCurrentExtent();if(null!=r){var a={bounds:new google.maps.LatLngBounds(new google.maps.LatLng(r.ymin,r.xmin),new google.maps.LatLng(r.ymax,r.xmax))};t=new google.maps.places.Autocomplete(n,a)}else t=new google.maps.places.Autocomplete(n);t.addListener("place_changed",function(){e.place=t.getPlace(),e.place.geometry&&(i.$$phase||i.$apply())})},e.close=function(){t.dismiss("close")},e.save=function(){e.item.derivedLocations.length>0&&(e.item.derivedLocations[0].locationDetails=e.item.locationDetails,e.item.derivedLocations[0].derivedLocationType=e.item.locationType),e.item.locationType="MANUA
1L",e.item.latitude=e.place.geometry.location.lat(),e.item.longitude=e.place.geometry.location.lng(),e.item.locationDetails=e.place.formatted_address,e.item.derivedLocationOutsideOfRegion=!1,e.saving=!0,a.updateLocation(e.item.id,e.item.latitude,e.item.longitude,e.item.locationType,e.item.locationDetails).then(function(t){o.removeAudit(e.item),o.addAudit(t),e.saving=!1,e.close(),s.pop("success","Success!","Successfully updated post.")},function(t){e.saving=!1,s.pop("error","Update Failed!","Unable to update the location")})}}]),mainApp.controller("LoadImageModalInstanceCtrl",["$scope","$uibModalInstance","item",function(e,t,n){e.item=n,e.TypeEnum=TypeEnum,e.close=function(){t.dismiss("close")}}]),mainApp.controller("TwitterReplyModalInstanceCtrl",["$scope","$uibModalInstance","item",function(e,t,n){e.item=n,e.invalidInput=void 0,e.message="@"+n.userName+" ",e.sendMessage=function(n){null==n||/^\s*$/.test(n)?e.invalidInput="Invalid reply. A reply must contain a message of some kind":(e.invalidInput=void 0,t.close(n))},e.close=function(){t.dismiss("close")}}]),mainApp.controller("ViewWeatherModalInstanceCtrl",["$scope","$uibModalInstance","audit","weather",function(e,t,n,i){e.audit=n,e.weather=i,e.windDirection=function(e){var t="";return(e>=315||e<=45)&&(t+="N"),45<=e&&e<=135&&(t+="E"),135<=e&&e<=225&&(t+="S"),225<=e&&e<=315&&(t+="W"),t},e.close=function(){t.dismiss("close")}}]),mainApp.controller("TwitterConfirmModalInstanceCtrl",["$scope","$uibModalInstance","action",function(e,t,n){e.action=n,e.close=function(){t.dismiss("close")},e.performAction=function(){t.close(e.action)}}]),mainApp.controller("IndividualPushNotificationCtrl",["$scope","$uibModalInstance","audit",function(e,t,n){e.audit=n,e.invali
1dInput=void 0,e.close=function(){t.dismiss("close")},e.pushNotification=function(){var n=this.message;null==n||/^\s*$/.test(n)?e.invalidInput="Invalid notification":(e.invalidInput=void 0,t.close(n))}}]),mainApp.controller("SelectEventModalInstanceCtrl",["$scope","$uibModalInstance","audit","eventsService","dateTimeService","mapService",function(e,t,n,i,r,o){if(e.audit=n,e.dateTimeService=r,e.eventsService=i,e.mapService=o,i.getOutageEventSettings().then(function(t){e.outageEventSettings=t}),e.selectedEvents=[],void 0!==n.events)for(var a=0;a<n.events.length;a++)e.selectedEvents.push(n.events[a]);if(void 0!==n.detectedEvents)for(a=0;a<n.detectedEvents.length;a++)e.selectedEvents.push(n.detectedEvents[a]);i.getEvents().then(function(t){e.events=t}),e.removeEvent=function(t){var n=e.selectedEvents.indexOf(t);-1!==n&&e.selectedEvents.splice(n,1)},e.addEvent=function(t){for(var n=0;n<e.selectedEvents.length;n++){var i=e.selectedEvents[n];if(i.id===t.id&&i.detected===t.detected)return}e.selectedEvents.push(t)},e.cancel=function(){t.dismiss("close")},e.save=function(){for(var i={events:[],detectedEvents:[]},r={events:[],detectedEvents:[]},o=0;o<n.events.length;o++)r.events.push(n.events[o].id);for(o=0;o<n.detectedEvents.length;o++)r.detectedEvents.push(n.detectedEvents[o].id);n.events=[],n.detectedEvents=[];for(var a=0;a<e.selectedEvents.length;a++){var s=e.selectedEvents[a];s.detected?(i.detectedEvents.push(s.id),n.detectedEvents.push(s)):(i.events.push(s.id),n.events.push(s))}var l={selected:i,prev:r};t.close(l)}}]),mainApp.controller("DashboardCtrl",["$scope","$log","$rootScope","$location","$timeout","$routeParams","authService","analyticsService","websocketService","auditService","filterService","toaster",function(e,t,n,i,r,o,a,s,l,u,c,d){e.weatherError="",e.numOutagePredicted="3,000",e.numUnhappyCustomers="3,000",e.weatherDataAvailable=!1,e.filterService=c,e.auditService=u,e.filterName="dash",e.TypeEnum=TypeEnum;var p=!1,g=a.user;function f(){"/dashboard"==i.path()&&p&&e.loggedIn&&m(),!p&&"/dashboard"==i.path()&&e.loggedIn&&(m(),$(".selectpicker").selectpicker(),r(function(){l.subscribe("dashboard","audit",function(t){var n,i;!function(t){if(null==t||0===t.length)return;e.allZeros=!1;for(var n=[],i=0;i<t.length;i++)for(var r=t[i].word,o=0;o<e.pieChartSeries[0].data.length;o++){var a=e.pieChartSeries[0].data[o][0];if(a.toLowerCase()===r.toLowerCase()){var l=e.pieChartSeries[0].data[o][1];e.pieChartSeries[0].data[o][1]=l+=1,n.push(a);break}}if(n.length!==t.length)for(var u=t.filter(function(e){return-1===n.indexOf(e)}),c=0;c<u.length;c++)s.updatePieChart(u[c],1)}(t.keywords),n=e.lineChartSeries[0].data.length,i=e.lineChartSeries[0].data[n-1][1],e.lineChartSeries[0].data[n-1][1]=i+1,function(t){if(void 0===t||0===t.length)return;for(var n=[],i=0;i<t.length;i++)for(var r=t[i].word,o=t[i].regionName,a=s.wordCounts(),l=0;l<e.pieChartSeries[0].data.length;l++){var u=a[l].keyword;if(u.toLowerCase()===r.toLowerCase()||u.toLowerCase()===o.toLowerCase()){a[l].totalCount++,n.push(u);break}}if(n.length!==t.length)for(var c=t.filter(function(e){return-1===n.indexOf(e)}),d=0;d<c.length;d++){var p=c[d],g=p.word.startsWith("(point_radius")?p.regionName+" (Region)":p.word;s.updateWordCounts(g,1)}}(t.keywords),function(t){var n=-1;n="positive"===t.sentiment?0:"negative"===t.sentiment?2:1;if(-1!==n){var i=e.periodicalSentimentSeries[n].data.pop();void 0!==i&&(i[1]++,e.periodicalSentimentSeries[n].data.push([i[0],i[1]]))}}(t),s.newAudit(t),e.$apply()},!0)},1e4),p=!0)}function m(){c.updateFilters(S),e.filterRequirePhoto=c.requirePhoto()}function v(){c.reload(),e.isPieChartLoading=!0,e.isPostsPerDayLoading=!0,e.isTotalCountLoading=!0,e.isSentimentLoading=!0,e.isNotificationStatsLoading=!0,e.isPeriodicSentimentLoading=!0,e.pieChartSeries[0].data=[],e.lineChartSeries[0].data=[],e.likesSeries[0].data=[],e.notificationLineChartSeries[0].data=[],e.retweetsSeries[0].data=[],e.mentionsSeries[0].data=[],e.periodicalSentimentSeries[0].data=[],e.periodicalSentimentSeries[1].data=[],e.periodicalSentimentSeries[2].data=[],s.clearWordCounts(),function(){try{
1s.getTotalPostCounts(g.details.group).then(function(e){if(void 0!==e){s.totalCount(e.totalPostCount);for(var t in e.sentimentCount)e.sentimentCount[t]}},function(e){})}finally{e.isTotalCountLoading=!1}}(),function(){try{s.getCountsPerDay(g.details.group).then(function(t){if(void 0!==t&&null!=t.dailyTotalKeywordCountList){for(var n=0;n<t.dailyTotalKeywordCountList.length;n++){var i=t.dailyTotalKeywordCountList[n],r=h(i.date);e.lineChartSeries[0].data.push([r,i.totalCount])}var o=e.lineChartSeries[0].data.length;(function(){var e=c.end();if(null!=e&&null!=e.timestamp){var t=new Date;if(t.setHours(23,59,59,999),t.getTime()>e.timestamp)return!1}return!0})()&&(o>0&&(a=e.lineChartSeries[0].data[o-1][0],s=new Date(a),l=new Date,s.getUTCFullYear()!=l.getUTCFullYear()||s.getUTCMonth()!=l.getUTCMonth()||s.getUTCDate()!=l.getUTCDate())||0==o)&&e.lineChartSeries[0].data.push([y(),0]),e.todayPostCount=0==o?0:e.lineChartSeries[0].data[o-1][1]}var a,s,l;$(window).resize()},function(e){})}finally{e.isPostsPerDayLoading=!1}}(),function(){try{s.getKeywordCounts(g.details.group).then(function(t){if(null!=t&&null!=t.keywordCountList)for(var n=0;n<t.keywordCountList.length;n++){var i=t.keywordCountList[n];if(i.totalCount>0){e.allZeros=!1;var r=i.keyword.startsWith("(point_radius")?i.regionName+" ("+e.language.dashboard.Region+")":i.keyword;s.updateWordCounts(r,i.totalCount),e.pieChartSeries[0].data.push([r,i.totalCount])}}},function(e){})}finally{e.isPieChartLoading=!1}}(),function(){try{s.getSentiment(g.details.group).then(function(e){void 0!==e&&s.setSentiment(e.sentiment)},function(e){})}finally{e.isSentimentLoading=!1}}(),function(){try{s.getPeriodicSentiment(g.details.group).then(function(t){"DAILY"===t.periodicType?e.periodicalSentimentChartConfig=b:e.periodicalSentimentChartConfig=T;for(var n=t.periodicSentimentMetrics,i=0;i<n.length;i++){var r=n[i],o=h(r.date),a=r.sentimentInfo.count,s=-1;-1!==(s="positive"===r.sentimentInfo.sentiment?0:"negative"===r.sentimentInfo.sentiment?2:1)&&e.periodicalSentimentSeries[s].data.push([o,a])}},function(e){})}finally{e.isPeriodicSentimentLoading=!1}}(),function(){try{s.getNotificationStats(g.details.group).then(function(t){for(var n=0;n<t.length;n++){var i=t[n];e.notificationLineChartSeries[0].data.push([h(i.date),i.totalCount])}0==t.length?e.noNotificationStats=!0:e.noNotificationStats=!1},function(e){})}finally{e.isNotificationStatsLoading=!1}}(),s.getHeatMapByDayOfWeek(g.details.group).then(function(t){if(void 0!==t){new Date;var n=new Array(7);n[0]=e.language.dashboard.Sunday,n[1]=e.language.dashboard.Monday,n[2]=e.language.dashboard.Tuesday,n[3]=e.language.dashboard.Wednesday,n[4]=e.language.dashboard.Thursday,n[5]=e.language.dashboard.Friday,n[6]=e.language.dashboard.Saturday;for(var i=t.heatMapList,r=new Array,o=new Array,a=0,s=0,l=0,u=0,c=0;c<n.length;c++)r[n[c]]=new Array;for(var c=0;c<i.length;c++){l=i[c][0];var d=new Date(l);a=d.getHours(),s=i[c][1],u=n[d.getDay()],null==o.indexOf(d.getUTCDate())&&o.push(d.getUTCDate()),r[u][a]=[s,l]}for(var p,g=Object.keys(r),f=new Array,c=0;c<g.length;c++)0==r[g[c]].length?delete r[g[c]]:f.push(g[c]);g=Object.keys(r);for(var m=new Array,v=0;v<24;v++)for(var c=0;c<g.length;c++)null==(p=r[g[c]][v])?m.push([c,v,0,0]):m.push([c,v,p[0],p[1]]);e.heatMapConfig.heatMapLabels=f,e.heatMapSeries[0].data=m,e.heatMapConfig.options.chart.height=2==g.length?200:1==g.length?150:400,e.isHeatMapLoading=!1,$(window).resize()}},function(t){e.isHeatMapLoading=!1})}function h(e){var t=new Date(e);return Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),t.getUTCHours())}function y(){var e=new Date;return Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate())}function S(){if(!e.isLoading()){c.reload();var t=c.requireReload("dashboard");("/dashboard"==i.path()&&!p||t)&&v()}}function E(e){c.filterKeywords().forEach(function(t){t.ticked=t.word===e}),c.reload(),u.processCallFromDashboard(g.details.group)}e.isAddingUserType=[],e.allZeros=!0,e.userType=[],e.heatMapSeries=[{name:"Posts",borderWidth:5,color:"#FFFFFF",data:[],marker:{radius:5,color:"#CCCCCC"},dataLabels:{enabled:!1,color:"#CCCCCC"}}],e.lineChartSeries=[{name:"Posts",color:"#3498db",data:[],point:{events:{click:function(){var t,n,i;t=this.x,n=new Date(t),i=new Date(t),n.setTime(n.getTime()+60*n.getTimezoneOffset()*1e3),i.setTime(n.getTime()+864e5),c.setCustomDate("custom",n.getTime(),i.getTime()),u.processCallFromDashboard(g.details.group),e.$apply()}}}}],e.periodicalSentimentSeries=[{name:"positive",data:[],type:"column",color:"#5cb85c"},{name:"neutral",data:[],type:"column",color:"#bababa"},{name:"negative",data:[],type:"column",color:"#d9534f"}],e.notificationLineChartSeries=[{name:"Notifications",color:"#d9534f",data:[],type:"bar"}],e.pieChartSeries=[{type:"pie",name:"Posts",data:[],point:{events:{click:function(){E(this.name),e.$apply()}}}}],e.likesSeries=[{name:"Likes",color:"#ffac33",data:[],type:"line"}],e.retweetsSeries=[{name:"Retweets",color:"#5c913b",data:[],type:"line"}],e.mentionsSeries=[{name:"Mentions",color:"#0084B4",data:[],type:"line"}],e.totalPostCount=s.totalCount,e.positiveCount=s.positiveCount,e.neutralCount=s.neutralCount,e.negativeCount=s.negativeCount,e.positiveReach=s.positiveReach,e.neutralReach=s.neutralReach,e.negativeReach=s.negativeReach,e.wordCounts=s.wordCounts,e.round=Math.round,e.noNotificationStats=!0,e.requirePhotoChange=function(){c.setFilterRequirePhoto(e.filterRequirePhoto)},e.isLoading=function(){return e.isPieChartLoading||e.isPostsPerDayLoading||e.isTotalCountLoading||e.isSentimentLoading||e.isTwitterMetricLoading||e.isNotificationStatsLoading||e.isPeriodicSentimentLoading},e.$on("$routeChangeSuccess",function(){f()}),f(),n.$on("LOGGED_OUT",function(){e.allZeros=!0,e.pieChartSeries[0].data=[],e.lineChartSeries[0].data=[],s.clearWordCounts(),s.setSentiment(0,0,0),s.totalCount(0),e.likesSeries[0].data=[],e.retweetsSeries[0].data=[],e.mentionsSeries[0].data=[],e.notificationLineChartSeries[0].data=[],p=!1}),e.commaSeparateNumber=function(e){if(null==e)return e;for(;/(\d+)(\d{3})/.test(e.toString());)e=e.toString().replace(/(\d+)(\d{3})/,"$1,$2");return e||"0"},e.filters=function(){S()},e.updateUserType=function(t,n){e.isAddingUserType[t]=!0},e.open=function(t,n){t.preventDefault(),t.stopPropagation(),"begin"==n?e.beginOpened=!0:e.endOpened=!0,setTimeout(function(){$("#dashToDate").next().css("left","-149px")},0)},e.loadSearchTermInFeed=function(e){E(e)},e.sentimentInFeed=function(e,t){for(var n=c.filterSentiment(),i=0;i<n.length;i++)n[i].name.toLowerCase()!==e?n[i].ticked=!1:n[i].ticked=!0;if(void 0!==t){var r=new Date(t),o=new Date(t);r.setTime(r.getTime()+60*r.getTimezoneOffset()*1e3),o.setTime(r.getTime()+864e5),c.setCustomDate("custom",r.getTime(),o.getTime())}c.reload(),u.processCallFromDashboard(g.details.group)},e.twitterConfig=function(t){switch(t){case"FAVORITE":return e.twitterLikesConfig;case"RETWEET":return e.twitterRetweetsConfig;case"MENTION":return e.twitterMentionsConfig}},e.isDataEmpty=function(t){switch(t){case"FAVORITE":return e.likesSeries[0].data.length<=0;case"RETWEET":return e.retweetsSeries[0].data.length<=0;case"MENTION":return e.mentionsSeries[0].data.length<=0}},e.pieChartConfig={options:{colors:["#4ECDC4","#556270","#C7F464","#FF6B6B","#C44D58","#4267D6","#09E17C","#B67FBE","#FF8B1A","#999EA4"],chart:{plotBackgroun
1dColor:null,plotBorderWidth:null,plotShadow:!1},title:{text:""},tooltip:{pointFormat:"{series.name}: <b>{point.percentage:.1f}%</b>",color:"#CCCCCC"},plotOptions:{pie:{allowPointSelect:!0,cursor:"pointer",dataLabels:{enabled:!0,color:"#000000",connectorColor:"#000000",format:"<b>{point.name}</b>: {point.percentage:.1f} %"}}}},series:e.pieChartSeries,credits:{enabled:!1},loading:!1};var b={loading:!1,credits:{enabled:!1},options:{plotOptions:{series:{stacking:"normal",cursor:"pointer",point:{events:{click:function(){e.sentimentInFeed(this.series.name,this.x)}}}}},yAxis:{title:{text:"# "+e.language.dashboard.ofPosts},min:0,gridLineWidth:0,allowDecimals:!1},xAxis:{type:"datetime",labels:{formatter:function(){return Highcharts.dateFormat("%b %e",this.value)}},dateTimeLabelFormats:{month:"%b %e",year:"%b"}}},title:{text:""},navigation:{buttonOptions:{enabled:!1}},series:e.periodicalSentimentSeries},T={loading:!1,credits:{enabled:!1},options:{plotOptions:{series:{stacking:"normal",cursor:"pointer",point:{events:{click:function(){e.sentimentInFeed(this.series.name)}}}}},yAxis:{title:{text:"# "+e.language.dashboard.ofPosts},min:0,gridLineWidth:0,allowDecimals:!1},xAxis:{type:"datetime",tickInterval:36e5,labels:{formatter:function(){return Highcharts.dateFormat("%l%P",this.value)}}}},navigation:{buttonOptions:{enabled:!1}},title:{text:""},series:e.periodicalSentimentSeries};e.lineChartConfig={credits:{enabled:!1},loading:!1,options:{title:{text:""},xAxis:{type:"datetime",labels:{formatter:function(){return Highcharts.dateFormat("%b %e",this.value)}},dateTimeLabelFormats:{month:"%b %e",year:"%b"}},yAxis:{title:{text:"# "+e.language.dashboard.ofPosts},min:0,gridLineWidth:0,allowDecimals:!1},tooltip:{formatter:function(){return"<b>"+Highcharts.dateFormat("%b %e",this.x)+"</b><br/>"+this.y+" "+e.language.dashboard.Posts}},legend:{enabled:!1}},series:e.lineChartSeries},e.notificationChartConfig={credits:{enabled:!1},loading:!1,options:{title:{text:""},xAxis:{type:"datetime",labels:{formatter:function(){return Highcharts.dateFormat("%b %e",this.value)}},dateTimeLabelFormats:{month:"%b %e",year:"%b"}},yAxis:{title:{text:"# "+e.language.dashboard.ofNotificationsSent},min:0,gridLineWidth:0,allowDecimals:!1},tooltip:{formatter:function(){return"<b>"+Highcharts.dateFormat("%b %e",this.x)+"</b><br/>"+this.y+" "+e.language.dashboard.Notifications}},legend:{enabled:!1}},series:e.notificationLineChartSeries},e.heatMapConfig={credits:{enabled:!1},loading:!1,options:{chart:{type:"heatmap",inverted:!0,height:400,marginTop:40,marginBottom:80},title:{text:""},tooltip:{formatter:function(){return e.heatMapConfig.heatMapLabels[this.point.x]+" "+(0==(t=this.point.y)?t="12AM":t<12?t+="AM":12==t?t+="PM":(t%=12,t+="PM"),t)+" "+this.point.value+" "+e.language.dashboard.posts;var t}},colorAxis:{startOnTick:!1,endOnTick:!1},legend:{enabled:!1}},xAxis:{tickInterval:1,labels:{formatter:function(){return e.heatMapConfig.heatMapLabels[this.value]}}},yAxis:{title:{text:null},labels:{format:"{value}:00"},minPadding:0,maxPadding:0,startOnTick:!1,endOnTick:!1,tickPositions:[0,2,4,6,8,10,12,14,16,18,20,22,24],tickWidth:1,min:0,max:23},series:e.heatMapSeries};var w=" "+e.language.dashboard.Retweets,A="# "+e.language.dashboard.ofRetweets,P=" "+e.language.dashboard.Mentions,M="# "+e.language.dashboard.ofMentions;e.twitterLikesConfig={credits:{enabled:!1},loading:!1,options:{chart:{type:"spline"},xAxis:{type:"datetime",labels:{formatter:function(){return Highcharts.dateFormat("%b %e",this.value)}},dateTimeLabelFormats:{month:"%b %e",year:"%b"}},yAxis:{title:{text:"# "+e.language.dashboard.ofLikes},min:0,allowDecimals:!1,gridLineWidth:.25},tooltip:{formatter:function(){return"<b>"+Highcharts.dateFormat("%b %e",this.x)+"</b><br/>"+this.y+" "+e.language.dashboard.Likes}},legend:{enabled:!1}},title:{text:""},series:e.likesSeries},e.twitterRetweetsConfig={credits:{enabled:!1},loading:!1,options:{chart:{type:"spline"},xAxis:{type:"datetime",labels:{formatter:function(){return Highcharts.dateFormat("%b %e",this.value)}},dateTimeLabelFormats:{month:"%b %e",year:"%b"}},yAxis:{title:{text:A},min:0,allowDecimals:!1,gridLineWidth:.25},tooltip:{formatter:function(){return"<b>"+Highcharts.dateFormat("%b %e",this.x)+"</b><br/>"+this.y+w}},legend:{enabled:!1}},title:{text:""},series:e.retweetsSeries},e.twitterMentionsConfig={credits:{enabled:!1},loading:!1,options:{chart:{type:"spline"},xAxis:{type:"datetime",labels:{formatter:function(){return Highcharts.dateFormat("%b %e",this.value)}},dateTimeLabelFormats:{month:"%b %e",year:"%b"}},yAxis:{title:{text:M},min:0,allowDecimals:!1,gridLineWidth:.25},tooltip:{formatter:function(){return"<b>"+Highcharts.dateFormat("%b %e",this.x)+"</b><br/>"+this.y+P}},legend:{enabled:!1}},title:{text:""},series:e.mentionsSeries}}]),mainApp.controller("EventDetailsCtrl",["$log","$scope","$uibModal","$timeout","$location","authService","toaster","eventsService","websocketService","groupsService","mapService","dateTimeService","Upload","$rootScope",function(e,t,n,i,r,o,a,s,l,u,c,d,p,g){t.focus=!0,t.eventsService=s,t.error="",t.type={};var f=!1,m=o.user;function v(){if("/eventDetails"===r.path()&&t.loggedIn){if(t.event=angular.copy(s.getEventToEdit()),t.startDate=null,t.startTime=null,t.endDate=null,t.endTime=null,t.etrDate=null,t.etrTime=null,t.displayStartDate=null,t.displayStartTime=null,void 0===t.event){t.event={},t.event.color="#FF0000",t.event.enabled=!0,t.event.publicVisibility=!0,t.event.type=s.otherMapIconList[0].title;var e=s.getLocationForNewEvent();void 0!==e&&(t.event.latitude=e.latitude,t.event.longitude=e.longitude,s.setLocationForNewEvent(void 0));var n=s.getPolygonsForNewEvent();void 0!==n&&n.length>
10&&(t.event.polygons=[],n.forEach(function(e){var n={};n.points=e,t.event.polygons.push(n)}))}else f=!0,null!=t.event.startDate?t.startDate=t.startTime=new Date(t.event.startDate):t.startDate=t.startTime=void 0,void 0!==t.event.endDate&&null!==t.event.endDate?t.endDate=t.endTime=new Date(t.event.endDate):t.endDate=t.endTime=void 0,void 0!==t.event.etrDate&&null!==t.event.etrDate?t.etrDate=t.etrTime=new Date(t.event.etrDate):t.etrDate=t.etrTime=void 0,null!=t.event.displayStartDate?t.displayStartDate=t.displayStartTime=new Date(t.event.displayStartDate):t.displayStartTime=t.displayStartTime=void 0;if(s.getMapIconUrl(t.event.type).then(function(e){void 0!==e&&(t.event.tempIconUrl=e.url)}),s.getOutageEventSettings().then(function(e){t.outageEventSettings=e}),s.getEventSettings().then(function(e){t.statusIconSettings=e.statusIconSettings,t.statusIconChanged()}),u.getAllGroupRegions().then(function(e){t.regions=[];for(var n=0;n<e.length;n++){var i=e[n];if(i.selected=!1,t.regions.push(i),null!=t.event.actions)for(var r=0;r<t.event.actions.length;r++){var o=t.event.actions[r];"REGION"==o.type&&e[n].id==o.regionId&&(t.regions[n].selected=!0)}}}),null!=t.event.rules)for(var i=0;i<t.event.rules.length;i++){var o=t.event.rules[i];o.tags=angular.copy(o.messages||o.usernames),"TYPE"==o.type&&(t.type.twitter=$.inArray("TWITTER",o.types)>-1,t.type.instagram=$.inArray("INSTAGRAM",o.types)>-1,t.type.facebook=$.inArray("FACEBOOK",o.types)>-1,t.type.mobile=$.inArray("MOBILE_APP",o.types)>-1,t.type.sms=$.inArray("TEXT",o.types)>-1)}}}t.dateOptions={showWeeks:!1,startingDay:1},t.timeOptions={readonlyInput:!1,showMeridian:!1},t.eventTypes=["OUTAGE","CREW","EMERGENCY_AID","WATER_MAIN_BREAK","GAS_LEAK","TREE_TRIMMING","CAR_ACCIDENT","WILDFIRE","STRUCTURE_FIRE","ROAD_CLOSURE","OTHER"],v(),t.$on("$routeChangeSuccess",function(){v()}),t.upload=function(e){null!=e&&null!=e.name&&p.upload({url:"https://s3.amazonaws.com/datacapable",method:"POST",data:{key:"utilisocial/uploads/"+m.details.group+"/"+e.name,AWSAccessKeyId:"AKIASBHTPKVBQCNFDKNC",acl:"public-read",policy:"ewogICJleHBpcmF0aW9uIjogIjIwMjUtMDEtMDFUMDA6MDA6MDBaIiwKICAiY29uZGl0aW9ucyI6IFsKICAgIHsiYnVja2V0IjogImRhdGFjYXBhYmxlIn0sCiAgICBbInN0YXJ0cy13aXRoIiwgIiRrZXkiLCAiIl0sCiAgICB7ImFjbCI6ICJwdWJsaWMtcmVhZCJ9LAogICAgWyJzdGFydHMtd2l0aCIsICIkQ29udGVudC1UeXBlIiwgIiJdLAogICAgWyJzdGFydHMtd2l0aCIsICIkZmlsZW5hbWUiLCAiIl0sCiAgICBbImNvbnRlbnQtbGVuZ3RoLXJhbmdlIiwgMCwgNTI0Mjg4MDAwXQogIF0KfQ==",signature:"a4Lhl/Ga60q5gKlLW/sqA1tFVAc=","Content-Type":""!=e.type?e.type:"application/octet-stream",filename:e.name,file:e}}).then(function(e){t.event.images||(t.event.images=[]);var n={};n.imageUrl=e.config.url+"/"+e.config.data.key,t.event.images.push(n),t.progress=null},function(e){t.event.images=[]},function(e){var n=parseInt(100*e.loaded/e.total);t.progress=n})},t.mapPinSelected=function(e){t.event.mapPinUrl=s.getFullImagePath(e[0]),t.event.xOffset=e[1],t.event.yOffset=e[2]},t.eventTypeSelected=function(e){t.event.type=e,s.getMapIconUrl(t.event.type).then(function(e){null!=e&&(t.event.tempIconUrl=e.url)})}
1,t.displayStartDateChange=function(e,n){null==t.event.displayStartDate?t.event.displayStartDate=new Date:t.event.displayStartDate=new Date(t.event.displayStartDate),null!=e?n?(void 0!==t.displayStartDate&&null!==t.displayStartDate||(t.displayStartDate=new Date(e)),t.event.displayStartDate.setMonth(t.displayStartDate.getMonth()),t.event.displayStartDate.setDate(t.displayStartDate.getDate()),t.event.displayStartDate.setYear(t.displayStartDate.getFullYear()),t.event.displayStartDate.setHours(e.getHours()),t.event.displayStartDate.setMinutes(e.getMinutes()),t.displayStartTime.setMonth(t.displayStartDate.getMonth()),t.displayStartTime.setDate(t.displayStartDate.getDate()),t.displayStartTime.setYear(t.displayStartDate.getFullYear())):(t.event.displayStartDate.setMonth(e.getMonth()),t.event.displayStartDate.setDate(e.getDate()),t.event.displayStartDate.setYear(e.getFullYear()),void 0!==t.displayStartTime&&null!==t.displayStartTime||(t.displayStartTime=new Date(e)),t.event.displayStartDate.setHours(t.displayStartTime.getHours()),t.event.displayStartDate.setMinutes(t.displayStartTime.getMinutes())):t.event.displayStartDate=null}
1,t.startDateChange=function(e,n){null==t.event.startDate?t.event.startDate=new Date:t.event.startDate=new Date(t.event.startDate),null!=e?n?(void 0!==t.startDate&&null!==t.startDate||(t.startDate=new Date(e)),t.event.startDate.setMonth(t.startDate.getMonth()),t.event.startDate.setDate(t.startDate.getDate()),t.event.startDate.setYear(t.startDate.getFullYear()),t.event.startDate.setHours(e.getHours()),t.event.startDate.setMinutes(e.getMinutes()),t.startTime.setMonth(t.startDate.getMonth()),t.startTime.setDate(t.startDate.getDate()),t.startTime.setYear(t.startDate.getFullYear())):(t.event.startDate.setMonth(e.getMonth()),t.event.startDate.setDate(e.getDate()),t.event.startDate.setYear(e.getFullYear()),void 0!==t.startTime&&null!==t.startTime||(t.startTime=new Date(e)),t.event.startDate.setHours(t.startTime.getHours()),t.event.startDate.setMinutes(t.startTime.getMinutes())):t.event.startDate=null},t.endDateChange=function(e,n){null==t.event.endDate?t.event.endDate=new Date:t.event.endDate=new Date(t.event.endDate),null!=e?n?(void 0!==t.endDate&&null!==t.endDate||(t.endDate=new Date(e)),t.event.endDate.setMonth(t.endDate.getMonth()),t.event.endDate.setDate(t.endDate.getDate()),t.event.endDate.setYear(t.endDate.getFullYear()),t.event.endDate.setHours(e.getHours()),t.event.endDate.setMinutes(e.getMinutes()),t.endTime.setMonth(t.endDate.getMonth()),t.endTime.setDate(t.endDate.getDate()),t.endTime.setYear(t.endDate.getFullYear())):(t.event.endDate.setMonth(e.getMonth()),t.event.endDate.setDate(e.getDate()),t.event.endDate.setYear(e.getFullYear()),void 0!==t.endTime&&null!==t.endTime||(t.endTime=new Date(e)),t.event.endDate.setHours(t.endTime.getHours()),t.event.endDate.setMinutes(t.endTime.getMinutes())):t.event.endDate=null}
1,t.etrDateChange=function(e,n){null==t.event.etrDate?t.event.etrDate=new Date:t.event.etrDate=new Date(t.event.etrDate),null!=e?n?(void 0!==t.etrDate&&null!==t.etrDate||(t.etrDate=new Date(e)),t.event.etrDate.setMonth(t.etrDate.getMonth()),t.event.etrDate.setDate(t.etrDate.getDate()),t.event.etrDate.setYear(t.etrDate.getFullYear()),t.event.etrDate.setHours(e.getHours()),t.event.etrDate.setMinutes(e.getMinutes()),t.etrTime.setMonth(t.etrDate.getMonth()),t.etrTime.setDate(t.etrDate.getDate()),t.etrTime.setYear(t.etrDate.getFullYear())):(t.event.etrDate.setMonth(e.getMonth()),t.event.etrDate.setDate(e.getDate()),t.event.etrDate.setYear(e.getFullYear()),void 0!==t.etrTime&&null!==t.etrTime||(t.etrTime=new Date(e)),t.event.etrDate.setHours(t.etrTime.getHours()),t.event.etrDate.setMinutes(t.etrTime.getMinutes())):t.event.etrDate=null},t.ruleTagChanged=function(e,t,n,i){switch(t){case"MESSAGE":n?e.messages.push(i.text):e.messages.splice(e.messages.indexOf(i.text),1);break;case"USERNAME":n?e.usernames.push(i.text):e.usernames.splice(e.usernames.indexOf(i.text),1)}},t.removeRule=function(e){t.event.rules.splice(e,1)},t.removeAction=function(e){t.event.actions.splice(e,1)},t.addRule=function(e){var n={type:e};switch(e){case"MESSAGE":n.messages=[];break;case"USERNAME":n.usernames=[];break;case"TYPE":n.types=[],t.type.twitter=t.type.instagram=t.type.facebook=t.type.mobile=t.type.sms=!0}null==t.event.rules&&(t.event.rules=[]),t.event.rules.push(n)},t.addAction=function(e){var n={type:e};switch(e){case"REGION":n.regionId={}}null==t.event.actions&&(t.event.actions=[]),t.event.actions.push(n)},t.save=function(){t.saving=!0,null!=t.event.etrDate&&t.event.etrDate instanceof Date&&(t.event.etrDate=d.generateUTCDateString(t.event.etrDate)),null!=t.event.startDate&&t.event.startDate instanceof Date&&(t.event.startDate=d.generateUTCDateString(t.event.startDate)),null!=t.event.endDate&&t.event.endDate instanceof Date&&(t.event.endDate=d.generateUTCDateString(t.event.endDate)),null!=t.event.displayStartDate&&t.event.displayStartDate instanceof Date&&(t.event.displayStartDate=d.generateUTCDateString(t.event.displayStartDate)),f?s.updateEvent(t.event).then(function(e){f=!1,t.saving=!1,a.pop("success","Success!","Successfully updated your event"),c.addEventToMap(t.event),c.showMapZoomSlider(),r.path("/feed"),g.$broadcast("EVENT_UPDATED",t.event)},function(e){f=!1,t.saving=!1,a.pop("error","Error!","Unable to save your changes")}):(c.removePendingGraphics(),s.addEvent(t.event).then(function(e){f=!1,t.saving=!1,t.event=e,c.addEventToMap(t.event),s.replaceEvent(t.event),s.doneEditingEvent(),a.pop("success","Success!","Successfully added your event"),c.showMapZoomSlider(),r.path("/feed")},function(e){f=!1,t.saving=!1,a.pop("error","Error!","Unable to add your event")}))},t.regionSelected=function(e){for(var n=0;n<t.regions.length;n++)t.regions[n].id!=e.id&&(t.regions[n].selected=!1)},t.isRegionSelected=function(){if(null!=t.event.actions)for(var e=0;e<t.event.actions.length;e++)if(null!=t.event.actions[e].regionId)return!0;return!1},t.cancel=function(){f=!1,s.doneEditingEvent(),c.removePendingGraphics(),c.showMapZoomSlider(),r.path("/feed")},t.statusIconChanged=function(){for(var e=0;e<t.statusIconSettings.length;e++){var n=t.statusIconSettings[e];if(t.event.status==n.status)return t.statusIconUrl=n.url,!0}t.statusIconUrl=""},t.removeImageFromList=function(e){t.event.images.splice(e,1)}}]),mainApp.controller("EventSettingsCtrl",["$log","$scope","$uibModal","$timeout","$rootScope","$location","$q","toaster","authService","eventsService","websocketService","facebookService","groupsService","arcGisService","$window","ENV",function(e,t,n,i,r,o,a,s,l,u,c,d,p,g,f,m){var v=!1,h=l.user;function y(){u.getEventSettings().then(function(e){for(var n in t.eventSettings=e,null==t.eventSettings.outageMapIcons&&(t.eventSettings.outageMapIcons={}),t.eventMapLayerUrls=[],t.arcGisUrlLayers=[],t.privateLayers=[],t.refreshingArcGisUrlLayers=!1,t.eventMapLayerDict={},t.alertMode=t.eventSettings.alertMode,t.eventSettings.eventMapLayers){var i=t.eventSettings.eventMapLayers[n];null==i.arcGisAccountId?t.eventMapLayerUrls.push(i):(i.selected=!0,t.privateLayers.push(i))}t.eventMapLayerDictLength=Object.keys(t.eventMapLayerDict).length,t.arcGISAccounts=t.eventSettings.arcGISTokens,t.eventMapLayerCountMap={publicLayers:t.eventMapLayerUrls.length,privateLayers:t.privateLayers.length}},function(e){t.outageEventError="Error retrieving settings"})}function S(){!v&&"/settings/event"===o.path()&&t.loggedIn&&(t.user=l.user,v=!0,y(),p.getGroupSettings().then(function(e){t.territory.id=e.defaultRegionId,t.facebookEventsManaged=e.facebookCanManageEvents,t.facebookEvents=e.facebookEvents,p.getAllGroupRegions().then(function(e){if(t.regions=e,t.regions.push({name:window.lang.eventSettings.None,id:""}),t.territory.id){var n=p.getRegionFromRegionId(t.territory.id);n&&n.name?t.territory.name=n.name:t.territory.name=window.lang.eventSettings.None}else t.territory.name=window.lang.eventSettings.None})}),p.getGroup(l.user.details.group).then(function(e){t.group=e}),d.authenticate().then(function(e){e&&e.page_name&&e.can_manage_events?(t.facebookAuthenticated=!0,r.facebookAuthenticated=!0):(t.facebookAuthenticated=!1,r.facebookAuthenticated=!1)}),c.subscribe("accounts-account","account",function(e){t.arcGISAccounts.push(e["arcgis-account"]),b()}))}function E(){t.refreshingArcGisUrlLayers=!1,t.arcgisUrlError="Unable to find ArcGIS content at the provided URL. Please confirm that it is a FeatureServer or a MapServer URL and try again.",b()}function b(){t.$$phase||t.$apply()}function T(e){return e.indexOf("Server/0")>0&&(e=e.split("Server/0")[0]+"Server"),e}t.eventsService=u,t.territory={},t.alertMode={},t.facebookEventsManaged=!1,t.waitingForArcGisLogin=!1,t.refreshingArcGisLayers=!1,t.isArcGisLoggedIn=!1,S(),t.$on("$routeChangeSuccess",function(){S()}),r.$on("facebook-login",function(e,n){t.facebookAuthenticated=n.status,t.facebookAuthenticated&&(t.facebookPageId=n.pageId,t.facebookPageName=n.name),r.facebookAuthenticated=n.status}),t.removePrivateRow=function(e){t.privateLayers.splice(e,1)},t.removeRow=function(e){t.eventMapLayerUrls.splice(e,1)},t.addRow=function(){null==t.eventMapLayerUrls&&(t.eventMapLayerUrls=[]),t.eventMapLayerUrls.push({url:"",name:"",thumbnailUrl:"",publicVisibility:!0,visibleByDefault:!0,titleTemplate:"",contentTemplate:"",advancedConfiguration:"",arcGisAccountId:null})},t.updateVisibility=function(e,t){e.publicVisibility=t},t.updateVisibleByDefault=function(e,t){e.visibleByDefault=t},t.arcGISAccountClicked=function(e,n){t.contentFromArcgisAccountError="",t.loadingContent=!0,t.arcGISAccountItems=[],t.selectedArcGISAccount=e,$.ajax({url:"https://www.arcgis.com/sharing/rest/search?f=json&token="+e.accessToken+"&q=owner: "+e.username+' AND ((type:"Feature Service" OR type:"Map Service") -type:("Web Mapping Application" OR "Geodata Service")) ownerfolder:root -type:("Code Attachment") -typekeywords:("MapAreaPackage") -type:("Map Area")-type:("WFS")&f=json&num=100',type:"GET",success:function(i){if(t.loadingContent=!1,i.error&&498===i.error.code)u.refreshArcGisAccounts().then(function(i){t.eventSettings.arcGISTokens=i;for(var r=0;r<i.length;r++){var o=i[r];if(o.username===e.username)return void(n?(t.contentFromArcgisAccountError="The credentials for the account "+o.username+" have expired. Please log out and log back into the account to connect layers.",b()):t.arcGISAccountClicked(o,!0))}});else if("results"in i){var r=i.results;t.accountArcGISItems=r,t.featureServiceQuery=i;for(var o=0;o<r.length;o++){var a=r[o];a.url=T(a.url)}t.displaySelectAccountContentModal(),b()}else t.contentFromArcgisAccountError="An error occurred loading layers from arcGIS account. Please try again.",b()},error:function(e,n){t.loadingContent=!1,t.contentFromArcgisAccountError="An error occurred loading layers from arcGIS account. Please try again.",b()}})},t.loadArcGisUrlLayers=function(){t.arcgisUrlError="",t.refreshingArcGisUrlLayers=!0;
1var e=$("#layerUrl").val();if(null!=e&&0!==e.trim().length){"/"==e.charAt(e.length-1)&&$("#layerUrl").val(e.slice(0,-1));var n=$("#layerUrl").val()+"?f=json";$.ajax({url:n,type:"GET",success:function(e){try{if("string"==typeof e&&(e=JSON.parse(e)),"layers"in e){t.arcGisUrlLayers=e.layers;for(var n=0;n<t.arcGisUrlLayers.length;n++){var i=t.arcGisUrlLayers[n].id,r=$("#layerUrl").val()+"/"+i;t.arcGisUrlLayers[n].url=r,t.findLayerIndexByUrl(r)>-1&&(t.arcGisUrlLayers[n].selected=!0)}t.refreshingArcGisUrlLayers=!1,b()}else E()}catch(e){E()}},error:function(){E()}})}else E()},t.findLayerIndexByUrl=function(e){for(var n=0;n<t.eventMapLayerUrls.length;n++){if(e==t.eventMapLayerUrls[n].url)return n}return-1},t.findPrivateLayerIndexByUrl=function(e){for(var n=0;n<t.privateLayers.length;n++){if(e==t.privateLayers[n].url)return n}return-1},t.urlLayerSelected=function(e,n,i){for(var r=0;r<t.arcGisUrlLayers.length;r++){var o=t.arcGisUrlLayers[r];if(n==o.url){o.selected=1!=o.selected,o.selected?t.eventMapLayerUrls.push(o):t.eventMapLayerUrls.splice(t.findLayerIndexByUrl(n),1);break}}},t.layerSelected=function(e,n,i,r){for(var o=t.selectedContent.url,a={url:o=o+"/"+n,name:i,arcGisAccountId:t.selectedArcGISAccount.id,thumbnailUrl:t.selectedContent.url+"/info/"+t.selectedContent.thumbnail},s=0;s<t.arcGisLayers.length;s++){var l=t.arcGisLayers[s],u=t.selectedContent.url+"/"+l.id;u==a.url&&(l.url=u,l.selected=1!=l.selected,l.account=t.selectedArcGISAccount,l.thumbnailUrl=a.thumbnailUrl,t.withToken?l.selected?t.privateLayers.push(a):t.privateLayers.splice(t.findPrivateLayerIndexByUrl(l.url),1):l.selected?t.eventMapLayerUrls.push(l):t.eventMapLayerUrls.splice(t.findLayerIndexByUrl(o),1))}},t.contentSelected=function(e){t.selectedContent=e,function e(n,i){t.loadingLayers=!0,t.arcGisLayers=[],n.url=T(n.url);var r=n.url+"?f=json";i&&(r=r+"&token="+t.selectedArcGISAccount.accessToken),t.withToken=i,$.ajax({url:r,type:"GET",success:function(r){if(t.loadingLayers=!1,"string"==typeof r&&(r=JSON.parse(r)),null!=r.error)0==i&&"499"==r.error.code&&e(n,!0),1==i&&"498"==r.error.code&&u.refreshArcGisAccounts().then(function(i){for(var r=0;r<i.length;r++){var o=i[r];if(o.username==t.selectedArcGISAccount.username)return t.selectedArcGISAccount=o,void e(n,!0)}});else{for(var o in t.arcGisLayers=r.layers,t.arcGisLayersDict={},t.arcGisLayers)(a=t.arcGisLayers[o]).url=t.selectedContent.url+"/"+a.id,t.arcGisLayersDict[a.url]=a;for(var o in t.privateLayers){var a=t.privateLayers[o];null!=t.arcGisLayersDict[a.url]&&(t.arcGisLayersDict[a.url],t.arcGisLayersDict[a.url].selected=!0)}t.withToken=i,b()}}})}(e,!0),t.displaySelectLayersModal()},t.saveEventMapLayers=function(){const e=t.privateLayers.concat(t.eventMapLayerUrls);w(e)&&g.saveLayers(h.details.group,e).then(()=>{s.pop("success","Success!","Saved layers"),u.clearEventSettingsCache(),y()}).catch(()=>{s.pop("error","Error!","Unable to save layers. Please try again or contact [email protected].",0)})};const w=e=>{for(let t=0;t<e.length;t++)try{new URL(e[t].url)}catch(e){return s.pop("error","Error!","Unable to verify validity of all layers. Please try again or contact [email protected]",0),!1}return!0};t.hideAllModals=function(){$("#arcGisAccountLayersModal").modal("hide"),$("#arcGisUrlLayersModal").modal("hide"),$("#arcGisAccountsModal").modal("hide"),$("#arcGisAccountContentModal").modal("hide"),$("#arcgisLayerTemplateModal").modal("hide")},t.displaySelectLayersModal=function(){t.hideAllModals(),$("#arcGisAccountLayersModal").modal("show")}
1,t.displaySelectUrlLayersModal=function(){t.hideAllModals(),$("#arcGisUrlLayersModal").modal("show")},t.displaySelectAccountsModal=function(){t.hideAllModals(),$("#arcGisAccountsModal").modal("show")},t.displayAdvancedLayerSettingsModal=function(e){t.hideAllModals(),n.open({templateUrl:"eventLayerAdvancedSettings.html",controller:"EventLayerModalInstanceCtrl",resolve:{eventMapLayer:function(){return e}}}).result.then(function(){})},t.displaySelectAccountContentModal=function(){t.hideAllModals(),$("#arcGisAccountContentModal").modal("show")},t.createFbPageTab=function(){var e="https://www.facebook.com/dialog/pagetab?app_id=1751661965086745&redirect_uri="+m.SERVER_URL+m.SERVER_APP_PATH+"/facebook/"+h.details.group+"/page/created";f.open(e,"_blank")},t.enableReportProblem=function(){var e=t.eventSettings.reportProblemEnabled;u.enableReportProblem(t.eventSettings.reportProblemEnabled).then(function(n){n?(s.pop("success","Success!",window.lang.eventSettings.updatedCustomer+"."),t.eventSettings.reportProblemEnabled=e,e||(t.eventSettings.reportProblemAutoPublic=!1,t.reportProblemAutoPublic())):(s.pop("error",window.lang.eventSettings.Error+"!",window.lang.eventSettings.unableToUpdate+"."),t.eventSettings.reportProblemEnabled=!e)},function(n){s.pop("error",window.lang.eventSettings.Error+"!",window.lang.eventSettings.unableToUpdate+"."),t.eventSettings.reportProblemEnabled=!e})},t.reportProblemAutoPublic=function(){var e=t.eventSettings.reportProblemAutoPublic;u.reportProblemAutoPublic(t.eventSettings.reportProblemAutoPublic).then(function(n){n?(s.pop("success","Success!",window.lang.eventSettings.updatedCustomer+"."),t.eventSettings.reportProblemAutoPublic=e):(s.pop("error",window.lang.eventSettings.Error+"!",window.lang.eventSettings.unableToUpdate+"."),t.eventSettings.reportProblemAutoPublic=!e)},function(n){s.pop("error",window.lang.eventSettings.Error+"!",window.lang.eventSettings.unableToUpdate+"."),t.eventSettings.reportProblemAutoPublic=!e})},t.enableFacebookEvents=function(){var e=t.eventSettings.facebookEventsEnabled;d.updateFacebookManageEvents(e).then(function(n){n?s.pop("success","Success!",window.lang.eventSettings.updatedSubscription+"."):(s.pop("error",window.lang.eventSettings.Error+"!",window.lang.eventSettings.unableToUpdate+"."),t.eventSettings.facebookEventsEnabled=!e)})},t.enableSubscription=function(){var e=t.eventSettings.subscriptionEnabled;u.enableSubscription(t.eventSettings.subscriptionEnabled).then(function(n){n?(s.pop("success","Success!",window.lang.eventSettings.updatedSubscription+"."),t.eventSettings.subscriptionEnabled=e,e||(t.eventSettings.facebookEventsEnabled=!1,t.enableFacebookEvents())):(s.pop("error",window.lang.eventSettings.Error+"!",window.lang.eventSettings.unableToUpdate+"."),t.eventSettings.subscriptionEnabled=!e)},function(n){s.pop("error",window.lang.eventSettings.Error+"!",window.lang.eventSettings.unableToUpdate+"."),t.eventSettings.subscriptionEnabled=!e})},t.setEventClustering=function(){u.setEventClustering(t.eventSettings.eventClusteringEnabled).then(function(e){e?s.pop("success","Success!",window.lang.eventSettings.updatedEventClustering+"."):(s.pop("error",window.lang.eventSettings.Error+"!",window.lang.eventSettings.unableToUpdate+"."),t.eventSettings.eventClusteringEnabled=!t.eventSettings.eventClusteringEnabled)},function(){s.pop("error",window.lang.eventSettings.Error+"!",window.lang.eventSettings.unableToUpdate+"."),t.eventSettings.eventClusteringEnabled=!t.eventSettings.eventClusteringEnabled})},t.saveOutageEventSettings=function(){var e=t.eventSettings.hideOutageMapIcons;u.updateOutageEventSettings(t.eventSettings.outageMapIcons).then(function(n){t.eventSettings.outageMapIcons=n,u.updateOutageLegendVisibility(t.eventSettings.hideOutageMapIcons).then(function(n){n?(s.pop("success","Success!","Updated event settings."),t.eventSettings.hideOutageMapIcons=e):(s.pop("error","Error!","Unable to save legend visibility."),t.eventSettings.hideOutageMapIcons=!e)},function(n){s.pop("error","Error!","Unable to save legend visibility."),t.eventSettings.hideOutageMapIcons=!e})}
1,function(n){s.pop("error","Error!","Unable to save event settings."),t.eventSettings.hideOutageMapIcons=!e})},t.savePhoneIconSettings=function(){u.updatePhoneNumberSettings(t.eventSettings.phoneNumberSettings).then(function(e){t.eventSettings.phoneNumberSettings=e,s.pop("success","Success!","Updated phone number settings.")},function(e){s.pop("error","Error!","Unable to update phone number settings.")})},t.saveStatusIconSettings=function(){u.updateStatusIconSettings(t.eventSettings.statusIconSettings).then(function(e){t.eventSettings.statusIconSettings=e,s.pop("success","Success!","Updated status icon settings.")},function(e){s.pop("error","Error!","Unable to update status icon settings.")})},t.saveEventIconSettings=function(){var e=t.eventSettings.hideOtherMapIcons;u.updateEventIconSettings(t.eventSettings.otherMapIcons).then(function(n){t.eventSettings.otherMapIcons=n,u.updateOtherLegendVisibility(t.eventSettings.hideOtherMapIcons).then(function(n){n?(t.eventSettings.hideOtherMapIcons=e,s.pop("success","Success!","Updated icon settings.")):(s.pop("error","Error!","Unable to save legend visibility."),t.eventSettings.hideOtherMapIcons=!e)},function(n){s.pop("error","Error!","Unable to save legend visibility."),t.eventSettings.hideOtherMapIcons=!e})},function(n){s.pop("error","Error!","Unable to save icon settings."),t.eventSettings.hideOtherMapIcons=!e})},t.addPhoneNumberrMapIcon=function(e){void 0===t.eventSettings.phoneNumberSettings&&(t.eventSettings.phoneNumberSettings=[]);var n={number:e,iconUrl:u.getDefaultPhoneIconUrl(name)};t.eventSettings.phoneNumberSettings.push(n),t.selectedNumber=void 0},t.addOtherMapIcon=function(e){void 0===t.eventSettings.otherMapIcons&&(t.eventSettings.otherMapIcons=[]);var n={name:e,url:u.getDefaultMapIconUrl(e)};t.eventSettings.otherMapIcons.push(n)},t.addStatusMapIcon=function(e){void 0===t.eventSettings.statusIconSettings&&(t.eventSettings.statusIconSettings=[]);var n=u.getFullImagePath(u.iconNameList[0][0]),i={status:e,url:n},r=!1;t.eventSettings.statusIconSettings.forEach(function(t){t.status===e&&(r=!0)}),r?s.pop("error","Error!","Cannot add. An icon already exists for this status"):t.eventSettings.statusIconSettings.push(i)},t.removeStatusSetting=function(e){var n=t.eventSettings.statusIconSettings.indexOf(e);n>-1&&t.eventSettings.statusIconSettings.splice(n,1)},t.getPhoneNumbersWithNoIcon=function(){if(null!=t.group&&null!=t.eventSettings){var e=t.group.phoneNumbers;if(null!=t.eventSettings.phoneNumberSettings)for(var n=0;n<t.eventSettings.phoneNumberSettings.length;n++){var i=t.eventSettings.phoneNumberSettings[n].number,r=e.indexOf(i);r>-1&&e.splice(r,1)}return e}},t.selectedNewOtherMapIcon=function(e){t.selectedName=e},t.selectedNewPhoneMapIcon=function(e){t.selectedNumber=e},t.removePhoneNumberSetting=function(e){var n=t.eventSettings.phoneNumberSettings.indexOf(e);n>-1&&t.eventSettings.phoneNumberSettings.splice(n,1)},t.removeOtherMapIcon=function(e){var n=t.eventSettings.otherMapIcons.indexOf(e);n>-1&&t.eventSettings.otherMapIcons.splice(n,1)},t.otherMapIconSelected=function(e,t){e.url=u.getFullImagePath(t[0]),e.xOffset=t[1],e.yOffset=t[2]},t.phoneNumberIconSelected=function(e,t){t.iconUrl=u.getFullImagePath(e[0])},t.statusIconSelected=function(e,t){t.url=u.getFullImagePath(e[0])},t.smallOutageMapIconSelected=function(e){t.eventSettings.outageMapIcons.smallIconUrl=u.getFullImagePath(e[0]),t.eventSettings.outageMapIcons.xOffset=e[1],t.eventSettings.outageMapIcons.yOffset=e[2]},t.mediumOutageMapIconSelected=function(e){t.eventSettings.outageMapIcons.mediumIconUrl=u.getFullImagePath(e[0]),t.eventSettings.outageMapIcons.xOffset=e[1],t.eventSettings.outageMapIcons.yOffset=e[2]},t.largeOutageMapIconSelected=function(e){t.eventSettings.outageMapIcons.largeIconUrl=u.getFullImagePath(e[0]),t.eventSettings.outageMapIcons.xOffset=e[1],t.eventSettings.outageMapIcons.yOffset=e[2]},t.multipleOutageMapIconSelected=function(e){t.eventSettings.outageMapIcons.multipleIconUrl=u.getFullImagePath(e[0]),t.eventSettings.outageMapIcons.xOffset=e[1],t.eventSettings.outageMapIcons.yOffset=e[2]},t.saveTerritoryVisibility=function(){var e=t.eventSettings.hideTerritory;u.updateTerritoryVisibility(t.eventSettings.hideTerritory).then(function(n){n?(t.eventSettings.hideTerritory=e,s.pop("success","Success!","Updated territory visibility.")):(s.pop("error","Error
1!","Unable to save legend visibility."),t.eventSettings.hideTerritory=!e)},function(n){s.pop("error","Error!","Unable to save territory visibility."),t.eventSettings.hideTerritory=!e})},t.saveTerritory=function(e){t.territory.name=e.name,t.territory.id=e.id,u.updateEventTerritorySettings(t.territory.id).then(function(e){e?s.pop("success","Success!","Saved default territory."):(t.territory={},s.pop("error","Error!","Unable to save default territory."))},function(e){t.territory={},s.pop("error","Error!","Unable to save default territory.")})},t.updateAlertMode=function(){p.updateAlertMode(l.user.details.group,t.alertMode.bannerMessage,t.alertMode.bannerVisible,t.alertMode.popupMessage,t.alertMode.popupVisibleOnload,t.alertMode.id).then(function(e){e?s.pop("success","Success!","Saved alert mode."):s.pop("error","Error!","Unable to update alert mode.")},function(e){t.territory={},s.pop("error","Error!","Unable to save alert mode.")})},t.updateAdvancedSettings=(()=>{const e={requireCustomerCountEnabled:t.eventSettings.requireCustomerCountEnabled,requireCustomerCount:t.eventSettings.requireCustomerCount};p.updateEventMapAdvancedSettings(l.user.details.group,e).then(function(){s.pop("success","Success!","Saved advanced settings!")},function(e){s.pop("error","Error!","Could not update advanced settings.")})})}]),mainApp.controller("EventLayerModalInstanceCtrl",["$scope","$uibModalInstance","eventMapLayer",function(e,t,n){var i=n.titleTemplate,r=n.contentTemplate;e.layer=n,e.cancel=function(){e.layer.titleTemplate=i,e.layer.contentTemplate=r,t.dismiss("close")},e.update=function(){t.close()}}]),mainApp.controller("EventsCtrl",["$log","$scope","$uibModal","$timeout","$rootScope","$location","toaster","authService","eventsService","websocketService","dateTimeService","mapService","$anchorScroll","auditFactory","groupsService","$window","ENV",function(e,t,n,i,r,o,a,s,l,u,c,d,p,g,f,m,v){var h=!1;s.user;function y(){!h&&"/feed"===o.path()&&t.loggedIn&&(t.user=s.user,t.eventsService=l,l.getOutageEventSettings().then(function(e){t.outageEventSettings=e}),S(),h=!0)}function S(){t.loadingEvents=!0;let e=!1;t.eventsService.getEventSettings().then(function(e){t.statusIconSettings=e.statusIconSettings;for(var n={},i=0;i<e.statusIconSettings.length;i++){var r=e.statusIconSettings[i];n[r.status]=r.url}t.statusIconSettings=n}),t.eventsService.getEvents().then(function(n){for(var i=0;i<n.length;i++){var o=n[i];""!==o.status&&(o.mapPinUrl=t.statusIconSettings[o.status]),"SELF_REPORT"===o.type&&(e=!0)}t.events=n,t.loadingEvents=!1,t.showSelfReportOptions=e,r.$broadcast("EVENTS_RELOADED"),u.subscribe("feed-events","event",function(e){f.getNotificationSettings().then(function(e){e.soundEnabled&&-1!==e.soundPostTypes.indexOf("EVENT")&&new Audio("audio/notification.wav").play()});let i=!1;for(let e=0;e<t.events.length;e++)if(t.events[e].id===o.id&&t.events[e].detected===o.detected){n[e]=o,i=!0;break}i||t.events.push(e),t.$apply()})},function(e){t.loadingEvents=!1})}function E(e,n,i){if(null!=e&&e>0){var r=l.getEventById(e,i);null!=r&&(l.stageForEdit(r),t.setSelectedEvent(r,!1,n))}}function b(e){if(null!=e.rings&&e.rings.length>0){for(var t=[],n=0;n<e.rings[0].length;n++){var i=e.rings[0][n][0],r=e.rings[0][n][1];t.push({latitude:r,longitude:i})}return t}}function T(e){(e.detected?l.updateDetectedEventVisiblity:l.updateEvent)(e).then(function(t){d.addEventToMap(e),a.pop("success","Success!",'Event "'+e.title+'" successfully updated.')},function(t){a.pop("error","Update Failed!",'Unable to save polygon for "'+e.title+'"')})}t.eventsService=l,t.dateTimeService=c,t.mapService=d,t.selectedEventIndex={id:[],detected:[]},t.activeEventsOnly=!1,t.showEventButtons=!0,t.noMoreDetectedEvents=!1,t.creatingEvent=!1,t.eventType="",t.statusIconSettings={},t.selectAllSelfReports=!1,lightbox.option({positionFromTop:60}),y(),t.$on("$routeChangeSuccess",function(){y()}),r.$on("RELOAD_EVENTS",function(){l.clearEvents(),S()}),r.$on("EVENT_UPDATED",function(e,n){for(let e=0;e<t.events.length;e++)if(t.events[e].id===n.id&&t.events[e].detected===n.detected){t.events[e]=n;break}}),t.showEvent=function(e){return!t.activeEventsOnly||function(e){var t=new Date;return null==e.endDate||t>e.startDate&&t<e.endDate||null==e.startDate&&t<e.endDate}(e)},t.selectAllSelfReportsFn=function(){t.setSelectedEvent()},t.anySelfReportsSelected=function(){return!!t.selectAllSelfReports||t.selectedEventIndex.id.find(e=>t.events.find(t=>
1t.id===e&&"SELF_REPORT"===t.type))},t.setSelectedEvent=function(e,n,r,o){if(null==e)return void(t.selectedEventIndex={id:[],detected:[]});let a=[e.id];if(o&&o.ctrlKey&&(a=a.concat(t.selectedEventIndex.id)),t.selectedEventIndex={id:a,detected:[e.detected]},n||i(function(){p("event-"+e.id+(e.detected?"-detected":""))}),l.getEventImages(e.id).then(function(t){e.images=t},function(e){}),r&&(this.zoomToEvent(e.latitude,e.longitude),null!=e.polygons&&e.polygons.length>0)){var s=e.polygons[0],u=d.eventPolygonGraphics()[s.id].geometry.origPolygon;d.getMap().then(function(e){e.map.setExtent(u.getExtent().expand(2))})}t.$$phase||t.$apply()},t.zoomToEvent=function(e,t){null!=e&&null!==t&&d.getMap().then(function(n){n.map.centerAndZoom(new n.arcGis.Point(t,e),15)})},t.drawPolygon=function(e){},t.getBadgeClass=function(e){var t=l.eventMetrics(e);if(null!=t&&t.totalCount>0)return"badge-success"},t.setDropdownHack=function(e){if("/feed"==o.path()){var t=$(".dropdown-hack");"sentiment"==e&&(t=$(".dropdown-sent-hack")),t.hasClass("dropdown-open")?t.removeClass("dropdown-open"):t.addClass("dropdown-open")}},t.markVisibility=function(e,t){if(e.publicVisibility!=t){var n=e.publicVisibility;e.publicVisibility=t,(e.detected?l.updateDetectedEventVisiblity:l.updateEvent)(e).then(function(e){},function(t){e.publicVisibility=n,a.pop("error","An unexpected error occurred attempting to update the visibility of the post")})}},t.updateEvent=function(e){l.stageForEdit(e),o.path("/eventDetails")},t.clearEventType=function(){t.eventType=""},t.addEvent=function(){l.doneEditingEvent(),t.creatingEvent=!0,"point"===t.eventType?d.activatePointDrawing():"polygon"===t.eventType?d.activateEventPolygonDrawing():"multiplePolygons"===t.eventType&&d.activateEventPolygonDrawing(!0)},t.getSelectedSelfReportedEmailAddresses=function(){if(null==t.events||0===t.events.length)return"";const e=t.events.filter(e=>"SELF_REPORT"===e.type&&((!t.search||-1!==e.title.indexOf(t.search)||-1!==e.description.indexOf(t.search))&&(!!t.selectAllSelfReports||-1!==t.selectedEventIndex.id.indexOf(e.id))));let n="bcc=";return e.forEach(e=>{const t=function(e){return e.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)/gi)}(e.description);let i=!1;null!=t&&t.length>0&&(n+=t.join(","),i=!0),i&&(n+=",")}),n},t.exportAllSelectedSelfReports=function(){const e=t.events.filter(e=>"SELF_REPORT"===e.type&&((!t.search||-1!==e.title.indexOf(t.search)||-1!==e.description.indexOf(t.search))&&(!!t.selectAllSelfReports||-1!==t.selectedEventIndex.id.indexOf(e.id))));0!==e.length&&l.bulkSelfReportAction("export",e.map(e=>e.id)).then(()=>{a.pop("success","Success!","An export of the selected customer reports was generated.")},()=>{a.pop("error","Error!","Unable to generate an export of the customer reports. Your account may be missing an email address. Please try again or contact [email protected].",2e4)})},t.resolveAllSelectedSelfReports=function(){const e=t.events.filter(e=>"SELF_REPORT"===e.type&&((!t.search||-1!==e.title.indexOf(t.search)||-1!==e.description.indexOf(t.search))&&(!!t.selectAllSelfReports||-1!==t.selectedEventIndex.id.indexOf(e.id))));0!==e.length&&(t.showEventButtons=!1,l.bulkSelfReportAction("resolve",e.map(e=>e.id)).then(()=>{e.forEach(e=>{d.removeEvent(e),g.removeEvent(e),t.events.forEach(function(t,n,i){t.id===e.id&&t.detected===e.detected&&i.splice(n,1)}),t.showEventButtons=!0}),a.pop("success","Success!","Resolved all selected customer reports.")},()=>{a.pop("error","Error!","Unable to resolve the customer reports. Please try again.")}))},t.resolveSelfReport=function(e){l.removeEvent(e).then(function(){d.removeEvent(e),g.removeEvent(e),a.pop("success","Success!","The customer report was marked as resolved."),t.events.forEach(function(t,n,i){t.id===e.id&&t.detected===e.detected&&i.splice(n,1)})},function(e){a.pop("error","Error!","Unable to resolve the customer report. Please try again.")})},t.removeEvent=function(e){n.open({templateUrl:"deleteConfirmation.html",controller:"DeleteEventModalInstanceCtrl",resolve:{event:function(){return e}}}).result.then(function(e){d.removeEvent(e),l.removeEvent(e).then(function(){g.removeEvent(e),a.pop("success","Success!","Your event was deleted"),t.events.forEac
1h(function(t,n,i){t.id===e.id&&t.detected===e.detected&&i.splice(n,1)})},function(n){a.pop("error","Error!","Unable to delete your event"),d.addEventToMap(e),l.events.push(e),t.eventToDelete=null})})},t.cancelEventCreation=function(){d.deactivateDrawing(),t.creatingEvent=!1,t.clearEventType()},t.finishDrawingPolygon=function(){d.finishDrawingPolygon(),t.creatingEvent=!1,t.clearEventType()},r.$on("EVENT_LOCATION_SET",function(e,n){l.setLocationForNewEvent(n.point),t.creatingEvent=!1,t.clearEventType(),o.path("/eventDetails"),t.$$phase||t.$apply()}),r.$on("EVENT_POLYGON_CREATED",function(e,n){var i=b(n.polygon);l.setPolygonForNewEvent(i),t.creatingEvent=!1,t.clearEventType(),o.path("/eventDetails"),t.$$phase||t.$apply()}),r.$on("MULTIPLE_EVENT_POLYGON_CREATED",function(e,n){var i=b(n.polygon);l.setPolygonForNewEvent(i),d.addUnsavedPolygonToMap(i),t.$$phase||t.$apply()}),r.$on("MULTIPLE_EVENT_POLYGON_FINISHED",function(e,n){t.creatingEvent=!1,t.clearEventType(),o.path("/eventDetails")}),t.$on("EVENT_POLYGON_CLICKED",function(e,n){E(n,!1),t.selectAllSelfReports=!1}),t.$on("EVENT_PIN_CLICKED",function(e,n,i){E(n,!1,i),t.selectAllSelfReports=!1}),r.$on("EVENT_LOCATION_UPDATED",function(e,t){var n,i;n=l.getEventToEdit(),i=t.point,n.latitude=i.y,n.longitude=i.x,T(n),l.doneEditingEvent()}),r.$on("EVENT_POLYGON_UPDATED",function(e,t){!function(e,t,n){for(var i=l.getEventById(e.id),r=-1,o=0;o<i.polygons.length;o++)if(i.polygons[o].id===n){r=o;break}-1!==r&&(i.polygons[r]={id:n,points:b(t)});T(i)}(l.getEventToEdit(),t.polygon,d.lastPolygonId()),l.doneEditingEvent()})}]),mainApp.controller("EventRuleModalInstanceCtrl",["$scope","$uibModalInstance","$log","event","adding","groupsService","user",function(e,t,n,i,r,o,a){e.focus=!0,e.event=angular.copy(i),e.adding=r,e.error="",e.type={},e.ruleTagChanged=function(e,t,n,i){switch(t){case"MESSAGE":n?e.messages.push(i.text):e.messages.splice(e.messages.indexOf(i.text),1);break;case"USERNAME":n?e.usernames.push(i.text):e.usernames.splice(e.usernames.indexOf(i.text),1)}},e.removeRule=function(t){e.event.rules.splice(t,1)},e.removeAction=function(t){e.event.actions.splice(t,1)},e.addRule=function(t){var n={type:t};switch(t){case"MESSAGE":n.messages=[];break;case"USERNAME":n.usernames=[];break;case"TYPE":n.types=[],e.type.twitter=e.type.instagram=e.type.facebook=e.type.mobile=e.type.sms=!0}e.event.rules.push(n)},e.addAction=function(t){var n={type:t};switch(t){case"REGION":n.regionId={}}e.event.actions.push(n)},e.save=function(){if(e.submitted=!0,0!=this.event.rules.length){for(var n,i=!1,r=0;r<e.event.rules.length;r++)"TYPE"==e.event.rules[r].type&&(i=!0,n=e.event.rules[r],e.event.rules[r].types=[]);if(i){if(!(e.type.twitter||e.type.facebook||e.type.instagram||e.type.sms||e.type.mobile))return void(e.error="At least one origin type is required.");var o=[];e.type.twitter&&o.push("TWITTER"),e.type.instagram&&o.push("INSTAGRAM"),e.type.facebook&&o.push("FACEBOOK"),e.type.mobile&&o.push("MOBILE_APP"),e.type.sms&&o.push("TEXT"),n.types=o}for(var a=0;a<this.event.rules.length;a++)if(null!=this.event.rules[a].tags&&0==this.event.rules[a].tags.length)return void(e.error="Rules cannot be empty. Please remove the rule or add items to it.");for(a=0;a<this.event.rules.length;a++)delete this.event.rules[a].tags;for(r=0;r<e.event.actions.length;r++)if("REGION"==e.event.actions[r].type)for(var s=0;s<e.regions.length;s++)e.regions[s].selected&&(e.event.actions[r].regionId=e.regions[s].id);t.close(this.event)}else e.error="At least one rule is required."},e.regionSelected=function(t){for(var n=0;n<e.regions.length;n++)e.regions[n].id!=t.id&&(e.regions[n].selected=!1)},e.isRegionSelected=function(){if(null!=e.event.actions)for(var t=0;t<e.event.actions.length;t++)if(null!=e.event.actions[t].regionId)return!0;return!1},e.cancel=function(){t.dismiss("close")}}]),mainApp.controller("DeleteEventModalInstanceCtrl",["$scope","$uibModalInstance","event",function(e,t,n){e.delete=function(){t.close(n)},e.cancel=function(){t.dismiss("close")}}]),mainApp.controller("FeedCtrl",["$scope","$log","$rootScope","$location","$timeout","websocketService","authService","auditService","isotopeService","filterService","$cookies","groupsService","dateTimeService","auditFactory","facebookService","mapService",function(e,t,n,i,r,o,a,s,l,u,c,d,p,g,f,m){$('[data-toggle="tooltip"]').tooltip({placement:"top"}),$('[data-toggle="popover"]').popover({trigger:"hover",placement:"top"}),e.filterService=u,e.dateTimeService=p,e.filterName="feed",e.filter={text:function(t){return angular.isDefined(t)&&(s.benchmarkSearchCount(t),"grid"==e.view&&l.init(
1)),u.searchTerm()}};var v=!1,h=a.user;function y(e,t){return null!==localStorage.getItem(e)?"true"===localStorage.getItem(e):t}e.isBusy=g.isBusy,e.audits=g.audits,e.auditBacklog=g.auditBacklog,e.view=c.get("view")||"list",e.StateEnum=StateEnum,e.regions=[],e.stateFilter=u.getStateFilter,e.sentiment={},e.isStreamVisible=y("utilisocial.feed.isStreamVisible",!0),e.isMapVisible=y("utilisocial.feed.isMapVisible",!0),e.streamActiveTab=function(e,t,n,i){if(null!==localStorage.getItem(e)){var r=parseInt(localStorage.getItem(e));return isNaN(r)?t:void 0!==n&&r<n?t:void 0!==i&&r>i?t:r}return t}("utilisocial.feed.streamActiveTab",0,0,1);var S=0;function E(){"/feed"===i.path()&&v&&e.loggedIn&&b(),!v&&"/feed"===i.path()&&e.loggedIn&&(g.setGroup(h.details.group),o.subscribe("feed-audit","audit",function(e){d.getNotificationSettings().then(function(t){t.soundEnabled&&-1!==t.soundPostTypes.indexOf(e.type)&&new Audio("audio/notification.wav").play()}),g.addAudit(e)},!0),"grid"===e.view&&setTimeout(function(){l.sort("date",u.getDateFilter())},2e3),e.requirePhoto=u.requirePhoto,d.getGroupSettings(),e.isStreamVisible&&e.isMapVisible?resizeStream():r(function(){e.splitPaneResized()},200),b(),v=!0)}function b(){u.updateFilters(T),e.filterRequirePhoto=u.requirePhoto()}function T(){u.reload();var e=u.requireReload("feed");("/feed"==i.path()&&!v||e||0==g.audits().length)&&(g.setGroup(h.details.group),g.reload())}e.$on("$locationChangeStart",function(e,t,n){-1!=n.indexOf("/feed")&&"/feed"!=i.path()&&(S=window.pageYOffset)}),e.$on("$locationChangeSuccess",function(e,t,n){-1==n.indexOf("/feed")&&"/feed"==i.path()&&r(function(){window.scrollTo(0,S)},0)}),e.filterText="",e.$on("$routeChangeSuccess",function(){E()}),E(),n.$on("LOGGED_OUT",function(){v=!1}),e.open=function(t,n){t.preventDefault(),t.stopPropagation(),"begin"==n?e.beginOpened=!0:e.endOpened=!0,setTimeout(function(){$("#feedToDate").next().css("left","-149px")},0)},e.requirePhotoChange=function(){u.setFilterRequirePhoto(e.filterRequirePhoto)},e.infiniteScroll=function(){"/feed"==i.path()&&g.requestNextPage(u.getStateFilter(),!1)},e.markAsSeen=function(){s.markAllAsSeen(h.details.group).then(function(){})},e.updateView=function(t){e.view=t,c.put("view",e.view,{samesite:"Lax"}),r(function(){l.init()},50)},e.splitPaneResized=function(t){resizeStream(),m.resizeMap(),"grid"===e.view&&l.reloadAndRelayout()},e.addAudits=function(){for(var e=0;e<25;e++){var t={id:(new Date).getTime(),userName:"pete",message:"hey what's up",latitude:37,longitude:-117,phoneNumber:"4014516030",type:TypeEnum.TWITTER,state:"NEW",date:new Date,locationType:"GPS"};g.addAudit(t)}},e.showFeedContent=function(t,n){if("stream"===t){if(!n&&!e.isMapVisible)return;e.isStreamVisible=n,localStorage.setItem("utilisocial.feed.isStreamVisible",e.isStreamVisible)}else{if(!n&&!e.isStreamVisible)return;e.isMapVisible=n,localStorage.setItem("utilisocial.feed.isMapVisible",e.isMapVisible)}r(function(){e.splitPaneResized()})},e.streamTabSelected=function(t){localStorage.setItem("utilisocial.feed.streamActiveTab",t),r(function(){e.splitPaneResized()})},e.showNew=function(){u.setStateFilter(StateEnum.NEW),g.showNew(),l.reloadAndRelayout()},e.filters=function(){T(),n.$broadcast("RELOAD_EVENTS")},e.auditClicked=function(e){null!==e.latitude&&null!==e.longitude&&n.$broadcast("LOCATE_AUDIT",e)},$(window).resize(function(){resizeStream()}).resize()}]),mainApp.controller("LanguageCtrl",["$log","$scope","authService","$cookies",function(e,t,n,i){t.changeLanguage=function(e){i.put("chosen-locale",e,{samesite:"Lax"}),window.location.reload()}}]),mainApp.controller("LoginCtrl",["$log","$scope","$location","authService","$cookies","$http","ENV",function(e,t,n,i,r,o,a){t.accountData={username:"",password:""},t.year=(new Date).getFullYear().toString(),t.doSubmitLogin=function(){var e;t.loginError="",t.$broadcast("autofill:update"),e=t.accountData,i.login(e,function(e){n.path(r.get("path")||"/dashboard"),t.accountData.username="",t.accountData.password="",t.loginError=void 0,o.get(a.SERVER_APP_PATH+"/public/page?url="+encodeURIComponent(a.STATIC_URL+"/#/login")).then(function(){})},function(e,n){t.loginError=503==n?"Server temporarily unavailable":"Incorrect username or password"})}}]),mainApp.controller("LogoutController",["$scope","$rootScope","authService","$http","ENV",function(e,t,n,i,r){e.logout=function(){i.get(r.SERVER_APP_PATH+"/public/page?url="+encodeURIComponent(r.STATIC_URL+"/#/logout")).then(function(){}),n.logout(e.user,function(){},function(){t.error="Failed to logout"})}}]),mainApp.controller("MapCtrl",["$scope","$uibModal","$q","$location","$rootScope","$log","auditService","websocketService","authService","mapService","dateTimeService","groupsService","toaster","pushNotificationService","keywordService","keywordFactory","filterService","arcGisService","eventsService","$timeout","$anchorScroll","auditFactory",function(e,t,n,i,r,o,a,s,l,u,c,d,p,g,f,m,v,h,y,S,E,b){var T="#00FF00";e.filterName="map",e.filterService=v,e.mapService=u,e.creatingEvent=!1,e.regionType="",e.events=[];var w,A,P=!1,M=l.user,C=!1,R=!1,I={};function D(){v.reload();var t=v.requireReload("map");("/feed"===i.path()&&!C||t)&&(u.removeAllAudits(),e.loading=!0,b.setGroup(M.details.group),b.getAuditsForMap().then(function(t){if(null!=t)for(var n=0;n<t.length;n++){var i=t[n];N(i)}u.loadHeatMap(),e.loading=!1},function(t){e.loading=!1}),u.resizeMap(),P&&(u.removeAllEvents(),y.clearEvents(),k()))}function _(){"/feed"===i.path()&&C&&e.loggedIn&&(D(),e.filterRequirePhoto=v.requirePhoto()),!C&&"/feed"===i.path()&&e.loggedIn&&(M=l.user,u.getMap().then(function(t){A=t.arcGis,function(t){if(R)return;e.loadingRegions=!0,I={},d.getAllGroupRegions().then(function(t){var n=[];if(e.groupRegions=t,null!=t)for(var i=0;i<t.length;i++){var r=t[i],o=O(r);n[i]=u.createGraphic(o),setTimeout(L.bind(this,o),200)}return e.loadingRegions=!1,R=!0,n},function(t){e.loadingRegions=!1}).then(function(e){e&&e.length>0?(I=u.createGraphicsExtent(e),t.map.setExtent(I)):u.setMapCenterToGroupLocation(t.map)})}(t),d.getAllGroupKeywords(!1).then(function(e){for(var t=0;t<e.length;t++){var n=e[t];-1===n.word.indexOf("point_radius")&&m.addKeyword(n)}}),k(),v.updateFilters(function(){D(),null!=w&&(N(w),u.focus(w.latitude,w.longitude,18),w=void 0),C=!0,P=!0})}),s.subscribe("map-event","event",function(e){x(e)},!0),s.subscribe("map-audit","audit",function(e){e.state==StateEnum.NEW&&N(e)},!0))}function O(e){if(null!=e&&null!=e.points){for(var t=[],n=0;n<e.points.length;n++){var i=[];
1i[0]=e.points[n].longitude,i[1]=e.points[n].latitude,t.push(i)}return e.polygon=new A.Polygon(t),e.polygon.regionName=e.name,e.polygon.regionId=e.id,null==e.color&&(e.color=T),e}}function L(e){u.addRegionToMap(e);for(var t=0;t<e.keywords.length;t++){var n=e.keywords[t];"geofence"===e.regionType&&-1!==n.word.indexOf("point_radius")||m.addKeyword(n)}}function k(){e.loadingEvents=!0,e.events=[],y.getEvents().then(function(t){if(e.events=t,void 0!==t)for(var n=0;n<t.length;n++){var i=t[n];setTimeout(x.bind(this,i),200)}e.loadingEvents=!1,!0},function(t){e.loadingEvents=!1})}function x(e){u.addEventToMap(e)}function N(e){if(null!=e.latitude&&null!=e.longitude){if(null!=e.date){var t=c.convertTimestamp(e.date);e.date=t.string,e.logicalDate=t.logical,e.orderableDate=t.timestamp}if(e.type==TypeEnum.TEXT)for(var n=0;n<e.textMessages.length;n++)t=c.convertTimestamp(e.textMessages[n].date),e.textMessages[n].date=t.string,e.textMessages[n].logicalDate=t.logical,e.textMessages[n].orderableDate=t.timestamp;var i=u.hasAudit(e.id);i&&e.type==TypeEnum.TEXT&&(u.removeAudit(e),i=!1),i||u.addAudit(e)}}function U(e,t){var n=d.getRegionFromRegionId(e.regionId);void 0!==t&&(n.color=t);for(var i=[],r=0;r<e.rings[0].length;r++){var o=e.rings[0][r][0],a=e.rings[0][r][1];i.push({latitude:a,longitude:o})}null!=n.polygon&&delete n.polygon,null!=n.group&&delete n.group,n.points=i,delete n.selected,d.updateGroupRegion(M.details.group,n,e).then(function(e){p.pop("success","Success!",'Region "'+e.name+'" successfully updated.')},function(e){p.pop("error","Update Failed!",'Unable to update region "'+n.name+'"')})}e.groupService=d,e.keywordFactory=m,e.selectedRegionIndex=-1,e.accessLevels=l.accessLevels,e.regionsVisible=!1,e.markersVisible=!0,e.eventsVisible=!1,e.loading=!1,e.regionKeywords=[],e.regions=[],e.keywords=[],e.filters=function(){D()},_(),e.$on("$routeChangeSuccess",function(){_()}),r.$on("REGION_UPDATED",function(e,t){U(t.polygon)}),r.$on("REGION_CREATED",function(n,i){e.selectPostsPolygonDrawing?function(n){u.deactivateDrawing(),e.selectPostsPolygonDrawing=!1;var i=[];u.markers().forEach(function(e,t,r){if(n.contains(e.geometry)){var o=e.item;o.type!=TypeEnum.MOBILE_APP&&o.type!=TypeEnum.TEXT||i.push(o)}}),t.open({templateUrl:"sendPushNotification.html",controller:"SendPushNotificationCtrl",resolve:{count:function(){return i.length}}}).result.then(function(e){g.pushNotification(i,e,M.details.group).then(function(){p.pop("success","Success!","Notifications sent!")},function(e){p.pop("error","Error!","Could not send notifications")})},function(){})}(i.polygon):function(t,n){e.addingRegion=!0,e.drawing=!1,t.id=d.getNumberOfRegions()+1;for(var i=[],o=0;o<t.rings[0].length;o++){var a=t.rings[0][o][0],s=t.rings[0][o][1];i.push({latitude:s,longitude:a})}var l={name:"Region "+(d.getNumberOfRegions()+1),points:i,color:T,regionType:e.regionType},c="geofence"===e.regionType;if(c&&n>25)return e.addingRegion=!1,void S(function(){p.pop("error","Add Failed!","Unable to save region. The geofence is too large.",0)},25);d.addGroupRegion(M.details.group,l,t).then(function(i){t.regionId=i.id,t.regionName=i.name,i.polygon=t,u.addRegionToMap(i);for(var o=!1,a=0;a<e.groupRegions.length;a++)if(e.groupRegions[a].id==i.id){o=!0;break}if(o||e.groupRegions.push(i),v.updateFilters(),c){var s=t.getCentroid(),g="(point_radius:["+s.x+" "+s.y+" "+n+"mi] OR profile_point_radius:["+s.x+" "+s.y+" "+n+"mi])",m={text:g,regions:[i.id],negative:!1,geolocationRequired:!1};f.addKeyword(m,M.details.group).then(function(){d.keywordAddedOrRemoved(),v.updateFilters()})}r.$$phase||r.$apply(),l.name,e.addingRegion=!1,p.pop("success","Success!",'Region "'+i.name+'" successfully saved.')},function(n){e.addingRegion=!1,l.polygon=t,422===n?p.pop({type:"error",title:"Region Limit Exceeded",body:'Unable to save region "'+l.name+'" because the limit has been reached. Please contact support.',timeout:0}):p.pop("error","Update Failed!",'Unable to save region "'+l.name+'"')})}(i.polygon,i.radius)}),r.$on("LOGGED_OUT",function(e){C=!1,R=!1,!1,u.reset(),u.clearAllRegions(),u.clearAllEvents(),u.clearAllMarkers(),d.removeAllRegions()}),e.requirePhotoChange=function(){v.setFilterRequirePhoto(e.filterRequirePhoto)}
1,e.open=function(t,n){t.preventDefault(),t.stopPropagation(),"begin"==n?e.beginOpened=!0:e.endOpened=!0,setTimeout(function(){$("#feedToDate").next().css("left","-149px")},0)},r.$on("LOCATE_AUDIT",function(e,t){P?(N(t),u.focus(t.latitude,t.longitude,18)):w=t}),e.$on("REGION_CLICKED",function(t,n){if(-1!==n){var i=function(t){for(var n=0;n<e.groupRegions.length;n++){var i=e.groupRegions[n];if(i.id==t)return i}}(n);e.setSelectedRegion(i,!1)}}),e.hideInfoGraphics=function(){e.showInfoGraphics=!1},e.setSelectedRegion=function(t,n){var i=!0;e.selectedRegionIndex==t.id&&(i=!1),e.selectedRegionIndex=t.id,n?i&&this.zoomToRegion(t):S(function(){e.regionSliderOpen||(e.toggleRegionManager(),e.regionSliderOpen=!0),E("region-"+t.id)}),n&&u.deactivateRegionEditor(t.id),e.$$phase||e.$apply()},e.toggleRegionManager=function(){var e=$("#region-slide-panel");e.hasClass("visible")?e.removeClass("visible").removeClass("region-slide-panel-open").animate({right:"-325px"}):e.addClass("visible").addClass("region-slide-panel-open").animate({right:"0px"})},e.markAsSeen=function(){u.removeAll()},e.stageForDelete=function(t){e.regionToDelete=t},e.zoomToRegion=function(e){var t;(t=n.defer(),u.getMap().then(function(e){A=e.arcGis,P=!0,t.resolve(e.map)},function(e){t.reject(e)}),t.promise).then(function(t){var n=e.polygon.getExtent(),i=n.expand(2);(i.xmin<-180||i.xmax>180||i.ymin<-90||i.ymax>90)&&(i=n),t.setExtent(i)})},e.removeRegion=function(){if(void 0!==e.regionToDelete){var t=e.regionToDelete.id;void 0!==e.regionToDelete.polygon&&(u.removePolygon(e.regionToDelete.polygon),e.groupRegions.splice(e.groupRegions.indexOf(e.regionToDelete),1)),d.deleteGroupRegion(M.details.group,t).then(function(t){p.pop("success","Success!",'Region "'+e.regionToDelete.name+'" successfully deleted.'),e.regionToDelete=void 0,v.updateFilters()},function(t){e.loadingRegions=!1,p.pop("error","Delete Failed!",'Unable to delete region "'+e.regionToDelete.name+'"'),u.addRegionToMap(e.regionToDelete),e.groupRegions.push(e.regionToDelete),e.regionToDelete=void 0})}},e.updateRegionName=function(e,t){if(void 0===e)return"Required";var n=t.name;t.name=e;var i=t.polygon,r=t.selected,o=t.group;delete t.polygon,delete t.group,delete t.selected,t.name,d.updateGroupRegion(M.details.group,t,i).then(function(e){return t.polygon=i,t.selected=r,t.group=o,v.updateFilters(),p.pop("success","Success!",'Region "'+e.name+'" successfully updated.'),!0},function(e){return t.polygon=i,t.name=n,t.selected=r,t.group=o,p.pop("error","Update Failed!",'Unable to update region "'+t.name+'"'),"Unable to update"})},e.selectPosts=function(){e.selectPostsPolygonDrawing=!0,u.activateRegionDrawing()},e.addRegion=function(){e.drawing=!0,u.activateRegionDrawing(e.regionType)},e.cancelAddRegion=function(){e.drawing=!1,u.deactivateDrawing()},e.clearRegionType=function(){e.regionType=""},e.regionKeywords=m.regionKeywords,$(window).resize(function(){u.resizeMap()}).resize(),e.$on("colorpicker-closed",function(e,t){var n=t.value;U(e.targetScope.region.polygon,n),u.updateRegionColor(e.targetScope.region,n)}),e.resizeMap=function(){setTimeout(function(){u.resizeMap()},1500)},r.$on("EVENTS_RELOADED",function(){u.clearAllEvents(),k()}),e.addAudit=function(){N({id:(new Date).getTime(),userName:"pete",message:"hey what's up",latitude:42.360082,longitude:-71.05888,phoneNumber:"4014516030",type:TypeEnum.MOBILE_APP,state:"NEW",date:new Date,locationType:"GPS"})},e.advancedOperators=function(){t.open({templateUrl:"advancedOperators.html",controller:"AdvancedOperatorsCtrl"})},e.keywordManager=function(n){t.open({templateUrl:"keywordManager.html",controller:"KeywordManagementCtrl",size:"lg",resolve:{$log:function(){return o},toaster:function(){return p},action:function(){return n},regions:function(){return e.groupRegions},keywordService:function(){return f},keywordFactory:function(){return m},groupName:function(){return M.details.group},groupsService:function(){return d},filterService:function(){return v}}})}}]),mainApp.controller("SendPushNotificationCtrl",["$scope","$uibModalInstance","count",function(e,t,n){e.count=n,e.sendMessage=function(e){t.close(e)},e.cancel=function(){t.dismiss("cancel")}}]),mainApp.controller("AdvancedOperatorsCtrl",["$scope","$uibModalInstance",function(e,t){e.close=function(){t.dismiss("close")}}]),mainApp.controller("KeywordManagementCtrl",["$scope","$uibModalInstance","$log","toaster","action","regions","keywordService","keywordFactory","groupName","groupsService","filterService",function(e,t,n,i,r,o,a,s,l,u,c){e.keywords=s.keywords,e.regionMap={}
1,e.keyword=void 0,e.regionNames=[],e.availableRegions={};var d={};function p(){u.keywordAddedOrRemoved(),u.getAllGroupKeywords(!1).then(function(e){for(var t=0;t<e.length;t++){var n=e[t];-1===n.word.indexOf("point_radius")&&s.addKeyword(n)}}),c.updateFilters()}o.forEach(function(t){e.regionMap[t.id]=t,e.regionNames.push({id:t.id,name:t.name})}),e.selectRegionForKeyword=function(t){var n=[];e.regionNames.forEach(function(e){-1===t.regions.indexOf(e.id)&&n.push(e.name)}),e.availableRegions[t.text]=n},e.UIaddKeyword=function(t){e.keyword={text:"",regions:[],negative:t,geolocationRequired:!0,modified:!0}},e.UIdeleteKeywordFromRegion=function(e,t){void 0===d[e.ids]&&(d[e.ids]=angular.copy(e)),e.modified=!0;var n=e.regions.indexOf(t);-1!==n&&e.regions.splice(n,1)},e.UIavailableRegionSelected=function(t,n){if(e.keyword===n)return e.regionNames.forEach(function(e){t===e.name&&-1===n.regions.indexOf(e.id)&&n.regions.push(e.id)}),e.selectedNewRegionForKeyword=void 0,void delete e.availableRegions[n.text];var i=-1;if(e.regionNames.forEach(function(e){t===e.name&&-1===n.regions.indexOf(e.id)&&(i=e.id)}),-1!==i){void 0===d[n.ids]&&(d[n.ids]=angular.copy(n)),n.modified=!0,n.regions.push(i);var r=n.regions.indexOf(-1);-1!==r&&n.regions.splice(r,1)}},e.UIaddKeywordToAllRegions=function(t){if(e.keyword===t)for(var n in e.regionMap)e.regionMap.hasOwnProperty(n)&&(n=parseInt(n),-1===t.regions.indexOf(n)&&t.regions.push(n));else{void 0===d[t.ids]&&(d[t.ids]=angular.copy(t));var i=t.regions.slice();for(var n in e.regionMap)e.regionMap.hasOwnProperty(n)&&(n=parseInt(n),-1===i.indexOf(n)&&(t.modified=!0,t.regions.push(n)))}var r=t.regions.indexOf(-1);-1!==r&&t.regions.splice(r,1)},e.UIupdateGeolocation=function(e){e.geolocationRequired||window.confirm("Are you sure you want to remove geolocation from this rule? It will be disassociated with all previous regions.")?(void 0===d[e.ids]&&(d[e.ids]=angular.copy(e),d[e.ids].geolocationRequired=!d[e.ids].geolocationRequired),e.modified=!0,e.geolocationRequired?e.regions=[]:e.regions=[-1]):e.geolocationRequired=!0}
1,e.saveOrUpdateKeyword=function(t){if(void 0!==d[t.ids]){var n=d[t.ids];n.geolocationRequired===t.geolocationRequired&&function(e,t){if(e===t)return!0;if(null===e||null===t)return!1;if(e.length!==t.length)return!1;for(var n=0;n<e.length;++n)if(e[n]!==t[n])return!1;return!0}(n.regions.slice().sort(),t.regions.slice().sort())?(t.modified=!1,delete d[t.ids]):a.updateKeywords(t,l).then(function(){p(),e.keyword=void 0,i.pop("success","Success!","Search term updated"),t.modified=!1,delete d[t.ids]},function(e){i.pop("error","Error!","Unable to update")})}},e.removeKeyword=function(e){a.removeKeyword(l,e.text).then(function(){s.removeKeyword(e.regions.slice(),e.ids.slice(),e.text),u.keywordAddedOrRemoved(),c.updateFilters(),i.pop("success","Success!","Search term removed")},function(){i.pop("error","Error!","Unable to remove")})},e.saveNewKeyword=function(){a.addKeyword(e.keyword,l).then(function(t){p(),e.keyword=void 0,i.pop("success","Success!","Search term added")},function(e){422===e.statusCode?i.pop({type:"error",title:"Keyword Limit Exceeded",body:"Unable to add new keywords because the limit has been reached. Please contact support.",timeout:0}):i.pop({type:"error",title:"Error!",body:e.message,timeout:0})})},e.close=function(){t.dismiss("close")}}]),mainApp.controller("NavCtrl",["$log","$scope","$rootScope","$interval","authService","websocketService","analyticsService","groupsService",function(e,t,n,i,r,o,a,s){var l;function u(){s.getGroup(t.user.details.group).then(function(e){void 0!==e.postLimit&&null!==e.postLimit&&0!==e.postLimit?s.getPostCount(t.user.details.group).then(function(n){var i=n.saved/e.postLimit*100;i>100?i=100:i<0&&(i=0),i=Math.round(i),t.dailyLimitPercentage=i,t.savedPostsCount=n.saved,t.dailyPostsLimit=e.postLimit},function(){i.cancel(l)}):t.dailyPostsLimit=void 0},function(){i.cancel(l)})}t.user=r.user,t.userRoles=r.userRoles,t.accessLevels=r.accessLevels,t.savedPostsCount=0,t.dailyPostsLimit=void 0,t.dailyLimitPercentage=0,t.commaSeparateNumber=function(e){if(void 0===e)return e;for(;/(\d+)(\d{3})/.test(e.toString());)e=e.toString().replace(/(\d+)(\d{3})/,"$1,$2");return e||"0"},n.$on("LOGGED_IN",function(){u(),l=i(u,3e5)})}]),mainApp.controller("NotificationsCtrl",["$log","$rootScope","$scope","$location","toaster","groupsService","authService",function(e,t,n,i,r,o,a){c(),n.autoResponseExpanded=!1,n.notificationsExpanded=!1,n.soundsExpanded=!1,n.customMessagingExpanded=!1,n.usernameTriggers=[],n.messageMaxLength=160;var s=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i,l=!1;function u(){!l&&"/settings/notification"===i.path()&&n.loggedIn&&(o.getGroup(a.user.details.group).then(function(e){n.group=e}),o.getNotificationSettings().then(function(e){if(n.notificationSettings=e,""===n.notificationSettings.afterHoursStart&&(n.notificationSettings.afterHoursStart=1020),""===n.notificationSettings.afterHoursEnd&&(n.notificationSettings.afterHoursEnd=1980),null!==n.timezones)for(var t=0;t<n.timezones.length;t++)n.timezones[t].selected=n.notificationSettings.timezone===n.timezones[t].name;if(null!==n.smsThresholdRanges)for(t=0;t<n.smsThresholdRanges.length;t++)n.smsThresholdRanges[t].selected=n.notificationSettings.smsThresholdRange===n.smsThresholdRanges[t].value;if(null!==n.socialThresholdRanges)for(t=0;t<n.socialThresholdRanges.length;t++)n.socialThresholdRanges[t].selected=n.notificationSettings.socialThresholdRange===n.socialThresholdRanges[t].value;if(null!==n.notificationSettings.usernameTriggers)for(t=0;t<n.notificationSettings.usernameTriggers.length;t++)n.usernameTriggers.push({text:n.notificationSettings.usernameTriggers[t]});n.type.event=$.inArray("EVENT",e.soundPostTypes)>-1,n.type.twitter=$.inArray("TWITTER",e.soundPostTypes)>-1,n.type.instagram=$.inArray("INSTAGRAM",e.soundPostTypes)>-1,n.type.facebook=$.inArray("FACEBOOK",e.soundPostTypes)>-1,n.type.mobile=$.inArray("MOBILE_APP",e.soundPostTypes)>-1,n.type.sms=$.inArray("TEXT",e.soundPostTypes)>-1}),l=!0)}function c(){o.clear(),n.notificationSettings={},n.type={},n.timezones=[{name:"",selected:!0},{name:"GMT",selected:!1},{name:"US/Eastern",selected:!1},{name:"US/Central",selected:!1},{name:"US/Mountain",selected:!1},{name:"US/Pacific",selected:!1},{name:"US/Hawaii",selected:!1},{name:"US/Alaska",selected:!1},{name:"WET",selected:!1},{name:"CET",selected:!1},{name:"EET",selected:!1},{name:"IST",selected:!1},{name:"CTT",selected:!1},{name:"ROK",selected:!1},{name:"Japan",selected:!1}],n.smsThresholdRanges=[{name:"15 minutes",value:15,selected:!1},{name:"30 minutes",value:30,selected:!1},{name:"45 minutes",value:45,selected:!1},{name:"60 minutes",value:60,selected:!1},{name:"75 minutes",value:75,selected:!1},{name:"90 minutes",value:90,selected:!1}],n.socialThresholdRanges=[{name:"15 minutes",value:15,selected:!1},{name:"30 minutes",value:30,selected:!1},{name:"45 minutes",value:45,selected:!1},{name:"60 minutes",value:60,selected:!1},{name:"75 minutes",value:75,selected:!1},{name:"90 minutes",value:90,selected:!1}],n.saveError=void 0,n.savingAutoResponse=!1,n.invalidTimezone=!1,n.invalidAutoResponseMessage=!1,n.dateTooLong=!1,n.dateNotSet
1=!1,n.notificationSettings.phoneNumbers=void 0,n.notificationSettings.emailAddresses=void 0,n.invalidSmsThreshold=!1,n.invalidSocialThreshold=!1}n.$on("$routeChangeSuccess",function(){u()}),u(),t.$on("LOGGED_OUT",function(e){l=!1,c()}),n.saveAutoResponseSettings=function(){n.saveError="",n.savingAutoResponse=!0,function(){var e=n.notificationSettings.afterHoursEnd-n.notificationSettings.afterHoursStart!=0,t=!0===n.notificationSettings.afterHoursOverride;n.invalidTimezone=!!e&&null===n.notificationSettings.timezone;n.invalidAutoResponseMessage=!(!e&&!t)&&(null==n.notificationSettings.autoResponseMessage||0===n.notificationSettings.autoResponseMessage.trim().length)}(),n.invalidTimezone||n.invalidAutoResponseMessage?n.savingAutoResponse=!1:o.updateNotificationSettingsAutoResponse(n.notificationSettings).then(function(e){n.savingAutoResponse=!1,r.pop("success","Success!","Your auto response notification settings were updated successfully")},function(e){n.savingAutoResponse=!1;var t="Unable to update your auto response notification settings. Make sure your message is less than 255 characters.";r.pop("error","Error!",t),n.saveError=t})},n.saveSounds=function(){n.saveError="",n.saving=!0;var e=[];n.type.twitter&&e.push("TWITTER"),n.type.instagram&&e.push("INSTAGRAM"),n.type.facebook&&e.push("FACEBOOK"),n.type.mobile&&e.push("MOBILE_APP"),n.type.sms&&e.push("TEXT"),n.type.event&&e.push("EVENT"),n.notificationSettings.soundEnabled=e.length>0,n.notificationSettings.soundPostTypes=e,o.updateNotificationSettingsSounds(n.notificationSettings).then(function(e){n.saving=!1,r.pop("success","Success!","Your notification sounds settings were updated successfully")},function(e){n.saving=!1;var t="Unable to update your notification sound settings";r.pop("error","Error!",t),n.saveError=t})},n.saveSettings=function(){if(n.saveError="",n.saving=!0,n.notificationSettings.usernameTriggers=[],null!=n.usernameTriggers&&0!=n.usernameTriggers.length)for(var e=0;e<n.usernameTriggers.length;e++)null==n.notificationSettings.usernameTriggers&&(n.notificationSettings.usernameTriggers=[]),n.notificationSettings.usernameTriggers.push(n.usernameTriggers[e].text);var t=function(){var e=[];if(null!=n.notificationSettings.emailAddresses)for(index=0;index<n.notificationSettings.emailAddresses.length;index++){var t=n.notificationSettings.emailAddresses[index];s.test(t.emailAddress)||e.push(t.emailAddress)}return n.invalidSmsThreshold=n.notificationSettings.smsThreshold<0||n.notificationSettings.smsThreshold>0&&0===n.notificationSettings.smsThresholdRange,n.invalidSocialThreshold=n.notificationSettings.socialThreshold<0||n.notificationSettings.socialThreshold>0&&0===n.notificationSettings.socialThresholdRange,{invalidEmail
1s:e}}().invalidEmails;0!==t.length||n.invalidSmsThreshold||n.invalidSocialThreshold?(n.invalidEmails=t,n.saving=!1):(n.invalidEmails=[],o.updateNotificationSettingsAlerts(n.notificationSettings).then(function(e){n.saving=!1,r.pop("success","Success!","Your notification settings were updated successfully")},function(e){n.saving=!1;var t="Unable to update your notification settings";r.pop("error","Error!",t),n.saveError=t}))},n.updateTimezone=function(e){n.notificationSettings.timezone=e.name},n.updateSmsThresholdRange=function(e){n.notificationSettings.smsThresholdRange=e.value},n.updateSocialThresholdRange=function(e){n.notificationSettings.socialThresholdRange=e.value},n.addRow=function(e){"email"==e?(null==n.notificationSettings.emailAddresses&&(n.notificationSettings.emailAddresses=[]),n.notificationSettings.emailAddresses.push({emailAddress:"",smsNotification:!1,socialNotification:!1,eventNotification:!1})):(null==n.notificationSettings.phoneNumbers&&(n.notificationSettings.phoneNumbers=[]),n.notificationSettings.phoneNumbers.push({phoneNumber:"",smsNotification:!1,socialNotification:!1,eventNotification:!1,notificationStatus:"ON",restartDate:null}))},n.removeRow=function(e,t){"email"==e?n.notificationSettings.emailAddresses.splice(t,1):n.notificationSettings.phoneNumbers.splice(t,1)}}]),mainApp.controller("NotifyCtrl",["$scope","$log","$location","authService","twilioService",function(e,t,n,i,r){e.group=i.user.details.group;var o=!1;function a(){!o&&"/notify"===n.path()&&e.loggedIn&&(e.group=i.user.details.group,o=!0)}e.$on("$routeChangeSuccess",function(){a()}),a(),e.sendMessage=function(){e.sendSuccess=e.sendError="";let t=e.send.toNumbers.split(/[ ,]+/);r.sendNotification(e.group,t,e.send.message).then(function(t){e.sendSuccess=!0,e.sendError=void 0},function(t){e.sendError=t,e.sendSuccess=void 0})}}]),mainApp.controller("RouteCtrl",["$log","$scope","$location","$rootScope","$timeout","$cookies","ENV","$http",function(e,t,n,i,r,o,a,s){i.loggedIn=void 0!==o.getObject("user"),i.loggedIn&&r(function(){i.$broadcast("LOGGED_IN",o.getObject("user"))},1250),t.$on("$routeChangeSuccess",function(){var e=n.path();t.loginVisible=!1,t.dashboardVisible=!1,t.feedVisible=!1,t.updatePasswordVisible=!1,t.updateEmailVisible=!1,t.accountsVisible=!1,t.notifyVisible=!1,t.adminVisible=!1,t.simVisible=!1,t.notificationsVisible=!1,t.eventsVisible=!1,t.eventDetailsVisible=!1,t.algorithmsVisible=!1,t.eventSettingsVisible=!1,"/login"===e?(t.loginVisible=!0,busy=!0):(o.put("path",e,{samesite:"Lax"}),"/dashboard"===e?(t.dashboardVisible=!0,busy=!0):"/feed"===e?(t.feedVisible=!0,busy=!1):"/updatePassword"===e?(t.updatePasswordVisible=!0,busy=!0):"/updateEmail"===e?(t.updateEmailVisible=!0,busy=!0):"/accounts"===e?(t.accountsVisible=!0,busy=!0):"/notify"===e?(t.notifyVisible=!0,busy=!0):"/admin"===e?(t.adminVisible=!0,busy=!0):"/sim"===e?(t.simVisible=!0,busy=!0):"/settings/notification"===e?(t.notificationsVisible=!0,busy=!0):"/events"===e?(t.eventsVisible=!0,busy=!0):"/eventDetails"===e?(t.eventDetailsVisible=!0,busy=!0):"/algorithms"===e?(t.algorithmsVisible=!0,busy=!0):"/settings/event"===e&&(t.eventSettingsVisible=!0,busy=!0),s.get(a.SERVER_APP_PATH+"/public/page?url="+encodeURIComponent(a.STATIC_URL+"/#"+e)).then(function(){}))})}]),mainApp.controller("SidebarCtrl",["$log","$scope","$rootScope","$location","isotopeService","auditService","filterService","$cookies","authService","auditFactory",function(e,t,n,i,r,o,a,s,l,u){var c=!1;function d(e){e?(angular.element(document.querySelector("#feedSubMenu")).slideDown("fast"),t.feedVisible=!0,t.stateFilter(StateEnum.ALL)):(t.feedVisible=!1,angular.element(document.querySelector("#feedSubMenu")).slideUp("fast"))}function p(){!c&&"/feed"===i.path()&&t.loggedIn&&(d(!0),c=!0,t.selectedTypeFilter=a.getTypeFilter(),t.selectedStateFilter=a.getStateFilter())}t.StateEnum=StateEnum,t.location=i,t.feedVisible=!1,t.userRoles=l.userRoles,t.accessLevels=l.accessLevels,t.state=a.getStateFilter,t.newCount=o.newCount,t.$on("$routeChangeSuccess",function(){p(),"/feed"!==i.path()?(t.selectedTypeFilter="",d(!1)):d(!0)}),n.$on("LOGGED_OUT",function(e){a.setStateFilter("")}
1),t.filter=function(e){t.selectedTypeFilter=e;var n=0;"/feed"!==i.path()&&(i.path("/feed"),n=500),a.setTypeFilter(e),"grid"===s.get("view")&&r.filter(e,n)},t.stateFilter=function(e){t.selectedStateFilter=e,"/feed"!==i.path()&&i.path("/feed"),a.getStateFilter()!==e&&(a.setStateFilter(e),u.reload(),r.removeAll(),r.init())},p()}]),mainApp.controller("UpdateEmailCtrl",["$log","$scope","$location","$rootScope","authService","userService",function(e,t,n,i,r,o){let a=!1;function s(){!a&&"/updateEmail"===n.path()&&t.loggedIn&&(t.user=r.user.details,a=!0)}t.error="",t.success="",i.$on("LOGGED_OUT",function(){a=!1,t.user={}}),s(),t.$on("$routeChangeSuccess",function(){s()}),t.updateEmail=function(){t.user.email&&0!==t.user.email.trim().length?(t.error="",o.updateEmail(t.user.email).then(function(){t.error="",t.success="Email address updated! You may need to log out and back in to have the changes take effect.",t.user={}},function(e){t.success="",t.error=e})):(t.success="",t.error="The email address cannot be empty")}}]),mainApp.controller("UpdatePasswordCtrl",["$log","$scope","authService",function(e,t,n){t.error="",t.success="",t.user={currentPassword:"",password:"",confirmPassword:""},t.updatePassword=function(){t.user.password!==t.user.confirmPassword?(t.success="",t.error="The new password and confirm password must match"):(t.error="",n.updatePassword(t.user).then(function(){t.error="",t.success="Password updated successfully",t.user={}},function(e){t.success="",t.error=e}))}}]),mainApp.factory("algorithmService",["$http","$log","$q","$rootScope","authService","ENV",function(e,t,n,i,r,o){return{saveLabeledAudits:function(t,r){var a=n.defer(),s=o.SERVER_APP_PATH+"/algorithms/"+r+"/labeled";return e.post(s,t).then(function(e){a.resolve(e.data)}).catch(function(e){a.reject(e.status),i.verifyAuth(e.status)}),a.promise},getLabeledAudits:function(t,r){var a=n.defer();return e({method:"get",url:o.SERVER_APP_PATH+"/algorithms/"+t+"/labeled",params:{auditIds:r}}).then(function(e){a.resolve(e.data)}).catch(function(e){a.reject(e.status),i.verifyAuth(e.status)}),a.promise},getUnlabeledAudits:function(t){n.defer();e({})},getTotalLabeledCount:function(t){return e.get(o.SERVER_APP_PATH+"/algorithms/user/"+t+"/labeled")},getNumPostsForModel:function(t){return e.get(o.SERVER_APP_PATH+"/algorithms/models/"+t+"/labeled")},getNumLabeledPostsNotInAnyModel:function(t){return e.get(o.SERVER_APP_PATH+"/algorithms/usecases/"+t+"/model/none/labeled")},setActiveModel:function(t,r){var a=n.defer(),s=o.SERVER_APP_PATH+"/algorithms/models/"+t+"/active";return e.put(s,r).then(function(e){a.resolve(e.data)}).catch(function(e){a.reject(e.status),i.verifyAuth(e.status)}),a.promise},addModel:function(t){var r=n.defer(),a=o.SERVER_APP_PATH+"/algorithms/models";return e.post(a,t).then(function(e){r.resolve(e.data)}).catch(function(e){r.reject(e.status),i.verifyAuth(e.status)}),r.promise},trainModel:function(t,r){var a=n.defer(),s=o.SERVER_APP_PATH+"/algorithms/usecases/"+r+"/models/"+t+"/train";return e({method:"post",url:s}).then(function(e){data?a.resolve(e.data):a.reject(e.status)}).catch(function(e){a.reject(e.status),i.verifyAuth(e.status)}),a.promise},getAlgorithmModels:function(){var t=n.defer(),r=o.SERVER_APP_PATH+"/algorithms/models";return e({method:"get",url:r}).then(function(e){t.resolve(e.data)}).catch(function(e){t.reject(e.status),i.verifyAuth(e.status)}),t.promise},updateModel:function(t){var r=n.defer(),a=o.SERVER_APP_PATH+"/algorithms/models/"+t.id;return e.put(a,t).then(function(e){r.resolve(e.data)}).catch(function(e){r.reject(e.status),i.verifyAuth(e.status)}),r.promise}}}]),mainApp.service("analyticsService",["$http","$q","$log","$rootScope","$cookies","filterService","ENV",function(e,t,n,i,r,o,a){var s=this;function l(){var e="UTC";try{e=Intl.DateTimeFormat().resolvedOptions().timeZone}catch(e){}var t="?tz="+e;return void 0!==o.begin().timestamp&&(t+="&begin="+o.begin().timestamp),void 0!==o.end().timestamp&&(t+="&end="+o.end().timestamp),t}return s.wordCounts=[],s.totalCount=0,s.missedPosts=0,s.positiveCount=0,s.neutralCount=0,s.negativeCount=0,s.positiveReach=0,s.neutralReach=0,s.negativeReach=0,{getAnalytics:function(n){var r=t.defer();return e({method:"get",url:a.SERVER_APP_PATH+"/analytics/groups/"+n+l(),params:o.currentFilters()}).then(function(e){r.resolve(e.data)}).catch(function(e){r.reject(e.status),i.verifyAuth(e.status)}),r.promise},getTotalPostCounts:function(n){var r=t.defer();return e({method:"get",url:a.SERVER_APP_PATH+"/analytics/groups/"+n+"/counts/total"+l(),params:o.currentFilters()}).then(function(e){r.resolve(e.data)}).catch(function(e){r.reject(e.status),i.verifyAuth(e.status)}),r.promise},getCountsPerDay:function(n){var r=t.defer();return e({method:"get",url:a.SERVER_APP_PATH+"/analytics/groups/"+n+"/counts/daily"+l(),params:o.currentFilters()}).then(function(e){r.resolve(e.data)}).catch(function(e){r.reject(e.status),i.verifyAuth(e.status)}),r.promise},getKeywordCounts:function(n){var r=t.defer();return e({method:"get",url:a.SERVER_APP_PATH+"/analytics/groups/"+n+"/counts/keywords"+l(),params:o.currentFilters()}).then(function(e){r.resolve(e.data)}).catch(function(e){r.reject(e.status),i.verifyAuth(e.status)}),r.promise},getSentiment:function(n){var r=t.defer();return e({method:"get",url:a.SERVER_APP_PATH+"/analytics/groups/"+n+"/counts/sentiments"+l(),params:o.currentFilters()}).then(function(e){r.resolve(e.data)}).catch(function(e){r.reject(e.status),i.verifyAuth(e.status)}),r.promise},getPeriodicSentiment:function(n){var r=t.defer();return e({method:"get",url:a.SERVER_APP_PATH+"/analytics/groups/"+n+"/counts/sentiments/periodic"+l(),params:o.currentFilters()}).then(function(e){r.resolve(e.data)}).catch(function(e){r.reject(e.status),i.verifyAuth(e.status)}),r.promise},getNotificationStats:function(n){var r=t.defer();return e({method:"get",url:a.SERVER_APP_PATH+"/analytics/groups/"+n+"/notification/count"+l()}).then(function(e){r.resolve(e.data)}).catch(function(e){r.reject(e.status),i.verifyAuth(e.status)}),r.promise},getHeatMapByDayOfWeek:function(n){var r=t.defer();return e({method:"get",url:a.SERVER_APP_PATH+"/analytics/groups/"+n+"/counts/heatMap/dayOfWeek"+l(),params:o.currentFilters()}).then(function(e){r.resolve(e.data)}).catch(function(e){r.reject(e.status),i.verifyAuth(e.status)}),r.promise},getMissedPostCounter:function(n){var r=t.defer();return e({method:"get",url:a.SERVER_APP_PATH+"/analytics/groups/"+n+"/counts/missingPosts"}).then(function(e){r.resolve(e.data)}).catch(function(e){r.reject(e.status),i.verifyAuth(e.status)}),r.promise},newKeyword:function(e,t){for(var n=0;n<s.wordCounts.length;n++){if(s.wordCounts[n].keyword==e)return}var i=null==t?0:t;this.updateWordCounts(e,i)},updateWordCounts:function(e,t){s.wordCounts.push({keyword:e,totalCount:t})},updatePieChart:function(e,t){},removeAudit:function(e){s.totalCount--,this.decrementSentiment(e.sentiment)},newAudit:function(e){s.totalCount++,this.incrementSentiment(e.sentiment)},incrementSentiment:function(e){e===SentimentEnum.positive?s.positiveCount++:e===SentimentEnum.neutral?s.neutralCount++:e===SentimentEnum.negative&&s.negativeCount++},decrementSentiment:function(e){e===SentimentEnum.positive?s.positiveCount--:e===SentimentEnum.neutral?s.neutralCount--:e===SentimentEnum.negative&&s.negativeCount--},setSentiment:function(e){null!=e.positive?(s.positiveCount=e.positive.count,s.positiveReach=e.positive.reach):(s.positiveCount=0,s.positiveReach=0),null!=e.neutral?(s.neutralCount=e.neutral.count,s.neutralReach=e.neutral.reach):(s.neutralCount=0,s.neutralReach=0),null!=e.negative?(s.negativeCount=e.negative.count,s.negativeReach=e.negative.reach):(s.negativeCount=0,s.negativeReach=0)},wordCounts:function(){return s.wordCounts},clearWordCounts:function(){s.wordCounts=[]},totalCount:function(e){return void 0!==e&&(s.totalCount=e),s.totalCount},missedPosts:function(e){return void 0!==e&&(s.missedPosts=e),s.missedPosts},positiveCount:function(){return s.positiveCount},neutralCount:function(){return s.neutralCount},negativeCount:function(){return s.negativeCount},positiveReach:function(){return s.positiveReach},neutralReach:function(){return s.neutralReach},negativeReach:function(){return s.negativeReach}}}]),mainApp.service("arcGisService",["$q","$http","$rootScope","ENV",function(e,t,n,i){var r,o,a={},s=!1,l={Map:"esri/map",FeatureLayer:"esri/layers/FeatureLayer",InfoTemplate:"esri/InfoTemplate",SimpleFillSymbol:"esri/symbols/SimpleFillSymbol",SimpleRenderer:"esri/renderers/SimpleRenderer",SimpleMarkerSymbol:"esri/symbols/SimpleMarkerSymbol",ScaleDependentRenderer:"esri/renderers/ScaleDependentRenderer",Color:"dojo/_base/Color",GraphicsLayer:"esri/layers/GraphicsLayer",GraphicsUtils:"esri/graphicsUtils",ClassBreaksRenderer:"esri/renderers/ClassBreaksRenderer",PictureMarkerSymbol:"esri/symbols/PictureMarkerSymbol",ClusterLayer:location.pathname.replace(/\/[^/]+$/,"")+"js/ClusterLayer.js",GeoJsonLayer:location.pathname.replace(/\/[^/]+$/,"")+"js/geojsonlayer.js",HeatmapLayer:location.pathname.replace(/\/[^/]+$/,"")+"js/heatmap-arcgis.js",Basemap:"esri/dijit/Basemap",BasemapLayer:"esri/dijit/BasemapLayer",OpenStreetMapLayer:"esri/layers/OpenStreetMapLayer",BasemapGallery:"esri/dijit/BasemapGallery",SimpleLineSymbol
1:"esri/symbols/SimpleLineSymbol",Search:"esri/dijit/Search",Draw:"esri/toolbars/draw",Polygon:"esri/geometry/Polygon",Point:"esri/geometry/Point",Graphic:"esri/graphic",webMercatorUtils:"esri/geometry/webMercatorUtils",SpatialReference:"esri/SpatialReference",Extent:"esri/geometry/Extent",Edit:"esri/toolbars/edit",event:"dojo/_base/event",OAuthInfo:"esri/arcgis/OAuthInfo",Portal:"esri/arcgis/Portal",IdentityManager:"esri/IdentityManager",Utils:"esri/arcgis/utils",LocateButton:"esri/dijit/LocateButton",Scalebar:"esri/dijit/Scalebar",Infographic:"esri/dijit/geoenrichment/Infographic",GeometryStudyArea:"esri/tasks/geoenrichment/GeometryStudyArea",InfographicsCarousel:"esri/dijit/geoenrichment/InfographicsCarousel",InfographicsOptions:"esri/dijit/geoenrichment/InfographicsOptions",LayerList:"esri/dijit/LayerList",Locator:"esri/tasks/locator",TimeExtent:"esri/TimeExtent"};return{saveLayers:function(n,r){var o=e.defer();return t({url:i.SERVER_APP_PATH+"/groups/"+n+"/settings/layers",method:"POST",data:JSON.stringify(r)}).then(function(e){o.resolve(!0)}).catch(function(){o.reject()}),o.promise},api:function(){var t=e.defer();if(s)t.resolve(a);else{var i=_.values(l),r=_.keys(l);require(i,function(){var e=arguments;_.each(r,function(t,n){a[t]=e[n]}),s=!0,n.$$phase||n.$apply(),t.resolve(a)})}return t.promise},isReady:function(){return s},getOauthInfo:function(){return null==r&&(r=new a.OAuthInfo({appId:i.ARCGIS_CLIENT_ID,popup:!0,response_type:"code"})),r},getLayers:function(){},isLoginActive:function(){var t=e.defer(),n=this;return a.IdentityManager.registerOAuthInfos([this.getOauthInfo()]),a.IdentityManager.checkSignInStatus(this.getOauthInfo().portalUrl+"/sharing").then(function(){!0,new a.Portal.Portal(n.getOauthInfo().portalUrl).signIn().then(function(e){o=e,t.resolve(o)}).otherwise(function(e){t.reject(e)})}).otherwise(function(){!1,t.reject(!1)}),t.promise},logout:function(){a.IdentityManager.destroyCredentials(),o=void 0,!1},login:function(){var t=e.defer(),n=this;return a.IdentityManager.getCredential(this.getOauthInfo().portalUrl+"/sharing",{oAuthPopupConfirmation:!1}).then(function(){new a.Portal.Portal(n.getOauthInfo().portalUrl).signIn().then(function(e){o=e,t.resolve(o)}).otherwise(function(e){t.reject(e)})},function(e){t.reject(e)}),t.promise},getFeatureServices:function(t){var n=e.defer(),i=(t.username,{q:"owner: "+o.username+' AND ((type:"Scene Service" OR type:"Feature Collection" OR type:"Route Layer" OR type:"Layer" OR type:"Explorer Layer" OR type:"Tile Package" OR type:"Vector Tile Package" OR type:"Scene Package" OR type:"Layer Package" OR type:"Feature Service" OR type:"Stream Service" OR type:"Map Service" OR type:"Vector Tile Service" OR type:"Image Service" OR typekeywords:"OGC" OR typekeywords:"Geodata Service" OR type:"Globe Service") -type:("Web Mapping Application" OR "Geodata Service")) ownerfolder:root -type:("Code Attachment") -typekeywords:("MapAreaPackage") -type:("Map Area")',sortField:"numViews",sortOrder:"desc",num:100});return o.portal.queryItems(i).then(function(e){n.resolve(e)},function(e){n.reject(e)}),n.promise},queryItems:function(){var t=e.defer();null==o&&t.reject();var n={q:"owner:"+o.username+" AND type: Web Map",sortField:"numViews",sortOrder:"desc",num:20};return o.portal.queryItems(n).then(function(e){t.resolve(e)},function(e){t.reject(e)}),t.promise}}}]);var busy=!1;mainApp.factory("auditFactory",["$filter","$log","$q","$http","$rootScope","$cookies","filterService","dateTimeService","isotopeService","ENV",function(e,t,n,i,r,o,a,s,l,u){var c=this;c.resetState=function(){c.audits=[],c.auditsBacklog=[],c.isInfiniteScroll=!1,c.requestSize=0,c.firstId=void 0,c.view=o.get("view")||"list",d={}},c.showNew=function(){document.getElementById("stream").scrollTop=0;for(var e=0;e<c.auditsBacklog.length;e++)f(c.auditsBacklog[e],!0);c.auditsBacklog.length=0,p()},c.removeWithOrigin=function(e){if(null!=e){for(var t=c.audits.length-1;t>=0;t--)c.audits[t].originId==e&&(c.audits.splice(t,1),0);c.audits.length<20&&(c.resetState(),v(a.getStateFilter(),!1))}},c.removeEvent=function(e){for(var t=0;t<c.audits.length;t++){var n=c.audits[t];if(null!=n.events)for(var i=0;i<n.events.length;i++){var r=n.events[i];if(r.id===e.id&&r.detected===e.detected){n.events.splice(i,1);break}}}},c.getNumLabeledAudits=function(e,t){var o=n.defer(),a="";return a=void 0===t?u.SERVER_APP_PATH+"/analytics/groups/"+c.group+"/counts/total?labeled="+e+"&socialPlatforms=instagram&socialPlatforms=twitter":u.SERVER_APP_PATH+"/analytics/groups/"+c.group+"/counts/total?labeled="+e+"&label="+t+"&socialPlatforms=instagram&socialPlatforms=twitter",i({method:"get",url:a}).then(function(e){o.resolve(e.data)}).catch(function(e){o.reject(e.status),r.verifyAuth(e.status)}),o.promise},c.getAlgorithmsAudits=function(e,t,o,a){var s,l=n.defer();return busy=!0,s=void 0===a?u.SERVER_APP_PATH+"/audits/groups/"+c.group+"?labeled="+o+"&count="+e+"&socialPlatforms=instagram&socialPlatforms=twitter"+(t?"&first="+t:""):u.SERVER_APP_PATH+"/audits/groups/"+c.group+"?labeled="+o+"&label="+a+"&c
1ount="+e+"&socialPlatforms=instagram&socialPlatforms=twitter"+(t?"&first="+t:""),i({method:"get",url:s}).then(function(e){busy=!1,l.resolve({data:e.data,nextStart:e.headers("Next-Start"),nextCount:e.headers("Next-Count"),prevStart:e.headers("Prev-Start")})}).catch(function(e){busy=!1,l.reject(e.status),r.verifyAuth(e.status)}),l.promise},c.resetState(),c.group="";var d={};function p(){setTimeout(function(){l.reloadAndRelayout(),l.sort()},100)}function g(e){for(var t=0;t<c.audits.length;t++)if(c.audits[t].id===e)return{audit:c.audits[t],index:t};throw"getAuditWithId: unable to find audit with id "+e}function f(e,t){var n;if(d[e.id])if(e.type==TypeEnum.TEXT){if((n=g(e.id).audit).textMessages.length<e.textMessages.length){for(var i=n.textMessages.length;i<e.textMessages.length;i++){var o=e.textMessages[i].date,a=s.convertTimestamp(o);e.textMessages[i].date=a.string,e.textMessages[i].orderableDate=a.timestamp,e.textMessages[i].logicalDate=a.logical,n.textMessages.push(e.textMessages[i])}var l=n.textMessages[n.textMessages.length-1];n.orderableDate=l.orderableDate,n.date=l.date,n.logicalDate=l.logicalDate,p(),r.$$phase||r.$apply()}}else if(e.type==TypeEnum.TWITTER&&"DIRECT_MESSAGE"==e.subType){if((n=g(e.id).audit).twitterDirectMessages.length<e.twitterDirectMessages.length){for(i=n.twitterDirectMessages.length;i<e.twitterDirectMessages.length;i++){o=e.twitterDirectMessages[i].date,a=s.convertTimestamp(o);e.twitterDirectMessages[i].date=a.string,e.twitterDirectMessages[i].orderableDate=a.timestamp,e.twitterDirectMessages[i].logicalDate=a.logical,n.twitterDirectMessages.push(e.twitterDirectMessages[i])}var u=n.twitterDirectMessages[n.twitterDirectMessages.length-1];n.orderableDate=u.orderableDate,n.date=u.date,n.logicalDate=u.logicalDate,p(),r.$$phase||r.$apply()}}else e.type==TypeEnum.MOBILE_APP&&e.imageUrl&&((n=arrItems[e.id]).imageUrl=e.imageUrl,r.$$phase||r.$apply());else{var f=window.pageYOffset||document.getElementById("stream").scrollTop,m=$("#stream").is(":visible");if(!t&&(!m||0!=f||c.auditsBacklog.length>0))return c.auditsBacklog.push(e),void(r.$$phase||r.$apply());a=s.convertTimestamp(e.date);if(e.orderableDate=a.timestamp,e.date=a.string,e.logicalDate=a.logical,e.type==TypeEnum.TEXT&&null!=e.textMessages)for(i=0;i<e.textMessages.length;i++){a=s.convertTimestamp(e.textMessages[i].date);e.textMessages[i].date=a.string,e.textMessages[i].logicalDate=a.logical,e.textMessages[i].orderableDate=a.timestamp}c.audits.push(e),d[e.id]=!0,r.$$phase||r.$apply()}}function m(e,t,o,a){var s=n.defer();return i({method:"get",url:e(),params:t(o)}).then(function(e){void 0!==a&&a(e.data,e.status,e.headers,e.config),s.resolve(e.data)}).catch(function(e){s.reject(e.status),r.verifyAuth(e.status),busy=!1}),s.promise}function v(e,t){if(!c.isInfiniteScroll)if(busy||""==c.group)c.isInfiniteScroll=!1;else{if(c.isInfiniteScroll=!0,null!=t&&!t)return busy=!0,m(function(){return c.requestSize="list"==c.view?40:20,u.SERVER_APP_PATH+"/audits/groups/"+c.group+"?count="+c.requestSize+(null==c.firstId?"":"&first="+c.firstId)},a.currentFilters,!1,function(e,t,n,i){c.firstId=n("Next-Start");for(var r=0;r<e.length;r++)f(e[r],!0);p(),setTimeout(function(){c.isInfiniteScroll=!1},2e3),(e.length<c.requestSize||0==parseInt(c.firstId))&&(c.firstId=void 0),busy=!1});c.isInfiniteScroll=!1}}return{audits:function(){return resizeStream(),e("auditSearch")(c.audits)},auditBacklog:function(){return c.auditsBacklog},requestNextPage:function(e,t){v(0,t)},setGroup:function(e){c.group=e},clearGroup:function(){c.group="",c.resetState()},reset:c.resetState,reload:function(){c.resetState(),l.init(),v(a.getStateFilter(),!1)},isBusy:function(){return busy},showNew:c.showNew,addAudit:function(e,t){f(e,t)},removeAudit:function(e){!function(e){if(d[e.id]){d[e.id]=void 0;var t=g(e.id);c.audits.splice(t.index,1)}}(e)},getCurrentFilters:function(){return a.currentFilters(!1)},getAuditsForMap:function(){return m(function(){return u.SERVER_APP_PATH+"/audits/groups/"+c.group+"?count=500&location=true&skip=FEED&skip=RETWEET&skip=SENT"},a.currentFilters,!0)},removeWithOrigin:c.removeWithOrigin,removeEvent:c.removeEvent,getAlgorithmsAudits:c.getAlgorithmsAudits,getNumLabeledAudits:c.getNumLabeledAudits}}]),mainApp.service("auditService",["$compile","$http","$log","$q","$rootScope","$location","$anchorScroll","dateTimeService","isotopeService","$filter","$t
1imeout","facebookService","$cookies","userService","filterService","auditFactory","authService","ENV",function(e,t,n,i,r,o,a,s,l,u,c,d,p,g,f,m,v,h){var y=this,S="";return y.newAuditsCount=void 0,y.newCountNeedsRefresh=!0,{processCallFromDashboard:function(e){m.setGroup(e),o.path("/feed"),m.reload()},markAllAsSeen:function(e){var n=i.defer(),o=m.getCurrentFilters();return t.post(h.SERVER_APP_PATH+"/audits/groups/"+e+"/seen",o).then(function(e){n.resolve(e.data),y.newCountNeedsRefresh=!0,m.reload()}).catch(function(e){n.reject(e.status),r.verifyAuth(e.status)}),n.promise},getWeatherData:function(e){var n=i.defer();return t.get(h.SERVER_APP_PATH+"/audits/"+e+"/weather").then(function(e){n.resolve(e.data)}).catch(function(e){n.reject(e.status),r.verifyAuth(e.status)}),n.promise},updateState:function(e,n){y.newCountNeedsRefresh=!0;for(var o=[],a=0;a<e.length;a++)o.push(e[a].id);var s=i.defer(),l=h.SERVER_APP_PATH+"/audits/groups/"+S+"/state/"+n;return t.post(l,o).then(function(t){if(!0===t.data){s.resolve();for(var i=0;i<e.length;i++)e[i].state=n,m.addAudit(e[i],!0),m.removeAudit(e[i])}else s.reject(status)}).catch(function(e){s.reject(e.status),r.verifyAuth(e.status)}),s.promise},newCount:function(){var e,n;return y.newCountNeedsRefresh&&null!=S&&""!=S&&(y.newCountNeedsRefresh=!1,(e=i.defer(),n=h.SERVER_APP_PATH+"/audits/groups/"+S+"/count/"+StateEnum.NEW,t.get(n).then(function(t){e.resolve(t.data)}).catch(function(t){e.reject(t.status),r.verifyAuth(t.status)}),e.promise).then(function(e){y.newAuditsCount=e})),y.newAuditsCount},renameText:function(e,n){var o=i.defer(),a=h.SERVER_APP_PATH+"/audits/"+e+"/textRename";return t.post(a,n).then(function(e){!0===e.data?o.resolve():o.reject()}).catch(function(e){o.reject(e.status),r.verifyAuth(e.status)}),o.promise},updateSentiment:function(e,n){var o=i.defer(),a=h.SERVER_APP_PATH+"/audits/"+e+"/sentiment";return t.post(a,n).then(function(e){!0===e.data?o.resolve():o.reject()}).catch(function(e){o.reject(e.status),r.verifyAuth(e.status)}),o.promise},updateVisibility:function(e,n){var o=i.defer(),a=h.SERVER_APP_PATH+"/audits/"+e+"/visibility";return t.post(a,n).then(function(e){null!=e.data&&""!==e.data?o.resolve(e.data):o.reject()}).catch(function(e){o.reject(e.status),r.verifyAuth(e.status)}),o.promise},updateLocation:function(e,n,o,a,s){var l=i.defer(),u={latitude:n,longitude:o,locationType:a,locationDetails:s},c=h.SERVER_APP_PATH+"/audits/"+e+"/location";return t.post(c,u).then(function(e){null!=e.data?l.resolve(e.data):l.reject()}).catch(function(e){l.reject(e.status),r.verifyAuth(e.status)}),l.promise},addEventsToAudit:function(e,n,o){var a=i.defer(),s=h.SERVER_APP_PATH+"/audits/"+e+"/events"+(o?"/detected":"");return t.post(s,n).then(function(e){!0===e.data?a.resolve():a.reject()}).catch(function(e){a.reject(e.status),r.verifyAuth(e.status)}),a.promise},translate:function(e){var n=i.defer(),o=h.SERVER_APP_PATH+"/translate";return t.post(o,e).then(function(e){null==e.data||e.data.length<=0?n.reject():n.resolve(data)}).catch(function(e){n.reject(e.status),r.verifyAuth(e.status)}),n.promise},getLocationFromW3w:function(e){var t=i.defer(),n="https://api.what3words.com/v2/forward?key=GVQIFZQK&addr="+e;return $.getJSON(n,function(e){null==e.data||e.data.length<=0||null==e.data.geometry?t.reject():t.resolve(data.words)}).catch(function(e){t.reject(e.status),r.verifyAuth(e.status)}),t.promise},getW3wWords:function(e,t){var n=i.defer(),o="https://api.what3words.com/v2/reverse?coords="+e+","+t+"&key=GVQIFZQK";return $.getJSON(o,function(e){null==e.data||e.data.length<=0||null==e.data.words?n.reject():n.resolve(data.words)}).catch(function(e){n.reject(e.status),r.verifyAuth(e.status)}),n.promise},benchmarkSearchCount:function(e){var t=m.audits().length;f.searchTerm(e),t>0&&$(".isotopeitem").length<30&&m.requestNextPage(f.getStateFilter(),!1)},setGroup:function(e){S=e,m.setGroup(S),""==S&&m.clearGroup()},uploadAudit:function(e){t.post(h.SERVER_APP_PATH+"/audits",e)}}}]),mainApp.factory("authService",["$log","$rootScope","$http","$cookies","$q","$location","auditFactory","$uibModal","dateTimeService","ENV",function(e,t,n,i,r,o,a,s,l,u){var c=routingConfig.accessLevels,d=routingConfig.userRoles,p=i.getObject("user")||{details:{},role:d.public};function g(e){_.extend(p,e)}return{authorize:function(e,t){return void 0===t&&(t=p.role),e.bitMask&t.bitMask},isLoggedIn:function(){if(void 0===i.getObject("user"))return!1;var e=i.getObject("user");return-1!==[d.readOnly.title,d.labeler.title,d.admin.title,d.demo.title,d.superuser.title,d.general.title,d.video.title].indexOf(e.role.title)},deleteAccount:function(e,t,i){n.delete(u.SERVER_APP_PATH+"/users/"+e).then(function(e){t(e.data)}).catch(function(e){i(e.data)})},login:function(e,r,o){const s=u.SERVER_APP_PATH+"/users/authenticate";n.post(s,{username:e.username,password:e.password}).then(function(e){const o=e.data,s={details:{id:o.id,username:o.username,email:o.email,group:o.group,token:o.token},role:{bitMask:o.bitMask,title:o.title}};t.sessionTimeout=!1,n.defaults.headers.common["X-Auth-Token"]=o.token,t.loggedIn=!0,g(s),r(s);var l=new Date;l.setHours(l.getHours()+8),i.putObject("user",s,{expires:l,samesite:"lax"}),t.$broadcast("LOGGED_IN",s),a.setGroup(o.group)}).catch(function(e){o()})},logout:function(e,r,s){i.remove("user"),g({details:{},role:d.public}),a.clearGroup(),t.loggedIn=!1,delete n.defaults.headers.common["X-Auth-Token"],t.$broadcast("LOGGED_OUT"),void 0!==r&&r(),o.path("/login")},updatePassword:function(e){var t=r.defer();return n.post(u.SERVER_APP_PATH+"/users/update",{username:i.getObject("user").details.username,currentPassword:e.currentPassword,newPassword:e.password}).then(function(e){var r={details:{username:e.data.username,email:e.data.email,group:e.data.group,token:e.data.token,id:e.data.id},role:{bitMask:e.data.bitMask,title:e.data.title}};g(r);var o=new Date;o.setHours(o.getHours()+8),i.putObject("user",r,{expires:o,samesite:"lax"}),n.defaults.headers.common["X-Auth-Token"]=e.data.token,t.resolve()}).catch(function(e){t.reject(e.data.msg)}
1),t.promise},user:p,accessLevels:c,userRoles:d}}]),mainApp.controller("ReleaseNotesModalCtrl",["$scope","$uibModalInstance","dateTimeService",function(e,t,n){e.dateTimeService=n,e.ok=function(){t.dismiss("cancel")}}]),mainApp.factory("dateTimeService",["$log",function(e){Date.prototype.monthNames=["January","February","March","April","May","June","July","August","September","October","November","December"],Date.prototype.getMonthName=function(){return this.monthNames[this.getMonth()]},Date.prototype.getShortMonthName=function(){if(void 0!==this.getMonthName())return this.getMonthName().substr(0,3)};var t=function(e){var t=function(e,t){return(1e15+e+"").slice(-t)},n=new Date;if(new Date(e).setHours(0,0,0,0)==n.setHours(0,0,0,0)){var i=e.getHours()%12,r=0==i?12:i,o=e.getHours()>=12?" PM":" AM";return t(r,2)+":"+t(e.getMinutes(),2)+o}return e.getShortMonthName()+" "+t(e.getDate(),2)+(n.getFullYear()==e.getFullYear()?"":" "+e.getFullYear())};function n(e){var t;switch(e){case 0:t="SUN";break;case 1:t="MON";break;case 2:t="TUE";break;case 3:t="WED";break;case 4:t="THU";break;case 5:t="FRI";break;case 6:t="SAT"}return t}return{convertTimestamp:function(e){var n,i,r,o,a=null==e?new Date:new Date(Date.parse(e));return{string:(n=a,i=function(e,t){return(1e15+e+"").slice(-t)},r=0==(r=n.getHours()%12)?12:r,o=n.getHours()>=12?" PM":" AM",i(r,2)+":"+i(n.getMinutes(),2)+o+" "+n.getShortMonthName()+" "+i(n.getDate(),2)+", "+n.getFullYear()),logical:t(a),timestamp:a.getTime()}},logicalDate:function(e){var n=null==e?new Date:new Date(e);return t(n)},fullLogicalDate:function(e){return null==e?"":function(e){var t=function(e,t){return(1e15+e+"").slice(-t)},i=new Date,r=n(e.getDay()),o=e.getHours()%12,a=0==o?12:o,s=e.getHours()>=12?" PM":" AM";return r+", "+e.getShortMonthName().toUpperCase()+" "+t(e.getDate(),2)+(i.getFullYear()==e.getFullYear()?"":" "+e.getFullYear())+" "+t(a,2)+":"+t(e.getMinutes(),2)+s}(new Date(e))},getMonthDayYear:function(e){var t=new Date(e);return t.getShortMonthName()+" "+(1e15+t.getDate()+"").slice(-2)+", "+t.getFullYear()},get24HourTime:function(e){var t=new Date(e);return t.getHours()+":"+(1e15+t.getMinutes()+"").slice(-2)},generateUTCDateString:function(e){return function(e){var t=function(e,t){return(1e15+e+"").slice(-t)},i=new Date(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds());return n(i.getDay())+" "+i.getShortMonthName()+" "+t(i.getDate(),2)+" "+t(i.getHours(),2)+":"+t(i.getMinutes(),2)+":"+t(i.getSeconds(),2)+" UTC "+i.getFullYear()}(e)},addCommas:function(e){return e?e.toString().replace(/\B(?=(\d{3})+(?!\d))/g,","):0}}}]),mainApp.service("eventsService",["$http","$q","$log","$rootScope","authService","filterService","ENV",function(e,t,n,i,r,o,a){var s,l,u=[],c={},d={},p=[],g=[{title:"OUTAGE"},{title:"CREW",defaultIcon:"star_crew.svg"},{title:"EMERGENCY_AID",defaultIcon:"emergency_services.svg"},{title:"GAS_LEAK",defaultIcon:"gas_leak.svg"},{title:"TREE_TRIMMING",defaultIcon:"tree_trimming.svg"},{title:"CAR_ACCIDENT",defaultIcon:"car_accident.svg"},{title:"STRUCTURE_FIRE",defaultIcon:"fire.svg"},{title:"LOW_TEMPS",defaultIcon:"dc_outage_icons_cold.svg"},{title:"HIGH_TEMPS",defaultIcon:"dc_outage_icons_hot.svg"},{title:"ROAD_CLOSURE",defaultIcon:"road_closure.svg"},{title:"ROAD_OPEN",defaultIcon:"road_open.svg"},{title:"DIGGING",defaultIcon:"excavation.svg"},{title:"CONSTRUCTION",defaultIcon:"construction.svg"},{title:"MAINTENANCE",defaultIcon:"construction.svg"},{title:"DO_NOT_DRINK",defaultIcon:"water_do_not_drink.svg"},{title:"BOIL_WATER_ADVISORY",defaultIcon:"water_boil_advisory.svg"},{title:"HYDRANT_FLUSHING",defaultIcon:"water_hydrant_flush.svg"},{title:"UNPLANNED_OUTAGE",defaultIcon:"water_outage_unplanned.svg"},{title:"PLANNED_OUTAGE",defaultIcon:"PLANNED_OUTAGE.svg"},{title:"WATER_MAIN_BREAK",defaultIcon:"water_main_break.svg"},{title:"INTERNET_OUTAGE",defaultIcon:"cable_internet_outage.svg"},{title:"PHONE_OUTAGE",defaultIcon:"cable_phone_outage.svg"},{title:"CABLE_TV_OUTAGE",defaultIcon:"cable_tv_outage.svg"},{title:"REPORTED_OUTAGES",defaultIcon:"heatmap.png"},{title:"OTHER"}];let f=function(n){let i=t.defer(),r="?inProgress=false";return null!=o.begin().timestamp&&(r+="&fromDate="+o.begin().timestamp),null!=o.end().timestamp&&(r+="&toDate="+o.end().timestamp),e({url:a.SERVER_APP_PATH+"/events/"+n+r,method:"GET"}).then(function(e){i.resolve(e.data)}).catch(function(e){i.reject(e.status)}),i.promise};var m={events:function(e){return void 0!==e?u[e]:u},eventMetrics:function(e){var t=!0===e.detected;if(t in c&&e.id in c[t])return c[t][e.id].metric},addPostToEvent:function(e){var t=!0===e.detected;void 0===c[t][e.id]&&(c[t][e.id]={metric:{totalCount:0}}),c[t][e.id].metric.totalCount++},removePostFromEvent:function(e){var t=!0===e.detected;void 0!==c[t][e.id]&&c[t][e.id].metric.totalCount--},bulkSelfReportAction:function(n,o){let s=t.defer(),l="?timezone="+Intl.DateTimeFormat().resolvedOptions().timeZone;return e({url:a.SERVER_APP_PATH+"/events/"+r.user.details.group+"/events/self-report/"+n+l,method:"POST",headers:{"Content-Type":"application/json"},data:o}
1).then(function(e){"resolve"===n?o.forEach(e=>{const t=u.findIndex(t=>t.id===e);-1!==t&&u.splice(t,1)}):"export"===n&&window.open(e.data.result,"_blank"),s.resolve()}).catch(function(e,t){s.reject(),i.verifyAuth(t)}),s.promise},removeEvent:function(n){var o=r.user.details.group,s=t.defer();return e({url:a.SERVER_APP_PATH+"/events/"+o+"/events/"+n.id,method:"DELETE",headers:{"Content-Type":"application/json"}}).then(function(e){e.data?(u.splice(u.indexOf(n),1),s.resolve(e.data)):s.reject()}).catch(function(e){s.reject(e.status),i.verifyAuth(e.status)}),s.promise},addEvent:function(n){var o=r.user.details.group;delete n.tempIconUrl,delete n.polygon,n.manual=!0;var s=t.defer();return e({url:a.SERVER_APP_PATH+"/events/"+o,method:"POST",data:n,headers:{"Content-Type":"application/json"}}).then(function(e){u.push(e.data),s.resolve(e.data)}).catch(function(e){s.reject(e.status),i.verifyAuth(e.status)}),s.promise},replaceEvent:function(e){for(var t=0;t<u.length;t++)if(u[t].id===e.id&&u[t].detected===e.detected){u[t]=e;break}},updateEvent:function(n){var o=r.user.details.group;delete n.tempIconUrl;var s,l=t.defer();return void 0!==n.polygon&&(s=n.polygon,delete n.polygon),e({url:a.SERVER_APP_PATH+"/events/"+o,method:"PUT",data:n,headers:{"Content-Type":"application/json"}}).then(function(e){const t=e.data;m.replaceEvent(t),void 0!==s&&(t.polygon=s),l.resolve(t)}).catch(function(e){l.reject(e.status),i.verifyAuth(e.status)}),l.promise},clearEvents:function(){u=[],c={}},getEvents:function(){var e=t.defer();if(0!==Object.keys(u).length)e.resolve(u);else{var n=r.user.details.group;t.all([f(n)]).then(function(t){var n=[],i=[],r=[];if(void 0!==t[0]){for(var o=t[0],a=0;a<o.length;a++)i.push(o[a].id);n=n.concat(o)}u=n,e.resolve(u),setTimeout(function(){m.getEventMetrics(i,r)},1e3)},function(t,n){e.reject(t),i.verifyAuth(n)})}return e.promise},getEventImages:function(n){var i=t.defer();return e({url:a.SERVER_APP_PATH+"/events/eventImages/"+n,method:"GET"}).then(function(e){i.resolve(e.data)}).catch(function(e){i.reject(e.status)}),i.promise},updateOutageEventSettings:function(n){var o=r.user.details.group,s=t.defer();return e({url:a.SERVER_APP_PATH+"/events/"+o+"/settings/outage",method:"POST",data:n,headers:{"Content-Type":"application/json"}}).then(function(e){d.outageMapIcons=e.data,s.resolve(e.data)}).catch(function(e){s.reject(e.status),i.verifyAuth(e.status)}),s.promise},updatePhoneNumberSettings:function(n){var o=r.user.details.group,s=t.defer();return e({url:a.SERVER_APP_PATH+"/events/"+o+"/settings/phone",method:"POST",data:n,headers:{"Content-Type":"application/json"}}).then(function(e){d.phoneNumberSettings=e.data,s.resolve(e.data)}).catch(function(e){s.reject(e.status),i.verifyAuth(e.status)}),s.promise},updateStatusIconSettings:function(n){var o=r.user.details.group,s=t.defer();return e({url:a.SERVER_APP_PATH+"/events/"+o+"/settings/status",method:"POST",data:n,headers:{"Content-Type":"application/json"}}).then(function(e){d.statusIconSettings=e.data,s.resolve(e.data)}).catch(function(e){s.reject(e.status),i.verifyAuth(e.status)}),s.promise},updateEventTerritorySettings:function(n){var o=r.user.details.group;if(!n)return this.removeEventTerritorySettings();var s=t.defer();return e({url:a.SERVER_APP_PATH+"/events/"+o+"/settings/territory/"+n,method:"POST",headers:{"Content-Type":"application/json"}}).then(function(e){s.resolve(e.data)}).catch(function(e){s.reject(e.status),i.verifyAuth(e.status)}),s.promise},removeEventTerritorySettings:function(){var n=r.user.details.group,o=t.defer();return e({url:a.SERVER_APP_PATH+"/events/"+n+"/settings/territory",method:"DELETE",headers:{"Content-Type":"application/json"}}).then(function(e){o.resolve(e.data)}).catch(function(e){o.reject(e.status),i.verifyAuth(e.status)}),o.promise},getEventTypesWithIcons:function(){var e=["OUTAGE","OTHER"],t=this.getOtherMapIcons();if(null!=t)for(var n=0;n<t.length;n++){var i=t[n];e.push(i.name)}return e},getEventTypesWithNoIcon:function(){if(null==g||null==this.getOtherMapIcons())return"";for(var e=[],t=0;t<g.length;t++)e.push(g[t].title);var n=this.getOtherMapIcons();for(t=0;t<n.length;t++)for(var i=n[t],r=0;r<e.length;r++)if(e[r]==i.name){e.splice(r,1);break}return e},updateEventIconSettings:function(n){var o=r.user.details.group,s=t.defer();return e({url:a.SERVER_APP_PATH+"/events/"+o+"/settings/other",method:"POST",data:n,headers:{"Content-Type":"application/json"}}).then(function(e){d.otherMapIcons=e.data,s.resolve(e.data)}).catch(function(e){s.reject(e.status),i.verifyAuth(e.status)}),s.promise},updateTerritoryVisibility:function(n){var o=r.user.details.group,s=t.defer();return e({url:a.SERVER_APP_PATH+"/events/"+o+"/settings/territory/visibility",method:"POST",data:n,headers:{"Content-Type":"application/json"}}).then(function(e){d.hideTerritory=e.data,s.resolve(e.data)}).catch(function(e){s.reject(e.status),i.verifyAuth(e.status)}),s.promise},updateOtherLegendVisibility:function(n){var o=r.user.details.group,s=t.defer();return e({url:a.SERVER_APP_PATH+"/events/"+o+"/settings/legends/other",method:"POST",data:n,headers:{"Content-Type":"application/json"}}).then(function(e){d.hideOtherMapIcons=e.data,s.resolve(e.data)}).catch(function(e){s.reject(e.status),i.verifyAuth(e.status)}),s.promise},updateOutageLegendVisibility:function(n){var o=r.user.details.group,s=t.defer();return e({url:a.SERVER_APP_PATH+"/events/"+o+"/settings/legends/outage",method:"POST",data:n,headers:{"Content-Type":"application/json"}}).then(function(e){d.hideOutageMapIcons=e.data,s.resolve(e.data)}).catch(function(e){s.reject(e.status),i.verifyAuth(e.status)}),s.promise},enableReportProblem:function(n){var o=r.user.details.group,s=t.defer();return e({url:a.SERVER_APP_PATH+"/events/"+o+"/settings/report",method:"POST",data:n,headers:{"Content-Type":"application/json"}}).then(function(e){d.reportProblemEnabled=e.data,s.resolve(e.data)}).catch(function(e){s.reject(e.status),i.verifyAuth(e.status)}),s.promise},reportProblemAutoPublic:function(n){var o=r.user.details.group,s=t.defer();return e({url:a.SERVER_APP_PATH+"/events/"+o+"/settings/report/auto",method:"POST",data:n,headers:{"Content-Type":"application/json"}}).then(function(e){d.reportProblemAutoPublic=e.data,s.resolve(e.data)}).catch(function(e){s.reject(e.status),i.verifyAuth(e.status)}),s.promise},enableSubscription:function(n){var o=r.user.details.group,s=t.defer();return e({url:a.SERVER_APP_PATH+"/events/"+o+"/settings/subscription",method:"POST",data:n,headers:{"Content-Type":"application/json"}}).then(function(e){d.subscriptionEnabled=e.data,s.resolve(e.data)}).catch(function(e){s.reject(e.status),i.verifyAuth(e.status)}),s.promise},setEventClustering:function(n){let o=t.defer();return e({url:a.SERVER_APP_PATH+"/events/"+r.user.details.group+"/settings/clustering",method:"POST",data:n,headers:{"Content-Type":"application/json"}}).then(function(e){o.resolve(e.data)}).catch(function(e){o.reject(e.status),i.verifyAuth(e.status)}),o.promise},refreshArcGisAccounts:function(){var n=r.user.details.group,i=t.defer();return e.get(a.SERVER_APP_PATH+"/events/"+n+"/settings").then(function(e){const t=e.data;var n=t.arcGISTokens;d=t,i.resolve(n)},function(e){i.reject(e.data)}),i.promise},clearEventSettingsCache:()=>{d={}},getEventSettings:function(){var n=r.user.details.group,i=t.defer();return 0!==Object.keys(d).length?i.resolve(d):e.get(a.SERVER_APP_PATH+"/events/"+n+"/settings").then(function(e){null==(d=e.data)&&(d={}),null==d.otherMapIcons&&(d.otherMapIcons=[]),i.resolve(d)},function(e){i.reject(e.data)}),i.promise},getEventById:function(e,t){for(var n=0;n<u.length;n++)if(u[n].id===e&&u[n].detected===t)return u[n]},getEventByIndex:function(e){return u[e]},getEventMetrics:function(n,i){var r=t.defer();return e.post(a.SERVER_APP_PATH+"/events/metrics",{false:n,true:i}).then(function(e){r.resolve(e.data),c=e.data},function(e){r.reject(e.data)}),r.promise},reply:function(n,r){var o=t.defer();return e({url:a.SERVER_APP_PATH+"/events/"+u[n].id+"/reply/sms",method:"POST",data:r,headers:{"Content-Type":"application/json"}}).then(function(){o.resolve()}).catch(function(e){var t="Unable to send SMS to all posts in the event";400===e.status&&(t="The event has no SMS posts"),o.reject(t),i.verifyAuth(e.status)}),o.promise},updateState:function(n,r){var o=t.defer();return e({url:a.SERVER_APP_PATH+"/events/"+u[n].id+"/state/"+r,method:"PUT",headers:{"Content-Type":"application/json"}}).then(function(){o.resolve()}).catch(function(e){o.reject(e.status),i.verifyAuth(e.status)}),o.promise},removeUnderscore:function(e){if(null!=e)return e.replace(/_/g," ")},removeAudit:function(n,i,r){var o=n.map(function(t){return e({url:a.SERVER_APP_PATH+"/events/"+t+"/audits/"+i.id+(r?"/detected":""),method:"DELETE",headers:{"Content-Type":"application/json"}})});return t.all(o)},stageForEdit:function(e){s=e},doneEditingEvent:function(){s=void 0},getEventToEdit:function(){return s},getLocationForNewEvent:function(){return l},setLocationForNewEvent:function(e){l=e},setPolygonForNewEvent:function(e){p.push(e)},getPolygonsForNewEvent:function(){var e=angular.copy(p);return p=[],e},getFullImagePath:function(e){if(""===e)return" ";var t=window.location;return t.protocol+"//"+t.host+"/img/map/"+e},iconNameList:[["circle_small.svg",0,0],["square_medium.svg",0,0],["triangle_large.svg",0,0],["event.svg",0,0],["polygon_multiple.svg",0,0],["facebook.svg",0,0],["instagram.svg",0,0],["twitter.svg",0,0],["youtube.svg",0,0],["sms.svg",0,0],["camera.png",0,0],["star_crew.svg",0,0],["app_users.svg",0,0],["emergency_services.svg",0,0],["fire.svg",0,0],["dc_outage_icons_cold.svg",0,0],["dc_outage_icons_hot.
1svg",0,0],["gas_leak.svg",0,0],["outage.svg",0,0],["outage_true.svg",0,0],["outage_planned.svg",0,0],["outage_planned_green.svg",0,0],["outage_planned_K.svg",0,0],["outage_planned_red.svg",0,0],["police.svg",0,0],["car_accident.svg",0,0],["road_accident.svg",0,0],["road_closure.svg",0,0],["road_open.svg",0,0],["paving.svg",0,0],["excavation.svg",0,0],["construction.svg",0,0],["tree_trimming.svg",0,0],["water_boil_advisory.svg",0,0],["water_do_not_drink.svg",0,0],["water_hydrant_flush.svg",0,0],["water_main_break.svg",0,0],["water_outage_planned.svg",0,0],["water_outage_unplanned.svg",0,0],["cable_internet_outage.svg",0,0],["cable_phone_outage.svg",0,0],["cable_tv_outage.svg",0,0],["user_report.png",0,0],["za.svg",0,0],["red-pin.png",0,11],["google_pin.png",0,12],["ev_station.svg",0,0],["solar_array.svg",0,0],["heatmap.png",0,0]],otherMapIconList:g,getDefaultMapIconUrl:function(e){for(var t=0;t<g.length;t++)if(e==g[t].title)return this.getFullImagePath(g[t].defaultIcon)},getDefaultPhoneIconUrl:function(){return this.getFullImagePath("sms.svg")},getMapIconUrl:function(e){var n=t.defer(),i=this;return null==d.otherMapIcons?this.getEventSettings().then(function(t){n.resolve(i.getOtherMapIcon(e))}):n.resolve(i.getOtherMapIcon(e)),n.promise},getOtherMapIcon:function(e){for(var t=0;t<d.otherMapIcons.length;t++){var n=d.otherMapIcons[t];if(e===n.name)return n}},getOtherMapIcons:function(){return d.otherMapIcons},getOutageMapIcons:function(){return null==d.outageMapIcons&&(d.outageMapIcons={}),d.outageMapIcons},getOutageEventSettings:function(){var e=t.defer();return null==d.outageMapIcons?this.getEventSettings().then(function(t){e.resolve(t.outageMapIcons)}):e.resolve(d.outageMapIcons),e.promise}};return m}]),mainApp.service("facebookService",["$compile","$http","$log","$q","authService","ENV",function(e,t,n,i,r,o){var a=void 0,s="",l=void 0,u=!1,c=void 0,d=!1,p={addPageAccessToken:function(e,n,a){var s=i.defer();return t({url:o.SERVER_APP_PATH+"/facebook/groups/"+r.user.details.group+"/accessToken",method:"POST",params:{pageAccessToken:e,pageId:n,pageName:a},headers:{"Content-Type":"application/json"}}).then(function(e){s.resolve(e.data)}).catch(function(){s.reject()}),s.promise},sendComment:function(e,n){var a=i.defer();return t({url:o.SERVER_APP_PATH+"/facebook/groups/"+r.user.details.group+"/sendComment",method:"POST",params:{auditId:e,comment:n},headers:{"Content-Type":"application/json"}}).then(function(e){a.resolve(e.data)}).catch(function(){a.reject()}),a.promise},sendMessage:function(e,n){var a=i.defer();return t({url:o.SERVER_APP_PATH+"/facebook/groups/"+r.user.details.group+"/sendMessage",method:"POST",params:{auditId:e,message:n},headers:{"Content-Type":"application/json"}}).then(function(e){a.resolve(e.data)}).catch(function(){a.reject()}),a.promise},fbLogOut:function(){var e=i.defer();return t({url:o.SERVER_APP_PATH+"/facebook/groups/"+r.user.details.group+"/logout",method:"POST",headers:{"Content-Type":"application/json"}}).then(function(t){a=!1,e.resolve(t.data)}),e.promise},authenticate:function(){var e=i.defer();return t({url:o.SERVER_APP_PATH+"/facebook/groups/"+r.user.details.group+"/status",method:"GET",headers:{"Content-Type":"application/json"}}).then(function(t){const n=t.data;(a=n&&n.page_name)?(l=n.page_name,c=n.page_id,s=n.access_token,u="true"==n.events_managed,d="true"==n.can_manage_events,n.events_managed=u,n.can_manage_events=d,e.resolve(n)):(c=void 0,s=void 0,l=void 0,u=!1,d=!1,e.reject(!1))}).catch(function(t){c=void 0,s=void 0,l=void 0,u=!1,d=!1,a=!1,e.reject(!1)}),e.promise},isAuthenticated:function(){var e=i.defer();return null==a?p.authenticate().then(function(){e.resolve(a)},function(){e.resolve(a)}):e.resolve(a),e.promise},getPageName:function(){return l},getPageId:function(){return c},getFacebookPageAccessToken:function(){return s},updateFacebookManageEvents:function(e){var n=i.defer();return t({url:o.SERVER_APP_PATH+"/facebook/groups/"+r.user.details.group+"/manageEvents",method:"POST",headers:{"Content-Type":"application/json"},params:{manageEvents:e}}).then(function(e){n.resolve(e.data)}),n.promise},getPageAccessToken:function(){var e=i.defer();return t({url:o.SERVER_APP_PATH+"/facebook/groups/"+r.user.details.group+"/pageAccessToken",method:"GET",headers:{"Content-Type":"application/json"}}).then(function(t){e.resolve(t.data)}),e.promise},setIsFbLoggedIn:function(e){a=e}};return p}]),mainApp.service("filterService",["$compile","$http","$log","$q","$rootScope","$location","$anchorScroll","dateTimeService","isotopeService","$cookies","$filter","$t
1imeout","groupsService","userService",function(e,t,n,i,r,o,a,s,l,u,c,d,p,g){var f=this,m=["feed","dashboard","map"];f.reloadRequired={},N(!0),f.currentRange=u.get("filter__range")||"last7",f.beginTimestamp=u.getObject("filter__begin")||{timestamp:void 0,date:void 0,human:void 0},f.endTimestamp=u.getObject("filter__end")||{timestamp:void 0,date:void 0,human:void 0},f.filterRegionIds=u.getObject("filter__regionIds")||[],f.keywords=u.getObject("filter__keywords")||[],f.sentiments=u.getObject("filter__sentiments")||[],f.socialPlatforms=u.getObject("filter__socialPlatforms")||[],f.postTypes=u.getObject("filter__postTypes")||[],f.locationTypes=u.getObject("filter__locationTypes")||[],f.requirePhoto=u.getObject("filter__requirePhoto")||void 0,"last7"!==f.currentRange||0!==f.filterRegionIds.length||0!==f.keywords.length||0!==f.sentiments.length||0!==f.socialPlatforms.length||0!=f.locationTypes.length||0!=f.postTypes.length||f.requirePhoto?f.display=!0:f.display=!1,f.searchTerm="";var v,h=[],y=[],S=[],E=[],b=[],T=[],w=void 0,A=(v=f.currentRange,[{name:window.lang.filters.AllTime,value:"allTime",ticked:"allTime"==v},{name:window.lang.filters.ThisYear,value:"currentYear",ticked:"currentYear"==v},{name:window.lang.filters.Last30,value:"last30",ticked:"last30"==v},{name:window.lang.filters.LastWeek,value:"last7",ticked:"last7"==v},{name:window.lang.filters.Last24,value:"lastDay",ticked:"lastDay"==v},{name:window.lang.filters.Last6,value:"last6Hours",ticked:"last6Hours"==v},{name:window.lang.filters.LastHour,value:"lastHour",ticked:"lastHour"==v},{name:window.lang.filters.Custom,value:"custom",ticked:"custom"==v}]),P=JSON.parse(JSON.stringify(f.beginTimestamp)),M=JSON.parse(JSON.stringify(f.endTimestamp)),C="custom"==f.currentRange,R=!1,I=new Date;I.setHours(23),I.setMinutes(59),I.setSeconds(59);var D=new Date,$=new Date;$.setDate(D.getDate()-30);var O=!1,L="*",k=StateEnum.ALL,x=!0;function N(e){e&&m.forEach(function(e){f.reloadRequired[e]=!0})}function U(){if(!O)return O=!0,p.getAllGroupKeywords()}function F(){return p.getAllGroupRegions()}function G(e,t){return null!=e?(e.setHours(e.getHours()),e.setMinutes(e.getMinutes())):t?(e.setHours(0),e.setMinutes(0)):(e.setHours(23),e.setMinutes(59)),t?e.setSeconds(0):e.setSeconds(59),e.setMilliseconds(0),e}function V(e,t,n){N(f.currentRange!=e||"custom"==e),f.currentRange=e;var i,r,o,a,s,l=void 0;if("custom"==f.currentRange){var c=new Date(t),d=new Date(n);c=G(c,!0),d=G(d,!1),i=c.getTime(),r=c,o=getHumanDate(c),a=d.getTime(),s=d,l=getHumanDate(d)}else if("allTime"==f.currentRange)i=r=o=void 0,a=s=l=void 0;else{var p=new Date;if("currentYear"==f.currentRange)p.setMonth(0),p.setDate(0),p.setHours(0),p.setMinutes(0),p.setSeconds(0);else if("last30"==f.currentRange)p.setDate(p.getDate()-30);else if("last7"==f.currentRange)p.setDate(p.getDate()-7);else if("lastDay"==f.currentRange)p.setHours(p.getHours()-24);else if("last6Hours"==f.currentRange)p.setHours(p.getHours()-6);else{if("lastHour"!=f.currentRange)throw new Error(window.lang.filters.invalidRange);p.setHours(p.getHours()-1)}i=p.getTime(),r=p,o=getHumanDate(p),a=s=l=void 0}f.beginTimestamp={timestamp:i,date:r,human:o||getHumanDate($)},f.endTimestamp={timestamp:a,date:s,human:l||getHumanDate(D)},u.put("filter__range",f.currentRange,{samesite:"Lax"}),u.putObject("filter__begin",f.beginTimestamp,{samesite:"Lax"}),u.putObject("filter__end",f.endTimestamp,{samesite:"Lax"})}function H(){for(var e=[],t=0;t<h.length;t++)h[t].ticked&&e.push(h[t].regionId);return e}var j={updateFilters:function(e){var t=this,n=[];S=function(){if(0!=S.length)return S;var e=[],t=f.sentiments,n={name:"Positive",label:"<i class='fa fa-fw fa-smile-o fa-lg'></i> "+window.lang.filters.Positive},i={name:"Neutral",label:"<i class='fa fa-fw fa-meh-o fa-lg'></i> "+window.lang.filters.Neutral},r={name:"Negative",label:"<i class='fa fa-fw fa-frown-o fa-lg'></i> "+window.lang.filters.Negative};e.push(n,i,r);for(var o=0;o<e.length;o++)e[o].ticked=t.length>0&&-1!==t.indexOf(e[o].name);return S=e,e}(),E=function(){if(0!=E.length)return E;var e=[],t=f.socialPlatforms,n={name:"instagram",label:"<i class='fa fa-fw fa-instagram fa-lg'></i> "+window.lang.filters.Instagram}
1,i={name:"twitter",label:"<i class='fa fa-fw fa-twitter-square fa-lg'></i> "+window.lang.filters.Twitter},r={name:"facebook",label:"<i class='fa fa-fw fa-facebook-official fa-lg'></i> "+window.lang.filters.Facebook},o={name:"text",label:"<i class='fa fa-fw fa-phone-square fa-lg'></i> "+window.lang.filters.Text},a={name:"mobile_app",label:"<i class='fa fa-fw fa-mobile-phone fa-lg'></i> "+window.lang.filters.MobileApp},s={name:"outage",label:"<i class='fa fa-fw fa-bolt fa-lg'></i> "+window.lang.filters.Outage},l={name:"LSR",label:"<i class='wi wi-day-sunny-overcast'></i> "+window.lang.filters.LSR},u={name:"other",label:"<i class='fa fa-fw fa-question-circle-o fa-lg'></i> "+window.lang.filters.Other};e.push(n,i,r,o,a,s,l,u);for(var c=0;c<e.length;c++)e[c].ticked=t.length>0&&-1!==t.indexOf(e[c].name);return E=e,e}(),b=function(){if(0!=b.length)return b;var e=[],t=f.postTypes,n={name:"status",label:"<i class='fa fa-fw fa-paper-plane-o fa-lg'></i> "+window.lang.filters.discoveredPosts},i={name:"retweet",label:"<i class='fa fa-fw fa-retweet fa-lg'></i> "+window.lang.filters.discoveredRetweets},r={name:"feed",label:"<i class='fa fa-fw fa-list fa-lg'></i> "+window.lang.filters.byOthers},o={name:"sent",label:"<i class='fa fa-fw fa-upload fa-lg'></i> "+window.lang.filters.postsByYou},a={name:"sent_retweet",label:"<i class='fa fa-fw fa-upload fa-lg'></i><i class='fa fa-fw fa-retweet fa-lg'></i> "+window.lang.filters.sentRetweets},s={name:"direct_message",label:"<i class='fa fa-fw fa-inbox fa-lg'></i> "+window.lang.filters.DirectMessages},l={name:"feed_retweet",label:"<i class='fa fa-fw fa-list fa-lg'></i><i class='fa fa-fw fa-retweet fa-lg'></i> "+window.lang.filters.feedRetweets},u={name:"mention",label:"<i class='fa fa-fw fa-bullhorn fa-lg'></i> "+window.lang.filters.Mentions},c={name:"retweeted",label:"<i class='fa fa-fw fa-upload fa-lg'></i><i class='fa fa-fw fa-retweet fa-lg'></i> "+window.lang.filters.postsRetweeted},d={name:"retweeted_mention",label:"<i class='fa fa-fw fa-upload fa-lg'></i><i class='fa fa-fw fa-retweet fa-lg'></i><i class='fa fa-fw fa-bullhorn fa-lg'></i> "+window.lang.filters.retweetedMentioned};e.push(n,i,r,l,u,s,o,a,c,d);for(var p=0;p<e.length;p++)e[p].ticked=t.length>0&&-1!==t.indexOf(e[p].name);return b=e,e}(),T=function(){if(0!=T.length)return T;var e=[],t=f.locationTypes,n={name:window.lang.filters.gps,label:"<i class='fa fa-fw fa-map-marker fa-lg'></i> "+window.lang.filters.GPS},i={name:window.lang.filters.place,label:"<i class='fa fa-fw fa-building-o fa-lg'></i> "+window.lang.filters.Place},r={name:window.lang.filters.userHome,label:"<i class='fa fa-fw fa-home fa-lg'></i> "+window.lang.filters.Hometown},o={name:window.lang.filters.none,label:"<i class='fa fa-fw fa-question-circle-o fa-lg'></i> "+window.lang.filters.None};e.push(n,i,r,o);for(var a=0;a<e.length;a++)e[a].ticked=t.length>0&&-1!==t.indexOf(e[a].name);return T=e,e}(),w=null!=w?w:w=void 0;var r=F();null==r?(r=F(),n.push(r)):n.push(r);var o=U();null==o?(O=!1,o=U(),n.push(o)):n.push(o),i.all(n).then(function(n){null!=n[0]&&function(e){(e=e.slice()).push({id:-1,name:window.lang.filters.none,special:!0});for(var t,n=[],i=u.getObject("filter__regionIds")||[],r=0;r<e.length;r++){var o={name:(t=e[r]).name,title:t.name+(null!=t.deletedDate?" - DELETED":""),regionId:t.id,ticked:i.length>0&&-1!==i.indexOf(t.id)};n.push(o)}h=n}(n[0]),null!=n[1]&&function(e){e=e.slice();for(var t,n,i=[],r=f.keywords,o=0;o<e.length;o++){for(var a=(n=0===(t=e[o]).word.indexOf("(point_radius")?t.regionName:t.word)+(null!=t.removedDate?" - DELETED":""),s={word:t.word,wordLabel:n,title:a,ticked:r.length>0&&-1!==r.indexOf(t.word)},l=!1,u=0;u<i.length;u++)if(i[u].title===a){l=!0;break}l||i.push(s)}O=!1,y=i}(n[1]),t.reload(),e&&e()})},reload:function(){var e;!function(){for(var e=0;e<A.length;e++){var t=A[e];1==t.ticked&&V(t.value,P.timestamp,M.timestamp)}}(),e=H(),N(!_.isEqual(f.filterRegionIds,e)),f.filterRegionIds=e,u.putObject("filter__regionIds",f.filterRegionIds,{expires:g.getCookieExpiration(),samesite:"Lax"}),function(){for(var e=[],t=0;t<y.length;t++){var n=y[t];n.ticked&&e.push(n.word)}N(!_.isEqual(f.keywords,e)),f.keywords=e,u.putObject("filter__keywords",f.ke
1ywords,{expires:g.getCookieExpiration(),samesite:"Lax"})}(),function(){for(var e=[],t=0;t<S.length;t++){var n=S[t];n.ticked&&e.push(n.name)}N(!_.isEqual(f.sentiments,e)),f.sentiments=e,u.putObject("filter__sentiments",f.sentiments,{expires:g.getCookieExpiration(),samesite:"Lax"})}(),function(){for(var e=[],t=0;t<E.length;t++){var n=E[t];n.ticked&&e.push(n.name)}N(!_.isEqual(f.socialPlatforms,e)),f.socialPlatforms=e,u.putObject("filter__socialPlatforms",f.socialPlatforms,{expires:g.getCookieExpiration(),samesite:"Lax"})}(),function(){for(var e=[],t=0;t<T.length;t++){var n=T[t];n.ticked&&e.push(n.name)}N(!_.isEqual(f.locationTypes,e)),f.locationTypes=e,u.putObject("filter__locationTypes",f.locationTypes,{expires:g.getCookieExpiration(),samesite:"Lax"})}(),function(){for(var e=[],t=0;t<b.length;t++){var n=b[t];n.ticked&&e.push(n.name)}N(!_.isEqual(f.postTypes,e)),f.postTypes=e,u.putObject("filter__postTypes",f.postTypes,{expires:g.getCookieExpiration(),samesite:"Lax"})}(),function(){for(var e="last7",t=0;t<A.length;t++){var n=A[t];if(n.ticked){e=n.value;break}}u.put("filter__range",e,{samesite:"Lax"}),f.currentRange=e}(),N(f.requirePhoto!=w),null!=w&&(f.requirePhoto=w,u.putObject("filter__requirePhoto",f.requirePhoto,{expires:g.getCookieExpiration(),samesite:"Lax"}))},requireReload:function(e){var t=f.reloadRequired[e];return t&&(f.reloadRequired[e]=!1),t},applyFilterButtonDisabled:function(){return R},rangeClicked:function(e){if(C="custom"===e.value,R=!1,C){this.filterRanges().forEac
1h(function(e){e.ticked="custom"===e.value});var t=new Date;P.timestamp=t.getTime(),M.timestamp=t.getTime(),V(e.value,P.timestamp,M.timestamp)}},checkValidDate:function(){R=M.timestamp<P.timestamp||P.timestamp>M.timestamp},clearFilters:function(e){for(var t=0;t<E.length;t++)E[t].ticked=!1;for(t=0;t<b.length;t++)b[t].ticked=!1;for(t=0;t<T.length;t++)T[t].ticked=!1;for(t=0;t<h.length;t++)h[t].ticked=!1;for(t=0;t<y.length;t++)y[t].ticked=!1;for(t=0;t<S.length;t++)S[t].ticked=!1;for(t=0;t<A.length;t++)A[t].ticked=!1;A[3].ticked=!0,w=!1,C=!1,f.display=!1,void 0!==e&&e()},matches:function(e){var t,n=function(){for(var e=[],t=0;t<E.length;t++)E[t].ticked&&e.push(E[t].name);return e}();if(0!==n.length&&-1===n.indexOf(e.type.toLowerCase()))return!1;var i=function(){for(var e=[],t=0;t<T.length;t++)T[t].ticked&&e.push(T[t].name);return e}();if(0!==i.length&&-1===i.indexOf(e.locationType.toLowerCase()))return!1;if(w&&null==e.imageUrl)return!1;var r=function(){for(var e=[],t=0;t<b.length;t++)b[t].ticked&&e.push(b[t].name);return e}();if(0!==r.length&&-1===r.indexOf(e.subType.toLowerCase()))return!1;var o=function(){for(var e=[],t=0;t<S.length;t++)S[t].ticked&&e.push(S[t].name);return e}();if(0!==o.length&&-1===o.indexOf(e.sentiment.replace(/\w\S*/g,function(e){return e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()})))return!1;var a=function(){for(var e=[],t=0;t<y.length;t++)y[t].ticked&&e.push(y[t].word);return e}(),s=0===a.length;if(0!==a.length&&0!==e.keywords.length)for(t=0;t<e.keywords.length;t++){var l=e.keywords[t].word;if(-1!==a.indexOf(l)){s=!0;break}}if(!s)return!1;var u=H(),c=0===u.length||0===e.regions.length&&-1!==u.indexOf(-1);for(t=0;t<e.regions.length&&!c;t++){var d=e.regions[t];-1!==u.indexOf(d.id)&&(c=!0)}if(!c)return!1;var p=void 0;for(t=0;t<A.length;t++)A[t].ticked&&(p=A[t]);if("custom"===p.value&&(null==e.date?new Date:new Date(Date.parse(e.date))).getTime()>M.timestamp)return!1;return!0},setTypeFilter:function(e){L=e},getTypeFilter:function(){return L},setStateFilter:function(e){k=e},getStateFilter:function(){return k},setDateFilter:function(e){x=e},getDateFilter:function(){return x},filterRegions:function(){return h},filterKeywords:function(){return y},filterSentiment:function(){return S},filterSocialPlatforms:function(){return E},filterPostTypes:function(){return b},filterLocationTypes:function(){return T},setFilterRequirePhoto:function(e){w=e},requirePhoto:function(){return f.requirePhoto},filterRanges:function(){return A},filterBegin:function(){return P},filterEnd:function(){return M},filterShowCustomRange:function(){return C},currentRange:function(){return f.currentRange},begin:function(){return f.beginTimestamp},end:function(){return f.endTimestamp},regionIds:function(){return f.filterRegionIds},keywords:function(){return f.keywords},sentiments:function(){return f.sentiments},socialPlatforms:function(){return f.socialPlatforms},locationTypes:function(){return f.locationTypes},requirePhoto:function(){return f.requirePhoto},postTypes:function(){return f.postTypes},searchTerm:function(e){return void 0!==e&&(f.searchTerm=e),f.searchTerm},setCustomDate:function(e,t,n){this.rangeClicked({value:e}),P.timestamp=t,M.timestamp=n,V(e,t,n)},display:function(){f.display=!f.display},showFilters:function(){return f.display},currentFilters:function(e){var t={state:j.getStateFilter(),regionIds:j.regionIds(),keywords:j.keywords(),sentiments:j.sentiments(),socialPlatforms:j.socialPlatforms(),fromDate:j.begin().timestamp,toDate:j.end().timestamp,searchTerm:j.searchTerm(),locationTypes:j.locationTypes(),postTypes:j.postTypes(),requirePhoto:j.requirePhoto()};return t.state===StateEnum.ALL&&delete t.state,e&&(t.state=StateEnum.NEW,delete t.searchTerm),t}};return j}]),mainApp.service("groupsService",["$http","$q","$log","$rootScope","$cookies","ENV",function(e,t,n,i,r,o){var a,s=[],l=[],u={},c={},d=!0;return{createGroup:function(n){var r=t.defer();return e.post(o.SERVER_APP_PATH+"/groups",n).then(function(e){r.resolve(e.data)}).catch(function(e){r.reject(e.status),i.verifyAuth(e.status)}),r.promise},createCohort:function(n){var r=t.defer();return e.post(o.SERVER_APP_PATH+"/cohort",n).then(function(e){r.resolve(e.data)}).catch(function(e){r.reject(e.status),i.verifyAuth(e.status)}),r.promise},deleteCohort:function(n){var r=t.defer();return e.delete(o.SERVER_APP_PATH+"/cohort/"+n).then(function(){r.resolve()}).catch(function(e){r.reject(e.status),i.verifyAuth(e.status)}),r.promise},updateCohortOption:function(n,r,a){var s=t.defer();return e.put(o.SERVER_APP_PATH+"/cohort/"+n+"/option/"+r,a).then(function(){s.resolve()}).catch(function(e){s.reject(e.status),i.verifyAuth(e.status)}),s.promise},getCohorts:function(){var n=t.defer();return e.get(o.SERVER_APP_PATH+"/cohort/list").then(function(e){n.resolve(e.data)}).catch(function(e){n.reject(e.status),i.verifyAuth(e.status)}),n.promise},getLocation:function(){var e=t.defer();return void 0===a?this.getGroup(r.getObject("user").details.group).then(function(t){a=t.location,e.resolve(a)}):e.resolve(a),e.promise},getGroup:function(n){var r=t.defer();return e.get(o.SERVER_APP_PATH+"/groups/"+n).then(function(e){r.resolve(e.data)}).catch(function(e){r.reject(e.data),i.verifyAuth(e.status)}),r.promise},getAllGroups:function(){return e.get(o.SERVER_APP_PATH+"/groups")},keywordAddedOrRemoved:function(){d=!0},getAllGroupKeywords:function(n){var i=r.getObject("user").details.group,a=t.defer();if(d||0===l.length){d=!1;var s="";n&&(s="?includeDeleted=true"),e.get(o.SERVER_APP_PATH+"/groups/"+i+"/keywords"+s).then(function(e){l=e.data,a.resolve(e.data)},function(e){a.reject(e)})}else a.resolve(l);return a.promise},getAllGroupRegions:function(){var n=r.getObject("user").details.group,i=t.defer();return 0!==s.length?i.resolve(s):e.get(o.SERVER_APP_PATH+"/groups/"+n+"/regions").then(function(e){s=e.data,i.resolve(e.data)},function(e){i.reject(e)}),i.promise},updateGroupRegion:function(n,r,a){var l=t.defer();return e.put(o.SERVER_APP_PATH+"/groups/"+n+"/regions/"+r.id,r).then(function(e){for(var t,n=0;n<s.length;n++)if(s[n].id==e.data.id){s[n]=e.data,s[n].polygon=a,t=s[n];break}l.resolve(t)}).catch(function(e){l.reject(e.status),i.verifyAuth(e.status)}),l.promise},addGroupRegion:function(n,a,l){var u=t.defer();
1return a.createdByUserId=r.getObject("user").details.id,e.post(o.SERVER_APP_PATH+"/groups/"+n+"/regions",a).then(function(e){let t=e.data;null!=l&&(t.polygon=l,t.polygon.regionId=t.id),s.push(t),u.resolve(t)}).catch(function(e){u.reject(e.status),i.verifyAuth(e.status)}),u.promise},deleteGroupRegion:function(n,a){var l=t.defer(),u=r.getObject("user").details.id;return e.delete(o.SERVER_APP_PATH+"/groups/"+n+"/regions/"+a+"/user/"+u).then(function(e){for(var t=0;t<s.length;t++)if(s[t].id===a){s.splice(t,1);break}l.resolve(e.data)}).catch(function(e){l.reject(e.status),i.verifyAuth(e.status)}),l.promise},addPhoneNumber:function(n,r){var a=t.defer();return e.post(o.SERVER_APP_PATH+"/groups/"+n+"/phone",r).then(function(e){a.resolve(e.data)}).catch(function(e){a.reject(e.status),i.verifyAuth(e.status)}),a.promise},removePhoneNumber:function(n,r){var a=t.defer();return e.delete(o.SERVER_APP_PATH+"/groups/"+n+"/phone/"+r).then(function(e){a.resolve(e.data)}).catch(function(e){a.reject(e.data),i.verifyAuth(e.status)}),a.promise},removeEmailAddress:function(n){var r=t.defer();return e.delete(o.SERVER_APP_PATH+"/groups/"+n+"/email/").then(function(e){r.resolve(e.data)}).catch(function(e){r.reject(e.data),i.verifyAuth(e.status)}),r.promise},setEmailAddress:function(n,r){var a=t.defer();return e.post(o.SERVER_APP_PATH+"/groups/"+n+"/email/"+r).then(function(e){a.resolve(e.data)}).catch(function(e){a.reject(e.data),i.verifyAuth(e.status)}),a.promise},updateAlertMode:function(n,r,a,s,l,u){var c=t.defer();return e({url:o.SERVER_APP_PATH+"/groups/"+n+"/settings/alert",method:"POST",data:{id:u,bannerVisible:a,popupMessage:s,bannerMessage:r,popupVisibleOnload:l},headers:{"Content-Type":"application/json"}}).then(function(e){c.resolve(e.data)}).catch(function(e){c.reject(e.status),i.verifyAuth(e.status)}),c.promise},updateEventMapAdvancedSettings:function(n,r){let a=t.defer();return e({url:o.SERVER_APP_PATH+"/groups/"+n+"/settings/map/advanced",method:"POST",data:r,headers:{"Content-Type":"application/json"}}).then(function(e){a.resolve(e.data)}).catch(function(e){a.reject(),i.verifyAuth(e.status)}),a.promise},setLocation:function(n,r,a){var s=t.defer(),l={latitude:r,longitude:a};return e.post(o.SERVER_APP_PATH+"/groups/"+n+"/location",l).then(function(e){s.resolve(e.data)}).catch(function(e){s.reject("Unable to set group location"),i.verifyAuth(e.status)}),s.promise},clearGroupSettingsCache:function(){u={}},updateGroupSettings:function(n){var a=r.getObject("user").details.group,s=t.defer();return e({url:o.SERVER_APP_PATH+"/groups/"+a+"/settings",method:"POST",data:n,headers:{"Content-Type":"application/json"}}).then(function(e){u=n,s.resolve(e.data)}).catch(function(e){s.reject(e.status),i.verifyAuth(e.status)}),s.promise},getEventMapOptions:function(n){let r=t.defer();return e({url:o.SERVER_APP_PATH+"/groups/"+n+"/settings/event/map/options",method:"GET"}).then(function(e){r.resolve(e.data)}).catch(function(e){r.reject(e.status),i.verifyAuth(e.status)}),r.promise},updateEventMapOptions:function(n,r){let a=t.defer();return e({url:o.SERVER_APP_PATH+"/groups/"+n+"/settings/event/map/options",method:"POST",data:r,headers:{"Content-Type":"application/json"}}).then(function(e){a.resolve(e.data)}).catch(function(e){a.reject(e.status),i.verifyAuth(e.status)}),a.promise},getGroupName:function(){return r.getObject("user").details.group},getGroupSettings:function(){var n=r.getObject("user").details.group,a=t.defer();return 0!==Object.keys(u).length?a.resolve(u):e.get(o.SERVER_APP_PATH+"/groups/"+n+"/settings").then(function(e){u=e.data,a.resolve(e.data)},function(e){a.reject(e.status),i.verifyAuth(e.status)}),a.promise},getAlgorithmTypes:function(){return e.get(o.SERVER_APP_PATH+"/groups/settings/algorithm")},generateNewKey:function(t,n){return"group"===t?e.get(o.SERVER_APP_PATH+"/groups/"+n+"/key/generate"):e.get(o.SERVER_APP_PATH+"/cohort/"+n+"/key/generate")},updateAlgorithmType:function(n,r){var a=t.defer();return e({url:o.SERVER_APP_PATH+"/groups/"+n+"/settings/algorithm/"+r,method:"POST",headers:{"Content-Type":"application/json"}}).then(function(){a.resolve()}).catch(function(e){a.reject(e.status),i.verifyAuth(e.status)}),a.promise},updateNotificationSettingsSounds:function(n){var a=r.getObject("user").details.group,s=t.defer(),l={};return l.soundEnabled=n.soundEnabled,l.soundPostTypes=n.soundPostTypes,e({url:o.SERVER_APP_PATH+"/groups/"+a+"/settings/notifications/sounds",method:"POST",data:l,headers:{"Content-Type":"application/json"}}).then(function(e){c=e.data,s.resolve(e.data)}).catch(function(e){s.reject(e.status),i.verifyAuth(e.status)}),s.promise},updateNotificationSettingsAutoResponse:function(n){var a=r.getObject("user").details.group,s=t.defer(),l={};return l.afterHoursEnd=n.afterHoursEnd,l.afterHoursOverride=n.afterHoursOverride,l.afterHoursStart=n.afterHoursStart,l.autoResponseMessage=n.autoResponseMessage,l.timezone=n.timezone,e({url:o.SERVER_APP_PATH+"/groups/"+a+"/settings/notifications/autoresponse",method:"POST",data:l,headers:{"Content-Type":"application/json"}}).then(function(e){c=e.data,s.resolve(e.data)}).catch(function(e){s.reject(e.status),i.verifyAuth(e.status)}),s.promise},updateNotificationSettingsAlerts:function(n){var a=r.getObject("user").details.group,s=t.defer();return delete n.currentlyAfterHours,e({url:o.SERVER_APP_PATH+"/groups/"+a+"/settings/notifications/alerts",method:"POST",data:n,headers:{"Content-Type":"application/json"}}).then(function(e){c=e.data,s.resolve(e.data)}).catch(function(e){s.reject(e.status),i.verifyAuth(e.status)}),s.promise},getNotificationSettings:function(){var n=r.getObject("user").details.group,i=t.defer();return 0!==Object.keys(c).length?i.resolve(c):e.get(o.SERVER_APP_PATH+"/groups/"+n+"/settings/notifications").then(function(e){c=e.data,i.resolve(e.data)},function(e){i.reject(e)}),i.promise},clear:function(){c={}},getNumberOfRegions:function(){return s.length},removeAllRegions:function(){s.length=0},getRegionFromPolygonId:function(e){for(var t=0;t<s.length;t++)if(s[t].polygon.id===e)return s[t]},getRegionFromRegionId:function(e){for(var t=0;t<s.length;t++)if(s[t].id===e)return s[t]},isFeatureServiceUrlSet:function(){return null!=u&&null!=u.socialLayerUrl&&""!==u.socialLayerUrl}}}]),mainApp.factory("isotopeService",["$log",function(e){var t,n,i,r,o=!1;return{init:function(){o?t.isotope("arrange"):(o=!0,t=$("#isotopeContainer"),n="date",i=!1,t.isotope({itemSelector:".isotopeitem",masonry:{columnWidth:255,gutterWidth:15},layoutMode:"masonry",getSortData:{date:function(e){if(null==e)return"0";var t=$(e).find(".date");return null==t?"0":t.attr("data-date")}},sortBy:n,sortAscending:i}))},isInitialized:function(){return o},relayout:function(e){void 0!==t&&(null!=e?setTimeout(function(){t.isotope("reLayout")},e):t.isotope("reLayout"))},reloadItems:function(e){void 0!==t&&(null!=e?setTimeout(function(){t.isotope("reloadItems")},e):t.isotope("reloadItems"))},reloadAndRelayout:function(e){null!=o&&void 0!==t&&(null!=e?setTimeout(function(){t.isotope("arrange")},e):t.isotope("arrange"))},removeAll:function(){t.isotope("remove",t.isotope("getItemElements"))},sort:function(e,o){void 0!==t&&(null!=e&&(n=e,i=!o),this.reloadItems(),setTimeout(function(){t.isotope({filter:r,sortBy:n,sortAscending:i})},500))},setStateFilter:function(e){void 0!==t&&void 0!==r&&-1==r.indexOf(e)&&(r=".state-"+e)}}}]),mainApp.factory("keywordFactory",["$log",function(e){var t=this;function n(e,t){var n=-1;if(void 0!==t)for(var i=0;i<t.length;i++)if(t[i].text===e){n=i;break}return n}return t.regionKeywords={},t.keywords={},{getKeywords:function(e){return void 0===t.regionKeywords[e]&&(t.regionKeywords[e]=[]),t.regionKeywords[e]},addKeyword:function(e){var i=e.id,r="NEGATIVE"===e.operator,o=e.regionId,a=e.geolocationRequired,s=e.word;null===o&&(o=-1),void 0===t.regionKeywords[o]&&(t.regionKeywords[o]=[]),-1===n(s,t.regionKeywords[o])&&t.regionKeywords[o].push({id:i,text:s,negative:r,geolocationRequired:a}),void 0===t.keywords[s]&&(t.keywords[s]={ids:[i],text:s,regions:[],negative:r,geolocationRequired:a});var l=t.keywords[s];-1===l.regions.indexOf(o)&&l.regions.push(o),-1===l.ids.indexOf(i)&&l.ids.push(i)},removeKeyword:function(e,i,r){if(e.forEach(function(e){var i=t.regi
1onKeywords[e];if(void 0!==i){var o=n(r,i);-1!==o&&t.regionKeywords[e].splice(o,1)}}),void 0!==t.keywords[r]){var o=t.keywords[r].regions,a=t.keywords[r].ids;o.length===e.length&&a.length===i.length?delete t.keywords[r]:(e.forEach(function(e){var t=o.indexOf(e);-1!==t&&o.splice(t,1)}),i.forEach(function(e){var t=a.indexOf(e);-1!==t&&a.splice(t,1)}))}},regionKeywords:t.regionKeywords,keywords:t.keywords}}]),mainApp.service("keywordService",["$http","$q","$log","$rootScope","analyticsService","ENV",function(e,t,n,i,r,o){return{getKeywordsObjects:function(t){return e.get(o.SERVER_APP_PATH+"/keywords/groups/"+t+"/full")},addKeywordToAllRegions:function(n,r){var a=t.defer();return e.post(o.SERVER_APP_PATH+"/keywords/groups/"+n+"/all",r).then(function(e){a.resolve(e.data)}).catch(function(e){a.reject(e.status),i.verifyAuth(e.status)}),a.promise},removeKeyword:function(n,r){var a=t.defer();return e({method:"DELETE",url:o.SERVER_APP_PATH+"/keywords/groups/"+n,data:r}).then(function(e){a.resolve(e.data)}).catch(function(e){a.reject(e.status),i.verifyAuth(e.status)}),a.promise},addKeywordForRegion:function(n,a){var s=t.defer();return e.post(o.SERVER_APP_PATH+"/keywords/regions/"+n,a).then(function(e){const t=e.data;"success"===t.status||"partial"===t.status?(r.newKeyword(a),s.resolve(t)):s.reject(t)}).catch(function(e){s.reject(e.status),i.verifyAuth(e.status)}),s.promise},addKeyword:function(n,a){var s=t.defer();return e.post(o.SERVER_APP_PATH+"/keywords/groups/"+a,n).then(function(e){const t=e.data;"success"===t.status||"partial"===t.status?(r.newKeyword(n),s.resolve(t)):(t.statusCode=status,s.reject(t))}).catch(function(e){s.reject(e.status),i.verifyAuth(e.status)}),s.promise},updateKeywords:function(n,r){var a=t.defer();return e.put(o.SERVER_APP_PATH+"/keywords/groups/"+r+"/collection",n).then(function(){a.resolve()}).catch(function(e){a.reject(e.status),i.verifyAuth(e.status)}),a.promise},updateKeyword:function(n,r){var a=t.defer();return e.put(o.SERVER_APP_PATH+"/keywords/groups/"+r,n).then(function(e){const t=e.data;"success"===t.status||"partial"===t.status?a.resolve(t):a.reject(t)}).catch(function(e){a.reject(e.status),i.verifyAuth(e.status)}),a.promise},removeKeywordForRegion:function(n,r){var a=t.defer();return e({method:"DELETE",url:o.SERVER_APP_PATH+"/keywords/regions/"+n,data:r}).then(function(e){a.resolve(e.data)}).catch(function(e){a.reject(e.status),i.verifyAuth(e.status)}),a.promise}}}]),mainApp.factory("mapService",["$http","$q","$log","$window","$rootScope","$compile","userService","authService","$cookies","auditService","$templateCache","arcGisService","groupsService","eventsService","toaster","auditFactory","ENV",function(e,t,n,i,r,o,a,s,l,u,c,d,p,g,f,m,v){var h,y,S,E,b,T,w,A,P,M,C,R,I,D,_,$,O,L,k,x=.45,N=[],U=[],F=!1,G={},V=[],H={},j=[],B={},W=-1,q=-1,K=-1,Y=-1,z="settings__layerVis__"+s.user.details.username,Z=l.getObject(z);void 0===Z&&(Z={});var X=!1,J=[],Q=!1,ee=39.83,te=-98.58;let ne="streets",ie=[],re=[];function oe(e){if(null!=b&&b.destroy(),b=e,null!=_&&_.destroy(),(w=new E.HeatmapLayer({config:{useLocalMaximum:!0,radius:40,gradient:{.45:"rgb(000,000,255)",.55:"rgb(000,255,255)",.65:"rgb(000,255,000)",.95:"rgb(255,255,000)",1:"rgb(255,000,000)"}},map:b,domNodeId:"heatLayer",opacity:.85})).setVisibility(se(w,!1)),b.addLayer(w),re&&re.forEach(e=>{let t=new E.FeatureLayer(e);t.setVisibility(!1),b.addLayer(t),ie.push(t)}),null==A&&(A=new E.GraphicsLayer({id:"Regions"})),A.setVisibility(se(A)),b.addLayer(A),A.redraw(),null==P&&(P=new E.GraphicsLayer({id:"Events"})),P.setVisibility(se(P)),b.addLayer(P),P.redraw(),null==T){T=new E.ClusterLayer({data:U,distance:100,id:"Social Posts",labelColor:"#fff",labelXOffset:-15,labelYOffset:14,singleSymbol:{},resolution:b.extent.getWidth()/b.width,singleColor:"#888"});var t=(new E.SimpleMarkerSymbol).setSize(4),n=new E.ClassBreaksRenderer(t,"clusterCount"),i=new E.PictureMarkerSymbol("img/map
1/Cluster_Low_35.png",35,35).setOffset(-15,17.5),a=new E.PictureMarkerSymbol("img/map/Cluster_Medium_35.png",35,35).setOffset(-15,17.5),s=new E.PictureMarkerSymbol("img/map/Cluster_High_35.png",35,35).setOffset(-15,17.5);n.addBreak(0,25,i),n.addBreak(25,200,a),n.addBreak(200,1e4,s),T.setRenderer(n)}T.setVisibility(se(T)),b.addLayer(T),le("basemapGalleryContainer","basemapGallery"),null!=D&&D.destroy();var l=[new E.Basemap({id:"osm",thumbnailUrl:"img/map/basemaps/open_street_map.jpeg",title:"Open Street Map",layers:[new E.BasemapLayer({stylesUrl:"https://basemaps.arcgis.com/arcgis/rest/services/OpenStreetMap_v2/VectorTileServer/resources/styles",type:"OpenStreetMap"})]}),new E.Basemap({id:"streets",thumbnailUrl:"img/map/basemaps/world_street_map.jpg",title:"Streets",layers:[new E.BasemapLayer({url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"})]}),new E.Basemap({id:"dark-gray",thumbnailUrl:"img/map/basemaps/darkGrayBasemapThumbnail.png",title:"Dark Gray Canvas",layers:[new E.BasemapLayer({url:"https://server.arcgisonline.com/arcgis/rest/services/Canvas/World_Dark_Gray_Base/MapServer"})]}
1),new E.Basemap({id:"light-gray",thumbnailUrl:"img/map/basemaps/lightGrayBasemapThumbnail.jpg",title:"Light Gray Canvas",layers:[new E.BasemapLayer({url:"https://server.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Reference/MapServer"})]}),new E.Basemap({id:"imagery",thumbnailUrl:"img/map/basemaps/imagery.jpg",title:"Imagery",layers:[new E.BasemapLayer({url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"})]}),new E.Basemap({id:"imagery-labels",thumbnailUrl:"img/map/basemaps/imagery_labels.jpg",title:"Imagery with Labels",layers:[new E.BasemapLayer({url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"}),new E.BasemapLayer({url:"https://server.arcgisonline.com/ArcGIS/rest/services/Reference/World_Boundaries_and_Places/MapServer"})]}),new E.Basemap({id:"topo",thumbnailUrl:"img/map/basemaps/topo_map.jpg",title:"Topographic",layers:[new E.BasemapLayer({url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer"})]})];(D=new E.BasemapGallery({showArcGISBasemaps:!1,basemaps:l,map:b},"basemapGallery")).startup(),le("mapSearchContainer","mapSearch","map-controls"),null!=O&&O.destroy(),(O=new E.Search({sources:[{locator:new E.Locator("//geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/"),singleLineFieldName:"SingleLine",outFields:["Match_addr"],name:"Esri World Geocoder",placeholder:"Search...",infoTemplate:new E.InfoTemplate("Search result","${Match_addr}"),maxResults:6,maxSuggestions:6,enableSuggestions:!0},{locator:new E.Locator("//utility.arcgis.com/usrsvcs/servers/91fa04dc81e74bbb8b87fc2ea8bee436/rest/services/what3words_EN_English/GeocodeServer/"),outFields:["Match_addr"],singleLineFieldName:"what3words",name:"What3words",placeholder:"Search w3w address...",infoTemplate:new E.InfoTemplate("What3words search result","${Match_addr}"),maxResults:6,maxSuggestions:6,enableSuggestions:!0}],map:b,autoComplete:!0,placeholder:"Search..."},"mapSearch")).startup(),le("locateButtonContainer","locateButton"),null!=$&&$.destroy(),($=new E.LocateButton({map:b},"locateButton")).startup(),new E.Scalebar({map:b,scalebarUnit:"dual",attachTo:"bottom-right"}),function(){le("layerListContainer","layerList"),null!=k&&k.destroy();k=new E.LayerList({map:b,showLegend:!0,showSubLayers:!0,showOpacitySlider:!1,layers:[]},"layerList"),ie.forEach(e=>{k.layers.push({layer:e})}),k.layers.push({layer:P},{layer:w},{layer:T},{layer:A}),k.startup()}(),T.on("mouse-over",function(e){null!=b.infoWindow&&b.infoWindow.isShowing||m||(E.event.stop(e),function(e){var t,n,i=r.$new(!0),a=e.graphic;if(t=null==a.attributes.item?a.attributes:a.attributes.item,i.item=t,i.isMap=!0,1!=a.attributes.clusterCount&&a.attributes.isClusterItem||(t.type==TypeEnum.TWITTER?n=c.get("twitterGridTemplate"):t.type==TypeEnum.TEXT?n=c.get("textGridTemplate"):t.type==TypeEnum.MOBILE_APP?n=c.get("appGridTemplate"):t.type==TypeEnum.INSTAGRAM?n=c.get("instagramGridTemplate"):t.type==TypeEnum.OUTAGE?n=c.get("outageGridTemplate"):t.type==TypeEnum.FACEBOOK?n=c.get("facebookGridTemplate"):t.type==TypeEnum.W3W?n=c.get("w3wGridTemplate"):t.type==TypeEnum.LSR&&(n=c.get("lsrGridTemplate"))),null!=n){var s=o(n)(i);i.$apply(),b.infoWindow.setTitle(""),b.infoWindow.setContent(s[0]),e.stopPropagation(),b.infoWindow.show(e.screenPoint,b.getInfoWindowAnchor(e.screenPoint))}}(e))}),(h=E.Draw(b,{showTooltips:!0})).on("draw-complete",de),(y=E.Draw(b,{showTooltips:!0})).on("draw-complete",ue);var d=!1;M=new E.Edit(b);var p=!1;C=new E.Edit(b);var m=!1;return R=new E.Edit(b),b.on("click",function(e){M.deactivate(),d=!1,W=-1,C.deactivate(),p=!1,K=-1,q=-1,R.deactivate(),m=!1,Y=-1}),A.on("click",function(e){S||(E.event.stop(e),"geofence"===e.graphic.geometry.regionType?(M.deactivate(),d=!1):!1===d||W!==e.graphic.geometry.regionId?(d=!0,M.activate(E.Edit.EDIT_VERTICES,e.graphic)):(M.deactivate(),d=!1),"polygon"===e.graphic.geometry.type&&(W=e.graphic.geometry.regionId,r.$broadcast("REGION_CLICKED",W)))}),M.on("deactivate",function(e){if(e.info.isModified){var t=new E.Polygon(e.graphic.geometry),n=E.webMercatorUtils.webMercatorToGeographic(t);n.regionId=e.graphic.geometry.regionId,r.$broadcast("REGION_UPDATED",{polygon:n})}}),T.on("click",function(e){!1!==m&&Y===e.graphic.attributes.item.id||null!=e.graphic.attributes.clusterCount&&1!=e.graphic.attributes.clusterCount?(R.deactivate(),m=!1):(null!=b.infoWindow&&b.infoWindow.hide(),E.event.stop(e),m=!0,R.activate(E.Edit.MOVE,e.graphic),R.refresh()),Y=e.graphic.attributes.item.id}),R.on("deactivate",function(e){if(m&&Y===e.graphic.attributes.item.id){if(e.info.isModified){var t=new E.Point(e.graphic.geometry),n=e.graphic.attributes.item,i=t.getLatitude(),r=t.getLongitude();n.latitude=i,n.longitude=r,g.getEvents().then(function(e){var t=!1;if(void 0!==e)for(var o=0;o<e.length;o++)for(var a=0;
1a<e[o].polygons.length;a++)ae(i,r,e[o].polygons[a].points)&&(t=e[o]);if(t){var s=[t.id];u.addEventsToAudit(n.id,s).then(function(){g.addPostToEvent(t),f.pop("success","Success!","Post added to event.")},function(e){f.pop("error","Failed!","Failed to add post to event.")})}}),u.updateLocation(n.id,i,r,"MANUAL",null).then(function(e){ye(n),Se(e),f.pop("success","Success!","Successfully moved post.")},function(e){f.pop("error","Update Failed!","Unable to update the location")})}R.deactivate(),m=!1}}),P.on("click",function(e){switch(E.event.stop(e),!1===p||q!==e.graphic.geometry.eventId||q!==e.graphic.eventId?(p=!0,K=e.graphic.geometry.polygonId,C.activate(E.Edit.EDIT_VERTICES|E.Edit.MOVE|E.Edit.SCALE|E.Edit.ROTATE,e.graphic)):(C.deactivate(),d=!1),e.graphic.geometry.type){case"polygon":q=e.graphic.geometry.eventId,r.$broadcast("EVENT_POLYGON_CLICKED",q);break;case"point":q=e.graphic.eventId,r.$broadcast("EVENT_PIN_CLICKED",q,e.graphic.detected)}}),C.on("deactivate",function(e){if(e.info.isModified)switch(e.graphic.geometry.type){case"point":var t=new E.Point(e.graphic.geometry),n=E.webMercatorUtils.webMercatorToGeographic(t);n.eventId=e.graphic.eventId,r.$broadcast("EVENT_LOCATION_UPDATED",{point:n});break;case"polygon":var i=new E.Polygon(e.graphic.geometry),o=E.webMercatorUtils.webMercatorToGeographic(i);o.eventId=e.graphic.geometry.eventId,r.$broadcast("EVENT_POLYGON_UPDATED",{polygon:o})}}),g.getEventSettings().then(function(e){L=e}),b}function ae(e,t,n){var i,r,o=!1,a=n.length;for(i=0,r=a-1;i<a;r=i++)(n[i].longitude<=t&&t<n[r].longitude||n[r].longitude<=t&&t<n[i].longitude)&&e<(n[r].latitude-n[i].latitude)*(t-n[i].longitude)/(n[r].longitude-n[i].longitude)+n[i].latitude&&(o=!o);return o}function se(e,t){var n=void 0;return e.id in Z&&(n=!0===Z[e.id]),void 0===n&&(!1===t?(Z[e.id]=!1,l.putObject(z,Z,{expires:a.getCookieExpiration(),samesite:"Lax"}),n=!1):(Z[e.id]=!0,l.putObject(z,Z,{expires:a.getCookieExpiration(),samesite:"Lax"}),n=!0)),e.on("visibility-change",function(t){Z[e.id]=t.visible,l.putObject(z,Z,{expires:a.getCookieExpiration(),samesite:"Lax"})}),n}function le(e,t,n){var i=document.getElementById(e),r=document.createElement("div");r.setAttribute("id",t),null!=n&&(r.classname=n),i.appendChild(r)}function ue(e){X||(b.setMapCursor("default"),y.deactivate()),Q&&null!=A&&A.show();var t=E.webMercatorUtils.webMercatorToGeographic(e.geometry);switch(e.geometry.type){case"point":var n=new E.Point(t),i={latitude:n.y,longitude:n.x};r.$broadcast("EVENT_LOCATION_SET",{point:i});break;case"polygon":r.$broadcast(X?"MULTIPLE_EVENT_POLYGON_CREATED":"EVENT_POLYGON_CREATED",{polygon:t})}}function ce(e){return e*(Math.PI/180)}function de(e){b.setMapCursor("default"),h.deactivate();var t,n,i,o,a,s,l,u=E.webMercatorUtils.webMercatorToGeographic(e.geometry);switch(e.geometry.type){case"polygon":var c=void 0;F&&(t=u.getCentroid().y,n=u.getCentroid().x,i=u.rings[0][0][1],o=u.rings[0][0][0],a=ce(i-t),s=ce(o-n),l=Math.sin(a/2)*Math.sin(a/2)+Math.cos(ce(t))*Math.cos(ce(i))*Math.sin(s/2)*Math.sin(s/2),c=2*Math.atan2(Math.sqrt(l),Math.sqrt(1-l))*6371*.621371),r.$broadcast("REGION_CREATED",{polygon:u,radius:c})}}function pe(e){var t=e.polygon,n=E.Color.fromHex(e.color),i=new E.SimpleFillSymbol(E.SimpleFillSymbol.STYLE_SOLID,new E.SimpleLineSymbol(E.SimpleLineSymbol.STYLE_DASH,new E.Color([0,0,0]),1),new E.Color([n.r,n.g,n.b,x])),r=E.webMercatorUtils.geographicToWebMercator(t),o=new E.Graphic(r,i);return o.geometry.regionId=t.regionId,o.geometry.regionType=e.regionType,o}function ge(e){var t=new E.Extent(-95.271,38.933,-95.228,38.976,new E.SpatialReference({wkid:4326})),n=new E.Map("map",{basemap:ne,center:[te,ee],zoom:3,maxZoom:22,logo:!0,autoResize:!1,extent:t});I=void 0,n.on("load",function(t){if(n.setZoom(b.getZoom()+1),null!=e){var i={map:b,arcGis:E};e.resolve(i)}}),oe(n)}function fe(e){null==e&&(e="#FF0000"),e=e.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(e,t,n,i){return t+t+n+n+i+i});var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null}function me(e){var t={url:"",xOffset:0,yOffset:0};if(e.detected)t.url=e.iconUrl;else if("OUTAGE"===e.type)if(void 0!==e.mapPinUrl&&""!==e.mapPinUrl)t.url=e.mapPinUrl;else{var n=g.getOutageMapIcons();
1e.numPeople<=n.smallRangeMax?t.url=n.smallIconUrl:e.numPeople>n.smallRangeMax&&e.numPeople<=n.mediumRangeMax?t.url=n.mediumIconUrl:t.url=n.largeIconUrl,void 0!==n.xOffset&&(t.xOffset=n.xOffset),void 0!==n.yOffset&&(t.yOffset=n.yOffset)}else if("OTHER"===e.type)t.url=e.mapPinUrl,void 0!==e.xOffset&&(t.xOffset=e.xOffset),void 0!==e.yOffset&&(t.yOffset=e.yOffset);else{var i=g.getOtherMapIcon(e.type);void 0===i?t.url=e.mapPinUrl:(t.url=i.url,null!=i.xOffset&&(t.xOffset=i.xOffset),null!=i.yOffset&&(t.yOffset=i.yOffset))}return t}function ve(e,t,n){var i=e.id+"-pinGraphicKey"+(e.detected?"-detected":"");void 0!==n&&(i=n);var r=H[i];void 0!==r&&(P.remove(r),delete H[i]);var o=me(e),a=new esri.symbol.PictureMarkerSymbol(o.url,25,25);a.setOffset(o.xOffset,o.yOffset);var s=new esri.Graphic(t,a);s.eventId=e.id,s.detected=e.detected;try{P.add(s),H[i]=s}catch(e){setTimeout(function(){P.add(s),H[i]=s},5e3)}}function he(e){var t="img/map/";if(e.type==TypeEnum.MOBILE_APP)return t+"app_users.svg";if(e.type==TypeEnum.TEXT){var n=function(e){var t="";if(void 0!==L&&void 0!==L.phoneNumberSettings)for(var n=0;n<L.phoneNumberSettings.length;n++){var i=L.phoneNumberSettings[n];if(void 0!==i.iconUrl&&i.number==e.textMessages[0].toNumber){t=i.iconUrl.split("/").pop();break}}return t}(e);return""!=n?t+n:t+"sms.svg"}return e.type==TypeEnum.OUTAGE?t+"outage_true.svg":e.type==TypeEnum.TWITTER?t+"twitter.svg":e.type==TypeEnum.INSTAGRAM?t+"instagram.svg":e.type==TypeEnum.FACEBOOK?t+"facebook.svg":e.type==TypeEnum.W3W?t+"w3w-pin.png":e.type==TypeEnum.LSR?t+"font-awesome-lsr.png":void 0}function ye(e){var t,n=e.id;if(n in G){if(null!=T){var i=U.indexOf(G[n]);i>-1&&(U.splice(i,1),T.recluster())}delete G[n],null!=b.infoWindow&&b.infoWindow.hide();var r=-1===N.indexOf(e)?function(e,t){for(var n=0;n<e.length;n++)if(e[n].id===t)return n;return-1}(N,n):N.indexOf(e);-1!==r&&N.splice(r,1)}void 0!==B[t=n]&&(w.removeDataPoint(B[t]),delete B[t])}function Se(e){var t=e.id;if(!(t in G)){var n=he(e),i=new esri.geometry.Point(e.longitude,e.latitude);i=esri.geometry.geographicToWebMercator(i);var r=new esri.symbol.PictureMarkerSymbol(n,25,25),o=new esri.Graphic(i,r);o.item=e,N.push(e),G[t]=o,o.x=o.geometry.x,o.y=o.geometry.y,o.attributes=null!=o.attributes?o.attributes:{},o.attributes.item=o.item,U.push(o),null!=T&&T.recluster()}}return{multiplePolygonFinished:function(){X&&(b.setMapCursor("default"),y.deactivate(),r.$broadcast("MULTIPLE_EVENT_POLYGON_FINISHED"))},deactivateRegionEditor:function(e){null!=M.getCurrentState()&&null!=M.getCurrentState().graphic&&M.getCurrentState().graphic.regionId!=e&&(M.deactivate(),regionEditingEnabled=!1)},deactivateEventEditor:function(e){null!=C.getCurrentState()&&null!=C.getCurrentState().graphic&&C.getCurrentState().graphic.eventId!=e&&(C.deactivate(),eventEditingEnabled=!1)},updateRegionColor:function(e,t){!function(e,t){var n=V[e.id].symbol,i=E.Color.fromHex(t);n.setColor([i.r,i.g,i.b,x]),A.redraw()}(e,t)},addRegionToMap:function(e){!function(e){h.deactivate(),b.showZoomSlider();var t=pe(e);V[t.geometry.regionId]=t,A.add(t)}(e)},removePolygon:function(e){var t=V[e.regionId];A.remove(t),delete V[e.regionId]},showAllRegions:function(){null!=A&&A.show()},getAndSetRegionsLayerVisible:function(){return Q=A.visible,A.visible},clearAllRegions:function(){null!=A&&A.clear()},hideAllRegions:function(){null!=A&&(M.deactivate(),A.hide())},showAllEvents:function(){null!=P&&P.show()},clearAllEvents:function(){null!=P&&P.clear()},hideAllEvents:function(){null!=P&&(C.deactivate(),eventEditingEnabled=!1,P.hide())},removeEvent:function(e){var t=H[e.id+"-pinGraphicKey"];void 0!==t&&(P.remove(t),delete H[e.id]),e.polygons.forEach(function(e){var t=j[e.id];P.remove(t),delete j[e.id];var n=H[e.id];P.remove(n),delete H[e.id]})},eventPolygonGraphics:function(){return j},showAllMarkers:function(){null!=T&&T.show()},hideAllMarkers:function(){null!=T&&T.hide()},clearAllMarkers:function(){null!=T&&T.clear()},setMap:function(e,t){null!=t&&(I=t),d.api().then(function(t){E=t,oe(e)},function(e){})},setMapCenterToGroupLocation:function(e){!function(e){p.getLocation().then(function(t){null!=t&&null!=t.latitude&&null!=t.longitude&&e.centerAndZoom(new E.Point(t.longitude,t.latitude),10)},function(e){})}(e)},getMapId:function(){return I},removeInfoGraphics:function(){null!=_&&_.destroy()},createGraphicsExtent:function(e){return!0,E.GraphicsUtils.graphicsExtent(e)},createGraphic:function(e){return pe(e)},createInfoGraphics:function(){le("infoGraphicsContainer","infoGraphics"),this.removeInfoGraphics(),_=new E.InfographicsCarousel({returnGeometry:!0,expanded:!1},"infoGraphics");var e=new E.InfographicsOptions;return e.getItems("US").then(function(t){for(var n=0;n<t.length;n++)t[n].isVisible=!1;var i=new E.InfographicsOptions.Item("OneVar",["Wealth.PCI_CY"]);i.title="2013 Per Capita Income";var r=new E.InfographicsOptions.Item("AgePyramid",["Age.*"]);r.title="Age breakdown",t.push(i,r),_.set("options",e)}),_},setDefaultMap:function(t){d.api().then(function(n){E=n,e.get(v.STATIC_URL+"/js/configuration/utilisocial-map.json").then(function(e){const n=e.data;let i=s.user.details.group;n[i]&&(ne=n[i].basemap,re=n[i].layers),ge(t)}).catch(function(){ge(t)})})},getCurrentExtent:function(){if(null!=b)return E.webMercatorUtils.webMercatorToGeographic(b.extent)},getMap:function(){var e=t.defer();if(null==b){var n=this;d.api().then(function(t){E=t,d.isLoginActive().then(function(t){if(n.getSelectedMapFromCookie()){var i=n.getSelectedMapFromCookie().mapId;E.Utils.createMap(i,"map").then(function(t){var r=t.map;n.setMap(r,i);var o={map:r,arcGis:E};e.resolve(o)},function(t){n.setDefaultMap(e)})}else n.setDefaultMap(e)},function(t){n.setDefaultMap(e)})},function(t){e.reject(t)})}else{var i={map:b,arcGis:E};e.resolve(i)}return e.promise},resizeMap:function(){var e=angular.element("#map");if(e.is(":visible")){var t=angular.element(window).height(),n=angular.element("#navbar").height()+angular.element("#filters").height()+angular.element("#feed-title").height()+76;e.css("height",t-n),e.css("width",angular.element("#mapContent").width()),angular.element("#regi
1on-list").css("height",t-n-150),angular.element("#layerList").css("height",t-n-65),angular.element("#region-slide-panel").css("height",t-n),null!=b&&b.resize()}},activateRegionDrawing:function(e){b.setMapCursor("crosshair"),"geofence"===e?(F=!0,h.activate(esri.toolbars.Draw.CIRCLE)):(F=!1,h.activate(esri.toolbars.Draw.POLYGON)),b.hideZoomSlider()},activateEventPolygonDrawing:function(e){S=!0,X=e,b.setMapCursor("crosshair"),y.activate(esri.toolbars.Draw.POLYGON),b.hideZoomSlider()},activatePointDrawing:function(){S=!0,b.setMapCursor("crosshair"),y.activate(esri.toolbars.Draw.POINT),b.hideZoomSlider()},deactivateDrawing:function(){b.setMapCursor("default"),h.deactivate(),y.deactivate(),b.showZoomSlider(),S=!1},finishRegionDrawing:function(){b.setMapCursor("default"),y.finishDrawing(),b.showZoomSlider()},finishDrawingPolygon:function(){b.setMapCursor("default"),y.finishDrawing(),b.showZoomSlider()},showMapZoomSlider:function(){b&&b.showZoomSlider()},reset:function(){null!=b&&b.centerAt(new esri.geometry.Point(te,ee)),void 0!==T&&T.clear(),G={}},removePendingGraphics:function(){X=!1,J.forEach(function(e){P.remove(e)}),J=[]},addUnsavedPolygonToMap:function(e){for(var t=[],n=0;n<e.length;n++){var i=[];i[0]=e[n].longitude,i[1]=e[n].latitude,t.push(i)}var r=new E.Polygon(t),o=fe("#2200FF"),a=new E.Color([o.r,o.g,o.b]),s=new E.SimpleFillSymbol(E.SimpleFillSymbol.STYLE_SOLID,new E.SimpleLineSymbol(E.SimpleLineSymbol.STYLE_DASH,new E.Color([0,0,0]),1),new E.Color([a.r,a.g,a.b,.25])),l=E.webMercatorUtils.geographicToWebMercator(r),u=new E.Graphic(l,s);P.add(u),J.push(u)},addEventToMap:function(e){if(null!==e.polygons&&"string"!=typeof e.polygons&&e.polygons.length>0&&e.polygons.forEach(function(t){var n=angular.copy(e),i=j[t.id];void 0!==i&&(P.remove(i),delete j[t.id]);for(var r=[],o=0;o<t.points.length;o++){var a=[];a[0]=t.points[o].longitude,a[1]=t.points[o].latitude,r.push(a)}n.polygon=new E.Polygon(r);var s=n.polygon;b.setMapCursor("default"),y.deactivate(),b.showZoomSlider();var l=fe(n.color),u=new E.Color([l.r,l.g,l.b]),c=new E.SimpleFillSymbol(E.SimpleFillSymbol.STYLE_SOLID,new E.SimpleLineSymbol(E.SimpleLineSymbol.STYLE_DASH,new E.Color([0,0,0]),1),new E.Color([u.r,u.g,u.b,x])),d=E.webMercatorUtils.geographicToWebMercator(s),p=new E.Graphic(d,c);p.geometry.eventId=n.id,p.geometry.polygonId=t.id,p.geometry.origPolygon=n.polygon,P.add(p),j[t.id]=p,e.longitude||e.latitude||ve(n,d.getCentroid(),t.id)}),e.longitude&&e.latitude){var t=new esri.geometry.Point(e.longitude,e.latitude);t=esri.geometry.geographicToWebMercator(t),ve(e,t)}},addAudit:function(e){Se(e)},loadHeatMap:function(){!function(){for(var e=[],t=0;t<N.length;t++){var n=N[t];if("USER_HOME"!==n.locationType){var i=new esri.geometry.Point(n.longitude,n.latitude),r={attributes:{},geometry:{spatialReference:{wkid:102100},type:"point",x:(i=esri.geometry.geographicToWebMercator(i)).x,y:i.y}};B[n.id]=r,e.push(r)}}w.setData(e)}()},markers:function(){return G},clearMarkers:function(){T.clear()},hasAudit:function(e){return e in G},audits:function(){return N},redrawRegionsLayer:function(){A.redraw()},lastPolygonId:function(){return K},regionGraphics:V,removeAllEvents:function(){void 0!==P&&P.clear(),H=[],j=[]},removeAllAudits:function(){for(var e in null!=T&&T.clear(),null!=b&&null!=b.infoWindow&&b.infoWindow.hide(),G){var t=G[e],n=U.indexOf(t);n>-1&&U.splice(n,1),delete t}G.length=0,G=[],N.length=0,N=[],B=[],w.clearData()},removeAudit:function(e){ye(e)},getMapPin:function(e){return me(e)},getSelectedMapFromCookie:function(){return l.getObject("settings__selectedMap__"+s.user.details.username)},setSelectedMapCookie:function(e){l.putObject("settings__selectedMap__"+s.user.details.username,e,{expires:a.getCookieExpiration(),samesite:"Lax"})},clearSelectedMapCookie:function(){l.remove("settings__selectedMap__"+s.user.details.username)},removeAll:function(){m.setGroup(s.user.details.group),u.updateState(N,StateEnum.SEEN).then(function(){for(var e in G){var t=G[e],n=U.indexOf(t);n>-1&&U.splice(n,1),delete t}T.recluster(),null!=b.infoWindow&&b.infoWindow.hide(),N.length=0,m.reset()}),B=[],w.clearData()},focus:function(e,t,n){b.centerAndZoom(new esri.geometry.Point(t,e),n)},getAuditsInBox:function(e,t,n,i,r){for(var o=[],a=0;a<N.length;a++){var s=N[a];e>=s.latitude&&s.latitude>=n&&(t<=i&&t<=s.longitude&&s.longitude<=i?null!=r?-1!==r.indexOf(s.type)&&o.push(s):o.push(s):t>i&&(t<=s.longitude||s.longitude<=i)&&(null!=r?-1!==r.indexOf(s.type)&&o.push(s):o.push(s)))}return o}}}]),mainApp.factory("masonryService",["$log",function(e){var t;return{newMasonry:function(e,n){return(t=new Masonry(e,n)).bindResize(),t},getMasonry:function(){return t}}}]),mainApp.service("pushNotificationService",["$http","$log","$q","$rootScope","ENV",function(e,t,n,i,r){return{pushNotification:function(t,i,o){for(var a=n.defer(),s={message:i,androidDeviceList:[],iphoneDeviceList:[],textMessageList:[]},l=0;l<t.length;l++){var u=t[l];null!=u.originId&&null!=u.originId?"ANDROID"==u.subType?s.androidDeviceList.push(u.originId):"IPHONE"==u.subType&&s.iphoneDeviceList.push(u.originId):(u.type=TypeEnum.TEXT)&&s.textMessageList.push(u.id)}var c=r.SERVER_APP_PATH+"/comms/"+o+"/notification/send";return e({url:c,method:"POST",data:s}).then(function(e){a.resolve(e.data)}).catch(function(e){var t="An error occurred";500===e.status?t="An internal error occurred":401===e.status&&(t="User unauthorized"),a.reject(t)}),a.promise}}}]),mainApp.factory("twilioService",["$http","$log","$q","$rootScope","ENV",function(e,t,n,i,r){return Twilio.Device.ready(function(e){}
1),Twilio.Device.error(function(e){}),Twilio.Device.connect(function(e){i.$broadcast("connected")}),Twilio.Device.disconnect(function(e){i.$broadcast("disconnected")}),{sendText:function(t,i,o,a){var s=n.defer();return e({url:r.SERVER_APP_PATH+"/comms/"+t+"/sms/send",method:"POST",data:{auditId:a,to:i,message:o},headers:{"Content-Type":"application/json"}}).then(function(e){s.resolve(e.body)}).catch(function(e){var t="An error occurred";500===e.status?t="An internal error occurred":400===e.status&&(t="No phone numbers are currently assigned. Please contact support."),s.reject(t)}),s.promise},sendNotification:function(t,i,o){var a=n.defer();return e({url:r.SERVER_APP_PATH+"/comms/"+t+"/sms/notify/send",method:"POST",data:{toNumbers:i,message:o},headers:{"Content-Type":"application/json"}}).then(function(){a.resolve()}).catch(function(e){var t="An error occurred";500===e.status&&(t="An error occurred sending one or more of the messages"),a.reject(t)}),a.promise},makeCall:function(e,t,n){Twilio.Device.connect({PhoneNumber:e,group:t})},hangup:function(){Twilio.Device.disconnectAll()},getToken:function(){var t=n.defer();return e({method:"GET",url:r.SERVER_APP_PATH+"/comms/call/token"}).then(function(e){const n=e.data;Twilio.Device.setup(n,{debug:!0}),t.resolve(n)}),t.promise}}}]),mainApp.factory("userService",["$http","$q","$log","$rootScope","$window","ENV",function(e,t,n,i,r,o){return{getAllGroupUsers:function(n){var r=t.defer();return e.get(o.SERVER_APP_PATH+"/users/groups/"+n).then(function(e){r.resolve(e.data)}).catch(function(e){r.reject(e.data),i.verifyAuth(e.status)}),r.promise},updateEmail:n=>{let r=t.defer();return e.post(o.SERVER_APP_PATH+"/users/update-email",n).then(function(e){r.resolve()}).catch(function(e){r.reject(e.data),i.verifyAuth(e.status)}),r.promise},addUser:function(n){var r=t.defer();return e.post(o.SERVER_APP_PATH+"/users",n).then(function(e){r.resolve()}).catch(function(e){r.reject(e.data),i.verifyAuth(e.status)}),r.promise},updateUser:n=>{var r=t.defer();return e.put(o.SERVER_APP_PATH+"/users/"+n.id,n).then(function(e){r.resolve()}).catch(function(e){r.reject(e.data),i.verifyAuth(e.status)}),r.promise},deleteUser:function(n){var r=t.defer();return e.delete(o.SERVER_APP_PATH+"/users/"+n).then(function(e){r.resolve(e.data)}).catch(function(e){r.reject(e.data),i.verifyAuth(e.status)}),r.promise},getCookieExpiration:function(){let e=new r.Date;return new r.Date(e.getFullYear(),e.getMonth()+2,e.getDate())}}}]),mainApp.factory("websocketService",["$rootScope","$log","filterService","authService","ENV",function(e,t,n,i,r){var o={};return e.$on("LOGGED_OUT",function(){o.pusher&&(o.pusher.disconnect(),o.pusher=void 0)}),e.$on("LOGGED_IN",function(){if(!o.pusher){var e=new Pusher(r.PUSHER_TOKEN,{authEndpoint:r.SERVER_APP_PATH+"/users/pusher/authenticate?token="+i.user.details.token,cluster:r.PUSHER_CLUSTER_NAME}),t="private-"+i.user.details.group,n=e.subscribe(t);e.connection.bind("state_change",function(e){}),n.bind("audit",function(e){o.broadcast("audit",e)}),n.bind("inbox",function(e){o.broadcast("inbox",e)}),n.bind("event",function(e){o.broadcast("event",e)}),n.bind("account",function(e){o.broadcast("account",e)}),n.bind("notification",function(e){o.broadcast("notification",e)}),o.pusher=e}}),o.broadcast=function(e,t){o.callbacks&&angular.forEach(o.callbacks,function(i){(!0!==i.match||null==t||"audit"!==e||n.matches(t))&&null!=t&&e===i.dataType&&i.subscription(t)})},o.send=function(e){o.ws.send(e)},o.subscribe=function(e,t,n,i){o.callbacks||(o.callbacks={}),o.callbacks[e]={dataType:t,subscription:n,match:i}},o.close=function(e){void 0===e?o.callbacks=void 0:delete o.callbacks[e]},o}]),mainApp.directive("accessLevel",["authService",function(e){return{restrict:"A",link:function(t,n,i){var r,o,a=n.css("display");function s(){r&&o&&(e.authorize(o,r)?n.css("display",a):n.css("display","none"))}t.user=e.user,t.$watch("user",function(e){e.role&&(r=e.role),s()},!0),i.$observe("accessLevel",function(e){e&&(o=t.$eval(e)),s()})}}}]),mainApp.directive("activeNav",["$location",function(e){return{restrict:"A",link:function(t,n,i){var r=n.find("a")[0].href;
1t.location=e,t.$watch("location.absUrl()",function(e){r===e?n.addClass("active"):n.removeClass("active")})}}}]),function(){"use strict";var e=1===angular.version.major&&0===angular.version.minor;angular.module("ui-rangeSlider",[]).directive("rangeSlider",["$document","$filter","$log",function(t,n,i){var r=".rangeSlider",o=!1,a="horizontal",s=0,l=0,u=!0,c=!1,d=!1,p=window.navigator.pointerEnabled?{start:"pointerdown",move:"pointermove",end:"pointerup",over:"pointerdown",out:"mouseout"}:window.navigator.msPointerEnabled?{start:"MSPointerDown",move:"MSPointerMove",end:"MSPointerUp",over:"MSPointerDown",out:"mouseout"}:{start:"mousedown touchstart",move:"mousemove touchmove",end:"mouseup touchend",over:"mouseover touchstart",out:"mouseout"},g=p.start+r,f=p.move+r,m=p.end+r,v=p.over+r,h=p.out+r,y=function(e){try{return[e.clientX||e.originalEvent.clientX||e.originalEvent.touches[0].clientX,e.clientY||e.originalEvent.clientY||e.originalEvent.touches[0].clientY]}catch(e){return["x","y"]}},S=function(e){return e<0?0:e>100?100:e},E=function(e){return!isNaN(parseFloat(e))&&isFinite(e)},b={disabled:"=?",min:"=",max:"=",modelMin:"=?",modelMax:"=?",onHandleDown:"&",onHandleUp:"&",orientation:"@",step:"@",decimalPlaces:"@",filter:"@",filterOptions:"@",showValues:"@",pinHandle:"@",preventEqualMinMax:"@",attachHandleValues:"@"};return e&&(b.disabled="=",b.modelMin="=",b.modelMax="="),{restrict:"A",replace:!0,template:['<div class="ngrs-range-slider">','<div class="ngrs-runner">','<div class="ngrs-handle ngrs-handle-min"><i></i></div>','<div class="ngrs-handle ngrs-handle-max"><i></i></div>','<div class="ngrs-join"></div>',"</div>",'<div class="ngrs-value-runner">','<div class="ngrs-value ngrs-value-min" ng-show="showValues"><div>{{filteredModelMin}}</div></div>','<div class="ngrs-value ngrs-value-max" ng-show="showValues"><div>{{filteredModelMax}}</div></div>',"</div>","</div>"].join(""),scope:b,link:function(e,i,p,b){var T=angular.element(i),w=[i.find(".ngrs-handle-min"),i.find(".ngrs-handle-max")],A=[i.find(".ngrs-value-min"),i.find(".ngrs-value-max")],P=i.find(".ngrs-join"),M="left",C="right",R=0,I=0,D=!1;function _(e){"min"===e?(angular.element(w[0]).css("display","none"),angular.element(w[1]).css("display","block")):"max"===e?(angular.element(w[0]).css("display","block"),angular.element(w[1]).css("display","none")):(angular.element(w[0]).css("display","block"),angular.element(w[1]).css("display","block"))}function $(e){e?T.addClass("ngrs-disabled"):T.removeClass("ngrs-disabled")}function O(){e.min>e.max&&x("min must be less than or equal to max"),angular.isDefined(e.min)&&angular.isDefined(e.max)&&(E(e.min)||x("min must be a number"),E(e.max)||x("max must be a number"),I=e.max-e.min,[e.min,e.max],L())}function L(){if(e.modelMin>e.modelMax&&(N("modelMin must be less than or equal to modelMax"),e.modelMin=e.modelMax),(angular.isDefined(e.modelMin)||"min"===e.pinHandle)&&(angular.isDefined(e.modelMax)||"max"===e.pinHandle)){E(e.modelMin)||("min"!==e.pinHandle&&N("modelMin must be a number"),e.modelMin=e.min),E(e.modelMax)||("max"!==e.pinHandle&&N("modelMax must be a number"),e.modelMax=e.max);var t,i,r=S((e.modelMin-e.min)/I*100),o=S((e.modelMax-e.min)/I*100);if(e.attachHandleValues&&(t=r,i=o),e.modelMin=Math.max(e.min,e.modelMin),e.modelMax=Math.min(e.max,e.modelMax),e.filter&&e.filterOptions)e.filteredModelMin=n(e.filter)(e.modelMin,e.filterOptions),e.filteredModelMax=n(e.filter)(e.modelMax,e.filterOptions);else if(e.filter){var a,s,l=e.filter.split(":"),u=e.filter.split(":")[0],c=l.slice().slice(1);a=(c=c.map(function(e){return E(e)?+e:'"'==e[0]&&'"'==e[e.length-1]||"'"==e[0]&&"'"==e[e.length-1]?e.slice(1,-1):void 0})).slice(),s=c.slice(),a.unshift(e.modelMin),s.unshift(e.modelMax),e.filteredModelMin=n(u).apply(null,a),e.filteredModelMax=n(u).apply(null,s)}else e.filteredModelMin=e.modelMin,e.filteredModelMax=e.modelMax;e.min===e.max&&e.modelMin==e.modelMax?(angular.element(w[0]).css(M,"0%"),angular.element(w[1]).css(M,"100%"),e.attachHandleValues&&(angular.element(A[0]).css(M,"0%"),angular.element(A[1]).css(M,"100%")),angular.element(P).css(M,"0%").css(C,"0%")):(angular.element(w[0]).css(M,r+"%"),angular.element(w[1]).css(M,o+"%"),e.attachHandleValues&&(angular.element(A[0]).css(M,t+"%"),angular.element(A[1]).css(M,i+"%"),angular.element(A[1]).css(C,"auto")),angular.element(P).css(M,r+"%").css(C,100-o+"%"),r>95&&angular.element(w[0]).css("z-index",3))}}function k(n){var i=w[n];i.bind(g+"X",function(o){var a=(0===n?"ngrs-handle-min":"ngrs-handle-max")+"-down",s=((0===n?e.modelMin:e.modelMax)-e.min)/I*100,l=y(o),u=l,c=!1;angular.isFunction(e.onHandleDown)&&e.onHandleDown(),angular.element("body").bind("selectstart"+r,function(){return!1}),e.disabled||(D=!0,i.addClass("ngrs-down"),T.addClass("ngrs-focus "+a),angular.element("body").addClass("ngrs-touching"),t.bind(f,function(t){t.preventDefault();var r,o,a=y(t),d=e.step/I*100,p=((0===n?e.modelMax:e.modelMin)-e.min)/I*100;"x"!==a[0]&&(a[0]-=l[0],a[1]-=l[1],r=[u[0]!==a[0],u[1]!==a[1]],o=s+100*a[R]/(R?T.height():T.width()),o=S(o),e.preventEqualMinMax&&(0===d&&(d=1/I*100),0===n?p-=d:1===n&&(p+=d)),0===n?o=o>p?p:o:1===n&&(o=o<p?p:o),e.step>0&&o<100&&o>0&&(o=Math.round(o/d)*d),o>95&&0===n?i.css("z-index",3):i.css("z-index",""),r[R]&&o!=c&&(0===n?e.modelMin=parseFloat(parseFloat(o*I/100+e.min).toFixed(e.decimalPlaces)):1===n&&(e.modelMax=parseFloat(parseFloat(o*I/100+e.min).toFixed(e.decimalPlaces))),e.$apply(),c=o),u=a)}).bind(m,function(){angular.isFunction(e.onHandleUp)&&e.onHandleUp(),t.off(f),t.off(m),angular.element("body").removeClass("ngrs-touching"),D=!1,i.removeClass("ngrs-down"),i.removeClass("ngrs-over"),T.removeClass("ngrs-focus "+a)}))}).on(v,function(){i.addClass("ngrs-over")}).on(h,function(){D||i.removeClass("ngrs-over")})}function x(t){throw e.disabled=!0,new Error("RangeSlider: "+t)}function N(e){}e.filteredModelMin=e.modelMin,e.filteredModelMax=e.modelMax,p.$observe("disabled",function(t){angular.isDefined(t)||(e.disabled=o),e.$watch("disabled",$)}),p.$observe("orientation",function(t){angular.isDefined(t)||(e.orientation=a);for(var n,i=e.orientation.split(" "),r=0,o=i.length;r<o;r++)i[r]="ngrs-"+i[r];n=i.join(" "),T.addClass(n),"vertical"!==e.orientation&&"vertical left"!==e.orientation&&"vertical right"!==e.orientation||(M="top",C="bottom",R=1)}),p.$observe("step",function(t){angular.isDefined(t)||(e.step=s)}),p.$observe("decimalPlaces",function(t){angular.isDefined(t)||(e.decimalPlaces=l)}),p.$observe("showValues",function(t){angular.isDefined(t)?e.showValues="false"!==t:e.showValues=u}),p.$observe("pinHandle",function(t){angular.isDefined(t)?e.pinHandle="min"===t||"max"===t?t:null:e.pinHandle=null,e.$watch("pinHandle",_)}),p.$observe("preventEqualMinMax",function(t){angular.isDefined(t)?e.preventEqualMinMax="false"!==t:e.preventEqualMinMax=c}),p.$observe("attachHandleValues",function(t){angular.isDefined(t)?"true"===t||""===t?(e.attachHandleValues=!0,i.find(".ngrs-value-runner").addClass("ngrs-attached-handles")):e.attachHandleValues=!1:e.attachHandleValues=d}),e.$watch("min",O),e.$watch("max",O),e.$watch("modelMin",L),e.$watch("modelMax",L),e.$on("$destroy",function(){T.off(r),angular.element("body").off(r),t.off(r);for(var e=0,n=w.length;e<n;e++)w[e].off(r),w[e].off(r+"X")}),T.bind("selectstart"+r,function(e){return!1}).bind("click",function(e){e.stopPropagation()}),k(0),k(1)}}}]),window.requestAnimFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(e){window.setTimeout(e,1e3/60)}}(),mainApp.directive("audit",["$templateCache","$compile",function(e,t){return{scope:{view:"=",item:"=",event:"="},link:function(n,i,r){i.html(function(t,n){switch(t){case TypeEnum.TWITTER:return"list"==n?e.get("twitterListTemplate"):e.get("twitterGridTemplate");case TypeEnum.TEXT:return"list"==n?e.get("textListTemplate"):e.get("textGridTemplate");case TypeEnum.MOBILE_APP:return"list"==n?e.get("appListTemplate"):e.get("appGridTemplate");case TypeEnum.FACEBOOK:return"list"==n?e.get("facebookListTemplate"):e.get("facebookGridTemplate");case TypeEnum.INSTAGRAM:return"list"==n?e.get("instagramListTemplate"):e.get("instagramGridTemplate");case TypeEnum.OUTAGE:return"list"==n?e.get("outageListTemplate"):e.get("outageGridTemplate");case TypeEnum.LSR:return"list"==n?e.get("lsrListTemplate"):e.get("lsrGridTemplate");default:throw new Error("Invalid data passed to auditTemplate directive - type: "+t+" with view: "+n)}}(n.item.type,r.view)).show(),t(i.contents())(n)},restrict:"AE"}}]),mainApp.directive("onErrorSrc",function(){return{link:function(e,t,n){t.bind("error",function(){n.src!=n.onErrorSrc&&n.$set("src",n.onErrorSrc)})}}}),mainApp.directive("auditVisibilitySelector",["$templateCache","$compile",function(e,t){return{scope:!1,link:function(n,i,r){i.html(e.get("auditVisibilityTemplate")).show(),t(i.contents())(n)},restrict:"AE"}}]),mainApp.directive("autofill",function(){return{require:"ngModel",link:function(e,t,n,i){e.$on("autofill:update",function(){i.$setViewValue(t.val())})}}}),mainApp.directive("enterKey",["mapService",function(e){return function(t,n,i){n.bind("keydown keypress",function(n){13===n.which&&t.$apply(function(){e.multiplePolygonFinished()})})}}]),mainApp.directive("event",["$templateCache","$compile",function(e,t){return{scope:!1,link:function(n,i,r){i.html(e.get("eventTemplate")).show(),t(i.contents())(n)},restrict:"AE"}}]),mainApp.directive("eventVisibilitySelector",["$templateCache","$compile",function(e,t){return{scope:!1,link:function(n,i,r){i.html(e.get("eventVisibilityTemplate")).show(),t(i.contents())(n)},restrict:"AE"}}]),mainApp.directive("eventsTemplate",["$templateCache","$compile",function(e,t){return{scope:!1,link:function(n,i,r){i.html(e.get("eventsTemplate")).show(),t(i.contents())(n)},restrict:"AE"}}]),mainApp.directive("filters",["$templateCache","$compile",function(e,t){return{scope:!1,link:function(n,i,r){i.html(e.get("filtersTemplate.html")).show(),t(i.contents())(n)},restrict:"AE"}}]),mainApp.directive("compile",["$compile",function(e){return function(t,n,i){t.$watch(function(e){return e.$eval(i.compile)},function(i){n.html(i),e(n.contents())(t)})}}]),mainApp.directive("focusMe",["$timeout",function(e){return{scope:{trigger:"@focusMe"},link:function(t,n){t.$watch("trigger",function(t){"true"===t&&e(function(){n[0].focus()})})}}}]),mainApp.directive("icheck",["$timeout",function(e){return{require:"ngModel",link:function(t,n,i,r){return e(function(){var e=i.value,o=i.color,a="icheckbox_minimal-blue",s="iradio_minimal-blue";return"grey"==o?(a="icheckbox_minimal-grey",s="iradio_minimal-grey"):"green"==o&&(a="icheckbox_minimal-green",s="iradio_minimal-green"),t.$watch(i.ngModel,function(e){$(n).iCheck("update")}),$(n).iCheck({checkboxClass:a,radioClass:s}
1).on("ifChanged",function(o){if("checkbox"===$(n).attr("type")&&i.ngModel&&t.$apply(function(){return r.$setViewValue(o.target.checked)}),"radio"===$(n).attr("type")&&i.ngModel)return t.$apply(function(){return r.$setViewValue(e)})})})}}}]),mainApp.directive("dcJsonText",function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,i){i.$parsers.push(function(e){return JSON.parse(e)}),i.$formatters.push(function(e){return JSON.stringify(e)})}}}),mainApp.directive("regionSelector",["$templateCache","$compile",function(e,t){return{scope:!1,link:function(n,i,r){i.html(e.get("regionSelector")).show(),t(i.contents())(n)},restrict:"AE"}}]),mainApp.directive("keywordValidator",function(){var e=[/^[a-zA-Z0-9 ]*$/];return{require:"ngModel",link:function(t,n,i,r){r.$validators.passwordCharacters=function(t){for(var n=!0,i=0;i<e.length;i++){n=n&&e[i].test(t)}return n}}}}),mainApp.directive("logicalDate",["dateTimeService",function(e){return{restrict:"AE",scope:{date:"="},link:function(t,n,i){n.html(e.logicalDate(t.date)).show()}}}]),mainApp.directive("masonryWallDir",["masonryService",function(e){return{controller:["$scope","$element","$attrs",function(t,n,i){var r;r=i.masonryWallDir,this.wallContainer=n,this.masonryOptions=_.assign({},t.$eval(i.masonryWallOptions),{itemSelector:r}),this.masonry=e.newMasonry(this.wallContainer[0],this.masonryOptions);var o=this;this.debouncedReload=_.debounce(function(){o.masonry.reloadItems(),o.masonry.layout()},100)}]}}]),mainApp.directive("masonryItemDir",function(){return{scope:{item:"=",index:"=",first:"="},require:"^masonryWallDir",link:function(e,t,n,i){imagesLoaded(t,function(){e.$first?i.masonry.prepended(t):i.masonry.appended(t)}),e.$on("$destroy",i.debouncedReload)}}}),mainApp.directive("matchPercentage",["$templateCache","$compile",function(e,t){return{scope:!1,link:function(n,i,r){i.html(e.get("matchTemplate")).show(),t(i.contents())(n)},restrict:"AE"}}]),function(){"use strict";var e=8,t=9,n=13,i=27,r=32,o=38,a=40,s=37,l=39,u=46,c=188,d=["text","email","url"],p=angular.module("ngTagsInput",[]);p.directive("tagsInput",["$timeout","$document","$window","$q","tagsInputConfig","tiUtil",function(t,i,o,a,p,g){function f(e,t,n,i){var r,o,s,l,u={};return r=function(t){return g.safeToString(t[e.displayProperty])},o=function(t,n){t[e.displayProperty]=n},s=function(t){var i=r(t),o=i&&i.length>=e.minLength&&i.length<=e.maxLength&&e.allowedTagsPattern.test(i)&&!g.findInObjectArray(u.items,t,e.keyProperty||e.displayProperty);return a.when(o&&n({$tag:t})).then(g.promisifyValue)},l=function(e){return a.when(i({$tag:e})).then(g.promisifyValue)},u.items=[],u.addText=function(e){var t={};return o(t,e),u.add(t)},u.add=function(n){var i=r(n);return e.replaceSpacesWithDashes&&(i=g.replaceSpacesWithDashes(i)),o(n,i),s(n).then(function(){u.items.push(n),t.trigger("tag-added",{$tag:n})}).catch(function(){i&&t.trigger("invalid-tag",{$tag:n})})},u.remove=function(e){var n=u.items[e];return l(n).then(function(){return u.items.splice(e,1),u.clearSelection(),t.trigger("tag-removed",{$tag:n}),n})},u.select=function(e){e<0?e=u.items.length-1:e>=u.items.length&&(e=0),u.index=e,u.selected=u.items[e]},u.selectPrior=function(){u.select(--u.index)},u.selectNext=function(){u.select(++u.index)},u.removeSelected=function(){return u.remove(u.index)},u.clearSelection=function(){u.selected=null,u.index=-1},u.getItems=function(){return e.useStrings?u.items.map(r):u.items},u.clearSelection(),u}function m(e){return-1!==d.indexOf(e)}return{restrict:"E",require:"ngModel",scope:{tags:"=ngModel",text:"=?",templateScope:"=?",tagClass:"&",onTagAdding:"&",onTagAdded:"&",onInvalidTag:"&",onTagRemoving:"&",onTagRemoved:"&",onTagClicked:"&"},replace:!1,transclude:!0,templateUrl:"ngTagsInput/tags-input.html",controller:["$scope","$attrs","$element",function(e,t,n){e.events=g.simplePubSub(),p.load("tagsInput",e,t,{template:[String,"ngTagsInput/tag-item.html"],type:[String,"text",m],placeholder:[String,"Add a tag"],tabindex:[Number,null],removeTagSymbol:[String,String.fromCharCode(215)],replaceSpacesWithDashes:[Boolean,!0],minLength:[Number,3],maxLength:[Number,9007199254740991],addOnEnter:[Boolean,!0],addOnSpace:[Boolean,!1],addOnComma:[Boolean,!0],addOnBlur:[Boolean,!0],addOnPaste:[Boolean,!1],pasteSplitPattern:[RegExp,/,/],allowedTagsPattern:[RegExp,/.+/],enableEditingLastTag:[Boolean,!1],minTags:[Number,0],maxTags:[Number,9007199254740991],displayProperty:[String,"text"],keyProperty:[String,""],allowLeftoverText:[Boolean,!1],addFromAutocompleteOnly:[Boolean,!1],spellcheck:[Boolean,!0],useStrings:[Boolean,!1]}),e.tagList=new f(e.options,e.events,g.handleUndefinedResult(e.onTagAdding,!0),g.handleUndefinedResult(e.onTagRemoving,!0)),this.registerAutocomplete=function(){n.find("input");return{addTag:function(t){return e.tagList.add(t)},getTags:function(){return e.tagList.items},getCurrentTagText:function(){return e.newTag.text()},getOptions:function(){return e.options},getTemplateScope:function(){return e.templateScope},on:function(t,n){return e.events.on(t,n,!0),this}}},this.registerTagItem=function(){return{getOptions:function(){return e.options},removeTag:function(t){e.disabled||e.tagList.remove(t)}}}}],link:function(a,d,p,f){var m,v,h=[n,c,r,e,u,s,l],y=a.tagList,S=a.events,E=a.options,b=d.find("input"),T=["minTags","maxTags","allowLeftoverText"];m=function(){f.$setValidity("maxTags",y.items.length<=E.maxTags),f.$setValidity("minTags",y.items.length>=E.minTags),f.$setValidity("leftoverText",!(!a.hasFocus&&!E.allowLeftoverText)||!a.newTag.text())},v=function(){t(function(){b[0].focus()})},f.$isEmpty=function(e){return!e||!e.length},a.newTag={text:function(e){if(!angular.isDefined(e))return a.text||"";a.text=e,S.trigger("input-change",e)},invalid:null},a.track=function(e){return e[E.keyProperty||E.displayProperty]},a.getTagClass=function(e,t){var n=e===y.selected;return[a.tagClass({$tag:e,$index:t,$selected:n}),{selected:n}]},a.$watch("tags",function(e){if(e){if(y.items=g.makeObjectArray(e,E.displayProperty),E.useStrings)return;a.tags=y.items}else y.items=[]}
1),a.$watch("tags.length",function(){m(),f.$validate()}),p.$observe("disabled",function(e){a.disabled=e}),a.eventHandlers={input:{keydown:function(e){S.trigger("input-keydown",e)},focus:function(){a.hasFocus||(a.hasFocus=!0,S.trigger("input-focus"))},blur:function(){t(function(){var e=i.prop("activeElement"),t=e===b[0],n=d[0].contains(e);!t&&n||(a.hasFocus=!1,S.trigger("input-blur"))})},paste:function(e){e.getTextData=function(){var t=e.clipboardData||e.originalEvent&&e.originalEvent.clipboardData;return t?t.getData("text/plain"):o.clipboardData.getData("Text")},S.trigger("input-paste",e)}},host:{click:function(){a.disabled||v()}},tag:{click:function(e){S.trigger("tag-clicked",{$tag:e})}}},S.on("tag-added",a.onTagAdded).on("invalid-tag",a.onInvalidTag).on("tag-removed",a.onTagRemoved).on("tag-clicked",a.onTagClicked).on("tag-added",function(){a.newTag.text("")}).on("tag-added tag-removed",function(){a.tags=y.getItems(),f.$setDirty(),v()}).on("invalid-tag",function(){a.newTag.invalid=!0}).on("option-change",function(e){-1!==T.indexOf(e.name)&&m()}).on("input-change",function(){y.clearSelection(),a.newTag.invalid=null}).on("input-focus",function(){d.triggerHandler("focus"),f.$setValidity("leftoverText",!0)}).on("input-blur",function(){E.addOnBlur&&!E.addFromAutocompleteOnly&&y.addText(a.newTag.text()),d.triggerHandler("blur"),m()}).on("input-keydown",function(t){var i,o,d,p,f=t.keyCode,m={};g.isModifierOn(t)||-1===h.indexOf(f)||(m[n]=E.addOnEnter,m[c]=E.addOnComma,m[r]=E.addOnSpace,i=!E.addFromAutocompleteOnly&&m[f],o=(f===e||f===u)&&y.selected,p=f===e&&0===a.newTag.text().length&&E.enableEditingLastTag,d=(f===e||f===s||f===l)&&0===a.newTag.text().length&&!E.enableEditingLastTag,i?y.addText(a.newTag.text()):p?(y.selectPrior(),y.removeSelected().then(function(e){e&&a.newTag.text(e[E.displayProperty])})):o?y.removeSelected():d&&(f===s||f===e?y.selectPrior():f===l&&y.selectNext()),(i||d||o||p)&&t.preventDefault())}).on("input-paste",function(e){if(E.addOnPaste){var t=e.getTextData().split(E.pasteSplitPattern);t.length>1&&(t.forEach(function(e){y.addText(e)}),e.preventDefault())}})}}}]),p.directive("tiTagItem",["tiUtil",function(e){return{restrict:"E",require:"^tagsInput",template:'<ng-include src="$$template"></ng-include>',scope:{$scope:"=scope",data:"="},link:function(t,n,i,r){var o=r.registerTagItem(),a=o.getOptions();t.$$template=a.template,t.$$removeTagSymbol=a.removeTagSymbol,t.$getDisplayText=function(){return e.safeToString(t.data[a.displayProperty])},t.$removeTag=function(){o.removeTag(t.$index)},t.$watch("$parent.$index",function(e){t.$index=e})}}}]),p.directive("autoComplete",["$document","$timeout","$sce","$q","tagsInputConfig","tiUtil",function(e,r,s,l,u,c){function d(e,t,n){var i,r,o,a={};return o=function(){return t.tagsInput.keyProperty||t.tagsInput.displayProperty},i=function(e,n){return e.filter(function(e){return!c.findInObjectArray(n,e,o(),function(e,n){return t.tagsInput.replaceSpacesWithDashes&&(e=c.replaceSpacesWithDashes(e),n=c.replaceSpacesWithDashes(n)),c.defaultComparer(e,n)})})},a.reset=function(){r=null,a.items=[],a.visible=!1,a.index=-1,a.selected=null,a.query=null},a.show=function(){t.selectFirstMatch?a.select(0):a.selected=null,a.visible=!0},a.load=c.debounce(function(n,s){a.query=n;var u=l.when(e({$query:n}));r=u,u.then(function(e){u===r&&(e=c.makeObjectArray(e.data||e,o()),e=i(e,s),a.items=e.slice(0,t.maxResultsToShow),a.items.length>0?a.show():a.reset())})},t.debounceDelay),a.selectNext=function(){a.select(++a.index)},a.selectPrior=function(){a.select(--a.index)},a.select=function(e){e<0?e=a.items.length-1:e>=a.items.length&&(e=0),a.index=e,a.selected=a.items[e],n.trigger("suggestion-selected",e)},a.reset(),a}return{restrict:"E",require:"^tagsInput",scope:{source:"&",matchClass:"&"},templateUrl:"ngTagsInput/auto-complete.html",controller:["$scope","$element","$attrs",function(e,t,n){e.events=c.simplePubSub(),u.load("autoComplete",e,n,{template:[String,"ngTagsInput/auto-complete-match.html"],debounceDelay:[Number,100],minLength:[Number,3],highlightMatchedText:[Boolean,!0],maxResultsToShow:[Number,10],loadOnDownArrow:[Boolean,!1],loadOnEmpty:[Boolean,!1],loadOnFocus:[Boolean,!1],selectFirstMatch:[Boolean,!0],displayProperty:[String,""]}),e.suggestionList=new d(e.source,e.options,e.events),this.registerAutocompleteMatch=function(){return{getOptions:function(){return e.options},getQuery:function(){return e.suggestionList.query}}}}],link:function(e,r,s,l){var u,d=[n,t,i,o,a],p=e.suggestionList,g=l.registerAutocomplete(),f=e.options,m=e.events;f.tagsInput=g.getOptions(),u=function(e){return e&&e.length>=f.minLength||!e&&f.loadOnEmpty},e.templateScope=g.getTemplateScope(),e.addSuggestionByIndex=function(t){p.select(t),e.addSuggestion()},e.addSuggestion=function(){var e=!1;return p.selected&&(g.addTag(angular.copy(p.selected)),p.reset(),e=!0),e}
1,e.track=function(e){return e[f.tagsInput.keyProperty||f.tagsInput.displayProperty]},e.getSuggestionClass=function(t,n){var i=t===p.selected;return[e.matchClass({$match:t,$index:n,$selected:i}),{selected:i}]},g.on("tag-added tag-removed invalid-tag input-blur",function(){p.reset()}).on("input-change",function(e){u(e)?p.load(e,g.getTags()):p.reset()}).on("input-focus",function(){var e=g.getCurrentTagText();f.loadOnFocus&&u(e)&&p.load(e,g.getTags())}).on("input-keydown",function(r){var s=r.keyCode,l=!1;if(!c.isModifierOn(r)&&-1!==d.indexOf(s))return p.visible?s===a?(p.selectNext(),l=!0):s===o?(p.selectPrior(),l=!0):s===i?(p.reset(),l=!0):s!==n&&s!==t||(l=e.addSuggestion()):s===a&&e.options.loadOnDownArrow&&(p.load(g.getCurrentTagText(),g.getTags()),l=!0),l?(r.preventDefault(),r.stopImmediatePropagation(),!1):void 0}),m.on("suggestion-selected",function(e){!function(e,t){var n=e.find("li").eq(t),i=n.parent(),r=n.prop("offsetTop"),o=n.prop("offsetHeight"),a=i.prop("clientHeight"),s=i.prop("scrollTop");r<s?i.prop("scrollTop",r):r+o>a+s&&i.prop("scrollTop",r+o-a)}(r,e)})}}}]),p.directive("tiAutocompleteMatch",["$sce","tiUtil",function(e,t){return{restrict:"E",require:"^autoComplete",template:'<ng-include src="$$template"></ng-include>',scope:{$scope:"=scope",data:"="},link:function(n,i,r,o){var a=o.registerAutocompleteMatch(),s=a.getOptions();n.$$template=s.template,n.$index=n.$parent.$index,n.$highlight=function(n){return s.highlightMatchedText&&(n=t.safeHighlight(n,a.getQuery())),e.trustAsHtml(n)},n.$getDisplayText=function(){return t.safeToString(n.data[s.displayProperty||s.tagsInput.displayProperty])}}}}]),p.directive("tiTranscludeAppend",function(){return function(e,t,n,i,r){r(function(e){t.append(e)})}}),p.directive("tiAutosize",["tagsInputConfig",function(e){return{restrict:"A",require:"ngModel",link:function(t,n,i,r){var o,a,s=e.getTextAutosizeThreshold();(o=angular.element('<span class="input"></span>')).css("display","none").css("visibility","hidden").css("width","auto").css("white-space","pre"),n.parent().append(o),a=function(e){var t,r=e;return angular.isString(r)&&0===r.length&&(r=i.placeholder),r&&(o.text(r),o.css("display",""),t=o.prop("offsetWidth"),o.css("display","none")),n.css("width",t?t+s+"px":""),e},r.$parsers.unshift(a),r.$formatters.unshift(a),i.$observe("placeholder",function(e){r.$modelValue||a(e)})}}}]),p.directive("tiBindAttrs",function(){return function(e,t,n){e.$watch(n.tiBindAttrs,function(e){angular.forEach(e,function(e,t){n.$set(t,e)})},!0)}}),p.provider("tagsInputConfig",function(){var e={},t={},n=3;this.setDefaults=function(t,n){return e[t]=n,this},this.setActiveInterpolation=function(e,n){return t[e]=n,this},this.setTextAutosizeThreshold=function(e){return n=e,this},this.$get=["$interpolate",function(i){var r={};return r[String]=function(e){return e},r[Number]=function(e){return parseInt(e,10)},r[Boolean]=function(e){return"true"===e.toLowerCase()},r[RegExp]=function(e){return new RegExp(e)},{load:function(n,o,a,s){var l=function(){return!0};o.options={},angular.forEach(s,function(s,u){var c,d,p,g,f,m;c=s[0],d=s[1],p=s[2]||l,g=r[c],f=function(){var t=e[n]&&e[n][u];return angular.isDefined(t)?t:d},m=function(e){o.options[u]=e&&p(e)?g(e):f()},t[n]&&t[n][u]?a.$observe(u,function(e){m(e),o.events.trigger("option-change",{name:u,newValue:e})}):m(a[u]&&i(a[u])(o.$parent))})},getTextAutosizeThreshold:function(){return n}}}]}),p.factory("tiUtil",["$timeout","$q",function(e,t){var n={debounce:function(t,n){var i;return function(){var r=arguments;e.cancel(i),i=e(function(){t.apply(null,r)},n)}},makeObjectArray:function(e,t){if(!angular.isArray(e)||0===e.length||angular.isObject(e[0]))return e;var n=[];return e.forEach(function(e){var i={};i[t]=e,n.push(i)}),n},findInObjectArray:function(e,t,i,r){var o=null;return r=r||n.defaultComparer,e.some(function(e){if(r(e[i],t[i]))return o=e,!0}),o},defaultComparer:function(e,t){return n.safeToString(e).toLowerCase()===n.safeToString(t).toLowerCase()},safeHighlight:function(e,t){if(e=n.encodeHTML(e),!(t=n.encodeHTML(t)))return e;var i=new RegExp("&[^;]+;|"+function(e){return e.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}(t),"gi");return e.replace(i,function(e){return e.toLowerCase()===t.toLowerCase()?"<em>"+e+"</em>":e})},safeToString:function(e){return angular.isUndefined(e)||null==e?"":e.toString().trim()},encodeHTML:function(e){return n.safeToString(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")},handleUndefinedResult:function(e,t){return function(){var n=e.apply(null,arguments);return angular.isUndefined(n)?t:n}},replaceSpacesWithDashes:function(e){return n.safeToString(e).replace(/\s/g,"-")},isModifierOn:function(e){return e.shiftKey||e.ctrlKey||e.altKey||e.metaKey},promisifyValue:function(e){return e=!!angular.isUndefined(e)||e,t[e?"when":"reject"]()},simplePubSub:function(){var e={};return{on:function(t,n,i){return t.split(" ").forEach(function(t){e[t]||(e[t]=[]),(i?[].unshift:[].push).call(e[t],n)}),this},trigger:function(t,i){return(e[t]||[]).every(function(e){return n.handleUndefinedResult(e,!0)(i)}),this}}}};return n}]),p.run(["$templateCache",function(e){e.put("ngTagsInput/tags-input.html",'<div class="host" tabindex="-1" ng-click="eventHandlers.host.click()" ti-transclude-
1append><div class="tags" ng-class="{focused: hasFocus}"><ul class="tag-list"><li class="tag-item" ng-repeat="tag in tagList.items track by track(tag)" ng-class="getTagClass(tag, $index)" ng-click="eventHandlers.tag.click(tag)"><ti-tag-item scope="templateScope" data="::tag"></ti-tag-item></li></ul><input class="input" autocomplete="off" ng-model="newTag.text" ng-model-options="{getterSetter: true}" ng-keydown="eventHandlers.input.keydown($event)" ng-focus="eventHandlers.input.focus($event)" ng-blur="eventHandlers.input.blur($event)" ng-paste="eventHandlers.input.paste($event)" ng-trim="false" ng-class="{\'invalid-tag\': newTag.invalid}" ng-disabled="disabled" ti-bind-attrs="{type: options.type, placeholder: options.placeholder, tabindex: options.tabindex, spellcheck: options.spellcheck}" ti-autosize></div></div>'),e.put("ngTagsInput/tag-item.html",'<span ng-bind="$getDisplayText()"></span> <a class="remove-button" ng-click="$removeTag()" ng-bind="::$$removeTagSymbol"></a>'),e.put("ngTagsInput/auto-complete.html",'<div class="autocomplete" ng-if="suggestionList.visible"><ul class="suggestion-list"><li class="suggestion-item" ng-repeat="item in suggestionList.items track by track(item)" ng-class="getSuggestionClass(item, $index)" ng-click="addSuggestionByIndex($index)" ng-mouseenter="suggestionList.select($index)"><ti-autocomplete-match scope="templateScope" data="::item"></ti-autocomplete-match></li></ul></div>'),e.put("ngTagsInput/auto-complete-match.html",'<span ng-bind-html="$highlight($getDisplayText())"></span>')}])}(),angular.module("percentCircle-directive",[]).directive("percentCircle",["$timeout",function(e){return{restrict:"E",replace:!0,template:'<div class="pc-container"><div class="pc-border" ng-style="highlight"><div class="pc-circle"><span class="pc-percent">{{curPercent}}%</span></div></div></div>',scope:{percent:"=",colors:"=?",speed:"=?"},link:function(t,n,i){null==t.speed&&(t.speed=10),t.curPercent=0,t.highlight;var r,o={};function a(){t.colors||(t.colors={}),o.center=t.colors.center?t.colors.center:"#F5FBFC",o.highlight=t.colors.highlight?t.colors.highlight:"#2BCBED",o.remaining=t.colors.remaining?t.colors.remaining:"#C8E0E8",o.complete=t.colors.complete?t.colors.complete:"#D9534F",n[0].querySelector(".pc-border").style.backgroundColor=o.highlight,n[0].querySelector(".pc-circle").style.backgroundColor=o.center,s(t.curPercent)}function s(e){t.highlight=e<=180?{"background-image":"linear-gradient("+(90+e)+"deg, transparent 50%,"+o.remaining+" 50%),linear-gradient(90deg,"+o.remaining+" 50%, transparent 50%)"}:360==e?{"background-image":"linear-gradient(360deg, transparent 50%,"+o.complete+" 50%),linear-gradient(360deg,"+o.complete+" 50%, transparent 50%)"}:{"background-image":"linear-gradient("+(e-90)+"deg, transparent 50%,"+o.highlight+" 50%),linear-gradient(90deg,"+o.remaining+" 50%, transparent 50%)"}}function l(e){return e/100*360}a(),t.$watch("percent",function(n,i){if(!isNaN(n))if((n=Math.round(n))>100&&(n=100),n<0&&(n=0),t.speed){var o=i!==t.curPercent?t.curPercent:i;e.cancel(r),function n(i,o){i!=o&&(t.curPercent=i<o?i+1:i-1,s(l(t.curPercent)),r=e(function(){n(t.curPercent,o)},t.speed))}(o,n)}else t.curPercent=n,s(l(n))}),t.$watchCollection("colors",function(e,t){a()})}}}]),mainApp.directive("regionsTemplate",["$templateCache","$compile",function(e,t){return{scope:!1,link:function(n,i,r){i.html(e.get("regionsTemplate")).show(),t(i.contents())(n)},restrict:"AE"}}]),mainApp.directive("removeFromEvent",["$templateCache","$compile",function(e,t){return{scope:!1,link:function(n,i,r){i.html(e.get("removeFromEventTemplate")).show(),t(i.contents())(n)},restrict:"AE"}}]),mainApp.directive("ngRightClick",["$parse",function(e){return function(t,n,i){var r=e(i.ngRightClick);n.bind("contextmenu",function(e){t.$apply(function(){e.preventDefault(),r(t,{$event:e})})})}}]),angular.module("angular-bootstrap-select",[]).directive("selectpicker",["$parse",function(e){return{restrict:"A",link:function(t,n,i){n.selectpicker(e(i.selectpicker)()),n.selectpicker("refresh"),t.$watch(i.ngModel,function(e,r){t.$parent[i.ngModel]=e,t.$evalAsync(function(){i.ngOptions&&!/track by/.test(i.ngOptions)||n.val(e),n.selectpicker("refresh")})}),t.$on("$destroy",function(){t.$evalAsync(function(){n.selectpicker("destroy")})})}}}]),mainApp.directive("sentimentSelector",["$templateCache","$compile",function(e,t){return{scope:!1,link:function(n,i,r){i.html(e.get("sentimentTemplate")).show(),t(i.contents())(n)},restrict:"AE"}}]),mainApp.directive("slideable",function(){return{restrict:"C",compile:function(e,t){var n=e.html();return e.html('<div class="slideable_content" style="margin:0 !important; padding:0 !important" >'+n+"</div>"),function(e,t,n){n.duration=n.duration?n.duration:"1s",n.easing=n.easing?n.easing:"ease-in-out",t.css({overflow:"hidden",height:"0px",transitionProperty:"height",transitionDuration:n.duration,transitionTimingFunction:n.easing})}}}}).directive("slideToggle",function(){return{restrict:"A",link:function(e,t,n){var i,r;n.expanded=!1,t.bind("click",function(){if(i||(i=document.querySelector(n.slideToggle)),r||(r=i.querySelector(".slideable_content")),n.expanded)i.style.height="0px";else{r.style.border="1px solid rgba(0,0,0,0)";var e=r.clientHeight;r.style.border=0,i.style.height=e+"px"}n.expanded=!n.expanded})}}}),mainApp.directive("slimscroll",["$parse",function(e){return{restrict:"A",link:function(e,t,n){angular.element(t).slimScroll({position:"right",he
1ight:"auto",wheelStep:10})}}}]),mainApp.directive("stopEvent",function(){return{restrict:"A",link:function(e,t,n){t.bind("click",function(e){e.stopPropagation()})}}}),mainApp.directive("backgroundimage",function(){return{restrict:"AC",link:function(e,t,n){var i=n.usBackgroundImage;t.css({background:"url("+i+") no-repeat center center fixed","-webkit-background-size":"cover","-moz-background-size":"cover","-o-background-size":"cover","background-size":"cover",padding:"0",margin:"0",position:"absolute",width:"100%",height:"100%"})}}}),mainApp.filter("w3w",function(){return function(e){return e=e.replace(/\s*([a-zA-Z]+\.[a-zA-Z]+\.[a-zA-Z]+)\s*/," <a tooltip-append-to-body='true' uib-tooltip='"+window.lang.filters.zoomTo+"' href='javascript:;' ng-click='gotoW3wLocation(\"$1\")'>$1</a> ")}}),mainApp.filter("usernames",function(){return function(e,t){var n="https://twitter.com/$1";return"instagram"===t&&(n="https://instagram.com/$1"),e=e.replace(/@([A-Za-z]+[A-Za-z0-9]+)/g," <a href='"+n+"' target='_blank'>@$1</a> ")}}),mainApp.filter("hashtags",function(){return function(e,t){var n="https://twitter.com/hashtag/$1?src=hash";return"instagram"===t&&(n="http://instagram.com/tags/$1"),e=e.replace(/#([A-Za-z]+[A-Za-z0-9]+)/g," <a href='"+n+"' target='_blank'>#$1</a> ")}}),mainApp.filter("reverse",function(){return function(e){return e.slice().reverse()}}),mainApp.filter("startFrom",function(){return function(e,t){return t=+t,e.slice(t)}}),mainApp.filter("type",function(){return function(e,t){if("*"==t)return e;t=t.slice(1);for(var n=[],i=0;i<e.length;i++)e[i].type==t&&n.push(e[i]);return n}}),mainApp.filter("state",function(){return function(e,t){var n=[];if(t===StateEnum.ALL&&n.push(e[i]),t===StateEnum.NEW)for(var i=0;i<e.length;i++)e[i].state===StateEnum.NEW&&n.push(e[i]);else if(t===StateEnum.SEEN)for(i=0;i<e.length;i++)e[i].state===StateEnum.SEEN&&n.push(e[i]);else if(t===StateEnum.IRRELEVANT)for(i=0;i<e.length;i++)e[i].state===StateEnum.IRRELEVANT&&n.push(e[i]);else if(t===StateEnum.DELETED)for(i=0;i<e.length;i++)e[i].state===StateEnum.DELETED&&n.push(e[i]);return n}}),mainApp.filter("tel",function(){return function(e){return e?e.substr(0,2)+" ("+e.substr(2,3)+") "+e.substr(5,3)+"-"+e.substr(8):""}}),mainApp.filter("telNoParens",function(){return function(e){return e?e.substr(0,2)+"-"+e.substr(2,3)+"-"+e.substr(5,3)+"-"+e.substr(8):""}}),mainApp.filter("auditSearch",["$filter","filterService",function(e,t){function n(e,t){if(t)for(var n=0;n<t.length;n++){var i=t[n];if(i.message&&-1!==i.message.toLowerCase().indexOf(e))return!0}return!1}return function(i){var r,o=t.searchTerm(),a=[],s=[];for(r=0;r<i.length;r++){var l=i[r];t.getStateFilter()!==StateEnum.ALL&&l.state!==t.getStateFilter()||s.push(l)}if(o&&0!=o.length)for(o=o.toLowerCase(),r=0;r<s.length;r++){var u=s[r];(u.message&&-1!==u.message.toLowerCase().indexOf(o)||n(o,u.textMessages)||n(o,u.twitterDirectMessages))&&a.push(u)}else a=s;return e("orderBy")(a,"orderableDate","reverse")}}]),mainApp.filter("inboxSearch",["$filter",function(e){return function(t,n){var i=[];for(var r in t)if(t.hasOwnProperty(r)){var o=t[r];o.state===n&&i.push(o)}return e("orderBy")(i,"date","reverse")}}]),mainApp.filter("minutesToTime",function(){return function(e){var t=e%1440,n=Math.floor(t/60);return(n%12==0?12:n%12)+":"+(1e15+t%60+"").slice(-2)+(n>12?"PM":"AM")}}),mainApp.filter("nameFilter",function(){return function(e,t){if(void 0===e)return[];if(void 0===t||0===t.length)return e;for(var n=[],i=0;i<e.length;i++)-1!==e[i].name.toLowerCase().indexOf(t.toLowerCase())&&n.push(e[i]);return n}}),mainApp.filter("negativeKeywordFilter",function(){return function(e,t){if(void 0===e)return{};if(void 0===t||0===t.length)return e;var n=""+t=="true",i={};for(var r in e)e.hasOwnProperty(r)&&e[r].negative===n&&(i[r]=e[r]);return i}}),function(e){var t=["public","readOnly","general","video","labeler","admin","demo","superuser"],n={public:"*",anon:["public"],readOnly:["readOnly","general","video","admin","demo","superuser"],general:["readOnly","general","admin","demo","superuser"],video:["readOnly","general","video","admin","demo","superuser"],labeler:["labeler","admin","demo","superuser"],admin:["admin","demo","superuser"],demo:["demo","superuser"],superuser:["superuser"]};e.userRoles=function(e){var t="01",n={};for(var i in e){var r=parseInt(t,2);n[e[i]]={bitMask:r,title:e[i]},t=(r<<1).toString(2)}return n}(t),e.accessLevels=function(e,t){var n={};for(var i in e)if("string"==typeof e[i]){if("*"==e[i]){var r="";for(var o in t)r+="1";n[i]={bitMask:parseInt(r,2),title:e[i]}}}else{var r=0;for(var o in e[i])t.hasOwnProperty(e[i][o])&&(r|=t[e[i][o]].bitMask);n[i]={bitMask:r,title:e[i][o]}}return n}(n,e.userRoles)}("undefined"==typeof exports?this.routingConfig={}:exports);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.