@itwin/appui-react 4.10.0 → 4.11.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 (893) hide show
  1. package/CHANGELOG.md +18 -1
  2. package/lib/cjs/appui-react/UiFramework.d.ts +181 -10
  3. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  4. package/lib/cjs/appui-react/UiFramework.js +301 -21
  5. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  6. package/lib/cjs/appui-react/accudraw/AccuDrawDialog.d.ts.map +1 -1
  7. package/lib/cjs/appui-react/accudraw/AccuDrawDialog.js +3 -2
  8. package/lib/cjs/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
  9. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  10. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +50 -33
  11. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  12. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.d.ts +1 -1
  13. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
  14. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js +5 -7
  15. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  16. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.d.ts +7 -6
  17. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.d.ts.map +1 -1
  18. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js +9 -0
  19. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  20. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  21. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js +10 -10
  22. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  23. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +2 -1
  24. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  25. package/lib/cjs/appui-react/backstage/BackstageItem.d.ts +2 -2
  26. package/lib/cjs/appui-react/backstage/BackstageItem.d.ts.map +1 -1
  27. package/lib/cjs/appui-react/backstage/BackstageItem.js.map +1 -1
  28. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +1 -1
  29. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  30. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts +5 -0
  31. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  32. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js +24 -17
  33. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  34. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.scss +12 -10
  35. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.d.ts +2 -0
  36. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.d.ts.map +1 -1
  37. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js +7 -1
  38. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  39. package/lib/cjs/appui-react/configurableui/TimeTracker.js +2 -1
  40. package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
  41. package/lib/cjs/appui-react/content/ContentLayout.js +12 -9
  42. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  43. package/lib/cjs/appui-react/content/DefaultViewOverlay.js +4 -3
  44. package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
  45. package/lib/cjs/appui-react/content/DefaultViewOverlay.scss +14 -19
  46. package/lib/cjs/appui-react/content/FloatingViewportContent.js +2 -1
  47. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
  48. package/lib/cjs/appui-react/content/IModelViewport.d.ts.map +1 -1
  49. package/lib/cjs/appui-react/content/IModelViewport.js +8 -9
  50. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  51. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js +2 -1
  52. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  53. package/lib/cjs/appui-react/content/InternalContentViewManager.js +2 -2
  54. package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
  55. package/lib/cjs/appui-react/content/split-pane/SplitPane.js +12 -10
  56. package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
  57. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.d.ts +2 -2
  58. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  59. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js +3 -2
  60. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  61. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.d.ts +8 -4
  62. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.d.ts.map +1 -1
  63. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.js +102 -50
  64. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  65. package/lib/cjs/appui-react/dialog/ContentDialog.js +6 -3
  66. package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
  67. package/lib/cjs/appui-react/dialog/DialogManagerBase.js +3 -2
  68. package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
  69. package/lib/cjs/appui-react/framework/FrameworkVisibility.d.ts +4 -2
  70. package/lib/cjs/appui-react/framework/FrameworkVisibility.d.ts.map +1 -1
  71. package/lib/cjs/appui-react/framework/FrameworkVisibility.js.map +1 -1
  72. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +0 -5
  73. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  74. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +20 -77
  75. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  76. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
  77. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js +1 -3
  78. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  79. package/lib/cjs/appui-react/frontstage/ModalFrontstage.d.ts +0 -1
  80. package/lib/cjs/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
  81. package/lib/cjs/appui-react/frontstage/ModalFrontstage.js +1 -2
  82. package/lib/cjs/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  83. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
  84. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +7 -6
  85. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  86. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +2 -1
  87. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  88. package/lib/cjs/appui-react/hooks/useActiveToolId.d.ts +6 -0
  89. package/lib/cjs/appui-react/hooks/useActiveToolId.d.ts.map +1 -0
  90. package/lib/cjs/appui-react/hooks/useActiveToolId.js +24 -0
  91. package/lib/cjs/appui-react/hooks/useActiveToolId.js.map +1 -0
  92. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js +11 -7
  93. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  94. package/lib/cjs/appui-react/hooks/useConditionalValue.d.ts +15 -0
  95. package/lib/cjs/appui-react/hooks/useConditionalValue.d.ts.map +1 -0
  96. package/lib/cjs/appui-react/hooks/useConditionalValue.js +43 -0
  97. package/lib/cjs/appui-react/hooks/useConditionalValue.js.map +1 -0
  98. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js +11 -7
  99. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  100. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js +13 -8
  101. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  102. package/lib/cjs/appui-react/keyins/Keyins.d.ts +35 -0
  103. package/lib/cjs/appui-react/keyins/Keyins.d.ts.map +1 -0
  104. package/lib/cjs/appui-react/keyins/Keyins.js +54 -0
  105. package/lib/cjs/appui-react/keyins/Keyins.js.map +1 -0
  106. package/lib/cjs/appui-react/layers.scss +1 -1
  107. package/lib/cjs/appui-react/layout/StandardLayout.d.ts.map +1 -1
  108. package/lib/cjs/appui-react/layout/StandardLayout.js +10 -10
  109. package/lib/cjs/appui-react/layout/StandardLayout.js.map +1 -1
  110. package/lib/cjs/appui-react/layout/_widgetopacity.scss +3 -1
  111. package/lib/cjs/appui-react/layout/base/DragManager.js +2 -1
  112. package/lib/cjs/appui-react/layout/base/DragManager.js.map +1 -1
  113. package/lib/cjs/appui-react/layout/base/NineZone.js +1 -1
  114. package/lib/cjs/appui-react/layout/base/NineZone.js.map +1 -1
  115. package/lib/cjs/appui-react/layout/base/usePointerCaptor.d.ts.map +1 -1
  116. package/lib/cjs/appui-react/layout/base/usePointerCaptor.js +3 -0
  117. package/lib/cjs/appui-react/layout/base/usePointerCaptor.js.map +1 -1
  118. package/lib/cjs/appui-react/layout/outline/TabOutline.js +1 -1
  119. package/lib/cjs/appui-react/layout/outline/TabOutline.js.map +1 -1
  120. package/lib/cjs/appui-react/layout/outline/WidgetOutline.js +1 -1
  121. package/lib/cjs/appui-react/layout/outline/WidgetOutline.js.map +1 -1
  122. package/lib/cjs/appui-react/layout/state/NineZoneStateReducer.js +14 -12
  123. package/lib/cjs/appui-react/layout/state/NineZoneStateReducer.js.map +1 -1
  124. package/lib/cjs/appui-react/layout/state/internal/NineZoneStateHelpers.js +2 -1
  125. package/lib/cjs/appui-react/layout/state/internal/NineZoneStateHelpers.js.map +1 -1
  126. package/lib/cjs/appui-react/layout/state/internal/TabStateHelpers.js +3 -2
  127. package/lib/cjs/appui-react/layout/state/internal/TabStateHelpers.js.map +1 -1
  128. package/lib/cjs/appui-react/layout/state/internal/WidgetStateHelpers.js +4 -4
  129. package/lib/cjs/appui-react/layout/state/internal/WidgetStateHelpers.js.map +1 -1
  130. package/lib/cjs/appui-react/layout/target/TitleBarTarget.js +1 -1
  131. package/lib/cjs/appui-react/layout/target/TitleBarTarget.js.map +1 -1
  132. package/lib/cjs/appui-react/layout/widget/Content.d.ts.map +1 -1
  133. package/lib/cjs/appui-react/layout/widget/Content.js +5 -5
  134. package/lib/cjs/appui-react/layout/widget/Content.js.map +1 -1
  135. package/lib/cjs/appui-react/layout/widget/ContentRenderer.js +2 -2
  136. package/lib/cjs/appui-react/layout/widget/ContentRenderer.js.map +1 -1
  137. package/lib/cjs/appui-react/layout/widget/FloatingTab.js +6 -5
  138. package/lib/cjs/appui-react/layout/widget/FloatingTab.js.map +1 -1
  139. package/lib/cjs/appui-react/layout/widget/FloatingWidget.js +4 -2
  140. package/lib/cjs/appui-react/layout/widget/FloatingWidget.js.map +1 -1
  141. package/lib/cjs/appui-react/layout/widget/NavigationArea.scss +4 -1
  142. package/lib/cjs/appui-react/layout/widget/PanelWidget.js +1 -1
  143. package/lib/cjs/appui-react/layout/widget/PanelWidget.js.map +1 -1
  144. package/lib/cjs/appui-react/layout/widget/Tab.js +4 -4
  145. package/lib/cjs/appui-react/layout/widget/Tab.js.map +1 -1
  146. package/lib/cjs/appui-react/layout/widget/ToolsArea.scss +2 -0
  147. package/lib/cjs/appui-react/layout/widget/Widget.d.ts.map +1 -1
  148. package/lib/cjs/appui-react/layout/widget/Widget.js +2 -2
  149. package/lib/cjs/appui-react/layout/widget/Widget.js.map +1 -1
  150. package/lib/cjs/appui-react/layout/widget/useIsToolSettingsTab.js +1 -1
  151. package/lib/cjs/appui-react/layout/widget/useIsToolSettingsTab.js.map +1 -1
  152. package/lib/cjs/appui-react/layout/widget-panels/PanelSections.js +8 -5
  153. package/lib/cjs/appui-react/layout/widget-panels/PanelSections.js.map +1 -1
  154. package/lib/cjs/appui-react/layout/widget-panels/useAnimatePanel.d.ts +1 -1
  155. package/lib/cjs/appui-react/layout/widget-panels/useAnimatePanel.js +2 -1
  156. package/lib/cjs/appui-react/layout/widget-panels/useAnimatePanel.js.map +1 -1
  157. package/lib/cjs/appui-react/messages/AppNotificationManager.js +1 -1
  158. package/lib/cjs/appui-react/messages/AppNotificationManager.js.map +1 -1
  159. package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
  160. package/lib/cjs/appui-react/messages/MessageManager.js +6 -6
  161. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  162. package/lib/cjs/appui-react/messages/MessageRenderer.js +16 -10
  163. package/lib/cjs/appui-react/messages/MessageRenderer.js.map +1 -1
  164. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
  165. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js +2 -6
  166. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  167. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
  168. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js +1 -1
  169. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  170. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.d.ts +0 -1
  171. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
  172. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js +1 -2
  173. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  174. package/lib/cjs/appui-react/pickers/ViewSelector.js +6 -5
  175. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  176. package/lib/cjs/appui-react/popup/CardPopup.d.ts +21 -9
  177. package/lib/cjs/appui-react/popup/CardPopup.d.ts.map +1 -1
  178. package/lib/cjs/appui-react/popup/CardPopup.js +12 -5
  179. package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
  180. package/lib/cjs/appui-react/popup/ComponentPopup.d.ts +18 -0
  181. package/lib/cjs/appui-react/popup/ComponentPopup.d.ts.map +1 -0
  182. package/lib/cjs/appui-react/popup/ComponentPopup.js +35 -0
  183. package/lib/cjs/appui-react/popup/ComponentPopup.js.map +1 -0
  184. package/lib/cjs/appui-react/popup/HTMLElementPopup.d.ts +4 -1
  185. package/lib/cjs/appui-react/popup/HTMLElementPopup.d.ts.map +1 -1
  186. package/lib/cjs/appui-react/popup/HTMLElementPopup.js +1 -0
  187. package/lib/cjs/appui-react/popup/HTMLElementPopup.js.map +1 -1
  188. package/lib/cjs/appui-react/popup/InputEditorPopup.d.ts +4 -4
  189. package/lib/cjs/appui-react/popup/InputEditorPopup.d.ts.map +1 -1
  190. package/lib/cjs/appui-react/popup/InputEditorPopup.js.map +1 -1
  191. package/lib/cjs/appui-react/popup/KeyinPalettePanel.d.ts +1 -1
  192. package/lib/cjs/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
  193. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +19 -12
  194. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  195. package/lib/cjs/appui-react/popup/KeyinPalettePopup.d.ts +4 -2
  196. package/lib/cjs/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
  197. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js +9 -3
  198. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  199. package/lib/cjs/appui-react/popup/PopupManager.d.ts +45 -9
  200. package/lib/cjs/appui-react/popup/PopupManager.d.ts.map +1 -1
  201. package/lib/cjs/appui-react/popup/PopupManager.js +85 -13
  202. package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
  203. package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts +16 -6
  204. package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  205. package/lib/cjs/appui-react/popup/ToolbarPopup.js +7 -2
  206. package/lib/cjs/appui-react/popup/ToolbarPopup.js.map +1 -1
  207. package/lib/cjs/appui-react/preview/PreviewFeatures.d.ts +3 -1
  208. package/lib/cjs/appui-react/preview/PreviewFeatures.d.ts.map +1 -1
  209. package/lib/cjs/appui-react/preview/PreviewFeatures.js +2 -2
  210. package/lib/cjs/appui-react/preview/PreviewFeatures.js.map +1 -1
  211. package/lib/cjs/appui-react/preview/activate-dropped-tab/activateDroppedTab.d.ts +6 -0
  212. package/lib/cjs/appui-react/preview/activate-dropped-tab/activateDroppedTab.d.ts.map +1 -0
  213. package/lib/cjs/appui-react/{layout/state → preview/activate-dropped-tab}/activateDroppedTab.js +5 -4
  214. package/lib/cjs/appui-react/preview/activate-dropped-tab/activateDroppedTab.js.map +1 -0
  215. package/lib/cjs/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.d.ts +6 -0
  216. package/lib/cjs/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.d.ts.map +1 -0
  217. package/lib/cjs/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.js +18 -0
  218. package/lib/cjs/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.js.map +1 -0
  219. package/lib/cjs/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.scss +10 -0
  220. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.d.ts +7 -7
  221. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.d.ts.map +1 -1
  222. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.js +7 -7
  223. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.js.map +1 -1
  224. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.scss +6 -6
  225. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js +1 -1
  226. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js.map +1 -1
  227. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.js +1 -1
  228. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.js.map +1 -1
  229. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.scss +4 -4
  230. package/lib/cjs/appui-react/preview/new-toolbars/ActionItem.d.ts +12 -0
  231. package/lib/cjs/appui-react/preview/new-toolbars/ActionItem.d.ts.map +1 -0
  232. package/lib/cjs/appui-react/preview/new-toolbars/ActionItem.js +25 -0
  233. package/lib/cjs/appui-react/preview/new-toolbars/ActionItem.js.map +1 -0
  234. package/lib/cjs/appui-react/preview/new-toolbars/Badge.d.ts +9 -0
  235. package/lib/cjs/appui-react/preview/new-toolbars/Badge.d.ts.map +1 -0
  236. package/lib/cjs/appui-react/preview/new-toolbars/Badge.js +20 -0
  237. package/lib/cjs/appui-react/preview/new-toolbars/Badge.js.map +1 -0
  238. package/lib/cjs/appui-react/preview/new-toolbars/Badge.scss +13 -0
  239. package/lib/cjs/appui-react/preview/new-toolbars/CustomItem.d.ts +12 -0
  240. package/lib/cjs/appui-react/preview/new-toolbars/CustomItem.d.ts.map +1 -0
  241. package/lib/cjs/appui-react/preview/new-toolbars/CustomItem.js +36 -0
  242. package/lib/cjs/appui-react/preview/new-toolbars/CustomItem.js.map +1 -0
  243. package/lib/cjs/appui-react/preview/new-toolbars/ExpandIndicator.d.ts +5 -0
  244. package/lib/cjs/appui-react/preview/new-toolbars/ExpandIndicator.d.ts.map +1 -0
  245. package/lib/cjs/appui-react/{statusbar/Popup.js → preview/new-toolbars/ExpandIndicator.js} +8 -13
  246. package/lib/cjs/appui-react/preview/new-toolbars/ExpandIndicator.js.map +1 -0
  247. package/lib/cjs/appui-react/preview/new-toolbars/ExpandIndicator.scss +17 -0
  248. package/lib/cjs/appui-react/preview/new-toolbars/GroupItem.d.ts +22 -0
  249. package/lib/cjs/appui-react/preview/new-toolbars/GroupItem.d.ts.map +1 -0
  250. package/lib/cjs/appui-react/preview/new-toolbars/GroupItem.js +79 -0
  251. package/lib/cjs/appui-react/preview/new-toolbars/GroupItem.js.map +1 -0
  252. package/lib/cjs/appui-react/preview/new-toolbars/Item.d.ts +21 -0
  253. package/lib/cjs/appui-react/preview/new-toolbars/Item.d.ts.map +1 -0
  254. package/lib/cjs/appui-react/preview/new-toolbars/Item.js +54 -0
  255. package/lib/cjs/appui-react/preview/new-toolbars/Item.js.map +1 -0
  256. package/lib/cjs/appui-react/preview/new-toolbars/OverflowButton.d.ts +17 -0
  257. package/lib/cjs/appui-react/preview/new-toolbars/OverflowButton.d.ts.map +1 -0
  258. package/lib/cjs/appui-react/preview/new-toolbars/OverflowButton.js +37 -0
  259. package/lib/cjs/appui-react/preview/new-toolbars/OverflowButton.js.map +1 -0
  260. package/lib/cjs/appui-react/preview/new-toolbars/ToolGroup.d.ts +18 -0
  261. package/lib/cjs/appui-react/preview/new-toolbars/ToolGroup.d.ts.map +1 -0
  262. package/lib/cjs/appui-react/preview/new-toolbars/ToolGroup.js +85 -0
  263. package/lib/cjs/appui-react/preview/new-toolbars/ToolGroup.js.map +1 -0
  264. package/lib/cjs/appui-react/preview/new-toolbars/ToolGroup.scss +43 -0
  265. package/lib/cjs/appui-react/preview/new-toolbars/Toolbar.d.ts +23 -0
  266. package/lib/cjs/appui-react/preview/new-toolbars/Toolbar.d.ts.map +1 -0
  267. package/lib/cjs/appui-react/preview/new-toolbars/Toolbar.js +40 -0
  268. package/lib/cjs/appui-react/preview/new-toolbars/Toolbar.js.map +1 -0
  269. package/lib/cjs/appui-react/preview/new-toolbars/useOverflow.d.ts +9 -0
  270. package/lib/cjs/appui-react/preview/new-toolbars/useOverflow.d.ts.map +1 -0
  271. package/lib/cjs/appui-react/preview/new-toolbars/useOverflow.js +93 -0
  272. package/lib/cjs/appui-react/preview/new-toolbars/useOverflow.js.map +1 -0
  273. package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.js +2 -1
  274. package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.js.map +1 -1
  275. package/lib/cjs/appui-react/redux/FrameworkState.d.ts +1 -1
  276. package/lib/cjs/appui-react/redux/SessionState.d.ts +15 -3
  277. package/lib/cjs/appui-react/redux/SessionState.d.ts.map +1 -1
  278. package/lib/cjs/appui-react/redux/SessionState.js +8 -1
  279. package/lib/cjs/appui-react/redux/SessionState.js.map +1 -1
  280. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js +2 -2
  281. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  282. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.d.ts.map +1 -1
  283. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js +6 -8
  284. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  285. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.d.ts.map +1 -1
  286. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.js +7 -7
  287. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
  288. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  289. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +40 -46
  290. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  291. package/lib/cjs/appui-react/shared/ConditionalValue.d.ts +17 -0
  292. package/lib/cjs/appui-react/shared/ConditionalValue.d.ts.map +1 -0
  293. package/lib/cjs/appui-react/shared/ConditionalValue.js +16 -0
  294. package/lib/cjs/appui-react/shared/ConditionalValue.js.map +1 -0
  295. package/lib/cjs/appui-react/shared/ItemDefBase.d.ts +2 -2
  296. package/lib/cjs/appui-react/shared/ItemDefBase.d.ts.map +1 -1
  297. package/lib/cjs/appui-react/shared/ItemDefBase.js.map +1 -1
  298. package/lib/cjs/appui-react/shared/ItemProps.d.ts +13 -2
  299. package/lib/cjs/appui-react/shared/ItemProps.d.ts.map +1 -1
  300. package/lib/cjs/appui-react/shared/ItemProps.js.map +1 -1
  301. package/lib/cjs/appui-react/shared/MenuItem.d.ts +21 -2
  302. package/lib/cjs/appui-react/shared/MenuItem.d.ts.map +1 -1
  303. package/lib/cjs/appui-react/shared/MenuItem.js.map +1 -1
  304. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +16 -11
  305. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  306. package/lib/cjs/appui-react/statusbar/Indicator.js +2 -1
  307. package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -1
  308. package/lib/cjs/appui-react/statusbar/Overflow.d.ts.map +1 -1
  309. package/lib/cjs/appui-react/statusbar/Overflow.js +3 -3
  310. package/lib/cjs/appui-react/statusbar/Overflow.js.map +1 -1
  311. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts +1 -1
  312. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  313. package/lib/cjs/appui-react/statusbar/StatusBar.js +6 -4
  314. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  315. package/lib/cjs/appui-react/statusbar/StatusBarItem.d.ts +2 -2
  316. package/lib/cjs/appui-react/statusbar/StatusBarItem.d.ts.map +1 -1
  317. package/lib/cjs/appui-react/statusbar/StatusBarItem.js.map +1 -1
  318. package/lib/cjs/appui-react/statusbar/{Popup.d.ts → popup/Popup.d.ts} +2 -1
  319. package/lib/cjs/appui-react/statusbar/popup/Popup.d.ts.map +1 -0
  320. package/lib/cjs/appui-react/{layout/footer → statusbar/popup}/Popup.js +10 -11
  321. package/lib/cjs/appui-react/statusbar/popup/Popup.js.map +1 -0
  322. package/lib/cjs/appui-react/{layout/footer → statusbar/popup}/Popup.scss +1 -7
  323. package/lib/cjs/appui-react/statusfields/ActivityCenter.d.ts.map +1 -1
  324. package/lib/cjs/appui-react/statusfields/ActivityCenter.js +4 -4
  325. package/lib/cjs/appui-react/statusfields/ActivityCenter.js.map +1 -1
  326. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts +0 -1
  327. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  328. package/lib/cjs/appui-react/statusfields/MessageCenter.js +4 -4
  329. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  330. package/lib/cjs/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  331. package/lib/cjs/appui-react/statusfields/SectionsField.js +7 -10
  332. package/lib/cjs/appui-react/statusfields/SectionsField.js.map +1 -1
  333. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  334. package/lib/cjs/appui-react/statusfields/SelectionScope.js +4 -4
  335. package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
  336. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  337. package/lib/cjs/appui-react/statusfields/SnapMode.js +14 -12
  338. package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
  339. package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts +0 -2
  340. package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  341. package/lib/cjs/appui-react/statusfields/ViewAttributes.js +12 -20
  342. package/lib/cjs/appui-react/statusfields/ViewAttributes.js.map +1 -1
  343. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  344. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +2 -2
  345. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  346. package/lib/cjs/appui-react/theme/ThemeManager.d.ts.map +1 -1
  347. package/lib/cjs/appui-react/theme/ThemeManager.js +3 -2
  348. package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
  349. package/lib/cjs/appui-react/timeline/SolarTimelineDataProvider.d.ts.map +1 -1
  350. package/lib/cjs/appui-react/timeline/SolarTimelineDataProvider.js +2 -3
  351. package/lib/cjs/appui-react/timeline/SolarTimelineDataProvider.js.map +1 -1
  352. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts +4 -3
  353. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  354. package/lib/cjs/appui-react/toolbar/Toolbar.js +28 -4
  355. package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
  356. package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts +4 -2
  357. package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  358. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js +15 -12
  359. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  360. package/lib/cjs/appui-react/toolbar/ToolbarHelper.d.ts.map +1 -1
  361. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js +5 -6
  362. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  363. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts +2 -2
  364. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
  365. package/lib/cjs/appui-react/toolbar/ToolbarItem.js.map +1 -1
  366. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js +4 -3
  367. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  368. package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  369. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +18 -11
  370. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  371. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js +2 -3
  372. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  373. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +22 -20
  374. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  375. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +10 -9
  376. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  377. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +2 -1
  378. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  379. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +14 -8
  380. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  381. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.d.ts +47 -38
  382. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.d.ts.map +1 -1
  383. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +102 -143
  384. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  385. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js +1 -1
  386. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  387. package/lib/cjs/appui-react/useTranslation.d.ts +10 -0
  388. package/lib/cjs/appui-react/useTranslation.d.ts.map +1 -0
  389. package/lib/cjs/appui-react/useTranslation.js +20 -0
  390. package/lib/cjs/appui-react/useTranslation.js.map +1 -0
  391. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js +3 -3
  392. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  393. package/lib/cjs/appui-react/utils/Placement.d.ts +35 -0
  394. package/lib/cjs/appui-react/utils/Placement.d.ts.map +1 -0
  395. package/lib/cjs/appui-react/utils/Placement.js +62 -0
  396. package/lib/cjs/appui-react/utils/Placement.js.map +1 -0
  397. package/lib/cjs/appui-react/utils/PropsHelper.js +4 -4
  398. package/lib/cjs/appui-react/utils/PropsHelper.js.map +1 -1
  399. package/lib/cjs/appui-react/widget-panels/Content.d.ts.map +1 -1
  400. package/lib/cjs/appui-react/widget-panels/Content.js +12 -11
  401. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  402. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  403. package/lib/cjs/appui-react/widget-panels/Frontstage.js +30 -23
  404. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  405. package/lib/cjs/appui-react/widget-panels/StatusBar.js +1 -1
  406. package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
  407. package/lib/cjs/appui-react/widget-panels/Tab.d.ts +1 -1
  408. package/lib/cjs/appui-react/widget-panels/Tab.d.ts.map +1 -1
  409. package/lib/cjs/appui-react/widget-panels/Tab.js +3 -4
  410. package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
  411. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts +1 -1
  412. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  413. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +55 -68
  414. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  415. package/lib/cjs/appui-react/widget-panels/Toolbars.js +3 -2
  416. package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
  417. package/lib/cjs/appui-react/widget-panels/Toolbars.scss +3 -1
  418. package/lib/cjs/appui-react/widgets/BackstageAppButton.d.ts.map +1 -1
  419. package/lib/cjs/appui-react/widgets/BackstageAppButton.js +3 -1
  420. package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -1
  421. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.d.ts.map +1 -1
  422. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +5 -3
  423. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  424. package/lib/cjs/appui-react/widgets/Widget.d.ts +2 -2
  425. package/lib/cjs/appui-react/widgets/Widget.d.ts.map +1 -1
  426. package/lib/cjs/appui-react/widgets/Widget.js.map +1 -1
  427. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +8 -3
  428. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  429. package/lib/cjs/appui-react/widgets/WidgetDef.js +61 -18
  430. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  431. package/lib/cjs/appui-react/widgets/WidgetHost.js +3 -2
  432. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  433. package/lib/cjs/appui-react/widgets/useWidget.js +1 -1
  434. package/lib/cjs/appui-react/widgets/useWidget.js.map +1 -1
  435. package/lib/cjs/appui-react.d.ts +3 -1
  436. package/lib/cjs/appui-react.d.ts.map +1 -1
  437. package/lib/cjs/appui-react.js +3 -3
  438. package/lib/cjs/appui-react.js.map +1 -1
  439. package/lib/esm/appui-react/UiFramework.d.ts +181 -10
  440. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  441. package/lib/esm/appui-react/UiFramework.js +301 -21
  442. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  443. package/lib/esm/appui-react/accudraw/AccuDrawDialog.d.ts.map +1 -1
  444. package/lib/esm/appui-react/accudraw/AccuDrawDialog.js +3 -2
  445. package/lib/esm/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
  446. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  447. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +50 -33
  448. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  449. package/lib/esm/appui-react/accudraw/AccuDrawInputField.d.ts +1 -1
  450. package/lib/esm/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
  451. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +5 -7
  452. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  453. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.d.ts +7 -6
  454. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.d.ts.map +1 -1
  455. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js +9 -0
  456. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  457. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  458. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js +10 -10
  459. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  460. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +2 -1
  461. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  462. package/lib/esm/appui-react/backstage/BackstageItem.d.ts +2 -2
  463. package/lib/esm/appui-react/backstage/BackstageItem.d.ts.map +1 -1
  464. package/lib/esm/appui-react/backstage/BackstageItem.js.map +1 -1
  465. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +1 -1
  466. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  467. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts +5 -0
  468. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  469. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +23 -16
  470. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  471. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.scss +12 -10
  472. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.d.ts +2 -0
  473. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.d.ts.map +1 -1
  474. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js +7 -1
  475. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  476. package/lib/esm/appui-react/configurableui/TimeTracker.js +2 -1
  477. package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
  478. package/lib/esm/appui-react/content/ContentLayout.js +12 -9
  479. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  480. package/lib/esm/appui-react/content/DefaultViewOverlay.js +4 -3
  481. package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
  482. package/lib/esm/appui-react/content/DefaultViewOverlay.scss +14 -19
  483. package/lib/esm/appui-react/content/FloatingViewportContent.js +2 -1
  484. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
  485. package/lib/esm/appui-react/content/IModelViewport.d.ts.map +1 -1
  486. package/lib/esm/appui-react/content/IModelViewport.js +8 -9
  487. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  488. package/lib/esm/appui-react/content/InternalContentLayoutManager.js +2 -1
  489. package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  490. package/lib/esm/appui-react/content/InternalContentViewManager.js +2 -2
  491. package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
  492. package/lib/esm/appui-react/content/split-pane/SplitPane.js +12 -10
  493. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
  494. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.d.ts +2 -2
  495. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  496. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js +3 -2
  497. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  498. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.d.ts +8 -4
  499. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.d.ts.map +1 -1
  500. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.js +102 -50
  501. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  502. package/lib/esm/appui-react/dialog/ContentDialog.js +6 -3
  503. package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
  504. package/lib/esm/appui-react/dialog/DialogManagerBase.js +3 -2
  505. package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
  506. package/lib/esm/appui-react/framework/FrameworkVisibility.d.ts +4 -2
  507. package/lib/esm/appui-react/framework/FrameworkVisibility.d.ts.map +1 -1
  508. package/lib/esm/appui-react/framework/FrameworkVisibility.js.map +1 -1
  509. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +0 -5
  510. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  511. package/lib/esm/appui-react/frontstage/FrontstageDef.js +21 -78
  512. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  513. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
  514. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js +1 -3
  515. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  516. package/lib/esm/appui-react/frontstage/ModalFrontstage.d.ts +0 -1
  517. package/lib/esm/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
  518. package/lib/esm/appui-react/frontstage/ModalFrontstage.js +1 -2
  519. package/lib/esm/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  520. package/lib/esm/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
  521. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +7 -6
  522. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  523. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +2 -1
  524. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  525. package/lib/esm/appui-react/hooks/useActiveToolId.d.ts +6 -0
  526. package/lib/esm/appui-react/hooks/useActiveToolId.d.ts.map +1 -0
  527. package/lib/esm/appui-react/hooks/useActiveToolId.js +20 -0
  528. package/lib/esm/appui-react/hooks/useActiveToolId.js.map +1 -0
  529. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js +11 -7
  530. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  531. package/lib/esm/appui-react/hooks/useConditionalValue.d.ts +15 -0
  532. package/lib/esm/appui-react/hooks/useConditionalValue.d.ts.map +1 -0
  533. package/lib/esm/appui-react/hooks/useConditionalValue.js +39 -0
  534. package/lib/esm/appui-react/hooks/useConditionalValue.js.map +1 -0
  535. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js +11 -7
  536. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  537. package/lib/esm/appui-react/hooks/useSolarDataProvider.js +13 -8
  538. package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  539. package/lib/esm/appui-react/keyins/Keyins.d.ts +35 -0
  540. package/lib/esm/appui-react/keyins/Keyins.d.ts.map +1 -0
  541. package/lib/esm/appui-react/keyins/Keyins.js +50 -0
  542. package/lib/esm/appui-react/keyins/Keyins.js.map +1 -0
  543. package/lib/esm/appui-react/layers.scss +1 -1
  544. package/lib/esm/appui-react/layout/StandardLayout.d.ts.map +1 -1
  545. package/lib/esm/appui-react/layout/StandardLayout.js +10 -10
  546. package/lib/esm/appui-react/layout/StandardLayout.js.map +1 -1
  547. package/lib/esm/appui-react/layout/_widgetopacity.scss +3 -1
  548. package/lib/esm/appui-react/layout/base/DragManager.js +2 -1
  549. package/lib/esm/appui-react/layout/base/DragManager.js.map +1 -1
  550. package/lib/esm/appui-react/layout/base/NineZone.js +1 -1
  551. package/lib/esm/appui-react/layout/base/NineZone.js.map +1 -1
  552. package/lib/esm/appui-react/layout/base/usePointerCaptor.d.ts.map +1 -1
  553. package/lib/esm/appui-react/layout/base/usePointerCaptor.js +3 -0
  554. package/lib/esm/appui-react/layout/base/usePointerCaptor.js.map +1 -1
  555. package/lib/esm/appui-react/layout/outline/TabOutline.js +1 -1
  556. package/lib/esm/appui-react/layout/outline/TabOutline.js.map +1 -1
  557. package/lib/esm/appui-react/layout/outline/WidgetOutline.js +1 -1
  558. package/lib/esm/appui-react/layout/outline/WidgetOutline.js.map +1 -1
  559. package/lib/esm/appui-react/layout/state/NineZoneStateReducer.js +14 -12
  560. package/lib/esm/appui-react/layout/state/NineZoneStateReducer.js.map +1 -1
  561. package/lib/esm/appui-react/layout/state/internal/NineZoneStateHelpers.js +2 -1
  562. package/lib/esm/appui-react/layout/state/internal/NineZoneStateHelpers.js.map +1 -1
  563. package/lib/esm/appui-react/layout/state/internal/TabStateHelpers.js +3 -2
  564. package/lib/esm/appui-react/layout/state/internal/TabStateHelpers.js.map +1 -1
  565. package/lib/esm/appui-react/layout/state/internal/WidgetStateHelpers.js +4 -4
  566. package/lib/esm/appui-react/layout/state/internal/WidgetStateHelpers.js.map +1 -1
  567. package/lib/esm/appui-react/layout/target/TitleBarTarget.js +1 -1
  568. package/lib/esm/appui-react/layout/target/TitleBarTarget.js.map +1 -1
  569. package/lib/esm/appui-react/layout/widget/Content.d.ts.map +1 -1
  570. package/lib/esm/appui-react/layout/widget/Content.js +5 -5
  571. package/lib/esm/appui-react/layout/widget/Content.js.map +1 -1
  572. package/lib/esm/appui-react/layout/widget/ContentRenderer.js +2 -2
  573. package/lib/esm/appui-react/layout/widget/ContentRenderer.js.map +1 -1
  574. package/lib/esm/appui-react/layout/widget/FloatingTab.js +6 -5
  575. package/lib/esm/appui-react/layout/widget/FloatingTab.js.map +1 -1
  576. package/lib/esm/appui-react/layout/widget/FloatingWidget.js +4 -2
  577. package/lib/esm/appui-react/layout/widget/FloatingWidget.js.map +1 -1
  578. package/lib/esm/appui-react/layout/widget/NavigationArea.scss +4 -1
  579. package/lib/esm/appui-react/layout/widget/PanelWidget.js +1 -1
  580. package/lib/esm/appui-react/layout/widget/PanelWidget.js.map +1 -1
  581. package/lib/esm/appui-react/layout/widget/Tab.js +4 -4
  582. package/lib/esm/appui-react/layout/widget/Tab.js.map +1 -1
  583. package/lib/esm/appui-react/layout/widget/ToolsArea.scss +2 -0
  584. package/lib/esm/appui-react/layout/widget/Widget.d.ts.map +1 -1
  585. package/lib/esm/appui-react/layout/widget/Widget.js +2 -2
  586. package/lib/esm/appui-react/layout/widget/Widget.js.map +1 -1
  587. package/lib/esm/appui-react/layout/widget/useIsToolSettingsTab.js +1 -1
  588. package/lib/esm/appui-react/layout/widget/useIsToolSettingsTab.js.map +1 -1
  589. package/lib/esm/appui-react/layout/widget-panels/PanelSections.js +8 -5
  590. package/lib/esm/appui-react/layout/widget-panels/PanelSections.js.map +1 -1
  591. package/lib/esm/appui-react/layout/widget-panels/useAnimatePanel.d.ts +1 -1
  592. package/lib/esm/appui-react/layout/widget-panels/useAnimatePanel.js +2 -1
  593. package/lib/esm/appui-react/layout/widget-panels/useAnimatePanel.js.map +1 -1
  594. package/lib/esm/appui-react/messages/AppNotificationManager.js +1 -1
  595. package/lib/esm/appui-react/messages/AppNotificationManager.js.map +1 -1
  596. package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
  597. package/lib/esm/appui-react/messages/MessageManager.js +6 -6
  598. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  599. package/lib/esm/appui-react/messages/MessageRenderer.js +17 -11
  600. package/lib/esm/appui-react/messages/MessageRenderer.js.map +1 -1
  601. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
  602. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js +2 -6
  603. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  604. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
  605. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js +2 -2
  606. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  607. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.d.ts +0 -1
  608. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
  609. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js +1 -2
  610. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  611. package/lib/esm/appui-react/pickers/ViewSelector.js +6 -5
  612. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  613. package/lib/esm/appui-react/popup/CardPopup.d.ts +21 -9
  614. package/lib/esm/appui-react/popup/CardPopup.d.ts.map +1 -1
  615. package/lib/esm/appui-react/popup/CardPopup.js +15 -7
  616. package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
  617. package/lib/esm/appui-react/popup/ComponentPopup.d.ts +18 -0
  618. package/lib/esm/appui-react/popup/ComponentPopup.d.ts.map +1 -0
  619. package/lib/esm/appui-react/popup/ComponentPopup.js +31 -0
  620. package/lib/esm/appui-react/popup/ComponentPopup.js.map +1 -0
  621. package/lib/esm/appui-react/popup/HTMLElementPopup.d.ts +4 -1
  622. package/lib/esm/appui-react/popup/HTMLElementPopup.d.ts.map +1 -1
  623. package/lib/esm/appui-react/popup/HTMLElementPopup.js +1 -0
  624. package/lib/esm/appui-react/popup/HTMLElementPopup.js.map +1 -1
  625. package/lib/esm/appui-react/popup/InputEditorPopup.d.ts +4 -4
  626. package/lib/esm/appui-react/popup/InputEditorPopup.d.ts.map +1 -1
  627. package/lib/esm/appui-react/popup/InputEditorPopup.js.map +1 -1
  628. package/lib/esm/appui-react/popup/KeyinPalettePanel.d.ts +1 -1
  629. package/lib/esm/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
  630. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +19 -12
  631. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  632. package/lib/esm/appui-react/popup/KeyinPalettePopup.d.ts +4 -2
  633. package/lib/esm/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
  634. package/lib/esm/appui-react/popup/KeyinPalettePopup.js +9 -3
  635. package/lib/esm/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  636. package/lib/esm/appui-react/popup/PopupManager.d.ts +45 -9
  637. package/lib/esm/appui-react/popup/PopupManager.d.ts.map +1 -1
  638. package/lib/esm/appui-react/popup/PopupManager.js +87 -14
  639. package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
  640. package/lib/esm/appui-react/popup/ToolbarPopup.d.ts +16 -6
  641. package/lib/esm/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  642. package/lib/esm/appui-react/popup/ToolbarPopup.js +9 -3
  643. package/lib/esm/appui-react/popup/ToolbarPopup.js.map +1 -1
  644. package/lib/esm/appui-react/preview/PreviewFeatures.d.ts +3 -1
  645. package/lib/esm/appui-react/preview/PreviewFeatures.d.ts.map +1 -1
  646. package/lib/esm/appui-react/preview/PreviewFeatures.js +2 -2
  647. package/lib/esm/appui-react/preview/PreviewFeatures.js.map +1 -1
  648. package/lib/esm/appui-react/preview/activate-dropped-tab/activateDroppedTab.d.ts +6 -0
  649. package/lib/esm/appui-react/preview/activate-dropped-tab/activateDroppedTab.d.ts.map +1 -0
  650. package/lib/esm/appui-react/{layout/state → preview/activate-dropped-tab}/activateDroppedTab.js +5 -4
  651. package/lib/esm/appui-react/preview/activate-dropped-tab/activateDroppedTab.js.map +1 -0
  652. package/lib/esm/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.d.ts +6 -0
  653. package/lib/esm/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.d.ts.map +1 -0
  654. package/lib/esm/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.js +14 -0
  655. package/lib/esm/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.js.map +1 -0
  656. package/lib/esm/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.scss +10 -0
  657. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.d.ts +7 -7
  658. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.d.ts.map +1 -1
  659. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.js +7 -7
  660. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.js.map +1 -1
  661. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.scss +6 -6
  662. package/lib/esm/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js +1 -1
  663. package/lib/esm/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js.map +1 -1
  664. package/lib/esm/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.js +1 -1
  665. package/lib/esm/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.js.map +1 -1
  666. package/lib/esm/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.scss +4 -4
  667. package/lib/esm/appui-react/preview/new-toolbars/ActionItem.d.ts +12 -0
  668. package/lib/esm/appui-react/preview/new-toolbars/ActionItem.d.ts.map +1 -0
  669. package/lib/esm/appui-react/preview/new-toolbars/ActionItem.js +22 -0
  670. package/lib/esm/appui-react/preview/new-toolbars/ActionItem.js.map +1 -0
  671. package/lib/esm/appui-react/preview/new-toolbars/Badge.d.ts +9 -0
  672. package/lib/esm/appui-react/preview/new-toolbars/Badge.d.ts.map +1 -0
  673. package/lib/esm/appui-react/preview/new-toolbars/Badge.js +16 -0
  674. package/lib/esm/appui-react/preview/new-toolbars/Badge.js.map +1 -0
  675. package/lib/esm/appui-react/preview/new-toolbars/Badge.scss +13 -0
  676. package/lib/esm/appui-react/preview/new-toolbars/CustomItem.d.ts +12 -0
  677. package/lib/esm/appui-react/preview/new-toolbars/CustomItem.d.ts.map +1 -0
  678. package/lib/esm/appui-react/preview/new-toolbars/CustomItem.js +33 -0
  679. package/lib/esm/appui-react/preview/new-toolbars/CustomItem.js.map +1 -0
  680. package/lib/esm/appui-react/preview/new-toolbars/ExpandIndicator.d.ts +5 -0
  681. package/lib/esm/appui-react/preview/new-toolbars/ExpandIndicator.d.ts.map +1 -0
  682. package/lib/esm/appui-react/{statusbar/Popup.js → preview/new-toolbars/ExpandIndicator.js} +5 -10
  683. package/lib/esm/appui-react/preview/new-toolbars/ExpandIndicator.js.map +1 -0
  684. package/lib/esm/appui-react/preview/new-toolbars/ExpandIndicator.scss +17 -0
  685. package/lib/esm/appui-react/preview/new-toolbars/GroupItem.d.ts +22 -0
  686. package/lib/esm/appui-react/preview/new-toolbars/GroupItem.d.ts.map +1 -0
  687. package/lib/esm/appui-react/preview/new-toolbars/GroupItem.js +74 -0
  688. package/lib/esm/appui-react/preview/new-toolbars/GroupItem.js.map +1 -0
  689. package/lib/esm/appui-react/preview/new-toolbars/Item.d.ts +21 -0
  690. package/lib/esm/appui-react/preview/new-toolbars/Item.d.ts.map +1 -0
  691. package/lib/esm/appui-react/preview/new-toolbars/Item.js +49 -0
  692. package/lib/esm/appui-react/preview/new-toolbars/Item.js.map +1 -0
  693. package/lib/esm/appui-react/preview/new-toolbars/OverflowButton.d.ts +17 -0
  694. package/lib/esm/appui-react/preview/new-toolbars/OverflowButton.d.ts.map +1 -0
  695. package/lib/esm/appui-react/preview/new-toolbars/OverflowButton.js +34 -0
  696. package/lib/esm/appui-react/preview/new-toolbars/OverflowButton.js.map +1 -0
  697. package/lib/esm/appui-react/preview/new-toolbars/ToolGroup.d.ts +18 -0
  698. package/lib/esm/appui-react/preview/new-toolbars/ToolGroup.d.ts.map +1 -0
  699. package/lib/esm/appui-react/preview/new-toolbars/ToolGroup.js +81 -0
  700. package/lib/esm/appui-react/preview/new-toolbars/ToolGroup.js.map +1 -0
  701. package/lib/esm/appui-react/preview/new-toolbars/ToolGroup.scss +43 -0
  702. package/lib/esm/appui-react/preview/new-toolbars/Toolbar.d.ts +23 -0
  703. package/lib/esm/appui-react/preview/new-toolbars/Toolbar.d.ts.map +1 -0
  704. package/lib/esm/appui-react/preview/new-toolbars/Toolbar.js +36 -0
  705. package/lib/esm/appui-react/preview/new-toolbars/Toolbar.js.map +1 -0
  706. package/lib/esm/appui-react/preview/new-toolbars/useOverflow.d.ts +9 -0
  707. package/lib/esm/appui-react/preview/new-toolbars/useOverflow.d.ts.map +1 -0
  708. package/lib/esm/appui-react/preview/new-toolbars/useOverflow.js +89 -0
  709. package/lib/esm/appui-react/preview/new-toolbars/useOverflow.js.map +1 -0
  710. package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.js +2 -1
  711. package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.js.map +1 -1
  712. package/lib/esm/appui-react/redux/FrameworkState.d.ts +1 -1
  713. package/lib/esm/appui-react/redux/SessionState.d.ts +15 -3
  714. package/lib/esm/appui-react/redux/SessionState.d.ts.map +1 -1
  715. package/lib/esm/appui-react/redux/SessionState.js +8 -1
  716. package/lib/esm/appui-react/redux/SessionState.js.map +1 -1
  717. package/lib/esm/appui-react/selection/SelectionContextItemDef.js +2 -2
  718. package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  719. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.d.ts.map +1 -1
  720. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +6 -8
  721. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  722. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.d.ts.map +1 -1
  723. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.js +7 -7
  724. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
  725. package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  726. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +40 -46
  727. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  728. package/lib/esm/appui-react/shared/ConditionalValue.d.ts +17 -0
  729. package/lib/esm/appui-react/shared/ConditionalValue.d.ts.map +1 -0
  730. package/lib/esm/appui-react/shared/ConditionalValue.js +13 -0
  731. package/lib/esm/appui-react/shared/ConditionalValue.js.map +1 -0
  732. package/lib/esm/appui-react/shared/ItemDefBase.d.ts +2 -2
  733. package/lib/esm/appui-react/shared/ItemDefBase.d.ts.map +1 -1
  734. package/lib/esm/appui-react/shared/ItemDefBase.js.map +1 -1
  735. package/lib/esm/appui-react/shared/ItemProps.d.ts +13 -2
  736. package/lib/esm/appui-react/shared/ItemProps.d.ts.map +1 -1
  737. package/lib/esm/appui-react/shared/ItemProps.js.map +1 -1
  738. package/lib/esm/appui-react/shared/MenuItem.d.ts +21 -2
  739. package/lib/esm/appui-react/shared/MenuItem.d.ts.map +1 -1
  740. package/lib/esm/appui-react/shared/MenuItem.js.map +1 -1
  741. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +16 -11
  742. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  743. package/lib/esm/appui-react/statusbar/Indicator.js +2 -1
  744. package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -1
  745. package/lib/esm/appui-react/statusbar/Overflow.d.ts.map +1 -1
  746. package/lib/esm/appui-react/statusbar/Overflow.js +3 -3
  747. package/lib/esm/appui-react/statusbar/Overflow.js.map +1 -1
  748. package/lib/esm/appui-react/statusbar/StatusBar.d.ts +1 -1
  749. package/lib/esm/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  750. package/lib/esm/appui-react/statusbar/StatusBar.js +6 -4
  751. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  752. package/lib/esm/appui-react/statusbar/StatusBarItem.d.ts +2 -2
  753. package/lib/esm/appui-react/statusbar/StatusBarItem.d.ts.map +1 -1
  754. package/lib/esm/appui-react/statusbar/StatusBarItem.js.map +1 -1
  755. package/lib/esm/appui-react/statusbar/{Popup.d.ts → popup/Popup.d.ts} +2 -1
  756. package/lib/esm/appui-react/statusbar/popup/Popup.d.ts.map +1 -0
  757. package/lib/esm/appui-react/{layout/footer → statusbar/popup}/Popup.js +8 -9
  758. package/lib/esm/appui-react/statusbar/popup/Popup.js.map +1 -0
  759. package/lib/esm/appui-react/{layout/footer → statusbar/popup}/Popup.scss +1 -7
  760. package/lib/esm/appui-react/statusfields/ActivityCenter.d.ts.map +1 -1
  761. package/lib/esm/appui-react/statusfields/ActivityCenter.js +4 -4
  762. package/lib/esm/appui-react/statusfields/ActivityCenter.js.map +1 -1
  763. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts +0 -1
  764. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  765. package/lib/esm/appui-react/statusfields/MessageCenter.js +4 -4
  766. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  767. package/lib/esm/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  768. package/lib/esm/appui-react/statusfields/SectionsField.js +7 -10
  769. package/lib/esm/appui-react/statusfields/SectionsField.js.map +1 -1
  770. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  771. package/lib/esm/appui-react/statusfields/SelectionScope.js +4 -4
  772. package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
  773. package/lib/esm/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  774. package/lib/esm/appui-react/statusfields/SnapMode.js +14 -12
  775. package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
  776. package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts +0 -2
  777. package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  778. package/lib/esm/appui-react/statusfields/ViewAttributes.js +12 -20
  779. package/lib/esm/appui-react/statusfields/ViewAttributes.js.map +1 -1
  780. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  781. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +3 -3
  782. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  783. package/lib/esm/appui-react/theme/ThemeManager.d.ts.map +1 -1
  784. package/lib/esm/appui-react/theme/ThemeManager.js +3 -2
  785. package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
  786. package/lib/esm/appui-react/timeline/SolarTimelineDataProvider.d.ts.map +1 -1
  787. package/lib/esm/appui-react/timeline/SolarTimelineDataProvider.js +2 -3
  788. package/lib/esm/appui-react/timeline/SolarTimelineDataProvider.js.map +1 -1
  789. package/lib/esm/appui-react/toolbar/Toolbar.d.ts +4 -3
  790. package/lib/esm/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  791. package/lib/esm/appui-react/toolbar/Toolbar.js +29 -5
  792. package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
  793. package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts +4 -2
  794. package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  795. package/lib/esm/appui-react/toolbar/ToolbarComposer.js +15 -12
  796. package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  797. package/lib/esm/appui-react/toolbar/ToolbarHelper.d.ts.map +1 -1
  798. package/lib/esm/appui-react/toolbar/ToolbarHelper.js +5 -6
  799. package/lib/esm/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  800. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts +2 -2
  801. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
  802. package/lib/esm/appui-react/toolbar/ToolbarItem.js.map +1 -1
  803. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js +4 -3
  804. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  805. package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  806. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +18 -11
  807. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  808. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js +2 -3
  809. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  810. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +22 -20
  811. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  812. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +10 -9
  813. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  814. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +2 -1
  815. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  816. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +14 -8
  817. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  818. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.d.ts +47 -38
  819. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.d.ts.map +1 -1
  820. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +100 -141
  821. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  822. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js +1 -1
  823. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  824. package/lib/esm/appui-react/useTranslation.d.ts +10 -0
  825. package/lib/esm/appui-react/useTranslation.d.ts.map +1 -0
  826. package/lib/esm/appui-react/useTranslation.js +16 -0
  827. package/lib/esm/appui-react/useTranslation.js.map +1 -0
  828. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js +3 -3
  829. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  830. package/lib/esm/appui-react/utils/Placement.d.ts +35 -0
  831. package/lib/esm/appui-react/utils/Placement.d.ts.map +1 -0
  832. package/lib/esm/appui-react/utils/Placement.js +57 -0
  833. package/lib/esm/appui-react/utils/Placement.js.map +1 -0
  834. package/lib/esm/appui-react/utils/PropsHelper.js +4 -4
  835. package/lib/esm/appui-react/utils/PropsHelper.js.map +1 -1
  836. package/lib/esm/appui-react/widget-panels/Content.d.ts.map +1 -1
  837. package/lib/esm/appui-react/widget-panels/Content.js +12 -11
  838. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  839. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  840. package/lib/esm/appui-react/widget-panels/Frontstage.js +30 -23
  841. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  842. package/lib/esm/appui-react/widget-panels/StatusBar.js +1 -1
  843. package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
  844. package/lib/esm/appui-react/widget-panels/Tab.d.ts +1 -1
  845. package/lib/esm/appui-react/widget-panels/Tab.d.ts.map +1 -1
  846. package/lib/esm/appui-react/widget-panels/Tab.js +2 -3
  847. package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
  848. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts +1 -1
  849. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  850. package/lib/esm/appui-react/widget-panels/ToolSettings.js +53 -66
  851. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  852. package/lib/esm/appui-react/widget-panels/Toolbars.js +3 -2
  853. package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
  854. package/lib/esm/appui-react/widget-panels/Toolbars.scss +3 -1
  855. package/lib/esm/appui-react/widgets/BackstageAppButton.d.ts.map +1 -1
  856. package/lib/esm/appui-react/widgets/BackstageAppButton.js +3 -1
  857. package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -1
  858. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.d.ts.map +1 -1
  859. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +5 -3
  860. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  861. package/lib/esm/appui-react/widgets/Widget.d.ts +2 -2
  862. package/lib/esm/appui-react/widgets/Widget.d.ts.map +1 -1
  863. package/lib/esm/appui-react/widgets/Widget.js.map +1 -1
  864. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +8 -3
  865. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  866. package/lib/esm/appui-react/widgets/WidgetDef.js +59 -17
  867. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  868. package/lib/esm/appui-react/widgets/WidgetHost.js +3 -2
  869. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  870. package/lib/esm/appui-react/widgets/useWidget.js +1 -1
  871. package/lib/esm/appui-react/widgets/useWidget.js.map +1 -1
  872. package/lib/esm/appui-react.d.ts +3 -1
  873. package/lib/esm/appui-react.d.ts.map +1 -1
  874. package/lib/esm/appui-react.js +3 -1
  875. package/lib/esm/appui-react.js.map +1 -1
  876. package/lib/public/locales/en/UiFramework.json +7 -1
  877. package/package.json +10 -8
  878. package/lib/cjs/appui-react/layout/footer/Popup.d.ts +0 -12
  879. package/lib/cjs/appui-react/layout/footer/Popup.d.ts.map +0 -1
  880. package/lib/cjs/appui-react/layout/footer/Popup.js.map +0 -1
  881. package/lib/cjs/appui-react/layout/state/activateDroppedTab.d.ts +0 -5
  882. package/lib/cjs/appui-react/layout/state/activateDroppedTab.d.ts.map +0 -1
  883. package/lib/cjs/appui-react/layout/state/activateDroppedTab.js.map +0 -1
  884. package/lib/cjs/appui-react/statusbar/Popup.d.ts.map +0 -1
  885. package/lib/cjs/appui-react/statusbar/Popup.js.map +0 -1
  886. package/lib/esm/appui-react/layout/footer/Popup.d.ts +0 -12
  887. package/lib/esm/appui-react/layout/footer/Popup.d.ts.map +0 -1
  888. package/lib/esm/appui-react/layout/footer/Popup.js.map +0 -1
  889. package/lib/esm/appui-react/layout/state/activateDroppedTab.d.ts +0 -5
  890. package/lib/esm/appui-react/layout/state/activateDroppedTab.d.ts.map +0 -1
  891. package/lib/esm/appui-react/layout/state/activateDroppedTab.js.map +0 -1
  892. package/lib/esm/appui-react/statusbar/Popup.d.ts.map +0 -1
  893. package/lib/esm/appui-react/statusbar/Popup.js.map +0 -1
