@deephaven/golden-layout 0.95.1-beta.3 → 0.95.1-beta.5

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.
@@ -73,6 +73,12 @@ export default class Tab {
73
73
  * @param event
74
74
  */
75
75
  _onCloseClick(event: JQuery.TriggeredEvent): void;
76
+ /**
77
+ * Callback to prevent paste into active input on Linux
78
+ * when closing a tab via middle click.
79
+ * @param event
80
+ */
81
+ _onMouseUp(event: JQuery.TriggeredEvent): void;
76
82
  /**
77
83
  * Callback to capture tab close button mousedown
78
84
  * to prevent tab from activating.
@@ -1 +1 @@
1
- {"version":3,"file":"Tab.d.ts","sourceRoot":"","sources":["../../src/controls/Tab.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAKpD,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,GAAG;IACtB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS,CAMb;IAEX,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,mBAAmB,CAAC;IACjC,OAAO,sBAAoB;IAC3B,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAClC,QAAQ,UAAS;IAEjB,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,aAAa,CAAC,CAAe;gBAEzB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB;IAuD5D;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,SAAK;IAMnB;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,OAAO;IAa3B;;;;;OAKG;IACH,SAAS;IAwBT;;;;;OAKG;IACH,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAmBjC;;OAEG;IACH,oBAAoB;IAcpB;;;;;;;OAOG;IACH,qBAAqB;IAWrB;;;;OAIG;IACH,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc;IAwCzC;;;;;OAKG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc;IAS1C;;;;;OAKG;IACH,iBAAiB,CAAC,KAAK,EAAE,KAAK;CAG/B"}
1
+ {"version":3,"file":"Tab.d.ts","sourceRoot":"","sources":["../../src/controls/Tab.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAKpD,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,GAAG;IACtB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS,CAMb;IAEX,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,mBAAmB,CAAC;IACjC,OAAO,sBAAoB;IAC3B,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAClC,QAAQ,UAAS;IAEjB,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,aAAa,CAAC,CAAe;gBAEzB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB;IAwD5D;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,SAAK;IAMnB;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,OAAO;IAa3B;;;;;OAKG;IACH,SAAS;IAyBT;;;;;OAKG;IACH,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAmBjC;;OAEG;IACH,oBAAoB;IAcpB;;;;;;;OAOG;IACH,qBAAqB;IAWrB;;;;OAIG;IACH,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc;IAwCzC;;;;;OAKG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc;IAS1C;;;;OAIG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc;IAOvC;;;;;OAKG;IACH,iBAAiB,CAAC,KAAK,EAAE,KAAK;CAG/B"}
@@ -45,6 +45,7 @@ export default class Tab {
45
45
  this._onTabContentFocusOut = this._onTabContentFocusOut.bind(this);
46
46
  this.element.on('click', this._onTabClick);
47
47
  this.element.on('auxclick', this._onTabClick);
48
+ this.element.on('mouseup', this._onMouseUp);
48
49
  if (this.contentItem.config.isClosable) {
49
50
  this.closeElement.on('click', this._onCloseClick);
50
51
  this.closeElement.on('mousedown', this._onCloseMousedown);
@@ -101,6 +102,7 @@ export default class Tab {
101
102
  _$destroy() {
102
103
  this.element.off('click', this._onTabClick);
103
104
  this.element.off('auxclick', this._onTabClick);
105
+ this.element.off('mouseup', this._onMouseUp);
104
106
  this.closeElement.off('click', this._onCloseClick);
105
107
  if (isComponent(this.contentItem)) {
106
108
  this.contentItem.container._contentElement.off();
@@ -211,6 +213,18 @@ export default class Tab {
211
213
  }
212
214
  }
213
215
 
216
+ /**
217
+ * Callback to prevent paste into active input on Linux
218
+ * when closing a tab via middle click.
219
+ * @param event
220
+ */
221
+ _onMouseUp(event) {
222
+ if (event.button === 1) {
223
+ event.preventDefault(); // This seems to prevent the paste event from firing
224
+ event.stopPropagation(); // Stop propagation just in case
225
+ }
226
+ }
227
+
214
228
  /**
215
229
  * Callback to capture tab close button mousedown
216
230
  * to prevent tab from activating.
@@ -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","_onCloseMousedown","remove","tab","emit","container","_contentElement","arguments","length","undefined","html","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","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\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.html(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.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 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","html","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.html(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":";;;AAAA,OAAOA,CAAC,MAAM,QAAQ;AAAC,SAEdC,WAAW;AAAA,SAEXC,YAAY;AAAA,OACdC,SAAS;AAGhB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAMC,GAAG,CAAC;EACvB;AACF;AACA;;EAmBEC,WAAWA,CAACC,MAAc,EAAEC,WAAgC,EAAE;IAAA,IAAAC,qBAAA;IAAAC,eAAA;IAAAA,eAAA;IAAAA,eAAA,kBARpDT,CAAC,CAACI,GAAG,CAACM,SAAS,CAAC;IAAAD,eAAA;IAAAA,eAAA;IAAAA,eAAA,mBAGf,KAAK;IAAAA,eAAA;IAAAA,eAAA;IAMd,IAAI,CAACH,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACI,YAAY,GAAG,IAAI,CAACC,OAAO,CAACC,IAAI,CAAC,WAAW,CAAC;IAClD,IAAI,CAACC,YAAY,GAAG,IAAI,CAACF,OAAO,CAACC,IAAI,CAAC,eAAe,CAAC;IACtD,IAAI,CAACC,YAAY,CAACP,WAAW,CAACQ,MAAM,CAACC,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;IAEpE,IAAI,CAACC,QAAQ,CAACV,WAAW,CAACQ,MAAM,CAACG,KAAK,CAAC;IACvC,IAAI,CAACX,WAAW,CAACY,EAAE,CAAC,cAAc,EAAE,IAAI,CAACF,QAAQ,EAAE,IAAI,CAAC;IAExD,IAAI,CAACG,cAAc,GAAG,IAAI,CAACb,WAAW,CAACc,aAAa;IAEpD,IACE,CAAAb,qBAAA,OAAI,CAACY,cAAc,CAACL,MAAM,CAACO,QAAQ,cAAAd,qBAAA,eAAnCA,qBAAA,CAAqCe,cAAc,IACnDhB,WAAW,CAACQ,MAAM,CAACQ,cAAc,EACjC;MACA,IAAI,CAACC,aAAa,GAAG,IAAItB,YAAY,CAAC,IAAI,CAACU,OAAO,CAAC;MACnD,IAAI,CAACY,aAAa,CAACL,EAAE,CAAC,WAAW,EAAE,IAAI,CAACM,YAAY,EAAE,IAAI,CAAC;MAC3D,IAAI,CAAClB,WAAW,CAACY,EAAE,CACjB,SAAS,EACT,IAAI,CAACK,aAAa,CAACE,OAAO,EAC1B,IAAI,CAACF,aACP,CAAC;IACH;IAEA,IAAI,CAACG,WAAW,GAAG,IAAI,CAACA,WAAW,CAACC,IAAI,CAAC,IAAI,CAAC;IAC9C,IAAI,CAACC,aAAa,GAAG,IAAI,CAACA,aAAa,CAACD,IAAI,CAAC,IAAI,CAAC;IAClD,IAAI,CAACE,oBAAoB,GAAG,IAAI,CAACA,oBAAoB,CAACF,IAAI,CAAC,IAAI,CAAC;IAChE,IAAI,CAACG,qBAAqB,GAAG,IAAI,CAACA,qBAAqB,CAACH,IAAI,CAAC,IAAI,CAAC;IAElE,IAAI,CAAChB,OAAO,CAACO,EAAE,CAAC,OAAO,EAAE,IAAI,CAACQ,WAAW,CAAC;IAC1C,IAAI,CAACf,OAAO,CAACO,EAAE,CAAC,UAAU,EAAE,IAAI,CAACQ,WAAW,CAAC;IAC7C,IAAI,CAACf,OAAO,CAACO,EAAE,CAAC,SAAS,EAAE,IAAI,CAACa,UAAU,CAAC;IAE3C,IAAI,IAAI,CAACzB,WAAW,CAACQ,MAAM,CAACC,UAAU,EAAE;MACtC,IAAI,CAACF,YAAY,CAACK,EAAE,CAAC,OAAO,EAAE,IAAI,CAACU,aAAa,CAAC;MACjD,IAAI,CAACf,YAAY,CAACK,EAAE,CAAC,WAAW,EAAE,IAAI,CAACc,iBAAiB,CAAC;IAC3D,CAAC,MAAM;MACL,IAAI,CAACnB,YAAY,CAACoB,MAAM,CAAC,CAAC;IAC5B;IAEA,IAAI,CAAC3B,WAAW,CAAC4B,GAAG,GAAG,IAAI;IAC3B,IAAI,CAAC5B,WAAW,CAAC6B,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;IAClC,IAAI,CAAC7B,WAAW,CAACc,aAAa,CAACe,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC;IAEvD,IAAInC,WAAW,CAAC,IAAI,CAACM,WAAW,CAAC,EAAE;MACjC;MACA,IAAI,CAACA,WAAW,CAAC8B,SAAS,CAACC,eAAe,CACvCnB,EAAE,CAAC,SAAS,EAAE,IAAI,CAACW,oBAAoB,CAAC,CACxCX,EAAE,CAAC,UAAU,EAAE,IAAI,CAACY,qBAAqB,CAAC;MAE7C,IAAI,CAACxB,WAAW,CAAC8B,SAAS,CAACF,GAAG,GAAG,IAAI;MACrC,IAAI,CAAC5B,WAAW,CAAC8B,SAAS,CAACD,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;IAC9C;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEnB,QAAQA,CAAA,EAAa;IAAA,IAAZC,KAAK,GAAAqB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;IACjB;IACA;IACA,IAAI,CAAC5B,YAAY,CAAC+B,IAAI,CAACxB,KAAK,CAAC;EAC/B;;EAEA;AACF;AACA;AACA;AACA;EACEyB,SAASA,CAACC,QAAiB,EAAE;IAC3B,IAAIA,QAAQ,KAAK,IAAI,CAACA,QAAQ,EAAE;MAC9B;IACF;IACA,IAAI,CAACA,QAAQ,GAAGA,QAAQ;IAExB,IAAIA,QAAQ,EAAE;MACZ,IAAI,CAAChC,OAAO,CAACiC,QAAQ,CAAC,WAAW,CAAC;IACpC,CAAC,MAAM;MACL,IAAI,CAACjC,OAAO,CAACkC,WAAW,CAAC,WAAW,CAAC;IACvC;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEC,SAASA,CAAA,EAAG;IACV,IAAI,CAACnC,OAAO,CAACoC,GAAG,CAAC,OAAO,EAAE,IAAI,CAACrB,WAAW,CAAC;IAC3C,IAAI,CAACf,OAAO,CAACoC,GAAG,CAAC,UAAU,EAAE,IAAI,CAACrB,WAAW,CAAC;IAC9C,IAAI,CAACf,OAAO,CAACoC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAChB,UAAU,CAAC;IAC5C,IAAI,CAAClB,YAAY,CAACkC,GAAG,CAAC,OAAO,EAAE,IAAI,CAACnB,aAAa,CAAC;IAClD,IAAI5B,WAAW,CAAC,IAAI,CAACM,WAAW,CAAC,EAAE;MACjC,IAAI,CAACA,WAAW,CAAC8B,SAAS,CAACC,eAAe,CAACU,GAAG,CAAC,CAAC;MAChD,IAAI,CAACzC,WAAW,CAAC8B,SAAS,CAACC,eAAe,CAAC,CAAC,CAAC,CAACW,mBAAmB,CAC/D,OAAO,EACP,IAAI,CAACnB,oBAAoB,EACzB,IACF,CAAC;IACH;IACA,IAAI,IAAI,CAACN,aAAa,EAAE;MACtB,IAAI,CAACjB,WAAW,CAACyC,GAAG,CAClB,SAAS,EACT,IAAI,CAACxB,aAAa,CAACE,OAAO,EAC1B,IAAI,CAACF,aACP,CAAC;MACD,IAAI,CAACA,aAAa,CAACwB,GAAG,CAAC,WAAW,EAAE,IAAI,CAACvB,YAAY,CAAC;MACtD,IAAI,CAACD,aAAa,GAAGiB,SAAS;IAChC;IACA,IAAI,CAAC7B,OAAO,CAACsB,MAAM,CAAC,CAAC;EACvB;;EAEA;AACF;AACA;AACA;AACA;AACA;EACET,YAAYA,CAACyB,CAAS,EAAEC,CAAS,EAAE;IAAA,IAAAC,qBAAA;IACjC,KAAAA,qBAAA,GAAI,IAAI,CAAC7C,WAAW,CAAC8C,MAAM,cAAAD,qBAAA,eAAvBA,qBAAA,CAAyBE,WAAW,EAAE;MACxC,IAAI,CAAC/C,WAAW,CAAC8C,MAAM,CAACE,cAAc,CAAC,CAAC;IAC1C;IAEA,IAAI,CAAC,IAAI,CAAC/B,aAAa,EAAE;MACvB;IACF;IAEA,IAAIrB,SAAS,CACX+C,CAAC,EACDC,CAAC,EACD,IAAI,CAAC3B,aAAa,EAClB,IAAI,CAACJ,cAAc,EACnB,IAAI,CAACb,WAAW,EAChB,IAAI,CAACD,MAAM,CAAC+C,MACd,CAAC;EACH;;EAEA;AACF;AACA;EACEvB,oBAAoBA,CAAA,EAAG;IACrB;IACA;IACA;IACA;IACA;IACA;IACA9B,CAAC,CAAC,aAAa,EAAE,IAAI,CAACoB,cAAc,CAACoC,IAAI,CAAC5C,OAAO,CAAC,CAACkC,WAAW,CAC5D,YACF,CAAC;IAED,IAAI,CAAClC,OAAO,CAACiC,QAAQ,CAAC,YAAY,CAAC;EACrC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEd,qBAAqBA,CAAA,EAAG;IACtB,IACE9B,WAAW,CAAC,IAAI,CAACM,WAAW,CAAC,IAC7B,CAAC,IAAI,CAACA,WAAW,CAAC8B,SAAS,CAACC,eAAe,CAAC,CAAC,CAAC,CAACmB,QAAQ,CACrDC,QAAQ,CAACC,aACX,CAAC,EACD;MACA,IAAI,CAAC/C,OAAO,CAACkC,WAAW,CAAC,YAAY,CAAC;IACxC;EACF;;EAEA;AACF;AACA;AACA;AACA;EACEnB,WAAWA,CAACiC,KAA6B,EAAE;IACzC;IACA,IAAI,CAACA,KAAK,IAAIA,KAAK,CAACC,MAAM,KAAK,CAAC,EAAE;MAAA,IAAAC,iBAAA;MAChC,IAAIC,iBAAiB,GAAG,IAAI,CAACzD,MAAM,CAAC+C,MAAM,CAACW,oBAAoB,CAAC,CAAC;MACjE,IACE,IAAI,CAACzD,WAAW,KAAKwD,iBAAiB,IACtC9D,WAAW,CAAC,IAAI,CAACM,WAAW,CAAC,EAC7B;QACA,IAAI,CAACD,MAAM,CAAC+C,MAAM,CAACY,oBAAoB,CAAC,IAAI,CAAC1D,WAAW,CAAC;MAC3D,CAAC,MAAM,IACLN,WAAW,CAAC,IAAI,CAACM,WAAW,CAAC,IAC7B,CAAC,IAAI,CAACA,WAAW,CAAC8B,SAAS,CAACC,eAAe,CAAC,CAAC,CAAC,CAACmB,QAAQ,CACrDC,QAAQ,CAACC,aACX,CAAC,EACD;QACA;QACA;QACA,IAAI,CAACpD,WAAW,CAAC8B,SAAS,CAACC,eAAe,CAAC4B,KAAK,CAAC,CAAC;MACpD;MAEA,IAAIjE,WAAW,CAAC,IAAI,CAACM,WAAW,CAAC,EAAE;QACjC,IAAI,CAACA,WAAW,CAAC8B,SAAS,CAACD,IAAI,CAAC,YAAY,EAAEwB,KAAK,CAAC;MACtD;;MAEA;MACA,IAAI,CAACtD,MAAM,CAAC6D,2BAA2B,CAAC,CAAC;;MAEzC;MACA,CAAAL,iBAAA,OAAI,CAAClD,OAAO,CAACwD,GAAG,CAAC,CAAC,CAAC,cAAAN,iBAAA,uBAAnBA,iBAAA,CAAqBO,cAAc,CAAC;QAClCC,MAAM,EAAE;QACR;QACA;MACF,CAAC,CAAC;;MAEF;IACF,CAAC,MAAM,IAAIV,KAAK,CAACC,MAAM,KAAK,CAAC,IAAI,IAAI,CAACtD,WAAW,CAACQ,MAAM,CAACC,UAAU,EAAE;MACnE,IAAI,CAACa,aAAa,CAAC+B,KAAK,CAAC;IAC3B;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE/B,aAAaA,CAAC+B,KAA4B,EAAE;IAC1CA,KAAK,CAACW,eAAe,CAAC,CAAC;IACvB,IAAItE,WAAW,CAAC,IAAI,CAACM,WAAW,CAAC,EAAE;MACjC,IAAI,CAACA,WAAW,CAAC8B,SAAS,CAACmC,KAAK,CAAC,CAAC;IACpC,CAAC,MAAM;MACL,IAAI,CAAClE,MAAM,CAAC+C,MAAM,CAACoB,WAAW,CAAC,IAAI,CAAClE,WAAW,CAAC;IAClD;EACF;;EAEA;AACF;AACA;AACA;AACA;EACEyB,UAAUA,CAAC4B,KAA4B,EAAE;IACvC,IAAIA,KAAK,CAACC,MAAM,KAAK,CAAC,EAAE;MACtBD,KAAK,CAACc,cAAc,CAAC,CAAC,CAAC,CAAC;MACxBd,KAAK,CAACW,eAAe,CAAC,CAAC,CAAC,CAAC;IAC3B;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEtC,iBAAiBA,CAAC2B,KAAY,EAAE;IAC9BA,KAAK,CAACW,eAAe,CAAC,CAAC;EACzB;AACF;AAAC9D,eAAA,CAzRoBL,GAAG,eAIK,CACzB,qBAAqB,EACrB,uCAAuC,EACvC,gCAAgC,EAChC,yDAAyD,EACzD,OAAO,CACR,CAACuE,IAAI,CAAC,EAAE,CAAC"}
@@ -38,10 +38,11 @@ export default class RowOrColumn extends AbstractContentItem {
38
38
  /**
39
39
  * Replaces a child of this Row or Column with another contentItem
40
40
  *
41
- * @param oldChild
42
- * @param newChild
41
+ * @param oldChild The old child to replace
42
+ * @param newChild The new child to take the old child's place
43
+ * @param destroyOldChild If the old child should be destroyed or not
43
44
  */
44
- replaceChild(oldChild: AbstractContentItem, newChild: AbstractContentItem): void;
45
+ replaceChild(oldChild: AbstractContentItem, newChild: AbstractContentItem, destroyOldChild?: boolean): void;
45
46
  /**
46
47
  * Called whenever the dimensions of this item or one of its parents change
47
48
  */
@@ -1 +1 @@
1
- {"version":3,"file":"RowOrColumn.d.ts","sourceRoot":"","sources":["../../src/items/RowOrColumn.ts"],"names":[],"mappings":"AACA,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE7E,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,mBAAmB;IAC1D,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,qBAAqB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAEnC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,oBAAoB,CAAuB;gBAGjD,QAAQ,EAAE,IAAI,EACd,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,mBAAmB,GAAG,IAAI;gBAGlC,QAAQ,EAAE,KAAK,EACf,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,mBAAmB,GAAG,IAAI;IA6BpC;;;;;;;;;OASG;IACH,QAAQ,CACN,WAAW,EAAE,mBAAmB,GAAG,UAAU,EAC7C,KAAK,CAAC,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,OAAO;IAiD3B;;;;;OAKG;IACH,WAAW,CAAC,WAAW,EAAE,mBAAmB,EAAE,SAAS,EAAE,OAAO;IAiDhE;;;;;OAKG;IACH,YAAY,CAAC,QAAQ,EAAE,mBAAmB,EAAE,QAAQ,EAAE,mBAAmB;IAQzE;;OAEG;IACH,OAAO;IASP;;;;OAIG;IACH,MAAM;IAYN;;;;;OAKG;IACH,iBAAiB;IAmBjB;;;OAGG;IACH,uBAAuB;;;;;;IAuCvB;;;;;;;;;;;;;;;;;OAiBG;IACH,uBAAuB;IA0DvB;;OAEG;IACH,oBAAoB;IAyEpB;;;;;;;;OAQG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;IAsBxC;;;;;;;;;OASG;IACH,oBAAoB,CAAC,QAAQ,EAAE,QAAQ;;;;IAavC;;;;OAIG;IACH,qBAAqB,CAAC,GAAG,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE;;;;IAYtE;;;;;OAKG;IACH,oBAAoB,CAAC,QAAQ,EAAE,QAAQ;IA8BvC;;;;;;;OAOG;IACH,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAmBpE;;;;;;OAMG;IACH,mBAAmB,CAAC,QAAQ,EAAE,QAAQ;CAwBvC"}
1
+ {"version":3,"file":"RowOrColumn.d.ts","sourceRoot":"","sources":["../../src/items/RowOrColumn.ts"],"names":[],"mappings":"AACA,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE7E,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,mBAAmB;IAC1D,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,qBAAqB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAEnC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,oBAAoB,CAAuB;gBAGjD,QAAQ,EAAE,IAAI,EACd,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,mBAAmB,GAAG,IAAI;gBAGlC,QAAQ,EAAE,KAAK,EACf,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,mBAAmB,GAAG,IAAI;IA6BpC;;;;;;;;;OASG;IACH,QAAQ,CACN,WAAW,EAAE,mBAAmB,GAAG,UAAU,EAC7C,KAAK,CAAC,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,OAAO;IAiD3B;;;;;OAKG;IACH,WAAW,CAAC,WAAW,EAAE,mBAAmB,EAAE,SAAS,EAAE,OAAO;IAiDhE;;;;;;OAMG;IACH,YAAY,CACV,QAAQ,EAAE,mBAAmB,EAC7B,QAAQ,EAAE,mBAAmB,EAC7B,eAAe,UAAQ;IASzB;;OAEG;IACH,OAAO;IASP;;;;OAIG;IACH,MAAM;IAYN;;;;;OAKG;IACH,iBAAiB;IAmBjB;;;OAGG;IACH,uBAAuB;;;;;;IAuCvB;;;;;;;;;;;;;;;;;OAiBG;IACH,uBAAuB;IA0DvB;;OAEG;IACH,oBAAoB;IAyEpB;;;;;;;;OAQG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;IAsBxC;;;;;;;;;OASG;IACH,oBAAoB,CAAC,QAAQ,EAAE,QAAQ;;;;IAavC;;;;OAIG;IACH,qBAAqB,CAAC,GAAG,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE;;;;IAYtE;;;;;OAKG;IACH,oBAAoB,CAAC,QAAQ,EAAE,QAAQ;IA8BvC;;;;;;;OAOG;IACH,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAmBpE;;;;;;OAMG;IACH,mBAAmB,CAAC,QAAQ,EAAE,QAAQ;CAwBvC"}
@@ -130,13 +130,15 @@ export default class RowOrColumn extends AbstractContentItem {
130
130
  /**
131
131
  * Replaces a child of this Row or Column with another contentItem
132
132
  *
133
- * @param oldChild
134
- * @param newChild
133
+ * @param oldChild The old child to replace
134
+ * @param newChild The new child to take the old child's place
135
+ * @param destroyOldChild If the old child should be destroyed or not
135
136
  */
136
137
  replaceChild(oldChild, newChild) {
138
+ var destroyOldChild = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
137
139
  var size = oldChild.config[this._dimension];
138
- super.replaceChild(oldChild, newChild);
139
140
  newChild.config[this._dimension] = size;
141
+ super.replaceChild(oldChild, newChild, destroyOldChild);
140
142
  this.callDownwards('setSize');
141
143
  this.emitBubblingEvent('stateChanged');
142
144
  }
@@ -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","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\n * @param newChild\n */\n replaceChild(oldChild: AbstractContentItem, newChild: AbstractContentItem) {\n var size = oldChild.config[this._dimension];\n super.replaceChild(oldChild, newChild);\n newChild.config[this._dimension] = size;\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":";;;AAAA,OAAOA,CAAC,MAAM,QAAQ;AAAC,OAChBC,mBAAmB;AAAA,SACjBC,SAAS;AAAA,SACTC,QAAQ;AAIjB,eAAe,MAAMC,WAAW,SAASH,mBAAmB,CAAC;EA2B3DI,WAAWA,CACTC,QAAiB,EACjBC,aAA4B,EAC5BC,MAAwC,EACxCC,MAAkC,EAClC;IACA,KAAK,CACHF,aAAa,EACbC,MAAM,EACNC,MAAM,EACNT,CAAC,CAAC,yBAAyB,IAAIM,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC,GAAG,UAAU,CAC1E,CAAC;IAACI,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,oBAhC4B,EAAE;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,4BAKS,IAAI;IAAAA,eAAA,+BACD,IAAI;IAAAA,eAAA,+BACJ,IAAI;IA0BhD,IAAI,CAACD,MAAM,GAAGA,MAAM;IAEpB,IAAI,CAACE,KAAK,GAAG,CAACL,QAAQ;IACtB,IAAI,CAACA,QAAQ,GAAGA,QAAQ;IAExB,IAAI,CAACM,qBAAqB,GAAG,IAAI,CAACC,OAAO;IACzC,IAAI,CAACC,aAAa,GAAGP,aAAa,CAACC,MAAM,CAACO,UAAU,CAACC,WAAW;IAChE,IAAI,CAACC,iBAAiB,GAAGV,aAAa,CAACC,MAAM,CAACO,UAAU,CAACG,eAAe;IACxE,IAAI,CAACC,SAAS,GAAGb,QAAQ;IACzB,IAAI,CAACc,UAAU,GAAGd,QAAQ,GAAG,QAAQ,GAAG,OAAO;IAC/C,IAAI,CAACe,iBAAiB,GAAG,IAAI;IAC7B,IAAI,CAACC,oBAAoB,GAAG,IAAI;IAChC,IAAI,CAACC,oBAAoB,GAAG,IAAI;EAClC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,QAAQA,CACNC,WAA6C,EAC7CC,KAAc,EACdC,eAAyB,EACzB;IACA,IAAIC,WAAW,EAAEC,QAAQ,EAAEC,CAAC,EAAEC,eAAe;IAE7CN,WAAW,GAAG,IAAI,CAAClB,aAAa,CAACyB,sBAAsB,CAACP,WAAW,EAAE,IAAI,CAAC;IAE1E,IAAIC,KAAK,KAAKO,SAAS,EAAE;MACvBP,KAAK,GAAG,IAAI,CAACQ,YAAY,CAACC,MAAM;IAClC;IAEA,IAAI,IAAI,CAACD,YAAY,CAACC,MAAM,GAAG,CAAC,EAAE;MAChCJ,eAAe,GAAG,IAAI,CAACK,eAAe,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEZ,KAAK,GAAG,CAAC,CAAC,CAAC,CAACb,OAAO;MAEtE,IAAIa,KAAK,GAAG,CAAC,EAAE;QACb,IAAI,CAACQ,YAAY,CAACR,KAAK,GAAG,CAAC,CAAC,CAACb,OAAO,CAAC0B,KAAK,CAACR,eAAe,CAAC;QAC3DA,eAAe,CAACQ,KAAK,CAACd,WAAW,CAACZ,OAAO,CAAC;MAC5C,CAAC,MAAM;QACL,IAAI,CAACqB,YAAY,CAAC,CAAC,CAAC,CAACrB,OAAO,CAAC2B,MAAM,CAACT,eAAe,CAAC;QACpDA,eAAe,CAACS,MAAM,CAACf,WAAW,CAACZ,OAAO,CAAC;MAC7C;IACF,CAAC,MAAM;MACL,IAAI,CAACD,qBAAqB,CAAC6B,MAAM,CAAChB,WAAW,CAACZ,OAAO,CAAC;IACxD;IAEAZ,mBAAmB,CAACyC,SAAS,CAAClB,QAAQ,CAACmB,IAAI,CAAC,IAAI,EAAElB,WAAW,EAAEC,KAAK,CAAC;IAErEE,WAAW,GAAI,CAAC,GAAG,IAAI,CAACM,YAAY,CAACC,MAAM,GAAI,GAAG;IAElD,IAAIR,eAAe,KAAK,IAAI,EAAE;MAC5B,IAAI,CAACiB,iBAAiB,CAAC,cAAc,CAAC;MACtC;IACF;IAEA,KAAKd,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACI,YAAY,CAACC,MAAM,EAAEL,CAAC,EAAE,EAAE;MAC7C,IAAI,IAAI,CAACI,YAAY,CAACJ,CAAC,CAAC,KAAKL,WAAW,EAAE;QACxCA,WAAW,CAACjB,MAAM,CAAC,IAAI,CAACY,UAAU,CAAC,GAAGQ,WAAW;MACnD,CAAC,MAAM;QAAA,IAAAiB,qBAAA;QACLhB,QAAQ,GACL,EAAAgB,qBAAA,GAAC,IAAI,CAACX,YAAY,CAACJ,CAAC,CAAC,CAACtB,MAAM,CAAC,IAAI,CAACY,UAAU,CAAC,cAAAyB,qBAAA,cAAAA,qBAAA,GAAI,CAAC,KAChD,GAAG,GAAGjB,WAAW,CAAC,GACrB,GAAG;QACL,IAAI,CAACM,YAAY,CAACJ,CAAC,CAAC,CAACtB,MAAM,CAAC,IAAI,CAACY,UAAU,CAAC,GAAGS,QAAQ;MACzD;IACF;IAEA,IAAI,CAACiB,aAAa,CAAC,SAAS,CAAC;IAC7B,IAAI,CAACF,iBAAiB,CAAC,cAAc,CAAC;EACxC;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEG,WAAWA,CAACtB,WAAgC,EAAEuB,SAAkB,EAAE;IAAA,IAAAC,qBAAA;IAChE,IAAIC,eAAe,IAAAD,qBAAA,GAAGxB,WAAW,CAACjB,MAAM,CAAC,IAAI,CAACY,UAAU,CAAC,cAAA6B,qBAAA,cAAAA,qBAAA,GAAI,CAAC;MAC5DvB,KAAK,GAAG,IAAI,CAACQ,YAAY,CAACiB,OAAO,CAAC1B,WAAW,CAAC;MAC9C2B,aAAa,GAAGf,IAAI,CAACC,GAAG,CAACZ,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;MACtCI,CAAC;MACDuB,SAAS;IAEX,IAAI3B,KAAK,KAAK,CAAC,CAAC,EAAE;MAChB,MAAM,IAAI4B,KAAK,CACb,oEACF,CAAC;IACH;;IAEA;AACJ;AACA;AACA;IACI,IAAI,IAAI,CAACC,SAAS,CAACH,aAAa,CAAC,EAAE;MACjC,IAAI,CAACG,SAAS,CAACH,aAAa,CAAC,CAACI,SAAS,CAAC,CAAC;MACzC,IAAI,CAACD,SAAS,CAACE,MAAM,CAACL,aAAa,EAAE,CAAC,CAAC;IACzC;;IAEA;AACJ;AACA;IACI,KAAKtB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACI,YAAY,CAACC,MAAM,EAAEL,CAAC,EAAE,EAAE;MAC7C,IAAI,IAAI,CAACI,YAAY,CAACJ,CAAC,CAAC,KAAKL,WAAW,EAAE;QAAA,IAAAiC,sBAAA;QACxC,IAAI,CAACxB,YAAY,CAACJ,CAAC,CAAC,CAACtB,MAAM,CAAC,IAAI,CAACY,UAAU,CAAC,GAC1C,EAAAsC,sBAAA,GAAC,IAAI,CAACxB,YAAY,CAACJ,CAAC,CAAC,CAACtB,MAAM,CAAC,IAAI,CAACY,UAAU,CAAC,cAAAsC,sBAAA,cAAAA,sBAAA,GAAI,CAAC,IAClDR,eAAe,IAAI,IAAI,CAAChB,YAAY,CAACC,MAAM,GAAG,CAAC,CAAC;MACpD;IACF;IAEAlC,mBAAmB,CAACyC,SAAS,CAACK,WAAW,CAACJ,IAAI,CAC5C,IAAI,EACJlB,WAAW,EACXuB,SACF,CAAC;IAED,IAAI,IAAI,CAACd,YAAY,CAACC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC3B,MAAM,CAACmD,UAAU,KAAK,IAAI,EAAE;MAAA,IAAAC,YAAA;MACrEP,SAAS,GAAG,IAAI,CAACnB,YAAY,CAAC,CAAC,CAAC;MAChC,IAAI,CAACA,YAAY,GAAG,EAAE;MACtB,CAAA0B,YAAA,OAAI,CAACnD,MAAM,cAAAmD,YAAA,uBAAXA,YAAA,CAAaC,YAAY,CAAC,IAAI,EAAER,SAAS,EAAE,IAAI,CAAC;IAClD,CAAC,MAAM;MACL,IAAI,CAACP,aAAa,CAAC,SAAS,CAAC;MAC7B,IAAI,CAACF,iBAAiB,CAAC,cAAc,CAAC;IACxC;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEiB,YAAYA,CAACC,QAA6B,EAAEC,QAA6B,EAAE;IACzE,IAAIC,IAAI,GAAGF,QAAQ,CAACtD,MAAM,CAAC,IAAI,CAACY,UAAU,CAAC;IAC3C,KAAK,CAACyC,YAAY,CAACC,QAAQ,EAAEC,QAAQ,CAAC;IACtCA,QAAQ,CAACvD,MAAM,CAAC,IAAI,CAACY,UAAU,CAAC,GAAG4C,IAAI;IACvC,IAAI,CAAClB,aAAa,CAAC,SAAS,CAAC;IAC7B,IAAI,CAACF,iBAAiB,CAAC,cAAc,CAAC;EACxC;;EAEA;AACF;AACA;EACEqB,OAAOA,CAAA,EAAG;IACR,IAAI,IAAI,CAAC/B,YAAY,CAACC,MAAM,GAAG,CAAC,EAAE;MAChC,IAAI,CAAC+B,uBAAuB,CAAC,CAAC;MAC9B,IAAI,CAACC,iBAAiB,CAAC,CAAC;IAC1B;IACA,IAAI,CAACvB,iBAAiB,CAAC,cAAc,CAAC;IACtC,IAAI,CAACwB,IAAI,CAAC,QAAQ,CAAC;EACrB;;EAEA;AACF;AACA;AACA;AACA;EACEC,MAAMA,CAAA,EAAG;IACP,IAAI,IAAI,CAACC,aAAa,KAAK,IAAI,EAAE;IAEjC,IAAIxC,CAAC;IAEL7B,mBAAmB,CAACyC,SAAS,CAAC2B,MAAM,CAAC1B,IAAI,CAAC,IAAI,CAAC;IAE/C,KAAKb,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACI,YAAY,CAACC,MAAM,GAAG,CAAC,EAAEL,CAAC,EAAE,EAAE;MACjD,IAAI,CAACI,YAAY,CAACJ,CAAC,CAAC,CAACjB,OAAO,CAAC0B,KAAK,CAAC,IAAI,CAACH,eAAe,CAACN,CAAC,CAAC,CAACjB,OAAO,CAAC;IACrE;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEsD,iBAAiBA,CAAA,EAAG;IAClB,IAAIrC,CAAC;MACHyC,QAAQ,GAAG,IAAI,CAACC,uBAAuB,CAAC,CAAC;IAE3C,KAAK1C,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACI,YAAY,CAACC,MAAM,EAAEL,CAAC,EAAE,EAAE;MAC7C,IAAIyC,QAAQ,CAACE,eAAe,GAAG3C,CAAC,GAAG,CAAC,EAAE;QACpCyC,QAAQ,CAACG,SAAS,CAAC5C,CAAC,CAAC,EAAE;MACzB;MAEA,IAAI,IAAI,CAACX,SAAS,EAAE;QAClB,IAAI,CAACe,YAAY,CAACJ,CAAC,CAAC,CAACjB,OAAO,CAAC8D,KAAK,CAACJ,QAAQ,CAACK,UAAU,CAAC;QACvD,IAAI,CAAC1C,YAAY,CAACJ,CAAC,CAAC,CAACjB,OAAO,CAACgE,MAAM,CAACN,QAAQ,CAACG,SAAS,CAAC5C,CAAC,CAAC,CAAC;MAC5D,CAAC,MAAM;QACL,IAAI,CAACI,YAAY,CAACJ,CAAC,CAAC,CAACjB,OAAO,CAAC8D,KAAK,CAACJ,QAAQ,CAACG,SAAS,CAAC5C,CAAC,CAAC,CAAC;QACzD,IAAI,CAACI,YAAY,CAACJ,CAAC,CAAC,CAACjB,OAAO,CAACgE,MAAM,CAACN,QAAQ,CAACO,WAAW,CAAC;MAC3D;IACF;EACF;;EAEA;AACF;AACA;AACA;EACEN,uBAAuBA,CAAA,EAAG;IAAA,IAAAO,mBAAA,EAAAC,oBAAA;IACxB,IAAMC,iBAAiB,GACrB,CAAC,IAAI,CAAC/C,YAAY,CAACC,MAAM,GAAG,CAAC,IAAI,IAAI,CAACrB,aAAa;IACrD,IAAI8D,UAAU,IAAAG,mBAAA,GAAG,IAAI,CAAClE,OAAO,CAAC8D,KAAK,CAAC,CAAC,cAAAI,mBAAA,cAAAA,mBAAA,GAAI,CAAC;IAC1C,IAAID,WAAW,IAAAE,oBAAA,GAAG,IAAI,CAACnE,OAAO,CAACgE,MAAM,CAAC,CAAC,cAAAG,oBAAA,cAAAA,oBAAA,GAAI,CAAC;IAC5C,IAAIE,aAAa,GAAG,CAAC;IACrB,IAAMR,SAAmB,GAAG,EAAE;IAE9B,IAAI,IAAI,CAACvD,SAAS,EAAE;MAClB2D,WAAW,IAAIG,iBAAiB;IAClC,CAAC,MAAM;MACLL,UAAU,IAAIK,iBAAiB;IACjC;IAEA,KAAK,IAAInD,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACI,YAAY,CAACC,MAAM,EAAEL,CAAC,EAAE,EAAE;MAAA,IAAAqD,sBAAA,EAAAC,sBAAA;MACjD,IAAMvD,QAAQ,GAAG,IAAI,CAACV,SAAS,GAC3BkB,IAAI,CAACgD,KAAK,CACRP,WAAW,IAAI,EAAAK,sBAAA,GAAC,IAAI,CAACjD,YAAY,CAACJ,CAAC,CAAC,CAACtB,MAAM,CAACqE,MAAM,cAAAM,sBAAA,cAAAA,sBAAA,GAAI,CAAC,IAAI,GAAG,CAChE,CAAC,GACD9C,IAAI,CAACgD,KAAK,CACRT,UAAU,IAAI,EAAAQ,sBAAA,GAAC,IAAI,CAAClD,YAAY,CAACJ,CAAC,CAAC,CAACtB,MAAM,CAACmE,KAAK,cAAAS,sBAAA,cAAAA,sBAAA,GAAI,CAAC,IAAI,GAAG,CAC9D,CAAC;MAELF,aAAa,IAAIrD,QAAQ;MACzB6C,SAAS,CAACY,IAAI,CAACzD,QAAQ,CAAC;IAC1B;IAEA,IAAM4C,eAAe,GAAGpC,IAAI,CAACgD,KAAK,CAChC,CAAC,IAAI,CAAClE,SAAS,GAAG2D,WAAW,GAAGF,UAAU,IAAIM,aAChD,CAAC;IAED,OAAO;MACLR,SAAS;MACTD,eAAe;MACfG,UAAU;MACVE;IACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEZ,uBAAuBA,CAAA,EAAG;IACxB,IAAIqB,KAAK,GAAG,CAAC;IACb,IAAMC,wBAA+C,GAAG,EAAE;IAC1D,IAAMC,SAAS,GAAG,IAAI,CAACtE,SAAS,GAAG,QAAQ,GAAG,OAAO;IAErD,KAAK,IAAIW,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACI,YAAY,CAACC,MAAM,EAAEL,CAAC,EAAE,EAAE;MACjD,IAAMkC,IAAI,GAAG,IAAI,CAAC9B,YAAY,CAACJ,CAAC,CAAC,CAACtB,MAAM,CAACiF,SAAS,CAAC;MACnD,IAAIzB,IAAI,IAAI,IAAI,EAAE;QAChBuB,KAAK,IAAIvB,IAAI;MACf,CAAC,MAAM;QACLwB,wBAAwB,CAACF,IAAI,CAAC,IAAI,CAACpD,YAAY,CAACJ,CAAC,CAAC,CAAC;MACrD;IACF;;IAEA;AACJ;AACA;IACI,IAAIO,IAAI,CAACqD,KAAK,CAACH,KAAK,CAAC,KAAK,GAAG,EAAE;MAC7B,IAAI,CAACI,oBAAoB,CAAC,CAAC;MAC3B;IACF;;IAEA;AACJ;AACA;IACI,IAAItD,IAAI,CAACqD,KAAK,CAACH,KAAK,CAAC,GAAG,GAAG,IAAIC,wBAAwB,CAACrD,MAAM,GAAG,CAAC,EAAE;MAClE,KAAK,IAAIL,EAAC,GAAG,CAAC,EAAEA,EAAC,GAAG0D,wBAAwB,CAACrD,MAAM,EAAEL,EAAC,EAAE,EAAE;QACxD0D,wBAAwB,CAAC1D,EAAC,CAAC,CAACtB,MAAM,CAACiF,SAAS,CAAC,GAC3C,CAAC,GAAG,GAAGF,KAAK,IAAIC,wBAAwB,CAACrD,MAAM;MACnD;MACA,IAAI,CAACwD,oBAAoB,CAAC,CAAC;MAC3B;IACF;;IAEA;AACJ;AACA;AACA;AACA;AACA;IACI,IAAItD,IAAI,CAACqD,KAAK,CAACH,KAAK,CAAC,GAAG,GAAG,EAAE;MAC3B,KAAK,IAAIzD,GAAC,GAAG,CAAC,EAAEA,GAAC,GAAG0D,wBAAwB,CAACrD,MAAM,EAAEL,GAAC,EAAE,EAAE;QACxD0D,wBAAwB,CAAC1D,GAAC,CAAC,CAACtB,MAAM,CAACiF,SAAS,CAAC,GAAG,EAAE;QAClDF,KAAK,IAAI,EAAE;MACb;IACF;;IAEA;AACJ;AACA;IACI,KAAK,IAAIzD,GAAC,GAAG,CAAC,EAAEA,GAAC,GAAG,IAAI,CAACI,YAAY,CAACC,MAAM,EAAEL,GAAC,EAAE,EAAE;MAAA,IAAA8D,qBAAA;MACjD,IAAI,CAAC1D,YAAY,CAACJ,GAAC,CAAC,CAACtB,MAAM,CAACiF,SAAS,CAAC,GACnC,EAAAG,qBAAA,GAAC,IAAI,CAAC1D,YAAY,CAACJ,GAAC,CAAC,CAACtB,MAAM,CAACiF,SAAS,CAAC,cAAAG,qBAAA,cAAAA,qBAAA,GAAI,CAAC,IAAIL,KAAK,GAAI,GAAG;IACjE;IAEA,IAAI,CAACI,oBAAoB,CAAC,CAAC;EAC7B;;EAEA;AACF;AACA;EACEA,oBAAoBA,CAAA,EAAG;IAAA,IAAAE,qBAAA;IACrB,IAAMC,YAAY,GAAG,IAAI,CAACvF,aAAa,CAACC,MAAM,CAACO,UAAU,IAAA8E,qBAAA,GACrD,IAAI,CAACtF,aAAa,CAACC,MAAM,CAACO,UAAU,CAAC+E,YAAY,cAAAD,qBAAA,cAAAA,qBAAA,GAAI,CAAC,GACtD,CAAC;IACL,IAAME,cAAc,GAAG,EAAE;IACzB,IAAIC,YAAY,GAAG,CAAC;IACpB,IAAIC,aAAa,GAAG,CAAC;IACrB,IAAIC,cAAc,GAAG,CAAC;IACtB,IAAMC,UAAU,GAAG,EAAE;IACrB,IAAIC,KAAK;IAET,IAAI,IAAI,CAACjF,SAAS,IAAI,CAAC2E,YAAY,IAAI,IAAI,CAAC5D,YAAY,CAACC,MAAM,IAAI,CAAC,EAAE;MACpE;IACF;IAEA,IAAMoC,QAAQ,GAAG,IAAI,CAACC,uBAAuB,CAAC,CAAC;;IAE/C;AACJ;AACA;IACI,KAAK,IAAI1C,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACI,YAAY,CAACC,MAAM,EAAEL,CAAC,EAAE,EAAE;MACjD,IAAML,WAAW,GAAG,IAAI,CAACS,YAAY,CAACJ,CAAC,CAAC;MACxC,IAAMD,QAAQ,GAAG0C,QAAQ,CAACG,SAAS,CAAC5C,CAAC,CAAC;MAEtC,IAAID,QAAQ,GAAGiE,YAAY,EAAE;QAC3BG,aAAa,IAAIH,YAAY,GAAGjE,QAAQ;QACxCuE,KAAK,GAAG;UAAEzB,KAAK,EAAEmB;QAAa,CAAC;MACjC,CAAC,MAAM;QACLE,YAAY,IAAInE,QAAQ,GAAGiE,YAAY;QACvCM,KAAK,GAAG;UAAEzB,KAAK,EAAE9C;QAAS,CAAC;QAC3BkE,cAAc,CAACT,IAAI,CAACc,KAAK,CAAC;MAC5B;MAEAD,UAAU,CAACb,IAAI,CAACc,KAAK,CAAC;IACxB;;IAEA;AACJ;AACA;IACI,IAAIH,aAAa,KAAK,CAAC,IAAIA,aAAa,GAAGD,YAAY,EAAE;MACvD;IACF;;IAEA;AACJ;AACA;IACI,IAAMK,aAAa,GAAGJ,aAAa,GAAGD,YAAY;IAClDE,cAAc,GAAGD,aAAa;IAC9B,KAAK,IAAInE,GAAC,GAAG,CAAC,EAAEA,GAAC,GAAGiE,cAAc,CAAC5D,MAAM,EAAEL,GAAC,EAAE,EAAE;MAC9CsE,KAAK,GAAGL,cAAc,CAACjE,GAAC,CAAC;MACzB,IAAMwE,YAAY,GAAGjE,IAAI,CAACqD,KAAK,CAC7B,CAACU,KAAK,CAACzB,KAAK,GAAGmB,YAAY,IAAIO,aACjC,CAAC;MACDH,cAAc,IAAII,YAAY;MAC9BF,KAAK,CAACzB,KAAK,IAAI2B,YAAY;IAC7B;;IAEA;AACJ;AACA;IACI,IAAIJ,cAAc,KAAK,CAAC,EAAE;MACxBC,UAAU,CAACA,UAAU,CAAChE,MAAM,GAAG,CAAC,CAAC,CAACwC,KAAK,IAAIuB,cAAc;IAC3D;;IAEA;AACJ;AACA;IACI,KAAK,IAAIpE,GAAC,GAAG,CAAC,EAAEA,GAAC,GAAG,IAAI,CAACI,YAAY,CAACC,MAAM,EAAEL,GAAC,EAAE,EAAE;MACjD,IAAI,CAACI,YAAY,CAACJ,GAAC,CAAC,CAACtB,MAAM,CAACmE,KAAK,GAC9BwB,UAAU,CAACrE,GAAC,CAAC,CAAC6C,KAAK,GAAGJ,QAAQ,CAACK,UAAU,GAAI,GAAG;IACrD;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACExC,eAAeA,CAACV,KAAa,EAAY;IACvC,IAAI6E,QAAQ;IACZA,QAAQ,GAAG,IAAIpG,QAAQ,CACrB,IAAI,CAACgB,SAAS,EACd,IAAI,CAACL,aAAa,EAClB,IAAI,CAACG,iBACP,CAAC;IACDsF,QAAQ,CAACC,EAAE,CAAC,MAAM,EAAE,IAAI,CAACC,eAAe,CAACC,IAAI,CAAC,IAAI,EAAEH,QAAQ,CAAC,EAAE,IAAI,CAAC;IACpEA,QAAQ,CAACC,EAAE,CACT,UAAU,EACV,IAAI,CAACG,mBAAmB,CAACD,IAAI,CAAC,IAAI,EAAEH,QAAQ,CAAC,EAC7C,IACF,CAAC;IACDA,QAAQ,CAACC,EAAE,CACT,WAAW,EACX,IAAI,CAACI,oBAAoB,CAACF,IAAI,CAAC,IAAI,EAAEH,QAAQ,CAAC,EAC9C,IACF,CAAC;IACD,IAAI,CAAChD,SAAS,CAACE,MAAM,CAAC/B,KAAK,EAAE,CAAC,EAAE6E,QAAQ,CAAC;IACzC,OAAOA,QAAQ;EACjB;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEM,oBAAoBA,CAACN,QAAkB,EAAE;IACvC,IAAM7E,KAAK,GAAG,IAAI,CAAC6B,SAAS,CAACJ,OAAO,CAACoD,QAAQ,CAAC;IAE9C,IAAI7E,KAAK,GAAG,CAAC,EAAE;MACb,MAAM,IAAI4B,KAAK,CAAC,mCAAmC,CAAC;IACtD;IAEA,OAAO;MACLd,MAAM,EAAE,IAAI,CAACN,YAAY,CAACR,KAAK,CAAC;MAChCa,KAAK,EAAE,IAAI,CAACL,YAAY,CAACR,KAAK,GAAG,CAAC;IACpC,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;EACEoF,qBAAqBA,CAACC,GAAgD,EAAE;IACtE,IAAIC,QAAQ,GAAG,CAAC;MACdC,SAAS,GAAG,CAAC;IAEf,KAAK,IAAInF,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGiF,GAAG,CAAC5E,MAAM,EAAE,EAAEL,CAAC,EAAE;MAAA,IAAAoF,eAAA,EAAAC,gBAAA;MACnCH,QAAQ,GAAG3E,IAAI,CAACC,GAAG,EAAA4E,eAAA,GAACH,GAAG,CAACjF,CAAC,CAAC,CAACkF,QAAQ,cAAAE,eAAA,cAAAA,eAAA,GAAI,CAAC,EAAEF,QAAQ,CAAC;MACnDC,SAAS,GAAG5E,IAAI,CAACC,GAAG,EAAA6E,gBAAA,GAACJ,GAAG,CAACjF,CAAC,CAAC,CAACmF,SAAS,cAAAE,gBAAA,cAAAA,gBAAA,GAAI,CAAC,EAAEF,SAAS,CAAC;IACxD;IAEA,OAAO;MAAEG,UAAU,EAAEJ,QAAQ;MAAEK,QAAQ,EAAEJ;IAAU,CAAC;EACtD;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEL,oBAAoBA,CAACL,QAAkB,EAAE;IAAA,IAAAe,qBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,qBAAA;IACvC,IAAMC,KAAK,GAAG,IAAI,CAACb,oBAAoB,CAACN,QAAQ,CAAC;IACjD,IAAMoB,OAAO,GACX,IAAI,CAACpH,aAAa,CAACC,MAAM,CAACO,UAAU,CAClC,IAAI,CAACI,SAAS,GAAG,eAAe,GAAG,cAAc,CAClD;IAEH,IAAIyG,YAAY,GAAG,IAAI,CAACd,qBAAqB,EAAAQ,qBAAA,GAC3CI,KAAK,CAAClF,MAAM,CAAChC,MAAM,CAACqH,OAAO,cAAAP,qBAAA,cAAAA,qBAAA,GAAI,EACjC,CAAC;IACD,IAAIQ,aAAa,GAAG,IAAI,CAAC3G,SAAS,GAC9ByG,YAAY,CAACP,QAAQ,GACrBO,YAAY,CAACR,UAAU;IAE3B,IAAIW,WAAW,GAAG,IAAI,CAACjB,qBAAqB,EAAAS,qBAAA,GAC1CG,KAAK,CAACnF,KAAK,CAAC/B,MAAM,CAACqH,OAAO,cAAAN,qBAAA,cAAAA,qBAAA,GAAI,EAChC,CAAC;IACD,IAAIS,YAAY,GAAG,IAAI,CAAC7G,SAAS,GAC7B4G,WAAW,CAACV,QAAQ,GACpBU,WAAW,CAACX,UAAU;IAE1B,IAAI,CAAC/F,iBAAiB,GAAG,CAAC;IAC1B,IAAI,CAACC,oBAAoB,GACvB,CAAC,CAAC,IACD,EAAAkG,qBAAA,GAACE,KAAK,CAAClF,MAAM,CAAC3B,OAAO,CAAC,IAAI,CAACO,UAAU,CAAC,CAAC,CAAC,cAAAoG,qBAAA,cAAAA,qBAAA,GAAI,CAAC,KAC3CM,aAAa,IAAIH,OAAO,CAAC,CAAC;IAC/B,IAAI,CAACpG,oBAAoB,GACvB,EAAAkG,qBAAA,GAACC,KAAK,CAACnF,KAAK,CAAC1B,OAAO,CAAC,IAAI,CAACO,UAAU,CAAC,CAAC,CAAC,cAAAqG,qBAAA,cAAAA,qBAAA,GAAI,CAAC,KAAKO,YAAY,IAAIL,OAAO,CAAC;EAC7E;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACElB,eAAeA,CAACF,QAAkB,EAAE0B,OAAe,EAAEC,OAAe,EAAE;IACpE,IAAMC,MAAM,GAAG,IAAI,CAAChH,SAAS,GAAG+G,OAAO,GAAGD,OAAO;IAEjD,IACE,IAAI,CAAC1G,oBAAoB,IAAI,IAAI,IACjC,IAAI,CAACD,oBAAoB,IAAI,IAAI,EACjC;MACA;IACF;IAEA,IACE6G,MAAM,GAAG,IAAI,CAAC7G,oBAAoB,IAClC6G,MAAM,GAAG,IAAI,CAAC5G,oBAAoB,EAClC;MACA,IAAI,CAACF,iBAAiB,GAAG8G,MAAM;MAC/B5B,QAAQ,CAAC1F,OAAO,CAACuH,GAAG,CAAC,IAAI,CAACjH,SAAS,GAAG,KAAK,GAAG,MAAM,EAAEgH,MAAM,CAAC;IAC/D;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACExB,mBAAmBA,CAACJ,QAAkB,EAAE;IAAA,IAAA8B,sBAAA,EAAAC,sBAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,qBAAA;IACtC,IAAMf,KAAK,GAAG,IAAI,CAACb,oBAAoB,CAACN,QAAQ,CAAC;IACjD,IAAMmC,UAAU,IAAAL,sBAAA,GAAGX,KAAK,CAAClF,MAAM,CAAC3B,OAAO,CAAC,IAAI,CAACO,UAAU,CAAC,CAAC,CAAC,cAAAiH,sBAAA,cAAAA,sBAAA,GAAI,CAAC;IAC/D,IAAMM,SAAS,IAAAL,sBAAA,GAAGZ,KAAK,CAACnF,KAAK,CAAC1B,OAAO,CAAC,IAAI,CAACO,UAAU,CAAC,CAAC,CAAC,cAAAkH,sBAAA,cAAAA,sBAAA,GAAI,CAAC;IAC7D,IAAMM,uBAAuB,GAC3B,CAAC,EAAAL,qBAAA,GAAC,IAAI,CAAClH,iBAAiB,cAAAkH,qBAAA,cAAAA,qBAAA,GAAI,CAAC,IAAIG,UAAU,KAAKA,UAAU,GAAGC,SAAS,CAAC;IACzE,IAAME,iBAAiB,GACrB,EAAAL,sBAAA,GAACd,KAAK,CAAClF,MAAM,CAAChC,MAAM,CAAC,IAAI,CAACY,UAAU,CAAC,cAAAoH,sBAAA,cAAAA,sBAAA,GAAI,CAAC,MAAAC,qBAAA,GACzCf,KAAK,CAACnF,KAAK,CAAC/B,MAAM,CAAC,IAAI,CAACY,UAAU,CAAC,cAAAqH,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC;IAE5Cf,KAAK,CAAClF,MAAM,CAAChC,MAAM,CAAC,IAAI,CAACY,UAAU,CAAC,GAClCwH,uBAAuB,GAAGC,iBAAiB;IAC7CnB,KAAK,CAACnF,KAAK,CAAC/B,MAAM,CAAC,IAAI,CAACY,UAAU,CAAC,GACjC,CAAC,CAAC,GAAGwH,uBAAuB,IAAIC,iBAAiB;IAEnDtC,QAAQ,CAAC1F,OAAO,CAACuH,GAAG,CAAC;MACnBU,GAAG,EAAE,CAAC;MACNC,IAAI,EAAE;IACR,CAAC,CAAC;IAEF7I,SAAS,CACP,IAAI,CAAC4C,aAAa,CAAC4D,IAAI,CAAC,IAAI,EAAE,SAAS,EAAEzE,SAAS,EAAEA,SAAS,EAAEA,SAAS,CAC1E,CAAC;EACH;AACF"}
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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/golden-layout",
3
- "version": "0.95.1-beta.3+ee1bc2f0",
3
+ "version": "0.95.1-beta.5+91bd8fe1",
4
4
  "author": "Deephaven Data Labs LLC",
5
5
  "license": "Apache-2.0",
6
6
  "description": "A multi-screen javascript Layout manager",
@@ -10,7 +10,7 @@
10
10
  "source": "src/index.ts",
11
11
  "type": "module",
12
12
  "dependencies": {
13
- "@deephaven/components": "^0.95.1-beta.3+ee1bc2f0",
13
+ "@deephaven/components": "^0.95.1-beta.5+91bd8fe1",
14
14
  "jquery": "^3.6.0",
15
15
  "nanoid": "^5.0.7"
16
16
  },
@@ -56,5 +56,5 @@
56
56
  "karma-browserify": "^8.1.0",
57
57
  "watchify": "^4.0.0"
58
58
  },
59
- "gitHead": "ee1bc2f0d5d4bfe69ae667d51cc9d94bfed905d4"
59
+ "gitHead": "91bd8fe18fc0ae8cdc40775a71f63e2d7b6e8355"
60
60
  }