text: import AbstractEvent from 'shared/AbstractEvent';
  
  /**
   * Base sensor event
   * @class SensorEvent
   * @module SensorEvent
   * @extends AbstractEvent
   */
  export class SensorEvent extends AbstractEvent {
    /**
     * Original browser event that triggered a sensor
     * @property originalEvent
     * @type {Event}
     * @readonly
     */
    get originalEvent() {
      return this.data.originalEvent;
    }
  
    /**
     * Normalized clientX for both touch and mouse events
     * @property clientX
     * @type {Number}
     * @readonly
     */
    get clientX() {
      return this.data.clientX;
    }
  
    /**
     * Normalized clientY for both touch and mouse events
     * @property clientY
     * @type {Number}
     * @readonly
     */
    get clientY() {
      return this.data.clientY;
    }
  
    /**
     * Normalized target for both touch and mouse events
     * Returns the element that is behind cursor or touch pointer
     * @property target
     * @type {HTMLElement}
     * @readonly
     */
    get target() {
      return this.data.target;
    }
  
    /**
     * Container that initiated the sensor
     * @property container
     * @type {HTMLElement}
     * @readonly
     */
    get container() {
      return this.data.container;
    }
  
    /**
     * Draggables original source element
     * @property originalSource
     * @type {HTMLElement}
     * @readonly
     */
    get originalSource() {
      return this.data.originalSource;
    }
  
    /**
     * Trackpad pressure
     * @property pressure
     * @type {Number}
     * @readonly
     */
    get pressure() {
      return this.data.pressure;
    }
  }
  
  /**
   * Drag start sensor event
   * @class DragStartSensorEvent
   * @module DragStartSensorEvent
   * @extends SensorEvent
   */
  export class DragStartSensorEvent extends SensorEvent {
    static type = 'drag:start';
  }
  
  /**
   * Drag move sensor event
   * @class DragMoveSensorEvent
   * @module DragMoveSensorEvent
   * @extends SensorEvent
   */
  export class DragMoveSensorEvent extends SensorEvent {
    static type = 'drag:move';
  }
  
  /**
   * Drag stop sensor event
   * @class DragStopSensorEvent
   * @module DragStopSensorEvent
   * @extends SensorEvent
   */
  export class DragStopSensorEvent extends SensorEvent {
    static type = 'drag:stop';
  }
  
  /**
   * Drag pressure sensor event
   * @class DragPressureSensorEvent
   * @module DragPressureSensorEvent
   * @extends SensorEvent
   */
  export class DragPressureSensorEvent extends SensorEvent {
    static type = 'drag:pressure';
  }
  