@deephaven/golden-layout
Version:
A multi-screen javascript Layout manager
49 lines • 2.41 kB
JavaScript
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";
export default class Splitter {
constructor(isVertical, size, grabSize) {
_defineProperty(this, "_isVertical", void 0);
_defineProperty(this, "_size", void 0);
_defineProperty(this, "_grabSize", void 0);
_defineProperty(this, "_dragListener", void 0);
_defineProperty(this, "element", void 0);
this._isVertical = isVertical;
this._size = size;
this._grabSize = grabSize < size ? size : grabSize;
this.element = this._createElement();
this._dragListener = new DragListener(this.element);
}
on(event, callback, context) {
var _this$_dragListener;
(_this$_dragListener = this._dragListener) === null || _this$_dragListener === void 0 || _this$_dragListener.on(event, callback, context);
}
_$destroy() {
var _this$_dragListener2;
(_this$_dragListener2 = this._dragListener) === null || _this$_dragListener2 === void 0 || _this$_dragListener2.destroy();
this._dragListener = null;
this.element.remove();
}
_createElement() {
var dragHandle = $('<div class="lm_drag_handle"></div>');
var element = $('<div class="lm_splitter"></div>');
element.append(dragHandle);
var handleExcessSize = this._grabSize - this._size;
var handleExcessPos = handleExcessSize / 2;
if (this._isVertical) {
dragHandle.css('top', -handleExcessPos);
dragHandle.css('height', this._size + handleExcessSize);
element.addClass('lm_vertical');
element['height'](this._size);
} else {
dragHandle.css('left', -handleExcessPos);
dragHandle.css('width', this._size + handleExcessSize);
element.addClass('lm_horizontal');
element['width'](this._size);
}
return element;
}
}
//# sourceMappingURL=Splitter.js.map