{"version":3,"sources":["../../../build/app_publicroster/app_publicroster.module.js","../../../build/app_publicroster/modules/roster/publicroster.module.js","../../../build/app_publicroster/app_publicroster.templates.js","../../../build/app_publicroster/modules/roster/publicroster.routes.js","../../../build/app_publicroster/modules/roster/view.controller.js","../../../build/App/startup/startup.module.js","../../../build/App/startup/momentoverrides.run.js","../../../build/App/services/reporttime/reporttime.module.js","../../../build/App/services/reporttime/comparetime.factory.js","../../../build/App/services/reporttime/reporttime.factory.js","../../../build/App/services/dialog/dialog.factory.js","../../../build/App/directives/inputdate/inputdate.directive.js","../../../build/App/directives/popoverhtml/popoverhtml.directive.js","../../../build/App/directives/loader/loader.directive.js","../../../build/App/filters/reporttimeformat/reporttimeformat.filter.js","../../../build/App/modules/time/roster/roster.module.js","../../../build/App/modules/time/roster/editorbody.directive.js","../../../build/App/modules/time/roster/shiftformat.directive.js","../../../build/App/modules/time/roster/editnav.directive.js","../../../build/App/modules/time/roster/rolefilter.directive.js","../../../build/constants.module.js"],"names":[],"mappings":"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","file":"publicroster.js","sourcesContent":["angular.module('app_publicroster', [\n 'ui.bootstrap',\n 'ui.router',\n 'ngResource',\n /*Modules from mercury that are required */\n 'mercury.startup',\n 'mercury.constants',\n 'mercury.modules.time.roster',\n 'mercury.services.reporttime',\n 'mercury.services.dialog',\n 'mercury.directives.inputdate',\n 'mercury.directives.popoverhtml',\n 'mercury.directives.loader',\n 'mercury.filters.reporttimeformat',\n /*Application modules*/\n 'app_publicroster.modules.roster'\n]);\n","angular.module('app_publicroster.modules.roster', []);\n","angular.module('app_publicroster').run(['$templateCache', function ($templateCache) {\r\n $templateCache.put(\"modules/roster/error.tpl.html\",\r\n \"
Invalid Roster Link
\");\r\n $templateCache.put(\"modules/roster/view.tpl.html\",\r\n \"

Roster - {{companyName}}

Name
0\\\" style=\\\"height: 94%\\\">
The roster for the selected week hasn’t been published yet. Please check back soon or reach out to your manager.
{{ leave.type }}
\");\r\n}]);\r\n","angular.module('app_publicroster.modules.roster')\n.config([\"$stateProvider\", \"$urlRouterProvider\", function($stateProvider, $urlRouterProvider) {\n $stateProvider.state('PublicRoster', {\n url: '/roster/:companyId/:token?:report',\n templateUrl: 'modules/roster/view.tpl.html',\n controller: 'TimePublicRosterViewCtrl'\n });\n\n $stateProvider.state('PublicRosterError', {\n url: '/error',\n templateUrl: 'modules/roster/error.tpl.html'\n });\n\n $urlRouterProvider.otherwise('/error');\n}]);\n","/**\n * @ngdoc controllers\n * @memberof app_publicroster\n * @name TimePublicRosterViewCtrl\n * @description A read only view of the roster which can be accessed by users without an authentication.\n */\nangular.module('app_publicroster.modules.roster')\n.controller('TimePublicRosterViewCtrl', [\"$filter\", \"$http\", \"reporttime\", \"$scope\", \"$state\", \"$stateParams\", \"settings\", function($filter, $http, reporttime, $scope, $state, $stateParams, settings) {\n var REPORT_TYPE = 'week';\n reporttime.defaultType = REPORT_TYPE;\n reporttime.setAllowedTypes([REPORT_TYPE]);\n\n $scope.sortCol = 'name';\n $scope.filter = null;\n $scope.public = true;\n\n /**\n * Helper to get the day index (Sunday = 0) of a moment.\n */\n function getDayIndex(aMoment) {\n var index = null;\n for (const dayIndex in $scope.days) {\n var day = $scope.days[dayIndex];\n if (\n aMoment.isSame(day.startTime) ||\n aMoment.isBetween(day.startTime, day.endTime)\n ) {\n index = dayIndex;\n }\n }\n return index;\n }\n \n var updateMemberTotals = function() {\n $scope.memberTotals = {};\n\n angular.forEach($scope.rosteredShifts, function(rosteredShift) {\n //Only add the hours that match the filter exactly. If the staff matches the filter but this shift\n //doesn't, don't add this to the totals.\n if ($scope.isRoleShown(rosteredShift.roleId)) {\n $scope.memberTotals[rosteredShift.staffMemberId] = true;\n }\n });\n\n angular.forEach($scope.staff, function(member) {\n if ($scope.isRoleShown(member.defaultMemberRoleRoleId) && !$scope.memberTotals[member.id] && $scope.isStaffShown(member)) {\n $scope.memberTotals[member.id] = true;\n }\n });\n };\n\n $scope.loading = $http.get(settings.mercHost + '/time-roster-public/preferences', {\n params: {\n token: $stateParams.token,\n companyId: $stateParams.companyId\n }\n });\n\n $scope.loading.then(function(response) {\n reporttime.weekStart = response.data.weekStart;\n reporttime.dayStart = response.data.dayStart;\n\n moment.locale(response.data.locale);\n moment.tz.setDefault(response.data.localeTimeZone);\n\n // We need to set the view start and end times here because we need to use the \n // company preferences to calculate the start and end times that we need to display\n $scope.viewStartDateTime = reporttime.start('week');\n $scope.viewEndDateTime = reporttime.end('week');\n\n $scope.companyName = response.data.companyName;\n $scope.loading = $http.get(settings.mercHost + '/time-roster-public', {\n params: {\n token: $stateParams.token,\n companyId: $stateParams.companyId,\n startTime: $scope.viewStartDateTime,\n endTime: $scope.viewEndDateTime\n }\n });\n\n /**\n * Helper to get the appropriate day details object from the $scope.days array\n * for the given moment.\n */\n function getDayDetails(startMoment) {\n return $scope.days.find(day => moment(day.startTime).format('YYYY-MM-DD') === startMoment.format('YYYY-MM-DD'));\n }\n\n /**\n * Helper that given two moments representing the start and end points of\n * a range, will return records from $scope.days that run from the start\n * of the requested range up until the end time, or the end of the week\n * that is being displayed in the UI.\n */\n function getAllDayDetailsWithinRange(startMoment, endMoment) {\n var dayDetails = [];\n var currentDay = startMoment.clone();\n\n let currentDayDetails = getDayDetails(currentDay)\n\n while (\n // days are only included if they're in the range specified (exclusive),\n // we only check the day because the current day is started from the\n // startMoment and this may have a different time than the end moment.\n currentDay.isSameOrBefore(endMoment, 'day') &&\n // the last day on the UI has the day index 6, we don't want any days\n // beyond that\n (!currentDayDetails || currentDayDetails.dayIndex < 7) &&\n // we don't want more than a complete week's worth of days\n dayDetails.length < 8\n ) {\n if (currentDayDetails) {\n // a day we care about, add it to the list\n dayDetails.push(currentDayDetails);\n }\n\n // bump for the next loop iteration\n currentDay.add(1, 'day');\n currentDayDetails = getDayDetails(currentDay)\n }\n\n return dayDetails;\n }\n\n /**\n * This function sets the time boundaries for a OneOff unavailability record and leave request tiles\n * @param {*} startMoment - the start moment of the leave or unavailability record\n * @param {*} endMoment - the end moment of the leave or unavailability record\n * @param {*} id - the id of the leave or unavailability time in case of a one off unavailability record\n * @param {*} type - OneOff in case of a one off unavailability record and leave type in case of a leave request\n * @param {*} reason - the reason for the leave request or the reason for the unavailability\n * @param {*} status - the status of the leave or unavailability record\n * @param {*} staffMemberId - the staff member id of the leave or unavailability record\n * @param {*} propertyName - the property name of the unavailability or leave request array\n */\n var setRecordTimeBoundaries = function(startMoment, endMoment, id, type, reason, status, staffMemberId, propertyName) {\n // Only show the unavailability if the date is within the view\n // time range we're displaying.\n // \n // | |<- range ->| |\n // │ │ │ │ \n // │ ┌───┐ ┌─┴─┐ ┌───┐ ┌─┴─┐ ┌───┐ │ \n // │ │ ✕ │ │ ✓ │ │ ✓ │ │ ✓ │ │ ✕ │ │ \n // │ └───┘ └─┬─┘ └───┘ └─┬─┘ └───┘ │ \n // │ ┌─┴─────────────┴─┐ │ \n // │ │ ✓ │ │ \n // │ └─┬─────────────┬─┘ │ \n // │ │ │ │ \n //\n if (\n // start is within the period\n startMoment.isBetween($scope.viewStartDateTime, $scope.viewEndDateTime, '[]') ||\n // end is within the period\n endMoment.isBetween($scope.viewStartDateTime, $scope.viewEndDateTime, '[]') ||\n // start is before the period, end is after the period\n (startMoment.isBefore($scope.viewStartDateTime) && endMoment.isAfter($scope.viewEndDateTime))\n ) {\n\n // Get the day details for when this unavailability starts. Note that\n // this only returns days up until the end of the current roster\n // window, e.g. if an unavailability starts on a Saturday\n // and runs until Tuesday, and the company start day is a Monday,\n // the roster for the week this unavailability starts would show it\n // on Saturday, Sunday only. The following weeks roster then shows\n // the Monday and Tuesday portion.\n const allDayDetails = getAllDayDetailsWithinRange(startMoment, endMoment);\n\n const midnightText = '12:00am';\n\n const startDate = startMoment.format('YYYY-MM-DD');\n const endDate = endMoment.format('YYYY-MM-DD');\n\n allDayDetails.forEach(dayDetails => {\n let dayStartTime = startMoment.format('h:mma');\n let dayEndTime = endMoment.format('h:mma');\n\n // Is this the first day in a multi-day unavailability?\n // If so then the start time stays as-is, but the end time needs\n // to be updated to midnight.\n if (dayDetails.startDate == startDate && endDate != startDate) {\n dayEndTime = midnightText;\n }\n\n // Is this the last day in a multi-day unavailability?\n // If so then the end time stays as-is, but the start time needs\n // to be updated to midnight.\n if (dayDetails.startDate == endDate && endDate != startDate) {\n dayStartTime = midnightText;\n }\n\n // If this is a multi-day unavailability, and the current\n // day is neither the start or end day, then the start and end\n // times should both be midnight.\n if (dayDetails.startDate != startDate && dayDetails.startDate != endDate) {\n dayStartTime = midnightText;\n dayEndTime = midnightText;\n }\n\n // Finally, add the unavailability to the right staff member / day cell.\n $scope.rosterCells[staffMemberId][dayDetails.dayIndex][propertyName].push({\n id: id,\n type: type,\n reason: reason,\n status: status,\n startTime: dayStartTime,\n endTime: dayEndTime,\n });\n })\n }\n }\n\n $scope.loading.then(function(result) {\n $scope.rosteredShifts = result.data.rosteredShifts;\n $scope.roles = result.data.roles;\n $scope.staff = result.data.staff;\n\n const approvedAndRequestedLeave = result.data.leaveRequests\n .filter(leave => ['Approved'].includes(leave.status))\n\n //Build the days list for the week view.\n $scope.days = [];\n for (var i = 0; i < 7; i++) {\n var day = moment($scope.viewStartDateTime).clone().add(i, 'days');\n var startTime = day.format();\n var endTime = day.add(1, 'day').format();\n\n $scope.days.push({\n startTime: startTime,\n startDate: day.format('YYYY-MM-DD'),\n endTime: endTime,\n link: JSON.stringify({time: startTime, type: 'day'}),\n name: day.format('dddd'),\n // note this index is _not_ the usual Sunday = 0 index, it is a column\n // position in the ui, and changes based on what the company start day is\n dayIndex: i,\n });\n }\n\n // Establish a list of cells to display on the weekview, each staff member\n // has one for each day of the week, and it'll contain a list of shifts\n // they are rostered for on that day.\n $scope.rosterCells = {};\n angular.forEach($scope.staff, function(member) {\n $scope.rosterCells[member.id] = [];\n\n angular.forEach($scope.days, function() {\n $scope.rosterCells[member.id].push({\n shifts: [],\n leaveRequests: [],\n })\n });\n });\n\n // // Build the list of leave blocks to be displayed on the\n // // weekview UI.\n approvedAndRequestedLeave.forEach(leave => {\n // Check if the leave belongs to a deactivated staff member\n // If the staff member is deactivated, their leave should not be displayed\n if (!$scope.rosterCells[leave.staffMemberId]) {\n return;\n } \n \n // Moments are by default in the company timezone, so we can construct\n // these moments and compare them with other zoned moments safely.\n const startMoment = moment(leave.startDateTime);\n const endMoment = moment(leave.endDateTime);\n \n setRecordTimeBoundaries(\n startMoment, \n endMoment, \n leave.id, \n \"On leave\", \n leave.reason, \n leave.status, \n leave.staffMemberId, \n 'leaveRequests'\n );\n });\n\n angular.forEach($scope.rosteredShifts, function(rosteredShift) {\n var dayIndex = getDayIndex(moment(rosteredShift.clockinTime));\n if (dayIndex === null) {\n return;\n }\n\n $scope.rosterCells[rosteredShift.staffMemberId][dayIndex].shifts.push(rosteredShift);\n\n $scope.rosterCells[rosteredShift.staffMemberId][dayIndex].shifts = $filter('orderBy')(\n $scope.rosterCells[rosteredShift.staffMemberId][dayIndex].shifts,\n function(shift) {\n return moment(shift.clockinTime).unix();\n });\n\n // Check if 'breaks' data exists for the roster\n rosteredShift.hasBreaks = rosteredShift.breaks && rosteredShift.breaks.length > 0;\n\n });\n\n updateMemberTotals();\n }, function() {\n $state.go('PublicRosterError');\n });\n }, function() {\n $state.go('PublicRosterError');\n });\n\n /**\n * Is a role to be displayed based on the role filter.\n *\n * @returns {Boolean} true if is shown else false\n */\n $scope.isRoleShown = function(roleId) {\n return $scope.filter === null || typeof $scope.filter[roleId] != 'undefined';\n };\n\n $scope.isStaffShown = function(staff) {\n return staff.showInRoster && (staff.datestampDeleted === null || moment(staff.datestampDeleted).isAfter(reporttime.end()));\n };\n\n $scope.filterUpdated = function(newFilter) {\n $scope.filter = newFilter;\n\n updateMemberTotals();\n };\n}]);\n","angular.module('mercury.startup', []);\n","/**\n * @ngdoc run\n * @memberof mercury.startup\n * @name MomentFunctions\n * @description Define special functions for moment objects\n */\nangular.module('mercury.startup')\n.run([\"reporttime\", function(reporttime) {\n moment.fn.mResetToStartOfDay = function() {\n\n var origDate = this.clone();\n var daystart = reporttime.dayStart;\n var hourOffset = daystart.split(':')[0];\n var minuteOffset = daystart.split(':')[1];\n\n this.hour(hourOffset).minute(minuteOffset).second(0).millisecond(0);\n\n if (this.isAfter(origDate)) {\n return this.subtract(1, 'day');\n } else {\n return this;\n }\n };\n\n moment.fn.mResetDayToStartOfWeek = function() {\n var weekStart = reporttime.weekStart;\n if (this.day() < weekStart) {\n this.subtract(7, 'days');\n }\n return this.day(weekStart);\n };\n\n moment.fn.mStartOf = function(periodType) {\n if (periodType) {\n switch (periodType.toLowerCase()) {\n case 'week':\n return this.mResetToStartOfDay().mResetDayToStartOfWeek();\n case 'month':\n return this.mResetToStartOfDay().date(1);\n case 'halfhour':\n if (this.minutes() < 30) {\n return this.startOf('hour');\n } else {\n return this.startOf('hour').add(30, 'minutes');\n }\n break;\n case 'year':\n return this.mResetToStartOfDay().dayOfYear(1);\n case 'yesterday':\n return this.mResetToStartOfDay().subtract(1, 'day');\n }\n }\n return this.mResetToStartOfDay();\n };\n\n moment.fn.mEndOf = function(periodType) {\n if (periodType == 'yesterday') {\n return this.mStartOf(periodType).add(1, 'day');\n } else {\n return this.mStartOf(periodType).add(1, periodType);\n }\n };\n\n moment.fn.mNextIteration = function(periodType) {\n if (periodType.toLowerCase() == 'day') {\n return this.add(30, 'minutes');\n } else {\n return this.add(1, 'day');\n }\n };\n\n moment.fn.mUtcFormat = function() {\n return this.utc().format('YYYY-MM-DDTHH:mm:ss.SSSS[Z]');\n };\n\n moment.fn.mFormat = function(format) {\n switch (format) {\n case 'fullDate':\n return this.format('dddd, MMMM Do YYYY');\n case 'croppedDate':\n return this.format('ddd Do MMM. YYYY');\n case 'mediumDate':\n return this.format('ll');\n case 'shortDate':\n return this.format('D/M/YYYY');\n case 'shortTime':\n return this.format('LT');\n case 'medium':\n return this.format('ddd Do MMM, LT');\n case 'fullDateTime':\n return this.format('D MMM YYYY, h:mm A');\n case 'mediumDateTime':\n return this.format('ddd. Do MMMM YYYY, LT');\n\n default:\n return this.format(format);\n }\n };\n}]);\n","angular.module('mercury.services.reporttime', []);\n","angular.module('mercury.services.reporttime')\n.factory('comparetime', [\"reporttime\", \"$rootScope\", \"$state\", \"$stateParams\", function(reporttime, $rootScope, $state, $stateParams) {\n // returns the current report type. One of 'day', 'week', 'month', 'custom'\n var stateParams = function() {\n if ($stateParams.compare) {\n return JSON.parse($stateParams.compare);\n } else {\n return null;\n }\n };\n\n var comparetimeService = {\n start: function() {\n if (stateParams() === null) {\n return null;\n } else if (reporttime.reportType() == 'custom') {\n return stateParams().start;\n } else {\n return moment(this.time()).mStartOf(reporttime.reportType()).format();\n }\n },\n end: function() {\n if (stateParams() === null) {\n return null;\n } else if (reporttime.reportType() == 'custom') {\n return stateParams().end;\n } else {\n return moment(this.time()).mEndOf(reporttime.reportType()).format();\n }\n\n },\n time: function() {\n if (stateParams() === null) {\n return null;\n } else if (stateParams().hasOwnProperty('time')) {\n return stateParams().time;\n } else {\n // default time pointer\n return moment(reporttime.time()).subtract(1, reporttime.reportType()).format();\n }\n },\n params: function(fields) {\n if (stateParams() === null) {\n return null;\n }\n\n var _this = this;\n if (!angular.isObject(fields)) {\n fields = ['start', 'end'];\n }\n rtn = {};\n angular.forEach(fields, function(field) {\n switch (field) {\n case 'start': rtn.start = _this.start(); break;\n case 'end': rtn.end = _this.end(); break;\n case 'time': rtn.time = _this.time(); break;\n }\n });\n return rtn;\n }\n };\n\n return comparetimeService;\n}]);\n","/**\n * @ngdoc services\n * @memberof mercury.services\n * @name reporttime\n * @description Service for accessing the selected reporting period\n */\nangular.module('mercury.services.reporttime')\n.factory('reporttime', [\"$state\", \"$stateParams\", function($state, $stateParams) {\n // returns the current report type. One of 'day', 'week', 'month', 'custom'\n var stateParams = function() {\n if ($stateParams.report) {\n return JSON.parse($stateParams.report);\n } else {\n return {};\n }\n };\n\n var companyStateInformation = [];\n\n var setCompanyStateInformation = function(reports) {\n companyStateInformation = reports;\n };\n\n /**\n * Allows setting a custom format string\n *\n * @memberof reporttime\n */\n var formatString = false;\n\n /**\n * Report types allowed. By default, all are allowed ['day', 'week', 'month', 'custom']\n *\n * @memberof reporttime\n */\n var allowedTypes = ['day', 'week', 'month', 'custom'];\n\n /**\n * Set report types allowed.\n * @param {*} types\n */\n var setAllowedTypes = function(types) {\n allowedTypes = types;\n };\n\n /**\n * Get report types allowed, based on an earlier call to setAllowedTypes() or the defaults.\n * @returns\n */\n var getAllowedTypes = function() {\n return allowedTypes.filter(function(reportType) {\n var relevantStateInformation = companyStateInformation[$state.current.name];\n\n if (!relevantStateInformation) {\n // when there isn't a direct match with the current state name and the menu items\n // stored in the companyStateInformation we check if there is linked back to a\n // parent menu item, if it is we take the allowed types from that instead\n if (\n $state.current.data &&\n $state.current.data.menuLinkState &&\n companyStateInformation[$state.current.data.menuLinkState] != undefined\n ) {\n relevantStateInformation = companyStateInformation[$state.current.data.menuLinkState];\n } else {\n // if there still isn't state information available we default to the allowed\n // types, this occurs in areas where there are routes opened that don't have\n // any menu item linking at all - it's safe for these to use whatever the\n // allowed types set by the route controller are\n relevantStateInformation = {reportTimeTypes: allowedTypes};\n }\n }\n return relevantStateInformation && relevantStateInformation.reportTimeTypes.indexOf(reportType) > -1;\n });\n };\n\n /**\n * Default report type. Default: 'day'\n *\n * @memberof reporttime\n */\n var defaultType = 'day';\n\n /**\n * If set to true, time() will always return now.\n *\n * @memberof reporttime\n */\n var restrictToCurrent = false;\n\n /**\n * The day index which each week starts and ends.\n *\n * @memberof reporttime\n */\n var weekStart = 1;\n\n /**\n * The time at which each day starts and ends.\n *\n * @memberof reporttime\n */\n var dayStart = '07:00:00';\n\n /**\n * Get the current report type\n *\n * @param overriddenDefaultType the default type to use if the report type\n * is not specified in the 'report' url parameter\n * @memberof reporttime\n * @return report type\n */\n function reportType(overriddenDefaultType) {\n if (\n stateParams().hasOwnProperty('type') &&\n this.getAllowedTypes().indexOf(stateParams().type) > -1\n ) {\n return stateParams().type;\n } else {\n // When a report is loaded without a specified type parameter in the\n // 'report' url parameter, we default to the default type if this is\n // allowed, otherwise we default to the first allowed type.\n //\n // Note that the default type can be overridden by the caller, and\n // if this has happened we use that as the default instead.\n if (this.getAllowedTypes().indexOf(overriddenDefaultType || this.defaultType) > -1) {\n return overriddenDefaultType || this.defaultType\n } else {\n return getAllowedTypes()[0];\n }\n }\n }\n\n /**\n * Get the current report time\n *\n * @memberof reporttime\n * @return report time\n */\n function reportTime() {\n if (\n stateParams().hasOwnProperty('time')\n ) {\n return stateParams().time;\n }\n return null;\n }\n\n /**\n * Get the current report time\n *\n * @memberof reporttime\n * @return ISO Date\n */\n function time() {\n if (stateParams().hasOwnProperty('time') && this.restrictToCurrent === false) {\n return stateParams().time;\n } else {\n // default time pointer\n return moment().format();\n }\n }\n\n /**\n * Get the start time for the current report type\n *\n * @param overriddenDefaultType the default type to use if the report type\n * is not specified in the 'report' url parameter\n * @memberof reporttime\n * @return ISO date\n */\n function start(overriddenDefaultType) {\n if (this.reportType(overriddenDefaultType) == 'custom') {\n return stateParams().start;\n } else {\n return moment(this.time())\n .mStartOf(this.reportType(overriddenDefaultType))\n .format();\n }\n }\n\n /**\n * Get the end time for the current report type\n *\n * @param overriddenDefaultType the default type to use if the report type\n * is not specified in the 'report' url parameter\n * @memberof reporttime\n * @return ISO Date\n */\n function end(overriddenDefaultType) {\n if (this.reportType(overriddenDefaultType) == 'custom') {\n return stateParams().end;\n } else {\n return moment(this.time())\n .mEndOf(this.reportType(overriddenDefaultType))\n .format();\n }\n }\n\n /**\n * Based on the report type, determine the default data interval grouping.\n *\n * @memberof reporttime\n * @return Interval format\n */\n function interval() {\n if (stateParams().hasOwnProperty('interval')) {\n return stateParams().interval;\n } else {\n switch (this.reportType()) {\n case 'day':\n return '00:30:00';\n case 'week':\n case 'month':\n return '1.00:00:00';\n case 'custom':\n var daysLength = moment(this.end()).diff(this.start(), 'days');\n\n if (daysLength <= 1) {\n return '00:30:00';\n } else {\n return '1.00:00:00';\n }\n\n }\n }\n }\n\n /**\n * Get an object of reporttime parameters\n *\n * @memberof reporttime\n */\n function params(fields) {\n if (!angular.isObject(fields)) {\n fields = ['start', 'end'];\n }\n\n var rtn = {};\n var _this = this;\n\n angular.forEach(fields, function(field) {\n switch (field) {\n case 'start': rtn.start = _this.start(); break;\n case 'end': rtn.end = _this.end(); break;\n case 'interval': rtn.interval = _this.interval(); break;\n case 'type': rtn.type = _this.reportType(); break;\n case 'time': rtn.time = _this.time(); break;\n }\n });\n return rtn;\n }\n\n /**\n * Set a custom format string to override the report settings when getFormatString is called\n * set to false to clear formatString\n *\n * @memberof reporttime\n */\n function setFormatString(string) {\n this.formatString = string;\n }\n\n /**\n * Based on the report type, determine the time format string for formatting a moment object.\n *\n * @memberof reporttime\n */\n function getFormatString() {\n if (this.formatString) {\n return this.formatString;\n }\n switch (this.reportType()) {\n case 'day':\n return 'h:mma';\n case 'week':\n return 'dddd';\n case 'month':\n return 'ddd Do';\n case 'custom':\n var daysLength = moment(this.end()).diff(this.start(), 'days');\n\n if (daysLength <= 1) {\n return 'h:mma';\n } else if (daysLength <= 7) {\n return 'dddd';\n } else {\n return 'ddd Do';\n }\n }\n }\n\n /**\n * Based on the report type, determine the time format string for formatting a JS Date object for google charts.\n *\n * @memberof reporttime\n */\n function getIcuFormatString() {\n if (this.formatString) {\n return this.formatString;\n }\n switch (this.reportType()) {\n case 'day':\n return 'h:mma';\n case 'week':\n return 'EEEE';\n case 'month':\n return 'EEE d';\n case 'custom':\n var daysLength = moment(this.end()).diff(this.start(), 'days');\n\n if (daysLength <= 1) {\n return 'h:mma';\n } else if (daysLength <= 7) {\n return 'EEEE';\n } else {\n return 'EEE d';\n }\n }\n }\n\n return {\n getAllowedTypes: getAllowedTypes,\n setAllowedTypes: setAllowedTypes,\n setCompanyStateInformation: setCompanyStateInformation,\n formatString: formatString,\n defaultType: defaultType,\n restrictToCurrent: restrictToCurrent,\n dayStart: dayStart,\n weekStart: weekStart,\n reportType: reportType,\n start: start,\n end: end,\n time: time,\n interval: interval,\n params: params,\n setFormatString: setFormatString,\n getFormatString: getFormatString,\n getIcuFormatString: getIcuFormatString,\n reportTime: reportTime\n };\n}]);\n","/**\n * @ngdoc services\n * @memberof mercury.services\n * @name dialog\n */\nangular.module('mercury.services.dialog', [])\n.factory('dialog', [\"$rootScope\", \"$uibModal\", function($rootScope, $uibModal) {\n var modalInstances = [];\n\n // An alert modal is tracked seperaly from other modals because we only want to show one at a time.\n var alertInstance = null;\n\n /**\n * Open a new dialog window\n *\n * @memberof dialog\n * @param {Object} opts An object of options to pass to the uibModal object\n */\n function open(opts) {\n var newInstance = $uibModal.open(opts);\n\n modalInstances.push(newInstance);\n\n return newInstance.result;\n }\n\n /**\n * Close the most recent dialog\n *\n * @memberof dialog\n * @param {Object} result Result to be passed back to the onClose promise for the dialog\n */\n function close(result) {\n if (modalInstances.length > 0) {\n var topInstance = modalInstances.pop();\n topInstance.close(result);\n }\n }\n\n /**\n * Helper function to open a alert dialog box.\n *\n * @memberof dialog\n * @param {String} message Message to display in the alert box\n * @param {Object} extraButtons Extra buttons to show on the alert. Key of object is button text, value is callback function.\n */\n function alert(message, extraButtons) {\n // If an alert message is already only, don't display another one.\n if (alertInstance !== null) {\n return;\n }\n\n var newScope = $rootScope.$new();\n newScope.message = message;\n newScope.buttons = extraButtons;\n\n alertInstance = $uibModal.open({\n template: '
' + message + '
' +\n '
' +\n '' +\n '' +\n '
',\n scope: newScope,\n size: 'sm'\n });\n\n alertInstance.result.finally(function() {\n alertInstance = null;\n });\n\n return alertInstance.result;\n }\n\n /**\n * Helper function for opening a Yes/No confirmation box\n *\n * @memberof dialog\n * @param {String} message Message to display in the alert box\n */\n function confirm(message) {\n var newScope = $rootScope.$new();\n newScope.__dialog = this;\n newScope.message = message;\n\n return open({\n template: '
' +\n '
' +\n '' +\n '' +\n '
',\n scope: newScope,\n size: 'sm',\n backdrop: 'static'\n });\n }\n\n return {\n open: open,\n close: close,\n alert: alert,\n confirm: confirm\n };\n}]);\n","/**\n * @ngdoc directives\n * @memberof mercury.directives\n * @name inputdate\n * @description Wrapper for JQuery datapicker.\n * @attr {String} week-picker If defined, the datepicker becomes a weekPicker\n * @attr {String} inputdate-min Defines the lower limit of selectable dates\n * @attr {String} inputdate-max Defines the upper limit of selectable dates\n */\nangular.module('mercury.directives.inputdate', [])\n.directive('inputdate', [\"$parse\", \"$timeout\", \"reporttime\", function($parse, $timeout, reporttime) {\n return {\n restrict: 'A',\n require: 'ngModel',\n link: function(scope, element, attrs, modelCtrl) {\n modelCtrl.$formatters.push(function(value) {\n if (value) {\n return moment(value).format('DD MMM YYYY');\n } else {\n return '';\n }\n });\n\n var isWeekPicker = false;\n if (attrs.weekPicker) {\n scope.$watch(attrs.weekPicker, function(value) {\n isWeekPicker = value;\n });\n }\n\n modelCtrl.$parsers.push(function(value) {\n var newDate = moment(value, 'DD MMM YYYY');\n\n if (modelCtrl.$modelValue) {\n var existingDate = moment(modelCtrl.$modelValue);\n newDate.hours(existingDate.hours()).minutes(existingDate.minutes()).seconds(existingDate.seconds());\n }\n\n if (isWeekPicker) {\n newDate.add(1, 'second').mStartOf('week');\n }\n\n return newDate.format();\n });\n\n /**\n * Helper function to add a class to the datepicker day that matches the input date\n *\n * @param {String} date - the date to add the class to within the datepicker\n * @param {String} dayClass - The class to add. If undefined will defaut to ui-state-active\n */\n var addDayClass = function(date, dayClass) {\n var momentObj = moment(date);\n findday = momentObj.date();\n findmonth = momentObj.month();\n findyear = momentObj.year();\n element.find('[data-year=\"' + findyear + '\"][data-month=\"' + findmonth + '\"]:contains(\\'' + findday + '\\')').each(function() {\n if ($(this).find('a').html() == findday) {\n $(this).find('a').addClass(dayClass);\n }\n });\n };\n\n /**\n * Function to update the UI to hightlight the correct dates on the datepicker to show report and compare times\n */\n var highlightDates = function() {\n if (!isWeekPicker) {\n return;\n }\n\n element.find('.ui-state-active').removeClass('ui-state-active');\n\n element.find('.dp-active').removeClass('dp-active');\n element.find('.dp-inactive').removeClass('dp-inactive');\n\n if (modelCtrl.$modelValue) {\n var weekStart = moment(modelCtrl.$modelValue).add(1, 'second').mStartOf('week');\n for (var iter = weekStart.clone(); iter.isBefore(weekStart.clone().add(1, 'week')); iter.add(1, 'days')) {\n addDayClass(iter, 'dp-active');\n }\n }\n\n element.find('.ui-datepicker-calendar tr').on('mousemove', function() {\n $(this).find('a:not(.ui-state-active)').addClass('ui-state-hover');\n });\n\n element.find('.ui-datepicker-calendar tr').on('mouseleave', function() {\n $(this).find('a:not(.ui-state-active)').removeClass('ui-state-hover');\n });\n };\n\n // presentation format, this requires setDate to be called with a Date object,\n // if you call it with a string it will interpret the date string as an offset\n // number of days and display incorrect dates\n var defaultDateFormat = 'dd M yy';\n\n var datepickerOptions = {\n firstDay: reporttime.weekStart,\n dateFormat: defaultDateFormat,\n showOtherMonths: true,\n selectOtherMonths: true,\n onChangeMonthYear: function() {\n $timeout(highlightDates);\n }\n };\n\n //A minimum date is specified\n if (attrs.inputdateMin) {\n //Set the inital options for the datepicker\n var minDate = $parse(attrs.inputdateMin)(scope);\n if (minDate) {\n datepickerOptions.minDate = moment(minDate).toDate();\n }\n\n //Add a watch to update the datepicker when the min date changes\n scope.$watch(attrs.inputdateMin, function(newVal, oldVal) {\n if (typeof newVal != 'undefined' && newVal != oldVal) {\n element.datepicker('option', 'minDate', moment(newVal).toDate());\n }\n });\n }\n\n //A maximum date is specified\n if (attrs.inputdateMax) {\n //Set the inital options for the datepicker\n var maxDate = $parse(attrs.inputdateMax)(scope);\n if (maxDate) {\n datepickerOptions.maxDate = moment(maxDate).toDate();\n }\n\n //Add a watch to update the datepicker when the min date changes\n scope.$watch(attrs.inputdateMax, function(newVal, oldVal) {\n if (typeof newVal != 'undefined' && newVal != oldVal) {\n element.datepicker('option', 'maxDate', moment(newVal).toDate());\n }\n });\n }\n\n //The element shouldn't allow text input. Only date selection\n element.attr('readonly', 'readonly');\n\n datepickerOptions.onSelect = function(date) {\n $timeout(function() {\n modelCtrl.$viewValue = date;\n modelCtrl.$commitViewValue();\n });\n\n $timeout(highlightDates);\n };\n\n //Initialise the date picker with the specified options.\n element.datepicker(datepickerOptions);\n\n //Watch the model and update the datepicker if there is a change\n scope.$watch(attrs.ngModel, function(value) {\n var setDate = value ? new Date(value) : null;\n\n element.datepicker('setDate', setDate);\n });\n\n $timeout(highlightDates);\n }\n };\n}]);\n","/**\n * @ngdoc directives\n * @memberof mercury.directives\n * @name popoverHtml\n * @description Provides a similar interface as the bootstrapUI popover but allows HTML in the contents\n * @attr {Boolean} position-top If set, position the popover above the trigger element\n * @attr {Boolean} position-right If set, right align the popover element\n * @attr {Boolean} is-open Specifies if the popover is open or not.\n */\nangular.module('mercury.directives.popoverhtml', [])\n.directive('popoverHtml', [\"$document\", \"$parse\", \"$templateCache\", \"$timeout\", function($document, $parse, $templateCache, $timeout) {\n return {\n restrict: 'A',\n link: function(scope, element, attrs) {\n var isOpen = false;\n\n var popoverElement = $(element).find('.popover');\n var popoverTrigger = $(element).find('.popover-trigger');\n\n popoverElement.hide();\n\n var updatePosition = function() {\n var topPos = popoverTrigger.outerHeight();\n var leftPos = 0;\n var width = $(window).width();\n\n if (angular.isDefined(attrs.positionTop)) {\n topPos -= popoverElement.outerHeight();\n\n //Get the element that the popover was appended to.\n topPos -= popoverTrigger.outerHeight();\n }\n\n if (angular.isDefined(attrs.positionRight)) {\n leftPos -= popoverElement.outerWidth() - $(element).outerWidth();\n }\n\n //Apply any position changes.\n if (width <= 992) {\n popoverElement.css('right', '0px');\n popoverElement.css('left', 'auto');\n popoverElement.css('top', '30px');\n\n } else {\n if (angular.isDefined(attrs.topPosition)) {\n topPos = attrs.topPosition;\n }\n\n if (angular.isDefined(attrs.leftPosition)) {\n leftPos = attrs.leftPosition;\n }\n\n popoverElement.css('top', topPos + 'px');\n popoverElement.css('left', leftPos + 'px');\n\n if (angular.isDefined(attrs.rightPosition)) {\n popoverElement.css('right', attrs.rightPosition + 'px');\n }\n }\n };\n\n var close = function() {\n if (isOpen) {\n isOpen = false;\n if (attrs.isOpen) {\n $parse(attrs.isOpen).assign(scope, false);\n }\n\n //Remove the document events added for this popup.\n $($document).off('mousedown.loadedPopover');\n\n popoverElement.hide();\n }\n };\n\n var open = function() {\n if (!isOpen) {\n isOpen = true;\n\n if (attrs.isOpen) {\n $parse(attrs.isOpen).assign(scope, true);\n }\n\n updatePosition();\n\n //Give the date and time pickers to initialize then show the popover.\n $timeout(function() {\n popoverElement.show();\n }, 1);\n\n /**\n * If there is a click anywhere outside of this directive, close the popup\n */\n $($document).on('mousedown.loadedPopover', function(e) {\n var targetNotInput = $(e.target).get(0) != popoverTrigger.get(0);\n var targetNotPopup = e.target != popoverElement.get(0) && popoverElement.find(e.target).length === 0;\n\n if (targetNotInput && targetNotPopup) {\n close();\n }\n });\n }\n };\n\n if (attrs.isOpen) {\n scope.$watch(attrs.isOpen, function(isOpen) {\n if (isOpen) {\n open();\n } else {\n close();\n }\n });\n }\n\n popoverTrigger.on('click', function() {\n $timeout(function() {\n open();\n });\n });\n\n scope.$on('popoverResize', function() {\n if (isOpen) {\n updatePosition();\n }\n });\n }\n };\n}]);\n","/**\n * @ngdoc directives\n * @memberof mercury.directives\n * @name loader\n * @description Display as loader on a div or button until the input promise resolves\n * @attr {Object} loader The input promise\n */\nangular.module('mercury.directives.loader', [])\n.directive('loader', [\"$rootScope\", \"$q\", \"$parse\", function($rootScope, $q, $parse) {\n return {\n restrict: 'A',\n scope: {\n loader: '='\n },\n link: function(scope, element, attrs) {\n var loaderElement = null;\n var showLoadingMessage = $parse(attrs.showLoadingMessage)(scope);\n var loaderMessage = 'That\\'s a pretty large amount of data for Loaded to crunch, ' +\n 'keep this tab open and check back in a few minutes and it should all be loaded up for you.';\n var customLoaderMessage = $parse(attrs.loadingMessage)(scope);\n if (customLoaderMessage) {\n loaderMessage = customLoaderMessage;\n }\n\n var addLoader = function() {\n element.addClass('loading-container');\n\n if (element.prop('tagName').toLowerCase() == 'button') {\n element.attr('disabled', 'disabled');\n loaderElement = angular.element('');\n element.append(loaderElement);\n } else {\n var loaderHtml = '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
';\n\n if (showLoadingMessage) {\n loaderHtml += '
' + loaderMessage + '
';\n }\n\n loaderHtml += '
';\n\n loaderElement = angular.element(loaderHtml);\n element.append(loaderElement);\n }\n };\n\n var removeLoader = function() {\n element.removeClass('loading-container');\n\n if (element.prop('tagName').toLowerCase() == 'button') {\n element.removeAttr('disabled');\n }\n\n loaderElement.remove();\n loaderElement = null;\n\n $rootScope.$broadcast('loading-placeholder-removed');\n };\n\n scope.$watch('loader', function(promise) {\n if (!promise || loaderElement !== null) {\n return;\n }\n\n //If the loader is an array or promises, group them into a single one.\n if (angular.isArray(promise)) {\n promise = $q.all(promise);\n }\n\n if (!angular.isFunction(promise.then)) {\n return;\n }\n\n addLoader();\n\n promise.then(function() {\n removeLoader();\n }, function() {\n removeLoader();\n });\n });\n }\n };\n}]);\n","/**\n * @ngdoc filters\n * @memberof mercury.filters\n * @name avgof\n */\nangular.module('mercury.filters.reporttimeformat', [])\n.filter('reporttimeformat', [\"reporttime\", function(reporttime) {\n return function(time, format, defaultText) {\n if (time === null) {\n return defaultText || '';\n }\n\n return moment(time).mFormat(format || reporttime.getFormatString());\n };\n}]);\n","angular.module('mercury.modules.time.roster', []);\n","/**\n * @ngdoc directives\n * @memberof mercury.modules.time\n * @name editorbody\n */\nangular.module('mercury.modules.time.roster')\n.directive('editorbody', [\"$parse\", \"$window\", \"$timeout\", function($parse, $window, $timeout) {\n return {\n link: function(scope, element, attrs) {\n var footerHeight = 57;\n\n var updateHeight = function() {\n $timeout(function() {\n var elementTop = element[0].getBoundingClientRect().top;\n var windowHeigth = (typeof $window.innerHeight != 'undefined') ? $window.innerHeight : document.documentElement.clientHeight;\n\n var avaliableHeight = windowHeigth - elementTop - footerHeight;\n\n if (angular.isDefined(attrs.maxHeight)) {\n var maxHeight = $parse(attrs.maxHeight)(scope);\n element.css('height', Math.min(maxHeight, (avaliableHeight - 20)));\n } else {\n element.css('height', (avaliableHeight - 20));\n }\n });\n };\n\n updateHeight();\n\n document.body.onresize = updateHeight;\n $(window).resize(updateHeight);\n\n if (angular.isDefined(attrs.maxHeight)) {\n scope.$watch(attrs.maxHeight, function(newVal, oldVal) {\n if (newVal != oldVal) {\n updateHeight();\n }\n });\n }\n }\n };\n}]);\n","/**\n * @ngdoc directives\n * @memberof mercury.modules.time\n * @name shiftformat\n */\nangular.module('mercury.modules.time.roster')\n.directive('shiftformat', [\"$filter\", \"$parse\", function($filter, $parse) {\n return {\n restrict: 'A',\n scope: true,\n link: function(scope, element) {\n var roles = $parse('roles')(scope);\n\n var timeUpdated = function() {\n var clockinMoment = moment(scope.shift.clockinTime);\n var clockoutMoment = moment(scope.shift.clockoutTime);\n\n // Set the label\n element.find('.shift-label').html(clockinMoment.mFormat('h:mma') + ' → ' + clockoutMoment.mFormat('h:mma'));\n\n // Set the title attribute.\n element.attr('uib-tooltip-html', `'${scope.shift.roleName} - ${clockinMoment.mFormat('h:mma')} → ${clockoutMoment.mFormat('h:mma')}'`);\n element.attr('tooltip-enable', 'true');\n element.attr('tooltip-placement', 'top');\n element.attr('tooltip-append-to-body', 'true');\n element.attr('tooltip-popup-delay', '200')\n element.attr('tooltip-popup-close-delay', '200')\n\n // Set the jobs\n if (scope.shift.jobs) {\n // If the jobs are too long, truncate them and display ellipsis\n var jobs = JSON.parse(scope.shift.jobs).join(', ');\n if (jobs.length > 30) {\n element.find('.shift-jobs').addClass('show-div').html(jobs.substring(0, 30) + '...');\n } else {\n element.find('.shift-jobs').addClass('show-div').html(jobs);\n }\n } else {\n element.find('.shift-jobs').removeClass('show-div').html('');\n }\n };\n\n // Watch for a change in the shift time\n scope.$watch('shift.clockinTime', timeUpdated);\n scope.$watch('shift.clockoutTime', timeUpdated);\n scope.$watch('shift.shift.jobs', timeUpdated);\n\n // watch for a change in the shift role\n scope.$watch('shift.roleId', function(roleId) {\n // Set the role class which determines the color of the cell.\n element.removeClass('role-1 role-2 role-3 role-4 role-5 role-6 role-7 role-8 role-9 role-10 role-11 role-12 role-13');\n angular.forEach(roles, function(role, index) {\n if (role.id == roleId) {\n element.addClass('role-' + ((index % 13) + 1));\n }\n });\n });\n\n // When the filter is updated, the shift is greyed out if not matching the filter.\n scope.$watch('filter', function(newFilter) {\n if (newFilter !== null && !newFilter[scope.shift.roleId]) {\n element.addClass('inactive');\n } else {\n element.removeClass('inactive');\n }\n }, true);\n }\n };\n}]);\n","/**\n * @ngdoc directives\n * @memberof mercury.modules.time\n * @name editnav\n */\nangular.module('mercury.modules.time.roster')\n.directive('editnav', [\"reporttime\", \"$state\", \"$stateParams\", function(reporttime, $state, $stateParams) {\n\n // Note this template is inlined instead of being in a separate file as this\n // directive is also sourced by the public roster app (./Mercury/app_publicroster).\n // The build pipeline doesn't handle sharing templates between apps so this\n // is the workaround.\n const template = \n '' +\n '' +\n 'Day' +\n '' +\n '' +\n 'Week' +\n '' +\n '' +\n '' +\n '
' +\n '' +\n '<' +\n '' +\n '' +\n '
' +\n '
' +\n '
' +\n '' +\n '>' +\n '' +\n '
' +\n '
' +\n '' +\n '{{viewStartDateTime| reporttimeformat : \\'dddd\\'}}' +\n '' +\n '
' +\n '' +\n '' +\n '{{viewStartDateTime| reporttimeformat : \\'mediumDate\\'}} - {{viewEndDateTime| reporttimeformat : \\'mediumDate\\'}}' +\n '' +\n '' +\n '{{viewStartDateTime| reporttimeformat : \\'fullDate\\'}}' +\n '' +\n '';\n\n return {\n restrict: 'A',\n template: template,\n scope: true,\n link: function(scope, element, attrs) {\n\n var reportStateParams = $stateParams.report ? JSON.parse($stateParams.report) : {};\n\n scope.isTemplate = attrs.isTemplate ? JSON.parse(attrs.isTemplate) : false;\n scope.isStartDay = attrs.isStartDay ? JSON.parse(attrs.isStartDay) : false;\n scope.isEndDay = attrs.isEndDay ? JSON.parse(attrs.isEndDay) : false;\n scope.isPublicRoster = attrs.isPublicRoster ? JSON.parse(attrs.isPublicRoster) : false;\n\n scope.isWeek = scope.isTemplate ?\n reportStateParams.period === 'week' :\n reporttime.reportType() == 'week';\n scope.selectTime = reporttime.time();\n\n scope.reportType = scope.isTemplate ?\n reportStateParams.period :\n reporttime.reportType();\n\n if (scope.isTemplate) {\n\n scope.dayLink = JSON.stringify({\n type: 'custom',\n start: scope.viewStartDateTime,\n end: moment(scope.viewStartDateTime).add(1, 'day').format(),\n period: 'day',\n });\n\n scope.weekLink = JSON.stringify({\n type: 'custom',\n start: scope.templateStartDay,\n end: scope.templateEndDay,\n period: 'week',\n });\n\n scope.nextReport = JSON.stringify({\n type: 'custom',\n start: moment(scope.viewStartDateTime).add(1, 'day').format(),\n end: moment(scope.viewEndDateTime).add(1, 'day').format(),\n period: 'day',\n });\n\n scope.prevReport = JSON.stringify({\n type: 'custom',\n start: moment(scope.viewStartDateTime).subtract(1, 'day').format(),\n end: moment(scope.viewEndDateTime).subtract(1, 'day').format(),\n period: 'day',\n });\n\n } else {\n\n const currentReportParams = reporttime.params(['time', 'type', 'role']);\n\n const dayLink = angular.copy(currentReportParams);\n dayLink.type = 'day';\n scope.dayLink = JSON.stringify(dayLink);\n\n const weekLink = angular.copy(currentReportParams);\n weekLink.type = 'week';\n scope.weekLink = JSON.stringify(weekLink);\n\n const nextReport = angular.copy(currentReportParams);\n nextReport.time = moment(currentReportParams.time).add(1, reporttime.reportType()).format();\n scope.nextReport = JSON.stringify(nextReport);\n\n const prevReport = angular.copy(currentReportParams);\n prevReport.time = moment(currentReportParams.time).subtract(1, reporttime.reportType()).format();\n scope.prevReport = JSON.stringify(prevReport);\n\n }\n\n scope.timeSelected = function() {\n var newTime = {\n type: scope.reportType,\n time: scope.selectTime\n };\n\n $state.go('.', {report: JSON.stringify(newTime)});\n };\n }\n };\n}]);\n","/**\n * @ngdoc directives\n * @memberof mercury.modules.time\n * @name rolefilter\n */\nangular.module('mercury.modules.time.roster')\n.directive('rolefilter', [\"$rootScope\", function($rootScope) {\n return {\n restrict: 'A',\n scope: true,\n template: '' +\n '' +\n '' +\n '',\n link: function(scope) {\n if (typeof $rootScope.roleFilter !== 'undefined') {\n scope.filterState = $rootScope.roleFilter;\n scope.filterUpdated(scope.filterState);\n } else {\n scope.filterState = null;\n }\n\n /**\n * onClick event for changing a state of a roles filter.\n */\n scope.setRoleFilter = function(role) {\n if (scope.filterState === null) {\n scope.filterState = {};\n }\n\n scope.filterState[role] = !scope.filterState[role];\n if (scope.filterState[role] === false) {\n delete scope.filterState[role];\n }\n\n if (Object.keys(scope.filterState).length === 0) {\n scope.filterState = null;\n }\n\n scope.filterUpdated(scope.filterState);\n $rootScope.roleFilter = scope.filterState;\n };\n\n scope.filterDeleted = function(role) {\n return role.datestampDeleted === null;\n };\n\n /**\n * onClick event for clear filter option\n */\n scope.clearRoleFilter = function() {\n scope.filterState = null;\n $rootScope.roleFilter = scope.filterState;\n scope.filterUpdated(scope.filterState);\n };\n }\n };\n}]);\n","angular.module('mercury.constants', [])\r\n\r\n.constant('settings', {apiHost:'@@REPLACEME@@',mercHost:'@@MERCREPLACE@@',stockHost:'@@STOCKREPLACE@@',environment:'@@ENVIRONMENT@@',clientId:'mercury',debug:false,dateFormats:{shortDate:'Do MMM',mediumDate:'DD MMM YYYY',longDate:'dddd, Do MMMM YYYY',shortTime:'h:mma',longTime:'hh:mm:ssa',longDateTime:'ddd, Do MMM, hh:mm:ssa',mediumDateTime:'DD MMM YYYY, h:mma',shortDateTime:'Do MMM, h:mma'},survicateScript:'https://survey.survicate.com/workspaces/0d91a20e55844a201c9eedf3514899d6/web_surveys.js'})\r\n\r\n;"]}