@@ -23,6 +23,7 @@ import { isPanelWidgetRestoreState, } from "./WidgetRestoreState";
23
23
  import { addDockedToolSettings } from "./internal/ToolSettingsStateHelpers";
24
24
  /** @internal */
25
25
  export function NineZoneStateReducer(state, action) {
26
+ var _a, _b, _c, _d, _e, _f, _g, _h;
26
27
  switch (action.type) {
27
28
  case "RESIZE": {
28
29
  state = produce(state, (draft) => {
@@ -280,7 +281,7 @@ export function NineZoneStateReducer(state, action) {
280
281
  });
281
282
  return removeWidget(state, widget.id);
282
283
  }
283
- const sectionIndex = sendBackHomeState.sectionIndex ?? 0;
284
+ const sectionIndex = (_a = sendBackHomeState.sectionIndex) !== null && _a !== void 0 ? _a : 0;
284
285
  const home = state.floatingWidgets.byId[action.id].home;
285
286
  const destinationWidgetId = home.widgetId
286
287
  ? home.widgetId
@@ -459,7 +460,7 @@ export function NineZoneStateReducer(state, action) {
459
460
  contentHeight = popoutContentContainer.offsetHeight + 20;
460
461
  }
461
462
  }
462
- let preferredBounds = savedTab?.popoutBounds
463
+ let preferredBounds = (savedTab === null || savedTab === void 0 ? void 0 : savedTab.popoutBounds)
463
464
  ? Rectangle.create(savedTab.popoutBounds)
464
465
  : Rectangle.createFromSize({
465
466
  height: contentHeight,
@@ -512,7 +513,7 @@ export function NineZoneStateReducer(state, action) {
512
513
  }
513
514
  case "WIDGET_TAB_CLOSE": {
514
515
  const { id } = action;
515
- if (state.toolSettings?.tabId === id &&
516
+ if (((_b = state.toolSettings) === null || _b === void 0 ? void 0 : _b.tabId) === id &&
516
517
  state.toolSettings.type === "docked") {
517
518
  return state;
518
519
  }
@@ -535,9 +536,8 @@ export function NineZoneStateReducer(state, action) {
535
536
  if (isFloatingTabLocation(location))
536
537
  return state;
537
538
  const tab = state.tabs[id];
538
- const preferredSize = size ??
539
- tab.preferredFloatingWidgetSize ?? { height: 400, width: 400 };
540
- const preferredPosition = position ?? { x: 50, y: 100 };
539
+ const preferredSize = (_c = size !== null && size !== void 0 ? size : tab.preferredFloatingWidgetSize) !== null && _c !== void 0 ? _c : { height: 400, width: 400 };
540
+ const preferredPosition = position !== null && position !== void 0 ? position : { x: 50, y: 100 };
541
541
  const preferredBounds = Rectangle.createFromSize(preferredSize).offset(preferredPosition);
542
542
  const nzBounds = Rectangle.createFromSize(state.size);
543
543
  const containedBounds = preferredBounds.containIn(nzBounds);
@@ -575,7 +575,7 @@ export function NineZoneStateReducer(state, action) {
575
575
  : home.floatingWidget.home,
576
576
  }, widget);
577
577
  }
578
- const isToolSettings = state.toolSettings?.tabId === id;
578
+ const isToolSettings = ((_d = state.toolSettings) === null || _d === void 0 ? void 0 : _d.tabId) === id;
579
579
  if (isToolSettings) {
580
580
  state = produce(state, (draft) => {
581
581
  assert(!!draft.toolSettings);
@@ -663,18 +663,18 @@ export function NineZoneStateReducer(state, action) {
663
663
  if (action.floatingWidget.id in state.widgets) {
664
664
  return addTabToWidget(state, action.id, action.floatingWidget.id);
665
665
  }
666
- const size = action.overrides?.preferredFloatingWidgetSize ?? {
666
+ const size = (_f = (_e = action.overrides) === null || _e === void 0 ? void 0 : _e.preferredFloatingWidgetSize) !== null && _f !== void 0 ? _f : {
667
667
  height: 200,
668
668
  width: 300,
669
669
  };
670
- const position = action.floatingWidget.preferredPosition ?? {
670
+ const position = (_g = action.floatingWidget.preferredPosition) !== null && _g !== void 0 ? _g : {
671
671
  x: (state.size.width - size.width) / 2,
672
672
  y: (state.size.height - size.height) / 2,
673
673
  };
674
674
  const nzBounds = Rectangle.createFromSize(state.size);
675
675
  const bounds = Rectangle.createFromSize(size).offset(position);
676
676
  const containedBounds = bounds.containIn(nzBounds);
677
- const userSized = !!action.overrides?.preferredFloatingWidgetSize;
677
+ const userSized = !!((_h = action.overrides) === null || _h === void 0 ? void 0 : _h.preferredFloatingWidgetSize);
678
678
  return addFloatingWidget(state, action.floatingWidget.id, [action.id], {
679
679
  bounds: containedBounds.toProps(),
680
680
  home: {
@@ -709,7 +709,8 @@ export function NineZoneStateReducer(state, action) {
709
709
  return state;
710
710
  }
711
711
  function openWidgetTab(state, id) {
712
- if (state.toolSettings?.tabId === id &&
712
+ var _a;
713
+ if (((_a = state.toolSettings) === null || _a === void 0 ? void 0 : _a.tabId) === id &&
713
714
  state.toolSettings.type === "docked") {
714
715
  return produce(state, (draft) => {
715
716
  assert(draft.toolSettings.type === "docked");
@@ -719,6 +720,7 @@ function openWidgetTab(state, id) {
719
720
  let location;
720
721
  [state, location] = unhideTab(state, id);
721
722
  return produce(state, (draft) => {
723
+ var _a;
722
724
  const widget = draft.widgets[location.widgetId];
723
725
  widget.minimized = false;
724
726
  widget.activeTabId = id;
@@ -727,7 +729,7 @@ function openWidgetTab(state, id) {
727
729
  panel.collapsed = false;
728
730
  // istanbul ignore next
729
731
  if (undefined === panel.size || 0 === panel.size) {
730
- panel.size = panel.minSize ?? 200;
732
+ panel.size = (_a = panel.minSize) !== null && _a !== void 0 ? _a : 200;
731
733
  }
732
734
  }
733
735
  });
@@ -1 +1 @@
1
- {"version":3,"file":"NineZoneStateReducer.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/state/NineZoneStateReducer.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE5E,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAGvD,OAAO,EACL,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,aAAa,EACb,MAAM,EACN,cAAc,EACd,qBAAqB,EACrB,SAAS,EACT,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,GACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,4BAA4B,EAC5B,aAAa,EACb,YAAY,EACZ,8BAA8B,GAC/B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,0BAA0B,EAC1B,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,EACpB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,yBAAyB,GAE1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,gBAAgB;AAChB,MAAM,UAAU,oBAAoB,CAClC,KAAoB,EACpB,MAAsB;IAEtB,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,QAAQ,CAAC,CAAC;YACb,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC/B,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACvD,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE;gBAC7C,MAAM,cAAc,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACtD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBACvD,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACnD,KAAK,GAAG,yBAAyB,CAAC,KAAK,EAAE,EAAE,EAAE;oBAC3C,MAAM,EAAE,eAAe,CAAC,OAAO,EAAE;iBAClC,CAAC,CAAC;aACJ;YACD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;gBAC7B,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;oBAC9C,MAAM,IAAI,GAAG,YAAY,CACvB,KAAK,CAAC,IAAI,EACV,IAAI,EACJ,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,IAAI,CACX,CAAC;oBACF,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;gBACpB,CAAC,CAAC,CAAC;aACJ;YACD,OAAO,KAAK,CAAC;SACd;QACD,KAAK,wBAAwB,CAAC,CAAC;YAC7B,OAAO,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACpD,KAAK,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;YACrC,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,qBAAqB,CAAC,CAAC;YAC1B,OAAO,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACpD,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;YACrC,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,gBAAgB,CAAC,CAAC;YACrB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;YAE7C,OAAO,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC7C,MAAM,IAAI,GAAG,YAAY,CACvB,aAAa,EACb,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,IAAI,CACX,CAAC;gBACF,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;YACpB,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,oBAAoB,CAAC,CAAC;YACzB,OAAO,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACpD,MAAM,IAAI,GAAG,YAAY,CACvB,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,IAAI,EACV,MAAM,CAAC,OAAO,EACd,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,IAAI,CACX,CAAC;gBAEF,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC/B,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;YACpB,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,oBAAoB,CAAC,CAAC;YACzB,OAAO,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACpD,MAAM,IAAI,GAAG,YAAY,CACvB,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,OAAO,EACb,MAAM,CAAC,OAAO,EACd,KAAK,CAAC,IAAI,CACX,CAAC;gBAEF,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC/B,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;YACpB,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,qBAAqB,CAAC,CAAC;YAC1B,OAAO,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACpD,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;YACrC,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,0BAA0B,CAAC,CAAC;YAC/B,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACnE,OAAO,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACpD,KAAK,CAAC,eAAe,GAAG,eAAe,CAAC;YAC1C,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,mBAAmB,CAAC,CAAC;YACxB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;YACxB,OAAO,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC7C,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YAC3B,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,kBAAkB,CAAC,CAAC;YACvB,OAAO,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACpD,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC/B,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,qBAAqB,CAAC,CAAC;YAC1B,OAAO,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACpD,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;YAC/B,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,kBAAkB,CAAC,CAAC;YACvB,OAAO,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACpD,MAAM,IAAI,GAAG,YAAY,CACvB,MAAM,CAAC,IAAI,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,IAAI,CACX,CAAC;gBACF,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;YACpB,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,yBAAyB,CAAC,CAAC;YAC9B,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAAC;YAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAChD,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5C,OAAO,iBAAiB,CACtB,KAAK,EACL,mBAAmB,EACnB,MAAM,CAAC,IAAI,EACX;gBACE,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;gBACjD,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,EAAE,EAAE,MAAM,CAAC,mBAAmB;gBAC9B,IAAI,EAAE;oBACJ,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,QAAQ,EAAE,EAAE;oBACZ,WAAW;iBACZ;aACF,EACD;gBACE,GAAG,MAAM;gBACT,SAAS,EAAE,KAAK;aACjB,CACF,CAAC;SACH;QACD,KAAK,aAAa,CAAC,CAAC;YAClB,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;YAC5C,MAAM,cAAc,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpE,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzE,OAAO,yBAAyB,CAAC,KAAK,EAAE,gBAAgB,EAAE;gBACxD,MAAM,EAAE,SAAS,CAAC,OAAO,EAAE;aAC5B,CAAC,CAAC;SACJ;QACD,KAAK,iBAAiB,CAAC,CAAC;YACtB,wDAAwD;YACxD,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC;YAC5C,MAAM,cAAc,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpE,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;YAE9D,IAAI,uBAAuB,CAAC,MAAM,CAAC,EAAE;gBACnC,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACtD,IAAI,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBACxD,IAAI,aAAa,CAAC,SAAS,EAAE;oBAC3B,MAAM,eAAe,GAAG,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;oBACpE,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;iBAC9D;qBAAM;oBACL,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;iBAC3C;gBACD,KAAK,GAAG,yBAAyB,CAAC,KAAK,EAAE,gBAAgB,EAAE;oBACzD,MAAM,EAAE,SAAS,CAAC,OAAO,EAAE;iBAC5B,CAAC,CAAC;gBACH,OAAO,0BAA0B,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;aAC5D;YAED,KAAK,GAAG,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;YACtD,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE;gBAChC,KAAK,GAAG,8BAA8B,CACpC,KAAK,EACL,MAAM,CAAC,QAAQ,EACf,cAAc,CAAC,IAAI,CACpB,CAAC;gBACF,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC5D,MAAM,IAAI,GAAG,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;gBACvD,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE;oBAChD,IAAI;iBACL,CAAC,CAAC;aACJ;iBAAM,IAAI,wBAAwB,CAAC,MAAM,CAAC,EAAE;gBAC3C,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;oBACrD,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;oBACjE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,CAAC;gBACH,KAAK,GAAG,cAAc,CACpB,KAAK,EACL,MAAM,CAAC,WAAW,EAClB,aAAa,CAAC,IAAI,EAClB,aAAa,CACd,CAAC;aACH;iBAAM,IAAI,uBAAuB,CAAC,MAAM,CAAC,EAAE;gBAC1C,KAAK,GAAG,8BAA8B,CACpC,KAAK,EACL,MAAM,CAAC,QAAQ,EACf,cAAc,CAAC,IAAI,CACpB,CAAC;gBACF,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACzD,IAAI,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE;oBAC3C,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;wBACrD,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;oBAC1B,CAAC,CAAC,CAAC;iBACJ;gBACD,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC5D,MAAM,IAAI,GAAG,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;gBAChE,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE;oBAChD,IAAI;iBACL,CAAC,CAAC;aACJ;iBAAM;gBACL,MAAM,cAAc,GAAG,uBAAuB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC/D,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;oBACrD,KAAK,CAAC,OAAO,GAAG,CAAC,cAAc,CAAC,CAAC;oBACjC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,CAAC;gBACH,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,cAAc,EAAE,aAAa,CAAC,IAAI,EAAE;oBAChE,GAAG,aAAa;oBAChB,SAAS,EAAE,KAAK;iBACjB,CAAC,CAAC;aACJ;YACD,OAAO,KAAK,CAAC;SACd;QACD,KAAK,wBAAwB,CAAC,CAAC;YAC7B,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;YAC5B,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAEhD,MAAM,cAAc,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC7D,oEAAoE;YACpE,uBAAuB;YACvB,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE;gBACnD,KAAK,GAAG,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE;oBAClD,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;aACJ;YAED,MAAM,QAAQ,GAAG,GAAG,CAAC;YACrB,MAAM,SAAS,GAAG,GAAG,CAAC;YACtB,IAAI,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAExD,0BAA0B;YAC1B,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,GAAG,QAAQ,CAAC;YAC3C,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC;YAE5C,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACjE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;YAC5C,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;YAExE,8BAA8B;YAC9B,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC;YAC3C,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC;YAE5C,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACrE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;YACrD,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAEpD,KAAK,GAAG,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE;gBAClD,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC3C,IAAI,GAAG,CAAC,yBAAyB,EAAE;gBACjC,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;gBACjC,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;oBAC1D,aAAa,CAAC,KAAK,EAAE,6BAA6B,EAAE,IAAI,CAAC,CAAC;oBAC1D,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;gBACzB,CAAC,CAAC,CAAC;aACJ;YAED,OAAO,KAAK,CAAC;SACd;QACD,KAAK,4BAA4B,CAAC,CAAC;YACjC,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACnE,OAAO,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE;gBACjD,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE;aACzB,CAAC,CAAC;SACJ;QACD,KAAK,kCAAkC,CAAC,CAAC;YACvC,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC9B,MAAM,cAAc,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC7D,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC;gBACjC,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;gBAChD,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC3C,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;YACxB,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,gCAAgC,CAAC,CAAC;YACrC,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC9B,MAAM,cAAc,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC7D,cAAc,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;YAC9C,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,gCAAgC,CAAC,CAAC;YACrC,OAAO,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;SACrD;QACD,KAAK,2BAA2B,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAChD,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAEjE,kCAAkC;YAClC,IAAI,iBAAiB,CAAC,QAAQ,EAAE;gBAC9B,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gBACpE,MAAM,IAAI,GAAG,CAAC,GAAG,iBAAiB,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBACzD,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,CAAC,EAAE,EAAE;oBACrD,IAAI;iBACL,CAAC,CAAC;gBACH,OAAO,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;aACvC;YAED,MAAM,YAAY,GAAG,iBAAiB,CAAC,YAAY,IAAI,CAAC,CAAC;YACzD,MAAM,IAAI,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;YACxD,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ;gBACvC,CAAC,CAAC,IAAI,CAAC,QAAQ;gBACf,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAErD,kCAAkC;YAClC,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YACvC,OAAO,iBAAiB,CACtB,KAAK,EACL,iBAAiB,CAAC,IAAI,EACtB,mBAAmB,EACnB,MAAM,CAAC,IAAI,EACX,YAAY,CACb,CAAC;SACH;QACD,KAAK,yBAAyB,CAAC,CAAC;YAC9B,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;YAE/B,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAEvC,6BAA6B;YAC7B,IAAI,cAAuC,CAAC;YAC5C,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE;gBAClC,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC/C;iBAAM,IAAI,yBAAyB,CAAC,IAAI,CAAC,EAAE;gBAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtC,MAAM,cAAc,GAAG,uBAAuB,CAC5C,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,CACjB,CAAC;gBACF,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBAE/C,2DAA2D;gBAC3D,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,cAAc,EAAE;oBACnE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC3B,KAAK,CAAC,cAAc,GAAG,CAAC,EACxB,IAAI,CAAC,WAAW,CACjB,CAAC;oBACF,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;oBAC9C,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;iBAC3C;aACF;YAED,6BAA6B;YAC7B,IAAI,cAAc,EAAE;gBAClB,MAAM,IAAI,GAAG,CAAC,GAAG,cAAc,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBACtD,OAAO,iBAAiB,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,EAAE;oBACjD,IAAI;iBACL,CAAC,CAAC;aACJ;YAED,8BAA8B;YAC9B,IAAI,yBAAyB,CAAC,IAAI,CAAC,EAAE;gBACnC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ;oBAC7B,CAAC,CAAC,IAAI,CAAC,QAAQ;oBACf,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBACzD,OAAO,iBAAiB,CACtB,KAAK,EACL,IAAI,CAAC,IAAI,EACT,SAAS,EACT,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,EAChB,IAAI,CAAC,WAAW,CACjB,CAAC;aACH;YAED,6BAA6B;YAC7B,OAAO,iBAAiB,CACtB,KAAK,EACL,IAAI,CAAC,QAAQ,EACb,MAAM,CAAC,IAAI,EACX,IAAI,CAAC,cAAc,CACpB,CAAC;SACH;QACD,KAAK,kBAAkB,CAAC,CAAC;YACvB,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;YAChC,KAAK,GAAG,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YAClD,OAAO,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE;gBACxC,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;SACJ;QACD,KAAK,yBAAyB,CAAC,CAAC;YAC9B,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC;YAExD,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,WAAW,CAAC;YAChD,IAAI,CAAC,MAAM;gBAAE,OAAO,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAEtE,OAAO,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE;gBACzC,SAAS,EAAE,CAAC,MAAM,CAAC,SAAS;aAC7B,CAAC,CAAC;SACJ;QACD,KAAK,uBAAuB,CAAC,CAAC;YAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC;YACxB,IAAI,IAA6B,CAAC;YAClC,IAAI,MAAM,CAAC,gBAAgB,EAAE;gBAC3B,MAAM,cAAc,GAClB,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;gBACtD,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;aAC5B;iBAAM;gBACL,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACtB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACxC,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC3D,IAAI,GAAG;oBACL,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,WAAW;iBACZ,CAAC;aACH;YACD,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC/B,KAAK,CAAC,UAAU,GAAG,qBAAqB,CAAC,KAAK,EAAE;oBAC9C,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE;oBACjD,IAAI;iBACL,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,OAAO,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAC1C;QACD,KAAK,iBAAiB,CAAC,CAAC;YACtB,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;gBACpC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;gBACrB,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CACvD,MAAM,CAAC,MAAM,CACd,CAAC;gBACF,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,qBAAqB,CAAC,CAAC;YAC1B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC7B,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE;gBAChC,KAAK,GAAG,8BAA8B,CACpC,KAAK,EACL,MAAM,CAAC,QAAQ,EACf,KAAK,CAAC,UAAU,CAAC,IAAI,CACtB,CAAC;gBACF,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACjC,MAAM,IAAI,GAAG,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;gBACpC,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,EAAE;oBAChD,IAAI;iBACL,CAAC,CAAC;aACJ;iBAAM,IAAI,sBAAsB,CAAC,MAAM,CAAC,EAAE;gBACzC,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;oBACrD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;oBACvC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,CAAC;gBACH,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;aAChE;iBAAM,IAAI,wBAAwB,CAAC,MAAM,CAAC,EAAE;gBAC3C,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;oBACrD,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;oBACjE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,CAAC;gBACH,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;aAChE;iBAAM,IAAI,uBAAuB,CAAC,MAAM,CAAC,EAAE;gBAC1C,8BAA8B,CAC5B,KAAK,EACL,MAAM,CAAC,QAAQ,EACf,KAAK,CAAC,UAAU,CAAC,IAAI,CACtB,CAAC;gBACF,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACzD,IAAI,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE;oBAC3C,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;wBACrD,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;oBAC1B,CAAC,CAAC,CAAC;iBACJ;gBACD,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC5D,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC1C,MAAM,IAAI,GAAG,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;gBACpC,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,EAAE;oBAChD,IAAI;iBACL,CAAC,CAAC;aACJ;iBAAM;gBACL,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC/C,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACtD,MAAM,MAAM,GAAG,SAAS,CAAC,cAAc,CACrC,GAAG,CAAC,2BAA2B,IAAI,MAAM,CAAC,IAAI,CAC/C,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACpC,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACnD,MAAM,SAAS,GACb,GAAG,CAAC,SAAS;oBACb,CAAC,GAAG,CAAC,yBAAyB;wBAC5B,0BAA0B,CAAC,CAAC,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;gBAElE,KAAK,GAAG,iBAAiB,CACvB,KAAK,EACL,MAAM,CAAC,mBAAmB,EAC1B,CAAC,MAAM,CAAC,EAAE,CAAC,EACX;oBACE,MAAM,EAAE,eAAe;oBACvB,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI;oBAC3B,SAAS;iBACV,CACF,CAAC;aACH;YACD,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC9B,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;YAC/B,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,mBAAmB,CAAC,CAAC;YACxB,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;YACtC,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC3C,IAAI,QAAQ,IAAI,mBAAmB,CAAC,QAAQ,CAAC;gBAAE,OAAO,KAAK,CAAC;YAE5D,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAE1C,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAE3B,IAAI,aAAa,GAAG,GAAG,CAAC;YACxB,IAAI,YAAY,GAAG,GAAG,CAAC;YAEvB,IAAI,GAAG,CAAC,2BAA2B,EAAE;gBACnC,YAAY,GAAG,GAAG,CAAC,2BAA2B,CAAC,KAAK,CAAC;gBACrD,aAAa,GAAG,GAAG,CAAC,2BAA2B,CAAC,MAAM,CAAC;aACxD;iBAAM;gBACL,MAAM,sBAAsB,GAAG,QAAQ,CAAC,cAAc,CACpD,qBAAqB,EAAE,EAAE,CAC1B,CAAC;gBACF,IAAI,sBAAsB,KAAK,IAAI,EAAE;oBACnC,YAAY,GAAG,sBAAsB,CAAC,WAAW,GAAG,EAAE,CAAC;oBACvD,aAAa,GAAG,sBAAsB,CAAC,YAAY,GAAG,EAAE,CAAC;iBAC1D;aACF;YAED,IAAI,eAAe,GAAG,QAAQ,EAAE,YAAY;gBAC1C,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;gBACzC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC;oBACvB,MAAM,EAAE,aAAa;oBACrB,KAAK,EAAE,YAAY;iBACpB,CAAC,CAAC;YACP,IAAI,IAAI;gBAAE,eAAe,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1D,IAAI,QAAQ;gBAAE,eAAe,GAAG,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAEtE,MAAM,cAAc,GAAG,WAAW,EAAE,CAAC;YACrC,IAAI,IAA2C,CAAC;YAChD,IAAI,QAAQ,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE;gBAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC7D,IAAI,GAAG;oBACL,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oBAC3B,WAAW;iBACZ,CAAC;aACH;iBAAM,IAAI,QAAQ,IAAI,qBAAqB,CAAC,QAAQ,CAAC,EAAE;gBACtD,MAAM,cAAc,GAClB,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;gBACxD,IAAI,GAAG;oBACL,QAAQ,EAAE,cAAc,CAAC,EAAE;oBAC3B,cAAc;iBACf,CAAC;aACH;YAED,KAAK,GAAG,mBAAmB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACvC,OAAO,eAAe,CAAC,KAAK,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,EAAE;gBAClD,MAAM,EAAE,eAAe,CAAC,OAAO,EAAE;gBACjC,IAAI;aACL,CAAC,CAAC;SACJ;QACD,KAAK,iBAAiB,CAAC,CAAC;YACtB,OAAO,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;SAClC;QACD,KAAK,mBAAmB,CAAC,CAAC;YACxB,kBAAkB;YAClB,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAClC,cAAc;YACd,OAAO,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;SACpC;QACD,KAAK,sBAAsB,CAAC,CAAC;YAC3B,OAAO,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;gBAChD,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC7B,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,iBAAiB,CAAC,CAAC;YACtB,OAAO,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;SACxC;QACD,KAAK,kBAAkB,CAAC,CAAC;YACvB,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC;YACtB,IACE,KAAK,CAAC,YAAY,EAAE,KAAK,KAAK,EAAE;gBAChC,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,QAAQ,EACpC;gBACA,OAAO,KAAK,CAAC;aACd;YAED,IAAI,QAAqB,CAAC;YAC1B,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAEzC,kEAAkE;YAClE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChD,uBAAuB;YACvB,IAAI,qBAAqB,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE;gBAChE,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE;oBAC1C,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;aACJ;YACD,OAAO,KAAK,CAAC;SACd;QACD,KAAK,kBAAkB,CAAC,CAAC;YACvB,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;YAEtC,IAAI,QAAqB,CAAC;YAC1B,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAEzC,IAAI,qBAAqB,CAAC,QAAQ,CAAC;gBAAE,OAAO,KAAK,CAAC;YAElD,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3B,MAAM,aAAa,GAAG,IAAI;gBACxB,GAAG,CAAC,2BAA2B,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;YACjE,MAAM,iBAAiB,GAAG,QAAQ,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YACxD,MAAM,eAAe,GACnB,SAAS,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACpE,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtD,MAAM,eAAe,GAAG,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAE5D,MAAM,SAAS,GACb,GAAG,CAAC,SAAS;gBACb,CAAC,GAAG,CAAC,yBAAyB;oBAC5B,0BAA0B,CAAC,CAAC,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YAElE,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE;gBAChC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAE7D,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;oBAC1C,aAAa,CAAC,KAAK,EAAE,6BAA6B,EAAE,aAAa,CAAC,CAAC;gBACrE,CAAC,CAAC,CAAC;gBACH,KAAK,GAAG,mBAAmB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACvC,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;oBACzC,MAAM,EAAE,eAAe;oBACvB,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ,CAAC,IAAI;wBACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;wBAC3B,WAAW;qBACZ;oBACD,SAAS;iBACV,CAAC,CAAC;aACJ;iBAAM;gBACL,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;gBAC/C,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC9D,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBAC7C,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;gBAElD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;gBACnC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;gBAE/B,KAAK,GAAG,iBAAiB,CACvB,KAAK,EACL,cAAc,EACd,CAAC,EAAE,CAAC,EACJ;oBACE,MAAM;oBACN,IAAI,EAAE,yBAAyB,CAAC,IAAI,CAAC;wBACnC,CAAC,CAAC,IAAI;wBACN,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI;iBAC7B,EACD,MAAM,CACP,CAAC;aACH;YAED,MAAM,cAAc,GAAG,KAAK,CAAC,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;YACxD,IAAI,cAAc,EAAE;gBAClB,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;oBAC/B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBAC7B,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,QAAQ,CAAC;gBACrC,CAAC,CAAC,CAAC;aACJ;YAED,OAAO,KAAK,CAAC;SACd;QACD,KAAK,8BAA8B,CAAC,CAAC;YACnC,OAAO,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;gBACrD,kBAAkB,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,iBAAiB,CAAC,CAAC;YACtB,OAAO,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;SACxC;QACD,KAAK,mBAAmB,CAAC,CAAC;YACxB,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAClC,OAAO,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;gBAChD,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;YACxB,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,mBAAmB,CAAC,CAAC;YACxB,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YACxC,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAClD,uBAAuB;YACvB,IAAI,QAAQ,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE;gBAC5C,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;oBACvD,KAAK,CAAC,eAAe;wBACnB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;4BAC/D,CAAC,CAAC,GAAG;4BACL,CAAC,CAAC,CAAC,CAAC;gBACV,CAAC,CAAC,CAAC;aACJ;YACD,OAAO,KAAK,CAAC;SACd;QACD,KAAK,mBAAmB,CAAC,CAAC;YACxB,OAAO,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;gBAChD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;oBACxD,KAAa,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;iBAC3B;YACH,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,0BAA0B,CAAC,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,YAAY;gBAAE,OAAO,KAAK,CAAC;YACtC,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAEvD,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAAC;YACvC,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC;YAEvC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,2BAA2B,IAAI;gBAC9C,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE,GAAG;aACX,CAAC;YACF,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,EAAE,CAAC,KAAK,CAAC,EAAE;gBAC7D,MAAM,EAAE,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE;aACjD,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC9B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC7B,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,QAAQ,CAAC;YACrC,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,oBAAoB,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,YAAY;gBAAE,OAAO,KAAK,CAAC;YACtC,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAEvD,KAAK,GAAG,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC7D,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC9B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC7B,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,QAAQ,CAAC;YACrC,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,gBAAgB,CAAC,CAAC;YACrB,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAEnD,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACjD,IAAI,QAAQ,EAAE;gBACZ,0BAA0B;gBAC1B,OAAO,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;aACxC;YAED,4BAA4B;YAC5B,IAAI,MAAM,CAAC,QAAQ,KAAK,UAAU,EAAE;gBAClC,sCAAsC;gBACtC,IAAI,MAAM,CAAC,cAAc,CAAC,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE;oBAC7C,OAAO,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;iBACnE;gBAED,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,EAAE,2BAA2B,IAAI;oBAC5D,MAAM,EAAE,GAAG;oBACX,KAAK,EAAE,GAAG;iBACX,CAAC;gBACF,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,iBAAiB,IAAI;oBAC1D,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;oBACtC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;iBACzC,CAAC;gBACF,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACtD,MAAM,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC/D,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAEnD,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,2BAA2B,CAAC;gBAClE,OAAO,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;oBACrE,MAAM,EAAE,eAAe,CAAC,OAAO,EAAE;oBACjC,IAAI,EAAE;wBACJ,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI;wBAC9B,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE;wBAChC,WAAW,EAAE,CAAC;qBACf;oBACD,SAAS;iBACV,CAAC,CAAC;aACJ;YAED,0BAA0B;YAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;YACtC,oCAAoC;YACpC,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE;gBAC3C,OAAO,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;aACjE;YAED,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACjC,8BAA8B;YAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,cAAc,EAAE;gBAC/C,OAAO,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;aACzE;YAED,yDAAyD;YACzD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC3B,MAAM,CAAC,YAAY,CAAC,KAAK,EACzB,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CACzB,CAAC;YACF,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACtD,OAAO,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;SAC5D;QACD,KAAK,8BAA8B,CAAC,CAAC;YACnC,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YACnD,OAAO,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;SAChD;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,KAAoB,EAAE,EAAkB;IAC7D,IACE,KAAK,CAAC,YAAY,EAAE,KAAK,KAAK,EAAE;QAChC,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,QAAQ,EACpC;QACA,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;YAC9B,MAAM,CAAC,KAAK,CAAC,YAAa,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;YAC9C,KAAK,CAAC,YAAa,CAAC,MAAM,GAAG,KAAK,CAAC;QACrC,CAAC,CAAC,CAAC;KACJ;IAED,IAAI,QAAqB,CAAC;IAC1B,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEzC,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;QAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC;QAExB,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE;YAChC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1C,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;YACxB,uBAAuB;YACvB,IAAI,SAAS,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,EAAE;gBAChD,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO,IAAI,GAAG,CAAC;aACnC;SACF;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,KAAoB,EAAE,EAAkB;IAC7D,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE;QAClD,WAAW,EAAE,EAAE;QACf,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE;QAChC,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;YACvD,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;QAC1B,CAAC,CAAC,CAAC;KACJ;IACD,IAAI,qBAAqB,CAAC,QAAQ,CAAC,EAAE;QACnC,KAAK,GAAG,0BAA0B,CAAC,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;KACtE;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,SAAS,CAAC,KAAoB,EAAE,EAAkB;IACzD,IAAI,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC,QAAQ,EAAE;QACb,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjC,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACrC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;KACpB;IACD,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;QAC1C,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;IACzB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAU,CAAC;AACpC,CAAC;AAED,SAAS,OAAO,CAAC,KAAoB,EAAE,EAAkB;IACvD,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;QAC/B,IAAI,CAAC,KAAK,CAAC,YAAY;YAAE,OAAO;QAEhC,MAAM,cAAc,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,KAAK,EAAE,CAAC;QACvD,IAAI,cAAc,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC1D,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;SAClC;IACH,CAAC,CAAC,CAAC;IAEH,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;QAC1C,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5B,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1D,IAAI,qBAAqB,CAAC,QAAQ,CAAC,EAAE;QACnC,MAAM,cAAc,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5D,+DAA+D;QAC/D,KAAK,GAAG,mBAAmB,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;YAC/C,KAAK,CAAC,IAAI,GAAG;gBACX,QAAQ;gBACR,QAAQ;gBACR,cAAc;aACf,CAAC;QACJ,CAAC,CAAC,CAAC;KACJ;SAAM,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE;QACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC3B,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjE,KAAK,GAAG,mBAAmB,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;YAC/C,KAAK,CAAC,IAAI,GAAG;gBACX,QAAQ;gBACR,IAAI;gBACJ,WAAW;gBACX,QAAQ;aACT,CAAC;QACJ,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,mBAAmB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACxC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Base\n */\n\nimport { produce } from \"immer\";\nimport { Point, Rectangle } from \"@itwin/core-react\";\nimport { assert } from \"@itwin/core-bentley\";\nimport type { TabState } from \"./TabState\";\nimport { getWidgetLocation, isPanelWidgetLocation } from \"./WidgetLocation\";\nimport type { NineZoneAction } from \"./NineZoneAction\";\nimport {\n isPanelDropTargetState,\n isSectionDropTargetState,\n isTabDropTargetState,\n isWidgetDropTargetState,\n isWindowDropTargetState,\n} from \"./DropTargetState\";\nimport { getWidgetPanelSectionId } from \"./PanelState\";\nimport type { NineZoneState } from \"./NineZoneState\";\nimport type { PopoutWidgetState, WidgetState } from \"./WidgetState\";\nimport {\n addPanelWidget,\n getPanelSize,\n insertPanelWidget,\n updatePanelState,\n} from \"./internal/PanelStateHelpers\";\nimport {\n addRemovedTab,\n addTab,\n addTabToWidget,\n createDraggedTabState,\n removeTab,\n removeTabFromWidget,\n updateSavedTabState,\n updateTabState,\n} from \"./internal/TabStateHelpers\";\nimport {\n initRectangleProps,\n initSizeProps,\n isToolSettingsFloatingWidget,\n setPointProps,\n setSizeProps,\n updateHomeOfToolSettingsWidget,\n} from \"./internal/NineZoneStateHelpers\";\nimport {\n addFloatingWidget,\n addPopoutWidget,\n addWidgetState,\n floatingWidgetBringToFront,\n getWidgetState,\n removeFloatingWidget,\n removePanelWidget,\n removePopoutWidget,\n removeWidget,\n setWidgetActiveTabId,\n updateFloatingWidgetState,\n updateWidgetState,\n} from \"./internal/WidgetStateHelpers\";\nimport { getSendBackHomeState } from \"../widget/SendBack\";\nimport { panelSides } from \"../widget-panels/Panel\";\nimport type { TabLocation } from \"./TabLocation\";\nimport {\n getTabLocation,\n isFloatingTabLocation,\n isPanelTabLocation,\n isPopoutTabLocation,\n} from \"./TabLocation\";\nimport { getUniqueId } from \"../base/NineZone\";\nimport {\n isPanelWidgetRestoreState,\n type PanelWidgetRestoreState,\n} from \"./WidgetRestoreState\";\nimport { addDockedToolSettings } from \"./internal/ToolSettingsStateHelpers\";\n\n/** @internal */\nexport function NineZoneStateReducer(\n state: NineZoneState,\n action: NineZoneAction\n): NineZoneState {\n switch (action.type) {\n case \"RESIZE\": {\n state = produce(state, (draft) => {\n setSizeProps(draft.size, action.size);\n });\n const nzBounds = Rectangle.createFromSize(action.size);\n for (const id of state.floatingWidgets.allIds) {\n const floatingWidget = state.floatingWidgets.byId[id];\n const bounds = Rectangle.create(floatingWidget.bounds);\n const containedBounds = bounds.containIn(nzBounds);\n state = updateFloatingWidgetState(state, id, {\n bounds: containedBounds.toProps(),\n });\n }\n for (const side of panelSides) {\n state = updatePanelState(state, side, (draft) => {\n const size = getPanelSize(\n draft.size,\n side,\n draft.minSize,\n draft.maxSize,\n state.size\n );\n draft.size = size;\n });\n }\n return state;\n }\n case \"PANEL_TOGGLE_COLLAPSED\": {\n return updatePanelState(state, action.side, (draft) => {\n draft.collapsed = !draft.collapsed;\n });\n }\n case \"PANEL_SET_COLLAPSED\": {\n return updatePanelState(state, action.side, (draft) => {\n draft.collapsed = action.collapsed;\n });\n }\n case \"PANEL_SET_SIZE\": {\n const { side, size: preferredSize } = action;\n\n return updatePanelState(state, side, (draft) => {\n const size = getPanelSize(\n preferredSize,\n draft.side,\n draft.minSize,\n draft.maxSize,\n state.size\n );\n draft.size = size;\n });\n }\n case \"PANEL_SET_MIN_SIZE\": {\n return updatePanelState(state, action.side, (draft) => {\n const size = getPanelSize(\n draft.size,\n draft.side,\n action.minSize,\n draft.maxSize,\n state.size\n );\n\n draft.minSize = action.minSize;\n draft.size = size;\n });\n }\n case \"PANEL_SET_MAX_SIZE\": {\n return updatePanelState(state, action.side, (draft) => {\n const size = getPanelSize(\n draft.size,\n draft.side,\n draft.minSize,\n action.maxSize,\n state.size\n );\n\n draft.maxSize = action.maxSize;\n draft.size = size;\n });\n }\n case \"PANEL_SET_RESIZABLE\": {\n return updatePanelState(state, action.side, (draft) => {\n draft.resizable = action.resizable;\n });\n }\n case \"PANEL_SET_SPLITTER_VALUE\": {\n const splitterPercent = Math.min(Math.max(action.percent, 0), 100);\n return updatePanelState(state, action.side, (draft) => {\n draft.splitterPercent = splitterPercent;\n });\n }\n case \"PANEL_TOGGLE_SPAN\": {\n const { side } = action;\n return updatePanelState(state, side, (draft) => {\n draft.span = !draft.span;\n });\n }\n case \"PANEL_SET_PINNED\": {\n return updatePanelState(state, action.side, (draft) => {\n draft.pinned = action.pinned;\n });\n }\n case \"PANEL_TOGGLE_PINNED\": {\n return updatePanelState(state, action.side, (draft) => {\n draft.pinned = !draft.pinned;\n });\n }\n case \"PANEL_INITIALIZE\": {\n return updatePanelState(state, action.side, (draft) => {\n const size = getPanelSize(\n action.size,\n draft.side,\n draft.minSize,\n draft.maxSize,\n state.size\n );\n draft.size = size;\n });\n }\n case \"PANEL_WIDGET_DRAG_START\": {\n const { side, newFloatingWidgetId } = action;\n const panel = state.panels[side];\n const widgetIndex = panel.widgets.indexOf(action.id);\n const widget = getWidgetState(state, action.id);\n state = removePanelWidget(state, action.id);\n return addFloatingWidget(\n state,\n newFloatingWidgetId,\n widget.tabs,\n {\n bounds: Rectangle.create(action.bounds).toProps(),\n userSized: action.userSized,\n id: action.newFloatingWidgetId,\n home: {\n side: action.side,\n widgetId: \"\",\n widgetIndex,\n },\n },\n {\n ...widget,\n minimized: false,\n }\n );\n }\n case \"WIDGET_DRAG\": {\n const { floatingWidgetId, dragBy } = action;\n const floatingWidget = state.floatingWidgets.byId[floatingWidgetId];\n const newBounds = Rectangle.create(floatingWidget.bounds).offset(dragBy);\n return updateFloatingWidgetState(state, floatingWidgetId, {\n bounds: newBounds.toProps(),\n });\n }\n case \"WIDGET_DRAG_END\": {\n // TODO: handle duplicates in WIDGET_TAB_DRAG_END action\n const { target, floatingWidgetId } = action;\n const floatingWidget = state.floatingWidgets.byId[floatingWidgetId];\n const draggedWidget = getWidgetState(state, floatingWidgetId);\n\n if (isWindowDropTargetState(target)) {\n const nzBounds = Rectangle.createFromSize(state.size);\n let newBounds = Rectangle.create(floatingWidget.bounds);\n if (draggedWidget.minimized) {\n const containedBounds = newBounds.setHeight(35).containIn(nzBounds);\n newBounds = newBounds.setPosition(containedBounds.topLeft());\n } else {\n newBounds = newBounds.containIn(nzBounds);\n }\n state = updateFloatingWidgetState(state, floatingWidgetId, {\n bounds: newBounds.toProps(),\n });\n return floatingWidgetBringToFront(state, floatingWidgetId);\n }\n\n state = removeFloatingWidget(state, floatingWidgetId);\n if (isTabDropTargetState(target)) {\n state = updateHomeOfToolSettingsWidget(\n state,\n target.widgetId,\n floatingWidget.home\n );\n const targetWidget = getWidgetState(state, target.widgetId);\n const tabs = [...targetWidget.tabs];\n tabs.splice(target.tabIndex, 0, ...draggedWidget.tabs);\n state = updateWidgetState(state, target.widgetId, {\n tabs,\n });\n } else if (isSectionDropTargetState(target)) {\n state = updatePanelState(state, target.side, (draft) => {\n draft.widgets.splice(target.sectionIndex, 0, target.newWidgetId);\n draft.collapsed = false;\n });\n state = addWidgetState(\n state,\n target.newWidgetId,\n draggedWidget.tabs,\n draggedWidget\n );\n } else if (isWidgetDropTargetState(target)) {\n state = updateHomeOfToolSettingsWidget(\n state,\n target.widgetId,\n floatingWidget.home\n );\n const widget = getWidgetLocation(state, target.widgetId);\n if (widget && isPanelWidgetLocation(widget)) {\n state = updatePanelState(state, widget.side, (draft) => {\n draft.collapsed = false;\n });\n }\n const targetWidget = getWidgetState(state, target.widgetId);\n const tabs = [...targetWidget.tabs];\n tabs.splice(targetWidget.tabs.length, 0, ...draggedWidget.tabs);\n state = updateWidgetState(state, target.widgetId, {\n tabs,\n });\n } else {\n const panelSectionId = getWidgetPanelSectionId(target.side, 0);\n state = updatePanelState(state, target.side, (draft) => {\n draft.widgets = [panelSectionId];\n draft.collapsed = false;\n });\n state = addWidgetState(state, panelSectionId, draggedWidget.tabs, {\n ...draggedWidget,\n minimized: false,\n });\n }\n return state;\n }\n case \"FLOATING_WIDGET_RESIZE\": {\n const { resizeBy } = action;\n const widget = getWidgetState(state, action.id);\n\n const floatingWidget = state.floatingWidgets.byId[action.id];\n // if this is not a tool settings widget then set the userSized flag\n // istanbul ignore else\n if (!isToolSettingsFloatingWidget(state, action.id)) {\n state = updateFloatingWidgetState(state, action.id, {\n userSized: true,\n });\n }\n\n const minWidth = 200;\n const minHeight = 120;\n let newBounds = Rectangle.create(floatingWidget.bounds);\n\n // Resize top-left corner.\n const maxLeft = newBounds.right - minWidth;\n const maxTop = newBounds.bottom - minHeight;\n\n newBounds = newBounds.inset(-resizeBy.left, -resizeBy.top, 0, 0);\n const left = Math.min(maxLeft, newBounds.left);\n const top = Math.min(maxTop, newBounds.top);\n newBounds = new Rectangle(left, top, newBounds.right, newBounds.bottom);\n\n // Resize bottom-right corner.\n const minRight = newBounds.left + minWidth;\n const minBottom = newBounds.top + minHeight;\n\n newBounds = newBounds.inset(0, 0, -resizeBy.right, -resizeBy.bottom);\n const right = Math.max(minRight, newBounds.right);\n const bottom = Math.max(minBottom, newBounds.bottom);\n newBounds = new Rectangle(left, top, right, bottom);\n\n state = updateFloatingWidgetState(state, action.id, {\n bounds: newBounds,\n });\n\n const tab = state.tabs[widget.activeTabId];\n if (tab.isFloatingWidgetResizable) {\n const size = newBounds.getSize();\n state = updateTabState(state, widget.activeTabId, (draft) => {\n initSizeProps(draft, \"preferredFloatingWidgetSize\", size);\n draft.userSized = true;\n });\n }\n\n return state;\n }\n case \"FLOATING_WIDGET_SET_BOUNDS\": {\n const nzBounds = Rectangle.createFromSize(state.size);\n const bounds = Rectangle.create(action.bounds).containIn(nzBounds);\n return updateFloatingWidgetState(state, action.id, {\n bounds: bounds.toProps(),\n });\n }\n case \"FLOATING_WIDGET_CLEAR_USER_SIZED\": {\n return produce(state, (draft) => {\n const floatingWidget = draft.floatingWidgets.byId[action.id];\n floatingWidget.userSized = false;\n const widget = getWidgetState(draft, action.id);\n const tab = draft.tabs[widget.activeTabId];\n tab.userSized = false;\n });\n }\n case \"FLOATING_WIDGET_SET_USER_SIZED\": {\n return produce(state, (draft) => {\n const floatingWidget = draft.floatingWidgets.byId[action.id];\n floatingWidget.userSized = action.userSized;\n });\n }\n case \"FLOATING_WIDGET_BRING_TO_FRONT\": {\n return floatingWidgetBringToFront(state, action.id);\n }\n case \"FLOATING_WIDGET_SEND_BACK\": {\n const widget = getWidgetState(state, action.id);\n const sendBackHomeState = getSendBackHomeState(state, action.id);\n\n // Add tabs to an existing widget.\n if (sendBackHomeState.widgetId) {\n const destinationWidget = state.widgets[sendBackHomeState.widgetId];\n const tabs = [...destinationWidget.tabs, ...widget.tabs];\n state = updateWidgetState(state, destinationWidget.id, {\n tabs,\n });\n return removeWidget(state, widget.id);\n }\n\n const sectionIndex = sendBackHomeState.sectionIndex ?? 0;\n const home = state.floatingWidgets.byId[action.id].home;\n const destinationWidgetId = home.widgetId\n ? home.widgetId\n : getWidgetPanelSectionId(home.side, sectionIndex);\n\n // Add tabs to a new panel widget.\n state = removeWidget(state, widget.id);\n return insertPanelWidget(\n state,\n sendBackHomeState.side,\n destinationWidgetId,\n widget.tabs,\n sectionIndex\n );\n }\n case \"POPOUT_WIDGET_SEND_BACK\": {\n const popoutWidget = state.popoutWidgets.byId[action.id];\n const widget = getWidgetState(state, action.id);\n const home = popoutWidget.home;\n\n state = removeWidget(state, widget.id);\n\n // Determine existing widget.\n let existingWidget: WidgetState | undefined;\n if (home.widgetId in state.widgets) {\n existingWidget = state.widgets[home.widgetId];\n } else if (isPanelWidgetRestoreState(home)) {\n const panel = state.panels[home.side];\n const panelSectionId = getWidgetPanelSectionId(\n home.side,\n home.widgetIndex\n );\n existingWidget = state.widgets[panelSectionId];\n\n // Can not add additional sections, add to an existing one.\n if (!existingWidget && panel.widgets.length >= panel.maxWidgetCount) {\n const sectionIndex = Math.min(\n panel.maxWidgetCount - 1,\n home.widgetIndex\n );\n const sectionId = panel.widgets[sectionIndex];\n existingWidget = state.widgets[sectionId];\n }\n }\n\n // Add to an existing widget.\n if (existingWidget) {\n const tabs = [...existingWidget.tabs, ...widget.tabs];\n return updateWidgetState(state, existingWidget.id, {\n tabs,\n });\n }\n\n // Insert a new panel section.\n if (isPanelWidgetRestoreState(home)) {\n const sectionId = home.widgetId\n ? home.widgetId\n : getWidgetPanelSectionId(home.side, home.widgetIndex);\n return insertPanelWidget(\n state,\n home.side,\n sectionId,\n [...widget.tabs],\n home.widgetIndex\n );\n }\n\n // Add a new floating widget.\n return addFloatingWidget(\n state,\n home.widgetId,\n widget.tabs,\n home.floatingWidget\n );\n }\n case \"WIDGET_TAB_CLICK\": {\n const { id, widgetId } = action;\n state = setWidgetActiveTabId(state, widgetId, id);\n return updateWidgetState(state, widgetId, {\n minimized: false,\n });\n }\n case \"WIDGET_TAB_DOUBLE_CLICK\": {\n if (action.floatingWidgetId === undefined) return state;\n\n const widget = getWidgetState(state, action.widgetId);\n const active = action.id === widget.activeTabId;\n if (!active) return setWidgetActiveTabId(state, widget.id, action.id);\n\n return updateWidgetState(state, widget.id, {\n minimized: !widget.minimized,\n });\n }\n case \"WIDGET_TAB_DRAG_START\": {\n const tabId = action.id;\n let home: PanelWidgetRestoreState;\n if (action.floatingWidgetId) {\n const floatingWidget =\n state.floatingWidgets.byId[action.floatingWidgetId];\n home = floatingWidget.home;\n } else {\n assert(!!action.side);\n const panel = state.panels[action.side];\n const widgetIndex = panel.widgets.indexOf(action.widgetId);\n home = {\n side: action.side,\n widgetId: action.widgetId,\n widgetIndex,\n };\n }\n state = produce(state, (draft) => {\n draft.draggedTab = createDraggedTabState(tabId, {\n position: Point.create(action.position).toProps(),\n home,\n });\n });\n return removeTabFromWidget(state, tabId);\n }\n case \"WIDGET_TAB_DRAG\": {\n return produce(state, (draft) => {\n const draggedTab = draft.draggedTab;\n assert(!!draggedTab);\n const position = Point.create(draggedTab.position).offset(\n action.dragBy\n );\n setPointProps(draggedTab.position, position);\n });\n }\n case \"WIDGET_TAB_DRAG_END\": {\n assert(!!state.draggedTab);\n const target = action.target;\n if (isTabDropTargetState(target)) {\n state = updateHomeOfToolSettingsWidget(\n state,\n target.widgetId,\n state.draggedTab.home\n );\n const targetWidget = getWidgetState(state, target.widgetId);\n const tabIndex = target.tabIndex;\n const tabs = [...targetWidget.tabs];\n tabs.splice(tabIndex, 0, action.id);\n state = updateWidgetState(state, targetWidget.id, {\n tabs,\n });\n } else if (isPanelDropTargetState(target)) {\n state = updatePanelState(state, target.side, (draft) => {\n draft.widgets.push(target.newWidgetId);\n draft.collapsed = false;\n });\n state = addWidgetState(state, target.newWidgetId, [action.id]);\n } else if (isSectionDropTargetState(target)) {\n state = updatePanelState(state, target.side, (draft) => {\n draft.widgets.splice(target.sectionIndex, 0, target.newWidgetId);\n draft.collapsed = false;\n });\n state = addWidgetState(state, target.newWidgetId, [action.id]);\n } else if (isWidgetDropTargetState(target)) {\n updateHomeOfToolSettingsWidget(\n state,\n target.widgetId,\n state.draggedTab.home\n );\n const widget = getWidgetLocation(state, target.widgetId);\n if (widget && isPanelWidgetLocation(widget)) {\n state = updatePanelState(state, widget.side, (draft) => {\n draft.collapsed = false;\n });\n }\n const targetWidget = getWidgetState(state, target.widgetId);\n const tabIndex = targetWidget.tabs.length;\n const tabs = [...targetWidget.tabs];\n tabs.splice(tabIndex, 0, action.id);\n state = updateWidgetState(state, targetWidget.id, {\n tabs,\n });\n } else {\n const tab = state.tabs[state.draggedTab.tabId];\n const nzBounds = Rectangle.createFromSize(state.size);\n const bounds = Rectangle.createFromSize(\n tab.preferredFloatingWidgetSize || target.size\n ).offset(state.draggedTab.position);\n const containedBounds = bounds.containIn(nzBounds);\n const userSized =\n tab.userSized ||\n (tab.isFloatingWidgetResizable &&\n /* istanbul ignore next */ !!tab.preferredFloatingWidgetSize);\n\n state = addFloatingWidget(\n state,\n target.newFloatingWidgetId,\n [action.id],\n {\n bounds: containedBounds,\n home: state.draggedTab.home,\n userSized,\n }\n );\n }\n return produce(state, (draft) => {\n draft.draggedTab = undefined;\n });\n }\n case \"WIDGET_TAB_POPOUT\": {\n const { id, position, size } = action;\n const location = getTabLocation(state, id);\n if (location && isPopoutTabLocation(location)) return state;\n\n const savedTab = state.savedTabs.byId[id];\n\n const tab = state.tabs[id];\n\n let contentHeight = 800;\n let contentWidth = 600;\n\n if (tab.preferredFloatingWidgetSize) {\n contentWidth = tab.preferredFloatingWidgetSize.width;\n contentHeight = tab.preferredFloatingWidgetSize.height;\n } else {\n const popoutContentContainer = document.getElementById(\n `content-container:${id}`\n );\n if (popoutContentContainer !== null) {\n contentWidth = popoutContentContainer.offsetWidth + 20;\n contentHeight = popoutContentContainer.offsetHeight + 20;\n }\n }\n\n let preferredBounds = savedTab?.popoutBounds\n ? Rectangle.create(savedTab.popoutBounds)\n : Rectangle.createFromSize({\n height: contentHeight,\n width: contentWidth,\n });\n if (size) preferredBounds = preferredBounds.setSize(size);\n if (position) preferredBounds = preferredBounds.setPosition(position);\n\n const popoutWidgetId = getUniqueId();\n let home: PopoutWidgetState[\"home\"] | undefined;\n if (location && isPanelTabLocation(location)) {\n const panel = state.panels[location.side];\n const widgetIndex = panel.widgets.indexOf(location.widgetId);\n home = {\n side: location.side,\n widgetId: location.widgetId,\n widgetIndex,\n };\n } else if (location && isFloatingTabLocation(location)) {\n const floatingWidget =\n state.floatingWidgets.byId[location.floatingWidgetId];\n home = {\n widgetId: floatingWidget.id,\n floatingWidget,\n };\n }\n\n state = removeTabFromWidget(state, id);\n return addPopoutWidget(state, popoutWidgetId, [id], {\n bounds: preferredBounds.toProps(),\n home,\n });\n }\n case \"WIDGET_TAB_HIDE\": {\n return hideTab(state, action.id);\n }\n case \"WIDGET_TAB_REMOVE\": {\n // Save tab state.\n state = hideTab(state, action.id);\n // Remove tab.\n return removeTab(state, action.id);\n }\n case \"WIDGET_TAB_SET_LABEL\": {\n return updateTabState(state, action.id, (draft) => {\n draft.label = action.label;\n });\n }\n case \"WIDGET_TAB_OPEN\": {\n return openWidgetTab(state, action.id);\n }\n case \"WIDGET_TAB_CLOSE\": {\n const { id } = action;\n if (\n state.toolSettings?.tabId === id &&\n state.toolSettings.type === \"docked\"\n ) {\n return state;\n }\n\n let location: TabLocation;\n [state, location] = unhideTab(state, id);\n\n // TODO: should change activeTabId of a widget with multiple tabs.\n const widget = state.widgets[location.widgetId];\n // istanbul ignore else\n if (isFloatingTabLocation(location) && id === widget.activeTabId) {\n state = updateWidgetState(state, widget.id, {\n minimized: true,\n });\n }\n return state;\n }\n case \"WIDGET_TAB_FLOAT\": {\n const { id, position, size } = action;\n\n let location: TabLocation;\n [state, location] = unhideTab(state, id);\n\n if (isFloatingTabLocation(location)) return state;\n\n const tab = state.tabs[id];\n const preferredSize = size ??\n tab.preferredFloatingWidgetSize ?? { height: 400, width: 400 };\n const preferredPosition = position ?? { x: 50, y: 100 };\n const preferredBounds =\n Rectangle.createFromSize(preferredSize).offset(preferredPosition);\n const nzBounds = Rectangle.createFromSize(state.size);\n const containedBounds = preferredBounds.containIn(nzBounds);\n\n const userSized =\n tab.userSized ||\n (tab.isFloatingWidgetResizable &&\n /* istanbul ignore next */ !!tab.preferredFloatingWidgetSize);\n\n if (isPanelTabLocation(location)) {\n const panel = state.panels[location.side];\n const widgetIndex = panel.widgets.indexOf(location.widgetId);\n\n state = updateTabState(state, id, (draft) => {\n initSizeProps(draft, \"preferredFloatingWidgetSize\", preferredSize);\n });\n state = removeTabFromWidget(state, id);\n state = addFloatingWidget(state, id, [id], {\n bounds: containedBounds,\n home: {\n side: location.side,\n widgetId: location.widgetId,\n widgetIndex,\n },\n userSized,\n });\n } else {\n const popoutWidgetId = location.popoutWidgetId;\n const popoutWidget = state.popoutWidgets.byId[popoutWidgetId];\n const widget = state.widgets[popoutWidgetId];\n state = removePopoutWidget(state, popoutWidgetId);\n\n const bounds = popoutWidget.bounds;\n const home = popoutWidget.home;\n\n state = addFloatingWidget(\n state,\n popoutWidgetId,\n [id],\n {\n bounds,\n home: isPanelWidgetRestoreState(home)\n ? home\n : home.floatingWidget.home,\n },\n widget\n );\n }\n\n const isToolSettings = state.toolSettings?.tabId === id;\n if (isToolSettings) {\n state = produce(state, (draft) => {\n assert(!!draft.toolSettings);\n draft.toolSettings.type = \"widget\";\n });\n }\n\n return state;\n }\n case \"WIDGET_TAB_SET_POPOUT_BOUNDS\": {\n return updateSavedTabState(state, action.id, (draft) => {\n initRectangleProps(draft, \"popoutBounds\", action.bounds);\n });\n }\n case \"WIDGET_TAB_SHOW\": {\n return showWidgetTab(state, action.id);\n }\n case \"WIDGET_TAB_UNLOAD\": {\n state = hideTab(state, action.id);\n return updateTabState(state, action.id, (draft) => {\n draft.unloaded = true;\n });\n }\n case \"WIDGET_TAB_EXPAND\": {\n state = showWidgetTab(state, action.id);\n const location = getTabLocation(state, action.id);\n // istanbul ignore else\n if (location && isPanelTabLocation(location)) {\n state = updatePanelState(state, location.side, (draft) => {\n draft.splitterPercent =\n draft.widgets.findIndex((wId) => wId === location.widgetId) === 0\n ? 100\n : 0;\n });\n }\n return state;\n }\n case \"WIDGET_TAB_UPDATE\": {\n return updateTabState(state, action.id, (draft) => {\n for (const [key, val] of Object.entries(action.overrides)) {\n (draft as any)[key] = val;\n }\n });\n }\n case \"TOOL_SETTINGS_DRAG_START\": {\n if (!state.toolSettings) return state;\n if (state.toolSettings.type === \"widget\") return state;\n\n const { newFloatingWidgetId } = action;\n const tabId = state.toolSettings.tabId;\n\n const tab = state.tabs[tabId];\n const size = tab.preferredFloatingWidgetSize || {\n height: 200,\n width: 300,\n };\n state = addFloatingWidget(state, newFloatingWidgetId, [tabId], {\n bounds: Rectangle.createFromSize(size).toProps(),\n });\n return produce(state, (draft) => {\n assert(!!draft.toolSettings);\n draft.toolSettings.type = \"widget\";\n });\n }\n case \"TOOL_SETTINGS_DOCK\": {\n if (!state.toolSettings) return state;\n if (state.toolSettings.type === \"docked\") return state;\n\n state = removeTabFromWidget(state, state.toolSettings.tabId);\n return produce(state, (draft) => {\n assert(!!draft.toolSettings);\n draft.toolSettings.type = \"docked\";\n });\n }\n case \"WIDGET_DEF_ADD\": {\n state = addTab(state, action.id, action.overrides);\n\n const savedTab = state.savedTabs.byId[action.id];\n if (savedTab) {\n // Restore to saved state.\n return addRemovedTab(state, action.id);\n }\n\n // Add to a floating widget.\n if (action.location === \"floating\") {\n // Add to an existing floating widget.\n if (action.floatingWidget.id in state.widgets) {\n return addTabToWidget(state, action.id, action.floatingWidget.id);\n }\n\n const size = action.overrides?.preferredFloatingWidgetSize ?? {\n height: 200,\n width: 300,\n };\n const position = action.floatingWidget.preferredPosition ?? {\n x: (state.size.width - size.width) / 2,\n y: (state.size.height - size.height) / 2,\n };\n const nzBounds = Rectangle.createFromSize(state.size);\n const bounds = Rectangle.createFromSize(size).offset(position);\n const containedBounds = bounds.containIn(nzBounds);\n\n const userSized = !!action.overrides?.preferredFloatingWidgetSize;\n return addFloatingWidget(state, action.floatingWidget.id, [action.id], {\n bounds: containedBounds.toProps(),\n home: {\n side: action.panelSection.side,\n widgetId: action.panelSection.id,\n widgetIndex: 0,\n },\n userSized,\n });\n }\n\n // Add to a panel section.\n const side = action.panelSection.side;\n // Add to an existing panel section.\n if (action.panelSection.id in state.widgets) {\n return addTabToWidget(state, action.id, action.panelSection.id);\n }\n\n const panel = state.panels[side];\n // Add to a new panel section.\n if (panel.widgets.length < panel.maxWidgetCount) {\n return addPanelWidget(state, side, action.panelSection.id, [action.id]);\n }\n\n // Can't add additional sections, add to an existing one.\n const sectionIndex = Math.min(\n action.panelSection.index,\n panel.widgets.length - 1\n );\n const existingSectionId = panel.widgets[sectionIndex];\n return addTabToWidget(state, action.id, existingSectionId);\n }\n case \"WIDGET_DEF_ADD_TOOL_SETTINGS\": {\n state = addTab(state, action.id, action.overrides);\n return addDockedToolSettings(state, action.id);\n }\n }\n return state;\n}\n\nfunction openWidgetTab(state: NineZoneState, id: TabState[\"id\"]) {\n if (\n state.toolSettings?.tabId === id &&\n state.toolSettings.type === \"docked\"\n ) {\n return produce(state, (draft) => {\n assert(draft.toolSettings!.type === \"docked\");\n draft.toolSettings!.hidden = false;\n });\n }\n\n let location: TabLocation;\n [state, location] = unhideTab(state, id);\n\n return produce(state, (draft) => {\n const widget = draft.widgets[location.widgetId];\n widget.minimized = false;\n widget.activeTabId = id;\n\n if (isPanelTabLocation(location)) {\n const panel = draft.panels[location.side];\n panel.collapsed = false;\n // istanbul ignore next\n if (undefined === panel.size || 0 === panel.size) {\n panel.size = panel.minSize ?? 200;\n }\n }\n });\n}\n\nfunction showWidgetTab(state: NineZoneState, id: TabState[\"id\"]) {\n state = openWidgetTab(state, id);\n const location = getTabLocation(state, id);\n if (!location) return state;\n state = updateWidgetState(state, location.widgetId, {\n activeTabId: id,\n minimized: false,\n });\n if (isPanelTabLocation(location)) {\n state = updatePanelState(state, location.side, (draft) => {\n draft.collapsed = false;\n });\n }\n if (isFloatingTabLocation(location)) {\n state = floatingWidgetBringToFront(state, location.floatingWidgetId);\n }\n return state;\n}\n\nfunction unhideTab(state: NineZoneState, id: TabState[\"id\"]) {\n let location = getTabLocation(state, id);\n if (!location) {\n state = addRemovedTab(state, id);\n location = getTabLocation(state, id);\n assert(!!location);\n }\n state = updateTabState(state, id, (draft) => {\n draft.unloaded = false;\n });\n return [state, location] as const;\n}\n\nfunction hideTab(state: NineZoneState, id: TabState[\"id\"]) {\n state = produce(state, (draft) => {\n if (!draft.toolSettings) return;\n\n const isToolSettings = draft.toolSettings.tabId === id;\n if (isToolSettings && draft.toolSettings.type === \"docked\") {\n draft.toolSettings.hidden = true;\n }\n });\n\n state = updateTabState(state, id, (draft) => {\n draft.unloaded = false;\n });\n\n const location = getTabLocation(state, id);\n if (!location) return state;\n\n const widgetId = location.widgetId;\n const tabIndex = state.widgets[widgetId].tabs.indexOf(id);\n if (isFloatingTabLocation(location)) {\n const floatingWidget = state.floatingWidgets.byId[widgetId];\n // widgetDef.setFloatingContainerId(location.floatingWidgetId);\n state = updateSavedTabState(state, id, (draft) => {\n draft.home = {\n widgetId,\n tabIndex,\n floatingWidget,\n };\n });\n } else if (isPanelTabLocation(location)) {\n const side = location.side;\n const widgetIndex = state.panels[side].widgets.indexOf(widgetId);\n state = updateSavedTabState(state, id, (draft) => {\n draft.home = {\n widgetId,\n side,\n widgetIndex,\n tabIndex,\n };\n });\n }\n\n return removeTabFromWidget(state, id);\n}\n"]}
1
+ {"version":3,"file":"NineZoneStateReducer.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/state/NineZoneStateReducer.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE5E,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAGvD,OAAO,EACL,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,aAAa,EACb,MAAM,EACN,cAAc,EACd,qBAAqB,EACrB,SAAS,EACT,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,GACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,4BAA4B,EAC5B,aAAa,EACb,YAAY,EACZ,8BAA8B,GAC/B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,0BAA0B,EAC1B,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,EACpB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,yBAAyB,GAE1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,gBAAgB;AAChB,MAAM,UAAU,oBAAoB,CAClC,KAAoB,EACpB,MAAsB;;IAEtB,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,QAAQ,CAAC,CAAC;YACb,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC/B,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACvD,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE;gBAC7C,MAAM,cAAc,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACtD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBACvD,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACnD,KAAK,GAAG,yBAAyB,CAAC,KAAK,EAAE,EAAE,EAAE;oBAC3C,MAAM,EAAE,eAAe,CAAC,OAAO,EAAE;iBAClC,CAAC,CAAC;aACJ;YACD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;gBAC7B,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;oBAC9C,MAAM,IAAI,GAAG,YAAY,CACvB,KAAK,CAAC,IAAI,EACV,IAAI,EACJ,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,IAAI,CACX,CAAC;oBACF,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;gBACpB,CAAC,CAAC,CAAC;aACJ;YACD,OAAO,KAAK,CAAC;SACd;QACD,KAAK,wBAAwB,CAAC,CAAC;YAC7B,OAAO,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACpD,KAAK,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;YACrC,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,qBAAqB,CAAC,CAAC;YAC1B,OAAO,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACpD,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;YACrC,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,gBAAgB,CAAC,CAAC;YACrB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;YAE7C,OAAO,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC7C,MAAM,IAAI,GAAG,YAAY,CACvB,aAAa,EACb,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,IAAI,CACX,CAAC;gBACF,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;YACpB,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,oBAAoB,CAAC,CAAC;YACzB,OAAO,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACpD,MAAM,IAAI,GAAG,YAAY,CACvB,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,IAAI,EACV,MAAM,CAAC,OAAO,EACd,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,IAAI,CACX,CAAC;gBAEF,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC/B,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;YACpB,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,oBAAoB,CAAC,CAAC;YACzB,OAAO,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACpD,MAAM,IAAI,GAAG,YAAY,CACvB,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,OAAO,EACb,MAAM,CAAC,OAAO,EACd,KAAK,CAAC,IAAI,CACX,CAAC;gBAEF,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC/B,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;YACpB,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,qBAAqB,CAAC,CAAC;YAC1B,OAAO,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACpD,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;YACrC,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,0BAA0B,CAAC,CAAC;YAC/B,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACnE,OAAO,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACpD,KAAK,CAAC,eAAe,GAAG,eAAe,CAAC;YAC1C,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,mBAAmB,CAAC,CAAC;YACxB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;YACxB,OAAO,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC7C,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YAC3B,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,kBAAkB,CAAC,CAAC;YACvB,OAAO,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACpD,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC/B,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,qBAAqB,CAAC,CAAC;YAC1B,OAAO,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACpD,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;YAC/B,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,kBAAkB,CAAC,CAAC;YACvB,OAAO,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACpD,MAAM,IAAI,GAAG,YAAY,CACvB,MAAM,CAAC,IAAI,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,IAAI,CACX,CAAC;gBACF,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;YACpB,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,yBAAyB,CAAC,CAAC;YAC9B,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAAC;YAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAChD,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5C,OAAO,iBAAiB,CACtB,KAAK,EACL,mBAAmB,EACnB,MAAM,CAAC,IAAI,EACX;gBACE,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;gBACjD,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,EAAE,EAAE,MAAM,CAAC,mBAAmB;gBAC9B,IAAI,EAAE;oBACJ,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,QAAQ,EAAE,EAAE;oBACZ,WAAW;iBACZ;aACF,EACD;gBACE,GAAG,MAAM;gBACT,SAAS,EAAE,KAAK;aACjB,CACF,CAAC;SACH;QACD,KAAK,aAAa,CAAC,CAAC;YAClB,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;YAC5C,MAAM,cAAc,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpE,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzE,OAAO,yBAAyB,CAAC,KAAK,EAAE,gBAAgB,EAAE;gBACxD,MAAM,EAAE,SAAS,CAAC,OAAO,EAAE;aAC5B,CAAC,CAAC;SACJ;QACD,KAAK,iBAAiB,CAAC,CAAC;YACtB,wDAAwD;YACxD,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC;YAC5C,MAAM,cAAc,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpE,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;YAE9D,IAAI,uBAAuB,CAAC,MAAM,CAAC,EAAE;gBACnC,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACtD,IAAI,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBACxD,IAAI,aAAa,CAAC,SAAS,EAAE;oBAC3B,MAAM,eAAe,GAAG,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;oBACpE,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;iBAC9D;qBAAM;oBACL,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;iBAC3C;gBACD,KAAK,GAAG,yBAAyB,CAAC,KAAK,EAAE,gBAAgB,EAAE;oBACzD,MAAM,EAAE,SAAS,CAAC,OAAO,EAAE;iBAC5B,CAAC,CAAC;gBACH,OAAO,0BAA0B,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;aAC5D;YAED,KAAK,GAAG,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;YACtD,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE;gBAChC,KAAK,GAAG,8BAA8B,CACpC,KAAK,EACL,MAAM,CAAC,QAAQ,EACf,cAAc,CAAC,IAAI,CACpB,CAAC;gBACF,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC5D,MAAM,IAAI,GAAG,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;gBACvD,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE;oBAChD,IAAI;iBACL,CAAC,CAAC;aACJ;iBAAM,IAAI,wBAAwB,CAAC,MAAM,CAAC,EAAE;gBAC3C,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;oBACrD,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;oBACjE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,CAAC;gBACH,KAAK,GAAG,cAAc,CACpB,KAAK,EACL,MAAM,CAAC,WAAW,EAClB,aAAa,CAAC,IAAI,EAClB,aAAa,CACd,CAAC;aACH;iBAAM,IAAI,uBAAuB,CAAC,MAAM,CAAC,EAAE;gBAC1C,KAAK,GAAG,8BAA8B,CACpC,KAAK,EACL,MAAM,CAAC,QAAQ,EACf,cAAc,CAAC,IAAI,CACpB,CAAC;gBACF,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACzD,IAAI,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE;oBAC3C,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;wBACrD,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;oBAC1B,CAAC,CAAC,CAAC;iBACJ;gBACD,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC5D,MAAM,IAAI,GAAG,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;gBAChE,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE;oBAChD,IAAI;iBACL,CAAC,CAAC;aACJ;iBAAM;gBACL,MAAM,cAAc,GAAG,uBAAuB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC/D,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;oBACrD,KAAK,CAAC,OAAO,GAAG,CAAC,cAAc,CAAC,CAAC;oBACjC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,CAAC;gBACH,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,cAAc,EAAE,aAAa,CAAC,IAAI,EAAE;oBAChE,GAAG,aAAa;oBAChB,SAAS,EAAE,KAAK;iBACjB,CAAC,CAAC;aACJ;YACD,OAAO,KAAK,CAAC;SACd;QACD,KAAK,wBAAwB,CAAC,CAAC;YAC7B,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;YAC5B,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAEhD,MAAM,cAAc,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC7D,oEAAoE;YACpE,uBAAuB;YACvB,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE;gBACnD,KAAK,GAAG,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE;oBAClD,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;aACJ;YAED,MAAM,QAAQ,GAAG,GAAG,CAAC;YACrB,MAAM,SAAS,GAAG,GAAG,CAAC;YACtB,IAAI,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAExD,0BAA0B;YAC1B,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,GAAG,QAAQ,CAAC;YAC3C,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC;YAE5C,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACjE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;YAC5C,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;YAExE,8BAA8B;YAC9B,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC;YAC3C,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC;YAE5C,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACrE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;YACrD,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAEpD,KAAK,GAAG,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE;gBAClD,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC3C,IAAI,GAAG,CAAC,yBAAyB,EAAE;gBACjC,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;gBACjC,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;oBAC1D,aAAa,CAAC,KAAK,EAAE,6BAA6B,EAAE,IAAI,CAAC,CAAC;oBAC1D,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;gBACzB,CAAC,CAAC,CAAC;aACJ;YAED,OAAO,KAAK,CAAC;SACd;QACD,KAAK,4BAA4B,CAAC,CAAC;YACjC,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACnE,OAAO,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE;gBACjD,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE;aACzB,CAAC,CAAC;SACJ;QACD,KAAK,kCAAkC,CAAC,CAAC;YACvC,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC9B,MAAM,cAAc,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC7D,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC;gBACjC,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;gBAChD,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC3C,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;YACxB,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,gCAAgC,CAAC,CAAC;YACrC,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC9B,MAAM,cAAc,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC7D,cAAc,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;YAC9C,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,gCAAgC,CAAC,CAAC;YACrC,OAAO,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;SACrD;QACD,KAAK,2BAA2B,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAChD,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAEjE,kCAAkC;YAClC,IAAI,iBAAiB,CAAC,QAAQ,EAAE;gBAC9B,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gBACpE,MAAM,IAAI,GAAG,CAAC,GAAG,iBAAiB,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBACzD,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,CAAC,EAAE,EAAE;oBACrD,IAAI;iBACL,CAAC,CAAC;gBACH,OAAO,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;aACvC;YAED,MAAM,YAAY,GAAG,MAAA,iBAAiB,CAAC,YAAY,mCAAI,CAAC,CAAC;YACzD,MAAM,IAAI,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;YACxD,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ;gBACvC,CAAC,CAAC,IAAI,CAAC,QAAQ;gBACf,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAErD,kCAAkC;YAClC,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YACvC,OAAO,iBAAiB,CACtB,KAAK,EACL,iBAAiB,CAAC,IAAI,EACtB,mBAAmB,EACnB,MAAM,CAAC,IAAI,EACX,YAAY,CACb,CAAC;SACH;QACD,KAAK,yBAAyB,CAAC,CAAC;YAC9B,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;YAE/B,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAEvC,6BAA6B;YAC7B,IAAI,cAAuC,CAAC;YAC5C,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE;gBAClC,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC/C;iBAAM,IAAI,yBAAyB,CAAC,IAAI,CAAC,EAAE;gBAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtC,MAAM,cAAc,GAAG,uBAAuB,CAC5C,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,CACjB,CAAC;gBACF,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBAE/C,2DAA2D;gBAC3D,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,cAAc,EAAE;oBACnE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC3B,KAAK,CAAC,cAAc,GAAG,CAAC,EACxB,IAAI,CAAC,WAAW,CACjB,CAAC;oBACF,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;oBAC9C,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;iBAC3C;aACF;YAED,6BAA6B;YAC7B,IAAI,cAAc,EAAE;gBAClB,MAAM,IAAI,GAAG,CAAC,GAAG,cAAc,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBACtD,OAAO,iBAAiB,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,EAAE;oBACjD,IAAI;iBACL,CAAC,CAAC;aACJ;YAED,8BAA8B;YAC9B,IAAI,yBAAyB,CAAC,IAAI,CAAC,EAAE;gBACnC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ;oBAC7B,CAAC,CAAC,IAAI,CAAC,QAAQ;oBACf,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBACzD,OAAO,iBAAiB,CACtB,KAAK,EACL,IAAI,CAAC,IAAI,EACT,SAAS,EACT,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,EAChB,IAAI,CAAC,WAAW,CACjB,CAAC;aACH;YAED,6BAA6B;YAC7B,OAAO,iBAAiB,CACtB,KAAK,EACL,IAAI,CAAC,QAAQ,EACb,MAAM,CAAC,IAAI,EACX,IAAI,CAAC,cAAc,CACpB,CAAC;SACH;QACD,KAAK,kBAAkB,CAAC,CAAC;YACvB,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;YAChC,KAAK,GAAG,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YAClD,OAAO,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE;gBACxC,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;SACJ;QACD,KAAK,yBAAyB,CAAC,CAAC;YAC9B,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC;YAExD,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,WAAW,CAAC;YAChD,IAAI,CAAC,MAAM;gBAAE,OAAO,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAEtE,OAAO,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE;gBACzC,SAAS,EAAE,CAAC,MAAM,CAAC,SAAS;aAC7B,CAAC,CAAC;SACJ;QACD,KAAK,uBAAuB,CAAC,CAAC;YAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC;YACxB,IAAI,IAA6B,CAAC;YAClC,IAAI,MAAM,CAAC,gBAAgB,EAAE;gBAC3B,MAAM,cAAc,GAClB,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;gBACtD,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;aAC5B;iBAAM;gBACL,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACtB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACxC,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC3D,IAAI,GAAG;oBACL,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,WAAW;iBACZ,CAAC;aACH;YACD,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC/B,KAAK,CAAC,UAAU,GAAG,qBAAqB,CAAC,KAAK,EAAE;oBAC9C,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE;oBACjD,IAAI;iBACL,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,OAAO,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAC1C;QACD,KAAK,iBAAiB,CAAC,CAAC;YACtB,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;gBACpC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;gBACrB,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CACvD,MAAM,CAAC,MAAM,CACd,CAAC;gBACF,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,qBAAqB,CAAC,CAAC;YAC1B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC7B,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE;gBAChC,KAAK,GAAG,8BAA8B,CACpC,KAAK,EACL,MAAM,CAAC,QAAQ,EACf,KAAK,CAAC,UAAU,CAAC,IAAI,CACtB,CAAC;gBACF,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACjC,MAAM,IAAI,GAAG,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;gBACpC,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,EAAE;oBAChD,IAAI;iBACL,CAAC,CAAC;aACJ;iBAAM,IAAI,sBAAsB,CAAC,MAAM,CAAC,EAAE;gBACzC,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;oBACrD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;oBACvC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,CAAC;gBACH,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;aAChE;iBAAM,IAAI,wBAAwB,CAAC,MAAM,CAAC,EAAE;gBAC3C,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;oBACrD,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;oBACjE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,CAAC;gBACH,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;aAChE;iBAAM,IAAI,uBAAuB,CAAC,MAAM,CAAC,EAAE;gBAC1C,8BAA8B,CAC5B,KAAK,EACL,MAAM,CAAC,QAAQ,EACf,KAAK,CAAC,UAAU,CAAC,IAAI,CACtB,CAAC;gBACF,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACzD,IAAI,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE;oBAC3C,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;wBACrD,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;oBAC1B,CAAC,CAAC,CAAC;iBACJ;gBACD,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC5D,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC1C,MAAM,IAAI,GAAG,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;gBACpC,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,EAAE;oBAChD,IAAI;iBACL,CAAC,CAAC;aACJ;iBAAM;gBACL,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC/C,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACtD,MAAM,MAAM,GAAG,SAAS,CAAC,cAAc,CACrC,GAAG,CAAC,2BAA2B,IAAI,MAAM,CAAC,IAAI,CAC/C,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACpC,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACnD,MAAM,SAAS,GACb,GAAG,CAAC,SAAS;oBACb,CAAC,GAAG,CAAC,yBAAyB;wBAC5B,0BAA0B,CAAC,CAAC,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;gBAElE,KAAK,GAAG,iBAAiB,CACvB,KAAK,EACL,MAAM,CAAC,mBAAmB,EAC1B,CAAC,MAAM,CAAC,EAAE,CAAC,EACX;oBACE,MAAM,EAAE,eAAe;oBACvB,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI;oBAC3B,SAAS;iBACV,CACF,CAAC;aACH;YACD,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC9B,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;YAC/B,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,mBAAmB,CAAC,CAAC;YACxB,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;YACtC,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC3C,IAAI,QAAQ,IAAI,mBAAmB,CAAC,QAAQ,CAAC;gBAAE,OAAO,KAAK,CAAC;YAE5D,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAE1C,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAE3B,IAAI,aAAa,GAAG,GAAG,CAAC;YACxB,IAAI,YAAY,GAAG,GAAG,CAAC;YAEvB,IAAI,GAAG,CAAC,2BAA2B,EAAE;gBACnC,YAAY,GAAG,GAAG,CAAC,2BAA2B,CAAC,KAAK,CAAC;gBACrD,aAAa,GAAG,GAAG,CAAC,2BAA2B,CAAC,MAAM,CAAC;aACxD;iBAAM;gBACL,MAAM,sBAAsB,GAAG,QAAQ,CAAC,cAAc,CACpD,qBAAqB,EAAE,EAAE,CAC1B,CAAC;gBACF,IAAI,sBAAsB,KAAK,IAAI,EAAE;oBACnC,YAAY,GAAG,sBAAsB,CAAC,WAAW,GAAG,EAAE,CAAC;oBACvD,aAAa,GAAG,sBAAsB,CAAC,YAAY,GAAG,EAAE,CAAC;iBAC1D;aACF;YAED,IAAI,eAAe,GAAG,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,YAAY;gBAC1C,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;gBACzC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC;oBACvB,MAAM,EAAE,aAAa;oBACrB,KAAK,EAAE,YAAY;iBACpB,CAAC,CAAC;YACP,IAAI,IAAI;gBAAE,eAAe,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1D,IAAI,QAAQ;gBAAE,eAAe,GAAG,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAEtE,MAAM,cAAc,GAAG,WAAW,EAAE,CAAC;YACrC,IAAI,IAA2C,CAAC;YAChD,IAAI,QAAQ,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE;gBAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC7D,IAAI,GAAG;oBACL,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oBAC3B,WAAW;iBACZ,CAAC;aACH;iBAAM,IAAI,QAAQ,IAAI,qBAAqB,CAAC,QAAQ,CAAC,EAAE;gBACtD,MAAM,cAAc,GAClB,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;gBACxD,IAAI,GAAG;oBACL,QAAQ,EAAE,cAAc,CAAC,EAAE;oBAC3B,cAAc;iBACf,CAAC;aACH;YAED,KAAK,GAAG,mBAAmB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACvC,OAAO,eAAe,CAAC,KAAK,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,EAAE;gBAClD,MAAM,EAAE,eAAe,CAAC,OAAO,EAAE;gBACjC,IAAI;aACL,CAAC,CAAC;SACJ;QACD,KAAK,iBAAiB,CAAC,CAAC;YACtB,OAAO,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;SAClC;QACD,KAAK,mBAAmB,CAAC,CAAC;YACxB,kBAAkB;YAClB,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAClC,cAAc;YACd,OAAO,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;SACpC;QACD,KAAK,sBAAsB,CAAC,CAAC;YAC3B,OAAO,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;gBAChD,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC7B,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,iBAAiB,CAAC,CAAC;YACtB,OAAO,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;SACxC;QACD,KAAK,kBAAkB,CAAC,CAAC;YACvB,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC;YACtB,IACE,CAAA,MAAA,KAAK,CAAC,YAAY,0CAAE,KAAK,MAAK,EAAE;gBAChC,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,QAAQ,EACpC;gBACA,OAAO,KAAK,CAAC;aACd;YAED,IAAI,QAAqB,CAAC;YAC1B,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAEzC,kEAAkE;YAClE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChD,uBAAuB;YACvB,IAAI,qBAAqB,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE;gBAChE,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE;oBAC1C,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;aACJ;YACD,OAAO,KAAK,CAAC;SACd;QACD,KAAK,kBAAkB,CAAC,CAAC;YACvB,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;YAEtC,IAAI,QAAqB,CAAC;YAC1B,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAEzC,IAAI,qBAAqB,CAAC,QAAQ,CAAC;gBAAE,OAAO,KAAK,CAAC;YAElD,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3B,MAAM,aAAa,GAAG,MAAA,IAAI,aAAJ,IAAI,cAAJ,IAAI,GACxB,GAAG,CAAC,2BAA2B,mCAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;YACjE,MAAM,iBAAiB,GAAG,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YACxD,MAAM,eAAe,GACnB,SAAS,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACpE,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtD,MAAM,eAAe,GAAG,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAE5D,MAAM,SAAS,GACb,GAAG,CAAC,SAAS;gBACb,CAAC,GAAG,CAAC,yBAAyB;oBAC5B,0BAA0B,CAAC,CAAC,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YAElE,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE;gBAChC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAE7D,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;oBAC1C,aAAa,CAAC,KAAK,EAAE,6BAA6B,EAAE,aAAa,CAAC,CAAC;gBACrE,CAAC,CAAC,CAAC;gBACH,KAAK,GAAG,mBAAmB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACvC,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;oBACzC,MAAM,EAAE,eAAe;oBACvB,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ,CAAC,IAAI;wBACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;wBAC3B,WAAW;qBACZ;oBACD,SAAS;iBACV,CAAC,CAAC;aACJ;iBAAM;gBACL,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;gBAC/C,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC9D,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBAC7C,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;gBAElD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;gBACnC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;gBAE/B,KAAK,GAAG,iBAAiB,CACvB,KAAK,EACL,cAAc,EACd,CAAC,EAAE,CAAC,EACJ;oBACE,MAAM;oBACN,IAAI,EAAE,yBAAyB,CAAC,IAAI,CAAC;wBACnC,CAAC,CAAC,IAAI;wBACN,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI;iBAC7B,EACD,MAAM,CACP,CAAC;aACH;YAED,MAAM,cAAc,GAAG,CAAA,MAAA,KAAK,CAAC,YAAY,0CAAE,KAAK,MAAK,EAAE,CAAC;YACxD,IAAI,cAAc,EAAE;gBAClB,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;oBAC/B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBAC7B,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,QAAQ,CAAC;gBACrC,CAAC,CAAC,CAAC;aACJ;YAED,OAAO,KAAK,CAAC;SACd;QACD,KAAK,8BAA8B,CAAC,CAAC;YACnC,OAAO,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;gBACrD,kBAAkB,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,iBAAiB,CAAC,CAAC;YACtB,OAAO,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;SACxC;QACD,KAAK,mBAAmB,CAAC,CAAC;YACxB,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAClC,OAAO,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;gBAChD,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;YACxB,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,mBAAmB,CAAC,CAAC;YACxB,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YACxC,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAClD,uBAAuB;YACvB,IAAI,QAAQ,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE;gBAC5C,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;oBACvD,KAAK,CAAC,eAAe;wBACnB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;4BAC/D,CAAC,CAAC,GAAG;4BACL,CAAC,CAAC,CAAC,CAAC;gBACV,CAAC,CAAC,CAAC;aACJ;YACD,OAAO,KAAK,CAAC;SACd;QACD,KAAK,mBAAmB,CAAC,CAAC;YACxB,OAAO,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;gBAChD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;oBACxD,KAAa,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;iBAC3B;YACH,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,0BAA0B,CAAC,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,YAAY;gBAAE,OAAO,KAAK,CAAC;YACtC,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAEvD,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAAC;YACvC,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC;YAEvC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,2BAA2B,IAAI;gBAC9C,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE,GAAG;aACX,CAAC;YACF,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,EAAE,CAAC,KAAK,CAAC,EAAE;gBAC7D,MAAM,EAAE,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE;aACjD,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC9B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC7B,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,QAAQ,CAAC;YACrC,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,oBAAoB,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,YAAY;gBAAE,OAAO,KAAK,CAAC;YACtC,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAEvD,KAAK,GAAG,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC7D,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC9B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC7B,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,QAAQ,CAAC;YACrC,CAAC,CAAC,CAAC;SACJ;QACD,KAAK,gBAAgB,CAAC,CAAC;YACrB,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAEnD,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACjD,IAAI,QAAQ,EAAE;gBACZ,0BAA0B;gBAC1B,OAAO,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;aACxC;YAED,4BAA4B;YAC5B,IAAI,MAAM,CAAC,QAAQ,KAAK,UAAU,EAAE;gBAClC,sCAAsC;gBACtC,IAAI,MAAM,CAAC,cAAc,CAAC,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE;oBAC7C,OAAO,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;iBACnE;gBAED,MAAM,IAAI,GAAG,MAAA,MAAA,MAAM,CAAC,SAAS,0CAAE,2BAA2B,mCAAI;oBAC5D,MAAM,EAAE,GAAG;oBACX,KAAK,EAAE,GAAG;iBACX,CAAC;gBACF,MAAM,QAAQ,GAAG,MAAA,MAAM,CAAC,cAAc,CAAC,iBAAiB,mCAAI;oBAC1D,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;oBACtC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;iBACzC,CAAC;gBACF,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACtD,MAAM,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC/D,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAEnD,MAAM,SAAS,GAAG,CAAC,CAAC,CAAA,MAAA,MAAM,CAAC,SAAS,0CAAE,2BAA2B,CAAA,CAAC;gBAClE,OAAO,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;oBACrE,MAAM,EAAE,eAAe,CAAC,OAAO,EAAE;oBACjC,IAAI,EAAE;wBACJ,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI;wBAC9B,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE;wBAChC,WAAW,EAAE,CAAC;qBACf;oBACD,SAAS;iBACV,CAAC,CAAC;aACJ;YAED,0BAA0B;YAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;YACtC,oCAAoC;YACpC,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE;gBAC3C,OAAO,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;aACjE;YAED,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACjC,8BAA8B;YAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,cAAc,EAAE;gBAC/C,OAAO,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;aACzE;YAED,yDAAyD;YACzD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC3B,MAAM,CAAC,YAAY,CAAC,KAAK,EACzB,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CACzB,CAAC;YACF,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACtD,OAAO,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;SAC5D;QACD,KAAK,8BAA8B,CAAC,CAAC;YACnC,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YACnD,OAAO,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;SAChD;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,KAAoB,EAAE,EAAkB;;IAC7D,IACE,CAAA,MAAA,KAAK,CAAC,YAAY,0CAAE,KAAK,MAAK,EAAE;QAChC,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,QAAQ,EACpC;QACA,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;YAC9B,MAAM,CAAC,KAAK,CAAC,YAAa,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;YAC9C,KAAK,CAAC,YAAa,CAAC,MAAM,GAAG,KAAK,CAAC;QACrC,CAAC,CAAC,CAAC;KACJ;IAED,IAAI,QAAqB,CAAC;IAC1B,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEzC,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;;QAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC;QAExB,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE;YAChC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1C,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;YACxB,uBAAuB;YACvB,IAAI,SAAS,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,EAAE;gBAChD,KAAK,CAAC,IAAI,GAAG,MAAA,KAAK,CAAC,OAAO,mCAAI,GAAG,CAAC;aACnC;SACF;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,KAAoB,EAAE,EAAkB;IAC7D,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE;QAClD,WAAW,EAAE,EAAE;QACf,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE;QAChC,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;YACvD,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;QAC1B,CAAC,CAAC,CAAC;KACJ;IACD,IAAI,qBAAqB,CAAC,QAAQ,CAAC,EAAE;QACnC,KAAK,GAAG,0BAA0B,CAAC,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;KACtE;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,SAAS,CAAC,KAAoB,EAAE,EAAkB;IACzD,IAAI,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC,QAAQ,EAAE;QACb,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjC,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACrC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;KACpB;IACD,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;QAC1C,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;IACzB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAU,CAAC;AACpC,CAAC;AAED,SAAS,OAAO,CAAC,KAAoB,EAAE,EAAkB;IACvD,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;QAC/B,IAAI,CAAC,KAAK,CAAC,YAAY;YAAE,OAAO;QAEhC,MAAM,cAAc,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,KAAK,EAAE,CAAC;QACvD,IAAI,cAAc,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC1D,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;SAClC;IACH,CAAC,CAAC,CAAC;IAEH,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;QAC1C,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5B,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1D,IAAI,qBAAqB,CAAC,QAAQ,CAAC,EAAE;QACnC,MAAM,cAAc,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5D,+DAA+D;QAC/D,KAAK,GAAG,mBAAmB,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;YAC/C,KAAK,CAAC,IAAI,GAAG;gBACX,QAAQ;gBACR,QAAQ;gBACR,cAAc;aACf,CAAC;QACJ,CAAC,CAAC,CAAC;KACJ;SAAM,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE;QACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC3B,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjE,KAAK,GAAG,mBAAmB,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;YAC/C,KAAK,CAAC,IAAI,GAAG;gBACX,QAAQ;gBACR,IAAI;gBACJ,WAAW;gBACX,QAAQ;aACT,CAAC;QACJ,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,mBAAmB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACxC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Base\n */\n\nimport { produce } from \"immer\";\nimport { Point, Rectangle } from \"@itwin/core-react\";\nimport { assert } from \"@itwin/core-bentley\";\nimport type { TabState } from \"./TabState\";\nimport { getWidgetLocation, isPanelWidgetLocation } from \"./WidgetLocation\";\nimport type { NineZoneAction } from \"./NineZoneAction\";\nimport {\n isPanelDropTargetState,\n isSectionDropTargetState,\n isTabDropTargetState,\n isWidgetDropTargetState,\n isWindowDropTargetState,\n} from \"./DropTargetState\";\nimport { getWidgetPanelSectionId } from \"./PanelState\";\nimport type { NineZoneState } from \"./NineZoneState\";\nimport type { PopoutWidgetState, WidgetState } from \"./WidgetState\";\nimport {\n addPanelWidget,\n getPanelSize,\n insertPanelWidget,\n updatePanelState,\n} from \"./internal/PanelStateHelpers\";\nimport {\n addRemovedTab,\n addTab,\n addTabToWidget,\n createDraggedTabState,\n removeTab,\n removeTabFromWidget,\n updateSavedTabState,\n updateTabState,\n} from \"./internal/TabStateHelpers\";\nimport {\n initRectangleProps,\n initSizeProps,\n isToolSettingsFloatingWidget,\n setPointProps,\n setSizeProps,\n updateHomeOfToolSettingsWidget,\n} from \"./internal/NineZoneStateHelpers\";\nimport {\n addFloatingWidget,\n addPopoutWidget,\n addWidgetState,\n floatingWidgetBringToFront,\n getWidgetState,\n removeFloatingWidget,\n removePanelWidget,\n removePopoutWidget,\n removeWidget,\n setWidgetActiveTabId,\n updateFloatingWidgetState,\n updateWidgetState,\n} from \"./internal/WidgetStateHelpers\";\nimport { getSendBackHomeState } from \"../widget/SendBack\";\nimport { panelSides } from \"../widget-panels/Panel\";\nimport type { TabLocation } from \"./TabLocation\";\nimport {\n getTabLocation,\n isFloatingTabLocation,\n isPanelTabLocation,\n isPopoutTabLocation,\n} from \"./TabLocation\";\nimport { getUniqueId } from \"../base/NineZone\";\nimport {\n isPanelWidgetRestoreState,\n type PanelWidgetRestoreState,\n} from \"./WidgetRestoreState\";\nimport { addDockedToolSettings } from \"./internal/ToolSettingsStateHelpers\";\n\n/** @internal */\nexport function NineZoneStateReducer(\n state: NineZoneState,\n action: NineZoneAction\n): NineZoneState {\n switch (action.type) {\n case \"RESIZE\": {\n state = produce(state, (draft) => {\n setSizeProps(draft.size, action.size);\n });\n const nzBounds = Rectangle.createFromSize(action.size);\n for (const id of state.floatingWidgets.allIds) {\n const floatingWidget = state.floatingWidgets.byId[id];\n const bounds = Rectangle.create(floatingWidget.bounds);\n const containedBounds = bounds.containIn(nzBounds);\n state = updateFloatingWidgetState(state, id, {\n bounds: containedBounds.toProps(),\n });\n }\n for (const side of panelSides) {\n state = updatePanelState(state, side, (draft) => {\n const size = getPanelSize(\n draft.size,\n side,\n draft.minSize,\n draft.maxSize,\n state.size\n );\n draft.size = size;\n });\n }\n return state;\n }\n case \"PANEL_TOGGLE_COLLAPSED\": {\n return updatePanelState(state, action.side, (draft) => {\n draft.collapsed = !draft.collapsed;\n });\n }\n case \"PANEL_SET_COLLAPSED\": {\n return updatePanelState(state, action.side, (draft) => {\n draft.collapsed = action.collapsed;\n });\n }\n case \"PANEL_SET_SIZE\": {\n const { side, size: preferredSize } = action;\n\n return updatePanelState(state, side, (draft) => {\n const size = getPanelSize(\n preferredSize,\n draft.side,\n draft.minSize,\n draft.maxSize,\n state.size\n );\n draft.size = size;\n });\n }\n case \"PANEL_SET_MIN_SIZE\": {\n return updatePanelState(state, action.side, (draft) => {\n const size = getPanelSize(\n draft.size,\n draft.side,\n action.minSize,\n draft.maxSize,\n state.size\n );\n\n draft.minSize = action.minSize;\n draft.size = size;\n });\n }\n case \"PANEL_SET_MAX_SIZE\": {\n return updatePanelState(state, action.side, (draft) => {\n const size = getPanelSize(\n draft.size,\n draft.side,\n draft.minSize,\n action.maxSize,\n state.size\n );\n\n draft.maxSize = action.maxSize;\n draft.size = size;\n });\n }\n case \"PANEL_SET_RESIZABLE\": {\n return updatePanelState(state, action.side, (draft) => {\n draft.resizable = action.resizable;\n });\n }\n case \"PANEL_SET_SPLITTER_VALUE\": {\n const splitterPercent = Math.min(Math.max(action.percent, 0), 100);\n return updatePanelState(state, action.side, (draft) => {\n draft.splitterPercent = splitterPercent;\n });\n }\n case \"PANEL_TOGGLE_SPAN\": {\n const { side } = action;\n return updatePanelState(state, side, (draft) => {\n draft.span = !draft.span;\n });\n }\n case \"PANEL_SET_PINNED\": {\n return updatePanelState(state, action.side, (draft) => {\n draft.pinned = action.pinned;\n });\n }\n case \"PANEL_TOGGLE_PINNED\": {\n return updatePanelState(state, action.side, (draft) => {\n draft.pinned = !draft.pinned;\n });\n }\n case \"PANEL_INITIALIZE\": {\n return updatePanelState(state, action.side, (draft) => {\n const size = getPanelSize(\n action.size,\n draft.side,\n draft.minSize,\n draft.maxSize,\n state.size\n );\n draft.size = size;\n });\n }\n case \"PANEL_WIDGET_DRAG_START\": {\n const { side, newFloatingWidgetId } = action;\n const panel = state.panels[side];\n const widgetIndex = panel.widgets.indexOf(action.id);\n const widget = getWidgetState(state, action.id);\n state = removePanelWidget(state, action.id);\n return addFloatingWidget(\n state,\n newFloatingWidgetId,\n widget.tabs,\n {\n bounds: Rectangle.create(action.bounds).toProps(),\n userSized: action.userSized,\n id: action.newFloatingWidgetId,\n home: {\n side: action.side,\n widgetId: \"\",\n widgetIndex,\n },\n },\n {\n ...widget,\n minimized: false,\n }\n );\n }\n case \"WIDGET_DRAG\": {\n const { floatingWidgetId, dragBy } = action;\n const floatingWidget = state.floatingWidgets.byId[floatingWidgetId];\n const newBounds = Rectangle.create(floatingWidget.bounds).offset(dragBy);\n return updateFloatingWidgetState(state, floatingWidgetId, {\n bounds: newBounds.toProps(),\n });\n }\n case \"WIDGET_DRAG_END\": {\n // TODO: handle duplicates in WIDGET_TAB_DRAG_END action\n const { target, floatingWidgetId } = action;\n const floatingWidget = state.floatingWidgets.byId[floatingWidgetId];\n const draggedWidget = getWidgetState(state, floatingWidgetId);\n\n if (isWindowDropTargetState(target)) {\n const nzBounds = Rectangle.createFromSize(state.size);\n let newBounds = Rectangle.create(floatingWidget.bounds);\n if (draggedWidget.minimized) {\n const containedBounds = newBounds.setHeight(35).containIn(nzBounds);\n newBounds = newBounds.setPosition(containedBounds.topLeft());\n } else {\n newBounds = newBounds.containIn(nzBounds);\n }\n state = updateFloatingWidgetState(state, floatingWidgetId, {\n bounds: newBounds.toProps(),\n });\n return floatingWidgetBringToFront(state, floatingWidgetId);\n }\n\n state = removeFloatingWidget(state, floatingWidgetId);\n if (isTabDropTargetState(target)) {\n state = updateHomeOfToolSettingsWidget(\n state,\n target.widgetId,\n floatingWidget.home\n );\n const targetWidget = getWidgetState(state, target.widgetId);\n const tabs = [...targetWidget.tabs];\n tabs.splice(target.tabIndex, 0, ...draggedWidget.tabs);\n state = updateWidgetState(state, target.widgetId, {\n tabs,\n });\n } else if (isSectionDropTargetState(target)) {\n state = updatePanelState(state, target.side, (draft) => {\n draft.widgets.splice(target.sectionIndex, 0, target.newWidgetId);\n draft.collapsed = false;\n });\n state = addWidgetState(\n state,\n target.newWidgetId,\n draggedWidget.tabs,\n draggedWidget\n );\n } else if (isWidgetDropTargetState(target)) {\n state = updateHomeOfToolSettingsWidget(\n state,\n target.widgetId,\n floatingWidget.home\n );\n const widget = getWidgetLocation(state, target.widgetId);\n if (widget && isPanelWidgetLocation(widget)) {\n state = updatePanelState(state, widget.side, (draft) => {\n draft.collapsed = false;\n });\n }\n const targetWidget = getWidgetState(state, target.widgetId);\n const tabs = [...targetWidget.tabs];\n tabs.splice(targetWidget.tabs.length, 0, ...draggedWidget.tabs);\n state = updateWidgetState(state, target.widgetId, {\n tabs,\n });\n } else {\n const panelSectionId = getWidgetPanelSectionId(target.side, 0);\n state = updatePanelState(state, target.side, (draft) => {\n draft.widgets = [panelSectionId];\n draft.collapsed = false;\n });\n state = addWidgetState(state, panelSectionId, draggedWidget.tabs, {\n ...draggedWidget,\n minimized: false,\n });\n }\n return state;\n }\n case \"FLOATING_WIDGET_RESIZE\": {\n const { resizeBy } = action;\n const widget = getWidgetState(state, action.id);\n\n const floatingWidget = state.floatingWidgets.byId[action.id];\n // if this is not a tool settings widget then set the userSized flag\n // istanbul ignore else\n if (!isToolSettingsFloatingWidget(state, action.id)) {\n state = updateFloatingWidgetState(state, action.id, {\n userSized: true,\n });\n }\n\n const minWidth = 200;\n const minHeight = 120;\n let newBounds = Rectangle.create(floatingWidget.bounds);\n\n // Resize top-left corner.\n const maxLeft = newBounds.right - minWidth;\n const maxTop = newBounds.bottom - minHeight;\n\n newBounds = newBounds.inset(-resizeBy.left, -resizeBy.top, 0, 0);\n const left = Math.min(maxLeft, newBounds.left);\n const top = Math.min(maxTop, newBounds.top);\n newBounds = new Rectangle(left, top, newBounds.right, newBounds.bottom);\n\n // Resize bottom-right corner.\n const minRight = newBounds.left + minWidth;\n const minBottom = newBounds.top + minHeight;\n\n newBounds = newBounds.inset(0, 0, -resizeBy.right, -resizeBy.bottom);\n const right = Math.max(minRight, newBounds.right);\n const bottom = Math.max(minBottom, newBounds.bottom);\n newBounds = new Rectangle(left, top, right, bottom);\n\n state = updateFloatingWidgetState(state, action.id, {\n bounds: newBounds,\n });\n\n const tab = state.tabs[widget.activeTabId];\n if (tab.isFloatingWidgetResizable) {\n const size = newBounds.getSize();\n state = updateTabState(state, widget.activeTabId, (draft) => {\n initSizeProps(draft, \"preferredFloatingWidgetSize\", size);\n draft.userSized = true;\n });\n }\n\n return state;\n }\n case \"FLOATING_WIDGET_SET_BOUNDS\": {\n const nzBounds = Rectangle.createFromSize(state.size);\n const bounds = Rectangle.create(action.bounds).containIn(nzBounds);\n return updateFloatingWidgetState(state, action.id, {\n bounds: bounds.toProps(),\n });\n }\n case \"FLOATING_WIDGET_CLEAR_USER_SIZED\": {\n return produce(state, (draft) => {\n const floatingWidget = draft.floatingWidgets.byId[action.id];\n floatingWidget.userSized = false;\n const widget = getWidgetState(draft, action.id);\n const tab = draft.tabs[widget.activeTabId];\n tab.userSized = false;\n });\n }\n case \"FLOATING_WIDGET_SET_USER_SIZED\": {\n return produce(state, (draft) => {\n const floatingWidget = draft.floatingWidgets.byId[action.id];\n floatingWidget.userSized = action.userSized;\n });\n }\n case \"FLOATING_WIDGET_BRING_TO_FRONT\": {\n return floatingWidgetBringToFront(state, action.id);\n }\n case \"FLOATING_WIDGET_SEND_BACK\": {\n const widget = getWidgetState(state, action.id);\n const sendBackHomeState = getSendBackHomeState(state, action.id);\n\n // Add tabs to an existing widget.\n if (sendBackHomeState.widgetId) {\n const destinationWidget = state.widgets[sendBackHomeState.widgetId];\n const tabs = [...destinationWidget.tabs, ...widget.tabs];\n state = updateWidgetState(state, destinationWidget.id, {\n tabs,\n });\n return removeWidget(state, widget.id);\n }\n\n const sectionIndex = sendBackHomeState.sectionIndex ?? 0;\n const home = state.floatingWidgets.byId[action.id].home;\n const destinationWidgetId = home.widgetId\n ? home.widgetId\n : getWidgetPanelSectionId(home.side, sectionIndex);\n\n // Add tabs to a new panel widget.\n state = removeWidget(state, widget.id);\n return insertPanelWidget(\n state,\n sendBackHomeState.side,\n destinationWidgetId,\n widget.tabs,\n sectionIndex\n );\n }\n case \"POPOUT_WIDGET_SEND_BACK\": {\n const popoutWidget = state.popoutWidgets.byId[action.id];\n const widget = getWidgetState(state, action.id);\n const home = popoutWidget.home;\n\n state = removeWidget(state, widget.id);\n\n // Determine existing widget.\n let existingWidget: WidgetState | undefined;\n if (home.widgetId in state.widgets) {\n existingWidget = state.widgets[home.widgetId];\n } else if (isPanelWidgetRestoreState(home)) {\n const panel = state.panels[home.side];\n const panelSectionId = getWidgetPanelSectionId(\n home.side,\n home.widgetIndex\n );\n existingWidget = state.widgets[panelSectionId];\n\n // Can not add additional sections, add to an existing one.\n if (!existingWidget && panel.widgets.length >= panel.maxWidgetCount) {\n const sectionIndex = Math.min(\n panel.maxWidgetCount - 1,\n home.widgetIndex\n );\n const sectionId = panel.widgets[sectionIndex];\n existingWidget = state.widgets[sectionId];\n }\n }\n\n // Add to an existing widget.\n if (existingWidget) {\n const tabs = [...existingWidget.tabs, ...widget.tabs];\n return updateWidgetState(state, existingWidget.id, {\n tabs,\n });\n }\n\n // Insert a new panel section.\n if (isPanelWidgetRestoreState(home)) {\n const sectionId = home.widgetId\n ? home.widgetId\n : getWidgetPanelSectionId(home.side, home.widgetIndex);\n return insertPanelWidget(\n state,\n home.side,\n sectionId,\n [...widget.tabs],\n home.widgetIndex\n );\n }\n\n // Add a new floating widget.\n return addFloatingWidget(\n state,\n home.widgetId,\n widget.tabs,\n home.floatingWidget\n );\n }\n case \"WIDGET_TAB_CLICK\": {\n const { id, widgetId } = action;\n state = setWidgetActiveTabId(state, widgetId, id);\n return updateWidgetState(state, widgetId, {\n minimized: false,\n });\n }\n case \"WIDGET_TAB_DOUBLE_CLICK\": {\n if (action.floatingWidgetId === undefined) return state;\n\n const widget = getWidgetState(state, action.widgetId);\n const active = action.id === widget.activeTabId;\n if (!active) return setWidgetActiveTabId(state, widget.id, action.id);\n\n return updateWidgetState(state, widget.id, {\n minimized: !widget.minimized,\n });\n }\n case \"WIDGET_TAB_DRAG_START\": {\n const tabId = action.id;\n let home: PanelWidgetRestoreState;\n if (action.floatingWidgetId) {\n const floatingWidget =\n state.floatingWidgets.byId[action.floatingWidgetId];\n home = floatingWidget.home;\n } else {\n assert(!!action.side);\n const panel = state.panels[action.side];\n const widgetIndex = panel.widgets.indexOf(action.widgetId);\n home = {\n side: action.side,\n widgetId: action.widgetId,\n widgetIndex,\n };\n }\n state = produce(state, (draft) => {\n draft.draggedTab = createDraggedTabState(tabId, {\n position: Point.create(action.position).toProps(),\n home,\n });\n });\n return removeTabFromWidget(state, tabId);\n }\n case \"WIDGET_TAB_DRAG\": {\n return produce(state, (draft) => {\n const draggedTab = draft.draggedTab;\n assert(!!draggedTab);\n const position = Point.create(draggedTab.position).offset(\n action.dragBy\n );\n setPointProps(draggedTab.position, position);\n });\n }\n case \"WIDGET_TAB_DRAG_END\": {\n assert(!!state.draggedTab);\n const target = action.target;\n if (isTabDropTargetState(target)) {\n state = updateHomeOfToolSettingsWidget(\n state,\n target.widgetId,\n state.draggedTab.home\n );\n const targetWidget = getWidgetState(state, target.widgetId);\n const tabIndex = target.tabIndex;\n const tabs = [...targetWidget.tabs];\n tabs.splice(tabIndex, 0, action.id);\n state = updateWidgetState(state, targetWidget.id, {\n tabs,\n });\n } else if (isPanelDropTargetState(target)) {\n state = updatePanelState(state, target.side, (draft) => {\n draft.widgets.push(target.newWidgetId);\n draft.collapsed = false;\n });\n state = addWidgetState(state, target.newWidgetId, [action.id]);\n } else if (isSectionDropTargetState(target)) {\n state = updatePanelState(state, target.side, (draft) => {\n draft.widgets.splice(target.sectionIndex, 0, target.newWidgetId);\n draft.collapsed = false;\n });\n state = addWidgetState(state, target.newWidgetId, [action.id]);\n } else if (isWidgetDropTargetState(target)) {\n updateHomeOfToolSettingsWidget(\n state,\n target.widgetId,\n state.draggedTab.home\n );\n const widget = getWidgetLocation(state, target.widgetId);\n if (widget && isPanelWidgetLocation(widget)) {\n state = updatePanelState(state, widget.side, (draft) => {\n draft.collapsed = false;\n });\n }\n const targetWidget = getWidgetState(state, target.widgetId);\n const tabIndex = targetWidget.tabs.length;\n const tabs = [...targetWidget.tabs];\n tabs.splice(tabIndex, 0, action.id);\n state = updateWidgetState(state, targetWidget.id, {\n tabs,\n });\n } else {\n const tab = state.tabs[state.draggedTab.tabId];\n const nzBounds = Rectangle.createFromSize(state.size);\n const bounds = Rectangle.createFromSize(\n tab.preferredFloatingWidgetSize || target.size\n ).offset(state.draggedTab.position);\n const containedBounds = bounds.containIn(nzBounds);\n const userSized =\n tab.userSized ||\n (tab.isFloatingWidgetResizable &&\n /* istanbul ignore next */ !!tab.preferredFloatingWidgetSize);\n\n state = addFloatingWidget(\n state,\n target.newFloatingWidgetId,\n [action.id],\n {\n bounds: containedBounds,\n home: state.draggedTab.home,\n userSized,\n }\n );\n }\n return produce(state, (draft) => {\n draft.draggedTab = undefined;\n });\n }\n case \"WIDGET_TAB_POPOUT\": {\n const { id, position, size } = action;\n const location = getTabLocation(state, id);\n if (location && isPopoutTabLocation(location)) return state;\n\n const savedTab = state.savedTabs.byId[id];\n\n const tab = state.tabs[id];\n\n let contentHeight = 800;\n let contentWidth = 600;\n\n if (tab.preferredFloatingWidgetSize) {\n contentWidth = tab.preferredFloatingWidgetSize.width;\n contentHeight = tab.preferredFloatingWidgetSize.height;\n } else {\n const popoutContentContainer = document.getElementById(\n `content-container:${id}`\n );\n if (popoutContentContainer !== null) {\n contentWidth = popoutContentContainer.offsetWidth + 20;\n contentHeight = popoutContentContainer.offsetHeight + 20;\n }\n }\n\n let preferredBounds = savedTab?.popoutBounds\n ? Rectangle.create(savedTab.popoutBounds)\n : Rectangle.createFromSize({\n height: contentHeight,\n width: contentWidth,\n });\n if (size) preferredBounds = preferredBounds.setSize(size);\n if (position) preferredBounds = preferredBounds.setPosition(position);\n\n const popoutWidgetId = getUniqueId();\n let home: PopoutWidgetState[\"home\"] | undefined;\n if (location && isPanelTabLocation(location)) {\n const panel = state.panels[location.side];\n const widgetIndex = panel.widgets.indexOf(location.widgetId);\n home = {\n side: location.side,\n widgetId: location.widgetId,\n widgetIndex,\n };\n } else if (location && isFloatingTabLocation(location)) {\n const floatingWidget =\n state.floatingWidgets.byId[location.floatingWidgetId];\n home = {\n widgetId: floatingWidget.id,\n floatingWidget,\n };\n }\n\n state = removeTabFromWidget(state, id);\n return addPopoutWidget(state, popoutWidgetId, [id], {\n bounds: preferredBounds.toProps(),\n home,\n });\n }\n case \"WIDGET_TAB_HIDE\": {\n return hideTab(state, action.id);\n }\n case \"WIDGET_TAB_REMOVE\": {\n // Save tab state.\n state = hideTab(state, action.id);\n // Remove tab.\n return removeTab(state, action.id);\n }\n case \"WIDGET_TAB_SET_LABEL\": {\n return updateTabState(state, action.id, (draft) => {\n draft.label = action.label;\n });\n }\n case \"WIDGET_TAB_OPEN\": {\n return openWidgetTab(state, action.id);\n }\n case \"WIDGET_TAB_CLOSE\": {\n const { id } = action;\n if (\n state.toolSettings?.tabId === id &&\n state.toolSettings.type === \"docked\"\n ) {\n return state;\n }\n\n let location: TabLocation;\n [state, location] = unhideTab(state, id);\n\n // TODO: should change activeTabId of a widget with multiple tabs.\n const widget = state.widgets[location.widgetId];\n // istanbul ignore else\n if (isFloatingTabLocation(location) && id === widget.activeTabId) {\n state = updateWidgetState(state, widget.id, {\n minimized: true,\n });\n }\n return state;\n }\n case \"WIDGET_TAB_FLOAT\": {\n const { id, position, size } = action;\n\n let location: TabLocation;\n [state, location] = unhideTab(state, id);\n\n if (isFloatingTabLocation(location)) return state;\n\n const tab = state.tabs[id];\n const preferredSize = size ??\n tab.preferredFloatingWidgetSize ?? { height: 400, width: 400 };\n const preferredPosition = position ?? { x: 50, y: 100 };\n const preferredBounds =\n Rectangle.createFromSize(preferredSize).offset(preferredPosition);\n const nzBounds = Rectangle.createFromSize(state.size);\n const containedBounds = preferredBounds.containIn(nzBounds);\n\n const userSized =\n tab.userSized ||\n (tab.isFloatingWidgetResizable &&\n /* istanbul ignore next */ !!tab.preferredFloatingWidgetSize);\n\n if (isPanelTabLocation(location)) {\n const panel = state.panels[location.side];\n const widgetIndex = panel.widgets.indexOf(location.widgetId);\n\n state = updateTabState(state, id, (draft) => {\n initSizeProps(draft, \"preferredFloatingWidgetSize\", preferredSize);\n });\n state = removeTabFromWidget(state, id);\n state = addFloatingWidget(state, id, [id], {\n bounds: containedBounds,\n home: {\n side: location.side,\n widgetId: location.widgetId,\n widgetIndex,\n },\n userSized,\n });\n } else {\n const popoutWidgetId = location.popoutWidgetId;\n const popoutWidget = state.popoutWidgets.byId[popoutWidgetId];\n const widget = state.widgets[popoutWidgetId];\n state = removePopoutWidget(state, popoutWidgetId);\n\n const bounds = popoutWidget.bounds;\n const home = popoutWidget.home;\n\n state = addFloatingWidget(\n state,\n popoutWidgetId,\n [id],\n {\n bounds,\n home: isPanelWidgetRestoreState(home)\n ? home\n : home.floatingWidget.home,\n },\n widget\n );\n }\n\n const isToolSettings = state.toolSettings?.tabId === id;\n if (isToolSettings) {\n state = produce(state, (draft) => {\n assert(!!draft.toolSettings);\n draft.toolSettings.type = \"widget\";\n });\n }\n\n return state;\n }\n case \"WIDGET_TAB_SET_POPOUT_BOUNDS\": {\n return updateSavedTabState(state, action.id, (draft) => {\n initRectangleProps(draft, \"popoutBounds\", action.bounds);\n });\n }\n case \"WIDGET_TAB_SHOW\": {\n return showWidgetTab(state, action.id);\n }\n case \"WIDGET_TAB_UNLOAD\": {\n state = hideTab(state, action.id);\n return updateTabState(state, action.id, (draft) => {\n draft.unloaded = true;\n });\n }\n case \"WIDGET_TAB_EXPAND\": {\n state = showWidgetTab(state, action.id);\n const location = getTabLocation(state, action.id);\n // istanbul ignore else\n if (location && isPanelTabLocation(location)) {\n state = updatePanelState(state, location.side, (draft) => {\n draft.splitterPercent =\n draft.widgets.findIndex((wId) => wId === location.widgetId) === 0\n ? 100\n : 0;\n });\n }\n return state;\n }\n case \"WIDGET_TAB_UPDATE\": {\n return updateTabState(state, action.id, (draft) => {\n for (const [key, val] of Object.entries(action.overrides)) {\n (draft as any)[key] = val;\n }\n });\n }\n case \"TOOL_SETTINGS_DRAG_START\": {\n if (!state.toolSettings) return state;\n if (state.toolSettings.type === \"widget\") return state;\n\n const { newFloatingWidgetId } = action;\n const tabId = state.toolSettings.tabId;\n\n const tab = state.tabs[tabId];\n const size = tab.preferredFloatingWidgetSize || {\n height: 200,\n width: 300,\n };\n state = addFloatingWidget(state, newFloatingWidgetId, [tabId], {\n bounds: Rectangle.createFromSize(size).toProps(),\n });\n return produce(state, (draft) => {\n assert(!!draft.toolSettings);\n draft.toolSettings.type = \"widget\";\n });\n }\n case \"TOOL_SETTINGS_DOCK\": {\n if (!state.toolSettings) return state;\n if (state.toolSettings.type === \"docked\") return state;\n\n state = removeTabFromWidget(state, state.toolSettings.tabId);\n return produce(state, (draft) => {\n assert(!!draft.toolSettings);\n draft.toolSettings.type = \"docked\";\n });\n }\n case \"WIDGET_DEF_ADD\": {\n state = addTab(state, action.id, action.overrides);\n\n const savedTab = state.savedTabs.byId[action.id];\n if (savedTab) {\n // Restore to saved state.\n return addRemovedTab(state, action.id);\n }\n\n // Add to a floating widget.\n if (action.location === \"floating\") {\n // Add to an existing floating widget.\n if (action.floatingWidget.id in state.widgets) {\n return addTabToWidget(state, action.id, action.floatingWidget.id);\n }\n\n const size = action.overrides?.preferredFloatingWidgetSize ?? {\n height: 200,\n width: 300,\n };\n const position = action.floatingWidget.preferredPosition ?? {\n x: (state.size.width - size.width) / 2,\n y: (state.size.height - size.height) / 2,\n };\n const nzBounds = Rectangle.createFromSize(state.size);\n const bounds = Rectangle.createFromSize(size).offset(position);\n const containedBounds = bounds.containIn(nzBounds);\n\n const userSized = !!action.overrides?.preferredFloatingWidgetSize;\n return addFloatingWidget(state, action.floatingWidget.id, [action.id], {\n bounds: containedBounds.toProps(),\n home: {\n side: action.panelSection.side,\n widgetId: action.panelSection.id,\n widgetIndex: 0,\n },\n userSized,\n });\n }\n\n // Add to a panel section.\n const side = action.panelSection.side;\n // Add to an existing panel section.\n if (action.panelSection.id in state.widgets) {\n return addTabToWidget(state, action.id, action.panelSection.id);\n }\n\n const panel = state.panels[side];\n // Add to a new panel section.\n if (panel.widgets.length < panel.maxWidgetCount) {\n return addPanelWidget(state, side, action.panelSection.id, [action.id]);\n }\n\n // Can't add additional sections, add to an existing one.\n const sectionIndex = Math.min(\n action.panelSection.index,\n panel.widgets.length - 1\n );\n const existingSectionId = panel.widgets[sectionIndex];\n return addTabToWidget(state, action.id, existingSectionId);\n }\n case \"WIDGET_DEF_ADD_TOOL_SETTINGS\": {\n state = addTab(state, action.id, action.overrides);\n return addDockedToolSettings(state, action.id);\n }\n }\n return state;\n}\n\nfunction openWidgetTab(state: NineZoneState, id: TabState[\"id\"]) {\n if (\n state.toolSettings?.tabId === id &&\n state.toolSettings.type === \"docked\"\n ) {\n return produce(state, (draft) => {\n assert(draft.toolSettings!.type === \"docked\");\n draft.toolSettings!.hidden = false;\n });\n }\n\n let location: TabLocation;\n [state, location] = unhideTab(state, id);\n\n return produce(state, (draft) => {\n const widget = draft.widgets[location.widgetId];\n widget.minimized = false;\n widget.activeTabId = id;\n\n if (isPanelTabLocation(location)) {\n const panel = draft.panels[location.side];\n panel.collapsed = false;\n // istanbul ignore next\n if (undefined === panel.size || 0 === panel.size) {\n panel.size = panel.minSize ?? 200;\n }\n }\n });\n}\n\nfunction showWidgetTab(state: NineZoneState, id: TabState[\"id\"]) {\n state = openWidgetTab(state, id);\n const location = getTabLocation(state, id);\n if (!location) return state;\n state = updateWidgetState(state, location.widgetId, {\n activeTabId: id,\n minimized: false,\n });\n if (isPanelTabLocation(location)) {\n state = updatePanelState(state, location.side, (draft) => {\n draft.collapsed = false;\n });\n }\n if (isFloatingTabLocation(location)) {\n state = floatingWidgetBringToFront(state, location.floatingWidgetId);\n }\n return state;\n}\n\nfunction unhideTab(state: NineZoneState, id: TabState[\"id\"]) {\n let location = getTabLocation(state, id);\n if (!location) {\n state = addRemovedTab(state, id);\n location = getTabLocation(state, id);\n assert(!!location);\n }\n state = updateTabState(state, id, (draft) => {\n draft.unloaded = false;\n });\n return [state, location] as const;\n}\n\nfunction hideTab(state: NineZoneState, id: TabState[\"id\"]) {\n state = produce(state, (draft) => {\n if (!draft.toolSettings) return;\n\n const isToolSettings = draft.toolSettings.tabId === id;\n if (isToolSettings && draft.toolSettings.type === \"docked\") {\n draft.toolSettings.hidden = true;\n }\n });\n\n state = updateTabState(state, id, (draft) => {\n draft.unloaded = false;\n });\n\n const location = getTabLocation(state, id);\n if (!location) return state;\n\n const widgetId = location.widgetId;\n const tabIndex = state.widgets[widgetId].tabs.indexOf(id);\n if (isFloatingTabLocation(location)) {\n const floatingWidget = state.floatingWidgets.byId[widgetId];\n // widgetDef.setFloatingContainerId(location.floatingWidgetId);\n state = updateSavedTabState(state, id, (draft) => {\n draft.home = {\n widgetId,\n tabIndex,\n floatingWidget,\n };\n });\n } else if (isPanelTabLocation(location)) {\n const side = location.side;\n const widgetIndex = state.panels[side].widgets.indexOf(widgetId);\n state = updateSavedTabState(state, id, (draft) => {\n draft.home = {\n widgetId,\n side,\n widgetIndex,\n tabIndex,\n };\n });\n }\n\n return removeTabFromWidget(state, id);\n}\n"]}
@@ -71,8 +71,9 @@ export function initRectangleProps(obj, key, rectangle) {
71
71
  }
72
72
  /** @internal */
73
73
  export function isToolSettingsFloatingWidget(state, id) {
74
+ var _a;
74
75
  const widget = getWidgetState(state, id);
75
- const toolSettingsTabId = state.toolSettings?.tabId;
76
+ const toolSettingsTabId = (_a = state.toolSettings) === null || _a === void 0 ? void 0 : _a.tabId;
76
77
  return (widget.tabs.length === 1 &&
77
78
  widget.tabs[0] === toolSettingsTabId &&
78
79
  id in state.floatingWidgets.byId);
@@ -1 +1 @@
1
- {"version":3,"file":"NineZoneStateHelpers.js","sourceRoot":"","sources":["../../../../../../src/appui-react/layout/state/internal/NineZoneStateHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Base\n */\n\nimport type { Draft } from \"immer\";\nimport type { RectangleProps, SizeProps } from \"@itwin/core-react\";\nimport { Rectangle } from \"@itwin/core-react\";\nimport type { NineZoneState } from \"../NineZoneState\";\nimport type { FloatingWidgetState } from \"../WidgetState\";\nimport {\n getWidgetState,\n updateFloatingWidgetState,\n} from \"./WidgetStateHelpers\";\n\n/** Same as XAndY from core-geometry, but reproduced here to avoid a breaking peer dependency change.\n * @internal\n */\nexport interface XAndY {\n readonly x: number;\n readonly y: number;\n}\n\n/** @internal */\nexport const category = \"appui-react:layout\";\n\n/** Helper that returns a plain object. Prevents from adding an instance that is not `immerable` to the state.\n * @internal\n */\nexport function toRectangleProps(\n rectangle: RectangleProps | undefined\n): RectangleProps {\n if (rectangle) {\n return {\n bottom: rectangle.bottom,\n left: rectangle.left,\n right: rectangle.right,\n top: rectangle.top,\n };\n }\n return new Rectangle().toProps();\n}\n\n/** @internal */\nexport function setRectangleProps(\n props: Draft<RectangleProps>,\n bounds: RectangleProps\n) {\n props.left = bounds.left;\n props.right = bounds.right;\n props.top = bounds.top;\n props.bottom = bounds.bottom;\n}\n\n/** @internal */\nexport function setPointProps(props: Draft<XAndY>, point: XAndY) {\n props.x = point.x;\n props.y = point.y;\n}\n\n/** @internal */\nexport function setSizeProps(props: Draft<SizeProps>, size: SizeProps) {\n props.height = size.height;\n props.width = size.width;\n}\n\ntype KeysOfType<T, Type> = {\n [K in keyof T]: T[K] extends Type ? K : never;\n}[keyof T];\n\n/** @internal */\nexport function initSizeProps<\n T,\n K extends KeysOfType<T, SizeProps | undefined>\n>(obj: T, key: K, size: SizeProps | undefined) {\n if (obj[key] && size) {\n setSizeProps(obj[key] as unknown as SizeProps, size);\n return;\n }\n (obj[key] as unknown as SizeProps | undefined) = size\n ? {\n height: size.height,\n width: size.width,\n }\n : undefined;\n}\n\n/** @internal */\nexport function initRectangleProps<\n T,\n K extends KeysOfType<T, RectangleProps | undefined>\n>(obj: T, key: K, rectangle: T[K]) {\n const rect = rectangle as unknown as RectangleProps | undefined;\n if (obj[key] && rect) {\n setRectangleProps(obj[key] as unknown as RectangleProps, rect);\n return;\n }\n (obj[key] as unknown as RectangleProps | undefined) = rect\n ? {\n bottom: rect.bottom,\n left: rect.left,\n right: rect.right,\n top: rect.top,\n }\n : undefined;\n}\n\n/** @internal */\nexport function isToolSettingsFloatingWidget(\n state: NineZoneState,\n id: FloatingWidgetState[\"id\"]\n) {\n const widget = getWidgetState(state, id);\n const toolSettingsTabId = state.toolSettings?.tabId;\n return (\n widget.tabs.length === 1 &&\n widget.tabs[0] === toolSettingsTabId &&\n id in state.floatingWidgets.byId\n );\n}\n\n/** @internal */\nexport function updateHomeOfToolSettingsWidget(\n state: NineZoneState,\n id: FloatingWidgetState[\"id\"],\n home: FloatingWidgetState[\"home\"]\n): NineZoneState {\n if (!isToolSettingsFloatingWidget(state, id)) return state;\n\n return updateFloatingWidgetState(state, id, {\n home,\n });\n}\n"]}
1
+ {"version":3,"file":"NineZoneStateHelpers.js","sourceRoot":"","sources":["../../../../../../src/appui-react/layout/state/internal/NineZoneStateHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Base\n */\n\nimport type { Draft } from \"immer\";\nimport type { RectangleProps, SizeProps } from \"@itwin/core-react\";\nimport { Rectangle } from \"@itwin/core-react\";\nimport type { NineZoneState } from \"../NineZoneState\";\nimport type { FloatingWidgetState } from \"../WidgetState\";\nimport {\n getWidgetState,\n updateFloatingWidgetState,\n} from \"./WidgetStateHelpers\";\n\n/** Same as XAndY from core-geometry, but reproduced here to avoid a breaking peer dependency change.\n * @internal\n */\nexport interface XAndY {\n readonly x: number;\n readonly y: number;\n}\n\n/** @internal */\nexport const category = \"appui-react:layout\";\n\n/** Helper that returns a plain object. Prevents from adding an instance that is not `immerable` to the state.\n * @internal\n */\nexport function toRectangleProps(\n rectangle: RectangleProps | undefined\n): RectangleProps {\n if (rectangle) {\n return {\n bottom: rectangle.bottom,\n left: rectangle.left,\n right: rectangle.right,\n top: rectangle.top,\n };\n }\n return new Rectangle().toProps();\n}\n\n/** @internal */\nexport function setRectangleProps(\n props: Draft<RectangleProps>,\n bounds: RectangleProps\n) {\n props.left = bounds.left;\n props.right = bounds.right;\n props.top = bounds.top;\n props.bottom = bounds.bottom;\n}\n\n/** @internal */\nexport function setPointProps(props: Draft<XAndY>, point: XAndY) {\n props.x = point.x;\n props.y = point.y;\n}\n\n/** @internal */\nexport function setSizeProps(props: Draft<SizeProps>, size: SizeProps) {\n props.height = size.height;\n props.width = size.width;\n}\n\ntype KeysOfType<T, Type> = {\n [K in keyof T]: T[K] extends Type ? K : never;\n}[keyof T];\n\n/** @internal */\nexport function initSizeProps<\n T,\n K extends KeysOfType<T, SizeProps | undefined>\n>(obj: T, key: K, size: SizeProps | undefined) {\n if (obj[key] && size) {\n setSizeProps(obj[key] as unknown as SizeProps, size);\n return;\n }\n (obj[key] as unknown as SizeProps | undefined) = size\n ? {\n height: size.height,\n width: size.width,\n }\n : undefined;\n}\n\n/** @internal */\nexport function initRectangleProps<\n T,\n K extends KeysOfType<T, RectangleProps | undefined>\n>(obj: T, key: K, rectangle: T[K]) {\n const rect = rectangle as unknown as RectangleProps | undefined;\n if (obj[key] && rect) {\n setRectangleProps(obj[key] as unknown as RectangleProps, rect);\n return;\n }\n (obj[key] as unknown as RectangleProps | undefined) = rect\n ? {\n bottom: rect.bottom,\n left: rect.left,\n right: rect.right,\n top: rect.top,\n }\n : undefined;\n}\n\n/** @internal */\nexport function isToolSettingsFloatingWidget(\n state: NineZoneState,\n id: FloatingWidgetState[\"id\"]\n) {\n const widget = getWidgetState(state, id);\n const toolSettingsTabId = state.toolSettings?.tabId;\n return (\n widget.tabs.length === 1 &&\n widget.tabs[0] === toolSettingsTabId &&\n id in state.floatingWidgets.byId\n );\n}\n\n/** @internal */\nexport function updateHomeOfToolSettingsWidget(\n state: NineZoneState,\n id: FloatingWidgetState[\"id\"],\n home: FloatingWidgetState[\"home\"]\n): NineZoneState {\n if (!isToolSettingsFloatingWidget(state, id)) return state;\n\n return updateFloatingWidgetState(state, id, {\n home,\n });\n}\n"]}
@@ -135,8 +135,9 @@ export function removeTab(state, tabId) {
135
135
  throw new UiError(category, "Tab does not exist");
136
136
  state = removeTabFromWidget(state, tabId);
137
137
  return produce(state, (draft) => {
138
+ var _a;
138
139
  delete draft.tabs[tabId];
139
- if (draft.toolSettings?.tabId === tabId) {
140
+ if (((_a = draft.toolSettings) === null || _a === void 0 ? void 0 : _a.tabId) === tabId) {
140
141
  draft.toolSettings = undefined;
141
142
  }
142
143
  });
@@ -157,7 +158,7 @@ export function addRemovedTab(state, tabId) {
157
158
  tabId,
158
159
  }));
159
160
  const savedTab = state.savedTabs.byId[tabId];
160
- const home = savedTab?.home || defaultHomeState;
161
+ const home = (savedTab === null || savedTab === void 0 ? void 0 : savedTab.home) || defaultHomeState;
161
162
  const { tabIndex, widgetId } = home;
162
163
  // Add to an existing widget (by widget id).
163
164
  if (widgetId in state.widgets) {
@@ -1 +1 @@
1
- {"version":3,"file":"TabStateHelpers.js","sourceRoot":"","sources":["../../../../../../src/appui-react/layout/state/internal/TabStateHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Base\n */\n\nimport produce, { castDraft } from \"immer\";\nimport { UiError } from \"@itwin/appui-abstract\";\nimport type { NineZoneState } from \"../NineZoneState\";\nimport type { DraggedTabState, TabState } from \"../TabState\";\nimport { category } from \"./NineZoneStateHelpers\";\nimport type { SavedTabState, TabHomeState } from \"../SavedTabState\";\nimport type { WritableDraft } from \"immer/dist/internal\";\nimport { getTabLocation } from \"../TabLocation\";\nimport {\n addFloatingWidget,\n assertWidgetState,\n getWidgetState,\n removeWidget,\n setWidgetActiveTabId,\n updateWidgetState,\n} from \"./WidgetStateHelpers\";\nimport type { WidgetState } from \"../WidgetState\";\nimport { isFloatingWidgetRestoreState } from \"../WidgetRestoreState\";\nimport { Rectangle } from \"@itwin/core-react\";\nimport { getUniqueId } from \"../../base/NineZone\";\nimport { insertPanelWidget } from \"./PanelStateHelpers\";\n\n/** @internal */\nexport function createTabState(\n id: TabState[\"id\"],\n args?: Partial<TabState>\n): TabState {\n return {\n label: \"\",\n ...args,\n id,\n unloaded: false,\n };\n}\n\n/** @internal */\nexport function createDraggedTabState(\n tabId: DraggedTabState[\"tabId\"],\n args?: Partial<DraggedTabState>\n): DraggedTabState {\n return {\n home: {\n side: \"left\",\n widgetId: \"\",\n widgetIndex: 0,\n },\n position: { x: 0, y: 0 },\n ...args,\n tabId,\n };\n}\n\n/** @internal */\nexport function updateTabState(\n state: NineZoneState,\n id: TabState[\"id\"],\n update: (draft: WritableDraft<TabState>) => void\n) {\n // eslint-disable-next-line deprecation/deprecation\n if (!(id in state.tabs)) throw new UiError(category, \"Tab does not exist\");\n\n return produce(state, (draft) => {\n const tab = draft.tabs[id];\n update(tab);\n });\n}\n\n/** @internal */\nexport function updateSavedTabState(\n state: NineZoneState,\n id: TabState[\"id\"],\n update: (draft: WritableDraft<SavedTabState>) => void\n) {\n return produce(state, (draft) => {\n const allIds = draft.savedTabs.allIds;\n const byId = draft.savedTabs.byId;\n let tab = byId[id];\n if (!tab) {\n allIds.push(id);\n tab = byId[id] = { id };\n } else {\n const index = allIds.indexOf(id);\n allIds.splice(index, 1);\n allIds.push(id);\n }\n\n update(tab);\n });\n}\n\n/** Adds a new `tab`.\n * @internal\n */\nexport function addTab(\n state: NineZoneState,\n id: TabState[\"id\"],\n tabArgs?: Partial<TabState>\n): NineZoneState {\n // eslint-disable-next-line deprecation/deprecation\n if (id in state.tabs) throw new UiError(category, \"Tab already exists\");\n const tab = {\n ...createTabState(id),\n ...tabArgs,\n };\n return produce(state, (stateDraft) => {\n stateDraft.tabs[id] = castDraft(tab);\n });\n}\n\n/** Adds an existing `tab` to a specified `widget`.\n * @internal\n */\nexport function addTabToWidget(\n state: NineZoneState,\n tabId: TabState[\"id\"],\n widgetId: WidgetState[\"id\"]\n): NineZoneState {\n return insertTabToWidget(state, tabId, widgetId, Infinity);\n}\n\n/** Inserts an existing `tab` to a specified `widget` at a specified `tabIndex`.\n * @internal\n */\nexport function insertTabToWidget(\n state: NineZoneState,\n tabId: TabState[\"id\"],\n widgetId: WidgetState[\"id\"],\n tabIndex: number\n): NineZoneState {\n if (!(tabId in state.tabs))\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(category, \"Tab does not exist\", undefined, () => ({\n tabId,\n }));\n assertWidgetState(state, widgetId);\n const location = getTabLocation(state, tabId);\n if (location)\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(\n category,\n \"Tab is already in a widget\",\n undefined,\n () => ({ tabId, widgetId: location.widgetId })\n );\n\n return produce(state, (draft) => {\n const widget = getWidgetState(draft, widgetId);\n widget.tabs.splice(tabIndex, 0, tabId);\n });\n}\n\n/** Removes tab from the UI, but keeps the tab state.\n * @internal\n */\nexport function removeTabFromWidget(\n state: NineZoneState,\n tabId: TabState[\"id\"]\n): NineZoneState {\n const location = getTabLocation(state, tabId);\n if (!location) return state;\n\n const widgetId = location.widgetId;\n const widget = getWidgetState(state, widgetId);\n const tabs = [...widget.tabs];\n const tabIndex = tabs.indexOf(tabId);\n tabs.splice(tabIndex, 1);\n\n if (tabs.length === 0) {\n return removeWidget(state, widgetId);\n }\n\n if (tabId === widget.activeTabId) {\n state = setWidgetActiveTabId(state, widget.id, tabs[0]);\n }\n\n return updateWidgetState(state, widgetId, {\n tabs,\n });\n}\n\n/** Removes tab from the UI and deletes the tab state.\n * @internal\n */\nexport function removeTab(\n state: NineZoneState,\n tabId: TabState[\"id\"]\n): NineZoneState {\n // eslint-disable-next-line deprecation/deprecation\n if (!(tabId in state.tabs)) throw new UiError(category, \"Tab does not exist\");\n\n state = removeTabFromWidget(state, tabId);\n return produce(state, (draft) => {\n delete draft.tabs[tabId];\n\n if (draft.toolSettings?.tabId === tabId) {\n draft.toolSettings = undefined;\n }\n });\n}\n\nconst defaultHomeState: TabHomeState = {\n side: \"left\",\n widgetId: \"\",\n widgetIndex: 0,\n tabIndex: 0,\n};\n\n/** Adds removed tab to the UI.\n * @internal\n */\nexport function addRemovedTab(\n state: NineZoneState,\n tabId: TabState[\"id\"]\n): NineZoneState {\n if (!(tabId in state.tabs))\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(category, \"Tab does not exist\", undefined, () => ({\n tabId,\n }));\n\n const savedTab = state.savedTabs.byId[tabId];\n const home = savedTab?.home || defaultHomeState;\n const { tabIndex, widgetId } = home;\n\n // Add to an existing widget (by widget id).\n if (widgetId in state.widgets) {\n return insertTabToWidget(state, tabId, widgetId, tabIndex);\n }\n\n // Add to a floating widget.\n if (isFloatingWidgetRestoreState(home)) {\n // Add to a new floating widget.\n const nzBounds = Rectangle.createFromSize(state.size);\n const bounds = Rectangle.create(home.floatingWidget.bounds).containIn(\n nzBounds\n );\n return addFloatingWidget(state, widgetId, [tabId], {\n ...home.floatingWidget,\n bounds: bounds.toProps(),\n });\n }\n\n // Add to a panel section.\n const panel = state.panels[home.side];\n\n // Add to existing panel section.\n if (panel.widgets.length >= panel.maxWidgetCount) {\n const sectionIndex = Math.min(panel.maxWidgetCount - 1, home.widgetIndex);\n const sectionId = panel.widgets[sectionIndex];\n return insertTabToWidget(state, tabId, sectionId, home.tabIndex);\n }\n\n // Create a new panel section.\n const newSectionId = getUniqueId();\n return insertPanelWidget(\n state,\n panel.side,\n newSectionId,\n [tabId],\n home.widgetIndex\n );\n}\n"]}
1
+ {"version":3,"file":"TabStateHelpers.js","sourceRoot":"","sources":["../../../../../../src/appui-react/layout/state/internal/TabStateHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Base\n */\n\nimport produce, { castDraft } from \"immer\";\nimport { UiError } from \"@itwin/appui-abstract\";\nimport type { NineZoneState } from \"../NineZoneState\";\nimport type { DraggedTabState, TabState } from \"../TabState\";\nimport { category } from \"./NineZoneStateHelpers\";\nimport type { SavedTabState, TabHomeState } from \"../SavedTabState\";\nimport type { WritableDraft } from \"immer/dist/internal\";\nimport { getTabLocation } from \"../TabLocation\";\nimport {\n addFloatingWidget,\n assertWidgetState,\n getWidgetState,\n removeWidget,\n setWidgetActiveTabId,\n updateWidgetState,\n} from \"./WidgetStateHelpers\";\nimport type { WidgetState } from \"../WidgetState\";\nimport { isFloatingWidgetRestoreState } from \"../WidgetRestoreState\";\nimport { Rectangle } from \"@itwin/core-react\";\nimport { getUniqueId } from \"../../base/NineZone\";\nimport { insertPanelWidget } from \"./PanelStateHelpers\";\n\n/** @internal */\nexport function createTabState(\n id: TabState[\"id\"],\n args?: Partial<TabState>\n): TabState {\n return {\n label: \"\",\n ...args,\n id,\n unloaded: false,\n };\n}\n\n/** @internal */\nexport function createDraggedTabState(\n tabId: DraggedTabState[\"tabId\"],\n args?: Partial<DraggedTabState>\n): DraggedTabState {\n return {\n home: {\n side: \"left\",\n widgetId: \"\",\n widgetIndex: 0,\n },\n position: { x: 0, y: 0 },\n ...args,\n tabId,\n };\n}\n\n/** @internal */\nexport function updateTabState(\n state: NineZoneState,\n id: TabState[\"id\"],\n update: (draft: WritableDraft<TabState>) => void\n) {\n // eslint-disable-next-line deprecation/deprecation\n if (!(id in state.tabs)) throw new UiError(category, \"Tab does not exist\");\n\n return produce(state, (draft) => {\n const tab = draft.tabs[id];\n update(tab);\n });\n}\n\n/** @internal */\nexport function updateSavedTabState(\n state: NineZoneState,\n id: TabState[\"id\"],\n update: (draft: WritableDraft<SavedTabState>) => void\n) {\n return produce(state, (draft) => {\n const allIds = draft.savedTabs.allIds;\n const byId = draft.savedTabs.byId;\n let tab = byId[id];\n if (!tab) {\n allIds.push(id);\n tab = byId[id] = { id };\n } else {\n const index = allIds.indexOf(id);\n allIds.splice(index, 1);\n allIds.push(id);\n }\n\n update(tab);\n });\n}\n\n/** Adds a new `tab`.\n * @internal\n */\nexport function addTab(\n state: NineZoneState,\n id: TabState[\"id\"],\n tabArgs?: Partial<TabState>\n): NineZoneState {\n // eslint-disable-next-line deprecation/deprecation\n if (id in state.tabs) throw new UiError(category, \"Tab already exists\");\n const tab = {\n ...createTabState(id),\n ...tabArgs,\n };\n return produce(state, (stateDraft) => {\n stateDraft.tabs[id] = castDraft(tab);\n });\n}\n\n/** Adds an existing `tab` to a specified `widget`.\n * @internal\n */\nexport function addTabToWidget(\n state: NineZoneState,\n tabId: TabState[\"id\"],\n widgetId: WidgetState[\"id\"]\n): NineZoneState {\n return insertTabToWidget(state, tabId, widgetId, Infinity);\n}\n\n/** Inserts an existing `tab` to a specified `widget` at a specified `tabIndex`.\n * @internal\n */\nexport function insertTabToWidget(\n state: NineZoneState,\n tabId: TabState[\"id\"],\n widgetId: WidgetState[\"id\"],\n tabIndex: number\n): NineZoneState {\n if (!(tabId in state.tabs))\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(category, \"Tab does not exist\", undefined, () => ({\n tabId,\n }));\n assertWidgetState(state, widgetId);\n const location = getTabLocation(state, tabId);\n if (location)\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(\n category,\n \"Tab is already in a widget\",\n undefined,\n () => ({ tabId, widgetId: location.widgetId })\n );\n\n return produce(state, (draft) => {\n const widget = getWidgetState(draft, widgetId);\n widget.tabs.splice(tabIndex, 0, tabId);\n });\n}\n\n/** Removes tab from the UI, but keeps the tab state.\n * @internal\n */\nexport function removeTabFromWidget(\n state: NineZoneState,\n tabId: TabState[\"id\"]\n): NineZoneState {\n const location = getTabLocation(state, tabId);\n if (!location) return state;\n\n const widgetId = location.widgetId;\n const widget = getWidgetState(state, widgetId);\n const tabs = [...widget.tabs];\n const tabIndex = tabs.indexOf(tabId);\n tabs.splice(tabIndex, 1);\n\n if (tabs.length === 0) {\n return removeWidget(state, widgetId);\n }\n\n if (tabId === widget.activeTabId) {\n state = setWidgetActiveTabId(state, widget.id, tabs[0]);\n }\n\n return updateWidgetState(state, widgetId, {\n tabs,\n });\n}\n\n/** Removes tab from the UI and deletes the tab state.\n * @internal\n */\nexport function removeTab(\n state: NineZoneState,\n tabId: TabState[\"id\"]\n): NineZoneState {\n // eslint-disable-next-line deprecation/deprecation\n if (!(tabId in state.tabs)) throw new UiError(category, \"Tab does not exist\");\n\n state = removeTabFromWidget(state, tabId);\n return produce(state, (draft) => {\n delete draft.tabs[tabId];\n\n if (draft.toolSettings?.tabId === tabId) {\n draft.toolSettings = undefined;\n }\n });\n}\n\nconst defaultHomeState: TabHomeState = {\n side: \"left\",\n widgetId: \"\",\n widgetIndex: 0,\n tabIndex: 0,\n};\n\n/** Adds removed tab to the UI.\n * @internal\n */\nexport function addRemovedTab(\n state: NineZoneState,\n tabId: TabState[\"id\"]\n): NineZoneState {\n if (!(tabId in state.tabs))\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(category, \"Tab does not exist\", undefined, () => ({\n tabId,\n }));\n\n const savedTab = state.savedTabs.byId[tabId];\n const home = savedTab?.home || defaultHomeState;\n const { tabIndex, widgetId } = home;\n\n // Add to an existing widget (by widget id).\n if (widgetId in state.widgets) {\n return insertTabToWidget(state, tabId, widgetId, tabIndex);\n }\n\n // Add to a floating widget.\n if (isFloatingWidgetRestoreState(home)) {\n // Add to a new floating widget.\n const nzBounds = Rectangle.createFromSize(state.size);\n const bounds = Rectangle.create(home.floatingWidget.bounds).containIn(\n nzBounds\n );\n return addFloatingWidget(state, widgetId, [tabId], {\n ...home.floatingWidget,\n bounds: bounds.toProps(),\n });\n }\n\n // Add to a panel section.\n const panel = state.panels[home.side];\n\n // Add to existing panel section.\n if (panel.widgets.length >= panel.maxWidgetCount) {\n const sectionIndex = Math.min(panel.maxWidgetCount - 1, home.widgetIndex);\n const sectionId = panel.widgets[sectionIndex];\n return insertTabToWidget(state, tabId, sectionId, home.tabIndex);\n }\n\n // Create a new panel section.\n const newSectionId = getUniqueId();\n return insertPanelWidget(\n state,\n panel.side,\n newSectionId,\n [tabId],\n home.widgetIndex\n );\n}\n"]}
@@ -79,7 +79,7 @@ export function removeWidgetState(state, id) {
79
79
  }
80
80
  /** @internal */
81
81
  export function createFloatingWidgetState(id, args) {
82
- const bounds = toRectangleProps(args?.bounds);
82
+ const bounds = toRectangleProps(args === null || args === void 0 ? void 0 : args.bounds);
83
83
  return {
84
84
  home: {
85
85
  side: "left",
@@ -93,8 +93,8 @@ export function createFloatingWidgetState(id, args) {
93
93
  }
94
94
  /** @internal */
95
95
  export function createPopoutWidgetState(id, args) {
96
- const bounds = toRectangleProps(args?.bounds);
97
- const home = args?.home
96
+ const bounds = toRectangleProps(args === null || args === void 0 ? void 0 : args.bounds);
97
+ const home = (args === null || args === void 0 ? void 0 : args.home)
98
98
  ? args.home
99
99
  : {
100
100
  side: "left",
@@ -260,7 +260,7 @@ export function addFloatingWidget(state, id, tabs, floatingWidgetArgs, widgetArg
260
260
  // eslint-disable-next-line deprecation/deprecation
261
261
  throw new UiError(category, "Floating widget already exists");
262
262
  state = addWidgetState(state, id, tabs, widgetArgs);
263
- let bounds = floatingWidgetArgs?.bounds;
263
+ let bounds = floatingWidgetArgs === null || floatingWidgetArgs === void 0 ? void 0 : floatingWidgetArgs.bounds;
264
264
  if (!bounds) {
265
265
  bounds = getNewFloatingWidgetBounds(state);
266
266
  }