(function () { "use strict"; angular.module("enrMapModule") .factory("mapSelectedRegion", ["$rootScope", "regionPropertiesParser", function ($rootScope, regionPropertiesParser) { var regionChangeEventName = "selectedMapRegionChanged"; var selectedRegionProperties; var selectedRegionId; var setSelectedRegion = function (newRegionProperties) { selectedRegionProperties = newRegionProperties; if (selectedRegionProperties === undefined) { selectedRegionId = undefined; } else { selectedRegionId = regionPropertiesParser.getRegionPrimaryId(selectedRegionProperties); } $rootScope.$broadcast(regionChangeEventName, selectedRegionProperties, selectedRegionId); }; return { regionChangeEventName: regionChangeEventName, isRegionSelected: function (regionProperties) { return regionPropertiesParser.getRegionPrimaryId(regionProperties) === selectedRegionId; }, isAnyRegionSelected: function () { return selectedRegionProperties !== undefined && selectedRegionProperties !== null; }, getSelectedRegionId: function () { return selectedRegionId; }, getSelectedRegionProperties: function () { return selectedRegionProperties; }, setSelectedRegion: function (newRegionProperties) { setSelectedRegion(newRegionProperties); }, clearSelectedRegion: function () { setSelectedRegion(undefined); } }; }]); }());