leaflet-js 0.7.9 → 0.8.dev2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (341) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.rdoc +0 -10
  3. data/Rakefile +3 -3
  4. data/leaflet-js.gemspec +7 -13
  5. data/lib/leaflet-js.rb +10 -2
  6. data/lib/leaflet.draw/BREAKINGCHANGES.md +54 -0
  7. data/lib/leaflet.draw/CHANGELOG.md +130 -0
  8. data/lib/leaflet.draw/Jakefile.js +48 -0
  9. data/lib/leaflet.draw/MIT-LICENCE.txt +20 -0
  10. data/lib/leaflet.draw/README.md +427 -0
  11. data/lib/leaflet.draw/TODO.md +62 -0
  12. data/lib/leaflet.draw/build/build.html +243 -0
  13. data/lib/leaflet.draw/build/build.js +187 -0
  14. data/lib/leaflet.draw/build/deps.js +76 -0
  15. data/lib/leaflet.draw/build/hintrc.js +39 -0
  16. data/lib/leaflet.draw/build/leaflet.draw-include.js +42 -0
  17. data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/dist/images/spritesheet-2x.png +0 -0
  18. data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/dist/images/spritesheet.png +0 -0
  19. data/lib/leaflet.draw/dist/leaflet.draw-src.js +2872 -0
  20. data/lib/leaflet.draw/dist/leaflet.draw.css +295 -0
  21. data/lib/leaflet.draw/dist/leaflet.draw.js +10 -0
  22. data/lib/leaflet.draw/examples/basic.html +113 -0
  23. data/lib/leaflet.draw/examples/edithandlers.html +66 -0
  24. data/{vendor/assets/Leaflet/dist → lib/leaflet.draw/examples/libs}/images/layers-2x.png +0 -0
  25. data/{vendor/assets/Leaflet/dist → lib/leaflet.draw/examples/libs}/images/layers.png +0 -0
  26. data/{vendor/assets/Leaflet/dist → lib/leaflet.draw/examples/libs}/images/marker-icon-2x.png +0 -0
  27. data/{vendor/assets/Leaflet/dist → lib/leaflet.draw/examples/libs}/images/marker-icon.png +0 -0
  28. data/lib/leaflet.draw/examples/libs/images/marker-icon@2x.png +0 -0
  29. data/{vendor/assets/Leaflet/dist → lib/leaflet.draw/examples/libs}/images/marker-shadow.png +0 -0
  30. data/lib/leaflet.draw/examples/libs/leaflet-src.js +9191 -0
  31. data/{vendor/assets/leaflet.css.erb → lib/leaflet.draw/examples/libs/leaflet.css} +2 -2
  32. data/lib/leaflet.draw/package.json +40 -0
  33. data/lib/leaflet.draw/spec/after.js +2 -0
  34. data/lib/leaflet.draw/spec/before.js +3 -0
  35. data/lib/leaflet.draw/spec/expect.js +1253 -0
  36. data/lib/leaflet.draw/spec/happen.js +93 -0
  37. data/lib/leaflet.draw/spec/index.html +38 -0
  38. data/lib/leaflet.draw/spec/karma.conf.js +72 -0
  39. data/lib/leaflet.draw/spec/sinon.js +4223 -0
  40. data/lib/leaflet.draw/spec/spec.hintrc.js +25 -0
  41. data/lib/leaflet.draw/spec/suites/DrawControlSpec.js +14 -0
  42. data/lib/leaflet.draw/spec/suites/GeometryUtilSpec.js +25 -0
  43. data/lib/leaflet.draw/spec/suites/LatLngUtilSpec.js +11 -0
  44. data/lib/leaflet.draw/spec/suites/SpecHelper.js +28 -0
  45. data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/Control.Draw.js +9 -9
  46. data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/Leaflet.draw.js +1 -2
  47. data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/Toolbar.js +0 -0
  48. data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/Tooltip.js +0 -0
  49. data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/copyright.js +0 -0
  50. data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/draw/DrawToolbar.js +0 -4
  51. data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/draw/handler/Draw.Circle.js +1 -1
  52. data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/draw/handler/Draw.Feature.js +2 -2
  53. data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/draw/handler/Draw.Marker.js +0 -0
  54. data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/draw/handler/Draw.Polygon.js +0 -0
  55. data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/draw/handler/Draw.Polyline.js +0 -0
  56. data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/draw/handler/Draw.Rectangle.js +1 -19
  57. data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/draw/handler/Draw.SimpleShape.js +1 -7
  58. data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/edit/EditToolbar.js +2 -9
  59. data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/edit/handler/Edit.Circle.js +0 -0
  60. data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/edit/handler/Edit.Poly.js +2 -14
  61. data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/edit/handler/Edit.Rectangle.js +0 -0
  62. data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/edit/handler/Edit.SimpleShape.js +3 -11
  63. data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/edit/handler/EditToolbar.Delete.js +1 -4
  64. data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/edit/handler/EditToolbar.Edit.js +83 -17
  65. data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/ext/GeometryUtil.js +1 -1
  66. data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/ext/LatLngUtil.js +0 -0
  67. data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/ext/LineUtil.Intersect.js +0 -0
  68. data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/ext/Polygon.Intersect.js +0 -0
  69. data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/ext/Polyline.Intersect.js +0 -0
  70. data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/images/spritesheet.svg +0 -0
  71. data/lib/leaflet.label/CHANGELOG.md +67 -0
  72. data/lib/leaflet.label/Jakefile.js +21 -0
  73. data/lib/leaflet.label/MIT-LICENCE.txt +20 -0
  74. data/lib/leaflet.label/README.md +103 -0
  75. data/lib/leaflet.label/build/build.js +155 -0
  76. data/lib/leaflet.label/build/deps.js +26 -0
  77. data/lib/leaflet.label/build/hint.js +30 -0
  78. data/lib/leaflet.label/build/hintrc.js +51 -0
  79. data/lib/leaflet.label/dist/images/death.png +0 -0
  80. data/lib/leaflet.label/dist/leaflet.label-src.js +542 -0
  81. data/{vendor/assets → lib/leaflet.label/dist}/leaflet.label.css +0 -0
  82. data/lib/leaflet.label/dist/leaflet.label.js +9 -0
  83. data/lib/leaflet.label/example/label.html +85 -0
  84. data/lib/leaflet.label/libs/leaflet/images/layers-2x.png +0 -0
  85. data/lib/leaflet.label/libs/leaflet/images/layers.png +0 -0
  86. data/lib/leaflet.label/libs/leaflet/images/marker-icon-2x.png +0 -0
  87. data/lib/leaflet.label/libs/leaflet/images/marker-icon.png +0 -0
  88. data/lib/leaflet.label/libs/leaflet/images/marker-icon@2x.png +0 -0
  89. data/lib/leaflet.label/libs/leaflet/images/marker-shadow.png +0 -0
  90. data/lib/leaflet.label/libs/leaflet/leaflet-src.js +9108 -0
  91. data/lib/leaflet.label/libs/leaflet/leaflet.css +478 -0
  92. data/lib/leaflet.label/libs/leaflet/leaflet.js +9 -0
  93. data/lib/leaflet.label/package.json +19 -0
  94. data/{vendor/assets/Leaflet.label → lib/leaflet.label}/src/BaseMarkerMethods.js +0 -0
  95. data/{vendor/assets/Leaflet.label → lib/leaflet.label}/src/CircleMarker.Label.js +0 -0
  96. data/{vendor/assets/Leaflet.label → lib/leaflet.label}/src/FeatureGroup.Label.js +0 -0
  97. data/{vendor/assets/Leaflet.label → lib/leaflet.label}/src/Label.js +2 -5
  98. data/{vendor/assets/Leaflet.label → lib/leaflet.label}/src/Leaflet.label.js +1 -1
  99. data/{vendor/assets/Leaflet.label → lib/leaflet.label}/src/Map.Label.js +0 -0
  100. data/{vendor/assets/Leaflet.label → lib/leaflet.label}/src/Marker.Label.js +0 -0
  101. data/{vendor/assets/Leaflet.label → lib/leaflet.label}/src/Path.Label.js +0 -0
  102. data/{vendor/assets/Leaflet.label → lib/leaflet.label}/src/copyright.js +0 -0
  103. data/lib/leaflet/CHANGELOG.md +1007 -0
  104. data/lib/leaflet/CONTRIBUTING.md +155 -0
  105. data/lib/leaflet/FAQ.md +138 -0
  106. data/lib/leaflet/Jakefile.js +56 -0
  107. data/lib/leaflet/LICENSE +23 -0
  108. data/lib/leaflet/PLUGIN-GUIDE.md +127 -0
  109. data/lib/leaflet/README.md +34 -0
  110. data/lib/leaflet/build/build.html +227 -0
  111. data/lib/leaflet/build/build.js +190 -0
  112. data/lib/leaflet/build/deps.js +258 -0
  113. data/lib/leaflet/build/hintrc.js +40 -0
  114. data/lib/leaflet/debug/css/mobile.css +6 -0
  115. data/lib/leaflet/debug/css/screen.css +5 -0
  116. data/lib/leaflet/debug/hacks/jitter.html +42 -0
  117. data/lib/leaflet/debug/leaflet-include.js +59 -0
  118. data/lib/leaflet/debug/map/canvas.html +49 -0
  119. data/lib/leaflet/debug/map/controls.html +49 -0
  120. data/lib/leaflet/debug/map/geolocation.html +34 -0
  121. data/lib/leaflet/debug/map/grid.html +45 -0
  122. data/lib/leaflet/debug/map/iframe.html +11 -0
  123. data/lib/leaflet/debug/map/image-overlay.html +43 -0
  124. data/lib/leaflet/debug/map/map-mobile.html +34 -0
  125. data/lib/leaflet/debug/map/map.html +61 -0
  126. data/lib/leaflet/debug/map/max-bounds.html +38 -0
  127. data/lib/leaflet/debug/map/opacity.html +223 -0
  128. data/lib/leaflet/debug/map/scroll.html +41 -0
  129. data/lib/leaflet/debug/map/simple-proj.html +59 -0
  130. data/lib/leaflet/debug/map/wms-marble.html +30 -0
  131. data/lib/leaflet/debug/map/wms.html +40 -0
  132. data/lib/leaflet/debug/map/zoomlevels.html +45 -0
  133. data/lib/leaflet/debug/tests/add_remove_layers.html +87 -0
  134. data/lib/leaflet/debug/tests/bringtoback.html +37 -0
  135. data/lib/leaflet/debug/tests/canvasloop.html +47 -0
  136. data/lib/leaflet/debug/tests/click_on_canvas.html +58 -0
  137. data/lib/leaflet/debug/tests/click_on_canvas_broken.html +49 -0
  138. data/lib/leaflet/debug/tests/dragging_and_copyworldjump.html +61 -0
  139. data/lib/leaflet/debug/tests/opacity.html +56 -0
  140. data/lib/leaflet/debug/tests/popupcontextmenuclicks.html +59 -0
  141. data/lib/leaflet/debug/tests/remove_while_dragging.html +28 -0
  142. data/lib/leaflet/debug/tests/removetilewhilepan.html +41 -0
  143. data/lib/leaflet/debug/tests/reuse_popups.html +40 -0
  144. data/lib/leaflet/debug/tests/rtl.html +42 -0
  145. data/lib/leaflet/debug/tests/rtl2.html +27 -0
  146. data/lib/leaflet/debug/tests/set_icon_reuse_dom.html +43 -0
  147. data/lib/leaflet/debug/tests/svg_clicks.html +54 -0
  148. data/lib/leaflet/debug/vector/bounds-extend.html +88 -0
  149. data/lib/leaflet/debug/vector/feature-group-bounds.html +90 -0
  150. data/lib/leaflet/debug/vector/geojson-sample.js +53 -0
  151. data/lib/leaflet/debug/vector/geojson.html +173 -0
  152. data/lib/leaflet/debug/vector/rectangle.html +53 -0
  153. data/lib/leaflet/debug/vector/route.js +1 -0
  154. data/lib/leaflet/debug/vector/touchzoomemu.html +194 -0
  155. data/lib/leaflet/debug/vector/us-states.js +54 -0
  156. data/lib/leaflet/debug/vector/vector-bounds.html +69 -0
  157. data/lib/leaflet/debug/vector/vector-canvas.html +92 -0
  158. data/lib/leaflet/debug/vector/vector-mobile.html +38 -0
  159. data/lib/leaflet/debug/vector/vector-simple.html +47 -0
  160. data/lib/leaflet/debug/vector/vector.html +37 -0
  161. data/lib/leaflet/debug/vector/vector2.html +58 -0
  162. data/lib/leaflet/dist/images/layers-2x.png +0 -0
  163. data/lib/leaflet/dist/images/layers.png +0 -0
  164. data/lib/leaflet/dist/images/marker-icon-2x.png +0 -0
  165. data/lib/leaflet/dist/images/marker-icon.png +0 -0
  166. data/lib/leaflet/dist/images/marker-shadow.png +0 -0
  167. data/lib/leaflet/dist/leaflet.css +494 -0
  168. data/lib/leaflet/package.json +28 -0
  169. data/lib/leaflet/spec/after.js +2 -0
  170. data/lib/leaflet/spec/expect.js +1253 -0
  171. data/lib/leaflet/spec/index.html +87 -0
  172. data/lib/leaflet/spec/karma.conf.js +68 -0
  173. data/lib/leaflet/spec/sinon.js +4223 -0
  174. data/lib/leaflet/spec/spec.hintrc.js +25 -0
  175. data/lib/leaflet/spec/suites/SpecHelper.js +42 -0
  176. data/lib/leaflet/spec/suites/control/Control.AttributionSpec.js +68 -0
  177. data/lib/leaflet/spec/suites/control/Control.LayersSpec.js +67 -0
  178. data/lib/leaflet/spec/suites/control/Control.ScaleSpec.js +6 -0
  179. data/lib/leaflet/spec/suites/core/ClassSpec.js +166 -0
  180. data/lib/leaflet/spec/suites/core/EventsSpec.js +416 -0
  181. data/lib/leaflet/spec/suites/core/UtilSpec.js +237 -0
  182. data/lib/leaflet/spec/suites/dom/DomEventSpec.js +102 -0
  183. data/lib/leaflet/spec/suites/dom/DomUtilSpec.js +59 -0
  184. data/lib/leaflet/spec/suites/dom/PosAnimationSpec.js +27 -0
  185. data/lib/leaflet/spec/suites/geo/CRSSpec.js +151 -0
  186. data/lib/leaflet/spec/suites/geo/LatLngBoundsSpec.js +144 -0
  187. data/lib/leaflet/spec/suites/geo/LatLngSpec.js +102 -0
  188. data/lib/leaflet/spec/suites/geo/ProjectionSpec.js +96 -0
  189. data/lib/leaflet/spec/suites/geometry/BoundsSpec.js +87 -0
  190. data/lib/leaflet/spec/suites/geometry/LineUtilSpec.js +75 -0
  191. data/lib/leaflet/spec/suites/geometry/PointSpec.js +104 -0
  192. data/lib/leaflet/spec/suites/geometry/PolyUtilSpec.js +27 -0
  193. data/lib/leaflet/spec/suites/geometry/TransformationSpec.js +31 -0
  194. data/lib/leaflet/spec/suites/layer/FeatureGroupSpec.js +86 -0
  195. data/lib/leaflet/spec/suites/layer/GeoJSONSpec.js +282 -0
  196. data/lib/leaflet/spec/suites/layer/LayerGroupSpec.js +71 -0
  197. data/lib/leaflet/spec/suites/layer/PopupSpec.js +119 -0
  198. data/lib/leaflet/spec/suites/layer/marker/MarkerSpec.js +117 -0
  199. data/lib/leaflet/spec/suites/layer/tile/GridLayerSpec.js +70 -0
  200. data/lib/leaflet/spec/suites/layer/tile/TileLayerSpec.js +88 -0
  201. data/lib/leaflet/spec/suites/layer/vector/CircleMarkerSpec.js +53 -0
  202. data/lib/leaflet/spec/suites/layer/vector/CircleSpec.js +18 -0
  203. data/lib/leaflet/spec/suites/layer/vector/PolygonSpec.js +96 -0
  204. data/lib/leaflet/spec/suites/layer/vector/PolylineGeometrySpec.js +35 -0
  205. data/lib/leaflet/spec/suites/layer/vector/PolylineSpec.js +55 -0
  206. data/lib/leaflet/spec/suites/map/MapSpec.js +553 -0
  207. data/lib/leaflet/spec/suites/map/handler/Map.DragSpec.js +38 -0
  208. data/{vendor/assets/Leaflet → lib/leaflet}/src/Leaflet.js +16 -11
  209. data/{vendor/assets/Leaflet → lib/leaflet}/src/control/Control.Attribution.js +1 -23
  210. data/{vendor/assets/Leaflet → lib/leaflet}/src/control/Control.Layers.js +42 -57
  211. data/lib/leaflet/src/control/Control.Scale.js +102 -0
  212. data/{vendor/assets/Leaflet → lib/leaflet}/src/control/Control.Zoom.js +11 -18
  213. data/{vendor/assets/Leaflet → lib/leaflet}/src/control/Control.js +7 -9
  214. data/lib/leaflet/src/copyright.js +4 -0
  215. data/lib/leaflet/src/core/Browser.js +65 -0
  216. data/{vendor/assets/Leaflet → lib/leaflet}/src/core/Class.js +8 -13
  217. data/lib/leaflet/src/core/Events.js +226 -0
  218. data/{vendor/assets/Leaflet → lib/leaflet}/src/core/Handler.js +0 -0
  219. data/lib/leaflet/src/core/Util.js +196 -0
  220. data/{vendor/assets/Leaflet → lib/leaflet}/src/dom/DomEvent.DoubleTap.js +20 -27
  221. data/lib/leaflet/src/dom/DomEvent.Pointer.js +107 -0
  222. data/{vendor/assets/Leaflet → lib/leaflet}/src/dom/DomEvent.js +70 -59
  223. data/lib/leaflet/src/dom/DomUtil.js +213 -0
  224. data/{vendor/assets/Leaflet → lib/leaflet}/src/dom/Draggable.js +10 -19
  225. data/{vendor/assets/Leaflet → lib/leaflet}/src/dom/PosAnimation.Timer.js +0 -0
  226. data/{vendor/assets/Leaflet → lib/leaflet}/src/dom/PosAnimation.js +4 -3
  227. data/lib/leaflet/src/geo/LatLng.js +67 -0
  228. data/{vendor/assets/Leaflet → lib/leaflet}/src/geo/LatLngBounds.js +0 -0
  229. data/lib/leaflet/src/geo/crs/CRS.EPSG3395.js +13 -0
  230. data/lib/leaflet/src/geo/crs/CRS.EPSG3857.js +17 -0
  231. data/{vendor/assets/Leaflet → lib/leaflet}/src/geo/crs/CRS.EPSG4326.js +2 -3
  232. data/lib/leaflet/src/geo/crs/CRS.Earth.js +19 -0
  233. data/{vendor/assets/Leaflet → lib/leaflet}/src/geo/crs/CRS.Simple.js +10 -1
  234. data/lib/leaflet/src/geo/crs/CRS.js +63 -0
  235. data/{vendor/assets/Leaflet → lib/leaflet}/src/geo/projection/Projection.LonLat.js +5 -1
  236. data/lib/leaflet/src/geo/projection/Projection.Mercator.js +43 -0
  237. data/lib/leaflet/src/geo/projection/Projection.SphericalMercator.js +31 -0
  238. data/{vendor/assets/Leaflet → lib/leaflet}/src/geometry/Bounds.js +0 -0
  239. data/{vendor/assets/Leaflet → lib/leaflet}/src/geometry/LineUtil.js +16 -5
  240. data/{vendor/assets/Leaflet → lib/leaflet}/src/geometry/Point.js +10 -0
  241. data/{vendor/assets/Leaflet → lib/leaflet}/src/geometry/PolyUtil.js +0 -0
  242. data/{vendor/assets/Leaflet → lib/leaflet}/src/geometry/Transformation.js +0 -0
  243. data/{vendor/assets/Leaflet → lib/leaflet}/src/images/layers.svg +0 -0
  244. data/lib/leaflet/src/images/logo.svg +85 -0
  245. data/{vendor/assets/Leaflet → lib/leaflet}/src/images/marker.svg +0 -0
  246. data/{vendor/assets/Leaflet → lib/leaflet}/src/layer/FeatureGroup.js +3 -20
  247. data/lib/leaflet/src/layer/GeoJSON.js +275 -0
  248. data/lib/leaflet/src/layer/ImageOverlay.js +123 -0
  249. data/lib/leaflet/src/layer/Layer.Popup.js +87 -0
  250. data/lib/leaflet/src/layer/Layer.js +150 -0
  251. data/{vendor/assets/Leaflet → lib/leaflet}/src/layer/LayerGroup.js +12 -14
  252. data/{vendor/assets/Leaflet → lib/leaflet}/src/layer/Popup.js +65 -83
  253. data/{vendor/assets/Leaflet → lib/leaflet}/src/layer/marker/DivIcon.js +3 -8
  254. data/{vendor/assets/Leaflet → lib/leaflet}/src/layer/marker/Icon.Default.js +6 -12
  255. data/{vendor/assets/Leaflet → lib/leaflet}/src/layer/marker/Icon.js +8 -25
  256. data/{vendor/assets/Leaflet → lib/leaflet}/src/layer/marker/Marker.Drag.js +13 -11
  257. data/lib/leaflet/src/layer/marker/Marker.Popup.js +16 -0
  258. data/{vendor/assets/Leaflet → lib/leaflet}/src/layer/marker/Marker.js +52 -103
  259. data/lib/leaflet/src/layer/tile/GridLayer.js +536 -0
  260. data/lib/leaflet/src/layer/tile/TileLayer.WMS.js +79 -0
  261. data/lib/leaflet/src/layer/tile/TileLayer.js +148 -0
  262. data/lib/leaflet/src/layer/vector/Canvas.js +292 -0
  263. data/lib/leaflet/src/layer/vector/Circle.js +67 -0
  264. data/lib/leaflet/src/layer/vector/CircleMarker.js +72 -0
  265. data/lib/leaflet/src/layer/vector/Path.js +79 -0
  266. data/lib/leaflet/src/layer/vector/Polygon.js +75 -0
  267. data/lib/leaflet/src/layer/vector/Polyline.js +223 -0
  268. data/{vendor/assets/Leaflet → lib/leaflet}/src/layer/vector/Rectangle.js +27 -27
  269. data/lib/leaflet/src/layer/vector/Renderer.js +75 -0
  270. data/lib/leaflet/src/layer/vector/SVG.VML.js +134 -0
  271. data/lib/leaflet/src/layer/vector/SVG.js +189 -0
  272. data/{vendor/assets/Leaflet → lib/leaflet}/src/map/Map.js +83 -199
  273. data/{vendor/assets/Leaflet → lib/leaflet}/src/map/anim/Map.PanAnimation.js +0 -0
  274. data/{vendor/assets/Leaflet → lib/leaflet}/src/map/anim/Map.ZoomAnimation.js +30 -38
  275. data/{vendor/assets/Leaflet → lib/leaflet}/src/map/ext/Map.Geolocation.js +8 -8
  276. data/lib/leaflet/src/map/handler/Map.BoxZoom.js +105 -0
  277. data/{vendor/assets/Leaflet → lib/leaflet}/src/map/handler/Map.DoubleClickZoom.js +0 -0
  278. data/{vendor/assets/Leaflet → lib/leaflet}/src/map/handler/Map.Drag.js +12 -10
  279. data/{vendor/assets/Leaflet → lib/leaflet}/src/map/handler/Map.Keyboard.js +19 -17
  280. data/{vendor/assets/Leaflet → lib/leaflet}/src/map/handler/Map.ScrollWheelZoom.js +10 -6
  281. data/{vendor/assets/Leaflet → lib/leaflet}/src/map/handler/Map.Tap.js +8 -6
  282. data/{vendor/assets/Leaflet → lib/leaflet}/src/map/handler/Map.TouchZoom.js +16 -32
  283. data/vendor/assets/images/layers-2x.png +0 -0
  284. data/vendor/assets/images/layers.png +0 -0
  285. data/vendor/assets/images/marker-icon-2x.png +0 -0
  286. data/vendor/assets/images/marker-icon.png +0 -0
  287. data/vendor/assets/images/marker-shadow.png +0 -0
  288. data/vendor/assets/images/spritesheet-2x.png +0 -0
  289. data/vendor/assets/images/spritesheet.png +0 -0
  290. data/vendor/assets/{leaflet-js.js → javascripts/leaflet-js.js} +2 -2
  291. data/vendor/assets/javascripts/leaflet.draw.js +37 -0
  292. data/vendor/assets/javascripts/leaflet.js +149 -0
  293. data/vendor/assets/javascripts/leaflet.label.js +11 -0
  294. data/vendor/assets/{leaflet-js.css → stylesheets/leaflet-js.css} +0 -0
  295. data/vendor/assets/stylesheets/leaflet.css.erb +478 -0
  296. data/vendor/assets/{leaflet.draw.css.erb → stylesheets/leaflet.draw.css.erb} +2 -2
  297. data/vendor/assets/{leaflet.draw.ie.css → stylesheets/leaflet.draw.ie.css} +0 -0
  298. data/vendor/assets/stylesheets/leaflet.label.css +52 -0
  299. metadata +298 -137
  300. data/lib/leaflet-js/engine.rb +0 -7
  301. data/lib/leaflet-js/version.rb +0 -3
  302. data/vendor/assets/Leaflet.draw/src/edit/handler/Edit.Marker.js +0 -75
  303. data/vendor/assets/Leaflet/src/control/Control.Scale.js +0 -112
  304. data/vendor/assets/Leaflet/src/copyright.js +0 -5
  305. data/vendor/assets/Leaflet/src/core/Browser.js +0 -66
  306. data/vendor/assets/Leaflet/src/core/Events.js +0 -178
  307. data/vendor/assets/Leaflet/src/core/Util.js +0 -182
  308. data/vendor/assets/Leaflet/src/dom/DomEvent.Pointer.js +0 -156
  309. data/vendor/assets/Leaflet/src/dom/DomUtil.js +0 -289
  310. data/vendor/assets/Leaflet/src/geo/LatLng.js +0 -99
  311. data/vendor/assets/Leaflet/src/geo/crs/CRS.EPSG3395.js +0 -14
  312. data/vendor/assets/Leaflet/src/geo/crs/CRS.EPSG3857.js +0 -21
  313. data/vendor/assets/Leaflet/src/geo/crs/CRS.js +0 -32
  314. data/vendor/assets/Leaflet/src/geo/projection/Projection.Mercator.js +0 -56
  315. data/vendor/assets/Leaflet/src/geo/projection/Projection.SphericalMercator.js +0 -27
  316. data/vendor/assets/Leaflet/src/geo/projection/Projection.js +0 -5
  317. data/vendor/assets/Leaflet/src/layer/GeoJSON.js +0 -286
  318. data/vendor/assets/Leaflet/src/layer/ImageOverlay.js +0 -141
  319. data/vendor/assets/Leaflet/src/layer/marker/Marker.Popup.js +0 -90
  320. data/vendor/assets/Leaflet/src/layer/tile/TileLayer.Anim.js +0 -110
  321. data/vendor/assets/Leaflet/src/layer/tile/TileLayer.Canvas.js +0 -61
  322. data/vendor/assets/Leaflet/src/layer/tile/TileLayer.WMS.js +0 -87
  323. data/vendor/assets/Leaflet/src/layer/tile/TileLayer.js +0 -597
  324. data/vendor/assets/Leaflet/src/layer/vector/Circle.js +0 -98
  325. data/vendor/assets/Leaflet/src/layer/vector/CircleMarker.js +0 -45
  326. data/vendor/assets/Leaflet/src/layer/vector/MultiPoly.js +0 -57
  327. data/vendor/assets/Leaflet/src/layer/vector/Path.Popup.js +0 -65
  328. data/vendor/assets/Leaflet/src/layer/vector/Path.SVG.js +0 -230
  329. data/vendor/assets/Leaflet/src/layer/vector/Path.VML.js +0 -135
  330. data/vendor/assets/Leaflet/src/layer/vector/Path.js +0 -119
  331. data/vendor/assets/Leaflet/src/layer/vector/Polygon.js +0 -92
  332. data/vendor/assets/Leaflet/src/layer/vector/Polyline.js +0 -164
  333. data/vendor/assets/Leaflet/src/layer/vector/canvas/Circle.Canvas.js +0 -18
  334. data/vendor/assets/Leaflet/src/layer/vector/canvas/CircleMarker.Canvas.js +0 -9
  335. data/vendor/assets/Leaflet/src/layer/vector/canvas/Path.Canvas.js +0 -204
  336. data/vendor/assets/Leaflet/src/layer/vector/canvas/Polygon.Canvas.js +0 -37
  337. data/vendor/assets/Leaflet/src/layer/vector/canvas/Polyline.Canvas.js +0 -30
  338. data/vendor/assets/Leaflet/src/map/handler/Map.BoxZoom.js +0 -118
  339. data/vendor/assets/leaflet.draw.js +0 -38
  340. data/vendor/assets/leaflet.js +0 -155
  341. data/vendor/assets/leaflet.label.js +0 -11
