{"version":3,"sources":["scripts/app-ef989d44ce.js"],"names":["angular","module","routeConfig","$stateProvider","config","$urlRouterProvider","state","url","templateUrl","title","sidebarMeta","order","amChartConfig","baConfigProvider","layoutColors","colors","AmCharts","themes","blur","themeName","AmChart","color","defaultText","backgroundColor","AmCoordinateChart","primary","danger","warning","success","info","primaryDark","warningLight","successDark","successLight","primaryLight","warningDark","AmStockChart","AmSlicedChart","labelTickColor","labelTickAlpha","AmRectangularChart","zoomOutButtonColor","zoomOutButtonRollOverAlpha","zoomOutButtonImage","AxisBase","axisColor","axisAlpha","gridAlpha","gridColor","ChartScrollbar","backgroundAlpha","graphFillAlpha","graphLineAlpha","selectedBackgroundColor","selectedBackgroundAlpha","ChartCursor","cursorColor","cursorAlpha","AmLegend","AmGraph","lineAlpha","GaugeArrow","alpha","nailAlpha","innerRadius","nailRadius","startWidth","borderAlpha","nailBorderAlpha","GaugeAxis","tickColor","tickAlpha","tickLength","minorTickLength","axisThickness","bandAlpha","TrendLine","lineColor","AreasSettings","colorSolid","unlistedAreasAlpha","unlistedAreasColor","outlineColor","outlineAlpha","outlineThickness","rollOverColor","rollOverOutlineColor","selectedOutlineColor","selectedColor","unlistedAreasOutlineColor","unlistedAreasOutlineAlpha","LinesSettings","ImagesSettings","labelColor","labelRollOverColor","ZoomControl","buttonFillAlpha","buttonIconColor","buttonRollOverColor","buttonFillColor","buttonBorderColor","buttonBorderAlpha","buttonCornerRadius","gridBackgroundColor","buttonIconAlpha","buttonSize","SmallMap","mapColor","rectangleColor","borderThickness","PeriodSelector","PeriodButton","background","opacity","border","MozBorderRadius","borderRadius","margin","outline","boxSizing","PeriodButtonSelected","PeriodInputField","DataSetSelector","rollOverBackgroundColor","DataSetCompareList","lineHeight","webkitBoxSizing","DataSetSelect","chartJsConfig","ChartJsProvider","setOptions","chartColors","default","responsive","maintainAspectRatio","animation","duration","scale","gridLines","scaleLabel","fontColor","ticks","showLabelBackdrop","datasetFill","pointLabels","maxTicksLimit","display","tooltips","enabled","Morris","Donut","prototype","defaults","Grid","gridDefaults","gridLineColor","borderDark","gridTextColor","abstract","controller","controllerAs","when","icon","$","jstree","core","dir","baseUrl","carePrepare","constant","moment","LoginEndpoint","RefreshTokenEndpoint","LogoutEndpoint","ChangePasswordEndpoint","SendPasswordResetLink","UpdateForgottenPassword","GetStatesEndpoint","GetCitiesEndpoint","GetFacilitiesEndpoint","GetQualityBenchmarksByFacility","GetCommunityHistory","GetPenaltyExplorerData","GetCitationsExplorerData","GetFacilitiesLocalToFacility","GetFacilityComparisons","GetFacilityDetail","GetCommunityDetail","GetFacilityComparisonReport","GetFacilityComparisonReportFile","GetFacilitiesByAddress","GetEventsForFacilityByDate","GetPenaltiesForFacilityByDate","GetSatisfactionsForFacilityByDate","GetSurveysForFacilityByDate","GetSurveysNoDeficienciesForFacilityByDate","CreateGroupEndpoint","GetGroupsEndpoint","UpdateGroupEndpoint","GetGroupDetailsEndpoint","DeleteGroupEndpoint","CreateGroupFromExistingGroup","GetPortfolioOverviewEndpoint","GetPortfolioOverviewReport","GetPortfolioOverviewReportFile","GetStateInfoStatesEndpoint","GetStateInfoEndpoint","GetStateInfoReport","GetStateInfoReportFile","GetPerformanceOverviewEndpoint","GetPerformanceCommunityHistoryEndpoint","GetPerformancePenaltyExplorerEndpoint","GetPerformanceCitationExplorerEndpoint","GetPerformanceExplorerReport","GetPerformanceSummaryReport","GetPerformanceExplorerReportFile","GetPerformanceSummaryReportFile","GetStateBenchmarks","GetAllOrganizations","GetUsersForOrganization","AlterAdminAccess","AlterUserAccess","AddUser","UpdateOrganization","GetOrganizationSettings","UpdateOrganizationSettings","VisualizeEndpoint","routerConfig","parent","params","city","community","otherwise","GroupsController","$scope","groupsService","$uibModal","qualityService","toastr","visualizationService","authService","initialize","getGroups","then","res","vm","groups","length","selectedGroup","getGroupDetails","groupId","selectedGroupDetail","groupDetails","visualize","action","resetInputs","selectedCityStateFacility","selectedAddressFacility","selectedFacility","selectedCity","selectedState","zip","streetAddress","this","newGroupName","existingGroupToCopy","groupLoading","communitySelectionEnabled","addressSelectionEnabled","states","cities","facilities","searchAddressFacilities","displayedGroupDetail","showCommunitySelection","showRemoveCommunityButton","showCityMessage","showFacilityMessage","showCreateGroupFromGroupPopup","newFromExistingGroupModal","open","element","document","body","targetEvent","size","scope","fullscreen","showCreateGroupPopup","newGroupModal","preserveScope","showDeleteGroupPopup","deleteGroupModal","createGroupFromExistingGroup","createGroupResponse","close","getGroupsResponse","groupInfo","groupDetail","createGroup","deleteGroup","deleteGroupResponse","storage","currentPortfolioGroup","response","showAddFacility","getStates","searchAddress","getAllFacilities","validateAddressSearch","result","removeFacilities","newGroupDetail","copy","i","selected","splice","updateGroup","updateGroupResponse","addFacilityToGroup","push","abbreviation","facilityId","name","totalCount","$broadcast","error","cancelAddFacilityToGroup","validateRemoveCommunityButton","validateAddCommunity","$watch","newVal","oldVal","err","getCities","getFacilities","$state","$q","$http","appconstants","groupName","method","data","isObject","resolve","reject","groupEntries","pageSize","service","$inject","LeadershipController","$timeout","baConfig","layoutPaths","makeChart","titles","text","height","type","theme","dataProvider","label","value","stateBenchmark","nationalBenchmark","valueAxes","position","minimum","maximum","startDuration","graphs","balloonText","fillAlphas","valueField","lineThickness","legend","useGraphSettings","align","chartCursor","categoryBalloonEnabled","zoomable","categoryField","categoryAxis","gridPosition","labelRotation","export","creditsPosition","pathToImages","images","amChart","openStartDate","startDateOpen","openEndDate","endDateOpen","startDate","Date","endDate","now","format","withSearchItem","selectWithSearchItems","allCitations","date","surveyType","deficiencyType","code","description","LoginController","activate","userName","password","loginFailed","loginFailedText","isLoggingIn","issendingEmail","forgotPasswordUsername","resetFailed","resetFailedText","resetMode","returnToLogin","goToReset","forgotPassword","isSendingEmail","sendPasswordResetLink","go","forgotPasswordMode","login","MainController","ManagementController","managementService","buildSettingsObject","domains","safeDomainNames","updateOrganizationSettings","settings","selectedOrganization","organizationId","showNotSafeDomainConfirmation","notSafeDomain","addUser","verifyUserDomain","split","newUser","email","domain","toLowerCase","removeSafeDomain","safeDomains","indexOf","destructureOrgSettings","allowedDomain","notAllowed","isAdmin","isDemoAccount","secretKey","getOrganizations","organizations","user","showAddUser","clearAddUserFields","getUsersForOrganization","firstName","lastName","hasReaderLicense","clearSafeDomainField","newSafeDomain","clearOrgSettings","getOrgSettings","getOrganizationSettings","users","setIsAdmin","moduleVerificationKey","showAddUserConfirmation","addUserModal","addSafeDomain","showRemoveDomainConfirmation","removeSafeDomainModal","orgModulesDisabled","settingsVerificationKey","updateIsAdmin","updatingAdminAccess","alterAdminAccess","userId","updateUserIsDisabled","updatingUserAccess","alterUserAccess","isDisabled","updateOrgIsDisabled","updatingOrgAccess","updateOrganization","isAddUserDisabled","isAddDomainDisabled","found","find","key","status","Message","orgId","org","id","PerformanceController","performanceService","clearFacilityData","performanceCommunityHistories","performancePenaltyData","performanceOverview","performanceCitationData","dataIsLoading","dataLoaded","communities","selectedFacilities","failureMessage","isDownloadingReportDetailed","isDownloadingReportSummary","loadFacilities","entries","facilityKey","getPerformanceOverview","getPerformanceCommunityHistory","overviews","mapCategories","facilityPerformance","countyPerformance","statePerformance","loadPerformanceCommunityHistory","loadPerformancePenaltyExplorer","getPerformancePenaltyExplorer","loadPerformanceCitationExplorer","getPerformanceCitationExplorer","showCommunityHistoryEntryDetail","facility","entry","communityHistoryEntryDetailLoading","communityHistoryDetailType","communityHistoryEvent","getSurveysForFacilityByDate","entryDate","communityHistoryDetail","isVisible","getPenaltiesForFacilityByDate","getSatisfactionsForFacilityByDate","getEventsForFacilityByDate","getSurveysNoDeficienciesForFacilityByDate","historyEntryType","downloadPerformanceExplorerReport","outputFileName","getPerformanceExplorerReport","window","location","href","filename","downloadPerformanceSummaryReport","getPerformanceSummaryReport","isPerformanceDetailsUnavailable","validateLoadFacilities","applyAllDates","formats","options","showWeeks","setFullYear","getFullYear","showOverFiftyMessage","categories","categoryId","administration","count","dietary","facilityAndEnvironment","lifeSafety","qualityOfCare","residentSatisfaction","staffingTraining","other","PortfolioController","$filter","portfolioService","getPortfolioOverview","currentPage","facilityDetails","numPages","Math","ceil","tableState","pagination","numberOfPages","totalItemCount","lastCollectionDate","currentDataStartDate","currentDataEndDate","portfolioOverviewDateRange","validateDateRange","portfolioLoading","j","facilityCategoryDetails","facilityEnvironment","isDownloadingReportPdf","isDownloadingReportRaw","applyDateRangeBtnEnabled","dateRangeErrorMsg","applyDates","getMonth","getDate","datesMatch","getTime","update","floor","start","number","goToFacilityOverview","downloadPortfolioOverviewReport","isPdf","getPortfolioOverviewReport","page","ProfileController","changePassword","oldPassword","newPassword","confirmPassword","clearFields","validatePasswordChange","match","disablePasswordButton","QualityController","$stateParams","refactorCommunityOverview","communityOverview","refactorCompetitionSetData","competitionSet","mapCategorySets","category","categorySets","facilityEnvironmental","communityHistory","penaltyExplorerData","citationsExplorerData","compSetExplorerData","competition","geocodeAddress","address","geocoder","google","maps","Geocoder","geocode","results","GeocoderStatus","OK","mapCanvas","getElementById","mapOptions","center","geometry","zoom","mapTypeId","MapTypeId","ROADMAP","map","Map","Marker","console","log","exception","getChartSize","barSize1","barSize2","largerBar","chartSize","round","communityDetail","street","siteCount","stateCount","countyBenchmark","countyCount","county","countyBenchmarkCount","stateBenchmarkCount","equalWidths","qualityBenchmarks","actualHarmCitationsSet","stateAverage","labelText","labelPosition","fillColorsField","immediateJeopardyCitationsSet","subStandardQualityCitationsSet","complaintCitationsSet","totalCitationsSet","penaltySet","jQuery","off","on","property","target","chart","undefined","validateNow","createPenaltyBarChart","minYear","maxYear","graphData","legendValueText","createCitationBarChart","citationGraphEntries","fillColors","currentYear","getUTCFullYear","compSetExplorerDataBackup","competitionSetData","competitionSetModel","isSurveyFrequencyClicked","getCommunityOverviewDates","lastCollection","dateOfLastCollection","dd","getUTCDate","mm","getUTCMonth","yyyy","previousYear","loadFacility","getCommunityOverview","getCommunityDetail","phone","getQualityBenchmarks","loadCommunityHistory","getCommunityHistory","loadPenaltyExplorer","penalties","noGraph","getPenaltyExplorerData","penaltyGraphEntries","year","loadCitationsExplorer","getCitationsExplorerData","year4","year3","year2","year1","loadCompSetExplorer","getFacilitiesLocalToFacility","compareCompetition","getFacilityComparisons","downloadSiteComparisonReport","facilityKeys","getFacilityComparisonReport","progressFunction","surveyFrequencyBtnPressed","getFacilityDetail","$window","screenData","getScreenData","visualizationData","platform","msg","windowHeight","isNaN","outerHeight","windowWidth","outerWidth","screenHeight","screen","screenWidth","width","ex","ResetPasswordController","resetToken","t","isUpdating","resetPassword","updateForgottenPassword","StateBenchmarksController","stateBenchmarksService","loadStateBenchmarks","getStateBenchmarks","stateBenchmarks","StateInfoController","stateInfoService","stateInfo","getStateInfo","isDownloadingReport","downloadReport","getStateInfoReport","colorHelper","$provide","decorator","uiViewScrollDecorator","$delegate","$anchorScroll","baUtil","uiViewElement","hasAttr","configProvider","conf","basic","colorScheme","tint","infoLight","dangerLight","shade","infoDark","dangerDark","dashboard","blueStone","dashboardColors","surfieGreen","silverTree","gossip","white","changeTheme","merge","changeColors","$get","provider","mix","color1","color2","weight","d2h","d","toString","h2d","h","parseInt","color1Part","substr","color2Part","resultPart","slice","IMAGES_ROOT","resWidthCollapseSidebar","resWidthHideSidebar","root","profile","amMap","themeRun","$rootScope","preloader","baSidebarService","themeLayoutSettings","whatToWait","loadAmCharts","mobile","unshift","loadImg","all","$pageFinishedLoading","$baSidebarService","run","isMobile","test","navigator","userAgent","mobileClass","blurClass","addClass","authRun","$injector","get","authToken","headers","common","Authorization","LogRocket","identify","fullName","Intercom","app_id","user_hash","userHash","$on","event","toState","toParams","fromState","fromParams","toStateParams","isLoggedIn","$set","preventDefault","$httpProvider","interceptors","responseError","deferred","defer","http","withCredentials","refreshResponse","jwtToken","tokenExpireTime","promise","$sessionStorage","emailAddress","Errors","isNullOrWhitespace","input","replace","u","p","store","username","ignoreLoadingBar","realFullName","$emit","message","logout","$reset","$default","authExpiry","utc","refreshToken","refreshExpiry","userPermissions","redirectState","redirectStateParams","usingTempPassword","rtcTicket","hasTasks","usesMarketingModule","usesMarketResearchModule","factory","refreshTable","require","restrict","link","attrs","tableCtrl","directive","bool","filter","titleCase","txt","charAt","toUpperCase","TablesPageCtrl","editableOptions","editableThemes","smartTablePageSize","smartTableData","age","editableTableData","peopleTableData","metricsTableData","image","browser","visits","isVisitsUp","purchases","isPurchasesUp","percent","isPercentUp","group","statuses","showGroup","showStatus","removeUser","index","inserted","submitTpl","cancelTpl","communityLookup","maxCount","communityLookupController","setSelections","selections","facilitySelected","addWatchOnLookup","lookup","equals","addNewFacilityLookup","removeLookup","eventDetail","detailType","toastrLibConfig","toastrConfig","extend","closeButton","closeHtml","timeOut","autoDismiss","containerId","maxOpened","newestOnTop","positionClass","preventDuplicates","preventOpenDuplicates","animatedChange","changeValue","val","html","newValue","attr","oldvalue","next","autoExpand","elem","bind","$event","scrollHeight","setTimeout","autoFocus","$parse","model","focus","select","$apply","assign","includeWithScope","ele","ionSlider","template","min","max","prefix","maxPostfix","prettify","prettifySeparator","grid","gridMargin","postfix","step","hideMinMax","hideFromTo","from","to","disable","onChange","onFinish","values","timeout","$element","ionRangeSlider","prettify_enabled","prettify_separator","ngFileSelect","el","e","file","srcElement","files","getFile","scrollPosition","maxHeight","scrollTop","prevScrollTop","trackWidth","minWidth","prevTrackWidth","resize","zoomIn","delay","removeClass","baProgressModal","methods","progress","opened","setProgress","Error","getProgress","keyboard","backdrop","isDescendant","child","node","parentNode","hexToRGB","hex","r","g","b","attrName","fileReader","onLoad","reader","onError","onProgress","total","loaded","getReader","FileReader","onload","onerror","onprogress","readAsDataURL","readAsDataUrl","src","img","Image","ready","stopableInterval","interval","calback","time","startInterval","cancel","chartistCtrl","getResponsive","padding","offset","chartPadding","labelOffset","labelDirection","labelInterpolationFnc","simpleLineOptions","fullWidth","right","simpleLineData","labels","series","areaLineData","areaLineOptions","low","showArea","biLineData","biLineOptions","high","showLine","showPoint","axisX","showGrid","simpleBarData","simpleBarOptions","multiBarData","multiBarOptions","stackBars","word","join","axisY","multiBarResponsive","reverseData","horizontalBars","Chartist","noop","seriesBarDistance","stackedBarData","stackedBarOptions","simplePieData","simplePieOptions","labelsPieData","labelsPieOptions","simpleDonutData","simpleDonutOptions","donut","donutResponsive","pieResponsive","Line","Bar","Pie","chartJs1DCtrl","shuffle","o","x","random","elements","arc","borderWidth","changeData","chartJs2DCtrl","chartJsWaveCtrl","$interval","sin","tempArray","lastElement","morrisCtrl","lineData","y","a","areaData","barData","donutData","mailMessages","$sce","messages","subject","trustAsHtml","pic","attachment","tag","important","sort","reverse","tabs","newMails","getTabs","getMessagesByLabel","m","getMessageById","MailTabCtrl","composeModal","navigationCollapsed","showCompose","TimelineCtrl","hideBlocks","blocks","each","top","showBlocks","hasClass","timelineBlocks","requestAnimationFrame","treeCtrl","getDefaultData","ignoreChanges","newId","newNode","basicConfig","multiple","check_callback","worker","types","folder","plugins","version","dragConfig","addNewNode","basicTree","get_selected","treeData","refresh","expand","forEach","n","collapse","readyCB","applyModelChanges","dragData","blurFeed","BlurFeedCtrl","feed","author","surname","header","ago","expanded","preview","expandMessage","dashboardCalendar","DashboardCalendarCtrl","fullCalendar","left","defaultDate","selectable","selectHelper","end","eventData","prompt","editable","eventLimit","events","gossipDark","dashboardLineChart","DashboardLineChartCtrl","zoomChart","zoomToDates","graphColor","chartData","value0","marginTop","marginRight","parseDates","minVerticalGap","bullet","useLineColorForBulletBorder","negativeLineColor","categoryBalloonDateFormat","categoryBalloonColor","categoryBalloonAlpha","valueLineEnabled","valueLineBalloonEnabled","valueLineAlpha","dataDateFormat","zoomOutButton","zoomOutText","addListener","dashboardMap","DashboardMapCtrl","zoomControl","zoomControlEnabled","panControlEnabled","zoomLevel","zoomLongitude","zoomLatitude","areas","customData","areasSettings","marginLeft","borderColor","horizontalGap","dashboardPieChart","DashboardPieChartCtrl","getRandomArbitrary","loadPieCharts","easyPieChart","easing","onStep","barColor","trackColor","scaleLength","lineWidth","lineCap","updatePieCharts","pieColor","charts","stats","dashboardTodo","DashboardTodoCtrl","getRandomColor","transparent","todoList","item","newTodoText","addToDoItem","clickPlus","which","popularApp","trafficChart","TrafficChartCtrl","doughnutData","datasets","hoverBackgroundColor","percentage","ctx","getContext","myDoughnut","Chart","cutoutPercentage","weather","WeatherCtrl","updateGeoData","jsonp","geoData","updateWeather","handDrawn","lineColorField","write","saveWeatherData","firstItem","list","days","timeTemp","main","temp","current","itemDate","dt_txt","lastItem","getHours","middleOfTheDay","setHours","setMinutes","units","weatherIcons","01d","02d","03d","04d","09d","10d","11d","13d","50d","01n","02n","03n","04n","09n","10n","11n","13n","50n","switchUnits","switchDay","day","appid","lat","geoplugin_latitude","lon","geoplugin_longitude","WizardCtrl","personalInfo","productInfo","shipment","arePersonalInfoPasswordsEqual","GmapPageCtrl","LatLng","LeafletPageCtrl","L","Icon","Default","imagePath","setView","tileLayer","attribution","addTo","marker","bindPopup","openPopup","MapBubblePageCtrl","latlong","latitude","longitude","mapData","minBulletSize","maxBulletSize","Infinity","AmMap","addTitle","imagesSettings","mapVar","worldLow","maxSquare","PI","minSquare","dataItem","square","sqrt","MapLinesPageCtrl","targetSVG","planeSVG","linkToObject","svgPath","lines","latitudes","longitudes","labelShiftY","labelShiftX","labelFontSize","linesSettings","backgroundZoomsToTop","linesAboveImages","ButtonPageCtrl","IconsPageCtrl","icons","kameleonIcons","kameleonRoundedIcons","ionicons","fontAwesomeIcons","socicon","ModalsPageCtrl","items","openProgressDialog","NotificationsPageCtrl","defaultConfig","quotes","allowHtml","openedToasts","extendedTimeOut","tapToDismiss","progressBar","clearLastToast","toast","pop","clear","clearToasts","openRandomToast","quote","toastType","toastQuote","optionsStr","JSON","stringify","openToast","strOptions","backTop","speed","baPanel","baPanelClass","transclude","baPanelTitle","titleTpl","baPanelBlur","baPanelBlurHelper","bodyBgSize","bodyBgLoad","getBodyBgImageSizes","addEventListener","recalculatePanelStyle","css","backgroundSize","backgroundPosition","positionX","positionY","$isMobile","removeEventListener","computedStyle","getComputedStyle","backgroundImage","elemW","documentElement","clientWidth","elemH","clientHeight","finalHeight","finalWidth","imgRatio","containerRatio","baPanelSelf","baSidebar","layoutSizes","jqWindow","_onWindowClick","$evt","originalEvent","$sidebarEventProcessed","isMenuCollapsed","canSidebarBeHidden","setMenuCollapsed","_onWindowResize","newMenuCollapsed","shouldMenuBeCollapsed","newMenuHeight","_calculateMenuHeight","menuHeight","childNodes","baSidebarServiceProvider","staticMenuItems","addStaticItem","apply","arguments","_factory","defineMenuItemStates","s","meta","level","stateRef","innerWidth","getMenuItems","menuItems","children","subMenu","concat","isCollapsed","toggleMenuCollapsed","getAllStateRefsRecursive","_iterateSubItems","currentItem","subItem","BaSidebarCtrl","defaultSidebarState","hoverItem","showHoverElem","hoverElemHeight","currentTarget","menuTopValue","hoverElemTop","getBoundingClientRect","baSidebarToggleMenu","baSidebarCollapseMenu","baSidebarTogglingItem","BaSidebarTogglingItemCtrl","$attrs","_isState","subItemsStateRefs","some","subItemState","menuItem","$$menuItem","$eval","$$expandSubmenu","warn","$$collapseSubmenu","$expand","$collapse","$toggle","baUiSrefTogglingSubmenu","slideDown","slideUp","baUiSrefToggler","baWizard","baWizardCtrl","calcProgress","tabNum","addTab","tab","setPrev","selectTab","submit","isAvailiable","tIndex","isFirstTab","isLastTab","nextTab","previousTab","baWizardStep","form","wizard","isSelected","$setSubmitted","isComplete","$valid","prevTab","pTab","contentTop","$location","activePageTitle","msgCenter","MsgCenterCtrl","0","1","2","3","notifications","getMessage","pageTopController","showManagementButton","pageTop","progressBarRound","animateBar","circle","setAttribute","baProgressDialog","widgets","ngModel","plainText","String","appImage","iconImg","kameleonImg","profilePicture","ext","baSwitcher","switcherStyle","switcherValue","AreaChartCtrl","zoomAreaChart","areaChart","getAttribute","balloon","cornerRadius","horizontalPadding","verticalPadding","durationUnits","hh","bulletBorderAlpha","bulletBorderThickness","dateFormats","period","autoGridCount","gridCount","BarChartCtrl","country","combinedChartCtrl","precision","labelFunction","valueAxis","clustered","columnWidth","bulletColor","bulletSize","hideBulletsCount","dashLength","chartScrollbar","graph","oppositeAxis","scrollbarHeight","selectedGraphFillAlpha","selectedGraphLineColor","selectedGraphLineAlpha","pan","minorGridEnabled","shadowAlpha","market1","market2","sales1","sales2","FunnelChartCtrl","titleField","funnelAlpha","startX","neckWidth","startAlpha","neckHeight","ganttChartCtrl","balloonDateFormat","brightnessStep","rotate","segmentsField","colorField","startField","endField","durationField","segments","task","valueScrollbar","valueBalloonsEnabled","valueZoomable","LineChartCtrl","lineChart","zoomToIndexes","minPeriod","minorGridAlpha","PieChartCtrl","handleInit","pieChart","handleRollOver","wedge","appendChild","addClassNames","autoMargins","defs","feOffset","in","dx","dy","feGaussianBlur","stdDeviation","feBlend","in2","mode","litres","marginBottom","pullOutRadius","rules","maxWidth","overrides","labelsEnabled","composeBoxCtrl","MailDetailCtrl","mail","MailListCtrl","NotificationsCtrl","showSuccessMsg","showInfoMsg","showErrorMsg","showWarningMsg","ProgressModalCtrl","fn","c","bottom","scroll","fadeIn","fadeOut","click","animate","datepickerCtrl","dt","datepickerpopupCtrl","OldSelectpickerPanelCtrl","standardSelectItems","groupedSelectItems","selectpicker","priority","pre","append","post","ngDisabled","dropupAuto","hideDisabled","OldSwitchPanelCtrl","switcherValues","switchDirective","bootstrapSwitch","onColor","GroupSelectpickerOptions","props","out","isArray","keys","Object","itemMatches","prop","SelectpickerPanelCtrl","disabled","standardItem","groupedItem","groupedByItem","groupedBySelectItems","someGroupFn","disableItem","disableItems","multipleItem","multipleSelectItems","withDeleteItem","withDeleteSelectItems","SwitchDemoPanelCtrl","switches","s1","s2","s3","s4","s5","tagInput","tagsinput","tagClass","$templateCache","put"],"mappings":"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","file":"scripts/app-ef989d44ce.js","sourcesContent":["(function() {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin', [\r\n 'ngAnimate',\r\n 'ui.bootstrap',\r\n 'ui.sortable',\r\n 'ui.router',\r\n 'ngTouch',\r\n 'toastr',\r\n 'smart-table',\r\n \"xeditable\",\r\n 'ui.slimscroll',\r\n 'ngJsTree',\r\n 'angular-progress-button-styles',\r\n 'BlurAdmin.auth',\r\n 'BlurAdmin.theme',\r\n 'BlurAdmin.pages']);\r\n})();\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages', [\r\n 'ui.router',\r\n\r\n 'BlurAdmin.pages.dashboard',\r\n 'BlurAdmin.pages.ui',\r\n 'BlurAdmin.pages.components',\r\n 'BlurAdmin.pages.form',\r\n 'BlurAdmin.pages.tables',\r\n 'BlurAdmin.pages.charts',\r\n 'BlurAdmin.pages.maps'\r\n ]);\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 15.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme', [\r\n 'toastr',\r\n 'chart.js',\r\n 'angular-chartist',\r\n 'angular.morris-chart',\r\n 'textAngular',\r\n 'BlurAdmin.theme.components',\r\n 'BlurAdmin.theme.inputs'\r\n ]);\r\n\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n angular.module('BlurAdmin.auth', ['ngStorage', 'ui.router']);\r\n}());\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.charts', [\r\n 'BlurAdmin.pages.charts.amCharts',\r\n 'BlurAdmin.pages.charts.chartJs',\r\n 'BlurAdmin.pages.charts.chartist',\r\n 'BlurAdmin.pages.charts.morris'\r\n ])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n /*$stateProvider\r\n .state('charts', {\r\n url: '/charts',\r\n abstract: true,\r\n template: '
',\r\n title: 'Charts',\r\n sidebarMeta: {\r\n icon: 'ion-stats-bars',\r\n order: 150,\r\n },\r\n });*/\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author k.danovsky\r\n * created on 15.01.2016\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.components', [\r\n 'BlurAdmin.pages.components.mail',\r\n 'BlurAdmin.pages.components.timeline',\r\n 'BlurAdmin.pages.components.tree',\r\n ])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n /*$stateProvider\r\n .state('components', {\r\n url: '/components',\r\n template : '',\r\n abstract: true,\r\n title: 'Components',\r\n sidebarMeta: {\r\n icon: 'ion-gear-a',\r\n order: 100,\r\n },\r\n });*/\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.dashboard', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n /*$stateProvider\r\n .state('dashboard', {\r\n url: '/dashboard',\r\n templateUrl: 'app/pages/dashboard/dashboard.html',\r\n title: 'Dashboard',\r\n sidebarMeta: {\r\n icon: 'ion-android-home',\r\n order: 0,\r\n },\r\n });*/\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.form', ['ui.select', 'ngSanitize'])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n /*$stateProvider\r\n .state('form', {\r\n url: '/form',\r\n template : '',\r\n abstract: true,\r\n title: 'Form Elements',\r\n sidebarMeta: {\r\n icon: 'ion-compose',\r\n order: 250,\r\n },\r\n })\r\n .state('form.inputs', {\r\n url: '/inputs',\r\n templateUrl: 'app/pages/form/inputs/inputs.html',\r\n title: 'Form Inputs',\r\n sidebarMeta: {\r\n order: 0,\r\n },\r\n })\r\n .state('form.layouts', {\r\n url: '/layouts',\r\n templateUrl: 'app/pages/form/layouts/layouts.html',\r\n title: 'Form Layouts',\r\n sidebarMeta: {\r\n order: 100,\r\n },\r\n })\r\n .state('form.wizard',\r\n {\r\n url: '/wizard',\r\n templateUrl: 'app/pages/form/wizard/wizard.html',\r\n controller: 'WizardCtrl',\r\n controllerAs: 'vm',\r\n title: 'Form Wizard',\r\n sidebarMeta: {\r\n order: 200,\r\n },\r\n });*/\r\n }\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.maps', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n /*$stateProvider\r\n .state('maps', {\r\n url: '/maps',\r\n templateUrl: 'app/pages/maps/maps.html',\r\n abstract: true,\r\n title: 'Maps',\r\n sidebarMeta: {\r\n icon: 'ion-ios-location-outline',\r\n order: 500,\r\n },\r\n })\r\n .state('maps.gmap', {\r\n url: '/gmap',\r\n templateUrl: 'app/pages/maps/google-maps/google-maps.html',\r\n controller: 'GmapPageCtrl',\r\n title: 'Google Maps',\r\n sidebarMeta: {\r\n order: 0,\r\n },\r\n })\r\n .state('maps.leaflet', {\r\n url: '/leaflet',\r\n templateUrl: 'app/pages/maps/leaflet/leaflet.html',\r\n controller: 'LeafletPageCtrl',\r\n title: 'Leaflet Maps',\r\n sidebarMeta: {\r\n order: 100,\r\n },\r\n })\r\n .state('maps.bubble', {\r\n url: '/bubble',\r\n templateUrl: 'app/pages/maps/map-bubbles/map-bubbles.html',\r\n controller: 'MapBubblePageCtrl',\r\n title: 'Bubble Maps',\r\n sidebarMeta: {\r\n order: 200,\r\n },\r\n })\r\n .state('maps.line', {\r\n url: '/line',\r\n templateUrl: 'app/pages/maps/map-lines/map-lines.html',\r\n controller: 'MapLinesPageCtrl',\r\n title: 'Line Maps',\r\n sidebarMeta: {\r\n order: 300,\r\n },\r\n });*/\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.tables', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider, $urlRouterProvider) {\r\n /*$stateProvider\r\n .state('tables', {\r\n url: '/tables',\r\n template : '',\r\n abstract: true,\r\n controller: 'TablesPageCtrl',\r\n title: 'Tables',\r\n sidebarMeta: {\r\n icon: 'ion-grid',\r\n order: 300,\r\n },\r\n }).state('tables.basic', {\r\n url: '/basic',\r\n templateUrl: 'app/pages/tables/basic/tables.html',\r\n title: 'Basic Tables',\r\n sidebarMeta: {\r\n order: 0,\r\n },\r\n }).state('tables.smart', {\r\n url: '/smart',\r\n templateUrl: 'app/pages/tables/smart/tables.html',\r\n title: 'Smart Tables',\r\n sidebarMeta: {\r\n order: 100,\r\n },\r\n });\r\n $urlRouterProvider.when('/tables','/tables/basic');*/\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author k.danovsky\r\n * created on 12.01.2016\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.ui', [\r\n 'BlurAdmin.pages.ui.typography',\r\n 'BlurAdmin.pages.ui.buttons',\r\n 'BlurAdmin.pages.ui.icons',\r\n 'BlurAdmin.pages.ui.modals',\r\n 'BlurAdmin.pages.ui.grid',\r\n 'BlurAdmin.pages.ui.alerts',\r\n 'BlurAdmin.pages.ui.progressBars',\r\n 'BlurAdmin.pages.ui.notifications',\r\n 'BlurAdmin.pages.ui.tabs',\r\n 'BlurAdmin.pages.ui.slider',\r\n 'BlurAdmin.pages.ui.panels',\r\n ])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n /*$stateProvider\r\n .state('ui', {\r\n url: '/ui',\r\n template : '',\r\n abstract: true,\r\n title: 'UI Features',\r\n sidebarMeta: {\r\n icon: 'ion-android-laptop',\r\n order: 200,\r\n },\r\n });*/\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme.components', []);\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 10.12.2016\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme.inputs', []);\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.charts.amCharts', [])\r\n .config(routeConfig).config(amChartConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('charts.amCharts', {\r\n url: '/amCharts',\r\n templateUrl: 'app/pages/charts/amCharts/charts.html',\r\n title: 'amCharts',\r\n sidebarMeta: {\r\n order: 0,\r\n },\r\n });\r\n }\r\n\r\n function amChartConfig(baConfigProvider) {\r\n var layoutColors = baConfigProvider.colors;\r\n AmCharts.themes.blur = {\r\n\r\n themeName: \"blur\",\r\n\r\n AmChart: {\r\n color: layoutColors.defaultText,\r\n backgroundColor: \"#FFFFFF\"\r\n },\r\n\r\n AmCoordinateChart: {\r\n colors: [layoutColors.primary, layoutColors.danger, layoutColors.warning, layoutColors.success, layoutColors.info, layoutColors.primaryDark, layoutColors.warningLight, layoutColors.successDark, layoutColors.successLight, layoutColors.primaryLight, layoutColors.warningDark]\r\n },\r\n\r\n AmStockChart: {\r\n colors: [layoutColors.primary, layoutColors.danger, layoutColors.warning, layoutColors.success, layoutColors.info, layoutColors.primaryDark, layoutColors.warningLight, layoutColors.successDark, layoutColors.successLight, layoutColors.primaryLight, layoutColors.warningDark]\r\n },\r\n\r\n AmSlicedChart: {\r\n colors: [layoutColors.primary, layoutColors.danger, layoutColors.warning, layoutColors.success, layoutColors.info, layoutColors.primaryDark, layoutColors.warningLight, layoutColors.successDark, layoutColors.successLight, layoutColors.primaryLight, layoutColors.warningDark],\r\n labelTickColor: \"#FFFFFF\",\r\n labelTickAlpha: 0.3\r\n },\r\n\r\n AmRectangularChart: {\r\n zoomOutButtonColor: '#FFFFFF',\r\n zoomOutButtonRollOverAlpha: 0.15,\r\n zoomOutButtonImage: \"lens.png\"\r\n },\r\n\r\n AxisBase: {\r\n axisColor: \"#FFFFFF\",\r\n axisAlpha: 0.3,\r\n gridAlpha: 0.1,\r\n gridColor: \"#FFFFFF\"\r\n },\r\n\r\n ChartScrollbar: {\r\n backgroundColor: \"#FFFFFF\",\r\n backgroundAlpha: 0.12,\r\n graphFillAlpha: 0.5,\r\n graphLineAlpha: 0,\r\n selectedBackgroundColor: \"#FFFFFF\",\r\n selectedBackgroundAlpha: 0.4,\r\n gridAlpha: 0.15\r\n },\r\n\r\n ChartCursor: {\r\n cursorColor: layoutColors.primary,\r\n color: \"#FFFFFF\",\r\n cursorAlpha: 0.5\r\n },\r\n\r\n AmLegend: {\r\n color: \"#FFFFFF\"\r\n },\r\n\r\n AmGraph: {\r\n lineAlpha: 0.9\r\n },\r\n GaugeArrow: {\r\n color: \"#FFFFFF\",\r\n alpha: 0.8,\r\n nailAlpha: 0,\r\n innerRadius: \"40%\",\r\n nailRadius: 15,\r\n startWidth: 15,\r\n borderAlpha: 0.8,\r\n nailBorderAlpha: 0\r\n },\r\n\r\n GaugeAxis: {\r\n tickColor: \"#FFFFFF\",\r\n tickAlpha: 1,\r\n tickLength: 15,\r\n minorTickLength: 8,\r\n axisThickness: 3,\r\n axisColor: '#FFFFFF',\r\n axisAlpha: 1,\r\n bandAlpha: 0.8\r\n },\r\n\r\n TrendLine: {\r\n lineColor: layoutColors.danger,\r\n lineAlpha: 0.8\r\n },\r\n\r\n // ammap\r\n AreasSettings: {\r\n alpha: 0.8,\r\n color: layoutColors.info,\r\n colorSolid: layoutColors.primaryDark,\r\n unlistedAreasAlpha: 0.4,\r\n unlistedAreasColor: \"#FFFFFF\",\r\n outlineColor: \"#FFFFFF\",\r\n outlineAlpha: 0.5,\r\n outlineThickness: 0.5,\r\n rollOverColor: layoutColors.primary,\r\n rollOverOutlineColor: \"#FFFFFF\",\r\n selectedOutlineColor: \"#FFFFFF\",\r\n selectedColor: \"#f15135\",\r\n unlistedAreasOutlineColor: \"#FFFFFF\",\r\n unlistedAreasOutlineAlpha: 0.5\r\n },\r\n\r\n LinesSettings: {\r\n color: \"#FFFFFF\",\r\n alpha: 0.8\r\n },\r\n\r\n ImagesSettings: {\r\n alpha: 0.8,\r\n labelColor: \"#FFFFFF\",\r\n color: \"#FFFFFF\",\r\n labelRollOverColor: layoutColors.primaryDark\r\n },\r\n\r\n ZoomControl: {\r\n buttonFillAlpha: 0.8,\r\n buttonIconColor: layoutColors.defaultText,\r\n buttonRollOverColor: layoutColors.danger,\r\n buttonFillColor: layoutColors.primaryDark,\r\n buttonBorderColor: layoutColors.primaryDark,\r\n buttonBorderAlpha: 0,\r\n buttonCornerRadius: 0,\r\n gridColor: \"#FFFFFF\",\r\n gridBackgroundColor: \"#FFFFFF\",\r\n buttonIconAlpha: 0.6,\r\n gridAlpha: 0.6,\r\n buttonSize: 20\r\n },\r\n\r\n SmallMap: {\r\n mapColor: \"#000000\",\r\n rectangleColor: layoutColors.danger,\r\n backgroundColor: \"#FFFFFF\",\r\n backgroundAlpha: 0.7,\r\n borderThickness: 1,\r\n borderAlpha: 0.8\r\n },\r\n\r\n // the defaults below are set using CSS syntax, you can use any existing css property\r\n // if you don't use Stock chart, you can delete lines below\r\n PeriodSelector: {\r\n color: \"#FFFFFF\"\r\n },\r\n\r\n PeriodButton: {\r\n color: \"#FFFFFF\",\r\n background: \"transparent\",\r\n opacity: 0.7,\r\n border: \"1px solid rgba(0, 0, 0, .3)\",\r\n MozBorderRadius: \"5px\",\r\n borderRadius: \"5px\",\r\n margin: \"1px\",\r\n outline: \"none\",\r\n boxSizing: \"border-box\"\r\n },\r\n\r\n PeriodButtonSelected: {\r\n color: \"#FFFFFF\",\r\n backgroundColor: \"#b9cdf5\",\r\n border: \"1px solid rgba(0, 0, 0, .3)\",\r\n MozBorderRadius: \"5px\",\r\n borderRadius: \"5px\",\r\n margin: \"1px\",\r\n outline: \"none\",\r\n opacity: 1,\r\n boxSizing: \"border-box\"\r\n },\r\n\r\n PeriodInputField: {\r\n color: \"#FFFFFF\",\r\n background: \"transparent\",\r\n border: \"1px solid rgba(0, 0, 0, .3)\",\r\n outline: \"none\"\r\n },\r\n\r\n DataSetSelector: {\r\n color: \"#FFFFFF\",\r\n selectedBackgroundColor: \"#b9cdf5\",\r\n rollOverBackgroundColor: \"#a8b0e4\"\r\n },\r\n\r\n DataSetCompareList: {\r\n color: \"#FFFFFF\",\r\n lineHeight: \"100%\",\r\n boxSizing: \"initial\",\r\n webkitBoxSizing: \"initial\",\r\n border: \"1px solid rgba(0, 0, 0, .3)\"\r\n },\r\n\r\n DataSetSelect: {\r\n border: \"1px solid rgba(0, 0, 0, .3)\",\r\n outline: \"none\"\r\n }\r\n\r\n };\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author a.demeshko\r\n * created on 12/17/15\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.charts.chartist', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('charts.chartist', {\r\n url: '/chartist',\r\n templateUrl: 'app/pages/charts/chartist/chartist.html',\r\n title: 'Chartist',\r\n sidebarMeta: {\r\n order: 100,\r\n },\r\n });\r\n }\r\n\r\n})();\n/**\r\n * @author a.demeshko\r\n * created on 12/16/15\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.charts.chartJs', [])\r\n .config(routeConfig).config(chartJsConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('charts.chartJs', {\r\n url: '/chartJs',\r\n templateUrl: 'app/pages/charts/chartJs/chartJs.html',\r\n title: 'Chart.js',\r\n sidebarMeta: {\r\n order: 200\r\n }\r\n });\r\n }\r\n\r\n function chartJsConfig(ChartJsProvider, baConfigProvider) {\r\n var layoutColors = baConfigProvider.colors;\r\n // Configure all charts\r\n ChartJsProvider.setOptions({\r\n chartColors: [\r\n layoutColors.primary, layoutColors.danger, layoutColors.warning, layoutColors.success, layoutColors.info, layoutColors.default, layoutColors.primaryDark, layoutColors.successDark, layoutColors.warningLight, layoutColors.successLight, layoutColors.primaryLight],\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n animation: {\r\n duration: 2500\r\n },\r\n scale: {\r\n gridLines: {\r\n color: layoutColors.border\r\n },\r\n scaleLabel: {\r\n fontColor: layoutColors.defaultText\r\n },\r\n ticks: {\r\n fontColor: layoutColors.defaultText,\r\n showLabelBackdrop: false\r\n }\r\n }\r\n });\r\n // Configure all line charts\r\n ChartJsProvider.setOptions('Line', {\r\n datasetFill: false\r\n });\r\n // Configure all radar charts\r\n ChartJsProvider.setOptions('radar', {\r\n scale: {\r\n pointLabels: {\r\n fontColor: layoutColors.defaultText\r\n },\r\n ticks: {\r\n maxTicksLimit: 5,\r\n display: false\r\n }\r\n }\r\n });\r\n // Configure all bar charts\r\n ChartJsProvider.setOptions('bar', {\r\n tooltips: {\r\n enabled: false\r\n }\r\n });\r\n }\r\n\r\n})();\n/**\r\n * @author a.demeshko\r\n * created on 12/18/15\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.charts.morris', [])\r\n .config(routeConfig).config(function(baConfigProvider){\r\n var layoutColors = baConfigProvider.colors;\r\n Morris.Donut.prototype.defaults.backgroundColor = 'transparent';\r\n Morris.Donut.prototype.defaults.labelColor = layoutColors.defaultText;\r\n Morris.Grid.prototype.gridDefaults.gridLineColor = layoutColors.borderDark;\r\n Morris.Grid.prototype.gridDefaults.gridTextColor = layoutColors.defaultText;\r\n });\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('charts.morris', {\r\n url: '/morris',\r\n templateUrl: 'app/pages/charts/morris/morris.html',\r\n title: 'Morris',\r\n sidebarMeta: {\r\n order: 300,\r\n }\r\n });\r\n }\r\n\r\n})();\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.components.mail', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider,$urlRouterProvider) {\r\n $stateProvider\r\n .state('components.mail', {\r\n url: '/mail',\r\n abstract: true,\r\n templateUrl: 'app/pages/components/mail/mail.html',\r\n controller: \"MailTabCtrl\",\r\n controllerAs: \"tabCtrl\",\r\n title: 'Mail',\r\n sidebarMeta: {\r\n order: 0,\r\n },\r\n }).state('components.mail.label', {\r\n url: '/:label',\r\n templateUrl: 'app/pages/components/mail/list/mailList.html',\r\n title: 'Mail',\r\n controller: \"MailListCtrl\",\r\n controllerAs: \"listCtrl\"\r\n }).state('components.mail.detail', {\r\n url: '/:label/:id',\r\n templateUrl: 'app/pages/components/mail/detail/mailDetail.html',\r\n title: 'Mail',\r\n controller: \"MailDetailCtrl\",\r\n controllerAs: \"detailCtrl\"\r\n });\r\n $urlRouterProvider.when('/components/mail','/components/mail/inbox');\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author a.demeshko\r\n * created on 1/12/16\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.components.timeline', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('components.timeline', {\r\n url: '/timeline',\r\n templateUrl: 'app/pages/components/timeline/timeline.html',\r\n title: 'Timeline',\r\n sidebarMeta: {\r\n icon: 'ion-ios-pulse',\r\n order: 100,\r\n },\r\n });\r\n }\r\n})();\n/**\r\n * @author a.demeshko\r\n * created on 12.21.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.components.tree', [])\r\n .config(routeConfig)\r\n .config(function(){\r\n $.jstree.defaults.core.themes.url = true;\r\n $.jstree.defaults.core.themes.dir = \"assets/img/theme/vendor/jstree/dist/themes\";\r\n });\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('components.tree', {\r\n url: '/tree',\r\n templateUrl: 'app/pages/components/tree/tree.html',\r\n title: 'Tree View',\r\n sidebarMeta: {\r\n order: 200,\r\n },\r\n });\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.ui.alerts', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('ui.alerts', {\r\n url: '/alerts',\r\n templateUrl: 'app/pages/ui/alerts/alerts.html',\r\n title: 'Alerts',\r\n sidebarMeta: {\r\n order: 500,\r\n },\r\n });\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.ui.buttons', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('ui.buttons', {\r\n url: '/buttons',\r\n templateUrl: 'app/pages/ui/buttons/buttons.html',\r\n controller: 'ButtonPageCtrl',\r\n title: 'Buttons',\r\n sidebarMeta: {\r\n order: 100,\r\n },\r\n });\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.ui.grid', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('ui.grid', {\r\n url: '/grid',\r\n templateUrl: 'app/pages/ui/grid/grid.html',\r\n title: 'Grid',\r\n sidebarMeta: {\r\n order: 400,\r\n },\r\n });\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.ui.icons', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('ui.icons', {\r\n url: '/icons',\r\n templateUrl: 'app/pages/ui/icons/icons.html',\r\n controller: 'IconsPageCtrl',\r\n title: 'Icons',\r\n sidebarMeta: {\r\n order: 200,\r\n },\r\n });\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.ui.modals', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('ui.modals', {\r\n url: '/modals',\r\n templateUrl: 'app/pages/ui/modals/modals.html',\r\n controller: 'ModalsPageCtrl',\r\n title: 'Modals',\r\n sidebarMeta: {\r\n order: 300,\r\n },\r\n });\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.ui.notifications', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('ui.notifications', {\r\n url: '/notifications',\r\n templateUrl: 'app/pages/ui/notifications/notifications.html',\r\n controller: 'NotificationsPageCtrl',\r\n title: 'Notifications',\r\n sidebarMeta: {\r\n order: 700,\r\n },\r\n });\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 23.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.ui.panels', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('ui.panels', {\r\n url: '/panels',\r\n templateUrl: 'app/pages/ui/panels/panels.html',\r\n controller: 'NotificationsPageCtrl',\r\n title: 'Panels',\r\n sidebarMeta: {\r\n order: 1100,\r\n },\r\n });\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.ui.progressBars', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('ui.progressBars', {\r\n url: '/progressBars',\r\n templateUrl: 'app/pages/ui/progressBars/progressBars.html',\r\n title: 'Progress Bars',\r\n sidebarMeta: {\r\n order: 600,\r\n },\r\n });\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author a.demeshko\r\n * created on 12/22/15\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.ui.slider', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('ui.slider', {\r\n url: '/slider',\r\n templateUrl: 'app/pages/ui/slider/slider.html',\r\n title: 'Sliders',\r\n sidebarMeta: {\r\n order: 1000,\r\n },\r\n });\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 21.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.ui.tabs', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('ui.tabs', {\r\n url: '/tabs',\r\n templateUrl: 'app/pages/ui/tabs/tabs.html',\r\n title: 'Tabs & Accordions',\r\n sidebarMeta: {\r\n order: 800,\r\n },\r\n });\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.ui.typography', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('ui.typography', {\r\n url: '/typography',\r\n templateUrl: 'app/pages/ui/typography/typography.html',\r\n title: 'Typography',\r\n sidebarMeta: {\r\n order: 0,\r\n },\r\n });\r\n }\r\n\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n var baseUrl = carePrepare.baseUrl;\r\n\r\n angular\r\n .module('BlurAdmin')\r\n .constant('moment', moment)\r\n .constant('appconstants', {\r\n LoginEndpoint: baseUrl + 'api/Users/Authenticate',\r\n RefreshTokenEndpoint: baseUrl + 'api/Users/refresh-token',\r\n LogoutEndpoint: baseUrl + 'api/Users/Logout',\r\n ChangePasswordEndpoint: baseUrl + 'api/Users/ChangePassword',\r\n SendPasswordResetLink: baseUrl + 'api/Users/SendPasswordResetLink',\r\n UpdateForgottenPassword: baseUrl + 'api/Users/UpdateForgottenPassword',\r\n GetStatesEndpoint: baseUrl + 'api/Facility/GetStates',\r\n GetCitiesEndpoint: baseUrl + 'api/Facility/GetCitiesByState',\r\n GetFacilitiesEndpoint: baseUrl + 'api/Facility/GetFacilitiesByStateAndCity',\r\n GetQualityBenchmarksByFacility: baseUrl + 'api/Facility/GetQualityBenchmarksByFacility',\r\n GetCommunityHistory: baseUrl + 'api/Facility/GetCommunityHistoryByFacility',\r\n GetPenaltyExplorerData: baseUrl + 'api/Facility/GetPenaltyExplorerDataByFacility',\r\n GetCitationsExplorerData: baseUrl + 'api/Facility/GetCitationsExplorerDataByFacility',\r\n GetFacilitiesLocalToFacility: baseUrl + 'api/Facility/GetFacilitiesLocalToFacility',\r\n GetFacilityComparisons: baseUrl + 'api/Facility/GetFacilityComparisons',\r\n GetFacilityDetail: baseUrl + 'api/Facility/GetFacilityDetailByFacilityId',\r\n GetCommunityDetail: baseUrl + 'api/Facility/GetCommunityDetailByFacilityId',\r\n GetFacilityComparisonReport: baseUrl + 'api/Facility/GetFacilityComparisonReport',\r\n GetFacilityComparisonReportFile: baseUrl + 'api/Facility/GetComparisonReportFile',\r\n GetFacilitiesByAddress: baseUrl + 'api/Facility/GetFacilitiesByAddress',\r\n GetEventsForFacilityByDate: baseUrl + 'api/Facility/GetEventsForFacilityByDate',\r\n GetPenaltiesForFacilityByDate: baseUrl + 'api/Facility/GetPenaltiesForFacilityByDate',\r\n GetSatisfactionsForFacilityByDate: baseUrl + 'api/Facility/GetSatisfactionsForFacilityByDate',\r\n GetSurveysForFacilityByDate: baseUrl + 'api/Facility/GetSurveysForFacilityByDate',\r\n GetSurveysNoDeficienciesForFacilityByDate: baseUrl + 'api/Facility/GetSurveysNoDeficienciesForFacilityByDate',\r\n CreateGroupEndpoint: baseUrl + 'api/Group/CreateGroup',\r\n GetGroupsEndpoint: baseUrl + 'api/Group/GetGroups',\r\n UpdateGroupEndpoint: baseUrl + 'api/Group/UpdateGroup',\r\n GetGroupDetailsEndpoint: baseUrl + 'api/Group/GetGroupDetails',\r\n DeleteGroupEndpoint: baseUrl + 'api/Group/DeleteGroup',\r\n CreateGroupFromExistingGroup: baseUrl + 'api/Group/CreateGroupFromExistingGroup',\r\n\r\n //Portfolio Overview\r\n GetPortfolioOverviewEndpoint: baseUrl + 'api/Portfolio/GetPortfolioOverview',\r\n GetPortfolioOverviewReport: baseUrl + 'api/Portfolio/GetPortfolioOverviewReport',\r\n GetPortfolioOverviewReportFile: baseUrl + 'api/Portfolio/GetPortfolioOverviewReportFile',\r\n\r\n // State Infoes\r\n GetStateInfoStatesEndpoint: baseUrl + 'api/StateInfo/GetStates',\r\n GetStateInfoEndpoint: baseUrl + 'api/StateInfo/GetStateInfo',\r\n GetStateInfoReport: baseUrl + 'api/StateInfo/GetStateInfoReport',\r\n GetStateInfoReportFile: baseUrl + 'api/StateInfo/GetStateInfoReportFile',\r\n\r\n //Performance Explorer\r\n GetPerformanceOverviewEndpoint: baseUrl + 'api/Performance/GetPerformanceOverview',\r\n GetPerformanceCommunityHistoryEndpoint: baseUrl + 'api/Performance/GetPerformanceCommunityHistory',\r\n GetPerformancePenaltyExplorerEndpoint: baseUrl + 'api/Performance/GetPerformancePenaltyExplorer',\r\n GetPerformanceCitationExplorerEndpoint: baseUrl + 'api/Performance/GetPerformanceCitationExplorer',\r\n GetPerformanceExplorerReport: baseUrl + 'api/Performance/GetPerformanceExplorerReport',\r\n GetPerformanceSummaryReport: baseUrl + 'api/Performance/GetPerformanceSummaryReport',\r\n GetPerformanceExplorerReportFile: baseUrl + 'api/Performance/GetPerformanceExplorerReportFile',\r\n GetPerformanceSummaryReportFile: baseUrl + 'api/Performance/GetPerformanceSummaryReportFile',\r\n\r\n //State Benchmark Controller\r\n GetStateBenchmarks: baseUrl + 'api/StateBenchmark/GetStateBenchmarks',\r\n\r\n //Management API\r\n GetAllOrganizations: baseUrl + 'api/Management/GetOrganizations',\r\n GetUsersForOrganization: baseUrl + 'api/Management/GetUsersForOrganization',\r\n AlterAdminAccess: baseUrl + 'api/Management/AlterAdminAccess',\r\n AlterUserAccess: baseUrl + 'api/Management/AlterUserAccess',\r\n AddUser: baseUrl + 'api/Management/Register',\r\n UpdateOrganization : baseUrl + 'api/Management/UpdateOrganization',\r\n GetOrganizationSettings: baseUrl + 'api/Management/GetOrganizationSettings',\r\n UpdateOrganizationSettings: baseUrl + 'api/Management/UpdateOrganizationSettings',\r\n \r\n //Visualization\r\n VisualizeEndpoint: baseUrl + 'api/Visualization/Visualize'\r\n });\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('BlurAdmin')\r\n .config(routerConfig);\r\n\r\n function routerConfig($stateProvider, $urlRouterProvider) {\r\n $stateProvider\r\n .state('main', {\r\n url: '/app',\r\n templateUrl: 'app/main/main.html',\r\n controller: 'MainController',\r\n controllerAs: 'main'})\r\n .state('login', {\r\n url: '/',\r\n templateUrl: 'app/login/login.html',\r\n controller: 'LoginController',\r\n controllerAs: 'login'})\r\n .state('quality', {\r\n url: '/qualityexplorer',\r\n parent: 'main',\r\n params: {\r\n state: null,\r\n city: null,\r\n community: null\r\n },\r\n templateUrl: 'app/quality/quality.html',\r\n title: 'Quality Explorer',\r\n sidebarMeta: {\r\n order: 200,\r\n icon: 'ion-stats-bars',\r\n },\r\n controller: 'QualityController',\r\n controllerAs: 'qualityCtrl'})\r\n /*.state('leadership', {\r\n url: '/leadership',\r\n parent: 'main',\r\n templateUrl: 'app/leadership/leadership.html',\r\n title: 'Leadership Explorer',\r\n sidebarMeta: {\r\n order: 200,\r\n icon: 'ion-android-home',\r\n },\r\n controller: 'LeadershipController',\r\n controllerAs: 'leaderCtrl'})*/\r\n .state('profile', {\r\n url: '/profile',\r\n parent: 'main',\r\n templateUrl: 'app/profile/profile.html',\r\n title: 'Profile',\r\n controller: 'ProfileController',\r\n controllerAs: 'profile' })\r\n .state('groups', {\r\n url: '/groups',\r\n parent: 'main',\r\n templateUrl: 'app/groups/groups.html',\r\n title: 'Groups',\r\n sidebarMeta: {\r\n order: 500,\r\n icon: 'ion-social-buffer'\r\n },\r\n controller: 'GroupsController',\r\n controllerAs: 'groupsCtrl' })\r\n .state('portfolio', {\r\n url: '/portfolio',\r\n parent: 'main',\r\n templateUrl: 'app/portfoliooverview/portfoliooverview.html',\r\n title: 'Portfolio Overview',\r\n sidebarMeta: {\r\n order: 100,\r\n icon: 'ion-ios-pulse-strong'\r\n },\r\n controller: 'PortfolioController',\r\n controllerAs: 'portfolioCtrl' })\r\n .state('stateinfo', {\r\n url: '/stateinfo',\r\n parent: 'main',\r\n templateUrl: 'app/stateinfo/stateinfo.html',\r\n title: 'State Information',\r\n sidebarMeta: {\r\n order: 400,\r\n icon: 'ion-android-locate'\r\n },\r\n controller: 'StateInfoController',\r\n controllerAs: 'stateCtrl' })\r\n .state('performance', {\r\n url: '/performance',\r\n parent: 'main',\r\n templateUrl: 'app/performance/performance.html',\r\n title: 'Performance Explorer',\r\n sidebarMeta: {\r\n order: 300,\r\n icon: 'ion-ios-search-strong'\r\n },\r\n controller: 'PerformanceController',\r\n controllerAs: 'perfCtrl' })\r\n .state('statebenchmarks', {\r\n url: '/statebenchmarks',\r\n parent: 'main',\r\n templateUrl: 'app/statebenchmarks/statebenchmarks.html',\r\n title: 'State Benchmarks',\r\n sidebarMeta: {\r\n order: 300,\r\n icon: 'ion-grid'\r\n },\r\n controller: 'StateBenchmarksController',\r\n controllerAs: 'sbCtrl' })\r\n .state('management',{\r\n url: '/management',\r\n parent: 'main',\r\n templateUrl: 'app/management/management.html',\r\n title: 'Managment Overview',\r\n controller: 'ManagementController',\r\n controllerAs: 'mgmtCtrl' })\r\n .state('resetpassword', {\r\n url: '/resetpassword/:userId?t',\r\n templateUrl: 'app/resetpasswords/resetpassword.html',\r\n controller: 'ResetPasswordController',\r\n controllerAs: 'resetCtrl' })\r\n .state('resetlinksent', {\r\n url: '/resetlinksent',\r\n templateUrl: 'app/resetpasswords/resetlinksent.html',\r\n });\r\n\r\n $urlRouterProvider.otherwise(function (){\r\n return '/';\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin')\r\n .controller('GroupsController', GroupsController);\r\n\r\n function GroupsController($scope, groupsService, $uibModal, qualityService, toastr, visualizationService, authService) {\r\n\r\n var vm = this;\r\n\r\n vm.groups = [];\r\n\r\n vm.newGroupName = null;\r\n vm.existingGroupToCopy = null;\r\n\r\n vm.groupLoading = false;\r\n\r\n vm.communitySelectionEnabled = true;\r\n vm.addressSelectionEnabled = false;\r\n\r\n vm.states = [];\r\n vm.cities = [];\r\n vm.facilities = [];\r\n vm.searchAddressFacilities = [];\r\n\r\n vm.streetAddress = '';\r\n vm.city = '';\r\n vm.state = '';\r\n vm.zip = '';\r\n\r\n vm.selectedGroup = null;\r\n vm.selectedGroupDetail = [];\r\n vm.displayedGroupDetail = [];\r\n\r\n vm.selectedCityStateFacility = null;\r\n vm.selectedAddressFacility = null;\r\n vm.selectedFacility = null;\r\n\r\n vm.showCommunitySelection = false;\r\n vm.showRemoveCommunityButton = false;\r\n\r\n vm.showCityMessage = false;\r\n vm.showFacilityMessage = false;\r\n\r\n function initialize() {\r\n groupsService.getGroups().then(function (res) {\r\n vm.groups = res;\r\n\r\n if (vm.groups.length > 0) {\r\n vm.selectedGroup = vm.groups[0];\r\n groupsService.getGroupDetails(vm.selectedGroup.groupId).then(function (res) {\r\n vm.selectedGroupDetail = res.groupDetails;\r\n });\r\n }\r\n });\r\n\r\n visualizationService.visualize({\r\n \"module\": \"Groups\",\r\n \"action\": \"Requested Groups\"\r\n });\r\n }\r\n\r\n vm.showCreateGroupFromGroupPopup = function () {\r\n if (vm.selectedGroup) {\r\n vm.existingGroupToCopy = vm.selectedGroup;\r\n }\r\n\r\n vm.newFromExistingGroupModal = $uibModal.open({\r\n animation: true,\r\n templateUrl: 'app/groups/create-group-from-group.html',\r\n parent: angular.element(document.body),\r\n targetEvent: null,\r\n size: 'md',\r\n scope: $scope,\r\n fullscreen: false\r\n\r\n });\r\n };\r\n\r\n vm.showCreateGroupPopup = function () {\r\n vm.newGroupModal = $uibModal.open({\r\n animation: true,\r\n templateUrl: 'app/groups/create-group.html',\r\n parent: angular.element(document.body),\r\n targetEvent: null,\r\n size: 'sm',\r\n scope: $scope,\r\n preserveScope: true,\r\n fullscreen: false\r\n });\r\n };\r\n\r\n vm.showDeleteGroupPopup = function () {\r\n vm.deleteGroupModal = $uibModal.open({\r\n animation: true,\r\n templateUrl: 'app/groups/delete-group.html',\r\n parent: angular.element(document.body),\r\n targetEvent: null,\r\n size: 'sm',\r\n scope: $scope,\r\n preserveScope: true,\r\n fullscreen: false\r\n });\r\n };\r\n\r\n vm.createGroupFromExistingGroup = function () {\r\n groupsService.createGroupFromExistingGroup(vm.newGroupName, vm.existingGroupToCopy.groupId).then(function (createGroupResponse) {\r\n vm.newGroupName = null;\r\n vm.newFromExistingGroupModal.close();\r\n groupsService.getGroups().then(function (getGroupsResponse) {\r\n vm.groups = getGroupsResponse;\r\n });\r\n vm.selectedGroup = createGroupResponse.groupInfo;\r\n vm.selectedGroupDetail = createGroupResponse.groupDetail;\r\n });\r\n\r\n visualizationService.visualize({\r\n \"module\": \"Groups\",\r\n \"action\": \"Requested Create Group From Existing Group\",\r\n \"groupId\": vm.existingGroupToCopy.groupId\r\n });\r\n };\r\n\r\n vm.createGroup = function () {\r\n groupsService.createGroup(vm.newGroupName).then(function (createGroupResponse) {\r\n vm.newGroupName = null;\r\n vm.newGroupModal.close();\r\n groupsService.getGroups().then(function (getGroupsResponse) {\r\n vm.groups = getGroupsResponse;\r\n });\r\n vm.selectedGroup = createGroupResponse;\r\n });\r\n\r\n visualizationService.visualize({\r\n \"module\": \"Groups\",\r\n \"action\": \"Requested Create Group\"\r\n });\r\n };\r\n\r\n vm.deleteGroup = function () {\r\n var groupId = vm.selectedGroup.groupId;\r\n\r\n groupsService.deleteGroup(vm.selectedGroup.groupId).then(function (deleteGroupResponse) {\r\n vm.deleteGroupModal.close();\r\n\r\n if (authService.storage.currentPortfolioGroup !== null && authService.storage.currentPortfolioGroup.groupId == groupId){\r\n authService.storage.currentPortfolioGroup = null;\r\n }\r\n \r\n groupsService.getGroups().then(function (getGroupsResponse) {\r\n vm.groups = getGroupsResponse;\r\n if (vm.groups.length > 0) {\r\n vm.selectedGroup = vm.groups[0];\r\n\r\n groupsService.getGroupDetails(vm.selectedGroup.groupId).then(function (response) {\r\n vm.selectedGroupDetail = response.groupDetails;\r\n });\r\n }\r\n else {\r\n vm.selectedGroup = null;\r\n vm.selectedGroupDetail = null;\r\n }\r\n });\r\n });\r\n\r\n visualizationService.visualize({\r\n \"module\": \"Groups\",\r\n \"action\": \"Requested Delete Group\",\r\n \"groupId\": groupId\r\n });\r\n };\r\n\r\n vm.showAddFacility = function () {\r\n qualityService.getStates().then(function (res) {\r\n vm.states = res;\r\n });\r\n\r\n vm.showCommunitySelection = true;\r\n };\r\n\r\n vm.searchAddress = function () {\r\n vm.searchAddressFacilities = [];\r\n vm.selectedAddressFacility = null;\r\n vm.showFacilityMessage = false;\r\n qualityService.getAllFacilities(vm.streetAddress, vm.city, vm.state, vm.zip).then(function (res) {\r\n vm.searchAddressFacilities = res;\r\n if (vm.searchAddressFacilities.length > 0) {\r\n vm.selectedAddressFacility = vm.searchAddressFacilities[0];\r\n }\r\n else {\r\n vm.showFacilityMessage = true;\r\n }\r\n });\r\n };\r\n\r\n vm.validateAddressSearch = function () {\r\n var result = true;\r\n if (vm.streetAddress != '') {\r\n result = false;\r\n }\r\n if (vm.city != '' && vm.state != '') {\r\n result = false;\r\n }\r\n if (vm.zip != '') {\r\n result = false;\r\n }\r\n\r\n return result;\r\n };\r\n\r\n vm.removeFacilities = function () {\r\n\r\n var newGroupDetail = angular.copy(vm.selectedGroupDetail);\r\n\r\n for (var i = newGroupDetail.length - 1; i >= 0; --i) {\r\n if (newGroupDetail[i].selected) {\r\n newGroupDetail.splice(i, 1);\r\n }\r\n }\r\n\r\n groupsService.updateGroup(vm.selectedGroup.groupId, newGroupDetail)\r\n .then(function (updateGroupResponse) {\r\n return groupsService.getGroupDetails(vm.selectedGroup.groupId);\r\n })\r\n .then(function (response) {\r\n vm.selectedGroupDetail = response.groupDetails;\r\n vm.showRemoveCommunityButton = false;\r\n });\r\n\r\n visualizationService.visualize({\r\n \"module\": \"Groups\",\r\n \"action\": \"Removed Facility From Group\",\r\n \"groupId\": vm.selectedGroup.groupId\r\n });\r\n };\r\n\r\n vm.addFacilityToGroup = function () {\r\n\r\n var groupDetail = angular.copy(vm.selectedGroupDetail);\r\n\r\n if (vm.communitySelectionEnabled) {\r\n vm.selectedFacility = vm.selectedCityStateFacility;\r\n groupDetail.push({\r\n state: vm.selectedState.abbreviation,\r\n city: vm.selectedCity.city,\r\n facilityId: vm.selectedFacility.facilityId\r\n });\r\n }\r\n else {\r\n vm.selectedFacility = vm.selectedAddressFacility;\r\n groupDetail.push({\r\n state: vm.selectedFacility.state,\r\n city: vm.selectedFacility.city,\r\n facilityId: vm.selectedFacility.facilityId\r\n });\r\n }\r\n\r\n groupsService.updateGroup(vm.selectedGroup.groupId, groupDetail).then(function (updateGroupResponse) {\r\n if (updateGroupResponse.success){\r\n toastr.success(vm.selectedFacility.name + ' was added to ' + vm.selectedGroup.name + ' successfully.', 'Community Added')\r\n groupsService.getGroupDetails(vm.selectedGroup.groupId).then(function (response) {\r\n var groupDetails = response.groupDetails;\r\n var totalCount = response.totalCount;\r\n\r\n vm.selectedGroupDetail.push(groupDetails[totalCount - 1]);\r\n resetInputs();\r\n\r\n if (vm.selectedGroupDetail.length % 10 == 1 && vm.selectedGroupDetail.length !== 1) {\r\n $scope.$broadcast('changeTablePage', vm.selectedGroupDetail.length - 1);\r\n }\r\n });\r\n }\r\n else {\r\n toastr.error('The facility was a duplicate and could not be added.');\r\n resetInputs();\r\n }\r\n \r\n });\r\n\r\n visualizationService.visualize({\r\n \"module\": \"Groups\",\r\n \"action\": \"Added Facility To Group\",\r\n \"groupId\": vm.selectedGroup.groupId\r\n });\r\n };\r\n\r\n vm.cancelAddFacilityToGroup = function () {\r\n vm.showCommunitySelection = false;\r\n vm.selectedState = null;\r\n vm.selectedCity = null;\r\n vm.selectedCityStateFacility = null;\r\n vm.streetAddress = '';\r\n vm.city = '';\r\n vm.state = '';\r\n vm.zip = '';\r\n vm.selectedAddressFacility = null;\r\n vm.communitySelectionEnabled = true;\r\n vm.addressSelectionEnabled = false;\r\n };\r\n\r\n vm.validateRemoveCommunityButton = function () {\r\n for (var i = 0; i < vm.displayedGroupDetail.length; i++) {\r\n if (vm.displayedGroupDetail[i].selected) {\r\n vm.showRemoveCommunityButton = true;\r\n break;\r\n }\r\n\r\n vm.showRemoveCommunityButton = false;\r\n }\r\n };\r\n\r\n vm.validateAddCommunity = function () {\r\n var result = true;\r\n if (vm.communitySelectionEnabled && vm.selectedCityStateFacility) {\r\n result = false;\r\n }\r\n else if (vm.addressSelectionEnabled && vm.selectedAddressFacility) {\r\n result = false;\r\n }\r\n return result;\r\n };\r\n\r\n $scope.$watch(function () {\r\n return vm.selectedGroup;\r\n }, function (newVal, oldVal) {\r\n if (newVal && newVal != oldVal) {\r\n vm.groupLoading = true;\r\n\r\n groupsService.getGroupDetails(vm.selectedGroup.groupId).then(function (res) {\r\n vm.selectedGroupDetail = res.groupDetails;\r\n vm.groupLoading = false;\r\n }, function (err) {\r\n vm.groupLoading = false;\r\n });\r\n }\r\n });\r\n\r\n $scope.$watch(function () {\r\n return vm.selectedState;\r\n }, function (newVal, oldVal) {\r\n if (newVal && newVal != oldVal) {\r\n vm.selectedCity = null;\r\n vm.selectedFacility = null;\r\n vm.facilities = [];\r\n qualityService.getCities(vm.selectedState.abbreviation).then(function (res) {\r\n vm.cities = res;\r\n\r\n if (vm.cities.length == 0) {\r\n vm.showCityMessage = true;\r\n }\r\n else {\r\n vm.showCityMessage = false;\r\n }\r\n })\r\n }\r\n });\r\n\r\n $scope.$watch(function () {\r\n return vm.selectedCity;\r\n }, function (newVal, oldVal) {\r\n if (newVal && newVal != oldVal) {\r\n vm.selectedFacility = null;\r\n qualityService.getFacilities(vm.selectedCity.city, vm.selectedState.abbreviation).then(function (res) {\r\n vm.facilities = res;\r\n });\r\n }\r\n });\r\n\r\n $scope.$watch(function () {\r\n return vm.streetAddress;\r\n }, function (newVal, oldVal) {\r\n if (newVal && newVal != oldVal) {\r\n vm.validateAddressSearch();\r\n }\r\n });\r\n\r\n $scope.$watch(function () {\r\n return vm.city;\r\n }, function (newVal, oldVal) {\r\n if (newVal && newVal != oldVal) {\r\n vm.validateAddressSearch();\r\n }\r\n });\r\n\r\n $scope.$watch(function () {\r\n return vm.state;\r\n }, function (newVal, oldVal) {\r\n if (newVal && newVal != oldVal) {\r\n vm.validateAddressSearch();\r\n }\r\n });\r\n\r\n $scope.$watch(function () {\r\n return vm.zip;\r\n }, function (newVal, oldVal) {\r\n if (newVal && newVal != oldVal) {\r\n vm.validateAddressSearch();\r\n }\r\n });\r\n\r\n $scope.$watch(function () {\r\n return vm.communitySelectionEnabled;\r\n }, function (newVal, oldVal) {\r\n if (newVal && newVal != oldVal) {\r\n vm.addressSelectionEnabled = false;\r\n vm.validateAddCommunity();\r\n }\r\n });\r\n\r\n $scope.$watch(function () {\r\n return vm.addressSelectionEnabled;\r\n }, function (newVal, oldVal) {\r\n if (newVal && newVal != oldVal) {\r\n vm.communitySelectionEnabled = false;\r\n vm.validateAddCommunity();\r\n }\r\n });\r\n\r\n $scope.$watch(function () {\r\n return vm.selectedCityStateFacility;\r\n }, function (newVal, oldVal) {\r\n if (newVal && newVal != oldVal) {\r\n vm.validateAddCommunity();\r\n }\r\n }, true);\r\n\r\n $scope.$watch(function () {\r\n return vm.selectedAddressFacility;\r\n }, function (newVal, oldVal) {\r\n if (newVal && newVal != oldVal) {\r\n vm.validateAddCommunity();\r\n }\r\n }, true);\r\n\r\n function resetInputs(){\r\n vm.selectedCityStateFacility = null;\r\n vm.selectedAddressFacility = null;\r\n vm.selectedFacility = null;\r\n vm.selectedCity = null;\r\n vm.selectedState = null;\r\n vm.city = '';\r\n vm.state = '';\r\n vm.zip = '';\r\n vm.streetAddress = '';\r\n }\r\n\r\n initialize();\r\n\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin')\r\n .service('groupsService', groupsService);\r\n\r\n groupsService.$inject = ['$state', '$q', '$http', 'appconstants'];\r\n\r\n function groupsService($state, $q, $http, appconstants) {\r\n this.createGroup = createGroup;\r\n this.getGroups = getGroups;\r\n this.deleteGroup = deleteGroup;\r\n this.updateGroup = updateGroup;\r\n this.getGroupDetails = getGroupDetails;\r\n this.createGroupFromExistingGroup = createGroupFromExistingGroup;\r\n\r\n function createGroupFromExistingGroup(groupName, groupId) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.CreateGroupFromExistingGroup,\r\n data: {\r\n name: groupName,\r\n groupId: groupId\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n function createGroup(groupName) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.CreateGroupEndpoint,\r\n data: {\r\n name: groupName\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n function getGroups () {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetGroupsEndpoint,\r\n data: {\r\n\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n function deleteGroup(groupId) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.DeleteGroupEndpoint,\r\n data: {\r\n groupId: groupId\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n function updateGroup(groupId, groups) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.UpdateGroupEndpoint,\r\n data: {\r\n groupId: groupId,\r\n groupEntries: groups\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n function getGroupDetails(groupId, pageSize) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetGroupDetailsEndpoint,\r\n data: {\r\n groupId: groupId,\r\n pageSize: pageSize\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n }\r\n\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('BlurAdmin')\r\n .controller('LeadershipController', LeadershipController);\r\n\r\n function LeadershipController($scope, $timeout, baConfig, layoutPaths) {\r\n var vm = this;\r\n var layoutColors = baConfig.colors;\r\n\r\n vm.startDateOpen = false;\r\n vm.endDateOpen = false;\r\n\r\n vm.openStartDate = openStartDate;\r\n vm.openEndDate = openEndDate;\r\n\r\n vm.startDate = new Date(\"January 1, 2017\");\r\n vm.endDate = Date.now();\r\n\r\n vm.format = 'MM/dd/yyyy';\r\n\r\n vm.withSearchItem = {};\r\n\r\n vm.selectWithSearchItems = [\r\n {label: 'Brookdale Brea', value: 1},\r\n {label: 'Brookdale Raleigh', value: 2},\r\n ];\r\n\r\n function initialize() {\r\n var operationalScoresBarChart = AmCharts.makeChart('operationalScoresBarChart', {\r\n titles: [\r\n {\r\n \"text\": \"Performance by Category\",\r\n \"size\": 15\r\n }\r\n ],\r\n height: '100%',\r\n type: 'serial',\r\n theme: 'blur',\r\n dataProvider: [\r\n {\r\n label: 'Quality Of Care',\r\n value: 92,\r\n stateBenchmark: 87,\r\n nationalBenchmark: 89\r\n },\r\n {\r\n label: 'Resident Wellness',\r\n value: 100,\r\n stateBenchmark: 90,\r\n nationalBenchmark: 87\r\n },\r\n {\r\n label: 'Staff Management',\r\n value: 97,\r\n stateBenchmark: 89,\r\n nationalBenchmark: 89\r\n },\r\n {\r\n label: 'Food Service',\r\n value: 70,\r\n stateBenchmark: 93,\r\n nationalBenchmark: 97\r\n },\r\n {\r\n label: 'Facility and Environment',\r\n value: 80,\r\n stateBenchmark: 83,\r\n nationalBenchmark: 81\r\n },\r\n {\r\n label: 'Life Safety',\r\n value: 91,\r\n stateBenchmark: 85,\r\n nationalBenchmark: 82\r\n },\r\n {\r\n label: 'Administration',\r\n value: 100,\r\n stateBenchmark: 88,\r\n nationalBenchmark: 86\r\n },\r\n {\r\n label: 'Other',\r\n value: 83,\r\n stateBenchmark: 79,\r\n nationalBenchmark: 85\r\n }\r\n ],\r\n valueAxes: [\r\n {\r\n axisAlpha: 0,\r\n position: 'left',\r\n gridAlpha: 0.5,\r\n gridColor: layoutColors.border,\r\n minimum: 0,\r\n maximum: 100\r\n }\r\n ],\r\n startDuration: 1,\r\n graphs: [\r\n {\r\n balloonText: 'Site: [[value]]',\r\n fillAlphas: 0.7,\r\n lineAlpha: 0.2,\r\n type: 'column',\r\n title: 'Site',\r\n valueField: 'value'\r\n },\r\n {\r\n balloonText: 'State Benchmark: [[value]]',\r\n fillAlphas: 0,\r\n lineAlpha: 1,\r\n lineThickness: 3,\r\n title: 'State Benchmark',\r\n valueField: 'stateBenchmark'\r\n },\r\n {\r\n balloonText: 'National Benchmark: [[value]]',\r\n fillAlphas: 0,\r\n lineAlpha: 1,\r\n lineThickness: 3,\r\n title: 'National Benchmark',\r\n valueField: 'nationalBenchmark'\r\n }\r\n ],\r\n legend: {\r\n useGraphSettings: true,\r\n position: \"bottom\",\r\n align: \"center\",\r\n color: \"black\"\r\n },\r\n chartCursor: {\r\n categoryBalloonEnabled: false,\r\n cursorAlpha: 0,\r\n zoomable: false\r\n },\r\n categoryField: 'label',\r\n categoryAxis: {\r\n gridPosition: 'start',\r\n labelRotation: 45,\r\n gridAlpha: 0.5,\r\n gridColor: layoutColors.border,\r\n },\r\n export: {\r\n enabled: true\r\n },\r\n creditsPosition: 'top-right',\r\n pathToImages: layoutPaths.images.amChart\r\n });\r\n }\r\n\r\n vm.allCitations = [\r\n {\r\n date: '8/30/2017',\r\n surveyType: 'Recertification/Complaint',\r\n deficiencyType: 'Quality of Care',\r\n code: '87466',\r\n description: 'Observation of the Resident. The licensee shall ensure that residents are regularly observed for changes in physical, mental, emotional and social functioning' +\r\n 'and that appropriate assistance is provided when such observation reveals unmet needs. When change ssucch as unusual weight gains or losses or deterioration of mental ability' +\r\n 'or physical health condition are observed...'\r\n },\r\n {\r\n date: '8/30/2017',\r\n surveyType: 'Recertification/Complaint',\r\n deficiencyType: 'Quality of Care',\r\n code: '§1569.269(a)(5)',\r\n description: 'Enumerated rights; severability. To be accorded safe, healthful, and comfortable accomodations, furnishings, and equipment. On 10/07/2015, R1 hit R2 with a lamp. ' +\r\n 'R2 required stitches.'\r\n },\r\n {\r\n date: '8/30/2017',\r\n surveyType: 'Recertification/Complaint',\r\n deficiencyType: 'Staffing',\r\n code: '87303(a)',\r\n description: 'Maintenance and Operation. The facility shall be clean, safe, sanitary and in good repair at all times. LPA observed what appeared to be mouse droppings on 01/13/2016 and 01/22/2016 in several' +\r\n 'resident\\'s closets. This poses an immediate Health and Safety risk to clients in care.'\r\n },\r\n {\r\n date: '8/30/2017',\r\n surveyType: 'Recertification/Complaint',\r\n deficiencyType: 'Administration',\r\n code: '87457(c)(1)',\r\n description: 'Pre-Admission Appraisal - General Prior to admission a determination of the prospective resident\\'s suitability for admission shall be completed and shall iunclude an appraisal of his/her' +\r\n 'individual service needs. The appraisal shall include, at a minimum, an evaluation of the prospective resident\\'s...'\r\n },\r\n {\r\n date: '8/30/2017',\r\n surveyType: 'Recertification/Complaint',\r\n deficiencyType: 'Administration',\r\n code: '87507(c)(4)',\r\n description: 'Facility failed to provide adequate notice of rate increase. Less than 30 days notice was given to R1\\'s family.'\r\n },\r\n {\r\n date: '6/1/2017',\r\n surveyType: 'Complaint',\r\n deficiencyType: 'Quality of Care',\r\n code: '87465(h)(2)',\r\n description: 'Incidental Medical and Dental Care Services. Centrally stored medications shall be kept in a safe locked place that is not accessible to persons other than employees responsible for' +\r\n 'the supervision of the medication. LPAs observed centrally stored medications were in a n unlocked kitchen cabinet accessible to residents.'\r\n },\r\n {\r\n date: '6/1/20017',\r\n surveyType: 'Complaint',\r\n deficiencyType: 'Quality of Care',\r\n code: '87465(c)(2)',\r\n description: 'Incidental Medical and Dental Care Services. Once ordered by the physician, nonprescription PRN medications shall be given in accordance with the physician\\'s directions. R1 was agitated' +\r\n 'throughout the day, but staff only administered Ativan at bedtime when order stated every 6 hours as needed.'\r\n }\r\n ];\r\n\r\n function openStartDate() {\r\n vm.startDateOpen = true\r\n }\r\n\r\n function openEndDate() {\r\n vm.endDateOpen = true;\r\n }\r\n\r\n $timeout(function() {\r\n initialize();\r\n }, 100);\r\n }\r\n})();\n/**\r\n * Created by DevMain on 11/3/2015.\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('BlurAdmin')\r\n .controller('LoginController', LoginController);\r\n\r\n /* @ngInject */\r\n function LoginController(authService, $state, visualizationService, toastr) {\r\n var vm = this;\r\n vm.title = 'LoginController';\r\n vm.userName = '';\r\n vm.password = '';\r\n vm.loginFailed = false;\r\n vm.loginFailedText = '';\r\n vm.isLoggingIn = false;\r\n\r\n vm.issendingEmail = false;\r\n vm.forgotPasswordUsername = '';\r\n vm.resetFailed = false;\r\n vm.resetFailedText = '';\r\n\r\n vm.resetMode = false;\r\n\r\n vm.returnToLogin = function () {\r\n vm.resetMode = false;\r\n }\r\n\r\n vm.goToReset = function () {\r\n vm.resetMode = true;\r\n }\r\n\r\n vm.forgotPassword = function () {\r\n if (vm.forgotPasswordUsername.length == 0) {\r\n vm.resetFailed = true;\r\n vm.resetFailedText = 'Username cannot be empty.';\r\n return;\r\n }\r\n vm.isSendingEmail = true;\r\n authService.forgotPassword(vm.forgotPasswordUsername).then(function (res) {\r\n\r\n vm.resetFailedText = 'An email has been sent with your new password.';\r\n vm.resetFailed = true;\r\n\r\n vm.isSendingEmail = false;\r\n\r\n }, function (err) {\r\n vm.resetFailedText = err;\r\n vm.resetFailed = true;\r\n vm.isSendingEmail = false;\r\n });\r\n\r\n\r\n };\r\n\r\n vm.sendPasswordResetLink = function () {\r\n if (vm.forgotPasswordUsername.length == 0) {\r\n toastr.error('Username cannot be empty.');\r\n \r\n return;\r\n }\r\n \r\n vm.isSendingEmail = true;\r\n \r\n authService.sendPasswordResetLink(vm.forgotPasswordUsername).then(function (res) {\r\n vm.forgotPasswordUsername = '';\r\n vm.isSendingEmail = true;\r\n $state.go('resetlinksent');\r\n vm.forgotPasswordMode = false; \r\n }, function (err) {\r\n toastr.error(err);\r\n vm.isSendingEmail = false;\r\n });\r\n };\r\n \r\n vm.login = function () {\r\n\r\n vm.isLoggingIn = true;\r\n\r\n authService.login(vm.userName, vm.password).then(function (res) {\r\n\r\n vm.loginFailedText = '';\r\n vm.loginFailed = false;\r\n vm.userName = '';\r\n vm.password = '';\r\n $state.go('portfolio');\r\n\r\n vm.isLoggingIn = false;\r\n\r\n visualizationService.visualize({\r\n \"action\": \"Login\"\r\n });\r\n\r\n }, function (err) {\r\n vm.loginFailedText = err;\r\n vm.loginFailed = true;\r\n vm.isLoggingIn = false;\r\n });\r\n }\r\n\r\n activate();\r\n\r\n ////////////////\r\n\r\n function activate() {\r\n //vm.login();\r\n }\r\n\r\n }\r\n\r\n})();\r\n\r\n\n(function () {\r\n angular.module('BlurAdmin')\r\n .controller('MainController', MainController);\r\n\r\n function MainController() {\r\n var vm = this;\r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n \r\n angular\r\n .module('BlurAdmin')\r\n .controller('ManagementController', ManagementController);\r\n \r\n /** @ngInject */\r\n function ManagementController($timeout, authService, $uibModal, $scope, $q, managementService, toastr) {\r\n var vm = this;\r\n \r\n vm.isAdmin = authService.storage.isAdmin;\r\n vm.isDemoAccount = authService.storage.isDemoAccount;\r\n vm.secretKey = '';\r\n vm.organizations = [];\r\n vm.selectedOrganization = null;\r\n vm.users = null;\r\n vm.firstName = '';\r\n vm.lastName = '';\r\n vm.email = '';\r\n vm.setIsAdmin = false;\r\n vm.moduleVerificationKey = '';\r\n vm.safeDomainNames = [];\r\n vm.newSafeDomain = '';\r\n \r\n vm.newUser = {\r\n firstName: '',\r\n lastName: '',\r\n email: '',\r\n isAdmin: false,\r\n organizationId: null\r\n };\r\n \r\n vm.showAddUserConfirmation = function () {\r\n vm.addUserModal = $uibModal.open({\r\n animation: true,\r\n templateUrl: 'app/management/add-user.html',\r\n parent: angular.element(document.body),\r\n targetEvent: null,\r\n size: 'sm',\r\n scope: $scope,\r\n preserveScope: true,\r\n fullscreen: false\r\n });\r\n vm.addUserModal.result.then(function () {\r\n verifyUserDomain();\r\n }, function () {\r\n });\r\n };\r\n\r\n //This copies the list of safe domain names before\r\n //adding the new domain so we can revert to the original list\r\n //if something goes wrong server side\r\n vm.addSafeDomain = function () {\r\n\r\n if (vm.newSafeDomain.toLowerCase() === \"careprepare.com\"){\r\n toastr.error(\"careprepare.com is always a safe domain.\");\r\n return;\r\n }\r\n\r\n if (!allowedDomain(vm.newSafeDomain)){\r\n vm.newSafeDomain = '';\r\n toastr.error('This domain cannot be added as a safe domain.');\r\n return;\r\n }\r\n\r\n for (var i = 0; i < vm.safeDomainNames.length; i++){\r\n if (vm.safeDomainNames[i].toLowerCase() === vm.newSafeDomain.toLowerCase()){\r\n vm.newSafeDomain = '';\r\n toastr.error(\"This domain has already been added as a safe domain.\");\r\n return;\r\n }\r\n } \r\n\r\n var safeDomainNames = angular.copy(vm.safeDomainNames);\r\n safeDomainNames.push(vm.newSafeDomain.toLowerCase());\r\n vm.newSafeDomain = '';\r\n\r\n var settings = buildSettingsObject(safeDomainNames);\r\n\r\n updateOrganizationSettings(settings).then(function (res) {\r\n destructureOrgSettings(res);\r\n }, function (err){\r\n toastr.error(err);\r\n });\r\n };\r\n\r\n //Add any new organization settings as a param here\r\n function buildSettingsObject(domains){\r\n return {\r\n safeDomainNames: domains\r\n };\r\n }\r\n\r\n\r\n\r\n function updateOrganizationSettings (settings) {\r\n return $q(function (resolve, reject) {\r\n managementService.updateOrganizationSettings(vm.selectedOrganization.organizationId, settings).then(function (res){\r\n resolve(settings);\r\n }, function (err){\r\n reject(err);\r\n });\r\n });\r\n }\r\n\r\n function showNotSafeDomainConfirmation() {\r\n vm.notSafeDomain = $uibModal.open({\r\n animation: true,\r\n templateUrl: 'app/management/not-safe-domain.html',\r\n parent: angular.element(document.body),\r\n targetEvent: null,\r\n size: 'sm',\r\n scope: $scope,\r\n preserveScope: true,\r\n fullscreen: false\r\n });\r\n vm.notSafeDomain.result.then(function () {\r\n addUser();\r\n }, function () {\r\n });\r\n }\r\n\r\n function verifyUserDomain() {\r\n var split = vm.newUser.email.split('@');\r\n\r\n if(split.length != 2){\r\n toastr.error(\"There was an issue with the provided email.\");\r\n return;\r\n }\r\n\r\n var domain = vm.newUser.email.split('@')[1];\r\n\r\n if (vm.safeDomainNames.length == 0 && domain.toLowerCase() == 'careprepare.com') {\r\n addUser();\r\n return;\r\n } \r\n\r\n for (var i = 0; i < vm.safeDomainNames.length; i++){\r\n if (vm.safeDomainNames[i].toLowerCase() === domain.toLowerCase() || domain.toLowerCase() === 'careprepare.com'){\r\n addUser();\r\n return;\r\n }\r\n }\r\n showNotSafeDomainConfirmation();\r\n }\r\n\r\n function removeSafeDomain(domain) {\r\n var safeDomains = angular.copy(vm.safeDomainNames);\r\n safeDomains.splice(safeDomains.indexOf(domain), 1);\r\n \r\n var settings = buildSettingsObject(safeDomains);\r\n\r\n updateOrganizationSettings(settings).then(function (res) {\r\n destructureOrgSettings(res);\r\n }, function (err){\r\n toastr.success(err);\r\n });\r\n }\r\n \r\n function allowedDomain(domain) {\r\n var notAllowed = ['gmail.com', 'yahoo.com', 'hotmail.com', 'aol.com'];\r\n \r\n if (notAllowed.indexOf(domain.toLowerCase()) == -1){\r\n return true;\r\n }\r\n \r\n return false;\r\n }\r\n\r\n function destructureOrgSettings(settings) {\r\n vm.safeDomainNames = settings.safeDomainNames;\r\n }\r\n\r\n vm.showRemoveDomainConfirmation = function (domain) {\r\n $scope.domain = domain;\r\n vm.removeSafeDomainModal = $uibModal.open({\r\n animation: true,\r\n templateUrl: 'app/management/remove-domain.html',\r\n parent: angular.element(document.body),\r\n targetEvent: null,\r\n size: 'sm',\r\n scope: $scope,\r\n preserveScope: true,\r\n fullscreen: false\r\n });\r\n \r\n vm.removeSafeDomainModal.result.then(function () {\r\n removeSafeDomain(domain);\r\n $scope.domain = null;\r\n }, function () {\r\n $scope.domain = null;\r\n });\r\n }\r\n\r\n vm.orgModulesDisabled = function () {\r\n return vm.settingsVerificationKey !== vm.secretKey;\r\n };\r\n \r\n vm.updateIsAdmin = function (user) {\r\n user.updatingAdminAccess = true;\r\n managementService.alterAdminAccess(user.userId, user.isAdmin).then(function (res) {\r\n user.updatingAdminAccess = false;\r\n }, function (res) {\r\n user.updatingAdminAccess = false;\r\n user.isAdmin = !user.isAdmin;\r\n });\r\n };\r\n \r\n vm.updateUserIsDisabled = function (user) {\r\n user.updatingUserAccess = true;\r\n managementService.alterUserAccess(user.userId, user.isDisabled).then(function (res) {\r\n user.updatingUserAccess = false;\r\n }, function (res) {\r\n user.updatingUserAccess = false;\r\n user.isDisabled = !user.isDisabled;\r\n });\r\n };\r\n \r\n vm.updateOrgIsDisabled = function () {\r\n vm.updatingOrgAccess = true;\r\n managementService.updateOrganization(vm.selectedOrganization).then(function (res) {\r\n vm.updatingOrgAccess = false;\r\n }, function (res) {\r\n vm.updatingOrgAccess = false;\r\n vm.selectedOrganization.isDisabled = !vm.selectedOrganization.isDisabled;\r\n toastr.error(\"There was an error updating the \" +vm.selectedOrganization.name + \" organization.\");\r\n });\r\n };\r\n \r\n vm.isAddUserDisabled = function () {\r\n return vm.newUser.firstName.length === 0 || vm.newUser.lastName.length === 0 || vm.newUser.email.length === 0;\r\n };\r\n\r\n vm.isAddDomainDisabled = function () {\r\n return vm.newSafeDomain.length === 0;\r\n };\r\n \r\n function activate() {\r\n if (vm.isAdmin && vm.isDemoAccount) {\r\n vm.secretKey = authService.storage.secretKey;\r\n managementService.getOrganizations().then(function (res){\r\n vm.organizations = res;\r\n });\r\n }\r\n }\r\n \r\n function addUser() {\r\n var user = vm.newUser;\r\n user.organizationId = vm.selectedOrganization.organizationId;\r\n \r\n managementService.addUser(user).then(function (res) {\r\n vm.showAddUser = false;\r\n toastr.success(user.email + \" was added to \" + vm.selectedOrganization.name + '.');\r\n clearAddUserFields();\r\n getUsersForOrganization();\r\n }, function (res) {\r\n toastr.error(res);\r\n });\r\n }\r\n \r\n function clearAddUserFields() {\r\n vm.newUser.firstName = '';\r\n vm.newUser.lastName = '';\r\n vm.newUser.email = '';\r\n vm.newUser.isAdmin = false;\r\n vm.newUser.hasReaderLicense = false;\r\n vm.newUser.organizationId = null;\r\n }\r\n\r\n function clearSafeDomainField(){\r\n vm.newSafeDomain = '';\r\n }\r\n \r\n $scope.$watch(function () {\r\n return vm.selectedOrganization;\r\n }, function (newVal, oldVal) {\r\n if (newVal && newVal != oldVal) {\r\n clearOrgSettings();\r\n getUsersForOrganization();\r\n getOrgSettings();\r\n clearAddUserFields();\r\n clearSafeDomainField();\r\n }\r\n }, true);\r\n\r\n function clearOrgSettings() {\r\n vm.safeDomainNames = [];\r\n }\r\n\r\n function getOrgSettings(){\r\n managementService.getOrganizationSettings(vm.selectedOrganization.organizationId).then(function (res) {\r\n if (res != null){\r\n destructureOrgSettings(res);\r\n }\r\n });\r\n }\r\n \r\n function destructureOrgSettings(settings) {\r\n vm.safeDomainNames = settings.safeDomainNames;\r\n }\r\n\r\n $scope.$watch(function () {\r\n return vm.users;\r\n }, function (newVal, oldVal) {\r\n if (newVal && oldVal && newVal != oldVal && newVal.length === oldVal.length) {\r\n for(var i = 0; i < newVal.length; i++){\r\n var found = oldVal.find(function(element) { \r\n return element.userId === newVal[i].userId; \r\n }); \r\n if(found && found.isAdmin != newVal[i].isAdmin){\r\n vm.updateIsAdmin(newVal[i]);\r\n }\r\n if(found && found.isDisabled != newVal[i].isDisabled){\r\n vm.updateUserIsDisabled(newVal[i]);\r\n }\r\n }\r\n }\r\n }, true);\r\n\r\n $scope.$watch(function () {\r\n return vm.selectedOrganization;\r\n }, function (newVal, oldVal) {\r\n if (newVal && oldVal && newVal.isDisabled != oldVal.isDisabled) {\r\n vm.updateOrgIsDisabled();\r\n }\r\n }, true);\r\n \r\n function getUsersForOrganization() {\r\n managementService.getUsersForOrganization(vm.selectedOrganization.organizationId).then(function (res) {\r\n vm.users = res;\r\n });\r\n }\r\n \r\n activate();\r\n }\r\n \r\n })();\r\n \n(function () {\r\n 'use strict';\r\n \r\n angular\r\n .module('BlurAdmin')\r\n .service('managementService', managementService);\r\n \r\n managementService.$inject = ['$state', '$q', '$http', 'appconstants', 'authService'];\r\n /* @ngInject */\r\n function managementService($state, $q, $http, appconstants, authService) {\r\n this.getOrganizations = getOrganizations;\r\n this.getUsersForOrganization = getUsersForOrganization;\r\n this.alterAdminAccess = alterAdminAccess;\r\n this.alterUserAccess = alterUserAccess;\r\n this.addUser = addUser;\r\n this.updateOrganization = updateOrganization;\r\n this.getOrganizationSettings = getOrganizationSettings;\r\n this.updateOrganizationSettings = updateOrganizationSettings;\r\n \r\n this.secretKey = authService.storage.secretKey;\r\n \r\n function getOrganizations() {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetAllOrganizations,\r\n data: {\r\n key: this.secretKey\r\n }\r\n }).then(function (res) {\r\n if (angular.isObject(res.data)) {\r\n return $q.resolve(res.data);\r\n }\r\n }, function (res) {\r\n if (res.status == 400) {\r\n return $q.reject(res.data.Message);\r\n }\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n \r\n function getUsersForOrganization(orgId) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetUsersForOrganization,\r\n data: {\r\n organizationId: orgId,\r\n key: this.secretKey\r\n }\r\n }).then(function (res) {\r\n if (angular.isObject(res.data)) {\r\n return $q.resolve(res.data);\r\n }\r\n }, function (res) {\r\n if (res.status == 400) {\r\n return $q.reject(res.data.Message);\r\n }\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n \r\n function alterAdminAccess(userId, isAdmin) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.AlterAdminAccess,\r\n data: {\r\n userId: userId,\r\n isAdmin: isAdmin,\r\n key: this.secretKey\r\n }\r\n }).then(function (res) {\r\n if (angular.isObject(res.data)) {\r\n return $q.resolve(res.data);\r\n }\r\n }, function (res) {\r\n if (res.status == 400) {\r\n return $q.reject(res.data.Message);\r\n }\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n \r\n function alterUserAccess(userId, isDisabled) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.AlterUserAccess,\r\n data: {\r\n userId: userId,\r\n isDisabled: isDisabled,\r\n key: this.secretKey\r\n }\r\n }).then(function (res) {\r\n if (angular.isObject(res.data)) {\r\n return $q.resolve(res.data);\r\n }\r\n }, function (res) {\r\n if (res.status == 400) {\r\n return $q.reject(res.data.Message);\r\n }\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n \r\n function addUser(newUser) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.AddUser,\r\n data: {\r\n email: newUser.email,\r\n firstName: newUser.firstName,\r\n lastName: newUser.lastName,\r\n organizationId: newUser.organizationId,\r\n isAdmin: newUser.isAdmin,\r\n key: this.secretKey\r\n }\r\n }).then(function (res) {\r\n if (angular.isObject(res.data)) {\r\n return $q.resolve(res.data);\r\n }\r\n }, function (res) {\r\n if (res.status == 400) {\r\n return $q.reject(res.data.Message);\r\n }\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n \r\n function updateOrganization(org){\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.UpdateOrganization,\r\n data: {\r\n isDisabled: org.isDisabled,\r\n organizationId: org.organizationId,\r\n key: this.secretKey\r\n }\r\n }).then(function (res) {\r\n if (angular.isObject(res.data)) {\r\n return $q.resolve(res.data);\r\n }\r\n }, function (res) {\r\n if (res.status == 400) {\r\n return $q.reject(res.data.Message);\r\n }\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n function getOrganizationSettings(id) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetOrganizationSettings,\r\n data: {\r\n organizationId: id,\r\n key: this.secretKey\r\n }\r\n }).then(function (res) {\r\n return $q.resolve(res.data);\r\n }, function (res) {\r\n if (res.status == 400) {\r\n return $q.reject(res.data.Message);\r\n }\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n \r\n function updateOrganizationSettings(id, settings) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.UpdateOrganizationSettings,\r\n data: {\r\n organizationId: id,\r\n settings: settings,\r\n key: this.secretKey\r\n }\r\n }).then(function (res) {\r\n return $q.resolve(res.data);\r\n }, function (res) {\r\n if (res.status == 400) {\r\n return $q.reject(res.data.Message);\r\n }\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n }\r\n \r\n })();\r\n \n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin')\r\n .controller('PerformanceController', PerformanceController);\r\n\r\n function PerformanceController($scope, performanceService, qualityService, appconstants, groupsService, visualizationService) {\r\n var vm = this;\r\n\r\n vm.dataIsLoading = false;\r\n vm.dataLoaded = false;\r\n\r\n vm.communities = [{}];\r\n vm.groupDetails = [{}];\r\n vm.selectedFacilities = [];\r\n vm.failureMessage = null;\r\n vm.isDownloadingReportDetailed = false;\r\n vm.isDownloadingReportSummary = false;\r\n vm.startDateOpen = false;\r\n vm.endDateOpen = false;\r\n\r\n\r\n vm.selectedGroup = null;\r\n\r\n vm.loadFacilities = function () {\r\n vm.selectedFacilities = [];\r\n vm.failureMessage = null;\r\n vm.dataIsLoading = true;\r\n var entries = [];\r\n clearFacilityData();\r\n\r\n for (var i = 0; i < vm.communities.length; i++) {\r\n entries.push({\r\n facilityKey: vm.communities[i].selectedFacility.facilityKey,\r\n startDate: vm.communities[i].startDate,\r\n endDate: vm.communities[i].endDate\r\n })\r\n }\r\n\r\n vm.selectedFacilities = angular.copy(entries);\r\n\r\n performanceService.getPerformanceOverview(vm.selectedFacilities).then(function (res) {\r\n if (res.success) {\r\n\r\n performanceService.getPerformanceCommunityHistory(vm.selectedFacilities).then(function (res) {\r\n vm.performanceCommunityHistories = res.facilities;\r\n });\r\n\r\n vm.performanceOverview = res.overviews;\r\n\r\n for (var i = 0; i < vm.performanceOverview.length; i++) {\r\n mapCategories(vm.performanceOverview[i].facilityPerformance);\r\n mapCategories(vm.performanceOverview[i].countyPerformance);\r\n mapCategories(vm.performanceOverview[i].statePerformance);\r\n }\r\n\r\n vm.dataIsLoading = false;\r\n vm.dataLoaded = true;\r\n }\r\n else {\r\n vm.failureMessage = res.failureMessage;\r\n vm.dataIsLoading = false;\r\n vm.dataLoaded = false;\r\n }\r\n\r\n }, function (res) {\r\n vm.dataIsLoading = false;\r\n });\r\n\r\n visualizationService.visualize({\r\n \"module\": \"Performance Explorer\",\r\n \"action\": \"Requested Facility Data\"\r\n });\r\n };\r\n\r\n vm.loadPerformanceCommunityHistory = function () {\r\n if (vm.performanceCommunityHistories == null) {\r\n performanceService.getPerformanceCommunityHistory(vm.selectedFacilities).then(function (res) {\r\n vm.performanceCommunityHistories = res.facilities;\r\n });\r\n\r\n visualizationService.visualize({\r\n \"module\": \"Performance Explorer\",\r\n \"action\": \"Requested Community History\"\r\n });\r\n }\r\n };\r\n\r\n vm.loadPerformancePenaltyExplorer = function () {\r\n if (vm.performancePenaltyData == null) {\r\n performanceService.getPerformancePenaltyExplorer(vm.selectedFacilities).then(function (res) {\r\n vm.performancePenaltyData = res;\r\n });\r\n\r\n visualizationService.visualize({\r\n \"module\": \"Performance Explorer\",\r\n \"action\": \"Requested Penalty Explorer\"\r\n });\r\n }\r\n };\r\n\r\n vm.loadPerformanceCitationExplorer = function () {\r\n if (vm.performanceCitationData == null) {\r\n performanceService.getPerformanceCitationExplorer(vm.selectedFacilities).then(function (res) {\r\n vm.performanceCitationData = res;\r\n });\r\n\r\n visualizationService.visualize({\r\n \"module\": \"Performance Explorer\",\r\n \"action\": \"Requested Citation Explorer\"\r\n });\r\n }\r\n };\r\n\r\n vm.showCommunityHistoryEntryDetail = function (facility, entry) {\r\n facility.communityHistoryEntryDetailLoading = true;\r\n facility.communityHistoryDetailType = entry.type;\r\n\r\n facility.communityHistoryEvent = entry;\r\n\r\n switch (entry.type) {\r\n case 1:\r\n qualityService.getSurveysForFacilityByDate(facility.facilityKey, entry.entryDate).then(function (res) {\r\n facility.communityHistoryDetail = res;\r\n facility.communityHistoryDetail.isVisible = true;\r\n });\r\n break;\r\n case 2:\r\n qualityService.getPenaltiesForFacilityByDate(facility.facilityKey, entry.entryDate).then(function (res) {\r\n facility.communityHistoryDetail = res;\r\n facility.communityHistoryDetail.isVisible = true;\r\n });\r\n break;\r\n case 3:\r\n qualityService.getSatisfactionsForFacilityByDate(facility.facilityKey, entry.entryDate).then(function (res) {\r\n facility.communityHistoryDetail = res;\r\n facility.communityHistoryDetail.isVisible = true;\r\n });\r\n break;\r\n case 4:\r\n qualityService.getEventsForFacilityByDate(facility.facilityKey, entry.entryDate).then(function (res) {\r\n facility.communityHistoryDetail = res;\r\n facility.communityHistoryDetail.isVisible = true;\r\n });\r\n break;\r\n case 5:\r\n qualityService.getSurveysNoDeficienciesForFacilityByDate(facility.facilityKey, entry.entryDate).then(function (res) {\r\n facility.communityHistoryDetail = res;\r\n facility.communityHistoryDetail.isVisible = true;\r\n });\r\n break;\r\n }\r\n\r\n visualizationService.visualize({\r\n \"module\": \"Performance Explorer\",\r\n \"action\": \"Requested Community History Entry Detail\",\r\n \"historyEntryType\": entry.type\r\n });\r\n };\r\n\r\n vm.downloadPerformanceExplorerReport = function () {\r\n vm.isDownloadingReportDetailed = true;\r\n\r\n var outputFileName = '&outputFilename=performance-details.pdf';\r\n\r\n performanceService.getPerformanceExplorerReport(vm.selectedFacilities).then(function (res) {\r\n vm.isDownloadingReportDetailed = false;\r\n window.location.href = appconstants.GetPerformanceExplorerReportFile + '?filename=' + res.filename + outputFileName;\r\n }, function (res) {\r\n vm.isDownloadingReportDetailed = false;\r\n });\r\n\r\n visualizationService.visualize({\r\n \"module\": \"Performance Explorer\",\r\n \"action\": \"Requested Performance Explorer Report\"\r\n });\r\n };\r\n \r\n vm.downloadPerformanceSummaryReport = function () {\r\n vm.isDownloadingReportSummary = true;\r\n\r\n var outputFileName = '&outputFilename=performance-summary.pdf';\r\n\r\n performanceService.getPerformanceSummaryReport(vm.selectedFacilities).then(function (res) {\r\n vm.isDownloadingReportSummary = false;\r\n window.location.href = appconstants.GetPerformanceSummaryReportFile + '?filename=' + res.filename + outputFileName;\r\n }, function (res) {\r\n vm.isDownloadingReportSummary = false;\r\n });\r\n\r\n visualizationService.visualize({\r\n \"module\": \"Performance Explorer\",\r\n \"action\": \"Requested Performance Summary Report\"\r\n });\r\n };\r\n\r\n vm.isPerformanceDetailsUnavailable = function (){\r\n if (vm.communities.length > 10) {\r\n return true;\r\n }\r\n \r\n return vm.isDownloadingReportDetailed;\r\n };\r\n\r\n vm.validateLoadFacilities = function () {\r\n if (vm.communities.length > 50) {\r\n return true;\r\n }\r\n\r\n for (var i = 0; i < vm.communities.length; i++) {\r\n if (vm.communities[i].selectedFacility == null || vm.communities[i].startDate == null || vm.communities[i].endDate == null) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n };\r\n\r\n function clearFacilityData() {\r\n vm.performanceCommunityHistories = null;\r\n vm.performancePenaltyData = null;\r\n vm.performanceOverview = null;\r\n vm.performanceCitationData = null;\r\n }\r\n vm.openStartDate = function (){\r\n vm.startDateOpen = true;\r\n }\r\n \r\n vm.openEndDate = function (){\r\n vm.endDateOpen = true;\r\n }\r\n\r\n vm.applyAllDates = function (){\r\n for (var i = 0; i < vm.communities.length; i++) {\r\n vm.communities[i].startDate = vm.startDate;\r\n vm.communities[i].endDate = vm.endDate;\r\n }\r\n\r\n }\r\n \r\n $scope.startDateOpen = false;\r\n $scope.endDateOpen = false;\r\n $scope.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n $scope.format = 'shortDate';\r\n $scope.options = {\r\n showWeeks: false\r\n };\r\n \r\n vm.endDate = new Date(Date.now());\r\n vm.startDate = new Date(Date.now());\r\n vm.startDate.setFullYear(vm.endDate.getFullYear()-2);\r\n \r\n vm.showOverFiftyMessage = false;\r\n\r\n\r\n $scope.$watch(function () {\r\n return vm.selectedGroup;\r\n }, function (newVal, oldVal) {\r\n if (newVal && newVal != oldVal) {\r\n groupsService.getGroupDetails(vm.selectedGroup.groupId, 50).then(function (res) {\r\n vm.groupDetails = res.groupDetails;\r\n vm.showOverFiftyMessage = res.totalCount > 50;\r\n });\r\n\r\n visualizationService.visualize({\r\n \"module\": \"Performance Explorer\",\r\n \"action\": \"Requested Group Facility Data\"\r\n });\r\n }\r\n });\r\n\r\n function initialize() {\r\n groupsService.getGroups().then(function (res) {\r\n vm.groups = res;\r\n });\r\n }\r\n\r\n initialize();\r\n }\r\n\r\n function mapCategories(entry) {\r\n for (var i = 0; i < entry.categories.length; i++) {\r\n switch (entry.categories[i].categoryId) {\r\n case 1:\r\n entry.administration = entry.categories[i].count;\r\n break;\r\n case 2:\r\n entry.dietary = entry.categories[i].count;\r\n break;\r\n case 3:\r\n entry.facilityAndEnvironment = entry.categories[i].count;\r\n break;\r\n case 4:\r\n entry.lifeSafety = entry.categories[i].count;\r\n break;\r\n case 5:\r\n entry.qualityOfCare = entry.categories[i].count;\r\n break;\r\n case 6:\r\n entry.residentSatisfaction = entry.categories[i].count;\r\n break;\r\n case 7:\r\n entry.staffingTraining = entry.categories[i].count;\r\n break;\r\n case 8:\r\n entry.other = entry.categories[i].count;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin')\r\n .service('performanceService', performanceService);\r\n\r\n performanceService.$inject = ['$state', '$q', '$http', 'appconstants'];\r\n\r\n function performanceService($state, $q, $http, appconstants) {\r\n\r\n this.getPerformanceOverview = getPerformanceOverview;\r\n this.getPerformanceCommunityHistory = getPerformanceCommunityHistory;\r\n this.getPerformancePenaltyExplorer = getPerformancePenaltyExplorer;\r\n this.getPerformanceCitationExplorer = getPerformanceCitationExplorer;\r\n this.getPerformanceExplorerReport = getPerformanceExplorerReport;\r\n this.getPerformanceSummaryReport = getPerformanceSummaryReport;\r\n\r\n function getPerformanceOverview(facilities) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetPerformanceOverviewEndpoint,\r\n data: {\r\n facilities: facilities\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n function getPerformanceCommunityHistory(facilities) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetPerformanceCommunityHistoryEndpoint,\r\n data: {\r\n facilities: facilities\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n function getPerformancePenaltyExplorer(facilities) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetPerformancePenaltyExplorerEndpoint,\r\n data: {\r\n facilities: facilities\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n function getPerformanceCitationExplorer(facilities) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetPerformanceCitationExplorerEndpoint,\r\n data: {\r\n facilities: facilities\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n function getPerformanceExplorerReport(facilities){\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetPerformanceExplorerReport,\r\n data: {\r\n facilities: facilities\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n function getPerformanceSummaryReport(facilities){\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetPerformanceSummaryReport,\r\n data: {\r\n facilities: facilities\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin')\r\n .controller('PortfolioController', PortfolioController);\r\n\r\n function PortfolioController($scope, $timeout, $filter, portfolioService, appconstants, groupsService, authService, $state, visualizationService) {\r\n\r\n var vm = this;\r\n\r\n vm.selectedGroup = null;\r\n\r\n vm.facilityDetails = [];\r\n vm.tableState = null;\r\n vm.currentPage = 0;\r\n vm.currentDataStartDate = null;\r\n vm.currentDataEndDate = null;\r\n\r\n vm.portfolioLoading = false;\r\n vm.isDownloadingReportPdf = false;\r\n vm.isDownloadingReportRaw = false;\r\n\r\n // date range picker\r\n vm.startDate = null;\r\n vm.endDate = null;\r\n vm.lastCollectionDate = null; \r\n vm.startDateOpen = false;\r\n vm.endDateOpen = false; \r\n\r\n vm.openStartDate = function() {\r\n vm.startDateOpen = true;\r\n }\r\n\r\n vm.openEndDate = function() {\r\n vm.endDateOpen = true;\r\n }\r\n\r\n vm.applyDateRangeBtnEnabled = false;\r\n vm.dateRangeErrorMsg = null;\r\n\r\n vm.applyDates = function() {\r\n getPortfolioOverview(vm.selectedGroup.groupId, vm.currentPage, 10, vm.startDate, vm.endDate);\r\n }\r\n\r\n vm.validateDateRange = function() {\r\n vm.dateRangeErrorMsg = null;\r\n\r\n if(vm.endDate.getFullYear() - vm.startDate.getFullYear() == 2 ) {\r\n\r\n if (vm.startDate.getMonth() < vm.endDate.getMonth()){\r\n vm.dateRangeErrorMsg = 'Date range is larger than 2 years';\r\n }\r\n if (vm.startDate.getMonth() == vm.endDate.getMonth()){\r\n if (vm.startDate.getDate() < vm.endDate.getDate()){\r\n vm.dateRangeErrorMsg = 'Date range is larger than 2 years';\r\n }\r\n \r\n }\r\n }\r\n if (vm.endDate.getFullYear() - vm.startDate.getFullYear() > 2){\r\n vm.dateRangeErrorMsg = 'Date range is larger than 2 years';\r\n }\r\n\r\n if (vm.startDate > vm.endDate) {\r\n vm.dateRangeErrorMsg = 'Date range invalid';\r\n }\r\n\r\n if (vm.endDate > vm.lastCollectionDate) {\r\n vm.dateRangeErrorMsg = 'Selected end date was after most recent data collection date. Most recent collection: ' + $filter('date')(vm.lastCollectionDate, 'shortDate');\r\n }\r\n\r\n var datesMatch = vm.startDate.getTime() === vm.currentDataStartDate.getTime() && \r\n vm.endDate.getTime() === vm.currentDataEndDate.getTime();\r\n\r\n vm.applyDateRangeBtnEnabled = vm.dateRangeErrorMsg == null && !datesMatch;\r\n }\r\n\r\n $scope.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n $scope.format = 'shortDate';\r\n $scope.options = {\r\n showWeeks: false\r\n };\r\n \r\n vm.update = function (tableState) {\r\n vm.tableState = tableState;\r\n vm.currentPage = Math.floor(vm.tableState.pagination.start / vm.tableState.pagination.number);\r\n\r\n if (vm.selectedGroup != null) {\r\n getPortfolioOverview(vm.selectedGroup.groupId, vm.currentPage, 10, vm.currentDataStartDate, vm.currentDataEndDate);\r\n } \r\n };\r\n\r\n function getPortfolioOverview(groupId, currentPage, pageSize, startDate, endDate) {\r\n portfolioService.getPortfolioOverview(groupId, currentPage, pageSize, startDate, endDate).then(function (res) {\r\n vm.facilityDetails = mapCategories(res.facilityDetails);\r\n vm.numPages = Math.ceil(res.totalCount / 10);\r\n vm.tableState.pagination.numberOfPages = vm.numPages;\r\n vm.tableState.pagination.totalItemCount = res.totalCount;\r\n\r\n vm.endDate = new Date(res.endDate);\r\n vm.startDate = new Date(res.startDate);\r\n if(vm.lastCollectionDate == null || endDate == null){\r\n vm.lastCollectionDate = new Date(res.lastCollectionDate);\r\n }\r\n vm.currentDataStartDate = vm.startDate;\r\n vm.currentDataEndDate = vm.endDate;\r\n vm.portfolioOverviewDateRange = $filter('date')(vm.currentDataStartDate, 'shortDate') + \" - \" + $filter('date')(vm.currentDataEndDate, 'shortDate');\r\n vm.validateDateRange();\r\n\r\n vm.portfolioLoading = false;\r\n }, function (res) {\r\n vm.portfolioLoading = false;\r\n });\r\n\r\n visualizationService.visualize({\r\n \"module\": \"Portfolio Overview\",\r\n \"action\": \"Requested Portfolio Overview\",\r\n \"groupId\": groupId,\r\n \"startDate\": startDate,\r\n \"endDate\": endDate\r\n });\r\n }\r\n\r\n vm.goToFacilityOverview = function (facility) {\r\n authService.storage.currentPortfolioGroup = vm.selectedGroup;\r\n $state.go('quality', { 'state': facility.state, 'city': facility.city, 'community': facility.facilityKey});\r\n };\r\n\r\n $scope.$watch(function () {\r\n return vm.selectedGroup;\r\n }, function (newVal, oldVal) {\r\n if (newVal && newVal != oldVal) {\r\n vm.portfolioLoading = true;\r\n\r\n if (vm.tableState != null) {\r\n vm.tableState.pagination.start = 0;\r\n }\r\n \r\n getPortfolioOverview(vm.selectedGroup.groupId, 0, 10, null, null);\r\n }\r\n });\r\n\r\n function mapCategories(facilityDetails) {\r\n for (var i = 0; i < facilityDetails.length; i++) {\r\n for (var j = 0; j < facilityDetails[i].facilityCategoryDetails.length; j++) {\r\n switch (facilityDetails[i].facilityCategoryDetails[j].categoryId) {\r\n case 1:\r\n facilityDetails[i].administration = facilityDetails[i].facilityCategoryDetails[j].count;\r\n break;\r\n case 2:\r\n facilityDetails[i].dietary = facilityDetails[i].facilityCategoryDetails[j].count;\r\n break;\r\n case 3:\r\n facilityDetails[i].facilityEnvironment = facilityDetails[i].facilityCategoryDetails[j].count;\r\n break;\r\n case 4:\r\n facilityDetails[i].lifeSafety = facilityDetails[i].facilityCategoryDetails[j].count;\r\n break;\r\n case 5:\r\n facilityDetails[i].qualityOfCare = facilityDetails[i].facilityCategoryDetails[j].count;\r\n break;\r\n case 6:\r\n facilityDetails[i].residentSatisfaction = facilityDetails[i].facilityCategoryDetails[j].count;\r\n break;\r\n case 7:\r\n facilityDetails[i].staffingTraining = facilityDetails[i].facilityCategoryDetails[j].count;\r\n break;\r\n case 8:\r\n facilityDetails[i].other = facilityDetails[i].facilityCategoryDetails[j].count;\r\n break;\r\n }\r\n }\r\n }\r\n return facilityDetails;\r\n }\r\n\r\n vm.downloadPortfolioOverviewReport = function (isPdf) {\r\n var outputFileName = '&outputFilename=portfolio-overview';\r\n\r\n if(isPdf) {\r\n outputFileName += '.pdf&isPdf=true';\r\n vm.isDownloadingReportPdf = true;\r\n }\r\n else {\r\n outputFileName += '.xlsx&isPdf=false';\r\n vm.isDownloadingReportRaw = true;\r\n }\r\n\r\n portfolioService.getPortfolioOverviewReport(vm.selectedGroup.groupId, isPdf, vm.currentDataStartDate, vm.currentDataEndDate).then(function (res) {\r\n if (isPdf){\r\n vm.isDownloadingReportPdf = false;\r\n }\r\n else {\r\n vm.isDownloadingReportRaw = false;\r\n }\r\n\r\n window.location.href = appconstants.GetPortfolioOverviewReportFile + '?filename=' + res.filename + outputFileName;\r\n }, function (res) {\r\n if (isPdf){\r\n vm.isDownloadingReportPdf = false;\r\n }\r\n else {\r\n vm.isDownloadingReportRaw = false;\r\n }\r\n });\r\n\r\n visualizationService.visualize({\r\n \"module\": \"Portfolio Overview\",\r\n \"action\": \"Requested Portfolio Overview Report\",\r\n \"isPdf\": isPdf\r\n });\r\n };\r\n\r\n function initialize() {\r\n groupsService.getGroups().then(function (res) {\r\n vm.groups = res;\r\n if (authService.storage.currentPortfolioGroup != null) {\r\n vm.selectedGroup = authService.storage.currentPortfolioGroup;\r\n }\r\n else if (vm.groups.length > 0) {\r\n vm.selectedGroup = vm.groups[0];\r\n }\r\n });\r\n }\r\n\r\n initialize();\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin')\r\n .service('portfolioService', portfolioService);\r\n\r\n portfolioService.$inject = ['$state', '$q', '$http', 'appconstants'];\r\n\r\n function portfolioService($state, $q, $http, appconstants) {\r\n this.getPortfolioOverview = getPortfolioOverview;\r\n this.getPortfolioOverviewReport = getPortfolioOverviewReport;\r\n\r\n function getPortfolioOverview(groupId, page, pageSize, startDate, endDate) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetPortfolioOverviewEndpoint,\r\n data: {\r\n groupId: groupId,\r\n page: page,\r\n pageSize: pageSize,\r\n startDate: startDate,\r\n endDate: endDate\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n function getPortfolioOverviewReport(groupId, isPdf, startDate, endDate){\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetPortfolioOverviewReport,\r\n data: {\r\n groupId: groupId,\r\n isPdf: isPdf,\r\n startDate: startDate,\r\n endDate: endDate\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n }\r\n\r\n})();\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin')\r\n .controller('ProfileController', ProfileController);\r\n\r\n /** @ngInject */\r\n function ProfileController($scope, authService, toastr) {\r\n var vm = this;\r\n\r\n vm.oldPassword = null;\r\n vm.newPassword = null;\r\n vm.confirmPassword = null;\r\n vm.disablePasswordButton = true;\r\n\r\n vm.changePassword = changePassword;\r\n\r\n function changePassword() {\r\n authService.changePassword(vm.oldPassword, vm.newPassword, vm.confirmPassword).then(function (res) {\r\n\r\n toastr.success('You successfully changed your password.', 'Password Changed');\r\n clearFields();\r\n })\r\n }\r\n\r\n function validatePasswordChange() {\r\n if ((vm.oldPassword && vm.newPassword && vm.confirmPassword && vm.newPassword === vm.confirmPassword )\r\n && vm.newPassword != vm.newPassword.toLowerCase()\r\n && vm.newPassword.match('.*\\\\d.*') \r\n && vm.newPassword.match('^.*[a-z].*$')\r\n && vm.newPassword.match('^.*[^a-zA-Z0-9 ].*$')\r\n && vm.newPassword.length > 6\r\n ) \r\n {\r\n vm.disablePasswordButton = false; \r\n }\r\n else {\r\n vm.disablePasswordButton = true;\r\n }\r\n }\r\n\r\n function clearFields() {\r\n vm.oldPassword = null;\r\n vm.newPassword = null;\r\n vm.confirmPassword = null;\r\n }\r\n\r\n $scope.$watch(function () {\r\n return vm.oldPassword;\r\n }, function (newVal, oldVal) {\r\n if (newVal) {\r\n validatePasswordChange();\r\n }\r\n \r\n })\r\n\r\n $scope.$watch(function () {\r\n return vm.newPassword;\r\n }, function (newVal, oldVal) {\r\n if (newVal) {\r\n validatePasswordChange();\r\n }\r\n })\r\n\r\n $scope.$watch(function () {\r\n return vm.confirmPassword;\r\n }, function (newVal, oldVal) {\r\n if (newVal) {\r\n validatePasswordChange();\r\n }\r\n })\r\n\r\n }\r\n\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin')\r\n .controller('QualityController', QualityController);\r\n\r\n /** @ngInject */\r\n function QualityController($scope, $timeout, baConfig, layoutPaths, qualityService, appconstants, $stateParams, visualizationService) {\r\n\r\n var vm = this;\r\n\r\n vm.currentYear = new Date().getUTCFullYear();\r\n\r\n vm.states = [];\r\n vm.cities = [];\r\n vm.facilities = [];\r\n\r\n vm.selectedState = null;\r\n vm.selectedCity = null;\r\n vm.selectedFacility = null;\r\n\r\n vm.communityOverview = null;\r\n vm.communityDetail = null;\r\n vm.qualityBenchmarks = null;\r\n\r\n vm.categorySets = {\r\n administration: null,\r\n dietary: null,\r\n facilityEnvironmental: null,\r\n lifeSafety: null,\r\n qualityOfCare: null,\r\n residentSatisfaction: null,\r\n staffingTraining: null,\r\n other: null\r\n };\r\n\r\n vm.communityHistory = null;\r\n vm.penaltyExplorerData = null;\r\n vm.citationsExplorerData = null;\r\n vm.compSetExplorerData = null;\r\n vm.compSetExplorerDataBackup = null;\r\n vm.competition = [];\r\n vm.competitionSetData = [];\r\n vm.competitionSetModel = [];\r\n\r\n vm.showCityMessage = false;\r\n\r\n vm.dataIsLoading = false;\r\n vm.dataLoaded = false;\r\n\r\n vm.isSurveyFrequencyClicked = false;\r\n\r\n vm.getCommunityOverviewDates = function () {\r\n var lastCollection = new Date(vm.communityDetail.dateOfLastCollection);\r\n var dd = lastCollection.getUTCDate();\r\n var mm = lastCollection.getUTCMonth() + 1; //Jaunary is 0\r\n var yyyy = lastCollection.getUTCFullYear();\r\n\r\n var previousYear = yyyy - 2;\r\n\r\n return mm + \"/\" + dd + \"/\" + previousYear + \" - \" + mm + \"/\" + dd + \"/\" + yyyy;\r\n };\r\n\r\n var layoutColors = baConfig.colors;\r\n\r\n qualityService.getStates().then(function (res) {\r\n vm.states = res;\r\n \r\n if ($stateParams.state) {\r\n for (var i = 0; i < vm.states.length; i++) {\r\n if (vm.states[i].abbreviation == $stateParams.state) {\r\n vm.selectedState = vm.states[i];\r\n }\r\n }\r\n }\r\n });\r\n\r\n vm.loadFacility = function () {\r\n vm.dataIsLoading = true;\r\n vm.dataLoaded = false;\r\n clearFacilityData();\r\n\r\n qualityService.getCommunityOverview(vm.selectedFacility.facilityKey).then(function (res) {\r\n vm.communityOverview = res;\r\n refactorCommunityOverview();\r\n });\r\n\r\n qualityService.getCommunityDetail(vm.selectedFacility.facilityKey).then(function (res) {\r\n vm.communityDetail = res;\r\n \r\n if(!vm.communityDetail.phone) {\r\n vm.communityDetail.phone = 'Unknown';\r\n }\r\n });\r\n\r\n qualityService.getQualityBenchmarks(vm.selectedFacility.facilityKey).then(function (res) {\r\n vm.qualityBenchmarks = res;\r\n\r\n for (var i = 0; i < vm.qualityBenchmarks.categorySets.length; i++) {\r\n mapCategorySets(vm.qualityBenchmarks.categorySets[i]);\r\n }\r\n\r\n $timeout(function () {\r\n initialize();\r\n }, 1000);\r\n vm.dataIsLoading = false;\r\n vm.dataLoaded = true;\r\n });\r\n\r\n visualizationService.visualize({\r\n \"module\": \"Quality Explorer\",\r\n \"action\": \"Requested Quality Data For Facility\",\r\n \"facilityKey\": vm.selectedFacility.facilityKey\r\n });\r\n };\r\n\r\n vm.loadCommunityHistory = function () {\r\n if (vm.communityHistory == null) {\r\n qualityService.getCommunityHistory(vm.selectedFacility.facilityKey).then(function (res) {\r\n vm.communityHistory = res;\r\n });\r\n\r\n visualizationService.visualize({\r\n \"module\": \"Quality Explorer\",\r\n \"action\": \"Requested Community History\",\r\n \"facilityKey\": vm.selectedFacility.facilityKey\r\n });\r\n }\r\n };\r\n\r\n vm.showCommunityHistoryEntryDetail = function (entry) {\r\n vm.communityHistoryEntryDetailLoading = true;\r\n vm.communityHistoryDetailType = entry.type;\r\n\r\n vm.communityHistoryEvent = entry;\r\n switch (entry.type) {\r\n case 1:\r\n qualityService.getSurveysForFacilityByDate(vm.selectedFacility.facilityKey, entry.entryDate).then(function (res) {\r\n vm.communityHistoryDetail = res;\r\n vm.communityHistoryDetail.isVisible = true;\r\n });\r\n break;\r\n case 2:\r\n qualityService.getPenaltiesForFacilityByDate(vm.selectedFacility.facilityKey, entry.entryDate).then(function (res) {\r\n vm.communityHistoryDetail = res;\r\n vm.communityHistoryDetail.isVisible = true;\r\n });\r\n break;\r\n case 3:\r\n qualityService.getSatisfactionsForFacilityByDate(vm.selectedFacility.facilityKey, entry.entryDate).then(function (res) {\r\n vm.communityHistoryDetail = res;\r\n vm.communityHistoryDetail.isVisible = true;\r\n });\r\n break;\r\n case 4:\r\n qualityService.getEventsForFacilityByDate(vm.selectedFacility.facilityKey, entry.entryDate).then(function (res) {\r\n vm.communityHistoryDetail = res;\r\n vm.communityHistoryDetail.isVisible = true;\r\n });\r\n break;\r\n case 5:\r\n qualityService.getSurveysNoDeficienciesForFacilityByDate(vm.selectedFacility.facilityKey, entry.entryDate).then(function (res) {\r\n vm.communityHistoryDetail = res;\r\n vm.communityHistoryDetail.isVisible = true;\r\n });\r\n break;\r\n }\r\n\r\n visualizationService.visualize({\r\n \"module\": \"Quality Explorer\",\r\n \"action\": \"Requested Community History Entry Detail\",\r\n \"historyEntryType\": entry.type\r\n });\r\n };\r\n\r\n vm.loadPenaltyExplorer = function () {\r\n if (vm.penaltyExplorerData == null) {\r\n\r\n vm.penaltyExplorerData = {\r\n graphData: null,\r\n dataProvider: [],\r\n minYear: 0,\r\n maxYear: 0,\r\n penalties: [],\r\n noGraph: false\r\n };\r\n\r\n qualityService.getPenaltyExplorerData(vm.selectedFacility.facilityKey).then(function (res) {\r\n vm.penaltyExplorerData.graphData = res.penaltyGraphEntries;\r\n vm.penaltyExplorerData.penalties = res.penalties;\r\n if (vm.penaltyExplorerData.graphData.length > 0) {\r\n for (var i = 0; i < vm.penaltyExplorerData.graphData.length; i++) {\r\n if (i == 0) {\r\n vm.penaltyExplorerData.minYear = vm.penaltyExplorerData.graphData[i].year;\r\n }\r\n else if (i == vm.penaltyExplorerData.graphData.length - 1) {\r\n vm.penaltyExplorerData.maxYear = vm.penaltyExplorerData.graphData[i].year;\r\n }\r\n }\r\n\r\n createPenaltyBarChart(); \r\n }\r\n });\r\n\r\n visualizationService.visualize({\r\n \"module\": \"Quality Explorer\",\r\n \"action\": \"Requested Penalty Explorer\",\r\n \"facilityKey\": vm.selectedFacility.facilityKey\r\n });\r\n }\r\n };\r\n\r\n vm.loadCitationsExplorer = function () {\r\n if (vm.citationsExplorerData == null) {\r\n\r\n qualityService.getCitationsExplorerData(vm.selectedFacility.facilityKey).then(function (res) {\r\n vm.citationsExplorerData = res;\r\n\r\n vm.citationsExplorerData.year4 = vm.currentYear;\r\n vm.citationsExplorerData.year3 = vm.currentYear - 1;\r\n vm.citationsExplorerData.year2 = vm.currentYear - 2;\r\n vm.citationsExplorerData.year1 = vm.currentYear - 3;\r\n\r\n for (var i = 0; i < vm.citationsExplorerData.citationGraphEntries.length; i++) {\r\n if (i == 0) {\r\n vm.citationsExplorerData.minYear = vm.citationsExplorerData.citationGraphEntries[i].year;\r\n }\r\n else if (i == vm.citationsExplorerData.citationGraphEntries.length - 1) {\r\n vm.citationsExplorerData.maxYear = vm.citationsExplorerData.citationGraphEntries[i].year;\r\n }\r\n }\r\n createCitationBarChart(); \r\n });\r\n\r\n visualizationService.visualize({\r\n \"module\": \"Quality Explorer\",\r\n \"action\": \"Requested Citation Explorer\",\r\n \"facilityKey\": vm.selectedFacility.facilityKey\r\n });\r\n }\r\n };\r\n\r\n vm.loadCompSetExplorer = function () {\r\n if (vm.compSetExplorerData == null) {\r\n qualityService.getFacilitiesLocalToFacility(vm.selectedFacility.facilityKey).then(function (res) {\r\n vm.compSetExplorerData = res; \r\n });\r\n\r\n visualizationService.visualize({\r\n \"module\": \"Quality Explorer\",\r\n \"action\": \"Requested Competition Set Explorer\",\r\n \"facilityKey\": vm.selectedFacility.facilityKey\r\n });\r\n }\r\n };\r\n\r\n vm.compareCompetition = function () {\r\n var competition = [];\r\n\r\n competition.push(vm.selectedFacility.facilityKey);\r\n\r\n for (var i = 0; i < vm.competition.length; i++) {\r\n competition.push(vm.competition[i].facilityKey);\r\n }\r\n\r\n qualityService.getFacilityComparisons(competition).then(function (res) {\r\n vm.competitionSet = res;\r\n refactorCompetitionSetData(); \r\n });\r\n\r\n visualizationService.visualize({\r\n \"module\": \"Quality Explorer\",\r\n \"action\": \"Requested Facility Comparison Data\",\r\n \"facilityKey\": vm.selectedFacility.facilityKey\r\n });\r\n };\r\n\r\n vm.downloadSiteComparisonReport = function (isPdf) {\r\n var outputFileName = '&outputFilename=site-comparison';\r\n\r\n if(isPdf) {\r\n vm.isDownloadingReportPdf = true;\r\n outputFileName += '.pdf&isPdf=true';\r\n }\r\n else {\r\n vm.isDownloadingReportRaw = true;\r\n outputFileName += '.xlsx&isPdf=false';\r\n } \r\n\r\n var facilityKeys = [];\r\n\r\n for (var i = 0; i < vm.competitionSet.length; i++) {\r\n facilityKeys.push(vm.competitionSet[i].facilityKey);\r\n }\r\n\r\n qualityService.getFacilityComparisonReport(facilityKeys, isPdf).then(function (res) {\r\n if (isPdf){\r\n vm.isDownloadingReportPdf = false;\r\n }\r\n else {\r\n vm.isDownloadingReportRaw = false;\r\n }\r\n \r\n window.location.href = appconstants.GetFacilityComparisonReportFile + '?filename=' + res.filename + outputFileName;\r\n }, function (res) {\r\n if (isPdf){\r\n vm.isDownloadingReportPdf = false;\r\n }\r\n else {\r\n vm.isDownloadingReportRaw = false;\r\n }\r\n });\r\n\r\n visualizationService.visualize({\r\n \"module\": \"Quality Explorer\",\r\n \"action\": \"Requested Facility Comparison Report\",\r\n \"facilityKey\": vm.selectedFacility.facilityKey,\r\n \"isPdf\": isPdf\r\n });\r\n };\r\n\r\n function refactorCommunityOverview() {\r\n for (var i = 0; i < vm.communityOverview.facilityCategoryDetails.length; i++) {\r\n switch (vm.communityOverview.facilityCategoryDetails[i].categoryId) {\r\n case 1:\r\n vm.communityOverview.administration = vm.communityOverview.facilityCategoryDetails[i].count;\r\n case 2:\r\n vm.communityOverview.dietary = vm.communityOverview.facilityCategoryDetails[i].count;\r\n case 3:\r\n vm.communityOverview.facilityAndEnvironment = vm.communityOverview.facilityCategoryDetails[i].count;\r\n case 4:\r\n vm.communityOverview.lifeSafety = vm.communityOverview.facilityCategoryDetails[i].count;\r\n case 5:\r\n vm.communityOverview.qualityOfCare = vm.communityOverview.facilityCategoryDetails[i].count;\r\n case 6:\r\n vm.communityOverview.residentSatisfaction = vm.communityOverview.facilityCategoryDetails[i].count;\r\n case 7:\r\n vm.communityOverview.staffingTraining = vm.communityOverview.facilityCategoryDetails[i].count;\r\n case 8:\r\n vm.communityOverview.other = vm.communityOverview.facilityCategoryDetails[i].count;\r\n }\r\n }\r\n }\r\n\r\n function refactorCompetitionSetData() {\r\n for (var i = 0; i < vm.competitionSet.length; i++) {\r\n for (var j = 0; j < vm.competitionSet[i].facilityCategoryDetails.length; j++) {\r\n switch (vm.competitionSet[i].facilityCategoryDetails[j].categoryId) {\r\n case 1:\r\n vm.competitionSet[i].administration = vm.competitionSet[i].facilityCategoryDetails[j].count;\r\n case 2:\r\n vm.competitionSet[i].dietary = vm.competitionSet[i].facilityCategoryDetails[j].count;\r\n case 3:\r\n vm.competitionSet[i].facilityAndEnvironment = vm.competitionSet[i].facilityCategoryDetails[j].count;\r\n case 4:\r\n vm.competitionSet[i].lifeSafety = vm.competitionSet[i].facilityCategoryDetails[j].count;\r\n case 5:\r\n vm.competitionSet[i].qualityOfCare = vm.competitionSet[i].facilityCategoryDetails[j].count;\r\n case 6:\r\n vm.competitionSet[i].residentSatisfaction = vm.competitionSet[i].facilityCategoryDetails[j].count;\r\n case 7:\r\n vm.competitionSet[i].staffingTraining = vm.competitionSet[i].facilityCategoryDetails[j].count;\r\n case 8:\r\n vm.competitionSet[i].other = vm.competitionSet[i].facilityCategoryDetails[j].count;\r\n }\r\n }\r\n }\r\n }\r\n\r\n function mapCategorySets(category) {\r\n switch (category.categoryId) {\r\n case 1:\r\n vm.categorySets.administration = category;\r\n case 2:\r\n vm.categorySets.dietary = category;\r\n case 3:\r\n vm.categorySets.facilityEnvironmental = category;\r\n case 4:\r\n vm.categorySets.lifeSafety = category;\r\n case 5:\r\n vm.categorySets.qualityOfCare = category;\r\n case 6:\r\n vm.categorySets.residentSatisfaction = category;\r\n case 7:\r\n vm.categorySets.staffingTraining = category;\r\n case 8:\r\n vm.categorySets.other = category;\r\n }\r\n }\r\n\r\n function clearFacilityData() {\r\n vm.communityHistory = null;\r\n vm.communityHistoryDetail = null;\r\n vm.penaltyExplorerData = null;\r\n vm.citationsExplorerData = null;\r\n vm.compSetExplorerData = null;\r\n vm.competition = [];\r\n vm.competitionSet = [];\r\n }\r\n\r\n $scope.$watch(function () {\r\n return vm.selectedState;\r\n }, function (newVal, oldVal) {\r\n if (newVal && newVal != oldVal) {\r\n vm.selectedCity = null;\r\n vm.selectedFacility = null;\r\n vm.facilities = [];\r\n qualityService.getCities(vm.selectedState.abbreviation).then(function (res) {\r\n vm.cities = res;\r\n\r\n if ($stateParams.city) {\r\n for (var i = 0; i < vm.cities.length; i++) {\r\n if (vm.cities[i].city == $stateParams.city) {\r\n vm.selectedCity = vm.cities[i];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (vm.cities.length == 0) {\r\n vm.showCityMessage = true;\r\n }\r\n else {\r\n vm.showCityMessage = false;\r\n }\r\n });\r\n }\r\n });\r\n\r\n $scope.$watch(function () {\r\n return vm.selectedCity;\r\n }, function (newVal, oldVal) {\r\n if (newVal && newVal != oldVal) {\r\n vm.selectedFacility = null;\r\n qualityService.getFacilities(vm.selectedCity.city, vm.selectedState.abbreviation).then(function (res) {\r\n vm.facilities = res;\r\n\r\n if ($stateParams.community) {\r\n for (var i = 0; i < vm.facilities.length; i++) {\r\n if (vm.facilities[i].facilityKey == $stateParams.community) {\r\n vm.selectedFacility = vm.facilities[i];\r\n vm.loadFacility();\r\n return;\r\n }\r\n }\r\n }\r\n\r\n if (vm.facilities.length == 0) {\r\n vm.showFacilityMessage = true;\r\n }\r\n else {\r\n vm.showFacilityMessage = false;\r\n }\r\n });\r\n }\r\n });\r\n\r\n /*\r\n We cannot hide the ui-select dropdown without the list being empty,\r\n so we're storing the list in a backup and emptying the array to hide\r\n the dropdown if there are 2 choices selected then reversing the operation\r\n if there are less than two choices selected\r\n */\r\n $scope.$watch(function () {\r\n if (vm.competition) {\r\n return vm.competition.length;\r\n }\r\n }, function (newVal, oldVal) {\r\n if (oldVal < 2 && newVal >= 2) {\r\n vm.compSetExplorerDataBackup = angular.copy(vm.compSetExplorerData);\r\n vm.compSetExplorerData = [];\r\n }\r\n else if (oldVal >= 2 && newVal < 2) {\r\n vm.compSetExplorerData = angular.copy(vm.compSetExplorerDataBackup);\r\n vm.compSetExplorerDataBackup = [];\r\n }\r\n });\r\n\r\n function geocodeAddress(address) {\r\n try {\r\n var geocoder = new google.maps.Geocoder();\r\n geocoder.geocode({'address': address}, function (results, status) {\r\n if (status == google.maps.GeocoderStatus.OK) {\r\n var mapCanvas = document.getElementById('google-maps');\r\n var mapOptions = {\r\n center: results[0].geometry.location,\r\n zoom: 17,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n };\r\n\r\n var map = new google.maps.Map(mapCanvas, mapOptions);\r\n\r\n var marker = new google.maps.Marker({\r\n map: map,\r\n position: results[0].geometry.location\r\n });\r\n }\r\n else {\r\n console.log(\"There was an issue geocoding the address provided: \" + address);\r\n }\r\n });\r\n }\r\n catch(exception) {\r\n console.log(exception);\r\n }\r\n }\r\n\r\n function getChartSize(barSize1, barSize2){\r\n if(barSize1 < 10 && barSize2 < 10){\r\n return 10;\r\n }\r\n\r\n var largerBar = barSize1;\r\n if(largerBar < barSize2){\r\n largerBar = barSize2\r\n }\r\n\r\n var chartSize = Math.round(largerBar/10)*10;\r\n\r\n if(chartSize < largerBar){\r\n chartSize += 10;\r\n }\r\n\r\n return chartSize;\r\n }\r\n\r\n function initialize() {\r\n\r\n var address = vm.communityDetail.street + \" \" + vm.communityDetail.city + \" \" + vm.communityDetail.state + \", \" + vm.communityDetail.zip;\r\n\r\n geocodeAddress(address);\r\n\r\n var operationalCitationsBarChart = AmCharts.makeChart('operationalCitationsBarChart', {\r\n titles: [\r\n {\r\n \"text\": \"Citations by Category\",\r\n \"size\": 15\r\n },\r\n {\r\n \"text\": \"Last 2 Years\"\r\n }\r\n ],\r\n height: '100%',\r\n type: 'serial',\r\n theme: 'blur',\r\n dataProvider: [\r\n {\r\n label: 'Quality Of Care',\r\n value: vm.categorySets.qualityOfCare.siteCount,\r\n stateBenchmark: vm.categorySets.qualityOfCare.stateCount,\r\n countyBenchmark: vm.categorySets.qualityOfCare.countyCount\r\n },\r\n {\r\n label: 'Resident Satisfaction',\r\n value: vm.categorySets.residentSatisfaction.siteCount,\r\n stateBenchmark: vm.categorySets.residentSatisfaction.stateCount,\r\n countyBenchmark: vm.categorySets.residentSatisfaction.countyCount\r\n },\r\n {\r\n label: 'Staffing & Training',\r\n value: vm.categorySets.staffingTraining.siteCount,\r\n stateBenchmark: vm.categorySets.staffingTraining.stateCount,\r\n countyBenchmark: vm.categorySets.staffingTraining.countyCount\r\n },\r\n {\r\n label: 'Dietary',\r\n value: vm.categorySets.dietary.siteCount,\r\n stateBenchmark: vm.categorySets.dietary.stateCount,\r\n countyBenchmark: vm.categorySets.dietary.countyCount\r\n },\r\n {\r\n label: 'Facility and Environment',\r\n value: vm.categorySets.facilityEnvironmental.siteCount,\r\n stateBenchmark: vm.categorySets.facilityEnvironmental.stateCount,\r\n countyBenchmark: vm.categorySets.facilityEnvironmental.countyCount\r\n },\r\n {\r\n label: 'Life Safety',\r\n value: vm.categorySets.lifeSafety.siteCount,\r\n stateBenchmark: vm.categorySets.lifeSafety.stateCount,\r\n countyBenchmark: vm.categorySets.lifeSafety.countyCount\r\n },\r\n {\r\n label: 'Administration',\r\n value: vm.categorySets.administration.siteCount,\r\n stateBenchmark: vm.categorySets.administration.stateCount,\r\n countyBenchmark: vm.categorySets.administration.countyCount\r\n },\r\n {\r\n label: 'Other',\r\n value: vm.categorySets.other.siteCount,\r\n stateBenchmark: vm.categorySets.other.stateCount,\r\n countyBenchmark: vm.categorySets.other.countyCount\r\n }\r\n ],\r\n valueAxes: [\r\n {\r\n axisAlpha: 0,\r\n position: 'left',\r\n gridAlpha: 0.5,\r\n gridColor: layoutColors.border,\r\n minimum: 0\r\n }\r\n ],\r\n startDuration: 1,\r\n graphs: [\r\n {\r\n balloonText: '' + vm.communityDetail.name + ': [[value]]',\r\n fillAlphas: 0.7,\r\n lineAlpha: 0.2,\r\n type: 'column',\r\n title: vm.communityDetail.name,\r\n valueField: 'value'\r\n },\r\n {\r\n balloonText: '' + vm.communityDetail.county + ' Benchmark: [[value]]',\r\n fillAlphas: 0,\r\n lineAlpha: 1,\r\n lineThickness: 3,\r\n title: vm.communityDetail.county + ' Benchmark (' + vm.communityDetail.countyBenchmarkCount + ')',\r\n valueField: 'countyBenchmark'\r\n },\r\n {\r\n balloonText: '' + vm.communityDetail.state + ' Benchmark: [[value]]',\r\n fillAlphas: 0,\r\n lineAlpha: 1,\r\n lineThickness: 3,\r\n title: vm.communityDetail.state + ' Benchmark (' + vm.communityDetail.stateBenchmarkCount + ')',\r\n valueField: 'stateBenchmark'\r\n }\r\n ],\r\n legend: {\r\n position: \"bottom\",\r\n align: \"center\",\r\n color: 'black',\r\n useGraphSettings: true,\r\n equalWidths: false\r\n },\r\n chartCursor: {\r\n categoryBalloonEnabled: false,\r\n cursorAlpha: 0,\r\n zoomable: false\r\n },\r\n categoryField: 'label',\r\n categoryAxis: {\r\n gridPosition: 'start',\r\n labelRotation: 45,\r\n gridAlpha: 0.5,\r\n gridColor: layoutColors.border,\r\n },\r\n export: {\r\n enabled: true\r\n },\r\n creditsPosition: 'top-right',\r\n pathToImages: layoutPaths.images.amChart\r\n });\r\n\r\n var actualHarmCitations = AmCharts.makeChart('actualHarmCitations', {\r\n titles: [\r\n {\r\n \"text\": \"Actual Harm Citations\",\r\n \"size\": 15\r\n },\r\n {\r\n \"text\": \"Last 2 Years\"\r\n }\r\n ],\r\n type: 'serial',\r\n theme: 'blur',\r\n color: layoutColors.defaultText,\r\n dataProvider: [\r\n {\r\n label: 'Site',\r\n value: vm.qualityBenchmarks.actualHarmCitationsSet.siteCount,\r\n color: layoutColors.primary\r\n },\r\n {\r\n label: 'State Average',\r\n value: vm.qualityBenchmarks.actualHarmCitationsSet.stateAverage,\r\n color: layoutColors.danger\r\n\r\n }\r\n ],\r\n valueAxes: [\r\n {\r\n axisAlpha: 0,\r\n position: 'left',\r\n title: 'Citations',\r\n gridAlpha: 0.5,\r\n gridColor: layoutColors.border,\r\n minimum: 0,\r\n maximum: getChartSize(vm.qualityBenchmarks.actualHarmCitationsSet.siteCount, vm.qualityBenchmarks.actualHarmCitationsSet.stateAverage)\r\n }\r\n ],\r\n startDuration: 1,\r\n graphs: [\r\n {\r\n balloonText: '[[category]]: [[value]]',\r\n labelText: '[[value]]',\r\n labelPosition: 'inside',\r\n fillColorsField: 'color',\r\n fillAlphas: 0.7,\r\n lineAlpha: 0.2,\r\n type: 'column',\r\n valueField: 'value'\r\n }\r\n ],\r\n chartCursor: {\r\n categoryBalloonEnabled: false,\r\n cursorAlpha: 0,\r\n zoomable: false\r\n },\r\n categoryField: 'label',\r\n categoryAxis: {\r\n gridPosition: 'start',\r\n labelRotation: 45,\r\n gridAlpha: 0.5,\r\n gridColor: layoutColors.border,\r\n },\r\n export: {\r\n enabled: true\r\n },\r\n creditsPosition: 'top-right',\r\n pathToImages: layoutPaths.images.amChart\r\n });\r\n\r\n var immediateJeopardyCitations = AmCharts.makeChart('immediateJeopardyCitations', {\r\n titles: [\r\n {\r\n \"text\": \"Immediate Jeopardy Citations\",\r\n \"size\": 15\r\n },\r\n {\r\n \"text\": \"Last 2 Years\"\r\n }\r\n ],\r\n type: 'serial',\r\n theme: 'blur',\r\n color: layoutColors.defaultText,\r\n dataProvider: [\r\n {\r\n label: 'Site',\r\n value: vm.qualityBenchmarks.immediateJeopardyCitationsSet.siteCount,\r\n color: layoutColors.primary\r\n },\r\n {\r\n label: 'State Average',\r\n value: vm.qualityBenchmarks.immediateJeopardyCitationsSet.stateAverage,\r\n color: layoutColors.danger\r\n\r\n }\r\n ],\r\n valueAxes: [\r\n {\r\n axisAlpha: 0,\r\n position: 'left',\r\n title: 'Citations',\r\n gridAlpha: 0.5,\r\n gridColor: layoutColors.border,\r\n minimum: 0,\r\n maximum: getChartSize(vm.qualityBenchmarks.immediateJeopardyCitationsSet.siteCount, vm.qualityBenchmarks.immediateJeopardyCitationsSet.stateAverage)\r\n }\r\n ],\r\n startDuration: 1,\r\n graphs: [\r\n {\r\n balloonText: '[[category]]: [[value]]',\r\n labelText: '[[value]]',\r\n labelPosition: 'inside',\r\n fillColorsField: 'color',\r\n fillAlphas: 0.7,\r\n lineAlpha: 0.2,\r\n type: 'column',\r\n valueField: 'value'\r\n }\r\n ],\r\n chartCursor: {\r\n categoryBalloonEnabled: false,\r\n cursorAlpha: 0,\r\n zoomable: false\r\n },\r\n categoryField: 'label',\r\n categoryAxis: {\r\n gridPosition: 'start',\r\n labelRotation: 45,\r\n gridAlpha: 0.5,\r\n gridColor: layoutColors.border,\r\n },\r\n export: {\r\n enabled: true\r\n },\r\n creditsPosition: 'top-right',\r\n pathToImages: layoutPaths.images.amChart\r\n });\r\n\r\n var subQualityCareCitations = AmCharts.makeChart('subQualityCareCitations', {\r\n titles: [\r\n {\r\n \"text\": \"Substandard Quality of Care Citations\",\r\n \"size\": 15\r\n },\r\n {\r\n \"text\": \"Last 2 Years\"\r\n }\r\n ],\r\n type: 'serial',\r\n theme: 'blur',\r\n color: layoutColors.defaultText,\r\n dataProvider: [\r\n {\r\n label: 'Site',\r\n value: vm.qualityBenchmarks.subStandardQualityCitationsSet.siteCount,\r\n color: layoutColors.primary\r\n },\r\n {\r\n label: 'State Average',\r\n value: vm.qualityBenchmarks.subStandardQualityCitationsSet.stateAverage,\r\n color: layoutColors.danger\r\n\r\n }\r\n ],\r\n valueAxes: [\r\n {\r\n axisAlpha: 0,\r\n position: 'left',\r\n title: 'Citations',\r\n gridAlpha: 0.5,\r\n gridColor: layoutColors.border,\r\n minimum: 0,\r\n maximum: getChartSize(vm.qualityBenchmarks.subStandardQualityCitationsSet.siteCount, vm.qualityBenchmarks.subStandardQualityCitationsSet.stateAverage)\r\n }\r\n ],\r\n startDuration: 1,\r\n graphs: [\r\n {\r\n balloonText: '[[category]]: [[value]]',\r\n labelText: '[[value]]',\r\n labelPosition: 'inside',\r\n fillColorsField: 'color',\r\n fillAlphas: 0.7,\r\n lineAlpha: 0.2,\r\n type: 'column',\r\n valueField: 'value'\r\n }\r\n ],\r\n chartCursor: {\r\n categoryBalloonEnabled: false,\r\n cursorAlpha: 0,\r\n zoomable: false\r\n },\r\n categoryField: 'label',\r\n categoryAxis: {\r\n gridPosition: 'start',\r\n labelRotation: 45,\r\n gridAlpha: 0.5,\r\n gridColor: layoutColors.border,\r\n },\r\n export: {\r\n enabled: true\r\n },\r\n creditsPosition: 'top-right',\r\n pathToImages: layoutPaths.images.amChart\r\n });\r\n\r\n var complaintCitations = AmCharts.makeChart('complaintCitations', {\r\n titles: [\r\n {\r\n \"text\": \"Complaint Citations\",\r\n \"size\": 15\r\n },\r\n {\r\n \"text\": \"Last 2 Years\"\r\n }\r\n ],\r\n type: 'serial',\r\n theme: 'blur',\r\n color: layoutColors.defaultText,\r\n dataProvider: [\r\n {\r\n label: 'Site',\r\n value: vm.qualityBenchmarks.complaintCitationsSet.siteCount,\r\n color: layoutColors.primary\r\n },\r\n {\r\n label: 'State Average',\r\n value: vm.qualityBenchmarks.complaintCitationsSet.stateAverage,\r\n color: layoutColors.danger\r\n\r\n }\r\n ],\r\n valueAxes: [\r\n {\r\n axisAlpha: 0,\r\n position: 'left',\r\n title: 'Complaints',\r\n gridAlpha: 0.5,\r\n gridColor: layoutColors.border,\r\n minimum: 0,\r\n maximum: getChartSize(vm.qualityBenchmarks.complaintCitationsSet.siteCount, vm.qualityBenchmarks.complaintCitationsSet.stateAverage)\r\n }\r\n ],\r\n startDuration: 1,\r\n graphs: [\r\n {\r\n balloonText: '[[category]]: [[value]]',\r\n labelText: '[[value]]',\r\n labelPosition: 'inside',\r\n fillColorsField: 'color',\r\n fillAlphas: 0.7,\r\n lineAlpha: 0.2,\r\n type: 'column',\r\n valueField: 'value'\r\n }\r\n ],\r\n chartCursor: {\r\n categoryBalloonEnabled: false,\r\n cursorAlpha: 0,\r\n zoomable: false\r\n },\r\n categoryField: 'label',\r\n categoryAxis: {\r\n gridPosition: 'start',\r\n labelRotation: 45,\r\n gridAlpha: 0.5,\r\n gridColor: layoutColors.border,\r\n },\r\n export: {\r\n enabled: true\r\n },\r\n creditsPosition: 'top-right',\r\n pathToImages: layoutPaths.images.amChart\r\n });\r\n\r\n var totalCitations = AmCharts.makeChart('totalCitations', {\r\n titles: [\r\n {\r\n \"text\": \"Total Citations\",\r\n \"size\": 15\r\n },\r\n {\r\n \"text\": \"Last 2 Years\"\r\n }\r\n ],\r\n type: 'serial',\r\n theme: 'blur',\r\n color: layoutColors.defaultText,\r\n dataProvider: [\r\n {\r\n label: 'Site',\r\n value: vm.qualityBenchmarks.totalCitationsSet.siteCount,\r\n color: layoutColors.primary\r\n },\r\n {\r\n label: 'State Average',\r\n value: vm.qualityBenchmarks.totalCitationsSet.stateAverage,\r\n color: layoutColors.danger\r\n\r\n }\r\n ],\r\n valueAxes: [\r\n {\r\n axisAlpha: 0,\r\n position: 'left',\r\n title: 'Citations',\r\n gridAlpha: 0.5,\r\n gridColor: layoutColors.border,\r\n minimum: 0,\r\n maximum: getChartSize(vm.qualityBenchmarks.totalCitationsSet.siteCount, vm.qualityBenchmarks.totalCitationsSet.stateAverage)\r\n }\r\n ],\r\n startDuration: 1,\r\n graphs: [\r\n {\r\n balloonText: '[[category]]: [[value]]',\r\n labelText: '[[value]]',\r\n labelPosition: 'inside',\r\n fillColorsField: 'color',\r\n fillAlphas: 0.7,\r\n lineAlpha: 0.2,\r\n type: 'column',\r\n valueField: 'value'\r\n }\r\n ],\r\n chartCursor: {\r\n categoryBalloonEnabled: false,\r\n cursorAlpha: 0,\r\n zoomable: false\r\n },\r\n categoryField: 'label',\r\n categoryAxis: {\r\n gridPosition: 'start',\r\n labelRotation: 45,\r\n gridAlpha: 0.5,\r\n gridColor: layoutColors.border,\r\n },\r\n export: {\r\n enabled: true\r\n },\r\n creditsPosition: 'top-right',\r\n pathToImages: layoutPaths.images.amChart\r\n });\r\n\r\n var numPenalties = AmCharts.makeChart('numPenalties', {\r\n titles: [\r\n {\r\n \"text\": \"Number of Penalties\",\r\n \"size\": 15\r\n },\r\n {\r\n \"text\": \"Last 2 Years\"\r\n }\r\n ],\r\n type: 'serial',\r\n theme: 'blur',\r\n color: layoutColors.defaultText,\r\n dataProvider: [\r\n {\r\n label: 'Site',\r\n value: vm.qualityBenchmarks.penaltySet.siteCount,\r\n color: layoutColors.primary\r\n },\r\n {\r\n label: 'State Average',\r\n value: vm.qualityBenchmarks.penaltySet.stateAverage,\r\n color: layoutColors.danger\r\n\r\n }\r\n ],\r\n valueAxes: [\r\n {\r\n axisAlpha: 0,\r\n position: 'left',\r\n title: 'Penalties',\r\n gridAlpha: 0.5,\r\n gridColor: layoutColors.border,\r\n minimum: 0,\r\n maximum: getChartSize(vm.qualityBenchmarks.penaltySet.siteCount, vm.qualityBenchmarks.penaltySet.stateAverage)\r\n }\r\n ],\r\n startDuration: 1,\r\n graphs: [\r\n {\r\n balloonText: '[[category]]: [[value]]',\r\n labelText: '[[value]]',\r\n labelPosition: 'inside',\r\n fillColorsField: 'color',\r\n fillAlphas: 0.7,\r\n lineAlpha: 0.2,\r\n type: 'column',\r\n valueField: 'value'\r\n }\r\n ],\r\n chartCursor: {\r\n categoryBalloonEnabled: false,\r\n cursorAlpha: 0,\r\n zoomable: false\r\n },\r\n categoryField: 'label',\r\n categoryAxis: {\r\n gridPosition: 'start',\r\n labelRotation: 45,\r\n gridAlpha: 0.5,\r\n gridColor: layoutColors.border,\r\n },\r\n export: {\r\n enabled: true\r\n },\r\n creditsPosition: 'top-right',\r\n pathToImages: layoutPaths.images.amChart\r\n });\r\n\r\n jQuery('.chart-input').off().on('input change', function () {\r\n var property = jQuery(this).data('property');\r\n var target = chart;\r\n chart.startDuration = 0;\r\n\r\n if (property == 'topRadius') {\r\n target = chart.graphs[0];\r\n if (this.value == 0) {\r\n this.value = undefined;\r\n }\r\n }\r\n\r\n target[property] = this.value;\r\n chart.validateNow();\r\n });\r\n\r\n }\r\n\r\n function createPenaltyBarChart() {\r\n var penaltyBarChart = AmCharts.makeChart('penaltyBarChart', {\r\n titles: [\r\n {\r\n \"text\": \"Fines\",\r\n \"size\": 15\r\n },\r\n {\r\n text: vm.penaltyExplorerData.minYear + \" - \" + vm.penaltyExplorerData.maxYear\r\n }\r\n ],\r\n \"type\": \"serial\",\r\n \"dataProvider\": vm.penaltyExplorerData.graphData,\r\n \"valueAxes\": [{\r\n \"minimum\": 0,\r\n \"title\": \"Fines ($)\"\r\n }],\r\n \"startDuration\": 1,\r\n \"graphs\": [\r\n {\r\n \"balloonText\": vm.communityDetail.name + \": $[[value]]\",\r\n \"fillAlphas\": 0.9,\r\n \"lineAlpha\": 0.2,\r\n \"title\": vm.communityDetail.name,\r\n \"type\": \"column\",\r\n \"valueField\": \"siteValue\",\r\n legendValueText: '$[[value]]'\r\n }, {\r\n \"balloonText\": vm.communityDetail.county + \" Benchmark: $[[value]]\",\r\n \"fillAlphas\": 0,\r\n \"lineAlpha\": 1,\r\n \"title\": vm.communityDetail.county + \" Benchmark (\" + vm.communityDetail.countyBenchmarkCount +\")\",\r\n \"lineThickness\": 3,\r\n \"valueField\": 'countyValue',\r\n legendValueText: '$[[value]]'\r\n }, {\r\n \"balloonText\": vm.communityDetail.state + \" Benchmark: $[[value]]\",\r\n \"fillAlphas\": 0,\r\n \"lineAlpha\": 1,\r\n \"title\": vm.communityDetail.state + \" Benchmark (\" + vm.communityDetail.stateBenchmarkCount + \")\",\r\n \"lineThickness\": 3,\r\n \"valueField\": 'stateValue',\r\n legendValueText: '$[[value]]'\r\n }\r\n ],\r\n legend: {\r\n useGraphSettings: true,\r\n position: \"bottom\",\r\n align: \"center\",\r\n equalWidths: false\r\n },\r\n chartCursor: {\r\n categoryBalloonEnabled: false,\r\n cursorAlpha: 0,\r\n zoomable: false\r\n },\r\n \"categoryField\": \"year\",\r\n \"categoryAxis\": {\r\n \"gridPosition\": \"start\"\r\n },\r\n \"export\": {\r\n \"enabled\": true\r\n },\r\n creditsPosition: 'top-right',\r\n pathToImages: layoutPaths.images.amChart\r\n });\r\n }\r\n\r\n function createCitationBarChart() {\r\n var citationsBarChart = AmCharts.makeChart('citationChart', {\r\n titles: [\r\n {\r\n text: \"Citations\",\r\n size: 15\r\n },\r\n {\r\n text: vm.citationsExplorerData.minYear + \"-\" + vm.citationsExplorerData.maxYear\r\n }\r\n ],\r\n \"type\": \"serial\",\r\n \"dataProvider\": vm.citationsExplorerData.citationGraphEntries,\r\n \"valueAxes\": [{\r\n \"minimum\": 0,\r\n \"title\": \"# of Citations\"\r\n }],\r\n \"startDuration\": 1,\r\n \"graphs\": [\r\n {\r\n \"balloonText\": vm.communityDetail.name + \": [[value]]\",\r\n \"fillAlphas\": 0.9,\r\n \"fillColors\": \"#95d4f3\",\r\n \"lineAlpha\": 0.2,\r\n \"title\": vm.communityDetail.name,\r\n \"type\": \"column\",\r\n \"valueField\": \"siteCount\"\r\n }, {\r\n \"balloonText\": vm.communityDetail.county + \" Benchmark: [[value]]\",\r\n \"fillAlphas\": 0,\r\n \"lineAlpha\": 1,\r\n \"lineColor\": \"#c7f464\",\r\n \"title\": vm.communityDetail.county + \" Benchmark (\" + vm.communityDetail.countyBenchmarkCount + \")\",\r\n \"lineThickness\": 3,\r\n \"valueField\": 'countyCount'\r\n }, {\r\n \"balloonText\": vm.communityDetail.state + \" Benchmark: [[value]]\",\r\n \"fillAlphas\": 0,\r\n \"lineAlpha\": 1,\r\n \"lineColor\": \"#002953\",\r\n \"title\": vm.communityDetail.state + \" Benchmark (\" + vm.communityDetail.stateBenchmarkCount + \")\",\r\n \"lineThickness\": 3,\r\n \"valueField\": 'stateCount'\r\n }\r\n ],\r\n legend: {\r\n useGraphSettings: true,\r\n position: \"bottom\",\r\n align: \"center\",\r\n equalWidths: false\r\n },\r\n chartCursor: {\r\n categoryBalloonEnabled: false,\r\n cursorAlpha: 0,\r\n zoomable: false\r\n },\r\n \"categoryField\": \"year\",\r\n \"categoryAxis\": {\r\n \"gridPosition\": \"start\"\r\n },\r\n \"export\": {\r\n \"enabled\": true\r\n },\r\n creditsPosition: 'top-right',\r\n pathToImages: layoutPaths.images.amChart\r\n });\r\n }\r\n\r\n /*$scope.selectedCompSet = [\r\n {\r\n name: \"Belmont Village Senior Living Burbank\",\r\n address: \"455 E Angeleno Ave\",\r\n city: \"Burbank\",\r\n state: \"CA\",\r\n capacity: 100,\r\n rating: 99\r\n },\r\n {\r\n name: \"Sunrise of Claremont\",\r\n address: \"2053 N Towne Ave\",\r\n city: \"Claremont\",\r\n state: \"CA\",\r\n capacity: 90,\r\n rating: 90\r\n },\r\n {\r\n name: \"The Grove at Cerritos\",\r\n address: \"111000 New Falcon Way\",\r\n city: \"Cerritos\",\r\n state: \"CA\",\r\n capacity: 75,\r\n rating: 77\r\n }\r\n ];*/\r\n\r\n /*function createMap () {\r\n var compSetExplorerMapCanvas = document.getElementById('comp-set-explorer-map');\r\n var compSetExplorerMapOptions = {\r\n center: new google.maps.LatLng(38.5,-100.9005632),\r\n zoom: 4,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n };\r\n var compSetExplorerMap = new google.maps.Map(compSetExplorerMapCanvas, compSetExplorerMapOptions);\r\n };\r\n\r\n $scope.explorerTabClicked = function () {\r\n\r\n if (!explorerTabOpened) {\r\n $timeout(function () {\r\n createMap();\r\n explorerTabOpened = true;\r\n }, 200);\r\n }\r\n };*/\r\n\r\n $scope.progressFunction = function () {\r\n return $timeout(function () {\r\n }, 3000);\r\n };\r\n\r\n vm.surveyFrequencyBtnPressed = function () {\r\n vm.isSurveyFrequencyClicked = !vm.isSurveyFrequencyClicked;\r\n };\r\n\r\n }\r\n})();\r\n\r\n\r\n\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin')\r\n .service('qualityService', qualityService);\r\n\r\n qualityService.$inject = ['$state', '$q', '$http', 'appconstants'];\r\n\r\n function qualityService($state, $q, $http, appconstants) {\r\n\r\n this.getStates = getStates;\r\n this.getCities = getCities;\r\n this.getFacilities = getFacilities;\r\n this.getCommunityOverview = getFacilityDetail;\r\n this.getCommunityDetail = getCommunityDetail;\r\n this.getQualityBenchmarks = getQualityBenchmarks;\r\n this.getCommunityHistory = getCommunityHistory;\r\n this.getPenaltyExplorerData = getPenaltyExplorerData;\r\n this.getCitationsExplorerData = getCitationsExplorerData;\r\n this.getFacilitiesLocalToFacility = getFacilitiesLocalToFacility;\r\n this.getFacilityComparisons = getFacilityComparisons;\r\n this.getFacilityComparisonReport = getFacilityComparisonReport;\r\n this.getAllFacilities = getAllFacilities;\r\n this.getPenaltiesForFacilityByDate = getPenaltiesForFacilityByDate;\r\n this.getSatisfactionsForFacilityByDate = getSatisfactionsForFacilityByDate;\r\n this.getEventsForFacilityByDate = getEventsForFacilityByDate;\r\n this.getSurveysForFacilityByDate = getSurveysForFacilityByDate;\r\n this.getSurveysNoDeficienciesForFacilityByDate = getSurveysNoDeficienciesForFacilityByDate;\r\n\r\n function getStates() {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetStatesEndpoint,\r\n data: {\r\n\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n function getCities(state) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetCitiesEndpoint,\r\n data: {\r\n state: state\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n function getFacilities(city, state) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetFacilitiesEndpoint,\r\n data: {\r\n city: city,\r\n state: state\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n function getFacilityDetail(facility) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetFacilityDetail,\r\n data: {\r\n facilityKey: facility\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.')\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n })\r\n }\r\n\r\n function getCommunityDetail(facility) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetCommunityDetail,\r\n data: {\r\n facilityKey: facility\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.')\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n })\r\n }\r\n\r\n\r\n function getQualityBenchmarks(facility) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetQualityBenchmarksByFacility,\r\n data: {\r\n facilityKey: facility\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.')\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n })\r\n }\r\n\r\n function getCommunityHistory(facility) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetCommunityHistory,\r\n data: {\r\n facilityKey: facility\r\n }\r\n }).then(function (response) {\r\n if(angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n function getPenaltyExplorerData(facility) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetPenaltyExplorerData,\r\n data: {\r\n facilityKey: facility\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n function getCitationsExplorerData(facility) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetCitationsExplorerData,\r\n data: {\r\n facilityKey: facility\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n function getFacilitiesLocalToFacility(facility) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetFacilitiesLocalToFacility,\r\n data: {\r\n facilityKey: facility\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n function getFacilityComparisons(facilities) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetFacilityComparisons,\r\n data: {\r\n facilityKeys: facilities\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n function getFacilityComparisonReport(facilityKeys, isPdf) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetFacilityComparisonReport,\r\n data: {\r\n facilityKeys: facilityKeys,\r\n isPdf: isPdf\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n function getAllFacilities(streetAddress, city, state, zip) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetFacilitiesByAddress,\r\n data: {\r\n streetAddress: streetAddress,\r\n city: city,\r\n state: state,\r\n zip: zip\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n function getEventsForFacilityByDate(facilityKey, date) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetEventsForFacilityByDate,\r\n data: {\r\n facilityKey: facilityKey,\r\n date: date\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n function getSatisfactionsForFacilityByDate(facilityKey, date) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetSatisfactionsForFacilityByDate,\r\n data: {\r\n facilityKey: facilityKey,\r\n date: date\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n function getPenaltiesForFacilityByDate(facilityKey, date) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetPenaltiesForFacilityByDate,\r\n data: {\r\n facilityKey: facilityKey,\r\n date: date\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n function getSurveysForFacilityByDate(facilityKey, date) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetSurveysForFacilityByDate,\r\n data: {\r\n facilityKey: facilityKey,\r\n date: date\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n function getSurveysNoDeficienciesForFacilityByDate(facilityKey, date) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetSurveysNoDeficienciesForFacilityByDate,\r\n data: {\r\n facilityKey: facilityKey,\r\n date: date\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n \r\n angular\r\n .module('BlurAdmin')\r\n .service('visualizationService', visualizationService);\r\n \r\n // visualizationService.$inject = ['$http', '$q', 'appconstants'];\r\n \r\n /* @ngInject */\r\n function visualizationService($http, $q, appconstants, $window) {\r\n \r\n this.visualize = visualize;\r\n ////////////////\r\n \r\n function visualize(action) {\r\n var screenData = getScreenData();\r\n\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.VisualizeEndpoint,\r\n data: {\r\n visualizationData: action,\r\n platform: \"CarePrepare Web\",\r\n screenData: screenData\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n } else {\r\n // invalid response\r\n return $q.reject('Unknown error. Please try again.');\r\n } \r\n }, function (response) { \r\n var msg = 'Unknown error. Please try again.'; \r\n // something went wrong\r\n return $q.reject(msg);\r\n });\r\n }\r\n\r\n function getScreenData() {\r\n var screenData;\r\n\r\n try {\r\n screenData = {\r\n windowHeight: isNaN($window.outerHeight) ? 0 : $window.outerHeight,\r\n windowWidth: isNaN($window.outerWidth) ? 0 : $window.outerWidth,\r\n screenHeight: isNaN($window.screen.height) ? 0 : $window.screen.height,\r\n screenWidth: isNaN($window.screen.width) ? 0 : $window.screen.width\r\n };\r\n }\r\n catch (ex) {\r\n screenData = {\r\n windowHeight: 0,\r\n windowWidth: 0,\r\n screenHeight: 0,\r\n screenWidth: 0\r\n }\r\n }\r\n\r\n return screenData;\r\n }\r\n }\r\n \r\n })();\r\n \r\n \n(function () {\r\n 'use strict';\r\n angular\r\n .module('BlurAdmin')\r\n .controller('ResetPasswordController', ResetPasswordController);\r\n\r\n /* @ngInject */\r\n function ResetPasswordController(authService, $state, toastr, $stateParams, $scope) {\r\n var vm = this;\r\n vm.userName = '';\r\n vm.newPassword = '';\r\n vm.confirmPassword = '';\r\n vm.resetToken = $stateParams.t;\r\n vm.userId = $stateParams.userId;;\r\n vm.isUpdating = false;\r\n vm.disablePasswordButton = true;\r\n\r\n\r\n function validatePasswordChange() {\r\n if ((vm.confirmPassword && vm.newPassword === vm.confirmPassword )\r\n && vm.newPassword != vm.newPassword.toLowerCase()\r\n && vm.newPassword.match('.*\\\\d.*') \r\n && vm.newPassword.match('^.*[a-z].*$')\r\n && vm.newPassword.match('^.*[^a-zA-Z0-9 ].*$')\r\n && vm.newPassword.length > 6\r\n ) \r\n {\r\n vm.disablePasswordButton = false; \r\n }\r\n else {\r\n vm.disablePasswordButton = true;\r\n }\r\n }\r\n\r\n $scope.$watch(function () {\r\n return vm.oldPassword;\r\n }, function (newVal, oldVal) {\r\n if (newVal) {\r\n validatePasswordChange();\r\n }\r\n \r\n })\r\n \r\n $scope.$watch(function () {\r\n return vm.newPassword;\r\n }, function (newVal, oldVal) {\r\n if (newVal) {\r\n validatePasswordChange();\r\n }\r\n })\r\n \r\n $scope.$watch(function () {\r\n return vm.confirmPassword;\r\n }, function (newVal, oldVal) {\r\n if (newVal) {\r\n validatePasswordChange();\r\n }\r\n })\r\n\r\n vm.resetPassword = function () {\r\n authService.updateForgottenPassword(vm.newPassword, vm.confirmPassword, vm.userId, vm.resetToken).then(function (res) {\r\n vm.isUpdating = true;\r\n toastr.success('You successfully changed your password.', 'Password Changed');\r\n vm.isUpdating = false;\r\n $state.go('login');\r\n }, function (err) {\r\n vm.isUpdating = false;\r\n });\r\n }; \r\n }\r\n \r\n })(); \n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin')\r\n .controller('StateBenchmarksController', StateBenchmarksController);\r\n\r\n function StateBenchmarksController(stateBenchmarksService, visualizationService) {\r\n var vm = this;\r\n\r\n vm.dataIsLoading = false;\r\n vm.dataLoaded = false;\r\n\r\n function loadStateBenchmarks() {\r\n vm.dataIsLoading = true;\r\n stateBenchmarksService.getStateBenchmarks().then(function (res) {\r\n vm.startDate = res.startDate;\r\n vm.endDate = res.endDate;\r\n vm.stateBenchmarks = res.states;\r\n\r\n for (var i = 0; i < vm.stateBenchmarks.length; i++) {\r\n mapCategories(vm.stateBenchmarks[i]);\r\n }\r\n\r\n vm.dataIsLoading = false;\r\n vm.dataLoaded = true;\r\n }, function (res) {\r\n vm.dataIsLoading = false;\r\n });\r\n\r\n visualizationService.visualize({\r\n \"module\": \"State Benchmarks\",\r\n \"action\": \"Requested State Benchmarks\"\r\n });\r\n };\r\n\r\n function activate() {\r\n loadStateBenchmarks();\r\n }\r\n\r\n activate();\r\n }\r\n\r\n function mapCategories(entry) {\r\n for (var i = 0; i < entry.categories.length; i++) {\r\n switch (entry.categories[i].categoryId) {\r\n case 1:\r\n entry.administration = entry.categories[i].count;\r\n break;\r\n case 2:\r\n entry.dietary = entry.categories[i].count;\r\n break;\r\n case 3:\r\n entry.facilityAndEnvironment = entry.categories[i].count;\r\n break;\r\n case 4:\r\n entry.lifeSafety = entry.categories[i].count;\r\n break;\r\n case 5:\r\n entry.qualityOfCare = entry.categories[i].count;\r\n break;\r\n case 6:\r\n entry.residentSatisfaction = entry.categories[i].count;\r\n break;\r\n case 7:\r\n entry.staffingTraining = entry.categories[i].count;\r\n break;\r\n case 8:\r\n entry.other = entry.categories[i].count;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin')\r\n .service('stateBenchmarksService', stateBenchmarksService);\r\n\r\n stateBenchmarksService.$inject = ['$state', '$q', '$http', 'appconstants'];\r\n\r\n function stateBenchmarksService($state, $q, $http, appconstants) {\r\n this.getStateBenchmarks = getStateBenchmarks;\r\n\r\n function getStateBenchmarks() {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetStateBenchmarks,\r\n data: {\r\n\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin')\r\n .controller('StateInfoController', StateInfoController);\r\n\r\n function StateInfoController(stateInfoService, appconstants, visualizationService) {\r\n\r\n var vm = this;\r\n\r\n vm.states = [];\r\n\r\n vm.selectedState = null;\r\n vm.stateInfo = null;\r\n\r\n vm.getStateInfo = function() {\r\n stateInfoService.getStateInfo(vm.selectedState).then(function (res) {\r\n vm.stateInfo = res;\r\n });\r\n\r\n visualizationService.visualize({\r\n \"module\": \"State Information\",\r\n \"action\": \"Requested State Information\",\r\n \"state\": vm.selectedState\r\n });\r\n };\r\n\r\n vm.isDownloadingReport = false;\r\n vm.downloadReport = function() {\r\n vm.isDownloadingReport = true;\r\n\r\n var outputFileName = '&outputFilename=state-regulatory-info.pdf';\r\n\r\n stateInfoService.getStateInfoReport(vm.selectedState).then(function (res) {\r\n vm.isDownloadingReport = false;\r\n window.location.href = appconstants.GetStateInfoReportFile + '?filename=' + res.filename + outputFileName;\r\n }, function (res) {\r\n vm.isDownloadingReport = false;\r\n });\r\n\r\n visualizationService.visualize({\r\n \"module\": \"State Information\",\r\n \"action\": \"Requested State Information PDF Report\",\r\n \"state\": vm.selectedState\r\n });\r\n }\r\n\r\n function initialize() {\r\n stateInfoService.getStates().then(function (res) {\r\n vm.states = res;\r\n });\r\n }\r\n\r\n initialize();\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin')\r\n .service('stateInfoService', stateInfoService);\r\n\r\n stateInfoService.$inject = ['$state', '$q', '$http', 'appconstants'];\r\n\r\n function stateInfoService($state, $q, $http, appconstants) {\r\n this.getStates = getStates;\r\n this.getStateInfo = getStateInfo;\r\n this.getStateInfoReport = getStateInfoReport;\r\n\r\n function getStates() {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetStateInfoStatesEndpoint,\r\n data: {\r\n\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n function getStateInfo(state) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetStateInfoEndpoint,\r\n data: {\r\n state: state\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n\r\n function getStateInfoReport(state) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.GetStateInfoReport,\r\n data: {\r\n state: state\r\n }\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n return $q.resolve(response.data);\r\n }\r\n else {\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n }, function (response) {\r\n return $q.reject('Unknown error. Please try again.');\r\n });\r\n }\r\n }\r\n\r\n})();\n/**\r\n * Created by k.danovsky on 13.05.2016.\r\n */\r\n\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme')\r\n .config(config);\r\n\r\n /** @ngInject */\r\n function config(baConfigProvider, colorHelper, $provide) {\r\n $provide.decorator('$uiViewScroll', uiViewScrollDecorator);\r\n //baConfigProvider.changeTheme({blur: true});\r\n //\r\n //baConfigProvider.changeColors({\r\n // default: 'rgba(#000000, 0.2)',\r\n // defaultText: '#ffffff',\r\n // dashboard: {\r\n // white: '#ffffff',\r\n // },\r\n //});\r\n }\r\n\r\n /** @ngInject */\r\n function uiViewScrollDecorator($delegate, $anchorScroll, baUtil) {\r\n return function (uiViewElement) {\r\n if (baUtil.hasAttr(uiViewElement, \"autoscroll-body-top\")) {\r\n $anchorScroll();\r\n } else {\r\n $delegate(uiViewElement);\r\n }\r\n };\r\n }\r\n})();\r\n\n/**\r\n * Created by k.danovsky on 13.05.2016.\r\n */\r\n\r\n(function () {\r\n 'use strict';\r\n\r\n var basic = {\r\n default: '#ffffff',\r\n defaultText: '#666666',\r\n border: '#dddddd',\r\n borderDark: '#aaaaaa',\r\n };\r\n\r\n // main functional color scheme\r\n var colorScheme = {\r\n primary: '#209e91',\r\n info: '#2dacd1',\r\n success: '#90b900',\r\n warning: '#dfb81c',\r\n danger: '#e85656',\r\n };\r\n\r\n // dashboard colors for charts\r\n var dashboardColors = {\r\n blueStone: '#005562',\r\n surfieGreen: '#0e8174',\r\n silverTree: '#6eba8c',\r\n gossip: '#b9f2a1',\r\n white: '#10c4b5',\r\n };\r\n\r\n angular.module('BlurAdmin.theme')\r\n .provider('baConfig', configProvider);\r\n\r\n /** @ngInject */\r\n function configProvider(colorHelper) {\r\n var conf = {\r\n theme: {\r\n blur: false,\r\n },\r\n colors: {\r\n default: basic.default,\r\n defaultText: basic.defaultText,\r\n border: basic.border,\r\n borderDark: basic.borderDark,\r\n\r\n primary: colorScheme.primary,\r\n info: colorScheme.info,\r\n success: colorScheme.success,\r\n warning: colorScheme.warning,\r\n danger: colorScheme.danger,\r\n\r\n primaryLight: colorHelper.tint(colorScheme.primary, 30),\r\n infoLight: colorHelper.tint(colorScheme.info, 30),\r\n successLight: colorHelper.tint(colorScheme.success, 30),\r\n warningLight: colorHelper.tint(colorScheme.warning, 30),\r\n dangerLight: colorHelper.tint(colorScheme.danger, 30),\r\n\r\n primaryDark: colorHelper.shade(colorScheme.primary, 15),\r\n infoDark: colorHelper.shade(colorScheme.info, 15),\r\n successDark: colorHelper.shade(colorScheme.success, 15),\r\n warningDark: colorHelper.shade(colorScheme.warning, 15),\r\n dangerDark: colorHelper.shade(colorScheme.danger, 15),\r\n\r\n dashboard: {\r\n blueStone: dashboardColors.blueStone,\r\n surfieGreen: dashboardColors.surfieGreen,\r\n silverTree: dashboardColors.silverTree,\r\n gossip: dashboardColors.gossip,\r\n white: dashboardColors.white,\r\n },\r\n }\r\n };\r\n\r\n conf.changeTheme = function(theme) {\r\n angular.merge(conf.theme, theme)\r\n };\r\n\r\n conf.changeColors = function(colors) {\r\n angular.merge(conf.colors, colors)\r\n };\r\n\r\n conf.$get = function () {\r\n delete conf.$get;\r\n return conf;\r\n };\r\n return conf;\r\n }\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 15.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n var IMAGES_ROOT = 'assets/img/';\r\n\r\n angular.module('BlurAdmin.theme')\r\n .constant('layoutSizes', {\r\n resWidthCollapseSidebar: 1200,\r\n resWidthHideSidebar: 500\r\n })\r\n .constant('layoutPaths', {\r\n images: {\r\n root: IMAGES_ROOT,\r\n profile: IMAGES_ROOT + 'app/profile/',\r\n amMap: 'assets/img/theme/vendor/ammap//dist/ammap/images/',\r\n amChart: 'assets/img/theme/vendor/amcharts/dist/amcharts/images/'\r\n }\r\n })\r\n .constant('colorHelper', {\r\n tint: function(color, weight) {\r\n return mix('#ffffff', color, weight);\r\n },\r\n shade: function(color, weight) {\r\n return mix('#000000', color, weight);\r\n },\r\n });\r\n\r\n function shade(color, weight) {\r\n return mix('#000000', color, weight);\r\n }\r\n\r\n function tint(color, weight) {\r\n return mix('#ffffff', color, weight);\r\n }\r\n\r\n //SASS mix function\r\n function mix(color1, color2, weight) {\r\n // convert a decimal value to hex\r\n function d2h(d) {\r\n return d.toString(16);\r\n }\r\n // convert a hex value to decimal\r\n function h2d(h) {\r\n return parseInt(h, 16);\r\n }\r\n\r\n var result = \"#\";\r\n for(var i = 1; i < 7; i += 2) {\r\n var color1Part = h2d(color1.substr(i, 2));\r\n var color2Part = h2d(color2.substr(i, 2));\r\n var resultPart = d2h(Math.floor(color2Part + (color1Part - color2Part) * (weight / 100.0)));\r\n result += ('0' + resultPart).slice(-2);\r\n }\r\n return result;\r\n }\r\n})();\r\n\n/**\r\n * @author v.lugovksy\r\n * created on 15.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme')\r\n .run(themeRun);\r\n\r\n /** @ngInject */\r\n function themeRun($timeout, $rootScope, layoutPaths, preloader, $q, baSidebarService, themeLayoutSettings) {\r\n var whatToWait = [\r\n preloader.loadAmCharts(),\r\n $timeout(3000)\r\n ];\r\n\r\n var theme = themeLayoutSettings;\r\n if (theme.blur) {\r\n if (theme.mobile) {\r\n whatToWait.unshift(preloader.loadImg(layoutPaths.images.root + 'blur-bg-mobile.jpg'));\r\n } else {\r\n whatToWait.unshift(preloader.loadImg(layoutPaths.images.root + 'blur-bg.jpg'));\r\n whatToWait.unshift(preloader.loadImg(layoutPaths.images.root + 'blur-bg-blurred.jpg'));\r\n }\r\n }\r\n\r\n $q.all(whatToWait).then(function () {\r\n $rootScope.$pageFinishedLoading = true;\r\n });\r\n\r\n $timeout(function () {\r\n if (!$rootScope.$pageFinishedLoading) {\r\n $rootScope.$pageFinishedLoading = true;\r\n }\r\n }, 7000);\r\n\r\n $rootScope.$baSidebarService = baSidebarService;\r\n }\r\n\r\n})();\n/**\r\n * Created by k.danovsky on 12.05.2016.\r\n */\r\n\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme')\r\n .service('themeLayoutSettings', themeLayoutSettings);\r\n\r\n /** @ngInject */\r\n function themeLayoutSettings(baConfig) {\r\n var isMobile = (/android|webos|iphone|ipad|ipod|blackberry|windows phone/).test(navigator.userAgent.toLowerCase());\r\n var mobileClass = isMobile ? 'mobile' : '';\r\n var blurClass = baConfig.theme.blur ? 'blur-theme' : '';\r\n angular.element(document.body).addClass(mobileClass).addClass(blurClass);\r\n\r\n return {\r\n blur: baConfig.theme.blur,\r\n mobile: isMobile,\r\n }\r\n }\r\n\r\n})();\n/**\r\n * Created by DevMain on 11/3/2015.\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('BlurAdmin.auth')\r\n .config(config)\r\n .run(authRun);\r\n\r\n\r\n authRun.$inject = ['$rootScope', 'authService', '$state', '$injector', '$timeout'];\r\n config.$inject = ['$httpProvider'];\r\n\r\n\r\n function authRun($rootScope, authService, $state, $injector, $timeout) {\r\n var storage = $injector.get(\"$sessionStorage\");\r\n if (storage.authToken) { //headersGetter()['Authorization'] = \"Bearer \" + storage.authToken;\r\n $injector.get(\"$http\").defaults.headers.common.Authorization = 'Bearer ' + storage.authToken;\r\n LogRocket.identify(authService.storage.userName, {\r\n name: authService.storage.fullName,\r\n email: authService.storage.userName\r\n }); \r\n window.Intercom(\"boot\", {\r\n app_id: \"sd98jqdc\",\r\n name: authService.storage.fullName,\r\n email: authService.storage.userName,\r\n user_hash: authService.storage.userHash\r\n });\r\n }\r\n\r\n /*$injector.get(\"$http\").defaults.transformRequest = function (data, headersGetter) {\r\n var storage = $injector.get(\"$sessionStorage\");\r\n if (storage.authToken) //headersGetter()['Authorization'] = \"Bearer \" + storage.authToken;\r\n //$http.defaults.headers.common.Authorization = 'Bearer ' + storage.authToken;\r\n if (data) {\r\n return angular.toJson(data);\r\n }\r\n };*/\r\n\r\n $rootScope.$on('$stateChangeSuccess',\r\n function(event, toState, toParams, fromState, fromParams){\r\n //window.Intercom(\"update\");\r\n $timeout(function () {\r\n window.Intercom(\"update\", {\r\n email: authService.storage.userName, // Email address\r\n user_hash: authService.storage.userHash\r\n });\r\n }, 1000);\r\n\r\n });\r\n\r\n var changeHandler = $rootScope.$on('$stateChangeStart', function (event, toState, toStateParams) {\r\n // track the state the user wants to go to; authorization service needs this\r\n //$rootScope.toState = toState;\r\n //$rootScope.toStateParams = toStateParams;\r\n\r\n if (!authService.isLoggedIn()) {\r\n // no logged user, we should be going to #login\r\n\r\n if (toState.name == \"login\" || toState.name == \"resetpassword\" || toState.name == \"resetlinksent\") {\r\n // already going to #login, no redirect needed\r\n } else {\r\n\r\n authService.storage.$set('redirectState', toState);\r\n authService.storage.$set('redirectStateParams', toStateParams);\r\n event.preventDefault();\r\n $state.go('login');\r\n // not going to #login, we should redirect now\r\n //$location.path(\"/login\");\r\n\r\n }\r\n\r\n\r\n } else {\r\n //taskStateService.initialize();\r\n }\r\n });\r\n\r\n //$injector.get(\"$http\").defaults.headers.common.Authorization = 'Bearer ' +\r\n // $injector.get('$sessionStorage').authToken;\r\n\r\n }\r\n\r\n function config($httpProvider) {\r\n $httpProvider.interceptors.push('$q', '$injector', 'appconstants',\r\n function ($q, $injector, appconstants) {\r\n return {\r\n //'request': function(config) {\r\n // // same as above\r\n //},\r\n\r\n 'responseError': function (response) {\r\n // same as above\r\n if ((response.status === 401) && (response.config.url !== appconstants.LoginEndpoint)) {\r\n\r\n var deferred = $q.defer(); // defer until we can re-request a new token\r\n // Get a new token... (cannot inject $http directly as will cause a circular ref)\r\n var http = $injector.get(\"$http\");\r\n\r\n var storage = $injector.get(\"$sessionStorage\");\r\n\r\n http({\r\n method: 'POST',\r\n url: appconstants.RefreshTokenEndpoint,\r\n data: {},\r\n withCredentials: true,\r\n }).then(function (refreshResponse) {\r\n\r\n if (refreshResponse.data && refreshResponse.data.jwtToken) {\r\n storage.$set('authToken', refreshResponse.data.jwtToken);\r\n storage.$set('authExpiry', refreshResponse.data.tokenExpireTime);\r\n //storage.$set('rtcTicket', refreshResponse.data.rtcTicket);\r\n http.defaults.headers.common.Authorization = 'Bearer ' + storage.authToken;\r\n\r\n //JK 8/24/2015 - fixed issue where the original request was not updating the headers causing a loop of token refreshed\r\n response.config.headers.Authorization = http.defaults.headers.common.Authorization;\r\n $injector.get(\"$http\")(response.config).then(function (response) {\r\n // we have a successful response - resolve it using deferred\r\n deferred.resolve(response);\r\n }, function (response) {\r\n deferred.reject(); // something went wrong\r\n });\r\n\r\n } else {\r\n deferred.reject(refreshResponse); // something went wrong\r\n }\r\n }, function (response) {\r\n deferred.reject(); // token retry failed, redirect so user can login again\r\n //$location.path('/user/sign/in');\r\n var state = $injector.get(\"$state\");\r\n state.go('login');\r\n return;\r\n });\r\n\r\n return deferred.promise; // return the deferred promise\r\n }\r\n return $q.reject(response); // not a recoverable error\r\n }\r\n }\r\n });\r\n /*$httpProvider.interceptors.push('$rootScope', '$q', '$injector', '$location', 'ADEConstants',\r\n function ($rootScope, $q, $injector, $location, ADEConstants) {\r\n return {\r\n //'request': function(config) {\r\n // // same as above\r\n //},\r\n\r\n 'responseError': function (response) {\r\n // same as above\r\n if ((response.status === 401) && (response.config.url !== ADEConstants.TokenEndpoint)) {\r\n\r\n var deferred = $q.defer(); // defer until we can re-request a new token\r\n // Get a new token... (cannot inject $http directly as will cause a circular ref)\r\n var http = $injector.get(\"$http\");\r\n\r\n var storage = $injector.get(\"$sessionStorage\");\r\n\r\n http({\r\n method: 'POST',\r\n url: ADEConstants.TokenEndpoint,\r\n data: {\r\n grant_type: \"refresh_token\",\r\n refresh_token: storage.refreshToken\r\n },\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'\r\n },\r\n transformRequest: function (obj) {\r\n var str = [];\r\n for (var p in obj)\r\n str.push(encodeURIComponent(p) + \"=\" + encodeURIComponent(obj[p]));\r\n return str.join(\"&\");\r\n },\r\n }).then(function (refreshResponse) {\r\n\r\n if (refreshResponse.data && refreshResponse.data.access_token) {\r\n\r\n storage.$set('authToken', refreshResponse.data.access_token);\r\n storage.$set('authExpiry', refreshResponse.data['.expires']);\r\n storage.$set('rtcTicket', refreshResponse.data.rtcTicket);\r\n http.defaults.headers.common.Authorization = 'Bearer ' + storage.authToken;\r\n\r\n //JK 8/24/2015 - fixed issue where the original request was not updating the headers causing a loop of token refreshed\r\n response.config.headers.Authorization = http.defaults.headers.common.Authorization;\r\n $injector.get(\"$http\")(response.config).then(function (response) {\r\n // we have a successful response - resolve it using deferred\r\n deferred.resolve(response);\r\n }, function (response) {\r\n deferred.reject(); // something went wrong\r\n });\r\n\r\n } else {\r\n deferred.reject(refreshResponse); // something went wrong\r\n }\r\n }, function (response) {\r\n deferred.reject(); // token retry failed, redirect so user can login again\r\n //$location.path('/user/sign/in');\r\n var state = $injector.get(\"$state\");\r\n state.go('login');\r\n return;\r\n });\r\n\r\n return deferred.promise; // return the deferred promise\r\n }\r\n return $q.reject(response); // not a recoverable error\r\n }\r\n }\r\n });*/\r\n\r\n //$httpProvider.responseInterceptors.push([\r\n // '$rootScope', '$q', '$injector', '$location', 'ADEConstants',\r\n // function ($rootScope, $q, $injector, $location, adeConstants) {\r\n // return function (promise) {\r\n // return promise.then(function (response) {\r\n\r\n // return response; // no action, was successful\r\n // }, function (response) {\r\n // // error - was it 401 or something else?\r\n // if ((response.status === 401) && (response.config.url !== adeConstants.TokenEndpoint)) {\r\n\r\n // var deferred = $q.defer(); // defer until we can re-request a new token\r\n // // Get a new token... (cannot inject $http directly as will cause a circular ref)\r\n // var http = $injector.get(\"$http\");\r\n\r\n // var storage = $injector.get(\"$sessionStorage\");\r\n // http({\r\n // method: 'POST',\r\n // url: adeConstants.TokenEndpoint,\r\n // data: {\r\n // grant_type: \"refresh_token\",\r\n // refresh_token: storage.refreshToken\r\n // },\r\n // headers: {\r\n // 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'\r\n // },\r\n // transformRequest: function (obj) {\r\n // var str = [];\r\n // for (var p in obj)\r\n // str.push(encodeURIComponent(p) + \"=\" + encodeURIComponent(obj[p]));\r\n // return str.join(\"&\");\r\n // },\r\n // }).then(function (refreshResponse) {\r\n\r\n // if (refreshResponse.data && refreshResponse.data.access_token) {\r\n\r\n // storage.authToken = refreshResponse.data.access_token;\r\n // storage.authExpiry = refreshResponse.data['.expires'];\r\n // $injector.get(\"$http\")(response.config).then(function (response) {\r\n // // we have a successful response - resolve it using deferred\r\n // deferred.resolve(response);\r\n // }, function (response) {\r\n // deferred.reject(); // something went wrong\r\n // });\r\n\r\n // } else {\r\n // deferred.reject(refreshResponse); // something went wrong\r\n // }\r\n // }, function (response) {\r\n // deferred.reject(); // token retry failed, redirect so user can login again\r\n // //$location.path('/user/sign/in');\r\n // var state = $injector.get(\"$state\");\r\n // state.go('login');\r\n // return;\r\n // });\r\n\r\n // return deferred.promise; // return the deferred promise\r\n // }\r\n // return $q.reject(response); // not a recoverable error\r\n // });\r\n // };\r\n // }\r\n //]);\r\n }\r\n\r\n}());\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('BlurAdmin.auth')\r\n .factory('authService', authService);\r\n\r\n authService.$inject = ['$http', '$sessionStorage', '$q', '$rootScope', 'moment', 'appconstants', 'visualizationService'];\r\n\r\n function authService($http, $sessionStorage, $q, $rootScope, moment, appconstants, visualizationService) {\r\n\r\n var\r\n storage = $sessionStorage.$default({\r\n authToken: '',\r\n authExpiry: moment.utc(),\r\n refreshToken: '',\r\n refreshExpiry: moment.utc(),\r\n userPermissions: null,\r\n userId: 0,\r\n firstName: '',\r\n lastName: '',\r\n redirectState: null,\r\n redirectStateParams: null,\r\n userName: '',\r\n usingTempPassword: false,\r\n rtcTicket: '',\r\n isDemoAccount: false,\r\n userHash: '',\r\n fullName: '',\r\n hasTasks: false,\r\n usesMarketingModule: false,\r\n usesMarketResearchModule: false,\r\n currentPortfolioGroup: null,\r\n secretKey: '',\r\n isAdmin: false\r\n }),\r\n service = {\r\n storage: storage,\r\n login: login,\r\n logout: logout,\r\n isLoggedIn: isLoggedIn,\r\n changePassword: changePassword,\r\n sendPasswordResetLink: sendPasswordResetLink,\r\n updateForgottenPassword: updateForgottenPassword\r\n };\r\n\r\n // ReSharper disable JsUnreachableCode\r\n\r\n function isLoggedIn() {\r\n return (storage.authToken != '');\r\n //return (storage.authToken != '') && (moment.utc(new Date(storage.authExpiry)) > moment.utc());\r\n }\r\n\r\n\r\n function sendPasswordResetLink(emailAddress) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.SendPasswordResetLink,\r\n data: {\r\n emailAddress: emailAddress\r\n }\r\n }).then(function (response) {\r\n return $q.resolve(response);\r\n\r\n }, function (response) {\r\n var msg = response.data;\r\n // something went wrong\r\n return $q.reject(msg);\r\n });\r\n }\r\n\r\n function changePassword(oldPassword, newPassword, confirmPassword) {\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.ChangePasswordEndpoint,\r\n data: {\r\n oldPassword: oldPassword,\r\n newPassword: newPassword,\r\n confirmPassword: confirmPassword,\r\n }\r\n }).then(function (response) {\r\n return $q.resolve(response);\r\n\r\n }, function (response) {\r\n if (!msg || msg == ''){\r\n msg = 'An unknown error occurred when trying to reset the password.';\r\n }\r\n // something went wrong\r\n return $q.reject(msg);\r\n });\r\n }\r\n\r\n function updateForgottenPassword(newPassword, confirmPassword, userId, resetToken){\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.UpdateForgottenPassword,\r\n data: {\r\n newPassword: newPassword,\r\n confirmPassword: confirmPassword,\r\n userId: userId,\r\n resetToken: resetToken\r\n }\r\n }).then(function (response){\r\n return $q.resolve(response);\r\n }, function (error){\r\n var msg = error.data.Errors[0]; \r\n return $q.reject(msg);\r\n });\r\n }\r\n\r\n function isNullOrWhitespace( input ) {\r\n\r\n if (typeof input === 'undefined' || input == null) return true;\r\n\r\n return input.replace(/\\s/g, '').length < 1;\r\n }\r\n\r\n function login(u, p) {\r\n\r\n var store = storage;\r\n\r\n return $http({\r\n method: 'POST',\r\n url: appconstants.LoginEndpoint,\r\n data: {\r\n username: u,\r\n password: p\r\n },\r\n withCredentials: true,\r\n ignoreLoadingBar: true\r\n }).then(function (response) {\r\n if (angular.isObject(response.data)) {\r\n\r\n store.$set('authToken', response.data.jwtToken);\r\n\r\n $http.defaults.headers.common.Authorization = 'Bearer ' + store.authToken;\r\n //$httpProvider.defaults.headers.common['Authorization']\r\n\r\n store.$set('isDemoAccount', response.data.isDemoAccount.toLowerCase() === 'true');\r\n store.$set('authExpiry', response.data['.expires']);\r\n //store.$set('refreshToken', response.data.refresh_token);\r\n //store.$set('userPermissions', angular.fromJson(response.data.userPermissions));\r\n store.$set('userId', response.data.userId);\r\n store.$set('userName', u);\r\n store.$set('firstName', response.data.firstName);\r\n store.$set('lastName', response.data.lastName);\r\n //store.$set('rtcTicket', response.data.rtcTicket);\r\n store.$set('userHash', response.data.userHash);\r\n var realFullName = (isNullOrWhitespace(response.data.firstName) && isNullOrWhitespace(response.data.lastName)) ?\r\n response.data.userName : (response.data.firstName + \" \" + response.data.lastName);\r\n store.$set('fullName', realFullName);\r\n store.$set('secretKey', response.data.secretKey);\r\n store.$set('isAdmin', response.data.isAdmin.toLowerCase() === 'true')\r\n\r\n LogRocket.identify(response.data.userName, {\r\n name: realFullName,\r\n email: response.data.userName\r\n }); \r\n\r\n window.Intercom(\"boot\", {\r\n app_id: \"sd98jqdc\",\r\n name: realFullName,\r\n email: response.data.userName,\r\n user_hash: response.data.userHash\r\n });\r\n\r\n $rootScope.$emit('realtime:start');\r\n \r\n $q.resolve(true);\r\n } else {\r\n // invalid response\r\n\r\n return $q.reject('Unknown error. Please try again.');\r\n }\r\n\r\n }, function (response) {\r\n console.log(response);\r\n var msg = 'Unknown error. Please try again.';\r\n if ((angular.isObject(response.data)) && response.data.message) {\r\n msg = response.data.message;\r\n }\r\n\r\n // something went wrong\r\n return $q.reject(msg);\r\n });\r\n // .success(function (data) {\r\n // $window.alert(data.access_token);\r\n //}).error(function(data) {\r\n // $window.alert('failed');\r\n //});\r\n }\r\n\r\n\r\n\r\n\r\n function logout() {\r\n visualizationService.visualize({\r\n \"action\": \"Logged Out\"\r\n });\r\n window.Intercom(\"shutdown\");\r\n $sessionStorage.$reset();\r\n \r\n\r\n\r\n //$rootScope.$broadcast(ADEConstants.LOGIN_STATUS_CHANGED, false);\r\n //$state.go('login');\r\n /*$timeout(function () {\r\n window.location.href = ADEConstants.LoginUrl;\r\n });*/\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n return service;\r\n\r\n }\r\n\r\n})();\r\n\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin')\r\n .directive('refreshTable', refreshTable);\r\n\r\n function refreshTable() {\r\n return {\r\n require: '^stTable',\r\n restrict: 'A',\r\n link: function (scope, element, attrs, tableCtrl) {\r\n scope.$on('changeTablePage', function (event, start) {\r\n tableCtrl.tableState().pagination.start = start;\r\n });\r\n\r\n }\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin')\r\n .filter('bool', bool);\r\n\r\n /** @ngInject */\r\n function bool() {\r\n return function(input) {\r\n switch(input.toLowerCase()) {\r\n case \"yes\":\r\n return true;\r\n case \"no\":\r\n return false;\r\n default:\r\n return false;\r\n }\r\n };\r\n }\r\n\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin')\r\n .filter('category', category);\r\n\r\n /** @ngInject */\r\n function category() {\r\n return function(input) {\r\n switch(input) {\r\n case 1:\r\n return 'Administration';\r\n case 2:\r\n return 'Dietary';\r\n case 3:\r\n return 'Facility/Environment';\r\n case 4:\r\n return 'Life Safety';\r\n case 5:\r\n return 'Quality Of Care';\r\n case 6:\r\n return 'Resident Satisfaction';\r\n case 7:\r\n return 'Staffing/Training';\r\n case 8:\r\n return 'Other';\r\n }\r\n };\r\n }\r\n\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin')\r\n .filter('titleCase', titleCase);\r\n\r\n function titleCase() {\r\n return function (input) {\r\n input = input || '';\r\n return input.replace(/\\w\\S*/g, function (txt) {\r\n switch (txt) {\r\n case 'N':\r\n case 'NW':\r\n case 'NE':\r\n case 'S':\r\n case 'SW':\r\n case 'SE':\r\n case 'E':\r\n case 'W':\r\n case 'LLC':\r\n case 'ALF':\r\n case 'ALF,':\r\n return txt;\r\n default:\r\n return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();\r\n }\r\n\r\n });\r\n };\r\n }\r\n})();\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.tables')\r\n .controller('TablesPageCtrl', TablesPageCtrl);\r\n\r\n /** @ngInject */\r\n function TablesPageCtrl($scope, $filter, editableOptions, editableThemes) {\r\n\r\n $scope.smartTablePageSize = 10;\r\n\r\n $scope.smartTableData = [\r\n {\r\n id: 1,\r\n firstName: 'Mark',\r\n lastName: 'Otto',\r\n username: '@mdo',\r\n email: 'mdo@gmail.com',\r\n age: '28'\r\n },\r\n {\r\n id: 2,\r\n firstName: 'Jacob',\r\n lastName: 'Thornton',\r\n username: '@fat',\r\n email: 'fat@yandex.ru',\r\n age: '45'\r\n },\r\n {\r\n id: 3,\r\n firstName: 'Larry',\r\n lastName: 'Bird',\r\n username: '@twitter',\r\n email: 'twitter@outlook.com',\r\n age: '18'\r\n },\r\n {\r\n id: 4,\r\n firstName: 'John',\r\n lastName: 'Snow',\r\n username: '@snow',\r\n email: 'snow@gmail.com',\r\n age: '20'\r\n },\r\n {\r\n id: 5,\r\n firstName: 'Jack',\r\n lastName: 'Sparrow',\r\n username: '@jack',\r\n email: 'jack@yandex.ru',\r\n age: '30'\r\n },\r\n {\r\n id: 6,\r\n firstName: 'Ann',\r\n lastName: 'Smith',\r\n username: '@ann',\r\n email: 'ann@gmail.com',\r\n age: '21'\r\n },\r\n {\r\n id: 7,\r\n firstName: 'Barbara',\r\n lastName: 'Black',\r\n username: '@barbara',\r\n email: 'barbara@yandex.ru',\r\n age: '43'\r\n },\r\n {\r\n id: 8,\r\n firstName: 'Sevan',\r\n lastName: 'Bagrat',\r\n username: '@sevan',\r\n email: 'sevan@outlook.com',\r\n age: '13'\r\n },\r\n {\r\n id: 9,\r\n firstName: 'Ruben',\r\n lastName: 'Vardan',\r\n username: '@ruben',\r\n email: 'ruben@gmail.com',\r\n age: '22'\r\n },\r\n {\r\n id: 10,\r\n firstName: 'Karen',\r\n lastName: 'Sevan',\r\n username: '@karen',\r\n email: 'karen@yandex.ru',\r\n age: '33'\r\n },\r\n {\r\n id: 11,\r\n firstName: 'Mark',\r\n lastName: 'Otto',\r\n username: '@mark',\r\n email: 'mark@gmail.com',\r\n age: '38'\r\n },\r\n {\r\n id: 12,\r\n firstName: 'Jacob',\r\n lastName: 'Thornton',\r\n username: '@jacob',\r\n email: 'jacob@yandex.ru',\r\n age: '48'\r\n },\r\n {\r\n id: 13,\r\n firstName: 'Haik',\r\n lastName: 'Hakob',\r\n username: '@haik',\r\n email: 'haik@outlook.com',\r\n age: '48'\r\n },\r\n {\r\n id: 14,\r\n firstName: 'Garegin',\r\n lastName: 'Jirair',\r\n username: '@garegin',\r\n email: 'garegin@gmail.com',\r\n age: '40'\r\n },\r\n {\r\n id: 15,\r\n firstName: 'Krikor',\r\n lastName: 'Bedros',\r\n username: '@krikor',\r\n email: 'krikor@yandex.ru',\r\n age: '32'\r\n },\r\n {\r\n \"id\": 16,\r\n \"firstName\": \"Francisca\",\r\n \"lastName\": \"Brady\",\r\n \"username\": \"@Gibson\",\r\n \"email\": \"franciscagibson@comtours.com\",\r\n \"age\": 11\r\n },\r\n {\r\n \"id\": 17,\r\n \"firstName\": \"Tillman\",\r\n \"lastName\": \"Figueroa\",\r\n \"username\": \"@Snow\",\r\n \"email\": \"tillmansnow@comtours.com\",\r\n \"age\": 34\r\n },\r\n {\r\n \"id\": 18,\r\n \"firstName\": \"Jimenez\",\r\n \"lastName\": \"Morris\",\r\n \"username\": \"@Bryant\",\r\n \"email\": \"jimenezbryant@comtours.com\",\r\n \"age\": 45\r\n },\r\n {\r\n \"id\": 19,\r\n \"firstName\": \"Sandoval\",\r\n \"lastName\": \"Jacobson\",\r\n \"username\": \"@Mcbride\",\r\n \"email\": \"sandovalmcbride@comtours.com\",\r\n \"age\": 32\r\n },\r\n {\r\n \"id\": 20,\r\n \"firstName\": \"Griffin\",\r\n \"lastName\": \"Torres\",\r\n \"username\": \"@Charles\",\r\n \"email\": \"griffincharles@comtours.com\",\r\n \"age\": 19\r\n },\r\n {\r\n \"id\": 21,\r\n \"firstName\": \"Cora\",\r\n \"lastName\": \"Parker\",\r\n \"username\": \"@Caldwell\",\r\n \"email\": \"coracaldwell@comtours.com\",\r\n \"age\": 27\r\n },\r\n {\r\n \"id\": 22,\r\n \"firstName\": \"Cindy\",\r\n \"lastName\": \"Bond\",\r\n \"username\": \"@Velez\",\r\n \"email\": \"cindyvelez@comtours.com\",\r\n \"age\": 24\r\n },\r\n {\r\n \"id\": 23,\r\n \"firstName\": \"Frieda\",\r\n \"lastName\": \"Tyson\",\r\n \"username\": \"@Craig\",\r\n \"email\": \"friedacraig@comtours.com\",\r\n \"age\": 45\r\n },\r\n {\r\n \"id\": 24,\r\n \"firstName\": \"Cote\",\r\n \"lastName\": \"Holcomb\",\r\n \"username\": \"@Rowe\",\r\n \"email\": \"coterowe@comtours.com\",\r\n \"age\": 20\r\n },\r\n {\r\n \"id\": 25,\r\n \"firstName\": \"Trujillo\",\r\n \"lastName\": \"Mejia\",\r\n \"username\": \"@Valenzuela\",\r\n \"email\": \"trujillovalenzuela@comtours.com\",\r\n \"age\": 16\r\n },\r\n {\r\n \"id\": 26,\r\n \"firstName\": \"Pruitt\",\r\n \"lastName\": \"Shepard\",\r\n \"username\": \"@Sloan\",\r\n \"email\": \"pruittsloan@comtours.com\",\r\n \"age\": 44\r\n },\r\n {\r\n \"id\": 27,\r\n \"firstName\": \"Sutton\",\r\n \"lastName\": \"Ortega\",\r\n \"username\": \"@Black\",\r\n \"email\": \"suttonblack@comtours.com\",\r\n \"age\": 42\r\n },\r\n {\r\n \"id\": 28,\r\n \"firstName\": \"Marion\",\r\n \"lastName\": \"Heath\",\r\n \"username\": \"@Espinoza\",\r\n \"email\": \"marionespinoza@comtours.com\",\r\n \"age\": 47\r\n },\r\n {\r\n \"id\": 29,\r\n \"firstName\": \"Newman\",\r\n \"lastName\": \"Hicks\",\r\n \"username\": \"@Keith\",\r\n \"email\": \"newmankeith@comtours.com\",\r\n \"age\": 15\r\n },\r\n {\r\n \"id\": 30,\r\n \"firstName\": \"Boyle\",\r\n \"lastName\": \"Larson\",\r\n \"username\": \"@Summers\",\r\n \"email\": \"boylesummers@comtours.com\",\r\n \"age\": 32\r\n },\r\n {\r\n \"id\": 31,\r\n \"firstName\": \"Haynes\",\r\n \"lastName\": \"Vinson\",\r\n \"username\": \"@Mckenzie\",\r\n \"email\": \"haynesmckenzie@comtours.com\",\r\n \"age\": 15\r\n },\r\n {\r\n \"id\": 32,\r\n \"firstName\": \"Miller\",\r\n \"lastName\": \"Acosta\",\r\n \"username\": \"@Young\",\r\n \"email\": \"milleryoung@comtours.com\",\r\n \"age\": 55\r\n },\r\n {\r\n \"id\": 33,\r\n \"firstName\": \"Johnston\",\r\n \"lastName\": \"Brown\",\r\n \"username\": \"@Knight\",\r\n \"email\": \"johnstonknight@comtours.com\",\r\n \"age\": 29\r\n },\r\n {\r\n \"id\": 34,\r\n \"firstName\": \"Lena\",\r\n \"lastName\": \"Pitts\",\r\n \"username\": \"@Forbes\",\r\n \"email\": \"lenaforbes@comtours.com\",\r\n \"age\": 25\r\n },\r\n {\r\n \"id\": 35,\r\n \"firstName\": \"Terrie\",\r\n \"lastName\": \"Kennedy\",\r\n \"username\": \"@Branch\",\r\n \"email\": \"terriebranch@comtours.com\",\r\n \"age\": 37\r\n },\r\n {\r\n \"id\": 36,\r\n \"firstName\": \"Louise\",\r\n \"lastName\": \"Aguirre\",\r\n \"username\": \"@Kirby\",\r\n \"email\": \"louisekirby@comtours.com\",\r\n \"age\": 44\r\n },\r\n {\r\n \"id\": 37,\r\n \"firstName\": \"David\",\r\n \"lastName\": \"Patton\",\r\n \"username\": \"@Sanders\",\r\n \"email\": \"davidsanders@comtours.com\",\r\n \"age\": 26\r\n },\r\n {\r\n \"id\": 38,\r\n \"firstName\": \"Holden\",\r\n \"lastName\": \"Barlow\",\r\n \"username\": \"@Mckinney\",\r\n \"email\": \"holdenmckinney@comtours.com\",\r\n \"age\": 11\r\n },\r\n {\r\n \"id\": 39,\r\n \"firstName\": \"Baker\",\r\n \"lastName\": \"Rivera\",\r\n \"username\": \"@Montoya\",\r\n \"email\": \"bakermontoya@comtours.com\",\r\n \"age\": 47\r\n },\r\n {\r\n \"id\": 40,\r\n \"firstName\": \"Belinda\",\r\n \"lastName\": \"Lloyd\",\r\n \"username\": \"@Calderon\",\r\n \"email\": \"belindacalderon@comtours.com\",\r\n \"age\": 21\r\n },\r\n {\r\n \"id\": 41,\r\n \"firstName\": \"Pearson\",\r\n \"lastName\": \"Patrick\",\r\n \"username\": \"@Clements\",\r\n \"email\": \"pearsonclements@comtours.com\",\r\n \"age\": 42\r\n },\r\n {\r\n \"id\": 42,\r\n \"firstName\": \"Alyce\",\r\n \"lastName\": \"Mckee\",\r\n \"username\": \"@Daugherty\",\r\n \"email\": \"alycedaugherty@comtours.com\",\r\n \"age\": 55\r\n },\r\n {\r\n \"id\": 43,\r\n \"firstName\": \"Valencia\",\r\n \"lastName\": \"Spence\",\r\n \"username\": \"@Olsen\",\r\n \"email\": \"valenciaolsen@comtours.com\",\r\n \"age\": 20\r\n },\r\n {\r\n \"id\": 44,\r\n \"firstName\": \"Leach\",\r\n \"lastName\": \"Holcomb\",\r\n \"username\": \"@Humphrey\",\r\n \"email\": \"leachhumphrey@comtours.com\",\r\n \"age\": 28\r\n },\r\n {\r\n \"id\": 45,\r\n \"firstName\": \"Moss\",\r\n \"lastName\": \"Baxter\",\r\n \"username\": \"@Fitzpatrick\",\r\n \"email\": \"mossfitzpatrick@comtours.com\",\r\n \"age\": 51\r\n },\r\n {\r\n \"id\": 46,\r\n \"firstName\": \"Jeanne\",\r\n \"lastName\": \"Cooke\",\r\n \"username\": \"@Ward\",\r\n \"email\": \"jeanneward@comtours.com\",\r\n \"age\": 59\r\n },\r\n {\r\n \"id\": 47,\r\n \"firstName\": \"Wilma\",\r\n \"lastName\": \"Briggs\",\r\n \"username\": \"@Kidd\",\r\n \"email\": \"wilmakidd@comtours.com\",\r\n \"age\": 53\r\n },\r\n {\r\n \"id\": 48,\r\n \"firstName\": \"Beatrice\",\r\n \"lastName\": \"Perry\",\r\n \"username\": \"@Gilbert\",\r\n \"email\": \"beatricegilbert@comtours.com\",\r\n \"age\": 39\r\n },\r\n {\r\n \"id\": 49,\r\n \"firstName\": \"Whitaker\",\r\n \"lastName\": \"Hyde\",\r\n \"username\": \"@Mcdonald\",\r\n \"email\": \"whitakermcdonald@comtours.com\",\r\n \"age\": 35\r\n },\r\n {\r\n \"id\": 50,\r\n \"firstName\": \"Rebekah\",\r\n \"lastName\": \"Duran\",\r\n \"username\": \"@Gross\",\r\n \"email\": \"rebekahgross@comtours.com\",\r\n \"age\": 40\r\n },\r\n {\r\n \"id\": 51,\r\n \"firstName\": \"Earline\",\r\n \"lastName\": \"Mayer\",\r\n \"username\": \"@Woodward\",\r\n \"email\": \"earlinewoodward@comtours.com\",\r\n \"age\": 52\r\n },\r\n {\r\n \"id\": 52,\r\n \"firstName\": \"Moran\",\r\n \"lastName\": \"Baxter\",\r\n \"username\": \"@Johns\",\r\n \"email\": \"moranjohns@comtours.com\",\r\n \"age\": 20\r\n },\r\n {\r\n \"id\": 53,\r\n \"firstName\": \"Nanette\",\r\n \"lastName\": \"Hubbard\",\r\n \"username\": \"@Cooke\",\r\n \"email\": \"nanettecooke@comtours.com\",\r\n \"age\": 55\r\n },\r\n {\r\n \"id\": 54,\r\n \"firstName\": \"Dalton\",\r\n \"lastName\": \"Walker\",\r\n \"username\": \"@Hendricks\",\r\n \"email\": \"daltonhendricks@comtours.com\",\r\n \"age\": 25\r\n },\r\n {\r\n \"id\": 55,\r\n \"firstName\": \"Bennett\",\r\n \"lastName\": \"Blake\",\r\n \"username\": \"@Pena\",\r\n \"email\": \"bennettpena@comtours.com\",\r\n \"age\": 13\r\n },\r\n {\r\n \"id\": 56,\r\n \"firstName\": \"Kellie\",\r\n \"lastName\": \"Horton\",\r\n \"username\": \"@Weiss\",\r\n \"email\": \"kellieweiss@comtours.com\",\r\n \"age\": 48\r\n },\r\n {\r\n \"id\": 57,\r\n \"firstName\": \"Hobbs\",\r\n \"lastName\": \"Talley\",\r\n \"username\": \"@Sanford\",\r\n \"email\": \"hobbssanford@comtours.com\",\r\n \"age\": 28\r\n },\r\n {\r\n \"id\": 58,\r\n \"firstName\": \"Mcguire\",\r\n \"lastName\": \"Donaldson\",\r\n \"username\": \"@Roman\",\r\n \"email\": \"mcguireroman@comtours.com\",\r\n \"age\": 38\r\n },\r\n {\r\n \"id\": 59,\r\n \"firstName\": \"Rodriquez\",\r\n \"lastName\": \"Saunders\",\r\n \"username\": \"@Harper\",\r\n \"email\": \"rodriquezharper@comtours.com\",\r\n \"age\": 20\r\n },\r\n {\r\n \"id\": 60,\r\n \"firstName\": \"Lou\",\r\n \"lastName\": \"Conner\",\r\n \"username\": \"@Sanchez\",\r\n \"email\": \"lousanchez@comtours.com\",\r\n \"age\": 16\r\n }\r\n ];\r\n\r\n $scope.editableTableData = $scope.smartTableData.slice(0, 36);\r\n\r\n $scope.peopleTableData = [\r\n {\r\n id: 1,\r\n firstName: 'Mark',\r\n lastName: 'Otto',\r\n username: '@mdo',\r\n email: 'mdo@gmail.com',\r\n age: '28',\r\n status: 'info'\r\n },\r\n {\r\n id: 2,\r\n firstName: 'Jacob',\r\n lastName: 'Thornton',\r\n username: '@fat',\r\n email: 'fat@yandex.ru',\r\n age: '45',\r\n status: 'primary'\r\n },\r\n {\r\n id: 3,\r\n firstName: 'Larry',\r\n lastName: 'Bird',\r\n username: '@twitter',\r\n email: 'twitter@outlook.com',\r\n age: '18',\r\n status: 'success'\r\n },\r\n {\r\n id: 4,\r\n firstName: 'John',\r\n lastName: 'Snow',\r\n username: '@snow',\r\n email: 'snow@gmail.com',\r\n age: '20',\r\n status: 'danger'\r\n },\r\n {\r\n id: 5,\r\n firstName: 'Jack',\r\n lastName: 'Sparrow',\r\n username: '@jack',\r\n email: 'jack@yandex.ru',\r\n age: '30',\r\n status: 'warning'\r\n }\r\n ];\r\n\r\n $scope.metricsTableData = [\r\n {\r\n image: 'app/browsers/chrome.svg',\r\n browser: 'Google Chrome',\r\n visits: '10,392',\r\n isVisitsUp: true,\r\n purchases: '4,214',\r\n isPurchasesUp: true,\r\n percent: '45%',\r\n isPercentUp: true\r\n },\r\n {\r\n image: 'app/browsers/firefox.svg',\r\n browser: 'Mozilla Firefox',\r\n visits: '7,873',\r\n isVisitsUp: true,\r\n purchases: '3,031',\r\n isPurchasesUp: false,\r\n percent: '28%',\r\n isPercentUp: true\r\n },\r\n {\r\n image: 'app/browsers/ie.svg',\r\n browser: 'Internet Explorer',\r\n visits: '5,890',\r\n isVisitsUp: false,\r\n purchases: '2,102',\r\n isPurchasesUp: false,\r\n percent: '17%',\r\n isPercentUp: false\r\n },\r\n {\r\n image: 'app/browsers/safari.svg',\r\n browser: 'Safari',\r\n visits: '4,001',\r\n isVisitsUp: false,\r\n purchases: '1,001',\r\n isPurchasesUp: false,\r\n percent: '14%',\r\n isPercentUp: true\r\n },\r\n {\r\n image: 'app/browsers/opera.svg',\r\n browser: 'Opera',\r\n visits: '1,833',\r\n isVisitsUp: true,\r\n purchases: '83',\r\n isPurchasesUp: true,\r\n percent: '5%',\r\n isPercentUp: false\r\n }\r\n ];\r\n\r\n $scope.users = [\r\n {\r\n \"id\": 1,\r\n \"name\": \"Esther Vang\",\r\n \"status\": 4,\r\n \"group\": 3\r\n },\r\n {\r\n \"id\": 2,\r\n \"name\": \"Leah Freeman\",\r\n \"status\": 3,\r\n \"group\": 1\r\n },\r\n {\r\n \"id\": 3,\r\n \"name\": \"Mathews Simpson\",\r\n \"status\": 3,\r\n \"group\": 2\r\n },\r\n {\r\n \"id\": 4,\r\n \"name\": \"Buckley Hopkins\",\r\n \"group\": 4\r\n },\r\n {\r\n \"id\": 5,\r\n \"name\": \"Buckley Schwartz\",\r\n \"status\": 1,\r\n \"group\": 1\r\n },\r\n {\r\n \"id\": 6,\r\n \"name\": \"Mathews Hopkins\",\r\n \"status\": 4,\r\n \"group\": 2\r\n },\r\n {\r\n \"id\": 7,\r\n \"name\": \"Leah Vang\",\r\n \"status\": 4,\r\n \"group\": 1\r\n },\r\n {\r\n \"id\": 8,\r\n \"name\": \"Vang Schwartz\",\r\n \"status\": 4,\r\n \"group\": 2\r\n },\r\n {\r\n \"id\": 9,\r\n \"name\": \"Hopkin Esther\",\r\n \"status\": 1,\r\n \"group\": 2\r\n },\r\n {\r\n \"id\": 10,\r\n \"name\": \"Mathews Schwartz\",\r\n \"status\": 1,\r\n \"group\": 3\r\n }\r\n ];\r\n\r\n $scope.statuses = [\r\n {value: 1, text: 'Good'},\r\n {value: 2, text: 'Awesome'},\r\n {value: 3, text: 'Excellent'},\r\n ];\r\n\r\n $scope.groups = [\r\n {id: 1, text: 'user'},\r\n {id: 2, text: 'customer'},\r\n {id: 3, text: 'vip'},\r\n {id: 4, text: 'admin'}\r\n ];\r\n\r\n $scope.showGroup = function(user) {\r\n if(user.group && $scope.groups.length) {\r\n var selected = $filter('filter')($scope.groups, {id: user.group});\r\n return selected.length ? selected[0].text : 'Not set';\r\n } else return 'Not set'\r\n };\r\n\r\n $scope.showStatus = function(user) {\r\n var selected = [];\r\n if(user.status) {\r\n selected = $filter('filter')($scope.statuses, {value: user.status});\r\n }\r\n return selected.length ? selected[0].text : 'Not set';\r\n };\r\n\r\n\r\n $scope.removeUser = function(index) {\r\n $scope.users.splice(index, 1);\r\n };\r\n\r\n $scope.addUser = function() {\r\n $scope.inserted = {\r\n id: $scope.users.length+1,\r\n name: '',\r\n status: null,\r\n group: null\r\n };\r\n $scope.users.push($scope.inserted);\r\n };\r\n\r\n editableOptions.theme = 'bs3';\r\n editableThemes['bs3'].submitTpl = '';\r\n editableThemes['bs3'].cancelTpl = '';\r\n\r\n\r\n }\r\n\r\n})();\r\n\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin')\r\n .directive('communityLookup', communityLookup);\r\n\r\n function communityLookup() {\r\n return {\r\n restrict: 'E',\r\n templateUrl: 'app/performance/directives/communitylookup.template.html',\r\n scope: {\r\n communities: '=',\r\n groupDetails: '=',\r\n maxCount: '@',\r\n },\r\n controller: communityLookupController,\r\n link: function (scope, element, attrs) {\r\n }\r\n }\r\n }\r\n\r\n function communityLookupController(qualityService, $scope) {\r\n \r\n $scope.endDate = new Date(Date.now());\r\n $scope.startDate = new Date(Date.now());\r\n $scope.startDate.setFullYear($scope.endDate.getFullYear()-2);\r\n \r\n qualityService.getStates().then(function (res) {\r\n $scope.states = res;\r\n\r\n for (var i = 0; i < $scope.communities.length; i++) {\r\n $scope.communities[i].states = $scope.states;\r\n $scope.communities[i].startDate = $scope.startDate;\r\n $scope.communities[i].endDate = $scope.endDate;\r\n $scope.communities[i].startDateOpen = false;\r\n $scope.communities[i].endDateOpen = false;\r\n addWatchOnLookup($scope.communities[i]);\r\n }\r\n });\r\n\r\n $scope.$watch(function () {\r\n return $scope.groupDetails;\r\n }, function (newVal, oldVal) {\r\n if (newVal && newVal != oldVal) {\r\n $scope.communities = [];\r\n qualityService.getStates().then(function (res) {\r\n $scope.states = res;\r\n\r\n for (var i = 0; i < newVal.length && i < 50; i++) {\r\n $scope.addNewFacilityLookup();\r\n var state = '';\r\n\r\n for(var j = 0; j < $scope.states.length; j++){\r\n if($scope.states[j].abbreviation === newVal[i].state){\r\n state = $scope.states[j];\r\n break;\r\n }\r\n }\r\n\r\n $scope.communities[i].selectedState = state;\r\n setSelections($scope.communities[i], newVal[i]);\r\n }\r\n\r\n for (var i = 0; i < $scope.communities.length; i++) {\r\n addWatchOnLookup($scope.communities[i]);\r\n }\r\n });\r\n }\r\n });\r\n\r\n function setSelections(community, selections){\r\n qualityService.getCities(community.selectedState.abbreviation).then(function (res){\r\n community.cities = res;\r\n community.selectedCity = '';\r\n\r\n for(var i = 0; i < res.length; i++){\r\n if(res[i].city === selections.city){\r\n community.selectedCity = res[i];\r\n break;\r\n }\r\n }\r\n\r\n qualityService.getFacilities(selections.city, selections.state).then(function (res) {\r\n community.facilities = res;\r\n community.selectedFacility = {\r\n \"facilityKey\": selections.facilityKey,\r\n \"name\": selections.name,\r\n \"facilityId\": selections.facilityId\r\n };\r\n community.facilitySelected = true;\r\n });\r\n });\r\n }\r\n\r\n function addWatchOnLookup(lookup) {\r\n $scope.$watch(function () {\r\n return lookup;\r\n }, function (newVal, oldVal) {\r\n if (newVal && newVal != oldVal) {\r\n if (!angular.equals(newVal.selectedState, oldVal.selectedState)) {\r\n newVal.selectedCity = null;\r\n newVal.selectedFacility = null; \r\n newVal.facilities = [];\r\n qualityService.getCities(newVal.selectedState.abbreviation).then(function (res) {\r\n newVal.cities = res;\r\n\r\n if (newVal.cities.length == 0) {\r\n newVal.showCityMessage = true;\r\n }\r\n else {\r\n newVal.showCityMessage = false;\r\n }\r\n });\r\n }\r\n\r\n if (newVal.selectedCity && !angular.equals(newVal.selectedCity, oldVal.selectedCity)) {\r\n newVal.selectedFacility = null;\r\n qualityService.getFacilities(newVal.selectedCity.city, newVal.selectedState.abbreviation).then(function (res) {\r\n newVal.facilities = res;\r\n\r\n if (newVal.facilities == 0) {\r\n newVal.showFacilityMessage = true;\r\n }\r\n else {\r\n newVal.showFacilityMessage = false;\r\n }\r\n });\r\n }\r\n if (newVal.selectedFacility && !angular.equals(newVal.selectedFacility, oldVal.selectedFacility)) {\r\n lookup.facilitySelected = true;\r\n }\r\n\r\n }\r\n }, true);\r\n }\r\n\r\n $scope.addNewFacilityLookup = function () {\r\n var index = $scope.communities.push({\r\n selectedState: null,\r\n selectedCity: null,\r\n selectedFacility: null\r\n });\r\n\r\n $scope.communities[index - 1].states = $scope.states;\r\n $scope.communities[index - 1].startDate = $scope.startDate;\r\n $scope.communities[index - 1].endDate = $scope.endDate;\r\n $scope.communities[index - 1].startDateOpen = false;\r\n $scope.communities[index - 1].endDateOpen = false;\r\n $scope.communities[index - 1].facilitySelected = false;\r\n addWatchOnLookup($scope.communities[index - 1]);\r\n };\r\n\r\n $scope.removeLookup = function (lookup) {\r\n \r\n var index = $scope.communities.indexOf(lookup);\r\n $scope.communities.splice(index, 1);\r\n if ($scope.communities.length == 0){\r\n $scope.addNewFacilityLookup();\r\n }\r\n \r\n };\r\n\r\n $scope.openStartDate = openStartDate;\r\n $scope.openEndDate = openEndDate;\r\n $scope.startDateOpen = false;\r\n $scope.endDateOpen = false;\r\n $scope.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n $scope.format = 'shortDate';\r\n $scope.options = {\r\n showWeeks: false\r\n };\r\n\r\n function openStartDate(lookup) {\r\n lookup.startDateOpen = true;\r\n }\r\n\r\n function openEndDate(lookup) {\r\n lookup.endDateOpen = true;\r\n }\r\n\r\n\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin').directive('communityHistoryDetail', communityHistoryDetail);\r\n\r\n function communityHistoryDetail() {\r\n return {\r\n restrict: 'E',\r\n templateUrl: 'app/quality/directives/communityhistory.template.html',\r\n scope: {\r\n eventDetail: '=',\r\n title: '@',\r\n detailType: '@',\r\n },\r\n link: function (scope, element, attrs) {\r\n }\r\n };\r\n }\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 15.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme.components')\r\n .config(toastrLibConfig);\r\n\r\n /** @ngInject */\r\n function toastrLibConfig(toastrConfig) {\r\n angular.extend(toastrConfig, {\r\n closeButton: true,\r\n closeHtml: '',\r\n timeOut: 5000,\r\n autoDismiss: false,\r\n containerId: 'toast-container',\r\n maxOpened: 0,\r\n newestOnTop: true,\r\n positionClass: 'toast-top-right',\r\n preventDuplicates: false,\r\n preventOpenDuplicates: false,\r\n target: 'body'\r\n });\r\n }\r\n})();\n/**\r\n * Change top \"Daily Downloads\", \"Active Users\" values with animation effect\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme')\r\n .directive('animatedChange', animatedChange);\r\n\r\n /** @ngInject */\r\n function animatedChange($timeout) {\r\n return {\r\n link: function (scope, element) {\r\n $timeout(function () {\r\n var newValue = element.attr('new-value');\r\n var oldvalue = parseInt(element.html());\r\n\r\n function changeValue(val) {\r\n $timeout(function () {\r\n element.html(val);\r\n }, 30);\r\n }\r\n\r\n if (newValue > oldvalue) {\r\n for (var i = oldvalue; i <= newValue; i++) {\r\n changeValue(i);\r\n }\r\n } else {\r\n for (var j = oldvalue; j >= newValue; j--) {\r\n changeValue(j);\r\n }\r\n }\r\n $timeout(function () {\r\n element.next().find('i').addClass('show-arr');\r\n }, 500);\r\n }, 3500);\r\n }\r\n };\r\n }\r\n\r\n})();\n/**\r\n * Auto expand textarea field\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme')\r\n .directive('autoExpand', autoExpand);\r\n\r\n /** @ngInject */\r\n function autoExpand() {\r\n return {\r\n restrict: 'A',\r\n link: function ($scope, elem) {\r\n elem.bind('keydown', function ($event) {\r\n var element = $event.target;\r\n $(element).height(0);\r\n var height = $(element)[0].scrollHeight;\r\n height = (height < 16) ? 16 : height;\r\n $(element).height(height);\r\n });\r\n\r\n // Expand the textarea as soon as it is added to the DOM\r\n setTimeout(function () {\r\n var element = elem;\r\n $(element).height(0);\r\n var height = $(element)[0].scrollHeight;\r\n height = (height < 16) ? 16 : height;\r\n $(element).height(height);\r\n }, 0)\r\n }\r\n };\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme')\r\n .directive('autoFocus', autoFocus);\r\n\r\n /** @ngInject */\r\n function autoFocus($timeout, $parse) {\r\n return {\r\n link: function (scope, element, attrs) {\r\n var model = $parse(attrs.autoFocus);\r\n scope.$watch(model, function (value) {\r\n if (value === true) {\r\n $timeout(function () {\r\n element[0].focus();\r\n element[0].select();\r\n });\r\n }\r\n });\r\n element.bind('blur', function () {\r\n scope.$apply(model.assign(scope, false));\r\n });\r\n }\r\n };\r\n }\r\n\r\n})();\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme')\r\n .directive('includeWithScope', includeWithScope);\r\n\r\n /** @ngInject */\r\n function includeWithScope() {\r\n return {\r\n restrict: 'AE',\r\n templateUrl: function(ele, attrs) {\r\n return attrs.includeWithScope;\r\n }\r\n };\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author a.demeshko\r\n * created on 22.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme')\r\n .directive('ionSlider', ionSlider);\r\n\r\n /** @ngInject */\r\n function ionSlider($timeout) {\r\n return {\r\n restrict: 'EA',\r\n template: '
',\r\n replace: true,\r\n scope: {\r\n min: '=',\r\n max: '=',\r\n type: '@',\r\n prefix: '@',\r\n maxPostfix: '@',\r\n prettify: '=',\r\n prettifySeparator: '@',\r\n grid: '=',\r\n gridMargin: '@',\r\n postfix: '@',\r\n step: '@',\r\n hideMinMax: '@',\r\n hideFromTo: '@',\r\n from: '=',\r\n to: '=',\r\n disable: '=',\r\n onChange: '=',\r\n onFinish: '=',\r\n values: '=',\r\n timeout: '@'\r\n },\r\n link: function ($scope, $element) {\r\n $element.ionRangeSlider({\r\n min: $scope.min,\r\n max: $scope.max,\r\n type: $scope.type,\r\n prefix: $scope.prefix,\r\n maxPostfix: $scope.maxPostfix,\r\n prettify_enabled: $scope.prettify,\r\n prettify_separator: $scope.prettifySeparator,\r\n grid: $scope.grid,\r\n gridMargin: $scope.gridMargin,\r\n postfix: $scope.postfix,\r\n step: $scope.step,\r\n hideMinMax: $scope.hideMinMax,\r\n hideFromTo: $scope.hideFromTo,\r\n from: $scope.from,\r\n to: $scope.to,\r\n disable: $scope.disable,\r\n onChange: $scope.onChange,\r\n onFinish: $scope.onFinish,\r\n values: $scope.values\r\n });\r\n\r\n $scope.$watch('min', function (value) {\r\n $timeout(function () {\r\n $element.data(\"ionRangeSlider\").update({min: value});\r\n });\r\n }, true);\r\n $scope.$watch('max', function (value) {\r\n $timeout(function () {\r\n $element.data(\"ionRangeSlider\").update({max: value});\r\n });\r\n });\r\n $scope.$watch('from', function (value) {\r\n $timeout(function () {\r\n $element.data(\"ionRangeSlider\").update({from: value});\r\n });\r\n });\r\n $scope.$watch('to', function (value) {\r\n $timeout(function () {\r\n $element.data(\"ionRangeSlider\").update({to: value});\r\n });\r\n });\r\n $scope.$watch('disable', function (value) {\r\n $timeout(function () {\r\n $element.data(\"ionRangeSlider\").update({disable: value});\r\n });\r\n });\r\n }\r\n };\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme')\r\n .directive('ngFileSelect', ngFileSelect);\r\n\r\n /** @ngInject */\r\n function ngFileSelect() {\r\n return {\r\n link: function ($scope, el) {\r\n el.bind('change', function (e) {\r\n $scope.file = (e.srcElement || e.target).files[0];\r\n $scope.getFile();\r\n })\r\n }\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme')\r\n .directive('scrollPosition', scrollPosition);\r\n\r\n /** @ngInject */\r\n function scrollPosition() {\r\n return {\r\n scope: {\r\n scrollPosition: '=',\r\n maxHeight: '='\r\n },\r\n link: function (scope) {\r\n $(window).on('scroll', function() {\r\n var scrollTop = $(window).scrollTop() > scope.maxHeight;\r\n if (scrollTop !== scope.prevScrollTop) {\r\n scope.$apply(function() {\r\n scope.scrollPosition = scrollTop;\r\n });\r\n }\r\n scope.prevScrollTop = scrollTop;\r\n });\r\n }\r\n };\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme')\r\n .directive('trackWidth', trackWidth);\r\n\r\n /** @ngInject */\r\n function trackWidth() {\r\n return {\r\n scope: {\r\n trackWidth: '=',\r\n minWidth: '=',\r\n },\r\n link: function (scope, element) {\r\n scope.trackWidth = $(element).width() < scope.minWidth;\r\n scope.prevTrackWidth = scope.trackWidth;\r\n\r\n $(window).resize(function() {\r\n var trackWidth = $(element).width() < scope.minWidth;\r\n if (trackWidth !== scope.prevTrackWidth) {\r\n scope.$apply(function() {\r\n scope.trackWidth = trackWidth;\r\n });\r\n }\r\n scope.prevTrackWidth = trackWidth;\r\n });\r\n }\r\n };\r\n }\r\n\r\n})();\n/**\r\n * Animated load block\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme')\r\n .directive('zoomIn', zoomIn);\r\n\r\n /** @ngInject */\r\n function zoomIn($timeout, $rootScope) {\r\n return {\r\n restrict: 'A',\r\n link: function ($scope, elem) {\r\n var delay = 1000;\r\n\r\n if ($rootScope.$pageFinishedLoading) {\r\n delay = 100;\r\n }\r\n\r\n $timeout(function () {\r\n elem.removeClass('full-invisible');\r\n elem.addClass('animated zoomIn');\r\n }, delay);\r\n }\r\n };\r\n }\r\n\r\n})();\n/**\r\n * @author n.poltoratsky\r\n * created on 27.06.2016\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme')\r\n .factory('baProgressModal', baProgressModal);\r\n\r\n /** @ngInject */\r\n function baProgressModal($uibModal) {\r\n var methods = {};\r\n var progress = 0;\r\n var max = 100;\r\n var opened = false;\r\n\r\n return {\r\n setProgress: function (value) {\r\n if (value > max) {\r\n throw Error('Progress can\\'t be greater than max');\r\n }\r\n progress = value;\r\n },\r\n getProgress: function () {\r\n return progress;\r\n },\r\n open: function() {\r\n if (!opened) {\r\n methods = $uibModal.open({\r\n animation: true,\r\n templateUrl: 'app/pages/ui/modals/progressModal/progressModal.html',\r\n size: 'sm',\r\n keyboard: false,\r\n backdrop: 'static'\r\n });\r\n opened = true;\r\n } else {\r\n throw Error('Progress modal opened now');\r\n }\r\n\r\n },\r\n close: function() {\r\n if (opened) {\r\n methods.close();\r\n opened = false;\r\n } else {\r\n throw Error('Progress modal is not active');\r\n }\r\n\r\n }\r\n };\r\n }\r\n\r\n})();\n/**\r\n * @author v.lugovsky\r\n * created on 03.05.2016\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme')\r\n .service('baUtil', baUtil);\r\n\r\n /** @ngInject */\r\n function baUtil() {\r\n\r\n this.isDescendant = function(parent, child) {\r\n var node = child.parentNode;\r\n while (node != null) {\r\n if (node == parent) {\r\n return true;\r\n }\r\n node = node.parentNode;\r\n }\r\n return false;\r\n };\r\n\r\n this.hexToRGB = function(hex, alpha) {\r\n var r = parseInt( hex.slice(1,3), 16 );\r\n var g = parseInt( hex.slice(3,5), 16 );\r\n var b = parseInt( hex.slice(5,7), 16 );\r\n return 'rgba(' + r + ', ' + g + ', ' + b + ', ' + alpha + ')';\r\n };\r\n\r\n this.hasAttr = function (elem, attrName) {\r\n var attr = $(elem).attr(attrName);\r\n return (typeof attr !== typeof undefined && attr !== false);\r\n }\r\n }\r\n})();\r\n\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme')\r\n .service('fileReader', fileReader);\r\n\r\n /** @ngInject */\r\n function fileReader($q) {\r\n var onLoad = function(reader, deferred, scope) {\r\n return function () {\r\n scope.$apply(function () {\r\n deferred.resolve(reader.result);\r\n });\r\n };\r\n };\r\n\r\n var onError = function (reader, deferred, scope) {\r\n return function () {\r\n scope.$apply(function () {\r\n deferred.reject(reader.result);\r\n });\r\n };\r\n };\r\n\r\n var onProgress = function(reader, scope) {\r\n return function (event) {\r\n scope.$broadcast('fileProgress',\r\n {\r\n total: event.total,\r\n loaded: event.loaded\r\n });\r\n };\r\n };\r\n\r\n var getReader = function(deferred, scope) {\r\n var reader = new FileReader();\r\n reader.onload = onLoad(reader, deferred, scope);\r\n reader.onerror = onError(reader, deferred, scope);\r\n reader.onprogress = onProgress(reader, scope);\r\n return reader;\r\n };\r\n\r\n var readAsDataURL = function (file, scope) {\r\n var deferred = $q.defer();\r\n\r\n var reader = getReader(deferred, scope);\r\n reader.readAsDataURL(file);\r\n\r\n return deferred.promise;\r\n };\r\n\r\n return {\r\n readAsDataUrl: readAsDataURL\r\n };\r\n }\r\n})();\n/**\r\n * @author a.demeshko\r\n * created on 3/1/16\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme')\r\n .service('preloader', preloader);\r\n\r\n /** @ngInject */\r\n function preloader($q) {\r\n return {\r\n loadImg: function (src) {\r\n var d = $q.defer();\r\n var img = new Image();\r\n img.src = src;\r\n img.onload = function(){\r\n d.resolve();\r\n };\r\n return d.promise;\r\n },\r\n loadAmCharts : function(){\r\n var d = $q.defer();\r\n AmCharts.ready(function(){\r\n d.resolve();\r\n });\r\n return d.promise;\r\n }\r\n }\r\n }\r\n\r\n})();\n/**\r\n * @author a.demeshko\r\n * created on 12/21/15\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme')\r\n .service('stopableInterval', stopableInterval);\r\n\r\n /** @ngInject */\r\n function stopableInterval($window) {\r\n return {\r\n start: function (interval, calback, time) {\r\n function startInterval() {\r\n return interval(calback, time);\r\n }\r\n\r\n var i = startInterval();\r\n\r\n angular.element($window).bind('focus', function () {\r\n if (i) interval.cancel(i);\r\n i = startInterval();\r\n });\r\n\r\n angular.element($window).bind('blur', function () {\r\n if (i) interval.cancel(i);\r\n });\r\n }\r\n }\r\n }\r\n\r\n})();\n/**\r\n * @author a.demeshko\r\n * created on 12/16/15\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.charts.chartist')\r\n .controller('chartistCtrl', chartistCtrl);\r\n\r\n /** @ngInject */\r\n function chartistCtrl($scope, $timeout, baConfig) {\r\n\r\n $scope.simpleLineOptions = {\r\n color: baConfig.colors.defaultText,\r\n fullWidth: true,\r\n height: \"300px\",\r\n chartPadding: {\r\n right: 40\r\n }\r\n };\r\n\r\n $scope.simpleLineData = {\r\n labels: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri'],\r\n series: [\r\n [20, 20, 12, 45, 50],\r\n [10, 45, 30, 14, 12],\r\n [34, 12, 12, 40, 50],\r\n [10, 43, 25, 22, 16],\r\n [3, 6, 30, 33, 43]\r\n ]\r\n };\r\n\r\n $scope.areaLineData = {\r\n labels: [1, 2, 3, 4, 5, 6, 7, 8],\r\n series: [\r\n [5, 9, 7, 8, 5, 3, 5, 4]\r\n ]\r\n };\r\n\r\n $scope.areaLineOptions = {\r\n fullWidth: true,\r\n height: \"300px\",\r\n low: 0,\r\n showArea: true\r\n };\r\n\r\n $scope.biLineData = {\r\n labels: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],\r\n series: [\r\n [1, 2, 3, 1, -2, 0, 1],\r\n [-2, -1, -2, -1, -2.5, -1, -2],\r\n [0, 0, 0, 1, 2, 2.5, 2],\r\n [2.5, 2, 1, 0.5, 1, 0.5, -1]\r\n ]\r\n };\r\n\r\n $scope.biLineOptions = {\r\n height: \"300px\",\r\n high: 3,\r\n low: -3,\r\n showArea: true,\r\n showLine: false,\r\n showPoint: false,\r\n fullWidth: true,\r\n axisX: {\r\n showGrid: false\r\n }\r\n };\r\n\r\n $scope.simpleBarData = {\r\n labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\r\n series: [\r\n [15, 24, 43, 27, 5, 10, 23, 44, 68, 50, 26, 8],\r\n [13, 22, 49, 22, 4, 6, 24, 46, 57, 48, 22, 4]\r\n ]\r\n };\r\n\r\n $scope.simpleBarOptions = {\r\n fullWidth: true,\r\n height: \"300px\"\r\n };\r\n\r\n $scope.multiBarData = {\r\n labels: ['Quarter 1', 'Quarter 2', 'Quarter 3', 'Quarter 4'],\r\n series: [\r\n [5, 4, 3, 7],\r\n [3, 2, 9, 5],\r\n [1, 5, 8, 4],\r\n [2, 3, 4, 6],\r\n [4, 1, 2, 1]\r\n ]\r\n };\r\n\r\n $scope.multiBarOptions = {\r\n fullWidth: true,\r\n height: \"300px\",\r\n stackBars: true,\r\n axisX: {\r\n labelInterpolationFnc: function (value) {\r\n return value.split(/\\s+/).map(function (word) {\r\n return word[0];\r\n }).join('');\r\n }\r\n },\r\n axisY: {\r\n offset: 20\r\n }\r\n };\r\n\r\n $scope.multiBarResponsive = [\r\n ['screen and (min-width: 400px)', {\r\n reverseData: true,\r\n horizontalBars: true,\r\n axisX: {\r\n labelInterpolationFnc: Chartist.noop\r\n },\r\n axisY: {\r\n offset: 60\r\n }\r\n }],\r\n ['screen and (min-width: 700px)', {\r\n stackBars: false,\r\n reverseData: false,\r\n horizontalBars: false,\r\n seriesBarDistance: 15\r\n }]\r\n ];\r\n\r\n $scope.stackedBarData = {\r\n labels: ['Quarter 1', 'Quarter 2', 'Quarter 3', 'Quarter 4'],\r\n series: [\r\n [800000, 1200000, 1400000, 1300000],\r\n [200000, 400000, 500000, 300000],\r\n [100000, 200000, 400000, 600000]\r\n ]\r\n };\r\n\r\n $scope.stackedBarOptions = {\r\n fullWidth: true,\r\n height: \"300px\",\r\n stackBars: true,\r\n axisY: {\r\n labelInterpolationFnc: function (value) {\r\n return (value / 1000) + 'k';\r\n }\r\n }\r\n };\r\n\r\n $scope.simplePieData = {\r\n series: [5, 3, 4]\r\n };\r\n\r\n $scope.simplePieOptions = {\r\n fullWidth: true,\r\n height: \"300px\",\r\n weight: \"300px\",\r\n labelInterpolationFnc: function (value) {\r\n return Math.round(value / 12 * 100) + '%';\r\n }\r\n };\r\n\r\n $scope.labelsPieData = {\r\n labels: ['Bananas', 'Apples', 'Grapes'],\r\n series: [20, 15, 40]\r\n };\r\n\r\n $scope.labelsPieOptions = {\r\n fullWidth: true,\r\n height: \"300px\",\r\n weight: \"300px\",\r\n labelDirection: 'explode',\r\n labelInterpolationFnc: function (value) {\r\n return value[0];\r\n }\r\n };\r\n\r\n $scope.simpleDonutData = {\r\n labels: ['Bananas', 'Apples', 'Grapes'],\r\n series: [20, 15, 40]\r\n };\r\n\r\n $scope.simpleDonutOptions = {\r\n fullWidth: true,\r\n donut: true,\r\n height: \"300px\",\r\n weight: \"300px\",\r\n labelDirection: 'explode',\r\n labelInterpolationFnc: function (value) {\r\n return value[0];\r\n }\r\n };\r\n\r\n $scope.donutResponsive = getResponsive(5, 40);\r\n\r\n $scope.pieResponsive = getResponsive(20, 80);\r\n\r\n function getResponsive(padding, offset){\r\n return [\r\n ['screen and (min-width: 1550px)', {\r\n chartPadding: padding,\r\n labelOffset: offset,\r\n labelDirection: 'explode',\r\n labelInterpolationFnc: function (value) {\r\n return value;\r\n }\r\n }],\r\n ['screen and (max-width: 1200px)', {\r\n chartPadding: padding,\r\n labelOffset: offset,\r\n labelDirection: 'explode',\r\n labelInterpolationFnc: function (value) {\r\n return value;\r\n }\r\n }],\r\n ['screen and (max-width: 600px)', {\r\n chartPadding: 0,\r\n labelOffset: 0,\r\n labelInterpolationFnc: function (value) {\r\n return value[0];\r\n }\r\n }]\r\n ];\r\n }\r\n\r\n $timeout(function(){\r\n new Chartist.Line('#line-chart', $scope.simpleLineData, $scope.simpleLineOptions);\r\n new Chartist.Line('#area-chart', $scope.areaLineData, $scope.areaLineOptions);\r\n new Chartist.Line('#bi-chart', $scope.biLineData, $scope.biLineOptions);\r\n\r\n new Chartist.Bar('#simple-bar', $scope.simpleBarData, $scope.simpleBarOptions);\r\n new Chartist.Bar('#multi-bar', $scope.multiBarData, $scope.multiBarOptions, $scope.multiBarResponsive);\r\n new Chartist.Bar('#stacked-bar', $scope.stackedBarData, $scope.stackedBarOptions);\r\n\r\n new Chartist.Pie('#simple-pie', $scope.simplePieData, $scope.simplePieOptions, $scope.pieResponsive);\r\n new Chartist.Pie('#label-pie', $scope.labelsPieData, $scope.labelsPieOptions);\r\n new Chartist.Pie('#donut', $scope.simpleDonutData, $scope.simpleDonutOptions, $scope.donutResponsive);\r\n });\r\n }\r\n})();\n/**\r\n * @author a.demeshko\r\n * created on 12/16/15\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.charts.chartJs')\r\n .controller('chartJs1DCtrl', chartJs1DCtrl);\r\n\r\n /** @ngInject */\r\n function chartJs1DCtrl($scope, baConfig) {\r\n var layoutColors = baConfig.colors;\r\n\r\n $scope.labels =[\"Sleeping\", \"Designing\", \"Coding\", \"Cycling\"];\r\n $scope.data = [20, 40, 5, 35];\r\n $scope.options = {\r\n elements: {\r\n arc: {\r\n borderWidth: 0\r\n }\r\n },\r\n legend: {\r\n display: true,\r\n position: 'bottom',\r\n labels: {\r\n fontColor: layoutColors.defaultText\r\n }\r\n }\r\n };\r\n\r\n $scope.changeData = function () {\r\n $scope.data = shuffle($scope.data);\r\n };\r\n\r\n function shuffle(o){\r\n for(var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x){}\r\n return o;\r\n }\r\n }\r\n\r\n})();\n/**\r\n * @author a.demeshko\r\n * created on 12/16/15\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.charts.chartJs')\r\n .controller('chartJs2DCtrl', chartJs2DCtrl);\r\n\r\n /** @ngInject */\r\n function chartJs2DCtrl($scope) {\r\n $scope.labels =[\"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\"];\r\n $scope.data = [\r\n [65, 59, 90, 81, 56],\r\n [28, 48, 40, 19, 88]\r\n ];\r\n $scope.series = ['Product A', 'Product B'];\r\n\r\n\r\n $scope.changeData = function () {\r\n $scope.data[0] = shuffle($scope.data[0]);\r\n $scope.data[1] = shuffle($scope.data[1]);\r\n };\r\n\r\n function shuffle(o){\r\n for(var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x){}\r\n return o;\r\n }\r\n }\r\n\r\n})();\n/**\r\n * @author a.demeshko\r\n * created on 12/16/15\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.charts.chartJs')\r\n .controller('chartJsWaveCtrl', chartJsWaveCtrl);\r\n\r\n /** @ngInject */\r\n function chartJsWaveCtrl($scope, $interval, stopableInterval) {\r\n $scope.labels =[\"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\r\n $scope.data = [1, 9, 3, 4, 5, 6, 7, 8, 2].map(function(e){\r\n return Math.sin(e) * 25 +25;\r\n });\r\n\r\n stopableInterval.start($interval, function(){\r\n var tempArray = [];\r\n var lastElement = $scope.data[$scope.data.length-1];\r\n for(var i = $scope.data.length-1; i > 0; i--){\r\n tempArray[i] = $scope.data[i-1];\r\n }\r\n tempArray[0] = lastElement;\r\n $scope.data = tempArray;\r\n }, 400)\r\n }\r\n\r\n})();\n/**\r\n * @author a.demeshko\r\n * created on 12/16/15\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.charts.morris')\r\n .controller('morrisCtrl', morrisCtrl);\r\n\r\n /** @ngInject */\r\n function morrisCtrl($scope, $window, baConfig) {\r\n var layoutColors = baConfig.colors;\r\n $scope.colors = [layoutColors.primary, layoutColors.warning, layoutColors.danger, layoutColors.info, layoutColors.success, layoutColors.primaryDark];\r\n $scope.lineData = [\r\n {y: \"2006\", a: 100, b: 90},\r\n {y: \"2007\", a: 75, b: 65},\r\n {y: \"2008\", a: 50, b: 40},\r\n {y: \"2009\", a: 75, b: 65},\r\n {y: \"2010\", a: 50, b: 40},\r\n {y: \"2011\", a: 75, b: 65},\r\n {y: \"2012\", a: 100, b: 90}\r\n ];\r\n $scope.areaData = [\r\n {y: \"2006\", a: 100, b: 90},\r\n {y: \"2007\", a: 75, b: 65},\r\n {y: \"2008\", a: 50, b: 40},\r\n {y: \"2009\", a: 75, b: 65},\r\n {y: \"2010\", a: 50, b: 40},\r\n {y: \"2011\", a: 75, b: 65},\r\n {y: \"2012\", a: 100, b: 90}\r\n ];\r\n $scope.barData = [\r\n {y: \"2006\", a: 100, b: 90},\r\n {y: \"2007\", a: 75, b: 65},\r\n {y: \"2008\", a: 50, b: 40},\r\n {y: \"2009\", a: 75, b: 65},\r\n {y: \"2010\", a: 50, b: 40},\r\n {y: \"2011\", a: 75, b: 65},\r\n {y: \"2012\", a: 100, b: 90}\r\n ];\r\n $scope.donutData = [\r\n {label: \"Download Sales\", value: 12},\r\n {label: \"In-Store Sales\", value: 30},\r\n {label: \"Mail-Order Sales\", value: 20}\r\n ];\r\n\r\n angular.element($window).bind('resize', function () {\r\n //$window.Morris.Grid.prototype.redraw();\r\n });\r\n }\r\n\r\n})();\n/**\r\n * @author a.demeshko\r\n * created on 12/29/15\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.components.mail')\r\n .service('mailMessages', mailMessages);\r\n\r\n /** @ngInject */\r\n function mailMessages($sce) {\r\n var messages = [\r\n {\r\n \"id\": \"4563faass\",\r\n \"name\": \"Nasta Linnie\",\r\n \"subject\": \"Great text\",\r\n \"date\": \"2015-08-28T07:57:09\",\r\n \"body\": $sce.trustAsHtml(\"

Hey John,

Check out this cool text.

\"),\r\n \"pic\": \"img/Nasta.png\",\r\n \"email\": \"petraramsey@mail.com\",\r\n \"attachment\": \"poem.txt\",\r\n \"position\": \"Great Employee\",\r\n \"tag\": \"friend\",\r\n \"labels\": ['inbox']\r\n },\r\n {\r\n \"id\": \"4563fdfvd\",\r\n \"name\": \"Nasta Linnie\",\r\n \"subject\": \"Lores ipsum\",\r\n \"date\": \"2015-11-19T03:30:45\",\r\n \"important\": false,\r\n \"body\": $sce.trustAsHtml(\"

Hey John,


Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris ex mauris, ultrices vel lectus quis, scelerisque hendrerit ipsum. Suspendisse ullamcorper turpis neque, eget dapibus magna placerat ac. Suspendisse rhoncus ligula ac mi tempus varius ut sed lacus. Sed et commodo nulla, et placerat leo. Nam rhoncus vulputate sem non pharetra. Praesent fringilla massa in laoreet convallis. Aliquam lobortis dui a congue facilisis. Aenean dapibus semper semper. Quisque aliquam, nibh dapibus interdum condimentum, ex velit tempor tortor, at vestibulum magna leo quis leo. Morbi pulvinar varius erat ac rutrum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; In hac habitasse platea dictumst.

\" +\r\n \"

Cras rhoncus quam ipsum, vel dignissim nisl egestas sed. Aliquam erat volutpat. Integer eu nisl elit. Donec malesuada diam vitae tellus luctus tincidunt. Donec tempus blandit neque, rutrum egestas ipsum sagittis tempor. Curabitur volutpat ligula enim, nec vehicula purus molestie at. Sed a facilisis enim, nec molestie magna. Donec in augue non est viverra dapibus vel tempus risus. Nam porttitor purus sit amet hendrerit ullamcorper. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

\"),\r\n \"pic\": \"img/Nasta.png\",\r\n \"email\": \"petraramsey@mail.com\",\r\n \"position\": \"Great Employee\",\r\n \"tag\": \"study\",\r\n \"labels\": ['inbox']\r\n },\r\n {\r\n \"id\": \"4563zxcss\",\r\n \"name\": \"Nasta Linnie\",\r\n \"subject\": \"Lores ipsum\",\r\n \"date\": \"2015-10-19T03:30:45\",\r\n \"important\": false,\r\n \"body\": $sce.trustAsHtml(\"

Hey Nasta,

Lorem ipsum dolor sit amet, consectetur adipiscing elit

\"),\r\n \"pic\": \"img/Nasta.png\",\r\n \"email\": \"petraramsey@mail.com\",\r\n \"position\": \"Great Employee\",\r\n \"tag\": \"work\",\r\n \"labels\": ['sent', 'important']\r\n },\r\n {\r\n \"id\": \"8955sddf\",\r\n \"name\": \"Nick Cat\",\r\n \"subject\": \"New Design\",\r\n \"date\": \"2015-05-05T12:59:45\",\r\n \"body\": $sce.trustAsHtml(\"

Hey John, Consectetur adipiscing elit


\" +\r\n \"

Cras rhoncus quam ipsum, vel dignissim nisl egestas sed. Aliquam erat volutpat. Integer eu nisl elit. Donec malesuada diam vitae tellus luctus tincidunt. Donec tempus blandit neque, rutrum egestas ipsum sagittis tempor. Curabitur volutpat ligula enim, nec vehicula purus molestie at. Sed a facilisis enim, nec molestie magna. Donec in augue non est viverra dapibus vel tempus risus. Nam porttitor purus sit amet hendrerit ullamcorper. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

\"),\r\n \"pic\": \"img/Nick.png\",\r\n \"email\": \"barlowshort@mail.com\",\r\n \"position\": \"Graphical designer\",\r\n \"attachment\": \"design.psd\",\r\n \"tag\": \"work\",\r\n \"labels\": ['inbox']\r\n },\r\n {\r\n \"id\": \"8955sdfcc\",\r\n \"name\": \"Nick Cat\",\r\n \"subject\": \"Gift card\",\r\n \"date\": \"2015-07-18T10:19:01\",\r\n \"body\": $sce.trustAsHtml(\"

Hey John,


Consectetur adipiscing elit, Lorem ipsum dolor sit amet

\"),\r\n \"pic\": \"img/Nick.png\",\r\n \"email\": \"barlowshort@mail.com\",\r\n \"position\": \"Graphical designer\",\r\n \"tag\": \"study\",\r\n \"labels\": ['inbox']\r\n },\r\n {\r\n \"id\": \"8955asewf\",\r\n \"name\": \"Nick Cat\",\r\n \"subject\": \"Some news\",\r\n \"date\": \"2015-09-23T03:04:10\",\r\n \"body\": $sce.trustAsHtml(\"

Hey John,


Integer eu nisl elit. Donec malesuada diam vitae tellus luctus tincidunt. Donec tempus blandit neque, rutrum egestas ipsum sagittis tempor. Curabitur volutpat ligula enim, nec vehicula purus molestie at. Sed a facilisis enim, nec molestie magna. Donec in augue non est viverra dapibus vel tempus risus. Nam porttitor purus sit amet hendrerit ullamcorper. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

\"),\r\n \"pic\": \"img/Nick.png\",\r\n \"email\": \"barlowshort@mail.com\",\r\n \"position\": \"Graphical designer\",\r\n \"tag\": \"work\",\r\n \"labels\": ['inbox', 'important']\r\n },\r\n {\r\n \"id\": \"2334uudsa\",\r\n \"name\": \"Kostya Danovsky\",\r\n \"subject\": \"Street Art\",\r\n \"date\": \"2015-11-22T10:05:09\",\r\n \"body\": $sce.trustAsHtml(\"

Hey John,

Aliquam eu facilisis eros, quis varius est.

\" +\r\n \"

Consectetur adipiscing elit. Aliquam sodales sem in nibh pellentesque, ac dignissim mi dapibus.

\" +\r\n \"

Lorem ipsum dolor sit amet! Nullam imperdiet justo a ipsum laoreet euismod.

\" +\r\n \"

Cras tincidunt fermentum lectus, quis scelerisque lorem volutpat sed.\" +\r\n \"Sed quis orci sed nisl sagittis viverra id at mauris. Nam venenatis mi nibh. Sed fringilla mattis vehic

\"),\r\n \"pic\": \"img/Kostya.png\",\r\n \"email\": \"schwart@mail.com\",\r\n \"position\": \"Technical Chef\",\r\n \"attachment\": \"file.doc\",\r\n \"tag\": \"family\",\r\n \"labels\": ['inbox', 'important']\r\n },\r\n {\r\n \"id\": \"2334aefvv\",\r\n \"name\": \"Kostya Danovsky\",\r\n \"subject\": \"New product\",\r\n \"date\": \"2015-06-22T06:26:10\",\r\n \"body\": $sce.trustAsHtml(\"

Hello John,

\u0003Lorem ipsum dolor sit amet!

\" +\r\n \"

Consectetur adipiscing elit. Aliquam sodales sem in nibh pellentesque, ac dignissim mi dapibus.

\" +\r\n \"

Aliquam eu facilisis eros, quis varius est. Nullam imperdiet justo a ipsum laoreet euismod.

\" +\r\n \"

Nulla facilisi. Nulla congue, arcu eget blandit lacinia, leo ante ullamcorper lectus, vel pulvinar justo ipsum vitae justo.\" +\r\n \"Cras tincidunt fermentum lectus, quis scelerisque lorem volutpat sed. Sed quis orci sed nisl sagittis viverra id at mauris. Nam venenatis mi nibh. Sed fringilla mattis vehic

\"),\r\n \"pic\": \"img/Kostya.png\",\r\n \"email\": \"schwart@mail.com\",\r\n \"position\": \"Technical Chef\",\r\n \"tag\": \"family\",\r\n \"labels\": ['inbox', 'important']\r\n },\r\n {\r\n \"id\": \"2334cvdss\",\r\n \"name\": \"Kostya Danovsky\",\r\n \"subject\": \"Old product\",\r\n \"date\": \"2015-06-22T06:26:10\",\r\n \"body\": $sce.trustAsHtml(\"

Hello John,

\" +\r\n \"

Consectetur adipiscing elit. Aliquam sodales sem in nibh pellentesque, ac dignissim mi dapibus.

\" +\r\n \"
\"+\r\n \"

Cras tincidunt fermentum lectus, quis scelerisque lorem volutpat sed. Sed quis orci sed nisl sagittis viverra id at mauris. Nam venenatis mi nibh. Sed fringilla mattis vehic

\"),\r\n \"pic\": \"img/Kostya.png\",\r\n \"email\": \"schwart@mail.com\",\r\n \"position\": \"Technical Chef\",\r\n \"tag\": \"study\",\r\n \"labels\": ['trash']\r\n },\r\n {\r\n \"id\": \"8223xzxfn\",\r\n \"name\": \"Andrey Hrabouski\",\r\n \"subject\": \"Skype moji\",\r\n \"date\": \"2015-07-16T06:47:53\",\r\n \"body\": $sce.trustAsHtml(\"

Hello John,

Aliquam sodales sem in nibh pellentesque

\" +\r\n \"

Lorem ipsum dolor I find moji in skype sit amet!.

\"),\r\n \"pic\": \"img/Andrey.png\",\r\n \"email\": \"lakeishaphillips@mail.com\",\r\n \"position\": \"Mobile Developer\",\r\n \"tag\": 'family',\r\n \"labels\": ['trash']\r\n },\r\n {\r\n \"id\": \"8223sdffn\",\r\n \"name\": \"Andrey Hrabouski\",\r\n \"subject\": \"My App\",\r\n \"date\": \"2015-06-20T07:05:02\",\r\n \"body\": $sce.trustAsHtml(\"

Hey Vlad.

\u0003Lorem ipsum dolor sit amet!

\" +\r\n \"

Consectetur My Falasson App elit. Aliquam sodales sem in nibh pellentesque, ac dignissim mi dapibus.

\"),\r\n \"pic\": \"img/Andrey.png\",\r\n \"email\": \"lakeishaphillips@mail.com\",\r\n \"position\": \"Mobile Developer\",\r\n \"tag\": 'family',\r\n \"labels\": ['spam']\r\n },\r\n {\r\n \"id\": \"9391xdsff\",\r\n \"name\": \"Vlad Lugovsky\",\r\n \"subject\": \"Cool\",\r\n \"date\": \"2015-03-31T11:52:58\",\r\n \"body\": $sce.trustAsHtml(\"

Hey Vlad.

Aliquam sodales sem in nibh pellentesque

\" +\r\n \"

Cras tincidunt fermentum lectus, quis scelerisque lorem volutpat sed.

\"),\r\n \"pic\": \"img/Vlad.png\",\r\n \"email\": \"carlsongoodman@mail.com\",\r\n \"position\": \"Fullstack man\",\r\n \"tag\": \"study\",\r\n \"labels\": ['draft']\r\n },\r\n {\r\n \"id\": \"8223xsdaa\",\r\n \"name\": \"Andrey Hrabouski\",\r\n \"subject\": \"Car rent\",\r\n \"date\": \"2015-02-25T10:58:58\",\r\n \"body\": $sce.trustAsHtml(\"

Hey Andrey.

\" +\r\n \"

Cras tincidunt fermentum lectus, quis scelerisque lorem volutpat sed. Sed quis orci sed nisl sagittis viverra id at mauris. Nam venenatis mi nibh. Sed fringilla mattis vehic

\"),\r\n \"pic\": \"img/Andrey.png\",\r\n \"email\": \"lakeishaphillips@mail.com\",\r\n \"position\": \"Mobile Developer\",\r\n \"tag\": \"family\",\r\n \"labels\": ['draft']\r\n },\r\n {\r\n \"id\": \"9391xdsff\",\r\n \"name\": \"Vlad Lugovsky\",\r\n \"subject\": \"What next\",\r\n \"date\": \"2015-03-31T11:52:58\",\r\n \"body\": $sce.trustAsHtml(\"

Hey Vlad.

\u0003Lorem ipsum dolor sit amet!

\" +\r\n \"

Esse esse labore tempor ullamco ullamco. Id veniam laborum c.

\"),\r\n \"pic\": \"img/Vlad.png\",\r\n \"email\": \"carlsongoodman@mail.com\",\r\n \"position\": \"Fullstack man\",\r\n \"tag\": \"study\",\r\n \"labels\": ['sent']\r\n }\r\n ].sort(function (a, b) {\r\n if (a.date > b.date) return 1;\r\n if (a.date < b.date) return -1;\r\n }).reverse();\r\n var tabs = [{\r\n label: 'inbox',\r\n name: 'Inbox',\r\n newMails: 7\r\n }, {\r\n label: 'sent',\r\n name: 'Sent Mail'\r\n }, {\r\n label: 'important',\r\n name: 'Important'\r\n }, {\r\n label: 'draft',\r\n name: 'Draft',\r\n newMails: 2\r\n }, {\r\n label: 'spam',\r\n name: 'Spam'\r\n }, {\r\n label: 'trash',\r\n name: 'Trash'\r\n }];\r\n\r\n return{\r\n getTabs : function(){\r\n return tabs\r\n },\r\n getMessagesByLabel : function(label){\r\n return messages.filter(function(m){\r\n return m.labels.indexOf(label) != -1;\r\n });\r\n },\r\n getMessageById : function(id){\r\n return messages.filter(function(m){\r\n return m.id == id;\r\n })[0];\r\n }\r\n }\r\n\r\n }\r\n\r\n})();\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.components.mail')\r\n .controller('MailTabCtrl', MailTabCtrl);\r\n\r\n /** @ngInject */\r\n function MailTabCtrl(composeModal, mailMessages) {\r\n\r\n var vm = this;\r\n vm.navigationCollapsed = true;\r\n vm.showCompose = function(subject, to , text){\r\n composeModal.open({\r\n subject : subject,\r\n to: to,\r\n text: text\r\n })\r\n };\r\n\r\n vm.tabs = mailMessages.getTabs();\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.components.timeline')\r\n .controller('TimelineCtrl', TimelineCtrl);\r\n\r\n /** @ngInject */\r\n function TimelineCtrl() {\r\n var timelineBlocks = $('.cd-timeline-block'),\r\n offset = 0.8;\r\n\r\n //hide timeline blocks which are outside the viewport\r\n hideBlocks(timelineBlocks, offset);\r\n\r\n //on scolling, show/animate timeline blocks when enter the viewport\r\n $(window).on('scroll', function () {\r\n if (!window.requestAnimationFrame) {\r\n setTimeout(function () {\r\n showBlocks(timelineBlocks, offset);\r\n }, 100);\r\n } else {\r\n window.requestAnimationFrame(function () {\r\n showBlocks(timelineBlocks, offset);\r\n });\r\n }\r\n });\r\n\r\n function hideBlocks(blocks, offset) {\r\n blocks.each(function () {\r\n ( $(this).offset().top > $(window).scrollTop() + $(window).height() * offset ) && $(this).find('.cd-timeline-img, .cd-timeline-content').addClass('is-hidden');\r\n });\r\n }\r\n\r\n function showBlocks(blocks, offset) {\r\n blocks.each(function () {\r\n ( $(this).offset().top <= $(window).scrollTop() + $(window).height() * offset && $(this).find('.cd-timeline-img').hasClass('is-hidden') ) && $(this).find('.cd-timeline-img, .cd-timeline-content').removeClass('is-hidden').addClass('bounce-in');\r\n });\r\n }\r\n }\r\n})();\n/**\r\n * @author a.demeshko\r\n * created on 12/21/15\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.components.tree')\r\n .controller('treeCtrl', treeCtrl);\r\n\r\n /** @ngInject */\r\n function treeCtrl($scope, $timeout) {\r\n\r\n $scope.ignoreChanges = false;\r\n var newId = 0;\r\n $scope.ignoreChanges = false;\r\n $scope.newNode = {};\r\n\r\n $scope.basicConfig = {\r\n core: {\r\n multiple: false,\r\n check_callback: true,\r\n worker: true\r\n },\r\n 'types': {\r\n 'folder': {\r\n 'icon': 'ion-ios-folder'\r\n },\r\n 'default': {\r\n 'icon': 'ion-document-text'\r\n }\r\n },\r\n 'plugins': ['types'],\r\n 'version': 1\r\n };\r\n\r\n $scope.dragConfig = {\r\n 'core': {\r\n 'check_callback': true,\r\n 'themes': {\r\n 'responsive': false\r\n }\r\n },\r\n 'types': {\r\n 'folder': {\r\n 'icon': 'ion-ios-folder'\r\n },\r\n 'default': {\r\n 'icon': 'ion-document-text'\r\n }\r\n },\r\n \"plugins\": [\"dnd\", 'types']\r\n };\r\n\r\n $scope.addNewNode = function () {\r\n $scope.ignoreChanges = true;\r\n var selected = this.basicTree.jstree(true).get_selected()[0];\r\n if (selected)\r\n $scope.treeData.push({\r\n id: (newId++).toString(),\r\n parent: selected,\r\n text: \"New node \" + newId,\r\n state: {opened: true}\r\n });\r\n $scope.basicConfig.version++;\r\n };\r\n\r\n\r\n $scope.refresh = function () {\r\n $scope.ignoreChanges = true;\r\n newId = 0;\r\n $scope.treeData = getDefaultData();\r\n $scope.basicConfig.version++;\r\n };\r\n\r\n $scope.expand = function () {\r\n $scope.ignoreChanges = true;\r\n $scope.treeData.forEach(function (n) {\r\n n.state.opened = true;\r\n });\r\n $scope.basicConfig.version++;\r\n };\r\n\r\n $scope.collapse = function () {\r\n $scope.ignoreChanges = true;\r\n $scope.treeData.forEach(function (n) {\r\n n.state.opened = false;\r\n });\r\n $scope.basicConfig.version++;\r\n };\r\n\r\n $scope.readyCB = function() {\r\n $timeout(function() {\r\n $scope.ignoreChanges = false;\r\n });\r\n };\r\n\r\n\r\n $scope.applyModelChanges = function() {\r\n return !$scope.ignoreChanges;\r\n };\r\n\r\n $scope.treeData = getDefaultData();\r\n $scope.dragData = [\r\n {\r\n \"id\": \"nd1\",\r\n \"parent\": \"#\",\r\n \"type\": \"folder\",\r\n \"text\": \"Node 1\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"nd2\",\r\n \"parent\": \"#\",\r\n \"type\": \"folder\",\r\n \"text\": \"Node 2\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"nd3\",\r\n \"parent\": \"#\",\r\n \"type\": \"folder\",\r\n \"text\": \"Node 3\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"nd4\",\r\n \"parent\": \"#\",\r\n \"type\": \"folder\",\r\n \"text\": \"Node 4\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"nd5\",\r\n \"parent\": \"nd1\",\r\n \"text\": \"Node 1.1\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"nd6\",\r\n \"parent\": \"nd1\",\r\n \"text\": \"Node 1.2\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"nd7\",\r\n \"parent\": \"nd1\",\r\n \"text\": \"Node 1.3\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"nd8\",\r\n \"parent\": \"nd2\",\r\n \"text\": \"Node 2.1\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"nd9\",\r\n \"parent\": \"nd2\",\r\n \"text\": \"Node 2.2\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"nd10\",\r\n \"parent\": \"nd2\",\r\n \"text\": \"Node 2.3\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"nd11\",\r\n \"parent\": \"nd3\",\r\n \"text\": \"Node 3.1\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"nd12\",\r\n \"parent\": \"nd3\",\r\n \"text\": \"Node 3.2\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"nd13\",\r\n \"parent\": \"nd3\",\r\n \"text\": \"Node 3.3\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"nd14\",\r\n \"parent\": \"nd4\",\r\n \"text\": \"Node 4.1\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"nd15\",\r\n \"parent\": \"nd4\",\r\n \"text\": \"Node 4.2\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"nd16\",\r\n \"parent\": \"nd4\",\r\n \"text\": \"Node 4.3\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n }\r\n ];\r\n\r\n function getDefaultData() {\r\n return [\r\n {\r\n \"id\": \"n1\",\r\n \"parent\": \"#\",\r\n \"type\": \"folder\",\r\n \"text\": \"Node 1\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"n2\",\r\n \"parent\": \"#\",\r\n \"type\": \"folder\",\r\n \"text\": \"Node 2\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"n3\",\r\n \"parent\": \"#\",\r\n \"type\": \"folder\",\r\n \"text\": \"Node 3\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"n5\",\r\n \"parent\": \"n1\",\r\n \"text\": \"Node 1.1\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"n6\",\r\n \"parent\": \"n1\",\r\n \"text\": \"Node 1.2\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"n7\",\r\n \"parent\": \"n1\",\r\n \"text\": \"Node 1.3\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"n8\",\r\n \"parent\": \"n1\",\r\n \"text\": \"Node 1.4\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"n9\",\r\n \"parent\": \"n2\",\r\n \"text\": \"Node 2.1\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"n10\",\r\n \"parent\": \"n2\",\r\n \"text\": \"Node 2.2 (Custom icon)\",\r\n \"icon\": \"ion-help-buoy\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"n12\",\r\n \"parent\": \"n3\",\r\n \"text\": \"Node 3.1\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"n13\",\r\n \"parent\": \"n3\",\r\n \"type\": \"folder\",\r\n \"text\": \"Node 3.2\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"n14\",\r\n \"parent\": \"n13\",\r\n \"text\": \"Node 3.2.1\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"n15\",\r\n \"parent\": \"n13\",\r\n \"text\": \"Node 3.2.2\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"n16\",\r\n \"parent\": \"n3\",\r\n \"text\": \"Node 3.3\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"n17\",\r\n \"parent\": \"n3\",\r\n \"text\": \"Node 3.4\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"n18\",\r\n \"parent\": \"n3\",\r\n \"text\": \"Node 3.5\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n },\r\n {\r\n \"id\": \"n19\",\r\n \"parent\": \"n3\",\r\n \"text\": \"Node 3.6\",\r\n \"state\": {\r\n \"opened\": true\r\n }\r\n }\r\n ]\r\n }\r\n\r\n\r\n }\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.dashboard')\r\n .directive('blurFeed', blurFeed);\r\n\r\n /** @ngInject */\r\n function blurFeed() {\r\n return {\r\n restrict: 'E',\r\n controller: 'BlurFeedCtrl',\r\n templateUrl: 'app/pages/dashboard/blurFeed/blurFeed.html'\r\n };\r\n }\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.dashboard')\r\n .controller('BlurFeedCtrl', BlurFeedCtrl);\r\n\r\n /** @ngInject */\r\n function BlurFeedCtrl($scope) {\r\n $scope.feed = [\r\n {\r\n type: 'text-message',\r\n author: 'Kostya',\r\n surname: 'Danovsky',\r\n header: 'Posted new message',\r\n text: 'Guys, check this out: \\nA police officer found a perfect hiding place for watching for speeding motorists. One day, the officer was amazed when everyone was under the speed limit, so he investigated and found the problem. A 10 years old boy was standing on the side of the road with a huge hand painted sign which said \"Radar Trap Ahead.\" A little more investigative work led the officer to the boy\\'s accomplice: another boy about 100 yards beyond the radar trap with a sign reading \"TIPS\" and a bucket at his feet full of change.',\r\n time: 'Today 11:55 pm',\r\n ago: '25 minutes ago',\r\n expanded: false,\r\n }, {\r\n type: 'video-message',\r\n author: 'Andrey',\r\n surname: 'Hrabouski',\r\n header: 'Added new video',\r\n text: '\"Vader and Me\"',\r\n preview: 'app/feed/vader-and-me-preview.png',\r\n link: 'https://www.youtube.com/watch?v=IfcpzBbbamk',\r\n time: 'Today 9:30 pm',\r\n ago: '3 hrs ago',\r\n expanded: false,\r\n }, {\r\n type: 'image-message',\r\n author: 'Vlad',\r\n surname: 'Lugovsky',\r\n header: 'Added new image',\r\n text: '\"My little kitten\"',\r\n preview: 'app/feed/my-little-kitten.png',\r\n link: 'http://api.ning.com/files/DtcI2O2Ry7A7VhVxeiWfGU9WkHcMy4WSTWZ79oxJq*h0iXvVGndfD7CIYy-Ax-UAFCBCdqXI4GCBw3FOLKTTjQc*2cmpdOXJ/1082127884.jpeg',\r\n time: 'Today 2:20 pm',\r\n ago: '10 hrs ago',\r\n expanded: false,\r\n }, {\r\n type: 'text-message',\r\n author: 'Nasta',\r\n surname: 'Linnie',\r\n header: 'Posted new message',\r\n text: 'Haha lol',\r\n time: '11.11.2015',\r\n ago: '2 days ago',\r\n expanded: false,\r\n }, {\r\n type: 'geo-message',\r\n author: 'Nick',\r\n surname: 'Cat',\r\n header: 'Posted location',\r\n text: '\"New York, USA\"',\r\n preview: 'app/feed/new-york-location.png',\r\n link: 'https://www.google.by/maps/place/New+York,+NY,+USA/@40.7201111,-73.9893872,14z',\r\n time: '11.11.2015',\r\n ago: '2 days ago',\r\n expanded: false,\r\n }, {\r\n type: 'text-message',\r\n author: 'Vlad',\r\n surname: 'Lugovsky',\r\n header: 'Posted new message',\r\n text: \"First snake: I hope I'm not poisonous. Second snake: Why? First snake: Because I bit my lip!\",\r\n time: '12.11.2015',\r\n ago: '3 days ago',\r\n expanded: false,\r\n }, {\r\n type: 'text-message',\r\n author: 'Andrey',\r\n surname: 'Hrabouski',\r\n header: 'Posted new message',\r\n text: 'How do you smuggle an elephant across the border? Put a slice of bread on each side, and call him \"lunch\".',\r\n time: '14.11.2015',\r\n ago: '5 days ago',\r\n expanded: false,\r\n }, {\r\n type: 'text-message',\r\n author: 'Nasta',\r\n surname: 'Linnie',\r\n header: 'Posted new message',\r\n text: 'When your hammer is C++, everything begins to look like a thumb.',\r\n time: '14.11.2015',\r\n ago: '5 days ago',\r\n expanded: false,\r\n }, {\r\n type: 'text-message',\r\n author: 'Alexander',\r\n surname: 'Demeshko',\r\n header: 'Posted new message',\r\n text: '“I mean, they say you die twice. One time when you stop breathing and a second time, a bit later on, when somebody says your name for the last time.\" ©',\r\n time: '15.11.2015',\r\n ago: '6 days ago',\r\n expanded: false,\r\n }, {\r\n type: 'image-message',\r\n author: 'Nick',\r\n surname: 'Cat',\r\n header: 'Posted photo',\r\n text: '\"Protein Heroes\"',\r\n preview: 'app/feed/genom.png',\r\n link: 'https://dribbble.com/shots/2504810-Protein-Heroes',\r\n time: '16.11.2015',\r\n ago: '7 days ago',\r\n expanded: false,\r\n },\r\n {\r\n type: 'text-message',\r\n author: 'Kostya',\r\n surname: 'Danovsky',\r\n header: 'Posted new message',\r\n text: 'Why did the CoffeeScript developer keep getting lost? Because he couldn\\'t find his source without a map',\r\n time: '18.11.2015',\r\n ago: '9 days ago',\r\n expanded: false,\r\n }\r\n ];\r\n\r\n $scope.expandMessage = function(message){\r\n message.expanded = !message.expanded;\r\n }\r\n }\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.dashboard')\r\n .service('dashboardCalendar', dashboardCalendar);\r\n\r\n /** @ngInject */\r\n function dashboardCalendar() {\r\n\r\n }\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.dashboard')\r\n .directive('dashboardCalendar', dashboardCalendar);\r\n\r\n /** @ngInject */\r\n function dashboardCalendar() {\r\n return {\r\n restrict: 'E',\r\n controller: 'DashboardCalendarCtrl',\r\n templateUrl: 'app/pages/dashboard/dashboardCalendar/dashboardCalendar.html'\r\n };\r\n }\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.dashboard')\r\n .controller('DashboardCalendarCtrl', DashboardCalendarCtrl);\r\n\r\n /** @ngInject */\r\n function DashboardCalendarCtrl(baConfig) {\r\n var dashboardColors = baConfig.colors.dashboard;\r\n var $element = $('#calendar').fullCalendar({\r\n //height: 335,\r\n header: {\r\n left: 'prev,next today',\r\n center: 'title',\r\n right: 'month,agendaWeek,agendaDay'\r\n },\r\n defaultDate: '2016-03-08',\r\n selectable: true,\r\n selectHelper: true,\r\n select: function (start, end) {\r\n var title = prompt('Event Title:');\r\n var eventData;\r\n if (title) {\r\n eventData = {\r\n title: title,\r\n start: start,\r\n end: end\r\n };\r\n $element.fullCalendar('renderEvent', eventData, true); // stick? = true\r\n }\r\n $element.fullCalendar('unselect');\r\n },\r\n editable: true,\r\n eventLimit: true, // allow \"more\" link when too many events\r\n events: [\r\n {\r\n title: 'All Day Event',\r\n start: '2016-03-01',\r\n color: dashboardColors.silverTree\r\n },\r\n {\r\n title: 'Long Event',\r\n start: '2016-03-07',\r\n end: '2016-03-10',\r\n color: dashboardColors.blueStone\r\n },\r\n {\r\n title: 'Dinner',\r\n start: '2016-03-14T20:00:00',\r\n color: dashboardColors.surfieGreen\r\n },\r\n {\r\n title: 'Birthday Party',\r\n start: '2016-04-01T07:00:00',\r\n color: dashboardColors.gossipDark\r\n }\r\n ]\r\n });\r\n }\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.dashboard')\r\n .directive('dashboardLineChart', dashboardLineChart);\r\n\r\n /** @ngInject */\r\n function dashboardLineChart() {\r\n return {\r\n restrict: 'E',\r\n controller: 'DashboardLineChartCtrl',\r\n templateUrl: 'app/pages/dashboard/dashboardLineChart/dashboardLineChart.html'\r\n };\r\n }\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.dashboard')\r\n .controller('DashboardLineChartCtrl', DashboardLineChartCtrl);\r\n\r\n /** @ngInject */\r\n function DashboardLineChartCtrl(baConfig, layoutPaths, baUtil) {\r\n var layoutColors = baConfig.colors;\r\n var graphColor = baConfig.theme.blur ? '#000000' : layoutColors.primary;\r\n var chartData = [\r\n { date: new Date(2012, 11), value: 0, value0: 0 },\r\n { date: new Date(2013, 0), value: 15000, value0: 19000},\r\n { date: new Date(2013, 1), value: 30000, value0: 20000},\r\n\r\n { date: new Date(2013, 2), value: 25000, value0: 22000},\r\n { date: new Date(2013, 3), value: 21000, value0: 25000},\r\n { date: new Date(2013, 4), value: 24000, value0: 29000},\r\n { date: new Date(2013, 5), value: 31000, value0: 26000},\r\n { date: new Date(2013, 6), value: 40000, value0: 25000},\r\n { date: new Date(2013, 7), value: 37000, value0: 20000},\r\n { date: new Date(2013, 8), value: 18000, value0: 22000},\r\n { date: new Date(2013, 9), value: 5000, value0: 26000},\r\n { date: new Date(2013, 10), value: 40000, value0: 30000},\r\n { date: new Date(2013, 11), value: 20000, value0: 25000},\r\n { date: new Date(2014, 0), value: 5000, value0: 13000},\r\n\r\n { date: new Date(2014, 1), value: 3000, value0: 13000},\r\n { date: new Date(2014, 2), value: 1800, value0: 13000},\r\n { date: new Date(2014, 3), value: 10400, value0: 13000},\r\n { date: new Date(2014, 4), value: 25500, value0: 13000},\r\n { date: new Date(2014, 5), value: 2100, value0: 13000},\r\n { date: new Date(2014, 6), value: 6500, value0: 13000},\r\n { date: new Date(2014, 7), value: 1100, value0: 13000},\r\n { date: new Date(2014, 8), value: 17200, value0: 13000},\r\n { date: new Date(2014, 9), value: 26900, value0: 13000},\r\n { date: new Date(2014, 10), value: 14100, value0: 13000},\r\n { date: new Date(2014, 11), value: 35300, value0: 13000},\r\n { date: new Date(2015, 0), value: 54800, value0: 13000},\r\n { date: new Date(2015, 1), value: 49800, value0: 13000}\r\n ];\r\n\r\n var chart = AmCharts.makeChart('amchart', {\r\n type: 'serial',\r\n theme: 'blur',\r\n marginTop: 15,\r\n marginRight: 15,\r\n dataProvider: chartData,\r\n categoryField: 'date',\r\n categoryAxis: {\r\n parseDates: true,\r\n gridAlpha: 0,\r\n color: layoutColors.defaultText,\r\n axisColor: layoutColors.defaultText\r\n },\r\n valueAxes: [\r\n {\r\n minVerticalGap: 50,\r\n gridAlpha: 0,\r\n color: layoutColors.defaultText,\r\n axisColor: layoutColors.defaultText\r\n }\r\n ],\r\n graphs: [\r\n {\r\n id: 'g0',\r\n bullet: 'none',\r\n useLineColorForBulletBorder: true,\r\n lineColor: baUtil.hexToRGB(graphColor, 0.3),\r\n lineThickness: 1,\r\n negativeLineColor: layoutColors.danger,\r\n type: 'smoothedLine',\r\n valueField: 'value0',\r\n fillAlphas: 1,\r\n fillColorsField: 'lineColor'\r\n },\r\n {\r\n id: 'g1',\r\n bullet: 'none',\r\n useLineColorForBulletBorder: true,\r\n lineColor: baUtil.hexToRGB(graphColor, 0.5),\r\n lineThickness: 1,\r\n negativeLineColor: layoutColors.danger,\r\n type: 'smoothedLine',\r\n valueField: 'value',\r\n fillAlphas: 1,\r\n fillColorsField: 'lineColor'\r\n }\r\n ],\r\n chartCursor: {\r\n categoryBalloonDateFormat: 'MM YYYY',\r\n categoryBalloonColor: '#4285F4',\r\n categoryBalloonAlpha: 0.7,\r\n cursorAlpha: 0,\r\n valueLineEnabled: true,\r\n valueLineBalloonEnabled: true,\r\n valueLineAlpha: 0.5\r\n },\r\n dataDateFormat: 'MM YYYY',\r\n export: {\r\n enabled: true\r\n },\r\n creditsPosition: 'bottom-right',\r\n zoomOutButton: {\r\n backgroundColor: '#fff',\r\n backgroundAlpha: 0\r\n },\r\n zoomOutText: '',\r\n pathToImages: layoutPaths.images.amChart\r\n });\r\n\r\n function zoomChart() {\r\n chart.zoomToDates(new Date(2013, 3), new Date(2014, 0));\r\n }\r\n\r\n chart.addListener('rendered', zoomChart);\r\n zoomChart();\r\n if (chart.zoomChart) {\r\n chart.zoomChart();\r\n }\r\n }\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.dashboard')\r\n .directive('dashboardMap', dashboardMap);\r\n\r\n /** @ngInject */\r\n function dashboardMap() {\r\n return {\r\n restrict: 'E',\r\n controller: 'DashboardMapCtrl',\r\n templateUrl: 'app/pages/dashboard/dashboardMap/dashboardMap.html'\r\n };\r\n }\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.dashboard')\r\n .controller('DashboardMapCtrl', DashboardMapCtrl);\r\n\r\n /** @ngInject */\r\n function DashboardMapCtrl(baConfig, layoutPaths) {\r\n var layoutColors = baConfig.colors;\r\n var map = AmCharts.makeChart('amChartMap', {\r\n type: 'map',\r\n theme: 'blur',\r\n zoomControl: { zoomControlEnabled: false, panControlEnabled: false },\r\n\r\n dataProvider: {\r\n map: 'worldLow',\r\n zoomLevel: 3.5,\r\n zoomLongitude: 10,\r\n zoomLatitude: 52,\r\n areas: [\r\n { title: 'Austria', id: 'AT', color: layoutColors.primary, customData: '1 244', groupId: '1'},\r\n { title: 'Ireland', id: 'IE', color: layoutColors.primary, customData: '1 342', groupId: '1'},\r\n { title: 'Denmark', id: 'DK', color: layoutColors.primary, customData: '1 973', groupId: '1'},\r\n { title: 'Finland', id: 'FI', color: layoutColors.primary, customData: '1 573', groupId: '1'},\r\n { title: 'Sweden', id: 'SE', color: layoutColors.primary, customData: '1 084', groupId: '1'},\r\n { title: 'Great Britain', id: 'GB', color: layoutColors.primary, customData: '1 452', groupId: '1'},\r\n { title: 'Italy', id: 'IT', color: layoutColors.primary, customData: '1 321', groupId: '1'},\r\n { title: 'France', id: 'FR', color: layoutColors.primary, customData: '1 112', groupId: '1'},\r\n { title: 'Spain', id: 'ES', color: layoutColors.primary, customData: '1 865', groupId: '1'},\r\n { title: 'Greece', id: 'GR', color: layoutColors.primary, customData: '1 453', groupId: '1'},\r\n { title: 'Germany', id: 'DE', color: layoutColors.primary, customData: '1 957', groupId: '1'},\r\n { title: 'Belgium', id: 'BE', color: layoutColors.primary, customData: '1 011', groupId: '1'},\r\n { title: 'Luxembourg', id: 'LU', color: layoutColors.primary, customData: '1 011', groupId: '1'},\r\n { title: 'Netherlands', id: 'NL', color: layoutColors.primary, customData: '1 213', groupId: '1'},\r\n { title: 'Portugal', id: 'PT', color: layoutColors.primary, customData: '1 291', groupId: '1'},\r\n { title: 'Lithuania', id: 'LT', color: layoutColors.successLight, customData: '567', groupId: '2'},\r\n { title: 'Latvia', id: 'LV', color: layoutColors.successLight, customData: '589', groupId: '2'},\r\n { title: 'Czech Republic ', id: 'CZ', color: layoutColors.successLight, customData: '785', groupId: '2'},\r\n { title: 'Slovakia', id: 'SK', color: layoutColors.successLight, customData: '965', groupId: '2'},\r\n { title: 'Estonia', id: 'EE', color: layoutColors.successLight, customData: '685', groupId: '2'},\r\n { title: 'Hungary', id: 'HU', color: layoutColors.successLight, customData: '854', groupId: '2'},\r\n { title: 'Cyprus', id: 'CY', color: layoutColors.successLight, customData: '754', groupId: '2'},\r\n { title: 'Malta', id: 'MT', color: layoutColors.successLight, customData: '867', groupId: '2'},\r\n { title: 'Poland', id: 'PL', color: layoutColors.successLight, customData: '759', groupId: '2'},\r\n { title: 'Romania', id: 'RO', color: layoutColors.success, customData: '302', groupId: '3'},\r\n { title: 'Bulgaria', id: 'BG', color: layoutColors.success, customData: '102', groupId: '3'},\r\n { title: 'Slovenia', id: 'SI', color: layoutColors.danger, customData: '23', groupId: '4'},\r\n { title: 'Croatia', id: 'HR', color: layoutColors.danger, customData: '96', groupId: '4'}\r\n ]\r\n },\r\n\r\n areasSettings: {\r\n rollOverOutlineColor: layoutColors.border,\r\n rollOverColor: layoutColors.primaryDark,\r\n alpha: 0.8,\r\n unlistedAreasAlpha: 0.2,\r\n unlistedAreasColor: layoutColors.defaultText,\r\n balloonText: '[[title]]: [[customData]] users'\r\n },\r\n\r\n\r\n legend: {\r\n width: '100%',\r\n marginRight: 27,\r\n marginLeft: 27,\r\n equalWidths: false,\r\n backgroundAlpha: 0.3,\r\n backgroundColor: layoutColors.border,\r\n borderColor: layoutColors.border,\r\n borderAlpha: 1,\r\n top: 362,\r\n left: 0,\r\n horizontalGap: 10,\r\n data: [\r\n {\r\n title: 'over 1 000 users',\r\n color: layoutColors.primary\r\n },\r\n {\r\n title: '500 - 1 000 users',\r\n color: layoutColors.successLight\r\n },\r\n {\r\n title: '100 - 500 users',\r\n color: layoutColors.success\r\n },\r\n {\r\n title: '0 - 100 users',\r\n color: layoutColors.danger\r\n }\r\n ]\r\n },\r\n export: {\r\n enabled: true\r\n },\r\n creditsPosition: 'bottom-right',\r\n pathToImages: layoutPaths.images.amChart\r\n });\r\n }\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.dashboard')\r\n .directive('dashboardPieChart', dashboardPieChart);\r\n\r\n /** @ngInject */\r\n function dashboardPieChart() {\r\n return {\r\n restrict: 'E',\r\n controller: 'DashboardPieChartCtrl',\r\n templateUrl: 'app/pages/dashboard/dashboardPieChart/dashboardPieChart.html'\r\n };\r\n }\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.dashboard')\r\n .controller('DashboardPieChartCtrl', DashboardPieChartCtrl);\r\n\r\n /** @ngInject */\r\n function DashboardPieChartCtrl($scope, $timeout, baConfig, baUtil) {\r\n var pieColor = baUtil.hexToRGB(baConfig.colors.defaultText, 0.2);\r\n $scope.charts = [{\r\n color: pieColor,\r\n description: 'New Visits',\r\n stats: '57,820',\r\n icon: 'person',\r\n }, {\r\n color: pieColor,\r\n description: 'Purchases',\r\n stats: '$ 89,745',\r\n icon: 'money',\r\n }, {\r\n color: pieColor,\r\n description: 'Active Users',\r\n stats: '178,391',\r\n icon: 'face',\r\n }, {\r\n color: pieColor,\r\n description: 'Returned',\r\n stats: '32,592',\r\n icon: 'refresh',\r\n }\r\n ];\r\n\r\n function getRandomArbitrary(min, max) {\r\n return Math.random() * (max - min) + min;\r\n }\r\n\r\n function loadPieCharts() {\r\n $('.chart').each(function () {\r\n var chart = $(this);\r\n chart.easyPieChart({\r\n easing: 'easeOutBounce',\r\n onStep: function (from, to, percent) {\r\n $(this.el).find('.percent').text(Math.round(percent));\r\n },\r\n barColor: chart.attr('rel'),\r\n trackColor: 'rgba(0,0,0,0)',\r\n size: 84,\r\n scaleLength: 0,\r\n animation: 2000,\r\n lineWidth: 9,\r\n lineCap: 'round',\r\n });\r\n });\r\n\r\n $('.refresh-data').on('click', function () {\r\n updatePieCharts();\r\n });\r\n }\r\n\r\n function updatePieCharts() {\r\n $('.pie-charts .chart').each(function(index, chart) {\r\n $(chart).data('easyPieChart').update(getRandomArbitrary(55, 90));\r\n });\r\n }\r\n\r\n $timeout(function () {\r\n loadPieCharts();\r\n updatePieCharts();\r\n }, 1000);\r\n }\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.dashboard')\r\n .directive('dashboardTodo', dashboardTodo);\r\n\r\n /** @ngInject */\r\n function dashboardTodo() {\r\n return {\r\n restrict: 'EA',\r\n controller: 'DashboardTodoCtrl',\r\n templateUrl: 'app/pages/dashboard/dashboardTodo/dashboardTodo.html'\r\n };\r\n }\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.dashboard')\r\n .controller('DashboardTodoCtrl', DashboardTodoCtrl);\r\n\r\n /** @ngInject */\r\n function DashboardTodoCtrl($scope, baConfig) {\r\n\r\n $scope.transparent = baConfig.theme.blur;\r\n var dashboardColors = baConfig.colors.dashboard;\r\n var colors = [];\r\n for (var key in dashboardColors) {\r\n colors.push(dashboardColors[key]);\r\n }\r\n\r\n function getRandomColor() {\r\n var i = Math.floor(Math.random() * (colors.length - 1));\r\n return colors[i];\r\n }\r\n\r\n $scope.todoList = [\r\n { text: 'Check me out' },\r\n { text: 'Lorem ipsum dolor sit amet, possit denique oportere at his, etiam corpora deseruisse te pro' },\r\n { text: 'Ex has semper alterum, expetenda dignissim' },\r\n { text: 'Vim an eius ocurreret abhorreant, id nam aeque persius ornatus.' },\r\n { text: 'Simul erroribus ad usu' },\r\n { text: 'Ei cum solet appareat, ex est graeci mediocritatem' },\r\n { text: 'Get in touch with akveo team' },\r\n { text: 'Write email to business cat' },\r\n { text: 'Have fun with blur admin' },\r\n { text: 'What do you think?' },\r\n ];\r\n\r\n $scope.todoList.forEach(function(item) {\r\n item.color = getRandomColor();\r\n });\r\n\r\n $scope.newTodoText = '';\r\n\r\n $scope.addToDoItem = function (event, clickPlus) {\r\n if (clickPlus || event.which === 13) {\r\n $scope.todoList.unshift({\r\n text: $scope.newTodoText,\r\n color: getRandomColor(),\r\n });\r\n $scope.newTodoText = '';\r\n }\r\n };\r\n }\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.dashboard')\r\n .service('dashboardPieChart', dashboardPieChart);\r\n\r\n /** @ngInject */\r\n function dashboardPieChart() {\r\n\r\n }\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.dashboard')\r\n .directive('popularApp', popularApp);\r\n\r\n /** @ngInject */\r\n function popularApp() {\r\n return {\r\n restrict: 'E',\r\n templateUrl: 'app/pages/dashboard/popularApp/popularApp.html'\r\n };\r\n }\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.dashboard')\r\n .directive('trafficChart', trafficChart);\r\n\r\n /** @ngInject */\r\n function trafficChart() {\r\n return {\r\n restrict: 'E',\r\n controller: 'TrafficChartCtrl',\r\n templateUrl: 'app/pages/dashboard/trafficChart/trafficChart.html'\r\n };\r\n }\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.dashboard')\r\n .controller('TrafficChartCtrl', TrafficChartCtrl);\r\n\r\n /** @ngInject */\r\n function TrafficChartCtrl($scope, baConfig, colorHelper) {\r\n\r\n $scope.transparent = baConfig.theme.blur;\r\n var dashboardColors = baConfig.colors.dashboard;\r\n $scope.doughnutData = {\r\n labels: [\r\n 'Other',\r\n 'Search engines',\r\n 'Referral Traffic',\r\n 'Direct Traffic',\r\n 'Ad Campaigns'\r\n ],\r\n datasets: [\r\n {\r\n data: [2000, 1500, 1000, 1200, 400],\r\n backgroundColor: [\r\n dashboardColors.white,\r\n dashboardColors.blueStone,\r\n dashboardColors.surfieGreen,\r\n dashboardColors.silverTree,\r\n dashboardColors.gossip\r\n\r\n ],\r\n hoverBackgroundColor: [\r\n colorHelper.shade(dashboardColors.white, 15),\r\n colorHelper.shade(dashboardColors.blueStone, 15),\r\n colorHelper.shade(dashboardColors.surfieGreen, 15),\r\n colorHelper.shade(dashboardColors.silverTree, 15),\r\n colorHelper.shade(dashboardColors.gossip, 15)\r\n ],\r\n percentage: [87, 22, 70, 38, 17]\r\n }]\r\n };\r\n\r\n var ctx = document.getElementById('chart-area').getContext('2d');\r\n window.myDoughnut = new Chart(ctx, {\r\n type: 'doughnut',\r\n data: $scope.doughnutData,\r\n options: {\r\n cutoutPercentage: 64,\r\n responsive: true,\r\n elements: {\r\n arc: {\r\n borderWidth: 0\r\n }\r\n }\r\n }\r\n });\r\n }\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.dashboard')\r\n .directive('weather', weather);\r\n\r\n /** @ngInject */\r\n function weather() {\r\n return {\r\n restrict: 'EA',\r\n controller: 'WeatherCtrl',\r\n templateUrl: 'app/pages/dashboard/weather/weather.html'\r\n };\r\n }\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.dashboard')\r\n .controller('WeatherCtrl', WeatherCtrl);\r\n\r\n /** @ngInject */\r\n function WeatherCtrl($scope, $http, $timeout, $element) {\r\n var url = 'http://api.openweathermap.org/data/2.5/forecast';\r\n var method = 'GET';\r\n var key = '2de143494c0b295cca9337e1e96b00e0';\r\n var middleOfTheDay = 15;\r\n $scope.units = 'metric';\r\n $scope.weatherIcons = {\r\n '01d': 'ion-ios-sunny-outline',\r\n '02d': 'ion-ios-partlysunny-outline',\r\n '03d': 'ion-ios-cloud-outline',\r\n '04d': 'ion-ios-cloud',\r\n '09d': 'ion-ios-rainy',\r\n '10d': 'ion-ios-rainy-outline',\r\n '11d': 'ion-ios-thunderstorm-outline',\r\n '13d': 'ion-ios-snowy',\r\n '50d': 'ion-ios-cloudy-outline',\r\n '01n': 'ion-ios-cloudy-night-outline',\r\n '02n': 'ion-ios-cloudy-night',\r\n '03n': 'ion-ios-cloud-outline',\r\n '04n': 'ion-ios-cloud',\r\n '09n': 'ion-ios-rainy',\r\n '10n': 'ion-ios-rainy-outline',\r\n '11n': 'ion-ios-thunderstorm',\r\n '13n': 'ion-ios-snowy',\r\n '50n': 'ion-ios-cloudy-outline'\r\n };\r\n $scope.weather = {};\r\n\r\n $scope.switchUnits = function (name) {\r\n $scope.units = name;\r\n $scope.updateWeather();\r\n };\r\n\r\n $scope.switchDay = function (day) {\r\n $scope.weather.current = day;\r\n makeChart($scope.weather.days[$scope.weather.current].timeTemp)\r\n };\r\n\r\n $scope.updateWeather = function () {\r\n $http({\r\n method: method, url: url, params: {\r\n appid: key,\r\n lat: $scope.geoData.geoplugin_latitude,\r\n lon: $scope.geoData.geoplugin_longitude,\r\n units: $scope.units\r\n }\r\n }).then(function success(response) {\r\n saveWeatherData(response.data);\r\n makeChart($scope.weather.days[$scope.weather.current].timeTemp)\r\n }, function error() {\r\n console.log(\"WEATHER FAILED\")\r\n });\r\n };\r\n\r\n function updateGeoData() {\r\n $http.jsonp('http://www.geoplugin.net/json.gp?jsoncallback=JSON_CALLBACK').then(function success(response) {\r\n $scope.geoData = response.data;\r\n $scope.updateWeather();\r\n }, function error() {\r\n console.log(\"GEO FAILED\")\r\n });\r\n }\r\n\r\n function makeChart(data) {\r\n AmCharts.makeChart('tempChart', {\r\n type: 'serial',\r\n theme: 'blur',\r\n handDrawn: true,\r\n categoryField: 'time',\r\n dataProvider: data,\r\n valueAxes: [\r\n {\r\n axisAlpha: 0.3,\r\n gridAlpha: 0\r\n }\r\n ],\r\n graphs: [\r\n {\r\n bullet: 'square',\r\n fillAlphas: 0.3,\r\n fillColorsField: 'lineColor',\r\n legendValueText: '[[value]]',\r\n lineColorField: 'lineColor',\r\n title: 'Temp',\r\n valueField: 'temp'\r\n }\r\n ],\r\n categoryAxis: {\r\n gridAlpha: 0,\r\n axisAlpha: 0.3\r\n }\r\n }).write('tempChart');\r\n }\r\n\r\n function saveWeatherData(data) {\r\n var firstItem = data.list[0];\r\n var weather = {\r\n days: [{\r\n date: new Date(),\r\n timeTemp: [],\r\n main: firstItem.weather[0].main,\r\n description: firstItem.weather[0].description,\r\n icon: firstItem.weather[0].icon,\r\n temp: firstItem.main.temp\r\n }], current: 0\r\n };\r\n data.list.forEach(function (item, i) {\r\n var itemDate = new Date(item.dt_txt);\r\n if (itemDate.getDate() !== weather.days[weather.days.length - 1].date.getDate()) {\r\n weather.days.push({date: itemDate, timeTemp: []});\r\n }\r\n var lastItem = weather.days[weather.days.length - 1];\r\n lastItem.timeTemp.push({\r\n time: itemDate.getHours(),\r\n temp: item.main.temp\r\n });\r\n if ((weather.days.length > 1 && itemDate.getHours() == middleOfTheDay) || i == data.list.length - 1) {\r\n lastItem.main = item.weather[0].main;\r\n lastItem.description = item.weather[0].description;\r\n lastItem.icon = item.weather[0].icon;\r\n lastItem.temp = item.main.temp;\r\n lastItem.date.setHours(i == data.list.length - 1 ? 0 : middleOfTheDay);\r\n lastItem.date.setMinutes(0);\r\n }\r\n });\r\n console.log(weather.days[weather.current].date);\r\n weather.days = weather.days.slice(0, $element.attr('forecast') || 5);\r\n $scope.weather = weather;\r\n }\r\n\r\n updateGeoData();\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.form')\r\n .controller('WizardCtrl', WizardCtrl);\r\n\r\n /** @ngInject */\r\n function WizardCtrl($scope) {\r\n var vm = this;\r\n\r\n vm.personalInfo = {};\r\n vm.productInfo = {};\r\n vm.shipment = {};\r\n\r\n vm.arePersonalInfoPasswordsEqual = function () {\r\n return vm.personalInfo.confirmPassword && vm.personalInfo.password == vm.personalInfo.confirmPassword;\r\n };\r\n }\r\n\r\n})();\r\n\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.maps')\r\n .controller('GmapPageCtrl', GmapPageCtrl);\r\n\r\n /** @ngInject */\r\n function GmapPageCtrl($timeout) {\r\n function initialize() {\r\n var mapCanvas = document.getElementById('google-maps');\r\n var mapOptions = {\r\n center: new google.maps.LatLng(44.5403, -78.5463),\r\n zoom: 8,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n };\r\n var map = new google.maps.Map(mapCanvas, mapOptions);\r\n }\r\n\r\n $timeout(function(){\r\n initialize();\r\n }, 100);\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.maps')\r\n .controller('LeafletPageCtrl', LeafletPageCtrl);\r\n\r\n /** @ngInject */\r\n function LeafletPageCtrl($timeout) {\r\n function initialize() {\r\n L.Icon.Default.imagePath = 'assets/img/theme/vendor/leaflet/dist/images';\r\n var map = L.map(document.getElementById('leaflet-map')).setView([51.505, -0.09], 13);\r\n L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {\r\n attribution: '© OpenStreetMap contributors'\r\n }).addTo(map);\r\n\r\n L.marker([51.5, -0.09]).addTo(map)\r\n .bindPopup('A pretty CSS3 popup.
Easily customizable.')\r\n .openPopup();\r\n }\r\n\r\n $timeout(function(){\r\n initialize();\r\n }, 100);\r\n\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.maps')\r\n .controller('MapBubblePageCtrl', MapBubblePageCtrl);\r\n\r\n /** @ngInject */\r\n function MapBubblePageCtrl(baConfig, $timeout, layoutPaths) {\r\n var layoutColors = baConfig.colors;\r\n var latlong = {};\r\n latlong['AD'] = {'latitude': 42.5, 'longitude': 1.5};\r\n latlong['AE'] = {'latitude': 24, 'longitude': 54};\r\n latlong['AF'] = {'latitude': 33, 'longitude': 65};\r\n latlong['AG'] = {'latitude': 17.05, 'longitude': -61.8};\r\n latlong['AI'] = {'latitude': 18.25, 'longitude': -63.1667};\r\n latlong['AL'] = {'latitude': 41, 'longitude': 20};\r\n latlong['AM'] = {'latitude': 40, 'longitude': 45};\r\n latlong['AN'] = {'latitude': 12.25, 'longitude': -68.75};\r\n latlong['AO'] = {'latitude': -12.5, 'longitude': 18.5};\r\n latlong['AP'] = {'latitude': 35, 'longitude': 105};\r\n latlong['AQ'] = {'latitude': -90, 'longitude': 0};\r\n latlong['AR'] = {'latitude': -34, 'longitude': -64};\r\n latlong['AS'] = {'latitude': -14.3333, 'longitude': -170};\r\n latlong['AT'] = {'latitude': 47.3333, 'longitude': 13.3333};\r\n latlong['AU'] = {'latitude': -27, 'longitude': 133};\r\n latlong['AW'] = {'latitude': 12.5, 'longitude': -69.9667};\r\n latlong['AZ'] = {'latitude': 40.5, 'longitude': 47.5};\r\n latlong['BA'] = {'latitude': 44, 'longitude': 18};\r\n latlong['BB'] = {'latitude': 13.1667, 'longitude': -59.5333};\r\n latlong['BD'] = {'latitude': 24, 'longitude': 90};\r\n latlong['BE'] = {'latitude': 50.8333, 'longitude': 4};\r\n latlong['BF'] = {'latitude': 13, 'longitude': -2};\r\n latlong['BG'] = {'latitude': 43, 'longitude': 25};\r\n latlong['BH'] = {'latitude': 26, 'longitude': 50.55};\r\n latlong['BI'] = {'latitude': -3.5, 'longitude': 30};\r\n latlong['BJ'] = {'latitude': 9.5, 'longitude': 2.25};\r\n latlong['BM'] = {'latitude': 32.3333, 'longitude': -64.75};\r\n latlong['BN'] = {'latitude': 4.5, 'longitude': 114.6667};\r\n latlong['BO'] = {'latitude': -17, 'longitude': -65};\r\n latlong['BR'] = {'latitude': -10, 'longitude': -55};\r\n latlong['BS'] = {'latitude': 24.25, 'longitude': -76};\r\n latlong['BT'] = {'latitude': 27.5, 'longitude': 90.5};\r\n latlong['BV'] = {'latitude': -54.4333, 'longitude': 3.4};\r\n latlong['BW'] = {'latitude': -22, 'longitude': 24};\r\n latlong['BY'] = {'latitude': 53, 'longitude': 28};\r\n latlong['BZ'] = {'latitude': 17.25, 'longitude': -88.75};\r\n latlong['CA'] = {'latitude': 54, 'longitude': -100};\r\n latlong['CC'] = {'latitude': -12.5, 'longitude': 96.8333};\r\n latlong['CD'] = {'latitude': 0, 'longitude': 25};\r\n latlong['CF'] = {'latitude': 7, 'longitude': 21};\r\n latlong['CG'] = {'latitude': -1, 'longitude': 15};\r\n latlong['CH'] = {'latitude': 47, 'longitude': 8};\r\n latlong['CI'] = {'latitude': 8, 'longitude': -5};\r\n latlong['CK'] = {'latitude': -21.2333, 'longitude': -159.7667};\r\n latlong['CL'] = {'latitude': -30, 'longitude': -71};\r\n latlong['CM'] = {'latitude': 6, 'longitude': 12};\r\n latlong['CN'] = {'latitude': 35, 'longitude': 105};\r\n latlong['CO'] = {'latitude': 4, 'longitude': -72};\r\n latlong['CR'] = {'latitude': 10, 'longitude': -84};\r\n latlong['CU'] = {'latitude': 21.5, 'longitude': -80};\r\n latlong['CV'] = {'latitude': 16, 'longitude': -24};\r\n latlong['CX'] = {'latitude': -10.5, 'longitude': 105.6667};\r\n latlong['CY'] = {'latitude': 35, 'longitude': 33};\r\n latlong['CZ'] = {'latitude': 49.75, 'longitude': 15.5};\r\n latlong['DE'] = {'latitude': 51, 'longitude': 9};\r\n latlong['DJ'] = {'latitude': 11.5, 'longitude': 43};\r\n latlong['DK'] = {'latitude': 56, 'longitude': 10};\r\n latlong['DM'] = {'latitude': 15.4167, 'longitude': -61.3333};\r\n latlong['DO'] = {'latitude': 19, 'longitude': -70.6667};\r\n latlong['DZ'] = {'latitude': 28, 'longitude': 3};\r\n latlong['EC'] = {'latitude': -2, 'longitude': -77.5};\r\n latlong['EE'] = {'latitude': 59, 'longitude': 26};\r\n latlong['EG'] = {'latitude': 27, 'longitude': 30};\r\n latlong['EH'] = {'latitude': 24.5, 'longitude': -13};\r\n latlong['ER'] = {'latitude': 15, 'longitude': 39};\r\n latlong['ES'] = {'latitude': 40, 'longitude': -4};\r\n latlong['ET'] = {'latitude': 8, 'longitude': 38};\r\n latlong['EU'] = {'latitude': 47, 'longitude': 8};\r\n latlong['FI'] = {'latitude': 62, 'longitude': 26};\r\n latlong['FJ'] = {'latitude': -18, 'longitude': 175};\r\n latlong['FK'] = {'latitude': -51.75, 'longitude': -59};\r\n latlong['FM'] = {'latitude': 6.9167, 'longitude': 158.25};\r\n latlong['FO'] = {'latitude': 62, 'longitude': -7};\r\n latlong['FR'] = {'latitude': 46, 'longitude': 2};\r\n latlong['GA'] = {'latitude': -1, 'longitude': 11.75};\r\n latlong['GB'] = {'latitude': 54, 'longitude': -2};\r\n latlong['GD'] = {'latitude': 12.1167, 'longitude': -61.6667};\r\n latlong['GE'] = {'latitude': 42, 'longitude': 43.5};\r\n latlong['GF'] = {'latitude': 4, 'longitude': -53};\r\n latlong['GH'] = {'latitude': 8, 'longitude': -2};\r\n latlong['GI'] = {'latitude': 36.1833, 'longitude': -5.3667};\r\n latlong['GL'] = {'latitude': 72, 'longitude': -40};\r\n latlong['GM'] = {'latitude': 13.4667, 'longitude': -16.5667};\r\n latlong['GN'] = {'latitude': 11, 'longitude': -10};\r\n latlong['GP'] = {'latitude': 16.25, 'longitude': -61.5833};\r\n latlong['GQ'] = {'latitude': 2, 'longitude': 10};\r\n latlong['GR'] = {'latitude': 39, 'longitude': 22};\r\n latlong['GS'] = {'latitude': -54.5, 'longitude': -37};\r\n latlong['GT'] = {'latitude': 15.5, 'longitude': -90.25};\r\n latlong['GU'] = {'latitude': 13.4667, 'longitude': 144.7833};\r\n latlong['GW'] = {'latitude': 12, 'longitude': -15};\r\n latlong['GY'] = {'latitude': 5, 'longitude': -59};\r\n latlong['HK'] = {'latitude': 22.25, 'longitude': 114.1667};\r\n latlong['HM'] = {'latitude': -53.1, 'longitude': 72.5167};\r\n latlong['HN'] = {'latitude': 15, 'longitude': -86.5};\r\n latlong['HR'] = {'latitude': 45.1667, 'longitude': 15.5};\r\n latlong['HT'] = {'latitude': 19, 'longitude': -72.4167};\r\n latlong['HU'] = {'latitude': 47, 'longitude': 20};\r\n latlong['ID'] = {'latitude': -5, 'longitude': 120};\r\n latlong['IE'] = {'latitude': 53, 'longitude': -8};\r\n latlong['IL'] = {'latitude': 31.5, 'longitude': 34.75};\r\n latlong['IN'] = {'latitude': 20, 'longitude': 77};\r\n latlong['IO'] = {'latitude': -6, 'longitude': 71.5};\r\n latlong['IQ'] = {'latitude': 33, 'longitude': 44};\r\n latlong['IR'] = {'latitude': 32, 'longitude': 53};\r\n latlong['IS'] = {'latitude': 65, 'longitude': -18};\r\n latlong['IT'] = {'latitude': 42.8333, 'longitude': 12.8333};\r\n latlong['JM'] = {'latitude': 18.25, 'longitude': -77.5};\r\n latlong['JO'] = {'latitude': 31, 'longitude': 36};\r\n latlong['JP'] = {'latitude': 36, 'longitude': 138};\r\n latlong['KE'] = {'latitude': 1, 'longitude': 38};\r\n latlong['KG'] = {'latitude': 41, 'longitude': 75};\r\n latlong['KH'] = {'latitude': 13, 'longitude': 105};\r\n latlong['KI'] = {'latitude': 1.4167, 'longitude': 173};\r\n latlong['KM'] = {'latitude': -12.1667, 'longitude': 44.25};\r\n latlong['KN'] = {'latitude': 17.3333, 'longitude': -62.75};\r\n latlong['KP'] = {'latitude': 40, 'longitude': 127};\r\n latlong['KR'] = {'latitude': 37, 'longitude': 127.5};\r\n latlong['KW'] = {'latitude': 29.3375, 'longitude': 47.6581};\r\n latlong['KY'] = {'latitude': 19.5, 'longitude': -80.5};\r\n latlong['KZ'] = {'latitude': 48, 'longitude': 68};\r\n latlong['LA'] = {'latitude': 18, 'longitude': 105};\r\n latlong['LB'] = {'latitude': 33.8333, 'longitude': 35.8333};\r\n latlong['LC'] = {'latitude': 13.8833, 'longitude': -61.1333};\r\n latlong['LI'] = {'latitude': 47.1667, 'longitude': 9.5333};\r\n latlong['LK'] = {'latitude': 7, 'longitude': 81};\r\n latlong['LR'] = {'latitude': 6.5, 'longitude': -9.5};\r\n latlong['LS'] = {'latitude': -29.5, 'longitude': 28.5};\r\n latlong['LT'] = {'latitude': 55, 'longitude': 24};\r\n latlong['LU'] = {'latitude': 49.75, 'longitude': 6};\r\n latlong['LV'] = {'latitude': 57, 'longitude': 25};\r\n latlong['LY'] = {'latitude': 25, 'longitude': 17};\r\n latlong['MA'] = {'latitude': 32, 'longitude': -5};\r\n latlong['MC'] = {'latitude': 43.7333, 'longitude': 7.4};\r\n latlong['MD'] = {'latitude': 47, 'longitude': 29};\r\n latlong['ME'] = {'latitude': 42.5, 'longitude': 19.4};\r\n latlong['MG'] = {'latitude': -20, 'longitude': 47};\r\n latlong['MH'] = {'latitude': 9, 'longitude': 168};\r\n latlong['MK'] = {'latitude': 41.8333, 'longitude': 22};\r\n latlong['ML'] = {'latitude': 17, 'longitude': -4};\r\n latlong['MM'] = {'latitude': 22, 'longitude': 98};\r\n latlong['MN'] = {'latitude': 46, 'longitude': 105};\r\n latlong['MO'] = {'latitude': 22.1667, 'longitude': 113.55};\r\n latlong['MP'] = {'latitude': 15.2, 'longitude': 145.75};\r\n latlong['MQ'] = {'latitude': 14.6667, 'longitude': -61};\r\n latlong['MR'] = {'latitude': 20, 'longitude': -12};\r\n latlong['MS'] = {'latitude': 16.75, 'longitude': -62.2};\r\n latlong['MT'] = {'latitude': 35.8333, 'longitude': 14.5833};\r\n latlong['MU'] = {'latitude': -20.2833, 'longitude': 57.55};\r\n latlong['MV'] = {'latitude': 3.25, 'longitude': 73};\r\n latlong['MW'] = {'latitude': -13.5, 'longitude': 34};\r\n latlong['MX'] = {'latitude': 23, 'longitude': -102};\r\n latlong['MY'] = {'latitude': 2.5, 'longitude': 112.5};\r\n latlong['MZ'] = {'latitude': -18.25, 'longitude': 35};\r\n latlong['NA'] = {'latitude': -22, 'longitude': 17};\r\n latlong['NC'] = {'latitude': -21.5, 'longitude': 165.5};\r\n latlong['NE'] = {'latitude': 16, 'longitude': 8};\r\n latlong['NF'] = {'latitude': -29.0333, 'longitude': 167.95};\r\n latlong['NG'] = {'latitude': 10, 'longitude': 8};\r\n latlong['NI'] = {'latitude': 13, 'longitude': -85};\r\n latlong['NL'] = {'latitude': 52.5, 'longitude': 5.75};\r\n latlong['NO'] = {'latitude': 62, 'longitude': 10};\r\n latlong['NP'] = {'latitude': 28, 'longitude': 84};\r\n latlong['NR'] = {'latitude': -0.5333, 'longitude': 166.9167};\r\n latlong['NU'] = {'latitude': -19.0333, 'longitude': -169.8667};\r\n latlong['NZ'] = {'latitude': -41, 'longitude': 174};\r\n latlong['OM'] = {'latitude': 21, 'longitude': 57};\r\n latlong['PA'] = {'latitude': 9, 'longitude': -80};\r\n latlong['PE'] = {'latitude': -10, 'longitude': -76};\r\n latlong['PF'] = {'latitude': -15, 'longitude': -140};\r\n latlong['PG'] = {'latitude': -6, 'longitude': 147};\r\n latlong['PH'] = {'latitude': 13, 'longitude': 122};\r\n latlong['PK'] = {'latitude': 30, 'longitude': 70};\r\n latlong['PL'] = {'latitude': 52, 'longitude': 20};\r\n latlong['PM'] = {'latitude': 46.8333, 'longitude': -56.3333};\r\n latlong['PR'] = {'latitude': 18.25, 'longitude': -66.5};\r\n latlong['PS'] = {'latitude': 32, 'longitude': 35.25};\r\n latlong['PT'] = {'latitude': 39.5, 'longitude': -8};\r\n latlong['PW'] = {'latitude': 7.5, 'longitude': 134.5};\r\n latlong['PY'] = {'latitude': -23, 'longitude': -58};\r\n latlong['QA'] = {'latitude': 25.5, 'longitude': 51.25};\r\n latlong['RE'] = {'latitude': -21.1, 'longitude': 55.6};\r\n latlong['RO'] = {'latitude': 46, 'longitude': 25};\r\n latlong['RS'] = {'latitude': 44, 'longitude': 21};\r\n latlong['RU'] = {'latitude': 60, 'longitude': 100};\r\n latlong['RW'] = {'latitude': -2, 'longitude': 30};\r\n latlong['SA'] = {'latitude': 25, 'longitude': 45};\r\n latlong['SB'] = {'latitude': -8, 'longitude': 159};\r\n latlong['SC'] = {'latitude': -4.5833, 'longitude': 55.6667};\r\n latlong['SD'] = {'latitude': 15, 'longitude': 30};\r\n latlong['SE'] = {'latitude': 62, 'longitude': 15};\r\n latlong['SG'] = {'latitude': 1.3667, 'longitude': 103.8};\r\n latlong['SH'] = {'latitude': -15.9333, 'longitude': -5.7};\r\n latlong['SI'] = {'latitude': 46, 'longitude': 15};\r\n latlong['SJ'] = {'latitude': 78, 'longitude': 20};\r\n latlong['SK'] = {'latitude': 48.6667, 'longitude': 19.5};\r\n latlong['SL'] = {'latitude': 8.5, 'longitude': -11.5};\r\n latlong['SM'] = {'latitude': 43.7667, 'longitude': 12.4167};\r\n latlong['SN'] = {'latitude': 14, 'longitude': -14};\r\n latlong['SO'] = {'latitude': 10, 'longitude': 49};\r\n latlong['SR'] = {'latitude': 4, 'longitude': -56};\r\n latlong['ST'] = {'latitude': 1, 'longitude': 7};\r\n latlong['SV'] = {'latitude': 13.8333, 'longitude': -88.9167};\r\n latlong['SY'] = {'latitude': 35, 'longitude': 38};\r\n latlong['SZ'] = {'latitude': -26.5, 'longitude': 31.5};\r\n latlong['TC'] = {'latitude': 21.75, 'longitude': -71.5833};\r\n latlong['TD'] = {'latitude': 15, 'longitude': 19};\r\n latlong['TF'] = {'latitude': -43, 'longitude': 67};\r\n latlong['TG'] = {'latitude': 8, 'longitude': 1.1667};\r\n latlong['TH'] = {'latitude': 15, 'longitude': 100};\r\n latlong['TJ'] = {'latitude': 39, 'longitude': 71};\r\n latlong['TK'] = {'latitude': -9, 'longitude': -172};\r\n latlong['TM'] = {'latitude': 40, 'longitude': 60};\r\n latlong['TN'] = {'latitude': 34, 'longitude': 9};\r\n latlong['TO'] = {'latitude': -20, 'longitude': -175};\r\n latlong['TR'] = {'latitude': 39, 'longitude': 35};\r\n latlong['TT'] = {'latitude': 11, 'longitude': -61};\r\n latlong['TV'] = {'latitude': -8, 'longitude': 178};\r\n latlong['TW'] = {'latitude': 23.5, 'longitude': 121};\r\n latlong['TZ'] = {'latitude': -6, 'longitude': 35};\r\n latlong['UA'] = {'latitude': 49, 'longitude': 32};\r\n latlong['UG'] = {'latitude': 1, 'longitude': 32};\r\n latlong['UM'] = {'latitude': 19.2833, 'longitude': 166.6};\r\n latlong['US'] = {'latitude': 38, 'longitude': -97};\r\n latlong['UY'] = {'latitude': -33, 'longitude': -56};\r\n latlong['UZ'] = {'latitude': 41, 'longitude': 64};\r\n latlong['VA'] = {'latitude': 41.9, 'longitude': 12.45};\r\n latlong['VC'] = {'latitude': 13.25, 'longitude': -61.2};\r\n latlong['VE'] = {'latitude': 8, 'longitude': -66};\r\n latlong['VG'] = {'latitude': 18.5, 'longitude': -64.5};\r\n latlong['VI'] = {'latitude': 18.3333, 'longitude': -64.8333};\r\n latlong['VN'] = {'latitude': 16, 'longitude': 106};\r\n latlong['VU'] = {'latitude': -16, 'longitude': 167};\r\n latlong['WF'] = {'latitude': -13.3, 'longitude': -176.2};\r\n latlong['WS'] = {'latitude': -13.5833, 'longitude': -172.3333};\r\n latlong['YE'] = {'latitude': 15, 'longitude': 48};\r\n latlong['YT'] = {'latitude': -12.8333, 'longitude': 45.1667};\r\n latlong['ZA'] = {'latitude': -29, 'longitude': 24};\r\n latlong['ZM'] = {'latitude': -15, 'longitude': 30};\r\n latlong['ZW'] = {'latitude': -20, 'longitude': 30};\r\n\r\n var mapData = [\r\n {'code': 'AF', 'name': 'Afghanistan', 'value': 32358260, 'color': layoutColors.primaryDark},\r\n {'code': 'AL', 'name': 'Albania', 'value': 3215988, 'color': layoutColors.warning},\r\n {'code': 'DZ', 'name': 'Algeria', 'value': 35980193, 'color': layoutColors.danger},\r\n {'code': 'AO', 'name': 'Angola', 'value': 19618432, 'color': layoutColors.danger},\r\n {'code': 'AR', 'name': 'Argentina', 'value': 40764561, 'color': layoutColors.success},\r\n {'code': 'AM', 'name': 'Armenia', 'value': 3100236, 'color': layoutColors.warning},\r\n {'code': 'AU', 'name': 'Australia', 'value': 22605732, 'color': layoutColors.warningDark},\r\n {'code': 'AT', 'name': 'Austria', 'value': 8413429, 'color': layoutColors.warning},\r\n {'code': 'AZ', 'name': 'Azerbaijan', 'value': 9306023, 'color': layoutColors.warning},\r\n {'code': 'BH', 'name': 'Bahrain', 'value': 1323535, 'color': layoutColors.primaryDark},\r\n {'code': 'BD', 'name': 'Bangladesh', 'value': 150493658, 'color': layoutColors.primaryDark},\r\n {'code': 'BY', 'name': 'Belarus', 'value': 9559441, 'color': layoutColors.warning},\r\n {'code': 'BE', 'name': 'Belgium', 'value': 10754056, 'color': layoutColors.warning},\r\n {'code': 'BJ', 'name': 'Benin', 'value': 9099922, 'color': layoutColors.danger},\r\n {'code': 'BT', 'name': 'Bhutan', 'value': 738267, 'color': layoutColors.primaryDark},\r\n {'code': 'BO', 'name': 'Bolivia', 'value': 10088108, 'color': layoutColors.success},\r\n {'code': 'BA', 'name': 'Bosnia and Herzegovina', 'value': 3752228, 'color': layoutColors.warning},\r\n {'code': 'BW', 'name': 'Botswana', 'value': 2030738, 'color': layoutColors.danger},\r\n {'code': 'BR', 'name': 'Brazil', 'value': 196655014, 'color': layoutColors.success},\r\n {'code': 'BN', 'name': 'Brunei', 'value': 405938, 'color': layoutColors.primaryDark},\r\n {'code': 'BG', 'name': 'Bulgaria', 'value': 7446135, 'color': layoutColors.warning},\r\n {'code': 'BF', 'name': 'Burkina Faso', 'value': 16967845, 'color': layoutColors.danger},\r\n {'code': 'BI', 'name': 'Burundi', 'value': 8575172, 'color': layoutColors.danger},\r\n {'code': 'KH', 'name': 'Cambodia', 'value': 14305183, 'color': layoutColors.primaryDark},\r\n {'code': 'CM', 'name': 'Cameroon', 'value': 20030362, 'color': layoutColors.danger},\r\n {'code': 'CA', 'name': 'Canada', 'value': 34349561, 'color': layoutColors.primary},\r\n {'code': 'CV', 'name': 'Cape Verde', 'value': 500585, 'color': layoutColors.danger},\r\n {'code': 'CF', 'name': 'Central African Rep.', 'value': 4486837, 'color': layoutColors.danger},\r\n {'code': 'TD', 'name': 'Chad', 'value': 11525496, 'color': layoutColors.danger},\r\n {'code': 'CL', 'name': 'Chile', 'value': 17269525, 'color': layoutColors.success},\r\n {'code': 'CN', 'name': 'China', 'value': 1347565324, 'color': layoutColors.primaryDark},\r\n {'code': 'CO', 'name': 'Colombia', 'value': 46927125, 'color': layoutColors.success},\r\n {'code': 'KM', 'name': 'Comoros', 'value': 753943, 'color': layoutColors.danger},\r\n {'code': 'CD', 'name': 'Congo, Dem. Rep.', 'value': 67757577, 'color': layoutColors.danger},\r\n {'code': 'CG', 'name': 'Congo, Rep.', 'value': 4139748, 'color': layoutColors.danger},\r\n {'code': 'CR', 'name': 'Costa Rica', 'value': 4726575, 'color': layoutColors.primary},\r\n {'code': 'CI', 'name': 'Cote d\\'Ivoire', 'value': 20152894, 'color': layoutColors.danger},\r\n {'code': 'HR', 'name': 'Croatia', 'value': 4395560, 'color': layoutColors.warning},\r\n {'code': 'CU', 'name': 'Cuba', 'value': 11253665, 'color': layoutColors.primary},\r\n {'code': 'CY', 'name': 'Cyprus', 'value': 1116564, 'color': layoutColors.warning},\r\n {'code': 'CZ', 'name': 'Czech Rep.', 'value': 10534293, 'color': layoutColors.warning},\r\n {'code': 'DK', 'name': 'Denmark', 'value': 5572594, 'color': layoutColors.warning},\r\n {'code': 'DJ', 'name': 'Djibouti', 'value': 905564, 'color': layoutColors.danger},\r\n {'code': 'DO', 'name': 'Dominican Rep.', 'value': 10056181, 'color': layoutColors.primary},\r\n {'code': 'EC', 'name': 'Ecuador', 'value': 14666055, 'color': layoutColors.success},\r\n {'code': 'EG', 'name': 'Egypt', 'value': 82536770, 'color': layoutColors.danger},\r\n {'code': 'SV', 'name': 'El Salvador', 'value': 6227491, 'color': layoutColors.primary},\r\n {'code': 'GQ', 'name': 'Equatorial Guinea', 'value': 720213, 'color': layoutColors.danger},\r\n {'code': 'ER', 'name': 'Eritrea', 'value': 5415280, 'color': layoutColors.danger},\r\n {'code': 'EE', 'name': 'Estonia', 'value': 1340537, 'color': layoutColors.warning},\r\n {'code': 'ET', 'name': 'Ethiopia', 'value': 84734262, 'color': layoutColors.danger},\r\n {'code': 'FJ', 'name': 'Fiji', 'value': 868406, 'color': layoutColors.warningDark},\r\n {'code': 'FI', 'name': 'Finland', 'value': 5384770, 'color': layoutColors.warning},\r\n {'code': 'FR', 'name': 'France', 'value': 63125894, 'color': layoutColors.warning},\r\n {'code': 'GA', 'name': 'Gabon', 'value': 1534262, 'color': layoutColors.danger},\r\n {'code': 'GM', 'name': 'Gambia', 'value': 1776103, 'color': layoutColors.danger},\r\n {'code': 'GE', 'name': 'Georgia', 'value': 4329026, 'color': layoutColors.warning},\r\n {'code': 'DE', 'name': 'Germany', 'value': 82162512, 'color': layoutColors.warning},\r\n {'code': 'GH', 'name': 'Ghana', 'value': 24965816, 'color': layoutColors.danger},\r\n {'code': 'GR', 'name': 'Greece', 'value': 11390031, 'color': layoutColors.warning},\r\n {'code': 'GT', 'name': 'Guatemala', 'value': 14757316, 'color': layoutColors.primary},\r\n {'code': 'GN', 'name': 'Guinea', 'value': 10221808, 'color': layoutColors.danger},\r\n {'code': 'GW', 'name': 'Guinea-Bissau', 'value': 1547061, 'color': layoutColors.danger},\r\n {'code': 'GY', 'name': 'Guyana', 'value': 756040, 'color': layoutColors.success},\r\n {'code': 'HT', 'name': 'Haiti', 'value': 10123787, 'color': layoutColors.primary},\r\n {'code': 'HN', 'name': 'Honduras', 'value': 7754687, 'color': layoutColors.primary},\r\n {'code': 'HK', 'name': 'Hong Kong, China', 'value': 7122187, 'color': layoutColors.primaryDark},\r\n {'code': 'HU', 'name': 'Hungary', 'value': 9966116, 'color': layoutColors.warning},\r\n {'code': 'IS', 'name': 'Iceland', 'value': 324366, 'color': layoutColors.warning},\r\n {'code': 'IN', 'name': 'India', 'value': 1241491960, 'color': layoutColors.primaryDark},\r\n {'code': 'ID', 'name': 'Indonesia', 'value': 242325638, 'color': layoutColors.primaryDark},\r\n {'code': 'IR', 'name': 'Iran', 'value': 74798599, 'color': layoutColors.primaryDark},\r\n {'code': 'IQ', 'name': 'Iraq', 'value': 32664942, 'color': layoutColors.primaryDark},\r\n {'code': 'IE', 'name': 'Ireland', 'value': 4525802, 'color': layoutColors.warning},\r\n {'code': 'IL', 'name': 'Israel', 'value': 7562194, 'color': layoutColors.primaryDark},\r\n {'code': 'IT', 'name': 'Italy', 'value': 60788694, 'color': layoutColors.warning},\r\n {'code': 'JM', 'name': 'Jamaica', 'value': 2751273, 'color': layoutColors.primary},\r\n {'code': 'JP', 'name': 'Japan', 'value': 126497241, 'color': layoutColors.primaryDark},\r\n {'code': 'JO', 'name': 'Jordan', 'value': 6330169, 'color': layoutColors.primaryDark},\r\n {'code': 'KZ', 'name': 'Kazakhstan', 'value': 16206750, 'color': layoutColors.primaryDark},\r\n {'code': 'KE', 'name': 'Kenya', 'value': 41609728, 'color': layoutColors.danger},\r\n {'code': 'KP', 'name': 'Korea, Dem. Rep.', 'value': 24451285, 'color': layoutColors.primaryDark},\r\n {'code': 'KR', 'name': 'Korea, Rep.', 'value': 48391343, 'color': layoutColors.primaryDark},\r\n {'code': 'KW', 'name': 'Kuwait', 'value': 2818042, 'color': layoutColors.primaryDark},\r\n {'code': 'KG', 'name': 'Kyrgyzstan', 'value': 5392580, 'color': layoutColors.primaryDark},\r\n {'code': 'LA', 'name': 'Laos', 'value': 6288037, 'color': layoutColors.primaryDark},\r\n {'code': 'LV', 'name': 'Latvia', 'value': 2243142, 'color': layoutColors.warning},\r\n {'code': 'LB', 'name': 'Lebanon', 'value': 4259405, 'color': layoutColors.primaryDark},\r\n {'code': 'LS', 'name': 'Lesotho', 'value': 2193843, 'color': layoutColors.danger},\r\n {'code': 'LR', 'name': 'Liberia', 'value': 4128572, 'color': layoutColors.danger},\r\n {'code': 'LY', 'name': 'Libya', 'value': 6422772, 'color': layoutColors.danger},\r\n {'code': 'LT', 'name': 'Lithuania', 'value': 3307481, 'color': layoutColors.warning},\r\n {'code': 'LU', 'name': 'Luxembourg', 'value': 515941, 'color': layoutColors.warning},\r\n {'code': 'MK', 'name': 'Macedonia, FYR', 'value': 2063893, 'color': layoutColors.warning},\r\n {'code': 'MG', 'name': 'Madagascar', 'value': 21315135, 'color': layoutColors.danger},\r\n {'code': 'MW', 'name': 'Malawi', 'value': 15380888, 'color': layoutColors.danger},\r\n {'code': 'MY', 'name': 'Malaysia', 'value': 28859154, 'color': layoutColors.primaryDark},\r\n {'code': 'ML', 'name': 'Mali', 'value': 15839538, 'color': layoutColors.danger},\r\n {'code': 'MR', 'name': 'Mauritania', 'value': 3541540, 'color': layoutColors.danger},\r\n {'code': 'MU', 'name': 'Mauritius', 'value': 1306593, 'color': layoutColors.danger},\r\n {'code': 'MX', 'name': 'Mexico', 'value': 114793341, 'color': layoutColors.primary},\r\n {'code': 'MD', 'name': 'Moldova', 'value': 3544864, 'color': layoutColors.warning},\r\n {'code': 'MN', 'name': 'Mongolia', 'value': 2800114, 'color': layoutColors.primaryDark},\r\n {'code': 'ME', 'name': 'Montenegro', 'value': 632261, 'color': layoutColors.warning},\r\n {'code': 'MA', 'name': 'Morocco', 'value': 32272974, 'color': layoutColors.danger},\r\n {'code': 'MZ', 'name': 'Mozambique', 'value': 23929708, 'color': layoutColors.danger},\r\n {'code': 'MM', 'name': 'Myanmar', 'value': 48336763, 'color': layoutColors.primaryDark},\r\n {'code': 'NA', 'name': 'Namibia', 'value': 2324004, 'color': layoutColors.danger},\r\n {'code': 'NP', 'name': 'Nepal', 'value': 30485798, 'color': layoutColors.primaryDark},\r\n {'code': 'NL', 'name': 'Netherlands', 'value': 16664746, 'color': layoutColors.warning},\r\n {'code': 'NZ', 'name': 'New Zealand', 'value': 4414509, 'color': layoutColors.warningDark},\r\n {'code': 'NI', 'name': 'Nicaragua', 'value': 5869859, 'color': layoutColors.primary},\r\n {'code': 'NE', 'name': 'Niger', 'value': 16068994, 'color': layoutColors.danger},\r\n {'code': 'NG', 'name': 'Nigeria', 'value': 162470737, 'color': layoutColors.danger},\r\n {'code': 'NO', 'name': 'Norway', 'value': 4924848, 'color': layoutColors.warning},\r\n {'code': 'OM', 'name': 'Oman', 'value': 2846145, 'color': layoutColors.primaryDark},\r\n {'code': 'PK', 'name': 'Pakistan', 'value': 176745364, 'color': layoutColors.primaryDark},\r\n {'code': 'PA', 'name': 'Panama', 'value': 3571185, 'color': layoutColors.primary},\r\n {'code': 'PG', 'name': 'Papua New Guinea', 'value': 7013829, 'color': layoutColors.warningDark},\r\n {'code': 'PY', 'name': 'Paraguay', 'value': 6568290, 'color': layoutColors.success},\r\n {'code': 'PE', 'name': 'Peru', 'value': 29399817, 'color': layoutColors.success},\r\n {'code': 'PH', 'name': 'Philippines', 'value': 94852030, 'color': layoutColors.primaryDark},\r\n {'code': 'PL', 'name': 'Poland', 'value': 38298949, 'color': layoutColors.warning},\r\n {'code': 'PT', 'name': 'Portugal', 'value': 10689663, 'color': layoutColors.warning},\r\n {'code': 'PR', 'name': 'Puerto Rico', 'value': 3745526, 'color': layoutColors.primary},\r\n {'code': 'QA', 'name': 'Qatar', 'value': 1870041, 'color': layoutColors.primaryDark},\r\n {'code': 'RO', 'name': 'Romania', 'value': 21436495, 'color': layoutColors.warning},\r\n {'code': 'RU', 'name': 'Russia', 'value': 142835555, 'color': layoutColors.warning},\r\n {'code': 'RW', 'name': 'Rwanda', 'value': 10942950, 'color': layoutColors.danger},\r\n {'code': 'SA', 'name': 'Saudi Arabia', 'value': 28082541, 'color': layoutColors.primaryDark},\r\n {'code': 'SN', 'name': 'Senegal', 'value': 12767556, 'color': layoutColors.danger},\r\n {'code': 'RS', 'name': 'Serbia', 'value': 9853969, 'color': layoutColors.warning},\r\n {'code': 'SL', 'name': 'Sierra Leone', 'value': 5997486, 'color': layoutColors.danger},\r\n {'code': 'SG', 'name': 'Singapore', 'value': 5187933, 'color': layoutColors.primaryDark},\r\n {'code': 'SK', 'name': 'Slovak Republic', 'value': 5471502, 'color': layoutColors.warning},\r\n {'code': 'SI', 'name': 'Slovenia', 'value': 2035012, 'color': layoutColors.warning},\r\n {'code': 'SB', 'name': 'Solomon Islands', 'value': 552267, 'color': layoutColors.warningDark},\r\n {'code': 'SO', 'name': 'Somalia', 'value': 9556873, 'color': layoutColors.danger},\r\n {'code': 'ZA', 'name': 'South Africa', 'value': 50459978, 'color': layoutColors.danger},\r\n {'code': 'ES', 'name': 'Spain', 'value': 46454895, 'color': layoutColors.warning},\r\n {'code': 'LK', 'name': 'Sri Lanka', 'value': 21045394, 'color': layoutColors.primaryDark},\r\n {'code': 'SD', 'name': 'Sudan', 'value': 34735288, 'color': layoutColors.danger},\r\n {'code': 'SR', 'name': 'Suriname', 'value': 529419, 'color': layoutColors.success},\r\n {'code': 'SZ', 'name': 'Swaziland', 'value': 1203330, 'color': layoutColors.danger},\r\n {'code': 'SE', 'name': 'Sweden', 'value': 9440747, 'color': layoutColors.warning},\r\n {'code': 'CH', 'name': 'Switzerland', 'value': 7701690, 'color': layoutColors.warning},\r\n {'code': 'SY', 'name': 'Syria', 'value': 20766037, 'color': layoutColors.primaryDark},\r\n {'code': 'TW', 'name': 'Taiwan', 'value': 23072000, 'color': layoutColors.primaryDark},\r\n {'code': 'TJ', 'name': 'Tajikistan', 'value': 6976958, 'color': layoutColors.primaryDark},\r\n {'code': 'TZ', 'name': 'Tanzania', 'value': 46218486, 'color': layoutColors.danger},\r\n {'code': 'TH', 'name': 'Thailand', 'value': 69518555, 'color': layoutColors.primaryDark},\r\n {'code': 'TG', 'name': 'Togo', 'value': 6154813, 'color': layoutColors.danger},\r\n {'code': 'TT', 'name': 'Trinidad and Tobago', 'value': 1346350, 'color': layoutColors.primary},\r\n {'code': 'TN', 'name': 'Tunisia', 'value': 10594057, 'color': layoutColors.danger},\r\n {'code': 'TR', 'name': 'Turkey', 'value': 73639596, 'color': layoutColors.warning},\r\n {'code': 'TM', 'name': 'Turkmenistan', 'value': 5105301, 'color': layoutColors.primaryDark},\r\n {'code': 'UG', 'name': 'Uganda', 'value': 34509205, 'color': layoutColors.danger},\r\n {'code': 'UA', 'name': 'Ukraine', 'value': 45190180, 'color': layoutColors.warning},\r\n {'code': 'AE', 'name': 'United Arab Emirates', 'value': 7890924, 'color': layoutColors.primaryDark},\r\n {'code': 'GB', 'name': 'United Kingdom', 'value': 62417431, 'color': layoutColors.warning},\r\n {'code': 'US', 'name': 'United States', 'value': 313085380, 'color': layoutColors.primary},\r\n {'code': 'UY', 'name': 'Uruguay', 'value': 3380008, 'color': layoutColors.success},\r\n {'code': 'UZ', 'name': 'Uzbekistan', 'value': 27760267, 'color': layoutColors.primaryDark},\r\n {'code': 'VE', 'name': 'Venezuela', 'value': 29436891, 'color': layoutColors.success},\r\n {'code': 'PS', 'name': 'West Bank and Gaza', 'value': 4152369, 'color': layoutColors.primaryDark},\r\n {'code': 'VN', 'name': 'Vietnam', 'value': 88791996, 'color': layoutColors.primaryDark},\r\n {'code': 'YE', 'name': 'Yemen, Rep.', 'value': 24799880, 'color': layoutColors.primaryDark},\r\n {'code': 'ZM', 'name': 'Zambia', 'value': 13474959, 'color': layoutColors.danger},\r\n {'code': 'ZW', 'name': 'Zimbabwe', 'value': 12754378, 'color': layoutColors.danger}\r\n ];\r\n\r\n var map;\r\n var minBulletSize = 3;\r\n var maxBulletSize = 70;\r\n var min = Infinity;\r\n var max = -Infinity;\r\n\r\n // get min and max values\r\n for (var i = 0; i < mapData.length; i++) {\r\n var value = mapData[i].value;\r\n if (value < min) {\r\n min = value;\r\n }\r\n if (value > max) {\r\n max = value;\r\n }\r\n }\r\n\r\n // build map\r\n AmCharts.theme = AmCharts.themes.blur;\r\n map = new AmCharts.AmMap();\r\n\r\n map.addTitle('Population of the World in 2011', 14);\r\n map.addTitle('source: Gapminder', 11);\r\n map.areasSettings = {\r\n unlistedAreasColor: '#000000',\r\n unlistedAreasAlpha: 0.1\r\n };\r\n map.imagesSettings.balloonText = '[[title]]: [[value]]';\r\n map.pathToImages = layoutPaths.images.amMap;\r\n\r\n var dataProvider = {\r\n mapVar: AmCharts.maps.worldLow,\r\n images: []\r\n };\r\n\r\n // it's better to use circle square to show difference between values, not a radius\r\n var maxSquare = maxBulletSize * maxBulletSize * 2 * Math.PI;\r\n var minSquare = minBulletSize * minBulletSize * 2 * Math.PI;\r\n\r\n // create circle for each country\r\n for (var i = 0; i < mapData.length; i++) {\r\n var dataItem = mapData[i];\r\n var value = dataItem.value;\r\n // calculate size of a bubble\r\n var square = (value - min) / (max - min) * (maxSquare - minSquare) + minSquare;\r\n if (square < minSquare) {\r\n square = minSquare;\r\n }\r\n var size = Math.sqrt(square / (Math.PI * 2));\r\n var id = dataItem.code;\r\n\r\n dataProvider.images.push({\r\n type: 'circle',\r\n width: size,\r\n height: size,\r\n color: dataItem.color,\r\n longitude: latlong[id].longitude,\r\n latitude: latlong[id].latitude,\r\n title: dataItem.name,\r\n value: value\r\n });\r\n }\r\n\r\n map.dataProvider = dataProvider;\r\n map.export = {\r\n enabled: true\r\n };\r\n\r\n $timeout(function() {\r\n map.write('map-bubbles');\r\n }, 100);\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.maps')\r\n .controller('MapLinesPageCtrl', MapLinesPageCtrl);\r\n\r\n /** @ngInject */\r\n function MapLinesPageCtrl(baConfig, $timeout, layoutPaths) {\r\n var layoutColors = baConfig.colors;\r\n // svg path for target icon\r\n var targetSVG = 'M9,0C4.029,0,0,4.029,0,9s4.029,9,9,9s9-4.029,9-9S13.971,0,9,0z M9,15.93 c-3.83,0-6.93-3.1-6.93-6.93S5.17,2.07,9,2.07s6.93,3.1,6.93,6.93S12.83,15.93,9,15.93 M12.5,9c0,1.933-1.567,3.5-3.5,3.5S5.5,10.933,5.5,9S7.067,5.5,9,5.5 S12.5,7.067,12.5,9z';\r\n// svg path for plane icon\r\n var planeSVG = 'M19.671,8.11l-2.777,2.777l-3.837-0.861c0.362-0.505,0.916-1.683,0.464-2.135c-0.518-0.517-1.979,0.278-2.305,0.604l-0.913,0.913L7.614,8.804l-2.021,2.021l2.232,1.061l-0.082,0.082l1.701,1.701l0.688-0.687l3.164,1.504L9.571,18.21H6.413l-1.137,1.138l3.6,0.948l1.83,1.83l0.947,3.598l1.137-1.137V21.43l3.725-3.725l1.504,3.164l-0.687,0.687l1.702,1.701l0.081-0.081l1.062,2.231l2.02-2.02l-0.604-2.689l0.912-0.912c0.326-0.326,1.121-1.789,0.604-2.306c-0.452-0.452-1.63,0.101-2.135,0.464l-0.861-3.838l2.777-2.777c0.947-0.947,3.599-4.862,2.62-5.839C24.533,4.512,20.618,7.163,19.671,8.11z';\r\n $timeout(function() {\r\n var map = AmCharts.makeChart( 'map-lines', {\r\n type: 'map',\r\n theme: 'blur',\r\n dataProvider: {\r\n map: 'worldLow',\r\n linkToObject: 'london',\r\n images: [ {\r\n id: 'london',\r\n svgPath: targetSVG,\r\n title: 'London',\r\n latitude: 51.5002,\r\n longitude: -0.1262,\r\n scale: 1.5,\r\n zoomLevel: 2.74,\r\n zoomLongitude: -20.1341,\r\n zoomLatitude: 49.1712,\r\n\r\n lines: [ {\r\n latitudes: [ 51.5002, 50.4422 ],\r\n longitudes: [ -0.1262, 30.5367 ]\r\n }, {\r\n latitudes: [ 51.5002, 46.9480 ],\r\n longitudes: [ -0.1262, 7.4481 ]\r\n }, {\r\n latitudes: [ 51.5002, 59.3328 ],\r\n longitudes: [ -0.1262, 18.0645 ]\r\n }, {\r\n latitudes: [ 51.5002, 40.4167 ],\r\n longitudes: [ -0.1262, -3.7033 ]\r\n }, {\r\n latitudes: [ 51.5002, 46.0514 ],\r\n longitudes: [ -0.1262, 14.5060 ]\r\n }, {\r\n latitudes: [ 51.5002, 48.2116 ],\r\n longitudes: [ -0.1262, 17.1547 ]\r\n }, {\r\n latitudes: [ 51.5002, 44.8048 ],\r\n longitudes: [ -0.1262, 20.4781 ]\r\n }, {\r\n latitudes: [ 51.5002, 55.7558 ],\r\n longitudes: [ -0.1262, 37.6176 ]\r\n }, {\r\n latitudes: [ 51.5002, 38.7072 ],\r\n longitudes: [ -0.1262, -9.1355 ]\r\n }, {\r\n latitudes: [ 51.5002, 54.6896 ],\r\n longitudes: [ -0.1262, 25.2799 ]\r\n }, {\r\n latitudes: [ 51.5002, 64.1353 ],\r\n longitudes: [ -0.1262, -21.8952 ]\r\n }, {\r\n latitudes: [ 51.5002, 40.4300 ],\r\n longitudes: [ -0.1262, -74.0000 ]\r\n } ],\r\n\r\n images: [ {\r\n label: 'Flights from London',\r\n svgPath: planeSVG,\r\n left: 100,\r\n top: 45,\r\n labelShiftY: 5,\r\n labelShiftX: 5,\r\n color: layoutColors.defaultText,\r\n labelColor: layoutColors.defaultText,\r\n labelRollOverColor: layoutColors.defaultText,\r\n labelFontSize: 20\r\n }, {\r\n label: 'show flights from Vilnius',\r\n left: 106,\r\n top: 70,\r\n labelColor: layoutColors.defaultText,\r\n labelRollOverColor: layoutColors.defaultText,\r\n labelFontSize: 11,\r\n linkToObject: 'vilnius'\r\n } ]\r\n },\r\n\r\n {\r\n id: 'vilnius',\r\n svgPath: targetSVG,\r\n title: 'Vilnius',\r\n latitude: 54.6896,\r\n longitude: 25.2799,\r\n scale: 1.5,\r\n zoomLevel: 4.92,\r\n zoomLongitude: 15.4492,\r\n zoomLatitude: 50.2631,\r\n\r\n lines: [ {\r\n latitudes: [ 54.6896, 50.8371 ],\r\n longitudes: [ 25.2799, 4.3676 ]\r\n }, {\r\n latitudes: [ 54.6896, 59.9138 ],\r\n longitudes: [ 25.2799, 10.7387 ]\r\n }, {\r\n latitudes: [ 54.6896, 40.4167 ],\r\n longitudes: [ 25.2799, -3.7033 ]\r\n }, {\r\n latitudes: [ 54.6896, 50.0878 ],\r\n longitudes: [ 25.2799, 14.4205 ]\r\n }, {\r\n latitudes: [ 54.6896, 48.2116 ],\r\n longitudes: [ 25.2799, 17.1547 ]\r\n }, {\r\n latitudes: [ 54.6896, 44.8048 ],\r\n longitudes: [ 25.2799, 20.4781 ]\r\n }, {\r\n latitudes: [ 54.6896, 55.7558 ],\r\n longitudes: [ 25.2799, 37.6176 ]\r\n }, {\r\n latitudes: [ 54.6896, 37.9792 ],\r\n longitudes: [ 25.2799, 23.7166 ]\r\n }, {\r\n latitudes: [ 54.6896, 54.6896 ],\r\n longitudes: [ 25.2799, 25.2799 ]\r\n }, {\r\n latitudes: [ 54.6896, 51.5002 ],\r\n longitudes: [ 25.2799, -0.1262 ]\r\n }, {\r\n latitudes: [ 54.6896, 53.3441 ],\r\n longitudes: [ 25.2799, -6.2675 ]\r\n } ],\r\n\r\n images: [ {\r\n label: 'Flights from Vilnius',\r\n svgPath: planeSVG,\r\n left: 100,\r\n top: 45,\r\n labelShiftY: 5,\r\n labelShiftX: 5,\r\n color: layoutColors.defaultText,\r\n labelColor: layoutColors.defaultText,\r\n labelRollOverColor: layoutColors.defaultText,\r\n labelFontSize: 20\r\n }, {\r\n label: 'show flights from London',\r\n left: 106,\r\n top: 70,\r\n labelColor: layoutColors.defaultText,\r\n labelRollOverColor: layoutColors.defaultText,\r\n labelFontSize: 11,\r\n linkToObject: 'london'\r\n } ]\r\n }, {\r\n svgPath: targetSVG,\r\n title: 'Brussels',\r\n latitude: 50.8371,\r\n longitude: 4.3676\r\n }, {\r\n svgPath: targetSVG,\r\n title: 'Prague',\r\n latitude: 50.0878,\r\n longitude: 14.4205\r\n }, {\r\n svgPath: targetSVG,\r\n title: 'Athens',\r\n latitude: 37.9792,\r\n longitude: 23.7166\r\n }, {\r\n svgPath: targetSVG,\r\n title: 'Reykjavik',\r\n latitude: 64.1353,\r\n longitude: -21.8952\r\n }, {\r\n svgPath: targetSVG,\r\n title: 'Dublin',\r\n latitude: 53.3441,\r\n longitude: -6.2675\r\n }, {\r\n svgPath: targetSVG,\r\n title: 'Oslo',\r\n latitude: 59.9138,\r\n longitude: 10.7387\r\n }, {\r\n svgPath: targetSVG,\r\n title: 'Lisbon',\r\n latitude: 38.7072,\r\n longitude: -9.1355\r\n }, {\r\n svgPath: targetSVG,\r\n title: 'Moscow',\r\n latitude: 55.7558,\r\n longitude: 37.6176\r\n }, {\r\n svgPath: targetSVG,\r\n title: 'Belgrade',\r\n latitude: 44.8048,\r\n longitude: 20.4781\r\n }, {\r\n svgPath: targetSVG,\r\n title: 'Bratislava',\r\n latitude: 48.2116,\r\n longitude: 17.1547\r\n }, {\r\n svgPath: targetSVG,\r\n title: 'Ljubljana',\r\n latitude: 46.0514,\r\n longitude: 14.5060\r\n }, {\r\n svgPath: targetSVG,\r\n title: 'Madrid',\r\n latitude: 40.4167,\r\n longitude: -3.7033\r\n }, {\r\n svgPath: targetSVG,\r\n title: 'Stockholm',\r\n latitude: 59.3328,\r\n longitude: 18.0645\r\n }, {\r\n svgPath: targetSVG,\r\n title: 'Bern',\r\n latitude: 46.9480,\r\n longitude: 7.4481\r\n }, {\r\n svgPath: targetSVG,\r\n title: 'Kiev',\r\n latitude: 50.4422,\r\n longitude: 30.5367\r\n }, {\r\n svgPath: targetSVG,\r\n title: 'Paris',\r\n latitude: 48.8567,\r\n longitude: 2.3510\r\n }, {\r\n svgPath: targetSVG,\r\n title: 'New York',\r\n latitude: 40.43,\r\n longitude: -74\r\n }\r\n ]\r\n },\r\n\r\n areasSettings: {\r\n unlistedAreasColor: layoutColors.info\r\n },\r\n\r\n imagesSettings: {\r\n color: layoutColors.warningLight,\r\n selectedColor: layoutColors.warning\r\n },\r\n\r\n linesSettings: {\r\n color: layoutColors.warningLight,\r\n alpha: 0.8\r\n },\r\n\r\n\r\n backgroundZoomsToTop: true,\r\n linesAboveImages: true,\r\n\r\n export: {\r\n 'enabled': true\r\n },\r\n pathToImages: layoutPaths.images.amMap\r\n } );\r\n }, 100);\r\n\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.ui.buttons')\r\n .controller('ButtonPageCtrl', ButtonPageCtrl);\r\n\r\n /** @ngInject */\r\n function ButtonPageCtrl($scope, $timeout) {\r\n $scope.progressFunction = function() {\r\n return $timeout(function() {}, 3000);\r\n };\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.ui.icons')\r\n .controller('IconsPageCtrl', IconsPageCtrl);\r\n\r\n /** @ngInject */\r\n function IconsPageCtrl($scope) {\r\n $scope.icons = {\r\n kameleonIcons: [\r\n {\r\n name: 'Beach',\r\n img: 'Beach'\r\n },\r\n {\r\n name: 'Bus',\r\n img: 'Bus'\r\n },\r\n {\r\n name: 'Cheese',\r\n img: 'Cheese'\r\n },\r\n {\r\n name: 'Desert',\r\n img: 'Desert'\r\n },\r\n {\r\n name: 'Images',\r\n img: 'Images'\r\n },\r\n {\r\n name: 'Magician',\r\n img: 'Magician'\r\n },\r\n {\r\n name: 'Makeup',\r\n img: 'Makeup'\r\n },\r\n {\r\n name: 'Programming',\r\n img: 'Programming'\r\n },\r\n {\r\n name: 'Shop',\r\n img: 'Shop'\r\n },\r\n {\r\n name: 'Surfer',\r\n img: 'Surfer'\r\n },\r\n {\r\n name: 'Phone Booth',\r\n img: 'Phone-Booth'\r\n },\r\n {\r\n name: 'Ninja',\r\n img: 'Ninja'\r\n },\r\n {\r\n name: 'Apartment',\r\n img: 'Apartment'\r\n },\r\n {\r\n name: 'Batman',\r\n img: 'Batman'\r\n },\r\n {\r\n name: 'Medal',\r\n img: 'Medal-2'\r\n },\r\n {\r\n name: 'Money',\r\n img: 'Money-Increase'\r\n },\r\n {\r\n name: 'Street View',\r\n img: 'Street-View'\r\n },\r\n {\r\n name: 'Student',\r\n img: 'Student-3'\r\n },\r\n {\r\n name: 'Bell',\r\n img: 'Bell'\r\n },\r\n {\r\n name: 'Woman',\r\n img: 'Boss-5'\r\n },\r\n {\r\n name: 'Euro',\r\n img: 'Euro-Coin'\r\n },\r\n {\r\n name: 'Chessboard',\r\n img: 'Chessboard'\r\n },\r\n {\r\n name: 'Burglar',\r\n img: 'Burglar'\r\n },\r\n {\r\n name: 'Dna',\r\n img: 'Dna'\r\n },\r\n {\r\n name: 'Clipboard Plan',\r\n img: 'Clipboard-Plan'\r\n },\r\n {\r\n name: 'Boss',\r\n img: 'Boss-3'\r\n },\r\n {\r\n name: 'Key',\r\n img: 'Key'\r\n },\r\n {\r\n name: 'Surgeon',\r\n img: 'Surgeon'\r\n },\r\n {\r\n name: 'Hacker',\r\n img: 'Hacker'\r\n },\r\n {\r\n name: 'Santa',\r\n img: 'Santa'\r\n }\r\n ],\r\n kameleonRoundedIcons: [\r\n {\r\n color: 'success',\r\n img: 'Apartment',\r\n name: 'Apartment'\r\n },\r\n {\r\n color: 'warning',\r\n img: 'Bus',\r\n name: 'Bus'\r\n },\r\n {\r\n color: 'primary',\r\n img: 'Checklist',\r\n name: 'Checklist'\r\n },\r\n {\r\n color: 'warning',\r\n img: 'Desert',\r\n name: 'Desert'\r\n },\r\n {\r\n color: 'danger',\r\n img: 'Laptop-Signal',\r\n name: 'Laptop Signal'\r\n },\r\n {\r\n color: 'info',\r\n img: 'Love-Letter',\r\n name: 'Love Letter'\r\n },\r\n {\r\n color: 'success',\r\n img: 'Makeup',\r\n name: 'Makeup'\r\n },\r\n {\r\n color: 'primary',\r\n img: 'Santa',\r\n name: 'Santa'\r\n },\r\n {\r\n color: 'success',\r\n img: 'Surfer',\r\n name: 'Surfer'\r\n },\r\n {\r\n color: 'info',\r\n img: 'Vector',\r\n name: 'Vector'\r\n },\r\n {\r\n color: 'warning',\r\n img: 'Money-Increase',\r\n name: 'Money Increase'\r\n },\r\n {\r\n color: 'info',\r\n img: 'Alien',\r\n name: 'Alien'\r\n },\r\n {\r\n color: 'danger',\r\n img: 'Online-Shopping',\r\n name: 'Online Shopping'\r\n },\r\n {\r\n color: 'warning',\r\n img: 'Euro-Coin',\r\n name: 'Euro'\r\n },\r\n {\r\n color: 'info',\r\n img: 'Boss-3',\r\n name: 'Boss'\r\n }\r\n ],\r\n ionicons: ['ion-ionic', 'ion-arrow-right-b', 'ion-arrow-down-b', 'ion-arrow-left-b', 'ion-arrow-up-c', 'ion-arrow-right-c', 'ion-arrow-down-c', 'ion-arrow-left-c', 'ion-arrow-return-right', 'ion-arrow-return-left', 'ion-arrow-swap', 'ion-arrow-shrink', 'ion-arrow-expand', 'ion-arrow-move', 'ion-arrow-resize', 'ion-chevron-up', 'ion-chevron-right', 'ion-chevron-down', 'ion-chevron-left', 'ion-navicon-round', 'ion-navicon', 'ion-drag', 'ion-log-in', 'ion-log-out', 'ion-checkmark-round', 'ion-checkmark', 'ion-checkmark-circled', 'ion-close-round', 'ion-plus-round', 'ion-minus-round', 'ion-information', 'ion-help', 'ion-backspace-outline', 'ion-help-buoy', 'ion-asterisk', 'ion-alert', 'ion-alert-circled', 'ion-refresh', 'ion-loop', 'ion-shuffle', 'ion-home', 'ion-search', 'ion-flag', 'ion-star', 'ion-heart', 'ion-heart-broken', 'ion-gear-a', 'ion-gear-b', 'ion-toggle-filled', 'ion-toggle', 'ion-settings', 'ion-wrench', 'ion-hammer', 'ion-edit', 'ion-trash-a', 'ion-trash-b', 'ion-document', 'ion-document-text', 'ion-clipboard', 'ion-scissors', 'ion-funnel', 'ion-bookmark', 'ion-email', 'ion-email-unread', 'ion-folder', 'ion-filing', 'ion-archive', 'ion-reply', 'ion-reply-all', 'ion-forward'],\r\n fontAwesomeIcons: ['fa fa-adjust', 'fa fa-anchor', 'fa fa-archive', 'fa fa-area-chart', 'fa fa-arrows', 'fa fa-arrows-h', 'fa fa-arrows-v', 'fa fa-asterisk', 'fa fa-at', 'fa fa-automobile', 'fa fa-ban', 'fa fa-bank', 'fa fa-bar-chart', 'fa fa-bar-chart-o', 'fa fa-barcode', 'fa fa-bars', 'fa fa-bed', 'fa fa-beer', 'fa fa-bell', 'fa fa-bell-o', 'fa fa-bell-slash', 'fa fa-bell-slash-o', 'fa fa-bicycle', 'fa fa-binoculars', 'fa fa-birthday-cake', 'fa fa-bolt', 'fa fa-bomb', 'fa fa-book', 'fa fa-bookmark', 'fa fa-bookmark-o', 'fa fa-briefcase', 'fa fa-bug', 'fa fa-building', 'fa fa-building-o', 'fa fa-bullhorn'],\r\n socicon: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', ',', ';', ':', '+', '@', '=', '-', '^', '?', '$', '*', '&', '(', '#', '.', '_', ']', ')', '\\'', '\"', '}', '{']\r\n }\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author a.demeshko\r\n * created on 18.01.2016\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.ui.notifications')\r\n .controller('ModalsPageCtrl', ModalsPageCtrl);\r\n\r\n /** @ngInject */\r\n function ModalsPageCtrl($scope, $uibModal, baProgressModal) {\r\n $scope.open = function (page, size) {\r\n $uibModal.open({\r\n animation: true,\r\n templateUrl: page,\r\n size: size,\r\n resolve: {\r\n items: function () {\r\n return $scope.items;\r\n }\r\n }\r\n });\r\n };\r\n $scope.openProgressDialog = baProgressModal.open;\r\n }\r\n\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.ui.notifications')\r\n .controller('NotificationsPageCtrl', NotificationsPageCtrl);\r\n\r\n /** @ngInject */\r\n function NotificationsPageCtrl($scope, toastr, toastrConfig) {\r\n var defaultConfig = angular.copy(toastrConfig);\r\n $scope.types = ['success', 'error', 'info', 'warning'];\r\n\r\n $scope.quotes = [\r\n {\r\n title: 'Come to Freenode',\r\n message: 'We rock at #angularjs',\r\n options: {\r\n allowHtml: true\r\n }\r\n },\r\n {\r\n title: 'Looking for bootstrap?',\r\n message: 'Try ui-bootstrap out!'\r\n },\r\n {\r\n title: 'Wants a better router?',\r\n message: 'We have you covered with ui-router'\r\n },\r\n {\r\n title: 'Angular 2',\r\n message: 'Is gonna rock the world'\r\n },\r\n {\r\n title: null,\r\n message: 'Titles are not always needed'\r\n },\r\n {\r\n title: null,\r\n message: 'Toastr rock!'\r\n },\r\n {\r\n title: 'What about nice html?',\r\n message: 'Sure you can!',\r\n options: {\r\n allowHtml: true\r\n }\r\n },\r\n {\r\n title: 'Ionic is cool',\r\n message: 'Best mobile framework ever',\r\n options: {\r\n allowHtml: true\r\n }\r\n }\r\n ];\r\n\r\n var openedToasts = [];\r\n $scope.options = {\r\n autoDismiss: false,\r\n positionClass: 'toast-top-right',\r\n type: 'info',\r\n timeOut: '5000',\r\n extendedTimeOut: '2000',\r\n allowHtml: false,\r\n closeButton: false,\r\n tapToDismiss: true,\r\n progressBar: false,\r\n newestOnTop: true,\r\n maxOpened: 0,\r\n preventDuplicates: false,\r\n preventOpenDuplicates: false,\r\n title: \"Some title here\",\r\n msg: \"Type your message here\"\r\n };\r\n\r\n\r\n $scope.clearLastToast = function () {\r\n var toast = openedToasts.pop();\r\n toastr.clear(toast);\r\n };\r\n\r\n $scope.clearToasts = function () {\r\n toastr.clear();\r\n };\r\n\r\n $scope.openRandomToast = function () {\r\n var type = Math.floor(Math.random() * $scope.types.length);\r\n var quote = Math.floor(Math.random() * $scope.quotes.length);\r\n var toastType = $scope.types[type];\r\n var toastQuote = $scope.quotes[quote];\r\n openedToasts.push(toastr[toastType](toastQuote.message, toastQuote.title, toastQuote.options));\r\n $scope.optionsStr = \"toastr.\" + toastType + \"(\\'\" + toastQuote.message + \"\\', \\'\" + toastQuote.title + \"', \" + JSON.stringify(toastQuote.options || {}, null, 2) + \")\";\r\n };\r\n\r\n $scope.openToast = function () {\r\n angular.extend(toastrConfig, $scope.options);\r\n openedToasts.push(toastr[$scope.options.type]($scope.options.msg, $scope.options.title));\r\n var strOptions = {};\r\n for (var o in $scope.options) if (o != 'msg' && o != 'title')strOptions[o] = $scope.options[o];\r\n $scope.optionsStr = \"toastr.\" + $scope.options.type + \"(\\'\" + $scope.options.msg + \"\\', \\'\" + $scope.options.title + \"\\', \" + JSON.stringify(strOptions, null, 2) + \")\";\r\n };\r\n\r\n $scope.$on('$destroy', function iVeBeenDismissed() {\r\n angular.extend(toastrConfig, defaultConfig);\r\n })\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme.components')\r\n .directive('backTop', backTop);\r\n\r\n /** @ngInject */\r\n function backTop() {\r\n return {\r\n restrict: 'E',\r\n templateUrl: 'app/theme/components/backTop/backTop.html',\r\n controller: function () {\r\n $('#backTop').backTop({\r\n 'position': 200,\r\n 'speed': 100\r\n });\r\n }\r\n };\r\n }\r\n\r\n})();\n/**\r\n * @author v.lugovsky\r\n * created on 23.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n /**\r\n * Includes basic panel layout inside of current element.\r\n */\r\n angular.module('BlurAdmin.theme')\r\n .directive('baPanel', baPanel);\r\n\r\n /** @ngInject */\r\n function baPanel(baPanel, baConfig) {\r\n return angular.extend({}, baPanel, {\r\n template: function(el, attrs) {\r\n var res = '
';\r\n res += baPanel.template(el, attrs);\r\n res += '
';\r\n return res;\r\n }\r\n });\r\n }\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 23.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme')\r\n .factory('baPanel', baPanel);\r\n\r\n /** @ngInject */\r\n function baPanel() {\r\n\r\n /** Base baPanel directive */\r\n return {\r\n restrict: 'A',\r\n transclude: true,\r\n template: function(elem, attrs) {\r\n var res = '
';\r\n if (attrs.baPanelTitle) {\r\n var titleTpl = '

' + attrs.baPanelTitle + '

';\r\n res = titleTpl + res; // title should be before\r\n }\r\n\r\n return res;\r\n }\r\n };\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 15.01.2016\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme')\r\n .directive('baPanelBlur', baPanelBlur);\r\n\r\n /** @ngInject */\r\n function baPanelBlur(baPanelBlurHelper, $window, $rootScope) {\r\n var bodyBgSize;\r\n\r\n baPanelBlurHelper.bodyBgLoad().then(function() {\r\n bodyBgSize = baPanelBlurHelper.getBodyBgImageSizes();\r\n });\r\n\r\n $window.addEventListener('resize', function() {\r\n bodyBgSize = baPanelBlurHelper.getBodyBgImageSizes();\r\n });\r\n\r\n return {\r\n restrict: 'A',\r\n link: function($scope, elem) {\r\n if(!$rootScope.$isMobile) {\r\n baPanelBlurHelper.bodyBgLoad().then(function () {\r\n setTimeout(recalculatePanelStyle);\r\n });\r\n $window.addEventListener('resize', recalculatePanelStyle);\r\n\r\n $scope.$on('$destroy', function () {\r\n $window.removeEventListener('resize', recalculatePanelStyle);\r\n });\r\n }\r\n\r\n function recalculatePanelStyle() {\r\n if (!bodyBgSize) {\r\n return;\r\n }\r\n elem.css({\r\n backgroundSize: Math.round(bodyBgSize.width) + 'px ' + Math.round(bodyBgSize.height) + 'px',\r\n backgroundPosition: Math.floor(bodyBgSize.positionX) + 'px ' + Math.floor(bodyBgSize.positionY) + 'px'\r\n });\r\n }\r\n\r\n }\r\n };\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 15.01.2016\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme')\r\n .service('baPanelBlurHelper', baPanelBlurHelper);\r\n\r\n /** @ngInject */\r\n function baPanelBlurHelper($q) {\r\n var res = $q.defer();\r\n var computedStyle = getComputedStyle(document.body, ':before');\r\n var image = new Image();\r\n image.src = computedStyle.backgroundImage.replace(/url\\((['\"])?(.*?)\\1\\)/gi, '$2');\r\n image.onerror = function() {\r\n res.reject();\r\n };\r\n image.onload = function() {\r\n res.resolve();\r\n };\r\n\r\n this.bodyBgLoad = function() {\r\n return res.promise;\r\n };\r\n\r\n this.getBodyBgImageSizes = function() {\r\n var elemW = document.documentElement.clientWidth;\r\n var elemH = document.documentElement.clientHeight;\r\n if(elemW <= 640) return;\r\n var imgRatio = (image.height / image.width); // original img ratio\r\n var containerRatio = (elemH / elemW); // container ratio\r\n\r\n var finalHeight, finalWidth;\r\n if (containerRatio > imgRatio) {\r\n finalHeight = elemH;\r\n finalWidth = (elemH / imgRatio);\r\n } else {\r\n finalWidth = elemW;\r\n finalHeight = (elemW * imgRatio);\r\n }\r\n return { width: finalWidth, height: finalHeight, positionX: (elemW - finalWidth)/2, positionY: (elemH - finalHeight)/2};\r\n };\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 23.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n /**\r\n * Represents current element as panel, adding all necessary classes.\r\n */\r\n angular.module('BlurAdmin.theme')\r\n .directive('baPanelSelf', baPanelSelf);\r\n\r\n /** @ngInject */\r\n function baPanelSelf(baPanel) {\r\n return angular.extend({}, baPanel, {\r\n link: function(scope, el, attrs) {\r\n el.addClass('panel panel-white');\r\n if (attrs.baPanelClass) {\r\n el.addClass(attrs.baPanelClass);\r\n }\r\n }\r\n });\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme.components')\r\n .directive('baSidebar', baSidebar);\r\n\r\n /** @ngInject */\r\n function baSidebar($timeout, baSidebarService, baUtil, layoutSizes) {\r\n var jqWindow = $(window);\r\n return {\r\n restrict: 'E',\r\n templateUrl: 'app/theme/components/baSidebar/ba-sidebar.html',\r\n controller: 'BaSidebarCtrl',\r\n link: function(scope, el) {\r\n\r\n scope.menuHeight = el[0].childNodes[0].clientHeight - 84;\r\n jqWindow.on('click', _onWindowClick);\r\n jqWindow.on('resize', _onWindowResize);\r\n\r\n scope.$on('$destroy', function() {\r\n jqWindow.off('click', _onWindowClick);\r\n jqWindow.off('resize', _onWindowResize);\r\n });\r\n\r\n function _onWindowClick($evt) {\r\n if (!baUtil.isDescendant(el[0], $evt.target) &&\r\n !$evt.originalEvent.$sidebarEventProcessed &&\r\n !baSidebarService.isMenuCollapsed() &&\r\n baSidebarService.canSidebarBeHidden()) {\r\n $evt.originalEvent.$sidebarEventProcessed = true;\r\n $timeout(function () {\r\n baSidebarService.setMenuCollapsed(true);\r\n }, 10);\r\n }\r\n }\r\n\r\n // watch window resize to change menu collapsed state if needed\r\n function _onWindowResize() {\r\n var newMenuCollapsed = baSidebarService.shouldMenuBeCollapsed();\r\n var newMenuHeight = _calculateMenuHeight();\r\n if (newMenuCollapsed != baSidebarService.isMenuCollapsed() || scope.menuHeight != newMenuHeight) {\r\n scope.$apply(function () {\r\n scope.menuHeight = newMenuHeight;\r\n baSidebarService.setMenuCollapsed(newMenuCollapsed)\r\n });\r\n }\r\n }\r\n\r\n function _calculateMenuHeight() {\r\n return el[0].childNodes[0].clientHeight - 84;\r\n }\r\n }\r\n };\r\n }\r\n\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme.components')\r\n .provider('baSidebarService', baSidebarServiceProvider);\r\n\r\n /** @ngInject */\r\n function baSidebarServiceProvider() {\r\n var staticMenuItems = [];\r\n\r\n this.addStaticItem = function() {\r\n staticMenuItems.push.apply(staticMenuItems, arguments);\r\n };\r\n\r\n /** @ngInject */\r\n this.$get = function($state, layoutSizes) {\r\n return new _factory();\r\n\r\n function _factory() {\r\n var isMenuCollapsed = shouldMenuBeCollapsed();\r\n\r\n this.getMenuItems = function() {\r\n var states = defineMenuItemStates();\r\n var menuItems = states.filter(function(item) {\r\n return item.level == 0;\r\n });\r\n\r\n menuItems.forEach(function(item) {\r\n var children = states.filter(function(child) {\r\n return child.level == 1 && child.name.indexOf(item.name) === 0;\r\n });\r\n item.subMenu = children.length ? children : null;\r\n });\r\n\r\n return menuItems.concat(staticMenuItems);\r\n };\r\n\r\n this.shouldMenuBeCollapsed = shouldMenuBeCollapsed;\r\n this.canSidebarBeHidden = canSidebarBeHidden;\r\n\r\n this.setMenuCollapsed = function(isCollapsed) {\r\n isMenuCollapsed = isCollapsed;\r\n };\r\n\r\n this.isMenuCollapsed = function() {\r\n return isMenuCollapsed;\r\n };\r\n\r\n this.toggleMenuCollapsed = function() {\r\n isMenuCollapsed = !isMenuCollapsed;\r\n };\r\n\r\n this.getAllStateRefsRecursive = function(item) {\r\n var result = [];\r\n _iterateSubItems(item);\r\n return result;\r\n\r\n function _iterateSubItems(currentItem) {\r\n currentItem.subMenu && currentItem.subMenu.forEach(function(subItem) {\r\n subItem.stateRef && result.push(subItem.stateRef);\r\n _iterateSubItems(subItem);\r\n });\r\n }\r\n };\r\n\r\n function defineMenuItemStates() {\r\n return $state.get()\r\n .filter(function(s) {\r\n return s.sidebarMeta;\r\n })\r\n .map(function(s) {\r\n var meta = s.sidebarMeta;\r\n return {\r\n name: s.name,\r\n title: s.title,\r\n level: (s.name.match(/\\./g) || []).length,\r\n order: meta.order,\r\n icon: meta.icon,\r\n stateRef: s.name,\r\n };\r\n })\r\n .sort(function(a, b) {\r\n return (a.level - b.level) * 100 + a.order - b.order;\r\n });\r\n }\r\n\r\n function shouldMenuBeCollapsed() {\r\n return window.innerWidth <= layoutSizes.resWidthCollapseSidebar;\r\n }\r\n\r\n function canSidebarBeHidden() {\r\n return window.innerWidth <= layoutSizes.resWidthHideSidebar;\r\n }\r\n }\r\n\r\n };\r\n\r\n }\r\n})();\r\n\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme.components')\r\n .controller('BaSidebarCtrl', BaSidebarCtrl);\r\n\r\n /** @ngInject */\r\n function BaSidebarCtrl($scope, baSidebarService) {\r\n\r\n $scope.menuItems = baSidebarService.getMenuItems();\r\n $scope.defaultSidebarState = $scope.menuItems[0].stateRef;\r\n\r\n $scope.hoverItem = function ($event) {\r\n $scope.showHoverElem = true;\r\n $scope.hoverElemHeight = $event.currentTarget.clientHeight;\r\n var menuTopValue = 66;\r\n $scope.hoverElemTop = $event.currentTarget.getBoundingClientRect().top - menuTopValue;\r\n };\r\n\r\n $scope.$on('$stateChangeSuccess', function () {\r\n if (baSidebarService.canSidebarBeHidden()) {\r\n baSidebarService.setMenuCollapsed(true);\r\n }\r\n });\r\n }\r\n})();\n/**\r\n * @author v.lugovsky\r\n * created on 03.05.2016\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme.components')\r\n .directive('baSidebarToggleMenu', baSidebarToggleMenu)\r\n .directive('baSidebarCollapseMenu', baSidebarCollapseMenu)\r\n .directive('baSidebarTogglingItem', baSidebarTogglingItem)\r\n .controller('BaSidebarTogglingItemCtrl', BaSidebarTogglingItemCtrl)\r\n .directive('baUiSrefTogglingSubmenu', baUiSrefTogglingSubmenu)\r\n .directive('baUiSrefToggler', baUiSrefToggler);\r\n\r\n /** @ngInject */\r\n function baSidebarToggleMenu(baSidebarService) {\r\n return {\r\n restrict: 'A',\r\n link: function(scope, elem) {\r\n elem.on('click', function($evt) {\r\n $evt.originalEvent.$sidebarEventProcessed = true;\r\n scope.$apply(function() {\r\n baSidebarService.toggleMenuCollapsed();\r\n });\r\n });\r\n }\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function baSidebarCollapseMenu(baSidebarService) {\r\n return {\r\n restrict: 'A',\r\n link: function(scope, elem) {\r\n elem.on('click', function($evt) {\r\n $evt.originalEvent.$sidebarEventProcessed = true;\r\n if (!baSidebarService.isMenuCollapsed()) {\r\n scope.$apply(function() {\r\n baSidebarService.setMenuCollapsed(true);\r\n });\r\n }\r\n });\r\n }\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function baSidebarTogglingItem() {\r\n return {\r\n restrict: 'A',\r\n controller: 'BaSidebarTogglingItemCtrl'\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function BaSidebarTogglingItemCtrl($scope, $element, $attrs, $state, baSidebarService) {\r\n var vm = this;\r\n var menuItem = vm.$$menuItem = $scope.$eval($attrs.baSidebarTogglingItem);\r\n if (menuItem && menuItem.subMenu && menuItem.subMenu.length) {\r\n vm.$$expandSubmenu = function() { console.warn('$$expandMenu should be overwritten by baUiSrefTogglingSubmenu') };\r\n vm.$$collapseSubmenu = function() { console.warn('$$collapseSubmenu should be overwritten by baUiSrefTogglingSubmenu') };\r\n\r\n var subItemsStateRefs = baSidebarService.getAllStateRefsRecursive(menuItem);\r\n\r\n vm.$expand = function() {\r\n vm.$$expandSubmenu();\r\n $element.addClass('ba-sidebar-item-expanded');\r\n };\r\n\r\n vm.$collapse = function() {\r\n vm.$$collapseSubmenu();\r\n $element.removeClass('ba-sidebar-item-expanded');\r\n };\r\n\r\n vm.$toggle = function() {\r\n $element.hasClass('ba-sidebar-item-expanded') ?\r\n vm.$collapse() :\r\n vm.$expand();\r\n };\r\n\r\n if (_isState($state.current)) {\r\n $element.addClass('ba-sidebar-item-expanded');\r\n }\r\n\r\n $scope.$on('$stateChangeStart', function (event, toState) {\r\n if (!_isState(toState) && $element.hasClass('ba-sidebar-item-expanded')) {\r\n vm.$collapse();\r\n $element.removeClass('ba-sidebar-item-expanded');\r\n }\r\n });\r\n\r\n $scope.$on('$stateChangeSuccess', function (event, toState) {\r\n if (_isState(toState) && !$element.hasClass('ba-sidebar-item-expanded')) {\r\n vm.$expand();\r\n $element.addClass('ba-sidebar-item-expanded');\r\n }\r\n });\r\n }\r\n\r\n function _isState(state) {\r\n return state && subItemsStateRefs.some(function(subItemState) {\r\n return state.name.indexOf(subItemState) == 0;\r\n });\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function baUiSrefTogglingSubmenu($state) {\r\n return {\r\n restrict: 'A',\r\n require: '^baSidebarTogglingItem',\r\n link: function(scope, el, attrs, baSidebarTogglingItem) {\r\n baSidebarTogglingItem.$$expandSubmenu = function() { el.slideDown(); };\r\n baSidebarTogglingItem.$$collapseSubmenu = function() { el.slideUp(); };\r\n }\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function baUiSrefToggler(baSidebarService) {\r\n return {\r\n restrict: 'A',\r\n require: '^baSidebarTogglingItem',\r\n link: function(scope, el, attrs, baSidebarTogglingItem) {\r\n el.on('click', function() {\r\n if (baSidebarService.isMenuCollapsed()) {\r\n // If the whole sidebar is collapsed and this item has submenu. We need to open sidebar.\r\n // This should not affect mobiles, because on mobiles sidebar should be hidden at all\r\n scope.$apply(function() {\r\n baSidebarService.setMenuCollapsed(false);\r\n });\r\n baSidebarTogglingItem.$expand();\r\n } else {\r\n baSidebarTogglingItem.$toggle();\r\n }\r\n });\r\n }\r\n };\r\n }\r\n\r\n})();\r\n\n(function() {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme.components')\r\n .directive('baWizard', baWizard);\r\n\r\n /** @ngInject */\r\n function baWizard() {\r\n return {\r\n restrict: 'E',\r\n transclude: true,\r\n templateUrl: 'app/theme/components/baWizard/baWizard.html',\r\n controllerAs: '$baWizardController',\r\n controller: 'baWizardCtrl'\r\n }\r\n }\r\n})();\r\n\n(function() {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme.components')\r\n .controller('baWizardCtrl', baWizardCtrl);\r\n\r\n /** @ngInject */\r\n function baWizardCtrl($scope) {\r\n var vm = this;\r\n vm.tabs = [];\r\n\r\n vm.tabNum = 0;\r\n vm.progress = 0;\r\n\r\n vm.addTab = function(tab) {\r\n tab.setPrev(vm.tabs[vm.tabs.length - 1]);\r\n vm.tabs.push(tab);\r\n vm.selectTab(0);\r\n };\r\n\r\n $scope.$watch(angular.bind(vm, function () {return vm.tabNum;}), calcProgress);\r\n\r\n vm.selectTab = function (tabNum) {\r\n vm.tabs[vm.tabNum].submit();\r\n if (vm.tabs[tabNum].isAvailiable()) {\r\n vm.tabNum = tabNum;\r\n vm.tabs.forEach(function (t, tIndex) {\r\n tIndex == vm.tabNum ? t.select(true) : t.select(false);\r\n });\r\n }\r\n };\r\n\r\n vm.isFirstTab = function () {\r\n return vm.tabNum == 0;\r\n };\r\n\r\n vm.isLastTab = function () {\r\n return vm.tabNum == vm.tabs.length - 1 ;\r\n };\r\n\r\n vm.nextTab = function () {\r\n vm.selectTab(vm.tabNum + 1)\r\n };\r\n\r\n vm.previousTab = function () {\r\n vm.selectTab(vm.tabNum - 1)\r\n };\r\n\r\n function calcProgress() {\r\n vm.progress = ((vm.tabNum + 1) / vm.tabs.length) * 100;\r\n }\r\n }\r\n})();\r\n\r\n\n(function() {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme.components')\r\n .directive('baWizardStep', baWizardStep);\r\n\r\n /** @ngInject */\r\n function baWizardStep() {\r\n return {\r\n restrict: 'E',\r\n transclude: true,\r\n require: '^baWizard',\r\n scope: {\r\n form: '='\r\n },\r\n templateUrl: 'app/theme/components/baWizard/baWizardStep.html',\r\n link: function($scope, $element, $attrs, wizard) {\r\n $scope.selected = true;\r\n\r\n var tab = {\r\n title: $attrs.title,\r\n select: select,\r\n submit: submit,\r\n isComplete: isComplete,\r\n isAvailiable: isAvailiable,\r\n prevTab: undefined,\r\n setPrev: setPrev\r\n };\r\n\r\n wizard.addTab(tab);\r\n\r\n function select(isSelected) {\r\n if (isSelected) {\r\n $scope.selected = true;\r\n } else {\r\n $scope.selected = false;\r\n }\r\n }\r\n\r\n function submit() {\r\n $scope.form && $scope.form.$setSubmitted(true);\r\n }\r\n\r\n function isComplete() {\r\n return $scope.form ? $scope.form.$valid : true;\r\n }\r\n\r\n function isAvailiable() {\r\n return tab.prevTab ? tab.prevTab.isComplete() : true;\r\n }\r\n\r\n function setPrev(pTab) {\r\n tab.prevTab = pTab;\r\n }\r\n }\r\n };\r\n }\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme.components')\r\n .directive('contentTop', contentTop);\r\n\r\n /** @ngInject */\r\n function contentTop($location, $state) {\r\n return {\r\n restrict: 'E',\r\n templateUrl: 'app/theme/components/contentTop/contentTop.html',\r\n link: function($scope) {\r\n $scope.$watch(function () {\r\n $scope.activePageTitle = $state.current.title;\r\n });\r\n }\r\n };\r\n }\r\n\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme.components')\r\n .directive('msgCenter', msgCenter);\r\n\r\n /** @ngInject */\r\n function msgCenter() {\r\n return {\r\n restrict: 'E',\r\n templateUrl: 'app/theme/components/msgCenter/msgCenter.html',\r\n controller: 'MsgCenterCtrl'\r\n };\r\n }\r\n\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme.components')\r\n .controller('MsgCenterCtrl', MsgCenterCtrl);\r\n\r\n /** @ngInject */\r\n function MsgCenterCtrl($scope, $sce) {\r\n $scope.users = {\r\n 0: {\r\n name: 'Vlad',\r\n },\r\n 1: {\r\n name: 'Kostya',\r\n },\r\n 2: {\r\n name: 'Andrey',\r\n },\r\n 3: {\r\n name: 'Nasta',\r\n }\r\n };\r\n\r\n $scope.notifications = [\r\n {\r\n userId: 0,\r\n template: '&name posted a new article.',\r\n time: '1 min ago'\r\n },\r\n {\r\n userId: 1,\r\n template: '&name changed his contact information.',\r\n time: '2 hrs ago'\r\n },\r\n {\r\n image: 'assets/img/shopping-cart.svg',\r\n template: 'New orders received.',\r\n time: '5 hrs ago'\r\n },\r\n {\r\n userId: 2,\r\n template: '&name replied to your comment.',\r\n time: '1 day ago'\r\n },\r\n {\r\n userId: 3,\r\n template: 'Today is &name\\'s birthday.',\r\n time: '2 days ago'\r\n },\r\n {\r\n image: 'assets/img/comments.svg',\r\n template: 'New comments on your post.',\r\n time: '3 days ago'\r\n },\r\n {\r\n userId: 1,\r\n template: '&name invited you to join the event.',\r\n time: '1 week ago'\r\n }\r\n ];\r\n\r\n $scope.messages = [\r\n {\r\n userId: 3,\r\n text: 'After you get up and running, you can place Font Awesome icons just about...',\r\n time: '1 min ago'\r\n },\r\n {\r\n userId: 0,\r\n text: 'You asked, Font Awesome delivers with 40 shiny new icons in version 4.2.',\r\n time: '2 hrs ago'\r\n },\r\n {\r\n userId: 1,\r\n text: 'Want to request new icons? Here\\'s how. Need vectors or want to use on the...',\r\n time: '10 hrs ago'\r\n },\r\n {\r\n userId: 2,\r\n text: 'Explore your passions and discover new ones by getting involved. Stretch your...',\r\n time: '1 day ago'\r\n },\r\n {\r\n userId: 3,\r\n text: 'Get to know who we are - from the inside out. From our history and culture, to the...',\r\n time: '1 day ago'\r\n },\r\n {\r\n userId: 1,\r\n text: 'Need some support to reach your goals? Apply for scholarships across a variety of...',\r\n time: '2 days ago'\r\n },\r\n {\r\n userId: 0,\r\n text: 'Wrap the dropdown\\'s trigger and the dropdown menu within .dropdown, or...',\r\n time: '1 week ago'\r\n }\r\n ];\r\n\r\n $scope.getMessage = function(msg) {\r\n var text = msg.template;\r\n if (msg.userId || msg.userId === 0) {\r\n text = text.replace('&name', '' + $scope.users[msg.userId].name + '');\r\n }\r\n return $sce.trustAsHtml(text);\r\n };\r\n }\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme.components')\r\n .directive('pageTop', pageTop)\r\n .controller('pageTopController', pageTopController);\r\n\r\n pageTopController.$inject = ['$scope', 'authService', '$state'];\r\n\r\n function pageTopController($scope, authService, $state) {\r\n $scope.isLoggedIn = false;\r\n $scope.userName = '';\r\n\r\n $scope.showManagementButton = false;\r\n\r\n $scope.logout = function () {\r\n authService.logout();\r\n $state.go('login');\r\n };\r\n\r\n $scope.$watch(function () {\r\n return authService.isLoggedIn();\r\n }, function (newVal, oldVal) {\r\n if (newVal === true) {\r\n $scope.isLoggedIn = true;\r\n }\r\n else {\r\n $scope.isLoggedIn = false;\r\n }\r\n });\r\n\r\n $scope.$watch(function () {\r\n return authService.storage.isDemoAccount;\r\n }, function (newVal, oldVal) {\r\n $scope.showManagementButton = newVal === true && authService.storage.isAdmin === true;\r\n });\r\n\r\n $scope.$watch(function () {\r\n return authService.storage.fullName;\r\n }, function (newVal, oldVal) {\r\n $scope.userName = newVal;\r\n });\r\n }\r\n\r\n /** @ngInject */\r\n function pageTop() {\r\n return {\r\n restrict: 'E',\r\n templateUrl: 'app/theme/components/pageTop/pageTop.html',\r\n controller: pageTopController\r\n };\r\n }\r\n\r\n})();\n/**\r\n * Created by n.poltoratsky\r\n * on 28.06.2016.\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme.components')\r\n .directive('progressBarRound', progressBarRound);\r\n\r\n /** @ngInject */\r\n function progressBarRound(baProgressModal) {\r\n return {\r\n restrict: 'E',\r\n templateUrl: 'app/theme/components/progressBarRound/progressBarRound.html',\r\n link:function($scope, element, attrs) {\r\n $scope.baProgressDialog = baProgressModal;\r\n $scope.$watch(function () {\r\n return baProgressModal.getProgress();\r\n }, animateBar);\r\n\r\n function animateBar() {\r\n var circle = element.find('#loader')[0];\r\n circle.setAttribute(\"stroke-dasharray\", baProgressModal.getProgress() * 180 * Math.PI / 100 + \", 20000\");\r\n $scope.progress = baProgressModal.getProgress();\r\n }\r\n }\r\n }\r\n }\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme.components')\r\n .directive('widgets', widgets);\r\n\r\n /** @ngInject */\r\n function widgets() {\r\n return {\r\n restrict: 'EA',\r\n scope: {\r\n ngModel: '='\r\n },\r\n templateUrl: 'app/theme/components/widgets/widgets.html',\r\n replace: true\r\n };\r\n }\r\n\r\n})();\n/**\r\n * @author a.demeshko\r\n * created on 23.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme')\r\n .filter('plainText', plainText);\r\n\r\n /** @ngInject */\r\n function plainText() {\r\n return function(text) {\r\n return text ? String(text).replace(/<[^>]+>/gm, '') : '';\r\n };\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 17.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme')\r\n .filter('appImage', appImage);\r\n\r\n /** @ngInject */\r\n function appImage(layoutPaths) {\r\n return function(input) {\r\n return layoutPaths.images.root + input;\r\n };\r\n }\r\n\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme')\r\n .filter('iconImg', iconImg);\r\n\r\n function iconImg(layoutPaths) {\r\n return function (input) {\r\n return layoutPaths.images.root + 'theme/icon/icons8/' + input + '.png';\r\n };\r\n }\r\n\r\n})();\n/**\r\n * @author v.lugovsky\r\n * created on 17.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme')\r\n .filter('kameleonImg', kameleonImg);\r\n\r\n /** @ngInject */\r\n function kameleonImg(layoutPaths) {\r\n return function(input) {\r\n return layoutPaths.images.root + 'theme/icon/kameleon/' + input + '.svg';\r\n };\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 17.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme')\r\n .filter('profilePicture', profilePicture);\r\n\r\n /** @ngInject */\r\n function profilePicture(layoutPaths) {\r\n return function(input, ext) {\r\n ext = ext || 'png';\r\n return layoutPaths.images.profile + input + '.' + ext;\r\n };\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 10.12.2016\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.theme.inputs')\r\n .directive('baSwitcher', baSwitcher);\r\n\r\n /** @ngInject */\r\n function baSwitcher() {\r\n return {\r\n templateUrl: 'app/theme/inputs/baSwitcher/baSwitcher.html',\r\n scope: {\r\n switcherStyle: '@',\r\n switcherValue: '='\r\n }\r\n };\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.charts.amCharts')\r\n .controller('AreaChartCtrl', AreaChartCtrl);\r\n\r\n /** @ngInject */\r\n function AreaChartCtrl($scope, baConfig, $element, layoutPaths) {\r\n var layoutColors = baConfig.colors;\r\n var id = $element[0].getAttribute('id');\r\n var areaChart = AmCharts.makeChart(id, {\r\n type: 'serial',\r\n theme: 'blur',\r\n color: layoutColors.defaultText,\r\n dataProvider: [\r\n {\r\n lineColor: layoutColors.info,\r\n date: '2012-01-01',\r\n duration: 408\r\n },\r\n {\r\n date: '2012-01-02',\r\n duration: 482\r\n },\r\n {\r\n date: '2012-01-03',\r\n duration: 562\r\n },\r\n {\r\n date: '2012-01-04',\r\n duration: 379\r\n },\r\n {\r\n lineColor: layoutColors.warning,\r\n date: '2012-01-05',\r\n duration: 501\r\n },\r\n {\r\n date: '2012-01-06',\r\n duration: 443\r\n },\r\n {\r\n date: '2012-01-07',\r\n duration: 405\r\n },\r\n {\r\n date: '2012-01-08',\r\n duration: 309,\r\n lineColor: layoutColors.danger\r\n },\r\n {\r\n date: '2012-01-09',\r\n duration: 287\r\n },\r\n {\r\n date: '2012-01-10',\r\n duration: 485\r\n },\r\n {\r\n date: '2012-01-11',\r\n duration: 890\r\n },\r\n {\r\n date: '2012-01-12',\r\n duration: 810\r\n }\r\n ],\r\n balloon: {\r\n cornerRadius: 6,\r\n horizontalPadding: 15,\r\n verticalPadding: 10\r\n },\r\n valueAxes: [\r\n {\r\n duration: 'mm',\r\n durationUnits: {\r\n hh: 'h ',\r\n mm: 'min'\r\n },\r\n gridAlpha: 0.5,\r\n gridColor: layoutColors.border,\r\n }\r\n ],\r\n graphs: [\r\n {\r\n bullet: 'square',\r\n bulletBorderAlpha: 1,\r\n bulletBorderThickness: 1,\r\n fillAlphas: 0.5,\r\n fillColorsField: 'lineColor',\r\n legendValueText: '[[value]]',\r\n lineColorField: 'lineColor',\r\n title: 'duration',\r\n valueField: 'duration'\r\n }\r\n ],\r\n\r\n chartCursor: {\r\n categoryBalloonDateFormat: 'YYYY MMM DD',\r\n cursorAlpha: 0,\r\n fullWidth: true\r\n },\r\n dataDateFormat: 'YYYY-MM-DD',\r\n categoryField: 'date',\r\n categoryAxis: {\r\n dateFormats: [\r\n {\r\n period: 'DD',\r\n format: 'DD'\r\n },\r\n {\r\n period: 'WW',\r\n format: 'MMM DD'\r\n },\r\n {\r\n period: 'MM',\r\n format: 'MMM'\r\n },\r\n {\r\n period: 'YYYY',\r\n format: 'YYYY'\r\n }\r\n ],\r\n parseDates: true,\r\n autoGridCount: false,\r\n gridCount: 50,\r\n gridAlpha: 0.5,\r\n gridColor: layoutColors.border,\r\n },\r\n export: {\r\n enabled: true\r\n },\r\n pathToImages: layoutPaths.images.amChart\r\n });\r\n\r\n areaChart.addListener('dataUpdated', zoomAreaChart);\r\n\r\n function zoomAreaChart() {\r\n areaChart.zoomToDates(new Date(2012, 0, 3), new Date(2012, 0, 11));\r\n }\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.charts.amCharts')\r\n .controller('BarChartCtrl', BarChartCtrl);\r\n\r\n /** @ngInject */\r\n function BarChartCtrl($scope, baConfig, $element, layoutPaths) {\r\n var layoutColors = baConfig.colors;\r\n var id = $element[0].getAttribute('id');\r\n var barChart = AmCharts.makeChart(id, {\r\n type: 'serial',\r\n theme: 'blur',\r\n color: layoutColors.defaultText,\r\n dataProvider: [\r\n {\r\n country: 'USA',\r\n visits: 3025,\r\n color: layoutColors.primary\r\n },\r\n {\r\n country: 'China',\r\n visits: 1882,\r\n color: layoutColors.danger\r\n\r\n },\r\n {\r\n country: 'Japan',\r\n visits: 1809,\r\n color: layoutColors.info\r\n },\r\n {\r\n country: 'Germany',\r\n visits: 1322,\r\n color: layoutColors.success\r\n },\r\n {\r\n country: 'UK',\r\n visits: 1122,\r\n color: layoutColors.warning\r\n },\r\n {\r\n country: 'France',\r\n visits: 1114,\r\n color: layoutColors.primaryLight\r\n }\r\n ],\r\n valueAxes: [\r\n {\r\n axisAlpha: 0,\r\n position: 'left',\r\n title: 'Visitors from country',\r\n gridAlpha: 0.5,\r\n gridColor: layoutColors.border,\r\n }\r\n ],\r\n startDuration: 1,\r\n graphs: [\r\n {\r\n balloonText: '[[category]]: [[value]]',\r\n fillColorsField: 'color',\r\n fillAlphas: 0.7,\r\n lineAlpha: 0.2,\r\n type: 'column',\r\n valueField: 'visits'\r\n }\r\n ],\r\n chartCursor: {\r\n categoryBalloonEnabled: false,\r\n cursorAlpha: 0,\r\n zoomable: false\r\n },\r\n categoryField: 'country',\r\n categoryAxis: {\r\n gridPosition: 'start',\r\n labelRotation: 45,\r\n gridAlpha: 0.5,\r\n gridColor: layoutColors.border,\r\n },\r\n export: {\r\n enabled: true\r\n },\r\n creditsPosition: 'top-right',\r\n pathToImages: layoutPaths.images.amChart\r\n });\r\n }\r\n})();\r\n\n/**\r\n * @author a.demeshko\r\n * created on 22.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.charts.amCharts')\r\n .controller('combinedChartCtrl', combinedChartCtrl);\r\n\r\n /** @ngInject */\r\n function combinedChartCtrl($element, baConfig, layoutPaths) {\r\n var layoutColors = baConfig.colors;\r\n var id = $element[0].getAttribute('id');\r\n var chart = AmCharts.makeChart(id, {\r\n \"type\": \"serial\",\r\n \"theme\": \"none\",\r\n \"color\": layoutColors.defaultText,\r\n \"dataDateFormat\": \"YYYY-MM-DD\",\r\n \"precision\": 2,\r\n \"valueAxes\": [{\r\n color: layoutColors.defaultText,\r\n axisColor: layoutColors.defaultText,\r\n gridColor: layoutColors.defaultText,\r\n \"id\": \"v1\",\r\n \"title\": \"Sales\",\r\n \"position\": \"left\",\r\n \"autoGridCount\": false,\r\n \"labelFunction\": function(value) {\r\n return \"$\" + Math.round(value) + \"M\";\r\n }\r\n }, {\r\n color: layoutColors.defaultText,\r\n axisColor: layoutColors.defaultText,\r\n gridColor: layoutColors.defaultText,\r\n \"id\": \"v2\",\r\n \"title\": \"Market Days\",\r\n \"gridAlpha\": 0,\r\n \"position\": \"right\",\r\n \"autoGridCount\": false\r\n }],\r\n \"graphs\": [{\r\n \"id\": \"g3\",\r\n color: layoutColors.defaultText,\r\n \"valueAxis\": \"v1\",\r\n \"lineColor\": layoutColors.primaryLight,\r\n \"fillColors\": layoutColors.primaryLight,\r\n \"fillAlphas\": 0.8,\r\n \"lineAlpha\": 0.8,\r\n \"type\": \"column\",\r\n \"title\": \"Actual Sales\",\r\n \"valueField\": \"sales2\",\r\n \"clustered\": false,\r\n \"columnWidth\": 0.5,\r\n \"lineColorField\" : layoutColors.defaultText,\r\n \"legendValueText\": \"$[[value]]M\",\r\n \"balloonText\": \"[[title]]
$[[value]]M\"\r\n }, {\r\n \"id\": \"g4\",\r\n \"valueAxis\": \"v1\",\r\n color: layoutColors.defaultText,\r\n \"lineColor\": layoutColors.primary,\r\n \"fillColors\": layoutColors.primary,\r\n \"fillAlphas\": 0.9,\r\n \"lineAlpha\": 0.9,\r\n \"type\": \"column\",\r\n \"title\": \"Target Sales\",\r\n \"valueField\": \"sales1\",\r\n \"clustered\": false,\r\n \"columnWidth\": 0.3,\r\n \"legendValueText\": \"$[[value]]M\",\r\n \"balloonText\": \"[[title]]
$[[value]]M\"\r\n }, {\r\n \"id\": \"g1\",\r\n \"valueAxis\": \"v2\",\r\n \"bullet\": \"round\",\r\n \"bulletBorderAlpha\": 1,\r\n \"bulletColor\": layoutColors.defaultText,\r\n color: layoutColors.defaultText,\r\n \"bulletSize\": 5,\r\n \"hideBulletsCount\": 50,\r\n \"lineThickness\": 2,\r\n \"lineColor\": layoutColors.danger,\r\n \"type\": \"smoothedLine\",\r\n \"title\": \"Market Days\",\r\n \"useLineColorForBulletBorder\": true,\r\n \"valueField\": \"market1\",\r\n \"balloonText\": \"[[title]]
[[value]]\"\r\n }, {\r\n \"id\": \"g2\",\r\n \"valueAxis\": \"v2\",\r\n color: layoutColors.defaultText,\r\n \"bullet\": \"round\",\r\n \"bulletBorderAlpha\": 1,\r\n \"bulletColor\": layoutColors.defaultText,\r\n \"bulletSize\": 5,\r\n \"hideBulletsCount\": 50,\r\n \"lineThickness\": 2,\r\n \"lineColor\": layoutColors.warning,\r\n \"type\": \"smoothedLine\",\r\n \"dashLength\": 5,\r\n \"title\": \"Market Days ALL\",\r\n \"useLineColorForBulletBorder\": true,\r\n \"valueField\": \"market2\",\r\n \"balloonText\": \"[[title]]
[[value]]\"\r\n }],\r\n \"chartScrollbar\": {\r\n \"graph\": \"g1\",\r\n \"oppositeAxis\": false,\r\n \"offset\": 30,\r\n gridAlpha: 0,\r\n color: layoutColors.defaultText,\r\n scrollbarHeight: 50,\r\n backgroundAlpha: 0,\r\n selectedBackgroundAlpha: 0.05,\r\n selectedBackgroundColor: layoutColors.defaultText,\r\n graphFillAlpha: 0,\r\n autoGridCount: true,\r\n selectedGraphFillAlpha: 0,\r\n graphLineAlpha: 0.2,\r\n selectedGraphLineColor: layoutColors.defaultText,\r\n selectedGraphLineAlpha: 1\r\n },\r\n \"chartCursor\": {\r\n \"pan\": true,\r\n \"cursorColor\" : layoutColors.danger,\r\n \"valueLineEnabled\": true,\r\n \"valueLineBalloonEnabled\": true,\r\n \"cursorAlpha\": 0,\r\n \"valueLineAlpha\": 0.2\r\n },\r\n \"categoryField\": \"date\",\r\n \"categoryAxis\": {\r\n \"axisColor\": layoutColors.defaultText,\r\n \"color\": layoutColors.defaultText,\r\n \"gridColor\": layoutColors.defaultText,\r\n \"parseDates\": true,\r\n \"dashLength\": 1,\r\n \"minorGridEnabled\": true\r\n },\r\n \"legend\": {\r\n \"useGraphSettings\": true,\r\n \"position\": \"top\",\r\n \"color\": layoutColors.defaultText\r\n },\r\n \"balloon\": {\r\n \"borderThickness\": 1,\r\n \"shadowAlpha\": 0\r\n },\r\n \"export\": {\r\n \"enabled\": true\r\n },\r\n \"dataProvider\": [{\r\n \"date\": \"2013-01-16\",\r\n \"market1\": 71,\r\n \"market2\": 75,\r\n \"sales1\": 5,\r\n \"sales2\": 8\r\n }, {\r\n \"date\": \"2013-01-17\",\r\n \"market1\": 74,\r\n \"market2\": 78,\r\n \"sales1\": 4,\r\n \"sales2\": 6\r\n }, {\r\n \"date\": \"2013-01-18\",\r\n \"market1\": 78,\r\n \"market2\": 88,\r\n \"sales1\": 5,\r\n \"sales2\": 2\r\n }, {\r\n \"date\": \"2013-01-19\",\r\n \"market1\": 85,\r\n \"market2\": 89,\r\n \"sales1\": 8,\r\n \"sales2\": 9\r\n }, {\r\n \"date\": \"2013-01-20\",\r\n \"market1\": 82,\r\n \"market2\": 89,\r\n \"sales1\": 9,\r\n \"sales2\": 6\r\n }, {\r\n \"date\": \"2013-01-21\",\r\n \"market1\": 83,\r\n \"market2\": 85,\r\n \"sales1\": 3,\r\n \"sales2\": 5\r\n }, {\r\n \"date\": \"2013-01-22\",\r\n \"market1\": 88,\r\n \"market2\": 92,\r\n \"sales1\": 5,\r\n \"sales2\": 7\r\n }, {\r\n \"date\": \"2013-01-23\",\r\n \"market1\": 85,\r\n \"market2\": 90,\r\n \"sales1\": 7,\r\n \"sales2\": 6\r\n }, {\r\n \"date\": \"2013-01-24\",\r\n \"market1\": 85,\r\n \"market2\": 91,\r\n \"sales1\": 9,\r\n \"sales2\": 5\r\n }, {\r\n \"date\": \"2013-01-25\",\r\n \"market1\": 80,\r\n \"market2\": 84,\r\n \"sales1\": 5,\r\n \"sales2\": 8\r\n }, {\r\n \"date\": \"2013-01-26\",\r\n \"market1\": 87,\r\n \"market2\": 92,\r\n \"sales1\": 4,\r\n \"sales2\": 8\r\n }, {\r\n \"date\": \"2013-01-27\",\r\n \"market1\": 84,\r\n \"market2\": 87,\r\n \"sales1\": 3,\r\n \"sales2\": 4\r\n }, {\r\n \"date\": \"2013-01-28\",\r\n \"market1\": 83,\r\n \"market2\": 88,\r\n \"sales1\": 5,\r\n \"sales2\": 7\r\n }, {\r\n \"date\": \"2013-01-29\",\r\n \"market1\": 84,\r\n \"market2\": 87,\r\n \"sales1\": 5,\r\n \"sales2\": 8\r\n }, {\r\n \"date\": \"2013-01-30\",\r\n \"market1\": 81,\r\n \"market2\": 85,\r\n \"sales1\": 4,\r\n \"sales2\": 7\r\n }],\r\n pathToImages: layoutPaths.images.amChart\r\n });\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.charts.amCharts')\r\n .controller('FunnelChartCtrl', FunnelChartCtrl);\r\n\r\n /** @ngInject */\r\n function FunnelChartCtrl($scope, $element, layoutPaths, baConfig) {\r\n var layoutColors = baConfig.colors;\r\n var id = $element[0].getAttribute('id');\r\n var funnelChart = AmCharts.makeChart(id, {\r\n type: 'funnel',\r\n theme: 'blur',\r\n color: layoutColors.defaultText,\r\n labelTickColor: layoutColors.borderDark,\r\n dataProvider: [\r\n {\r\n title: 'Website visits',\r\n value: 300\r\n },\r\n {\r\n title: 'Downloads',\r\n value: 123\r\n },\r\n {\r\n title: 'Requested prices',\r\n value: 98\r\n },\r\n {\r\n title: 'Contaced',\r\n value: 72\r\n },\r\n {\r\n title: 'Purchased',\r\n value: 35\r\n },\r\n {\r\n title: 'Asked for support',\r\n value: 25\r\n },\r\n {\r\n title: 'Purchased more',\r\n value: 18\r\n }\r\n ],\r\n titleField: 'title',\r\n marginRight: 160,\r\n marginLeft: 15,\r\n labelPosition: 'right',\r\n funnelAlpha: 0.9,\r\n valueField: 'value',\r\n startX: 0,\r\n alpha: 0.8,\r\n neckWidth: '0%',\r\n startAlpha: 0,\r\n outlineThickness: 1,\r\n neckHeight: '0%',\r\n balloonText: '[[title]]:[[value]]',\r\n export: {\r\n enabled: true\r\n },\r\n creditsPosition: 'bottom-left',\r\n pathToImages: layoutPaths\r\n });\r\n }\r\n})();\r\n\n/**\r\n * @author a.demeshko\r\n * created on 22.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.charts.amCharts')\r\n .controller('ganttChartCtrl', ganttChartCtrl);\r\n\r\n /** @ngInject */\r\n function ganttChartCtrl($element) {\r\n var id = $element[0].getAttribute('id');\r\n var chart = AmCharts.makeChart( id, {\r\n \"type\": \"gantt\",\r\n \"theme\": \"light\",\r\n \"marginRight\": 70,\r\n \"period\": \"hh\",\r\n \"dataDateFormat\":\"YYYY-MM-DD\",\r\n \"balloonDateFormat\": \"JJ:NN\",\r\n \"columnWidth\": 0.5,\r\n \"valueAxis\": {\r\n \"type\": \"date\",\r\n \"minimum\": 7,\r\n \"maximum\": 31\r\n },\r\n \"brightnessStep\": 10,\r\n \"graph\": {\r\n \"fillAlphas\": 1,\r\n \"balloonText\": \"[[task]]: [[open]] [[value]]\"\r\n },\r\n \"rotate\": true,\r\n \"categoryField\": \"category\",\r\n \"segmentsField\": \"segments\",\r\n \"colorField\": \"color\",\r\n \"startDate\": \"2015-01-01\",\r\n \"startField\": \"start\",\r\n \"endField\": \"end\",\r\n \"durationField\": \"duration\",\r\n \"dataProvider\": [\r\n {\r\n \"category\": \"John\",\r\n \"segments\": [ {\r\n \"start\": 7,\r\n \"duration\": 2,\r\n \"color\": \"#46615e\",\r\n \"task\": \"Task #1\"\r\n }, {\r\n \"duration\": 2,\r\n \"color\": \"#727d6f\",\r\n \"task\": \"Task #2\"\r\n }, {\r\n \"duration\": 2,\r\n \"color\": \"#8dc49f\",\r\n \"task\": \"Task #3\"\r\n } ]\r\n }, {\r\n \"category\": \"Smith\",\r\n \"segments\": [ {\r\n \"start\": 10,\r\n \"duration\": 2,\r\n \"color\": \"#727d6f\",\r\n \"task\": \"Task #2\"\r\n }, {\r\n \"duration\": 1,\r\n \"color\": \"#8dc49f\",\r\n \"task\": \"Task #3\"\r\n }, {\r\n \"duration\": 4,\r\n \"color\": \"#46615e\",\r\n \"task\": \"Task #1\"\r\n } ]\r\n }, {\r\n \"category\": \"Ben\",\r\n \"segments\": [ {\r\n \"start\": 12,\r\n \"duration\": 2,\r\n \"color\": \"#727d6f\",\r\n \"task\": \"Task #2\"\r\n }, {\r\n \"start\": 16,\r\n \"duration\": 2,\r\n \"color\": \"#FFE4C4\",\r\n \"task\": \"Task #4\"\r\n } ]\r\n }, {\r\n \"category\": \"Mike\",\r\n \"segments\": [ {\r\n \"start\": 9,\r\n \"duration\": 6,\r\n \"color\": \"#46615e\",\r\n \"task\": \"Task #1\"\r\n }, {\r\n \"duration\": 4,\r\n \"color\": \"#727d6f\",\r\n \"task\": \"Task #2\"\r\n } ]\r\n }, {\r\n \"category\": \"Lenny\",\r\n \"segments\": [ {\r\n \"start\": 8,\r\n \"duration\": 1,\r\n \"color\": \"#8dc49f\",\r\n \"task\": \"Task #3\"\r\n }, {\r\n \"duration\": 4,\r\n \"color\": \"#46615e\",\r\n \"task\": \"Task #1\"\r\n } ]\r\n }, {\r\n \"category\": \"Scott\",\r\n \"segments\": [ {\r\n \"start\": 15,\r\n \"duration\": 3,\r\n \"color\": \"#727d6f\",\r\n \"task\": \"Task #2\"\r\n } ]\r\n }, {\r\n \"category\": \"Julia\",\r\n \"segments\": [ {\r\n \"start\": 9,\r\n \"duration\": 2,\r\n \"color\": \"#46615e\",\r\n \"task\": \"Task #1\"\r\n }, {\r\n \"duration\": 1,\r\n \"color\": \"#727d6f\",\r\n \"task\": \"Task #2\"\r\n }, {\r\n \"duration\": 8,\r\n \"color\": \"#8dc49f\",\r\n \"task\": \"Task #3\"\r\n } ]\r\n }, {\r\n \"category\": \"Bob\",\r\n \"segments\": [ {\r\n \"start\": 9,\r\n \"duration\": 8,\r\n \"color\": \"#727d6f\",\r\n \"task\": \"Task #2\"\r\n }, {\r\n \"duration\": 7,\r\n \"color\": \"#8dc49f\",\r\n \"task\": \"Task #3\"\r\n } ]\r\n }, {\r\n \"category\": \"Kendra\",\r\n \"segments\": [ {\r\n \"start\": 11,\r\n \"duration\": 8,\r\n \"color\": \"#727d6f\",\r\n \"task\": \"Task #2\"\r\n }, {\r\n \"start\": 16,\r\n \"duration\": 2,\r\n \"color\": \"#FFE4C4\",\r\n \"task\": \"Task #4\"\r\n } ]\r\n }, {\r\n \"category\": \"Tom\",\r\n \"segments\": [ {\r\n \"start\": 9,\r\n \"duration\": 4,\r\n \"color\": \"#46615e\",\r\n \"task\": \"Task #1\"\r\n }, {\r\n \"duration\": 3,\r\n \"color\": \"#727d6f\",\r\n \"task\": \"Task #2\"\r\n }, {\r\n \"duration\": 5,\r\n \"color\": \"#8dc49f\",\r\n \"task\": \"Task #3\"\r\n } ]\r\n }, {\r\n \"category\": \"Kyle\",\r\n \"segments\": [ {\r\n \"start\": 6,\r\n \"duration\": 3,\r\n \"color\": \"#727d6f\",\r\n \"task\": \"Task #2\"\r\n } ]\r\n }, {\r\n \"category\": \"Anita\",\r\n \"segments\": [ {\r\n \"start\": 12,\r\n \"duration\": 2,\r\n \"color\": \"#727d6f\",\r\n \"task\": \"Task #2\"\r\n }, {\r\n \"start\": 16,\r\n \"duration\": 2,\r\n \"color\": \"#FFE4C4\",\r\n \"task\": \"Task #4\"\r\n } ]\r\n }, {\r\n \"category\": \"Jack\",\r\n \"segments\": [ {\r\n \"start\": 8,\r\n \"duration\": 10,\r\n \"color\": \"#46615e\",\r\n \"task\": \"Task #1\"\r\n }, {\r\n \"duration\": 2,\r\n \"color\": \"#727d6f\",\r\n \"task\": \"Task #2\"\r\n } ]\r\n }, {\r\n \"category\": \"Kim\",\r\n \"segments\": [ {\r\n \"start\": 12,\r\n \"duration\": 2,\r\n \"color\": \"#727d6f\",\r\n \"task\": \"Task #2\"\r\n }, {\r\n \"duration\": 3,\r\n \"color\": \"#8dc49f\",\r\n \"task\": \"Task #3\"\r\n } ]\r\n }, {\r\n \"category\": \"Aaron\",\r\n \"segments\": [ {\r\n \"start\": 18,\r\n \"duration\": 2,\r\n \"color\": \"#727d6f\",\r\n \"task\": \"Task #2\"\r\n }, {\r\n \"duration\": 2,\r\n \"color\": \"#FFE4C4\",\r\n \"task\": \"Task #4\"\r\n } ]\r\n }, {\r\n \"category\": \"Alan\",\r\n \"segments\": [ {\r\n \"start\": 17,\r\n \"duration\": 2,\r\n \"color\": \"#46615e\",\r\n \"task\": \"Task #1\"\r\n }, {\r\n \"duration\": 2,\r\n \"color\": \"#727d6f\",\r\n \"task\": \"Task #2\"\r\n }, {\r\n \"duration\": 2,\r\n \"color\": \"#8dc49f\",\r\n \"task\": \"Task #3\"\r\n } ]\r\n }, {\r\n \"category\": \"Ruth\",\r\n \"segments\": [ {\r\n \"start\": 13,\r\n \"duration\": 2,\r\n \"color\": \"#727d6f\",\r\n \"task\": \"Task #2\"\r\n }, {\r\n \"duration\": 1,\r\n \"color\": \"#8dc49f\",\r\n \"task\": \"Task #3\"\r\n }, {\r\n \"duration\": 4,\r\n \"color\": \"#46615e\",\r\n \"task\": \"Task #1\"\r\n } ]\r\n }, {\r\n \"category\": \"Simon\",\r\n \"segments\": [ {\r\n \"start\": 10,\r\n \"duration\": 3,\r\n \"color\": \"#727d6f\",\r\n \"task\": \"Task #2\"\r\n }, {\r\n \"start\": 17,\r\n \"duration\": 4,\r\n \"color\": \"#FFE4C4\",\r\n \"task\": \"Task #4\"\r\n } ]\r\n } ],\r\n \"valueScrollbar\": {\r\n \"autoGridCount\":true\r\n },\r\n \"chartCursor\": {\r\n \"cursorColor\":\"#55bb76\",\r\n \"valueBalloonsEnabled\": false,\r\n \"cursorAlpha\": 0,\r\n \"valueLineAlpha\":0.5,\r\n \"valueLineBalloonEnabled\": true,\r\n \"valueLineEnabled\": true,\r\n \"zoomable\":false,\r\n \"valueZoomable\":true\r\n },\r\n \"export\": {\r\n \"enabled\": true\r\n }\r\n });\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.charts.amCharts')\r\n .controller('LineChartCtrl', LineChartCtrl);\r\n\r\n /** @ngInject */\r\n function LineChartCtrl($scope, baConfig, $element, layoutPaths) {\r\n var layoutColors = baConfig.colors;\r\n var id = $element[0].getAttribute('id');\r\n var lineChart = AmCharts.makeChart(id, {\r\n type: 'serial',\r\n theme: 'blur',\r\n color: layoutColors.defaultText,\r\n marginTop: 0,\r\n marginRight: 15,\r\n dataProvider: [\r\n {\r\n year: '1990',\r\n value: -0.17\r\n },\r\n {\r\n year: '1991',\r\n value: -0.254\r\n },\r\n {\r\n year: '1992',\r\n value: 0.019\r\n },\r\n {\r\n year: '1993',\r\n value: -0.063\r\n },\r\n {\r\n year: '1994',\r\n value: 0.005\r\n },\r\n {\r\n year: '1995',\r\n value: 0.077\r\n },\r\n {\r\n year: '1996',\r\n value: 0.12\r\n },\r\n {\r\n year: '1997',\r\n value: 0.011\r\n },\r\n {\r\n year: '1998',\r\n value: 0.177\r\n },\r\n {\r\n year: '1999',\r\n value: -0.021\r\n },\r\n {\r\n year: '2000',\r\n value: -0.037\r\n },\r\n {\r\n year: '2001',\r\n value: 0.03\r\n },\r\n {\r\n year: '2002',\r\n value: 0.179\r\n },\r\n {\r\n year: '2003',\r\n value: 0.2\r\n },\r\n {\r\n year: '2004',\r\n value: 0.180\r\n },\r\n {\r\n year: '2005',\r\n value: 0.21\r\n }\r\n ],\r\n valueAxes: [\r\n {\r\n axisAlpha: 0,\r\n position: 'left',\r\n gridAlpha: 0.5,\r\n gridColor: layoutColors.border,\r\n }\r\n ],\r\n graphs: [\r\n {\r\n id: 'g1',\r\n balloonText: '[[value]]',\r\n bullet: 'round',\r\n bulletSize: 8,\r\n lineColor: layoutColors.danger,\r\n lineThickness: 1,\r\n negativeLineColor: layoutColors.warning,\r\n type: 'smoothedLine',\r\n valueField: 'value'\r\n }\r\n ],\r\n chartScrollbar: {\r\n graph: 'g1',\r\n gridAlpha: 0,\r\n color: layoutColors.defaultText,\r\n scrollbarHeight: 55,\r\n backgroundAlpha: 0,\r\n selectedBackgroundAlpha: 0.05,\r\n selectedBackgroundColor: layoutColors.defaultText,\r\n graphFillAlpha: 0,\r\n autoGridCount: true,\r\n selectedGraphFillAlpha: 0,\r\n graphLineAlpha: 0.2,\r\n selectedGraphLineColor: layoutColors.defaultText,\r\n selectedGraphLineAlpha: 1\r\n },\r\n chartCursor: {\r\n categoryBalloonDateFormat: 'YYYY',\r\n cursorAlpha: 0,\r\n valueLineEnabled: true,\r\n valueLineBalloonEnabled: true,\r\n valueLineAlpha: 0.5,\r\n fullWidth: true\r\n },\r\n dataDateFormat: 'YYYY',\r\n categoryField: 'year',\r\n categoryAxis: {\r\n minPeriod: 'YYYY',\r\n parseDates: true,\r\n minorGridAlpha: 0.1,\r\n minorGridEnabled: true,\r\n gridAlpha: 0.5,\r\n gridColor: layoutColors.border,\r\n },\r\n export: {\r\n enabled: true\r\n },\r\n creditsPosition: 'bottom-right',\r\n pathToImages: layoutPaths.images.amChart\r\n });\r\n\r\n lineChart.addListener('rendered', zoomChart);\r\n if (lineChart.zoomChart) {\r\n lineChart.zoomChart();\r\n }\r\n\r\n function zoomChart() {\r\n lineChart.zoomToIndexes(Math.round(lineChart.dataProvider.length * 0.4), Math.round(lineChart.dataProvider.length * 0.55));\r\n }\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.charts.amCharts')\r\n .controller('PieChartCtrl', PieChartCtrl);\r\n\r\n /** @ngInject */\r\n function PieChartCtrl($element, layoutPaths, baConfig) {\r\n var layoutColors = baConfig.colors;\r\n var id = $element[0].getAttribute('id');\r\n var pieChart = AmCharts.makeChart(id, {\r\n type: 'pie',\r\n startDuration: 0,\r\n theme: 'blur',\r\n addClassNames: true,\r\n color: layoutColors.defaultText,\r\n labelTickColor: layoutColors.borderDark,\r\n legend: {\r\n position: 'right',\r\n marginRight: 100,\r\n autoMargins: false,\r\n },\r\n innerRadius: '40%',\r\n defs: {\r\n filter: [\r\n {\r\n id: 'shadow',\r\n width: '200%',\r\n height: '200%',\r\n feOffset: {\r\n result: 'offOut',\r\n in: 'SourceAlpha',\r\n dx: 0,\r\n dy: 0\r\n },\r\n feGaussianBlur: {\r\n result: 'blurOut',\r\n in: 'offOut',\r\n stdDeviation: 5\r\n },\r\n feBlend: {\r\n in: 'SourceGraphic',\r\n in2: 'blurOut',\r\n mode: 'normal'\r\n }\r\n }\r\n ]\r\n },\r\n dataProvider: [\r\n {\r\n country: 'Lithuania',\r\n litres: 501.9\r\n },\r\n {\r\n country: 'Czech Republic',\r\n litres: 301.9\r\n },\r\n {\r\n country: 'Ireland',\r\n litres: 201.1\r\n },\r\n {\r\n country: 'Germany',\r\n litres: 165.8\r\n },\r\n {\r\n country: 'Australia',\r\n litres: 139.9\r\n },\r\n {\r\n country: 'Austria',\r\n litres: 128.3\r\n },\r\n {\r\n country: 'UK',\r\n litres: 99\r\n },\r\n {\r\n country: 'Belgium',\r\n litres: 60\r\n }\r\n ],\r\n valueField: 'litres',\r\n titleField: 'country',\r\n export: {\r\n enabled: true\r\n },\r\n creditsPosition: 'bottom-left',\r\n\r\n autoMargins: false,\r\n marginTop: 10,\r\n alpha: 0.8,\r\n marginBottom: 0,\r\n marginLeft: 0,\r\n marginRight: 0,\r\n pullOutRadius: 0,\r\n pathToImages: layoutPaths.images.amChart,\r\n responsive: {\r\n enabled: true,\r\n rules: [\r\n // at 900px wide, we hide legend\r\n {\r\n maxWidth: 900,\r\n overrides: {\r\n legend: {\r\n enabled: false\r\n }\r\n }\r\n },\r\n\r\n // at 200 px we hide value axis labels altogether\r\n {\r\n maxWidth: 200,\r\n overrides: {\r\n valueAxes: {\r\n labelsEnabled: false\r\n },\r\n marginTop: 30,\r\n marginBottom: 30,\r\n marginLeft: 30,\r\n marginRight: 30\r\n }\r\n }\r\n ]\r\n }\r\n });\r\n\r\n pieChart.addListener('init', handleInit);\r\n\r\n pieChart.addListener('rollOverSlice', function (e) {\r\n handleRollOver(e);\r\n });\r\n\r\n function handleInit() {\r\n pieChart.legend.addListener('rollOverItem', handleRollOver);\r\n }\r\n\r\n function handleRollOver(e) {\r\n var wedge = e.dataItem.wedge.node;\r\n wedge.parentNode.appendChild(wedge);\r\n }\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author a.demeshko\r\n * created on 24/12/15\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.components.mail')\r\n .controller('composeBoxCtrl', composeBoxCtrl);\r\n\r\n /** @ngInject */\r\n function composeBoxCtrl(subject, to, text) {\r\n var vm = this;\r\n vm.subject = subject;\r\n vm.to = to;\r\n vm.text = text;\r\n }\r\n})();\n/**\r\n * @author a.demeshko\r\n * created on 12/24/15\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.components.mail')\r\n .service('composeModal', composeModal);\r\n\r\n /** @ngInject */\r\n function composeModal($uibModal) {\r\n this.open = function(options){\r\n return $uibModal.open({\r\n animation: false,\r\n templateUrl: 'app/pages/components/mail/composeBox/compose.html',\r\n controller: 'composeBoxCtrl',\r\n controllerAs: 'boxCtrl',\r\n size: 'compose',\r\n resolve: {\r\n subject: function () {\r\n return options.subject;\r\n },\r\n to: function () {\r\n return options.to;\r\n },\r\n text: function () {\r\n return options.text;\r\n }\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n})();\n/**\r\n * @author a.demeshko\r\n * created on 28.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.components.mail')\r\n .controller('MailDetailCtrl', MailDetailCtrl);\r\n\r\n /** @ngInject */\r\n function MailDetailCtrl($stateParams, mailMessages) {\r\n var vm = this;\r\n vm.mail = mailMessages.getMessageById($stateParams.id);\r\n vm.label = $stateParams.label;\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author a.demeshko\r\n * created on 28.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.components.mail')\r\n .controller('MailListCtrl', MailListCtrl);\r\n\r\n /** @ngInject */\r\n function MailListCtrl($stateParams, mailMessages) {\r\n var vm = this;\r\n vm.messages = mailMessages.getMessagesByLabel($stateParams.label);\r\n vm.label = $stateParams.label;\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.ui.modals')\r\n .controller('NotificationsCtrl', NotificationsCtrl);\r\n\r\n /** @ngInject */\r\n function NotificationsCtrl($scope, toastr) {\r\n $scope.showSuccessMsg = function() {\r\n toastr.success('Your information has been saved successfully!');\r\n };\r\n\r\n $scope.showInfoMsg = function() {\r\n toastr.info(\"You've got a new email!\", 'Information');\r\n };\r\n\r\n $scope.showErrorMsg = function() {\r\n toastr.error(\"Your information hasn't been saved!\", 'Error');\r\n };\r\n\r\n $scope.showWarningMsg = function() {\r\n toastr.warning('Your computer is about to explode!', 'Warning');\r\n };\r\n }\r\n\r\n})();\r\n\n/**\r\n * Created by n.poltoratsky\r\n * on 24.06.2016.\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.ui.modals')\r\n .controller('ProgressModalCtrl', ProgressModalCtrl);\r\n\r\n function ProgressModalCtrl($timeout, baProgressModal) {\r\n\r\n baProgressModal.setProgress(0);\r\n\r\n (function changeValue() {\r\n if (baProgressModal.getProgress() >= 100) {\r\n baProgressModal.close();\r\n } else {\r\n baProgressModal.setProgress(baProgressModal.getProgress() + 10);\r\n $timeout(changeValue, 300);\r\n }\r\n })();\r\n }\r\n\r\n})();\r\n\n/* Minified js for jQuery BackTop */\r\n!function(o){o.fn.backTop=function(e){var n=this,i=o.extend({position:400,speed:500,color:\"white\"},e),t=i.position,c=i.speed,d=i.color;n.addClass(\"white\"==d?\"white\":\"red\"==d?\"red\":\"green\"==d?\"green\":\"black\"),n.css({right:40,bottom:40,position:\"fixed\"}),o(document).scroll(function(){var e=o(window).scrollTop();e>=t?n.fadeIn(c):n.fadeOut(c)}),n.click(function(){o(\"html, body\").animate({scrollTop:0},{duration:1200})})}}(jQuery);\n/**\r\n * Created by n.poltoratsky\r\n * on 23.06.2016.\r\n */\r\n(function(){\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.form')\r\n .controller('datepickerCtrl', datepickerCtrl);\r\n\r\n /** @ngInject */\r\n function datepickerCtrl($scope) {\r\n\r\n $scope.dt = new Date();\r\n $scope.options = {\r\n showWeeks: false\r\n };\r\n\r\n }\r\n})();\n/**\r\n * Created by n.poltoratsky\r\n * on 23.06.2016.\r\n */\r\n(function(){\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.form')\r\n .controller('datepickerpopupCtrl', datepickerpopupCtrl);\r\n\r\n /** @ngInject */\r\n function datepickerpopupCtrl($scope) {\r\n\r\n $scope.open = open;\r\n $scope.opened = false;\r\n $scope.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n $scope.format = $scope.formats[0];\r\n $scope.options = {\r\n showWeeks: false\r\n };\r\n\r\n function open() {\r\n $scope.opened = true;\r\n }\r\n }\r\n})();\n/**\r\n * @author v.lugovsky\r\n * created on 22.04.2016\r\n * @deprecated\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.form')\r\n .controller('OldSelectpickerPanelCtrl', OldSelectpickerPanelCtrl);\r\n\r\n /** @ngInject */\r\n function OldSelectpickerPanelCtrl() {\r\n var vm = this;\r\n\r\n vm.standardSelectItems = [\r\n { label: 'Option 1', value: 1 },\r\n { label: 'Option 2', value: 2 },\r\n { label: 'Option 3', value: 3 },\r\n { label: 'Option 4', value: 4 },\r\n ];\r\n\r\n vm.selectWithSearchItems = [\r\n { label: 'Hot Dog, Fries and a Soda', value: 1 },\r\n { label: 'Burger, Shake and a Smile', value: 2 },\r\n { label: 'Sugar, Spice and all things nice', value: 3 },\r\n { label: 'Baby Back Ribs', value: 4 },\r\n ];\r\n\r\n vm.groupedSelectItems = [\r\n { label: 'Group 1 - Option 1', value: 1, group: 'Group 1' },\r\n { label: 'Group 2 - Option 2', value: 2, group: 'Group 2' },\r\n { label: 'Group 1 - Option 3', value: 3, group: 'Group 1' },\r\n { label: 'Group 2 - Option 4', value: 4, group: 'Group 2' },\r\n ];\r\n\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n * @deprecated\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.form')\r\n .directive('selectpicker', selectpicker);\r\n\r\n /** @ngInject */\r\n function selectpicker() {\r\n return {\r\n restrict: 'A',\r\n require: '?ngOptions',\r\n priority: 1500, // make priority bigger than ngOptions and ngRepeat\r\n link: {\r\n pre: function(scope, elem, attrs) {\r\n elem.append('')\r\n },\r\n post: function(scope, elem, attrs) {\r\n function refresh() {\r\n elem.selectpicker('refresh');\r\n }\r\n\r\n if (attrs.ngModel) {\r\n scope.$watch(attrs.ngModel, refresh);\r\n }\r\n\r\n if (attrs.ngDisabled) {\r\n scope.$watch(attrs.ngDisabled, refresh);\r\n }\r\n\r\n elem.selectpicker({ dropupAuto: false, hideDisabled: true });\r\n }\r\n }\r\n };\r\n }\r\n\r\n\r\n})();\n/**\r\n * @author v.lugovsky\r\n * created on 07.06.2016\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.form')\r\n .controller('OldSwitchPanelCtrl', OldSwitchPanelCtrl);\r\n\r\n /** @ngInject */\r\n function OldSwitchPanelCtrl() {\r\n var vm = this;\r\n\r\n vm.switcherValues = {\r\n primary: true,\r\n warning: true,\r\n danger: true,\r\n info: true,\r\n success: true\r\n };\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n *\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.form')\r\n .directive('switch', switchDirective);\r\n\r\n /** @ngInject */\r\n function switchDirective($timeout) {\r\n return {\r\n restrict: 'EA',\r\n replace: true,\r\n scope: {\r\n ngModel: '='\r\n },\r\n template: function(el, attrs) {\r\n return '
';\r\n },\r\n link: function (scope, elem, attr) {\r\n var input = $(elem).find('input');\r\n input.bootstrapSwitch({\r\n size: 'small',\r\n onColor: attr.color\r\n });\r\n input.on('switchChange.bootstrapSwitch', function(event, state) {\r\n scope.ngModel = state;\r\n scope.$apply();\r\n });\r\n\r\n }\r\n };\r\n }\r\n})();\r\n\n/**\r\n * @author p.maslava\r\n * created on 28.11.2016\r\n */\r\n\r\n(function() {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.form')\r\n .filter('groupSelectpickerOptions', GroupSelectpickerOptions);\r\n\r\n /** @ngInject */\r\n function GroupSelectpickerOptions() {\r\n return function (items, props) {\r\n var out = [];\r\n\r\n if (angular.isArray(items)) {\r\n var keys = Object.keys(props);\r\n\r\n items.forEach(function (item) {\r\n var itemMatches = false;\r\n\r\n for (var i = 0; i < keys.length; i++) {\r\n var prop = keys[i];\r\n var text = props[prop].toLowerCase();\r\n if (item[prop].toString().toLowerCase().indexOf(text) !== -1) {\r\n itemMatches = true;\r\n break;\r\n }\r\n }\r\n\r\n if (itemMatches) {\r\n out.push(item);\r\n }\r\n });\r\n } else {\r\n // Let the output be the input untouched\r\n out = items;\r\n }\r\n\r\n return out;\r\n };\r\n }\r\n})();\n/**\r\n * @author p.maslava\r\n * created on 28.11.2016\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.form')\r\n .controller('SelectpickerPanelCtrl', SelectpickerPanelCtrl);\r\n\r\n /** @ngInject */\r\n function SelectpickerPanelCtrl() {\r\n\r\n var vm = this;\r\n vm.disabled = undefined;\r\n\r\n\r\n vm.standardItem = {};\r\n vm.standardSelectItems = [\r\n {label: 'Option 1', value: 1},\r\n {label: 'Option 2', value: 2},\r\n {label: 'Option 3', value: 3},\r\n {label: 'Option 4', value: 4}\r\n ];\r\n\r\n vm.withSearchItem = {};\r\n\r\n vm.selectWithSearchItems = [\r\n {label: 'Hot Dog, Fries and a Soda', value: 1},\r\n {label: 'Burger, Shake and a Smile', value: 2},\r\n {label: 'Sugar, Spice and all things nice', value: 3},\r\n {label: 'Baby Back Ribs', value: 4}\r\n ];\r\n vm.groupedItem = {};\r\n vm.groupedSelectItems = [\r\n {label: 'Group 1 - Option 1', value: 1, group: 'Group 1'},\r\n {label: 'Group 2 - Option 2', value: 2, group: 'Group 2'},\r\n {label: 'Group 1 - Option 3', value: 3, group: 'Group 1'},\r\n {label: 'Group 2 - Option 4', value: 4, group: 'Group 2'}\r\n ];\r\n\r\n vm.groupedByItem = {};\r\n vm.groupedBySelectItems = [\r\n {name: 'Adam', country: 'United States'},\r\n {name: 'Amalie', country: 'Argentina'},\r\n {name: 'Estefanía', country: 'Argentina'},\r\n {name: 'Adrian', country: 'Ecuador'},\r\n {name: 'Wladimir', country: 'Ecuador'},\r\n {name: 'Samantha', country: 'United States'},\r\n {name: 'Nicole', country: 'Colombia'},\r\n {name: 'Natasha', country: 'Ecuador'},\r\n {name: 'Michael', country: 'Colombia'},\r\n {name: 'Nicolás', country: 'Colombia'}\r\n ];\r\n vm.someGroupFn = function (item) {\r\n\r\n if (item.name[0] >= 'A' && item.name[0] <= 'M')\r\n return 'From A - M';\r\n if (item.name[0] >= 'N' && item.name[0] <= 'Z')\r\n return 'From N - Z';\r\n };\r\n\r\n vm.disableItem = {};\r\n vm.disableItems = [];\r\n\r\n vm.multipleItem = {};\r\n vm.multipleSelectItems = [\r\n {label: 'Option 1', value: 1},\r\n {label: 'Option 2', value: 2},\r\n {label: 'Option 3', value: 3},\r\n {label: 'Option 4', value: 4},\r\n {label: 'Option 5', value: 5},\r\n {label: 'Option 6', value: 6},\r\n {label: 'Option 7', value: 7},\r\n {label: 'Option 8', value: 8}\r\n ];\r\n vm.withDeleteItem = {};\r\n vm.withDeleteSelectItems = [\r\n {label: 'Option 1', value: 1},\r\n {label: 'Option 2', value: 2},\r\n {label: 'Option 3', value: 3},\r\n {label: 'Option 4', value: 4},\r\n {label: 'Option 5', value: 5},\r\n {label: 'Option 6', value: 6},\r\n {label: 'Option 7', value: 7},\r\n {label: 'Option 8', value: 8}\r\n ];\r\n\r\n }\r\n})();\r\n\r\n\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 10.12.2016\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.form')\r\n .controller('SwitchDemoPanelCtrl', SwitchDemoPanelCtrl);\r\n\r\n /** @ngInject */\r\n function SwitchDemoPanelCtrl() {\r\n var vm = this;\r\n vm.switches = {\r\n s1: true,\r\n s2: false,\r\n s3: true,\r\n s4: true,\r\n s5: false\r\n };\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('BlurAdmin.pages.form')\r\n .directive('tagInput', tagInput);\r\n\r\n /** @ngInject */\r\n function tagInput() {\r\n return {\r\n restrict: 'A',\r\n link: function( $scope, elem, attr) {\r\n $(elem).tagsinput({\r\n tagClass: 'label label-' + attr.tagInput\r\n });\r\n }\r\n };\r\n }\r\n})();\nangular.module('BlurAdmin').run(['$templateCache', function($templateCache) {$templateCache.put('app/groups/create-group-from-group.html','

Create a Group From an Existing Group

{{$select.selected.name}}
');\n$templateCache.put('app/groups/create-group.html','

Create a Group

');\n$templateCache.put('app/groups/delete-group.html','

Delete Group

Are you sure you would like to delete the {{groupsCtrl.selectedGroup.name}} group?

');\n$templateCache.put('app/groups/groups.html','
0\">
NameAddressCityStateZip
{{facility.name | titleCase}}{{facility.address | titleCase}}{{facility.city | titleCase}}{{facility.state}}{{facility.zip}}
{{$select.selected.name}}
{{$select.selected.city | titleCase}}
{{$select.selected.name | titleCase}}
There is no facility information for {{groupsCtrl.selectedState.name}} at this time.
0\" class=\"col-sm-12 col-md-12 col-lg-12\">
{{$select.selected.name | titleCase}}
No facilities were returned from the search.
{{$select.selected.name}}
');\n$templateCache.put('app/leadership/leadership.html','

{{$select.selected.label}}

Operational Scores

DateSurvey TypeDeficiency TypeDeficiency CodeDescription
{{ item.date}}{{item.surveyType}}{{item.deficiencyType}}{{ item.code }}{{item.description}}
');\n$templateCache.put('app/login/login.html','
{{login.loginFailedText}}
{{login.resetFailedText}}
');\n$templateCache.put('app/main/main.html','
');\n$templateCache.put('app/management/add-user.html','

Add User

Are you sure you want add this user to {{mgmtCtrl.selectedOrganization.name}}?

');\n$templateCache.put('app/management/management.html','

Management Overview

{{$select.selected.name}}
{{ user.firstName }} {{user.lastName}}
{{user.emailAddress}}
Administrator
Disabled
Disabled
0\">

Safe Domains

{{domain}}
');\n$templateCache.put('app/management/not-safe-domain.html','

Unsafe Domain

{{mgmtCtrl.newUser.email}}\\'s domain is not on the safe domain list. Are you sure you want to add this user?

');\n$templateCache.put('app/management/remove-domain.html','

Remove Domain from Organization Safe List

Are you sure you want to remove the domain {{domain}} from {{mgmtCtrl.selectedOrganization.name}}?

');\n$templateCache.put('app/performance/performance.html','
{{$select.selected.name}}
 This group is larger than 50 facilities, only the first 50 will be loaded.

0\">
{{facility.startDate | date : \\'shortDate\\': \\'Utc\\'}} - {{facility.endDate | date : \\'shortDate\\' : \\'Utc\\'}}
Community NameBenchmark CountSurveysQuality of CareResident SatisfactionStaffing/TrainingDietFacility & EnvironmentLife SafetyAdministrationOther# ComplaintsTotal Citations# Repeated Citations# FinesTotal Fines ($)Satisfaction Score
{{ facility.facilityPerformance.name | titleCase }}-{{ facility.facilityPerformance.surveys }}{{ facility.facilityPerformance.qualityOfCare }}{{ facility.facilityPerformance.residentSatisfaction }}{{ facility.facilityPerformance.staffingTraining }}{{ facility.facilityPerformance.dietary }}{{ facility.facilityPerformance.facilityAndEnvironment }}{{ facility.facilityPerformance.lifeSafety }}{{ facility.facilityPerformance.administration }}{{ facility.facilityPerformance.other }}{{ facility.facilityPerformance.complaints }}{{ facility.facilityPerformance.totalCitations }}{{ facility.facilityPerformance.repeatedCitations }}{{ facility.facilityPerformance.finesCount }}{{ facility.facilityPerformance.totalFines }}{{ facility.facilityPerformance.satisfactionScore }}
{{ facility.countyPerformance.name }}{{ facility.countyPerformance.benchmarkCount }}{{ facility.countyPerformance.surveys }}{{ facility.countyPerformance.qualityOfCare }}{{ facility.countyPerformance.residentSatisfaction }}{{ facility.countyPerformance.staffingTraining }}{{ facility.countyPerformance.dietary }}{{ facility.countyPerformance.facilityAndEnvironment }}{{ facility.countyPerformance.lifeSafety }}{{ facility.countyPerformance.administration }}{{ facility.countyPerformance.other }}{{ facility.countyPerformance.complaints }}{{ facility.countyPerformance.totalCitations }}{{ facility.countyPerformance.repeatedCitations }}{{ facility.countyPerformance.finesCount }}{{ facility.countyPerformance.totalFines }}{{ facility.countyPerformance.satisfactionScore }}
{{ facility.statePerformance.name }}{{ facility.statePerformance.benchmarkCount}}{{ facility.statePerformance.surveys }}{{ facility.statePerformance.qualityOfCare }}{{ facility.statePerformance.residentSatisfaction }}{{ facility.statePerformance.staffingTraining }}{{ facility.statePerformance.dietary }}{{ facility.statePerformance.facilityAndEnvironment }}{{ facility.statePerformance.lifeSafety }}{{ facility.statePerformance.administration }}{{ facility.statePerformance.other }}{{ facility.statePerformance.complaints }}{{ facility.statePerformance.totalCitations }}{{ facility.statePerformance.repeatedCitations }}{{ facility.statePerformance.finesCount }}{{ facility.statePerformance.totalFines }}{{ facility.statePerformance.satisfactionScore }}
0\" class=\"horizontal-scroll\">
Survey DateSurvey Type# Deficiencies
{{ entry.entryDate | date: \\'MMM d, y\\': \\'utc\\'}}{{entry.description}}-{{entry.count}}-

There is no history to show for this community.

0\" class=\"horizontal-scroll\">
CategorySubcategoryCitationTotal
{{ citation.categoryId | category }}{{citation.subcategory}}{{citation.deficiencyCode}}{{citation.totalCount}}
{{citation.description}}

There is no data for this community.

0\" class=\"horizontal-scroll\">
DateDeficiency CodeCategoryDescription
{{ citation.date | date: \\'MMM d, y\\': \\'utc\\'}}{{citation.deficiencyCode}}{{ citation.categoryId | category }}{{citation.description}}

There is no data for this community.

0\" class=\"horizontal-scroll\">
DatePenalty TypeRule(s)Amount
{{ penalty.penaltyDate | date: \\'MMM d, y\\': \\'utc\\'}}{{penalty.type}}{{penalty.rules}}{{penalty.amount}}

There are no penalties to show for this community.

');\n$templateCache.put('app/portfoliooverview/portfoliooverview.html','
{{$select.selected.name}}

Date Range (max range of 2 years)

{{portfolioCtrl.dateRangeErrorMsg}}

{{portfolioCtrl.portfolioOverviewDateRange}}
Community NameStateSurveysQuality of CareResident SatisfactionStaffing & TrainingDietFacility & EnvironmentLife SafetyAdministrationOther# ComplaintsTotal Citations# Repeated Citations# FinesTotal Fines ($)Satisfaction Score
{{ facility.name | titleCase}}{{ facility.state }}{{ facility.totalSurveys }}{{ facility.qualityOfCare }}{{ facility.residentSatisfaction }}{{ facility.staffingTraining }}{{ facility.dietary}}{{ facility.facilityEnvironment }}{{ facility.lifeSafety }}{{ facility.administration }}{{ facility.other }}{{ facility.complaints }}{{ facility.totalCitations }}{{ facility.repeatedCitations }}{{ facility.fines }}{{ facility.totalFines | currency }}{{ facility.satisfactionScore }}
 
');\n$templateCache.put('app/profile/profile.html','

Change Password

0\">
Passwords do not match.
New Password cannot be empty.
Passwords must contain at least one number.
Passwords must be at least six characters long.
Passwords must contain at least one lowercase letter.
Passwords must contain at least one uppercase letter.
Passwords must contain at least one non-alphanumeric character.
');\n$templateCache.put('app/quality/quality.html','
{{$select.selected.name}}
0\" class=\"form-group col-sm-3 col-xs-6\">{{$select.selected.city | titleCase}}
0\" class=\"form-group col-sm-3 col-xs-6\">{{$select.selected.name | titleCase}}
There is no facility information for {{qualityCtrl.selectedState.name}} at this time.
Address
{{qualityCtrl.communityDetail.street | titleCase}}
City
{{qualityCtrl.communityDetail.city | titleCase}}
State
{{qualityCtrl.communityDetail.state}}
Zip
{{qualityCtrl.communityDetail.zip}}
Phone
{{qualityCtrl.communityDetail.phone}}
Capacity
{{qualityCtrl.communityDetail.capacity}}
License Status
{{qualityCtrl.communityDetail.licenseStatus}}
Date of Last Survey
{{qualityCtrl.communityDetail.dateOfLastSurvey | date: \\'MMM d, y\\': \\'utc\\'}}
Survey Frequency 

{{qualityCtrl.communityDetail.surveyFrequency}}

{{qualityCtrl.getCommunityOverviewDates()}}
Community NameQuality of CareResident SatisfactionStaffing/TrainingDietFacility & EnvironmentLife SafetyAdministrationOther# ComplaintsTotal Citations# Repeated Citations# FinesTotal Fines ($)Satisfaction Score
{{ qualityCtrl.communityOverview.name | titleCase }}{{ qualityCtrl.communityOverview.qualityOfCare }}{{ qualityCtrl.communityOverview.residentSatisfaction }}{{ qualityCtrl.communityOverview.staffingTraining }}{{ qualityCtrl.communityOverview.dietary }}{{ qualityCtrl.communityOverview.facilityAndEnvironment }}{{ qualityCtrl.communityOverview.lifeSafety }}{{ qualityCtrl.communityOverview.administration }}{{ qualityCtrl.communityOverview.other }}{{ qualityCtrl.communityOverview.complaints }}{{ qualityCtrl.communityOverview.totalCitations }}{{ qualityCtrl.communityOverview.repeatedCitations }}{{ qualityCtrl.communityOverview.fines }}{{ qualityCtrl.communityOverview.totalFines }}{{ qualityCtrl.communityOverview.satisfactionScore }}

Operational Citations

Deficiencies

0\" class=\"horizontal-scroll\">
Survey DateSurvey Type# Deficiencies
{{ entry.entryDate | date: \\'MMM d, y\\': \\'utc\\'}}{{entry.description}}-{{entry.count}}-

There is no history to show for this community.

0\" class=\"horizontal-scroll\">
CategorySubcategoryCitation{{qualityCtrl.citationsExplorerData.year1}}{{qualityCtrl.citationsExplorerData.year2}}{{qualityCtrl.citationsExplorerData.year3}}{{qualityCtrl.citationsExplorerData.year4}}Total
{{ citation.categoryId | category }}{{citation.subcategory}}{{citation.deficiencyCode}}{{citation.year1Count}}{{citation.year2Count}}{{citation.year3Count}}{{citation.year4Count}}{{citation.totalCount}}
{{citation.description}}

There is no data for this community.

0\" class=\"horizontal-scroll\">
DateDeficiency CodeCategoryDescription
{{ citation.date | date: \\'MMM d, y\\': \\'utc\\'}}{{citation.deficiencyCode}}{{ citation.categoryId | category }}{{citation.description}}

There is no data for this community.

0\" id=\"demo-penalty-barchart\" class=\"cd-container cssainmiations\">

There is no chart data to show for this community.

0\" class=\"horizontal-scroll\">
DatePenalty TypeRule(s)Amount
{{ penalty.penaltyDate | date: \\'MMM d, y\\': \\'utc\\'}}{{penalty.type}}{{penalty.rules}}{{penalty.amount}}

There are no penalties to show for this community.

Choose up to two competitors to compare with...

{{$item.name | titleCase}}{{community.name | titleCase}}

0\">
{{ competition.name | titleCase}}
Address{{competition.address | titleCase}}
City{{competition.city | titleCase}}
State{{competition.state}}
Quality Of Care{{competition.qualityOfCare}}
Resident Satisfaction{{competition.residentSatisfaction}}
Facility and Environment{{competition.facilityAndEnvironment}}
Dietary{{competition.dietary}}
Staffing & Training{{competition.staffingTraining}}
Life Safety{{competition.lifeSafety}}
Administration{{competition.administration}}
Other{{competition.other}}
Complaints{{competition.complaints}}
Total Citations{{competition.totalCitations}}
Repeat Citations{{competition.repeatedCitations}}
Fines{{competition.fines}}
Total Fines{{competition.totalFines | currency}}
Satisfaction Score{{competition.satisfactionScore}}
');\n$templateCache.put('app/resetpasswords/resetlinksent.html','

Reset Password Email Sent

');\n$templateCache.put('app/resetpasswords/resetpassword.html','

Reset Password

0\">
Passwords do not match.
New Password cannot be empty.
Passwords must contain at least one number.
Passwords must be at least six characters long.
Passwords must contain at least one lowercase letter.
Passwords must contain at least one uppercase letter.
Passwords must contain at least one non-alphanumeric character.

');\n$templateCache.put('app/statebenchmarks/statebenchmarks.html','
{{sbCtrl.startDate | date : \\'shortDate\\': \\'Utc\\'}} - {{sbCtrl.endDate | date : \\'shortDate\\' : \\'Utc\\'}}
StateBenchmark CountSurveysQuality of CareResident SatisfactionStaffing/TrainingDietFacility & EnvironmentLife SafetyAdministrationOther# ComplaintsTotal Citations# Repeated Citations# FinesTotal Fines ($)Satisfaction Score
{{ state.name }}{{state.benchmarkCount}}{{ state.surveys }}{{ state.qualityOfCare }}{{ state.residentSatisfaction }}{{ state.staffingTraining }}{{ state.dietary }}{{ state.facilityAndEnvironment }}{{ state.lifeSafety }}{{ state.administration }}{{ state.other }}{{ state.complaints }}{{ state.totalCitations }}{{ state.repeatedCitations }}{{ state.finesCount }}{{ state.totalFines }}{{ state.satisfactionScore }}
');\n$templateCache.put('app/stateinfo/stateinfo.html','
{{$select.selected}}
State
{{stateCtrl.stateInfo.state}}
State Abbr
{{stateCtrl.stateInfo.stateAbbreviation}}
CMS Region
{{stateCtrl.stateInfo.cmsRegion}}
Classification (ALF)
{{stateCtrl.stateInfo.classification}}
State Agency (ALF)
{{stateCtrl.stateInfo.alfStateAgency}}
State Agency LSS (ALF)
{{stateCtrl.stateInfo.alfStateAgencyLSS}}
State Agency Website (ALF)
State Agency Phone Number (ALF)
{{stateCtrl.stateInfo.alfStateAgencyPhone}}
ALF Other Website (Name)
{{stateCtrl.stateInfo.alfWebsiteName}}
ALF Other Website (Link)
How Often Surveyed?
{{stateCtrl.stateInfo.howOftenSurveyed}}
Notes (ALF)
{{stateCtrl.stateInfo.alfNotes}}
Actual Harm severity cites (ALF)
{{stateCtrl.stateInfo.actualHarmSeverityCites}}
IJ Severity Cites
{{stateCtrl.stateInfo.ijSeverityCites}}
Type of ALF Survey Docs Found On Website
{{stateCtrl.stateInfo.alfTypeOfSurveysOnWebsite}}
MCD Waiver / State Plan (ALF)
{{stateCtrl.stateInfo.alfmcdWaiver}}
CON (ALF)
{{stateCtrl.stateInfo.alfcon}}
Mandatory Staff (ALF)
{{stateCtrl.stateInfo.alfMandatoryStaff}}
Required Hours (ALF)
{{stateCtrl.stateInfo.alfRequiredHours}}
Licensed Hours (ALF)
{{stateCtrl.stateInfo.alfLicensedHours}}
Executive Director (ALF)
{{stateCtrl.stateInfo.executiveDirectorALF}}
Permitted Services: Admin meds (ALF)
{{stateCtrl.stateInfo.alfAdminMeds}}
Permitted Services: Assist with meds (ALF)
{{stateCtrl.stateInfo.alfAssistWithMeds}}
Permitted Services: Hospice (ALF)
{{stateCtrl.stateInfo.alfHospice}}
Regulatory Based Level Of Care (ALF)
{{stateCtrl.stateInfo.alfRegulatoryBasedLevelOfCare}}
Level of Care Permitted (ALF)
{{stateCtrl.stateInfo.alfLevelOfCarePerm}}
Level Of Care Definition (ALF)
{{stateCtrl.stateInfo.alfLevelOfCareDef}}
Citation Name (ALF)
{{stateCtrl.stateInfo.citationName}}
Scope / Severity Harm or above definition (if applicable)
{{stateCtrl.stateInfo.scopeSeverity}}
Follow-up Status (ALF)
{{stateCtrl.stateInfo.followUpStatus}}
Appeal Process & Timeframe (ALF)
{{stateCtrl.stateInfo.appealProcessTimeframe}}
POC Time Frame Required (ALF)?
{{stateCtrl.stateInfo.pocTimeFrameReq}}
POC Notes:
{{stateCtrl.stateInfo.pocTimeFrameNotes}}
CMP Notes
{{stateCtrl.stateInfo.cmpNotes}}
Notes:
{{stateCtrl.stateInfo.enforcementNotes}}
No data for this state. 0\">
Waiver TitleWaiver AuthorityStatusLink
{{waiver.waiverTitle}}{{waiver.waiverAuthority}}{{waiver.status}}Link -
SC Definition
{{stateCtrl.stateInfo.scDefinition}}
MCD Waiver / State Plan (other)
{{stateCtrl.stateInfo.otherMCDWaiver}}
CON (other)
{{stateCtrl.stateInfo.otherCON}}
Mandatory Staff (other)
{{stateCtrl.stateInfo.otherMandatoryStaff}}
Required Hours (other)
{{stateCtrl.stateInfo.otherRequiredHours}}
Licensed Hours (other)
{{stateCtrl.stateInfo.otherLicensedHours}}
Permitted Services: Admin meds (other)
{{stateCtrl.stateInfo.otherAdminMeds}}
Permitted Services: Assist with meds (other)
{{stateCtrl.stateInfo.otherAssistWithMeds}}
Permitted Services: Hospice (other)
{{stateCtrl.stateInfo.otherHospice}}
Regulatory Based Level of Care (other)
{{stateCtrl.stateInfo.otherRegulatoryBasedLevelOfCare}}
Level of Care Permitted (other)
{{stateCtrl.stateInfo.otherLevelOfCarePerm}}
Level of Care Definition (other)
{{stateCtrl.stateInfo.otherLevelOfCareDef}}
Notes:
{{stateCtrl.stateInfo.scServicesNotes}}
Health Survey Types:
Other
{{stateCtrl.stateInfo.healthOthers}}
LSS Survey Types:
{{stateCtrl.stateInfo.surveyTypeLSS}}
State Agency (SNF)
{{stateCtrl.stateInfo.snfStateAgency}}
State Agency Website (SNF)
State Agency Phone Number
{{stateCtrl.stateInfo.stateAgencyPhone}}
State Agency LSS (SNF)
{{stateCtrl.stateInfo.snfStateAgencyLSS}}
State Agency Website LSS (SNF)
Level of Care Permitted (SNF)
{{stateCtrl.stateInfo.snfLevelOfCarePerm}}
Level of Care Definition (SNF)
{{stateCtrl.stateInfo.snfLevelOfCareDef}}
Notes (SNF)
{{stateCtrl.stateInfo.snfNotes}}
Type of SNF Survey Docs Found On Website
{{stateCtrl.stateInfo.snfTypeOfSurveysOnWebsite}}
Info Last Updated
{{stateCtrl.stateInfo.snfUpdated | date: \\'MMM d, y\\': \\'utc\\'}}
');\n$templateCache.put('app/pages/dashboard/dashboard.html','
');\n$templateCache.put('app/pages/maps/maps.html','
');\n$templateCache.put('app/performance/directives/communitylookup.template.html','
{{$select.selected.name}}
0\" class=\"form-group col-sm-3 col-xs-6\">{{$select.selected.city | titleCase}}
0\" class=\"form-group col-sm-3 col-xs-6\">{{$select.selected.name | titleCase}}
There is no facility information for {{selectedState.name}} at this time.

');\n$templateCache.put('app/quality/directives/communityhistory.template.html','
DateCategorySubcategoryDeficiency CodeSeverity Level
{{ entry.entryDate | date: \\'MMM d, y\\': \\'utc\\'}}{{entry.category | category}}{{entry.subCategory}}{{entry.deficiencyCode}}Harm Immediate Jeopardy -
{{entry.narrative}}

No source information for this entry.
DateTypeFine Amount ($)
{{ entry.entryDate | date: \\'MMM d, y\\': \\'utc\\'}}{{entry.penaltyType}}{{entry.penaltyAmount}}
{{entry.narrative}}
DateTypeSatisfaction Score
{{ entry.entryDate | date: \\'MMM d, y\\': \\'utc\\'}}{{entry.description}}{{entry.satisfactionScore}}
Visit source link for more information. No souce information for this entry.
DateTypeEvent
{{ entry.entryDate | date: \\'MMM d, y\\': \\'utc\\'}}{{entry.narrative}}{{entry.eventName}}
Visit source link for more information. No source information for this entry.
DateTypeDescription
{{ eventDetail.surveyDate | date: \\'MMM d, y\\': \\'utc\\'}}{{eventDetail.type}}{{eventDetail.description}}
{{eventDetail.narrative}}

No source information for this entry.
');\n$templateCache.put('app/pages/charts/amCharts/charts.html','
');\n$templateCache.put('app/pages/charts/chartist/chartist.html','
Simple line chart
Line chart with area
Bi-polar line chart with area only
Simple bar chart
Multi-line labels bar chart
Stacked bar chart
Simple Pie
Pie with labels
Donut
');\n$templateCache.put('app/pages/charts/chartJs/chartJs.html','
');\n$templateCache.put('app/pages/charts/morris/morris.html','
');\n$templateCache.put('app/pages/components/mail/mail.html','
{{t.name}}{{t.newMails}}
Work
Family
Friend
Study
Add new label
');\n$templateCache.put('app/pages/components/timeline/timeline.html','
Title of section 1

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Iusto, optio, dolorum provident rerum aut hic quasi placeat iure tempora laudantium ipsa ad debitis unde? Iste voluptatibus minus veritatis qui ut.

Jan 14
Title of section 2

Donec dapibus at leo eget volutpat. Praesent dolor tellus, ultricies venenatis molestie eu, luctus eget nibh. Curabitur ullamcorper eleifend nisl.

Jan 18
Title of section 3

Phasellus auctor tellus eget lacinia condimentum. Cum sociis natoque penatibus et magnis dis parturient montes.

Feb 18
Title of section 4

Morbi fringilla in massa ac posuere. Fusce non sagittis massa, id accumsan odio. Nullam eget tempor est. Etiam eu felis eu purus aliquam tristique id quis nisl. Nam eros nibh, consequat sed pulvinar eu, ultrices ornare ligula. Aenean interdum sed nunc sed hendrerit.

Feb 20
Title of section 5

Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Curabitur eget mattis metus. Nullam egestas eros metus, quis fringilla urna accumsan sed. Aliquam ultrices at arcu vitae tincidunt.

Feb 21
Title of section 6

Praesent bibendum ante mattis augue consectetur, ut commodo turpis consequat. Donec ligula eros, porta in iaculis vel, semper ac sem. Integer at mauris lorem.

Feb 23
Title of section 7

Vivamus ut laoreet erat, vitae eleifend eros. Sed varius id tellus non lobortis. Sed dolor ante, cursus non scelerisque sed, euismod id eros.

Feb 24
');\n$templateCache.put('app/pages/components/tree/tree.html','
');\n$templateCache.put('app/pages/form/inputs/inputs.html','
');\n$templateCache.put('app/pages/form/layouts/layouts.html','
');\n$templateCache.put('app/pages/form/wizard/wizard.html','
Required
Proper email required
Required
Passwords should match
Required
Required
Required
Congratulations! You have successfully filled the form!
');\n$templateCache.put('app/pages/dashboard/blurFeed/blurFeed.html','
{{ ::message.author }} {{ ::message.surname}}
{{message.header}}{{::message.text}}
{{::message.time}}
{{::message.ago}}
');\n$templateCache.put('app/pages/dashboard/dashboardCalendar/dashboardCalendar.html','
');\n$templateCache.put('app/pages/dashboard/dashboardLineChart/dashboardLineChart.html','
');\n$templateCache.put('app/pages/dashboard/dashboardMap/dashboardMap.html','
');\n$templateCache.put('app/pages/dashboard/dashboardPieChart/dashboardPieChart.html','
{{ ::chart.description }}
{{ ::chart.stats }}
');\n$templateCache.put('app/pages/dashboard/dashboardTodo/dashboardTodo.html','
');\n$templateCache.put('app/pages/dashboard/popularApp/popularApp.html','
Super App
Most Popular App
175$
Total Visits
47,512
New Visits
9,217
Sales
2,928
');\n$templateCache.put('app/pages/dashboard/trafficChart/trafficChart.html','
1,900,128 Views Total

{{::label}}+{{data.percentage[i]}}%

');\n$templateCache.put('app/pages/dashboard/weather/weather.html','
{{geoData.geoplugin_city}} - {{geoData.geoplugin_countryName | uppercase}}
{{ weather.days[weather.current].date | date : \\'EEEE h:mm\\'}}
{{weather.days[weather.current].main}} - {{weather.days[weather.current].description}}
{{weather.days[weather.current].temp}} \\xB0C | \\xB0F {{weather.days[weather.current].temp}} \\xB0F | \\xB0C
{{day.temp}}
{{day.main}}
{{day.date | date : \\'EEE\\'}}
');\n$templateCache.put('app/pages/maps/google-maps/google-maps.html','
');\n$templateCache.put('app/pages/maps/leaflet/leaflet.html','
');\n$templateCache.put('app/pages/maps/map-bubbles/map-bubbles.html','
');\n$templateCache.put('app/pages/maps/map-lines/map-lines.html','
');\n$templateCache.put('app/pages/tables/basic/tables.html','
');\n$templateCache.put('app/pages/tables/smart/tables.html','
');\n$templateCache.put('app/pages/ui/alerts/alerts.html','
Well done! You successfully read this important alert message.
Heads up! This alert needs your attention, but it\\'s not super important.
Warning! Better check yourself, you\\'re not looking too good.
Oh snap! Change a few things up and try submitting again.
Well done! You successfully read this important alert message.
Heads up! This alert needs your attention, but it\\'s not super important.
Warning! Better check yourself, you\\'re not looking too good.
Oh snap! Change a few things up and try submitting again.
Well done! You successfully read this important alert message.
Heads up! This alert needs your attention, but it\\'s not super important.
Warning! Better check yourself, you\\'re not looking too good.
Oh snap! Change a few things up and try submitting again.

Warning!

Pay attention. Change a few things up and try submitting again.
');\n$templateCache.put('app/pages/tables/widgets/basicTable.html','
BrowserVisitsDownloadsPurchasesDAUMAULTVUsers %
Google Chrome10,3923,8224,2148997,09817845%
Mozilla Firefox7,8736,0033,0318978,99710228%
Internet Explorer5,8903,4922,102274,0399917%
Safari4,0012,0391,0011043,98320914%
Opera1,83398383191,0991035%
');\n$templateCache.put('app/pages/tables/widgets/borderedTable.html','
BrowserVisitsPurchases%
{{item.browser}}{{item.visits}}{{item.purchases}}{{item.percent}}
');\n$templateCache.put('app/pages/tables/widgets/condensedTable.html','
#First NameLast NameUsernameEmailStatus
{{item.id}}{{item.firstName}}{{item.lastName}}{{item.username}}{{item.email}}
');\n$templateCache.put('app/pages/tables/widgets/contextualTable.html','
#First NameLast NameUsernameEmailAge
1MarkOtto@mdomdo@gmail.com28
2JacobThornton@fatfat@yandex.ru45
3LarryBird@twittertwitter@outlook.com18
4JohnSnow@snowsnow@gmail.com20
5JackSparrow@jackjack@yandex.ru30
');\n$templateCache.put('app/pages/tables/widgets/editableRowTable.html','
NameStatusGroupActions
{{$index}}{{ user.name || \\'empty\\' }}{{ showStatus(user) }}{{ showGroup(user) }}
');\n$templateCache.put('app/pages/tables/widgets/editableTable.html','
#First NameLast NameUsernameEmailAge
{{item.id}}{{item.firstName}}{{item.lastName}}{{item.username}}{{item.email}}{{item.age}}
');\n$templateCache.put('app/pages/tables/widgets/hoverRows.html','
BrowserVisitsPurchases%
{{item.browser}}{{item.visits}}{{item.purchases}}{{item.percent}}
');\n$templateCache.put('app/pages/tables/widgets/responsiveTable.html','
#First NameLast NameUsernameEmailAge
1MarkOtto@mdomdo@gmail.com28
2JacobThornton@fatfat@yandex.ru45
3LarryBird@twittertwitter@outlook.com18
4JohnSnow@snowsnow@gmail.com20
5JackSparrow@jackjack@yandex.ru30
');\n$templateCache.put('app/pages/tables/widgets/smartTable.html','
#First NameLast NameUsernameEmailAge
{{item.id}}{{item.firstName}}{{item.lastName}}{{item.username}}{{item.email}}{{item.age}}
');\n$templateCache.put('app/pages/tables/widgets/stripedRows.html','
#First NameLast NameUsernameEmailAge
{{item.id}}{{item.firstName}}{{item.lastName}}{{item.username}}{{item.email}}{{item.age}}
');\n$templateCache.put('app/pages/ui/buttons/buttons.html','
');\n$templateCache.put('app/pages/ui/grid/baseGrid.html','

Stacked to horizontal

.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-8
.col-md-4
.col-md-4
.col-md-4
.col-md-4
.col-md-6
.col-md-6

Mobile and desktop

xs-12 .col-md-8
xs-6 .col-md-4
xs-6 .col-md-4
xs-6 .col-md-4
xs-6 .col-md-4
.col-xs-6
.col-xs-6

Mobile, tablet, desktop

.col-xs-12 .col-sm-6 .col-md-8
.col-xs-6 .col-md-4
.col-xs-6 .col-sm-4
.col-xs-6 .col-sm-4
.col-xs-6 .col-sm-4

Column wrapping

.col-xs-9
.col-xs-4
Since 9 + 4 = 13 > 12, this 4-column-wide div gets wrapped onto a new line as one contiguous unit.
.col-xs-6
Subsequent columns continue along the new line.

Responsive column resets

.col-xs-6 .col-sm-3

Resize your viewport or check it out on your phone for an example.

.col-xs-6 .col-sm-3
.col-xs-6 .col-sm-3
.col-xs-6 .col-sm-3

Offsetting columns

.col-md-4
.col-md-4 .col-md-offset-4
.col-md-3 .col-md-offset-3
.col-md-3 .col-md-offset-3
.col-md-6 .col-md-offset-3

Grid options

Extra small devices Phones (<768px)Small devices Tablets (\\u2265768px)Medium devices Desktops (\\u2265992px)Large devices Desktops (\\u22651200px)
Grid behaviorHorizontal at all timesCollapsed to start, horizontal above breakpoints
Container widthNone (auto)750px970px1170px
Class prefix.col-xs-.col-sm-.col-md-.col-lg-
# of columns12
Column widthAuto~62px~81px~97px
Gutter width30px (15px on each side of a column)
NestableYes
OffsetsYes
Column orderingYes
');\n$templateCache.put('app/pages/ui/grid/grid.html','
');\n$templateCache.put('app/pages/ui/icons/icons.html','
');\n$templateCache.put('app/pages/ui/modals/modals.html','
');\n$templateCache.put('app/pages/ui/notifications/notifications.html','
{{optionsStr}}
');\n$templateCache.put('app/pages/ui/panels/panels.html','

Default panels

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris ac mi erat. Phasellus placerat, elit a laoreet semper, enim ipsum ultricies orci, ac tincidunt tellus massa eu est. Nam non porta purus, sed facilisis justo. Nam pulvinar sagittis quam.
Phasellus maximus venenatis augue, et vestibulum neque aliquam ut. Morbi mattis libero vitae vulputate dignissim. Praesent placerat, sem non dapibus cursus, lacus nisi blandit quam, vitae porttitor lectus lacus non turpis. Donec suscipit consequat tellus.

Suspendisse nec tellus urna. Sed id est metus. Nullam sit amet dolor nec ipsum dictum suscipit. Mauris sed nisi mauris. Nulla iaculis nisl ut velit ornare imperdiet. Suspendisse potenti. In tempor leo sed sem malesuada pellentesque. Maecenas faucibus metus lacus, ac egestas diam vulputate vitae.

Sed dapibus, purus vel hendrerit consectetur, lectus orci gravida massa, sed bibendum dui mauris et eros. Nulla dolor massa, posuere et dictum sit amet, dignissim quis odio. Fusce mollis finibus dignissim. Integer sodales augue erat. Pellentesque laoreet vestibulum urna at iaculis. Nulla libero augue, euismod at diam eget, aliquam condimentum ligula. Donec a leo eu est molestie lacinia hendrerit sed lorem. Duis id diam eu metus sodales consequat vel eu elit. Praesent dolor nibh, convallis eleifend feugiat a, finibus porttitor nibh. Ut non libero vel velit pulvinar scelerisque non vel lorem. Integer porta tempor nulla. Sed nibh erat, ultrices vel lorem eu, rutrum vehicula sem.

Donec nec tellus urna. Sed id est metus. Nullam sit amet dolor nec ipsum dictum suscipit. Mauris sed nisi mauris. Nulla iaculis nisl ut velit ornare imperdiet. Suspendisse potenti. In tempor leo sed sem malesuada pellentesque. Maecenas faucibus metus lacus, ac egestas diam vulputate vitae.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque fermentum nec ligula egestas rhoncus. Sed dignissim, augue vel scelerisque vulputate, nisi ante posuere lorem, quis iaculis eros dolor eu nisl. Etiam sagittis, ipsum ac tempor iaculis, justo neque mattis ante, ac maximus sapien risus eu sapien. Morbi erat urna, varius et lectus vel, porta dictum orci. Duis bibendum euismod elit, et lobortis purus venenatis in. Mauris eget lacus enim. Cras quis sem et magna fringilla convallis. Proin hendrerit nulla vel gravida mollis. Interdum et malesuada fames ac ante ipsum primis in faucibus. Vestibulum consectetur quis purus vel aliquam.

Bootstrap panels

A panel in bootstrap is a bordered box with some padding around its content.

Panels are created with the .panel class, and content inside the panel has a .panel-body class. The .panel-default .panel-primary .panel-danger and other classes are used to style the color of the panel. See the next example on this page for more contextual classes.

Panel Heading

The .panel-heading class adds a heading to the panel.Easily add a heading container to your panel with .panel-heading. You may also include any h1-h6 with a .panel-title class to add a pre-styled heading.

Wrap buttons or secondary text in .panel-footer. Note that panel footers do not inherit colors and borders when using contextual variations as they are not meant to be in the foreground.

Panel Footer

Panels with Contextual Classes

Panel with panel-default class
To color the panel, use contextual classes. This is sample .panel-default panel
Panel with panel-primary class
Sample .panel-primary panel
Panel with panel-success class
Sample .panel-success panel
Panel with panel-info class
Sample .panel-info panel
Panel with panel-warning class
Sample .panel-warning panel
Panel with panel-danger class
Sample .panel-danger panel

Panel Group

Panel group 1

To group many panels together, wrap a <div> with class \\r\\n .panel-group around them.

Panel group 2

The .panel-group class clears the bottom-margin of each panel.

');\n$templateCache.put('app/pages/ui/progressBars/progressBars.html','
');\n$templateCache.put('app/pages/ui/slider/slider.html','
Basic
With prefix
With postfix
Two way range
With Steps
Decorating numbers
Using custom values array
Disabled
');\n$templateCache.put('app/pages/ui/typography/typography.html','

H1. Heading 1

Lorem ipsum dolor sit amet, id mollis iaculis mi nisl pulvinar, lacinia scelerisque pharetra, placerat vestibulum eleifend pellentesque.

H2. Heading 2

Lorem ipsum dolor sit amet, id mollis iaculis mi nisl pulvinar, lacinia scelerisque pharetra, placerat vestibulum eleifend pellentesque.

H3. Heading 3

Lorem ipsum dolor sit amet, id mollis iaculis mi nisl pulvinar, lacinia scelerisque pharetra, placerat vestibulum eleifend pellentesque.

H4. Heading 4

Lorem ipsum dolor sit amet, id mollis iaculis mi nisl pulvinar, lacinia scelerisque pharetra,.

H5. Heading 5

Lorem ipsum dolor sit amet, id mollis iaculis mi nisl pulvinar, lacinia scelerisque pharetra.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur bibendum ornare dolor, quis ullamcorper ligula sodales at. Nulla tellus elit, varius non commodo eget, mattis vel eros. In sed ornare nulla. Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis.

Curabitur bibendum ornare dolor, quis ullamcorper ligula dfgz`zzsodales at. Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam id dolor id.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur bibendum ornare dolor, quis ullamcorper ligula sodales at. Nulla tellus elit, varius non commodo eget, mattis vel eros. In sed ornare nulla.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur bibendum ornare dolor, quis ullam-corper ligula sodales at. Nulla tellus elit, varius non commodo eget, mattis vel eros. In sed ornare nulla.

Secondary text. Lorem ipsum dolor sit amet, id mollis iaculis mi nisl pulvinar,

lacinia scelerisque pharetra, placerat vestibulum eleifend

pellentesque, mi nam.

Unordered list:
  • Lorem ipsum dolor sit amet
  • \\u0421lacinia scelerisque pharetra
    • Dui rhoncus quisque integer lorem
      • Libero iaculis vestibulum eu vitae
  • Nisl lectus nibh habitasse suspendisse ut
  • Posuere cursus hac, vestibulum wisi nulla bibendum
Ordered Lists:
  1. Eu non nec cursus quis mollis, amet quam nec
  2. Et suspendisse, adipiscing fringilla ornare sit ligula sed
    1. Interdum et justo nulla
      1. Magna amet, suscipit suscipit non amet
  3. Metus duis eu non eu ridiculus turpis
  4. Neque egestas id fringilla consectetuer justo curabitur, wisi magna neque commodo volutpat
Important text fragment. Lorem ipsum dolor sit amet, id mollis iaculis mi nisl pulvinar, lacinia scelerisque pharetra.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur bibendum ornare dolor, quis ullamcorper ligula sodales at. Nulla tellus elit, varius non commodo eget, mattis vel eros. In sed ornare nulla. Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

Curabitur bibendum ornare dolor, quis ullamcorper ligula dfgz`zzsodales at. Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam id dolor id nibh ultricies vehicula ut id elit. In sed ornare nulla.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur bibendum ornare dolor, quis ullamcorper ligula sodales at. Nulla tellus elit, varius non commodo eget, mattis vel eros. In sed ornare nulla.

\"\"

Simple Banner Text

Lorem ipsum dolor sit amet

Odio amet viverra rutrum

Columns

\"\"

Vel elit, eros elementum, id lacinia, duis non ut ut tortor blandit. Mauris dapibus magna rutrum. Ornare neque suspendisse phasellus wisi, quam cras pede rutrum suspendisse, felis amet eu. Congue magna elit quisque quia, nullam justo sagittis, ante erat libero placerat, proin condimentum consectetuer lacus. Velit condimentum velit, sed penatibus arcu nulla.

\"\"

Et suspendisse, adipiscing fringilla ornare sit ligula sed, vel nam. Interdum et justo nulla, fermentum lobortis purus ut eu, duis nibh dolor massa tristique elementum, nibh iste potenti risus fusce aliquet fusce, ullamcorper debitis primis arcu tellus vestibulum ac.

Column heading example

\"\"

Eget augue, lacus erat ante egestas scelerisque aliquam, metus molestie leo in habitasse magna maecenas

Lean more

Yet another column heading example

\"\"

Augue massa et parturient, suspendisse orci nec scelerisque sit, integer nam mauris pede consequat in velit

Lean more

Third column heading example

\"\"

Eget turpis, tortor lobortis porttitor, vestibulum nullam vehicula aliquam

Lean more
');\n$templateCache.put('app/pages/ui/tabs/contextualAccordion.html','Primary Success Info Warning Danger ');\n$templateCache.put('app/pages/ui/tabs/mainTabs.html','

Take up one idea. Make that one idea your life--think of it, dream of it, live on that idea. Let the brain, muscles, nerves, every part of your body, be full of that idea, and just leave every other idea alone. This is the way to success.

People who succeed have momentum. The more they succeed, the more they want to succeed, and the more they find a way to succeed. Similarly, when someone is failing, the tendency is to get on a downward spiral that can even become a self-fulfilling prophecy.

The reason most people never reach their goals is that they don\\'t define them, or ever seriously consider them as believable or achievable. Winners can tell you where they are going, what they plan to do along the way, and who will be sharing the adventure with them.

You can\\'t connect the dots looking forward; you can only connect them looking backwards. So you have to trust that the dots will somehow connect in your future. You have to trust in something--your gut, destiny, life, karma, whatever. This approach has never let me down, and it has made all the difference in my life.

The reason most people never reach their goals is that they don\\'t define them, or ever seriously consider them as believable or achievable. Winners can tell you where they are going, what they plan to do along the way, and who will be sharing the adventure with them.

Dropdown tab

Success is ... knowing your purpose in life, growing to reach your maximum potential, and sowing seeds that benefit others.

Failure is the condiment that gives success its flavor.

');\n$templateCache.put('app/pages/ui/tabs/sampleAccordion.html','This content is straight in the template.

The body of the uib-accordion group grows to fit the contents

HelloI can have markup, too! This is just some content to illustrate fancy headings.
');\n$templateCache.put('app/pages/ui/tabs/sideTabs.html','

Take up one idea.

People who succeed have momentum. The more they succeed, the more they want to succeed, and the more they find a way to succeed.

You can\\'t connect the dots looking forward; you can only connect them looking backwards. So you have to trust that the dots will somehow connect in your future. You have to trust in something--your gut, destiny, life, karma, whatever. This approach has never let me down, and it has made all the difference in my life.

The reason most people never reach their goals is that they don\\'t define them, or ever seriously consider them as believable or achievable. Winners can tell you where they are going, what they plan to do along the way, and who will be sharing the adventure with them.

Success is ... knowing your purpose in life, growing to reach your maximum potential, and sowing seeds that benefit others.

Failure is the condiment that gives success its flavor.

Take up one idea.

People who succeed have momentum. The more they succeed, the more they want to succeed, and the more they find a way to succeed.

You can\\'t connect the dots looking forward; you can only connect them looking backwards. So you have to trust that the dots will somehow connect in your future. You have to trust in something--your gut, destiny, life, karma, whatever. This approach has never let me down, and it has made all the difference in my life.

The reason most people never reach their goals is that they don\\'t define them, or ever seriously consider them as believable or achievable. Winners can tell you where they are going, what they plan to do along the way, and who will be sharing the adventure with them.

Success is ... knowing your purpose in life, growing to reach your maximum potential, and sowing seeds that benefit others.

Failure is the condiment that gives success its flavor.

');\n$templateCache.put('app/pages/ui/tabs/tabs.html','
');\n$templateCache.put('app/theme/components/backTop/backTop.html','');\n$templateCache.put('app/theme/components/baSidebar/ba-sidebar.html','');\n$templateCache.put('app/theme/components/baWizard/baWizard.html','
{{t.title}}
');\n$templateCache.put('app/theme/components/baWizard/baWizardStep.html','
');\n$templateCache.put('app/theme/components/msgCenter/msgCenter.html','');\n$templateCache.put('app/theme/components/pageTop/pageTop.html','
{{userName}}
');\n$templateCache.put('app/theme/components/contentTop/contentTop.html','

{{ activePageTitle }}

');\n$templateCache.put('app/theme/components/progressBarRound/progressBarRound.html','Loading...{{progress}}%');\n$templateCache.put('app/theme/components/widgets/widgets.html','
1}\">
');\n$templateCache.put('app/theme/inputs/baSwitcher/baSwitcher.html','');\n$templateCache.put('app/pages/charts/amCharts/areaChart/areaChart.html','
');\n$templateCache.put('app/pages/charts/amCharts/barChart/barChart.html','
');\n$templateCache.put('app/pages/charts/amCharts/combinedChart/combinedChart.html','
');\n$templateCache.put('app/pages/charts/amCharts/funnelChart/funnelChart.html','
');\n$templateCache.put('app/pages/charts/amCharts/ganttChart/ganttChart.html','
');\n$templateCache.put('app/pages/charts/amCharts/lineChart/lineChart.html','
');\n$templateCache.put('app/pages/charts/amCharts/pieChart/pieChart.html','
');\n$templateCache.put('app/pages/components/mail/composeBox/compose.html','
New message
');\n$templateCache.put('app/pages/components/mail/detail/mailDetail.html','

{{detailCtrl.mail.name.split(\\' \\')[0]}}

{{detailCtrl.mail.name.split(\\' \\')[1]}}

{{detailCtrl.mail.tag}}
777-777-7777
{{detailCtrl.mail.email}}
{{detailCtrl.mail.position}}
12 Nezavisimosti st. Vilnius, Lithuania
{{detailCtrl.mail.subject}} \\u2022 {{detailCtrl.mail.date | date : \\'h:mm a MMMM d \\'}}
1 Attachment - View | Download
{{detailCtrl.mail.attachment}}
Nothing to show
');\n$templateCache.put('app/pages/components/mail/list/mailList.html','
{{m.name}}
{{m.tag}}
{{m.subject}}
{{m.body | plainText}}
{{m.date | date : \\'MMM d HH:mm\\'}}
');\n$templateCache.put('app/pages/form/layouts/widgets/basicForm.html','
');\n$templateCache.put('app/pages/form/layouts/widgets/blockForm.html','
');\n$templateCache.put('app/pages/form/layouts/widgets/formWithoutLabels.html','
');\n$templateCache.put('app/pages/form/layouts/widgets/horizontalForm.html','
');\n$templateCache.put('app/pages/form/layouts/widgets/inlineForm.html','
');\n$templateCache.put('app/pages/form/inputs/widgets/checkboxesRadios.html','
');\n$templateCache.put('app/pages/form/inputs/widgets/inputGroups.html','
@
@example.com
$ .00
');\n$templateCache.put('app/pages/form/inputs/widgets/standardFields.html','
A block of help text that breaks onto a new line and may extend beyond one line.
');\n$templateCache.put('app/pages/form/inputs/widgets/validationStates.html','
(success)
(warning)
(error)
@
(success)
');\n$templateCache.put('app/pages/ui/icons/widgets/fontAwesomeIcons.html','
See all Font Awesome icons');\n$templateCache.put('app/pages/ui/icons/widgets/ionicons.html','
See all ionicons icons');\n$templateCache.put('app/pages/ui/icons/widgets/kameleon.html','
{{icon.name}}
See all Kamaleon icons');\n$templateCache.put('app/pages/ui/icons/widgets/kameleonRounded.html','
{{ icon.name }}
See all Kamaleon icons');\n$templateCache.put('app/pages/ui/icons/widgets/socicon.html','
{{ icon }}
See all Socicon icons');\n$templateCache.put('app/pages/ui/modals/modalTemplates/basicModal.html','

Modal title

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.
');\n$templateCache.put('app/pages/ui/modals/modalTemplates/dangerModal.html','
Error
Your information hasn\\'t been saved!
');\n$templateCache.put('app/pages/ui/modals/modalTemplates/infoModal.html','
Information
You\\'ve got a new email!
');\n$templateCache.put('app/pages/ui/modals/modalTemplates/largeModal.html','

Modal title

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.
');\n$templateCache.put('app/pages/ui/modals/modalTemplates/smallModal.html','

Modal title

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.
');\n$templateCache.put('app/pages/ui/modals/modalTemplates/successModal.html','
Success
Your information has been saved successfully
');\n$templateCache.put('app/pages/ui/modals/modalTemplates/warningModal.html','
Warning
Your computer is about to explode!
');\n$templateCache.put('app/pages/ui/buttons/widgets/buttonGroups.html','
');\n$templateCache.put('app/pages/ui/buttons/widgets/buttons.html','
Default button
Small button
Extra small button
Disabled button
');\n$templateCache.put('app/pages/ui/buttons/widgets/dropdowns.html','
Split button dropdowns
');\n$templateCache.put('app/pages/ui/buttons/widgets/iconButtons.html','
Buttons with icons
');\n$templateCache.put('app/pages/ui/buttons/widgets/largeButtons.html','
');\n$templateCache.put('app/pages/ui/buttons/widgets/progressButtons.html','
fill horizontal
fill vertical
shrink horizontal
shrink vertical
rotate-angle-bottom
perspective
rotate-angle-top
perspective
rotate-angle-left
perspective
rotate-angle-right
perspective
rotate-side-down
perspective
rotate-side-up
perspective
rotate-side-left
perspective
rotate-side-right
perspective
rotate-back
perspective
flip-open
perspective
slide-down
horizontal
move-up
horizontal
top-line
horizontal
lateral-lines
vertical
');\n$templateCache.put('app/pages/ui/modals/notifications/notifications.html','
');\n$templateCache.put('app/pages/ui/modals/progressModal/progressModal.html','
');\n$templateCache.put('app/pages/ui/progressBars/widgets/animated.html','
40% Complete (success)
20% Complete
60% Complete (warning)
80% Complete (danger)
');\n$templateCache.put('app/pages/ui/progressBars/widgets/basic.html','
40% Complete (success)
20% Complete
60% Complete (warning)
80% Complete (danger)
');\n$templateCache.put('app/pages/ui/progressBars/widgets/label.html','
40% Complete (success)
20% Complete
60% Complete (warning)
80% Complete (danger)
');\n$templateCache.put('app/pages/ui/progressBars/widgets/stacked.html','
35% Complete (success)
20% Complete (warning)
10% Complete (danger)
20% Complete (warning)
');\n$templateCache.put('app/pages/ui/progressBars/widgets/striped.html','
40% Complete (success)
20% Complete
60% Complete (warning)
80% Complete (danger)
');\n$templateCache.put('app/pages/form/inputs/widgets/datePickers/datePickers.html','

Inline

Popup

');\n$templateCache.put('app/pages/form/inputs/widgets/oldSelect/select.html','
');\n$templateCache.put('app/pages/form/inputs/widgets/oldSwitches/switch.html','
');\n$templateCache.put('app/pages/form/inputs/widgets/select/select.html','
{{$select.selected.label}}
{{$select.selected.label}}
{{$select.selected.label}}
{{$select.selected.label}}
{{$select.selected.name}}
{{$item.label}}{{multipleItem.label}}
{{$item.label}}{{withDeleteItem.label}}
');\n$templateCache.put('app/pages/form/inputs/widgets/switches/switch.html','
');\n$templateCache.put('app/pages/form/inputs/widgets/tagsInput/tagsInput.html','
');}]);"],"sourceRoot":"/source/"}