@deephaven/golden-layout 0.19.2-beta.5 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/dist/LayoutManager.d.ts +313 -0
  2. package/dist/LayoutManager.d.ts.map +1 -0
  3. package/dist/LayoutManager.js +468 -450
  4. package/dist/LayoutManager.js.map +1 -1
  5. package/dist/base.d.ts +16 -0
  6. package/dist/base.d.ts.map +1 -0
  7. package/dist/base.js +6 -6
  8. package/dist/base.js.map +1 -1
  9. package/dist/config/Config.d.ts +146 -0
  10. package/dist/config/Config.d.ts.map +1 -0
  11. package/dist/config/{defaultConfig.js → Config.js} +6 -6
  12. package/dist/config/Config.js.map +1 -0
  13. package/dist/config/ItemConfig.d.ts +66 -0
  14. package/dist/config/ItemConfig.d.ts.map +1 -0
  15. package/dist/config/ItemConfig.js +14 -0
  16. package/dist/config/ItemConfig.js.map +1 -0
  17. package/dist/config/index.d.ts +3 -0
  18. package/dist/config/index.d.ts.map +1 -0
  19. package/dist/config/index.js +2 -6
  20. package/dist/config/index.js.map +1 -1
  21. package/dist/container/ItemContainer.d.ts +91 -0
  22. package/dist/container/ItemContainer.d.ts.map +1 -0
  23. package/dist/container/ItemContainer.js +110 -85
  24. package/dist/container/ItemContainer.js.map +1 -1
  25. package/dist/container/index.d.ts +3 -0
  26. package/dist/container/index.d.ts.map +1 -0
  27. package/dist/container/index.js +2 -4
  28. package/dist/container/index.js.map +1 -1
  29. package/dist/controls/BrowserPopout.d.ts +83 -0
  30. package/dist/controls/BrowserPopout.d.ts.map +1 -0
  31. package/dist/controls/BrowserPopout.js +135 -101
  32. package/dist/controls/BrowserPopout.js.map +1 -1
  33. package/dist/controls/DragProxy.d.ts +67 -0
  34. package/dist/controls/DragProxy.d.ts.map +1 -0
  35. package/dist/controls/DragProxy.js +135 -110
  36. package/dist/controls/DragProxy.js.map +1 -1
  37. package/dist/controls/DragSource.d.ts +30 -0
  38. package/dist/controls/DragSource.d.ts.map +1 -0
  39. package/dist/controls/DragSource.js +37 -29
  40. package/dist/controls/DragSource.js.map +1 -1
  41. package/dist/controls/DragSourceFromEvent.d.ts +30 -0
  42. package/dist/controls/DragSourceFromEvent.d.ts.map +1 -0
  43. package/dist/controls/DragSourceFromEvent.js +49 -36
  44. package/dist/controls/DragSourceFromEvent.js.map +1 -1
  45. package/dist/controls/DropTargetIndicator.d.ts +14 -0
  46. package/dist/controls/DropTargetIndicator.d.ts.map +1 -0
  47. package/dist/controls/DropTargetIndicator.js +18 -14
  48. package/dist/controls/DropTargetIndicator.js.map +1 -1
  49. package/dist/controls/Header.d.ts +145 -0
  50. package/dist/controls/Header.d.ts.map +1 -0
  51. package/dist/controls/Header.js +414 -271
  52. package/dist/controls/Header.js.map +1 -1
  53. package/dist/controls/HeaderButton.d.ts +9 -0
  54. package/dist/controls/HeaderButton.d.ts.map +1 -0
  55. package/dist/controls/HeaderButton.js +19 -13
  56. package/dist/controls/HeaderButton.js.map +1 -1
  57. package/dist/controls/Splitter.d.ts +12 -0
  58. package/dist/controls/Splitter.d.ts.map +1 -0
  59. package/dist/controls/Splitter.js +36 -20
  60. package/dist/controls/Splitter.js.map +1 -1
  61. package/dist/controls/Tab.d.ts +91 -0
  62. package/dist/controls/Tab.d.ts.map +1 -0
  63. package/dist/controls/Tab.js +131 -119
  64. package/dist/controls/Tab.js.map +1 -1
  65. package/dist/controls/TransitionIndicator.d.ts +25 -0
  66. package/dist/controls/TransitionIndicator.d.ts.map +1 -0
  67. package/dist/controls/TransitionIndicator.js +53 -39
  68. package/dist/controls/TransitionIndicator.js.map +1 -1
  69. package/dist/controls/index.d.ts +11 -0
  70. package/dist/controls/index.d.ts.map +1 -0
  71. package/dist/controls/index.js +10 -22
  72. package/dist/controls/index.js.map +1 -1
  73. package/dist/errors/ConfigurationError.d.ts +6 -0
  74. package/dist/errors/ConfigurationError.d.ts.map +1 -0
  75. package/dist/errors/ConfigurationError.js +15 -8
  76. package/dist/errors/ConfigurationError.js.map +1 -1
  77. package/dist/errors/index.d.ts +2 -0
  78. package/dist/errors/index.d.ts.map +1 -0
  79. package/dist/errors/index.js +1 -4
  80. package/dist/errors/index.js.map +1 -1
  81. package/dist/index.d.ts +9 -0
  82. package/dist/index.d.ts.map +1 -0
  83. package/dist/index.js +7 -1
  84. package/dist/index.js.map +1 -1
  85. package/dist/items/AbstractContentItem.d.ts +233 -0
  86. package/dist/items/AbstractContentItem.d.ts.map +1 -0
  87. package/dist/items/AbstractContentItem.js +284 -242
  88. package/dist/items/AbstractContentItem.js.map +1 -1
  89. package/dist/items/Component.d.ts +30 -0
  90. package/dist/items/Component.d.ts.map +1 -0
  91. package/dist/items/Component.js +61 -42
  92. package/dist/items/Component.js.map +1 -1
  93. package/dist/items/Root.d.ts +18 -0
  94. package/dist/items/Root.d.ts.map +1 -0
  95. package/dist/items/Root.js +68 -38
  96. package/dist/items/Root.js.map +1 -1
  97. package/dist/items/RowOrColumn.d.ts +157 -0
  98. package/dist/items/RowOrColumn.d.ts.map +1 -0
  99. package/dist/items/RowOrColumn.js +219 -187
  100. package/dist/items/RowOrColumn.js.map +1 -1
  101. package/dist/items/Stack.d.ts +108 -0
  102. package/dist/items/Stack.d.ts.map +1 -0
  103. package/dist/items/Stack.js +218 -151
  104. package/dist/items/Stack.js.map +1 -1
  105. package/dist/items/index.d.ts +8 -0
  106. package/dist/items/index.d.ts.map +1 -0
  107. package/dist/items/index.js +7 -12
  108. package/dist/items/index.js.map +1 -1
  109. package/dist/utils/BubblingEvent.d.ts +8 -0
  110. package/dist/utils/BubblingEvent.d.ts.map +1 -0
  111. package/dist/utils/BubblingEvent.js +18 -9
  112. package/dist/utils/BubblingEvent.js.map +1 -1
  113. package/dist/utils/ConfigMinifier.d.ts +21 -0
  114. package/dist/utils/ConfigMinifier.d.ts.map +1 -0
  115. package/dist/utils/ConfigMinifier.js +121 -121
  116. package/dist/utils/ConfigMinifier.js.map +1 -1
  117. package/dist/utils/DragListener.d.ts +34 -0
  118. package/dist/utils/DragListener.d.ts.map +1 -0
  119. package/dist/utils/DragListener.js +103 -70
  120. package/dist/utils/DragListener.js.map +1 -1
  121. package/dist/utils/EventEmitter.d.ts +59 -0
  122. package/dist/utils/EventEmitter.d.ts.map +1 -0
  123. package/dist/utils/EventEmitter.js +64 -70
  124. package/dist/utils/EventEmitter.js.map +1 -1
  125. package/dist/utils/EventHub.d.ts +55 -0
  126. package/dist/utils/EventHub.d.ts.map +1 -0
  127. package/dist/utils/EventHub.js +83 -105
  128. package/dist/utils/EventHub.js.map +1 -1
  129. package/dist/utils/ReactComponentHandler.d.ts +54 -0
  130. package/dist/utils/ReactComponentHandler.d.ts.map +1 -0
  131. package/dist/utils/ReactComponentHandler.js +58 -56
  132. package/dist/utils/ReactComponentHandler.js.map +1 -1
  133. package/dist/utils/index.d.ts +8 -0
  134. package/dist/utils/index.d.ts.map +1 -0
  135. package/dist/utils/index.js +7 -21
  136. package/dist/utils/index.js.map +1 -1
  137. package/dist/utils/utils.d.ts +25 -0
  138. package/dist/utils/utils.d.ts.map +1 -0
  139. package/dist/utils/utils.js +21 -145
  140. package/dist/utils/utils.js.map +1 -1
  141. package/package.json +9 -5
  142. package/dist/config/ItemDefaultConfig.js +0 -8
  143. package/dist/config/ItemDefaultConfig.js.map +0 -1
  144. package/dist/config/defaultConfig.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Stack.js","names":["$","AbstractContentItem","utils","controls","Stack","layoutManager","config","parent","call","element","_activeContentItem","cfg","_header","show","settings","hasHeaders","popout","showPopoutIcon","labels","maximise","showMaximiseIcon","close","showCloseIcon","minimise","header","copy","content","_dropZones","_dropSegment","_contentAreaDimensions","_dropIndex","isStack","childElementContainer","Header","append","_setupHeaderPosition","_$validateClosability","extend","prototype","setSize","i","headerSize","dimensions","headerHeight","contentWidth","width","_sided","contentHeight","height","contentItems","length","emit","emitBubblingEvent","_$init","initialItem","isInitialised","_attachWheelListener","createTab","_$hide","activeItemIndex","Error","setActiveContentItem","contentItem","indexOf","_$show","getActiveContentItem","activeContentItem","addChild","index","_$normalizeContentItem","callDownwards","removeChild","keepChild","removeTab","Math","max","isClosable","len","_isClosable","_$setClosable","_$destroy","_$onDrop","_resetHeaderDropZone","isVertical","isHorizontal","insertBefore","hasCorrectParent","isColumn","isRow","type","dimension","stack","rowOrColumn","isComponent","createContentItem","replaceChild","undefined","_$highlightDropZone","x","y","segment","area","hoverArea","x1","x2","y1","y2","_highlightHeaderDropZone","_highlightBodyDropZone","_$getArea","is","getArea","headerArea","contentArea","highlightArea","body","left","top","right","bottom","tabsLength","tabs","tabElement","tabRect","headerOffset","offset","dropTargetIndicator","innerHeight","tabsContainer","tabsContainerRect","get","getBoundingClientRect","placeholderRect","tabDropPlaceholder","before","min","after","placeHolderLeft","placeHolderRight","innerWidth","remove","side","toggle","_side","removeClass","addClass","find","headerPosition"],"sources":["../../src/items/Stack.js"],"sourcesContent":["import $ from 'jquery';\nimport AbstractContentItem from './AbstractContentItem.js';\nimport utils from '../utils/index.js';\nimport controls from '../controls/index.js';\n\nconst Stack = function (layoutManager, config, parent) {\n AbstractContentItem.call(this, layoutManager, config, parent);\n\n this.element = $('<div class=\"lm_item lm_stack\"></div>');\n this._activeContentItem = null;\n\n var cfg = layoutManager.config;\n this._header = {\n // defaults' reconstruction from old configuration style\n show: cfg.settings.hasHeaders === true && config.hasHeaders !== false,\n popout: cfg.settings.showPopoutIcon && cfg.labels.popout,\n maximise: cfg.settings.showMaximiseIcon && cfg.labels.maximise,\n close: cfg.settings.showCloseIcon && cfg.labels.close,\n minimise: cfg.labels.minimise,\n };\n\n // load simplified version of header configuration (https://github.com/deepstreamIO/golden-layout/pull/245)\n if (cfg.header) utils.copy(this._header, cfg.header);\n if (config.header)\n // load from stack\n utils.copy(this._header, config.header);\n if (config.content && config.content[0] && config.content[0].header)\n // load from component if stack omitted\n utils.copy(this._header, config.content[0].header);\n\n this._dropZones = {};\n this._dropSegment = null;\n this._contentAreaDimensions = null;\n this._dropIndex = null;\n\n this.isStack = true;\n\n this.childElementContainer = $('<div class=\"lm_items\"></div>');\n this.header = new controls.Header(layoutManager, this);\n\n this.element.append(this.header.element);\n this.element.append(this.childElementContainer);\n this._setupHeaderPosition();\n this._$validateClosability();\n};\n\nutils.extend(Stack, AbstractContentItem);\n\nutils.copy(Stack.prototype, {\n setSize: function () {\n var i,\n headerSize = this._header.show\n ? this.layoutManager.config.dimensions.headerHeight\n : 0,\n contentWidth = this.element.width() - (this._sided ? headerSize : 0),\n contentHeight = this.element.height() - (!this._sided ? headerSize : 0);\n\n this.childElementContainer.width(contentWidth);\n this.childElementContainer.height(contentHeight);\n\n for (i = 0; i < this.contentItems.length; i++) {\n this.contentItems[i].element.width(contentWidth).height(contentHeight);\n }\n this.emit('resize');\n this.emitBubblingEvent('stateChanged');\n },\n\n _$init: function () {\n var i, initialItem;\n\n if (this.isInitialised === true) return;\n\n this.header._attachWheelListener();\n\n AbstractContentItem.prototype._$init.call(this);\n\n for (i = 0; i < this.contentItems.length; i++) {\n this.header.createTab(this.contentItems[i]);\n this.contentItems[i]._$hide();\n }\n\n if (this.contentItems.length > 0) {\n initialItem = this.contentItems[this.config.activeItemIndex || 0];\n\n if (!initialItem) {\n throw new Error('Configured activeItemIndex out of bounds');\n }\n\n this.setActiveContentItem(initialItem);\n }\n },\n\n setActiveContentItem: function (contentItem) {\n if (utils.indexOf(contentItem, this.contentItems) === -1) {\n throw new Error('contentItem is not a child of this stack');\n }\n\n if (this._activeContentItem !== null) {\n this._activeContentItem._$hide();\n }\n\n this._activeContentItem = contentItem;\n this.header.setActiveContentItem(contentItem);\n contentItem._$show();\n this.emit('activeContentItemChanged', contentItem);\n this.layoutManager.emit('activeContentItemChanged', contentItem);\n this.emitBubblingEvent('stateChanged');\n },\n\n getActiveContentItem: function () {\n return this.header.activeContentItem;\n },\n\n addChild: function (contentItem, index) {\n contentItem = this.layoutManager._$normalizeContentItem(contentItem, this);\n AbstractContentItem.prototype.addChild.call(this, contentItem, index);\n this.childElementContainer.append(contentItem.element);\n this.header.createTab(contentItem, index);\n this.setActiveContentItem(contentItem);\n this.callDownwards('setSize');\n this._$validateClosability();\n this.emitBubblingEvent('stateChanged');\n },\n\n removeChild: function (contentItem, keepChild) {\n var index = utils.indexOf(contentItem, this.contentItems);\n AbstractContentItem.prototype.removeChild.call(\n this,\n contentItem,\n keepChild\n );\n this.header.removeTab(contentItem);\n if (this.header.activeContentItem === contentItem) {\n if (this.contentItems.length > 0) {\n this.setActiveContentItem(this.contentItems[Math.max(index - 1, 0)]);\n } else {\n this._activeContentItem = null;\n }\n }\n\n this._$validateClosability();\n this.emitBubblingEvent('stateChanged');\n },\n\n /**\n * Validates that the stack is still closable or not. If a stack is able\n * to close, but has a non closable component added to it, the stack is no\n * longer closable until all components are closable.\n *\n * @returns {void}\n */\n _$validateClosability: function () {\n var isClosable, len, i;\n\n isClosable = this.header._isClosable();\n\n for (i = 0, len = this.contentItems.length; i < len; i++) {\n if (!isClosable) {\n break;\n }\n\n isClosable = this.contentItems[i].config.isClosable;\n }\n\n this.header._$setClosable(isClosable);\n },\n\n _$destroy: function () {\n AbstractContentItem.prototype._$destroy.call(this);\n this.header._$destroy();\n },\n\n /**\n * Ok, this one is going to be the tricky one: The user has dropped {contentItem} onto this stack.\n *\n * It was dropped on either the stacks header or the top, right, bottom or left bit of the content area\n * (which one of those is stored in this._dropSegment). Now, if the user has dropped on the header the case\n * is relatively clear: We add the item to the existing stack... job done (might be good to have\n * tab reordering at some point, but lets not sweat it right now)\n *\n * If the item was dropped on the content part things are a bit more complicated. If it was dropped on either the\n * top or bottom region we need to create a new column and place the items accordingly.\n * Unless, of course if the stack is already within a column... in which case we want\n * to add the newly created item to the existing column...\n * either prepend or append it, depending on wether its top or bottom.\n *\n * Same thing for rows and left / right drop segments... so in total there are 9 things that can potentially happen\n * (left, top, right, bottom) * is child of the right parent (row, column) + header drop\n *\n * @param {lm.item} contentItem\n *\n * @returns {void}\n */\n _$onDrop: function (contentItem) {\n /*\n * The item was dropped on the header area. Just add it as a child of this stack and\n * get the hell out of this logic\n */\n if (this._dropSegment === 'header') {\n this._resetHeaderDropZone();\n this.addChild(contentItem, this._dropIndex);\n return;\n }\n\n /*\n * The stack is empty. Let's just add the element.\n */\n if (this._dropSegment === 'body') {\n this.addChild(contentItem);\n return;\n }\n\n /*\n * The item was dropped on the top-, left-, bottom- or right- part of the content. Let's\n * aggregate some conditions to make the if statements later on more readable\n */\n var isVertical =\n this._dropSegment === 'top' || this._dropSegment === 'bottom',\n isHorizontal =\n this._dropSegment === 'left' || this._dropSegment === 'right',\n insertBefore =\n this._dropSegment === 'top' || this._dropSegment === 'left',\n hasCorrectParent =\n (isVertical && this.parent.isColumn) ||\n (isHorizontal && this.parent.isRow),\n type = isVertical ? 'column' : 'row',\n dimension = isVertical ? 'height' : 'width',\n index,\n stack,\n rowOrColumn;\n\n /*\n * The content item can be either a component or a stack. If it is a component, wrap it into a stack\n */\n if (contentItem.isComponent) {\n stack = this.layoutManager.createContentItem(\n {\n type: 'stack',\n header: contentItem.config.header || {},\n },\n this\n );\n stack._$init();\n stack.addChild(contentItem);\n contentItem = stack;\n }\n\n /*\n * If the item is dropped on top or bottom of a column or left and right of a row, it's already\n * layd out in the correct way. Just add it as a child\n */\n if (hasCorrectParent) {\n index = utils.indexOf(this, this.parent.contentItems);\n this.parent.addChild(contentItem, insertBefore ? index : index + 1, true);\n this.config[dimension] *= 0.5;\n contentItem.config[dimension] = this.config[dimension];\n this.parent.callDownwards('setSize');\n /*\n * This handles items that are dropped on top or bottom of a row or left / right of a column. We need\n * to create the appropriate contentItem for them to live in\n */\n } else {\n type = isVertical ? 'column' : 'row';\n rowOrColumn = this.layoutManager.createContentItem({ type: type }, this);\n this.parent.replaceChild(this, rowOrColumn);\n\n rowOrColumn.addChild(contentItem, insertBefore ? 0 : undefined, true);\n rowOrColumn.addChild(this, insertBefore ? undefined : 0, true);\n\n this.config[dimension] = 50;\n contentItem.config[dimension] = 50;\n rowOrColumn.callDownwards('setSize');\n }\n },\n\n /**\n * If the user hovers above the header part of the stack, indicate drop positions for tabs.\n * otherwise indicate which segment of the body the dragged item would be dropped on\n *\n * @param {Int} x Absolute Screen X\n * @param {Int} y Absolute Screen Y\n *\n * @returns {void}\n */\n _$highlightDropZone: function (x, y) {\n var segment, area;\n\n for (segment in this._contentAreaDimensions) {\n area = this._contentAreaDimensions[segment].hoverArea;\n\n if (area.x1 < x && area.x2 > x && area.y1 < y && area.y2 > y) {\n if (segment === 'header') {\n this._dropSegment = 'header';\n this._highlightHeaderDropZone(x, y);\n } else {\n this._resetHeaderDropZone();\n this._highlightBodyDropZone(segment);\n }\n\n return;\n }\n }\n },\n\n _$getArea: function () {\n if (this.element.is(':visible') === false) {\n return null;\n }\n\n var getArea = AbstractContentItem.prototype._$getArea,\n headerArea = getArea.call(this, this.header.element),\n contentArea = getArea.call(this, this.childElementContainer),\n contentWidth = contentArea.x2 - contentArea.x1,\n contentHeight = contentArea.y2 - contentArea.y1;\n\n this._contentAreaDimensions = {\n header: {\n hoverArea: {\n x1: headerArea.x1,\n y1: headerArea.y1,\n x2: headerArea.x2,\n y2: headerArea.y2,\n },\n highlightArea: {\n x1: headerArea.x1,\n y1: headerArea.y1,\n x2: headerArea.x2,\n y2: headerArea.y2,\n },\n },\n };\n\n /**\n * If this Stack is a parent to rows, columns or other stacks only its\n * header is a valid dropzone.\n */\n if (\n this._activeContentItem &&\n this._activeContentItem.isComponent === false\n ) {\n return headerArea;\n }\n\n /**\n * Highlight the entire body if the stack is empty\n */\n if (this.contentItems.length === 0) {\n this._contentAreaDimensions.body = {\n hoverArea: {\n x1: contentArea.x1,\n y1: contentArea.y1,\n x2: contentArea.x2,\n y2: contentArea.y2,\n },\n highlightArea: {\n x1: contentArea.x1,\n y1: contentArea.y1,\n x2: contentArea.x2,\n y2: contentArea.y2,\n },\n };\n\n return getArea.call(this, this.element);\n }\n\n this._contentAreaDimensions.left = {\n hoverArea: {\n x1: contentArea.x1,\n y1: contentArea.y1,\n x2: contentArea.x1 + contentWidth * 0.25,\n y2: contentArea.y2,\n },\n highlightArea: {\n x1: contentArea.x1,\n y1: contentArea.y1,\n x2: contentArea.x1 + contentWidth * 0.5,\n y2: contentArea.y2,\n },\n };\n\n this._contentAreaDimensions.top = {\n hoverArea: {\n x1: contentArea.x1 + contentWidth * 0.25,\n y1: contentArea.y1,\n x2: contentArea.x1 + contentWidth * 0.75,\n y2: contentArea.y1 + contentHeight * 0.5,\n },\n highlightArea: {\n x1: contentArea.x1,\n y1: contentArea.y1,\n x2: contentArea.x2,\n y2: contentArea.y1 + contentHeight * 0.5,\n },\n };\n\n this._contentAreaDimensions.right = {\n hoverArea: {\n x1: contentArea.x1 + contentWidth * 0.75,\n y1: contentArea.y1,\n x2: contentArea.x2,\n y2: contentArea.y2,\n },\n highlightArea: {\n x1: contentArea.x1 + contentWidth * 0.5,\n y1: contentArea.y1,\n x2: contentArea.x2,\n y2: contentArea.y2,\n },\n };\n\n this._contentAreaDimensions.bottom = {\n hoverArea: {\n x1: contentArea.x1 + contentWidth * 0.25,\n y1: contentArea.y1 + contentHeight * 0.5,\n x2: contentArea.x1 + contentWidth * 0.75,\n y2: contentArea.y2,\n },\n highlightArea: {\n x1: contentArea.x1,\n y1: contentArea.y1 + contentHeight * 0.5,\n x2: contentArea.x2,\n y2: contentArea.y2,\n },\n };\n\n return getArea.call(this, this.element);\n },\n\n _highlightHeaderDropZone: function (x) {\n var tabsLength = this.header.tabs.length;\n var tabElement = null;\n var tabRect = null;\n\n // I've omitted code for side edge tabs here\n // illumon doesn't need it, will slowly pull that code out elsewhere too\n\n // Empty stack\n if (tabsLength === 0) {\n var headerOffset = this.header.element.offset();\n\n // we don't have a placeholder to measure in the dom, lets just cheat and make it 100px.\n this.layoutManager.dropTargetIndicator.highlightArea({\n x1: headerOffset.left,\n x2: headerOffset.left + 100,\n y1: this.header.element.offset().top,\n y2:\n this.header.element.offset().top + this.header.element.innerHeight(),\n });\n\n return;\n }\n\n var tabsContainer = this.header.tabsContainer;\n var tabsContainerRect = tabsContainer.get(0).getBoundingClientRect();\n var placeholderRect = this.layoutManager.tabDropPlaceholder\n .get(0)\n .getBoundingClientRect();\n\n if (x < tabsContainerRect.left) {\n // is over left tab controls button\n // move x to a new point to inside left edge of container\n x = tabsContainerRect.left + 1;\n } else if (x > tabsContainerRect.right) {\n // is over right tab controls button\n // move x to a new point to inside right edge of container\n x = tabsContainerRect.right - 1;\n }\n\n // if its not inide a placeholder,\n if (!(placeholderRect.left < x && x < placeholderRect.right)) {\n // which tab is it over ...\n for (var i = 0; i < tabsLength; i++) {\n tabElement = this.header.tabs[i].element;\n tabRect = tabElement.get(0).getBoundingClientRect();\n if (tabRect.left < x && x < tabRect.right) {\n this._dropIndex = i;\n break;\n }\n }\n\n // we have tabRect at this x,y from the loop above\n if (tabElement && x < tabRect.left + tabRect.width * 0.5) {\n // mostly before an element, insert placeholder before\n tabElement.before(this.layoutManager.tabDropPlaceholder);\n } else if (tabElement) {\n // x is likely after the lhe last item, position after and increase drop index\n this._dropIndex = Math.min(this._dropIndex + 1, tabsLength);\n tabElement.after(this.layoutManager.tabDropPlaceholder);\n }\n }\n\n var placeHolderLeft = this.layoutManager.tabDropPlaceholder.offset().left;\n placeHolderLeft = Math.max(\n placeHolderLeft,\n this.header.tabsContainer.offset().left\n );\n var placeHolderRight =\n placeHolderLeft + this.layoutManager.tabDropPlaceholder.width();\n placeHolderRight = Math.min(\n placeHolderRight,\n this.header.tabsContainer.offset().left +\n this.header.tabsContainer.innerWidth()\n );\n this.layoutManager.dropTargetIndicator.highlightArea({\n x1: placeHolderLeft,\n x2: placeHolderRight,\n y1: this.header.element.offset().top,\n y2: this.header.element.offset().top + this.header.element.innerHeight(),\n });\n },\n\n _resetHeaderDropZone: function () {\n this.layoutManager.tabDropPlaceholder.remove();\n },\n\n _setupHeaderPosition: function () {\n var side =\n ['right', 'left', 'bottom'].indexOf(this._header.show) >= 0 &&\n this._header.show;\n this.header.element.toggle(!!this._header.show);\n this._side = side;\n this._sided = ['right', 'left'].indexOf(this._side) >= 0;\n this.element.removeClass('lm_left lm_right lm_bottom');\n if (this._side) this.element.addClass('lm_' + this._side);\n if (this.element.find('.lm_header').length && this.childElementContainer) {\n var headerPosition =\n ['right', 'bottom'].indexOf(this._side) >= 0 ? 'before' : 'after';\n this.header.element[headerPosition](this.childElementContainer);\n this.callDownwards('setSize');\n }\n },\n\n _highlightBodyDropZone: function (segment) {\n var highlightArea = this._contentAreaDimensions[segment].highlightArea;\n this.layoutManager.dropTargetIndicator.highlightArea(highlightArea);\n this._dropSegment = segment;\n },\n});\n\nexport default Stack;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Stack.js","names":["$","AbstractContentItem","isComponent","Header","Stack","constructor","layoutManager","config","parent","cfg","_side","_header","show","settings","hasHeaders","popout","showPopoutIcon","labels","undefined","maximise","showMaximiseIcon","close","showCloseIcon","minimise","header","content","element","append","childElementContainer","_setupHeaderPosition","_$validateClosability","setSize","i","headerSize","dimensions","headerHeight","contentWidth","width","_sided","contentHeight","height","contentItems","length","emit","emitBubblingEvent","_$init","isInitialised","_attachWheelListener","createTab","_$hide","initialItem","activeItemIndex","Error","setActiveContentItem","contentItem","indexOf","_activeContentItem","_$show","getActiveContentItem","activeContentItem","addChild","index","_$normalizeContentItem","callDownwards","removeChild","keepChild","removeTab","Math","max","isClosable","_isClosable","len","_$setClosable","_$destroy","prototype","call","_$onDrop","_dropSegment","_resetHeaderDropZone","_dropIndex","isVertical","isHorizontal","insertBefore","hasCorrectParent","isColumn","isRow","type","dimension","stack","createContentItem","rowOrColumn","replaceChild","_$highlightDropZone","x","y","_contentAreaDimensions","segment","Object","entries","area","hoverArea","x1","x2","y1","y2","_highlightHeaderDropZone","_highlightBodyDropZone","_$getArea","is","headerArea","contentArea","highlightArea","body","left","top","right","bottom","tabsLength","tabs","headerOffset","offset","dropTargetIndicator","innerHeight","tabsContainer","tabsContainerRect","get","getBoundingClientRect","placeholderRect","tabDropPlaceholder","tabElement","tabRect","before","min","after","placeHolderLeft","placeHolderRight","innerWidth","remove","side","some","elem","toggle","toString","removeClass","addClass","find","headerPosition"],"sources":["../../src/items/Stack.ts"],"sourcesContent":["import $ from 'jquery';\nimport AbstractContentItem, { isComponent } from './AbstractContentItem';\nimport type LayoutManager from '../LayoutManager';\nimport type { ComponentConfig, ItemConfigType } from '../config';\nimport { Header } from '../controls';\nimport type RowOrColumn from './RowOrColumn';\n\ninterface HoverDimensions {\n hoverArea: {\n x1: number;\n y1: number;\n x2: number;\n y2: number;\n };\n highlightArea: {\n x1: number;\n y1: number;\n x2: number;\n y2: number;\n };\n}\n\ntype ContentAreaDimensions = {\n header: HoverDimensions;\n body?: HoverDimensions;\n top?: HoverDimensions;\n bottom?: HoverDimensions;\n left?: HoverDimensions;\n right?: HoverDimensions;\n};\n\ntype BodySegment = keyof ContentAreaDimensions;\n\nexport interface StackHeaderConfig {\n show?: boolean | 'top' | 'left' | 'right' | 'bottom';\n popout?: string;\n maximise?: string;\n close?: string;\n minimise?: string;\n}\n\nexport default class Stack extends AbstractContentItem {\n private _activeContentItem: AbstractContentItem | null = null;\n\n _header: StackHeaderConfig;\n\n childElementContainer = $('<div class=\"lm_items\"></div>');\n header: Header;\n parent: RowOrColumn;\n\n isStack = true;\n\n private _dropZones = {};\n private _dropSegment: string | null = null;\n _contentAreaDimensions: ContentAreaDimensions | null = null;\n private _dropIndex: number | undefined;\n _side: boolean | 'top' | 'left' | 'right' | 'bottom';\n _sided: boolean = false;\n\n config: ComponentConfig & {\n activeItemIndex?: number;\n };\n\n constructor(\n layoutManager: LayoutManager & {\n config: LayoutManager['config'] & {\n header?: StackHeaderConfig;\n };\n },\n config: ComponentConfig & {\n header?: StackHeaderConfig;\n hasHeaders?: boolean;\n },\n parent: RowOrColumn\n ) {\n super(\n layoutManager,\n config,\n parent,\n $('<div class=\"lm_item lm_stack\"></div>')\n );\n this.parent = parent;\n this.config = config;\n\n const cfg = layoutManager.config;\n this._side = false;\n this._header = {\n // defaults' reconstruction from old configuration style\n show: cfg.settings?.hasHeaders && config.hasHeaders !== false,\n popout: cfg.settings?.showPopoutIcon ? cfg.labels?.popout : undefined,\n maximise: cfg.settings?.showMaximiseIcon\n ? cfg.labels?.maximise\n : undefined,\n close: cfg.settings?.showCloseIcon ? cfg.labels?.close : undefined,\n minimise: cfg.labels?.minimise ?? undefined,\n };\n\n // load simplified version of header configuration (https://github.com/deepstreamIO/golden-layout/pull/245)\n if (cfg.header) this._header = { ...this._header, ...cfg.header };\n if (config.header)\n // load from stack\n this._header = { ...this._header, ...config.header };\n if (config.content && config.content[0] && config.content[0].header)\n // load from component if stack omitted\n this._header = { ...this._header, ...config.content[0].header };\n\n this.header = new Header(layoutManager, this);\n\n this.element.append(this.header.element);\n this.element.append(this.childElementContainer);\n this._setupHeaderPosition();\n this._$validateClosability();\n }\n\n setSize() {\n var i,\n headerSize = this._header.show\n ? this.layoutManager.config.dimensions?.headerHeight ?? 0\n : 0,\n contentWidth =\n (this.element.width() ?? 0) - (this._sided ? headerSize : 0),\n contentHeight =\n (this.element.height() ?? 0) - (!this._sided ? headerSize : 0);\n\n this.childElementContainer.width(contentWidth);\n this.childElementContainer.height(contentHeight);\n\n for (i = 0; i < this.contentItems.length; i++) {\n this.contentItems[i].element.width(contentWidth).height(contentHeight);\n }\n this.emit('resize');\n this.emitBubblingEvent('stateChanged');\n }\n\n _$init() {\n if (this.isInitialised === true) return;\n\n this.header._attachWheelListener();\n\n super._$init();\n\n for (let i = 0; i < this.contentItems.length; i++) {\n this.header.createTab(this.contentItems[i]);\n this.contentItems[i]._$hide();\n }\n\n if (this.contentItems.length > 0) {\n const initialItem = this.contentItems[this.config.activeItemIndex || 0];\n\n if (!initialItem) {\n throw new Error('Configured activeItemIndex out of bounds');\n }\n\n this.setActiveContentItem(initialItem);\n }\n }\n\n setActiveContentItem(contentItem: AbstractContentItem) {\n if (this.contentItems.indexOf(contentItem) === -1) {\n throw new Error('contentItem is not a child of this stack');\n }\n\n if (this._activeContentItem !== null) {\n this._activeContentItem._$hide();\n }\n\n this._activeContentItem = contentItem;\n this.header.setActiveContentItem(contentItem);\n contentItem._$show();\n this.emit('activeContentItemChanged', contentItem);\n this.layoutManager.emit('activeContentItemChanged', contentItem);\n this.emitBubblingEvent('stateChanged');\n }\n\n getActiveContentItem() {\n return this.header.activeContentItem;\n }\n\n addChild(contentItem: AbstractContentItem | ItemConfigType, index?: number) {\n contentItem = this.layoutManager._$normalizeContentItem(contentItem, this);\n super.addChild(contentItem, index);\n this.childElementContainer.append(contentItem.element);\n this.header.createTab(contentItem, index);\n this.setActiveContentItem(contentItem);\n this.callDownwards('setSize');\n this._$validateClosability();\n this.emitBubblingEvent('stateChanged');\n }\n\n removeChild(contentItem: AbstractContentItem, keepChild = false) {\n var index = this.contentItems.indexOf(contentItem);\n super.removeChild(contentItem, keepChild);\n this.header.removeTab(contentItem);\n if (this.header.activeContentItem === contentItem) {\n if (this.contentItems.length > 0) {\n this.setActiveContentItem(this.contentItems[Math.max(index - 1, 0)]);\n } else {\n this._activeContentItem = null;\n }\n }\n\n this._$validateClosability();\n this.emitBubblingEvent('stateChanged');\n }\n\n /**\n * Validates that the stack is still closable or not. If a stack is able\n * to close, but has a non closable component added to it, the stack is no\n * longer closable until all components are closable.\n */\n _$validateClosability() {\n let isClosable = this.header._isClosable();\n\n for (let i = 0, len = this.contentItems.length; i < len; i++) {\n if (!isClosable) {\n break;\n }\n\n isClosable = this.contentItems[i].config.isClosable ?? false;\n }\n\n this.header._$setClosable(isClosable);\n }\n\n _$destroy() {\n AbstractContentItem.prototype._$destroy.call(this);\n this.header._$destroy();\n }\n\n /**\n * Ok, this one is going to be the tricky one: The user has dropped {contentItem} onto this stack.\n *\n * It was dropped on either the stacks header or the top, right, bottom or left bit of the content area\n * (which one of those is stored in this._dropSegment). Now, if the user has dropped on the header the case\n * is relatively clear: We add the item to the existing stack... job done (might be good to have\n * tab reordering at some point, but lets not sweat it right now)\n *\n * If the item was dropped on the content part things are a bit more complicated. If it was dropped on either the\n * top or bottom region we need to create a new column and place the items accordingly.\n * Unless, of course if the stack is already within a column... in which case we want\n * to add the newly created item to the existing column...\n * either prepend or append it, depending on wether its top or bottom.\n *\n * Same thing for rows and left / right drop segments... so in total there are 9 things that can potentially happen\n * (left, top, right, bottom) * is child of the right parent (row, column) + header drop\n *\n * @param contentItem\n */\n _$onDrop(contentItem: AbstractContentItem) {\n /*\n * The item was dropped on the header area. Just add it as a child of this stack and\n * get the hell out of this logic\n */\n if (this._dropSegment === 'header') {\n this._resetHeaderDropZone();\n this.addChild(contentItem, this._dropIndex);\n return;\n }\n\n /*\n * The stack is empty. Let's just add the element.\n */\n if (this._dropSegment === 'body') {\n this.addChild(contentItem);\n return;\n }\n\n /*\n * The item was dropped on the top-, left-, bottom- or right- part of the content. Let's\n * aggregate some conditions to make the if statements later on more readable\n */\n const isVertical =\n this._dropSegment === 'top' || this._dropSegment === 'bottom';\n const isHorizontal =\n this._dropSegment === 'left' || this._dropSegment === 'right';\n const insertBefore =\n this._dropSegment === 'top' || this._dropSegment === 'left';\n const hasCorrectParent =\n (isVertical && this.parent.isColumn) ||\n (isHorizontal && this.parent.isRow);\n const type = isVertical ? 'column' : 'row';\n const dimension = isVertical ? 'height' : 'width';\n\n /*\n * The content item can be either a component or a stack. If it is a component, wrap it into a stack\n */\n if (isComponent(contentItem)) {\n const 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 /*\n * If the item is dropped on top or bottom of a column or left and right of a row, it's already\n * layd out in the correct way. Just add it as a child\n */\n if (hasCorrectParent) {\n const index = this.parent.contentItems.indexOf(this);\n this.parent.addChild(contentItem, insertBefore ? index : index + 1, true);\n this.config[dimension] = (this.config[dimension] ?? 0) * 0.5;\n contentItem.config[dimension] = this.config[dimension];\n this.parent.callDownwards('setSize');\n /*\n * This handles items that are dropped on top or bottom of a row or left / right of a column. We need\n * to create the appropriate contentItem for them to live in\n */\n } else {\n const rowOrColumn = this.layoutManager.createContentItem(\n { type: type },\n this\n ) as RowOrColumn;\n this.parent.replaceChild(this, rowOrColumn);\n\n rowOrColumn.addChild(contentItem, insertBefore ? 0 : undefined, true);\n rowOrColumn.addChild(this, insertBefore ? undefined : 0, true);\n\n this.config[dimension] = 50;\n contentItem.config[dimension] = 50;\n rowOrColumn.callDownwards('setSize');\n }\n }\n\n /**\n * If the user hovers above the header part of the stack, indicate drop positions for tabs.\n * otherwise indicate which segment of the body the dragged item would be dropped on\n *\n * @param x Absolute Screen X\n * @param y Absolute Screen Y\n */\n _$highlightDropZone(x: number, y: number) {\n if (!this._contentAreaDimensions) {\n return;\n }\n\n for (let [segment, dimensions] of Object.entries(\n this._contentAreaDimensions\n ) as [BodySegment, HoverDimensions][]) {\n const area = dimensions.hoverArea;\n\n if (area.x1 < x && area.x2 > x && area.y1 < y && area.y2 > y) {\n if (segment === 'header') {\n this._dropSegment = 'header';\n this._highlightHeaderDropZone(x);\n } else {\n this._resetHeaderDropZone();\n this._highlightBodyDropZone(segment);\n }\n\n return;\n }\n }\n }\n\n _$getArea() {\n if (this.element.is(':visible') === false) {\n return null;\n }\n\n const headerArea = super._$getArea(this.header.element);\n const contentArea = super._$getArea(this.childElementContainer);\n if (headerArea == null || contentArea == null) {\n return null;\n }\n\n const contentWidth = contentArea.x2 - contentArea.x1;\n const contentHeight = contentArea.y2 - contentArea.y1;\n\n this._contentAreaDimensions = {\n header: {\n hoverArea: {\n x1: headerArea.x1,\n y1: headerArea.y1,\n x2: headerArea.x2,\n y2: headerArea.y2,\n },\n highlightArea: {\n x1: headerArea.x1,\n y1: headerArea.y1,\n x2: headerArea.x2,\n y2: headerArea.y2,\n },\n },\n };\n\n /**\n * If this Stack is a parent to rows, columns or other stacks only its\n * header is a valid dropzone.\n */\n if (\n this._activeContentItem &&\n this._activeContentItem.isComponent === false\n ) {\n return headerArea;\n }\n\n /**\n * Highlight the entire body if the stack is empty\n */\n if (this.contentItems.length === 0) {\n this._contentAreaDimensions.body = {\n hoverArea: {\n x1: contentArea.x1,\n y1: contentArea.y1,\n x2: contentArea.x2,\n y2: contentArea.y2,\n },\n highlightArea: {\n x1: contentArea.x1,\n y1: contentArea.y1,\n x2: contentArea.x2,\n y2: contentArea.y2,\n },\n };\n\n return super._$getArea(this.element);\n }\n\n this._contentAreaDimensions.left = {\n hoverArea: {\n x1: contentArea.x1,\n y1: contentArea.y1,\n x2: contentArea.x1 + contentWidth * 0.25,\n y2: contentArea.y2,\n },\n highlightArea: {\n x1: contentArea.x1,\n y1: contentArea.y1,\n x2: contentArea.x1 + contentWidth * 0.5,\n y2: contentArea.y2,\n },\n };\n\n this._contentAreaDimensions.top = {\n hoverArea: {\n x1: contentArea.x1 + contentWidth * 0.25,\n y1: contentArea.y1,\n x2: contentArea.x1 + contentWidth * 0.75,\n y2: contentArea.y1 + contentHeight * 0.5,\n },\n highlightArea: {\n x1: contentArea.x1,\n y1: contentArea.y1,\n x2: contentArea.x2,\n y2: contentArea.y1 + contentHeight * 0.5,\n },\n };\n\n this._contentAreaDimensions.right = {\n hoverArea: {\n x1: contentArea.x1 + contentWidth * 0.75,\n y1: contentArea.y1,\n x2: contentArea.x2,\n y2: contentArea.y2,\n },\n highlightArea: {\n x1: contentArea.x1 + contentWidth * 0.5,\n y1: contentArea.y1,\n x2: contentArea.x2,\n y2: contentArea.y2,\n },\n };\n\n this._contentAreaDimensions.bottom = {\n hoverArea: {\n x1: contentArea.x1 + contentWidth * 0.25,\n y1: contentArea.y1 + contentHeight * 0.5,\n x2: contentArea.x1 + contentWidth * 0.75,\n y2: contentArea.y2,\n },\n highlightArea: {\n x1: contentArea.x1,\n y1: contentArea.y1 + contentHeight * 0.5,\n x2: contentArea.x2,\n y2: contentArea.y2,\n },\n };\n\n return super._$getArea(this.element);\n }\n\n _highlightHeaderDropZone(x: number) {\n const tabsLength = this.header.tabs.length;\n\n // I've omitted code for side edge tabs here\n // illumon doesn't need it, will slowly pull that code out elsewhere too\n\n // Empty stack\n if (tabsLength === 0) {\n const headerOffset = this.header.element.offset();\n\n // we don't have a placeholder to measure in the dom, lets just cheat and make it 100px.\n this.layoutManager.dropTargetIndicator?.highlightArea({\n x1: headerOffset?.left ?? 0,\n x2: (headerOffset?.left ?? 0) + 100,\n y1: this.header.element.offset()?.top ?? 0,\n y2:\n (this.header.element.offset()?.top ?? 0) +\n (this.header.element.innerHeight() ?? 0),\n });\n\n return;\n }\n\n const tabsContainer = this.header.tabsContainer;\n const tabsContainerRect = tabsContainer.get(0)?.getBoundingClientRect();\n const placeholderRect = this.layoutManager.tabDropPlaceholder\n .get(0)\n ?.getBoundingClientRect();\n\n if (!tabsContainerRect || !placeholderRect) {\n return;\n }\n\n if (x < tabsContainerRect.left) {\n // is over left tab controls button\n // move x to a new point to inside left edge of container\n x = tabsContainerRect.left + 1;\n } else if (x > tabsContainerRect.right) {\n // is over right tab controls button\n // move x to a new point to inside right edge of container\n x = tabsContainerRect.right - 1;\n }\n\n let tabElement: JQuery<HTMLElement> | undefined;\n let tabRect: DOMRect | undefined;\n\n // if its not inide a placeholder,\n if (!(placeholderRect.left < x && x < placeholderRect.right)) {\n // which tab is it over ...\n for (var i = 0; i < tabsLength; i++) {\n tabElement = this.header.tabs[i].element;\n tabRect = tabElement.get(0)?.getBoundingClientRect();\n if (tabRect && tabRect.left < x && x < tabRect.right) {\n this._dropIndex = i;\n break;\n }\n }\n\n // we have tabRect at this x,y from the loop above\n if (tabElement && tabRect && x < tabRect.left + tabRect.width * 0.5) {\n // mostly before an element, insert placeholder before\n tabElement.before(this.layoutManager.tabDropPlaceholder);\n } else if (tabElement) {\n // x is likely after the lhe last item, position after and increase drop index\n this._dropIndex = Math.min((this._dropIndex ?? 0) + 1, tabsLength);\n tabElement.after(this.layoutManager.tabDropPlaceholder);\n }\n }\n\n let placeHolderLeft =\n this.layoutManager.tabDropPlaceholder.offset()?.left ?? 0;\n placeHolderLeft = Math.max(\n placeHolderLeft,\n this.header.tabsContainer.offset()?.left ?? 0\n );\n var placeHolderRight =\n placeHolderLeft + (this.layoutManager.tabDropPlaceholder.width() ?? 0);\n placeHolderRight = Math.min(\n placeHolderRight,\n (this.header.tabsContainer.offset()?.left ?? 0) +\n (this.header.tabsContainer.innerWidth() ?? 0)\n );\n this.layoutManager.dropTargetIndicator?.highlightArea({\n x1: placeHolderLeft,\n x2: placeHolderRight,\n y1: this.header.element.offset()?.top ?? 0,\n y2:\n (this.header.element.offset()?.top ?? 0) +\n (this.header.element.innerHeight() ?? 0),\n });\n }\n\n _resetHeaderDropZone() {\n this.layoutManager.tabDropPlaceholder.remove();\n }\n\n _setupHeaderPosition() {\n const side = ['right', 'left', 'bottom'].some(\n elem => elem === this._header.show\n )\n ? this._header.show\n : undefined;\n\n if (!side) {\n return;\n }\n\n this.header.element.toggle(!!this._header.show);\n this._side = side;\n this._sided = ['right', 'left'].indexOf(this._side.toString()) >= 0;\n this.element.removeClass('lm_left lm_right lm_bottom');\n if (this._side) this.element.addClass('lm_' + this._side);\n if (this.element.find('.lm_header').length && this.childElementContainer) {\n const headerPosition =\n ['right', 'bottom'].indexOf(this._side.toString()) >= 0\n ? 'before'\n : 'after';\n this.header.element[headerPosition](this.childElementContainer);\n this.callDownwards('setSize');\n }\n }\n\n _highlightBodyDropZone(segment: BodySegment) {\n const highlightArea = this._contentAreaDimensions?.[segment]?.highlightArea;\n if (highlightArea) {\n this.layoutManager.dropTargetIndicator?.highlightArea(highlightArea);\n }\n this._dropSegment = segment;\n }\n}\n"],"mappings":";;;;;;AAAA,OAAOA,CAAP,MAAc,QAAd;OACOC,mB,IAAuBC,W;SAGrBC,M;AAqCT,eAAe,MAAMC,KAAN,SAAoBH,mBAApB,CAAwC;EAsBrDI,WAAW,CACTC,aADS,EAMTC,MANS,EAUTC,MAVS,EAWT;IAAA;;IACA,MACEF,aADF,EAEEC,MAFF,EAGEC,MAHF,EAIER,CAAC,CAAC,sCAAD,CAJH;;IADA,4CAhCuD,IAgCvD;;IAAA;;IAAA,+CA5BsBA,CAAC,CAAC,8BAAD,CA4BvB;;IAAA;;IAAA;;IAAA,iCAxBQ,IAwBR;;IAAA,oCAtBmB,EAsBnB;;IAAA,sCArBoC,IAqBpC;;IAAA,gDApBqD,IAoBrD;;IAAA;;IAAA;;IAAA,gCAjBgB,KAiBhB;;IAAA;;IAOA,KAAKQ,MAAL,GAAcA,MAAd;IACA,KAAKD,MAAL,GAAcA,MAAd;IAEA,IAAME,GAAG,GAAGH,aAAa,CAACC,MAA1B;IACA,KAAKG,KAAL,GAAa,KAAb;IACA,KAAKC,OAAL,GAAe;MACb;MACAC,IAAI,EAAE,kBAAAH,GAAG,CAACI,QAAJ,gEAAcC,UAAd,KAA4BP,MAAM,CAACO,UAAP,KAAsB,KAF3C;MAGbC,MAAM,EAAE,kBAAAN,GAAG,CAACI,QAAJ,0DAAcG,cAAd,kBAA+BP,GAAG,CAACQ,MAAnC,gDAA+B,YAAYF,MAA3C,GAAoDG,SAH/C;MAIbC,QAAQ,EAAE,kBAAAV,GAAG,CAACI,QAAJ,0DAAcO,gBAAd,mBACNX,GAAG,CAACQ,MADE,iDACN,aAAYE,QADN,GAEND,SANS;MAObG,KAAK,EAAE,kBAAAZ,GAAG,CAACI,QAAJ,0DAAcS,aAAd,mBAA8Bb,GAAG,CAACQ,MAAlC,iDAA8B,aAAYI,KAA1C,GAAkDH,SAP5C;MAQbK,QAAQ,0CAAEd,GAAG,CAACQ,MAAN,iDAAE,aAAYM,QAAd,uEAA0BL;IARrB,CAAf,CAZA,CAuBA;;IACA,IAAIT,GAAG,CAACe,MAAR,EAAgB,KAAKb,OAAL,mCAAoB,KAAKA,OAAzB,GAAqCF,GAAG,CAACe,MAAzC;IAChB,IAAIjB,MAAM,CAACiB,MAAX,EACE;MACA,KAAKb,OAAL,mCAAoB,KAAKA,OAAzB,GAAqCJ,MAAM,CAACiB,MAA5C;IACF,IAAIjB,MAAM,CAACkB,OAAP,IAAkBlB,MAAM,CAACkB,OAAP,CAAe,CAAf,CAAlB,IAAuClB,MAAM,CAACkB,OAAP,CAAe,CAAf,EAAkBD,MAA7D,EACE;MACA,KAAKb,OAAL,mCAAoB,KAAKA,OAAzB,GAAqCJ,MAAM,CAACkB,OAAP,CAAe,CAAf,EAAkBD,MAAvD;IAEF,KAAKA,MAAL,GAAc,IAAIrB,MAAJ,CAAWG,aAAX,EAA0B,IAA1B,CAAd;IAEA,KAAKoB,OAAL,CAAaC,MAAb,CAAoB,KAAKH,MAAL,CAAYE,OAAhC;IACA,KAAKA,OAAL,CAAaC,MAAb,CAAoB,KAAKC,qBAAzB;;IACA,KAAKC,oBAAL;;IACA,KAAKC,qBAAL;EACD;;EAEDC,OAAO,GAAG;IAAA;;IACR,IAAIC,CAAJ;IAAA,IACEC,UAAU,GAAG,KAAKtB,OAAL,CAAaC,IAAb,sDACT,KAAKN,aAAL,CAAmBC,MAAnB,CAA0B2B,UADjB,2DACT,uBAAsCC,YAD7B,yEAC6C,CAD7C,GAET,CAHN;IAAA,IAIEC,YAAY,GACV,wBAAC,KAAKV,OAAL,CAAaW,KAAb,EAAD,qEAAyB,CAAzB,KAA+B,KAAKC,MAAL,GAAcL,UAAd,GAA2B,CAA1D,CALJ;IAAA,IAMEM,aAAa,GACX,yBAAC,KAAKb,OAAL,CAAac,MAAb,EAAD,uEAA0B,CAA1B,KAAgC,CAAC,KAAKF,MAAN,GAAeL,UAAf,GAA4B,CAA5D,CAPJ;IASA,KAAKL,qBAAL,CAA2BS,KAA3B,CAAiCD,YAAjC;IACA,KAAKR,qBAAL,CAA2BY,MAA3B,CAAkCD,aAAlC;;IAEA,KAAKP,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,KAAKS,YAAL,CAAkBC,MAAlC,EAA0CV,CAAC,EAA3C,EAA+C;MAC7C,KAAKS,YAAL,CAAkBT,CAAlB,EAAqBN,OAArB,CAA6BW,KAA7B,CAAmCD,YAAnC,EAAiDI,MAAjD,CAAwDD,aAAxD;IACD;;IACD,KAAKI,IAAL,CAAU,QAAV;IACA,KAAKC,iBAAL,CAAuB,cAAvB;EACD;;EAEDC,MAAM,GAAG;IACP,IAAI,KAAKC,aAAL,KAAuB,IAA3B,EAAiC;;IAEjC,KAAKtB,MAAL,CAAYuB,oBAAZ;;IAEA,MAAMF,MAAN;;IAEA,KAAK,IAAIb,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKS,YAAL,CAAkBC,MAAtC,EAA8CV,CAAC,EAA/C,EAAmD;MACjD,KAAKR,MAAL,CAAYwB,SAAZ,CAAsB,KAAKP,YAAL,CAAkBT,CAAlB,CAAtB;;MACA,KAAKS,YAAL,CAAkBT,CAAlB,EAAqBiB,MAArB;IACD;;IAED,IAAI,KAAKR,YAAL,CAAkBC,MAAlB,GAA2B,CAA/B,EAAkC;MAChC,IAAMQ,WAAW,GAAG,KAAKT,YAAL,CAAkB,KAAKlC,MAAL,CAAY4C,eAAZ,IAA+B,CAAjD,CAApB;;MAEA,IAAI,CAACD,WAAL,EAAkB;QAChB,MAAM,IAAIE,KAAJ,CAAU,0CAAV,CAAN;MACD;;MAED,KAAKC,oBAAL,CAA0BH,WAA1B;IACD;EACF;;EAEDG,oBAAoB,CAACC,WAAD,EAAmC;IACrD,IAAI,KAAKb,YAAL,CAAkBc,OAAlB,CAA0BD,WAA1B,MAA2C,CAAC,CAAhD,EAAmD;MACjD,MAAM,IAAIF,KAAJ,CAAU,0CAAV,CAAN;IACD;;IAED,IAAI,KAAKI,kBAAL,KAA4B,IAAhC,EAAsC;MACpC,KAAKA,kBAAL,CAAwBP,MAAxB;IACD;;IAED,KAAKO,kBAAL,GAA0BF,WAA1B;IACA,KAAK9B,MAAL,CAAY6B,oBAAZ,CAAiCC,WAAjC;;IACAA,WAAW,CAACG,MAAZ;;IACA,KAAKd,IAAL,CAAU,0BAAV,EAAsCW,WAAtC;IACA,KAAKhD,aAAL,CAAmBqC,IAAnB,CAAwB,0BAAxB,EAAoDW,WAApD;IACA,KAAKV,iBAAL,CAAuB,cAAvB;EACD;;EAEDc,oBAAoB,GAAG;IACrB,OAAO,KAAKlC,MAAL,CAAYmC,iBAAnB;EACD;;EAEDC,QAAQ,CAACN,WAAD,EAAoDO,KAApD,EAAoE;IAC1EP,WAAW,GAAG,KAAKhD,aAAL,CAAmBwD,sBAAnB,CAA0CR,WAA1C,EAAuD,IAAvD,CAAd;IACA,MAAMM,QAAN,CAAeN,WAAf,EAA4BO,KAA5B;IACA,KAAKjC,qBAAL,CAA2BD,MAA3B,CAAkC2B,WAAW,CAAC5B,OAA9C;IACA,KAAKF,MAAL,CAAYwB,SAAZ,CAAsBM,WAAtB,EAAmCO,KAAnC;IACA,KAAKR,oBAAL,CAA0BC,WAA1B;IACA,KAAKS,aAAL,CAAmB,SAAnB;;IACA,KAAKjC,qBAAL;;IACA,KAAKc,iBAAL,CAAuB,cAAvB;EACD;;EAEDoB,WAAW,CAACV,WAAD,EAAsD;IAAA,IAAnBW,SAAmB,uEAAP,KAAO;IAC/D,IAAIJ,KAAK,GAAG,KAAKpB,YAAL,CAAkBc,OAAlB,CAA0BD,WAA1B,CAAZ;IACA,MAAMU,WAAN,CAAkBV,WAAlB,EAA+BW,SAA/B;IACA,KAAKzC,MAAL,CAAY0C,SAAZ,CAAsBZ,WAAtB;;IACA,IAAI,KAAK9B,MAAL,CAAYmC,iBAAZ,KAAkCL,WAAtC,EAAmD;MACjD,IAAI,KAAKb,YAAL,CAAkBC,MAAlB,GAA2B,CAA/B,EAAkC;QAChC,KAAKW,oBAAL,CAA0B,KAAKZ,YAAL,CAAkB0B,IAAI,CAACC,GAAL,CAASP,KAAK,GAAG,CAAjB,EAAoB,CAApB,CAAlB,CAA1B;MACD,CAFD,MAEO;QACL,KAAKL,kBAAL,GAA0B,IAA1B;MACD;IACF;;IAED,KAAK1B,qBAAL;;IACA,KAAKc,iBAAL,CAAuB,cAAvB;EACD;EAED;AACF;AACA;AACA;AACA;;;EACEd,qBAAqB,GAAG;IACtB,IAAIuC,UAAU,GAAG,KAAK7C,MAAL,CAAY8C,WAAZ,EAAjB;;IAEA,KAAK,IAAItC,CAAC,GAAG,CAAR,EAAWuC,GAAG,GAAG,KAAK9B,YAAL,CAAkBC,MAAxC,EAAgDV,CAAC,GAAGuC,GAApD,EAAyDvC,CAAC,EAA1D,EAA8D;MAAA;;MAC5D,IAAI,CAACqC,UAAL,EAAiB;QACf;MACD;;MAEDA,UAAU,4BAAG,KAAK5B,YAAL,CAAkBT,CAAlB,EAAqBzB,MAArB,CAA4B8D,UAA/B,yEAA6C,KAAvD;IACD;;IAED,KAAK7C,MAAL,CAAYgD,aAAZ,CAA0BH,UAA1B;EACD;;EAEDI,SAAS,GAAG;IACVxE,mBAAmB,CAACyE,SAApB,CAA8BD,SAA9B,CAAwCE,IAAxC,CAA6C,IAA7C;;IACA,KAAKnD,MAAL,CAAYiD,SAAZ;EACD;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACEG,QAAQ,CAACtB,WAAD,EAAmC;IACzC;AACJ;AACA;AACA;IACI,IAAI,KAAKuB,YAAL,KAAsB,QAA1B,EAAoC;MAClC,KAAKC,oBAAL;;MACA,KAAKlB,QAAL,CAAcN,WAAd,EAA2B,KAAKyB,UAAhC;MACA;IACD;IAED;AACJ;AACA;;;IACI,IAAI,KAAKF,YAAL,KAAsB,MAA1B,EAAkC;MAChC,KAAKjB,QAAL,CAAcN,WAAd;MACA;IACD;IAED;AACJ;AACA;AACA;;;IACI,IAAM0B,UAAU,GACd,KAAKH,YAAL,KAAsB,KAAtB,IAA+B,KAAKA,YAAL,KAAsB,QADvD;IAEA,IAAMI,YAAY,GAChB,KAAKJ,YAAL,KAAsB,MAAtB,IAAgC,KAAKA,YAAL,KAAsB,OADxD;IAEA,IAAMK,YAAY,GAChB,KAAKL,YAAL,KAAsB,KAAtB,IAA+B,KAAKA,YAAL,KAAsB,MADvD;IAEA,IAAMM,gBAAgB,GACnBH,UAAU,IAAI,KAAKxE,MAAL,CAAY4E,QAA3B,IACCH,YAAY,IAAI,KAAKzE,MAAL,CAAY6E,KAF/B;IAGA,IAAMC,IAAI,GAAGN,UAAU,GAAG,QAAH,GAAc,KAArC;IACA,IAAMO,SAAS,GAAGP,UAAU,GAAG,QAAH,GAAc,OAA1C;IAEA;AACJ;AACA;;IACI,IAAI9E,WAAW,CAACoD,WAAD,CAAf,EAA8B;MAC5B,IAAMkC,KAAK,GAAG,KAAKlF,aAAL,CAAmBmF,iBAAnB,CACZ;QACEH,IAAI,EAAE,OADR;QAEE9D,MAAM,EAAE8B,WAAW,CAAC/C,MAAZ,CAAmBiB,MAAnB,IAA6B;MAFvC,CADY,EAKZ,IALY,CAAd;;MAOAgE,KAAK,CAAC3C,MAAN;;MACA2C,KAAK,CAAC5B,QAAN,CAAeN,WAAf;MACAA,WAAW,GAAGkC,KAAd;IACD;IAED;AACJ;AACA;AACA;;;IACI,IAAIL,gBAAJ,EAAsB;MAAA;;MACpB,IAAMtB,KAAK,GAAG,KAAKrD,MAAL,CAAYiC,YAAZ,CAAyBc,OAAzB,CAAiC,IAAjC,CAAd;MACA,KAAK/C,MAAL,CAAYoD,QAAZ,CAAqBN,WAArB,EAAkC4B,YAAY,GAAGrB,KAAH,GAAWA,KAAK,GAAG,CAAjE,EAAoE,IAApE;MACA,KAAKtD,MAAL,CAAYgF,SAAZ,IAAyB,0BAAC,KAAKhF,MAAL,CAAYgF,SAAZ,CAAD,yEAA2B,CAA3B,IAAgC,GAAzD;MACAjC,WAAW,CAAC/C,MAAZ,CAAmBgF,SAAnB,IAAgC,KAAKhF,MAAL,CAAYgF,SAAZ,CAAhC;MACA,KAAK/E,MAAL,CAAYuD,aAAZ,CAA0B,SAA1B;MACA;AACN;AACA;AACA;IACK,CAVD,MAUO;MACL,IAAM2B,WAAW,GAAG,KAAKpF,aAAL,CAAmBmF,iBAAnB,CAClB;QAAEH,IAAI,EAAEA;MAAR,CADkB,EAElB,IAFkB,CAApB;MAIA,KAAK9E,MAAL,CAAYmF,YAAZ,CAAyB,IAAzB,EAA+BD,WAA/B;MAEAA,WAAW,CAAC9B,QAAZ,CAAqBN,WAArB,EAAkC4B,YAAY,GAAG,CAAH,GAAOhE,SAArD,EAAgE,IAAhE;MACAwE,WAAW,CAAC9B,QAAZ,CAAqB,IAArB,EAA2BsB,YAAY,GAAGhE,SAAH,GAAe,CAAtD,EAAyD,IAAzD;MAEA,KAAKX,MAAL,CAAYgF,SAAZ,IAAyB,EAAzB;MACAjC,WAAW,CAAC/C,MAAZ,CAAmBgF,SAAnB,IAAgC,EAAhC;MACAG,WAAW,CAAC3B,aAAZ,CAA0B,SAA1B;IACD;EACF;EAED;AACF;AACA;AACA;AACA;AACA;AACA;;;EACE6B,mBAAmB,CAACC,CAAD,EAAYC,CAAZ,EAAuB;IACxC,IAAI,CAAC,KAAKC,sBAAV,EAAkC;MAChC;IACD;;IAED,KAAK,IAAI,CAACC,OAAD,EAAU9D,UAAV,CAAT,IAAkC+D,MAAM,CAACC,OAAP,CAChC,KAAKH,sBAD2B,CAAlC,EAEuC;MACrC,IAAMI,IAAI,GAAGjE,UAAU,CAACkE,SAAxB;;MAEA,IAAID,IAAI,CAACE,EAAL,GAAUR,CAAV,IAAeM,IAAI,CAACG,EAAL,GAAUT,CAAzB,IAA8BM,IAAI,CAACI,EAAL,GAAUT,CAAxC,IAA6CK,IAAI,CAACK,EAAL,GAAUV,CAA3D,EAA8D;QAC5D,IAAIE,OAAO,KAAK,QAAhB,EAA0B;UACxB,KAAKnB,YAAL,GAAoB,QAApB;;UACA,KAAK4B,wBAAL,CAA8BZ,CAA9B;QACD,CAHD,MAGO;UACL,KAAKf,oBAAL;;UACA,KAAK4B,sBAAL,CAA4BV,OAA5B;QACD;;QAED;MACD;IACF;EACF;;EAEDW,SAAS,GAAG;IACV,IAAI,KAAKjF,OAAL,CAAakF,EAAb,CAAgB,UAAhB,MAAgC,KAApC,EAA2C;MACzC,OAAO,IAAP;IACD;;IAED,IAAMC,UAAU,GAAG,MAAMF,SAAN,CAAgB,KAAKnF,MAAL,CAAYE,OAA5B,CAAnB;;IACA,IAAMoF,WAAW,GAAG,MAAMH,SAAN,CAAgB,KAAK/E,qBAArB,CAApB;;IACA,IAAIiF,UAAU,IAAI,IAAd,IAAsBC,WAAW,IAAI,IAAzC,EAA+C;MAC7C,OAAO,IAAP;IACD;;IAED,IAAM1E,YAAY,GAAG0E,WAAW,CAACR,EAAZ,GAAiBQ,WAAW,CAACT,EAAlD;IACA,IAAM9D,aAAa,GAAGuE,WAAW,CAACN,EAAZ,GAAiBM,WAAW,CAACP,EAAnD;IAEA,KAAKR,sBAAL,GAA8B;MAC5BvE,MAAM,EAAE;QACN4E,SAAS,EAAE;UACTC,EAAE,EAAEQ,UAAU,CAACR,EADN;UAETE,EAAE,EAAEM,UAAU,CAACN,EAFN;UAGTD,EAAE,EAAEO,UAAU,CAACP,EAHN;UAITE,EAAE,EAAEK,UAAU,CAACL;QAJN,CADL;QAONO,aAAa,EAAE;UACbV,EAAE,EAAEQ,UAAU,CAACR,EADF;UAEbE,EAAE,EAAEM,UAAU,CAACN,EAFF;UAGbD,EAAE,EAAEO,UAAU,CAACP,EAHF;UAIbE,EAAE,EAAEK,UAAU,CAACL;QAJF;MAPT;IADoB,CAA9B;IAiBA;AACJ;AACA;AACA;;IACI,IACE,KAAKhD,kBAAL,IACA,KAAKA,kBAAL,CAAwBtD,WAAxB,KAAwC,KAF1C,EAGE;MACA,OAAO2G,UAAP;IACD;IAED;AACJ;AACA;;;IACI,IAAI,KAAKpE,YAAL,CAAkBC,MAAlB,KAA6B,CAAjC,EAAoC;MAClC,KAAKqD,sBAAL,CAA4BiB,IAA5B,GAAmC;QACjCZ,SAAS,EAAE;UACTC,EAAE,EAAES,WAAW,CAACT,EADP;UAETE,EAAE,EAAEO,WAAW,CAACP,EAFP;UAGTD,EAAE,EAAEQ,WAAW,CAACR,EAHP;UAITE,EAAE,EAAEM,WAAW,CAACN;QAJP,CADsB;QAOjCO,aAAa,EAAE;UACbV,EAAE,EAAES,WAAW,CAACT,EADH;UAEbE,EAAE,EAAEO,WAAW,CAACP,EAFH;UAGbD,EAAE,EAAEQ,WAAW,CAACR,EAHH;UAIbE,EAAE,EAAEM,WAAW,CAACN;QAJH;MAPkB,CAAnC;MAeA,OAAO,MAAMG,SAAN,CAAgB,KAAKjF,OAArB,CAAP;IACD;;IAED,KAAKqE,sBAAL,CAA4BkB,IAA5B,GAAmC;MACjCb,SAAS,EAAE;QACTC,EAAE,EAAES,WAAW,CAACT,EADP;QAETE,EAAE,EAAEO,WAAW,CAACP,EAFP;QAGTD,EAAE,EAAEQ,WAAW,CAACT,EAAZ,GAAiBjE,YAAY,GAAG,IAH3B;QAIToE,EAAE,EAAEM,WAAW,CAACN;MAJP,CADsB;MAOjCO,aAAa,EAAE;QACbV,EAAE,EAAES,WAAW,CAACT,EADH;QAEbE,EAAE,EAAEO,WAAW,CAACP,EAFH;QAGbD,EAAE,EAAEQ,WAAW,CAACT,EAAZ,GAAiBjE,YAAY,GAAG,GAHvB;QAIboE,EAAE,EAAEM,WAAW,CAACN;MAJH;IAPkB,CAAnC;IAeA,KAAKT,sBAAL,CAA4BmB,GAA5B,GAAkC;MAChCd,SAAS,EAAE;QACTC,EAAE,EAAES,WAAW,CAACT,EAAZ,GAAiBjE,YAAY,GAAG,IAD3B;QAETmE,EAAE,EAAEO,WAAW,CAACP,EAFP;QAGTD,EAAE,EAAEQ,WAAW,CAACT,EAAZ,GAAiBjE,YAAY,GAAG,IAH3B;QAIToE,EAAE,EAAEM,WAAW,CAACP,EAAZ,GAAiBhE,aAAa,GAAG;MAJ5B,CADqB;MAOhCwE,aAAa,EAAE;QACbV,EAAE,EAAES,WAAW,CAACT,EADH;QAEbE,EAAE,EAAEO,WAAW,CAACP,EAFH;QAGbD,EAAE,EAAEQ,WAAW,CAACR,EAHH;QAIbE,EAAE,EAAEM,WAAW,CAACP,EAAZ,GAAiBhE,aAAa,GAAG;MAJxB;IAPiB,CAAlC;IAeA,KAAKwD,sBAAL,CAA4BoB,KAA5B,GAAoC;MAClCf,SAAS,EAAE;QACTC,EAAE,EAAES,WAAW,CAACT,EAAZ,GAAiBjE,YAAY,GAAG,IAD3B;QAETmE,EAAE,EAAEO,WAAW,CAACP,EAFP;QAGTD,EAAE,EAAEQ,WAAW,CAACR,EAHP;QAITE,EAAE,EAAEM,WAAW,CAACN;MAJP,CADuB;MAOlCO,aAAa,EAAE;QACbV,EAAE,EAAES,WAAW,CAACT,EAAZ,GAAiBjE,YAAY,GAAG,GADvB;QAEbmE,EAAE,EAAEO,WAAW,CAACP,EAFH;QAGbD,EAAE,EAAEQ,WAAW,CAACR,EAHH;QAIbE,EAAE,EAAEM,WAAW,CAACN;MAJH;IAPmB,CAApC;IAeA,KAAKT,sBAAL,CAA4BqB,MAA5B,GAAqC;MACnChB,SAAS,EAAE;QACTC,EAAE,EAAES,WAAW,CAACT,EAAZ,GAAiBjE,YAAY,GAAG,IAD3B;QAETmE,EAAE,EAAEO,WAAW,CAACP,EAAZ,GAAiBhE,aAAa,GAAG,GAF5B;QAGT+D,EAAE,EAAEQ,WAAW,CAACT,EAAZ,GAAiBjE,YAAY,GAAG,IAH3B;QAIToE,EAAE,EAAEM,WAAW,CAACN;MAJP,CADwB;MAOnCO,aAAa,EAAE;QACbV,EAAE,EAAES,WAAW,CAACT,EADH;QAEbE,EAAE,EAAEO,WAAW,CAACP,EAAZ,GAAiBhE,aAAa,GAAG,GAFxB;QAGb+D,EAAE,EAAEQ,WAAW,CAACR,EAHH;QAIbE,EAAE,EAAEM,WAAW,CAACN;MAJH;IAPoB,CAArC;IAeA,OAAO,MAAMG,SAAN,CAAgB,KAAKjF,OAArB,CAAP;EACD;;EAED+E,wBAAwB,CAACZ,CAAD,EAAY;IAAA;;IAClC,IAAMwB,UAAU,GAAG,KAAK7F,MAAL,CAAY8F,IAAZ,CAAiB5E,MAApC,CADkC,CAGlC;IACA;IAEA;;IACA,IAAI2E,UAAU,KAAK,CAAnB,EAAsB;MAAA;;MACpB,IAAME,YAAY,GAAG,KAAK/F,MAAL,CAAYE,OAAZ,CAAoB8F,MAApB,EAArB,CADoB,CAGpB;;MACA,8BAAKlH,aAAL,CAAmBmH,mBAAnB,gFAAwCV,aAAxC,CAAsD;QACpDV,EAAE,wBAAEkB,YAAF,aAAEA,YAAF,uBAAEA,YAAY,CAAEN,IAAhB,mEAAwB,CAD0B;QAEpDX,EAAE,EAAE,wBAACiB,YAAD,aAACA,YAAD,uBAACA,YAAY,CAAEN,IAAf,qEAAuB,CAAvB,IAA4B,GAFoB;QAGpDV,EAAE,qDAAE,KAAK/E,MAAL,CAAYE,OAAZ,CAAoB8F,MAApB,EAAF,2DAAE,uBAA8BN,GAAhC,yEAAuC,CAHW;QAIpDV,EAAE,EACA,qDAAC,KAAKhF,MAAL,CAAYE,OAAZ,CAAoB8F,MAApB,EAAD,2DAAC,uBAA8BN,GAA/B,2EAAsC,CAAtC,+BACC,KAAK1F,MAAL,CAAYE,OAAZ,CAAoBgG,WAApB,EADD,2EACsC,CADtC;MALkD,CAAtD;MASA;IACD;;IAED,IAAMC,aAAa,GAAG,KAAKnG,MAAL,CAAYmG,aAAlC;IACA,IAAMC,iBAAiB,yBAAGD,aAAa,CAACE,GAAd,CAAkB,CAAlB,CAAH,uDAAG,mBAAsBC,qBAAtB,EAA1B;IACA,IAAMC,eAAe,4BAAG,KAAKzH,aAAL,CAAmB0H,kBAAnB,CACrBH,GADqB,CACjB,CADiB,CAAH,0DAAG,sBAEpBC,qBAFoB,EAAxB;;IAIA,IAAI,CAACF,iBAAD,IAAsB,CAACG,eAA3B,EAA4C;MAC1C;IACD;;IAED,IAAIlC,CAAC,GAAG+B,iBAAiB,CAACX,IAA1B,EAAgC;MAC9B;MACA;MACApB,CAAC,GAAG+B,iBAAiB,CAACX,IAAlB,GAAyB,CAA7B;IACD,CAJD,MAIO,IAAIpB,CAAC,GAAG+B,iBAAiB,CAACT,KAA1B,EAAiC;MACtC;MACA;MACAtB,CAAC,GAAG+B,iBAAiB,CAACT,KAAlB,GAA0B,CAA9B;IACD;;IAED,IAAIc,UAAJ;IACA,IAAIC,OAAJ,CA5CkC,CA8ClC;;IACA,IAAI,EAAEH,eAAe,CAACd,IAAhB,GAAuBpB,CAAvB,IAA4BA,CAAC,GAAGkC,eAAe,CAACZ,KAAlD,CAAJ,EAA8D;MAC5D;MACA,KAAK,IAAInF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqF,UAApB,EAAgCrF,CAAC,EAAjC,EAAqC;QAAA;;QACnCiG,UAAU,GAAG,KAAKzG,MAAL,CAAY8F,IAAZ,CAAiBtF,CAAjB,EAAoBN,OAAjC;QACAwG,OAAO,sBAAGD,UAAU,CAACJ,GAAX,CAAe,CAAf,CAAH,oDAAG,gBAAmBC,qBAAnB,EAAV;;QACA,IAAII,OAAO,IAAIA,OAAO,CAACjB,IAAR,GAAepB,CAA1B,IAA+BA,CAAC,GAAGqC,OAAO,CAACf,KAA/C,EAAsD;UACpD,KAAKpC,UAAL,GAAkB/C,CAAlB;UACA;QACD;MACF,CAT2D,CAW5D;;;MACA,IAAIiG,UAAU,IAAIC,OAAd,IAAyBrC,CAAC,GAAGqC,OAAO,CAACjB,IAAR,GAAeiB,OAAO,CAAC7F,KAAR,GAAgB,GAAhE,EAAqE;QACnE;QACA4F,UAAU,CAACE,MAAX,CAAkB,KAAK7H,aAAL,CAAmB0H,kBAArC;MACD,CAHD,MAGO,IAAIC,UAAJ,EAAgB;QAAA;;QACrB;QACA,KAAKlD,UAAL,GAAkBZ,IAAI,CAACiE,GAAL,CAAS,qBAAC,KAAKrD,UAAN,+DAAoB,CAApB,IAAyB,CAAlC,EAAqCsC,UAArC,CAAlB;QACAY,UAAU,CAACI,KAAX,CAAiB,KAAK/H,aAAL,CAAmB0H,kBAApC;MACD;IACF;;IAED,IAAIM,eAAe,uDACjB,KAAKhI,aAAL,CAAmB0H,kBAAnB,CAAsCR,MAAtC,EADiB,2DACjB,uBAAgDP,IAD/B,2EACuC,CAD1D;IAEAqB,eAAe,GAAGnE,IAAI,CAACC,GAAL,CAChBkE,eADgB,qDAEhB,KAAK9G,MAAL,CAAYmG,aAAZ,CAA0BH,MAA1B,EAFgB,2DAEhB,uBAAoCP,IAFpB,yEAE4B,CAF5B,CAAlB;IAIA,IAAIsB,gBAAgB,GAClBD,eAAe,8BAAI,KAAKhI,aAAL,CAAmB0H,kBAAnB,CAAsC3F,KAAtC,EAAJ,2EAAqD,CAArD,CADjB;IAEAkG,gBAAgB,GAAGpE,IAAI,CAACiE,GAAL,CACjBG,gBADiB,EAEjB,qDAAC,KAAK/G,MAAL,CAAYmG,aAAZ,CAA0BH,MAA1B,EAAD,2DAAC,uBAAoCP,IAArC,2EAA6C,CAA7C,+BACG,KAAKzF,MAAL,CAAYmG,aAAZ,CAA0Ba,UAA1B,EADH,2EAC6C,CAD7C,CAFiB,CAAnB;IAKA,+BAAKlI,aAAL,CAAmBmH,mBAAnB,kFAAwCV,aAAxC,CAAsD;MACpDV,EAAE,EAAEiC,eADgD;MAEpDhC,EAAE,EAAEiC,gBAFgD;MAGpDhC,EAAE,sDAAE,KAAK/E,MAAL,CAAYE,OAAZ,CAAoB8F,MAApB,EAAF,2DAAE,uBAA8BN,GAAhC,2EAAuC,CAHW;MAIpDV,EAAE,EACA,qDAAC,KAAKhF,MAAL,CAAYE,OAAZ,CAAoB8F,MAApB,EAAD,2DAAC,uBAA8BN,GAA/B,2EAAsC,CAAtC,gCACC,KAAK1F,MAAL,CAAYE,OAAZ,CAAoBgG,WAApB,EADD,6EACsC,CADtC;IALkD,CAAtD;EAQD;;EAED5C,oBAAoB,GAAG;IACrB,KAAKxE,aAAL,CAAmB0H,kBAAnB,CAAsCS,MAAtC;EACD;;EAED5G,oBAAoB,GAAG;IACrB,IAAM6G,IAAI,GAAG,CAAC,OAAD,EAAU,MAAV,EAAkB,QAAlB,EAA4BC,IAA5B,CACXC,IAAI,IAAIA,IAAI,KAAK,KAAKjI,OAAL,CAAaC,IADnB,IAGT,KAAKD,OAAL,CAAaC,IAHJ,GAITM,SAJJ;;IAMA,IAAI,CAACwH,IAAL,EAAW;MACT;IACD;;IAED,KAAKlH,MAAL,CAAYE,OAAZ,CAAoBmH,MAApB,CAA2B,CAAC,CAAC,KAAKlI,OAAL,CAAaC,IAA1C;IACA,KAAKF,KAAL,GAAagI,IAAb;IACA,KAAKpG,MAAL,GAAc,CAAC,OAAD,EAAU,MAAV,EAAkBiB,OAAlB,CAA0B,KAAK7C,KAAL,CAAWoI,QAAX,EAA1B,KAAoD,CAAlE;IACA,KAAKpH,OAAL,CAAaqH,WAAb,CAAyB,4BAAzB;IACA,IAAI,KAAKrI,KAAT,EAAgB,KAAKgB,OAAL,CAAasH,QAAb,CAAsB,QAAQ,KAAKtI,KAAnC;;IAChB,IAAI,KAAKgB,OAAL,CAAauH,IAAb,CAAkB,YAAlB,EAAgCvG,MAAhC,IAA0C,KAAKd,qBAAnD,EAA0E;MACxE,IAAMsH,cAAc,GAClB,CAAC,OAAD,EAAU,QAAV,EAAoB3F,OAApB,CAA4B,KAAK7C,KAAL,CAAWoI,QAAX,EAA5B,KAAsD,CAAtD,GACI,QADJ,GAEI,OAHN;MAIA,KAAKtH,MAAL,CAAYE,OAAZ,CAAoBwH,cAApB,EAAoC,KAAKtH,qBAAzC;MACA,KAAKmC,aAAL,CAAmB,SAAnB;IACD;EACF;;EAED2C,sBAAsB,CAACV,OAAD,EAAuB;IAAA;;IAC3C,IAAMe,aAAa,4BAAG,KAAKhB,sBAAR,oFAAG,sBAA8BC,OAA9B,CAAH,2DAAG,uBAAwCe,aAA9D;;IACA,IAAIA,aAAJ,EAAmB;MAAA;;MACjB,+BAAKzG,aAAL,CAAmBmH,mBAAnB,kFAAwCV,aAAxC,CAAsDA,aAAtD;IACD;;IACD,KAAKlC,YAAL,GAAoBmB,OAApB;EACD;;AA9jBoD"}
@@ -0,0 +1,8 @@
1
+ export * from './AbstractContentItem';
2
+ export { default as AbstractContentItem } from './AbstractContentItem';
3
+ export { default as ContentItem } from './AbstractContentItem';
4
+ export { default as Component } from './Component';
5
+ export { default as Root } from './Root';
6
+ export { default as RowOrColumn } from './RowOrColumn';
7
+ export { default as Stack } from './Stack';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/items/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC"}
@@ -1,13 +1,8 @@
1
- import AbstractContentItem from './AbstractContentItem.js';
2
- import Component from './Component.js';
3
- import Root from './Root.js';
4
- import RowOrColumn from './RowOrColumn.js';
5
- import Stack from './Stack.js';
6
- export default {
7
- AbstractContentItem,
8
- Component,
9
- Root,
10
- RowOrColumn,
11
- Stack
12
- };
1
+ export * from "./AbstractContentItem.js";
2
+ export { default as AbstractContentItem } from "./AbstractContentItem.js";
3
+ export { default as ContentItem } from "./AbstractContentItem.js";
4
+ export { default as Component } from "./Component.js";
5
+ export { default as Root } from "./Root.js";
6
+ export { default as RowOrColumn } from "./RowOrColumn.js";
7
+ export { default as Stack } from "./Stack.js";
13
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["AbstractContentItem","Component","Root","RowOrColumn","Stack"],"sources":["../../src/items/index.js"],"sourcesContent":["import AbstractContentItem from './AbstractContentItem.js';\nimport Component from './Component.js';\nimport Root from './Root.js';\nimport RowOrColumn from './RowOrColumn.js';\nimport Stack from './Stack.js';\n\nexport default {\n AbstractContentItem,\n Component,\n Root,\n RowOrColumn,\n Stack,\n};\n"],"mappings":"AAAA,OAAOA,mBAAP,MAAgC,0BAAhC;AACA,OAAOC,SAAP,MAAsB,gBAAtB;AACA,OAAOC,IAAP,MAAiB,WAAjB;AACA,OAAOC,WAAP,MAAwB,kBAAxB;AACA,OAAOC,KAAP,MAAkB,YAAlB;AAEA,eAAe;EACbJ,mBADa;EAEbC,SAFa;EAGbC,IAHa;EAIbC,WAJa;EAKbC;AALa,CAAf"}
1
+ {"version":3,"file":"index.js","names":["default","AbstractContentItem","ContentItem","Component","Root","RowOrColumn","Stack"],"sources":["../../src/items/index.ts"],"sourcesContent":["export * from './AbstractContentItem';\nexport { default as AbstractContentItem } from './AbstractContentItem';\nexport { default as ContentItem } from './AbstractContentItem';\nexport { default as Component } from './Component';\nexport { default as Root } from './Root';\nexport { default as RowOrColumn } from './RowOrColumn';\nexport { default as Stack } from './Stack';\n"],"mappings":";SACSA,OAAO,IAAIC,mB;SACXD,OAAO,IAAIE,W;SACXF,OAAO,IAAIG,S;SACXH,OAAO,IAAII,I;SACXJ,OAAO,IAAIK,W;SACXL,OAAO,IAAIM,K"}
@@ -0,0 +1,8 @@
1
+ export default class BubblingEvent {
2
+ name: string;
3
+ origin: unknown;
4
+ isPropagationStopped: boolean;
5
+ constructor(name: string, origin: unknown);
6
+ stopPropagation(): void;
7
+ }
8
+ //# sourceMappingURL=BubblingEvent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BubblingEvent.d.ts","sourceRoot":"","sources":["../../src/utils/BubblingEvent.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,IAAI,EAAE,MAAM,CAAC;IAEb,MAAM,EAAE,OAAO,CAAC;IAEhB,oBAAoB,EAAE,OAAO,CAAC;gBAElB,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IAMzC,eAAe;CAGhB"}
@@ -1,12 +1,21 @@
1
- var BubblingEvent = function BubblingEvent(name, origin) {
2
- this.name = name;
3
- this.origin = origin;
4
- this.isPropagationStopped = false;
5
- };
1
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
2
 
7
- BubblingEvent.prototype.stopPropagation = function () {
8
- this.isPropagationStopped = true;
9
- };
3
+ export default class BubblingEvent {
4
+ constructor(name, origin) {
5
+ _defineProperty(this, "name", void 0);
10
6
 
11
- export default BubblingEvent;
7
+ _defineProperty(this, "origin", void 0);
8
+
9
+ _defineProperty(this, "isPropagationStopped", void 0);
10
+
11
+ this.name = name;
12
+ this.origin = origin;
13
+ this.isPropagationStopped = false;
14
+ }
15
+
16
+ stopPropagation() {
17
+ this.isPropagationStopped = true;
18
+ }
19
+
20
+ }
12
21
  //# sourceMappingURL=BubblingEvent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BubblingEvent.js","names":["BubblingEvent","name","origin","isPropagationStopped","prototype","stopPropagation"],"sources":["../../src/utils/BubblingEvent.js"],"sourcesContent":["const BubblingEvent = function (name, origin) {\n this.name = name;\n this.origin = origin;\n this.isPropagationStopped = false;\n};\n\nBubblingEvent.prototype.stopPropagation = function () {\n this.isPropagationStopped = true;\n};\n\nexport default BubblingEvent;\n"],"mappings":"AAAA,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAAUC,IAAV,EAAgBC,MAAhB,EAAwB;EAC5C,KAAKD,IAAL,GAAYA,IAAZ;EACA,KAAKC,MAAL,GAAcA,MAAd;EACA,KAAKC,oBAAL,GAA4B,KAA5B;AACD,CAJD;;AAMAH,aAAa,CAACI,SAAd,CAAwBC,eAAxB,GAA0C,YAAY;EACpD,KAAKF,oBAAL,GAA4B,IAA5B;AACD,CAFD;;AAIA,eAAeH,aAAf"}
1
+ {"version":3,"file":"BubblingEvent.js","names":["BubblingEvent","constructor","name","origin","isPropagationStopped","stopPropagation"],"sources":["../../src/utils/BubblingEvent.ts"],"sourcesContent":["export default class BubblingEvent {\n name: string;\n\n origin: unknown;\n\n isPropagationStopped: boolean;\n\n constructor(name: string, origin: unknown) {\n this.name = name;\n this.origin = origin;\n this.isPropagationStopped = false;\n }\n\n stopPropagation() {\n this.isPropagationStopped = true;\n }\n}\n"],"mappings":";;AAAA,eAAe,MAAMA,aAAN,CAAoB;EAOjCC,WAAW,CAACC,IAAD,EAAeC,MAAf,EAAgC;IAAA;;IAAA;;IAAA;;IACzC,KAAKD,IAAL,GAAYA,IAAZ;IACA,KAAKC,MAAL,GAAcA,MAAd;IACA,KAAKC,oBAAL,GAA4B,KAA5B;EACD;;EAEDC,eAAe,GAAG;IAChB,KAAKD,oBAAL,GAA4B,IAA5B;EACD;;AAfgC"}
@@ -0,0 +1,21 @@
1
+ import type { Config } from '../config';
2
+ /**
3
+ * Takes a GoldenLayout configuration object and
4
+ * replaces its keys and values recursively with
5
+ * one letter counterparts
6
+ *
7
+ * @param config A GoldenLayout config object
8
+ *
9
+ * @returns minified config
10
+ */
11
+ export declare function minifyConfig(config: Partial<Config>): {};
12
+ /**
13
+ * Takes a configuration Object that was previously minified
14
+ * using minifyConfig and returns its original version
15
+ *
16
+ * @param minifiedConfig
17
+ *
18
+ * @returns the original configuration
19
+ */
20
+ export declare function unminifyConfig(minifiedConfig: Record<string, unknown>): Config;
21
+ //# sourceMappingURL=ConfigMinifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigMinifier.d.ts","sourceRoot":"","sources":["../../src/utils/ConfigMinifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAyDxC;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAQnD;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACtC,MAAM,CAQR"}
@@ -1,160 +1,160 @@
1
- import utils from './utils.js';
2
1
  /**
3
2
  * Minifies and unminifies configs by replacing frequent keys
4
3
  * and values with one letter substitutes. Config options must
5
4
  * retain array position/index, add new options at the end.
5
+ */
6
+ var _keys = ['settings', 'hasHeaders', 'constrainDragToContainer', 'selectionEnabled', 'dimensions', 'borderWidth', 'minItemHeight', 'minItemWidth', 'headerHeight', 'dragProxyWidth', 'dragProxyHeight', 'labels', 'close', 'maximise', 'minimise', 'popout', 'content', 'componentName', 'componentState', 'id', 'width', 'type', 'height', 'isClosable', 'title', 'popoutWholeStack', 'openPopouts', 'parentId', 'activeItemIndex', 'reorderEnabled', 'borderGrabWidth' //Maximum 36 entries, do not cross this line!
7
+ ];
8
+ var _values = [true, false, 'row', 'column', 'stack', 'component', 'close', 'maximise', 'minimise', 'open in new window'];
9
+ /**
10
+ * Takes a GoldenLayout configuration object and
11
+ * replaces its keys and values recursively with
12
+ * one letter counterparts
13
+ *
14
+ * @param config A GoldenLayout config object
6
15
  *
7
- * @constructor
16
+ * @returns minified config
8
17
  */
9
18
 
10
- var ConfigMinifier = function ConfigMinifier() {
11
- this._keys = ['settings', 'hasHeaders', 'constrainDragToContainer', 'selectionEnabled', 'dimensions', 'borderWidth', 'minItemHeight', 'minItemWidth', 'headerHeight', 'dragProxyWidth', 'dragProxyHeight', 'labels', 'close', 'maximise', 'minimise', 'popout', 'content', 'componentName', 'componentState', 'id', 'width', 'type', 'height', 'isClosable', 'title', 'popoutWholeStack', 'openPopouts', 'parentId', 'activeItemIndex', 'reorderEnabled', 'borderGrabWidth' //Maximum 36 entries, do not cross this line!
12
- ];
13
-
14
- if (this._keys.length > 36) {
19
+ export function minifyConfig(config) {
20
+ if (_keys.length > 36) {
15
21
  throw new Error('Too many keys in config minifier map');
16
22
  }
17
23
 
18
- this._values = [true, false, 'row', 'column', 'stack', 'component', 'close', 'maximise', 'minimise', 'open in new window'];
19
- };
24
+ var min = {};
20
25
 
21
- utils.copy(ConfigMinifier.prototype, {
22
- /**
23
- * Takes a GoldenLayout configuration object and
24
- * replaces its keys and values recursively with
25
- * one letter counterparts
26
- *
27
- * @param {Object} config A GoldenLayout config object
28
- *
29
- * @returns {Object} minified config
30
- */
31
- minifyConfig: function minifyConfig(config) {
32
- var min = {};
26
+ _nextLevel(config, min, '_min');
33
27
 
34
- this._nextLevel(config, min, '_min');
28
+ return min;
29
+ }
30
+ /**
31
+ * Takes a configuration Object that was previously minified
32
+ * using minifyConfig and returns its original version
33
+ *
34
+ * @param minifiedConfig
35
+ *
36
+ * @returns the original configuration
37
+ */
35
38
 
36
- return min;
37
- },
39
+ export function unminifyConfig(minifiedConfig) {
40
+ if (_keys.length > 36) {
41
+ throw new Error('Too many keys in config minifier map');
42
+ }
38
43
 
39
- /**
40
- * Takes a configuration Object that was previously minified
41
- * using minifyConfig and returns its original version
42
- *
43
- * @param {Object} minifiedConfig
44
- *
45
- * @returns {Object} the original configuration
46
- */
47
- unminifyConfig: function unminifyConfig(minifiedConfig) {
48
- var orig = {};
44
+ var orig = {};
49
45
 
50
- this._nextLevel(minifiedConfig, orig, '_max');
46
+ _nextLevel(minifiedConfig, orig, '_max');
51
47
 
52
- return orig;
53
- },
48
+ return orig;
49
+ }
50
+ /**
51
+ * Recursive function, called for every level of the config structure
52
+ *
53
+ * @param orig
54
+ * @param min
55
+ * @param translationFnName
56
+ */
54
57
 
55
- /**
56
- * Recursive function, called for every level of the config structure
57
- *
58
- * @param {Array|Object} orig
59
- * @param {Array|Object} min
60
- * @param {String} translationFn
61
- *
62
- * @returns {void}
63
- */
64
- _nextLevel: function _nextLevel(from, to, translationFn) {
65
- var key, minKey;
58
+ function _nextLevel(from, to, translationFnName) {
59
+ var translationFn = translationFnName === '_min' ? _min : _max;
66
60
 
67
- for (key in from) {
68
- /**
69
- * For in returns array indices as keys, so let's cast them to numbers
70
- */
71
- if (from instanceof Array) key = parseInt(key, 10);
72
- /**
73
- * In case something has extended Object prototypes
74
- */
61
+ for (var key in from) {
62
+ /**
63
+ * In case something has extended Object prototypes
64
+ */
65
+ if (!from.hasOwnProperty(key)) continue;
66
+ var fromItem = Array.isArray(from) ? from[Number.parseInt(key, 10)] : from[key];
67
+ /**
68
+ * For Arrays and Objects, create a new Array/Object
69
+ * on the minified object and recurse into it
70
+ */
75
71
 
76
- if (!from.hasOwnProperty(key)) continue;
77
- /**
78
- * Translate the key to a one letter substitute
79
- */
72
+ if (typeof fromItem === 'object' && fromItem != null) {
73
+ var toItem = fromItem instanceof Array ? [] : {};
74
+
75
+ if (Array.isArray(to)) {
76
+ to[Number.parseInt(key, 10)] = toItem;
77
+ } else {
78
+ var minKey = translationFn(key, _keys);
79
+ to[minKey] = toItem;
80
+ }
80
81
 
81
- minKey = this[translationFn](key, this._keys);
82
+ _nextLevel(fromItem, toItem, translationFnName);
82
83
  /**
83
- * For Arrays and Objects, create a new Array/Object
84
- * on the minified object and recurse into it
84
+ * For primitive values (Strings, Numbers, Boolean etc.)
85
+ * minify the value
85
86
  */
86
87
 
87
- if (typeof from[key] === 'object') {
88
- to[minKey] = from[key] instanceof Array ? [] : {};
89
-
90
- this._nextLevel(from[key], to[minKey], translationFn);
91
- /**
92
- * For primitive values (Strings, Numbers, Boolean etc.)
93
- * minify the value
94
- */
88
+ } else {
89
+ var _toItem = translationFn(fromItem, _values);
95
90
 
91
+ if (Array.isArray(to)) {
92
+ to[Number.parseInt(key, 10)] = _toItem;
96
93
  } else {
97
- to[minKey] = this[translationFn](from[key], this._values);
94
+ var _minKey = translationFn(key, _keys);
95
+
96
+ to[_minKey] = _toItem;
98
97
  }
99
98
  }
100
- },
99
+ }
100
+ }
101
+ /**
102
+ * Minifies value based on a dictionary
103
+ *
104
+ * @param value
105
+ * @param dictionary
106
+ *
107
+ * @returns The minified version
108
+ */
109
+
101
110
 
111
+ function _min(value, dictionary) {
102
112
  /**
103
- * Minifies value based on a dictionary
104
- *
105
- * @param {String|Boolean} value
106
- * @param {Array<String|Boolean>} dictionary
107
- *
108
- * @returns {String} The minified version
113
+ * If a value actually is a single character, prefix it
114
+ * with ___ to avoid mistaking it for a minification code
109
115
  */
110
- _min: function _min(value, dictionary) {
111
- /**
112
- * If a value actually is a single character, prefix it
113
- * with ___ to avoid mistaking it for a minification code
114
- */
115
- if (typeof value === 'string' && value.length === 1) {
116
- return '___' + value;
117
- }
116
+ if (typeof value === 'string' && value.length === 1) {
117
+ return '___' + value;
118
+ }
118
119
 
119
- var index = utils.indexOf(value, dictionary);
120
- /**
121
- * value not found in the dictionary, return it unmodified
122
- */
120
+ var index = dictionary.indexOf(value);
121
+ /**
122
+ * value not found in the dictionary, return it unmodified
123
+ */
123
124
 
124
- if (index === -1) {
125
- return value;
126
- /**
127
- * value found in dictionary, return its base36 counterpart
128
- */
129
- } else {
130
- return index.toString(36);
131
- }
132
- },
133
- _max: function _max(value, dictionary) {
134
- /**
135
- * value is a single character. Assume that it's a translation
136
- * and return the original value from the dictionary
137
- */
138
- if (typeof value === 'string' && value.length === 1) {
139
- return dictionary[parseInt(value, 36)];
140
- }
125
+ if (index === -1) {
126
+ return value;
141
127
  /**
142
- * value originally was a single character and was prefixed with ___
143
- * to avoid mistaking it for a translation. Remove the prefix
144
- * and return the original character
128
+ * value found in dictionary, return its base36 counterpart
145
129
  */
130
+ } else {
131
+ return index.toString(36);
132
+ }
133
+ }
146
134
 
147
-
148
- if (typeof value === 'string' && value.substr(0, 3) === '___') {
149
- return value[3];
150
- }
151
- /**
152
- * value was not minified
153
- */
135
+ function _max(value, dictionary) {
136
+ /**
137
+ * value is a single character. Assume that it's a translation
138
+ * and return the original value from the dictionary
139
+ */
140
+ if (typeof value === 'string' && value.length === 1) {
141
+ return dictionary[parseInt(value, 36)];
142
+ }
143
+ /**
144
+ * value originally was a single character and was prefixed with ___
145
+ * to avoid mistaking it for a translation. Remove the prefix
146
+ * and return the original character
147
+ */
154
148
 
155
149
 
156
- return value;
150
+ if (typeof value === 'string' && value.substr(0, 3) === '___') {
151
+ return value[3];
157
152
  }
158
- });
159
- export default ConfigMinifier;
153
+ /**
154
+ * value was not minified
155
+ */
156
+
157
+
158
+ return value;
159
+ }
160
160
  //# sourceMappingURL=ConfigMinifier.js.map