@deephaven/golden-layout 0.85.3-core-plugins.6 → 0.85.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.
Files changed (49) hide show
  1. package/dist/LayoutManager.d.ts +11 -23
  2. package/dist/LayoutManager.d.ts.map +1 -1
  3. package/dist/LayoutManager.js +21 -49
  4. package/dist/LayoutManager.js.map +1 -1
  5. package/dist/config/Config.d.ts +2 -2
  6. package/dist/config/Config.d.ts.map +1 -1
  7. package/dist/config/Config.js.map +1 -1
  8. package/dist/config/ItemConfig.d.ts +14 -38
  9. package/dist/config/ItemConfig.d.ts.map +1 -1
  10. package/dist/config/ItemConfig.js +0 -2
  11. package/dist/config/ItemConfig.js.map +1 -1
  12. package/dist/controls/BrowserPopout.d.ts +2 -2
  13. package/dist/controls/BrowserPopout.d.ts.map +1 -1
  14. package/dist/controls/BrowserPopout.js.map +1 -1
  15. package/dist/controls/DragSource.d.ts +3 -3
  16. package/dist/controls/DragSource.d.ts.map +1 -1
  17. package/dist/controls/DragSource.js.map +1 -1
  18. package/dist/controls/Header.d.ts +3 -3
  19. package/dist/controls/Header.d.ts.map +1 -1
  20. package/dist/controls/Header.js.map +1 -1
  21. package/dist/items/AbstractContentItem.d.ts +12 -5
  22. package/dist/items/AbstractContentItem.d.ts.map +1 -1
  23. package/dist/items/AbstractContentItem.js.map +1 -1
  24. package/dist/items/Component.d.ts +2 -2
  25. package/dist/items/Component.d.ts.map +1 -1
  26. package/dist/items/Component.js +1 -2
  27. package/dist/items/Component.js.map +1 -1
  28. package/dist/items/Root.d.ts +5 -3
  29. package/dist/items/Root.d.ts.map +1 -1
  30. package/dist/items/Root.js.map +1 -1
  31. package/dist/items/RowOrColumn.d.ts +6 -5
  32. package/dist/items/RowOrColumn.d.ts.map +1 -1
  33. package/dist/items/RowOrColumn.js +1 -2
  34. package/dist/items/RowOrColumn.js.map +1 -1
  35. package/dist/items/Stack.d.ts +21 -7
  36. package/dist/items/Stack.d.ts.map +1 -1
  37. package/dist/items/Stack.js +4 -7
  38. package/dist/items/Stack.js.map +1 -1
  39. package/dist/utils/index.d.ts +0 -1
  40. package/dist/utils/index.d.ts.map +1 -1
  41. package/dist/utils/index.js +0 -1
  42. package/dist/utils/index.js.map +1 -1
  43. package/package.json +3 -3
  44. package/dist/utils/EventUtils.d.ts +0 -27
  45. package/dist/utils/EventUtils.d.ts.map +0 -1
  46. package/dist/utils/EventUtils.js +0 -41
  47. package/dist/utils/EventUtils.js.map +0 -1
  48. package/dist/utils/EventUtils.test.d.ts +0 -2
  49. package/dist/utils/EventUtils.test.d.ts.map +0 -1
