salix/client/core/src/spinner/index.js

59 lines
1.3 KiB
JavaScript
Raw Normal View History

2017-02-21 10:36:43 +00:00
import {module} from '../module';
import Component from '../lib/component';
2017-02-21 12:06:45 +00:00
import './style.css';
2017-02-21 10:36:43 +00:00
/**
* A spinner to inform the user about loading process.
*/
export default class Spinner extends Component {
constructor($element, $scope) {
super($element);
this._enable = false;
this.spinner = $element[0].firstChild;
componentHandler.upgradeElement(this.spinner);
}
/**
* Enables/disables the spinner.
*
* @param {Boolean} %true to enable, %false to disable
*/
set enable(value) {
if (value)
this.start();
else
this.stop();
}
/**
* Returns the current spinner state.
*
* @return {Boolean} %true if it's enabled, %false otherwise
*/
get enable() {
return this._enable;
}
/**
* Activates the spinner.
*/
start() {
this.spinner.MaterialSpinner.start();
this._enable = true;
}
/**
* Deactivates the spinner.
*/
stop() {
this.spinner.MaterialSpinner.stop();
this._enable = false;
}
}
Spinner.$inject = ['$element', '$scope'];
export const component = {
template: require('./index.html'),
bindings: {
enable: '='
},
controller: Spinner
};
module.component('vnSpinner', component);