@myorders/ember-ui
Version:
Myorders UI provides all the interface components, helpers, services and utilities for building a Myorders extension into the Console.
65 lines (54 loc) • 1.45 kB
JavaScript
import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';
import { action, computed } from '@ember/object';
export default class ToggleComponent extends Component {
/**
* The active color of the toggle
*
* @var {Boolean}
*/
isToggled = false;
/**
* The active color of the toggle
*
* @var {String}
*/
activeColor = 'green';
/**
* The active color class.
* Defaults to `bg-green-400` but could also be:
* `bg-organge-400` `bg-yellow-400` `bg-red-400` `bg-blue-400`
*
* @var {String}
*/
get activeColorClass() {
return `bg-${this.activeColor}-400`;
}
/**
* Creates an instance of ToggleComponent.
*
* @memberof ToggleComponent
*/
constructor() {
super(...arguments);
this.isToggled = this.args.isToggled === true;
if (typeof this.args.activeColor === 'string' && this.args.activeColor.length) {
this.activeColor = this.args.activeColor;
}
}
/**
* Event for on/of toggle
*
* @void
*/
toggle(isToggled) {
const { disabled, onToggle } = this.args;
if (disabled) {
return;
}
this.isToggled = !isToggled;
if (typeof onToggle === 'function') {
onToggle(this.isToggled);
}
}
}