]> git.openstreetmap.org Git - rails.git/blob - app/assets/javascripts/leaflet.sidebar.js
iD: listen to manual hashchanges from iframe parent
[rails.git] / app / assets / javascripts / leaflet.sidebar.js
1 L.OSM.sidebar = function (selector) {
2   var control = {},
3       sidebar = $(selector),
4       current = $(),
5       currentButton = $(),
6       map;
7
8   control.addTo = function (_) {
9     map = _;
10     return control;
11   };
12
13   control.addPane = function (pane) {
14     pane
15       .hide()
16       .appendTo(sidebar);
17   };
18
19   control.togglePane = function (pane, button) {
20     var paneWidth = 250;
21
22     current
23       .hide()
24       .trigger("hide");
25
26     currentButton
27       .removeClass("active");
28
29     if (current === pane) {
30       if ($("html").attr("dir") === "rtl") {
31         map.panBy([-paneWidth, 0], { animate: false });
32       }
33       $(sidebar).hide();
34       $("#content").addClass("overlay-right-sidebar");
35       current = currentButton = $();
36     } else {
37       $(sidebar).show();
38       $("#content").removeClass("overlay-right-sidebar");
39       current = pane;
40       currentButton = button || $();
41       if ($("html").attr("dir") === "rtl") {
42         map.panBy([paneWidth, 0], { animate: false });
43       }
44     }
45
46     map.invalidateSize({ pan: false, animate: false });
47
48     current
49       .show()
50       .trigger("show");
51
52     currentButton
53       .addClass("active");
54   };
55
56   return control;
57 };