@deephaven/golden-layout 0.19.2-beta.4 → 0.20.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.
Files changed (144) hide show
  1. package/dist/LayoutManager.d.ts +313 -0
  2. package/dist/LayoutManager.d.ts.map +1 -0
  3. package/dist/LayoutManager.js +468 -450
  4. package/dist/LayoutManager.js.map +1 -1
  5. package/dist/base.d.ts +16 -0
  6. package/dist/base.d.ts.map +1 -0
  7. package/dist/base.js +6 -6
  8. package/dist/base.js.map +1 -1
  9. package/dist/config/Config.d.ts +146 -0
  10. package/dist/config/Config.d.ts.map +1 -0
  11. package/dist/config/{defaultConfig.js → Config.js} +6 -6
  12. package/dist/config/Config.js.map +1 -0
  13. package/dist/config/ItemConfig.d.ts +66 -0
  14. package/dist/config/ItemConfig.d.ts.map +1 -0
  15. package/dist/config/ItemConfig.js +14 -0
  16. package/dist/config/ItemConfig.js.map +1 -0
  17. package/dist/config/index.d.ts +3 -0
  18. package/dist/config/index.d.ts.map +1 -0
  19. package/dist/config/index.js +2 -6
  20. package/dist/config/index.js.map +1 -1
  21. package/dist/container/ItemContainer.d.ts +91 -0
  22. package/dist/container/ItemContainer.d.ts.map +1 -0
  23. package/dist/container/ItemContainer.js +110 -85
  24. package/dist/container/ItemContainer.js.map +1 -1
  25. package/dist/container/index.d.ts +3 -0
  26. package/dist/container/index.d.ts.map +1 -0
  27. package/dist/container/index.js +2 -4
  28. package/dist/container/index.js.map +1 -1
  29. package/dist/controls/BrowserPopout.d.ts +83 -0
  30. package/dist/controls/BrowserPopout.d.ts.map +1 -0
  31. package/dist/controls/BrowserPopout.js +135 -101
  32. package/dist/controls/BrowserPopout.js.map +1 -1
  33. package/dist/controls/DragProxy.d.ts +67 -0
  34. package/dist/controls/DragProxy.d.ts.map +1 -0
  35. package/dist/controls/DragProxy.js +135 -110
  36. package/dist/controls/DragProxy.js.map +1 -1
  37. package/dist/controls/DragSource.d.ts +30 -0
  38. package/dist/controls/DragSource.d.ts.map +1 -0
  39. package/dist/controls/DragSource.js +37 -29
  40. package/dist/controls/DragSource.js.map +1 -1
  41. package/dist/controls/DragSourceFromEvent.d.ts +30 -0
  42. package/dist/controls/DragSourceFromEvent.d.ts.map +1 -0
  43. package/dist/controls/DragSourceFromEvent.js +49 -36
  44. package/dist/controls/DragSourceFromEvent.js.map +1 -1
  45. package/dist/controls/DropTargetIndicator.d.ts +14 -0
  46. package/dist/controls/DropTargetIndicator.d.ts.map +1 -0
  47. package/dist/controls/DropTargetIndicator.js +18 -14
  48. package/dist/controls/DropTargetIndicator.js.map +1 -1
  49. package/dist/controls/Header.d.ts +145 -0
  50. package/dist/controls/Header.d.ts.map +1 -0
  51. package/dist/controls/Header.js +414 -271
  52. package/dist/controls/Header.js.map +1 -1
  53. package/dist/controls/HeaderButton.d.ts +9 -0
  54. package/dist/controls/HeaderButton.d.ts.map +1 -0
  55. package/dist/controls/HeaderButton.js +19 -13
  56. package/dist/controls/HeaderButton.js.map +1 -1
  57. package/dist/controls/Splitter.d.ts +12 -0
  58. package/dist/controls/Splitter.d.ts.map +1 -0
  59. package/dist/controls/Splitter.js +36 -20
  60. package/dist/controls/Splitter.js.map +1 -1
  61. package/dist/controls/Tab.d.ts +91 -0
  62. package/dist/controls/Tab.d.ts.map +1 -0
  63. package/dist/controls/Tab.js +131 -119
  64. package/dist/controls/Tab.js.map +1 -1
  65. package/dist/controls/TransitionIndicator.d.ts +25 -0
  66. package/dist/controls/TransitionIndicator.d.ts.map +1 -0
  67. package/dist/controls/TransitionIndicator.js +53 -39
  68. package/dist/controls/TransitionIndicator.js.map +1 -1
  69. package/dist/controls/index.d.ts +11 -0
  70. package/dist/controls/index.d.ts.map +1 -0
  71. package/dist/controls/index.js +10 -22
  72. package/dist/controls/index.js.map +1 -1
  73. package/dist/errors/ConfigurationError.d.ts +6 -0
  74. package/dist/errors/ConfigurationError.d.ts.map +1 -0
  75. package/dist/errors/ConfigurationError.js +15 -8
  76. package/dist/errors/ConfigurationError.js.map +1 -1
  77. package/dist/errors/index.d.ts +2 -0
  78. package/dist/errors/index.d.ts.map +1 -0
  79. package/dist/errors/index.js +1 -4
  80. package/dist/errors/index.js.map +1 -1
  81. package/dist/index.d.ts +9 -0
  82. package/dist/index.d.ts.map +1 -0
  83. package/dist/index.js +7 -1
  84. package/dist/index.js.map +1 -1
  85. package/dist/items/AbstractContentItem.d.ts +233 -0
  86. package/dist/items/AbstractContentItem.d.ts.map +1 -0
  87. package/dist/items/AbstractContentItem.js +284 -242
  88. package/dist/items/AbstractContentItem.js.map +1 -1
  89. package/dist/items/Component.d.ts +30 -0
  90. package/dist/items/Component.d.ts.map +1 -0
  91. package/dist/items/Component.js +61 -42
  92. package/dist/items/Component.js.map +1 -1
  93. package/dist/items/Root.d.ts +18 -0
  94. package/dist/items/Root.d.ts.map +1 -0
  95. package/dist/items/Root.js +68 -38
  96. package/dist/items/Root.js.map +1 -1
  97. package/dist/items/RowOrColumn.d.ts +157 -0
  98. package/dist/items/RowOrColumn.d.ts.map +1 -0
  99. package/dist/items/RowOrColumn.js +219 -187
  100. package/dist/items/RowOrColumn.js.map +1 -1
  101. package/dist/items/Stack.d.ts +108 -0
  102. package/dist/items/Stack.d.ts.map +1 -0
  103. package/dist/items/Stack.js +218 -151
  104. package/dist/items/Stack.js.map +1 -1
  105. package/dist/items/index.d.ts +8 -0
  106. package/dist/items/index.d.ts.map +1 -0
  107. package/dist/items/index.js +7 -12
  108. package/dist/items/index.js.map +1 -1
  109. package/dist/utils/BubblingEvent.d.ts +8 -0
  110. package/dist/utils/BubblingEvent.d.ts.map +1 -0
  111. package/dist/utils/BubblingEvent.js +18 -9
  112. package/dist/utils/BubblingEvent.js.map +1 -1
  113. package/dist/utils/ConfigMinifier.d.ts +21 -0
  114. package/dist/utils/ConfigMinifier.d.ts.map +1 -0
  115. package/dist/utils/ConfigMinifier.js +121 -121
  116. package/dist/utils/ConfigMinifier.js.map +1 -1
  117. package/dist/utils/DragListener.d.ts +34 -0
  118. package/dist/utils/DragListener.d.ts.map +1 -0
  119. package/dist/utils/DragListener.js +103 -70
  120. package/dist/utils/DragListener.js.map +1 -1
  121. package/dist/utils/EventEmitter.d.ts +59 -0
  122. package/dist/utils/EventEmitter.d.ts.map +1 -0
  123. package/dist/utils/EventEmitter.js +64 -70
  124. package/dist/utils/EventEmitter.js.map +1 -1
  125. package/dist/utils/EventHub.d.ts +55 -0
  126. package/dist/utils/EventHub.d.ts.map +1 -0
  127. package/dist/utils/EventHub.js +83 -105
  128. package/dist/utils/EventHub.js.map +1 -1
  129. package/dist/utils/ReactComponentHandler.d.ts +54 -0
  130. package/dist/utils/ReactComponentHandler.d.ts.map +1 -0
  131. package/dist/utils/ReactComponentHandler.js +58 -56
  132. package/dist/utils/ReactComponentHandler.js.map +1 -1
  133. package/dist/utils/index.d.ts +8 -0
  134. package/dist/utils/index.d.ts.map +1 -0
  135. package/dist/utils/index.js +7 -21
  136. package/dist/utils/index.js.map +1 -1
  137. package/dist/utils/utils.d.ts +25 -0
  138. package/dist/utils/utils.d.ts.map +1 -0
  139. package/dist/utils/utils.js +21 -145
  140. package/dist/utils/utils.js.map +1 -1
  141. package/package.json +9 -5
  142. package/dist/config/ItemDefaultConfig.js +0 -8
  143. package/dist/config/ItemDefaultConfig.js.map +0 -1
  144. package/dist/config/defaultConfig.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractContentItem.js","names":["utils","errors","config","itemDefaultConfig","AbstractContentItem","layoutManager","parent","EventEmitter","call","_extendItemNode","type","contentItems","isInitialised","isMaximised","isRoot","isRow","isColumn","isStack","isComponent","_pendingEventPropagations","_throttledEvents","on","ALL_EVENT","_propagateEvent","content","_createContentItems","copy","prototype","setSize","Error","callDownwards","functionName","functionArguments","bottomUp","skipSelf","i","apply","length","removeChild","contentItem","keepChild","index","indexOf","_$destroy","splice","isClosable","addChild","undefined","_$init","replaceChild","oldChild","newChild","_$destroyOldChild","_$normalizeContentItem","parentNode","element","header","tabs","remove","popout","browserPopout","createPopout","emitBubblingEvent","toggleMaximise","e","preventDefault","_$minimiseItem","_$maximiseItem","select","selectedItem","selectItem","addClass","deselect","removeClass","setTitle","title","emit","hasId","id","Array","addId","push","removeId","getItemsByFilter","filter","result","next","getItemsById","item","getItemsByType","_$getItemsByProperty","getComponentsByName","componentName","components","instances","instance","key","value","_$setParent","_$highlightDropZone","x","y","area","dropTargetIndicator","highlightArea","_$onDrop","_$hide","_callOnActiveComponents","hide","updateSize","_$show","show","methodName","stacks","activeContentItem","getActiveContentItem","container","_$getArea","offset","width","height","x1","left","y1","top","x2","y2","surface","childElementContainer","append","name","event","BubblingEvent","oContentItem","ConfigurationError","createContentItem","isPropagationStopped","slice","arguments","_scheduleEventPropagationToLayoutManager","origin","animFrame","fnBind","_propagateEventToLayoutManager"],"sources":["../../src/items/AbstractContentItem.js"],"sourcesContent":["import utils from '../utils/index.js';\nimport errors from '../errors/index.js';\nimport config from '../config/index.js';\n\nconst { itemDefaultConfig } = config;\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 */\nconst AbstractContentItem = function (layoutManager, config, parent) {\n utils.EventEmitter.call(this);\n\n this.config = this._extendItemNode(config);\n this.type = config.type;\n this.contentItems = [];\n this.parent = parent;\n\n this.isInitialised = false;\n this.isMaximised = false;\n this.isRoot = false;\n this.isRow = false;\n this.isColumn = false;\n this.isStack = false;\n this.isComponent = false;\n\n this.layoutManager = layoutManager;\n this._pendingEventPropagations = {};\n this._throttledEvents = ['stateChanged'];\n\n this.on(utils.EventEmitter.ALL_EVENT, this._propagateEvent, this);\n\n if (config.content) {\n this._createContentItems(config);\n }\n};\n\nutils.copy(AbstractContentItem.prototype, {\n /**\n * Set the size of the component and its children, called recursively\n *\n * @abstract\n * @returns void\n */\n setSize: function () {\n throw new Error('Abstract Method');\n },\n\n /**\n * Calls a method recursively downwards on the tree\n *\n * @param {String} functionName the name of the function to be called\n * @param {[Array]}functionArguments optional arguments that are passed to every function\n * @param {[bool]} bottomUp Call methods from bottom to top, defaults to false\n * @param {[bool]} skipSelf Don't invoke the method on the class that calls it, defaults to false\n *\n * @returns {void}\n */\n callDownwards: function (\n functionName,\n functionArguments,\n bottomUp,\n skipSelf\n ) {\n var i;\n\n if (bottomUp !== true && skipSelf !== true) {\n this[functionName].apply(this, functionArguments || []);\n }\n for (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 {lm.items.ContentItem} contentItem\n *\n * @returns {void}\n */\n removeChild: function (contentItem, keepChild) {\n /*\n * Get the position of the item that's to be removed within all content items this node contains\n */\n var index = utils.indexOf(contentItem, this.contentItems);\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 {lm.items.AbstractContentItem} contentItem\n * @param {[Int]} index If omitted item will be appended\n */\n addChild: function (contentItem, index) {\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 {lm.item.AbstractContentItem} oldChild\n * @param {lm.item.AbstractContentItem} newChild\n *\n * @returns {void}\n */\n replaceChild: function (oldChild, newChild, _$destroyOldChild) {\n newChild = this.layoutManager._$normalizeContentItem(newChild);\n\n var index = utils.indexOf(oldChild, this.contentItems),\n 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\n */\n if (this.isStack) {\n this.header.tabs[index].contentItem = 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 * @returns {void}\n */\n remove: function () {\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 * @returns {lm.controls.BrowserPopout}\n */\n popout: function () {\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 * @returns {void}\n */\n toggleMaximise: function (e) {\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 * @returns {void}\n */\n select: function () {\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 * @returns {void}\n */\n deselect: function () {\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 *\n * @public\n * @param {String} title\n *\n * @returns {void}\n */\n setTitle: function (title) {\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 *\n * @public\n * @param {String} id\n *\n * @returns {Boolean} isPresent\n */\n hasId: function (id) {\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 utils.indexOf(id, this.config.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 *\n * @public\n * @param {String} id\n *\n * @returns {void}\n */\n addId: function (id) {\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 *\n * @public\n * @param {String} id\n *\n * @returns {void}\n */\n removeId: function (id) {\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 = utils.indexOf(id, this.config.id);\n this.config.id.splice(index, 1);\n }\n },\n\n /****************************************\n * SELECTOR\n ****************************************/\n getItemsByFilter: function (filter) {\n var result = [],\n next = function (contentItem) {\n for (var 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: function (id) {\n return this.getItemsByFilter(function (item) {\n if (item.config.id instanceof Array) {\n return utils.indexOf(id, item.config.id) !== -1;\n } else {\n return item.config.id === id;\n }\n });\n },\n\n getItemsByType: function (type) {\n return this._$getItemsByProperty('type', type);\n },\n\n getComponentsByName: function (componentName) {\n var components = this._$getItemsByProperty('componentName', componentName),\n instances = [],\n i;\n\n for (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: function (key, value) {\n return this.getItemsByFilter(function (item) {\n return item[key] === value;\n });\n },\n\n _$setParent: function (parent) {\n this.parent = parent;\n },\n\n _$highlightDropZone: function (x, y, area) {\n this.layoutManager.dropTargetIndicator.highlightArea(area);\n },\n\n _$onDrop: function (contentItem) {\n this.addChild(contentItem);\n },\n\n _$hide: function () {\n this._callOnActiveComponents('hide');\n this.element.hide();\n this.layoutManager.updateSize();\n },\n\n _$show: function () {\n this._callOnActiveComponents('show');\n this.element.show();\n this.layoutManager.updateSize();\n },\n\n _callOnActiveComponents: function (methodName) {\n var stacks = this.getItemsByType('stack'),\n activeContentItem,\n i;\n\n for (i = 0; i < stacks.length; i++) {\n activeContentItem = stacks[i].getActiveContentItem();\n\n if (activeContentItem && activeContentItem.isComponent) {\n activeContentItem.container[methodName]();\n }\n }\n },\n\n /**\n * Destroys this item ands its children\n *\n * @returns {void}\n */\n _$destroy: function () {\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\txy: int\n *\t\ty1: int\n *\t\ty2: int\n *\t\tcontentItem: contentItem\n * }\n */\n _$getArea: function (element) {\n element = element || this.element;\n\n var offset = element.offset(),\n width = element.width(),\n height = element.height();\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 };\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 * @package private\n *\n * @returns {void}\n */\n _$init: function () {\n var i;\n this.setSize();\n\n for (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 {String} name The name of the event\n *\n * @returns {void}\n */\n emitBubblingEvent: function (name) {\n var event = new utils.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 * @private\n * @param {configuration item node} config\n *\n * @returns {void}\n */\n _createContentItems: function (config) {\n var oContentItem, i;\n\n if (!(config.content instanceof Array)) {\n throw new errors.ConfigurationError('content must be an Array', config);\n }\n\n for (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 * @private\n * @param {configuration item node} config\n *\n * @returns {configuration item node} extended config\n */\n _extendItemNode: function (config) {\n for (var key in itemDefaultConfig) {\n if (config[key] === undefined) {\n config[key] = itemDefaultConfig[key];\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 {String} name the name of the event\n * @param {lm.utils.BubblingEvent} event\n *\n * @returns {void}\n */\n _propagateEvent: function (name, event) {\n if (\n event instanceof utils.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(\n this.parent,\n Array.prototype.slice.call(arguments, 0)\n );\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 {String} name the name of the event\n *\n * @private\n * @returns {void}\n */\n _scheduleEventPropagationToLayoutManager: function (name, event) {\n if (utils.indexOf(name, this._throttledEvents) === -1) {\n this.layoutManager.emit(name, event.origin);\n } else {\n if (this._pendingEventPropagations[name] !== true) {\n this._pendingEventPropagations[name] = true;\n utils.animFrame(\n utils.fnBind(this._propagateEventToLayoutManager, this, [name, event])\n );\n }\n }\n },\n\n /**\n * Callback for events scheduled by _scheduleEventPropagationToLayoutManager\n *\n * @param {String} name the name of the event\n *\n * @private\n * @returns {void}\n */\n _propagateEventToLayoutManager: function (name, event) {\n this._pendingEventPropagations[name] = false;\n this.layoutManager.emit(name, event);\n },\n});\n\nexport default AbstractContentItem;\n"],"mappings":"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"}
1
+ {"version":3,"file":"AbstractContentItem.js","names":["animFrame","BubblingEvent","EventEmitter","ConfigurationError","itemDefaultConfig","isStack","item","isComponent","isRoot","AbstractContentItem","constructor","layoutManager","config","parent","element","_extendItemNode","type","contentItems","_pendingEventPropagations","_throttledEvents","on","ALL_EVENT","_propagateEvent","content","_createContentItems","callDownwards","functionName","functionArguments","bottomUp","skipSelf","apply","i","length","removeChild","contentItem","keepChild","index","indexOf","Error","_$destroy","splice","isClosable","addChild","_$normalizeContentItem","undefined","isInitialised","_$init","replaceChild","oldChild","newChild","_$destroyOldChild","parentNode","header","tabs","remove","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","dropTargetIndicator","highlightArea","_$onDrop","_$hide","_callOnActiveComponents","hide","updateSize","_$show","show","methodName","stacks","activeContentItem","getActiveContentItem","container","_$getArea","offset","left","top","width","height","x1","y1","x2","y2","surface","side","setSize","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, ItemConfigType } 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\ntype AbstractItemConfig =\n | ItemConfig\n | {\n type: ItemConfig['type'];\n content: ItemConfigType[];\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: AbstractItemConfig,\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(\n contentItem:\n | AbstractContentItem\n | ItemConfigType\n | { type: ItemConfig['type'] },\n index?: number\n ) {\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,\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\n */\n if (isStack(this)) {\n this.header.tabs[index].contentItem = 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: AbstractItemConfig) {\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(config: AbstractItemConfig) {\n for (let [key, value] of Object.entries(itemDefaultConfig)) {\n // This just appeases TS\n const k = key as keyof AbstractItemConfig;\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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"}
@@ -0,0 +1,30 @@
1
+ import AbstractContentItem from './AbstractContentItem';
2
+ import type LayoutManager from '../LayoutManager';
3
+ import type { ComponentConfig } from '../config/ItemConfig';
4
+ import ItemContainer from '../container/ItemContainer';
5
+ /**
6
+ * @param layoutManager
7
+ * @param config
8
+ * @param parent
9
+ */
10
+ export default class Component extends AbstractContentItem {
11
+ config: ComponentConfig;
12
+ componentName: string;
13
+ container: ItemContainer;
14
+ parent: AbstractContentItem;
15
+ instance: unknown;
16
+ constructor(layoutManager: LayoutManager, config: ComponentConfig, parent: AbstractContentItem);
17
+ close(): void;
18
+ setSize(): void;
19
+ _$init(): void;
20
+ _$hide(): void;
21
+ _$show(): void;
22
+ _$destroy(): void;
23
+ /**
24
+ * Dragging onto a component directly is not an option
25
+ *
26
+ * @returns null
27
+ */
28
+ _$getArea(): null;
29
+ }
30
+ //# sourceMappingURL=Component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Component.d.ts","sourceRoot":"","sources":["../../src/items/Component.ts"],"names":[],"mappings":"AACA,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,aAAa,MAAM,4BAA4B,CAAC;AAGvD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,mBAAmB;IACxD,MAAM,EAAE,eAAe,CAAC;IAExB,aAAa,EAAE,MAAM,CAAC;IAEtB,SAAS,EAAE,aAAa,CAAC;IAEzB,MAAM,EAAE,mBAAmB,CAAC;IAE5B,QAAQ,EAAE,OAAO,CAAC;gBAGhB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,mBAAmB;IA8B7B,KAAK;IAIL,OAAO;IAOP,MAAM;IAKN,MAAM;IAKN,MAAM;IAUN,SAAS;IAKT;;;;OAIG;IACH,SAAS;CAGV"}
@@ -1,58 +1,75 @@
1
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
+
1
3
  import $ from 'jquery';
2
- import AbstractContentItem from './AbstractContentItem.js';
3
- import utils from '../utils/index.js';
4
- import errors from '../errors/index.js';
5
- import container from '../container/index.js';
4
+ import AbstractContentItem from "./AbstractContentItem.js";
5
+ import { ConfigurationError } from "../errors/index.js";
6
+ import ItemContainer from "../container/ItemContainer.js";
7
+
6
8
  /**
7
- * @param {[type]} layoutManager [description]
8
- * @param {[type]} config [description]
9
- * @param {[type]} parent [description]
9
+ * @param layoutManager
10
+ * @param config
11
+ * @param parent
10
12
  */
13
+ export default class Component extends AbstractContentItem {
14
+ constructor(layoutManager, config, parent) {
15
+ super(layoutManager, config, parent, $());
11
16
 
12
- var Component = function Component(layoutManager, config, parent) {
13
- AbstractContentItem.call(this, layoutManager, config, parent);
14
- var ComponentConstructor = layoutManager.getComponent(this.config.componentName) || layoutManager.getFallbackComponent(),
15
- componentConfig = $.extend(true, {}, this.config.componentState || {});
17
+ _defineProperty(this, "config", void 0);
16
18
 
17
- if (ComponentConstructor == null) {
18
- throw new errors.ConfigurationError('Unknown component "' + this.config.componentName + '"');
19
- }
19
+ _defineProperty(this, "componentName", void 0);
20
20
 
21
- componentConfig.componentName = this.config.componentName;
22
- this.componentName = this.config.componentName;
21
+ _defineProperty(this, "container", void 0);
23
22
 
24
- if (this.config.title === '') {
25
- this.config.title = this.config.componentName;
26
- }
23
+ _defineProperty(this, "parent", void 0);
24
+
25
+ _defineProperty(this, "instance", void 0);
26
+
27
+ this.config = config;
28
+ this.parent = parent;
29
+ var ComponentConstructor = layoutManager.getComponent(this.config.componentName) || layoutManager.getFallbackComponent(),
30
+ componentConfig = $.extend(true, {}, this.config.componentState || {});
31
+
32
+ if (ComponentConstructor == null) {
33
+ throw new ConfigurationError('Unknown component "' + this.config.componentName + '"');
34
+ }
35
+
36
+ componentConfig.componentName = this.config.componentName;
37
+ this.componentName = this.config.componentName;
27
38
 
28
- this.isComponent = true;
29
- this.container = new container.ItemContainer(this.config, this, layoutManager);
30
- this.instance = new ComponentConstructor(this.container, componentConfig);
31
- this.element = this.container._element;
32
- };
39
+ if (this.config.title === '') {
40
+ this.config.title = this.config.componentName;
41
+ }
33
42
 
34
- utils.extend(Component, AbstractContentItem);
35
- utils.copy(Component.prototype, {
36
- close: function close() {
43
+ this.isComponent = true;
44
+ this.container = new ItemContainer(this.config, this, layoutManager);
45
+ this.instance = new ComponentConstructor(this.container, componentConfig);
46
+ this.element = this.container._element;
47
+ }
48
+
49
+ close() {
37
50
  this.parent.removeChild(this);
38
- },
39
- setSize: function setSize() {
51
+ }
52
+
53
+ setSize() {
40
54
  if (this.element.is(':visible')) {
41
55
  // Do not update size of hidden components to prevent unwanted reflows
42
56
  this.container._$setSize(this.element.width(), this.element.height());
43
57
  }
44
- },
45
- _$init: function _$init() {
58
+ }
59
+
60
+ _$init() {
46
61
  AbstractContentItem.prototype._$init.call(this);
47
62
 
48
63
  this.container.emit('open');
49
- },
50
- _$hide: function _$hide() {
64
+ }
65
+
66
+ _$hide() {
51
67
  this.container.hide();
52
68
 
53
69
  AbstractContentItem.prototype._$hide.call(this);
54
- },
55
- _$show: function _$show() {
70
+ }
71
+
72
+ _$show() {
56
73
  this.container.show();
57
74
 
58
75
  if (this.container._config.isFocusOnShow) {
@@ -64,21 +81,23 @@ utils.copy(Component.prototype, {
64
81
  }
65
82
 
66
83
  AbstractContentItem.prototype._$show.call(this);
67
- },
68
- _$destroy: function _$destroy() {
84
+ }
85
+
86
+ _$destroy() {
69
87
  this.container.emit('destroy', this);
70
88
 
71
89
  AbstractContentItem.prototype._$destroy.call(this);
72
- },
73
-
90
+ }
74
91
  /**
75
92
  * Dragging onto a component directly is not an option
76
93
  *
77
94
  * @returns null
78
95
  */
79
- _$getArea: function _$getArea() {
96
+
97
+
98
+ _$getArea() {
80
99
  return null;
81
100
  }
82
- });
83
- export default Component;
101
+
102
+ }
84
103
  //# sourceMappingURL=Component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","names":["$","AbstractContentItem","utils","errors","container","Component","layoutManager","config","parent","call","ComponentConstructor","getComponent","componentName","getFallbackComponent","componentConfig","extend","componentState","ConfigurationError","title","isComponent","ItemContainer","instance","element","_element","copy","prototype","close","removeChild","setSize","is","_$setSize","width","height","_$init","emit","_$hide","hide","_$show","show","_config","isFocusOnShow","_contentElement","focus","preventScroll","_$destroy","_$getArea"],"sources":["../../src/items/Component.js"],"sourcesContent":["import $ from 'jquery';\nimport AbstractContentItem from './AbstractContentItem.js';\nimport utils from '../utils/index.js';\nimport errors from '../errors/index.js';\nimport container from '../container/index.js';\n\n/**\n * @param {[type]} layoutManager [description]\n * @param {[type]} config [description]\n * @param {[type]} parent [description]\n */\nconst Component = function (layoutManager, config, parent) {\n AbstractContentItem.call(this, layoutManager, config, parent);\n\n var ComponentConstructor =\n layoutManager.getComponent(this.config.componentName) ||\n layoutManager.getFallbackComponent(),\n componentConfig = $.extend(true, {}, this.config.componentState || {});\n\n if (ComponentConstructor == null) {\n throw new errors.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 container.ItemContainer(\n this.config,\n this,\n layoutManager\n );\n this.instance = new ComponentConstructor(this.container, componentConfig);\n this.element = this.container._element;\n};\n\nutils.extend(Component, AbstractContentItem);\n\nutils.copy(Component.prototype, {\n close: function () {\n this.parent.removeChild(this);\n },\n\n setSize: function () {\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: function () {\n AbstractContentItem.prototype._$init.call(this);\n this.container.emit('open');\n },\n\n _$hide: function () {\n this.container.hide();\n AbstractContentItem.prototype._$hide.call(this);\n },\n\n _$show: function () {\n this.container.show();\n if (this.container._config.isFocusOnShow) {\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: function () {\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: function () {\n return null;\n },\n});\n\nexport default Component;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Component.js","names":["$","AbstractContentItem","ConfigurationError","ItemContainer","Component","constructor","layoutManager","config","parent","ComponentConstructor","getComponent","componentName","getFallbackComponent","componentConfig","extend","componentState","title","isComponent","container","instance","element","_element","close","removeChild","setSize","is","_$setSize","width","height","_$init","prototype","call","emit","_$hide","hide","_$show","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;\n\n instance: unknown;\n\n constructor(\n layoutManager: LayoutManager,\n config: ComponentConfig,\n parent: AbstractContentItem\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() {\n this.container.show();\n if (this.container._config.isFocusOnShow) {\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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"}
@@ -0,0 +1,18 @@
1
+ import type { ComponentConfig, ItemConfigType, ItemConfig } from '../config';
2
+ import LayoutManager from '../LayoutManager';
3
+ import AbstractContentItem, { ItemArea } from './AbstractContentItem';
4
+ export default class Root extends AbstractContentItem {
5
+ childElementContainer: JQuery<HTMLElement>;
6
+ private _containerElement;
7
+ constructor(layoutManager: LayoutManager, config: ComponentConfig | {
8
+ content: ItemConfigType[];
9
+ }, containerElement: JQuery<HTMLElement>);
10
+ addChild(contentItem: AbstractContentItem | ItemConfigType | {
11
+ type: ItemConfig['type'];
12
+ }, index?: number): void;
13
+ setSize(width?: number, height?: number): void;
14
+ _$getArea(): ItemArea<this>;
15
+ _$highlightDropZone(x: number, y: number, area: ItemArea): void;
16
+ _$onDrop(contentItem: AbstractContentItem, area: ItemArea): void;
17
+ }
18
+ //# sourceMappingURL=Root.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Root.d.ts","sourceRoot":"","sources":["../../src/items/Root.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAC7C,OAAO,mBAAmB,EAAE,EAE1B,QAAQ,EACT,MAAM,uBAAuB,CAAC;AAG/B,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,mBAAmB;IACnD,qBAAqB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAE3C,OAAO,CAAC,iBAAiB,CAAsB;gBAG7C,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,eAAe,GAAG;QAAE,OAAO,EAAE,cAAc,EAAE,CAAA;KAAE,EACvD,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC;IAevC,QAAQ,CACN,WAAW,EACP,mBAAmB,GACnB,cAAc,GACd;QAAE,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;KAAE,EAChC,KAAK,CAAC,EAAE,MAAM;IAchB,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAsBvC,SAAS;IAQT,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ;IAKxD,QAAQ,CAAC,WAAW,EAAE,mBAAmB,EAAE,IAAI,EAAE,QAAQ;CAgD1D"}
@@ -1,35 +1,47 @@
1
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2
+
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
+
5
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+
1
7
  import $ from 'jquery';
2
- import utils from '../utils/index.js';
3
- import AbstractContentItem from './AbstractContentItem.js';
4
- import RowOrColumn from './RowOrColumn.js';
5
-
6
- var Root = function Root(layoutManager, config, containerElement) {
7
- AbstractContentItem.call(this, layoutManager, config, null);
8
- this.isRoot = true;
9
- this.type = 'root';
10
- this.element = $('<div class="lm_goldenlayout lm_item lm_root"></div>');
11
- this.childElementContainer = this.element;
12
- this._containerElement = containerElement;
13
-
14
- this._containerElement.append(this.element);
15
- };
16
-
17
- utils.extend(Root, AbstractContentItem);
18
- utils.copy(Root.prototype, {
19
- addChild: function addChild(contentItem) {
8
+ import AbstractContentItem, { isComponent } from "./AbstractContentItem.js";
9
+ import RowOrColumn from "./RowOrColumn.js";
10
+ export default class Root extends AbstractContentItem {
11
+ constructor(layoutManager, config, containerElement) {
12
+ super(layoutManager, _objectSpread(_objectSpread({}, config), {}, {
13
+ type: 'root'
14
+ }), null, $('<div class="lm_goldenlayout lm_item lm_root"></div>'));
15
+
16
+ _defineProperty(this, "childElementContainer", void 0);
17
+
18
+ _defineProperty(this, "_containerElement", void 0);
19
+
20
+ this.isRoot = true;
21
+ this.type = 'root';
22
+ this.childElementContainer = this.element;
23
+ this._containerElement = containerElement;
24
+
25
+ this._containerElement.append(this.element);
26
+ }
27
+
28
+ addChild(contentItem, index) {
20
29
  if (this.contentItems.length > 0) {
21
30
  throw new Error('Root node can only have a single child');
22
31
  }
23
32
 
24
33
  contentItem = this.layoutManager._$normalizeContentItem(contentItem, this);
25
34
  this.childElementContainer.append(contentItem.element);
26
- AbstractContentItem.prototype.addChild.call(this, contentItem);
35
+ super.addChild(contentItem, index);
27
36
  this.callDownwards('setSize');
28
37
  this.emitBubblingEvent('stateChanged');
29
- },
30
- setSize: function setSize(width, height) {
31
- width = typeof width === 'undefined' ? this._containerElement.width() : width;
32
- height = typeof height === 'undefined' ? this._containerElement.height() : height;
38
+ }
39
+
40
+ setSize(width, height) {
41
+ var _this$_containerEleme, _this$_containerEleme2;
42
+
43
+ width = typeof width === 'undefined' ? (_this$_containerEleme = this._containerElement.width()) !== null && _this$_containerEleme !== void 0 ? _this$_containerEleme : 0 : width;
44
+ height = typeof height === 'undefined' ? (_this$_containerEleme2 = this._containerElement.height()) !== null && _this$_containerEleme2 !== void 0 ? _this$_containerEleme2 : 0 : height;
33
45
  this.element.width(width);
34
46
  this.element.height(height);
35
47
  /*
@@ -40,16 +52,28 @@ utils.copy(Root.prototype, {
40
52
  this.contentItems[0].element.width(width);
41
53
  this.contentItems[0].element.height(height);
42
54
  }
43
- },
44
- _$highlightDropZone: function _$highlightDropZone(x, y, area) {
55
+ }
56
+
57
+ _$getArea() {
58
+ var area = super._$getArea();
59
+
60
+ if (area == null) {
61
+ throw new Error('Unable to get root area');
62
+ }
63
+
64
+ return area;
65
+ }
66
+
67
+ _$highlightDropZone(x, y, area) {
45
68
  this.layoutManager.tabDropPlaceholder.remove();
46
69
 
47
- AbstractContentItem.prototype._$highlightDropZone.apply(this, arguments);
48
- },
49
- _$onDrop: function _$onDrop(contentItem, area) {
70
+ super._$highlightDropZone(x, y, area);
71
+ }
72
+
73
+ _$onDrop(contentItem, area) {
50
74
  var stack;
51
75
 
52
- if (contentItem.isComponent) {
76
+ if (isComponent(contentItem)) {
53
77
  stack = this.layoutManager.createContentItem({
54
78
  type: 'stack',
55
79
  header: contentItem.config.header || {}
@@ -64,12 +88,16 @@ utils.copy(Root.prototype, {
64
88
  if (!this.contentItems.length) {
65
89
  this.addChild(contentItem);
66
90
  } else {
67
- var type = area.side[0] == 'x' ? 'row' : 'column';
68
- var dimension = area.side[0] == 'x' ? 'width' : 'height';
69
- var insertBefore = area.side[1] == '2';
91
+ var {
92
+ side
93
+ } = area;
94
+ var type = side === 'left' || side === 'right' ? 'row' : 'column'; // Should new root be a row or column
95
+
96
+ var dimension = side === 'left' || side === 'right' ? 'width' : 'height';
97
+ var insertBefore = side === 'left' || side === 'top';
70
98
  var column = this.contentItems[0];
71
99
 
72
- if (!column instanceof RowOrColumn || column.type != type) {
100
+ if (!(column instanceof RowOrColumn) || column.type != type) {
73
101
  var rowOrColumn = this.layoutManager.createContentItem({
74
102
  type: type
75
103
  }, this);
@@ -80,14 +108,16 @@ utils.copy(Root.prototype, {
80
108
  contentItem.config[dimension] = 50;
81
109
  rowOrColumn.callDownwards('setSize');
82
110
  } else {
83
- var sibbling = column.contentItems[insertBefore ? 0 : column.contentItems.length - 1];
111
+ var _sibling$config$dimen;
112
+
113
+ var sibling = column.contentItems[insertBefore ? 0 : column.contentItems.length - 1];
84
114
  column.addChild(contentItem, insertBefore ? 0 : undefined, true);
85
- sibbling.config[dimension] *= 0.5;
86
- contentItem.config[dimension] = sibbling.config[dimension];
115
+ sibling.config[dimension] = ((_sibling$config$dimen = sibling.config[dimension]) !== null && _sibling$config$dimen !== void 0 ? _sibling$config$dimen : 0) * 0.5;
116
+ contentItem.config[dimension] = sibling.config[dimension];
87
117
  column.callDownwards('setSize');
88
118
  }
89
119
  }
90
120
  }
91
- });
92
- export default Root;
121
+
122
+ }
93
123
  //# sourceMappingURL=Root.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Root.js","names":["$","utils","AbstractContentItem","RowOrColumn","Root","layoutManager","config","containerElement","call","isRoot","type","element","childElementContainer","_containerElement","append","extend","copy","prototype","addChild","contentItem","contentItems","length","Error","_$normalizeContentItem","callDownwards","emitBubblingEvent","setSize","width","height","_$highlightDropZone","x","y","area","tabDropPlaceholder","remove","apply","arguments","_$onDrop","stack","isComponent","createContentItem","header","_$init","side","dimension","insertBefore","column","rowOrColumn","replaceChild","undefined","sibbling"],"sources":["../../src/items/Root.js"],"sourcesContent":["import $ from 'jquery';\nimport utils from '../utils/index.js';\nimport AbstractContentItem from './AbstractContentItem.js';\nimport RowOrColumn from './RowOrColumn.js';\n\nconst Root = function (layoutManager, config, containerElement) {\n AbstractContentItem.call(this, layoutManager, config, null);\n this.isRoot = true;\n this.type = 'root';\n this.element = $('<div class=\"lm_goldenlayout lm_item lm_root\"></div>');\n this.childElementContainer = this.element;\n this._containerElement = containerElement;\n this._containerElement.append(this.element);\n};\n\nutils.extend(Root, AbstractContentItem);\n\nutils.copy(Root.prototype, {\n addChild: function (contentItem) {\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 AbstractContentItem.prototype.addChild.call(this, contentItem);\n\n this.callDownwards('setSize');\n this.emitBubblingEvent('stateChanged');\n },\n\n setSize: function (width, height) {\n width =\n typeof width === 'undefined' ? this._containerElement.width() : width;\n height =\n typeof height === 'undefined' ? this._containerElement.height() : 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 _$highlightDropZone: function (x, y, area) {\n this.layoutManager.tabDropPlaceholder.remove();\n AbstractContentItem.prototype._$highlightDropZone.apply(this, arguments);\n },\n\n _$onDrop: function (contentItem, area) {\n var stack;\n\n if (contentItem.isComponent) {\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 var type = area.side[0] == 'x' ? 'row' : 'column';\n var dimension = area.side[0] == 'x' ? 'width' : 'height';\n var insertBefore = area.side[1] == '2';\n var column = this.contentItems[0];\n if (!column instanceof RowOrColumn || column.type != type) {\n var rowOrColumn = this.layoutManager.createContentItem(\n { type: type },\n this\n );\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 var sibbling =\n column.contentItems[\n insertBefore ? 0 : column.contentItems.length - 1\n ];\n column.addChild(contentItem, insertBefore ? 0 : undefined, true);\n sibbling.config[dimension] *= 0.5;\n contentItem.config[dimension] = sibbling.config[dimension];\n column.callDownwards('setSize');\n }\n }\n },\n});\n\nexport default Root;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Root.js","names":["$","AbstractContentItem","isComponent","RowOrColumn","Root","constructor","layoutManager","config","containerElement","type","isRoot","childElementContainer","element","_containerElement","append","addChild","contentItem","index","contentItems","length","Error","_$normalizeContentItem","callDownwards","emitBubblingEvent","setSize","width","height","_$getArea","area","_$highlightDropZone","x","y","tabDropPlaceholder","remove","_$onDrop","stack","createContentItem","header","_$init","side","dimension","insertBefore","column","rowOrColumn","replaceChild","undefined","sibling"],"sources":["../../src/items/Root.ts"],"sourcesContent":["import $ from 'jquery';\nimport type { ComponentConfig, ItemConfigType, 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: ItemConfigType[] },\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(\n contentItem:\n | AbstractContentItem\n | ItemConfigType\n | { type: ItemConfig['type'] },\n index?: number\n ) {\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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"}