@deephaven/golden-layout 1.1.2-beta.0 → 1.1.2-grid-render-loop.4
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/GoldenLayoutThemeExport.js.map +1 -1
- package/dist/LayoutManager.js.map +1 -1
- package/dist/base.js.map +1 -1
- package/dist/config/Config.js.map +1 -1
- package/dist/config/ItemConfig.js.map +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/container/ItemContainer.js.map +1 -1
- package/dist/container/index.js.map +1 -1
- package/dist/controls/BrowserPopout.js.map +1 -1
- package/dist/controls/DragProxy.js.map +1 -1
- package/dist/controls/DragSource.js.map +1 -1
- package/dist/controls/DragSourceFromEvent.js.map +1 -1
- package/dist/controls/DropTargetIndicator.js.map +1 -1
- package/dist/controls/Header.js.map +1 -1
- package/dist/controls/HeaderButton.js.map +1 -1
- package/dist/controls/Splitter.js.map +1 -1
- package/dist/controls/Tab.js.map +1 -1
- package/dist/controls/index.js.map +1 -1
- package/dist/declaration.d.js.map +1 -1
- package/dist/errors/ConfigurationError.js.map +1 -1
- package/dist/errors/index.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/items/AbstractContentItem.js.map +1 -1
- package/dist/items/Component.js.map +1 -1
- package/dist/items/Root.js.map +1 -1
- package/dist/items/RowOrColumn.js.map +1 -1
- package/dist/items/Stack.js.map +1 -1
- package/dist/items/index.js.map +1 -1
- package/dist/utils/BubblingEvent.js.map +1 -1
- package/dist/utils/ConfigMinifier.js.map +1 -1
- package/dist/utils/DragListener.js.map +1 -1
- package/dist/utils/EventEmitter.js.map +1 -1
- package/dist/utils/EventHub.js.map +1 -1
- package/dist/utils/EventUtils.js.map +1 -1
- package/dist/utils/ReactComponentHandler.js.map +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/utils.js.map +1 -1
- package/package.json +3 -3
package/dist/controls/Tab.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tab.js","names":["$","isComponent","DragListener","DragProxy","Tab","constructor","header","contentItem","_this$_layoutManager$","_defineProperty","_template","titleElement","element","find","closeElement","config","isClosable","setTitle","title","on","_layoutManager","layoutManager","settings","reorderEnabled","_dragListener","_onDragStart","destroy","_onTabClick","bind","_onCloseClick","_onTabContentFocusIn","_onTabContentFocusOut","_onMouseUp","_onCloseMousedown","remove","tab","emit","container","_contentElement","arguments","length","undefined","text","setActive","isActive","addClass","removeClass","_$destroy","off","removeEventListener","x","y","_this$contentItem$par","parent","isMaximised","toggleMaximise","root","contains","document","activeElement","event","button","_this$element$get","activeContentItem","getActiveContentItem","setActiveContentItem","focus","_hideAdditionalTabsDropdown","get","scrollIntoView","inline","stopPropagation","close","removeChild","preventDefault","join"],"sources":["../../src/controls/Tab.ts"],"sourcesContent":["import $ from 'jquery';\nimport type { AbstractContentItem } from '../items';\nimport { isComponent } from '../items';\nimport type LayoutManager from '../LayoutManager';\nimport { DragListener } from '../utils';\nimport DragProxy from './DragProxy';\nimport type Header from './Header';\n\n/**\n * Represents an individual tab within a Stack's header\n *\n * @param header\n * @param contentItem\n */\nexport default class Tab {\n /**\n * The tab's html template\n */\n private static _template = [\n '<li class=\"lm_tab\">',\n '<span class=\"lm_title_before\"></span>',\n '<span class=\"lm_title\"></span>',\n '<div class=\"lm_close_tab\" aria-label=\"Close tab\"></div>',\n '</li>',\n ].join('');\n\n header: Header;\n contentItem: AbstractContentItem;\n element = $(Tab._template);\n titleElement: JQuery<HTMLElement>;\n closeElement: JQuery<HTMLElement>;\n isActive = false;\n\n private _layoutManager: LayoutManager;\n private _dragListener?: DragListener;\n\n constructor(header: Header, contentItem: AbstractContentItem) {\n this.header = header;\n this.contentItem = contentItem;\n this.titleElement = this.element.find('.lm_title');\n this.closeElement = this.element.find('.lm_close_tab');\n this.closeElement[contentItem.config.isClosable ? 'show' : 'hide']();\n\n this.setTitle(contentItem.config.title);\n this.contentItem.on('titleChanged', this.setTitle, this);\n\n this._layoutManager = this.contentItem.layoutManager;\n\n if (\n this._layoutManager.config.settings?.reorderEnabled &&\n contentItem.config.reorderEnabled\n ) {\n this._dragListener = new DragListener(this.element);\n this._dragListener.on('dragStart', this._onDragStart, this);\n this.contentItem.on(\n 'destroy',\n this._dragListener.destroy,\n this._dragListener\n );\n }\n\n this._onTabClick = this._onTabClick.bind(this);\n this._onCloseClick = this._onCloseClick.bind(this);\n this._onTabContentFocusIn = this._onTabContentFocusIn.bind(this);\n this._onTabContentFocusOut = this._onTabContentFocusOut.bind(this);\n\n this.element.on('click', this._onTabClick);\n this.element.on('auxclick', this._onTabClick);\n this.element.on('mouseup', this._onMouseUp);\n\n if (this.contentItem.config.isClosable) {\n this.closeElement.on('click', this._onCloseClick);\n this.closeElement.on('mousedown', this._onCloseMousedown);\n } else {\n this.closeElement.remove();\n }\n\n this.contentItem.tab = this;\n this.contentItem.emit('tab', this);\n this.contentItem.layoutManager.emit('tabCreated', this);\n\n if (isComponent(this.contentItem)) {\n // add focus class to tab when content\n this.contentItem.container._contentElement\n .on('focusin', this._onTabContentFocusIn)\n .on('focusout', this._onTabContentFocusOut);\n\n this.contentItem.container.tab = this;\n this.contentItem.container.emit('tab', this);\n }\n }\n\n /**\n * Sets the tab's title to the provided string and sets\n * its title attribute to a pure text representation (without\n * html tags) of the same string.\n * @param title can contain html\n */\n setTitle(title = '') {\n // Disabling for illumon project, we want to manage our own tooltips\n // this.element.attr( 'title', lm.utils.stripTags( title ) );\n this.titleElement.text(title);\n }\n\n /**\n * Sets this tab's active state. To programmatically\n * switch tabs, use header.setActiveContentItem( item ) instead.\n * @param isActive\n */\n setActive(isActive: boolean) {\n if (isActive === this.isActive) {\n return;\n }\n this.isActive = isActive;\n\n if (isActive) {\n this.element.addClass('lm_active');\n } else {\n this.element.removeClass('lm_active');\n }\n }\n\n /**\n * Destroys the tab\n *\n * @private\n * @returns {void}\n */\n _$destroy() {\n this.element.off('click', this._onTabClick);\n this.element.off('auxclick', this._onTabClick);\n this.element.off('mouseup', this._onMouseUp);\n this.closeElement.off('click', this._onCloseClick);\n if (isComponent(this.contentItem)) {\n this.contentItem.container._contentElement.off();\n this.contentItem.container._contentElement[0].removeEventListener(\n 'click',\n this._onTabContentFocusIn,\n true\n );\n }\n if (this._dragListener) {\n this.contentItem.off(\n 'destroy',\n this._dragListener.destroy,\n this._dragListener\n );\n this._dragListener.off('dragStart', this._onDragStart);\n this._dragListener = undefined;\n }\n this.element.remove();\n }\n\n /**\n * Callback for the DragListener\n *\n * @param x The tabs absolute x position\n * @param y The tabs absolute y position\n */\n _onDragStart(x: number, y: number) {\n if (this.contentItem.parent?.isMaximised) {\n this.contentItem.parent.toggleMaximise();\n }\n\n if (!this._dragListener) {\n return;\n }\n\n new DragProxy(\n x,\n y,\n this._dragListener,\n this._layoutManager,\n this.contentItem,\n this.header.parent\n );\n }\n\n /**\n * Callback when the contentItem is focused in\n */\n _onTabContentFocusIn() {\n // Ensure only one tab is marked as having focus at a time.\n // In Firefox, if the focused element is removed from the DOM,\n // the focusout event won't trigger. This can result in two tabs\n // being erroneously marked as focused if the user's DOM element\n // is removed and they click another tab. To prevent this, we\n // remove existing \"lm_focusin\" classes first.\n $('.lm_focusin', this._layoutManager.root.element).removeClass(\n 'lm_focusin'\n );\n\n this.element.addClass('lm_focusin');\n }\n\n /**\n * Callback when the contentItem is focused out\n *\n * @param {jQuery DOM event} event\n *\n * @private\n * @returns {void}\n */\n _onTabContentFocusOut() {\n if (\n isComponent(this.contentItem) &&\n !this.contentItem.container._contentElement[0].contains(\n document.activeElement\n )\n ) {\n this.element.removeClass('lm_focusin');\n }\n }\n\n /**\n * Callback when the tab is clicked\n *\n * @param event\n */\n _onTabClick(event?: JQuery.TriggeredEvent) {\n // left mouse button or tap\n if (!event || event.button === 0) {\n var activeContentItem = this.header.parent.getActiveContentItem();\n if (\n this.contentItem !== activeContentItem &&\n isComponent(this.contentItem)\n ) {\n this.header.parent.setActiveContentItem(this.contentItem);\n } else if (\n isComponent(this.contentItem) &&\n !this.contentItem.container._contentElement[0].contains(\n document.activeElement\n )\n ) {\n // if no focus inside put focus onto the container\n // so focusin always fires for tabclicks\n this.contentItem.container._contentElement.focus();\n }\n\n if (isComponent(this.contentItem)) {\n this.contentItem.container.emit('tabClicked', event);\n }\n\n // might have been called from the dropdown\n this.header._hideAdditionalTabsDropdown();\n\n // makes sure clicked tabs scrollintoview (either those partially offscreen or in dropdown)\n this.element.get(0)?.scrollIntoView({\n inline: 'nearest',\n // behaviour smooth is not possible here, as when a tab becomes active it may attempt to take focus\n // which interupts any scroll behaviour from completeting\n });\n\n // middle mouse button\n } else if (event.button === 1 && this.contentItem.config.isClosable) {\n this._onCloseClick(event);\n }\n }\n\n /**\n * Callback when the tab's close button is\n * clicked\n *\n * @param event\n */\n _onCloseClick(event: JQuery.TriggeredEvent) {\n event.stopPropagation();\n if (isComponent(this.contentItem)) {\n this.contentItem.container.close();\n } else {\n this.header.parent.removeChild(this.contentItem);\n }\n }\n\n /**\n * Callback to prevent paste into active input on Linux\n * when closing a tab via middle click.\n * @param event\n */\n _onMouseUp(event: JQuery.TriggeredEvent) {\n if (event.button === 1) {\n event.preventDefault(); // This seems to prevent the paste event from firing\n event.stopPropagation(); // Stop propagation just in case\n }\n }\n\n /**\n * Callback to capture tab close button mousedown\n * to prevent tab from activating.\n *\n * @param event\n */\n _onCloseMousedown(event: Event) {\n event.stopPropagation();\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tab.js","names":["$","isComponent","DragListener","DragProxy","Tab","constructor","header","contentItem","_this$_layoutManager$","_defineProperty","_template","titleElement","element","find","closeElement","config","isClosable","setTitle","title","on","_layoutManager","layoutManager","settings","reorderEnabled","_dragListener","_onDragStart","destroy","_onTabClick","bind","_onCloseClick","_onTabContentFocusIn","_onTabContentFocusOut","_onMouseUp","_onCloseMousedown","remove","tab","emit","container","_contentElement","arguments","length","undefined","text","setActive","isActive","addClass","removeClass","_$destroy","off","removeEventListener","x","y","_this$contentItem$par","parent","isMaximised","toggleMaximise","root","contains","document","activeElement","event","button","_this$element$get","activeContentItem","getActiveContentItem","setActiveContentItem","focus","_hideAdditionalTabsDropdown","get","scrollIntoView","inline","stopPropagation","close","removeChild","preventDefault","join"],"sources":["../../src/controls/Tab.ts"],"sourcesContent":["import $ from 'jquery';\nimport type { AbstractContentItem } from '../items';\nimport { isComponent } from '../items';\nimport type LayoutManager from '../LayoutManager';\nimport { DragListener } from '../utils';\nimport DragProxy from './DragProxy';\nimport type Header from './Header';\n\n/**\n * Represents an individual tab within a Stack's header\n *\n * @param header\n * @param contentItem\n */\nexport default class Tab {\n /**\n * The tab's html template\n */\n private static _template = [\n '<li class=\"lm_tab\">',\n '<span class=\"lm_title_before\"></span>',\n '<span class=\"lm_title\"></span>',\n '<div class=\"lm_close_tab\" aria-label=\"Close tab\"></div>',\n '</li>',\n ].join('');\n\n header: Header;\n contentItem: AbstractContentItem;\n element = $(Tab._template);\n titleElement: JQuery<HTMLElement>;\n closeElement: JQuery<HTMLElement>;\n isActive = false;\n\n private _layoutManager: LayoutManager;\n private _dragListener?: DragListener;\n\n constructor(header: Header, contentItem: AbstractContentItem) {\n this.header = header;\n this.contentItem = contentItem;\n this.titleElement = this.element.find('.lm_title');\n this.closeElement = this.element.find('.lm_close_tab');\n this.closeElement[contentItem.config.isClosable ? 'show' : 'hide']();\n\n this.setTitle(contentItem.config.title);\n this.contentItem.on('titleChanged', this.setTitle, this);\n\n this._layoutManager = this.contentItem.layoutManager;\n\n if (\n this._layoutManager.config.settings?.reorderEnabled &&\n contentItem.config.reorderEnabled\n ) {\n this._dragListener = new DragListener(this.element);\n this._dragListener.on('dragStart', this._onDragStart, this);\n this.contentItem.on(\n 'destroy',\n this._dragListener.destroy,\n this._dragListener\n );\n }\n\n this._onTabClick = this._onTabClick.bind(this);\n this._onCloseClick = this._onCloseClick.bind(this);\n this._onTabContentFocusIn = this._onTabContentFocusIn.bind(this);\n this._onTabContentFocusOut = this._onTabContentFocusOut.bind(this);\n\n this.element.on('click', this._onTabClick);\n this.element.on('auxclick', this._onTabClick);\n this.element.on('mouseup', this._onMouseUp);\n\n if (this.contentItem.config.isClosable) {\n this.closeElement.on('click', this._onCloseClick);\n this.closeElement.on('mousedown', this._onCloseMousedown);\n } else {\n this.closeElement.remove();\n }\n\n this.contentItem.tab = this;\n this.contentItem.emit('tab', this);\n this.contentItem.layoutManager.emit('tabCreated', this);\n\n if (isComponent(this.contentItem)) {\n // add focus class to tab when content\n this.contentItem.container._contentElement\n .on('focusin', this._onTabContentFocusIn)\n .on('focusout', this._onTabContentFocusOut);\n\n this.contentItem.container.tab = this;\n this.contentItem.container.emit('tab', this);\n }\n }\n\n /**\n * Sets the tab's title to the provided string and sets\n * its title attribute to a pure text representation (without\n * html tags) of the same string.\n * @param title can contain html\n */\n setTitle(title = '') {\n // Disabling for illumon project, we want to manage our own tooltips\n // this.element.attr( 'title', lm.utils.stripTags( title ) );\n this.titleElement.text(title);\n }\n\n /**\n * Sets this tab's active state. To programmatically\n * switch tabs, use header.setActiveContentItem( item ) instead.\n * @param isActive\n */\n setActive(isActive: boolean) {\n if (isActive === this.isActive) {\n return;\n }\n this.isActive = isActive;\n\n if (isActive) {\n this.element.addClass('lm_active');\n } else {\n this.element.removeClass('lm_active');\n }\n }\n\n /**\n * Destroys the tab\n *\n * @private\n * @returns {void}\n */\n _$destroy() {\n this.element.off('click', this._onTabClick);\n this.element.off('auxclick', this._onTabClick);\n this.element.off('mouseup', this._onMouseUp);\n this.closeElement.off('click', this._onCloseClick);\n if (isComponent(this.contentItem)) {\n this.contentItem.container._contentElement.off();\n this.contentItem.container._contentElement[0].removeEventListener(\n 'click',\n this._onTabContentFocusIn,\n true\n );\n }\n if (this._dragListener) {\n this.contentItem.off(\n 'destroy',\n this._dragListener.destroy,\n this._dragListener\n );\n this._dragListener.off('dragStart', this._onDragStart);\n this._dragListener = undefined;\n }\n this.element.remove();\n }\n\n /**\n * Callback for the DragListener\n *\n * @param x The tabs absolute x position\n * @param y The tabs absolute y position\n */\n _onDragStart(x: number, y: number) {\n if (this.contentItem.parent?.isMaximised) {\n this.contentItem.parent.toggleMaximise();\n }\n\n if (!this._dragListener) {\n return;\n }\n\n new DragProxy(\n x,\n y,\n this._dragListener,\n this._layoutManager,\n this.contentItem,\n this.header.parent\n );\n }\n\n /**\n * Callback when the contentItem is focused in\n */\n _onTabContentFocusIn() {\n // Ensure only one tab is marked as having focus at a time.\n // In Firefox, if the focused element is removed from the DOM,\n // the focusout event won't trigger. This can result in two tabs\n // being erroneously marked as focused if the user's DOM element\n // is removed and they click another tab. To prevent this, we\n // remove existing \"lm_focusin\" classes first.\n $('.lm_focusin', this._layoutManager.root.element).removeClass(\n 'lm_focusin'\n );\n\n this.element.addClass('lm_focusin');\n }\n\n /**\n * Callback when the contentItem is focused out\n *\n * @param {jQuery DOM event} event\n *\n * @private\n * @returns {void}\n */\n _onTabContentFocusOut() {\n if (\n isComponent(this.contentItem) &&\n !this.contentItem.container._contentElement[0].contains(\n document.activeElement\n )\n ) {\n this.element.removeClass('lm_focusin');\n }\n }\n\n /**\n * Callback when the tab is clicked\n *\n * @param event\n */\n _onTabClick(event?: JQuery.TriggeredEvent) {\n // left mouse button or tap\n if (!event || event.button === 0) {\n var activeContentItem = this.header.parent.getActiveContentItem();\n if (\n this.contentItem !== activeContentItem &&\n isComponent(this.contentItem)\n ) {\n this.header.parent.setActiveContentItem(this.contentItem);\n } else if (\n isComponent(this.contentItem) &&\n !this.contentItem.container._contentElement[0].contains(\n document.activeElement\n )\n ) {\n // if no focus inside put focus onto the container\n // so focusin always fires for tabclicks\n this.contentItem.container._contentElement.focus();\n }\n\n if (isComponent(this.contentItem)) {\n this.contentItem.container.emit('tabClicked', event);\n }\n\n // might have been called from the dropdown\n this.header._hideAdditionalTabsDropdown();\n\n // makes sure clicked tabs scrollintoview (either those partially offscreen or in dropdown)\n this.element.get(0)?.scrollIntoView({\n inline: 'nearest',\n // behaviour smooth is not possible here, as when a tab becomes active it may attempt to take focus\n // which interupts any scroll behaviour from completeting\n });\n\n // middle mouse button\n } else if (event.button === 1 && this.contentItem.config.isClosable) {\n this._onCloseClick(event);\n }\n }\n\n /**\n * Callback when the tab's close button is\n * clicked\n *\n * @param event\n */\n _onCloseClick(event: JQuery.TriggeredEvent) {\n event.stopPropagation();\n if (isComponent(this.contentItem)) {\n this.contentItem.container.close();\n } else {\n this.header.parent.removeChild(this.contentItem);\n }\n }\n\n /**\n * Callback to prevent paste into active input on Linux\n * when closing a tab via middle click.\n * @param event\n */\n _onMouseUp(event: JQuery.TriggeredEvent) {\n if (event.button === 1) {\n event.preventDefault(); // This seems to prevent the paste event from firing\n event.stopPropagation(); // Stop propagation just in case\n }\n }\n\n /**\n * Callback to capture tab close button mousedown\n * to prevent tab from activating.\n *\n * @param event\n */\n _onCloseMousedown(event: Event) {\n event.stopPropagation();\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["default","BrowserPopout","DragProxy","DragSource","DragSourceFromEvent","DropTargetIndicator","Header","HeaderButton","Splitter","Tab"],"sources":["../../src/controls/index.ts"],"sourcesContent":["export { default as BrowserPopout } from './BrowserPopout';\nexport { default as DragProxy } from './DragProxy';\nexport { default as DragSource } from './DragSource';\nexport { default as DragSourceFromEvent } from './DragSourceFromEvent';\nexport { default as DropTargetIndicator } from './DropTargetIndicator';\nexport { default as Header } from './Header';\nexport { default as HeaderButton } from './HeaderButton';\nexport { default as Splitter } from './Splitter';\nexport { default as Tab } from './Tab';\n"],"mappings":"SAASA,OAAO,IAAIC,aAAa;AAAA,SACxBD,OAAO,IAAIE,SAAS;AAAA,SACpBF,OAAO,IAAIG,UAAU;AAAA,SACrBH,OAAO,IAAII,mBAAmB;AAAA,SAC9BJ,OAAO,IAAIK,mBAAmB;AAAA,SAC9BL,OAAO,IAAIM,MAAM;AAAA,SACjBN,OAAO,IAAIO,YAAY;AAAA,SACvBP,OAAO,IAAIQ,QAAQ;AAAA,SACnBR,OAAO,IAAIS,GAAG"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["default","BrowserPopout","DragProxy","DragSource","DragSourceFromEvent","DropTargetIndicator","Header","HeaderButton","Splitter","Tab"],"sources":["../../src/controls/index.ts"],"sourcesContent":["export { default as BrowserPopout } from './BrowserPopout';\nexport { default as DragProxy } from './DragProxy';\nexport { default as DragSource } from './DragSource';\nexport { default as DragSourceFromEvent } from './DragSourceFromEvent';\nexport { default as DropTargetIndicator } from './DropTargetIndicator';\nexport { default as Header } from './Header';\nexport { default as HeaderButton } from './HeaderButton';\nexport { default as Splitter } from './Splitter';\nexport { default as Tab } from './Tab';\n"],"mappings":"SAASA,OAAO,IAAIC,aAAa;AAAA,SACxBD,OAAO,IAAIE,SAAS;AAAA,SACpBF,OAAO,IAAIG,UAAU;AAAA,SACrBH,OAAO,IAAII,mBAAmB;AAAA,SAC9BJ,OAAO,IAAIK,mBAAmB;AAAA,SAC9BL,OAAO,IAAIM,MAAM;AAAA,SACjBN,OAAO,IAAIO,YAAY;AAAA,SACvBP,OAAO,IAAIQ,QAAQ;AAAA,SACnBR,OAAO,IAAIS,GAAG","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"declaration.d.js","names":[],"sources":["../src/declaration.d.ts"],"sourcesContent":["declare module '*.module.scss' {\n const content: Record<string, string>;\n export default content;\n}\n\ndeclare module '*.scss';\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"declaration.d.js","names":[],"sources":["../src/declaration.d.ts"],"sourcesContent":["declare module '*.module.scss' {\n const content: Record<string, string>;\n export default content;\n}\n\ndeclare module '*.scss';\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigurationError.js","names":["ConfigurationError","Error","constructor","message","node","_defineProperty","name"],"sources":["../../src/errors/ConfigurationError.ts"],"sourcesContent":["class ConfigurationError extends Error {\n node: unknown;\n\n constructor(message: string, node?: unknown) {\n super();\n\n this.name = 'Configuration Error';\n this.message = message;\n this.node = node;\n }\n}\n\nexport default ConfigurationError;\n"],"mappings":";;;AAAA,MAAMA,kBAAkB,SAASC,KAAK,CAAC;EAGrCC,WAAWA,CAACC,OAAe,EAAEC,IAAc,EAAE;IAC3C,KAAK,CAAC,CAAC;IAACC,eAAA;IAER,IAAI,CAACC,IAAI,GAAG,qBAAqB;IACjC,IAAI,CAACH,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,IAAI,GAAGA,IAAI;EAClB;AACF;AAEA,eAAeJ,kBAAkB"}
|
|
1
|
+
{"version":3,"file":"ConfigurationError.js","names":["ConfigurationError","Error","constructor","message","node","_defineProperty","name"],"sources":["../../src/errors/ConfigurationError.ts"],"sourcesContent":["class ConfigurationError extends Error {\n node: unknown;\n\n constructor(message: string, node?: unknown) {\n super();\n\n this.name = 'Configuration Error';\n this.message = message;\n this.node = node;\n }\n}\n\nexport default ConfigurationError;\n"],"mappings":";;;AAAA,MAAMA,kBAAkB,SAASC,KAAK,CAAC;EAGrCC,WAAWA,CAACC,OAAe,EAAEC,IAAc,EAAE;IAC3C,KAAK,CAAC,CAAC;IAACC,eAAA;IAER,IAAI,CAACC,IAAI,GAAG,qBAAqB;IACjC,IAAI,CAACH,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,IAAI,GAAGA,IAAI;EAClB;AACF;AAEA,eAAeJ,kBAAkB","ignoreList":[]}
|
package/dist/errors/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["default","ConfigurationError"],"sources":["../../src/errors/index.ts"],"sourcesContent":["export { default as ConfigurationError } from './ConfigurationError';\n"],"mappings":"SAASA,OAAO,IAAIC,kBAAkB"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["default","ConfigurationError"],"sources":["../../src/errors/index.ts"],"sourcesContent":["export { default as ConfigurationError } from './ConfigurationError';\n"],"mappings":"SAASA,OAAO,IAAIC,kBAAkB","ignoreList":[]}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["LayoutManager","default","GoldenLayoutThemeExport"],"sources":["../src/index.ts"],"sourcesContent":["import LayoutManager from './LayoutManager';\n\nexport * from './config';\nexport * from './container';\nexport * from './controls';\nexport * from './errors';\nexport * from './items';\nexport * from './LayoutManager';\nexport * from './utils';\nexport { default as GoldenLayoutThemeExport } from './GoldenLayoutThemeExport';\n\nexport default LayoutManager;\n"],"mappings":"OAAOA,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SASXC,OAAO,IAAIC,uBAAuB;AAE3C,eAAeF,aAAa"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["LayoutManager","default","GoldenLayoutThemeExport"],"sources":["../src/index.ts"],"sourcesContent":["import LayoutManager from './LayoutManager';\n\nexport * from './config';\nexport * from './container';\nexport * from './controls';\nexport * from './errors';\nexport * from './items';\nexport * from './LayoutManager';\nexport * from './utils';\nexport { default as GoldenLayoutThemeExport } from './GoldenLayoutThemeExport';\n\nexport default LayoutManager;\n"],"mappings":"OAAOA,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SASXC,OAAO,IAAIC,uBAAuB;AAE3C,eAAeF,aAAa","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractContentItem.js","names":["animFrame","BubblingEvent","EventEmitter","ConfigurationError","itemDefaultConfig","isStack","item","isComponent","isRoot","AbstractContentItem","constructor","layoutManager","config","parent","element","_defineProperty","_extendItemNode","type","contentItems","_pendingEventPropagations","_throttledEvents","on","ALL_EVENT","_propagateEvent","content","_createContentItems","callDownwards","functionName","functionArguments","arguments","length","undefined","bottomUp","skipSelf","apply","i","removeChild","contentItem","_this$config$content","keepChild","index","indexOf","Error","_$destroy","splice","isClosable","_this$parent","addChild","_$normalizeContentItem","isInitialised","_$init","replaceChild","oldChild","newChild","_$destroyOldChild","parentNode","header","tabs","remove","_this$parent2","popout","browserPopout","createPopout","emitBubblingEvent","toggleMaximise","e","preventDefault","isMaximised","_$minimiseItem","_$maximiseItem","select","selectedItem","selectItem","addClass","deselect","removeClass","setTitle","title","emit","hasId","id","Array","addId","push","removeId","getItemsByFilter","filter","result","next","getItemsById","getItemsByType","_$getItemsByProperty","getComponentsByName","componentName","components","instances","instance","key","value","_$setParent","_$highlightDropZone","x","y","area","_this$layoutManager$d","dropTargetIndicator","highlightArea","_$onDrop","_$hide","_callOnActiveComponents","hide","updateSize","_$show","show","methodName","stacks","activeContentItem","getActiveContentItem","container","_$getArea","_element$offset","_element$width","_element$height","offset","left","top","width","height","x1","y1","x2","y2","surface","side","setSize","_this$childElementCon","childElementContainer","append","name","event","oContentItem","createContentItem","Object","entries","k","isPropagationStopped","_scheduleEventPropagationToLayoutManager","origin","_propagateEventToLayoutManager","bind"],"sources":["../../src/items/AbstractContentItem.ts"],"sourcesContent":["import { animFrame, BubblingEvent, EventEmitter } from '../utils';\nimport { ConfigurationError } from '../errors';\nimport { itemDefaultConfig } from '../config';\nimport type { ItemConfig } from '../config';\nimport type LayoutManager from '../LayoutManager';\nimport type Tab from '../controls/Tab';\nimport type Stack from './Stack';\nimport type Component from './Component';\nimport type Root from './Root';\n\nexport function isStack(item: AbstractContentItem): item is Stack {\n return item.isStack;\n}\n\nexport function isComponent(item: AbstractContentItem): item is Component {\n return item.isComponent;\n}\n\nexport function isRoot(item: AbstractContentItem): item is Root {\n return item.isRoot;\n}\n\nexport type ItemArea<C = AbstractContentItem> = {\n x1: number;\n x2: number;\n y1: number;\n y2: number;\n surface: number;\n side: 'left' | 'right' | 'top' | 'bottom' | '';\n contentItem: C;\n};\n\n/**\n * This is the baseclass that all content items inherit from.\n * Most methods provide a subset of what the sub-classes do.\n *\n * It also provides a number of functions for tree traversal\n *\n * @param {lm.LayoutManager} layoutManager\n * @param {item node configuration} config\n * @param {lm.item} parent\n *\n * @event stateChanged\n * @event beforeItemDestroyed\n * @event itemDestroyed\n * @event itemCreated\n * @event componentCreated\n * @event rowCreated\n * @event columnCreated\n * @event stackCreated\n *\n * @constructor\n */\nexport default abstract class AbstractContentItem extends EventEmitter {\n config: ItemConfig;\n type: string;\n contentItems: AbstractContentItem[];\n parent: AbstractContentItem | null;\n layoutManager: LayoutManager;\n element: JQuery<HTMLElement>;\n childElementContainer?: JQuery<HTMLElement>;\n componentName?: string;\n\n isInitialised = false;\n isMaximised = false;\n isRoot = false;\n isRow = false;\n isColumn = false;\n isStack = false;\n isComponent = false;\n\n tab?: Tab;\n\n private _pendingEventPropagations: Record<string, boolean>;\n private _throttledEvents: string[];\n\n constructor(\n layoutManager: LayoutManager,\n config: ItemConfig,\n parent: AbstractContentItem | null,\n element: JQuery<HTMLElement>\n ) {\n super();\n this.element = element;\n\n // Some GL things expect this config to not change\n this.config = this._extendItemNode(config);\n this.type = config.type;\n this.contentItems = [];\n this.parent = parent;\n\n this.layoutManager = layoutManager;\n this._pendingEventPropagations = {};\n this._throttledEvents = ['stateChanged'];\n\n this.on(EventEmitter.ALL_EVENT, this._propagateEvent, this);\n\n if (config.content) {\n this._createContentItems(config);\n }\n }\n\n /**\n * Set the size of the component and its children, called recursively\n *\n * @abstract\n */\n abstract setSize(width?: number, height?: number): void;\n\n /**\n * Calls a method recursively downwards on the tree\n *\n * @param functionName the name of the function to be called\n * @param functionArguments optional arguments that are passed to every function\n * @param bottomUp Call methods from bottom to top, defaults to false\n * @param skipSelf Don't invoke the method on the class that calls it, defaults to false\n */\n callDownwards<N extends 'setSize' | '_$destroy' | '_$init' | '_$show'>(\n functionName: N,\n functionArguments = [] as Parameters<AbstractContentItem[N]>,\n bottomUp = false,\n skipSelf = false\n ) {\n if (bottomUp !== true && skipSelf !== true) {\n this[functionName].apply(this, functionArguments);\n }\n for (let i = 0; i < this.contentItems.length; i++) {\n this.contentItems[i].callDownwards(\n functionName,\n functionArguments,\n bottomUp\n );\n }\n if (bottomUp === true && skipSelf !== true) {\n this[functionName].apply(this, functionArguments);\n }\n }\n\n /**\n * Removes a child node (and its children) from the tree\n *\n * @param contentItem\n */\n removeChild(contentItem: AbstractContentItem, keepChild = false) {\n /*\n * Get the position of the item that's to be removed within all content items this node contains\n */\n const index = this.contentItems.indexOf(contentItem);\n\n /*\n * Make sure the content item to be removed is actually a child of this item\n */\n if (index === -1) {\n throw new Error(\"Can't remove child item. Unknown content item\");\n }\n\n /**\n * Call ._$destroy on the content item. This also calls ._$destroy on all its children\n */\n if (keepChild !== true) {\n this.contentItems[index]._$destroy();\n }\n\n /**\n * Remove the content item from this nodes array of children\n */\n this.contentItems.splice(index, 1);\n\n /**\n * Remove the item from the configuration\n */\n this.config.content?.splice(index, 1);\n\n /**\n * If this node still contains other content items, adjust their size\n */\n if (this.contentItems.length > 0) {\n this.callDownwards('setSize');\n\n /**\n * If this was the last content item, remove this node as well\n */\n } else if (this.type !== 'root' && this.config.isClosable) {\n this.parent?.removeChild(this);\n }\n }\n\n /**\n * Sets up the tree structure for the newly added child\n * The responsibility for the actual DOM manipulations lies\n * with the concrete item\n *\n * @param contentItem\n * @param index If omitted item will be appended\n */\n addChild(contentItem: AbstractContentItem | ItemConfig, index?: number) {\n contentItem = this.layoutManager._$normalizeContentItem(contentItem, this);\n if (index === undefined) {\n index = this.contentItems.length;\n }\n\n this.contentItems.splice(index, 0, contentItem);\n\n if (this.config.content === undefined) {\n this.config.content = [];\n }\n\n this.config.content.splice(index, 0, contentItem.config);\n contentItem.parent = this;\n\n if (\n contentItem.parent.isInitialised === true &&\n contentItem.isInitialised === false\n ) {\n contentItem._$init();\n }\n }\n\n /**\n * Replaces oldChild with newChild. This used to use jQuery.replaceWith... which for\n * some reason removes all event listeners, so isn't really an option.\n *\n * @param oldChild\n * @param newChild\n */\n replaceChild(\n oldChild: AbstractContentItem,\n newChild: AbstractContentItem,\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: ItemConfig) {\n var oContentItem;\n\n if (!(config.content instanceof Array)) {\n throw new ConfigurationError('content must be an Array', config);\n }\n\n for (let i = 0; i < config.content.length; i++) {\n oContentItem = this.layoutManager.createContentItem(\n config.content[i],\n this\n );\n this.contentItems.push(oContentItem);\n }\n }\n\n /**\n * Extends an item configuration node with default settings\n * @param config\n * @returns extended config\n */\n _extendItemNode<TConfig extends ItemConfig>(config: TConfig) {\n for (let [key, value] of Object.entries(itemDefaultConfig)) {\n // This just appeases TS\n const k = key as keyof TConfig;\n if (config[k] === undefined) {\n config[k] = value;\n }\n }\n\n return config;\n }\n\n /**\n * Called for every event on the item tree. Decides whether the event is a bubbling\n * event and propagates it to its parent\n *\n * @param name the name of the event\n * @param event\n */\n _propagateEvent(name: string, event: BubblingEvent) {\n if (\n event instanceof BubblingEvent &&\n event.isPropagationStopped === false &&\n this.isInitialised === true\n ) {\n /**\n * In some cases (e.g. if an element is created from a DragSource) it\n * doesn't have a parent and is not below root. If that's the case\n * propagate the bubbling event from the top level of the substree directly\n * to the layoutManager\n */\n if (this.isRoot === false && this.parent) {\n this.parent.emit.apply(this.parent, [name, event]);\n } else {\n this._scheduleEventPropagationToLayoutManager(name, event);\n }\n }\n }\n\n /**\n * All raw events bubble up to the root element. Some events that\n * are propagated to - and emitted by - the layoutManager however are\n * only string-based, batched and sanitized to make them more usable\n *\n * @param name the name of the event\n */\n _scheduleEventPropagationToLayoutManager(name: string, event: BubblingEvent) {\n if (this._throttledEvents.indexOf(name) === -1) {\n this.layoutManager.emit(name, event.origin);\n } else {\n if (this._pendingEventPropagations[name] !== true) {\n this._pendingEventPropagations[name] = true;\n animFrame(this._propagateEventToLayoutManager.bind(this, name, event));\n }\n }\n }\n\n /**\n * Callback for events scheduled by _scheduleEventPropagationToLayoutManager\n *\n * @param name the name of the event\n */\n _propagateEventToLayoutManager(name: string, event: BubblingEvent) {\n this._pendingEventPropagations[name] = false;\n this.layoutManager.emit(name, event);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AbstractContentItem.js","names":["animFrame","BubblingEvent","EventEmitter","ConfigurationError","itemDefaultConfig","isStack","item","isComponent","isRoot","AbstractContentItem","constructor","layoutManager","config","parent","element","_defineProperty","_extendItemNode","type","contentItems","_pendingEventPropagations","_throttledEvents","on","ALL_EVENT","_propagateEvent","content","_createContentItems","callDownwards","functionName","functionArguments","arguments","length","undefined","bottomUp","skipSelf","apply","i","removeChild","contentItem","_this$config$content","keepChild","index","indexOf","Error","_$destroy","splice","isClosable","_this$parent","addChild","_$normalizeContentItem","isInitialised","_$init","replaceChild","oldChild","newChild","_$destroyOldChild","parentNode","header","tabs","remove","_this$parent2","popout","browserPopout","createPopout","emitBubblingEvent","toggleMaximise","e","preventDefault","isMaximised","_$minimiseItem","_$maximiseItem","select","selectedItem","selectItem","addClass","deselect","removeClass","setTitle","title","emit","hasId","id","Array","addId","push","removeId","getItemsByFilter","filter","result","next","getItemsById","getItemsByType","_$getItemsByProperty","getComponentsByName","componentName","components","instances","instance","key","value","_$setParent","_$highlightDropZone","x","y","area","_this$layoutManager$d","dropTargetIndicator","highlightArea","_$onDrop","_$hide","_callOnActiveComponents","hide","updateSize","_$show","show","methodName","stacks","activeContentItem","getActiveContentItem","container","_$getArea","_element$offset","_element$width","_element$height","offset","left","top","width","height","x1","y1","x2","y2","surface","side","setSize","_this$childElementCon","childElementContainer","append","name","event","oContentItem","createContentItem","Object","entries","k","isPropagationStopped","_scheduleEventPropagationToLayoutManager","origin","_propagateEventToLayoutManager","bind"],"sources":["../../src/items/AbstractContentItem.ts"],"sourcesContent":["import { animFrame, BubblingEvent, EventEmitter } from '../utils';\nimport { ConfigurationError } from '../errors';\nimport { itemDefaultConfig } from '../config';\nimport type { ItemConfig } from '../config';\nimport type LayoutManager from '../LayoutManager';\nimport type Tab from '../controls/Tab';\nimport type Stack from './Stack';\nimport type Component from './Component';\nimport type Root from './Root';\n\nexport function isStack(item: AbstractContentItem): item is Stack {\n return item.isStack;\n}\n\nexport function isComponent(item: AbstractContentItem): item is Component {\n return item.isComponent;\n}\n\nexport function isRoot(item: AbstractContentItem): item is Root {\n return item.isRoot;\n}\n\nexport type ItemArea<C = AbstractContentItem> = {\n x1: number;\n x2: number;\n y1: number;\n y2: number;\n surface: number;\n side: 'left' | 'right' | 'top' | 'bottom' | '';\n contentItem: C;\n};\n\n/**\n * This is the baseclass that all content items inherit from.\n * Most methods provide a subset of what the sub-classes do.\n *\n * It also provides a number of functions for tree traversal\n *\n * @param {lm.LayoutManager} layoutManager\n * @param {item node configuration} config\n * @param {lm.item} parent\n *\n * @event stateChanged\n * @event beforeItemDestroyed\n * @event itemDestroyed\n * @event itemCreated\n * @event componentCreated\n * @event rowCreated\n * @event columnCreated\n * @event stackCreated\n *\n * @constructor\n */\nexport default abstract class AbstractContentItem extends EventEmitter {\n config: ItemConfig;\n type: string;\n contentItems: AbstractContentItem[];\n parent: AbstractContentItem | null;\n layoutManager: LayoutManager;\n element: JQuery<HTMLElement>;\n childElementContainer?: JQuery<HTMLElement>;\n componentName?: string;\n\n isInitialised = false;\n isMaximised = false;\n isRoot = false;\n isRow = false;\n isColumn = false;\n isStack = false;\n isComponent = false;\n\n tab?: Tab;\n\n private _pendingEventPropagations: Record<string, boolean>;\n private _throttledEvents: string[];\n\n constructor(\n layoutManager: LayoutManager,\n config: ItemConfig,\n parent: AbstractContentItem | null,\n element: JQuery<HTMLElement>\n ) {\n super();\n this.element = element;\n\n // Some GL things expect this config to not change\n this.config = this._extendItemNode(config);\n this.type = config.type;\n this.contentItems = [];\n this.parent = parent;\n\n this.layoutManager = layoutManager;\n this._pendingEventPropagations = {};\n this._throttledEvents = ['stateChanged'];\n\n this.on(EventEmitter.ALL_EVENT, this._propagateEvent, this);\n\n if (config.content) {\n this._createContentItems(config);\n }\n }\n\n /**\n * Set the size of the component and its children, called recursively\n *\n * @abstract\n */\n abstract setSize(width?: number, height?: number): void;\n\n /**\n * Calls a method recursively downwards on the tree\n *\n * @param functionName the name of the function to be called\n * @param functionArguments optional arguments that are passed to every function\n * @param bottomUp Call methods from bottom to top, defaults to false\n * @param skipSelf Don't invoke the method on the class that calls it, defaults to false\n */\n callDownwards<N extends 'setSize' | '_$destroy' | '_$init' | '_$show'>(\n functionName: N,\n functionArguments = [] as Parameters<AbstractContentItem[N]>,\n bottomUp = false,\n skipSelf = false\n ) {\n if (bottomUp !== true && skipSelf !== true) {\n this[functionName].apply(this, functionArguments);\n }\n for (let i = 0; i < this.contentItems.length; i++) {\n this.contentItems[i].callDownwards(\n functionName,\n functionArguments,\n bottomUp\n );\n }\n if (bottomUp === true && skipSelf !== true) {\n this[functionName].apply(this, functionArguments);\n }\n }\n\n /**\n * Removes a child node (and its children) from the tree\n *\n * @param contentItem\n */\n removeChild(contentItem: AbstractContentItem, keepChild = false) {\n /*\n * Get the position of the item that's to be removed within all content items this node contains\n */\n const index = this.contentItems.indexOf(contentItem);\n\n /*\n * Make sure the content item to be removed is actually a child of this item\n */\n if (index === -1) {\n throw new Error(\"Can't remove child item. Unknown content item\");\n }\n\n /**\n * Call ._$destroy on the content item. This also calls ._$destroy on all its children\n */\n if (keepChild !== true) {\n this.contentItems[index]._$destroy();\n }\n\n /**\n * Remove the content item from this nodes array of children\n */\n this.contentItems.splice(index, 1);\n\n /**\n * Remove the item from the configuration\n */\n this.config.content?.splice(index, 1);\n\n /**\n * If this node still contains other content items, adjust their size\n */\n if (this.contentItems.length > 0) {\n this.callDownwards('setSize');\n\n /**\n * If this was the last content item, remove this node as well\n */\n } else if (this.type !== 'root' && this.config.isClosable) {\n this.parent?.removeChild(this);\n }\n }\n\n /**\n * Sets up the tree structure for the newly added child\n * The responsibility for the actual DOM manipulations lies\n * with the concrete item\n *\n * @param contentItem\n * @param index If omitted item will be appended\n */\n addChild(contentItem: AbstractContentItem | ItemConfig, index?: number) {\n contentItem = this.layoutManager._$normalizeContentItem(contentItem, this);\n if (index === undefined) {\n index = this.contentItems.length;\n }\n\n this.contentItems.splice(index, 0, contentItem);\n\n if (this.config.content === undefined) {\n this.config.content = [];\n }\n\n this.config.content.splice(index, 0, contentItem.config);\n contentItem.parent = this;\n\n if (\n contentItem.parent.isInitialised === true &&\n contentItem.isInitialised === false\n ) {\n contentItem._$init();\n }\n }\n\n /**\n * Replaces oldChild with newChild. This used to use jQuery.replaceWith... which for\n * some reason removes all event listeners, so isn't really an option.\n *\n * @param oldChild\n * @param newChild\n */\n replaceChild(\n oldChild: AbstractContentItem,\n newChild: AbstractContentItem,\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: ItemConfig) {\n var oContentItem;\n\n if (!(config.content instanceof Array)) {\n throw new ConfigurationError('content must be an Array', config);\n }\n\n for (let i = 0; i < config.content.length; i++) {\n oContentItem = this.layoutManager.createContentItem(\n config.content[i],\n this\n );\n this.contentItems.push(oContentItem);\n }\n }\n\n /**\n * Extends an item configuration node with default settings\n * @param config\n * @returns extended config\n */\n _extendItemNode<TConfig extends ItemConfig>(config: TConfig) {\n for (let [key, value] of Object.entries(itemDefaultConfig)) {\n // This just appeases TS\n const k = key as keyof TConfig;\n if (config[k] === undefined) {\n config[k] = value;\n }\n }\n\n return config;\n }\n\n /**\n * Called for every event on the item tree. Decides whether the event is a bubbling\n * event and propagates it to its parent\n *\n * @param name the name of the event\n * @param event\n */\n _propagateEvent(name: string, event: BubblingEvent) {\n if (\n event instanceof BubblingEvent &&\n event.isPropagationStopped === false &&\n this.isInitialised === true\n ) {\n /**\n * In some cases (e.g. if an element is created from a DragSource) it\n * doesn't have a parent and is not below root. If that's the case\n * propagate the bubbling event from the top level of the substree directly\n * to the layoutManager\n */\n if (this.isRoot === false && this.parent) {\n this.parent.emit.apply(this.parent, [name, event]);\n } else {\n this._scheduleEventPropagationToLayoutManager(name, event);\n }\n }\n }\n\n /**\n * All raw events bubble up to the root element. Some events that\n * are propagated to - and emitted by - the layoutManager however are\n * only string-based, batched and sanitized to make them more usable\n *\n * @param name the name of the event\n */\n _scheduleEventPropagationToLayoutManager(name: string, event: BubblingEvent) {\n if (this._throttledEvents.indexOf(name) === -1) {\n this.layoutManager.emit(name, event.origin);\n } else {\n if (this._pendingEventPropagations[name] !== true) {\n this._pendingEventPropagations[name] = true;\n animFrame(this._propagateEventToLayoutManager.bind(this, name, event));\n }\n }\n }\n\n /**\n * Callback for events scheduled by _scheduleEventPropagationToLayoutManager\n *\n * @param name the name of the event\n */\n _propagateEventToLayoutManager(name: string, event: BubblingEvent) {\n this._pendingEventPropagations[name] = false;\n this.layoutManager.emit(name, event);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Component.js","names":["$","AbstractContentItem","ConfigurationError","ItemContainer","Component","constructor","layoutManager","config","parent","_layoutManager$config","Object","entries","settings","defaultComponentConfig","forEach","_ref","k","v","undefined","_defineProperty","ComponentConstructor","getComponent","componentName","getFallbackComponent","componentConfig","extend","componentState","title","isComponent","container","instance","element","_element","close","_this$parent","removeChild","setSize","is","_$setSize","width","height","_$init","prototype","call","emit","_$hide","hide","_$show","forceFocus","show","_config","isFocusOnShow","_contentElement","focus","preventScroll","_$destroy","_$getArea"],"sources":["../../src/items/Component.ts"],"sourcesContent":["import $ from 'jquery';\nimport AbstractContentItem from './AbstractContentItem';\nimport { ConfigurationError } from '../errors';\nimport type LayoutManager from '../LayoutManager';\nimport type { ComponentConfig } from '../config/ItemConfig';\nimport ItemContainer from '../container/ItemContainer';\nimport type { ComponentConstructor } from '../LayoutManager';\n\n/**\n * @param layoutManager\n * @param config\n * @param parent\n */\nexport default class Component extends AbstractContentItem {\n config: ComponentConfig;\n\n componentName: string;\n\n container: ItemContainer;\n\n parent: AbstractContentItem | null;\n\n instance: unknown;\n\n constructor(\n layoutManager: LayoutManager,\n config: ComponentConfig,\n parent: AbstractContentItem | null\n ) {\n // Extend before super so the AbstractContentItem defualts aren't applied first\n Object.entries(\n layoutManager.config.settings.defaultComponentConfig ?? {}\n ).forEach(([k, v]) => {\n // @ts-ignore\n if (config[k] === undefined) {\n // @ts-ignore\n config[k] = v;\n }\n });\n super(layoutManager, config, parent, $());\n this.config = config;\n this.parent = parent;\n\n const ComponentConstructor =\n (layoutManager.getComponent(\n this.config.componentName\n ) as ComponentConstructor) || layoutManager.getFallbackComponent(),\n componentConfig = $.extend(true, {}, this.config.componentState || {});\n\n if (ComponentConstructor == null) {\n throw new ConfigurationError(\n 'Unknown component \"' + this.config.componentName + '\"'\n );\n }\n componentConfig.componentName = this.config.componentName;\n this.componentName = this.config.componentName;\n\n if (this.config.title === '') {\n this.config.title = this.config.componentName;\n }\n\n this.isComponent = true;\n this.container = new ItemContainer(this.config, this, layoutManager);\n this.instance = new ComponentConstructor(this.container, componentConfig);\n this.element = this.container._element;\n }\n\n close() {\n this.parent?.removeChild(this);\n }\n\n setSize() {\n if (this.element.is(':visible')) {\n // Do not update size of hidden components to prevent unwanted reflows\n this.container._$setSize(this.element.width(), this.element.height());\n }\n }\n\n _$init() {\n AbstractContentItem.prototype._$init.call(this);\n this.container.emit('open');\n }\n\n _$hide() {\n this.container.hide();\n AbstractContentItem.prototype._$hide.call(this);\n }\n\n _$show(forceFocus?: boolean) {\n this.container.show();\n if (this.container._config.isFocusOnShow || forceFocus) {\n // focus the shown container element on show\n // preventScroll isn't supported in safari, but also doesn't matter for illumon when 100% window\n this.container._contentElement[0].focus({ preventScroll: true });\n }\n AbstractContentItem.prototype._$show.call(this);\n }\n\n _$destroy() {\n this.container.emit('destroy', this);\n AbstractContentItem.prototype._$destroy.call(this);\n }\n\n /**\n * Dragging onto a component directly is not an option\n *\n * @returns null\n */\n _$getArea() {\n return null;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Component.js","names":["$","AbstractContentItem","ConfigurationError","ItemContainer","Component","constructor","layoutManager","config","parent","_layoutManager$config","Object","entries","settings","defaultComponentConfig","forEach","_ref","k","v","undefined","_defineProperty","ComponentConstructor","getComponent","componentName","getFallbackComponent","componentConfig","extend","componentState","title","isComponent","container","instance","element","_element","close","_this$parent","removeChild","setSize","is","_$setSize","width","height","_$init","prototype","call","emit","_$hide","hide","_$show","forceFocus","show","_config","isFocusOnShow","_contentElement","focus","preventScroll","_$destroy","_$getArea"],"sources":["../../src/items/Component.ts"],"sourcesContent":["import $ from 'jquery';\nimport AbstractContentItem from './AbstractContentItem';\nimport { ConfigurationError } from '../errors';\nimport type LayoutManager from '../LayoutManager';\nimport type { ComponentConfig } from '../config/ItemConfig';\nimport ItemContainer from '../container/ItemContainer';\nimport type { ComponentConstructor } from '../LayoutManager';\n\n/**\n * @param layoutManager\n * @param config\n * @param parent\n */\nexport default class Component extends AbstractContentItem {\n config: ComponentConfig;\n\n componentName: string;\n\n container: ItemContainer;\n\n parent: AbstractContentItem | null;\n\n instance: unknown;\n\n constructor(\n layoutManager: LayoutManager,\n config: ComponentConfig,\n parent: AbstractContentItem | null\n ) {\n // Extend before super so the AbstractContentItem defualts aren't applied first\n Object.entries(\n layoutManager.config.settings.defaultComponentConfig ?? {}\n ).forEach(([k, v]) => {\n // @ts-ignore\n if (config[k] === undefined) {\n // @ts-ignore\n config[k] = v;\n }\n });\n super(layoutManager, config, parent, $());\n this.config = config;\n this.parent = parent;\n\n const ComponentConstructor =\n (layoutManager.getComponent(\n this.config.componentName\n ) as ComponentConstructor) || layoutManager.getFallbackComponent(),\n componentConfig = $.extend(true, {}, this.config.componentState || {});\n\n if (ComponentConstructor == null) {\n throw new ConfigurationError(\n 'Unknown component \"' + this.config.componentName + '\"'\n );\n }\n componentConfig.componentName = this.config.componentName;\n this.componentName = this.config.componentName;\n\n if (this.config.title === '') {\n this.config.title = this.config.componentName;\n }\n\n this.isComponent = true;\n this.container = new ItemContainer(this.config, this, layoutManager);\n this.instance = new ComponentConstructor(this.container, componentConfig);\n this.element = this.container._element;\n }\n\n close() {\n this.parent?.removeChild(this);\n }\n\n setSize() {\n if (this.element.is(':visible')) {\n // Do not update size of hidden components to prevent unwanted reflows\n this.container._$setSize(this.element.width(), this.element.height());\n }\n }\n\n _$init() {\n AbstractContentItem.prototype._$init.call(this);\n this.container.emit('open');\n }\n\n _$hide() {\n this.container.hide();\n AbstractContentItem.prototype._$hide.call(this);\n }\n\n _$show(forceFocus?: boolean) {\n this.container.show();\n if (this.container._config.isFocusOnShow || forceFocus) {\n // focus the shown container element on show\n // preventScroll isn't supported in safari, but also doesn't matter for illumon when 100% window\n this.container._contentElement[0].focus({ preventScroll: true });\n }\n AbstractContentItem.prototype._$show.call(this);\n }\n\n _$destroy() {\n this.container.emit('destroy', this);\n AbstractContentItem.prototype._$destroy.call(this);\n }\n\n /**\n * Dragging onto a component directly is not an option\n *\n * @returns null\n */\n _$getArea() {\n return null;\n }\n}\n"],"mappings":";;;AAAA,OAAOA,CAAC,MAAM,QAAQ;AAAC,OAChBC,mBAAmB;AAAA,SACjBC,kBAAkB;AAAA,OAGpBC,aAAa;AAGpB;AACA;AACA;AACA;AACA;AACA,eAAe,MAAMC,SAAS,SAASH,mBAAmB,CAAC;EAWzDI,WAAWA,CACTC,aAA4B,EAC5BC,MAAuB,EACvBC,MAAkC,EAClC;IAAA,IAAAC,qBAAA;IACA;IACAC,MAAM,CAACC,OAAO,EAAAF,qBAAA,GACZH,aAAa,CAACC,MAAM,CAACK,QAAQ,CAACC,sBAAsB,cAAAJ,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAC3D,CAAC,CAACK,OAAO,CAACC,IAAA,IAAY;MAAA,IAAX,CAACC,CAAC,EAAEC,CAAC,CAAC,GAAAF,IAAA;MACf;MACA,IAAIR,MAAM,CAACS,CAAC,CAAC,KAAKE,SAAS,EAAE;QAC3B;QACAX,MAAM,CAACS,CAAC,CAAC,GAAGC,CAAC;MACf;IACF,CAAC,CAAC;IACF,KAAK,CAACX,aAAa,EAAEC,MAAM,EAAEC,MAAM,EAAER,CAAC,CAAC,CAAC,CAAC;IAACmB,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAC1C,IAAI,CAACZ,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,MAAM,GAAGA,MAAM;IAEpB,IAAMY,oBAAoB,GACrBd,aAAa,CAACe,YAAY,CACzB,IAAI,CAACd,MAAM,CAACe,aACd,CAAC,IAA6BhB,aAAa,CAACiB,oBAAoB,CAAC,CAAC;MACpEC,eAAe,GAAGxB,CAAC,CAACyB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,CAAClB,MAAM,CAACmB,cAAc,IAAI,CAAC,CAAC,CAAC;IAExE,IAAIN,oBAAoB,IAAI,IAAI,EAAE;MAChC,MAAM,IAAIlB,kBAAkB,CAC1B,qBAAqB,GAAG,IAAI,CAACK,MAAM,CAACe,aAAa,GAAG,GACtD,CAAC;IACH;IACAE,eAAe,CAACF,aAAa,GAAG,IAAI,CAACf,MAAM,CAACe,aAAa;IACzD,IAAI,CAACA,aAAa,GAAG,IAAI,CAACf,MAAM,CAACe,aAAa;IAE9C,IAAI,IAAI,CAACf,MAAM,CAACoB,KAAK,KAAK,EAAE,EAAE;MAC5B,IAAI,CAACpB,MAAM,CAACoB,KAAK,GAAG,IAAI,CAACpB,MAAM,CAACe,aAAa;IAC/C;IAEA,IAAI,CAACM,WAAW,GAAG,IAAI;IACvB,IAAI,CAACC,SAAS,GAAG,IAAI1B,aAAa,CAAC,IAAI,CAACI,MAAM,EAAE,IAAI,EAAED,aAAa,CAAC;IACpE,IAAI,CAACwB,QAAQ,GAAG,IAAIV,oBAAoB,CAAC,IAAI,CAACS,SAAS,EAAEL,eAAe,CAAC;IACzE,IAAI,CAACO,OAAO,GAAG,IAAI,CAACF,SAAS,CAACG,QAAQ;EACxC;EAEAC,KAAKA,CAAA,EAAG;IAAA,IAAAC,YAAA;IACN,CAAAA,YAAA,OAAI,CAAC1B,MAAM,cAAA0B,YAAA,uBAAXA,YAAA,CAAaC,WAAW,CAAC,IAAI,CAAC;EAChC;EAEAC,OAAOA,CAAA,EAAG;IACR,IAAI,IAAI,CAACL,OAAO,CAACM,EAAE,CAAC,UAAU,CAAC,EAAE;MAC/B;MACA,IAAI,CAACR,SAAS,CAACS,SAAS,CAAC,IAAI,CAACP,OAAO,CAACQ,KAAK,CAAC,CAAC,EAAE,IAAI,CAACR,OAAO,CAACS,MAAM,CAAC,CAAC,CAAC;IACvE;EACF;EAEAC,MAAMA,CAAA,EAAG;IACPxC,mBAAmB,CAACyC,SAAS,CAACD,MAAM,CAACE,IAAI,CAAC,IAAI,CAAC;IAC/C,IAAI,CAACd,SAAS,CAACe,IAAI,CAAC,MAAM,CAAC;EAC7B;EAEAC,MAAMA,CAAA,EAAG;IACP,IAAI,CAAChB,SAAS,CAACiB,IAAI,CAAC,CAAC;IACrB7C,mBAAmB,CAACyC,SAAS,CAACG,MAAM,CAACF,IAAI,CAAC,IAAI,CAAC;EACjD;EAEAI,MAAMA,CAACC,UAAoB,EAAE;IAC3B,IAAI,CAACnB,SAAS,CAACoB,IAAI,CAAC,CAAC;IACrB,IAAI,IAAI,CAACpB,SAAS,CAACqB,OAAO,CAACC,aAAa,IAAIH,UAAU,EAAE;MACtD;MACA;MACA,IAAI,CAACnB,SAAS,CAACuB,eAAe,CAAC,CAAC,CAAC,CAACC,KAAK,CAAC;QAAEC,aAAa,EAAE;MAAK,CAAC,CAAC;IAClE;IACArD,mBAAmB,CAACyC,SAAS,CAACK,MAAM,CAACJ,IAAI,CAAC,IAAI,CAAC;EACjD;EAEAY,SAASA,CAAA,EAAG;IACV,IAAI,CAAC1B,SAAS,CAACe,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;IACpC3C,mBAAmB,CAACyC,SAAS,CAACa,SAAS,CAACZ,IAAI,CAAC,IAAI,CAAC;EACpD;;EAEA;AACF;AACA;AACA;AACA;EACEa,SAASA,CAAA,EAAG;IACV,OAAO,IAAI;EACb;AACF","ignoreList":[]}
|
package/dist/items/Root.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Root.js","names":["$","AbstractContentItem","isComponent","RowOrColumn","Root","constructor","layoutManager","config","containerElement","_objectSpread","type","_defineProperty","isRoot","childElementContainer","element","_containerElement","append","addChild","contentItem","index","contentItems","length","Error","_$normalizeContentItem","callDownwards","emitBubblingEvent","setSize","width","height","_this$_containerEleme","_this$_containerEleme2","_$getArea","area","_$highlightDropZone","x","y","tabDropPlaceholder","remove","_$onDrop","stack","createContentItem","header","_$init","side","dimension","insertBefore","column","rowOrColumn","replaceChild","undefined","_sibling$config$dimen","sibling"],"sources":["../../src/items/Root.ts"],"sourcesContent":["import $ from 'jquery';\nimport type { ComponentConfig, ItemConfig } from '../config';\nimport LayoutManager from '../LayoutManager';\nimport AbstractContentItem, {\n isComponent,\n ItemArea,\n} from './AbstractContentItem';\nimport RowOrColumn from './RowOrColumn';\n\nexport default class Root extends AbstractContentItem {\n childElementContainer: JQuery<HTMLElement>;\n\n private _containerElement: JQuery<HTMLElement>;\n\n constructor(\n layoutManager: LayoutManager,\n config: ComponentConfig | { content: ItemConfig[] },\n containerElement: JQuery<HTMLElement>\n ) {\n super(\n layoutManager,\n { ...config, type: 'root' },\n null,\n $('<div class=\"lm_goldenlayout lm_item lm_root\"></div>')\n );\n this.isRoot = true;\n this.type = 'root';\n this.childElementContainer = this.element;\n this._containerElement = containerElement;\n this._containerElement.append(this.element);\n }\n\n addChild(contentItem: AbstractContentItem | ItemConfig, index?: number) {\n if (this.contentItems.length > 0) {\n throw new Error('Root node can only have a single child');\n }\n\n contentItem = this.layoutManager._$normalizeContentItem(contentItem, this);\n this.childElementContainer.append(contentItem.element);\n super.addChild(contentItem, index);\n\n this.callDownwards('setSize');\n this.emitBubblingEvent('stateChanged');\n }\n\n setSize(width?: number, height?: number) {\n width =\n typeof width === 'undefined'\n ? this._containerElement.width() ?? 0\n : width;\n height =\n typeof height === 'undefined'\n ? this._containerElement.height() ?? 0\n : height;\n\n this.element.width(width);\n this.element.height(height);\n\n /*\n * Root can be empty\n */\n if (this.contentItems[0]) {\n this.contentItems[0].element.width(width);\n this.contentItems[0].element.height(height);\n }\n }\n\n _$getArea() {\n const area = super._$getArea();\n if (area == null) {\n throw new Error('Unable to get root area');\n }\n return area;\n }\n\n _$highlightDropZone(x: number, y: number, area: ItemArea) {\n this.layoutManager.tabDropPlaceholder.remove();\n super._$highlightDropZone(x, y, area);\n }\n\n _$onDrop(contentItem: AbstractContentItem, area: ItemArea) {\n var stack;\n\n if (isComponent(contentItem)) {\n stack = this.layoutManager.createContentItem(\n {\n type: 'stack',\n header: contentItem.config.header || {},\n },\n this\n );\n stack._$init();\n stack.addChild(contentItem);\n contentItem = stack;\n }\n\n if (!this.contentItems.length) {\n this.addChild(contentItem);\n } else {\n const { side } = area;\n const type = side === 'left' || side === 'right' ? 'row' : 'column'; // Should new root be a row or column\n const dimension =\n side === 'left' || side === 'right' ? 'width' : 'height';\n const insertBefore = side === 'left' || side === 'top';\n const column = this.contentItems[0];\n if (!(column instanceof RowOrColumn) || column.type != type) {\n const rowOrColumn = this.layoutManager.createContentItem(\n { type: type },\n this\n ) as RowOrColumn;\n this.replaceChild(column, rowOrColumn);\n rowOrColumn.addChild(contentItem, insertBefore ? 0 : undefined, true);\n rowOrColumn.addChild(column, insertBefore ? undefined : 0, true);\n column.config[dimension] = 50;\n contentItem.config[dimension] = 50;\n rowOrColumn.callDownwards('setSize');\n } else {\n const sibling =\n column.contentItems[\n insertBefore ? 0 : column.contentItems.length - 1\n ];\n column.addChild(contentItem, insertBefore ? 0 : undefined, true);\n sibling.config[dimension] = (sibling.config[dimension] ?? 0) * 0.5;\n contentItem.config[dimension] = sibling.config[dimension];\n column.callDownwards('setSize');\n }\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Root.js","names":["$","AbstractContentItem","isComponent","RowOrColumn","Root","constructor","layoutManager","config","containerElement","_objectSpread","type","_defineProperty","isRoot","childElementContainer","element","_containerElement","append","addChild","contentItem","index","contentItems","length","Error","_$normalizeContentItem","callDownwards","emitBubblingEvent","setSize","width","height","_this$_containerEleme","_this$_containerEleme2","_$getArea","area","_$highlightDropZone","x","y","tabDropPlaceholder","remove","_$onDrop","stack","createContentItem","header","_$init","side","dimension","insertBefore","column","rowOrColumn","replaceChild","undefined","_sibling$config$dimen","sibling"],"sources":["../../src/items/Root.ts"],"sourcesContent":["import $ from 'jquery';\nimport type { ComponentConfig, ItemConfig } from '../config';\nimport LayoutManager from '../LayoutManager';\nimport AbstractContentItem, {\n isComponent,\n ItemArea,\n} from './AbstractContentItem';\nimport RowOrColumn from './RowOrColumn';\n\nexport default class Root extends AbstractContentItem {\n childElementContainer: JQuery<HTMLElement>;\n\n private _containerElement: JQuery<HTMLElement>;\n\n constructor(\n layoutManager: LayoutManager,\n config: ComponentConfig | { content: ItemConfig[] },\n containerElement: JQuery<HTMLElement>\n ) {\n super(\n layoutManager,\n { ...config, type: 'root' },\n null,\n $('<div class=\"lm_goldenlayout lm_item lm_root\"></div>')\n );\n this.isRoot = true;\n this.type = 'root';\n this.childElementContainer = this.element;\n this._containerElement = containerElement;\n this._containerElement.append(this.element);\n }\n\n addChild(contentItem: AbstractContentItem | ItemConfig, index?: number) {\n if (this.contentItems.length > 0) {\n throw new Error('Root node can only have a single child');\n }\n\n contentItem = this.layoutManager._$normalizeContentItem(contentItem, this);\n this.childElementContainer.append(contentItem.element);\n super.addChild(contentItem, index);\n\n this.callDownwards('setSize');\n this.emitBubblingEvent('stateChanged');\n }\n\n setSize(width?: number, height?: number) {\n width =\n typeof width === 'undefined'\n ? this._containerElement.width() ?? 0\n : width;\n height =\n typeof height === 'undefined'\n ? this._containerElement.height() ?? 0\n : height;\n\n this.element.width(width);\n this.element.height(height);\n\n /*\n * Root can be empty\n */\n if (this.contentItems[0]) {\n this.contentItems[0].element.width(width);\n this.contentItems[0].element.height(height);\n }\n }\n\n _$getArea() {\n const area = super._$getArea();\n if (area == null) {\n throw new Error('Unable to get root area');\n }\n return area;\n }\n\n _$highlightDropZone(x: number, y: number, area: ItemArea) {\n this.layoutManager.tabDropPlaceholder.remove();\n super._$highlightDropZone(x, y, area);\n }\n\n _$onDrop(contentItem: AbstractContentItem, area: ItemArea) {\n var stack;\n\n if (isComponent(contentItem)) {\n stack = this.layoutManager.createContentItem(\n {\n type: 'stack',\n header: contentItem.config.header || {},\n },\n this\n );\n stack._$init();\n stack.addChild(contentItem);\n contentItem = stack;\n }\n\n if (!this.contentItems.length) {\n this.addChild(contentItem);\n } else {\n const { side } = area;\n const type = side === 'left' || side === 'right' ? 'row' : 'column'; // Should new root be a row or column\n const dimension =\n side === 'left' || side === 'right' ? 'width' : 'height';\n const insertBefore = side === 'left' || side === 'top';\n const column = this.contentItems[0];\n if (!(column instanceof RowOrColumn) || column.type != type) {\n const rowOrColumn = this.layoutManager.createContentItem(\n { type: type },\n this\n ) as RowOrColumn;\n this.replaceChild(column, rowOrColumn);\n rowOrColumn.addChild(contentItem, insertBefore ? 0 : undefined, true);\n rowOrColumn.addChild(column, insertBefore ? undefined : 0, true);\n column.config[dimension] = 50;\n contentItem.config[dimension] = 50;\n rowOrColumn.callDownwards('setSize');\n } else {\n const sibling =\n column.contentItems[\n insertBefore ? 0 : column.contentItems.length - 1\n ];\n column.addChild(contentItem, insertBefore ? 0 : undefined, true);\n sibling.config[dimension] = (sibling.config[dimension] ?? 0) * 0.5;\n contentItem.config[dimension] = sibling.config[dimension];\n column.callDownwards('setSize');\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RowOrColumn.js","names":["$","AbstractContentItem","animFrame","Splitter","RowOrColumn","constructor","isColumn","layoutManager","config","parent","_defineProperty","isRow","childElementContainer","element","_splitterSize","dimensions","borderWidth","_splitterGrabSize","borderGrabWidth","_isColumn","_dimension","_splitterPosition","_splitterMinPosition","_splitterMaxPosition","addChild","contentItem","index","_$suspendResize","newItemSize","itemSize","i","splitterElement","_$normalizeContentItem","undefined","contentItems","length","_createSplitter","Math","max","after","before","append","prototype","call","emitBubblingEvent","_this$contentItems$i$","callDownwards","removeChild","keepChild","_contentItem$config$t","removedItemSize","indexOf","splitterIndex","childItem","Error","_splitter","_$destroy","splice","_this$contentItems$i$2","isClosable","_this$parent","replaceChild","oldChild","newChild","destroyOldChild","arguments","size","setSize","_calculateRelativeSizes","_setAbsoluteSizes","emit","_$init","isInitialised","sizeData","_calculateAbsoluteSizes","additionalPixel","itemSizes","width","totalWidth","height","totalHeight","_this$element$width","_this$element$height","totalSplitterSize","totalAssigned","_this$contentItems$i$3","_this$contentItems$i$4","floor","push","total","itemsWithoutSetDimension","dimension","round","_respectMinItemWidth","_this$contentItems$_i","_this$layoutManager$c","minItemWidth","entriesOverMin","totalOverMin","totalUnderMin","remainingWidth","allEntries","entry","reducePercent","reducedWidth","splitter","on","_onSplitterDrag","bind","_onSplitterDragStop","_onSplitterDragStart","_getItemsForSplitter","_getMinimumDimensions","arr","minWidth","minHeight","_arr$i$minWidth","_arr$i$minHeight","horizontal","vertical","_items$before$config$","_items$after$config$c","_items$before$element","_items$after$element$","items","minSize","beforeMinDim","content","beforeMinSize","afterMinDim","afterMinSize","offsetX","offsetY","offset","css","_items$before$element2","_items$after$element$2","_this$_splitterPositi","_items$before$config$2","_items$after$config$t","sizeBefore","sizeAfter","splitterPositionInRange","totalRelativeSize","top","left"],"sources":["../../src/items/RowOrColumn.ts"],"sourcesContent":["import $ from 'jquery';\nimport AbstractContentItem from './AbstractContentItem';\nimport { animFrame } from '../utils';\nimport { Splitter } from '../controls';\nimport type LayoutManager from '../LayoutManager';\nimport type { ColumnItemConfig, ItemConfig, RowItemConfig } from '../config';\n\nexport default class RowOrColumn extends AbstractContentItem {\n isRow: boolean;\n isColumn: boolean;\n childElementContainer: JQuery<HTMLElement>;\n parent: AbstractContentItem | null;\n\n private _splitter: Splitter[] = [];\n private _splitterSize: number;\n private _splitterGrabSize: number;\n private _isColumn: boolean;\n private _dimension: 'height' | 'width';\n private _splitterPosition: number | null = null;\n private _splitterMinPosition: number | null = null;\n private _splitterMaxPosition: number | null = null;\n\n constructor(\n isColumn: true,\n layoutManager: LayoutManager,\n config: ColumnItemConfig,\n parent: AbstractContentItem | null\n );\n constructor(\n isColumn: false,\n layoutManager: LayoutManager,\n config: RowItemConfig,\n parent: AbstractContentItem | null\n );\n constructor(\n isColumn: boolean,\n layoutManager: LayoutManager,\n config: ColumnItemConfig | RowItemConfig,\n parent: AbstractContentItem | null\n ) {\n super(\n layoutManager,\n config,\n parent,\n $('<div class=\"lm_item lm_' + (isColumn ? 'column' : 'row') + '\"></div>')\n );\n this.parent = parent;\n\n this.isRow = !isColumn;\n this.isColumn = isColumn;\n\n this.childElementContainer = this.element;\n this._splitterSize = layoutManager.config.dimensions.borderWidth;\n this._splitterGrabSize = layoutManager.config.dimensions.borderGrabWidth;\n this._isColumn = isColumn;\n this._dimension = isColumn ? 'height' : 'width';\n this._splitterPosition = null;\n this._splitterMinPosition = null;\n this._splitterMaxPosition = null;\n }\n\n /**\n * Add a new contentItem to the Row or Column\n *\n * @param contentItem\n * @param index The position of the new item within the Row or Column.\n * If no index is provided the item will be added to the end\n * @param _$suspendResize If true the items won't be resized. This will leave the item in\n * an inconsistent state and is only intended to be used if multiple\n * children need to be added in one go and resize is called afterwards\n */\n addChild(\n contentItem: AbstractContentItem | ItemConfig,\n index?: number,\n _$suspendResize?: boolean\n ) {\n var newItemSize, itemSize, i, splitterElement;\n\n contentItem = this.layoutManager._$normalizeContentItem(contentItem, this);\n\n if (index === undefined) {\n index = this.contentItems.length;\n }\n\n if (this.contentItems.length > 0) {\n splitterElement = this._createSplitter(Math.max(0, index - 1)).element;\n\n if (index > 0) {\n this.contentItems[index - 1].element.after(splitterElement);\n splitterElement.after(contentItem.element);\n } else {\n this.contentItems[0].element.before(splitterElement);\n splitterElement.before(contentItem.element);\n }\n } else {\n this.childElementContainer.append(contentItem.element);\n }\n\n AbstractContentItem.prototype.addChild.call(this, contentItem, index);\n\n newItemSize = (1 / this.contentItems.length) * 100;\n\n if (_$suspendResize === true) {\n this.emitBubblingEvent('stateChanged');\n return;\n }\n\n for (i = 0; i < this.contentItems.length; i++) {\n if (this.contentItems[i] === contentItem) {\n contentItem.config[this._dimension] = newItemSize;\n } else {\n itemSize =\n ((this.contentItems[i].config[this._dimension] ?? 0) *\n (100 - newItemSize)) /\n 100;\n this.contentItems[i].config[this._dimension] = itemSize;\n }\n }\n\n this.callDownwards('setSize');\n this.emitBubblingEvent('stateChanged');\n }\n\n /**\n * Removes a child of this element\n *\n * @param contentItem\n * @param keepChild If true the child will be removed, but not destroyed\n */\n removeChild(contentItem: AbstractContentItem, keepChild: boolean) {\n var removedItemSize = contentItem.config[this._dimension] ?? 0,\n index = this.contentItems.indexOf(contentItem),\n splitterIndex = Math.max(index - 1, 0),\n i,\n childItem;\n\n if (index === -1) {\n throw new Error(\n \"Can't remove child. ContentItem is not child of this Row or Column\"\n );\n }\n\n /**\n * Remove the splitter before the item or after if the item happens\n * to be the first in the row/column\n */\n if (this._splitter[splitterIndex]) {\n this._splitter[splitterIndex]._$destroy();\n this._splitter.splice(splitterIndex, 1);\n }\n\n /**\n * Allocate the space that the removed item occupied to the remaining items\n */\n for (i = 0; i < this.contentItems.length; i++) {\n if (this.contentItems[i] !== contentItem) {\n this.contentItems[i].config[this._dimension] =\n (this.contentItems[i].config[this._dimension] ?? 0) +\n removedItemSize / (this.contentItems.length - 1);\n }\n }\n\n AbstractContentItem.prototype.removeChild.call(\n this,\n contentItem,\n keepChild\n );\n\n if (this.contentItems.length === 1 && this.config.isClosable === true) {\n childItem = this.contentItems[0];\n this.contentItems = [];\n this.parent?.replaceChild(this, childItem, true);\n } else {\n this.callDownwards('setSize');\n this.emitBubblingEvent('stateChanged');\n }\n }\n\n /**\n * Replaces a child of this Row or Column with another contentItem\n *\n * @param oldChild The old child to replace\n * @param newChild The new child to take the old child's place\n * @param destroyOldChild If the old child should be destroyed or not\n */\n replaceChild(\n oldChild: AbstractContentItem,\n newChild: AbstractContentItem,\n destroyOldChild = false\n ) {\n var size = oldChild.config[this._dimension];\n newChild.config[this._dimension] = size;\n super.replaceChild(oldChild, newChild, destroyOldChild);\n this.callDownwards('setSize');\n this.emitBubblingEvent('stateChanged');\n }\n\n /**\n * Called whenever the dimensions of this item or one of its parents change\n */\n setSize() {\n if (this.contentItems.length > 0) {\n this._calculateRelativeSizes();\n this._setAbsoluteSizes();\n }\n this.emitBubblingEvent('stateChanged');\n this.emit('resize');\n }\n\n /**\n * Invoked recursively by the layout manager. AbstractContentItem.init appends\n * the contentItem's DOM elements to the container, RowOrColumn init adds splitters\n * in between them\n */\n _$init() {\n if (this.isInitialised === true) return;\n\n var i;\n\n AbstractContentItem.prototype._$init.call(this);\n\n for (i = 0; i < this.contentItems.length - 1; i++) {\n this.contentItems[i].element.after(this._createSplitter(i).element);\n }\n }\n\n /**\n * Turns the relative sizes calculated by _calculateRelativeSizes into\n * absolute pixel values and applies them to the children's DOM elements\n *\n * Assigns additional pixels to counteract Math.floor\n */\n _setAbsoluteSizes() {\n var i,\n sizeData = this._calculateAbsoluteSizes();\n\n for (i = 0; i < this.contentItems.length; i++) {\n if (sizeData.additionalPixel - i > 0) {\n sizeData.itemSizes[i]++;\n }\n\n if (this._isColumn) {\n this.contentItems[i].element.width(sizeData.totalWidth);\n this.contentItems[i].element.height(sizeData.itemSizes[i]);\n } else {\n this.contentItems[i].element.width(sizeData.itemSizes[i]);\n this.contentItems[i].element.height(sizeData.totalHeight);\n }\n }\n }\n\n /**\n * Calculates the absolute sizes of all of the children of this Item.\n * @returns {object} - Set with absolute sizes and additional pixels.\n */\n _calculateAbsoluteSizes() {\n const totalSplitterSize =\n (this.contentItems.length - 1) * this._splitterSize;\n let totalWidth = this.element.width() ?? 0;\n let totalHeight = this.element.height() ?? 0;\n let totalAssigned = 0;\n const itemSizes: number[] = [];\n\n if (this._isColumn) {\n totalHeight -= totalSplitterSize;\n } else {\n totalWidth -= totalSplitterSize;\n }\n\n for (let i = 0; i < this.contentItems.length; i++) {\n const itemSize = this._isColumn\n ? Math.floor(\n totalHeight * ((this.contentItems[i].config.height ?? 0) / 100)\n )\n : Math.floor(\n totalWidth * ((this.contentItems[i].config.width ?? 0) / 100)\n );\n\n totalAssigned += itemSize;\n itemSizes.push(itemSize);\n }\n\n const additionalPixel = Math.floor(\n (this._isColumn ? totalHeight : totalWidth) - totalAssigned\n );\n\n return {\n itemSizes,\n additionalPixel,\n totalWidth,\n totalHeight,\n };\n }\n\n /**\n * Calculates the relative sizes of all children of this Item. The logic\n * is as follows:\n *\n * - Add up the total size of all items that have a configured size\n *\n * - If the total == 100 (check for floating point errors)\n * Excellent, job done\n *\n * - If the total is > 100,\n * set the size of items without set dimensions to 1/3 and add this to the total\n * set the size off all items so that the total is hundred relative to their original size\n *\n * - If the total is < 100\n * If there are items without set dimensions, distribute the remainder to 100 evenly between them\n * If there are no items without set dimensions, increase all items sizes relative to\n * their original size so that they add up to 100\n */\n _calculateRelativeSizes() {\n let total = 0;\n const itemsWithoutSetDimension: AbstractContentItem[] = [];\n const dimension = this._isColumn ? 'height' : 'width';\n\n for (let i = 0; i < this.contentItems.length; i++) {\n const size = this.contentItems[i].config[dimension];\n if (size != null) {\n total += size;\n } else {\n itemsWithoutSetDimension.push(this.contentItems[i]);\n }\n }\n\n /**\n * Everything adds up to hundred, all good :-)\n */\n if (Math.round(total) === 100) {\n this._respectMinItemWidth();\n return;\n }\n\n /**\n * Allocate the remaining size to the items without a set dimension\n */\n if (Math.round(total) < 100 && itemsWithoutSetDimension.length > 0) {\n for (let i = 0; i < itemsWithoutSetDimension.length; i++) {\n itemsWithoutSetDimension[i].config[dimension] =\n (100 - total) / itemsWithoutSetDimension.length;\n }\n this._respectMinItemWidth();\n return;\n }\n\n /**\n * If the total is > 100, but there are also items without a set dimension left, assing 50\n * as their dimension and add it to the total\n *\n * This will be reset in the next step\n */\n if (Math.round(total) > 100) {\n for (let i = 0; i < itemsWithoutSetDimension.length; i++) {\n itemsWithoutSetDimension[i].config[dimension] = 50;\n total += 50;\n }\n }\n\n /**\n * Set every items size relative to 100 relative to its size to total\n */\n for (let i = 0; i < this.contentItems.length; i++) {\n this.contentItems[i].config[dimension] =\n ((this.contentItems[i].config[dimension] ?? 0) / total) * 100;\n }\n\n this._respectMinItemWidth();\n }\n\n /**\n * Adjusts the column widths to respect the dimensions minItemWidth if set.\n */\n _respectMinItemWidth() {\n const minItemWidth = this.layoutManager.config.dimensions\n ? this.layoutManager.config.dimensions.minItemWidth ?? 0\n : 0;\n const entriesOverMin = [];\n let totalOverMin = 0;\n let totalUnderMin = 0;\n let remainingWidth = 0;\n const allEntries = [];\n let entry;\n\n if (this._isColumn || !minItemWidth || this.contentItems.length <= 1) {\n return;\n }\n\n const sizeData = this._calculateAbsoluteSizes();\n\n /**\n * Figure out how much we are under the min item size total and how much room we have to use.\n */\n for (let i = 0; i < this.contentItems.length; i++) {\n const contentItem = this.contentItems[i];\n const itemSize = sizeData.itemSizes[i];\n\n if (itemSize < minItemWidth) {\n totalUnderMin += minItemWidth - itemSize;\n entry = { width: minItemWidth };\n } else {\n totalOverMin += itemSize - minItemWidth;\n entry = { width: itemSize };\n entriesOverMin.push(entry);\n }\n\n allEntries.push(entry);\n }\n\n /**\n * If there is nothing under min, or there is not enough over to make up the difference, do nothing.\n */\n if (totalUnderMin === 0 || totalUnderMin > totalOverMin) {\n return;\n }\n\n /**\n * Evenly reduce all columns that are over the min item width to make up the difference.\n */\n const reducePercent = totalUnderMin / totalOverMin;\n remainingWidth = totalUnderMin;\n for (let i = 0; i < entriesOverMin.length; i++) {\n entry = entriesOverMin[i];\n const reducedWidth = Math.round(\n (entry.width - minItemWidth) * reducePercent\n );\n remainingWidth -= reducedWidth;\n entry.width -= reducedWidth;\n }\n\n /**\n * Take anything remaining from the last item.\n */\n if (remainingWidth !== 0) {\n allEntries[allEntries.length - 1].width -= remainingWidth;\n }\n\n /**\n * Set every items size relative to 100 relative to its size to total\n */\n for (let i = 0; i < this.contentItems.length; i++) {\n this.contentItems[i].config.width =\n (allEntries[i].width / sizeData.totalWidth) * 100;\n }\n }\n\n /**\n * Instantiates a new lm.controls.Splitter, binds events to it and adds\n * it to the array of splitters at the position specified as the index argument\n *\n * What it doesn't do though is append the splitter to the DOM\n *\n * @param index The position of the splitter\n * @returns The created splitter\n */\n _createSplitter(index: number): Splitter {\n var splitter;\n splitter = new Splitter(\n this._isColumn,\n this._splitterSize,\n this._splitterGrabSize\n );\n splitter.on('drag', this._onSplitterDrag.bind(this, splitter), this);\n splitter.on(\n 'dragStop',\n this._onSplitterDragStop.bind(this, splitter),\n this\n );\n splitter.on(\n 'dragStart',\n this._onSplitterDragStart.bind(this, splitter),\n this\n );\n this._splitter.splice(index, 0, splitter);\n return splitter;\n }\n\n /**\n * Locates the instance of lm.controls.Splitter in the array of\n * registered splitters and returns a map containing the contentItem\n * before and after the splitters, both of which are affected if the\n * splitter is moved\n *\n * @param splitter\n *\n * @returns A map of contentItems that the splitter affects\n */\n _getItemsForSplitter(splitter: Splitter) {\n const index = this._splitter.indexOf(splitter);\n\n if (index < 0) {\n throw new Error('Splitter not found in RowOrColumn');\n }\n\n return {\n before: this.contentItems[index],\n after: this.contentItems[index + 1],\n };\n }\n\n /**\n * Gets the minimum dimensions for the given item configuration array\n * @param item\n * @private\n */\n _getMinimumDimensions(arr: { minWidth?: number; minHeight?: number }[]) {\n var minWidth = 0,\n minHeight = 0;\n\n for (var i = 0; i < arr.length; ++i) {\n minWidth = Math.max(arr[i].minWidth ?? 0, minWidth);\n minHeight = Math.max(arr[i].minHeight ?? 0, minHeight);\n }\n\n return { horizontal: minWidth, vertical: minHeight };\n }\n\n /**\n * Invoked when a splitter's dragListener fires dragStart. Calculates the splitters\n * movement area once (so that it doesn't need calculating on every mousemove event)\n *\n * @param splitter\n */\n _onSplitterDragStart(splitter: Splitter) {\n const items = this._getItemsForSplitter(splitter);\n const minSize =\n this.layoutManager.config.dimensions[\n this._isColumn ? 'minItemHeight' : 'minItemWidth'\n ];\n\n var beforeMinDim = this._getMinimumDimensions(\n items.before.config.content ?? []\n );\n var beforeMinSize = this._isColumn\n ? beforeMinDim.vertical\n : beforeMinDim.horizontal;\n\n var afterMinDim = this._getMinimumDimensions(\n items.after.config.content ?? []\n );\n var afterMinSize = this._isColumn\n ? afterMinDim.vertical\n : afterMinDim.horizontal;\n\n this._splitterPosition = 0;\n this._splitterMinPosition =\n -1 *\n ((items.before.element[this._dimension]() ?? 0) -\n (beforeMinSize || minSize));\n this._splitterMaxPosition =\n (items.after.element[this._dimension]() ?? 0) - (afterMinSize || minSize);\n }\n\n /**\n * Invoked when a splitter's DragListener fires drag. Updates the splitters DOM position,\n * but not the sizes of the elements the splitter controls in order to minimize resize events\n *\n * @param splitter\n * @param offsetX Relative pixel values to the splitters original position. Can be negative\n * @param offsetY Relative pixel values to the splitters original position. Can be negative\n */\n _onSplitterDrag(splitter: Splitter, offsetX: number, offsetY: number) {\n const offset = this._isColumn ? offsetY : offsetX;\n\n if (\n this._splitterMaxPosition == null ||\n this._splitterMinPosition == null\n ) {\n return;\n }\n\n if (\n offset > this._splitterMinPosition &&\n offset < this._splitterMaxPosition\n ) {\n this._splitterPosition = offset;\n splitter.element.css(this._isColumn ? 'top' : 'left', offset);\n }\n }\n\n /**\n * Invoked when a splitter's DragListener fires dragStop. Resets the splitters DOM position,\n * and applies the new sizes to the elements before and after the splitter and their children\n * on the next animation frame\n *\n * @param {lm.controls.Splitter} splitter\n */\n _onSplitterDragStop(splitter: Splitter) {\n const items = this._getItemsForSplitter(splitter);\n const sizeBefore = items.before.element[this._dimension]() ?? 0;\n const sizeAfter = items.after.element[this._dimension]() ?? 0;\n const splitterPositionInRange =\n ((this._splitterPosition ?? 0) + sizeBefore) / (sizeBefore + sizeAfter);\n const totalRelativeSize =\n (items.before.config[this._dimension] ?? 0) +\n (items.after.config[this._dimension] ?? 0);\n\n items.before.config[this._dimension] =\n splitterPositionInRange * totalRelativeSize;\n items.after.config[this._dimension] =\n (1 - splitterPositionInRange) * totalRelativeSize;\n\n splitter.element.css({\n top: 0,\n left: 0,\n });\n\n animFrame(\n this.callDownwards.bind(this, 'setSize', undefined, undefined, undefined)\n );\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RowOrColumn.js","names":["$","AbstractContentItem","animFrame","Splitter","RowOrColumn","constructor","isColumn","layoutManager","config","parent","_defineProperty","isRow","childElementContainer","element","_splitterSize","dimensions","borderWidth","_splitterGrabSize","borderGrabWidth","_isColumn","_dimension","_splitterPosition","_splitterMinPosition","_splitterMaxPosition","addChild","contentItem","index","_$suspendResize","newItemSize","itemSize","i","splitterElement","_$normalizeContentItem","undefined","contentItems","length","_createSplitter","Math","max","after","before","append","prototype","call","emitBubblingEvent","_this$contentItems$i$","callDownwards","removeChild","keepChild","_contentItem$config$t","removedItemSize","indexOf","splitterIndex","childItem","Error","_splitter","_$destroy","splice","_this$contentItems$i$2","isClosable","_this$parent","replaceChild","oldChild","newChild","destroyOldChild","arguments","size","setSize","_calculateRelativeSizes","_setAbsoluteSizes","emit","_$init","isInitialised","sizeData","_calculateAbsoluteSizes","additionalPixel","itemSizes","width","totalWidth","height","totalHeight","_this$element$width","_this$element$height","totalSplitterSize","totalAssigned","_this$contentItems$i$3","_this$contentItems$i$4","floor","push","total","itemsWithoutSetDimension","dimension","round","_respectMinItemWidth","_this$contentItems$_i","_this$layoutManager$c","minItemWidth","entriesOverMin","totalOverMin","totalUnderMin","remainingWidth","allEntries","entry","reducePercent","reducedWidth","splitter","on","_onSplitterDrag","bind","_onSplitterDragStop","_onSplitterDragStart","_getItemsForSplitter","_getMinimumDimensions","arr","minWidth","minHeight","_arr$i$minWidth","_arr$i$minHeight","horizontal","vertical","_items$before$config$","_items$after$config$c","_items$before$element","_items$after$element$","items","minSize","beforeMinDim","content","beforeMinSize","afterMinDim","afterMinSize","offsetX","offsetY","offset","css","_items$before$element2","_items$after$element$2","_this$_splitterPositi","_items$before$config$2","_items$after$config$t","sizeBefore","sizeAfter","splitterPositionInRange","totalRelativeSize","top","left"],"sources":["../../src/items/RowOrColumn.ts"],"sourcesContent":["import $ from 'jquery';\nimport AbstractContentItem from './AbstractContentItem';\nimport { animFrame } from '../utils';\nimport { Splitter } from '../controls';\nimport type LayoutManager from '../LayoutManager';\nimport type { ColumnItemConfig, ItemConfig, RowItemConfig } from '../config';\n\nexport default class RowOrColumn extends AbstractContentItem {\n isRow: boolean;\n isColumn: boolean;\n childElementContainer: JQuery<HTMLElement>;\n parent: AbstractContentItem | null;\n\n private _splitter: Splitter[] = [];\n private _splitterSize: number;\n private _splitterGrabSize: number;\n private _isColumn: boolean;\n private _dimension: 'height' | 'width';\n private _splitterPosition: number | null = null;\n private _splitterMinPosition: number | null = null;\n private _splitterMaxPosition: number | null = null;\n\n constructor(\n isColumn: true,\n layoutManager: LayoutManager,\n config: ColumnItemConfig,\n parent: AbstractContentItem | null\n );\n constructor(\n isColumn: false,\n layoutManager: LayoutManager,\n config: RowItemConfig,\n parent: AbstractContentItem | null\n );\n constructor(\n isColumn: boolean,\n layoutManager: LayoutManager,\n config: ColumnItemConfig | RowItemConfig,\n parent: AbstractContentItem | null\n ) {\n super(\n layoutManager,\n config,\n parent,\n $('<div class=\"lm_item lm_' + (isColumn ? 'column' : 'row') + '\"></div>')\n );\n this.parent = parent;\n\n this.isRow = !isColumn;\n this.isColumn = isColumn;\n\n this.childElementContainer = this.element;\n this._splitterSize = layoutManager.config.dimensions.borderWidth;\n this._splitterGrabSize = layoutManager.config.dimensions.borderGrabWidth;\n this._isColumn = isColumn;\n this._dimension = isColumn ? 'height' : 'width';\n this._splitterPosition = null;\n this._splitterMinPosition = null;\n this._splitterMaxPosition = null;\n }\n\n /**\n * Add a new contentItem to the Row or Column\n *\n * @param contentItem\n * @param index The position of the new item within the Row or Column.\n * If no index is provided the item will be added to the end\n * @param _$suspendResize If true the items won't be resized. This will leave the item in\n * an inconsistent state and is only intended to be used if multiple\n * children need to be added in one go and resize is called afterwards\n */\n addChild(\n contentItem: AbstractContentItem | ItemConfig,\n index?: number,\n _$suspendResize?: boolean\n ) {\n var newItemSize, itemSize, i, splitterElement;\n\n contentItem = this.layoutManager._$normalizeContentItem(contentItem, this);\n\n if (index === undefined) {\n index = this.contentItems.length;\n }\n\n if (this.contentItems.length > 0) {\n splitterElement = this._createSplitter(Math.max(0, index - 1)).element;\n\n if (index > 0) {\n this.contentItems[index - 1].element.after(splitterElement);\n splitterElement.after(contentItem.element);\n } else {\n this.contentItems[0].element.before(splitterElement);\n splitterElement.before(contentItem.element);\n }\n } else {\n this.childElementContainer.append(contentItem.element);\n }\n\n AbstractContentItem.prototype.addChild.call(this, contentItem, index);\n\n newItemSize = (1 / this.contentItems.length) * 100;\n\n if (_$suspendResize === true) {\n this.emitBubblingEvent('stateChanged');\n return;\n }\n\n for (i = 0; i < this.contentItems.length; i++) {\n if (this.contentItems[i] === contentItem) {\n contentItem.config[this._dimension] = newItemSize;\n } else {\n itemSize =\n ((this.contentItems[i].config[this._dimension] ?? 0) *\n (100 - newItemSize)) /\n 100;\n this.contentItems[i].config[this._dimension] = itemSize;\n }\n }\n\n this.callDownwards('setSize');\n this.emitBubblingEvent('stateChanged');\n }\n\n /**\n * Removes a child of this element\n *\n * @param contentItem\n * @param keepChild If true the child will be removed, but not destroyed\n */\n removeChild(contentItem: AbstractContentItem, keepChild: boolean) {\n var removedItemSize = contentItem.config[this._dimension] ?? 0,\n index = this.contentItems.indexOf(contentItem),\n splitterIndex = Math.max(index - 1, 0),\n i,\n childItem;\n\n if (index === -1) {\n throw new Error(\n \"Can't remove child. ContentItem is not child of this Row or Column\"\n );\n }\n\n /**\n * Remove the splitter before the item or after if the item happens\n * to be the first in the row/column\n */\n if (this._splitter[splitterIndex]) {\n this._splitter[splitterIndex]._$destroy();\n this._splitter.splice(splitterIndex, 1);\n }\n\n /**\n * Allocate the space that the removed item occupied to the remaining items\n */\n for (i = 0; i < this.contentItems.length; i++) {\n if (this.contentItems[i] !== contentItem) {\n this.contentItems[i].config[this._dimension] =\n (this.contentItems[i].config[this._dimension] ?? 0) +\n removedItemSize / (this.contentItems.length - 1);\n }\n }\n\n AbstractContentItem.prototype.removeChild.call(\n this,\n contentItem,\n keepChild\n );\n\n if (this.contentItems.length === 1 && this.config.isClosable === true) {\n childItem = this.contentItems[0];\n this.contentItems = [];\n this.parent?.replaceChild(this, childItem, true);\n } else {\n this.callDownwards('setSize');\n this.emitBubblingEvent('stateChanged');\n }\n }\n\n /**\n * Replaces a child of this Row or Column with another contentItem\n *\n * @param oldChild The old child to replace\n * @param newChild The new child to take the old child's place\n * @param destroyOldChild If the old child should be destroyed or not\n */\n replaceChild(\n oldChild: AbstractContentItem,\n newChild: AbstractContentItem,\n destroyOldChild = false\n ) {\n var size = oldChild.config[this._dimension];\n newChild.config[this._dimension] = size;\n super.replaceChild(oldChild, newChild, destroyOldChild);\n this.callDownwards('setSize');\n this.emitBubblingEvent('stateChanged');\n }\n\n /**\n * Called whenever the dimensions of this item or one of its parents change\n */\n setSize() {\n if (this.contentItems.length > 0) {\n this._calculateRelativeSizes();\n this._setAbsoluteSizes();\n }\n this.emitBubblingEvent('stateChanged');\n this.emit('resize');\n }\n\n /**\n * Invoked recursively by the layout manager. AbstractContentItem.init appends\n * the contentItem's DOM elements to the container, RowOrColumn init adds splitters\n * in between them\n */\n _$init() {\n if (this.isInitialised === true) return;\n\n var i;\n\n AbstractContentItem.prototype._$init.call(this);\n\n for (i = 0; i < this.contentItems.length - 1; i++) {\n this.contentItems[i].element.after(this._createSplitter(i).element);\n }\n }\n\n /**\n * Turns the relative sizes calculated by _calculateRelativeSizes into\n * absolute pixel values and applies them to the children's DOM elements\n *\n * Assigns additional pixels to counteract Math.floor\n */\n _setAbsoluteSizes() {\n var i,\n sizeData = this._calculateAbsoluteSizes();\n\n for (i = 0; i < this.contentItems.length; i++) {\n if (sizeData.additionalPixel - i > 0) {\n sizeData.itemSizes[i]++;\n }\n\n if (this._isColumn) {\n this.contentItems[i].element.width(sizeData.totalWidth);\n this.contentItems[i].element.height(sizeData.itemSizes[i]);\n } else {\n this.contentItems[i].element.width(sizeData.itemSizes[i]);\n this.contentItems[i].element.height(sizeData.totalHeight);\n }\n }\n }\n\n /**\n * Calculates the absolute sizes of all of the children of this Item.\n * @returns {object} - Set with absolute sizes and additional pixels.\n */\n _calculateAbsoluteSizes() {\n const totalSplitterSize =\n (this.contentItems.length - 1) * this._splitterSize;\n let totalWidth = this.element.width() ?? 0;\n let totalHeight = this.element.height() ?? 0;\n let totalAssigned = 0;\n const itemSizes: number[] = [];\n\n if (this._isColumn) {\n totalHeight -= totalSplitterSize;\n } else {\n totalWidth -= totalSplitterSize;\n }\n\n for (let i = 0; i < this.contentItems.length; i++) {\n const itemSize = this._isColumn\n ? Math.floor(\n totalHeight * ((this.contentItems[i].config.height ?? 0) / 100)\n )\n : Math.floor(\n totalWidth * ((this.contentItems[i].config.width ?? 0) / 100)\n );\n\n totalAssigned += itemSize;\n itemSizes.push(itemSize);\n }\n\n const additionalPixel = Math.floor(\n (this._isColumn ? totalHeight : totalWidth) - totalAssigned\n );\n\n return {\n itemSizes,\n additionalPixel,\n totalWidth,\n totalHeight,\n };\n }\n\n /**\n * Calculates the relative sizes of all children of this Item. The logic\n * is as follows:\n *\n * - Add up the total size of all items that have a configured size\n *\n * - If the total == 100 (check for floating point errors)\n * Excellent, job done\n *\n * - If the total is > 100,\n * set the size of items without set dimensions to 1/3 and add this to the total\n * set the size off all items so that the total is hundred relative to their original size\n *\n * - If the total is < 100\n * If there are items without set dimensions, distribute the remainder to 100 evenly between them\n * If there are no items without set dimensions, increase all items sizes relative to\n * their original size so that they add up to 100\n */\n _calculateRelativeSizes() {\n let total = 0;\n const itemsWithoutSetDimension: AbstractContentItem[] = [];\n const dimension = this._isColumn ? 'height' : 'width';\n\n for (let i = 0; i < this.contentItems.length; i++) {\n const size = this.contentItems[i].config[dimension];\n if (size != null) {\n total += size;\n } else {\n itemsWithoutSetDimension.push(this.contentItems[i]);\n }\n }\n\n /**\n * Everything adds up to hundred, all good :-)\n */\n if (Math.round(total) === 100) {\n this._respectMinItemWidth();\n return;\n }\n\n /**\n * Allocate the remaining size to the items without a set dimension\n */\n if (Math.round(total) < 100 && itemsWithoutSetDimension.length > 0) {\n for (let i = 0; i < itemsWithoutSetDimension.length; i++) {\n itemsWithoutSetDimension[i].config[dimension] =\n (100 - total) / itemsWithoutSetDimension.length;\n }\n this._respectMinItemWidth();\n return;\n }\n\n /**\n * If the total is > 100, but there are also items without a set dimension left, assing 50\n * as their dimension and add it to the total\n *\n * This will be reset in the next step\n */\n if (Math.round(total) > 100) {\n for (let i = 0; i < itemsWithoutSetDimension.length; i++) {\n itemsWithoutSetDimension[i].config[dimension] = 50;\n total += 50;\n }\n }\n\n /**\n * Set every items size relative to 100 relative to its size to total\n */\n for (let i = 0; i < this.contentItems.length; i++) {\n this.contentItems[i].config[dimension] =\n ((this.contentItems[i].config[dimension] ?? 0) / total) * 100;\n }\n\n this._respectMinItemWidth();\n }\n\n /**\n * Adjusts the column widths to respect the dimensions minItemWidth if set.\n */\n _respectMinItemWidth() {\n const minItemWidth = this.layoutManager.config.dimensions\n ? this.layoutManager.config.dimensions.minItemWidth ?? 0\n : 0;\n const entriesOverMin = [];\n let totalOverMin = 0;\n let totalUnderMin = 0;\n let remainingWidth = 0;\n const allEntries = [];\n let entry;\n\n if (this._isColumn || !minItemWidth || this.contentItems.length <= 1) {\n return;\n }\n\n const sizeData = this._calculateAbsoluteSizes();\n\n /**\n * Figure out how much we are under the min item size total and how much room we have to use.\n */\n for (let i = 0; i < this.contentItems.length; i++) {\n const contentItem = this.contentItems[i];\n const itemSize = sizeData.itemSizes[i];\n\n if (itemSize < minItemWidth) {\n totalUnderMin += minItemWidth - itemSize;\n entry = { width: minItemWidth };\n } else {\n totalOverMin += itemSize - minItemWidth;\n entry = { width: itemSize };\n entriesOverMin.push(entry);\n }\n\n allEntries.push(entry);\n }\n\n /**\n * If there is nothing under min, or there is not enough over to make up the difference, do nothing.\n */\n if (totalUnderMin === 0 || totalUnderMin > totalOverMin) {\n return;\n }\n\n /**\n * Evenly reduce all columns that are over the min item width to make up the difference.\n */\n const reducePercent = totalUnderMin / totalOverMin;\n remainingWidth = totalUnderMin;\n for (let i = 0; i < entriesOverMin.length; i++) {\n entry = entriesOverMin[i];\n const reducedWidth = Math.round(\n (entry.width - minItemWidth) * reducePercent\n );\n remainingWidth -= reducedWidth;\n entry.width -= reducedWidth;\n }\n\n /**\n * Take anything remaining from the last item.\n */\n if (remainingWidth !== 0) {\n allEntries[allEntries.length - 1].width -= remainingWidth;\n }\n\n /**\n * Set every items size relative to 100 relative to its size to total\n */\n for (let i = 0; i < this.contentItems.length; i++) {\n this.contentItems[i].config.width =\n (allEntries[i].width / sizeData.totalWidth) * 100;\n }\n }\n\n /**\n * Instantiates a new lm.controls.Splitter, binds events to it and adds\n * it to the array of splitters at the position specified as the index argument\n *\n * What it doesn't do though is append the splitter to the DOM\n *\n * @param index The position of the splitter\n * @returns The created splitter\n */\n _createSplitter(index: number): Splitter {\n var splitter;\n splitter = new Splitter(\n this._isColumn,\n this._splitterSize,\n this._splitterGrabSize\n );\n splitter.on('drag', this._onSplitterDrag.bind(this, splitter), this);\n splitter.on(\n 'dragStop',\n this._onSplitterDragStop.bind(this, splitter),\n this\n );\n splitter.on(\n 'dragStart',\n this._onSplitterDragStart.bind(this, splitter),\n this\n );\n this._splitter.splice(index, 0, splitter);\n return splitter;\n }\n\n /**\n * Locates the instance of lm.controls.Splitter in the array of\n * registered splitters and returns a map containing the contentItem\n * before and after the splitters, both of which are affected if the\n * splitter is moved\n *\n * @param splitter\n *\n * @returns A map of contentItems that the splitter affects\n */\n _getItemsForSplitter(splitter: Splitter) {\n const index = this._splitter.indexOf(splitter);\n\n if (index < 0) {\n throw new Error('Splitter not found in RowOrColumn');\n }\n\n return {\n before: this.contentItems[index],\n after: this.contentItems[index + 1],\n };\n }\n\n /**\n * Gets the minimum dimensions for the given item configuration array\n * @param item\n * @private\n */\n _getMinimumDimensions(arr: { minWidth?: number; minHeight?: number }[]) {\n var minWidth = 0,\n minHeight = 0;\n\n for (var i = 0; i < arr.length; ++i) {\n minWidth = Math.max(arr[i].minWidth ?? 0, minWidth);\n minHeight = Math.max(arr[i].minHeight ?? 0, minHeight);\n }\n\n return { horizontal: minWidth, vertical: minHeight };\n }\n\n /**\n * Invoked when a splitter's dragListener fires dragStart. Calculates the splitters\n * movement area once (so that it doesn't need calculating on every mousemove event)\n *\n * @param splitter\n */\n _onSplitterDragStart(splitter: Splitter) {\n const items = this._getItemsForSplitter(splitter);\n const minSize =\n this.layoutManager.config.dimensions[\n this._isColumn ? 'minItemHeight' : 'minItemWidth'\n ];\n\n var beforeMinDim = this._getMinimumDimensions(\n items.before.config.content ?? []\n );\n var beforeMinSize = this._isColumn\n ? beforeMinDim.vertical\n : beforeMinDim.horizontal;\n\n var afterMinDim = this._getMinimumDimensions(\n items.after.config.content ?? []\n );\n var afterMinSize = this._isColumn\n ? afterMinDim.vertical\n : afterMinDim.horizontal;\n\n this._splitterPosition = 0;\n this._splitterMinPosition =\n -1 *\n ((items.before.element[this._dimension]() ?? 0) -\n (beforeMinSize || minSize));\n this._splitterMaxPosition =\n (items.after.element[this._dimension]() ?? 0) - (afterMinSize || minSize);\n }\n\n /**\n * Invoked when a splitter's DragListener fires drag. Updates the splitters DOM position,\n * but not the sizes of the elements the splitter controls in order to minimize resize events\n *\n * @param splitter\n * @param offsetX Relative pixel values to the splitters original position. Can be negative\n * @param offsetY Relative pixel values to the splitters original position. Can be negative\n */\n _onSplitterDrag(splitter: Splitter, offsetX: number, offsetY: number) {\n const offset = this._isColumn ? offsetY : offsetX;\n\n if (\n this._splitterMaxPosition == null ||\n this._splitterMinPosition == null\n ) {\n return;\n }\n\n if (\n offset > this._splitterMinPosition &&\n offset < this._splitterMaxPosition\n ) {\n this._splitterPosition = offset;\n splitter.element.css(this._isColumn ? 'top' : 'left', offset);\n }\n }\n\n /**\n * Invoked when a splitter's DragListener fires dragStop. Resets the splitters DOM position,\n * and applies the new sizes to the elements before and after the splitter and their children\n * on the next animation frame\n *\n * @param {lm.controls.Splitter} splitter\n */\n _onSplitterDragStop(splitter: Splitter) {\n const items = this._getItemsForSplitter(splitter);\n const sizeBefore = items.before.element[this._dimension]() ?? 0;\n const sizeAfter = items.after.element[this._dimension]() ?? 0;\n const splitterPositionInRange =\n ((this._splitterPosition ?? 0) + sizeBefore) / (sizeBefore + sizeAfter);\n const totalRelativeSize =\n (items.before.config[this._dimension] ?? 0) +\n (items.after.config[this._dimension] ?? 0);\n\n items.before.config[this._dimension] =\n splitterPositionInRange * totalRelativeSize;\n items.after.config[this._dimension] =\n (1 - splitterPositionInRange) * totalRelativeSize;\n\n splitter.element.css({\n top: 0,\n left: 0,\n });\n\n animFrame(\n this.callDownwards.bind(this, 'setSize', undefined, undefined, undefined)\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|