Only `emit` seems used. However, you should use also `setListeners` – to set the listeners given by the options – and `off` to clean the object in the `dispose` method.

To be more clear, the developer should be able to do:
```js
let sidebar = Sidebar({
    icon: "./mysidebar.png",
    title: "My Sidebar",
    url: "./mysidebar.html",
    onShow: function() { /* do something on show */ },
    onHide: function() { /* do something on hide */ }
});