aurelia-materialize-bridge
Version:
Aurelia interface to http://materializecss.com/
71 lines (55 loc) • 1.34 kB
text/typescript
import * as au from "../aurelia";
.customElement("md-slider")
.autoinject
export class MdSlider {
constructor(private element: Element) {
this.log = au.getLogger("md-slider");
}
log: au.Logger;
.ato.bindable.booleanMd({ defaultBindingMode: au.bindingMode.oneTime })
fillContainer: boolean = false;
.ato.bindable.numberMd({ defaultBindingMode: au.bindingMode.oneTime })
height: number;
.ato.bindable.booleanMd
indicators: boolean;
indicatorsChanged() {
this.refresh();
}
.ato.bindable.numberMd({ defaultBindingMode: au.bindingMode.oneTime })
interval: number;
.ato.bindable.numberMd({ defaultBindingMode: au.bindingMode.oneTime })
duration: number;
instance: M.Slider;
attached() {
if (this.fillContainer) {
this.element.classList.add("fullscreen");
}
this.refresh();
}
detached() {
this.instance.destroy();
}
pause() {
this.instance.pause();
}
start() {
this.instance.start();
}
next() {
this.instance.next();
}
prev() {
this.instance.prev();
}
refresh() {
let options: M.SliderOptions = {
indicators: this.indicators,
height: this.height,
duration: this.duration,
interval: this.interval
};
this.log.debug("refreshing slider, params:", options);
au.cleanOptions(options);
this.instance = new M.Slider(this.element, options);
}
}