UNPKG

@deephaven/golden-layout

Version:

A multi-screen javascript Layout manager

52 lines (50 loc) 2.28 kB
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; } function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } import $ from 'jquery'; import { DragListener } from "../utils/index.js"; import DragProxy from "./DragProxy.js"; /** * Allows for any DOM item to create a component on drag * start tobe dragged into the Layout * * @param element * @param itemConfig the configuration for the contentItem that will be created * @param layoutManager */ export default class DragSource { constructor(element, itemConfig, layoutManager) { _defineProperty(this, "_element", void 0); _defineProperty(this, "_itemConfig", void 0); _defineProperty(this, "_layoutManager", void 0); _defineProperty(this, "_dragListener", void 0); this._element = element; this._itemConfig = itemConfig; this._layoutManager = layoutManager; this._dragListener = this._createDragListener(); } /** * Called initially and after every drag */ _createDragListener() { this._dragListener = new DragListener(this._element, true); this._dragListener.on('dragStart', this._onDragStart, this); this._dragListener.on('dragStop', this._createDragListener, this); return this._dragListener; } /** * Callback for the DragListener's dragStart event * * @param x the x position of the mouse on dragStart * @param y the x position of the mouse on dragStart */ _onDragStart(x, y) { var itemConfig = this._itemConfig; if (typeof itemConfig === 'function') { itemConfig = itemConfig(); } var contentItem = this._layoutManager._$normalizeContentItem($.extend(true, {}, itemConfig)), dragProxy = new DragProxy(x, y, this._dragListener, this._layoutManager, contentItem, null); } } //# sourceMappingURL=DragSource.js.map