sidebar.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. define([], function () {
  2. return function (el) {
  3. var self = this
  4. var sidebar = document.createElement("div")
  5. sidebar.classList.add("sidebar")
  6. el.appendChild(sidebar)
  7. var button = document.createElement("button")
  8. sidebar.appendChild(button)
  9. button.classList.add("sidebarhandle")
  10. button.onclick = function () {
  11. sidebar.classList.toggle("hidden")
  12. }
  13. var container = document.createElement("div")
  14. container.classList.add("container")
  15. sidebar.appendChild(container)
  16. self.getWidth = function () {
  17. if (sidebar.classList.contains("hidden"))
  18. return 0
  19. var small = window.matchMedia("(max-width: 630pt)")
  20. return small.matches ? 0 : sidebar.offsetWidth
  21. }
  22. self.add = function (d) {
  23. d.render(container)
  24. }
  25. self.ensureVisible = function () {
  26. sidebar.classList.remove("hidden")
  27. }
  28. self.hide = function () {
  29. container.classList.add("hidden")
  30. }
  31. self.reveal = function () {
  32. container.classList.remove("hidden")
  33. }
  34. self.container = sidebar
  35. return self
  36. }
  37. })