]> BookStack Code Mirror - bookstack/blob - resources/js/components/chapter-contents.js
Updated a batch of JS components
[bookstack] / resources / js / components / chapter-contents.js
1 import {slideUp, slideDown} from "../services/animations";
2 import {Component} from "./component";
3
4 export class ChapterContents extends Component {
5
6     setup() {
7         this.list = this.$refs.list;
8         this.toggle = this.$refs.toggle;
9
10         this.isOpen = this.toggle.classList.contains('open');
11         this.toggle.addEventListener('click', this.click.bind(this));
12     }
13
14     open() {
15         this.toggle.classList.add('open');
16         this.toggle.setAttribute('aria-expanded', 'true');
17         slideDown(this.list, 180);
18         this.isOpen = true;
19     }
20
21     close() {
22         this.toggle.classList.remove('open');
23         this.toggle.setAttribute('aria-expanded', 'false');
24         slideUp(this.list, 180);
25         this.isOpen = false;
26     }
27
28     click(event) {
29         event.preventDefault();
30         this.isOpen ?  this.close() : this.open();
31     }
32 }