@@ -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","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() {\n this.container.show();\n if (this.container._config.isFocusOnShow) {\n // focus the shown container element on show\n // preventScroll isn't supported in safari, but also doesn't matter for illumon when 100% window\n this.container._contentElement[0].focus({ preventScroll: true });\n }\n AbstractContentItem.prototype._$show.call(this);\n }\n\n _$destroy() {\n this.container.emit('destroy', this);\n AbstractContentItem.prototype._$destroy.call(this);\n }\n\n /**\n * Dragging onto a component directly is not an option\n *\n * @returns null\n */\n _$getArea() {\n return null;\n }\n}\n"],"mappings":"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"}
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","removeChild","setSize","is","_$setSize","width","height","_$init","prototype","call","emit","_$hide","hide","_$show","show","_config","isFocusOnShow","_contentElement","focus","preventScroll","_$destroy","_$getArea"],"sources":["../../src/items/Component.ts"],"sourcesContent":["import $ from 'jquery';\nimport AbstractContentItem from './AbstractContentItem';\nimport { ConfigurationError } from '../errors';\nimport type LayoutManager from '../LayoutManager';\nimport type { ComponentConfig } from '../config/ItemConfig';\nimport ItemContainer from '../container/ItemContainer';\nimport type { ComponentConstructor } from '../LayoutManager';\n\n/**\n * @param layoutManager\n * @param config\n * @param parent\n */\nexport default class Component extends AbstractContentItem {\n config: ComponentConfig;\n\n componentName: string;\n\n container: ItemContainer;\n\n parent: AbstractContentItem;\n\n instance: unknown;\n\n constructor(\n layoutManager: LayoutManager,\n config: ComponentConfig,\n parent: AbstractContentItem\n ) {\n // 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() {\n this.container.show();\n if (this.container._config.isFocusOnShow) {\n // focus the shown container element on show\n // preventScroll isn't supported in safari, but also doesn't matter for illumon when 100% window\n this.container._contentElement[0].focus({ preventScroll: true });\n }\n AbstractContentItem.prototype._$show.call(this);\n }\n\n _$destroy() {\n this.container.emit('destroy', this);\n AbstractContentItem.prototype._$destroy.call(this);\n }\n\n /**\n * Dragging onto a component directly is not an option\n *\n * @returns null\n */\n _$getArea() {\n return null;\n }\n}\n"],"mappings":"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"}
@@ -1,16 +1,18 @@
1
1
  /// <reference types="jquery" />
2
2
  /// <reference types="jquery" />
3
3
  /// <reference types="bootstrap" />
4
- import type { ComponentConfig, ItemConfig } from '../config';
4
+ import type { ComponentConfig, ItemConfigType, ItemConfig } from '../config';
5
5
  import LayoutManager from '../LayoutManager';
6
6
  import AbstractContentItem, { ItemArea } from './AbstractContentItem';
7
7
  export default class Root extends AbstractContentItem {
8
8
  childElementContainer: JQuery<HTMLElement>;
9
9
  private _containerElement;
10
10
  constructor(layoutManager: LayoutManager, config: ComponentConfig | {
11
- content: ItemConfig[];
11
+ content: ItemConfigType[];
12
12
  }, containerElement: JQuery<HTMLElement>);
13
- addChild(contentItem: AbstractContentItem | ItemConfig, index?: number): void;
13
+ addChild(contentItem: AbstractContentItem | ItemConfigType | {
14
+ type: ItemConfig['type'];
15
+ }, index?: number): void;
14
16
  setSize(width?: number, height?: number): void;
15
17
  _$getArea(): ItemArea<this>;
16
18
  _$highlightDropZone(x: number, y: number, area: ItemArea): void;
@@ -1 +1 @@
1
- {"version":3,"file":"Root.d.ts","sourceRoot":"","sources":["../../src/items/Root.ts"],"names":[],"mappings":";;;AACA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAC7C,OAAO,mBAAmB,EAAE,EAE1B,QAAQ,EACT,MAAM,uBAAuB,CAAC;AAG/B,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,mBAAmB;IACnD,qBAAqB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAE3C,OAAO,CAAC,iBAAiB,CAAsB;gBAG7C,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,eAAe,GAAG;QAAE,OAAO,EAAE,UAAU,EAAE,CAAA;KAAE,EACnD,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC;IAevC,QAAQ,CAAC,WAAW,EAAE,mBAAmB,GAAG,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM;IAatE,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAsBvC,SAAS;IAQT,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ;IAKxD,QAAQ,CAAC,WAAW,EAAE,mBAAmB,EAAE,IAAI,EAAE,QAAQ;CAgD1D"}
1
+ {"version":3,"file":"Root.d.ts","sourceRoot":"","sources":["../../src/items/Root.ts"],"names":[],"mappings":";;;AACA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAC7C,OAAO,mBAAmB,EAAE,EAE1B,QAAQ,EACT,MAAM,uBAAuB,CAAC;AAG/B,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,mBAAmB;IACnD,qBAAqB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAE3C,OAAO,CAAC,iBAAiB,CAAsB;gBAG7C,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,eAAe,GAAG;QAAE,OAAO,EAAE,cAAc,EAAE,CAAA;KAAE,EACvD,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC;IAevC,QAAQ,CACN,WAAW,EACP,mBAAmB,GACnB,cAAc,GACd;QAAE,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;KAAE,EAChC,KAAK,CAAC,EAAE,MAAM;IAchB,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAsBvC,SAAS;IAQT,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ;IAKxD,QAAQ,CAAC,WAAW,EAAE,mBAAmB,EAAE,IAAI,EAAE,QAAQ;CAgD1D"}
@@ -1 +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, ItemConfigType, ItemConfig } from '../config';\nimport LayoutManager from '../LayoutManager';\nimport AbstractContentItem, {\n isComponent,\n ItemArea,\n} from './AbstractContentItem';\nimport RowOrColumn from './RowOrColumn';\n\nexport default class Root extends AbstractContentItem {\n childElementContainer: JQuery<HTMLElement>;\n\n private _containerElement: JQuery<HTMLElement>;\n\n constructor(\n layoutManager: LayoutManager,\n config: ComponentConfig | { content: ItemConfigType[] },\n containerElement: JQuery<HTMLElement>\n ) {\n super(\n layoutManager,\n { ...config, type: 'root' },\n null,\n $('<div class=\"lm_goldenlayout lm_item lm_root\"></div>')\n );\n this.isRoot = true;\n this.type = 'root';\n this.childElementContainer = this.element;\n this._containerElement = containerElement;\n this._containerElement.append(this.element);\n }\n\n addChild(\n contentItem:\n | AbstractContentItem\n | ItemConfigType\n | { type: ItemConfig['type'] },\n index?: number\n ) {\n if (this.contentItems.length > 0) {\n throw new Error('Root node can only have a single child');\n }\n\n contentItem = this.layoutManager._$normalizeContentItem(contentItem, this);\n this.childElementContainer.append(contentItem.element);\n super.addChild(contentItem, index);\n\n this.callDownwards('setSize');\n this.emitBubblingEvent('stateChanged');\n }\n\n setSize(width?: number, height?: number) {\n width =\n typeof width === 'undefined'\n ? this._containerElement.width() ?? 0\n : width;\n height =\n typeof height === 'undefined'\n ? this._containerElement.height() ?? 0\n : height;\n\n this.element.width(width);\n this.element.height(height);\n\n /*\n * Root can be empty\n */\n if (this.contentItems[0]) {\n this.contentItems[0].element.width(width);\n this.contentItems[0].element.height(height);\n }\n }\n\n _$getArea() {\n const area = super._$getArea();\n if (area == null) {\n throw new Error('Unable to get root area');\n }\n return area;\n }\n\n _$highlightDropZone(x: number, y: number, area: ItemArea) {\n this.layoutManager.tabDropPlaceholder.remove();\n super._$highlightDropZone(x, y, area);\n }\n\n _$onDrop(contentItem: AbstractContentItem, area: ItemArea) {\n var stack;\n\n if (isComponent(contentItem)) {\n stack = this.layoutManager.createContentItem(\n {\n type: 'stack',\n header: contentItem.config.header || {},\n },\n this\n );\n stack._$init();\n stack.addChild(contentItem);\n contentItem = stack;\n }\n\n if (!this.contentItems.length) {\n this.addChild(contentItem);\n } else {\n const { side } = area;\n const type = side === 'left' || side === 'right' ? 'row' : 'column'; // Should new root be a row or column\n const dimension =\n side === 'left' || side === 'right' ? 'width' : 'height';\n const insertBefore = side === 'left' || side === 'top';\n const column = this.contentItems[0];\n if (!(column instanceof RowOrColumn) || column.type != type) {\n const rowOrColumn = this.layoutManager.createContentItem(\n { type: type },\n this\n ) as RowOrColumn;\n this.replaceChild(column, rowOrColumn);\n rowOrColumn.addChild(contentItem, insertBefore ? 0 : undefined, true);\n rowOrColumn.addChild(column, insertBefore ? undefined : 0, true);\n column.config[dimension] = 50;\n contentItem.config[dimension] = 50;\n rowOrColumn.callDownwards('setSize');\n } else {\n const sibling =\n column.contentItems[\n insertBefore ? 0 : column.contentItems.length - 1\n ];\n column.addChild(contentItem, insertBefore ? 0 : undefined, true);\n sibling.config[dimension] = (sibling.config[dimension] ?? 0) * 0.5;\n contentItem.config[dimension] = sibling.config[dimension];\n column.callDownwards('setSize');\n }\n }\n }\n}\n"],"mappings":"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"}
@@ -4,12 +4,12 @@
4
4
  import AbstractContentItem from './AbstractContentItem';
5
5
  import { Splitter } from '../controls';
6
6
  import type LayoutManager from '../LayoutManager';
7
- import type { ColumnItemConfig, ItemConfig, RowItemConfig } from '../config';
7
+ import type { ItemConfig, ItemConfigType } from '../config';
8
8
  export default class RowOrColumn extends AbstractContentItem {
9
9
  isRow: boolean;
10
10
  isColumn: boolean;
11
11
  childElementContainer: JQuery<HTMLElement>;
12
- parent: AbstractContentItem | null;
12
+ parent: AbstractContentItem;
13
13
  private _splitter;
14
14
  private _splitterSize;
15
15
  private _splitterGrabSize;
@@ -18,8 +18,7 @@ export default class RowOrColumn extends AbstractContentItem {
18
18
  private _splitterPosition;
19
19
  private _splitterMinPosition;
20
20
  private _splitterMaxPosition;
21
- constructor(isColumn: true, layoutManager: LayoutManager, config: ColumnItemConfig, parent: AbstractContentItem | null);
22
- constructor(isColumn: false, layoutManager: LayoutManager, config: RowItemConfig, parent: AbstractContentItem | null);
21
+ constructor(isColumn: boolean, layoutManager: LayoutManager, config: ItemConfigType, parent: AbstractContentItem);
23
22
  /**
24
23
  * Add a new contentItem to the Row or Column
25
24
  *
@@ -30,7 +29,9 @@ export default class RowOrColumn extends AbstractContentItem {
30
29
  * an inconsistent state and is only intended to be used if multiple
31
30
  * children need to be added in one go and resize is called afterwards
32
31
  */
33
- addChild(contentItem: AbstractContentItem | ItemConfig, index?: number, _$suspendResize?: boolean): void;
32
+ addChild(contentItem: AbstractContentItem | {
33
+ type: ItemConfig['type'];
34
+ }, index?: number, _$suspendResize?: boolean): void;
34
35
  /**
35
36
  * Removes a child of this element
36
37
  *
@@ -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,UAAU,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE5D,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,CAAC;IAE5B,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,OAAO,EACjB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,mBAAmB;IAuB7B;;;;;;;;;OASG;IACH,QAAQ,CACN,WAAW,EAAE,mBAAmB,GAAG;QAAE,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;KAAE,EAC/D,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"}
@@ -117,10 +117,9 @@ export default class RowOrColumn extends AbstractContentItem {
117
117
  }
118
118
  AbstractContentItem.prototype.removeChild.call(this, contentItem, keepChild);
119
119
  if (this.contentItems.length === 1 && this.config.isClosable === true) {
120
- var _this$parent;
121
120
  childItem = this.contentItems[0];
122
121
  this.contentItems = [];
123
- (_this$parent = this.parent) === null || _this$parent === void 0 ? void 0 : _this$parent.replaceChild(this, childItem, true);
122
+ this.parent.replaceChild(this, childItem, true);
124
123
  } else {
125
124
  this.callDownwards('setSize');
126
125
  this.emitBubblingEvent('stateChanged');
@@ -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":"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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","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 { ItemConfig, ItemConfigType } from '../config';\n\nexport default class RowOrColumn extends AbstractContentItem {\n isRow: boolean;\n isColumn: boolean;\n childElementContainer: JQuery<HTMLElement>;\n parent: AbstractContentItem;\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: boolean,\n layoutManager: LayoutManager,\n config: ItemConfigType,\n parent: AbstractContentItem\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 | { type: ItemConfig['type'] },\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":"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"}
@@ -2,8 +2,9 @@
2
2
  /// <reference types="bootstrap" />
3
3
  import AbstractContentItem from './AbstractContentItem';
4
4
  import type LayoutManager from '../LayoutManager';
5
- import type { ItemConfig, StackItemConfig, StackItemHeaderConfig } from '../config';
5
+ import type { ComponentConfig, ItemConfigType } from '../config';
6
6
  import { Header } from '../controls';
7
+ import type RowOrColumn from './RowOrColumn';
7
8
  interface HoverDimensions {
8
9
  hoverArea: {
9
10
  x1: number;
@@ -27,29 +28,42 @@ type ContentAreaDimensions = {
27
28
  right?: HoverDimensions;
28
29
  };
29
30
  type BodySegment = keyof ContentAreaDimensions;
31
+ export interface StackHeaderConfig {
32
+ show?: boolean | 'top' | 'left' | 'right' | 'bottom';
33
+ popout?: string;
34
+ maximise?: string;
35
+ close?: string;
36
+ minimise?: string;
37
+ }
30
38
  export default class Stack extends AbstractContentItem {
31
39
  private _activeContentItem;
32
- _header: StackItemHeaderConfig;
40
+ _header: StackHeaderConfig;
33
41
  childElementContainer: JQuery<HTMLElement>;
34
42
  header: Header;
35
- parent: AbstractContentItem | null;
43
+ parent: RowOrColumn;
36
44
  isStack: boolean;
45
+ private _dropZones;
37
46
  private _dropSegment;
38
47
  _contentAreaDimensions: ContentAreaDimensions | null;
39
48
  private _dropIndex;
40
49
  _side: boolean | 'top' | 'left' | 'right' | 'bottom';
41
50
  _sided: boolean;
42
- config: StackItemConfig;
51
+ config: ComponentConfig & {
52
+ activeItemIndex?: number;
53
+ };
43
54
  constructor(layoutManager: LayoutManager & {
44
55
  config: LayoutManager['config'] & {
45
- header?: StackItemHeaderConfig;
56
+ header?: StackHeaderConfig;
46
57
  };
47
- }, config: StackItemConfig, parent: AbstractContentItem | null);
58
+ }, config: ComponentConfig & {
59
+ header?: StackHeaderConfig;
60
+ hasHeaders?: boolean;
61
+ }, parent: RowOrColumn);
48
62
  setSize(): void;
49
63
  _$init(): void;
50
64
  setActiveContentItem(contentItem: AbstractContentItem): void;
51
65
  getActiveContentItem(): AbstractContentItem | null;
52
- addChild(contentItem: AbstractContentItem | ItemConfig, index?: number): void;
66
+ addChild(contentItem: AbstractContentItem | ItemConfigType, index?: number): void;
53
67
  removeChild(contentItem: AbstractContentItem, keepChild?: boolean): void;
54
68
  /**
55
69
  * Validates that the stack is still closable or not. If a stack is able
@@ -1 +1 @@
1
- {"version":3,"file":"Stack.d.ts","sourceRoot":"","sources":["../../src/items/Stack.ts"],"names":[],"mappings":";;AACA,OAAO,mBAAoC,MAAM,uBAAuB,CAAC;AACzE,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,qBAAqB,EACtB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,UAAU,eAAe;IACvB,SAAS,EAAE;QACT,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;KACZ,CAAC;IACF,aAAa,EAAE;QACb,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;KACZ,CAAC;CACH;AAED,KAAK,qBAAqB,GAAG;IAC3B,MAAM,EAAE,eAAe,CAAC;IACxB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB,CAAC;AAEF,KAAK,WAAW,GAAG,MAAM,qBAAqB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,mBAAmB;IACpD,OAAO,CAAC,kBAAkB,CAAoC;IAE9D,OAAO,EAAE,qBAAqB,CAAC;IAE/B,qBAAqB,sBAAqC;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAEnC,OAAO,UAAQ;IAEf,OAAO,CAAC,YAAY,CAAuB;IAC3C,sBAAsB,EAAE,qBAAqB,GAAG,IAAI,CAAQ;IAC5D,OAAO,CAAC,UAAU,CAAqB;IACvC,KAAK,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrD,MAAM,EAAE,OAAO,CAAS;IAExB,MAAM,EAAE,eAAe,CAAC;gBAGtB,aAAa,EAAE,aAAa,GAAG;QAC7B,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG;YAChC,MAAM,CAAC,EAAE,qBAAqB,CAAC;SAChC,CAAC;KACH,EACD,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAyCpC,OAAO;IAoBP,MAAM;IAuBN,oBAAoB,CAAC,WAAW,EAAE,mBAAmB;IAiBrD,oBAAoB;IAIpB,QAAQ,CAAC,WAAW,EAAE,mBAAmB,GAAG,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM;IAWtE,WAAW,CAAC,WAAW,EAAE,mBAAmB,EAAE,SAAS,UAAQ;IAgB/D;;;;OAIG;IACH,qBAAqB;IAcrB,SAAS;IAKT;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CAAC,WAAW,EAAE,mBAAmB;IAqFzC;;;;;;OAMG;IACH,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAwBxC,SAAS;IA+HT,wBAAwB,CAAC,CAAC,EAAE,MAAM;IA4FlC,oBAAoB;IAIpB,oBAAoB;IA2BpB,sBAAsB,CAAC,OAAO,EAAE,WAAW;CAO5C"}
1
+ {"version":3,"file":"Stack.d.ts","sourceRoot":"","sources":["../../src/items/Stack.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,6 @@ function _toPrimitive(input, hint) { if (typeof input !== "object" || input ===
6
6
  import $ from 'jquery';
7
7
  import AbstractContentItem, { isComponent } from "./AbstractContentItem.js";
8
8
  import { Header } from "../controls/index.js";
9
- import RowOrColumn from "./RowOrColumn.js";
10
9
  export default class Stack extends AbstractContentItem {
11
10
  constructor(layoutManager, config, parent) {
12
11
  var _cfg$settings, _cfg$settings2, _cfg$labels, _cfg$settings3, _cfg$labels2, _cfg$settings4, _cfg$labels3, _cfg$labels$minimise, _cfg$labels4;
@@ -17,6 +16,7 @@ export default class Stack extends AbstractContentItem {
17
16
  _defineProperty(this, "header", void 0);
18
17
  _defineProperty(this, "parent", void 0);
19
18
  _defineProperty(this, "isStack", true);
19
+ _defineProperty(this, "_dropZones", {});
20
20
  _defineProperty(this, "_dropSegment", null);
21
21
  _defineProperty(this, "_contentAreaDimensions", null);
22
22
  _defineProperty(this, "_dropIndex", void 0);
@@ -189,7 +189,7 @@ export default class Stack extends AbstractContentItem {
189
189
  var isVertical = this._dropSegment === 'top' || this._dropSegment === 'bottom';
190
190
  var isHorizontal = this._dropSegment === 'left' || this._dropSegment === 'right';
191
191
  var insertBefore = this._dropSegment === 'top' || this._dropSegment === 'left';
192
- var hasCorrectParent = this.parent instanceof RowOrColumn && (isVertical && this.parent.isColumn || isHorizontal && this.parent.isRow);
192
+ var hasCorrectParent = isVertical && this.parent.isColumn || isHorizontal && this.parent.isRow;
193
193
  var type = isVertical ? 'column' : 'row';
194
194
  var dimension = isVertical ? 'height' : 'width';
195
195
 
@@ -213,8 +213,6 @@ export default class Stack extends AbstractContentItem {
213
213
  if (hasCorrectParent) {
214
214
  var _this$config$dimensio;
215
215
  var index = this.parent.contentItems.indexOf(this);
216
-
217
- // Should be a `RowOrColumn` if `hasCorrectParent` is true
218
216
  this.parent.addChild(contentItem, insertBefore ? index : index + 1, true);
219
217
  this.config[dimension] = ((_this$config$dimensio = this.config[dimension]) !== null && _this$config$dimensio !== void 0 ? _this$config$dimensio : 0) * 0.5;
220
218
  contentItem.config[dimension] = this.config[dimension];
@@ -224,11 +222,10 @@ export default class Stack extends AbstractContentItem {
224
222
  * to create the appropriate contentItem for them to live in
225
223
  */
226
224
  } else {
227
- var _this$parent;
228
225
  var rowOrColumn = this.layoutManager.createContentItem({
229
- type
226
+ type: type
230
227
  }, this);
231
- (_this$parent = this.parent) === null || _this$parent === void 0 ? void 0 : _this$parent.replaceChild(this, rowOrColumn);
228
+ this.parent.replaceChild(this, rowOrColumn);
232
229
  rowOrColumn.addChild(contentItem, insertBefore ? 0 : undefined, true);
233
230
  rowOrColumn.addChild(this, insertBefore ? undefined : 0, true);
234
231
  this.config[dimension] = 50;