function disableEvent(n){n.preventDefault()}(function(){"use strict";angular.module("app",["ngAnimate","ngCookies","ngSanitize","ngclipboard"])})(),function(){"use strict";angular.module("app").directive("draggableElement",["$document",function(n){return{link:function(t,i){function o(n){u=n.pageY-e;r=n.pageX-f;i.css({top:u+"px",left:r+"px"});$(i).attr("data-draggable-element-moved",!0).attr("data-top",u).attr("data-left",r)}function s(){n.off("mousemove",o);n.off("mouseup",s)}var f=0,e=0,r=0,u=0;i.css({position:"absolute",cursor:"move"});i.on("mousedown",function(t){t.preventDefault();r=t.currentTarget.offsetLeft;u=t.currentTarget.offsetTop;f=t.pageX-r;e=t.pageY-u;n.on("mousemove",o);n.on("mouseup",s)})}}}])}(),function(){"use strict";angular.module("app").directive("sideMenuResize",["$window",function(n){return function(t,i){var r=angular.element(n);t.element=i[0];t.getWindowDimensions=function(){return{height:n.innerHeight,width:n.innerWidth}};t.$watch(t.getWindowDimensions,function(n){t.windowHeight=n.height;t.windowWidth=n.width;t.style=function(){return{height:n.height-500+"px"}}},!0);r.bind("resize",function(){t.$apply()})}}])}(),function(){"use strict";angular.module("app").directive("toggle",["$timeout",function(n){return{link:function(t,i){i.on("mousedown",function(){var t=this;$(t).toggleClass("toggle-on").toggleClass("toggle-off").addClass("toggle-moving");n(function(){$(t).removeClass("toggle-moving")},200)})}}}])}(),function(){"use strict";angular.module("app").directive("windowResize",["$window",function(n){return function(t){var i=angular.element(n);t.getWindowDimensions=function(){return{height:n.innerHeight,width:n.innerWidth}};t.$watch(t.getWindowDimensions,function(n){t.windowHeight=n.height;t.windowWidth=n.width;t.style=function(){return{height:n.height+"px",width:n.width+"px"}}},!0);i.bind("resize",function(){t.$apply()})}}])}(),function(){"use strict";angular.module("app").filter("reverse",function(){return function(n){return n!=null?n.slice().reverse():null}})}(),function(){"use strict";function n(n,t,i){function u(n,t){var i=null;return r.forEach(function(r){r.group==t&&(n>=r.zoomLevel||r.zoomLevel==undefined)&&(i=r)}),i}function f(f,e){var o=t.defer();return r.length==0?n.get(i.apiAction("maplayer","getborderlayers")).success(function(n){r=n;o.resolve(u(f,e))}).error(function(n,t){o.reject(t)}):o.resolve(u(f,e)),o.promise}var r=[];return{getBorderInfo:f}}angular.module("app").factory("borderService",n);n.$inject=["$http","$q","urlService"]}(),function(){"use strict";function n(n){function i(n){var t="root";if(n){switch(n.level){case 1:t="index";break;case 2:t="theme";break;case 3:t="measure";break;default:throw new Error("invalid itm level");}t+=n.id}return t}function r(n){return t.get(n)}function u(n,i){t.put(n,i)}var t=n("itmCache");return{getCachedItem:r,setCachedItem:u,getItmCacheId:i}}angular.module("app").factory("cacheService",n);n.$inject=["$cacheFactory"]}(),function(){"use strict";function n(n,t,i,r){function u(u){var f=t.defer(),e="GetPackageWithMapDataIndex"+u,o=r.getCachedItem(e);return o?f.resolve({indexId:u,features:o}):n.get(i.apiAction("maplayer","getfeaturelayers",u)).success(function(n){r.setCachedItem(e,n);f.resolve({indexId:u,features:n})}).error(function(n,t){f.reject(t)}),f.promise}return{getFeatures:u}}angular.module("app").factory("featureService",n);n.$inject=["$http","$q","urlService","cacheService"]}(),function(){"use strict";function n(n,t,i,r){function u(u,f){var e=t.defer(),o="GetPackageWithMapData"+r.getItmCacheId(u)+"-Geo"+f,s=r.getCachedItem(o);if(s)e.resolve(s);else{var a=u.parentId?u.parentId:-1,h=u?u.id:-1,c=u.level,l=f?f:"";n.get(i.apiAction("Ibl","GetIblDataPackageWithMapData",null,["indexId="+u.indexId,"id="+h,"level="+c,"geographyValue="+l])).success(function(n){r.setCachedItem(o,n);e.resolve(n)}).error(function(n){console.error(n.ExceptionMessage);e.reject("An error has occurred when attempting to fetch the ranking data.")})}return e.promise}function f(u,f){var e=t.defer(),o="GetPackageWithGeographyFilterServiceData-Index"+u+"-Geo"+f,s=r.getCachedItem(o);return s?e.resolve(s):n.get(i.apiAction("Ibl","GetIblDataPackageWithGeographyFilter",null,["indexId="+u,"geographyValue="+f])).success(function(n){r.setCachedItem(o,n);e.resolve(n)}).error(function(n){console.error(n.ExceptionMessage);e.reject("An error has occurred when attempting to fetch the ranking data for "+f+".")}),e.promise}function e(u,f){var e=t.defer(),o="GetDashboardData-Geo"+f,s=r.getCachedItem(o);return s?e.resolve(s):n.get(i.apiAction("Ibl","GetDashboardData",null,["geographyType="+u+"&geographyValue="+f])).success(function(n){r.setCachedItem(o,n);e.resolve(n)}).error(function(n){console.error(n.ExceptionMessage);e.reject("An error has occurred when attempting to fetch the dashboard data for "+f+".")}),e.promise}function o(u,f){var e=t.defer(),o="GetDataDistribution-Id"+u,s=r.getCachedItem(o);return s?e.resolve(s):n.get(i.apiAction("Ibl","GetDataDistribution",null,["id="+u+"&level="+f])).success(function(n){r.setCachedItem(o,n);e.resolve(n)}).error(function(n){console.error(n.ExceptionMessage);e.reject("An error has occurred when attempting to fetch the data distribution for "+u+".")}),e.promise}return{getPackageWithMapData:u,getPackageWithGeographyFilter:f,getDashboardData:e,getDataDistribution:o}}angular.module("app").factory("iblService",n);n.$inject=["$http","$q","urlService","cacheService"]}(),function(){"use strict";function n(n,t,i,r){function u(u){var f=t.defer(),e="GetIndexInfo"+u,o=r.getCachedItem(e);return o?f.resolve(o):n.get(i.apiAction("info","getIndexInfo",null,["indexId="+u])).success(function(n){r.setCachedItem(e,n);f.resolve(n)}).error(function(n,t){f.reject(t)}),f.promise}return{getIndexInfo:u}}angular.module("app").factory("infoService",n);n.$inject=["$http","$q","urlService","cacheService"]}(),function(){"use strict";function n(n,t,i,r){function e(n,t){n&&n.forEach(function(n){n.parent=t})}function o(){return f}function s(f,o){var s=t.defer(),c="GetItems"+r.getItmCacheId(o),l=r.getCachedItem(c),a,h;return l?s.resolve(l):(a=o?o.id:-1,h=o?o.level+1:1,f=f?f:-1,n.get(i.apiAction("itm","getitems",null,["indexId="+f,"parentId="+a,"level="+h])).success(function(n){e(n,o);h==3&&n.forEach(function(n){u(n.id,null).then(function(t){n.nr=t},function(t){t>0&&loggingService.logError("CheckNR failed (ItmHierarchyController.hasNRData("+n.id+")): "+t)})});r.setCachedItem(c,n);s.resolve(n)}).error(function(n,t){s.reject(t)})),s.promise}function u(u,f){var e=t.defer(),o="HasNRData"+r.getItmCacheId(f)+u,s=r.getCachedItem(o);return s?e.resolve(s):n.get(i.apiAction("itm","getnotreliable",null,["measureId="+u])).success(function(n){r.setCachedItem(o,n);e.resolve(n)}).error(function(n,t){e.reject(t)}),e.promise}var f=[{id:1,name:"theme",title:"Topics",icon:"fa fa-2x fa-list"},{id:2,name:"feature",title:"Map features",icon:"icon-stack tabItem"},{id:4,name:"locate",title:"Locate yourself",icon:"fa fa-2x fa-map-marker"},{id:3,name:"info",title:"Information",icon:"fa fa-2x fa-info"},{id:5,name:"help",title:"Help",icon:"fa fa-2x fa-question"},];return{getTabs:o,getItems:s,hasNRData:u}}angular.module("app").factory("itmService",n);n.$inject=["$http","$q","urlService","cacheService"]}(),function(){"use strict";function n(n,t,i){function c(t){var i=n.defer();return r?r.addressToLocations({maxLocations:10,address:{SingleLine:t},outFields:["Loc_name"]},function(n){var t=l(n);i.resolve(t)},function(){i.reject("The locator service experienced an error trying to locating the address.")}):i.reject("The locator service is unavailable."),i.promise}function l(n){var i="",t,r=!1,e=-1,o=null;return n.some(function(n){if(n.score>80&&n.address.indexOf(", Washington")>=0&&n.address.indexOf(", Washington, District Of Columbia")==-1){r=!0;t=n.location;var s={address:i=n.address,score:e=n.score,locatorName:n.attributes.Loc_name};return o=new u(t,f,s,null),!0}return!1}),{found:r,fullAddress:i,score:e,geometry:t,graphic:o}}function a(n){t(["esri/request"],function(t){var i=o,r=t({url:i,content:{f:"json",where:"GEOID10 = '"+n+"'",returnExtentOnly:!0},handleAs:"json"});r.then(function(n){console.log("Success: ",n.extent)},function(n){console.log("Error: ",n.message)})})}function v(n){t(["esri/request"],function(t){var i=s,r=t({url:i,content:{f:"json",where:"GEOID20 = '"+n+"'",returnExtentOnly:!0},handleAs:"json"});r.then(function(n){console.log("Success: ",n.extent)},function(n){console.log("Error: ",n.message)})})}var u,e="https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer",r,f,o="https://fortress.wa.gov/doh/arcgis/arcgis/rest/services/WTN/Tracts/MapServer/0",s="https://fortress.wa.gov/doh/arcgis/arcgis/rest/services/WTN/Tracts2020/MapServer/0",h={locate:c,locateCensusTract:a,locate2020CensusTract:v};return t(["esri/tasks/locator","esri/symbols/PictureMarkerSymbol","esri/graphic"],function(n,t,o){u=o;f=new t({url:i.getFullUrl("Content/images/location-marker.png"),width:37.8,height:25.55,xoffset:12.6,yoffset:10.5});r=new n(e)}),h}angular.module("app").factory("locationService",n);n.$inject=["$q","require","urlService"]}(),function(){function n(n,t){function i(i){console.debug("Logging error: ");console.debug(i);n.post(t.action("logging","logEvent"),{message:i}).success(function(){}).error(function(n,t){console.debug("Unable to log error: "+t+": "+n)})}return{logError:i}}angular.module("app").factory("loggingService",n);n.$inject=["$http","urlService"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o){function ki(t,i){var u=n.defer();return s?u.resolve(s):r(["esri/map","esri/geometry/Extent","esri/dijit/HomeButton","esri/dijit/BasemapToggle"],function(n,r,f){var e=new r({xmin:-14292020.075139068,ymin:5413539.3120707236,xmax:-12726589.735859074,ymax:6549699.3005012814,spatialReference:{wkid:102100}});s=new n(t,{extent:e,basemap:g,logo:!1,showAttribution:!1,sliderPosition:"bottom-right",minZoom:yi});ft=new ni({map:s,basemap:ht},"basemapToggle");ft.startup();ft.hide();ui=new f({map:s},i);ui.startup();st=!0;u.resolve(s)}),u.promise}function di(n){tt(!1)&&(s.graphics.clear(),n.graphic!=null&&(s.graphics.add(n.graphic),s.centerAt(n.geometry),setTimeout(function(){s.setZoom(10)},500)))}function gi(n){var t=s.getLevel();n==undefined?n=b:b=n;u.getBorderInfo(t,b).then(function(n){yr(n)},function(n){n>0&&o.logError("Failed to load the border layer (map.service.adjustBorder): "+n)})}function nr(t,i,r,u,e,h){var c=s.getLevel();l!=null&&(r||u?yt(l.id):l.redraw());t.item.geographyType!=null&&(b=t.item.geographyType);f.getMapLayerInfo(c,b).then(function(r){var c=new gt(r.url),u=new dt,f;u.outFields=["Shape",ut()];u.returnGeometry=!0;u.spatialRelationship=esri.tasks.Query.SPATIAL_REL_INTERSECTS;u.outSpatialReference=s.spatialReference;u.where="1=1";u.geometry=i;f=n.defer();c.execute(u).then(function(n){tr(t,n,function(){e&&e.call(null,null)},function(n){o.logError("Failed to load the map data (mapService.getMapLayerInfo): "+n);h&&h.call(null,n)});f.resolve(n)},function(n){f.reject(n)})},function(n){o.logError("Failed to load the map layer (mapService.getMapLayerInfo): "+n);h&&h.call(null,n)})}function tr(n,t,i,r){var s,u,o,f;try{if(s=ut(),u=n.data.mapData,l=new kt({opacity:hi}),u!=null)for(o=0;o<t.features.length;o++){var e=t.features[o],h=0,c=!1,a=e.attributes[s];for(f=0;f<u.length;f++)if(u[f].mapGeographyFieldValue==a){h=u[f].rank;c=u[f].nr;e.attr("GeographyValue",u[f].geographyFieldValue);break}e=ur(e,h-1,a,c);l.add(e)}hr();or(l);ir(l);i&&i.call(null,null)}catch(v){r&&r.call(null,v)}}function ir(n){n.on("click",function(n){if(!i.mapIsLoading()){var r=n.graphic.attributes[ut()],t=n.graphic.symbol;p==r?(p=null,t.outline.color=k,t.outline.width=rt,e.emit("map-geography-clicked",{geography:null,geographyType:null,selectedColor:{red:t.color.r,green:t.color.g,blue:t.color.b},newColor:null})):(rr(),p=r,t.outline.color=h,t.outline.width=ei,e.emit("map-geography-clicked",{geography:r,geographyType:null,selectedColor:{red:t.color.r,green:t.color.g,blue:t.color.b},newColor:h}));n.graphic.draw()}});n.on("mouse-over",function(n){var i=n.graphic.attributes[ut()],t;p!=i&&(t=n.graphic.symbol,t.outline.color=a,t.outline.width=oi,e.emit("map-item-hover",{geography:i,selectedColor:{red:t.color.r,green:t.color.g,blue:t.color.b},selectedHighlightColor:{red:h.r,green:h.g,blue:h.b},newColor:a}));n.graphic.draw()});n.on("mouse-out",function(n){var i=n.graphic.attributes[ut()],t;p!=i&&(t=n.graphic.symbol,t.outline.color=k,t.outline.width=rt,e.emit("map-item-hover-clear",{geography:i,selectedColor:{red:t.color.r,green:t.color.g,blue:t.color.b},selectedHighlightColor:{red:h.r,green:h.g,blue:h.b},newColor:k}));n.graphic.draw()})}function rr(){l&&l.graphics.forEach(function(n){n.symbol.outline.color==h&&(n.symbol.outline.color=k,n.symbol.outline.width=rt,n.draw())})}function ur(n,t,i,r){var s=k,c=rt,g=t>=0&&t<10,nt=r?d.STYLE_FORWARD_DIAGONAL:w.STYLE_SOLID,v=!1,f,b,u,a,o;return p==i&&(s=h,c=ei,v=!0),f=new d(nt,new w(d.STYLE_SOLID,s,c)),g?(b=li[t],u=new y(b.color),f.setColor(u),r&&(a=new d(d.STYLE_SOLID,new w(w.STYLE_SOLID,s,c),u),o=new ri(null,a,n.attributes,null),o.setGeometry(n.geometry),o.setSymbol(a),l.add(o)),v&&e.emit("map-geography-selected",{geography:i,selectedColor:{red:u.r,green:u.g,blue:u.b},newColor:h})):f.setColor(si),n.setSymbol(f),n}function ut(){switch(b){case"county":return"FIPS";case"zipcode":return"ZIP";case"censustract":return"GEOID10";case"censustract2020":return"GEOID20";case"ach":return"CodeId";case"LHJ":return"Codeid";default:throw"Invalid geography type: "+b;}}function fr(n){tt(!0);var i=n.allLayers?new et(n.url):new ot(n.url,{mode:ot.MODE_ONDEMAND,outFields:["*"]});if(n.mapFields!=null&&n.mapFields.length!=0){i.setInfoTemplate(er(n.name,n.mapFields));i.on("mouse-down",function(){vt!=null&&t.cancel(vt);at=!0})}lr(i,n);v.length>0&&v.forEach(function(n){s.addLayer(n.layer,n.sortOrder)})}function er(n,t){var i=new ti;return i.setTitle(n),i.setContent(function(n){var i="<div>",r=n.attributes;return t.forEach(function(n){var f=r,t=f[n.Key],u;t!=undefined&&t!=null?i+="<span><b>"+n.Value+":<\/b>&nbsp;"+t+"<\/span><br/>":n.Key=="WTNURL"&&(u=n.Value.toString().split(";"),i+='<span><b>Url:<\/b>&nbsp;<a href="'+u[0]+'" target="_blank">'+u[1]+"<\/a><\/span><br/>")}),i+="<\/div>"}),i}function or(n){tt(!0);fi.push(s.addLayer(n,0).id);n.on("mouse-move",function(){at&&(vt=t(function(){at=!1;s.infoWindow.destroyDijits();s.infoWindow.hide()},500))})}function sr(n){tt(!0);var t=ar(n);t&&t.length>0&&s.removeLayer(t[0].layer)}function yt(n){tt(!0);var t=s.getLayer(n);t&&s.removeLayer(t)}function hr(){tt(!0);fi.forEach(function(n){yt(n)})}function cr(i){var r=n.defer();return i&&vr(),t(function(){r.resolve()},500),r.promise}function tt(n){if(!st&&!s&&n)throw"map service is not initialized";return st&&s}function lr(n,t){var i={id:t.id,layer:n,sortOrder:t.sortOrder,layerInfo:t};v.push(i);v.sort(function(n,t){return n.sortOrder-t.sortOrder})}function ar(n){var i,t=-1;return v.some(function(i,r){if(i.id==n)return t=r,!0}),t>-1&&(i=v.splice(t,1)),i}function vr(){v.length>0&&(v.forEach(function(n){s.removeLayer(n.layer)}),v=[])}function yr(n){var t,i,r;try{n&&(t=it?it.layer:null,i=it?it.name!=n.name:!0,i&&t&&s.removeLayer(t),i&&(r=s.addLayer(new et(n.url)),n.layer=r,it=n))}catch(u){console.error("error swapping border layers")}}function pr(){var n=s.getLevel();s.setZoom(n)}function wr(){s.reposition()}function br(){p=null}function kr(){return p}function pt(){return lt==nt?wi:pi}function dr(n,t){return vi(),t.forEach(function(t){t.borderHighlightColorRed!=h.r&&t.borderHighlightColorGreen!=h.g&&t.borderHighlightColorBlue!=h.b?t.rank==n?(t.borderHighlightColorRed=a.r,t.borderHighlightColorGreen=a.g,t.borderHighlightColorBlue=a.b,ai(t)):(t.borderHighlightColorRed=null,t.borderHighlightColorGreen=null,t.borderHighlightColorBlue=null):t.rank==n&&ai(t)}),t}function gr(n){return n.forEach(function(n){n.borderHighlightColorRed!=h.r&&n.borderHighlightColorGreen!=h.g&&n.borderHighlightColorBlue!=h.b&&(n.borderHighlightColorRed=null,n.borderHighlightColorGreen=null,n.borderHighlightColorBlue=null)}),vi(),n}function ai(n){l&&l.graphics.forEach(function(t){var i=t.symbol;i.color.r==n.red&&i.color.g==n.green&&i.color.b==n.blue&&(i.outline.color.r==h.r&&i.outline.color.g==h.g&&i.outline.color.b==h.b||(i.outline.color=a,i.outline.width=oi,t.draw()))})}function vi(){l&&l.graphics.forEach(function(n){var t=n.symbol;t.outline.color.r==a.r&&t.outline.color.g==a.g&&t.outline.color.b==a.b&&(t.outline.color=k,t.outline.width=rt,n.draw())})}function nu(){return s.extent.getCenter()}function tu(n){s.centerAt(n)}function iu(){return s.extent}function ru(n){r(["esri/geometry/Extent"],function(t){var i=new t({xmin:n.xmin,ymin:n.ymin,xmax:n.xmax,ymax:n.ymax,spatialReference:{wkid:n.spatialReference.wkid}});return s.setExtent(i)})}function uu(n){r(["esri/symbols/SimpleFillSymbol"],function(t){var i=new t(t.STYLE_NULL,new w(w.STYLE_SOLID,new y([0,255,200]),2),new y([0,255,200,.1]));return n.setSymbol(i),s.graphics.add(n)})}function fu(){return ft.toggle(),ct=wt(),wt()}function wt(){return ct==g?ht:g}function eu(){return ct}function ou(){return g}function su(n){switch(n){case g:return"Light Map";case ht:return"Earth Map"}}function hu(){return lt=bt(),li=pt(),bt()}function bt(){return lt==nt?ci:nt}function cu(){return nt}function lu(n){switch(n){case nt:return"Diverging";case ci:return"Sequential"}}function au(){try{var t=new ii({map:s,scalebarUnit:"english"})}catch(n){alert(n)}}var et,ot,kt,dt,gt,y,d,w,ni,ti,ii,ri,st=!1,s,ft,ui,v=[],it,b=null,l=null,fi=[],p=null,h=null,ei=5,k=null,rt=.5,a=null,oi=5,si=null,hi=.45,c=hi+.05,yi=6,g="gray",ht="national-geographic",ct=g,nt="color-palette-sequential",ci="color-palette-diverging",lt=nt,li=null,at=!1,vt=null,pi=[{color:"#053061",red:5,green:48,blue:97,opacity:c,rank:1,borderHighlightColorRed:null,borderHighlightColorGreen:null,borderHighlightColorBlue:null},{color:"#2166ac",red:33,green:102,blue:172,opacity:c,rank:2,borderHighlightColorRed:null,borderHighlightColorGreen:null,borderHighlightColorBlue:null},{color:"#4393c3",red:67,green:147,blue:195,opacity:c,rank:3,borderHighlightColorRed:null,borderHighlightColorGreen:null,borderHighlightColorBlue:null},{color:"#92c5de",red:146,green:197,blue:222,opacity:c,rank:4,borderHighlightColorRed:null,borderHighlightColorGreen:null,borderHighlightColorBlue:null},{color:"#d1e5f0",red:209,green:229,blue:240,opacity:c,rank:5,borderHighlightColorRed:null,borderHighlightColorGreen:null,borderHighlightColorBlue:null},{color:"#fddbc7",red:253,green:219,blue:199,opacity:c,rank:6,borderHighlightColorRed:null,borderHighlightColorGreen:null,borderHighlightColorBlue:null},{color:"#f4a582",red:244,green:165,blue:130,opacity:c,rank:7,borderHighlightColorRed:null,borderHighlightColorGreen:null,borderHighlightColorBlue:null},{color:"#d6604d",red:214,green:96,blue:77,opacity:c,rank:8,borderHighlightColorRed:null,borderHighlightColorGreen:null,borderHighlightColorBlue:null},{color:"#b2182b",red:178,green:24,blue:43,opacity:c,rank:9,borderHighlightColorRed:null,borderHighlightColorGreen:null,borderHighlightColorBlue:null},{color:"#67001f",red:103,green:0,blue:31,opacity:c,rank:10,borderHighlightColorRed:null,borderHighlightColorGreen:null,borderHighlightColorBlue:null},],wi=[{color:"#f7fcfd",red:247,green:252,blue:253,opacity:c,rank:1,borderHighlightColorRed:null,borderHighlightColorGreen:null,borderHighlightColorBlue:null},{color:"#e0ecf4",red:224,green:236,blue:244,opacity:c,rank:2,borderHighlightColorRed:null,borderHighlightColorGreen:null,borderHighlightColorBlue:null},{color:"#bfd3e6",red:191,green:211,blue:230,opacity:c,rank:3,borderHighlightColorRed:null,borderHighlightColorGreen:null,borderHighlightColorBlue:null},{color:"#9ebcda",red:158,green:188,blue:218,opacity:c,rank:4,borderHighlightColorRed:null,borderHighlightColorGreen:null,borderHighlightColorBlue:null},{color:"#8c96c6",red:140,green:150,blue:198,opacity:c,rank:5,borderHighlightColorRed:null,borderHighlightColorGreen:null,borderHighlightColorBlue:null},{color:"#8c6bb1",red:140,green:107,blue:177,opacity:c,rank:6,borderHighlightColorRed:null,borderHighlightColorGreen:null,borderHighlightColorBlue:null},{color:"#88419d",red:136,green:65,blue:157,opacity:c,rank:7,borderHighlightColorRed:null,borderHighlightColorGreen:null,borderHighlightColorBlue:null},{color:"#810f7c",red:129,green:15,blue:124,opacity:c,rank:8,borderHighlightColorRed:null,borderHighlightColorGreen:null,borderHighlightColorBlue:null},{color:"#49006a",red:73,green:0,blue:106,opacity:c,rank:9,borderHighlightColorRed:null,borderHighlightColorGreen:null,borderHighlightColorBlue:null},{color:"#4d004b",red:77,green:0,blue:75,opacity:c,rank:10,borderHighlightColorRed:null,borderHighlightColorGreen:null,borderHighlightColorBlue:null},],li=pt(),bi={init:ki,setLocation:di,adjustBorder:gi,addLayer:fr,removeLayer:yt,removeFeatureLayer:sr,reset:cr,renderRankedLayer:nr,refresh:pr,clearSelectedGeography:br,getSelectedGoegraphy:kr,getColorPalette:pt,highlightRank:dr,clearRankHighlight:gr,reposition:wr,getMapCenter:nu,getMapExtent:iu,centerMapAtPoint:tu,toggleBaseMap:fu,getDefaultMap:ou,getNextMap:wt,getCurrentMap:eu,getDisplayNameOfMap:su,togglePalette:hu,getDefaultPalette:cu,getNextPalette:bt,getDisplayNameOfPalette:lu,createScaleBar:au,setMapExtent:ru,addMapGraphicsSymbol:uu};return r(["esri/layers/ArcGISDynamicMapServiceLayer","esri/layers/FeatureLayer","esri/layers/GraphicsLayer","esri/tasks/query","esri/tasks/QueryTask","esri/Color","esri/symbols/SimpleFillSymbol","esri/symbols/SimpleLineSymbol","esri/dijit/BasemapToggle","esri/InfoTemplate","esri/dijit/Scalebar","esri/graphic"],function(n,t,i,r,u,f,e,o,s,c,l,v){et=n;ot=t;kt=i;dt=r;gt=u;y=f;d=e;w=o;ni=s;ti=c;ii=l;ri=v;h=new y([255,216,0]);k=new y([0,0,0]);a=new y([1,1,1]);si=new y([0,0,0,0])}),bi}angular.module("app").factory("mapService",n);n.$inject=["$q","$timeout","$rootScope","require","borderService","mapLayerService","topic","loggingService"]}(),function(){"use strict";function n(n,t,i){function u(n,t){var i=null;return r.forEach(function(r){r.group==t&&(n>=r.zoomLevel||r.zoomLevel==undefined)&&(i=r)}),i}function f(f,e){var o=t.defer();return r.length==0?n.get(i.apiAction("maplayer","GetQuantileLayers")).success(function(n){r=n;o.resolve(u(f,e))}).error(function(n,t){o.reject(t)}):o.resolve(u(f,e)),o.promise}var r=[];return{getMapLayerInfo:f}}angular.module("app").factory("mapLayerService",n);n.$inject=["$http","$q","urlService"]}(),function(){"use strict";function n(n){function t(t,i,r){i=i||angular.noop;r=r||angular.noop;n.require(t||[],function(){var n=arguments;i.apply(this,n)},function(){var n=arguments;r.apply(this,n)})}return t}angular.module("app").factory("require",n);n.$inject=["$window"]}(),function(){"use strict";function n(){function r(i,r){var u=t(i);n[u]&&n[u].forEach(function(n){typeof n=="function"&&n.call(this,r)})}function u(i,r){var u=t(i);u&&(n[u]||(n[u]=[]),n[u].push(r))}function f(i,r){var u=t(i),f;u&&(f=n[u].indexOf(r),f>=0&&n[u].splice(f,1))}function t(n){var r="",t,i,u;if(n&&(t=n.split("-"),t.length>1))for(r=t[0],i=1;i<t.length;i++)u=t[i],r+=u.charAt(0).toUpperCase()+u.substring(1);return r}var i={emit:r,on:u,off:f},n={};return i}angular.module("app").factory("topic",n)}(),function(){"use strict";function n(n){function o(n,t,i,r){return u({ctrl:n,action:t,id:i,query:r,isApi:!1})}function s(n){var i=t;return h(i,"/")||(i+="/"),i+n}function h(n,t){return n.indexOf(t,n.length-t.length)!==-1}function c(n,i,f,e){var o=r?"p=false":"p=true";return e||(e=[]),e.push(o),u({ctrl:n,action:i,id:f,query:e,isApi:!0,basePath:t})}function u(n){var f=n.isApi?"api":"",o=n.ctrl||"",s=n.action||"",h=n.id||"",r=n.query||[],u=n.basePath,t=r.length>0?"?":"",i;return r.forEach(function(n){t+=n+"&"}),t&&(t=t.substring(0,t.lastIndexOf("&"))),i=e+"/"+f+"/"+o+"/"+s+"/"+h+t,u!=null&&(i=u+i),i.replace("//","/")}function l(n){var t=null,i=document.createElement("a");return i.href=n!=""?n:window.location,t=i.pathname,t.length>0&&t.indexOf("/")!=0&&(t="/"+t),t}function a(){return t}var f={action:o,apiAction:c,getFullBasePath:a,getFullUrl:s},e=n.path().toLowerCase().replace("/home","").replace("/index","").replace("/testpage","").replace("//","/"),t=l(n.path()),i=n.$$absUrl.split("?"),r=!1;return i.length>1&&(r=i[1].toLowerCase().indexOf("preview")!==-1),f}angular.module("app").factory("urlService",n);n.$inject=["$location"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s){function d(n){h.mapitemindex=n}function g(){c();angular.element(t).bind("resize",function(){c();n.$apply()});u.on("header-toggle-show",function(n){h.menuAtTopOfPage=n.hidden;c()})}function nt(n,t){var i=!1,o,e;if(angular.forEach(h.items,function(n){n.downloadRank&&(i=!0,n.downloadRank=!1)}),i||angular.forEach(h.items,function(n){angular.forEach(n.items,function(n){n.downloadRank&&(i=!0,n.downloadRank=!1)})}),!i){if(o=n.selected,l(h.items),n.level==1&&(a(n,h.items),h.selectedIndex=n.id,v()),n.selected=!0,n.expanded=n.level<3&&!n.expanded,n.level<3&&!n.childrenLoaded&&(n.childrenLoaded=!0,f.getItems(k(),n).then(function(t){t.forEach(function(t){n.items.push(t);c()});u.emit("itm-menu-item-populated",n)})),(n.urlMapCode==null||n.urlMapCode.length==0)&&n.level==1)h.mapurlcode="";else if(n.level==1)h.mapurlcode=r.absUrl()+"Map/"+n.urlMapCode;else switch(n.level){case 2:h.mapurlcode=r.absUrl()+"Map/"+n.parent.urlMapCode;break;case 3:h.mapurlcode=r.absUrl()+"Map/"+n.parent.parent.urlMapCode;break;case 4:h.mapurlcode=r.absUrl()+"Map/"+n.parent.parent.parent.urlMapCode;break;case 5:h.mapurlcode=r.absUrl()+"Map/"+n.parent.parent.parent.parent.urlMapCode}o||(e=w(n),sendPageHit(e.pageTitlePath,e.pagePath),u.emit("itm-menu-item-click",{name:n.name,id:n.id,level:n.level,rank:n.rank,item:n,selection:e}));u.emit("iblm-toggle-nr",{nr:n.level==3&&n.nr==!0});t.cancelBubble=!0}}function p(n,t){var i=!1,o,e;(angular.forEach(h.items,function(n){n.downloadRank&&(i=!0,n.downloadRank=!1)}),i||angular.forEach(h.items,function(n){angular.forEach(n.items,function(n){n.downloadRank&&(i=!0,n.downloadRank=!1)})}),i)||(o=n.selected,l(h.items),n.level==1&&(a(n,h.items),h.selectedIndex=n.id,v()),n.selected=!0,n.expanded=n.level<3&&!n.expanded,n.level<3&&!n.childrenLoaded&&(n.childrenLoaded=!0,f.getItems(k(),n).then(function(i){i.forEach(function(t){n.items.push(t);c()});t!=null&&p(n.items[t]);u.emit("itm-menu-item-populated",n)})),o||(e=w(n),sendPageHit(e.pageTitlePath,e.pagePath),u.emit("itm-menu-item-click",{name:n.name,id:n.id,level:n.level,rank:n.rank,item:n,selection:e})),u.emit("iblm-toggle-nr",{nr:n.level==3&&n.nr==!0}),n.urlMapCode.length>0&&(h.mapurlcode=r.absUrl()+"Map/"+n.urlMapCode))}function c(){h.contentHeight=tt();$(".tabContent").css("max-height",h.contentHeight+"px")}function tt(){var n=$(window).height(),t=150;return n=n-400,h.menuAtTopOfPage&&(n=n+150),n=n-140,t>n&&(n=t),n}function w(n){var o=null,s=null,c=null,i=null,r=null,u=null,f="/IBL",e="",l=[],t;return n&&h.items&&(t=b(),t&&(o=t.name,i=t.id,h.items.forEach(function(i){i.id==t.id&&i.items.forEach(function(t){if(n.level>=2){var i=null;switch(n.level){case 2:i=n.id;break;case 3:t.items&&t.items.forEach(function(r){r.id==n.id&&(i=t.id)})}i==t.id&&(s=t.name,r=t.id,t.items&&t.items.forEach(function(t){n.level==3&&t.id==n.id?(c=t.name,u=t.id):n.level==2&&l.push(t.name)}))}else l.push(t.name)})}))),i!=null&&(f+="/"+i,e+=o),r!=null&&(f+="/"+r,e+=" > "+s),u!=null&&(f+="/"+u,e+=" > "+c),{selectedIndex:o,selectedTheme:s,selectedMeasure:c,selectedIndexId:i,selectedThemeId:r,selectedMeasureId:u,pagePath:f,pageTitlePath:e,childrenNames:l}}function l(n){n&&n.length>0&&n.forEach(function(n){n.selected=!1;l(n.items)})}function a(n,t){t&&t.length>0&&t.forEach(function(t){(n==null||n.id!=t.id)&&(t.rank=null,t.items&&t.items.length>0&&t.items.forEach(function(n){n.rank=null;n.items&&n.items.length>0&&n.items.forEach(function(n){n.rank=null})}))})}function it(n){var t=n!=null&&n.parent?n.parent.items:h.items;t&&t.forEach(function(t){t!==n&&(t.expanded=!1,t.items&&t.items.forEach(function(n){n.expanded=!1}))})}function b(){var n=null;return h.items&&h.items.forEach(function(t){t.expanded&&(n=t)}),n}function k(){var n=b();return n!=null?n.id:null}function v(){h.items&&h.items.forEach(function(n){h.selectedIndex!=n.id&&(n.visible=!1)})}function rt(){it(null);h.items&&h.items.forEach(function(n){n.visible=!0});h.selectedIndex=null}function ut(){u.on("map-rank-changed",function(t){var r,u;if(t!=null&&t.index!=null){for(r=0;r<h.items.length;r++)if(u=h.items[r],u.id==t.index.id){u.rank=t.index.rank;u.items.forEach(function(n){t.index.themes.forEach(function(t){n.id==t.id&&(n.rank=t.rank,n.items.forEach(function(n){t.measures.forEach(function(t){n.id==t.id&&(n.rank=t.rank)})}))})});break}}else a(null,h.items),n.$digest();i(y,100)});u.on("palette-toggled",function(){y()})}function y(){var i=o.getColorPalette(),n=!0,t="black",r="lightgray";$("span.badge.badgeOverride").each(function(u,f){var o=$(f).text(),s=parseInt(o),e,h;parseInt(o)&&s>=1?(e=i[s-1],h="rgba("+e.red+","+e.green+","+e.blue+","+e.opacity+")",n&&($("span.rankLabel").css("background-color","transparent").css("color",t).css("border","1px solid transparent"),n=!1),$(this).css("background-color",h).css("color",t).css("border","1px solid "+r)):$(this).css("background-color","").css("color","").css("border","")})}function ft(n,t){t.preventDefault();t.stopPropagation();n.downloadRank=!0;try{s.getPackageWithMapData(n,null).then(function(t){var i,u,r;(h.data=t,i=et({data:h.data,topic:n.name}),i!=null)&&(u=n.name+".csv",navigator.msSaveBlob?navigator.msSaveBlob(new Blob([i],{type:"text/csv;charset=utf-8;"}),u):i.match(/^data:text\/csv/i)||(i="data:text/csv;charset=utf-8,"+i),t=encodeURI(i),r=document.getElementById("ranklink"),r.setAttribute("href",t),r.setAttribute("download",u),r.click())})}catch(i){throw i;}}function et(n){var t,e,o,r,f,s,h,u,i,c;if(u=n.data.mapData,u==null||!u.length)return null;for(s=n.colDelimiter||",",h=n.lineDelimiter||"\n",r=Object.keys(u[0]),o=[],f=[],i=0;i<r.length;i++)(r[i]=="geographyFieldValue"||r[i]=="rank")&&(o.push(r[i]),r[i]=="geographyFieldValue"&&f.push("State FIPS Code"),r[i]=="rank"&&f.push("Rank"));return c=(new Date).toDateString(),t="Topic: "+n.topic+" - Ranking Data - "+c+"\n",t+="Source: IBL - "+encodeURI("https://fortress.wa.gov/doh/wtn/WTNIBL/")+"\n",t+="Geography: "+n.data.geographyType+"\n",t+=f.join(s),t+=h,u.forEach(function(n){e=0;o.forEach(function(i){e>0&&(t+=s);t+=n[i];e++});t+=h}),t}var h=this;h.items=[];h.click=nt;h.selectedIndex=null;h.hideUnSelected=v;h.showAllIndices=rt;h.updateRankColors=y;h.contentHeight=0;h.menuAtTopOfPage=!1;h.menuIndex=window.menuIndex;h.init=d;h.mapitemindex=null;h.childitemid=null;h.mapurlcode="";h.rankDownload=ft;g();f.getItems(null,null).then(function(n){h.items=n;ut();h.mapitemindex!=null&&h.items.forEach(function(n){if(n.id==h.mapitemindex)return p(n,h.childitemid),!1})},function(n){n>0&&e.logError("Initialization failed (ItmHierarchyController.getItems): "+n)})}angular.module("app").controller("ItmHierarchyController",n);n.$inject=["$scope","$window","$timeout","$location","topic","itmService","loggingService","mapService","iblService"]}(),function(){"use strict";function n(n,t,i){function f(){u(!r.hidden)}function u(n){r.hidden=n;r.arrowDirection="fa fa-chevron-"+(r.hidden?"up":"down")}var r=this;r.hidden=!1;r.arrowDirection="fa fa-chevron-down";r.sliderClick=f;!1&&t(function(){r.hidden||u(!0)},7e3);i.on("map-mouse-down",function(){r.hidden||(u(!0),n.$digest())});i.on("itm-menu-item-click",function(){r.hidden||u(!0)})}angular.module("app").controller("FooterController",n);n.$inject=["$scope","$timeout","topic"]}(),function(){"use strict";function n(n,t,i){function f(){u(!r.hidden)}function u(n){r.hidden=n;r.arrowDirection="fa fa-chevron-"+(r.hidden?"down":"up");i.emit("header-toggle-show",r)}var r=this;r.hidden=!1;r.arrowDirection="fa fa-chevron-up";r.sliderClick=f;!1&&t(function(){r.hidden||u(!0)},7e3);i.on("map-mouse-down",function(){r.hidden||(u(!0),n.$digest())});i.on("itm-menu-item-click",function(){r.hidden||u(!0)})}angular.module("app").controller("HeaderController",n);n.$inject=["$scope","$timeout","topic"]}(),function(){"use strict";function n(n,t,i,r,u){function c(){u.on("header-toggle-show",function(n){n.hidden?i(function(){o.addClass("menuTopOfScreen")},170):o.removeClass("menuTopOfScreen")});u.on("iblm-toggle-nr",function(n){f.showNRLegend=n.nr})}function l(n,t){f.selectedTab=n;t.preventDefault()}function a(){f.hidden&&s()}function s(){f.hidden||(f.innerContentsVisible=f.hidden);f.hidden=!f.hidden;f.arrowDirection=f.hidden?h:e;f.hidden||i(function(){f.innerContentsVisible=!f.hidden},200)}function v(n,t){trackEvent("WTNPortalLink","click",n,t)}var h="fa fa-chevron-right",e="fa fa-chevron-left",o=t,f=this;f.hidden=!1;f.innerContentsVisible=!f.hidden;f.arrowDirection=e;f.selectedTab=1;f.moveToTopOfPage=!1;f.tabs=r.getTabs();f.setTab=l;f.sliderClick=s;f.sliderShow=a;f.trackLink=v;f.showNRLegend=!1;f.data=null;c()}angular.module("app").controller("IblMenuController",n);n.$inject=["$scope","$element","$timeout","itmService","topic","iblService"]}(),function(){"use strict";function n(n,t,i,r){function f(n){n.selected=!n.selected;i.emit("feature-item-click",n)}var u=this;u.selectedItmIndex=-1;u.loaded=!1;u.layers=[];u.click=f;i.on("itm-menu-item-click",function(i){for(var f=-1,e=i.item;e;)f=e.id,e=e.parent;u.selectedItmIndex!=f&&(u.layers=[],u.loaded=!1,u.selectedItmIndex=f,t.reset(!0).then(function(){n.getFeatures(f).then(function(n){u.loaded=!0;u.layers=n.features;u.layers.forEach(function(n){n.selected&&t.addLayer(n)})},function(n){r.logError("itm-menu-item-click (FeatureController): "+n)})}))})}angular.module("app").controller("FeatureController",n);n.$inject=["featureService","mapService","topic","loggingService"]}(),function(){"use strict";function n(n,t,i){function u(){t.on("itm-menu-item-click",function(n){n.level==1&&i.getIndexInfo(n.id).then(function(n){r.informationText=n})})}var r=this;r.informationText=null;u()}angular.module("app").controller("InformationTabController",n);n.$inject=["$sanitize","topic","infoService"]}(),function(){"use strict";function n(n,t,i){function f(n){n.keyCode===13&&r.findClick()}function e(){r.locating=!0;n.locate(r.address).then(function(n){t.emit("locator-address-located",n)},function(n){loggingService.logError("(LocateTabController.findClick): "+n)}).finally(function(){r.locating=!1})}function o(){r.locating=!0;var n="https://fortress.wa.gov/doh/arcgis/arcgis/rest/services/WTN/Tracts/MapServer/0/query?where=GEOID10=%27"+r.censustract+"%27&returnExtentOnly=false&returnGeometry=true&f=json";i.get(n).then(function(n){t.emit("locator-censustract-located",n);console.log=n},function(n){console.log=n}).finally(function(){r.locating=!1;console.log="finally"})}function s(){r.locating=!0;var n="https://fortress.wa.gov/doh/arcgis/arcgis/rest/services/WTN/Tracts/MapServer";require(["esri/tasks/FindTask","esri/tasks/FindParameters"],function(t,i){var e=new t(n),f=new i;f.layerIds=[0];f.returnGeometry=!0;f.searchFields=["GEOID10"];f.searchText=r.censustract;e.execute(f,u)});r.locating=!1}function h(){r.locating=!0;var n="https://fortress.wa.gov/doh/arcgis/arcgis/rest/services/WTN/Tracts2020/MapServer";require(["esri/tasks/FindTask","esri/tasks/FindParameters"],function(t,i){var e=new t(n),f=new i;f.layerIds=[0];f.returnGeometry=!0;f.searchFields=["GEOID20"];f.searchText=r.censustract;e.execute(f,u)});r.locating=!1}function u(n){n.length>0?t.emit("locator-censustract-located",n[0]):r.find2020TractClick()}var r=this;r.address="";r.censustract="";r.locating=!1;r.keyPress=f;r.findClick=e;r.findTractClick=s;r.find2020TractClick=h;r.findCensusTractClick=o}angular.module("app").controller("LocateTabController",n);n.$inject=["locationService","topic","$http"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o){function it(n){n.on("load",function(){u.createScaleBar()});n.on("mouse-down",function(){f.emit("map-mouse-down")});n.on("zoom-end",function(){u.adjustBorder()});n.on("resize",function(){tt=u.getMapCenter()});n.on("extent-change",function(n){h!=null&&(!v||n.levelChange||n.delta&&n.delta.x+n.delta.y!=0)&&rt(n)});f.on("locator-address-located",function(n){u.setLocation(n)});f.on("feature-item-click",function(n){n.selected?u.addLayer(n):u.removeFeatureLayer(n.id)});f.on("locator-censustract-located",function(n){var t=n.feature.geometry,i=t.getExtent();u.setMapExtent(i);u.addMapGraphicsSymbol(n.feature)});f.on("map-item-hover",function(n){s.colorPalette&&(s.colorPalette.forEach(function(t){t.red==n.selectedColor.red&&t.green==n.selectedColor.green&&t.blue==n.selectedColor.blue&&t.borderHighlightColorRed!=n.selectedHighlightColor.red&&t.borderHighlightColorGreen!=n.selectedHighlightColor.green&&t.borderHighlightColorBlue!=n.selectedHighlightColor.blue&&(t.borderHighlightColorRed=n.newColor.r,t.borderHighlightColorGreen=n.newColor.g,t.borderHighlightColorBlue=n.newColor.b)}),c(),i.$apply())});f.on("map-item-hover-clear",function(n){s.colorPalette&&(s.colorPalette.forEach(function(t){t.red==n.selectedColor.red&&t.green==n.selectedColor.green&&t.blue==n.selectedColor.blue&&t.borderHighlightColorRed!=n.selectedHighlightColor.red&&t.borderHighlightColorGreen!=n.selectedHighlightColor.green&&t.borderHighlightColorBlue!=n.selectedHighlightColor.blue&&(t.borderHighlightColorRed=null,t.borderHighlightColorGreen=null,t.borderHighlightColorBlue=null)}),c(),i.$apply())});f.on("itm-menu-item-click",function(n){var t=n.item;ft(n);u.reset(!1).then(function(){var i=w(u.getSelectedGoegraphy(),h);h=n;v=!1;s.isLoadingData=!0;b=l;st();n.level==1&&(u.adjustBorder(t.geographyType),l=n.id);e.getPackageWithMapData(t,i).then(function(t){h.data=t;u.refresh();n.level<3&&f.emit("map-rank-changed",t)},function(n){o.logError("item-menu-item-click (MapController.wireEvents): "+n)})});f.on("itm-menu-item-populated",function(n){var t=[];n.items&&n.items.forEach(function(n){t.push(n.name)});a=t})});f.on("map-layer-changed",function(){s.isLoadingData=!1;i.$digest()});f.on("map-geography-selected",function(n){d(n)});f.on("map-geography-clicked",function(n){if(h!=null){if(n.geography!=null){var t=w(n.geography,h);s.isLoadingData=!0;e.getPackageWithGeographyFilter(l,t).then(function(n){f.emit("map-rank-changed",n);s.isLoadingData=!1},function(n){s.isLoadingData=!1;o.logError("map-geography-clicked (MapController.wireEvents): "+n)})}else f.emit("map-rank-changed",null);d(n)}});f.on("data-distribution-hover-in",function(n){u.highlightRank(n,s.colorPalette)});f.on("data-distribution-hover-out",function(){u.clearRankHighlight(s.colorPalette)})}function d(n){s.colorPalette&&(s.colorPalette.forEach(function(t){t.red==n.selectedColor.red&&t.green==n.selectedColor.green&&t.blue==n.selectedColor.blue?n.newColor==null?(t.borderHighlightColorRed=null,t.borderHighlightColorGreen=null,t.borderHighlightColorBlue=null):(t.borderHighlightColorRed=n.newColor.r,t.borderHighlightColorGreen=n.newColor.g,t.borderHighlightColorBlue=n.newColor.b):n.newColor!=null&&t.borderHighlightColorRed==n.newColor.r&&t.borderHighlightColorGreen==n.newColor.g&&t.borderHighlightColorBlue==n.newColor.b&&(t.borderHighlightColorRed=null,t.borderHighlightColorGreen=null,t.borderHighlightColorBlue=null)}),c(),i.$evalAsync())}function rt(n){s.currentDate=new Date;u.renderRankedLayer(h,n.extent,n.levelChange,b!=l,function(){f.emit("map-layer-changed");s.rankedLayerHasBeenDisplayed=!0;i.$digest()},function(){s.isLoadingData=!1});v=!0}function w(n,t){if(t==undefined&&(t=h),t!=null&&t.data!=null&&t.data.mapData!=null)for(var i=0;i<t.data.mapData.length;i++)if(t.data.mapData[i].mapGeographyFieldValue==n)return t.data.mapData[i].geographyFieldValue;return null}function ut(){window.print()}function ft(n){n&&(k=n.selection.selectedIndex,y=n.selection.selectedTheme,p=n.selection.selectedMeasure,a=n.selection.childrenNames)}function et(){var n=k;return y!=null&&(n+=" -> "+y),p!=null&&(n+=" -> "+p),n}function ot(){var n=null;return a&&a.forEach(function(t){n==null?n=t:n+=", "+t}),n}function c(){var i=angular.element(document.querySelector("#legend")).find("div"),n,t,r;if(i)for(n=0;n<i.length;n++)t=i[n],r=t.getAttribute("data-rank"),r!=undefined&&s.colorPalette.forEach(function(n){n.rank==r&&(t.style.borderColor=n.borderHighlightColorRed==null?"transparent":"rgb("+n.borderHighlightColorRed+","+n.borderHighlightColorGreen+","+n.borderHighlightColorBlue+")")})}function st(){s.colorPalette&&s.colorPalette.forEach(function(n){n.borderHighlightColorRed=null;n.borderHighlightColorGreen=null;n.borderHighlightColorBlue=null});c()}function ht(n){s.colorPalette&&(u.highlightRank(n,s.colorPalette),c(),f.emit("legend-hover-in",n))}function ct(n){s.colorPalette&&(u.clearRankHighlight(s.colorPalette),c(),f.emit("legend-hover-out",n))}function lt(){return h!=null&&h.item!=null?h.item.geographyType:null}function at(){var t,n;return u.toggleBaseMap(),t=u.getCurrentMap(),s.nextBaseMap=u.getNextMap(),n=$($("#mapToggle>img")[0]).attr("src"),n=n.replace(t,s.nextBaseMap),$($("#mapToggle>img")[0]).attr("src",n),s.nextBaseMap}function vt(){return s.nextBaseMap==null&&(s.nextBaseMap=u.getNextMap()),u.getDisplayNameOfMap(s.nextBaseMap)}function yt(){s.isLoadingData=!0;u.togglePalette();s.colorPalette=u.getColorPalette();s.nextPalette=u.getNextPalette();u.renderRankedLayer(h,u.getMapExtent(),!0,!0,pt);var n=s.nextPalette=="color-palette-sequential";return f.emit("palette-toggled",n),s.nextPalette}function pt(){s.isLoadingData=!1;i.$evalAsync()}function wt(){return s.nextPalette==null&&(s.nextPalette=u.getNextPalette()),u.getDisplayNameOfPalette(s.nextPalette)}function bt(){return s.isLoadingData}var h=null,g=n[0].id,nt=n.children()[0].id,l=null,b=null,v=!1,k="N/A",y=null,p=null,a=[],tt=null,s=this;s.isLoadingData=!1;s.colorPalette=null;s.nextColorPalette=null;s.rankedLayerHasBeenDisplayed=!1;s.print=ut;s.currentDate=new Date;s.nextBaseMap=null;s.nextPalette=null;s.getSelection=et;s.getSections=ot;s.legendHoverIn=ht;s.legendHoverOut=ct;s.toggleBaseMap=at;s.getDisplayNameOfNextMap=vt;s.togglePalette=yt;s.getDisplayNameOfNextPalette=wt;u.init(g,nt).then(function(n){it(n);u.adjustBorder();s.colorPalette=u.getColorPalette();s.nextBaseMap=u.getNextMap();s.nextPalette=u.getNextPalette();t.getGeographyValue=w;t.getGeographyType=lt;t.mapIsLoading=bt},function(n){o.logError("Initialization failed (MapController.init): "+n)})}angular.module("app").controller("MapController",n);n.$inject=["$element","$rootScope","$scope","$window","mapService","topic","iblService","loggingService"]}(),function(){"use strict";function n(n,t,i){function e(){i.on("help-show",function(){r.visible=!0})}function o(){var n=new Date;n.setDate(n.getDate()+365);document.cookie="lastVersionUsed="+u+";expires="+n.toGMTString()+";";r.visible=!1}var u=angular.element(document.getElementById("Version")).val(),f=t.lastVersionUsed,r=this;r.visible=!1;r.close=o;f&&f==u||(r.visible=!0);e()}angular.module("app").controller("IntroController",n);n.$inject=["$scope","$cookies","topic"]}(),function(){"use strict";function n(n){function i(){n.emit("help-show")}var t=this;t.showHelp=i}angular.module("app").controller("HelpTabController",n);n.$inject=["topic"]}(),function(){angular.module("app").config(["$provide",function(n){n.decorator("$exceptionHandler",["$delegate","$injector",function(n,t){return function(i,r){var u=t.get("loggingService");u.logError(i.message+" (cause: "+r+")");n(i,r)}}])}])}(),function(){"use strict";function n(n,t,i,r,u,f,e,o){function d(){f.on("map-geography-clicked",function(t){t.geography==null?p():(s.isGeo=!0,e.getDashboardData(n.getGeographyType(),n.getGeographyValue(t.geography)).then(function(n){w();s.data=n;!a&&n.sections.length>0&&(s.currentSection=n.sections[0].SectionName);c(!0,!0);(!a||s.continuousCycle)&&v(!1);a=!0},function(n){p();o.logError("DashBoardController.wireEvents: "+n)}))});f.on("itm-menu-item-click",function(){});f.on("data-distribution-toggle",function(n){n&&c(!1,!1)})}function g(){c(!0,!0)}function nt(){c(!1,!0)}function c(n,t){s.visible=n;s.buttonVisible=s.isGeo&&!n?!0:!1;n&&window.setTimeout(function(){ot(s.data)},500);t&&f.emit("dashboard-toggle",n)}function p(){s.visible=!1;s.buttonVisible=!1}function tt(n){b();s.currentSection=n}function w(){l!=null&&r.cancel(l)}function b(){s.continuousCycle=!1;w()}function it(){s.continuousCycle=!0;v()}function rt(){s.continuousCycle?b():it()}function v(n){n==undefined&&(n=!0);s.continuousCycle&&s.data!=null&&s.data.sections.length>0&&(n&&(s.currentSection=s.data.sections[ft()].SectionName),l=r(v,s.cycleTime))}function ut(){var t=-1,n;if(s.data!=null)for(n=0;n<s.data.sections.length;n++)if(s.data.sections[n].SectionName==s.currentSection){t=n;break}return t}function ft(){for(var n=ut(),t=n;t==n||s.data.sections[n].ViewName!="Dashboard";)if(n+=1,s.data!=null&&n>s.data.sections.length-1)return 0;return n}function k(n){n!=null&&(s.isMagnified=!s.isMagnified);s.isMagnified?(h("racePieChart",320,430,!0),h("genderBarChart",330,440),h("populationLineChart",330,440)):(h("racePieChart",180,320,!1),h("genderBarChart",180,330),h("populationLineChart",180,330));r(et,50)}function et(){var n=$(s.rootElement).find(".dashBoardContainer"),r=u.innerHeight,f=u.innerWidth,e=n.height(),o=n.width(),t=parseInt(n.attr("data-left")),i=parseInt(n.attr("data-top"));i!=undefined&&t!=undefined&&(t+o>f||i+e>r||t<0||i<0)&&n.css({top:"",left:""})}function h(n,t,i,r){var u=$("#"+n).data("kendoChart");r!=undefined&&(u.options.seriesDefaults.labels.visible=r);u.options.chartArea.height=t;u.options.chartArea.width=i;u.refresh()}function y(n,t,i){var e=$(".k-tooltip"),o=e.closest("#"+t),u=o.find(".k-tooltip");if(u.length!==0){$(u).removeClass("dashboard-tooltip-reposition");var s=u[0],h=$(s).css("left"),f=parseInt(h.replace("px",""));if(isNaN(f))if(i)r(function(){y(n,t,!1)},250);else return;f>=195?$(u).addClass("dashboard-tooltip-reposition"):$(u).removeClass("dashboard-tooltip-reposition")}}function ot(n){n.charts!=null&&n.charts.forEach(function(n){switch(n.chartCode){case"Population":st(n);break;case"Race":ht(n);break;case"Gender":ct(n)}});k(null)}function st(n){var t=$("#populationLineChart");t.kendoChart({title:{text:n.title,position:"top",color:"#333333",padding:1,margin:1},legend:{visible:!1},chartArea:{margin:1,height:180},seriesDefaults:{type:"line",style:"smooth"},seriesColors:n.seriesColors,series:[{name:"Population",data:n.data}],valueAxis:{labels:{format:"n0"},line:{visible:!1},axisCrossingValue:-10},categoryAxis:{categories:n.categories,majorGridLines:{visible:!1}},tooltip:{visible:!0,format:"n0",template:"#= series.name #: #= kendo.format('{0:n0}', value) #"}});t.data("kendoChart").bind("legendItemClick",disableEvent);t.data("kendoChart").bind("seriesHover",function(n){y(n,"populationLineChart",!0)})}function ht(n){var t=$("#racePieChart");t.kendoChart({title:{text:n.title,position:"top",color:"#333333",padding:1,margin:1},legend:{visible:!0,position:"right",height:240,offsetY:10,padding:1,margin:1},seriesDefaults:{labels:{visible:!1,background:"transparent",template:"#= category #: \n #= value#%"}},chartArea:{margin:1,height:180},seriesColors:n.seriesColors,series:[{type:"pie",startAngle:150,data:n.data,border:{width:1,color:"#919191"}}],tooltip:{visible:!0,template:"${category}: ${value}%"}});t.data("kendoChart").bind("legendItemClick",disableEvent)}function ct(n){var t=$("#genderBarChart");t.kendoChart({title:{text:n.title,position:"top",color:"#333333",padding:1,margin:1},legend:{visible:!0,position:"right",height:240,offsetY:10,padding:1,margin:1},seriesDefaults:{type:"bar"},chartArea:{margin:1,height:180},seriesColors:n.seriesColors,series:n.data,valueAxis:{max:n.maxValue,line:{visible:!1},minorGridLines:{visible:!1},labels:{step:2,format:"n0"}},categoryAxis:{categories:n.categories,majorGridLines:{visible:!1}},tooltip:{visible:!0,template:"#= series.name #: #= kendo.format('{0:n0}', value) #"}});t.data("kendoChart").bind("legendItemClick",disableEvent);t.data("kendoChart").bind("seriesHover",function(n){y(n,"genderBarChart",!0)})}var l=null,a=!1,s=this;s.visible=!1;s.isGeo=!1;s.buttonVisible=!1;s.show=g;s.hide=nt;s.data=null;s.currentSection=null;s.continuousCycle=!0;s.cycleTime=4e3;s.isMagnified=!1;s.rootElement=i;s.changeSection=tt;s.toggleCycling=rt;s.magnifySection=k;d()}angular.module("app").controller("DashBoardController",n);n.$inject=["$rootScope","$scope","$element","$timeout","$window","topic","iblService","loggingService"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o){function w(){f.on("itm-menu-item-click",function(n){n.level<3?a():(s.packageName=n.name,e.getDataDistribution(n.id,n.level).then(function(n){s.data=n;h||(h=!0,s.buttonVisible=!0);s.visible?l(n):s.buttonVisible=!0},function(n){a();o.logError("DataDistributionController.wireEvents: "+n)}))});f.on("dashboard-toggle",function(n){n&&c(!1,!1)});f.on("legend-hover-in",function(){});f.on("legend-hover-out",function(){});f.on("palette-toggled",function(n){s.useDefaultPalette=n;l(s.data)})}function b(){c(!0,!0)}function k(){c(!1,!0)}function c(n,t){h&&(s.visible=n,s.buttonVisible=!n,n&&window.setTimeout(function(){l(s.data)},500),t&&f.emit("data-distribution-toggle",n))}function a(){s.visible=!1;s.buttonVisible=!1}function v(n){s.isMagnified=n;s.isMagnified?y("dataDistributionBarChart",400,530):y("dataDistributionBarChart",180,408);r(d,50)}function d(){var n=$(s.rootElement).find(".dashBoardContainer"),r=u.innerHeight,f=u.innerWidth,e=n.height(),o=n.width(),t=parseInt(n.attr("data-left")),i=parseInt(n.attr("data-top"));i!=undefined&&t!=undefined&&(t+o>f||i+e>r||t<0||i<0)&&n.css({top:"",left:""})}function y(n,t,i,r){var u=$("#"+n).data("kendoChart");r!=undefined&&(u.options.seriesDefaults.labels.visible=r);u.options.chartArea.height=t;u.options.chartArea.width=i;u.refresh()}function p(n,t,i){var e=$(".k-tooltip"),o=e.closest("#"+t),u=o.find(".k-tooltip");if(u.length!==0){$(u).removeClass("dashboard-tooltip-reposition");var s=u[0],h=$(s).css("left"),f=parseInt(h.replace("px",""));if(isNaN(f))if(i)r(function(){p(n,t,!1)},250);else return;f>=195?$(u).addClass("dashboard-tooltip-reposition"):$(u).removeClass("dashboard-tooltip-reposition")}}function l(n){n!=null&&n.charts!=null&&n.charts.forEach(function(n){switch(n.chartCode){case"DataDistribution":g(n)}})}function g(n){var t=$("#dataDistributionBarChart");t.kendoChart({legend:{visible:!1},series:[{type:"boxPlot",median:{color:"grey"},colorField:s.useDefaultPalette?"divergingColor":"sequentialColor",data:n.data}],categoryAxis:{title:{text:"Rank",font:"12px sans-serif",margin:{top:15}},categories:n.categories,majorGridLines:{visible:!1},labels:{rotation:"auto"}},valueAxis:{labels:{format:"{0}"}},tooltip:{visible:!0,format:"Median: {2}"}});t.data("kendoChart").bind("legendItemClick",disableEvent);t.data("kendoChart").bind("seriesHover",function(n){f.emit("data-distribution-hover-in",n.category);p(n,"dataDistributionBarChart",!0)});t.data("kendoChart").bind("plotSeriesHover",function(){f.emit("data-distribution-hover-out")});v(s.isMagnified)}var h=!1,s=this;s.visible=!1;s.buttonVisible=!1;s.show=b;s.hide=k;s.data=null;s.isMagnified=!1;s.rootElement=i;s.magnifySection=v;s.packageName=null;s.useDefaultPalette=!0;w()}angular.module("app").controller("DataDistributionController",n);n.$inject=["$rootScope","$scope","$element","$timeout","$window","topic","iblService","loggingService"]}()