UNPKG

@deephaven/golden-layout

Version:

A multi-screen javascript Layout manager

100 lines (99 loc) 5.21 kB
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } 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 AbstractContentItem, { isComponent } from "./AbstractContentItem.js"; import RowOrColumn from "./RowOrColumn.js"; export default class Root extends AbstractContentItem { constructor(layoutManager, config, containerElement) { super(layoutManager, _objectSpread(_objectSpread({}, config), {}, { type: 'root' }), null, $('<div class="lm_goldenlayout lm_item lm_root"></div>')); _defineProperty(this, "childElementContainer", void 0); _defineProperty(this, "_containerElement", void 0); this.isRoot = true; this.type = 'root'; this.childElementContainer = this.element; this._containerElement = containerElement; this._containerElement.append(this.element); } addChild(contentItem, index) { if (this.contentItems.length > 0) { throw new Error('Root node can only have a single child'); } contentItem = this.layoutManager._$normalizeContentItem(contentItem, this); this.childElementContainer.append(contentItem.element); super.addChild(contentItem, index); this.callDownwards('setSize'); this.emitBubblingEvent('stateChanged'); } setSize(width, height) { var _this$_containerEleme, _this$_containerEleme2; width = typeof width === 'undefined' ? (_this$_containerEleme = this._containerElement.width()) !== null && _this$_containerEleme !== void 0 ? _this$_containerEleme : 0 : width; height = typeof height === 'undefined' ? (_this$_containerEleme2 = this._containerElement.height()) !== null && _this$_containerEleme2 !== void 0 ? _this$_containerEleme2 : 0 : height; this.element.width(width); this.element.height(height); /* * Root can be empty */ if (this.contentItems[0]) { this.contentItems[0].element.width(width); this.contentItems[0].element.height(height); } } _$getArea() { var area = super._$getArea(); if (area == null) { throw new Error('Unable to get root area'); } return area; } _$highlightDropZone(x, y, area) { this.layoutManager.tabDropPlaceholder.remove(); super._$highlightDropZone(x, y, area); } _$onDrop(contentItem, area) { var stack; if (isComponent(contentItem)) { stack = this.layoutManager.createContentItem({ type: 'stack', header: contentItem.config.header || {} }, this); stack._$init(); stack.addChild(contentItem); contentItem = stack; } if (!this.contentItems.length) { this.addChild(contentItem); } else { var { side } = area; var type = side === 'left' || side === 'right' ? 'row' : 'column'; // Should new root be a row or column var dimension = side === 'left' || side === 'right' ? 'width' : 'height'; var insertBefore = side === 'left' || side === 'top'; var column = this.contentItems[0]; if (!(column instanceof RowOrColumn) || column.type != type) { var rowOrColumn = this.layoutManager.createContentItem({ type: type }, this); this.replaceChild(column, rowOrColumn); rowOrColumn.addChild(contentItem, insertBefore ? 0 : undefined, true); rowOrColumn.addChild(column, insertBefore ? undefined : 0, true); column.config[dimension] = 50; contentItem.config[dimension] = 50; rowOrColumn.callDownwards('setSize'); } else { var _sibling$config$dimen; var sibling = column.contentItems[insertBefore ? 0 : column.contentItems.length - 1]; column.addChild(contentItem, insertBefore ? 0 : undefined, true); sibling.config[dimension] = ((_sibling$config$dimen = sibling.config[dimension]) !== null && _sibling$config$dimen !== void 0 ? _sibling$config$dimen : 0) * 0.5; contentItem.config[dimension] = sibling.config[dimension]; column.callDownwards('setSize'); } } } } //# sourceMappingURL=Root.js.map