L.OSM.sidebar = function(selector) {
var control = {},
sidebar = $(selector),
- current = $();
+ current = $(),
+ currentButton = $(),
+ map;
+
+ control.addTo = function (_) {
+ map = _;
+ return control;
+ };
control.addPane = function(pane) {
pane
.appendTo(sidebar);
};
- control.togglePane = function(pane) {
- var controlContainer = $('.leaflet-control-container .leaflet-top.leaflet-right');
-
+ control.togglePane = function(pane, button) {
current
.hide()
.trigger('hide');
+ currentButton
+ .removeClass('active');
+
if (current === pane) {
$(sidebar).hide();
- controlContainer.css({paddingRight: '0'});
- current = $();
+ current = currentButton = $();
} else {
$(sidebar).show();
- controlContainer.css({paddingRight: '250px'});
current = pane;
+ currentButton = button || $();
}
+ map.invalidateSize({pan: false, animate: false});
+
current
.show()
.trigger('show');
+
+ currentButton
+ .addClass('active');
};
return control;