diff options
Diffstat (limited to 'js/vendor/angular-ui/modules/directives/map/map.js')
-rw-r--r-- | js/vendor/angular-ui/modules/directives/map/map.js | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/js/vendor/angular-ui/modules/directives/map/map.js b/js/vendor/angular-ui/modules/directives/map/map.js deleted file mode 100644 index 89a0e4f0a..000000000 --- a/js/vendor/angular-ui/modules/directives/map/map.js +++ /dev/null @@ -1,125 +0,0 @@ -(function () { - var app = angular.module('ui.directives'); - - //Setup map events from a google map object to trigger on a given element too, - //then we just use ui-event to catch events from an element - function bindMapEvents(scope, eventsStr, googleObject, element) { - angular.forEach(eventsStr.split(' '), function (eventName) { - //Prefix all googlemap events with 'map-', so eg 'click' - //for the googlemap doesn't interfere with a normal 'click' event - var $event = { type: 'map-' + eventName }; - google.maps.event.addListener(googleObject, eventName, function (evt) { - element.triggerHandler(angular.extend({}, $event, evt)); - //We create an $apply if it isn't happening. we need better support for this - //We don't want to use timeout because tons of these events fire at once, - //and we only need one $apply - if (!scope.$$phase) scope.$apply(); - }); - }); - } - - app.directive('uiMap', - ['ui.config', '$parse', function (uiConfig, $parse) { - - var mapEvents = 'bounds_changed center_changed click dblclick drag dragend ' + - 'dragstart heading_changed idle maptypeid_changed mousemove mouseout ' + - 'mouseover projection_changed resize rightclick tilesloaded tilt_changed ' + - 'zoom_changed'; - var options = uiConfig.map || {}; - - return { - restrict: 'A', - //doesn't work as E for unknown reason - link: function (scope, elm, attrs) { - var opts = angular.extend({}, options, scope.$eval(attrs.uiOptions)); - var map = new google.maps.Map(elm[0], opts); - var model = $parse(attrs.uiMap); - - //Set scope variable for the map - model.assign(scope, map); - - bindMapEvents(scope, mapEvents, map, elm); - } - }; - }]); - - app.directive('uiMapInfoWindow', - ['ui.config', '$parse', '$compile', function (uiConfig, $parse, $compile) { - - var infoWindowEvents = 'closeclick content_change domready ' + - 'position_changed zindex_changed'; - var options = uiConfig.mapInfoWindow || {}; - - return { - link: function (scope, elm, attrs) { - var opts = angular.extend({}, options, scope.$eval(attrs.uiOptions)); - opts.content = elm[0]; - var model = $parse(attrs.uiMapInfoWindow); - var infoWindow = model(scope); - - if (!infoWindow) { - infoWindow = new google.maps.InfoWindow(opts); - model.assign(scope, infoWindow); - } - - bindMapEvents(scope, infoWindowEvents, infoWindow, elm); - - /* The info window's contents dont' need to be on the dom anymore, - google maps has them stored. So we just replace the infowindow element - with an empty div. (we don't just straight remove it from the dom because - straight removing things from the dom can mess up angular) */ - elm.replaceWith('<div></div>'); - - //Decorate infoWindow.open to $compile contents before opening - var _open = infoWindow.open; - infoWindow.open = function open(a1, a2, a3, a4, a5, a6) { - $compile(elm.contents())(scope); - _open.call(infoWindow, a1, a2, a3, a4, a5, a6); - }; - } - }; - }]); - - /* - * Map overlay directives all work the same. Take map marker for example - * <ui-map-marker="myMarker"> will $watch 'myMarker' and each time it changes, - * it will hook up myMarker's events to the directive dom element. Then - * ui-event will be able to catch all of myMarker's events. Super simple. - */ - function mapOverlayDirective(directiveName, events) { - app.directive(directiveName, [function () { - return { - restrict: 'A', - link: function (scope, elm, attrs) { - scope.$watch(attrs[directiveName], function (newObject) { - bindMapEvents(scope, events, newObject, elm); - }); - } - }; - }]); - } - - mapOverlayDirective('uiMapMarker', - 'animation_changed click clickable_changed cursor_changed ' + - 'dblclick drag dragend draggable_changed dragstart flat_changed icon_changed ' + - 'mousedown mouseout mouseover mouseup position_changed rightclick ' + - 'shadow_changed shape_changed title_changed visible_changed zindex_changed'); - - mapOverlayDirective('uiMapPolyline', - 'click dblclick mousedown mousemove mouseout mouseover mouseup rightclick'); - - mapOverlayDirective('uiMapPolygon', - 'click dblclick mousedown mousemove mouseout mouseover mouseup rightclick'); - - mapOverlayDirective('uiMapRectangle', - 'bounds_changed click dblclick mousedown mousemove mouseout mouseover ' + - 'mouseup rightclick'); - - mapOverlayDirective('uiMapCircle', - 'center_changed click dblclick mousedown mousemove ' + - 'mouseout mouseover mouseup radius_changed rightclick'); - - mapOverlayDirective('uiMapGroundOverlay', - 'click dblclick'); - -})();
\ No newline at end of file |