А можно в дальнейшем ещё вопросы в этой ветке задавать, без прямой связи с темой?
В данном отрывке кода не могу понять как метод contains используется? Ведь он призван проверять присутствие класса в элементе!?
container.addEventListener('click', function(e){
if(isShowingSidebar() && main.contains(e.target)){
e.preventDefault();
hideSidebar();
}
}, true);