UNPKG

ui.leaflet.webpack

Version:

Webpack version of ui-leaflet (https://github.com/angular-ui/ui-leaflet)

50 lines (42 loc) 1.83 kB
angular.module('ui-leaflet') .factory('leafletGeoJsonEvents', /** @ngInject */ ['$rootScope', '$q', 'leafletLogger', 'leafletHelpers', 'leafletEventsHelpersFactory', 'leafletData',function ($rootScope, $q, leafletLogger, leafletHelpers, leafletEventsHelpersFactory, leafletData) { var safeApply = leafletHelpers.safeApply, EventsHelper = leafletEventsHelpersFactory; // $log = leafletLogger; var GeoJsonEvents = function(){ EventsHelper.call(this,'leafletDirectiveGeoJson', 'geojson'); }; GeoJsonEvents.prototype = new EventsHelper(); GeoJsonEvents.prototype.genDispatchEvent = function(maybeMapId, eventName, logic, leafletScope, lObject, name, model, layerName, extra) { var base = EventsHelper.prototype.genDispatchEvent.call(this, maybeMapId, eventName, logic, leafletScope, lObject, name, model, layerName), _this = this; return function(e){ if (eventName === 'mouseout') { if (extra.resetStyleOnMouseout) { leafletData.getGeoJSON(extra.mapId) .then(function(leafletGeoJSON){ //this is broken on nested needs to traverse or user layerName (nested) var lobj = layerName? leafletGeoJSON[layerName]: leafletGeoJSON; lobj.resetStyle(e.target); }); } safeApply(leafletScope, function() { $rootScope.$broadcast(_this.rootBroadcastName + '.mouseout', e); }); } base(e); //common }; }; GeoJsonEvents.prototype.getAvailableEvents = function(){ return [ 'click', 'dblclick', 'mouseover', 'mouseout', ]; }; return new GeoJsonEvents(); }]);