]> git.openstreetmap.org Git - rails.git/blob - app/assets/javascripts/leaflet.sidebar.js
Overlay-style minimized sidebar
[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     current
21       .hide()
22       .trigger('hide');
23
24     currentButton
25       .removeClass('active');
26
27     if (current === pane) {
28       $(sidebar).hide();
29       current = currentButton = $();
30     } else {
31       $(sidebar).show();
32       current = pane;
33       currentButton = button || $();
34     }
35
36     map.invalidateSize({pan: false, animate: false});
37
38     current
39       .show()
40       .trigger('show');
41
42     currentButton
43       .addClass('active');
44   };
45
46   return control;
47 };