@deephaven/golden-layout 1.22.1 → 1.22.2-alpha-pivot-builder.0730ba6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/items/AbstractContentItem.js +10 -1
- package/dist/items/AbstractContentItem.js.map +1 -1
- package/dist/items/Component.js +9 -1
- package/dist/items/Component.js.map +1 -1
- package/dist/items/Root.js +1 -3
- package/dist/items/Root.js.map +1 -1
- package/dist/items/Stack.js +10 -1
- package/dist/items/Stack.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
4
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
1
7
|
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; }
|
|
2
8
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
3
9
|
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); }
|
|
@@ -501,7 +507,10 @@ export default class AbstractContentItem extends EventEmitter {
|
|
|
501
507
|
* @returns extended config
|
|
502
508
|
*/
|
|
503
509
|
_extendItemNode(config) {
|
|
504
|
-
for (var
|
|
510
|
+
for (var _ref3 of Object.entries(itemDefaultConfig)) {
|
|
511
|
+
var _ref2 = _slicedToArray(_ref3, 2);
|
|
512
|
+
var key = _ref2[0];
|
|
513
|
+
var value = _ref2[1];
|
|
505
514
|
// This just appeases TS
|
|
506
515
|
var k = key;
|
|
507
516
|
if (config[k] === undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractContentItem.js","names":["animFrame","BubblingEvent","EventEmitter","ConfigurationError","itemDefaultConfig","isStack","item","isComponent","isRoot","AbstractContentItem","constructor","layoutManager","config","parent","element","_defineProperty","_extendItemNode","type","contentItems","_pendingEventPropagations","_throttledEvents","on","ALL_EVENT","_propagateEvent","content","_createContentItems","callDownwards","functionName","functionArguments","arguments","length","undefined","bottomUp","skipSelf","apply","i","removeChild","contentItem","_this$config$content","keepChild","index","indexOf","Error","_$destroy","splice","isClosable","_this$parent","addChild","_$normalizeContentItem","isInitialised","_$init","replaceChild","oldChild","newChild","_$destroyOldChild","parentNode","header","tabs","setContentItem","remove","_this$parent2","popout","browserPopout","createPopout","emitBubblingEvent","toggleMaximise","e","preventDefault","isMaximised","_$minimiseItem","_$maximiseItem","select","selectedItem","selectItem","addClass","deselect","removeClass","setTitle","title","emit","hasId","id","Array","addId","push","removeId","getItemsByFilter","filter","result","next","getItemsById","getItemsByType","_$getItemsByProperty","getComponentsByName","componentName","components","instances","instance","key","value","_$setParent","_$highlightDropZone","x","y","area","_this$layoutManager$d","dropTargetIndicator","highlightArea","_$onDrop","_$hide","_callOnActiveComponents","hide","updateSize","_$show","show","methodName","stacks","activeContentItem","getActiveContentItem","container","_$getArea","_element$offset","_element$width","_element$height","offset","left","top","width","height","x1","y1","x2","y2","surface","side","setSize","_this$childElementCon","childElementContainer","append","name","event","oContentItem","createContentItem","Object","entries","k","isPropagationStopped","_scheduleEventPropagationToLayoutManager","origin","_propagateEventToLayoutManager","bind"],"sources":["../../src/items/AbstractContentItem.ts"],"sourcesContent":["import { animFrame, BubblingEvent, EventEmitter } from '../utils';\nimport { ConfigurationError } from '../errors';\nimport { itemDefaultConfig } from '../config';\nimport type { ItemConfig } from '../config';\nimport type LayoutManager from '../LayoutManager';\nimport type Tab from '../controls/Tab';\nimport type Stack from './Stack';\nimport type Component from './Component';\nimport type Root from './Root';\n\nexport function isStack(item: AbstractContentItem): item is Stack {\n return item.isStack;\n}\n\nexport function isComponent(item: AbstractContentItem): item is Component {\n return item.isComponent;\n}\n\nexport function isRoot(item: AbstractContentItem): item is Root {\n return item.isRoot;\n}\n\nexport type ItemArea<C = AbstractContentItem> = {\n x1: number;\n x2: number;\n y1: number;\n y2: number;\n surface: number;\n side: 'left' | 'right' | 'top' | 'bottom' | '';\n contentItem: C;\n};\n\n/**\n * This is the baseclass that all content items inherit from.\n * Most methods provide a subset of what the sub-classes do.\n *\n * It also provides a number of functions for tree traversal\n *\n * @param {lm.LayoutManager} layoutManager\n * @param {item node configuration} config\n * @param {lm.item} parent\n *\n * @event stateChanged\n * @event beforeItemDestroyed\n * @event itemDestroyed\n * @event itemCreated\n * @event componentCreated\n * @event rowCreated\n * @event columnCreated\n * @event stackCreated\n *\n * @constructor\n */\nexport default abstract class AbstractContentItem extends EventEmitter {\n config: ItemConfig;\n type: string;\n contentItems: AbstractContentItem[];\n parent: AbstractContentItem | null;\n layoutManager: LayoutManager;\n element: JQuery<HTMLElement>;\n childElementContainer?: JQuery<HTMLElement>;\n componentName?: string;\n\n isInitialised = false;\n isMaximised = false;\n isRoot = false;\n isRow = false;\n isColumn = false;\n isStack = false;\n isComponent = false;\n\n tab?: Tab;\n\n private _pendingEventPropagations: Record<string, boolean>;\n private _throttledEvents: string[];\n\n constructor(\n layoutManager: LayoutManager,\n config: ItemConfig,\n parent: AbstractContentItem | null,\n element: JQuery<HTMLElement>\n ) {\n super();\n this.element = element;\n\n // Some GL things expect this config to not change\n this.config = this._extendItemNode(config);\n this.type = config.type;\n this.contentItems = [];\n this.parent = parent;\n\n this.layoutManager = layoutManager;\n this._pendingEventPropagations = {};\n this._throttledEvents = ['stateChanged'];\n\n this.on(EventEmitter.ALL_EVENT, this._propagateEvent, this);\n\n if (config.content) {\n this._createContentItems(config);\n }\n }\n\n /**\n * Set the size of the component and its children, called recursively\n *\n * @abstract\n */\n abstract setSize(width?: number, height?: number): void;\n\n /**\n * Calls a method recursively downwards on the tree\n *\n * @param functionName the name of the function to be called\n * @param functionArguments optional arguments that are passed to every function\n * @param bottomUp Call methods from bottom to top, defaults to false\n * @param skipSelf Don't invoke the method on the class that calls it, defaults to false\n */\n callDownwards<N extends 'setSize' | '_$destroy' | '_$init' | '_$show'>(\n functionName: N,\n functionArguments = [] as Parameters<AbstractContentItem[N]>,\n bottomUp = false,\n skipSelf = false\n ) {\n if (bottomUp !== true && skipSelf !== true) {\n this[functionName].apply(this, functionArguments);\n }\n for (let i = 0; i < this.contentItems.length; i++) {\n this.contentItems[i].callDownwards(\n functionName,\n functionArguments,\n bottomUp\n );\n }\n if (bottomUp === true && skipSelf !== true) {\n this[functionName].apply(this, functionArguments);\n }\n }\n\n /**\n * Removes a child node (and its children) from the tree\n *\n * @param contentItem\n */\n removeChild(contentItem: AbstractContentItem, keepChild = false) {\n /*\n * Get the position of the item that's to be removed within all content items this node contains\n */\n const index = this.contentItems.indexOf(contentItem);\n\n /*\n * Make sure the content item to be removed is actually a child of this item\n */\n if (index === -1) {\n throw new Error(\"Can't remove child item. Unknown content item\");\n }\n\n /**\n * Call ._$destroy on the content item. This also calls ._$destroy on all its children\n */\n if (keepChild !== true) {\n this.contentItems[index]._$destroy();\n }\n\n /**\n * Remove the content item from this nodes array of children\n */\n this.contentItems.splice(index, 1);\n\n /**\n * Remove the item from the configuration\n */\n this.config.content?.splice(index, 1);\n\n /**\n * If this node still contains other content items, adjust their size\n */\n if (this.contentItems.length > 0) {\n this.callDownwards('setSize');\n\n /**\n * If this was the last content item, remove this node as well\n */\n } else if (this.type !== 'root' && this.config.isClosable) {\n this.parent?.removeChild(this);\n }\n }\n\n /**\n * Sets up the tree structure for the newly added child\n * The responsibility for the actual DOM manipulations lies\n * with the concrete item\n *\n * @param contentItem\n * @param index If omitted item will be appended\n */\n addChild(contentItem: AbstractContentItem | ItemConfig, index?: number) {\n contentItem = this.layoutManager._$normalizeContentItem(contentItem, this);\n if (index === undefined) {\n index = this.contentItems.length;\n }\n\n this.contentItems.splice(index, 0, contentItem);\n\n if (this.config.content === undefined) {\n this.config.content = [];\n }\n\n this.config.content.splice(index, 0, contentItem.config);\n contentItem.parent = this;\n\n if (\n contentItem.parent.isInitialised === true &&\n contentItem.isInitialised === false\n ) {\n contentItem._$init();\n }\n }\n\n /**\n * Replaces oldChild with newChild. This used to use jQuery.replaceWith... which for\n * some reason removes all event listeners, so isn't really an option.\n *\n * @param oldChild\n * @param newChild\n */\n replaceChild(\n oldChild: AbstractContentItem,\n newChild: AbstractContentItem | ItemConfig,\n _$destroyOldChild = false\n ) {\n newChild = this.layoutManager._$normalizeContentItem(newChild);\n\n const index = this.contentItems.indexOf(oldChild);\n const parentNode = oldChild.element[0].parentNode;\n\n if (index === -1) {\n throw new Error(\"Can't replace child. oldChild is not child of this\");\n }\n\n parentNode?.replaceChild(newChild.element[0], oldChild.element[0]);\n\n /*\n * Optionally destroy the old content item\n */\n if (_$destroyOldChild === true) {\n oldChild.parent = null;\n oldChild._$destroy();\n }\n\n /*\n * Wire the new contentItem into the tree\n */\n this.contentItems[index] = newChild;\n newChild.parent = this;\n\n /*\n * Update tab reference - use setContentItem to properly transfer event listeners\n */\n if (isStack(this)) {\n this.header.tabs[index].setContentItem(newChild);\n }\n\n //TODO This doesn't update the config... refactor to leave item nodes untouched after creation\n if (\n newChild.parent.isInitialised === true &&\n newChild.isInitialised === false\n ) {\n newChild._$init();\n }\n\n this.callDownwards('setSize');\n }\n\n /**\n * Convenience method.\n * Shorthand for this.parent.removeChild( this )\n */\n remove() {\n this.parent?.removeChild(this);\n }\n\n /**\n * Removes the component from the layout and creates a new\n * browser window with the component and its children inside\n */\n popout() {\n var browserPopout = this.layoutManager.createPopout(this);\n this.emitBubblingEvent('stateChanged');\n return browserPopout;\n }\n\n /**\n * Maximises the Item or minimises it if it is already maximised\n */\n toggleMaximise(e?: Event) {\n e && e.preventDefault();\n if (this.isMaximised === true) {\n this.layoutManager._$minimiseItem(this);\n } else {\n this.layoutManager._$maximiseItem(this);\n }\n\n this.isMaximised = !this.isMaximised;\n this.emitBubblingEvent('stateChanged');\n }\n\n /**\n * Selects the item if it is not already selected\n */\n select() {\n if (this.layoutManager.selectedItem !== this) {\n this.layoutManager.selectItem(this, true);\n this.element.addClass('lm_selected');\n }\n }\n\n /**\n * De-selects the item if it is selected\n */\n deselect() {\n if (this.layoutManager.selectedItem === this) {\n this.layoutManager.selectedItem = null;\n this.element.removeClass('lm_selected');\n }\n }\n\n /**\n * Set this component's title\n * @param title\n */\n setTitle(title: string) {\n this.config.title = title;\n this.emit('titleChanged', title);\n this.emitBubblingEvent('stateChanged');\n }\n\n /**\n * Checks whether a provided id is present\n * @param id\n * @returns isPresent\n */\n hasId(id: string) {\n if (!this.config.id) {\n return false;\n } else if (typeof this.config.id === 'string') {\n return this.config.id === id;\n } else if (this.config.id instanceof Array) {\n return this.config.id.indexOf(id) !== -1;\n }\n }\n\n /**\n * Adds an id. Adds it as a string if the component doesn't\n * have an id yet or creates/uses an array\n * @param id\n */\n addId(id: string) {\n if (this.hasId(id)) {\n return;\n }\n\n if (!this.config.id) {\n this.config.id = id;\n } else if (typeof this.config.id === 'string') {\n this.config.id = [this.config.id, id];\n } else if (this.config.id instanceof Array) {\n this.config.id.push(id);\n }\n }\n\n /**\n * Removes an existing id. Throws an error\n * if the id is not present\n * @param id\n */\n removeId(id: string) {\n if (!this.hasId(id)) {\n throw new Error('Id not found');\n }\n\n if (typeof this.config.id === 'string') {\n delete this.config.id;\n } else if (this.config.id instanceof Array) {\n var index = this.config.id.indexOf(id);\n this.config.id.splice(index, 1);\n }\n }\n\n /****************************************\n * SELECTOR\n ****************************************/\n getItemsByFilter(filter: (item: AbstractContentItem) => boolean) {\n const result: AbstractContentItem[] = [];\n const next = function (contentItem: AbstractContentItem) {\n for (let i = 0; i < contentItem.contentItems.length; i++) {\n if (filter(contentItem.contentItems[i]) === true) {\n result.push(contentItem.contentItems[i]);\n }\n\n next(contentItem.contentItems[i]);\n }\n };\n\n next(this);\n return result;\n }\n\n getItemsById(id: string) {\n return this.getItemsByFilter(function (item) {\n if (item.config.id instanceof Array) {\n return item.config.id.indexOf(id) !== -1;\n } else {\n return item.config.id === id;\n }\n });\n }\n\n getItemsByType(type: string) {\n return this._$getItemsByProperty('type', type);\n }\n\n getComponentsByName(componentName: string) {\n const components = this._$getItemsByProperty(\n 'componentName',\n componentName\n ) as Component[];\n const instances: unknown[] = [];\n\n for (let i = 0; i < components.length; i++) {\n instances.push(components[i].instance);\n }\n\n return instances;\n }\n\n /****************************************\n * PACKAGE PRIVATE\n ****************************************/\n _$getItemsByProperty(key: keyof AbstractContentItem, value: string) {\n return this.getItemsByFilter(function (item) {\n return item[key] === value;\n });\n }\n\n _$setParent(parent: AbstractContentItem | null) {\n this.parent = parent;\n }\n\n _$highlightDropZone(x: number, y: number, area: ItemArea) {\n this.layoutManager.dropTargetIndicator?.highlightArea(area);\n }\n\n _$onDrop(contentItem: AbstractContentItem, area: ItemArea) {\n this.addChild(contentItem);\n }\n\n _$hide() {\n this._callOnActiveComponents('hide');\n this.element.hide();\n this.layoutManager.updateSize();\n }\n\n _$show() {\n this._callOnActiveComponents('show');\n this.element.show();\n this.layoutManager.updateSize();\n }\n\n _callOnActiveComponents(methodName: 'hide' | 'show') {\n const stacks = this.getItemsByType('stack') as unknown as Stack[];\n let activeContentItem: AbstractContentItem | null = null;\n\n for (let i = 0; i < stacks.length; i++) {\n activeContentItem = stacks[i].getActiveContentItem();\n\n if (activeContentItem && isComponent(activeContentItem)) {\n activeContentItem.container[methodName]();\n }\n }\n }\n\n /**\n * Destroys this item ands its children\n */\n _$destroy() {\n this.emitBubblingEvent('beforeItemDestroyed');\n this.callDownwards('_$destroy', [], true, true);\n this.element.remove();\n this.emitBubblingEvent('itemDestroyed');\n }\n\n /**\n * Returns the area the component currently occupies in the format\n *\n * {\n *\t\tx1: int\n *\t\tx2: int\n *\t\ty1: int\n *\t\ty2: int\n *\t\tcontentItem: contentItem\n * }\n */\n _$getArea(element?: JQuery<HTMLElement>): ItemArea<this> | null {\n element = element || this.element;\n\n const offset = element.offset() ?? { left: 0, top: 0 };\n const width = element.width() ?? 0;\n const height = element.height() ?? 0;\n\n return {\n x1: offset.left,\n y1: offset.top,\n x2: offset.left + width,\n y2: offset.top + height,\n surface: width * height,\n contentItem: this,\n side: '',\n };\n }\n\n /**\n * The tree of content items is created in two steps: First all content items are instantiated,\n * then init is called recursively from top to bottem. This is the basic init function,\n * it can be used, extended or overwritten by the content items\n *\n * Its behaviour depends on the content item\n */\n _$init() {\n this.setSize();\n\n for (let i = 0; i < this.contentItems.length; i++) {\n this.childElementContainer?.append(this.contentItems[i].element);\n }\n\n this.isInitialised = true;\n this.emitBubblingEvent('itemCreated');\n this.emitBubblingEvent(this.type + 'Created');\n }\n\n /**\n * Emit an event that bubbles up the item tree.\n *\n * @param name The name of the event\n */\n emitBubblingEvent(name: string) {\n var event = new BubblingEvent(name, this);\n this.emit(name, event);\n }\n\n /**\n * Private method, creates all content items for this node at initialisation time\n * PLEASE NOTE, please see addChild for adding contentItems add runtime\n * @param {configuration item node} config\n */\n _createContentItems(config: ItemConfig) {\n var oContentItem;\n\n if (!(config.content instanceof Array)) {\n throw new ConfigurationError('content must be an Array', config);\n }\n\n for (let i = 0; i < config.content.length; i++) {\n oContentItem = this.layoutManager.createContentItem(\n config.content[i],\n this\n );\n this.contentItems.push(oContentItem);\n }\n }\n\n /**\n * Extends an item configuration node with default settings\n * @param config\n * @returns extended config\n */\n _extendItemNode<TConfig extends ItemConfig>(config: TConfig) {\n for (let [key, value] of Object.entries(itemDefaultConfig)) {\n // This just appeases TS\n const k = key as keyof TConfig;\n if (config[k] === undefined) {\n config[k] = value;\n }\n }\n\n return config;\n }\n\n /**\n * Called for every event on the item tree. Decides whether the event is a bubbling\n * event and propagates it to its parent\n *\n * @param name the name of the event\n * @param event\n */\n _propagateEvent(name: string, event: BubblingEvent) {\n if (\n event instanceof BubblingEvent &&\n event.isPropagationStopped === false &&\n this.isInitialised === true\n ) {\n /**\n * In some cases (e.g. if an element is created from a DragSource) it\n * doesn't have a parent and is not below root. If that's the case\n * propagate the bubbling event from the top level of the substree directly\n * to the layoutManager\n */\n if (this.isRoot === false && this.parent) {\n this.parent.emit.apply(this.parent, [name, event]);\n } else {\n this._scheduleEventPropagationToLayoutManager(name, event);\n }\n }\n }\n\n /**\n * All raw events bubble up to the root element. Some events that\n * are propagated to - and emitted by - the layoutManager however are\n * only string-based, batched and sanitized to make them more usable\n *\n * @param name the name of the event\n */\n _scheduleEventPropagationToLayoutManager(name: string, event: BubblingEvent) {\n if (this._throttledEvents.indexOf(name) === -1) {\n this.layoutManager.emit(name, event.origin);\n } else {\n if (this._pendingEventPropagations[name] !== true) {\n this._pendingEventPropagations[name] = true;\n animFrame(this._propagateEventToLayoutManager.bind(this, name, event));\n }\n }\n }\n\n /**\n * Callback for events scheduled by _scheduleEventPropagationToLayoutManager\n *\n * @param name the name of the event\n */\n _propagateEventToLayoutManager(name: string, event: BubblingEvent) {\n this._pendingEventPropagations[name] = false;\n this.layoutManager.emit(name, event);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"AbstractContentItem.js","names":["animFrame","BubblingEvent","EventEmitter","ConfigurationError","itemDefaultConfig","isStack","item","isComponent","isRoot","AbstractContentItem","constructor","layoutManager","config","parent","element","_defineProperty","_extendItemNode","type","contentItems","_pendingEventPropagations","_throttledEvents","on","ALL_EVENT","_propagateEvent","content","_createContentItems","callDownwards","functionName","functionArguments","arguments","length","undefined","bottomUp","skipSelf","apply","i","removeChild","contentItem","_this$config$content","keepChild","index","indexOf","Error","_$destroy","splice","isClosable","_this$parent","addChild","_$normalizeContentItem","isInitialised","_$init","replaceChild","oldChild","newChild","_$destroyOldChild","parentNode","header","tabs","setContentItem","remove","_this$parent2","popout","browserPopout","createPopout","emitBubblingEvent","toggleMaximise","e","preventDefault","isMaximised","_$minimiseItem","_$maximiseItem","select","selectedItem","selectItem","addClass","deselect","removeClass","setTitle","title","emit","hasId","id","Array","addId","push","removeId","getItemsByFilter","filter","result","next","getItemsById","getItemsByType","_$getItemsByProperty","getComponentsByName","componentName","components","instances","instance","key","value","_$setParent","_$highlightDropZone","x","y","area","_this$layoutManager$d","dropTargetIndicator","highlightArea","_$onDrop","_$hide","_callOnActiveComponents","hide","updateSize","_$show","show","methodName","stacks","activeContentItem","getActiveContentItem","container","_$getArea","_element$offset","_element$width","_element$height","offset","left","top","width","height","x1","y1","x2","y2","surface","side","setSize","_this$childElementCon","childElementContainer","append","name","event","oContentItem","createContentItem","_ref3","Object","entries","_ref2","_slicedToArray","k","isPropagationStopped","_scheduleEventPropagationToLayoutManager","origin","_propagateEventToLayoutManager","bind"],"sources":["../../src/items/AbstractContentItem.ts"],"sourcesContent":["import { animFrame, BubblingEvent, EventEmitter } from '../utils';\nimport { ConfigurationError } from '../errors';\nimport { itemDefaultConfig } from '../config';\nimport type { ItemConfig } from '../config';\nimport type LayoutManager from '../LayoutManager';\nimport type Tab from '../controls/Tab';\nimport type Stack from './Stack';\nimport type Component from './Component';\nimport type Root from './Root';\n\nexport function isStack(item: AbstractContentItem): item is Stack {\n return item.isStack;\n}\n\nexport function isComponent(item: AbstractContentItem): item is Component {\n return item.isComponent;\n}\n\nexport function isRoot(item: AbstractContentItem): item is Root {\n return item.isRoot;\n}\n\nexport type ItemArea<C = AbstractContentItem> = {\n x1: number;\n x2: number;\n y1: number;\n y2: number;\n surface: number;\n side: 'left' | 'right' | 'top' | 'bottom' | '';\n contentItem: C;\n};\n\n/**\n * This is the baseclass that all content items inherit from.\n * Most methods provide a subset of what the sub-classes do.\n *\n * It also provides a number of functions for tree traversal\n *\n * @param {lm.LayoutManager} layoutManager\n * @param {item node configuration} config\n * @param {lm.item} parent\n *\n * @event stateChanged\n * @event beforeItemDestroyed\n * @event itemDestroyed\n * @event itemCreated\n * @event componentCreated\n * @event rowCreated\n * @event columnCreated\n * @event stackCreated\n *\n * @constructor\n */\nexport default abstract class AbstractContentItem extends EventEmitter {\n config: ItemConfig;\n type: string;\n contentItems: AbstractContentItem[];\n parent: AbstractContentItem | null;\n layoutManager: LayoutManager;\n element: JQuery<HTMLElement>;\n childElementContainer?: JQuery<HTMLElement>;\n componentName?: string;\n\n isInitialised = false;\n isMaximised = false;\n isRoot = false;\n isRow = false;\n isColumn = false;\n isStack = false;\n isComponent = false;\n\n tab?: Tab;\n\n private _pendingEventPropagations: Record<string, boolean>;\n private _throttledEvents: string[];\n\n constructor(\n layoutManager: LayoutManager,\n config: ItemConfig,\n parent: AbstractContentItem | null,\n element: JQuery<HTMLElement>\n ) {\n super();\n this.element = element;\n\n // Some GL things expect this config to not change\n this.config = this._extendItemNode(config);\n this.type = config.type;\n this.contentItems = [];\n this.parent = parent;\n\n this.layoutManager = layoutManager;\n this._pendingEventPropagations = {};\n this._throttledEvents = ['stateChanged'];\n\n this.on(EventEmitter.ALL_EVENT, this._propagateEvent, this);\n\n if (config.content) {\n this._createContentItems(config);\n }\n }\n\n /**\n * Set the size of the component and its children, called recursively\n *\n * @abstract\n */\n abstract setSize(width?: number, height?: number): void;\n\n /**\n * Calls a method recursively downwards on the tree\n *\n * @param functionName the name of the function to be called\n * @param functionArguments optional arguments that are passed to every function\n * @param bottomUp Call methods from bottom to top, defaults to false\n * @param skipSelf Don't invoke the method on the class that calls it, defaults to false\n */\n callDownwards<N extends 'setSize' | '_$destroy' | '_$init' | '_$show'>(\n functionName: N,\n functionArguments = [] as Parameters<AbstractContentItem[N]>,\n bottomUp = false,\n skipSelf = false\n ) {\n if (bottomUp !== true && skipSelf !== true) {\n this[functionName].apply(this, functionArguments);\n }\n for (let i = 0; i < this.contentItems.length; i++) {\n this.contentItems[i].callDownwards(\n functionName,\n functionArguments,\n bottomUp\n );\n }\n if (bottomUp === true && skipSelf !== true) {\n this[functionName].apply(this, functionArguments);\n }\n }\n\n /**\n * Removes a child node (and its children) from the tree\n *\n * @param contentItem\n */\n removeChild(contentItem: AbstractContentItem, keepChild = false) {\n /*\n * Get the position of the item that's to be removed within all content items this node contains\n */\n const index = this.contentItems.indexOf(contentItem);\n\n /*\n * Make sure the content item to be removed is actually a child of this item\n */\n if (index === -1) {\n throw new Error(\"Can't remove child item. Unknown content item\");\n }\n\n /**\n * Call ._$destroy on the content item. This also calls ._$destroy on all its children\n */\n if (keepChild !== true) {\n this.contentItems[index]._$destroy();\n }\n\n /**\n * Remove the content item from this nodes array of children\n */\n this.contentItems.splice(index, 1);\n\n /**\n * Remove the item from the configuration\n */\n this.config.content?.splice(index, 1);\n\n /**\n * If this node still contains other content items, adjust their size\n */\n if (this.contentItems.length > 0) {\n this.callDownwards('setSize');\n\n /**\n * If this was the last content item, remove this node as well\n */\n } else if (this.type !== 'root' && this.config.isClosable) {\n this.parent?.removeChild(this);\n }\n }\n\n /**\n * Sets up the tree structure for the newly added child\n * The responsibility for the actual DOM manipulations lies\n * with the concrete item\n *\n * @param contentItem\n * @param index If omitted item will be appended\n */\n addChild(contentItem: AbstractContentItem | ItemConfig, index?: number) {\n contentItem = this.layoutManager._$normalizeContentItem(contentItem, this);\n if (index === undefined) {\n index = this.contentItems.length;\n }\n\n this.contentItems.splice(index, 0, contentItem);\n\n if (this.config.content === undefined) {\n this.config.content = [];\n }\n\n this.config.content.splice(index, 0, contentItem.config);\n contentItem.parent = this;\n\n if (\n contentItem.parent.isInitialised === true &&\n contentItem.isInitialised === false\n ) {\n contentItem._$init();\n }\n }\n\n /**\n * Replaces oldChild with newChild. This used to use jQuery.replaceWith... which for\n * some reason removes all event listeners, so isn't really an option.\n *\n * @param oldChild\n * @param newChild\n */\n replaceChild(\n oldChild: AbstractContentItem,\n newChild: AbstractContentItem | ItemConfig,\n _$destroyOldChild = false\n ) {\n newChild = this.layoutManager._$normalizeContentItem(newChild);\n\n const index = this.contentItems.indexOf(oldChild);\n const parentNode = oldChild.element[0].parentNode;\n\n if (index === -1) {\n throw new Error(\"Can't replace child. oldChild is not child of this\");\n }\n\n parentNode?.replaceChild(newChild.element[0], oldChild.element[0]);\n\n /*\n * Optionally destroy the old content item\n */\n if (_$destroyOldChild === true) {\n oldChild.parent = null;\n oldChild._$destroy();\n }\n\n /*\n * Wire the new contentItem into the tree\n */\n this.contentItems[index] = newChild;\n newChild.parent = this;\n\n /*\n * Update tab reference - use setContentItem to properly transfer event listeners\n */\n if (isStack(this)) {\n this.header.tabs[index].setContentItem(newChild);\n }\n\n //TODO This doesn't update the config... refactor to leave item nodes untouched after creation\n if (\n newChild.parent.isInitialised === true &&\n newChild.isInitialised === false\n ) {\n newChild._$init();\n }\n\n this.callDownwards('setSize');\n }\n\n /**\n * Convenience method.\n * Shorthand for this.parent.removeChild( this )\n */\n remove() {\n this.parent?.removeChild(this);\n }\n\n /**\n * Removes the component from the layout and creates a new\n * browser window with the component and its children inside\n */\n popout() {\n var browserPopout = this.layoutManager.createPopout(this);\n this.emitBubblingEvent('stateChanged');\n return browserPopout;\n }\n\n /**\n * Maximises the Item or minimises it if it is already maximised\n */\n toggleMaximise(e?: Event) {\n e && e.preventDefault();\n if (this.isMaximised === true) {\n this.layoutManager._$minimiseItem(this);\n } else {\n this.layoutManager._$maximiseItem(this);\n }\n\n this.isMaximised = !this.isMaximised;\n this.emitBubblingEvent('stateChanged');\n }\n\n /**\n * Selects the item if it is not already selected\n */\n select() {\n if (this.layoutManager.selectedItem !== this) {\n this.layoutManager.selectItem(this, true);\n this.element.addClass('lm_selected');\n }\n }\n\n /**\n * De-selects the item if it is selected\n */\n deselect() {\n if (this.layoutManager.selectedItem === this) {\n this.layoutManager.selectedItem = null;\n this.element.removeClass('lm_selected');\n }\n }\n\n /**\n * Set this component's title\n * @param title\n */\n setTitle(title: string) {\n this.config.title = title;\n this.emit('titleChanged', title);\n this.emitBubblingEvent('stateChanged');\n }\n\n /**\n * Checks whether a provided id is present\n * @param id\n * @returns isPresent\n */\n hasId(id: string) {\n if (!this.config.id) {\n return false;\n } else if (typeof this.config.id === 'string') {\n return this.config.id === id;\n } else if (this.config.id instanceof Array) {\n return this.config.id.indexOf(id) !== -1;\n }\n }\n\n /**\n * Adds an id. Adds it as a string if the component doesn't\n * have an id yet or creates/uses an array\n * @param id\n */\n addId(id: string) {\n if (this.hasId(id)) {\n return;\n }\n\n if (!this.config.id) {\n this.config.id = id;\n } else if (typeof this.config.id === 'string') {\n this.config.id = [this.config.id, id];\n } else if (this.config.id instanceof Array) {\n this.config.id.push(id);\n }\n }\n\n /**\n * Removes an existing id. Throws an error\n * if the id is not present\n * @param id\n */\n removeId(id: string) {\n if (!this.hasId(id)) {\n throw new Error('Id not found');\n }\n\n if (typeof this.config.id === 'string') {\n delete this.config.id;\n } else if (this.config.id instanceof Array) {\n var index = this.config.id.indexOf(id);\n this.config.id.splice(index, 1);\n }\n }\n\n /****************************************\n * SELECTOR\n ****************************************/\n getItemsByFilter(filter: (item: AbstractContentItem) => boolean) {\n const result: AbstractContentItem[] = [];\n const next = function (contentItem: AbstractContentItem) {\n for (let i = 0; i < contentItem.contentItems.length; i++) {\n if (filter(contentItem.contentItems[i]) === true) {\n result.push(contentItem.contentItems[i]);\n }\n\n next(contentItem.contentItems[i]);\n }\n };\n\n next(this);\n return result;\n }\n\n getItemsById(id: string) {\n return this.getItemsByFilter(function (item) {\n if (item.config.id instanceof Array) {\n return item.config.id.indexOf(id) !== -1;\n } else {\n return item.config.id === id;\n }\n });\n }\n\n getItemsByType(type: string) {\n return this._$getItemsByProperty('type', type);\n }\n\n getComponentsByName(componentName: string) {\n const components = this._$getItemsByProperty(\n 'componentName',\n componentName\n ) as Component[];\n const instances: unknown[] = [];\n\n for (let i = 0; i < components.length; i++) {\n instances.push(components[i].instance);\n }\n\n return instances;\n }\n\n /****************************************\n * PACKAGE PRIVATE\n ****************************************/\n _$getItemsByProperty(key: keyof AbstractContentItem, value: string) {\n return this.getItemsByFilter(function (item) {\n return item[key] === value;\n });\n }\n\n _$setParent(parent: AbstractContentItem | null) {\n this.parent = parent;\n }\n\n _$highlightDropZone(x: number, y: number, area: ItemArea) {\n this.layoutManager.dropTargetIndicator?.highlightArea(area);\n }\n\n _$onDrop(contentItem: AbstractContentItem, area: ItemArea) {\n this.addChild(contentItem);\n }\n\n _$hide() {\n this._callOnActiveComponents('hide');\n this.element.hide();\n this.layoutManager.updateSize();\n }\n\n _$show() {\n this._callOnActiveComponents('show');\n this.element.show();\n this.layoutManager.updateSize();\n }\n\n _callOnActiveComponents(methodName: 'hide' | 'show') {\n const stacks = this.getItemsByType('stack') as unknown as Stack[];\n let activeContentItem: AbstractContentItem | null = null;\n\n for (let i = 0; i < stacks.length; i++) {\n activeContentItem = stacks[i].getActiveContentItem();\n\n if (activeContentItem && isComponent(activeContentItem)) {\n activeContentItem.container[methodName]();\n }\n }\n }\n\n /**\n * Destroys this item ands its children\n */\n _$destroy() {\n this.emitBubblingEvent('beforeItemDestroyed');\n this.callDownwards('_$destroy', [], true, true);\n this.element.remove();\n this.emitBubblingEvent('itemDestroyed');\n }\n\n /**\n * Returns the area the component currently occupies in the format\n *\n * {\n *\t\tx1: int\n *\t\tx2: int\n *\t\ty1: int\n *\t\ty2: int\n *\t\tcontentItem: contentItem\n * }\n */\n _$getArea(element?: JQuery<HTMLElement>): ItemArea<this> | null {\n element = element || this.element;\n\n const offset = element.offset() ?? { left: 0, top: 0 };\n const width = element.width() ?? 0;\n const height = element.height() ?? 0;\n\n return {\n x1: offset.left,\n y1: offset.top,\n x2: offset.left + width,\n y2: offset.top + height,\n surface: width * height,\n contentItem: this,\n side: '',\n };\n }\n\n /**\n * The tree of content items is created in two steps: First all content items are instantiated,\n * then init is called recursively from top to bottem. This is the basic init function,\n * it can be used, extended or overwritten by the content items\n *\n * Its behaviour depends on the content item\n */\n _$init() {\n this.setSize();\n\n for (let i = 0; i < this.contentItems.length; i++) {\n this.childElementContainer?.append(this.contentItems[i].element);\n }\n\n this.isInitialised = true;\n this.emitBubblingEvent('itemCreated');\n this.emitBubblingEvent(this.type + 'Created');\n }\n\n /**\n * Emit an event that bubbles up the item tree.\n *\n * @param name The name of the event\n */\n emitBubblingEvent(name: string) {\n var event = new BubblingEvent(name, this);\n this.emit(name, event);\n }\n\n /**\n * Private method, creates all content items for this node at initialisation time\n * PLEASE NOTE, please see addChild for adding contentItems add runtime\n * @param {configuration item node} config\n */\n _createContentItems(config: ItemConfig) {\n var oContentItem;\n\n if (!(config.content instanceof Array)) {\n throw new ConfigurationError('content must be an Array', config);\n }\n\n for (let i = 0; i < config.content.length; i++) {\n oContentItem = this.layoutManager.createContentItem(\n config.content[i],\n this\n );\n this.contentItems.push(oContentItem);\n }\n }\n\n /**\n * Extends an item configuration node with default settings\n * @param config\n * @returns extended config\n */\n _extendItemNode<TConfig extends ItemConfig>(config: TConfig) {\n for (let [key, value] of Object.entries(itemDefaultConfig)) {\n // This just appeases TS\n const k = key as keyof TConfig;\n if (config[k] === undefined) {\n config[k] = value;\n }\n }\n\n return config;\n }\n\n /**\n * Called for every event on the item tree. Decides whether the event is a bubbling\n * event and propagates it to its parent\n *\n * @param name the name of the event\n * @param event\n */\n _propagateEvent(name: string, event: BubblingEvent) {\n if (\n event instanceof BubblingEvent &&\n event.isPropagationStopped === false &&\n this.isInitialised === true\n ) {\n /**\n * In some cases (e.g. if an element is created from a DragSource) it\n * doesn't have a parent and is not below root. If that's the case\n * propagate the bubbling event from the top level of the substree directly\n * to the layoutManager\n */\n if (this.isRoot === false && this.parent) {\n this.parent.emit.apply(this.parent, [name, event]);\n } else {\n this._scheduleEventPropagationToLayoutManager(name, event);\n }\n }\n }\n\n /**\n * All raw events bubble up to the root element. Some events that\n * are propagated to - and emitted by - the layoutManager however are\n * only string-based, batched and sanitized to make them more usable\n *\n * @param name the name of the event\n */\n _scheduleEventPropagationToLayoutManager(name: string, event: BubblingEvent) {\n if (this._throttledEvents.indexOf(name) === -1) {\n this.layoutManager.emit(name, event.origin);\n } else {\n if (this._pendingEventPropagations[name] !== true) {\n this._pendingEventPropagations[name] = true;\n animFrame(this._propagateEventToLayoutManager.bind(this, name, event));\n }\n }\n }\n\n /**\n * Callback for events scheduled by _scheduleEventPropagationToLayoutManager\n *\n * @param name the name of the event\n */\n _propagateEventToLayoutManager(name: string, event: BubblingEvent) {\n this._pendingEventPropagations[name] = false;\n this.layoutManager.emit(name, event);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/dist/items/Component.js
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
4
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
1
7
|
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; }
|
|
2
8
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
3
9
|
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); }
|
|
@@ -15,7 +21,9 @@ export default class Component extends AbstractContentItem {
|
|
|
15
21
|
var _layoutManager$config;
|
|
16
22
|
// Extend before super so the AbstractContentItem defualts aren't applied first
|
|
17
23
|
Object.entries((_layoutManager$config = layoutManager.config.settings.defaultComponentConfig) !== null && _layoutManager$config !== void 0 ? _layoutManager$config : {}).forEach(_ref => {
|
|
18
|
-
var
|
|
24
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
25
|
+
k = _ref2[0],
|
|
26
|
+
v = _ref2[1];
|
|
19
27
|
// @ts-ignore
|
|
20
28
|
if (config[k] === undefined) {
|
|
21
29
|
// @ts-ignore
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Component.js","names":["$","AbstractContentItem","ConfigurationError","ItemContainer","Component","constructor","layoutManager","config","parent","_layoutManager$config","Object","entries","settings","defaultComponentConfig","forEach","_ref","k","v","undefined","_defineProperty","ComponentConstructor","getComponent","componentName","getFallbackComponent","componentConfig","extend","componentState","title","isComponent","container","instance","element","_element","close","_this$parent","removeChild","setSize","is","_$setSize","width","height","_$init","prototype","call","emit","_$hide","hide","_$show","forceFocus","show","_config","isFocusOnShow","_contentElement","focus","preventScroll","_$destroy","_$getArea"],"sources":["../../src/items/Component.ts"],"sourcesContent":["import $ from 'jquery';\nimport AbstractContentItem from './AbstractContentItem';\nimport { ConfigurationError } from '../errors';\nimport type LayoutManager from '../LayoutManager';\nimport type { ComponentConfig } from '../config/ItemConfig';\nimport ItemContainer from '../container/ItemContainer';\nimport type { ComponentConstructor } from '../LayoutManager';\n\n/**\n * @param layoutManager\n * @param config\n * @param parent\n */\nexport default class Component extends AbstractContentItem {\n config: ComponentConfig;\n\n componentName: string;\n\n container: ItemContainer;\n\n parent: AbstractContentItem | null;\n\n instance: unknown;\n\n constructor(\n layoutManager: LayoutManager,\n config: ComponentConfig,\n parent: AbstractContentItem | null\n ) {\n // Extend before super so the AbstractContentItem defualts aren't applied first\n Object.entries(\n layoutManager.config.settings.defaultComponentConfig ?? {}\n ).forEach(([k, v]) => {\n // @ts-ignore\n if (config[k] === undefined) {\n // @ts-ignore\n config[k] = v;\n }\n });\n super(layoutManager, config, parent, $());\n this.config = config;\n this.parent = parent;\n\n const ComponentConstructor =\n (layoutManager.getComponent(\n this.config.componentName\n ) as ComponentConstructor) || layoutManager.getFallbackComponent(),\n componentConfig = $.extend(true, {}, this.config.componentState || {});\n\n if (ComponentConstructor == null) {\n throw new ConfigurationError(\n 'Unknown component \"' + this.config.componentName + '\"'\n );\n }\n componentConfig.componentName = this.config.componentName;\n this.componentName = this.config.componentName;\n\n if (this.config.title === '') {\n this.config.title = this.config.componentName;\n }\n\n this.isComponent = true;\n this.container = new ItemContainer(this.config, this, layoutManager);\n this.instance = new ComponentConstructor(this.container, componentConfig);\n this.element = this.container._element;\n }\n\n close() {\n this.parent?.removeChild(this);\n }\n\n setSize() {\n if (this.element.is(':visible')) {\n // Do not update size of hidden components to prevent unwanted reflows\n this.container._$setSize(this.element.width(), this.element.height());\n }\n }\n\n _$init() {\n AbstractContentItem.prototype._$init.call(this);\n this.container.emit('open');\n }\n\n _$hide() {\n this.container.hide();\n AbstractContentItem.prototype._$hide.call(this);\n }\n\n _$show(forceFocus?: boolean) {\n this.container.show();\n if (this.container._config.isFocusOnShow || forceFocus) {\n // focus the shown container element on show\n // preventScroll isn't supported in safari, but also doesn't matter for illumon when 100% window\n this.container._contentElement[0].focus({ preventScroll: true });\n }\n AbstractContentItem.prototype._$show.call(this);\n }\n\n _$destroy() {\n this.container.emit('destroy', this);\n AbstractContentItem.prototype._$destroy.call(this);\n }\n\n /**\n * Dragging onto a component directly is not an option\n *\n * @returns null\n */\n _$getArea() {\n return null;\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Component.js","names":["$","AbstractContentItem","ConfigurationError","ItemContainer","Component","constructor","layoutManager","config","parent","_layoutManager$config","Object","entries","settings","defaultComponentConfig","forEach","_ref","_ref2","_slicedToArray","k","v","undefined","_defineProperty","ComponentConstructor","getComponent","componentName","getFallbackComponent","componentConfig","extend","componentState","title","isComponent","container","instance","element","_element","close","_this$parent","removeChild","setSize","is","_$setSize","width","height","_$init","prototype","call","emit","_$hide","hide","_$show","forceFocus","show","_config","isFocusOnShow","_contentElement","focus","preventScroll","_$destroy","_$getArea"],"sources":["../../src/items/Component.ts"],"sourcesContent":["import $ from 'jquery';\nimport AbstractContentItem from './AbstractContentItem';\nimport { ConfigurationError } from '../errors';\nimport type LayoutManager from '../LayoutManager';\nimport type { ComponentConfig } from '../config/ItemConfig';\nimport ItemContainer from '../container/ItemContainer';\nimport type { ComponentConstructor } from '../LayoutManager';\n\n/**\n * @param layoutManager\n * @param config\n * @param parent\n */\nexport default class Component extends AbstractContentItem {\n config: ComponentConfig;\n\n componentName: string;\n\n container: ItemContainer;\n\n parent: AbstractContentItem | null;\n\n instance: unknown;\n\n constructor(\n layoutManager: LayoutManager,\n config: ComponentConfig,\n parent: AbstractContentItem | null\n ) {\n // Extend before super so the AbstractContentItem defualts aren't applied first\n Object.entries(\n layoutManager.config.settings.defaultComponentConfig ?? {}\n ).forEach(([k, v]) => {\n // @ts-ignore\n if (config[k] === undefined) {\n // @ts-ignore\n config[k] = v;\n }\n });\n super(layoutManager, config, parent, $());\n this.config = config;\n this.parent = parent;\n\n const ComponentConstructor =\n (layoutManager.getComponent(\n this.config.componentName\n ) as ComponentConstructor) || layoutManager.getFallbackComponent(),\n componentConfig = $.extend(true, {}, this.config.componentState || {});\n\n if (ComponentConstructor == null) {\n throw new ConfigurationError(\n 'Unknown component \"' + this.config.componentName + '\"'\n );\n }\n componentConfig.componentName = this.config.componentName;\n this.componentName = this.config.componentName;\n\n if (this.config.title === '') {\n this.config.title = this.config.componentName;\n }\n\n this.isComponent = true;\n this.container = new ItemContainer(this.config, this, layoutManager);\n this.instance = new ComponentConstructor(this.container, componentConfig);\n this.element = this.container._element;\n }\n\n close() {\n this.parent?.removeChild(this);\n }\n\n setSize() {\n if (this.element.is(':visible')) {\n // Do not update size of hidden components to prevent unwanted reflows\n this.container._$setSize(this.element.width(), this.element.height());\n }\n }\n\n _$init() {\n AbstractContentItem.prototype._$init.call(this);\n this.container.emit('open');\n }\n\n _$hide() {\n this.container.hide();\n AbstractContentItem.prototype._$hide.call(this);\n }\n\n _$show(forceFocus?: boolean) {\n this.container.show();\n if (this.container._config.isFocusOnShow || forceFocus) {\n // focus the shown container element on show\n // preventScroll isn't supported in safari, but also doesn't matter for illumon when 100% window\n this.container._contentElement[0].focus({ preventScroll: true });\n }\n AbstractContentItem.prototype._$show.call(this);\n }\n\n _$destroy() {\n this.container.emit('destroy', this);\n AbstractContentItem.prototype._$destroy.call(this);\n }\n\n /**\n * Dragging onto a component directly is not an option\n *\n * @returns null\n */\n _$getArea() {\n return null;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/dist/items/Root.js
CHANGED
|
@@ -69,9 +69,7 @@ export default class Root extends AbstractContentItem {
|
|
|
69
69
|
if (!this.contentItems.length) {
|
|
70
70
|
this.addChild(contentItem);
|
|
71
71
|
} else {
|
|
72
|
-
var
|
|
73
|
-
side
|
|
74
|
-
} = area;
|
|
72
|
+
var side = area.side;
|
|
75
73
|
var type = side === 'left' || side === 'right' ? 'row' : 'column'; // Should new root be a row or column
|
|
76
74
|
var dimension = side === 'left' || side === 'right' ? 'width' : 'height';
|
|
77
75
|
var insertBefore = side === 'left' || side === 'top';
|
package/dist/items/Root.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Root.js","names":["$","AbstractContentItem","isComponent","RowOrColumn","Root","constructor","layoutManager","config","containerElement","_objectSpread","type","_defineProperty","isRoot","childElementContainer","element","_containerElement","append","addChild","contentItem","index","contentItems","length","Error","_$normalizeContentItem","callDownwards","emitBubblingEvent","setSize","width","height","_this$_containerEleme","_this$_containerEleme2","_$getArea","area","_$highlightDropZone","x","y","tabDropPlaceholder","remove","_$onDrop","stack","createContentItem","header","_$init","side","dimension","insertBefore","column","rowOrColumn","replaceChild","undefined","_sibling$config$dimen","sibling"],"sources":["../../src/items/Root.ts"],"sourcesContent":["import $ from 'jquery';\nimport type { ComponentConfig, ItemConfig } from '../config';\nimport LayoutManager from '../LayoutManager';\nimport AbstractContentItem, {\n isComponent,\n ItemArea,\n} from './AbstractContentItem';\nimport RowOrColumn from './RowOrColumn';\n\nexport default class Root extends AbstractContentItem {\n childElementContainer: JQuery<HTMLElement>;\n\n private _containerElement: JQuery<HTMLElement>;\n\n constructor(\n layoutManager: LayoutManager,\n config: ComponentConfig | { content: ItemConfig[] },\n containerElement: JQuery<HTMLElement>\n ) {\n super(\n layoutManager,\n { ...config, type: 'root' },\n null,\n $('<div class=\"lm_goldenlayout lm_item lm_root\"></div>')\n );\n this.isRoot = true;\n this.type = 'root';\n this.childElementContainer = this.element;\n this._containerElement = containerElement;\n this._containerElement.append(this.element);\n }\n\n addChild(contentItem: AbstractContentItem | ItemConfig, index?: number) {\n if (this.contentItems.length > 0) {\n throw new Error('Root node can only have a single child');\n }\n\n contentItem = this.layoutManager._$normalizeContentItem(contentItem, this);\n this.childElementContainer.append(contentItem.element);\n super.addChild(contentItem, index);\n\n this.callDownwards('setSize');\n this.emitBubblingEvent('stateChanged');\n }\n\n setSize(width?: number, height?: number) {\n width =\n typeof width === 'undefined'\n ? this._containerElement.width() ?? 0\n : width;\n height =\n typeof height === 'undefined'\n ? this._containerElement.height() ?? 0\n : height;\n\n this.element.width(width);\n this.element.height(height);\n\n /*\n * Root can be empty\n */\n if (this.contentItems[0]) {\n this.contentItems[0].element.width(width);\n this.contentItems[0].element.height(height);\n }\n }\n\n _$getArea() {\n const area = super._$getArea();\n if (area == null) {\n throw new Error('Unable to get root area');\n }\n return area;\n }\n\n _$highlightDropZone(x: number, y: number, area: ItemArea) {\n this.layoutManager.tabDropPlaceholder.remove();\n super._$highlightDropZone(x, y, area);\n }\n\n _$onDrop(contentItem: AbstractContentItem, area: ItemArea) {\n var stack;\n\n if (isComponent(contentItem)) {\n stack = this.layoutManager.createContentItem(\n {\n type: 'stack',\n header: contentItem.config.header || {},\n },\n this\n );\n stack._$init();\n stack.addChild(contentItem);\n contentItem = stack;\n }\n\n if (!this.contentItems.length) {\n this.addChild(contentItem);\n } else {\n const { side } = area;\n const type = side === 'left' || side === 'right' ? 'row' : 'column'; // Should new root be a row or column\n const dimension =\n side === 'left' || side === 'right' ? 'width' : 'height';\n const insertBefore = side === 'left' || side === 'top';\n const column = this.contentItems[0];\n if (!(column instanceof RowOrColumn) || column.type != type) {\n const rowOrColumn = this.layoutManager.createContentItem(\n { type: type },\n this\n ) as RowOrColumn;\n this.replaceChild(column, rowOrColumn);\n rowOrColumn.addChild(contentItem, insertBefore ? 0 : undefined, true);\n rowOrColumn.addChild(column, insertBefore ? undefined : 0, true);\n column.config[dimension] = 50;\n contentItem.config[dimension] = 50;\n rowOrColumn.callDownwards('setSize');\n } else {\n const sibling =\n column.contentItems[\n insertBefore ? 0 : column.contentItems.length - 1\n ];\n column.addChild(contentItem, insertBefore ? 0 : undefined, true);\n sibling.config[dimension] = (sibling.config[dimension] ?? 0) * 0.5;\n contentItem.config[dimension] = sibling.config[dimension];\n column.callDownwards('setSize');\n }\n }\n }\n}\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Root.js","names":["$","AbstractContentItem","isComponent","RowOrColumn","Root","constructor","layoutManager","config","containerElement","_objectSpread","type","_defineProperty","isRoot","childElementContainer","element","_containerElement","append","addChild","contentItem","index","contentItems","length","Error","_$normalizeContentItem","callDownwards","emitBubblingEvent","setSize","width","height","_this$_containerEleme","_this$_containerEleme2","_$getArea","area","_$highlightDropZone","x","y","tabDropPlaceholder","remove","_$onDrop","stack","createContentItem","header","_$init","side","dimension","insertBefore","column","rowOrColumn","replaceChild","undefined","_sibling$config$dimen","sibling"],"sources":["../../src/items/Root.ts"],"sourcesContent":["import $ from 'jquery';\nimport type { ComponentConfig, ItemConfig } from '../config';\nimport LayoutManager from '../LayoutManager';\nimport AbstractContentItem, {\n isComponent,\n ItemArea,\n} from './AbstractContentItem';\nimport RowOrColumn from './RowOrColumn';\n\nexport default class Root extends AbstractContentItem {\n childElementContainer: JQuery<HTMLElement>;\n\n private _containerElement: JQuery<HTMLElement>;\n\n constructor(\n layoutManager: LayoutManager,\n config: ComponentConfig | { content: ItemConfig[] },\n containerElement: JQuery<HTMLElement>\n ) {\n super(\n layoutManager,\n { ...config, type: 'root' },\n null,\n $('<div class=\"lm_goldenlayout lm_item lm_root\"></div>')\n );\n this.isRoot = true;\n this.type = 'root';\n this.childElementContainer = this.element;\n this._containerElement = containerElement;\n this._containerElement.append(this.element);\n }\n\n addChild(contentItem: AbstractContentItem | ItemConfig, index?: number) {\n if (this.contentItems.length > 0) {\n throw new Error('Root node can only have a single child');\n }\n\n contentItem = this.layoutManager._$normalizeContentItem(contentItem, this);\n this.childElementContainer.append(contentItem.element);\n super.addChild(contentItem, index);\n\n this.callDownwards('setSize');\n this.emitBubblingEvent('stateChanged');\n }\n\n setSize(width?: number, height?: number) {\n width =\n typeof width === 'undefined'\n ? this._containerElement.width() ?? 0\n : width;\n height =\n typeof height === 'undefined'\n ? this._containerElement.height() ?? 0\n : height;\n\n this.element.width(width);\n this.element.height(height);\n\n /*\n * Root can be empty\n */\n if (this.contentItems[0]) {\n this.contentItems[0].element.width(width);\n this.contentItems[0].element.height(height);\n }\n }\n\n _$getArea() {\n const area = super._$getArea();\n if (area == null) {\n throw new Error('Unable to get root area');\n }\n return area;\n }\n\n _$highlightDropZone(x: number, y: number, area: ItemArea) {\n this.layoutManager.tabDropPlaceholder.remove();\n super._$highlightDropZone(x, y, area);\n }\n\n _$onDrop(contentItem: AbstractContentItem, area: ItemArea) {\n var stack;\n\n if (isComponent(contentItem)) {\n stack = this.layoutManager.createContentItem(\n {\n type: 'stack',\n header: contentItem.config.header || {},\n },\n this\n );\n stack._$init();\n stack.addChild(contentItem);\n contentItem = stack;\n }\n\n if (!this.contentItems.length) {\n this.addChild(contentItem);\n } else {\n const { side } = area;\n const type = side === 'left' || side === 'right' ? 'row' : 'column'; // Should new root be a row or column\n const dimension =\n side === 'left' || side === 'right' ? 'width' : 'height';\n const insertBefore = side === 'left' || side === 'top';\n const column = this.contentItems[0];\n if (!(column instanceof RowOrColumn) || column.type != type) {\n const rowOrColumn = this.layoutManager.createContentItem(\n { type: type },\n this\n ) as RowOrColumn;\n this.replaceChild(column, rowOrColumn);\n rowOrColumn.addChild(contentItem, insertBefore ? 0 : undefined, true);\n rowOrColumn.addChild(column, insertBefore ? undefined : 0, true);\n column.config[dimension] = 50;\n contentItem.config[dimension] = 50;\n rowOrColumn.callDownwards('setSize');\n } else {\n const sibling =\n column.contentItems[\n insertBefore ? 0 : column.contentItems.length - 1\n ];\n column.addChild(contentItem, insertBefore ? 0 : undefined, true);\n sibling.config[dimension] = (sibling.config[dimension] ?? 0) * 0.5;\n contentItem.config[dimension] = sibling.config[dimension];\n column.callDownwards('setSize');\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/dist/items/Stack.js
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
4
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
1
7
|
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; }
|
|
2
8
|
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; }
|
|
3
9
|
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; }
|
|
@@ -252,7 +258,10 @@ export default class Stack extends AbstractContentItem {
|
|
|
252
258
|
if (!this._contentAreaDimensions) {
|
|
253
259
|
return;
|
|
254
260
|
}
|
|
255
|
-
for (var
|
|
261
|
+
for (var _ref3 of Object.entries(this._contentAreaDimensions)) {
|
|
262
|
+
var _ref2 = _slicedToArray(_ref3, 2);
|
|
263
|
+
var segment = _ref2[0];
|
|
264
|
+
var dimensions = _ref2[1];
|
|
256
265
|
var area = dimensions.hoverArea;
|
|
257
266
|
if (area.x1 < x && area.x2 > x && area.y1 < y && area.y2 > y) {
|
|
258
267
|
if (segment === 'header') {
|
package/dist/items/Stack.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stack.js","names":["$","AbstractContentItem","isComponent","Header","RowOrColumn","Stack","constructor","layoutManager","config","parent","_cfg$settings","_cfg$settings2","_cfg$labels","_cfg$settings3","_cfg$labels2","_cfg$settings4","_cfg$labels3","_cfg$labels$minimise","_cfg$labels4","_defineProperty","cfg","_side","_header","show","settings","hasHeaders","popout","showPopoutIcon","labels","undefined","maximise","showMaximiseIcon","close","showCloseIcon","minimise","header","_objectSpread","content","element","append","childElementContainer","_setupHeaderPosition","_$validateClosability","setSize","_this$layoutManager$c","_this$layoutManager$c2","_this$element$width","_this$element$height","i","headerSize","dimensions","headerHeight","contentWidth","width","_sided","contentHeight","height","contentItems","length","emit","emitBubblingEvent","_$init","isInitialised","_attachWheelListener","createTab","_$hide","initialItem","activeItemIndex","Error","setActiveContentItem","contentItem","forceFocus","indexOf","_activeContentItem","_$show","getActiveContentItem","activeContentItem","addChild","index","_$normalizeContentItem","callDownwards","removeChild","keepChild","arguments","removeTab","Math","max","isClosable","_isClosable","len","_this$contentItems$i$","_$setClosable","_$destroy","prototype","call","_$onDrop","_dropSegment","_resetHeaderDropZone","_dropIndex","isVertical","isHorizontal","insertBefore","hasCorrectParent","isColumn","isRow","type","dimension","stack","createContentItem","_this$config$dimensio","_this$parent","rowOrColumn","replaceChild","_$highlightDropZone","x","y","_contentAreaDimensions","segment","Object","entries","area","hoverArea","x1","x2","y1","y2","_highlightHeaderDropZone","_highlightBodyDropZone","_$getArea","is","headerArea","contentArea","highlightArea","body","left","top","right","bottom","_tabsContainer$get","_this$layoutManager$t","_this$layoutManager$t2","_this$layoutManager$t3","_this$header$tabsCont","_this$header$tabsCont2","_this$layoutManager$t4","_this$header$tabsCont3","_this$header$tabsCont4","_this$header$tabsCont5","_this$layoutManager$d2","_this$header$element$6","_this$header$element$7","_this$header$element$8","_this$header$element$9","_this$header$element$0","tabsLength","tabs","_this$layoutManager$d","_headerOffset$left","_headerOffset$left2","_this$header$element$","_this$header$element$2","_this$header$element$3","_this$header$element$4","_this$header$element$5","headerOffset","offset","dropTargetIndicator","innerHeight","tabsContainer","tabsContainerRect","get","getBoundingClientRect","placeholderRect","tabDropPlaceholder","tabElement","tabRect","_tabElement$get","before","_this$_dropIndex","min","after","placeHolderLeft","placeHolderRight","innerWidth","remove","side","some","elem","toggle","toString","removeClass","addClass","find","headerPosition","_this$_contentAreaDim","_this$layoutManager$d3"],"sources":["../../src/items/Stack.ts"],"sourcesContent":["import $ from 'jquery';\nimport AbstractContentItem, { isComponent } from './AbstractContentItem';\nimport type LayoutManager from '../LayoutManager';\nimport type {\n ItemConfig,\n StackItemConfig,\n StackItemHeaderConfig,\n} from '../config';\nimport { Header } from '../controls';\nimport RowOrColumn from './RowOrColumn';\n\ninterface HoverDimensions {\n hoverArea: {\n x1: number;\n y1: number;\n x2: number;\n y2: number;\n };\n highlightArea: {\n x1: number;\n y1: number;\n x2: number;\n y2: number;\n };\n}\n\ntype ContentAreaDimensions = {\n header: HoverDimensions;\n body?: HoverDimensions;\n top?: HoverDimensions;\n bottom?: HoverDimensions;\n left?: HoverDimensions;\n right?: HoverDimensions;\n};\n\ntype BodySegment = keyof ContentAreaDimensions;\n\nexport default class Stack extends AbstractContentItem {\n private _activeContentItem: AbstractContentItem | null = null;\n\n _header: StackItemHeaderConfig;\n\n childElementContainer = $('<div class=\"lm_items\"></div>');\n header: Header;\n parent: AbstractContentItem | null;\n\n isStack = true;\n\n private _dropSegment: string | null = null;\n _contentAreaDimensions: ContentAreaDimensions | null = null;\n private _dropIndex: number | undefined;\n _side: boolean | 'top' | 'left' | 'right' | 'bottom';\n _sided: boolean = false;\n\n config: StackItemConfig;\n\n constructor(\n layoutManager: LayoutManager & {\n config: LayoutManager['config'] & {\n header?: StackItemHeaderConfig;\n };\n },\n config: StackItemConfig,\n parent: AbstractContentItem | null\n ) {\n super(\n layoutManager,\n config,\n parent,\n $('<div class=\"lm_item lm_stack\"></div>')\n );\n this.parent = parent;\n this.config = config;\n\n const cfg = layoutManager.config;\n this._side = false;\n this._header = {\n // defaults' reconstruction from old configuration style\n show: cfg.settings?.hasHeaders && config.hasHeaders !== false,\n popout: cfg.settings?.showPopoutIcon ? cfg.labels?.popout : undefined,\n maximise: cfg.settings?.showMaximiseIcon\n ? cfg.labels?.maximise\n : undefined,\n close: cfg.settings?.showCloseIcon ? cfg.labels?.close : undefined,\n minimise: cfg.labels?.minimise ?? undefined,\n };\n\n // load simplified version of header configuration (https://github.com/deepstreamIO/golden-layout/pull/245)\n if (cfg.header) this._header = { ...this._header, ...cfg.header };\n if (config.header)\n // load from stack\n this._header = { ...this._header, ...config.header };\n if (config.content && config.content[0] && config.content[0].header)\n // load from component if stack omitted\n this._header = { ...this._header, ...config.content[0].header };\n\n this.header = new Header(layoutManager, this);\n\n this.element.append(this.header.element);\n this.element.append(this.childElementContainer);\n this._setupHeaderPosition();\n this._$validateClosability();\n }\n\n setSize() {\n var i,\n headerSize = this._header.show\n ? this.layoutManager.config.dimensions?.headerHeight ?? 0\n : 0,\n contentWidth =\n (this.element.width() ?? 0) - (this._sided ? headerSize : 0),\n contentHeight =\n (this.element.height() ?? 0) - (!this._sided ? headerSize : 0);\n\n this.childElementContainer.width(contentWidth);\n this.childElementContainer.height(contentHeight);\n\n for (i = 0; i < this.contentItems.length; i++) {\n this.contentItems[i].element.width(contentWidth).height(contentHeight);\n }\n this.emit('resize');\n this.emitBubblingEvent('stateChanged');\n }\n\n _$init() {\n if (this.isInitialised === true) return;\n\n this.header._attachWheelListener();\n\n super._$init();\n\n for (let i = 0; i < this.contentItems.length; i++) {\n this.header.createTab(this.contentItems[i]);\n this.contentItems[i]._$hide();\n }\n\n if (this.contentItems.length > 0) {\n const initialItem = this.contentItems[this.config.activeItemIndex || 0];\n\n if (!initialItem) {\n throw new Error('Configured activeItemIndex out of bounds');\n }\n\n this.setActiveContentItem(initialItem);\n }\n }\n\n setActiveContentItem(contentItem: AbstractContentItem, forceFocus?: boolean) {\n if (this.contentItems.indexOf(contentItem) === -1) {\n throw new Error('contentItem is not a child of this stack');\n }\n\n if (this._activeContentItem !== null) {\n this._activeContentItem._$hide();\n }\n\n this._activeContentItem = contentItem;\n this.header.setActiveContentItem(contentItem);\n if (isComponent(contentItem)) {\n contentItem._$show(forceFocus);\n } else {\n contentItem._$show();\n }\n this.emit('activeContentItemChanged', contentItem);\n this.layoutManager.emit('activeContentItemChanged', contentItem);\n this.emitBubblingEvent('stateChanged');\n }\n\n getActiveContentItem() {\n return this.header.activeContentItem;\n }\n\n addChild(contentItem: AbstractContentItem | ItemConfig, index?: number) {\n contentItem = this.layoutManager._$normalizeContentItem(contentItem, this);\n super.addChild(contentItem, index);\n this.childElementContainer.append(contentItem.element);\n this.header.createTab(contentItem, index);\n this.setActiveContentItem(contentItem);\n this.callDownwards('setSize');\n this._$validateClosability();\n this.emitBubblingEvent('stateChanged');\n }\n\n removeChild(contentItem: AbstractContentItem, keepChild = false) {\n var index = this.contentItems.indexOf(contentItem);\n super.removeChild(contentItem, keepChild);\n this.header.removeTab(contentItem);\n if (this.header.activeContentItem === contentItem) {\n if (this.contentItems.length > 0) {\n this.setActiveContentItem(this.contentItems[Math.max(index - 1, 0)]);\n } else {\n this._activeContentItem = null;\n }\n }\n\n this._$validateClosability();\n this.emitBubblingEvent('stateChanged');\n }\n\n /**\n * Validates that the stack is still closable or not. If a stack is able\n * to close, but has a non closable component added to it, the stack is no\n * longer closable until all components are closable.\n */\n _$validateClosability() {\n let isClosable = this.header._isClosable();\n\n for (let i = 0, len = this.contentItems.length; i < len; i++) {\n if (!isClosable) {\n break;\n }\n\n isClosable = this.contentItems[i].config.isClosable ?? false;\n }\n\n this.header._$setClosable(isClosable);\n }\n\n _$destroy() {\n AbstractContentItem.prototype._$destroy.call(this);\n this.header._$destroy();\n }\n\n /**\n * Ok, this one is going to be the tricky one: The user has dropped {contentItem} onto this stack.\n *\n * It was dropped on either the stacks header or the top, right, bottom or left bit of the content area\n * (which one of those is stored in this._dropSegment). Now, if the user has dropped on the header the case\n * is relatively clear: We add the item to the existing stack... job done (might be good to have\n * tab reordering at some point, but lets not sweat it right now)\n *\n * If the item was dropped on the content part things are a bit more complicated. If it was dropped on either the\n * top or bottom region we need to create a new column and place the items accordingly.\n * Unless, of course if the stack is already within a column... in which case we want\n * to add the newly created item to the existing column...\n * either prepend or append it, depending on wether its top or bottom.\n *\n * Same thing for rows and left / right drop segments... so in total there are 9 things that can potentially happen\n * (left, top, right, bottom) * is child of the right parent (row, column) + header drop\n *\n * @param contentItem\n */\n _$onDrop(contentItem: AbstractContentItem) {\n /*\n * The item was dropped on the header area. Just add it as a child of this stack and\n * get the hell out of this logic\n */\n if (this._dropSegment === 'header') {\n this._resetHeaderDropZone();\n this.addChild(contentItem, this._dropIndex);\n return;\n }\n\n /*\n * The stack is empty. Let's just add the element.\n */\n if (this._dropSegment === 'body') {\n this.addChild(contentItem);\n return;\n }\n\n /*\n * The item was dropped on the top-, left-, bottom- or right- part of the content. Let's\n * aggregate some conditions to make the if statements later on more readable\n */\n const isVertical =\n this._dropSegment === 'top' || this._dropSegment === 'bottom';\n const isHorizontal =\n this._dropSegment === 'left' || this._dropSegment === 'right';\n const insertBefore =\n this._dropSegment === 'top' || this._dropSegment === 'left';\n const hasCorrectParent =\n this.parent instanceof RowOrColumn &&\n ((isVertical && this.parent.isColumn) ||\n (isHorizontal && this.parent.isRow));\n const type = isVertical ? 'column' : 'row';\n const dimension = isVertical ? 'height' : 'width';\n\n /*\n * The content item can be either a component or a stack. If it is a component, wrap it into a stack\n */\n if (isComponent(contentItem)) {\n const stack = this.layoutManager.createContentItem(\n {\n type: 'stack',\n header: contentItem.config.header || {},\n },\n this\n );\n stack._$init();\n stack.addChild(contentItem);\n contentItem = stack;\n }\n\n /*\n * If the item is dropped on top or bottom of a column or left and right of a row, it's already\n * layd out in the correct way. Just add it as a child\n */\n if (hasCorrectParent) {\n const index = this.parent!.contentItems.indexOf(this);\n\n // Should be a `RowOrColumn` if `hasCorrectParent` is true\n (this.parent as RowOrColumn).addChild(\n contentItem,\n insertBefore ? index : index + 1,\n true\n );\n this.config[dimension] = (this.config[dimension] ?? 0) * 0.5;\n contentItem.config[dimension] = this.config[dimension];\n this.parent!.callDownwards('setSize');\n /*\n * This handles items that are dropped on top or bottom of a row or left / right of a column. We need\n * to create the appropriate contentItem for them to live in\n */\n } else {\n const rowOrColumn = this.layoutManager.createContentItem({ type }, this);\n this.parent?.replaceChild(this, rowOrColumn);\n\n rowOrColumn.addChild(contentItem, insertBefore ? 0 : undefined, true);\n rowOrColumn.addChild(this, insertBefore ? undefined : 0, true);\n\n this.config[dimension] = 50;\n contentItem.config[dimension] = 50;\n rowOrColumn.callDownwards('setSize');\n }\n }\n\n /**\n * If the user hovers above the header part of the stack, indicate drop positions for tabs.\n * otherwise indicate which segment of the body the dragged item would be dropped on\n *\n * @param x Absolute Screen X\n * @param y Absolute Screen Y\n */\n _$highlightDropZone(x: number, y: number) {\n if (!this._contentAreaDimensions) {\n return;\n }\n\n for (let [segment, dimensions] of Object.entries(\n this._contentAreaDimensions\n ) as [BodySegment, HoverDimensions][]) {\n const area = dimensions.hoverArea;\n\n if (area.x1 < x && area.x2 > x && area.y1 < y && area.y2 > y) {\n if (segment === 'header') {\n this._dropSegment = 'header';\n this._highlightHeaderDropZone(x);\n } else {\n this._resetHeaderDropZone();\n this._highlightBodyDropZone(segment);\n }\n\n return;\n }\n }\n }\n\n _$getArea() {\n if (this.element.is(':visible') === false) {\n return null;\n }\n\n const headerArea = super._$getArea(this.header.element);\n const contentArea = super._$getArea(this.childElementContainer);\n if (headerArea == null || contentArea == null) {\n return null;\n }\n\n const contentWidth = contentArea.x2 - contentArea.x1;\n const contentHeight = contentArea.y2 - contentArea.y1;\n\n this._contentAreaDimensions = {\n header: {\n hoverArea: {\n x1: headerArea.x1,\n y1: headerArea.y1,\n x2: headerArea.x2,\n y2: headerArea.y2,\n },\n highlightArea: {\n x1: headerArea.x1,\n y1: headerArea.y1,\n x2: headerArea.x2,\n y2: headerArea.y2,\n },\n },\n };\n\n /**\n * If this Stack is a parent to rows, columns or other stacks only its\n * header is a valid dropzone.\n */\n if (\n this._activeContentItem &&\n this._activeContentItem.isComponent === false\n ) {\n return headerArea;\n }\n\n /**\n * Highlight the entire body if the stack is empty\n */\n if (this.contentItems.length === 0) {\n this._contentAreaDimensions.body = {\n hoverArea: {\n x1: contentArea.x1,\n y1: contentArea.y1,\n x2: contentArea.x2,\n y2: contentArea.y2,\n },\n highlightArea: {\n x1: contentArea.x1,\n y1: contentArea.y1,\n x2: contentArea.x2,\n y2: contentArea.y2,\n },\n };\n\n return super._$getArea(this.element);\n }\n\n this._contentAreaDimensions.left = {\n hoverArea: {\n x1: contentArea.x1,\n y1: contentArea.y1,\n x2: contentArea.x1 + contentWidth * 0.25,\n y2: contentArea.y2,\n },\n highlightArea: {\n x1: contentArea.x1,\n y1: contentArea.y1,\n x2: contentArea.x1 + contentWidth * 0.5,\n y2: contentArea.y2,\n },\n };\n\n this._contentAreaDimensions.top = {\n hoverArea: {\n x1: contentArea.x1 + contentWidth * 0.25,\n y1: contentArea.y1,\n x2: contentArea.x1 + contentWidth * 0.75,\n y2: contentArea.y1 + contentHeight * 0.5,\n },\n highlightArea: {\n x1: contentArea.x1,\n y1: contentArea.y1,\n x2: contentArea.x2,\n y2: contentArea.y1 + contentHeight * 0.5,\n },\n };\n\n this._contentAreaDimensions.right = {\n hoverArea: {\n x1: contentArea.x1 + contentWidth * 0.75,\n y1: contentArea.y1,\n x2: contentArea.x2,\n y2: contentArea.y2,\n },\n highlightArea: {\n x1: contentArea.x1 + contentWidth * 0.5,\n y1: contentArea.y1,\n x2: contentArea.x2,\n y2: contentArea.y2,\n },\n };\n\n this._contentAreaDimensions.bottom = {\n hoverArea: {\n x1: contentArea.x1 + contentWidth * 0.25,\n y1: contentArea.y1 + contentHeight * 0.5,\n x2: contentArea.x1 + contentWidth * 0.75,\n y2: contentArea.y2,\n },\n highlightArea: {\n x1: contentArea.x1,\n y1: contentArea.y1 + contentHeight * 0.5,\n x2: contentArea.x2,\n y2: contentArea.y2,\n },\n };\n\n return super._$getArea(this.element);\n }\n\n _highlightHeaderDropZone(x: number) {\n const tabsLength = this.header.tabs.length;\n\n // I've omitted code for side edge tabs here\n // illumon doesn't need it, will slowly pull that code out elsewhere too\n\n // Empty stack\n if (tabsLength === 0) {\n const headerOffset = this.header.element.offset();\n\n // we don't have a placeholder to measure in the dom, lets just cheat and make it 100px.\n this.layoutManager.dropTargetIndicator?.highlightArea({\n x1: headerOffset?.left ?? 0,\n x2: (headerOffset?.left ?? 0) + 100,\n y1: this.header.element.offset()?.top ?? 0,\n y2:\n (this.header.element.offset()?.top ?? 0) +\n (this.header.element.innerHeight() ?? 0),\n });\n\n return;\n }\n\n const tabsContainer = this.header.tabsContainer;\n const tabsContainerRect = tabsContainer.get(0)?.getBoundingClientRect();\n const placeholderRect = this.layoutManager.tabDropPlaceholder\n .get(0)\n ?.getBoundingClientRect();\n\n if (!tabsContainerRect || !placeholderRect) {\n return;\n }\n\n if (x < tabsContainerRect.left) {\n // is over left tab controls button\n // move x to a new point to inside left edge of container\n x = tabsContainerRect.left + 1;\n } else if (x > tabsContainerRect.right) {\n // is over right tab controls button\n // move x to a new point to inside right edge of container\n x = tabsContainerRect.right - 1;\n }\n\n let tabElement: JQuery<HTMLElement> | undefined;\n let tabRect: DOMRect | undefined;\n\n // if its not inide a placeholder,\n if (!(placeholderRect.left < x && x < placeholderRect.right)) {\n // which tab is it over ...\n for (var i = 0; i < tabsLength; i++) {\n tabElement = this.header.tabs[i].element;\n tabRect = tabElement.get(0)?.getBoundingClientRect();\n if (tabRect && tabRect.left < x && x < tabRect.right) {\n this._dropIndex = i;\n break;\n }\n }\n\n // we have tabRect at this x,y from the loop above\n if (tabElement && tabRect && x < tabRect.left + tabRect.width * 0.5) {\n // mostly before an element, insert placeholder before\n tabElement.before(this.layoutManager.tabDropPlaceholder);\n } else if (tabElement) {\n // x is likely after the lhe last item, position after and increase drop index\n this._dropIndex = Math.min((this._dropIndex ?? 0) + 1, tabsLength);\n tabElement.after(this.layoutManager.tabDropPlaceholder);\n }\n }\n\n let placeHolderLeft =\n this.layoutManager.tabDropPlaceholder.offset()?.left ?? 0;\n placeHolderLeft = Math.max(\n placeHolderLeft,\n this.header.tabsContainer.offset()?.left ?? 0\n );\n var placeHolderRight =\n placeHolderLeft + (this.layoutManager.tabDropPlaceholder.width() ?? 0);\n placeHolderRight = Math.min(\n placeHolderRight,\n (this.header.tabsContainer.offset()?.left ?? 0) +\n (this.header.tabsContainer.innerWidth() ?? 0)\n );\n this.layoutManager.dropTargetIndicator?.highlightArea({\n x1: placeHolderLeft,\n x2: placeHolderRight,\n y1: this.header.element.offset()?.top ?? 0,\n y2:\n (this.header.element.offset()?.top ?? 0) +\n (this.header.element.innerHeight() ?? 0),\n });\n }\n\n _resetHeaderDropZone() {\n this.layoutManager.tabDropPlaceholder.remove();\n }\n\n _setupHeaderPosition() {\n const side = ['right', 'left', 'bottom'].some(\n elem => elem === this._header.show\n )\n ? this._header.show\n : undefined;\n\n this.header.element.toggle(!!this._header.show);\n\n if (!side) {\n return;\n }\n\n this._side = side;\n this._sided = ['right', 'left'].indexOf(this._side.toString()) >= 0;\n this.element.removeClass('lm_left lm_right lm_bottom');\n if (this._side) this.element.addClass('lm_' + this._side);\n if (this.element.find('.lm_header').length && this.childElementContainer) {\n const headerPosition =\n ['right', 'bottom'].indexOf(this._side.toString()) >= 0\n ? 'before'\n : 'after';\n this.header.element[headerPosition](this.childElementContainer);\n this.callDownwards('setSize');\n }\n }\n\n _highlightBodyDropZone(segment: BodySegment) {\n const highlightArea = this._contentAreaDimensions?.[segment]?.highlightArea;\n if (highlightArea) {\n this.layoutManager.dropTargetIndicator?.highlightArea(highlightArea);\n }\n this._dropSegment = segment;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Stack.js","names":["$","AbstractContentItem","isComponent","Header","RowOrColumn","Stack","constructor","layoutManager","config","parent","_cfg$settings","_cfg$settings2","_cfg$labels","_cfg$settings3","_cfg$labels2","_cfg$settings4","_cfg$labels3","_cfg$labels$minimise","_cfg$labels4","_defineProperty","cfg","_side","_header","show","settings","hasHeaders","popout","showPopoutIcon","labels","undefined","maximise","showMaximiseIcon","close","showCloseIcon","minimise","header","_objectSpread","content","element","append","childElementContainer","_setupHeaderPosition","_$validateClosability","setSize","_this$layoutManager$c","_this$layoutManager$c2","_this$element$width","_this$element$height","i","headerSize","dimensions","headerHeight","contentWidth","width","_sided","contentHeight","height","contentItems","length","emit","emitBubblingEvent","_$init","isInitialised","_attachWheelListener","createTab","_$hide","initialItem","activeItemIndex","Error","setActiveContentItem","contentItem","forceFocus","indexOf","_activeContentItem","_$show","getActiveContentItem","activeContentItem","addChild","index","_$normalizeContentItem","callDownwards","removeChild","keepChild","arguments","removeTab","Math","max","isClosable","_isClosable","len","_this$contentItems$i$","_$setClosable","_$destroy","prototype","call","_$onDrop","_dropSegment","_resetHeaderDropZone","_dropIndex","isVertical","isHorizontal","insertBefore","hasCorrectParent","isColumn","isRow","type","dimension","stack","createContentItem","_this$config$dimensio","_this$parent","rowOrColumn","replaceChild","_$highlightDropZone","x","y","_contentAreaDimensions","_ref3","Object","entries","_ref2","_slicedToArray","segment","area","hoverArea","x1","x2","y1","y2","_highlightHeaderDropZone","_highlightBodyDropZone","_$getArea","is","headerArea","contentArea","highlightArea","body","left","top","right","bottom","_tabsContainer$get","_this$layoutManager$t","_this$layoutManager$t2","_this$layoutManager$t3","_this$header$tabsCont","_this$header$tabsCont2","_this$layoutManager$t4","_this$header$tabsCont3","_this$header$tabsCont4","_this$header$tabsCont5","_this$layoutManager$d2","_this$header$element$6","_this$header$element$7","_this$header$element$8","_this$header$element$9","_this$header$element$0","tabsLength","tabs","_this$layoutManager$d","_headerOffset$left","_headerOffset$left2","_this$header$element$","_this$header$element$2","_this$header$element$3","_this$header$element$4","_this$header$element$5","headerOffset","offset","dropTargetIndicator","innerHeight","tabsContainer","tabsContainerRect","get","getBoundingClientRect","placeholderRect","tabDropPlaceholder","tabElement","tabRect","_tabElement$get","before","_this$_dropIndex","min","after","placeHolderLeft","placeHolderRight","innerWidth","remove","side","some","elem","toggle","toString","removeClass","addClass","find","headerPosition","_this$_contentAreaDim","_this$layoutManager$d3"],"sources":["../../src/items/Stack.ts"],"sourcesContent":["import $ from 'jquery';\nimport AbstractContentItem, { isComponent } from './AbstractContentItem';\nimport type LayoutManager from '../LayoutManager';\nimport type {\n ItemConfig,\n StackItemConfig,\n StackItemHeaderConfig,\n} from '../config';\nimport { Header } from '../controls';\nimport RowOrColumn from './RowOrColumn';\n\ninterface HoverDimensions {\n hoverArea: {\n x1: number;\n y1: number;\n x2: number;\n y2: number;\n };\n highlightArea: {\n x1: number;\n y1: number;\n x2: number;\n y2: number;\n };\n}\n\ntype ContentAreaDimensions = {\n header: HoverDimensions;\n body?: HoverDimensions;\n top?: HoverDimensions;\n bottom?: HoverDimensions;\n left?: HoverDimensions;\n right?: HoverDimensions;\n};\n\ntype BodySegment = keyof ContentAreaDimensions;\n\nexport default class Stack extends AbstractContentItem {\n private _activeContentItem: AbstractContentItem | null = null;\n\n _header: StackItemHeaderConfig;\n\n childElementContainer = $('<div class=\"lm_items\"></div>');\n header: Header;\n parent: AbstractContentItem | null;\n\n isStack = true;\n\n private _dropSegment: string | null = null;\n _contentAreaDimensions: ContentAreaDimensions | null = null;\n private _dropIndex: number | undefined;\n _side: boolean | 'top' | 'left' | 'right' | 'bottom';\n _sided: boolean = false;\n\n config: StackItemConfig;\n\n constructor(\n layoutManager: LayoutManager & {\n config: LayoutManager['config'] & {\n header?: StackItemHeaderConfig;\n };\n },\n config: StackItemConfig,\n parent: AbstractContentItem | null\n ) {\n super(\n layoutManager,\n config,\n parent,\n $('<div class=\"lm_item lm_stack\"></div>')\n );\n this.parent = parent;\n this.config = config;\n\n const cfg = layoutManager.config;\n this._side = false;\n this._header = {\n // defaults' reconstruction from old configuration style\n show: cfg.settings?.hasHeaders && config.hasHeaders !== false,\n popout: cfg.settings?.showPopoutIcon ? cfg.labels?.popout : undefined,\n maximise: cfg.settings?.showMaximiseIcon\n ? cfg.labels?.maximise\n : undefined,\n close: cfg.settings?.showCloseIcon ? cfg.labels?.close : undefined,\n minimise: cfg.labels?.minimise ?? undefined,\n };\n\n // load simplified version of header configuration (https://github.com/deepstreamIO/golden-layout/pull/245)\n if (cfg.header) this._header = { ...this._header, ...cfg.header };\n if (config.header)\n // load from stack\n this._header = { ...this._header, ...config.header };\n if (config.content && config.content[0] && config.content[0].header)\n // load from component if stack omitted\n this._header = { ...this._header, ...config.content[0].header };\n\n this.header = new Header(layoutManager, this);\n\n this.element.append(this.header.element);\n this.element.append(this.childElementContainer);\n this._setupHeaderPosition();\n this._$validateClosability();\n }\n\n setSize() {\n var i,\n headerSize = this._header.show\n ? this.layoutManager.config.dimensions?.headerHeight ?? 0\n : 0,\n contentWidth =\n (this.element.width() ?? 0) - (this._sided ? headerSize : 0),\n contentHeight =\n (this.element.height() ?? 0) - (!this._sided ? headerSize : 0);\n\n this.childElementContainer.width(contentWidth);\n this.childElementContainer.height(contentHeight);\n\n for (i = 0; i < this.contentItems.length; i++) {\n this.contentItems[i].element.width(contentWidth).height(contentHeight);\n }\n this.emit('resize');\n this.emitBubblingEvent('stateChanged');\n }\n\n _$init() {\n if (this.isInitialised === true) return;\n\n this.header._attachWheelListener();\n\n super._$init();\n\n for (let i = 0; i < this.contentItems.length; i++) {\n this.header.createTab(this.contentItems[i]);\n this.contentItems[i]._$hide();\n }\n\n if (this.contentItems.length > 0) {\n const initialItem = this.contentItems[this.config.activeItemIndex || 0];\n\n if (!initialItem) {\n throw new Error('Configured activeItemIndex out of bounds');\n }\n\n this.setActiveContentItem(initialItem);\n }\n }\n\n setActiveContentItem(contentItem: AbstractContentItem, forceFocus?: boolean) {\n if (this.contentItems.indexOf(contentItem) === -1) {\n throw new Error('contentItem is not a child of this stack');\n }\n\n if (this._activeContentItem !== null) {\n this._activeContentItem._$hide();\n }\n\n this._activeContentItem = contentItem;\n this.header.setActiveContentItem(contentItem);\n if (isComponent(contentItem)) {\n contentItem._$show(forceFocus);\n } else {\n contentItem._$show();\n }\n this.emit('activeContentItemChanged', contentItem);\n this.layoutManager.emit('activeContentItemChanged', contentItem);\n this.emitBubblingEvent('stateChanged');\n }\n\n getActiveContentItem() {\n return this.header.activeContentItem;\n }\n\n addChild(contentItem: AbstractContentItem | ItemConfig, index?: number) {\n contentItem = this.layoutManager._$normalizeContentItem(contentItem, this);\n super.addChild(contentItem, index);\n this.childElementContainer.append(contentItem.element);\n this.header.createTab(contentItem, index);\n this.setActiveContentItem(contentItem);\n this.callDownwards('setSize');\n this._$validateClosability();\n this.emitBubblingEvent('stateChanged');\n }\n\n removeChild(contentItem: AbstractContentItem, keepChild = false) {\n var index = this.contentItems.indexOf(contentItem);\n super.removeChild(contentItem, keepChild);\n this.header.removeTab(contentItem);\n if (this.header.activeContentItem === contentItem) {\n if (this.contentItems.length > 0) {\n this.setActiveContentItem(this.contentItems[Math.max(index - 1, 0)]);\n } else {\n this._activeContentItem = null;\n }\n }\n\n this._$validateClosability();\n this.emitBubblingEvent('stateChanged');\n }\n\n /**\n * Validates that the stack is still closable or not. If a stack is able\n * to close, but has a non closable component added to it, the stack is no\n * longer closable until all components are closable.\n */\n _$validateClosability() {\n let isClosable = this.header._isClosable();\n\n for (let i = 0, len = this.contentItems.length; i < len; i++) {\n if (!isClosable) {\n break;\n }\n\n isClosable = this.contentItems[i].config.isClosable ?? false;\n }\n\n this.header._$setClosable(isClosable);\n }\n\n _$destroy() {\n AbstractContentItem.prototype._$destroy.call(this);\n this.header._$destroy();\n }\n\n /**\n * Ok, this one is going to be the tricky one: The user has dropped {contentItem} onto this stack.\n *\n * It was dropped on either the stacks header or the top, right, bottom or left bit of the content area\n * (which one of those is stored in this._dropSegment). Now, if the user has dropped on the header the case\n * is relatively clear: We add the item to the existing stack... job done (might be good to have\n * tab reordering at some point, but lets not sweat it right now)\n *\n * If the item was dropped on the content part things are a bit more complicated. If it was dropped on either the\n * top or bottom region we need to create a new column and place the items accordingly.\n * Unless, of course if the stack is already within a column... in which case we want\n * to add the newly created item to the existing column...\n * either prepend or append it, depending on wether its top or bottom.\n *\n * Same thing for rows and left / right drop segments... so in total there are 9 things that can potentially happen\n * (left, top, right, bottom) * is child of the right parent (row, column) + header drop\n *\n * @param contentItem\n */\n _$onDrop(contentItem: AbstractContentItem) {\n /*\n * The item was dropped on the header area. Just add it as a child of this stack and\n * get the hell out of this logic\n */\n if (this._dropSegment === 'header') {\n this._resetHeaderDropZone();\n this.addChild(contentItem, this._dropIndex);\n return;\n }\n\n /*\n * The stack is empty. Let's just add the element.\n */\n if (this._dropSegment === 'body') {\n this.addChild(contentItem);\n return;\n }\n\n /*\n * The item was dropped on the top-, left-, bottom- or right- part of the content. Let's\n * aggregate some conditions to make the if statements later on more readable\n */\n const isVertical =\n this._dropSegment === 'top' || this._dropSegment === 'bottom';\n const isHorizontal =\n this._dropSegment === 'left' || this._dropSegment === 'right';\n const insertBefore =\n this._dropSegment === 'top' || this._dropSegment === 'left';\n const hasCorrectParent =\n this.parent instanceof RowOrColumn &&\n ((isVertical && this.parent.isColumn) ||\n (isHorizontal && this.parent.isRow));\n const type = isVertical ? 'column' : 'row';\n const dimension = isVertical ? 'height' : 'width';\n\n /*\n * The content item can be either a component or a stack. If it is a component, wrap it into a stack\n */\n if (isComponent(contentItem)) {\n const stack = this.layoutManager.createContentItem(\n {\n type: 'stack',\n header: contentItem.config.header || {},\n },\n this\n );\n stack._$init();\n stack.addChild(contentItem);\n contentItem = stack;\n }\n\n /*\n * If the item is dropped on top or bottom of a column or left and right of a row, it's already\n * layd out in the correct way. Just add it as a child\n */\n if (hasCorrectParent) {\n const index = this.parent!.contentItems.indexOf(this);\n\n // Should be a `RowOrColumn` if `hasCorrectParent` is true\n (this.parent as RowOrColumn).addChild(\n contentItem,\n insertBefore ? index : index + 1,\n true\n );\n this.config[dimension] = (this.config[dimension] ?? 0) * 0.5;\n contentItem.config[dimension] = this.config[dimension];\n this.parent!.callDownwards('setSize');\n /*\n * This handles items that are dropped on top or bottom of a row or left / right of a column. We need\n * to create the appropriate contentItem for them to live in\n */\n } else {\n const rowOrColumn = this.layoutManager.createContentItem({ type }, this);\n this.parent?.replaceChild(this, rowOrColumn);\n\n rowOrColumn.addChild(contentItem, insertBefore ? 0 : undefined, true);\n rowOrColumn.addChild(this, insertBefore ? undefined : 0, true);\n\n this.config[dimension] = 50;\n contentItem.config[dimension] = 50;\n rowOrColumn.callDownwards('setSize');\n }\n }\n\n /**\n * If the user hovers above the header part of the stack, indicate drop positions for tabs.\n * otherwise indicate which segment of the body the dragged item would be dropped on\n *\n * @param x Absolute Screen X\n * @param y Absolute Screen Y\n */\n _$highlightDropZone(x: number, y: number) {\n if (!this._contentAreaDimensions) {\n return;\n }\n\n for (let [segment, dimensions] of Object.entries(\n this._contentAreaDimensions\n ) as [BodySegment, HoverDimensions][]) {\n const area = dimensions.hoverArea;\n\n if (area.x1 < x && area.x2 > x && area.y1 < y && area.y2 > y) {\n if (segment === 'header') {\n this._dropSegment = 'header';\n this._highlightHeaderDropZone(x);\n } else {\n this._resetHeaderDropZone();\n this._highlightBodyDropZone(segment);\n }\n\n return;\n }\n }\n }\n\n _$getArea() {\n if (this.element.is(':visible') === false) {\n return null;\n }\n\n const headerArea = super._$getArea(this.header.element);\n const contentArea = super._$getArea(this.childElementContainer);\n if (headerArea == null || contentArea == null) {\n return null;\n }\n\n const contentWidth = contentArea.x2 - contentArea.x1;\n const contentHeight = contentArea.y2 - contentArea.y1;\n\n this._contentAreaDimensions = {\n header: {\n hoverArea: {\n x1: headerArea.x1,\n y1: headerArea.y1,\n x2: headerArea.x2,\n y2: headerArea.y2,\n },\n highlightArea: {\n x1: headerArea.x1,\n y1: headerArea.y1,\n x2: headerArea.x2,\n y2: headerArea.y2,\n },\n },\n };\n\n /**\n * If this Stack is a parent to rows, columns or other stacks only its\n * header is a valid dropzone.\n */\n if (\n this._activeContentItem &&\n this._activeContentItem.isComponent === false\n ) {\n return headerArea;\n }\n\n /**\n * Highlight the entire body if the stack is empty\n */\n if (this.contentItems.length === 0) {\n this._contentAreaDimensions.body = {\n hoverArea: {\n x1: contentArea.x1,\n y1: contentArea.y1,\n x2: contentArea.x2,\n y2: contentArea.y2,\n },\n highlightArea: {\n x1: contentArea.x1,\n y1: contentArea.y1,\n x2: contentArea.x2,\n y2: contentArea.y2,\n },\n };\n\n return super._$getArea(this.element);\n }\n\n this._contentAreaDimensions.left = {\n hoverArea: {\n x1: contentArea.x1,\n y1: contentArea.y1,\n x2: contentArea.x1 + contentWidth * 0.25,\n y2: contentArea.y2,\n },\n highlightArea: {\n x1: contentArea.x1,\n y1: contentArea.y1,\n x2: contentArea.x1 + contentWidth * 0.5,\n y2: contentArea.y2,\n },\n };\n\n this._contentAreaDimensions.top = {\n hoverArea: {\n x1: contentArea.x1 + contentWidth * 0.25,\n y1: contentArea.y1,\n x2: contentArea.x1 + contentWidth * 0.75,\n y2: contentArea.y1 + contentHeight * 0.5,\n },\n highlightArea: {\n x1: contentArea.x1,\n y1: contentArea.y1,\n x2: contentArea.x2,\n y2: contentArea.y1 + contentHeight * 0.5,\n },\n };\n\n this._contentAreaDimensions.right = {\n hoverArea: {\n x1: contentArea.x1 + contentWidth * 0.75,\n y1: contentArea.y1,\n x2: contentArea.x2,\n y2: contentArea.y2,\n },\n highlightArea: {\n x1: contentArea.x1 + contentWidth * 0.5,\n y1: contentArea.y1,\n x2: contentArea.x2,\n y2: contentArea.y2,\n },\n };\n\n this._contentAreaDimensions.bottom = {\n hoverArea: {\n x1: contentArea.x1 + contentWidth * 0.25,\n y1: contentArea.y1 + contentHeight * 0.5,\n x2: contentArea.x1 + contentWidth * 0.75,\n y2: contentArea.y2,\n },\n highlightArea: {\n x1: contentArea.x1,\n y1: contentArea.y1 + contentHeight * 0.5,\n x2: contentArea.x2,\n y2: contentArea.y2,\n },\n };\n\n return super._$getArea(this.element);\n }\n\n _highlightHeaderDropZone(x: number) {\n const tabsLength = this.header.tabs.length;\n\n // I've omitted code for side edge tabs here\n // illumon doesn't need it, will slowly pull that code out elsewhere too\n\n // Empty stack\n if (tabsLength === 0) {\n const headerOffset = this.header.element.offset();\n\n // we don't have a placeholder to measure in the dom, lets just cheat and make it 100px.\n this.layoutManager.dropTargetIndicator?.highlightArea({\n x1: headerOffset?.left ?? 0,\n x2: (headerOffset?.left ?? 0) + 100,\n y1: this.header.element.offset()?.top ?? 0,\n y2:\n (this.header.element.offset()?.top ?? 0) +\n (this.header.element.innerHeight() ?? 0),\n });\n\n return;\n }\n\n const tabsContainer = this.header.tabsContainer;\n const tabsContainerRect = tabsContainer.get(0)?.getBoundingClientRect();\n const placeholderRect = this.layoutManager.tabDropPlaceholder\n .get(0)\n ?.getBoundingClientRect();\n\n if (!tabsContainerRect || !placeholderRect) {\n return;\n }\n\n if (x < tabsContainerRect.left) {\n // is over left tab controls button\n // move x to a new point to inside left edge of container\n x = tabsContainerRect.left + 1;\n } else if (x > tabsContainerRect.right) {\n // is over right tab controls button\n // move x to a new point to inside right edge of container\n x = tabsContainerRect.right - 1;\n }\n\n let tabElement: JQuery<HTMLElement> | undefined;\n let tabRect: DOMRect | undefined;\n\n // if its not inide a placeholder,\n if (!(placeholderRect.left < x && x < placeholderRect.right)) {\n // which tab is it over ...\n for (var i = 0; i < tabsLength; i++) {\n tabElement = this.header.tabs[i].element;\n tabRect = tabElement.get(0)?.getBoundingClientRect();\n if (tabRect && tabRect.left < x && x < tabRect.right) {\n this._dropIndex = i;\n break;\n }\n }\n\n // we have tabRect at this x,y from the loop above\n if (tabElement && tabRect && x < tabRect.left + tabRect.width * 0.5) {\n // mostly before an element, insert placeholder before\n tabElement.before(this.layoutManager.tabDropPlaceholder);\n } else if (tabElement) {\n // x is likely after the lhe last item, position after and increase drop index\n this._dropIndex = Math.min((this._dropIndex ?? 0) + 1, tabsLength);\n tabElement.after(this.layoutManager.tabDropPlaceholder);\n }\n }\n\n let placeHolderLeft =\n this.layoutManager.tabDropPlaceholder.offset()?.left ?? 0;\n placeHolderLeft = Math.max(\n placeHolderLeft,\n this.header.tabsContainer.offset()?.left ?? 0\n );\n var placeHolderRight =\n placeHolderLeft + (this.layoutManager.tabDropPlaceholder.width() ?? 0);\n placeHolderRight = Math.min(\n placeHolderRight,\n (this.header.tabsContainer.offset()?.left ?? 0) +\n (this.header.tabsContainer.innerWidth() ?? 0)\n );\n this.layoutManager.dropTargetIndicator?.highlightArea({\n x1: placeHolderLeft,\n x2: placeHolderRight,\n y1: this.header.element.offset()?.top ?? 0,\n y2:\n (this.header.element.offset()?.top ?? 0) +\n (this.header.element.innerHeight() ?? 0),\n });\n }\n\n _resetHeaderDropZone() {\n this.layoutManager.tabDropPlaceholder.remove();\n }\n\n _setupHeaderPosition() {\n const side = ['right', 'left', 'bottom'].some(\n elem => elem === this._header.show\n )\n ? this._header.show\n : undefined;\n\n this.header.element.toggle(!!this._header.show);\n\n if (!side) {\n return;\n }\n\n this._side = side;\n this._sided = ['right', 'left'].indexOf(this._side.toString()) >= 0;\n this.element.removeClass('lm_left lm_right lm_bottom');\n if (this._side) this.element.addClass('lm_' + this._side);\n if (this.element.find('.lm_header').length && this.childElementContainer) {\n const headerPosition =\n ['right', 'bottom'].indexOf(this._side.toString()) >= 0\n ? 'before'\n : 'after';\n this.header.element[headerPosition](this.childElementContainer);\n this.callDownwards('setSize');\n }\n }\n\n _highlightBodyDropZone(segment: BodySegment) {\n const highlightArea = this._contentAreaDimensions?.[segment]?.highlightArea;\n if (highlightArea) {\n this.layoutManager.dropTargetIndicator?.highlightArea(highlightArea);\n }\n this._dropSegment = segment;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/golden-layout",
|
|
3
|
-
"version": "1.22.
|
|
3
|
+
"version": "1.22.2-alpha-pivot-builder.0730ba6.0+0730ba6",
|
|
4
4
|
"author": "Deephaven Data Labs LLC",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"description": "A multi-screen javascript Layout manager",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"source": "src/index.ts",
|
|
11
11
|
"type": "module",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@deephaven/components": "^1.22.
|
|
13
|
+
"@deephaven/components": "^1.22.2-alpha-pivot-builder.0730ba6.0+0730ba6",
|
|
14
14
|
"jquery": "^3.6.0",
|
|
15
15
|
"nanoid": "^5.0.7"
|
|
16
16
|
},
|
|
@@ -46,5 +46,5 @@
|
|
|
46
46
|
"publishConfig": {
|
|
47
47
|
"access": "public"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "0730ba6b285033ec30d1578e855b7a4319c8be99"
|
|
50
50
|
}
|