sidebar.js 1.1 KB

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