@fleetbase/ember-ui
Version:
Fleetbase UI provides all the interface components, helpers, services and utilities for building a Fleetbase extension into the Console.
51 lines (42 loc) • 1.34 kB
JavaScript
import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';
import { action } from '@ember/object';
import { Draggable } from '@fullcalendar/interaction';
export default class DraggableFullcalendarEventComponent extends Component {
draggable;
eventData = {};
disabled = false;
constructor(owner, { eventData = {}, disabled = false }) {
super(...arguments);
this.eventData = eventData;
this.disabled = disabled;
}
makeDraggable(element) {
this.destroyDraggable();
this.ready(element);
if (this.disabled) {
return;
}
this.draggable = new Draggable(element);
this.dragReady(this.draggable);
}
argsChanged(element, [disabled = false]) {
this.disabled = disabled;
this.makeDraggable(element);
}
ready() {
if (typeof this.args.onReady === 'function') {
this.args.onReady(...arguments);
}
}
dragReady() {
if (typeof this.args.onDragReady === 'function') {
this.args.onDragReady(...arguments);
}
}
destroyDraggable() {
if (this.draggable && typeof this.draggable.destroy === 'function') {
this.draggable.destroy();
}
}
}