2017-08-29 13:56:54 +02:00
|
|
|
export default class List {
|
2017-10-10 13:56:36 +02:00
|
|
|
constructor(instance, element, classNames) {
|
2017-08-29 13:56:54 +02:00
|
|
|
this.instance = instance;
|
|
|
|
this.element = element;
|
2017-10-10 13:56:36 +02:00
|
|
|
this.classNames = classNames;
|
2017-08-29 13:56:54 +02:00
|
|
|
this.scrollPos = this.element.scrollTop;
|
|
|
|
this.height = this.element.offsetHeight;
|
|
|
|
this.hasChildren = !!this.element.children;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Clear List contents
|
|
|
|
*/
|
|
|
|
clear() {
|
|
|
|
this.element.innerHTML = '';
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Scroll to passed position on Y axis
|
|
|
|
*/
|
|
|
|
scrollTo(scrollPos) {
|
|
|
|
this.element.scrollTop = scrollPos;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Append node to element
|
|
|
|
*/
|
|
|
|
append(node) {
|
|
|
|
this.element.appendChild(node);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Find element that matches passed selector
|
|
|
|
* @return {HTMLElement}
|
|
|
|
*/
|
|
|
|
getChild(selector) {
|
|
|
|
return this.element.querySelector(selector);
|
|
|
|
}
|
|
|
|
}
|