@@ -9,13 +9,9 @@ L.extend(L.DomEvent, {
9
9
 
10
10
  // inspired by Zepto touch code by Thomas Fuchs
11
11
  addDoubleTapListener: function (obj, handler, id) {
12
- var last,
12
+ var last, touch,
13
13
  doubleTap = false,
14
14
  delay = 250,
15
- touch,
16
- pre = '_leaflet_',
17
- touchstart = this._touchstart,
18
- touchend = this._touchend,
19
15
  trackedTouches = [];
20
16
 
21
17
  function onTouchStart(e) {
@@ -27,12 +23,11 @@ L.extend(L.DomEvent, {
27
23
  } else {
28
24
  count = e.touches.length;
29
25
  }
30
- if (count > 1) {
31
- return;
32
- }
26
+
27
+ if (count > 1) { return; }
33
28
 
34
29
  var now = Date.now(),
35
- delta = now - (last || now);
30
+ delta = now - (last || now);
36
31
 
37
32
  touch = e.touches ? e.touches[0] : e;
38
33
  doubleTap = (delta > 0 && delta <= delay);
@@ -42,26 +37,19 @@ L.extend(L.DomEvent, {
42
37
  function onTouchEnd(e) {
43
38
  if (L.Browser.pointer) {
44
39
  var idx = trackedTouches.indexOf(e.pointerId);
45
- if (idx === -1) {
46
- return;
47
- }
40
+ if (idx === -1) { return; }
48
41
  trackedTouches.splice(idx, 1);
49
42
  }
50
43
 
51
44
  if (doubleTap) {
52
45
  if (L.Browser.pointer) {
53
46
  // work around .type being readonly with MSPointer* events
54
- var newTouch = { },
55
- prop;
47
+ var newTouch = {},
48
+ prop, i;
56
49
 
57
- // jshint forin:false
58
- for (var i in touch) {
50
+ for (i in touch) {
59
51
  prop = touch[i];
60
- if (typeof prop === 'function') {
61
- newTouch[i] = prop.bind(touch);
62
- } else {
63
- newTouch[i] = prop;
64
- }
52
+ newTouch[i] = prop && prop.bind ? prop.bind(touch) : prop;
65
53
  }
66
54
  touch = newTouch;
67
55
  }
@@ -70,6 +58,11 @@ L.extend(L.DomEvent, {
70
58
  last = null;
71
59
  }
72
60
  }
61
+
62
+ var pre = '_leaflet_',
63
+ touchstart = this._touchstart,
64
+ touchend = this._touchend;
65
+
73
66
  obj[pre + touchstart + id] = onTouchStart;
74
67
  obj[pre + touchend + id] = onTouchEnd;
75
68
 
@@ -78,8 +71,8 @@ L.extend(L.DomEvent, {
78
71
  var endElement = L.Browser.pointer ? document.documentElement : obj;
79
72
 
80
73
  obj.addEventListener(touchstart, onTouchStart, false);
81
- endElement.addEventListener(touchend, onTouchEnd, false);
82
74
 
75
+ endElement.addEventListener(touchend, onTouchEnd, false);
83
76
  if (L.Browser.pointer) {
84
77
  endElement.addEventListener(L.DomEvent.POINTER_CANCEL, onTouchEnd, false);
85
78
  }
@@ -88,15 +81,15 @@ L.extend(L.DomEvent, {
88
81
  },
89
82
 
90
83
  removeDoubleTapListener: function (obj, id) {
91
- var pre = '_leaflet_';
84
+ var pre = '_leaflet_',
85
+ endElement = L.Browser.pointer ? document.documentElement : obj,
86
+ touchend = obj[pre + this._touchend + id];
92
87
 
93
88
  obj.removeEventListener(this._touchstart, obj[pre + this._touchstart + id], false);
94
- (L.Browser.pointer ? document.documentElement : obj).removeEventListener(
95
- this._touchend, obj[pre + this._touchend + id], false);
96
89
 
90
+ endElement.removeEventListener(this._touchend, touchend, false);
97
91
  if (L.Browser.pointer) {
98
- document.documentElement.removeEventListener(L.DomEvent.POINTER_CANCEL, obj[pre + this._touchend + id],
99
- false);
92
+ endElement.removeEventListener(L.DomEvent.POINTER_CANCEL, touchend, false);
100
93
  }
101
94
 
102
95
  return this;
@@ -0,0 +1,107 @@
1
+ /*
2
+ * Extends L.DomEvent to provide touch support for Internet Explorer and Windows-based devices.
3
+ */
4
+
5
+ L.extend(L.DomEvent, {
6
+
7
+ POINTER_DOWN: L.Browser.msPointer ? 'MSPointerDown' : 'pointerdown',
8
+ POINTER_MOVE: L.Browser.msPointer ? 'MSPointerMove' : 'pointermove',
9
+ POINTER_UP: L.Browser.msPointer ? 'MSPointerUp' : 'pointerup',
10
+ POINTER_CANCEL: L.Browser.msPointer ? 'MSPointerCancel' : 'pointercancel',
11
+
12
+ _pointers: {},
13
+
14
+ // Provides a touch events wrapper for (ms)pointer events.
15
+ // ref http://www.w3.org/TR/pointerevents/ https://www.w3.org/Bugs/Public/show_bug.cgi?id=22890
16
+
17
+ addPointerListener: function (obj, type, handler, id) {
18
+
19
+ if (type === 'touchstart') {
20
+ this._addPointerStart(obj, handler, id);
21
+
22
+ } else if (type === 'touchmove') {
23
+ this._addPointerMove(obj, handler, id);
24
+
25
+ } else if (type === 'touchend') {
26
+ this._addPointerEnd(obj, handler, id);
27
+ }
28
+
29
+ return this;
30
+ },
31
+
32
+ removePointerListener: function (obj, type, id) {
33
+ var handler = obj['_leaflet_' + type + id];
34
+
35
+ if (type === 'touchstart') {
36
+ obj.removeEventListener(this.POINTER_DOWN, handler, false);
37
+
38
+ } else if (type === 'touchmove') {
39
+ obj.removeEventListener(this.POINTER_MOVE, handler, false);
40
+
41
+ } else if (type === 'touchend') {
42
+ obj.removeEventListener(this.POINTER_UP, handler, false);
43
+ obj.removeEventListener(this.POINTER_CANCEL, handler, false);
44
+ }
45
+
46
+ return this;
47
+ },
48
+
49
+ _addPointerStart: function (obj, handler, id) {
50
+ var onDown = L.bind(function (e) {
51
+ L.DomEvent.preventDefault(e);
52
+
53
+ this._pointers[e.pointerId] = e;
54
+ this._handlePointer(e, handler);
55
+ }, this);
56
+
57
+ obj['_leaflet_touchstart' + id] = onDown;
58
+ obj.addEventListener(this.POINTER_DOWN, onDown, false);
59
+
60
+ // need to also listen for end events to keep the _pointers object accurate
61
+ if (!this._pointerDocListener) {
62
+ var removePointer = L.bind(function (e) {
63
+ delete this._pointers[e.pointerId];
64
+ }, this);
65
+
66
+ // we listen documentElement as any drags that end by moving the touch off the screen get fired there
67
+ document.documentElement.addEventListener(this.POINTER_UP, removePointer, false);
68
+ document.documentElement.addEventListener(this.POINTER_CANCEL, removePointer, false);
69
+
70
+ this._pointerDocListener = true;
71
+ }
72
+ },
73
+
74
+ _handlePointer: function (e, handler) {
75
+ e.touches = [];
76
+ for (var i in this._pointers) {
77
+ e.touches.push(this._pointers[i]);
78
+ }
79
+ e.changedTouches = [e];
80
+
81
+ handler(e);
82
+ },
83
+
84
+ _addPointerMove: function (obj, handler, id) {
85
+ var onMove = L.bind(function (e) {
86
+ // don't fire touch moves when mouse isn't down
87
+ if ((e.pointerType === e.MSPOINTER_TYPE_MOUSE || e.pointerType === 'mouse') && e.buttons === 0) { return; }
88
+
89
+ this._pointers[e.pointerId] = e;
90
+ this._handlePointer(e, handler);
91
+ }, this);
92
+
93
+ obj['_leaflet_touchmove' + id] = onMove;
94
+ obj.addEventListener(this.POINTER_MOVE, onMove, false);
95
+ },
96
+
97
+ _addPointerEnd: function (obj, handler, id) {
98
+ var onUp = L.bind(function (e) {
99
+ delete this._pointers[e.pointerId];
100
+ this._handlePointer(e, handler);
101
+ }, this);
102
+
103
+ obj['_leaflet_touchend' + id] = onUp;
104
+ obj.addEventListener(this.POINTER_UP, onUp, false);
105
+ obj.addEventListener(this.POINTER_CANCEL, onUp, false);
106
+ }
107
+ });
@@ -1,21 +1,57 @@
1
1
  /*
2
2
  * L.DomEvent contains functions for working with DOM events.
3
+ * Inspired by John Resig, Dean Edwards and YUI addEvent implementations.
3
4
  */
4
5
 
6
+ var eventsKey = '_leaflet_events';
7
+
5
8
  L.DomEvent = {
6
- /* inspired by John Resig, Dean Edwards and YUI addEvent implementations */
7
- addListener: function (obj, type, fn, context) { // (HTMLElement, String, Function[, Object])
8
9
 
9
- var id = L.stamp(fn),
10
- key = '_leaflet_' + type + id,
11
- handler, originalHandler, newType;
10
+ on: function (obj, types, fn, context) {
11
+
12
+ if (typeof types === 'object') {
13
+ for (var type in types) {
14
+ this._on(obj, type, types[type], fn);
15
+ }
16
+ } else {
17
+ types = L.Util.splitWords(types);
18
+
19
+ for (var i = 0, len = types.length; i < len; i++) {
20
+ this._on(obj, types[i], fn, context);
21
+ }
22
+ }
23
+
24
+ return this;
25
+ },
26
+
27
+ off: function (obj, types, fn, context) {
12
28
 
13
- if (obj[key]) { return this; }
29
+ if (typeof types === 'object') {
30
+ for (var type in types) {
31
+ this._off(obj, type, types[type], fn);
32
+ }
33
+ } else {
34
+ types = L.Util.splitWords(types);
35
+
36
+ for (var i = 0, len = types.length; i < len; i++) {
37
+ this._off(obj, types[i], fn, context);
38
+ }
39
+ }
14
40
 
15
- handler = function (e) {
16
- return fn.call(context || obj, e || L.DomEvent._getEvent());
41
+ return this;
42
+ },
43
+
44
+ _on: function (obj, type, fn, context) {
45
+ var id = type + L.stamp(fn) + (context ? '_' + L.stamp(context) : '');
46
+
47
+ if (obj[eventsKey] && obj[eventsKey][id]) { return this; }
48
+
49
+ var handler = function (e) {
50
+ return fn.call(context || obj, e || window.event);
17
51
  };
18
52
 
53
+ var originalHandler = handler;
54
+
19
55
  if (L.Browser.pointer && type.indexOf('touch') === 0) {
20
56
  return this.addPointerListener(obj, type, handler, id);
21
57
  }
@@ -30,25 +66,19 @@ L.DomEvent = {
30
66
  obj.addEventListener(type, handler, false);
31
67
 
32
68
  } else if ((type === 'mouseenter') || (type === 'mouseleave')) {
33
-
34
- originalHandler = handler;
35
- newType = (type === 'mouseenter' ? 'mouseover' : 'mouseout');
36
-
37
69
  handler = function (e) {
70
+ e = e || window.event;
38
71
  if (!L.DomEvent._checkMouse(obj, e)) { return; }
39
72
  return originalHandler(e);
40
73
  };
74
+ obj.addEventListener(type === 'mouseenter' ? 'mouseover' : 'mouseout', handler, false);
41
75
 
42
- obj.addEventListener(newType, handler, false);
43
-
44
- } else if (type === 'click' && L.Browser.android) {
45
- originalHandler = handler;
46
- handler = function (e) {
47
- return L.DomEvent._filterClick(e, originalHandler);
48
- };
49
-
50
- obj.addEventListener(type, handler, false);
51
76
  } else {
77
+ if (type === 'click' && L.Browser.android) {
78
+ handler = function (e) {
79
+ return L.DomEvent._filterClick(e, originalHandler);
80
+ };
81
+ }
52
82
  obj.addEventListener(type, handler, false);
53
83
  }
54
84
 
@@ -56,21 +86,22 @@ L.DomEvent = {
56
86
  obj.attachEvent('on' + type, handler);
57
87
  }
58
88
 
59
- obj[key] = handler;
89
+ obj[eventsKey] = obj[eventsKey] || {};
90
+ obj[eventsKey][id] = handler;
60
91
 
61
92
  return this;
62
93
  },
63
94
 
64
- removeListener: function (obj, type, fn) { // (HTMLElement, String, Function)
95
+ _off: function (obj, type, fn, context) {
65
96
 
66
- var id = L.stamp(fn),
67
- key = '_leaflet_' + type + id,
68
- handler = obj[key];
97
+ var id = type + L.stamp(fn) + (context ? '_' + L.stamp(context) : ''),
98
+ handler = obj[eventsKey] && obj[eventsKey][id];
69
99
 
70
100
  if (!handler) { return this; }
71
101
 
72
102
  if (L.Browser.pointer && type.indexOf('touch') === 0) {
73
103
  this.removePointerListener(obj, type, id);
104
+
74
105
  } else if (L.Browser.touch && (type === 'dblclick') && this.removeDoubleTapListener) {
75
106
  this.removeDoubleTapListener(obj, id);
76
107
 
@@ -80,16 +111,17 @@ L.DomEvent = {
80
111
  obj.removeEventListener('DOMMouseScroll', handler, false);
81
112
  obj.removeEventListener(type, handler, false);
82
113
 
83
- } else if ((type === 'mouseenter') || (type === 'mouseleave')) {
84
- obj.removeEventListener((type === 'mouseenter' ? 'mouseover' : 'mouseout'), handler, false);
85
114
  } else {
86
- obj.removeEventListener(type, handler, false);
115
+ obj.removeEventListener(
116
+ type === 'mouseenter' ? 'mouseover' :
117
+ type === 'mouseleave' ? 'mouseout' : type, handler, false);
87
118
  }
119
+
88
120
  } else if ('detachEvent' in obj) {
89
121
  obj.detachEvent('on' + type, handler);
90
122
  }
91
123
 
92
- obj[key] = null;
124
+ obj[eventsKey][id] = null;
93
125
 
94
126
  return this;
95
127
  },
@@ -107,23 +139,18 @@ L.DomEvent = {
107
139
  },
108
140
 
109
141
  disableScrollPropagation: function (el) {
110
- var stop = L.DomEvent.stopPropagation;
111
-
112
- return L.DomEvent
113
- .on(el, 'mousewheel', stop)
114
- .on(el, 'MozMousePixelScroll', stop);
142
+ return L.DomEvent.on(el, 'mousewheel MozMousePixelScroll', L.DomEvent.stopPropagation);
115
143
  },
116
144
 
117
145
  disableClickPropagation: function (el) {
118
146
  var stop = L.DomEvent.stopPropagation;
119
147
 
120
- for (var i = L.Draggable.START.length - 1; i >= 0; i--) {
121
- L.DomEvent.on(el, L.Draggable.START[i], stop);
122
- }
148
+ L.DomEvent.on(el, L.Draggable.START.join(' '), stop);
123
149
 
124
- return L.DomEvent
125
- .on(el, 'click', L.DomEvent._fakeStop)
126
- .on(el, 'dblclick', stop);
150
+ return L.DomEvent.on(el, {
151
+ click: L.DomEvent._fakeStop,
152
+ dblclick: stop
153
+ });
127
154
  },
128
155
 
129
156
  preventDefault: function (e) {
@@ -198,22 +225,6 @@ L.DomEvent = {
198
225
  return (related !== el);
199
226
  },
200
227
 
201
- _getEvent: function () { // evil magic for IE
202
- /*jshint noarg:false */
203
- var e = window.event;
204
- if (!e) {
205
- var caller = arguments.callee.caller;
206
- while (caller) {
207
- e = caller['arguments'][0];
208
- if (e && window.Event === e.constructor) {
209
- break;
210
- }
211
- caller = caller.caller;
212
- }
213
- }
214
- return e;
215
- },
216
-
217
228
  // this is a horrible workaround for a bug in Android where a single touch triggers two click events
218
229
  _filterClick: function (e, handler) {
219
230
  var timeStamp = (e.timeStamp || e.originalEvent.timeStamp),
@@ -234,5 +245,5 @@ L.DomEvent = {
234
245
  }
235
246
  };
236
247
 
237
- L.DomEvent.on = L.DomEvent.addListener;
238
- L.DomEvent.off = L.DomEvent.removeListener;
248
+ L.DomEvent.addListener = L.DomEvent.on;
249
+ L.DomEvent.removeListener = L.DomEvent.off;
@@ -0,0 +1,213 @@
1
+ /*
2
+ * L.DomUtil contains various utility functions for working with DOM.
3
+ */
4
+
5
+ L.DomUtil = {
6
+ get: function (id) {
7
+ return typeof id === 'string' ? document.getElementById(id) : id;
8
+ },
9
+
10
+ getStyle: function (el, style) {
11
+
12
+ var value = el.style[style] || (el.currentStyle && el.currentStyle[style]);
13
+
14
+ if ((!value || value === 'auto') && document.defaultView) {
15
+ var css = document.defaultView.getComputedStyle(el, null);
16
+ value = css ? css[style] : null;
17
+ }
18
+
19
+ return value === 'auto' ? null : value;
20
+ },
21
+
22
+ create: function (tagName, className, container) {
23
+
24
+ var el = document.createElement(tagName);
25
+ el.className = className;
26
+
27
+ if (container) {
28
+ container.appendChild(el);
29
+ }
30
+
31
+ return el;
32
+ },
33
+
34
+ remove: function (el) {
35
+ var parent = el.parentNode;
36
+ if (parent) {
37
+ parent.removeChild(el);
38
+ }
39
+ },
40
+
41
+ toFront: function (el) {
42
+ el.parentNode.appendChild(el);
43
+ },
44
+
45
+ toBack: function (el) {
46
+ var parent = el.parentNode;
47
+ parent.insertBefore(el, parent.firstChild);
48
+ },
49
+
50
+ hasClass: function (el, name) {
51
+ if (el.classList !== undefined) {
52
+ return el.classList.contains(name);
53
+ }
54
+ var className = L.DomUtil.getClass(el);
55
+ return className.length > 0 && new RegExp('(^|\\s)' + name + '(\\s|$)').test(className);
56
+ },
57
+
58
+ addClass: function (el, name) {
59
+ if (el.classList !== undefined) {
60
+ var classes = L.Util.splitWords(name);
61
+ for (var i = 0, len = classes.length; i < len; i++) {
62
+ el.classList.add(classes[i]);
63
+ }
64
+ } else if (!L.DomUtil.hasClass(el, name)) {
65
+ var className = L.DomUtil.getClass(el);
66
+ L.DomUtil.setClass(el, (className ? className + ' ' : '') + name);
67
+ }
68
+ },
69
+
70
+ removeClass: function (el, name) {
71
+ if (el.classList !== undefined) {
72
+ el.classList.remove(name);
73
+ } else {
74
+ L.DomUtil.setClass(el, L.Util.trim((' ' + L.DomUtil.getClass(el) + ' ').replace(' ' + name + ' ', ' ')));
75
+ }
76
+ },
77
+
78
+ setClass: function (el, name) {
79
+ if (el.className.baseVal === undefined) {
80
+ el.className = name;
81
+ } else {
82
+ // in case of SVG element
83
+ el.className.baseVal = name;
84
+ }
85
+ },
86
+
87
+ getClass: function (el) {
88
+ return el.className.baseVal === undefined ? el.className : el.className.baseVal;
89
+ },
90
+
91
+ setOpacity: function (el, value) {
92
+
93
+ if ('opacity' in el.style) {
94
+ el.style.opacity = value;
95
+
96
+ } else if ('filter' in el.style) {
97
+
98
+ var filter = false,
99
+ filterName = 'DXImageTransform.Microsoft.Alpha';
100
+
101
+ // filters collection throws an error if we try to retrieve a filter that doesn't exist
102
+ try {
103
+ filter = el.filters.item(filterName);
104
+ } catch (e) {
105
+ // don't set opacity to 1 if we haven't already set an opacity,
106
+ // it isn't needed and breaks transparent pngs.
107
+ if (value === 1) { return; }
108
+ }
109
+
110
+ value = Math.round(value * 100);
111
+
112
+ if (filter) {
113
+ filter.Enabled = (value !== 100);
114
+ filter.Opacity = value;
115
+ } else {
116
+ el.style.filter += ' progid:' + filterName + '(opacity=' + value + ')';
117
+ }
118
+ }
119
+ },
120
+
121
+ testProp: function (props) {
122
+
123
+ var style = document.documentElement.style;
124
+
125
+ for (var i = 0; i < props.length; i++) {
126
+ if (props[i] in style) {
127
+ return props[i];
128
+ }
129
+ }
130
+ return false;
131
+ },
132
+
133
+ setTransform: function (el, offset, scale) {
134
+ var pos = offset || new L.Point(0, 0);
135
+
136
+ el.style[L.DomUtil.TRANSFORM] =
137
+ 'translate3d(' + pos.x + 'px,' + pos.y + 'px' + ',0)' + (scale ? ' scale(' + scale + ')' : '');
138
+ },
139
+
140
+ setPosition: function (el, point, no3d) { // (HTMLElement, Point[, Boolean])
141
+
142
+ // jshint camelcase: false
143
+ el._leaflet_pos = point;
144
+
145
+ if (L.Browser.any3d && !no3d) {
146
+ L.DomUtil.setTransform(el, point);
147
+ } else {
148
+ el.style.left = point.x + 'px';
149
+ el.style.top = point.y + 'px';
150
+ }
151
+ },
152
+
153
+ getPosition: function (el) {
154
+ // this method is only used for elements previously positioned using setPosition,
155
+ // so it's safe to cache the position for performance
156
+
157
+ // jshint camelcase: false
158
+ return el._leaflet_pos;
159
+ }
160
+ };
161
+
162
+
163
+ (function () {
164
+ // prefix style property names
165
+
166
+ L.DomUtil.TRANSFORM = L.DomUtil.testProp(
167
+ ['transform', 'WebkitTransform', 'OTransform', 'MozTransform', 'msTransform']);
168
+
169
+
170
+ // webkitTransition comes first because some browser versions that drop vendor prefix don't do
171
+ // the same for the transitionend event, in particular the Android 4.1 stock browser
172
+
173
+ var transition = L.DomUtil.TRANSITION = L.DomUtil.testProp(
174
+ ['webkitTransition', 'transition', 'OTransition', 'MozTransition', 'msTransition']);
175
+
176
+ L.DomUtil.TRANSITION_END =
177
+ transition === 'webkitTransition' || transition === 'OTransition' ? transition + 'End' : 'transitionend';
178
+
179
+
180
+ if ('onselectstart' in document) {
181
+ L.DomUtil.disableTextSelection = function () {
182
+ L.DomEvent.on(window, 'selectstart', L.DomEvent.preventDefault);
183
+ };
184
+ L.DomUtil.enableTextSelection = function () {
185
+ L.DomEvent.off(window, 'selectstart', L.DomEvent.preventDefault);
186
+ };
187
+
188
+ } else {
189
+ var userSelectProperty = L.DomUtil.testProp(
190
+ ['userSelect', 'WebkitUserSelect', 'OUserSelect', 'MozUserSelect', 'msUserSelect']);
191
+
192
+ L.DomUtil.disableTextSelection = function () {
193
+ if (userSelectProperty) {
194
+ var style = document.documentElement.style;
195
+ this._userSelect = style[userSelectProperty];
196
+ style[userSelectProperty] = 'none';
197
+ }
198
+ };
199
+ L.DomUtil.enableTextSelection = function () {
200
+ if (userSelectProperty) {
201
+ document.documentElement.style[userSelectProperty] = this._userSelect;
202
+ delete this._userSelect;
203
+ }
204
+ };
205
+ }
206
+
207
+ L.DomUtil.disableImageDrag = function () {
208
+ L.DomEvent.on(window, 'dragstart', L.DomEvent.preventDefault);
209
+ };
210
+ L.DomUtil.enableImageDrag = function () {
211
+ L.DomEvent.off(window, 'dragstart', L.DomEvent.preventDefault);
212
+ };
213
+ })();