mirror of
https://github.com/Shopify/draggable.git
synced 2025-12-08 20:15:56 +00:00
164 lines
2.9 KiB
JavaScript
164 lines
2.9 KiB
JavaScript
import AbstractEvent from 'shared/AbstractEvent';
|
|
|
|
/**
|
|
* Base mirror event
|
|
* @class MirrorEvent
|
|
* @module MirrorEvent
|
|
* @extends AbstractEvent
|
|
*/
|
|
export class MirrorEvent extends AbstractEvent {
|
|
/**
|
|
* Draggables source element
|
|
* @property source
|
|
* @type {HTMLElement}
|
|
* @readonly
|
|
*/
|
|
get source() {
|
|
return this.data.source;
|
|
}
|
|
|
|
/**
|
|
* Draggables original source element
|
|
* @property originalSource
|
|
* @type {HTMLElement}
|
|
* @readonly
|
|
*/
|
|
get originalSource() {
|
|
return this.data.originalSource;
|
|
}
|
|
|
|
/**
|
|
* Draggables source container element
|
|
* @property sourceContainer
|
|
* @type {HTMLElement}
|
|
* @readonly
|
|
*/
|
|
get sourceContainer() {
|
|
return this.data.sourceContainer;
|
|
}
|
|
|
|
/**
|
|
* Sensor event
|
|
* @property sensorEvent
|
|
* @type {SensorEvent}
|
|
* @readonly
|
|
*/
|
|
get sensorEvent() {
|
|
return this.data.sensorEvent;
|
|
}
|
|
|
|
/**
|
|
* Original event that triggered sensor event
|
|
* @property originalEvent
|
|
* @type {Event}
|
|
* @readonly
|
|
*/
|
|
get originalEvent() {
|
|
if (this.sensorEvent) {
|
|
return this.sensorEvent.originalEvent;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Checks if mirror has been created
|
|
* @return {Boolean}
|
|
*/
|
|
hasMirror() {
|
|
return Boolean(this.mirror);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Mirror create event
|
|
* @class MirrorCreateEvent
|
|
* @module MirrorCreateEvent
|
|
* @extends MirrorEvent
|
|
*/
|
|
export class MirrorCreateEvent extends MirrorEvent {
|
|
static type = 'mirror:create';
|
|
}
|
|
|
|
/**
|
|
* Mirror created event
|
|
* @class MirrorCreatedEvent
|
|
* @module MirrorCreatedEvent
|
|
* @extends MirrorEvent
|
|
*/
|
|
export class MirrorCreatedEvent extends MirrorEvent {
|
|
static type = 'mirror:created';
|
|
|
|
/**
|
|
* Draggables mirror element
|
|
* @property mirror
|
|
* @type {HTMLElement}
|
|
* @readonly
|
|
*/
|
|
get mirror() {
|
|
return this.data.mirror;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Mirror attached event
|
|
* @class MirrorAttachedEvent
|
|
* @module MirrorAttachedEvent
|
|
* @extends MirrorEvent
|
|
*/
|
|
export class MirrorAttachedEvent extends MirrorEvent {
|
|
static type = 'mirror:attached';
|
|
|
|
/**
|
|
* Draggables mirror element
|
|
* @property mirror
|
|
* @type {HTMLElement}
|
|
* @readonly
|
|
*/
|
|
get mirror() {
|
|
return this.data.mirror;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Mirror move event
|
|
* @class MirrorMoveEvent
|
|
* @module MirrorMoveEvent
|
|
* @extends MirrorEvent
|
|
*/
|
|
export class MirrorMoveEvent extends MirrorEvent {
|
|
static type = 'mirror:move';
|
|
static cancelable = true;
|
|
|
|
/**
|
|
* Draggables mirror element
|
|
* @property mirror
|
|
* @type {HTMLElement}
|
|
* @readonly
|
|
*/
|
|
get mirror() {
|
|
return this.data.mirror;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Mirror destroy event
|
|
* @class MirrorDestroyEvent
|
|
* @module MirrorDestroyEvent
|
|
* @extends MirrorEvent
|
|
*/
|
|
export class MirrorDestroyEvent extends MirrorEvent {
|
|
static type = 'mirror:destroy';
|
|
static cancelable = true;
|
|
|
|
/**
|
|
* Draggables mirror element
|
|
* @property mirror
|
|
* @type {HTMLElement}
|
|
* @readonly
|
|
*/
|
|
get mirror() {
|
|
return this.data.mirror;
|
|
}
|
|
}
|