@deephaven/golden-layout 0.17.1-beta.2 → 0.18.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/LayoutManager.js +1140 -0
- package/dist/LayoutManager.js.map +1 -0
- package/dist/base.js +16 -0
- package/dist/base.js.map +1 -0
- package/dist/config/ItemDefaultConfig.js +8 -0
- package/dist/config/ItemDefaultConfig.js.map +1 -0
- package/dist/config/defaultConfig.js +42 -0
- package/dist/config/defaultConfig.js.map +1 -0
- package/dist/config/index.js +7 -0
- package/dist/config/index.js.map +1 -0
- package/dist/container/ItemContainer.js +192 -0
- package/dist/container/ItemContainer.js.map +1 -0
- package/dist/container/index.js +5 -0
- package/dist/container/index.js.map +1 -0
- package/dist/controls/BrowserPopout.js +260 -0
- package/dist/controls/BrowserPopout.js.map +1 -0
- package/dist/controls/DragProxy.js +236 -0
- package/dist/controls/DragProxy.js.map +1 -0
- package/dist/controls/DragSource.js +60 -0
- package/dist/controls/DragSource.js.map +1 -0
- package/dist/controls/DragSourceFromEvent.js +75 -0
- package/dist/controls/DragSourceFromEvent.js.map +1 -0
- package/dist/controls/DropTargetIndicator.js +28 -0
- package/dist/controls/DropTargetIndicator.js.map +1 -0
- package/dist/controls/Header.js +698 -0
- package/dist/controls/Header.js.map +1 -0
- package/dist/controls/HeaderButton.js +23 -0
- package/dist/controls/HeaderButton.js.map +1 -0
- package/dist/controls/Splitter.js +45 -0
- package/dist/controls/Splitter.js.map +1 -0
- package/dist/controls/Tab.js +259 -0
- package/dist/controls/Tab.js.map +1 -0
- package/dist/controls/TransitionIndicator.js +64 -0
- package/dist/controls/TransitionIndicator.js.map +1 -0
- package/dist/controls/index.js +23 -0
- package/dist/controls/index.js.map +1 -0
- package/dist/errors/ConfigurationError.js +10 -0
- package/dist/errors/ConfigurationError.js.map +1 -0
- package/dist/errors/index.js +5 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/items/AbstractContentItem.js +617 -0
- package/dist/items/AbstractContentItem.js.map +1 -0
- package/dist/items/Component.js +84 -0
- package/dist/items/Component.js.map +1 -0
- package/dist/items/Root.js +93 -0
- package/dist/items/Root.js.map +1 -0
- package/dist/items/RowOrColumn.js +550 -0
- package/dist/items/RowOrColumn.js.map +1 -0
- package/dist/items/Stack.js +498 -0
- package/dist/items/Stack.js.map +1 -0
- package/dist/items/index.js +13 -0
- package/dist/items/index.js.map +1 -0
- package/dist/utils/BubblingEvent.js +12 -0
- package/dist/utils/BubblingEvent.js.map +1 -0
- package/dist/utils/ConfigMinifier.js +160 -0
- package/dist/utils/ConfigMinifier.js.map +1 -0
- package/dist/utils/DragListener.js +128 -0
- package/dist/utils/DragListener.js.map +1 -0
- package/dist/utils/EventEmitter.js +133 -0
- package/dist/utils/EventEmitter.js.map +1 -0
- package/dist/utils/EventHub.js +147 -0
- package/dist/utils/EventHub.js.map +1 -0
- package/dist/utils/ReactComponentHandler.js +135 -0
- package/dist/utils/ReactComponentHandler.js.map +1 -0
- package/dist/utils/index.js +22 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/utils.js +195 -0
- package/dist/utils/utils.js.map +1 -0
- package/package.json +20 -47
- package/dist/goldenlayout.js +0 -6314
- package/dist/goldenlayout.min.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LayoutManager.js","names":["$","lm","LayoutManager","config","container","noConflict","errorMsg","Error","utils","EventEmitter","call","isInitialised","_isFullPage","_resizeTimeoutId","_components","ReactComponentHandler","_fallbackComponent","undefined","_itemAreas","_resizeFunction","fnBind","_onResize","_unloadFunction","_onUnload","_windowBlur","bind","_windowFocus","_maximisedItem","_maximisePlaceholder","_creationTimeoutPassed","_subWindowsCreated","_dragSources","_updatingColumnsResponsive","_firstLoad","width","height","root","openPopouts","selectedItem","isSubWindow","eventHub","EventHub","_createConfig","dropTargetIndicator","transitionIndicator","tabDropPlaceholder","css","_typeToItem","column","items","RowOrColumn","row","stack","Stack","component","Component","__lm","minifyConfig","ConfigMinifier","unminifyConfig","copy","prototype","registerComponent","name","constructor","render","cleanup","setFallbackComponent","toConfig","next","i","AbstractContentItem","settings","dimensions","labels","content","configNode","item","key","componentName","type","contentItems","length","_$reconcilePopoutWindows","push","maximisedItemId","getComponent","getFallbackComponent","init","_createSubWindows","document","readyState","body","ready","setTimeout","_adjustToWindowMode","_setContainer","controls","DropTargetIndicator","TransitionIndicator","updateSize","_create","_bindEvents","_adjustColumnsResponsive","emit","arguments","callDownwards","element","destroy","window","off","remove","forEach","dragSource","_dragListener","_element","_itemConfig","createContentItem","parent","typeErrorMsg","contentItem","errors","ConfigurationError","objectKeys","join","Root","createPopout","configOrContentItem","parentId","indexInParent","isItem","self","windowLeft","windowTop","offset","child","browserPopout","getUniqueId","isRoot","addId","isNaN","indexOf","Array","screenX","screenLeft","screenY","screenTop","left","top","BrowserPopout","on","createDragSource","itemConfig","constrainDragToContainer","DragSource","createDragSourceFromEvent","event","DragSourceFromEvent","selectItem","_$silent","selectionEnabled","deselect","select","_$maximiseItem","_$minimiseItem","addClass","after","prepend","removeClass","removeId","_$closeWindow","close","_$getArea","x","y","area","smallestSurface","Infinity","mathingArea","x1","x2","y1","y2","surface","_$createRootItemAreas","areaSize","sides","side","_$calculateItemAreas","allContentItems","_getAllContentItems","isStack","concat","header","_contentAreaDimensions","highlightArea","_$normalizeContentItem","contentItemOrConfig","isFunction","isPlainObject","newContentItem","getWindow","closed","addChildren","resize","clearTimeout","windowConfigKey","getQueryStringParam","localStorage","getItem","JSON","parse","removeItem","extend","defaultConfig","nextNode","node","hasHeaders","headerHeight","popInButton","popin","click","title","stripTags","append","html","offsetHeight","__glInstance","popout","margin","padding","overflow","getItemsById","toggleMaximise","closePopoutsOnUnload","_useResponsiveLayout","minItemWidth","isRow","columnCount","totalMinWidth","finalColumnCount","Math","max","floor","stackColumnCount","rootContentItem","firstStackContainer","_findAllStackContainers","_addChildContentItemsToContainer","responsiveMode","addChild","removeChild","stackContainers","_findAllStackContainersRecursive","isComponent"],"sources":["../src/LayoutManager.js"],"sourcesContent":["import $ from 'jquery';\nimport lm from './base.js';\n\n/**\n * The main class that will be exposed as GoldenLayout.\n *\n * @public\n * @constructor\n * @param {GoldenLayout config} config\n * @param {[DOM element container]} container Can be a jQuery selector string or a Dom element. Defaults to body\n *\n * @returns {VOID}\n */\nconst LayoutManager = function (config, container) {\n if (!$ || typeof $.noConflict !== 'function') {\n var errorMsg = 'jQuery is missing as dependency for GoldenLayout. ';\n errorMsg +=\n 'Please either expose $ on GoldenLayout\\'s scope (e.g. window) or add \"jquery\" to ';\n errorMsg += 'your paths when using RequireJS/AMD';\n throw new Error(errorMsg);\n }\n lm.utils.EventEmitter.call(this);\n\n this.isInitialised = false;\n this._isFullPage = false;\n this._resizeTimeoutId = null;\n this._components = { 'lm-react-component': lm.utils.ReactComponentHandler };\n this._fallbackComponent = undefined;\n this._itemAreas = [];\n this._resizeFunction = lm.utils.fnBind(this._onResize, this);\n this._unloadFunction = lm.utils.fnBind(this._onUnload, this);\n this._windowBlur = this._windowBlur.bind(this);\n this._windowFocus = this._windowFocus.bind(this);\n this._maximisedItem = null;\n this._maximisePlaceholder = $('<div class=\"lm_maximise_place\"></div>');\n this._creationTimeoutPassed = false;\n this._subWindowsCreated = false;\n this._dragSources = [];\n this._updatingColumnsResponsive = false;\n this._firstLoad = true;\n\n this.width = null;\n this.height = null;\n this.root = null;\n this.openPopouts = [];\n this.selectedItem = null;\n this.isSubWindow = false;\n this.eventHub = new lm.utils.EventHub(this);\n this.config = this._createConfig(config);\n this.container = container;\n this.dropTargetIndicator = null;\n this.transitionIndicator = null;\n this.tabDropPlaceholder = $('<div class=\"lm_drop_tab_placeholder\"></div>');\n\n if (this.isSubWindow === true) {\n $('body').css('visibility', 'hidden');\n }\n\n this._typeToItem = {\n column: lm.utils.fnBind(lm.items.RowOrColumn, this, [true]),\n row: lm.utils.fnBind(lm.items.RowOrColumn, this, [false]),\n stack: lm.items.Stack,\n component: lm.items.Component,\n };\n};\n\n/**\n * Hook that allows to access private classes\n */\nLayoutManager.__lm = lm;\n\n/**\n * Takes a GoldenLayout configuration object and\n * replaces its keys and values recursively with\n * one letter codes\n *\n * @static\n * @public\n * @param {Object} config A GoldenLayout config object\n *\n * @returns {Object} minified config\n */\nLayoutManager.minifyConfig = function (config) {\n return new lm.utils.ConfigMinifier().minifyConfig(config);\n};\n\n/**\n * Takes a configuration Object that was previously minified\n * using minifyConfig and returns its original version\n *\n * @static\n * @public\n * @param {Object} minifiedConfig\n *\n * @returns {Object} the original configuration\n */\nLayoutManager.unminifyConfig = function (config) {\n return new lm.utils.ConfigMinifier().unminifyConfig(config);\n};\n\nlm.utils.copy(LayoutManager.prototype, {\n /**\n * Register a component with the layout manager. If a configuration node\n * of type component is reached it will look up componentName and create the\n * associated component\n *\n * {\n *\t\ttype: \"component\",\n *\t\tcomponentName: \"EquityNewsFeed\",\n *\t\tcomponentState: { \"feedTopic\": \"us-bluechips\" }\n * }\n *\n * @public\n * @param {String} name\n * @param {Function} constructor\n *\n * @returns {Function} cleanup function to deregister component\n */\n registerComponent: function (name, constructor) {\n if (\n typeof constructor !== 'function' &&\n (constructor == null ||\n constructor.render == null ||\n typeof constructor.render !== 'function')\n ) {\n throw new Error('Please register a constructor function');\n }\n\n if (this._components[name] !== undefined) {\n throw new Error('Component ' + name + ' is already registered');\n }\n\n this._components[name] = constructor;\n\n function cleanup() {\n if (this._components[name] === undefined) {\n throw new Error('Component ' + name + ' is not registered');\n }\n\n delete this._components[name];\n }\n\n return cleanup.bind(this);\n },\n\n /**\n * Set a fallback component to be rendered in place of unregistered components\n *\n * @public\n * @param {Function} constructor\n *\n * @returns {void}\n */\n setFallbackComponent: function (constructor) {\n this._fallbackComponent = constructor;\n },\n\n /**\n * Creates a layout configuration object based on the the current state\n *\n * @public\n * @returns {Object} GoldenLayout configuration\n */\n toConfig: function (root) {\n var config, next, i;\n\n if (this.isInitialised === false) {\n throw new Error(\"Can't create config, layout not yet initialised\");\n }\n\n if (root && !(root instanceof lm.items.AbstractContentItem)) {\n throw new Error('Root must be a ContentItem');\n }\n\n /*\n * settings & labels\n */\n config = {\n settings: lm.utils.copy({}, this.config.settings),\n dimensions: lm.utils.copy({}, this.config.dimensions),\n labels: lm.utils.copy({}, this.config.labels),\n };\n\n /*\n * Content\n */\n config.content = [];\n next = function (configNode, item) {\n var key, i;\n\n for (key in item.config) {\n if (key !== 'content') {\n configNode[key] = item.config[key];\n }\n }\n\n if (configNode.componentName === 'lm-react-component') {\n // We change the type in `createContentItem`, so change it back here\n configNode.type = 'react-component';\n }\n\n if (item.contentItems.length) {\n configNode.content = [];\n\n for (i = 0; i < item.contentItems.length; i++) {\n configNode.content[i] = {};\n next(configNode.content[i], item.contentItems[i]);\n }\n }\n };\n\n if (root) {\n next(config, { contentItems: [root] });\n } else {\n next(config, this.root);\n }\n\n /*\n * Retrieve config for subwindows\n */\n this._$reconcilePopoutWindows();\n config.openPopouts = [];\n for (i = 0; i < this.openPopouts.length; i++) {\n config.openPopouts.push(this.openPopouts[i].toConfig());\n }\n\n /*\n * Add maximised item\n */\n config.maximisedItemId = this._maximisedItem ? '__glMaximised' : null;\n return config;\n },\n\n /**\n * Returns a previously registered component\n *\n * @public\n * @param {String} name The name used\n *\n * @returns {Function}\n */\n getComponent: function (name) {\n return this._components[name];\n },\n\n /**\n * Returns a fallback component to render in place of unregistered components\n *\n * @public\n *\n * @returns {Function}\n */\n getFallbackComponent: function () {\n return this._fallbackComponent;\n },\n\n /**\n * Creates the actual layout. Must be called after all initial components\n * are registered. Recurses through the configuration and sets up\n * the item tree.\n *\n * If called before the document is ready it adds itself as a listener\n * to the document.ready event\n *\n * @public\n *\n * @returns {void}\n */\n init: function () {\n /**\n * Create the popout windows straight away. If popouts are blocked\n * an error is thrown on the same 'thread' rather than a timeout and can\n * be caught. This also prevents any further initilisation from taking place.\n */\n if (this._subWindowsCreated === false) {\n this._createSubWindows();\n this._subWindowsCreated = true;\n }\n\n /**\n * If the document isn't ready yet, wait for it.\n */\n if (document.readyState === 'loading' || document.body === null) {\n $(document).ready(lm.utils.fnBind(this.init, this));\n return;\n }\n\n /**\n * If this is a subwindow, wait a few milliseconds for the original\n * page's js calls to be executed, then replace the bodies content\n * with GoldenLayout\n */\n if (this.isSubWindow === true && this._creationTimeoutPassed === false) {\n setTimeout(lm.utils.fnBind(this.init, this), 7);\n this._creationTimeoutPassed = true;\n return;\n }\n\n if (this.isSubWindow === true) {\n this._adjustToWindowMode();\n }\n\n this._setContainer();\n this.dropTargetIndicator = new lm.controls.DropTargetIndicator(\n this.container\n );\n this.transitionIndicator = new lm.controls.TransitionIndicator();\n this.updateSize();\n this._create(this.config);\n this._bindEvents();\n this.isInitialised = true;\n this._adjustColumnsResponsive();\n this.emit('initialised');\n },\n\n /**\n * Updates the layout managers size\n *\n * @public\n * @param {[int]} width height in pixels\n * @param {[int]} height width in pixels\n *\n * @returns {void}\n */\n updateSize: function (width, height) {\n if (arguments.length === 2) {\n this.width = width;\n this.height = height;\n } else {\n this.width = this.container.width();\n this.height = this.container.height();\n }\n\n if (this.isInitialised === true) {\n this.root.callDownwards('setSize', [this.width, this.height]);\n\n if (this._maximisedItem) {\n this._maximisedItem.element.width(this.container.width());\n this._maximisedItem.element.height(this.container.height());\n this._maximisedItem.callDownwards('setSize');\n }\n\n this._adjustColumnsResponsive();\n }\n },\n\n /**\n * Destroys the LayoutManager instance itself as well as every ContentItem\n * within it. After this is called nothing should be left of the LayoutManager.\n *\n * @public\n * @returns {void}\n */\n destroy: function () {\n if (this.isInitialised === false) {\n return;\n }\n this._onUnload();\n $(window).off('resize', this._resizeFunction);\n $(window).off('unload beforeunload', this._unloadFunction);\n $(window).off('blur.lm').off('focus.lm');\n this.root.callDownwards('_$destroy', [], true);\n this.root.contentItems = [];\n this.tabDropPlaceholder.remove();\n this.dropTargetIndicator.destroy();\n this.transitionIndicator.destroy();\n this.eventHub.destroy();\n\n this._dragSources.forEach(function (dragSource) {\n dragSource._dragListener.destroy();\n dragSource._element = null;\n dragSource._itemConfig = null;\n dragSource._dragListener = null;\n });\n this._dragSources = [];\n },\n\n /**\n * Recursively creates new item tree structures based on a provided\n * ItemConfiguration object\n *\n * @public\n * @param {Object} config ItemConfig\n * @param {[ContentItem]} parent The item the newly created item should be a child of\n *\n * @returns {lm.items.ContentItem}\n */\n createContentItem: function (config, parent) {\n var typeErrorMsg, contentItem;\n\n if (typeof config.type !== 'string') {\n throw new lm.errors.ConfigurationError(\n \"Missing parameter 'type'\",\n config\n );\n }\n\n if (config.type === 'react-component') {\n config.type = 'component';\n config.componentName = 'lm-react-component';\n }\n\n if (!this._typeToItem[config.type]) {\n typeErrorMsg =\n \"Unknown type '\" +\n config.type +\n \"'. \" +\n 'Valid types are ' +\n lm.utils.objectKeys(this._typeToItem).join(',');\n\n throw new lm.errors.ConfigurationError(typeErrorMsg);\n }\n\n /**\n * We add an additional stack around every component that's not within a stack anyways.\n */\n if (\n // If this is a component\n config.type === 'component' &&\n // and it's not already within a stack\n !(parent instanceof lm.items.Stack) &&\n // and we have a parent\n !!parent &&\n // and it's not the topmost item in a new window\n !(this.isSubWindow === true && parent instanceof lm.items.Root)\n ) {\n config = {\n type: 'stack',\n width: config.width,\n height: config.height,\n content: [config],\n };\n }\n\n contentItem = new this._typeToItem[config.type](this, config, parent);\n return contentItem;\n },\n\n /**\n\t * Creates a popout window with the specified content and dimensions\n\t *\n\t * @param {Object|lm.itemsAbstractContentItem} configOrContentItem\n\t * @param {[Object]} dimensions A map with width, height, left and top\n\t * @param {[String]} parentId the id of the element this item will be appended to\n\t * when popIn is called\n\t * @param {[Number]} indexInParent The position of this item within its parent element\n\n\t * @returns {lm.controls.BrowserPopout}\n\t */\n createPopout: function (\n configOrContentItem,\n dimensions,\n parentId,\n indexInParent\n ) {\n var config = configOrContentItem,\n isItem = configOrContentItem instanceof lm.items.AbstractContentItem,\n self = this,\n windowLeft,\n windowTop,\n offset,\n parent,\n child,\n browserPopout;\n\n parentId = parentId || null;\n\n if (isItem) {\n config = this.toConfig(configOrContentItem).content;\n parentId = lm.utils.getUniqueId();\n\n /**\n * If the item is the only component within a stack or for some\n * other reason the only child of its parent the parent will be destroyed\n * when the child is removed.\n *\n * In order to support this we move up the tree until we find something\n * that will remain after the item is being popped out\n */\n parent = configOrContentItem.parent;\n child = configOrContentItem;\n while (parent.contentItems.length === 1 && !parent.isRoot) {\n parent = parent.parent;\n child = child.parent;\n }\n\n parent.addId(parentId);\n if (isNaN(indexInParent)) {\n indexInParent = lm.utils.indexOf(child, parent.contentItems);\n }\n } else {\n if (!(config instanceof Array)) {\n config = [config];\n }\n }\n\n if (!dimensions && isItem) {\n windowLeft = window.screenX || window.screenLeft;\n windowTop = window.screenY || window.screenTop;\n offset = configOrContentItem.element.offset();\n\n dimensions = {\n left: windowLeft + offset.left,\n top: windowTop + offset.top,\n width: configOrContentItem.element.width(),\n height: configOrContentItem.element.height(),\n };\n }\n\n if (!dimensions && !isItem) {\n dimensions = {\n left: window.screenX || window.screenLeft + 20,\n top: window.screenY || window.screenTop + 20,\n width: 500,\n height: 309,\n };\n }\n\n if (isItem) {\n configOrContentItem.remove();\n }\n\n browserPopout = new lm.controls.BrowserPopout(\n config,\n dimensions,\n parentId,\n indexInParent,\n this\n );\n\n browserPopout.on('initialised', function () {\n self.emit('windowOpened', browserPopout);\n });\n\n browserPopout.on('closed', function () {\n self._$reconcilePopoutWindows();\n });\n\n this.openPopouts.push(browserPopout);\n\n return browserPopout;\n },\n\n /**\n * Attaches DragListener to any given DOM element\n * and turns it into a way of creating new ContentItems\n * by 'dragging' the DOM element into the layout\n *\n * @param {jQuery DOM element} element\n * @param {Object|Function} itemConfig for the new item to be created, or a function which will provide it\n *\n * @returns {void}\n */\n createDragSource: function (element, itemConfig) {\n this.config.settings.constrainDragToContainer = false;\n var dragSource = new lm.controls.DragSource($(element), itemConfig, this);\n this._dragSources.push(dragSource);\n\n return dragSource;\n },\n\n /**\n * Create a new item in a dragging state, given a starting mouse event to act as the initial position\n *\n * @param {Object|Function} itemConfig for the new item to be created, or a function which will provide it\n * @param {MouseEvent} event used as the starting position for the dragProxy\n *\n * @returns {void}\n */\n createDragSourceFromEvent: function (itemConfig, event) {\n this.config.settings.constrainDragToContainer = false;\n return new lm.controls.DragSourceFromEvent(itemConfig, this, event);\n },\n\n /**\n * Programmatically selects an item. This deselects\n * the currently selected item, selects the specified item\n * and emits a selectionChanged event\n *\n * @param {lm.item.AbstractContentItem} item#\n * @param {[Boolean]} _$silent Wheather to notify the item of its selection\n * @event selectionChanged\n *\n * @returns {VOID}\n */\n selectItem: function (item, _$silent) {\n if (this.config.settings.selectionEnabled !== true) {\n throw new Error(\n 'Please set selectionEnabled to true to use this feature'\n );\n }\n\n if (item === this.selectedItem) {\n return;\n }\n\n if (this.selectedItem !== null) {\n this.selectedItem.deselect();\n }\n\n if (item && _$silent !== true) {\n item.select();\n }\n\n this.selectedItem = item;\n\n this.emit('selectionChanged', item);\n },\n\n /*************************\n * PACKAGE PRIVATE\n *************************/\n _$maximiseItem: function (contentItem) {\n if (this._maximisedItem !== null) {\n this._$minimiseItem(this._maximisedItem);\n }\n this._maximisedItem = contentItem;\n this._maximisedItem.addId('__glMaximised');\n contentItem.element.addClass('lm_maximised');\n contentItem.element.after(this._maximisePlaceholder);\n this.root.element.prepend(contentItem.element);\n contentItem.element.width(this.container.width());\n contentItem.element.height(this.container.height());\n contentItem.callDownwards('setSize');\n this._maximisedItem.emit('maximised');\n this.emit('stateChanged');\n },\n\n _$minimiseItem: function (contentItem) {\n contentItem.element.removeClass('lm_maximised');\n contentItem.removeId('__glMaximised');\n this._maximisePlaceholder.after(contentItem.element);\n this._maximisePlaceholder.remove();\n contentItem.parent.callDownwards('setSize');\n this._maximisedItem = null;\n contentItem.emit('minimised');\n this.emit('stateChanged');\n },\n\n /**\n * This method is used to get around sandboxed iframe restrictions.\n * If 'allow-top-navigation' is not specified in the iframe's 'sandbox' attribute\n * (as is the case with codepens) the parent window is forbidden from calling certain\n * methods on the child, such as window.close() or setting document.location.href.\n *\n * This prevented GoldenLayout popouts from popping in in codepens. The fix is to call\n * _$closeWindow on the child window's gl instance which (after a timeout to disconnect\n * the invoking method from the close call) closes itself.\n *\n * @packagePrivate\n *\n * @returns {void}\n */\n _$closeWindow: function () {\n window.setTimeout(function () {\n window.close();\n }, 1);\n },\n\n _$getArea: function (x, y) {\n var i,\n area,\n smallestSurface = Infinity,\n mathingArea = null;\n\n for (i = 0; i < this._itemAreas.length; i++) {\n area = this._itemAreas[i];\n\n if (\n x > area.x1 &&\n x < area.x2 &&\n y > area.y1 &&\n y < area.y2 &&\n smallestSurface > area.surface\n ) {\n smallestSurface = area.surface;\n mathingArea = area;\n }\n }\n\n return mathingArea;\n },\n\n _$createRootItemAreas: function () {\n var areaSize = 50;\n var sides = { y2: 'y1', x2: 'x1', y1: 'y2', x1: 'x2' };\n for (var side in sides) {\n var area = this.root._$getArea();\n area.side = side;\n if (sides[side][1] == '2') area[side] = area[sides[side]] - areaSize;\n else {\n area[side] = area[sides[side]] + areaSize;\n }\n area.surface = (area.x2 - area.x1) * (area.y2 - area.y1);\n this._itemAreas.push(area);\n }\n },\n\n _$calculateItemAreas: function () {\n var i,\n area,\n allContentItems = this._getAllContentItems();\n this._itemAreas = [];\n\n /**\n * If the last item is dragged out, highlight the entire container size to\n * allow to re-drop it. allContentItems[ 0 ] === this.root at this point\n *\n * Don't include root into the possible drop areas though otherwise since it\n * will used for every gap in the layout, e.g. splitters\n */\n if (allContentItems.length === 1) {\n this._itemAreas.push(this.root._$getArea());\n return;\n }\n this._$createRootItemAreas();\n\n for (i = 0; i < allContentItems.length; i++) {\n if (!allContentItems[i].isStack) {\n continue;\n }\n\n area = allContentItems[i]._$getArea();\n\n if (area === null) {\n continue;\n } else if (area instanceof Array) {\n this._itemAreas = this._itemAreas.concat(area);\n } else {\n this._itemAreas.push(area);\n var header = {};\n lm.utils.copy(header, area);\n lm.utils.copy(\n header,\n area.contentItem._contentAreaDimensions.header.highlightArea\n );\n header.surface = (header.x2 - header.x1) * (header.y2 - header.y1);\n this._itemAreas.push(header);\n }\n }\n },\n\n /**\n * Takes a contentItem or a configuration and optionally a parent\n * item and returns an initialised instance of the contentItem.\n * If the contentItem is a function, it is first called\n *\n * @packagePrivate\n *\n * @param {lm.items.AbtractContentItem|Object|Function} contentItemOrConfig\n * @param {lm.items.AbtractContentItem} parent Only necessary when passing in config\n *\n * @returns {lm.items.AbtractContentItem}\n */\n _$normalizeContentItem: function (contentItemOrConfig, parent) {\n if (!contentItemOrConfig) {\n throw new Error('No content item defined');\n }\n\n if (lm.utils.isFunction(contentItemOrConfig)) {\n contentItemOrConfig = contentItemOrConfig();\n }\n\n if (contentItemOrConfig instanceof lm.items.AbstractContentItem) {\n return contentItemOrConfig;\n }\n\n if ($.isPlainObject(contentItemOrConfig) && contentItemOrConfig.type) {\n var newContentItem = this.createContentItem(contentItemOrConfig, parent);\n newContentItem.callDownwards('_$init');\n return newContentItem;\n } else {\n throw new Error('Invalid contentItem');\n }\n },\n\n /**\n * Iterates through the array of open popout windows and removes the ones\n * that are effectively closed. This is necessary due to the lack of reliably\n * listening for window.close / unload events in a cross browser compatible fashion.\n *\n * @packagePrivate\n *\n * @returns {void}\n */\n _$reconcilePopoutWindows: function () {\n var openPopouts = [],\n i;\n\n for (i = 0; i < this.openPopouts.length; i++) {\n if (this.openPopouts[i].getWindow().closed === false) {\n openPopouts.push(this.openPopouts[i]);\n } else {\n this.emit('windowClosed', this.openPopouts[i]);\n }\n }\n\n if (this.openPopouts.length !== openPopouts.length) {\n this.emit('stateChanged');\n this.openPopouts = openPopouts;\n }\n },\n\n /***************************\n * PRIVATE\n ***************************/\n /**\n * Returns a flattened array of all content items,\n * regardles of level or type\n *\n * @private\n *\n * @returns {void}\n */\n _getAllContentItems: function () {\n var allContentItems = [];\n\n var addChildren = function (contentItem) {\n allContentItems.push(contentItem);\n\n if (contentItem.contentItems instanceof Array) {\n for (var i = 0; i < contentItem.contentItems.length; i++) {\n addChildren(contentItem.contentItems[i]);\n }\n }\n };\n\n addChildren(this.root);\n\n return allContentItems;\n },\n\n /**\n * Binds to DOM/BOM events on init\n *\n * @private\n *\n * @returns {void}\n */\n _bindEvents: function () {\n if (this._isFullPage) {\n $(window).resize(this._resizeFunction);\n }\n $(window)\n .on('unload beforeunload', this._unloadFunction)\n .on('blur.lm', this._windowBlur)\n .on('focus.lm', this._windowFocus);\n },\n\n /**\n * Handles setting a class based on window focus, useful for focus indicators\n */\n _windowBlur: function () {\n this.root.element.addClass('lm_window_blur');\n },\n\n _windowFocus: function () {\n this.root.element.removeClass('lm_window_blur');\n },\n\n /**\n * Debounces resize events\n *\n * @private\n *\n * @returns {void}\n */\n _onResize: function () {\n clearTimeout(this._resizeTimeoutId);\n this._resizeTimeoutId = setTimeout(\n lm.utils.fnBind(this.updateSize, this),\n 100\n );\n },\n\n /**\n * Extends the default config with the user specific settings and applies\n * derivations. Please note that there's a seperate method (AbstractContentItem._extendItemNode)\n * that deals with the extension of item configs\n *\n * @param {Object} config\n * @static\n * @returns {Object} config\n */\n _createConfig: function (config) {\n var windowConfigKey = lm.utils.getQueryStringParam('gl-window');\n\n if (windowConfigKey) {\n this.isSubWindow = true;\n config = localStorage.getItem(windowConfigKey);\n config = JSON.parse(config);\n config = new lm.utils.ConfigMinifier().unminifyConfig(config);\n localStorage.removeItem(windowConfigKey);\n }\n\n config = $.extend(true, {}, lm.config.defaultConfig, config);\n\n var nextNode = function (node) {\n for (var key in node) {\n if (key !== 'props' && typeof node[key] === 'object') {\n nextNode(node[key]);\n } else if (key === 'type' && node[key] === 'react-component') {\n node.type = 'component';\n node.componentName = 'lm-react-component';\n }\n }\n };\n\n nextNode(config);\n\n if (config.settings.hasHeaders === false) {\n config.dimensions.headerHeight = 0;\n }\n\n return config;\n },\n\n /**\n * This is executed when GoldenLayout detects that it is run\n * within a previously opened popout window.\n *\n * @private\n *\n * @returns {void}\n */\n _adjustToWindowMode: function () {\n var popInButton = $(\n '<div class=\"lm_popin\" title=\"' +\n this.config.labels.popin +\n '\">' +\n '<div class=\"lm_icon\"></div>' +\n '<div class=\"lm_bg\"></div>' +\n '</div>'\n );\n\n popInButton.click(\n lm.utils.fnBind(function () {\n this.emit('popIn');\n }, this)\n );\n\n document.title = lm.utils.stripTags(this.config.content[0].title);\n\n $('head').append($('body link, body style, template, .gl_keep'));\n\n this.container = $('body')\n .html('')\n .css('visibility', 'visible')\n .append(popInButton);\n\n /*\n * This seems a bit pointless, but actually causes a reflow/re-evaluation getting around\n * slickgrid's \"Cannot find stylesheet.\" bug in chrome\n */\n var x = document.body.offsetHeight; // jshint ignore:line\n\n /*\n * Expose this instance on the window object\n * to allow the opening window to interact with\n * it\n */\n window.__glInstance = this;\n },\n\n /**\n * Creates Subwindows (if there are any). Throws an error\n * if popouts are blocked.\n *\n * @returns {void}\n */\n _createSubWindows: function () {\n var i, popout;\n\n for (i = 0; i < this.config.openPopouts.length; i++) {\n popout = this.config.openPopouts[i];\n\n this.createPopout(\n popout.content,\n popout.dimensions,\n popout.parentId,\n popout.indexInParent\n );\n }\n },\n\n /**\n * Determines what element the layout will be created in\n *\n * @private\n *\n * @returns {void}\n */\n _setContainer: function () {\n var container = $(this.container || 'body');\n\n if (container.length === 0) {\n throw new Error('GoldenLayout container not found');\n }\n\n if (container.length > 1) {\n throw new Error('GoldenLayout more than one container element specified');\n }\n\n if (container[0] === document.body) {\n this._isFullPage = true;\n\n $('html, body').css({\n height: '100%',\n margin: 0,\n padding: 0,\n overflow: 'hidden',\n });\n }\n\n this.container = container;\n },\n\n /**\n * Kicks of the initial, recursive creation chain\n *\n * @param {Object} config GoldenLayout Config\n *\n * @returns {void}\n */\n _create: function (config) {\n var errorMsg;\n\n if (!(config.content instanceof Array)) {\n if (config.content === undefined) {\n errorMsg = \"Missing setting 'content' on top level of configuration\";\n } else {\n errorMsg = \"Configuration parameter 'content' must be an array\";\n }\n\n throw new lm.errors.ConfigurationError(errorMsg, config);\n }\n\n if (config.content.length > 1) {\n errorMsg = \"Top level content can't contain more then one element.\";\n throw new lm.errors.ConfigurationError(errorMsg, config);\n }\n\n this.root = new lm.items.Root(\n this,\n { content: config.content },\n this.container\n );\n this.root.callDownwards('_$init');\n\n if (config.maximisedItemId === '__glMaximised') {\n this.root.getItemsById(config.maximisedItemId)[0].toggleMaximise();\n }\n },\n\n /**\n * Called when the window is closed or the user navigates away\n * from the page\n *\n * @returns {void}\n */\n _onUnload: function () {\n if (this.config.settings.closePopoutsOnUnload === true) {\n for (var i = 0; i < this.openPopouts.length; i++) {\n this.openPopouts[i].close();\n }\n }\n },\n\n /**\n * Adjusts the number of columns to be lower to fit the screen and still maintain minItemWidth.\n *\n * @returns {void}\n */\n _adjustColumnsResponsive: function () {\n // If there is no min width set, or not content items, do nothing.\n if (\n !this._useResponsiveLayout() ||\n this._updatingColumnsResponsive ||\n !this.config.dimensions ||\n !this.config.dimensions.minItemWidth ||\n this.root.contentItems.length === 0 ||\n !this.root.contentItems[0].isRow\n ) {\n this._firstLoad = false;\n return;\n }\n\n this._firstLoad = false;\n\n // If there is only one column, do nothing.\n var columnCount = this.root.contentItems[0].contentItems.length;\n if (columnCount <= 1) {\n return;\n }\n\n // If they all still fit, do nothing.\n var minItemWidth = this.config.dimensions.minItemWidth;\n var totalMinWidth = columnCount * minItemWidth;\n if (totalMinWidth <= this.width) {\n return;\n }\n\n // Prevent updates while it is already happening.\n this._updatingColumnsResponsive = true;\n\n // Figure out how many columns to stack, and put them all in the first stack container.\n var finalColumnCount = Math.max(Math.floor(this.width / minItemWidth), 1);\n var stackColumnCount = columnCount - finalColumnCount;\n\n var rootContentItem = this.root.contentItems[0];\n var firstStackContainer = this._findAllStackContainers()[0];\n for (var i = 0; i < stackColumnCount; i++) {\n // Stack from right.\n var column =\n rootContentItem.contentItems[rootContentItem.contentItems.length - 1];\n this._addChildContentItemsToContainer(firstStackContainer, column);\n }\n\n this._updatingColumnsResponsive = false;\n },\n\n /**\n * Determines if responsive layout should be used.\n *\n * @returns {bool} - True if responsive layout should be used; otherwise false.\n */\n _useResponsiveLayout: function () {\n return (\n this.config.settings &&\n (this.config.settings.responsiveMode == 'always' ||\n (this.config.settings.responsiveMode == 'onload' && this._firstLoad))\n );\n },\n\n /**\n * Adds all children of a node to another container recursively.\n * @param {object} container - Container to add child content items to.\n * @param {object} node - Node to search for content items.\n * @returns {void}\n */\n _addChildContentItemsToContainer: function (container, node) {\n if (node.type === 'stack') {\n node.contentItems.forEach(function (item) {\n container.addChild(item);\n node.removeChild(item, true);\n });\n } else {\n node.contentItems.forEach(\n lm.utils.fnBind(function (item) {\n this._addChildContentItemsToContainer(container, item);\n }, this)\n );\n }\n },\n\n /**\n * Finds all the stack containers.\n * @returns {array} - The found stack containers.\n */\n _findAllStackContainers: function () {\n var stackContainers = [];\n this._findAllStackContainersRecursive(stackContainers, this.root);\n\n return stackContainers;\n },\n\n /**\n * Finds all the stack containers.\n *\n * @param {array} - Set of containers to populate.\n * @param {object} - Current node to process.\n *\n * @returns {void}\n */\n _findAllStackContainersRecursive: function (stackContainers, node) {\n node.contentItems.forEach(\n lm.utils.fnBind(function (item) {\n if (item.type == 'stack') {\n stackContainers.push(item);\n } else if (!item.isComponent) {\n this._findAllStackContainersRecursive(stackContainers, item);\n }\n }, this)\n );\n },\n});\n\nexport default LayoutManager;\n"],"mappings":"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"}
|
package/dist/base.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import config from './config/index.js';
|
|
2
|
+
import container from './container/index.js';
|
|
3
|
+
import controls from './controls/index.js';
|
|
4
|
+
import errors from './errors/index.js';
|
|
5
|
+
import items from './items/index.js';
|
|
6
|
+
import utils from './utils/index.js';
|
|
7
|
+
var lm = {
|
|
8
|
+
config,
|
|
9
|
+
container,
|
|
10
|
+
controls,
|
|
11
|
+
errors,
|
|
12
|
+
items,
|
|
13
|
+
utils
|
|
14
|
+
};
|
|
15
|
+
export default lm;
|
|
16
|
+
//# sourceMappingURL=base.js.map
|
package/dist/base.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","names":["config","container","controls","errors","items","utils","lm"],"sources":["../src/base.js"],"sourcesContent":["import config from './config/index.js';\nimport container from './container/index.js';\nimport controls from './controls/index.js';\nimport errors from './errors/index.js';\nimport items from './items/index.js';\nimport utils from './utils/index.js';\n\nconst lm = {\n config,\n container,\n controls,\n errors,\n items,\n utils,\n};\n\nexport default lm;\n"],"mappings":"AAAA,OAAOA,MAAP,MAAmB,mBAAnB;AACA,OAAOC,SAAP,MAAsB,sBAAtB;AACA,OAAOC,QAAP,MAAqB,qBAArB;AACA,OAAOC,MAAP,MAAmB,mBAAnB;AACA,OAAOC,KAAP,MAAkB,kBAAlB;AACA,OAAOC,KAAP,MAAkB,kBAAlB;AAEA,IAAMC,EAAE,GAAG;EACTN,MADS;EAETC,SAFS;EAGTC,QAHS;EAITC,MAJS;EAKTC,KALS;EAMTC;AANS,CAAX;AASA,eAAeC,EAAf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ItemDefaultConfig.js","names":["itemDefaultConfig","isClosable","isFocusOnShow","reorderEnabled","title"],"sources":["../../src/config/ItemDefaultConfig.js"],"sourcesContent":["const itemDefaultConfig = {\n isClosable: true,\n isFocusOnShow: true,\n reorderEnabled: true,\n title: '',\n};\n\nexport default itemDefaultConfig;\n"],"mappings":"AAAA,IAAMA,iBAAiB,GAAG;EACxBC,UAAU,EAAE,IADY;EAExBC,aAAa,EAAE,IAFS;EAGxBC,cAAc,EAAE,IAHQ;EAIxBC,KAAK,EAAE;AAJiB,CAA1B;AAOA,eAAeJ,iBAAf"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
var defaultConfig = {
|
|
2
|
+
openPopouts: [],
|
|
3
|
+
settings: {
|
|
4
|
+
hasHeaders: true,
|
|
5
|
+
constrainDragToContainer: true,
|
|
6
|
+
reorderEnabled: true,
|
|
7
|
+
selectionEnabled: false,
|
|
8
|
+
popoutWholeStack: false,
|
|
9
|
+
blockedPopoutsThrowError: true,
|
|
10
|
+
closePopoutsOnUnload: true,
|
|
11
|
+
showPopoutIcon: true,
|
|
12
|
+
showMaximiseIcon: true,
|
|
13
|
+
showCloseIcon: true,
|
|
14
|
+
responsiveMode: 'onload',
|
|
15
|
+
// Can be onload, always, or none.
|
|
16
|
+
tabOverlapAllowance: 0,
|
|
17
|
+
// maximum pixel overlap per tab
|
|
18
|
+
// reorderOnTabMenuClick: true, // illumon disabled
|
|
19
|
+
tabControlOffset: 10
|
|
20
|
+
},
|
|
21
|
+
dimensions: {
|
|
22
|
+
borderWidth: 5,
|
|
23
|
+
borderGrabWidth: 10,
|
|
24
|
+
minItemHeight: 10,
|
|
25
|
+
minItemWidth: 10,
|
|
26
|
+
headerHeight: 20,
|
|
27
|
+
dragProxyWidth: 300,
|
|
28
|
+
dragProxyHeight: 200
|
|
29
|
+
},
|
|
30
|
+
labels: {
|
|
31
|
+
close: 'Close',
|
|
32
|
+
maximise: 'Maximize',
|
|
33
|
+
minimise: 'Minimize',
|
|
34
|
+
popout: 'Open in new window',
|
|
35
|
+
popin: 'Pop in',
|
|
36
|
+
tabDropdown: 'Additional tabs',
|
|
37
|
+
tabNextLabel: 'Next',
|
|
38
|
+
tabPreviousLabel: 'Previous'
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
export default defaultConfig;
|
|
42
|
+
//# sourceMappingURL=defaultConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultConfig.js","names":["defaultConfig","openPopouts","settings","hasHeaders","constrainDragToContainer","reorderEnabled","selectionEnabled","popoutWholeStack","blockedPopoutsThrowError","closePopoutsOnUnload","showPopoutIcon","showMaximiseIcon","showCloseIcon","responsiveMode","tabOverlapAllowance","tabControlOffset","dimensions","borderWidth","borderGrabWidth","minItemHeight","minItemWidth","headerHeight","dragProxyWidth","dragProxyHeight","labels","close","maximise","minimise","popout","popin","tabDropdown","tabNextLabel","tabPreviousLabel"],"sources":["../../src/config/defaultConfig.js"],"sourcesContent":["const defaultConfig = {\n openPopouts: [],\n settings: {\n hasHeaders: true,\n constrainDragToContainer: true,\n reorderEnabled: true,\n selectionEnabled: false,\n popoutWholeStack: false,\n blockedPopoutsThrowError: true,\n closePopoutsOnUnload: true,\n showPopoutIcon: true,\n showMaximiseIcon: true,\n showCloseIcon: true,\n responsiveMode: 'onload', // Can be onload, always, or none.\n tabOverlapAllowance: 0, // maximum pixel overlap per tab\n // reorderOnTabMenuClick: true, // illumon disabled\n tabControlOffset: 10,\n },\n dimensions: {\n borderWidth: 5,\n borderGrabWidth: 10,\n minItemHeight: 10,\n minItemWidth: 10,\n headerHeight: 20,\n dragProxyWidth: 300,\n dragProxyHeight: 200,\n },\n labels: {\n close: 'Close',\n maximise: 'Maximize',\n minimise: 'Minimize',\n popout: 'Open in new window',\n popin: 'Pop in',\n tabDropdown: 'Additional tabs',\n tabNextLabel: 'Next',\n tabPreviousLabel: 'Previous',\n },\n};\n\nexport default defaultConfig;\n"],"mappings":"AAAA,IAAMA,aAAa,GAAG;EACpBC,WAAW,EAAE,EADO;EAEpBC,QAAQ,EAAE;IACRC,UAAU,EAAE,IADJ;IAERC,wBAAwB,EAAE,IAFlB;IAGRC,cAAc,EAAE,IAHR;IAIRC,gBAAgB,EAAE,KAJV;IAKRC,gBAAgB,EAAE,KALV;IAMRC,wBAAwB,EAAE,IANlB;IAORC,oBAAoB,EAAE,IAPd;IAQRC,cAAc,EAAE,IARR;IASRC,gBAAgB,EAAE,IATV;IAURC,aAAa,EAAE,IAVP;IAWRC,cAAc,EAAE,QAXR;IAWkB;IAC1BC,mBAAmB,EAAE,CAZb;IAYgB;IACxB;IACAC,gBAAgB,EAAE;EAdV,CAFU;EAkBpBC,UAAU,EAAE;IACVC,WAAW,EAAE,CADH;IAEVC,eAAe,EAAE,EAFP;IAGVC,aAAa,EAAE,EAHL;IAIVC,YAAY,EAAE,EAJJ;IAKVC,YAAY,EAAE,EALJ;IAMVC,cAAc,EAAE,GANN;IAOVC,eAAe,EAAE;EAPP,CAlBQ;EA2BpBC,MAAM,EAAE;IACNC,KAAK,EAAE,OADD;IAENC,QAAQ,EAAE,UAFJ;IAGNC,QAAQ,EAAE,UAHJ;IAINC,MAAM,EAAE,oBAJF;IAKNC,KAAK,EAAE,QALD;IAMNC,WAAW,EAAE,iBANP;IAONC,YAAY,EAAE,MAPR;IAQNC,gBAAgB,EAAE;EARZ;AA3BY,CAAtB;AAuCA,eAAehC,aAAf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["defaultConfig","itemDefaultConfig"],"sources":["../../src/config/index.js"],"sourcesContent":["import defaultConfig from './defaultConfig.js';\nimport itemDefaultConfig from './ItemDefaultConfig.js';\n\nexport default {\n defaultConfig,\n itemDefaultConfig,\n};\n"],"mappings":"AAAA,OAAOA,aAAP,MAA0B,oBAA1B;AACA,OAAOC,iBAAP,MAA8B,wBAA9B;AAEA,eAAe;EACbD,aADa;EAEbC;AAFa,CAAf"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import $ from 'jquery';
|
|
2
|
+
import utils from '../utils/index.js';
|
|
3
|
+
|
|
4
|
+
var ItemContainer = function ItemContainer(config, parent, layoutManager) {
|
|
5
|
+
utils.EventEmitter.call(this);
|
|
6
|
+
this.width = null;
|
|
7
|
+
this.height = null;
|
|
8
|
+
this.title = config.componentName;
|
|
9
|
+
this.parent = parent;
|
|
10
|
+
this.layoutManager = layoutManager;
|
|
11
|
+
this.isHidden = false;
|
|
12
|
+
this._config = config;
|
|
13
|
+
this._element = $(['<div class="lm_item_container">', '<div class="lm_content" tabindex="-1"></div>', '</div>'].join(''));
|
|
14
|
+
this._contentElement = this._element.find('.lm_content');
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
utils.copy(ItemContainer.prototype, {
|
|
18
|
+
/**
|
|
19
|
+
* Get the inner DOM element the container's content
|
|
20
|
+
* is intended to live in
|
|
21
|
+
*
|
|
22
|
+
* @returns {DOM element}
|
|
23
|
+
*/
|
|
24
|
+
getElement: function getElement() {
|
|
25
|
+
return this._contentElement;
|
|
26
|
+
},
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Hide the container. Notifies the containers content first
|
|
30
|
+
* and then hides the DOM node. If the container is already hidden
|
|
31
|
+
* this should have no effect
|
|
32
|
+
*
|
|
33
|
+
* @returns {void}
|
|
34
|
+
*/
|
|
35
|
+
hide: function hide() {
|
|
36
|
+
this.emit('hide');
|
|
37
|
+
this.isHidden = true;
|
|
38
|
+
|
|
39
|
+
this._element.hide();
|
|
40
|
+
},
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Shows a previously hidden container. Notifies the
|
|
44
|
+
* containers content first and then shows the DOM element.
|
|
45
|
+
* If the container is already visible this has no effect.
|
|
46
|
+
*
|
|
47
|
+
* @returns {void}
|
|
48
|
+
*/
|
|
49
|
+
show: function show() {
|
|
50
|
+
this.emit('show');
|
|
51
|
+
this.isHidden = false;
|
|
52
|
+
|
|
53
|
+
this._element.show(); // call shown only if the container has a valid size
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
if (this.height != 0 || this.width != 0) {
|
|
57
|
+
this.emit('shown');
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Set the size from within the container. Traverses up
|
|
63
|
+
* the item tree until it finds a row or column element
|
|
64
|
+
* and resizes its items accordingly.
|
|
65
|
+
*
|
|
66
|
+
* If this container isn't a descendant of a row or column
|
|
67
|
+
* it returns false
|
|
68
|
+
* @todo Rework!!!
|
|
69
|
+
* @param {Number} width The new width in pixel
|
|
70
|
+
* @param {Number} height The new height in pixel
|
|
71
|
+
*
|
|
72
|
+
* @returns {Boolean} resizeSuccesful
|
|
73
|
+
*/
|
|
74
|
+
setSize: function setSize(width, height) {
|
|
75
|
+
var rowOrColumn = this.parent,
|
|
76
|
+
rowOrColumnChild = this,
|
|
77
|
+
totalPixel,
|
|
78
|
+
percentage,
|
|
79
|
+
direction,
|
|
80
|
+
newSize,
|
|
81
|
+
delta,
|
|
82
|
+
i;
|
|
83
|
+
|
|
84
|
+
while (!rowOrColumn.isColumn && !rowOrColumn.isRow) {
|
|
85
|
+
rowOrColumnChild = rowOrColumn;
|
|
86
|
+
rowOrColumn = rowOrColumn.parent;
|
|
87
|
+
/**
|
|
88
|
+
* No row or column has been found
|
|
89
|
+
*/
|
|
90
|
+
|
|
91
|
+
if (rowOrColumn.isRoot) {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
direction = rowOrColumn.isColumn ? 'height' : 'width';
|
|
97
|
+
newSize = direction === 'height' ? height : width;
|
|
98
|
+
totalPixel = this[direction] * (1 / (rowOrColumnChild.config[direction] / 100));
|
|
99
|
+
percentage = newSize / totalPixel * 100;
|
|
100
|
+
delta = (rowOrColumnChild.config[direction] - percentage) / (rowOrColumn.contentItems.length - 1);
|
|
101
|
+
|
|
102
|
+
for (i = 0; i < rowOrColumn.contentItems.length; i++) {
|
|
103
|
+
if (rowOrColumn.contentItems[i] === rowOrColumnChild) {
|
|
104
|
+
rowOrColumn.contentItems[i].config[direction] = percentage;
|
|
105
|
+
} else {
|
|
106
|
+
rowOrColumn.contentItems[i].config[direction] += delta;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
rowOrColumn.callDownwards('setSize');
|
|
111
|
+
return true;
|
|
112
|
+
},
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Closes the container if it is closable. Can be called by
|
|
116
|
+
* both the component within at as well as the contentItem containing
|
|
117
|
+
* it. Emits a close event before the container itself is closed.
|
|
118
|
+
*
|
|
119
|
+
* @returns {void}
|
|
120
|
+
*/
|
|
121
|
+
close: function close() {
|
|
122
|
+
if (this._config.isClosable) {
|
|
123
|
+
this.emit('close');
|
|
124
|
+
this.parent.close();
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Returns the current state object
|
|
130
|
+
*
|
|
131
|
+
* @returns {Object} state
|
|
132
|
+
*/
|
|
133
|
+
getState: function getState() {
|
|
134
|
+
return this._config.componentState;
|
|
135
|
+
},
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Merges the provided state into the current one
|
|
139
|
+
*
|
|
140
|
+
* @param {Object} state
|
|
141
|
+
*
|
|
142
|
+
* @returns {void}
|
|
143
|
+
*/
|
|
144
|
+
extendState: function extendState(state) {
|
|
145
|
+
this.setState($.extend(true, this.getState(), state));
|
|
146
|
+
},
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Notifies the layout manager of a stateupdate
|
|
150
|
+
*
|
|
151
|
+
* @param {serialisable} state
|
|
152
|
+
*/
|
|
153
|
+
setState: function setState(state) {
|
|
154
|
+
this._config.componentState = state;
|
|
155
|
+
this.parent.emitBubblingEvent('stateChanged');
|
|
156
|
+
},
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Set's the components title
|
|
160
|
+
*
|
|
161
|
+
* @param {String} title
|
|
162
|
+
*/
|
|
163
|
+
setTitle: function setTitle(title) {
|
|
164
|
+
this.parent.setTitle(title);
|
|
165
|
+
},
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Set's the containers size. Called by the container's component.
|
|
169
|
+
* To set the size programmatically from within the container please
|
|
170
|
+
* use the public setSize method
|
|
171
|
+
*
|
|
172
|
+
* @param {[Int]} width in px
|
|
173
|
+
* @param {[Int]} height in px
|
|
174
|
+
*
|
|
175
|
+
* @returns {void}
|
|
176
|
+
*/
|
|
177
|
+
_$setSize: function _$setSize(width, height) {
|
|
178
|
+
if (width !== this.width || height !== this.height) {
|
|
179
|
+
this.width = width;
|
|
180
|
+
this.height = height;
|
|
181
|
+
var cl = this._contentElement[0];
|
|
182
|
+
var hdelta = cl.offsetWidth - cl.clientWidth;
|
|
183
|
+
var vdelta = cl.offsetHeight - cl.clientHeight;
|
|
184
|
+
|
|
185
|
+
this._contentElement.width(this.width - hdelta).height(this.height - vdelta);
|
|
186
|
+
|
|
187
|
+
this.emit('resize');
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
export default ItemContainer;
|
|
192
|
+
//# sourceMappingURL=ItemContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ItemContainer.js","names":["$","utils","ItemContainer","config","parent","layoutManager","EventEmitter","call","width","height","title","componentName","isHidden","_config","_element","join","_contentElement","find","copy","prototype","getElement","hide","emit","show","setSize","rowOrColumn","rowOrColumnChild","totalPixel","percentage","direction","newSize","delta","i","isColumn","isRow","isRoot","contentItems","length","callDownwards","close","isClosable","getState","componentState","extendState","state","setState","extend","emitBubblingEvent","setTitle","_$setSize","cl","hdelta","offsetWidth","clientWidth","vdelta","offsetHeight","clientHeight"],"sources":["../../src/container/ItemContainer.js"],"sourcesContent":["import $ from 'jquery';\nimport utils from '../utils/index.js';\n\nconst ItemContainer = function (config, parent, layoutManager) {\n utils.EventEmitter.call(this);\n\n this.width = null;\n this.height = null;\n this.title = config.componentName;\n this.parent = parent;\n this.layoutManager = layoutManager;\n this.isHidden = false;\n\n this._config = config;\n this._element = $(\n [\n '<div class=\"lm_item_container\">',\n '<div class=\"lm_content\" tabindex=\"-1\"></div>',\n '</div>',\n ].join('')\n );\n\n this._contentElement = this._element.find('.lm_content');\n};\n\nutils.copy(ItemContainer.prototype, {\n /**\n * Get the inner DOM element the container's content\n * is intended to live in\n *\n * @returns {DOM element}\n */\n getElement: function () {\n return this._contentElement;\n },\n\n /**\n * Hide the container. Notifies the containers content first\n * and then hides the DOM node. If the container is already hidden\n * this should have no effect\n *\n * @returns {void}\n */\n hide: function () {\n this.emit('hide');\n this.isHidden = true;\n this._element.hide();\n },\n\n /**\n * Shows a previously hidden container. Notifies the\n * containers content first and then shows the DOM element.\n * If the container is already visible this has no effect.\n *\n * @returns {void}\n */\n show: function () {\n this.emit('show');\n this.isHidden = false;\n this._element.show();\n // call shown only if the container has a valid size\n if (this.height != 0 || this.width != 0) {\n this.emit('shown');\n }\n },\n\n /**\n * Set the size from within the container. Traverses up\n * the item tree until it finds a row or column element\n * and resizes its items accordingly.\n *\n * If this container isn't a descendant of a row or column\n * it returns false\n * @todo Rework!!!\n * @param {Number} width The new width in pixel\n * @param {Number} height The new height in pixel\n *\n * @returns {Boolean} resizeSuccesful\n */\n setSize: function (width, height) {\n var rowOrColumn = this.parent,\n rowOrColumnChild = this,\n totalPixel,\n percentage,\n direction,\n newSize,\n delta,\n i;\n\n while (!rowOrColumn.isColumn && !rowOrColumn.isRow) {\n rowOrColumnChild = rowOrColumn;\n rowOrColumn = rowOrColumn.parent;\n\n /**\n * No row or column has been found\n */\n if (rowOrColumn.isRoot) {\n return false;\n }\n }\n\n direction = rowOrColumn.isColumn ? 'height' : 'width';\n newSize = direction === 'height' ? height : width;\n\n totalPixel =\n this[direction] * (1 / (rowOrColumnChild.config[direction] / 100));\n percentage = (newSize / totalPixel) * 100;\n delta =\n (rowOrColumnChild.config[direction] - percentage) /\n (rowOrColumn.contentItems.length - 1);\n\n for (i = 0; i < rowOrColumn.contentItems.length; i++) {\n if (rowOrColumn.contentItems[i] === rowOrColumnChild) {\n rowOrColumn.contentItems[i].config[direction] = percentage;\n } else {\n rowOrColumn.contentItems[i].config[direction] += delta;\n }\n }\n\n rowOrColumn.callDownwards('setSize');\n\n return true;\n },\n\n /**\n * Closes the container if it is closable. Can be called by\n * both the component within at as well as the contentItem containing\n * it. Emits a close event before the container itself is closed.\n *\n * @returns {void}\n */\n close: function () {\n if (this._config.isClosable) {\n this.emit('close');\n this.parent.close();\n }\n },\n\n /**\n * Returns the current state object\n *\n * @returns {Object} state\n */\n getState: function () {\n return this._config.componentState;\n },\n\n /**\n * Merges the provided state into the current one\n *\n * @param {Object} state\n *\n * @returns {void}\n */\n extendState: function (state) {\n this.setState($.extend(true, this.getState(), state));\n },\n\n /**\n * Notifies the layout manager of a stateupdate\n *\n * @param {serialisable} state\n */\n setState: function (state) {\n this._config.componentState = state;\n this.parent.emitBubblingEvent('stateChanged');\n },\n\n /**\n * Set's the components title\n *\n * @param {String} title\n */\n setTitle: function (title) {\n this.parent.setTitle(title);\n },\n\n /**\n * Set's the containers size. Called by the container's component.\n * To set the size programmatically from within the container please\n * use the public setSize method\n *\n * @param {[Int]} width in px\n * @param {[Int]} height in px\n *\n * @returns {void}\n */\n _$setSize: function (width, height) {\n if (width !== this.width || height !== this.height) {\n this.width = width;\n this.height = height;\n var cl = this._contentElement[0];\n var hdelta = cl.offsetWidth - cl.clientWidth;\n var vdelta = cl.offsetHeight - cl.clientHeight;\n this._contentElement\n .width(this.width - hdelta)\n .height(this.height - vdelta);\n this.emit('resize');\n }\n },\n});\n\nexport default ItemContainer;\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["ItemContainer"],"sources":["../../src/container/index.js"],"sourcesContent":["import ItemContainer from './ItemContainer.js';\n\nexport default {\n ItemContainer,\n};\n"],"mappings":"AAAA,OAAOA,aAAP,MAA0B,oBAA1B;AAEA,eAAe;EACbA;AADa,CAAf"}
|