@itwin/appui-react 3.0.0-dev.133 → 3.0.0-dev.138

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 (220) hide show
  1. package/README.md +3 -3
  2. package/lib/cjs/appui-react/UiFramework.d.ts +19 -10
  3. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  4. package/lib/cjs/appui-react/UiFramework.js +24 -13
  5. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  6. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts +3 -3
  7. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  8. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +3 -3
  9. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  10. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.d.ts +4 -4
  11. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  12. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js +5 -4
  13. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  14. package/lib/cjs/appui-react/backstage/BackstageItemProps.d.ts +3 -3
  15. package/lib/cjs/appui-react/backstage/BackstageItemProps.js +1 -1
  16. package/lib/cjs/appui-react/backstage/BackstageItemProps.js.map +1 -1
  17. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.d.ts +5 -5
  18. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js +3 -3
  19. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
  20. package/lib/cjs/appui-react/childwindow/ChildWindowManager.d.ts.map +1 -1
  21. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js +2 -3
  22. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  23. package/lib/cjs/appui-react/content/StageContentLayout.d.ts.map +1 -1
  24. package/lib/cjs/appui-react/content/StageContentLayout.js +5 -3
  25. package/lib/cjs/appui-react/content/StageContentLayout.js.map +1 -1
  26. package/lib/cjs/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
  27. package/lib/cjs/appui-react/frontstage/FrontstageComposer.js +1 -0
  28. package/lib/cjs/appui-react/frontstage/FrontstageComposer.js.map +1 -1
  29. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +13 -2
  30. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  31. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +129 -1
  32. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  33. package/lib/cjs/appui-react/hooks/useFrameworkVersion.js.map +1 -1
  34. package/lib/cjs/appui-react/messages/AppNotificationManager.d.ts +1 -1
  35. package/lib/cjs/appui-react/messages/AppNotificationManager.js +1 -1
  36. package/lib/cjs/appui-react/messages/AppNotificationManager.js.map +1 -1
  37. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +5 -5
  38. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  39. package/lib/cjs/appui-react/redux/StateManager.d.ts +1 -1
  40. package/lib/cjs/appui-react/redux/StateManager.js.map +1 -1
  41. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +1 -1
  42. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  43. package/lib/cjs/appui-react/shared/CustomItemProps.js.map +1 -1
  44. package/lib/cjs/appui-react/shared/ItemDefBase.d.ts +2 -2
  45. package/lib/cjs/appui-react/shared/ItemDefBase.d.ts.map +1 -1
  46. package/lib/cjs/appui-react/shared/ItemDefBase.js +1 -1
  47. package/lib/cjs/appui-react/shared/ItemDefBase.js.map +1 -1
  48. package/lib/cjs/appui-react/shared/ItemProps.d.ts +2 -2
  49. package/lib/cjs/appui-react/shared/ItemProps.js.map +1 -1
  50. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +3 -3
  51. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  52. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +25 -5
  53. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  54. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.d.ts +1 -1
  55. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js +1 -1
  56. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
  57. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts +7 -7
  58. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  59. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +9 -9
  60. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  61. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts +2 -2
  62. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  63. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js +2 -2
  64. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  65. package/lib/cjs/appui-react/toolbar/ToolButton.js +1 -1
  66. package/lib/cjs/appui-react/toolbar/ToolButton.js.map +1 -1
  67. package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts +1 -1
  68. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +1 -1
  69. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  70. package/lib/cjs/appui-react/{uisettings → uistate}/AppUiSettings.d.ts +7 -7
  71. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts.map +1 -0
  72. package/lib/cjs/appui-react/{uisettings → uistate}/AppUiSettings.js +8 -8
  73. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -0
  74. package/lib/cjs/appui-react/uistate/UserSettingsStorage.d.ts +15 -0
  75. package/lib/cjs/appui-react/uistate/UserSettingsStorage.d.ts.map +1 -0
  76. package/lib/cjs/appui-react/{uisettings → uistate}/UserSettingsStorage.js +12 -13
  77. package/lib/cjs/appui-react/uistate/UserSettingsStorage.js.map +1 -0
  78. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts +20 -0
  79. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts.map +1 -0
  80. package/lib/cjs/appui-react/uistate/useUiStateStorage.js +38 -0
  81. package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -0
  82. package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts +5 -5
  83. package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
  84. package/lib/cjs/appui-react/utils/UiShowHideManager.js +6 -6
  85. package/lib/cjs/appui-react/utils/UiShowHideManager.js.map +1 -1
  86. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts +4 -6
  87. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  88. package/lib/cjs/appui-react/widget-panels/Frontstage.js +11 -61
  89. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  90. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +1 -1
  91. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  92. package/lib/cjs/appui-react/widgets/WidgetDef.js +17 -5
  93. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  94. package/lib/cjs/appui-react/zones/ZoneDef.d.ts +4 -4
  95. package/lib/cjs/appui-react/zones/ZoneDef.d.ts.map +1 -1
  96. package/lib/cjs/appui-react/zones/ZoneDef.js +4 -4
  97. package/lib/cjs/appui-react/zones/ZoneDef.js.map +1 -1
  98. package/lib/cjs/appui-react.d.ts +4 -4
  99. package/lib/cjs/appui-react.d.ts.map +1 -1
  100. package/lib/cjs/appui-react.js +4 -4
  101. package/lib/cjs/appui-react.js.map +1 -1
  102. package/lib/esm/appui-react/UiFramework.d.ts +19 -10
  103. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  104. package/lib/esm/appui-react/UiFramework.js +25 -14
  105. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  106. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts +3 -3
  107. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  108. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +3 -3
  109. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  110. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts +4 -4
  111. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  112. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js +6 -5
  113. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  114. package/lib/esm/appui-react/backstage/BackstageItemProps.d.ts +3 -3
  115. package/lib/esm/appui-react/backstage/BackstageItemProps.js +1 -1
  116. package/lib/esm/appui-react/backstage/BackstageItemProps.js.map +1 -1
  117. package/lib/esm/appui-react/backstage/BackstageItemUtilities.d.ts +5 -5
  118. package/lib/esm/appui-react/backstage/BackstageItemUtilities.js +3 -3
  119. package/lib/esm/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
  120. package/lib/esm/appui-react/childwindow/ChildWindowManager.d.ts.map +1 -1
  121. package/lib/esm/appui-react/childwindow/ChildWindowManager.js +2 -3
  122. package/lib/esm/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  123. package/lib/esm/appui-react/content/StageContentLayout.d.ts.map +1 -1
  124. package/lib/esm/appui-react/content/StageContentLayout.js +5 -3
  125. package/lib/esm/appui-react/content/StageContentLayout.js.map +1 -1
  126. package/lib/esm/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
  127. package/lib/esm/appui-react/frontstage/FrontstageComposer.js +1 -0
  128. package/lib/esm/appui-react/frontstage/FrontstageComposer.js.map +1 -1
  129. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +13 -2
  130. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  131. package/lib/esm/appui-react/frontstage/FrontstageDef.js +131 -3
  132. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  133. package/lib/esm/appui-react/hooks/useFrameworkVersion.js.map +1 -1
  134. package/lib/esm/appui-react/messages/AppNotificationManager.d.ts +1 -1
  135. package/lib/esm/appui-react/messages/AppNotificationManager.js +1 -1
  136. package/lib/esm/appui-react/messages/AppNotificationManager.js.map +1 -1
  137. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +6 -6
  138. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  139. package/lib/esm/appui-react/redux/StateManager.d.ts +1 -1
  140. package/lib/esm/appui-react/redux/StateManager.js.map +1 -1
  141. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +1 -1
  142. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  143. package/lib/esm/appui-react/shared/CustomItemProps.js.map +1 -1
  144. package/lib/esm/appui-react/shared/ItemDefBase.d.ts +2 -2
  145. package/lib/esm/appui-react/shared/ItemDefBase.d.ts.map +1 -1
  146. package/lib/esm/appui-react/shared/ItemDefBase.js +1 -1
  147. package/lib/esm/appui-react/shared/ItemDefBase.js.map +1 -1
  148. package/lib/esm/appui-react/shared/ItemProps.d.ts +2 -2
  149. package/lib/esm/appui-react/shared/ItemProps.js.map +1 -1
  150. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +3 -3
  151. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  152. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +25 -5
  153. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  154. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.d.ts +1 -1
  155. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js +1 -1
  156. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
  157. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts +7 -7
  158. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  159. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +10 -10
  160. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  161. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts +2 -2
  162. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  163. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js +2 -2
  164. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  165. package/lib/esm/appui-react/toolbar/ToolButton.js +1 -1
  166. package/lib/esm/appui-react/toolbar/ToolButton.js.map +1 -1
  167. package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts +1 -1
  168. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +1 -1
  169. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  170. package/lib/esm/appui-react/{uisettings → uistate}/AppUiSettings.d.ts +7 -7
  171. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts.map +1 -0
  172. package/lib/esm/appui-react/{uisettings → uistate}/AppUiSettings.js +9 -9
  173. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -0
  174. package/lib/esm/appui-react/uistate/UserSettingsStorage.d.ts +15 -0
  175. package/lib/esm/appui-react/uistate/UserSettingsStorage.d.ts.map +1 -0
  176. package/lib/esm/appui-react/{uisettings → uistate}/UserSettingsStorage.js +13 -14
  177. package/lib/esm/appui-react/uistate/UserSettingsStorage.js.map +1 -0
  178. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts +20 -0
  179. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts.map +1 -0
  180. package/lib/esm/appui-react/uistate/useUiStateStorage.js +33 -0
  181. package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -0
  182. package/lib/esm/appui-react/utils/UiShowHideManager.d.ts +5 -5
  183. package/lib/esm/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
  184. package/lib/esm/appui-react/utils/UiShowHideManager.js +7 -7
  185. package/lib/esm/appui-react/utils/UiShowHideManager.js.map +1 -1
  186. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts +4 -6
  187. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  188. package/lib/esm/appui-react/widget-panels/Frontstage.js +11 -60
  189. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  190. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +1 -1
  191. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  192. package/lib/esm/appui-react/widgets/WidgetDef.js +17 -5
  193. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  194. package/lib/esm/appui-react/zones/ZoneDef.d.ts +4 -4
  195. package/lib/esm/appui-react/zones/ZoneDef.d.ts.map +1 -1
  196. package/lib/esm/appui-react/zones/ZoneDef.js +4 -4
  197. package/lib/esm/appui-react/zones/ZoneDef.js.map +1 -1
  198. package/lib/esm/appui-react.d.ts +4 -4
  199. package/lib/esm/appui-react.d.ts.map +1 -1
  200. package/lib/esm/appui-react.js +4 -4
  201. package/lib/esm/appui-react.js.map +1 -1
  202. package/package.json +34 -34
  203. package/lib/cjs/appui-react/uisettings/AppUiSettings.d.ts.map +0 -1
  204. package/lib/cjs/appui-react/uisettings/AppUiSettings.js.map +0 -1
  205. package/lib/cjs/appui-react/uisettings/UserSettingsStorage.d.ts +0 -15
  206. package/lib/cjs/appui-react/uisettings/UserSettingsStorage.d.ts.map +0 -1
  207. package/lib/cjs/appui-react/uisettings/UserSettingsStorage.js.map +0 -1
  208. package/lib/cjs/appui-react/uisettings/useUiSettings.d.ts +0 -22
  209. package/lib/cjs/appui-react/uisettings/useUiSettings.d.ts.map +0 -1
  210. package/lib/cjs/appui-react/uisettings/useUiSettings.js +0 -29
  211. package/lib/cjs/appui-react/uisettings/useUiSettings.js.map +0 -1
  212. package/lib/esm/appui-react/uisettings/AppUiSettings.d.ts.map +0 -1
  213. package/lib/esm/appui-react/uisettings/AppUiSettings.js.map +0 -1
  214. package/lib/esm/appui-react/uisettings/UserSettingsStorage.d.ts +0 -15
  215. package/lib/esm/appui-react/uisettings/UserSettingsStorage.d.ts.map +0 -1
  216. package/lib/esm/appui-react/uisettings/UserSettingsStorage.js.map +0 -1
  217. package/lib/esm/appui-react/uisettings/useUiSettings.d.ts +0 -22
  218. package/lib/esm/appui-react/uisettings/useUiSettings.d.ts.map +0 -1
  219. package/lib/esm/appui-react/uisettings/useUiSettings.js +0 -24
  220. package/lib/esm/appui-react/uisettings/useUiSettings.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"FrontstageComposer.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageComposer.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F,4CAA4C;AAC5C;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAc,kBAAkB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAe,SAAS,EAAkB,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EACL,yCAAyC,EAAE,2BAA2B,EAAsC,kBAAkB,EAAE,cAAc,EAChI,aAAa,GAC5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAyD,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACtH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,EAAW,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAgC,iBAAiB,EAAwD,MAAM,qBAAqB,CAAC;AAC5I,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAkF1E,MAAM,oBAAoB,GAAG,GAAe,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC,EAAE,EAAE;IACP,CAAC,CAAC,CAAC,EAAE,EAAE;IACP,CAAC,CAAC,CAAC,EAAE,EAAE;IACP,CAAC,CAAC,CAAC,EAAE,EAAE;IACP,CAAC,CAAC,CAAC,EAAE,EAAE;IACP,CAAC,CAAC,CAAC,EAAE,EAAE;IACP,CAAC,CAAC,CAAC,EAAE,EAAE;IACP,CAAC,CAAC,CAAC,EAAE,EAAE;CACR,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAsC;IAC7D,kBAAkB,CAAC,GAAG;IACtB,kBAAkB,CAAC,OAAO;IAC1B,kBAAkB,CAAC,IAAI;IACvB,kBAAkB,CAAC,KAAK;IACxB,kBAAkB,CAAC,MAAM;IACzB,kBAAkB,CAAC,UAAU;CAC9B,CAAC;AAEF;;;GAGG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK,CAAC,SAA+C;IAS3F,YAAY,KAAkB;QAC5B,KAAK,CAAC,KAAK,CAAC,CAAC;QANP,eAAU,GAAG,KAAK,CAAC;QA4GnB,oCAA+B,GAAG,CAAC,IAAkC,EAAE,EAAE;YAC/E,8EAA8E;YAC9E,IAAI,IAAI,CAAC,cAAc;gBACrB,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAE5D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC;YAElD,6DAA6D;YAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClE,MAAM,iBAAiB,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1H,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAE9C,uBAAuB;YACvB,IAAI,IAAI,CAAC,UAAU;gBACjB,IAAI,CAAC,QAAQ,CAAC;oBACZ,QAAQ;oBACR,UAAU;iBACX,EAAE,GAAG,EAAE;oBACN,iBAAiB,IAAI,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;oBAC/D,IAAI,CAAC,MAAM,EAAE,CAAC;oBACd,iBAAiB,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBACnD,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QA0CM,uCAAkC,GAAG,CAAC,KAAsC,EAAE,EAAE;YACtF,uBAAuB;YACvB,IAAI,IAAI,CAAC,UAAU;gBACjB,IAAI,CAAC,QAAQ,CAAC,EAAE,oBAAoB,EAAE,iBAAiB,CAAC,oBAAoB,EAAE,CAAC,CAAC;QACpF,CAAC,CAAC;QAEM,qBAAgB,GAAG,GAAG,EAAE;YAC9B,iBAAiB,CAAC,oBAAoB,EAAE,CAAC;QAC3C,CAAC,CAAC;QAgGF,uBAAuB;QACf,wBAAmB,GAAG,GAAG,EAAE;YACjC,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC,CAAC;QAEF,uBAAuB;QAChB,iBAAY,GAAG,CAAC,MAAoB,EAAE,QAAgB,EAAE,MAAoB,EAAE,gBAAwB,EAAE,EAAE;YAC/G,IAAI,IAAI,CAAC,UAAU;gBACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;oBAC1B,MAAM,KAAK,GAAG,iBAAiB,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAC/J,IAAI,KAAK,KAAK,SAAS,CAAC,QAAQ,CAAC,KAAK;wBACpC,OAAO,IAAI,CAAC;oBACd,OAAO;wBACL,QAAQ,EAAE;4BACR,GAAG,SAAS,CAAC,QAAQ;4BACrB,KAAK;yBACN;qBACF,CAAC;gBACJ,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEK,mBAAc,GAAG,CAAC,QAAsB,EAAE,QAAgB,EAAE,EAAE;YACnE,uBAAuB;YACvB,IAAI,IAAI,CAAC,UAAU;gBACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;oBAC1B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,eAAe,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;oBAChH,uBAAuB;oBACvB,IAAI,QAAQ,KAAK,SAAS,CAAC,QAAQ;wBACjC,OAAO,IAAI,CAAC;oBACd,OAAO;wBACL,QAAQ;qBACT,CAAC;gBACJ,CAAC,EAAE,GAAG,EAAE;oBACN,yDAAyD;oBACzD,MAAM,OAAO,GAAG,iBAAiB,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;oBACpE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACxC,MAAM,IAAI,GAAG,OAAO,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;oBACzD,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAA,CAAC,QAAQ,CAAC,CAAC;oBAC3E,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wBACtB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;wBACrC,IAAI,CAAC,OAAO;4BACV,OAAO;wBAET,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wBAC7B,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;wBACvE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BAC9C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;4BACpC,IAAI,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;4BAC5B,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC;gCAClB,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC;iCACtB,IAAI,KAAK,KAAK,WAAW,CAAC,IAAI;gCACjC,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;4BAC7B,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;yBACjC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC,CACA,CAAC;QACN,CAAC,CAAC;QAEF,uBAAuB;QACvB,mDAAmD;QAC5C,uBAAkB,GAAG,CAAC,QAAsB,EAAE,QAAgB,EAAE,eAA2B,EAAE,YAA4B,EAAE,EAAE;YAClI,IAAI,IAAI,CAAC,UAAU;gBACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;oBAC1B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,eAAe,CAAC,wBAAwB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;oBACvJ,IAAI,QAAQ,KAAK,SAAS,CAAC,QAAQ;wBACjC,OAAO,IAAI,CAAC;oBACd,OAAO;wBACL,QAAQ;qBACT,CAAC;gBACJ,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEF,uBAAuB;QAChB,qBAAgB,GAAG,GAAG,EAAE;YAC7B,IAAI,IAAI,CAAC,UAAU;gBACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;oBAC1B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,eAAe,CAAC,sBAAsB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;oBAC9F,IAAI,QAAQ,KAAK,SAAS,CAAC,QAAQ;wBACjC,OAAO,IAAI,CAAC;oBACd,OAAO;wBACL,QAAQ;qBACT,CAAC;gBACJ,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEF,uBAAuB;QAChB,kBAAa,GAAG,CAAC,OAAmB,EAAE,EAAE;YAC7C,IAAI,IAAI,CAAC,UAAU;gBACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;oBAC1B,MAAM,KAAK,GAAG,iBAAiB,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBACzH,IAAI,KAAK,KAAK,SAAS,CAAC,QAAQ,CAAC,KAAK;wBACpC,OAAO,IAAI,CAAC;oBACd,OAAO;wBACL,QAAQ,EAAE;4BACR,GAAG,SAAS,CAAC,QAAQ;4BACrB,KAAK;yBACN;qBACF,CAAC;gBACJ,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QA+NM,mCAA8B,GAAG,GAAG,EAAE;YAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9C,uBAAuB;YACvB,IAAI,IAAI,CAAC,UAAU;gBACjB,IAAI,CAAC,QAAQ,CAAC;oBACZ,UAAU;iBACX,CAAC,CAAC;QACP,CAAC,CAAC;QAEM,kCAA6B,GAAG,CAAC,EAAE,QAAQ,EAAE,UAAU,EAA8B,EAAE,EAAE;YAC/F,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACpD,CAAC,CAAC;QAEF,uBAAuB;QACf,iCAA4B,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAA6B,EAAE,EAAE;YACvF,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC9E,CAAC,CAAC;QAEM,8BAAyB,GAAG,GAAG,EAAE;YACvC,uBAAuB;YACvB,IAAI,CAAC,IAAI,CAAC,UAAU;gBAClB,OAAO;YAET,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC1B,MAAM,0BAA0B,GAAG,iBAAiB,CAAC,0BAA0B,CAAC;gBAChF,MAAM,OAAO,GAAG,iBAAiB,CAAC,eAAe,CAAC;gBAClD,MAAM,QAAQ,GAAG,0BAA0B,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACpI,IAAI,QAAQ,KAAK,SAAS,CAAC,QAAQ;oBACjC,OAAO,IAAI,CAAC;gBACd,OAAO;oBACL,QAAQ;iBACT,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,uBAAuB;QACf,gCAA2B,GAAG,GAAG,EAAE;YACzC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC;QAEM,uBAAkB,GAAG,GAAG,EAAE;YAChC,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC,CAAC;QAEM,qBAAgB,GAAG,GAAG,EAAE;YAC9B,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC,CAAC;QA7nBA,IAAI,CAAC,cAAc,GAAG,iBAAiB,CAAC,mBAAmB,CAAC;QAE5D,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAClE,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC;QAE7F,IAAI,CAAC,KAAK,GAAG;YACX,uBAAuB,EAAE,KAAK;YAC9B,QAAQ;YACR,oBAAoB,EAAE,iBAAiB,CAAC,oBAAoB;YAC5D,UAAU;SACX,CAAC;IACJ,CAAC;IAEO,sBAAsB,CAAC,aAA6B;QAC1D,IAAI,QAA8B,CAAC;QACnC,qBAAqB;QACrB,IAAI,aAAa,IAAI,aAAa,CAAC,QAAQ;YACzC,QAAQ,GAAG,EAAE,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;aACtC;YACH,MAAM,cAAc,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC;YAC5E,QAAQ,GAAG;gBACT,KAAK,EAAE,iBAAiB,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC,iBAAiB,CAAC,cAAc,EAAE,2BAA2B,EAAE,CAAC;gBAC3H,MAAM,EAAE;oBACN,MAAM,EAAE;wBACN,KAAK,EAAE,yCAAyC,EAAE;wBAClD,KAAK,EAAE,yCAAyC,EAAE;qBACnD;iBACF;aACF,CAAC;YACF,KAAK,MAAM,QAAQ,IAAI,mBAAmB,EAAE;gBAC1C,MAAM,UAAU,GAAG,aAAa,IAAI,aAAa,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBAC7E,IAAI,CAAC,UAAU;oBACb,SAAS;gBAEX,MAAM,WAAW,GAAG,uBAAuB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;gBACnE,MAAM,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;gBAClD,MAAM,MAAM,GAAG,iBAAiB,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACjI,QAAQ,GAAG,iBAAiB,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;aAC1E;SACF;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,oBAAoB;QAC1B,uBAAuB;QACvB,IAAI,CAAC,IAAI,CAAC,UAAU;YAClB,OAAO;QAET,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;YAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;YAC1C,IAAI,CAAC,aAAa;gBAChB,OAAO,IAAI,CAAC;YACd,MAAM,OAAO,GAAG,iBAAiB,CAAC,eAAe,CAAC;YAClD,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;YAC/C,IAAI,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;YACrC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE;gBAClC,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACjD,IAAI,CAAC,OAAO;oBACV,SAAS;gBACX,uBAAuB;gBACvB,IAAI,OAAO,CAAC,YAAY;oBACtB,KAAK,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;aAC1E;YACD,uBAAuB;YACvB,IAAI,KAAK,KAAK,SAAS,CAAC,QAAQ,CAAC,KAAK;gBACpC,OAAO,IAAI,CAAC;YACd,OAAO;gBACL,QAAQ,EAAE;oBACR,GAAG,SAAS,CAAC,QAAQ;oBACrB,KAAK;iBACN;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IAEL,CAAC;IAEO,mBAAmB;QACzB,MAAM,iBAAiB,GAAG,oBAAoB,EAAE,CAAC;QACjD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACtD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO;gBACV,OAAO,GAAG,CAAC;YACb,MAAM,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAoB,EAAE,EAAE;gBAC3E,OAAO,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;YACtD,CAAC,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAY,CAAC,SAAoB,EAAE,EAAE,CAAC,CAAC;gBACvE,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,UAAU,EAAE,SAAS,CAAC,EAAE;aACzB,CAAC,CAAC,CAAC;YACJ,OAAO;gBACL,GAAG,GAAG;gBACN,CAAC,MAAM,CAAC,EAAE,IAAI;aACf,CAAC;QACJ,CAAC,EAAE,iBAAiB,CAAC,CAAC;QACtB,OAAO,UAAU,CAAC;IACpB,CAAC;IA0BO,0BAA0B,CAAC,QAA8B;QAC/D,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC;QACvF,mBAAmB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC;QAC/F,mBAAmB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC;QACrG,mBAAmB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC;QAClG,mBAAmB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC;QACxG,mBAAmB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC;QAC/F,mBAAmB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC;QACrG,mBAAmB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC;QAClG,mBAAmB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC;QAExG,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,GAAG;gBACjD,OAAO;YAET,IAAI,CAAC,OAAO,CAAC,aAAa;gBACxB,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAE3C,IAAI,OAAO,CAAC,aAAa;gBACvB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;YAEjD,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/C,uBAAuB;YACvB,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;gBACjC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;oBACrC,OAAO,CAAC,UAAU;yBACf,MAAM,CAAC,CAAC,SAAoB,EAAE,EAAE;wBAC/B,OAAO,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;oBAC7G,CAAC,CAAC;yBACD,OAAO,CAAC,CAAC,SAAoB,EAAE,QAAgB,EAAE,EAAE;wBAClD,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE;4BACvB,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;yBACxD;oBACH,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAYO,qBAAqB;QAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,oBAAoB,KAAK,CAAC;YACvC,OAAO,IAAI,CAAC;QAEd,MAAM,qBAAqB,GAAoC,iBAAiB,CAAC,qBAAqB,CAAC;QACvG,uBAAuB;QACvB,IAAI,CAAC,qBAAqB;YACxB,OAAO,IAAI,CAAC;QAEd,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,qBAAqB,CAAC;QAE9D,OAAO,CACL,oBAAC,eAAe,IACd,MAAM,EAAE,IAAI,EACZ,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,IAAI,CAAC,gBAAgB,EACjC,WAAW,EAAE,WAAW,IAEvB,OAAO,CACQ,CACnB,CAAC;IACJ,CAAC;IAEe,MAAM;QACpB,IAAI,OAAwB,CAAC;QAC7B,uBAAuB;QACvB,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE;gBAC1C,MAAM,sBAAsB,GAA2B;oBACrD,aAAa,EAAE,IAAI,CAAC,cAAc;oBAClC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;oBAC7B,qBAAqB,EAAE,IAAI;oBAC3B,uBAAuB,EAAE,IAAI;oBAC7B,mBAAmB,EAAE,IAAI;oBACzB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;oBACjC,mBAAmB,EAAE,IAAI;oBACzB,eAAe,EAAE,IAAI;iBACtB,CAAC;gBACF,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,UAAU,EAAE,EAAE,YAAY,EAAE,sBAAsB,EAAE,CAAC,CAAC;aAC3H;iBAAM;gBACL,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,yCAAyC,CAAC,CAAC;gBAC7F,OAAO,GAAG,IAAI,CAAC;aAChB;SACF;QAED,OAAO,CACL,oBAAC,qBAAqB,CAAC,QAAQ,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,uBAAuB;YACvE,6BACE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAC/B,EAAE,EAAC,0BAA0B,EAC7B,aAAa,EAAE,IAAI,CAAC,kBAAkB,EACtC,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAClC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EACvB,SAAS,EAAE,sBAAsB,EACjC,IAAI,EAAC,cAAc;gBAElB,IAAI,CAAC,qBAAqB,EAAE;gBAC5B,OAAO,CACJ,CACyB,CAClC,CAAC;IACJ,CAAC;IAEe,iBAAiB;QAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,MAAM,iBAAiB,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1H,IAAI,IAAI,CAAC,cAAc,IAAI,iBAAiB;YAC1C,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEvD,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;QAClE,iBAAiB,CAAC,0BAA0B,CAAC,WAAW,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC/F,iBAAiB,CAAC,6BAA6B,CAAC,WAAW,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACrG,iBAAiB,CAAC,yBAAyB,CAAC,WAAW,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC7F,iBAAiB,CAAC,wBAAwB,CAAC,WAAW,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC3F,iBAAiB,CAAC,uBAAuB,CAAC,WAAW,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACzF,iBAAiB,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACnF,iBAAiB,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACvF,iBAAiB,CAAC,wBAAwB,CAAC,WAAW,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC9F,CAAC;IAEe,oBAAoB;QAClC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;QACrE,iBAAiB,CAAC,0BAA0B,CAAC,cAAc,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAClG,iBAAiB,CAAC,6BAA6B,CAAC,cAAc,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACxG,iBAAiB,CAAC,wBAAwB,CAAC,cAAc,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC9F,iBAAiB,CAAC,uBAAuB,CAAC,cAAc,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC5F,iBAAiB,CAAC,oBAAoB,CAAC,cAAc,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACtF,iBAAiB,CAAC,sBAAsB,CAAC,cAAc,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC1F,iBAAiB,CAAC,wBAAwB,CAAC,cAAc,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IACjG,CAAC;IAwGD,uBAAuB;IAChB,mBAAmB,CAAC,MAAoB,EAAE,IAAoB,EAAE,UAAmB;QACxF,IAAI,IAAI,CAAC,UAAU;YACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC1B,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC9I,iBAAiB,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC/G,IAAI,KAAK,KAAK,SAAS,CAAC,QAAQ,CAAC,KAAK;oBACpC,OAAO,IAAI,CAAC;gBACd,OAAO;oBACL,QAAQ,EAAE;wBACR,GAAG,SAAS,CAAC,QAAQ;wBACrB,KAAK;qBACN;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;IACP,CAAC;IAED,aAAa;IACN,qBAAqB,CAAC,aAAiC,EAAE,IAAY;QAC1E,MAAM,KAAK,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;QACpD,uBAAuB;QACvB,IAAI,IAAI,CAAC,UAAU;YACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC1B,MAAM,MAAM,GAAG,iBAAiB,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC1H,qBAAqB;gBACrB,IAAI,MAAM,KAAK,SAAS,CAAC,QAAQ,CAAC,MAAM;oBACtC,OAAO,IAAI,CAAC;gBACd,OAAO;oBACL,QAAQ,EAAE;wBACR,GAAG,SAAS,CAAC,QAAQ;wBACrB,MAAM;qBACP;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;IACP,CAAC;IAED,aAAa;IACb,uBAAuB;IAChB,iBAAiB,CAAC,aAAiC,EAAE,QAAgB;QAC1E,MAAM,cAAc,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,UAAU;YACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC1B,MAAM,MAAM,GAAG,iBAAiB,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACtI,IAAI,MAAM,KAAK,SAAS,CAAC,QAAQ,CAAC,MAAM;oBACtC,OAAO,IAAI,CAAC;gBACd,OAAO;oBACL,QAAQ,EAAE;wBACR,GAAG,SAAS,CAAC,QAAQ;wBACrB,MAAM;qBACP;iBACF,CAAC;YACJ,CAAC,EAAE,GAAG,EAAE;gBACN,MAAM,UAAU,GAAG,iBAAiB,CAAC,mBAAmB,CAAC;gBACzD,MAAM,UAAU,GAAG,UAAU,IAAI,UAAU,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;gBAC5E,IAAI,UAAU,EAAE;oBACd,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;oBACpE,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBACvE,MAAM,UAAU,GAAG,uBAAuB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;oBAC9D,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC;iBACpC;YACH,CAAC,CAAC,CAAC;IACP,CAAC;IAED,aAAa;IACb,uBAAuB;IAChB,2BAA2B,CAAC,aAAiC,EAAE,SAA6B;QACjG,MAAM,QAAQ,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;QACvD,iBAAiB,CAAC,eAAe,CAAC,aAAa,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACpF,OAAO,EAAE,QAAQ,CAAC,EAAE;YACpB,SAAS,EAAE,QAAQ,CAAC,IAAI;YACxB,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAED,aAAa;IACb,uBAAuB;IAChB,uBAAuB,CAAC,aAA6C;QAC1E,MAAM,QAAQ,GAAG,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;QACjG,iBAAiB,CAAC,eAAe,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC1D,OAAO,EAAE,QAAQ,CAAC,EAAE;YACpB,SAAS,EAAE,QAAQ,CAAC,IAAI;SACzB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACjB,CAAC;IAED,aAAa;IACN,yBAAyB,CAAC,aAAiC;QAChE,MAAM,UAAU,GAAG,iBAAiB,CAAC,mBAAmB,CAAC;QACzD,qBAAqB;QACrB,IAAI,CAAC,UAAU;YACb,OAAO;QACT,MAAM,UAAU,GAAG,UAAU,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAC9D,qBAAqB;QACrB,IAAI,CAAC,UAAU;YACb,OAAO;QACT,MAAM,WAAW,GAAG,uBAAuB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,0BAA0B,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC;QAC7G,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC;IACrC,CAAC;IAEM,+BAA+B,CAAC,MAAsB;QAC3D,uBAAuB;QACvB,IAAI,CAAC,IAAI,CAAC,UAAU;YAClB,OAAO;QAET,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;YAC1B,MAAM,KAAK,GAAG,iBAAiB,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC,sBAAsB,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC3H,IAAI,KAAK,KAAK,SAAS,CAAC,QAAQ,CAAC,KAAK;gBACpC,OAAO,IAAI,CAAC;YACd,OAAO;gBACL,QAAQ,EAAE;oBACR,GAAG,SAAS,CAAC,QAAQ;oBACrB,KAAK;iBACN;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,uBAAuB,CAAC,MAAsB;QACnD,uBAAuB;QACvB,IAAI,IAAI,CAAC,UAAU;YACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC1B,MAAM,KAAK,GAAG,iBAAiB,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACnH,uBAAuB;gBACvB,IAAI,KAAK,KAAK,SAAS,CAAC,QAAQ,CAAC,KAAK;oBACpC,OAAO,IAAI,CAAC;gBACd,uBAAuB;gBACvB,OAAO;oBACL,QAAQ,EAAE;wBACR,GAAG,SAAS,CAAC,QAAQ;wBACrB,KAAK;qBACN;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;IACP,CAAC;IAED,mDAAmD;IAC5C,uBAAuB,CAAC,QAAsB,EAAE,QAAgB,EAAE,SAAkB;QACzF,uBAAuB;QACvB,IAAI,IAAI,CAAC,UAAU;YACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC1B,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC1D,IAAI,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ;oBAC3C,OAAO,IAAI,CAAC;gBACd,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ;oBAC5C,OAAO,IAAI,CAAC;gBACd,MAAM,QAAQ,GAAG,iBAAiB,CAAC,eAAe,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAChH,qBAAqB;gBACrB,IAAI,QAAQ,KAAK,SAAS,CAAC,QAAQ;oBACjC,OAAO,IAAI,CAAC;gBACd,OAAO;oBACL,QAAQ;iBACT,CAAC;YACJ,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,UAAU,CAAC,MAAc;QAC9B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,2CAA2C,CAAC,CAAC;YAC/F,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAEvD,yCAAyC;QAEzC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,uBAAuB;IAChB,qBAAqB,CAAC,MAAoB;QAC/C,MAAM,OAAO,GAAG,iBAAiB,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;QACpE,OAAO,OAAO,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1E,CAAC;IAEM,oBAAoB,CAAC,MAAoB,EAAE,aAAsB;QACtE,uBAAuB;QACvB,IAAI,IAAI,CAAC,UAAU;YACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC1B,MAAM,KAAK,GAAG,iBAAiB,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACpI,IAAI,KAAK,KAAK,SAAS,CAAC,QAAQ,CAAC,KAAK;oBACpC,OAAO,IAAI,CAAC;gBACd,OAAO;oBACL,QAAQ,EAAE;wBACR,GAAG,SAAS,CAAC,QAAQ;wBACrB,KAAK;qBACN;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,UAAU,CAAC,SAAuB,EAAE,QAAsB;QAC/D,uBAAuB;QACvB,IAAI,IAAI,CAAC,UAAU;YACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC1B,MAAM,KAAK,GAAG,iBAAiB,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC3H,uBAAuB;gBACvB,IAAI,KAAK,KAAK,SAAS,CAAC,QAAQ,CAAC,KAAK;oBACpC,OAAO,IAAI,CAAC;gBACd,uBAAuB;gBACvB,OAAO;oBACL,QAAQ,EAAE;wBACR,GAAG,SAAS,CAAC,QAAQ;wBACrB,KAAK;qBACN;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,MAAM;QACZ,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,0BAA0B,CAAC,CAAC;QAClE,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,mCAAmC,CAAC,CAAC;QACnF,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa;YAC1B,OAAO;QACT,IAAI,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAC7E,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC;QACtE,cAAc,GAAG,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,+BAA+B,CAAC,cAAc,CAAC,CAAC;IACvD,CAAC;IAkDO,0BAA0B,CAAC,uBAAgC;QACjE,qBAAqB;QACrB,IAAI,CAAC,IAAI,CAAC,UAAU;YAClB,OAAO;QAET,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;YAC1B,qBAAqB;YACrB,IAAI,SAAS,CAAC,uBAAuB,KAAK,uBAAuB;gBAC/D,OAAO,IAAI,CAAC;YACd,OAAO;gBACL,uBAAuB;aACxB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,QAA4B,EAAE,UAA2B;QAC7E,MAAM,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACxD,uBAAuB;QACvB,IAAI,IAAI,CAAC,UAAU;YACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC1B,MAAM,MAAM,GAAG,iBAAiB,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC3I,qBAAqB;gBACrB,IAAI,MAAM,KAAK,SAAS,CAAC,QAAQ,CAAC,MAAM;oBACtC,OAAO,IAAI,CAAC;gBACd,OAAO;oBACL,QAAQ,EAAE;wBACR,GAAG,SAAS,CAAC,QAAQ;wBACrB,MAAM;qBACP;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;IACP,CAAC;CACF;AAED,gBAAgB;AAChB,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,UAA2B,EAAE,EAAE;IACrE,QAAQ,UAAU,EAAE;QAClB,KAAK,eAAe,CAAC,SAAS,CAAC;QAC/B,KAAK,eAAe,CAAC,GAAG;YACtB,OAAO,IAAI,CAAC;QACd;YACE,OAAO,KAAK,CAAC;KAChB;AACH,CAAC,CAAC;AAEF,gBAAgB;AAChB,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,WAAoB,EAAE,EAAE;IAC9D,QAAQ,WAAW,EAAE;QACnB,KAAK,IAAI;YACP,OAAO,eAAe,CAAC,SAAS,CAAC;QACnC;YACE,OAAO,eAAe,CAAC,IAAI,CAAC;KAC/B;AACH,CAAC,CAAC;AAEF,gBAAgB;AAChB,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,2DAA2D","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable deprecation/deprecation */\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { PointProps, StagePanelLocation, WidgetState } from \"@itwin/appui-abstract\";\r\nimport { CommonProps, Rectangle, RectangleProps } from \"@itwin/core-react\";\r\nimport {\r\n getDefaultNineZoneStagePanelsManagerProps, getDefaultZonesManagerProps, NineZoneManagerProps, ResizeHandle, StagePanelsManager, StagePanelType,\r\n WidgetZoneId, widgetZoneIds, ZoneTargetType,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { getNestedStagePanelKey } from \"../stagepanels/StagePanel\";\r\nimport { PanelSizeChangedEventArgs, PanelStateChangedEventArgs, StagePanelState } from \"../stagepanels/StagePanelDef\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { WidgetDef } from \"../widgets/WidgetDef\";\r\nimport { WidgetTab, WidgetTabs } from \"../widgets/WidgetStack\";\r\nimport { ZoneDef, ZoneState } from \"../zones/ZoneDef\";\r\nimport { FrontstageDef } from \"./FrontstageDef\";\r\nimport { FrontstageActivatedEventArgs, FrontstageManager, ModalFrontstageChangedEventArgs, ModalFrontstageInfo } from \"./FrontstageManager\";\r\nimport { ModalFrontstage } from \"./ModalFrontstage\";\r\nimport { onEscapeSetFocusToHome } from \"../hooks/useEscapeSetFocusToHome\";\r\n\r\n/** Interface defining callbacks for widget changes\r\n * @deprecated\r\n * @public\r\n */\r\nexport interface WidgetChangeHandler {\r\n // eslint-disable-next-line deprecation/deprecation\r\n handleResize(zoneId: WidgetZoneId, resizeBy: number, handle: ResizeHandle, filledHeightDiff: number): void;\r\n // eslint-disable-next-line deprecation/deprecation\r\n handleTabClick(widgetId: WidgetZoneId, tabIndex: number): void;\r\n // eslint-disable-next-line deprecation/deprecation\r\n handleTabDragStart(widgetId: WidgetZoneId, tabIndex: number, initialPosition: PointProps, widgetBounds: RectangleProps): void;\r\n handleTabDragEnd(): void;\r\n handleTabDrag(dragged: PointProps): void;\r\n // eslint-disable-next-line deprecation/deprecation\r\n handleWidgetStateChange(widgetId: WidgetZoneId, tabIndex: number, isOpening: boolean): void;\r\n}\r\n\r\n/** Interface defining callbacks for stage panel changes\r\n * @public\r\n */\r\nexport interface StagePanelChangeHandler {\r\n /** @alpha */\r\n handlePanelInitialize(panelLocation: StagePanelLocation, size: number): void;\r\n /** @alpha */\r\n handlePanelResize(panelLocation: StagePanelLocation, resizeBy: number): void;\r\n /** @alpha */\r\n handlePanelPaneTargetChange(panelLocation: StagePanelLocation, paneIndex: number | undefined): void;\r\n /** @alpha */\r\n handlePanelTargetChange(panelLocation: StagePanelLocation | undefined): void;\r\n /** @alpha */\r\n handleTogglePanelCollapse(panelLocation: StagePanelLocation): void;\r\n}\r\n\r\n/** Interface defining callbacks for ZoneDropTarget changes\r\n * @deprecated\r\n * @public\r\n */\r\nexport interface TargetChangeHandler {\r\n handleTargetChanged(zoneId: WidgetZoneId, type: ZoneTargetType, isTargeted: boolean): void; // eslint-disable-line deprecation/deprecation\r\n}\r\n\r\n/** Interface defining callbacks for nine zone changes\r\n * @public\r\n */\r\nexport interface NineZoneChangeHandler {\r\n handleFloatingZonesBoundsChange(bounds: RectangleProps): void;\r\n handleZonesBoundsChange(bounds: RectangleProps): void;\r\n}\r\n\r\n/** Interface defining a provider for Zone definitions\r\n * @public\r\n */\r\nexport interface ZoneDefProvider {\r\n getZoneDef(zoneId: number): ZoneDef | undefined;\r\n}\r\n\r\n/** Runtime Props for the Frontstage\r\n * @internal\r\n */\r\nexport interface FrontstageRuntimeProps {\r\n frontstageDef: FrontstageDef;\r\n nineZone: NineZoneManagerProps;\r\n nineZoneChangeHandler: NineZoneChangeHandler;\r\n stagePanelChangeHandler: StagePanelChangeHandler;\r\n targetChangeHandler: TargetChangeHandler; // eslint-disable-line deprecation/deprecation\r\n widgetChangeHandler: WidgetChangeHandler; // eslint-disable-line deprecation/deprecation\r\n widgetTabs: WidgetTabs;\r\n zoneDefProvider: ZoneDefProvider;\r\n}\r\n\r\n/** State for the FrontstageComposer component.\r\n * @internal\r\n */\r\ninterface FrontstageComposerState {\r\n allowPointerUpSelection: boolean;\r\n modalFrontstageCount: number;\r\n nineZone: NineZoneManagerProps;\r\n widgetTabs: WidgetTabs;\r\n}\r\n\r\nconst getDefaultWidgetTabs = (): WidgetTabs => ({\r\n [1]: [],\r\n [2]: [],\r\n [3]: [],\r\n [4]: [],\r\n [6]: [],\r\n [7]: [],\r\n [8]: [],\r\n [9]: [],\r\n});\r\n\r\nconst stagePanelLocations: ReadonlyArray<StagePanelLocation> = [\r\n StagePanelLocation.Top,\r\n StagePanelLocation.TopMost,\r\n StagePanelLocation.Left,\r\n StagePanelLocation.Right,\r\n StagePanelLocation.Bottom,\r\n StagePanelLocation.BottomMost,\r\n];\r\n\r\n/** FrontstageComposer React component.\r\n * @deprecated\r\n * @public\r\n */\r\nexport class FrontstageComposer extends React.Component<CommonProps, FrontstageComposerState>\r\n implements WidgetChangeHandler, TargetChangeHandler, ZoneDefProvider, StagePanelChangeHandler, NineZoneChangeHandler { // eslint-disable-line deprecation/deprecation\r\n\r\n private _frontstageDef: FrontstageDef | undefined;\r\n private _isMounted = false;\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<FrontstageComposerState>;\r\n\r\n constructor(props: CommonProps) {\r\n super(props);\r\n\r\n this._frontstageDef = FrontstageManager.activeFrontstageDef;\r\n\r\n // Get the id and nineZoneProps for the current FrontstageDef\r\n const nineZone = this.determineNineZoneProps(this._frontstageDef);\r\n const widgetTabs = this._frontstageDef ? this.determineWidgetTabs() : getDefaultWidgetTabs();\r\n\r\n this.state = {\r\n allowPointerUpSelection: false,\r\n nineZone,\r\n modalFrontstageCount: FrontstageManager.modalFrontstageCount,\r\n widgetTabs,\r\n };\r\n }\r\n\r\n private determineNineZoneProps(frontstageDef?: FrontstageDef): NineZoneManagerProps {\r\n let nineZone: NineZoneManagerProps;\r\n // istanbul ignore if\r\n if (frontstageDef && frontstageDef.nineZone)\r\n nineZone = { ...frontstageDef.nineZone };\r\n else {\r\n const isInFooterMode = frontstageDef ? frontstageDef.isInFooterMode : false;\r\n nineZone = {\r\n zones: FrontstageManager.NineZoneManager.getZonesManager().setIsInFooterMode(isInFooterMode, getDefaultZonesManagerProps()),\r\n nested: {\r\n panels: {\r\n inner: getDefaultNineZoneStagePanelsManagerProps(),\r\n outer: getDefaultNineZoneStagePanelsManagerProps(),\r\n },\r\n },\r\n };\r\n for (const location of stagePanelLocations) {\r\n const stagePanel = frontstageDef && frontstageDef.getStagePanelDef(location);\r\n if (!stagePanel)\r\n continue;\r\n\r\n const isCollapsed = panelStateToIsCollapsed(stagePanel.panelState);\r\n const panelKey = getNestedStagePanelKey(location);\r\n const nested = FrontstageManager.NineZoneManager.getNestedPanelsManager().setIsCollapsed(panelKey, isCollapsed, nineZone.nested);\r\n nineZone = FrontstageManager.NineZoneManager.setNested(nested, nineZone);\r\n }\r\n }\r\n return nineZone;\r\n }\r\n\r\n private initializeZoneBounds() {\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n this.setState((prevState) => {\r\n const frontstageDef = this._frontstageDef;\r\n if (!frontstageDef)\r\n return null;\r\n const manager = FrontstageManager.NineZoneManager;\r\n const zonesManager = manager.getZonesManager();\r\n let zones = prevState.nineZone.zones;\r\n for (const zoneId of widgetZoneIds) {\r\n const zoneDef = frontstageDef.getZoneDef(zoneId);\r\n if (!zoneDef)\r\n continue;\r\n // istanbul ignore next\r\n if (zoneDef.initialWidth)\r\n zones = zonesManager.setZoneWidth(zoneId, zoneDef.initialWidth, zones);\r\n }\r\n // istanbul ignore else\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n\r\n }\r\n\r\n private determineWidgetTabs(): WidgetTabs {\r\n const defaultWidgetTabs = getDefaultWidgetTabs();\r\n const widgetTabs = widgetZoneIds.reduce((acc, zoneId) => {\r\n const zoneDef = this.getZoneDef(zoneId);\r\n if (!zoneDef)\r\n return acc;\r\n const visibleWidgetDefs = zoneDef.widgetDefs.filter((widgetDef: WidgetDef) => {\r\n return widgetDef.isVisible && !widgetDef.isFloating;\r\n });\r\n const tabs = visibleWidgetDefs.map<WidgetTab>((widgetDef: WidgetDef) => ({\r\n badgeType: widgetDef.badgeType,\r\n iconSpec: widgetDef.iconSpec,\r\n title: widgetDef.label,\r\n widgetName: widgetDef.id,\r\n }));\r\n return {\r\n ...acc,\r\n [zoneId]: tabs,\r\n };\r\n }, defaultWidgetTabs);\r\n return widgetTabs;\r\n }\r\n\r\n private _handleFrontstageActivatedEvent = (args: FrontstageActivatedEventArgs) => {\r\n // istanbul ignore next - Save the nineZoneProps into the former FrontstageDef\r\n if (this._frontstageDef)\r\n this._frontstageDef.nineZone = { ...this.state.nineZone };\r\n\r\n this._frontstageDef = args.activatedFrontstageDef;\r\n\r\n // Get the id and nineZoneProps for the current FrontstageDef\r\n const nineZone = this.determineNineZoneProps(this._frontstageDef);\r\n const needInitialLayout = (this._frontstageDef && this._frontstageDef.nineZone) ? /* istanbul ignore next */ false : true;\r\n const widgetTabs = this.determineWidgetTabs();\r\n\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({\r\n nineZone,\r\n widgetTabs,\r\n }, () => {\r\n needInitialLayout && this.initializeFrontstageLayout(nineZone);\r\n this.layout();\r\n needInitialLayout && this.initializeZoneBounds();\r\n });\r\n };\r\n\r\n private initializeFrontstageLayout(nineZone: NineZoneManagerProps) {\r\n const nestedPanelsManager = FrontstageManager.NineZoneManager.getNestedPanelsManager();\r\n nestedPanelsManager.getPanelsManager(\"inner\").getPanelManager(StagePanelType.Top).minSize = 20;\r\n nestedPanelsManager.getPanelsManager(\"inner\").getPanelManager(StagePanelType.Top).collapseOffset = 0;\r\n nestedPanelsManager.getPanelsManager(\"inner\").getPanelManager(StagePanelType.Bottom).minSize = 20;\r\n nestedPanelsManager.getPanelsManager(\"inner\").getPanelManager(StagePanelType.Bottom).collapseOffset = 0;\r\n nestedPanelsManager.getPanelsManager(\"outer\").getPanelManager(StagePanelType.Top).minSize = 20;\r\n nestedPanelsManager.getPanelsManager(\"outer\").getPanelManager(StagePanelType.Top).collapseOffset = 0;\r\n nestedPanelsManager.getPanelsManager(\"outer\").getPanelManager(StagePanelType.Bottom).minSize = 20;\r\n nestedPanelsManager.getPanelsManager(\"outer\").getPanelManager(StagePanelType.Bottom).collapseOffset = 0;\r\n\r\n widgetZoneIds.forEach((zoneId) => {\r\n const zoneDef = this.getZoneDef(zoneId);\r\n if (!zoneDef || zoneDef.zoneState === ZoneState.Off)\r\n return;\r\n\r\n if (!zoneDef.allowsMerging)\r\n this.setZoneAllowsMerging(zoneId, false);\r\n\r\n if (zoneDef.mergeWithZone)\r\n this.mergeZones(zoneId, zoneDef.mergeWithZone);\r\n\r\n const zoneProps = nineZone.zones.zones[zoneId];\r\n // istanbul ignore else\r\n if (zoneProps.widgets.length >= 1) {\r\n zoneProps.widgets.forEach((widgetId) => {\r\n zoneDef.widgetDefs\r\n .filter((widgetDef: WidgetDef) => {\r\n return widgetDef.isVisible && !widgetDef.isToolSettings && !widgetDef.isStatusBar && !widgetDef.isFreeform;\r\n })\r\n .forEach((widgetDef: WidgetDef, tabIndex: number) => {\r\n if (widgetDef.canOpen()) {\r\n this.handleWidgetStateChange(widgetId, tabIndex, true);\r\n }\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n private _handleModalFrontstageChangedEvent = (_args: ModalFrontstageChangedEventArgs) => {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({ modalFrontstageCount: FrontstageManager.modalFrontstageCount });\r\n };\r\n\r\n private _closeModalStage = () => {\r\n FrontstageManager.closeModalFrontstage();\r\n };\r\n\r\n private renderModalFrontstage(): React.ReactNode {\r\n if (this.state.modalFrontstageCount === 0)\r\n return null;\r\n\r\n const activeModalFrontstage: ModalFrontstageInfo | undefined = FrontstageManager.activeModalFrontstage;\r\n // istanbul ignore next\r\n if (!activeModalFrontstage)\r\n return null;\r\n\r\n const { title, content, appBarRight } = activeModalFrontstage;\r\n\r\n return (\r\n <ModalFrontstage\r\n isOpen={true}\r\n title={title}\r\n closeModal={this._closeModalStage}\r\n appBarRight={appBarRight}\r\n >\r\n {content}\r\n </ModalFrontstage>\r\n );\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n let content: React.ReactNode;\r\n // istanbul ignore else\r\n if (this._frontstageDef) {\r\n if (this._frontstageDef.frontstageProvider) {\r\n const frontstageRuntimeProps: FrontstageRuntimeProps = {\r\n frontstageDef: this._frontstageDef,\r\n nineZone: this.state.nineZone,\r\n nineZoneChangeHandler: this,\r\n stagePanelChangeHandler: this,\r\n widgetChangeHandler: this,\r\n widgetTabs: this.state.widgetTabs,\r\n targetChangeHandler: this,\r\n zoneDefProvider: this,\r\n };\r\n content = React.cloneElement(this._frontstageDef.frontstageProvider.frontstage, { runtimeProps: frontstageRuntimeProps });\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), \"FrontstageDef has no FrontstageProvider\");\r\n content = null;\r\n }\r\n }\r\n\r\n return (\r\n <ToolGroupPanelContext.Provider value={this.state.allowPointerUpSelection}>\r\n <div\r\n className={this.props.className}\r\n id=\"uifw-frontstage-composer\"\r\n onPointerDown={this._handlePointerDown}\r\n onPointerUp={this._handlePointerUp}\r\n style={this.props.style}\r\n onKeyDown={onEscapeSetFocusToHome}\r\n role=\"presentation\"\r\n >\r\n {this.renderModalFrontstage()}\r\n {content}\r\n </div>\r\n </ToolGroupPanelContext.Provider>\r\n );\r\n }\r\n\r\n public override componentDidMount(): void {\r\n this._isMounted = true;\r\n const needInitialLayout = (this._frontstageDef && this._frontstageDef.nineZone) ? /* istanbul ignore next */ false : true;\r\n if (this._frontstageDef && needInitialLayout)\r\n this.initializeFrontstageLayout(this.state.nineZone);\r\n\r\n this.layout();\r\n this.initializeZoneBounds();\r\n window.addEventListener(\"resize\", this._handleWindowResize, true);\r\n FrontstageManager.onFrontstageActivatedEvent.addListener(this._handleFrontstageActivatedEvent);\r\n FrontstageManager.onModalFrontstageChangedEvent.addListener(this._handleModalFrontstageChangedEvent);\r\n FrontstageManager.onWidgetStateChangedEvent.addListener(this._handleWidgetStateChangedEvent);\r\n FrontstageManager.onPanelStateChangedEvent.addListener(this._handlePanelStateChangedEvent);\r\n FrontstageManager.onPanelSizeChangedEvent.addListener(this._handlePanelSizeChangedEvent);\r\n FrontstageManager.onToolActivatedEvent.addListener(this._handleToolActivatedEvent);\r\n FrontstageManager.onToolPanelOpenedEvent.addListener(this._handleToolPanelOpenedEvent);\r\n FrontstageManager.onWidgetDefsUpdatedEvent.addListener(this._handleWidgetStateChangedEvent);\r\n }\r\n\r\n public override componentWillUnmount(): void {\r\n this._isMounted = false;\r\n window.removeEventListener(\"resize\", this._handleWindowResize, true);\r\n FrontstageManager.onFrontstageActivatedEvent.removeListener(this._handleFrontstageActivatedEvent);\r\n FrontstageManager.onModalFrontstageChangedEvent.removeListener(this._handleModalFrontstageChangedEvent);\r\n FrontstageManager.onPanelStateChangedEvent.removeListener(this._handlePanelStateChangedEvent);\r\n FrontstageManager.onPanelSizeChangedEvent.removeListener(this._handlePanelSizeChangedEvent);\r\n FrontstageManager.onToolActivatedEvent.removeListener(this._handleToolActivatedEvent);\r\n FrontstageManager.onToolPanelOpenedEvent.removeListener(this._handleToolPanelOpenedEvent);\r\n FrontstageManager.onWidgetDefsUpdatedEvent.removeListener(this._handleWidgetStateChangedEvent);\r\n }\r\n\r\n // istanbul ignore next\r\n private _handleWindowResize = () => {\r\n this.layout();\r\n };\r\n\r\n // istanbul ignore next\r\n public handleResize = (zoneId: WidgetZoneId, resizeBy: number, handle: ResizeHandle, filledHeightDiff: number) => { // eslint-disable-line deprecation/deprecation\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const zones = FrontstageManager.NineZoneManager.getZonesManager().handleWidgetResize({ zoneId, resizeBy, handle, filledHeightDiff }, prevState.nineZone.zones);\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n };\r\n\r\n public handleTabClick = (widgetId: WidgetZoneId, tabIndex: number) => { // eslint-disable-line deprecation/deprecation\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const nineZone = FrontstageManager.NineZoneManager.handleWidgetTabClick(widgetId, tabIndex, prevState.nineZone);\r\n // istanbul ignore next\r\n if (nineZone === prevState.nineZone)\r\n return null;\r\n return {\r\n nineZone,\r\n };\r\n }, () => {\r\n // TODO: use NineZoneManager notifications once available\r\n const manager = FrontstageManager.NineZoneManager.getZonesManager();\r\n const props = this.state.nineZone.zones;\r\n const zone = manager.findZoneWithWidget(widgetId, props);\r\n const widgets = zone ? zone.widgets : /* istanbul ignore next */[widgetId];\r\n widgets.forEach((wId) => {\r\n const zoneDef = this.getZoneDef(wId);\r\n if (!zoneDef)\r\n return;\r\n\r\n const w = props.widgets[wId];\r\n const visibleWidgets = zoneDef.widgetDefs.filter((wd) => wd.isVisible);\r\n for (let i = 0; i < visibleWidgets.length; i++) {\r\n const widgetDef = visibleWidgets[i];\r\n let state = widgetDef.state;\r\n if (w.tabIndex === i)\r\n state = WidgetState.Open;\r\n else if (state === WidgetState.Open)\r\n state = WidgetState.Closed;\r\n widgetDef.setWidgetState(state);\r\n }\r\n });\r\n },\r\n );\r\n };\r\n\r\n // istanbul ignore next\r\n // eslint-disable-next-line deprecation/deprecation\r\n public handleTabDragStart = (widgetId: WidgetZoneId, tabIndex: number, initialPosition: PointProps, widgetBounds: RectangleProps) => {\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const nineZone = FrontstageManager.NineZoneManager.handleWidgetTabDragStart({ widgetId, tabIndex, initialPosition, widgetBounds }, prevState.nineZone);\r\n if (nineZone === prevState.nineZone)\r\n return null;\r\n return {\r\n nineZone,\r\n };\r\n });\r\n };\r\n\r\n // istanbul ignore next\r\n public handleTabDragEnd = () => {\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const nineZone = FrontstageManager.NineZoneManager.handleWidgetTabDragEnd(prevState.nineZone);\r\n if (nineZone === prevState.nineZone)\r\n return null;\r\n return {\r\n nineZone,\r\n };\r\n });\r\n };\r\n\r\n // istanbul ignore next\r\n public handleTabDrag = (dragged: PointProps) => {\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const zones = FrontstageManager.NineZoneManager.getZonesManager().handleWidgetTabDrag(dragged, prevState.nineZone.zones);\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n };\r\n\r\n // istanbul ignore next\r\n public handleTargetChanged(zoneId: WidgetZoneId, type: ZoneTargetType, isTargeted: boolean): void { // eslint-disable-line deprecation/deprecation\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const zones = isTargeted ? FrontstageManager.NineZoneManager.getZonesManager().handleTargetChanged({ zoneId, type }, prevState.nineZone.zones) :\r\n FrontstageManager.NineZoneManager.getZonesManager().handleTargetChanged(undefined, prevState.nineZone.zones);\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n }\r\n\r\n /** @alpha */\r\n public handlePanelInitialize(panelLocation: StagePanelLocation, size: number): void {\r\n const panel = getNestedStagePanelKey(panelLocation);\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const nested = FrontstageManager.NineZoneManager.getNestedPanelsManager().setSize(panel, size, prevState.nineZone.nested);\r\n // istanbul ignore if\r\n if (nested === prevState.nineZone.nested)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n nested,\r\n },\r\n };\r\n });\r\n }\r\n\r\n /** @alpha */\r\n // istanbul ignore next\r\n public handlePanelResize(panelLocation: StagePanelLocation, resizeBy: number): void {\r\n const nestedPanelKey = getNestedStagePanelKey(panelLocation);\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const nested = FrontstageManager.NineZoneManager.getNestedPanelsManager().resize(nestedPanelKey, resizeBy, prevState.nineZone.nested);\r\n if (nested === prevState.nineZone.nested)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n nested,\r\n },\r\n };\r\n }, () => {\r\n const frontstage = FrontstageManager.activeFrontstageDef;\r\n const stagePanel = frontstage && frontstage.getStagePanelDef(panelLocation);\r\n if (stagePanel) {\r\n const panels = this.state.nineZone.nested.panels[nestedPanelKey.id];\r\n const panel = StagePanelsManager.getPanel(nestedPanelKey.type, panels);\r\n const panelState = isCollapsedToPanelState(panel.isCollapsed);\r\n stagePanel.panelState = panelState;\r\n }\r\n });\r\n }\r\n\r\n /** @alpha */\r\n // istanbul ignore next\r\n public handlePanelPaneTargetChange(panelLocation: StagePanelLocation, paneIndex: number | undefined): void {\r\n const panelKey = getNestedStagePanelKey(panelLocation);\r\n FrontstageManager.NineZoneManager.setPaneTarget(paneIndex === undefined ? undefined : {\r\n panelId: panelKey.id,\r\n panelType: panelKey.type,\r\n paneIndex,\r\n });\r\n }\r\n\r\n /** @alpha */\r\n // istanbul ignore next\r\n public handlePanelTargetChange(panelLocation: StagePanelLocation | undefined): void {\r\n const panelKey = panelLocation === undefined ? undefined : getNestedStagePanelKey(panelLocation);\r\n FrontstageManager.NineZoneManager.setPanelTarget(panelKey ? {\r\n panelId: panelKey.id,\r\n panelType: panelKey.type,\r\n } : undefined);\r\n }\r\n\r\n /** @alpha */\r\n public handleTogglePanelCollapse(panelLocation: StagePanelLocation): void {\r\n const frontstage = FrontstageManager.activeFrontstageDef;\r\n // istanbul ignore if\r\n if (!frontstage)\r\n return;\r\n const stagePanel = frontstage.getStagePanelDef(panelLocation);\r\n // istanbul ignore if\r\n if (!stagePanel)\r\n return;\r\n const isCollapsed = panelStateToIsCollapsed(stagePanel.panelState);\r\n const panelState = isCollapsed ? /* istanbul ignore next */ StagePanelState.Open : StagePanelState.Minimized;\r\n stagePanel.panelState = panelState;\r\n }\r\n\r\n public handleFloatingZonesBoundsChange(bounds: RectangleProps) {\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n this.setState((prevState) => {\r\n const zones = FrontstageManager.NineZoneManager.getZonesManager().setFloatingZonesBounds(bounds, prevState.nineZone.zones);\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n }\r\n\r\n public handleZonesBoundsChange(bounds: RectangleProps): void {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const zones = FrontstageManager.NineZoneManager.getZonesManager().setZonesBounds(bounds, prevState.nineZone.zones);\r\n // istanbul ignore else\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n // istanbul ignore next\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n public handleWidgetStateChange(widgetId: WidgetZoneId, tabIndex: number, isOpening: boolean): void {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const widget = prevState.nineZone.zones.widgets[widgetId];\r\n if (isOpening && widget.tabIndex === tabIndex)\r\n return null;\r\n if (!isOpening && widget.tabIndex !== tabIndex)\r\n return null;\r\n const nineZone = FrontstageManager.NineZoneManager.handleWidgetTabClick(widgetId, tabIndex, prevState.nineZone);\r\n // istanbul ignore if\r\n if (nineZone === prevState.nineZone)\r\n return null;\r\n return {\r\n nineZone,\r\n };\r\n });\r\n }\r\n\r\n public getZoneDef(zoneId: number): ZoneDef | undefined {\r\n if (!this._frontstageDef) {\r\n Logger.logError(UiFramework.loggerCategory(this), \"getZoneDef: There is no active frontstage\");\r\n return undefined;\r\n }\r\n\r\n const zoneDef = this._frontstageDef.getZoneDef(zoneId);\r\n\r\n // Zones can be undefined in a Frontstage\r\n\r\n return zoneDef;\r\n }\r\n\r\n // istanbul ignore next\r\n public getGhostOutlineBounds(zoneId: WidgetZoneId): RectangleProps | undefined { // eslint-disable-line deprecation/deprecation\r\n const manager = FrontstageManager.NineZoneManager.getZonesManager();\r\n return manager.getGhostOutlineBounds(zoneId, this.state.nineZone.zones);\r\n }\r\n\r\n public setZoneAllowsMerging(zoneId: WidgetZoneId, allowsMerging: boolean): void { // eslint-disable-line deprecation/deprecation\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const zones = FrontstageManager.NineZoneManager.getZonesManager().setAllowsMerging(zoneId, allowsMerging, prevState.nineZone.zones);\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n }\r\n\r\n public mergeZones(toMergeId: WidgetZoneId, targetId: WidgetZoneId): void { // eslint-disable-line deprecation/deprecation\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const zones = FrontstageManager.NineZoneManager.getZonesManager().mergeZone(toMergeId, targetId, prevState.nineZone.zones);\r\n // istanbul ignore else\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n // istanbul ignore next\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n }\r\n\r\n private layout() {\r\n const zones = document.getElementById(\"uifw-ninezone-zones-area\");\r\n const floatingZones = document.getElementById(\"uifw-ninezone-floating-zones-area\");\r\n if (!zones || !floatingZones)\r\n return;\r\n let floatingBounds = Rectangle.create(floatingZones.getBoundingClientRect());\r\n const bounds = Rectangle.create(zones.getBoundingClientRect());\r\n const offset = bounds.topLeft().getOffsetTo(floatingBounds.topLeft());\r\n floatingBounds = floatingBounds.setPosition(offset);\r\n this.handleZonesBoundsChange(bounds);\r\n this.handleFloatingZonesBoundsChange(floatingBounds);\r\n }\r\n\r\n private _handleWidgetStateChangedEvent = () => {\r\n const widgetTabs = this.determineWidgetTabs();\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({\r\n widgetTabs,\r\n });\r\n };\r\n\r\n private _handlePanelStateChangedEvent = ({ panelDef, panelState }: PanelStateChangedEventArgs) => {\r\n this.setPanelState(panelDef.location, panelState);\r\n };\r\n\r\n // istanbul ignore next\r\n private _handlePanelSizeChangedEvent = ({ panelDef, size }: PanelSizeChangedEventArgs) => {\r\n (size !== undefined) && this.handlePanelInitialize(panelDef.location, size);\r\n };\r\n\r\n private _handleToolActivatedEvent = () => {\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n this.setState((prevState) => {\r\n const activeToolSettingsProvider = FrontstageManager.activeToolSettingsProvider;\r\n const manager = FrontstageManager.NineZoneManager;\r\n const nineZone = activeToolSettingsProvider ? manager.showWidget(2, prevState.nineZone) : manager.hideWidget(2, prevState.nineZone);\r\n if (nineZone === prevState.nineZone)\r\n return null;\r\n return {\r\n nineZone,\r\n };\r\n });\r\n };\r\n\r\n // istanbul ignore next\r\n private _handleToolPanelOpenedEvent = () => {\r\n this.setAllowPointerUpSelection(true);\r\n };\r\n\r\n private _handlePointerDown = () => {\r\n this.setAllowPointerUpSelection(false);\r\n };\r\n\r\n private _handlePointerUp = () => {\r\n this.setAllowPointerUpSelection(false);\r\n };\r\n\r\n private setAllowPointerUpSelection(allowPointerUpSelection: boolean) {\r\n // istanbul ignore if\r\n if (!this._isMounted)\r\n return;\r\n\r\n this.setState((prevState) => {\r\n // istanbul ignore if\r\n if (prevState.allowPointerUpSelection === allowPointerUpSelection)\r\n return null;\r\n return {\r\n allowPointerUpSelection,\r\n };\r\n });\r\n }\r\n\r\n private setPanelState(location: StagePanelLocation, panelState: StagePanelState) {\r\n const panelKey = getNestedStagePanelKey(location);\r\n const isCollapsed = panelStateToIsCollapsed(panelState);\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const nested = FrontstageManager.NineZoneManager.getNestedPanelsManager().setIsCollapsed(panelKey, isCollapsed, prevState.nineZone.nested);\r\n // istanbul ignore if\r\n if (nested === prevState.nineZone.nested)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n nested,\r\n },\r\n };\r\n });\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport const panelStateToIsCollapsed = (panelState: StagePanelState) => {\r\n switch (panelState) {\r\n case StagePanelState.Minimized:\r\n case StagePanelState.Off:\r\n return true;\r\n default:\r\n return false;\r\n }\r\n};\r\n\r\n/** @internal */\r\nexport const isCollapsedToPanelState = (isCollapsed: boolean) => {\r\n switch (isCollapsed) {\r\n case true:\r\n return StagePanelState.Minimized;\r\n default:\r\n return StagePanelState.Open;\r\n }\r\n};\r\n\r\n/** @internal */\r\nexport const ToolGroupPanelContext = React.createContext(false); // eslint-disable-line @typescript-eslint/naming-convention\r\n"]}
1
+ {"version":3,"file":"FrontstageComposer.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageComposer.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F,4CAA4C;AAC5C;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAc,kBAAkB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAe,SAAS,EAAkB,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EACL,yCAAyC,EAAE,2BAA2B,EAAsC,kBAAkB,EAAE,cAAc,EAChI,aAAa,GAC5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAyD,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACtH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,EAAW,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAgC,iBAAiB,EAAwD,MAAM,qBAAqB,CAAC;AAC5I,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAkF1E,MAAM,oBAAoB,GAAG,GAAe,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC,EAAE,EAAE;IACP,CAAC,CAAC,CAAC,EAAE,EAAE;IACP,CAAC,CAAC,CAAC,EAAE,EAAE;IACP,CAAC,CAAC,CAAC,EAAE,EAAE;IACP,CAAC,CAAC,CAAC,EAAE,EAAE;IACP,CAAC,CAAC,CAAC,EAAE,EAAE;IACP,CAAC,CAAC,CAAC,EAAE,EAAE;IACP,CAAC,CAAC,CAAC,EAAE,EAAE;CACR,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAsC;IAC7D,kBAAkB,CAAC,GAAG;IACtB,kBAAkB,CAAC,OAAO;IAC1B,kBAAkB,CAAC,IAAI;IACvB,kBAAkB,CAAC,KAAK;IACxB,kBAAkB,CAAC,MAAM;IACzB,kBAAkB,CAAC,UAAU;CAC9B,CAAC;AAEF;;;GAGG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK,CAAC,SAA+C;IAS3F,YAAY,KAAkB;QAC5B,KAAK,CAAC,KAAK,CAAC,CAAC;QANP,eAAU,GAAG,KAAK,CAAC;QA4GnB,oCAA+B,GAAG,CAAC,IAAkC,EAAE,EAAE;YAC/E,8EAA8E;YAC9E,IAAI,IAAI,CAAC,cAAc;gBACrB,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAE5D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC;YAElD,6DAA6D;YAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClE,MAAM,iBAAiB,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1H,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAE9C,uBAAuB;YACvB,IAAI,IAAI,CAAC,UAAU;gBACjB,IAAI,CAAC,QAAQ,CAAC;oBACZ,QAAQ;oBACR,UAAU;iBACX,EAAE,GAAG,EAAE;oBACN,iBAAiB,IAAI,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;oBAC/D,IAAI,CAAC,MAAM,EAAE,CAAC;oBACd,iBAAiB,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBACnD,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QA0CM,uCAAkC,GAAG,CAAC,KAAsC,EAAE,EAAE;YACtF,uBAAuB;YACvB,IAAI,IAAI,CAAC,UAAU;gBACjB,IAAI,CAAC,QAAQ,CAAC,EAAE,oBAAoB,EAAE,iBAAiB,CAAC,oBAAoB,EAAE,CAAC,CAAC;QACpF,CAAC,CAAC;QAEM,qBAAgB,GAAG,GAAG,EAAE;YAC9B,iBAAiB,CAAC,oBAAoB,EAAE,CAAC;QAC3C,CAAC,CAAC;QAiGF,uBAAuB;QACf,wBAAmB,GAAG,GAAG,EAAE;YACjC,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC,CAAC;QAEF,uBAAuB;QAChB,iBAAY,GAAG,CAAC,MAAoB,EAAE,QAAgB,EAAE,MAAoB,EAAE,gBAAwB,EAAE,EAAE;YAC/G,IAAI,IAAI,CAAC,UAAU;gBACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;oBAC1B,MAAM,KAAK,GAAG,iBAAiB,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAC/J,IAAI,KAAK,KAAK,SAAS,CAAC,QAAQ,CAAC,KAAK;wBACpC,OAAO,IAAI,CAAC;oBACd,OAAO;wBACL,QAAQ,EAAE;4BACR,GAAG,SAAS,CAAC,QAAQ;4BACrB,KAAK;yBACN;qBACF,CAAC;gBACJ,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEK,mBAAc,GAAG,CAAC,QAAsB,EAAE,QAAgB,EAAE,EAAE;YACnE,uBAAuB;YACvB,IAAI,IAAI,CAAC,UAAU;gBACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;oBAC1B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,eAAe,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;oBAChH,uBAAuB;oBACvB,IAAI,QAAQ,KAAK,SAAS,CAAC,QAAQ;wBACjC,OAAO,IAAI,CAAC;oBACd,OAAO;wBACL,QAAQ;qBACT,CAAC;gBACJ,CAAC,EAAE,GAAG,EAAE;oBACN,yDAAyD;oBACzD,MAAM,OAAO,GAAG,iBAAiB,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;oBACpE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACxC,MAAM,IAAI,GAAG,OAAO,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;oBACzD,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAA,CAAC,QAAQ,CAAC,CAAC;oBAC3E,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wBACtB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;wBACrC,IAAI,CAAC,OAAO;4BACV,OAAO;wBAET,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wBAC7B,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;wBACvE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BAC9C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;4BACpC,IAAI,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;4BAC5B,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC;gCAClB,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC;iCACtB,IAAI,KAAK,KAAK,WAAW,CAAC,IAAI;gCACjC,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;4BAC7B,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;yBACjC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC,CACA,CAAC;QACN,CAAC,CAAC;QAEF,uBAAuB;QACvB,mDAAmD;QAC5C,uBAAkB,GAAG,CAAC,QAAsB,EAAE,QAAgB,EAAE,eAA2B,EAAE,YAA4B,EAAE,EAAE;YAClI,IAAI,IAAI,CAAC,UAAU;gBACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;oBAC1B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,eAAe,CAAC,wBAAwB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;oBACvJ,IAAI,QAAQ,KAAK,SAAS,CAAC,QAAQ;wBACjC,OAAO,IAAI,CAAC;oBACd,OAAO;wBACL,QAAQ;qBACT,CAAC;gBACJ,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEF,uBAAuB;QAChB,qBAAgB,GAAG,GAAG,EAAE;YAC7B,IAAI,IAAI,CAAC,UAAU;gBACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;oBAC1B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,eAAe,CAAC,sBAAsB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;oBAC9F,IAAI,QAAQ,KAAK,SAAS,CAAC,QAAQ;wBACjC,OAAO,IAAI,CAAC;oBACd,OAAO;wBACL,QAAQ;qBACT,CAAC;gBACJ,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEF,uBAAuB;QAChB,kBAAa,GAAG,CAAC,OAAmB,EAAE,EAAE;YAC7C,IAAI,IAAI,CAAC,UAAU;gBACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;oBAC1B,MAAM,KAAK,GAAG,iBAAiB,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBACzH,IAAI,KAAK,KAAK,SAAS,CAAC,QAAQ,CAAC,KAAK;wBACpC,OAAO,IAAI,CAAC;oBACd,OAAO;wBACL,QAAQ,EAAE;4BACR,GAAG,SAAS,CAAC,QAAQ;4BACrB,KAAK;yBACN;qBACF,CAAC;gBACJ,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QA+NM,mCAA8B,GAAG,GAAG,EAAE;YAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9C,uBAAuB;YACvB,IAAI,IAAI,CAAC,UAAU;gBACjB,IAAI,CAAC,QAAQ,CAAC;oBACZ,UAAU;iBACX,CAAC,CAAC;QACP,CAAC,CAAC;QAEM,kCAA6B,GAAG,CAAC,EAAE,QAAQ,EAAE,UAAU,EAA8B,EAAE,EAAE;YAC/F,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACpD,CAAC,CAAC;QAEF,uBAAuB;QACf,iCAA4B,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAA6B,EAAE,EAAE;YACvF,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC9E,CAAC,CAAC;QAEM,8BAAyB,GAAG,GAAG,EAAE;YACvC,uBAAuB;YACvB,IAAI,CAAC,IAAI,CAAC,UAAU;gBAClB,OAAO;YAET,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC1B,MAAM,0BAA0B,GAAG,iBAAiB,CAAC,0BAA0B,CAAC;gBAChF,MAAM,OAAO,GAAG,iBAAiB,CAAC,eAAe,CAAC;gBAClD,MAAM,QAAQ,GAAG,0BAA0B,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACpI,IAAI,QAAQ,KAAK,SAAS,CAAC,QAAQ;oBACjC,OAAO,IAAI,CAAC;gBACd,OAAO;oBACL,QAAQ;iBACT,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,uBAAuB;QACf,gCAA2B,GAAG,GAAG,EAAE;YACzC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC;QAEM,uBAAkB,GAAG,GAAG,EAAE;YAChC,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC,CAAC;QAEM,qBAAgB,GAAG,GAAG,EAAE;YAC9B,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC,CAAC;QA9nBA,IAAI,CAAC,cAAc,GAAG,iBAAiB,CAAC,mBAAmB,CAAC;QAE5D,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAClE,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC;QAE7F,IAAI,CAAC,KAAK,GAAG;YACX,uBAAuB,EAAE,KAAK;YAC9B,QAAQ;YACR,oBAAoB,EAAE,iBAAiB,CAAC,oBAAoB;YAC5D,UAAU;SACX,CAAC;IACJ,CAAC;IAEO,sBAAsB,CAAC,aAA6B;QAC1D,IAAI,QAA8B,CAAC;QACnC,qBAAqB;QACrB,IAAI,aAAa,IAAI,aAAa,CAAC,QAAQ;YACzC,QAAQ,GAAG,EAAE,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;aACtC;YACH,MAAM,cAAc,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC;YAC5E,QAAQ,GAAG;gBACT,KAAK,EAAE,iBAAiB,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC,iBAAiB,CAAC,cAAc,EAAE,2BAA2B,EAAE,CAAC;gBAC3H,MAAM,EAAE;oBACN,MAAM,EAAE;wBACN,KAAK,EAAE,yCAAyC,EAAE;wBAClD,KAAK,EAAE,yCAAyC,EAAE;qBACnD;iBACF;aACF,CAAC;YACF,KAAK,MAAM,QAAQ,IAAI,mBAAmB,EAAE;gBAC1C,MAAM,UAAU,GAAG,aAAa,IAAI,aAAa,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBAC7E,IAAI,CAAC,UAAU;oBACb,SAAS;gBAEX,MAAM,WAAW,GAAG,uBAAuB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;gBACnE,MAAM,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;gBAClD,MAAM,MAAM,GAAG,iBAAiB,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACjI,QAAQ,GAAG,iBAAiB,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;aAC1E;SACF;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,oBAAoB;QAC1B,uBAAuB;QACvB,IAAI,CAAC,IAAI,CAAC,UAAU;YAClB,OAAO;QAET,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;YAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;YAC1C,IAAI,CAAC,aAAa;gBAChB,OAAO,IAAI,CAAC;YACd,MAAM,OAAO,GAAG,iBAAiB,CAAC,eAAe,CAAC;YAClD,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;YAC/C,IAAI,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;YACrC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE;gBAClC,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACjD,IAAI,CAAC,OAAO;oBACV,SAAS;gBACX,uBAAuB;gBACvB,IAAI,OAAO,CAAC,YAAY;oBACtB,KAAK,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;aAC1E;YACD,uBAAuB;YACvB,IAAI,KAAK,KAAK,SAAS,CAAC,QAAQ,CAAC,KAAK;gBACpC,OAAO,IAAI,CAAC;YACd,OAAO;gBACL,QAAQ,EAAE;oBACR,GAAG,SAAS,CAAC,QAAQ;oBACrB,KAAK;iBACN;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IAEL,CAAC;IAEO,mBAAmB;QACzB,MAAM,iBAAiB,GAAG,oBAAoB,EAAE,CAAC;QACjD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACtD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO;gBACV,OAAO,GAAG,CAAC;YACb,MAAM,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAoB,EAAE,EAAE;gBAC3E,OAAO,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;YACtD,CAAC,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAY,CAAC,SAAoB,EAAE,EAAE,CAAC,CAAC;gBACvE,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,UAAU,EAAE,SAAS,CAAC,EAAE;aACzB,CAAC,CAAC,CAAC;YACJ,OAAO;gBACL,GAAG,GAAG;gBACN,CAAC,MAAM,CAAC,EAAE,IAAI;aACf,CAAC;QACJ,CAAC,EAAE,iBAAiB,CAAC,CAAC;QACtB,OAAO,UAAU,CAAC;IACpB,CAAC;IA0BO,0BAA0B,CAAC,QAA8B;QAC/D,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC;QACvF,mBAAmB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC;QAC/F,mBAAmB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC;QACrG,mBAAmB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC;QAClG,mBAAmB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC;QACxG,mBAAmB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC;QAC/F,mBAAmB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC;QACrG,mBAAmB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC;QAClG,mBAAmB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC;QAExG,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,GAAG;gBACjD,OAAO;YAET,IAAI,CAAC,OAAO,CAAC,aAAa;gBACxB,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAE3C,IAAI,OAAO,CAAC,aAAa;gBACvB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;YAEjD,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/C,uBAAuB;YACvB,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;gBACjC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;oBACrC,OAAO,CAAC,UAAU;yBACf,MAAM,CAAC,CAAC,SAAoB,EAAE,EAAE;wBAC/B,OAAO,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;oBAC7G,CAAC,CAAC;yBACD,OAAO,CAAC,CAAC,SAAoB,EAAE,QAAgB,EAAE,EAAE;wBAClD,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE;4BACvB,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;yBACxD;oBACH,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAYO,qBAAqB;QAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,oBAAoB,KAAK,CAAC;YACvC,OAAO,IAAI,CAAC;QAEd,MAAM,qBAAqB,GAAoC,iBAAiB,CAAC,qBAAqB,CAAC;QACvG,uBAAuB;QACvB,IAAI,CAAC,qBAAqB;YACxB,OAAO,IAAI,CAAC;QAEd,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,qBAAqB,CAAC;QAE9D,OAAO,CACL,oBAAC,eAAe,IACd,MAAM,EAAE,IAAI,EACZ,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,IAAI,CAAC,gBAAgB,EACjC,WAAW,EAAE,WAAW,IAEvB,OAAO,CACQ,CACnB,CAAC;IACJ,CAAC;IAEe,MAAM;QACpB,IAAI,OAAwB,CAAC;QAC7B,uBAAuB;QACvB,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,uBAAuB;YACvB,IAAI,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE;gBAC1C,MAAM,sBAAsB,GAA2B;oBACrD,aAAa,EAAE,IAAI,CAAC,cAAc;oBAClC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;oBAC7B,qBAAqB,EAAE,IAAI;oBAC3B,uBAAuB,EAAE,IAAI;oBAC7B,mBAAmB,EAAE,IAAI;oBACzB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;oBACjC,mBAAmB,EAAE,IAAI;oBACzB,eAAe,EAAE,IAAI;iBACtB,CAAC;gBACF,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,UAAU,EAAE,EAAE,YAAY,EAAE,sBAAsB,EAAE,CAAC,CAAC;aAC3H;iBAAM;gBACL,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,yCAAyC,CAAC,CAAC;gBAC7F,OAAO,GAAG,IAAI,CAAC;aAChB;SACF;QAED,OAAO,CACL,oBAAC,qBAAqB,CAAC,QAAQ,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,uBAAuB;YACvE,6BACE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAC/B,EAAE,EAAC,0BAA0B,EAC7B,aAAa,EAAE,IAAI,CAAC,kBAAkB,EACtC,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAClC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EACvB,SAAS,EAAE,sBAAsB,EACjC,IAAI,EAAC,cAAc;gBAElB,IAAI,CAAC,qBAAqB,EAAE;gBAC5B,OAAO,CACJ,CACyB,CAClC,CAAC;IACJ,CAAC;IAEe,iBAAiB;QAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,MAAM,iBAAiB,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1H,IAAI,IAAI,CAAC,cAAc,IAAI,iBAAiB;YAC1C,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEvD,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;QAClE,iBAAiB,CAAC,0BAA0B,CAAC,WAAW,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC/F,iBAAiB,CAAC,6BAA6B,CAAC,WAAW,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACrG,iBAAiB,CAAC,yBAAyB,CAAC,WAAW,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC7F,iBAAiB,CAAC,wBAAwB,CAAC,WAAW,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC3F,iBAAiB,CAAC,uBAAuB,CAAC,WAAW,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACzF,iBAAiB,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACnF,iBAAiB,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACvF,iBAAiB,CAAC,wBAAwB,CAAC,WAAW,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC9F,CAAC;IAEe,oBAAoB;QAClC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;QACrE,iBAAiB,CAAC,0BAA0B,CAAC,cAAc,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAClG,iBAAiB,CAAC,6BAA6B,CAAC,cAAc,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACxG,iBAAiB,CAAC,wBAAwB,CAAC,cAAc,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC9F,iBAAiB,CAAC,uBAAuB,CAAC,cAAc,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC5F,iBAAiB,CAAC,oBAAoB,CAAC,cAAc,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACtF,iBAAiB,CAAC,sBAAsB,CAAC,cAAc,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC1F,iBAAiB,CAAC,wBAAwB,CAAC,cAAc,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IACjG,CAAC;IAwGD,uBAAuB;IAChB,mBAAmB,CAAC,MAAoB,EAAE,IAAoB,EAAE,UAAmB;QACxF,IAAI,IAAI,CAAC,UAAU;YACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC1B,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC9I,iBAAiB,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC/G,IAAI,KAAK,KAAK,SAAS,CAAC,QAAQ,CAAC,KAAK;oBACpC,OAAO,IAAI,CAAC;gBACd,OAAO;oBACL,QAAQ,EAAE;wBACR,GAAG,SAAS,CAAC,QAAQ;wBACrB,KAAK;qBACN;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;IACP,CAAC;IAED,aAAa;IACN,qBAAqB,CAAC,aAAiC,EAAE,IAAY;QAC1E,MAAM,KAAK,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;QACpD,uBAAuB;QACvB,IAAI,IAAI,CAAC,UAAU;YACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC1B,MAAM,MAAM,GAAG,iBAAiB,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC1H,qBAAqB;gBACrB,IAAI,MAAM,KAAK,SAAS,CAAC,QAAQ,CAAC,MAAM;oBACtC,OAAO,IAAI,CAAC;gBACd,OAAO;oBACL,QAAQ,EAAE;wBACR,GAAG,SAAS,CAAC,QAAQ;wBACrB,MAAM;qBACP;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;IACP,CAAC;IAED,aAAa;IACb,uBAAuB;IAChB,iBAAiB,CAAC,aAAiC,EAAE,QAAgB;QAC1E,MAAM,cAAc,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,UAAU;YACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC1B,MAAM,MAAM,GAAG,iBAAiB,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACtI,IAAI,MAAM,KAAK,SAAS,CAAC,QAAQ,CAAC,MAAM;oBACtC,OAAO,IAAI,CAAC;gBACd,OAAO;oBACL,QAAQ,EAAE;wBACR,GAAG,SAAS,CAAC,QAAQ;wBACrB,MAAM;qBACP;iBACF,CAAC;YACJ,CAAC,EAAE,GAAG,EAAE;gBACN,MAAM,UAAU,GAAG,iBAAiB,CAAC,mBAAmB,CAAC;gBACzD,MAAM,UAAU,GAAG,UAAU,IAAI,UAAU,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;gBAC5E,IAAI,UAAU,EAAE;oBACd,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;oBACpE,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBACvE,MAAM,UAAU,GAAG,uBAAuB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;oBAC9D,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC;iBACpC;YACH,CAAC,CAAC,CAAC;IACP,CAAC;IAED,aAAa;IACb,uBAAuB;IAChB,2BAA2B,CAAC,aAAiC,EAAE,SAA6B;QACjG,MAAM,QAAQ,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;QACvD,iBAAiB,CAAC,eAAe,CAAC,aAAa,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACpF,OAAO,EAAE,QAAQ,CAAC,EAAE;YACpB,SAAS,EAAE,QAAQ,CAAC,IAAI;YACxB,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAED,aAAa;IACb,uBAAuB;IAChB,uBAAuB,CAAC,aAA6C;QAC1E,MAAM,QAAQ,GAAG,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;QACjG,iBAAiB,CAAC,eAAe,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC1D,OAAO,EAAE,QAAQ,CAAC,EAAE;YACpB,SAAS,EAAE,QAAQ,CAAC,IAAI;SACzB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACjB,CAAC;IAED,aAAa;IACN,yBAAyB,CAAC,aAAiC;QAChE,MAAM,UAAU,GAAG,iBAAiB,CAAC,mBAAmB,CAAC;QACzD,qBAAqB;QACrB,IAAI,CAAC,UAAU;YACb,OAAO;QACT,MAAM,UAAU,GAAG,UAAU,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAC9D,qBAAqB;QACrB,IAAI,CAAC,UAAU;YACb,OAAO;QACT,MAAM,WAAW,GAAG,uBAAuB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,0BAA0B,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC;QAC7G,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC;IACrC,CAAC;IAEM,+BAA+B,CAAC,MAAsB;QAC3D,uBAAuB;QACvB,IAAI,CAAC,IAAI,CAAC,UAAU;YAClB,OAAO;QAET,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;YAC1B,MAAM,KAAK,GAAG,iBAAiB,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC,sBAAsB,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC3H,IAAI,KAAK,KAAK,SAAS,CAAC,QAAQ,CAAC,KAAK;gBACpC,OAAO,IAAI,CAAC;YACd,OAAO;gBACL,QAAQ,EAAE;oBACR,GAAG,SAAS,CAAC,QAAQ;oBACrB,KAAK;iBACN;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,uBAAuB,CAAC,MAAsB;QACnD,uBAAuB;QACvB,IAAI,IAAI,CAAC,UAAU;YACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC1B,MAAM,KAAK,GAAG,iBAAiB,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACnH,uBAAuB;gBACvB,IAAI,KAAK,KAAK,SAAS,CAAC,QAAQ,CAAC,KAAK;oBACpC,OAAO,IAAI,CAAC;gBACd,uBAAuB;gBACvB,OAAO;oBACL,QAAQ,EAAE;wBACR,GAAG,SAAS,CAAC,QAAQ;wBACrB,KAAK;qBACN;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;IACP,CAAC;IAED,mDAAmD;IAC5C,uBAAuB,CAAC,QAAsB,EAAE,QAAgB,EAAE,SAAkB;QACzF,uBAAuB;QACvB,IAAI,IAAI,CAAC,UAAU;YACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC1B,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC1D,IAAI,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ;oBAC3C,OAAO,IAAI,CAAC;gBACd,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ;oBAC5C,OAAO,IAAI,CAAC;gBACd,MAAM,QAAQ,GAAG,iBAAiB,CAAC,eAAe,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAChH,qBAAqB;gBACrB,IAAI,QAAQ,KAAK,SAAS,CAAC,QAAQ;oBACjC,OAAO,IAAI,CAAC;gBACd,OAAO;oBACL,QAAQ;iBACT,CAAC;YACJ,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,UAAU,CAAC,MAAc;QAC9B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,2CAA2C,CAAC,CAAC;YAC/F,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAEvD,yCAAyC;QAEzC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,uBAAuB;IAChB,qBAAqB,CAAC,MAAoB;QAC/C,MAAM,OAAO,GAAG,iBAAiB,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;QACpE,OAAO,OAAO,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1E,CAAC;IAEM,oBAAoB,CAAC,MAAoB,EAAE,aAAsB;QACtE,uBAAuB;QACvB,IAAI,IAAI,CAAC,UAAU;YACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC1B,MAAM,KAAK,GAAG,iBAAiB,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACpI,IAAI,KAAK,KAAK,SAAS,CAAC,QAAQ,CAAC,KAAK;oBACpC,OAAO,IAAI,CAAC;gBACd,OAAO;oBACL,QAAQ,EAAE;wBACR,GAAG,SAAS,CAAC,QAAQ;wBACrB,KAAK;qBACN;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,UAAU,CAAC,SAAuB,EAAE,QAAsB;QAC/D,uBAAuB;QACvB,IAAI,IAAI,CAAC,UAAU;YACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC1B,MAAM,KAAK,GAAG,iBAAiB,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC3H,uBAAuB;gBACvB,IAAI,KAAK,KAAK,SAAS,CAAC,QAAQ,CAAC,KAAK;oBACpC,OAAO,IAAI,CAAC;gBACd,uBAAuB;gBACvB,OAAO;oBACL,QAAQ,EAAE;wBACR,GAAG,SAAS,CAAC,QAAQ;wBACrB,KAAK;qBACN;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,MAAM;QACZ,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,0BAA0B,CAAC,CAAC;QAClE,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,mCAAmC,CAAC,CAAC;QACnF,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa;YAC1B,OAAO;QACT,IAAI,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAC7E,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC;QACtE,cAAc,GAAG,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,+BAA+B,CAAC,cAAc,CAAC,CAAC;IACvD,CAAC;IAkDO,0BAA0B,CAAC,uBAAgC;QACjE,qBAAqB;QACrB,IAAI,CAAC,IAAI,CAAC,UAAU;YAClB,OAAO;QAET,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;YAC1B,qBAAqB;YACrB,IAAI,SAAS,CAAC,uBAAuB,KAAK,uBAAuB;gBAC/D,OAAO,IAAI,CAAC;YACd,OAAO;gBACL,uBAAuB;aACxB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,QAA4B,EAAE,UAA2B;QAC7E,MAAM,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACxD,uBAAuB;QACvB,IAAI,IAAI,CAAC,UAAU;YACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC1B,MAAM,MAAM,GAAG,iBAAiB,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC3I,qBAAqB;gBACrB,IAAI,MAAM,KAAK,SAAS,CAAC,QAAQ,CAAC,MAAM;oBACtC,OAAO,IAAI,CAAC;gBACd,OAAO;oBACL,QAAQ,EAAE;wBACR,GAAG,SAAS,CAAC,QAAQ;wBACrB,MAAM;qBACP;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;IACP,CAAC;CACF;AAED,gBAAgB;AAChB,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,UAA2B,EAAE,EAAE;IACrE,QAAQ,UAAU,EAAE;QAClB,KAAK,eAAe,CAAC,SAAS,CAAC;QAC/B,KAAK,eAAe,CAAC,GAAG;YACtB,OAAO,IAAI,CAAC;QACd;YACE,OAAO,KAAK,CAAC;KAChB;AACH,CAAC,CAAC;AAEF,gBAAgB;AAChB,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,WAAoB,EAAE,EAAE;IAC9D,QAAQ,WAAW,EAAE;QACnB,KAAK,IAAI;YACP,OAAO,eAAe,CAAC,SAAS,CAAC;QACnC;YACE,OAAO,eAAe,CAAC,IAAI,CAAC;KAC/B;AACH,CAAC,CAAC;AAEF,gBAAgB;AAChB,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,2DAA2D","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable deprecation/deprecation */\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { PointProps, StagePanelLocation, WidgetState } from \"@itwin/appui-abstract\";\r\nimport { CommonProps, Rectangle, RectangleProps } from \"@itwin/core-react\";\r\nimport {\r\n getDefaultNineZoneStagePanelsManagerProps, getDefaultZonesManagerProps, NineZoneManagerProps, ResizeHandle, StagePanelsManager, StagePanelType,\r\n WidgetZoneId, widgetZoneIds, ZoneTargetType,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { getNestedStagePanelKey } from \"../stagepanels/StagePanel\";\r\nimport { PanelSizeChangedEventArgs, PanelStateChangedEventArgs, StagePanelState } from \"../stagepanels/StagePanelDef\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { WidgetDef } from \"../widgets/WidgetDef\";\r\nimport { WidgetTab, WidgetTabs } from \"../widgets/WidgetStack\";\r\nimport { ZoneDef, ZoneState } from \"../zones/ZoneDef\";\r\nimport { FrontstageDef } from \"./FrontstageDef\";\r\nimport { FrontstageActivatedEventArgs, FrontstageManager, ModalFrontstageChangedEventArgs, ModalFrontstageInfo } from \"./FrontstageManager\";\r\nimport { ModalFrontstage } from \"./ModalFrontstage\";\r\nimport { onEscapeSetFocusToHome } from \"../hooks/useEscapeSetFocusToHome\";\r\n\r\n/** Interface defining callbacks for widget changes\r\n * @deprecated\r\n * @public\r\n */\r\nexport interface WidgetChangeHandler {\r\n // eslint-disable-next-line deprecation/deprecation\r\n handleResize(zoneId: WidgetZoneId, resizeBy: number, handle: ResizeHandle, filledHeightDiff: number): void;\r\n // eslint-disable-next-line deprecation/deprecation\r\n handleTabClick(widgetId: WidgetZoneId, tabIndex: number): void;\r\n // eslint-disable-next-line deprecation/deprecation\r\n handleTabDragStart(widgetId: WidgetZoneId, tabIndex: number, initialPosition: PointProps, widgetBounds: RectangleProps): void;\r\n handleTabDragEnd(): void;\r\n handleTabDrag(dragged: PointProps): void;\r\n // eslint-disable-next-line deprecation/deprecation\r\n handleWidgetStateChange(widgetId: WidgetZoneId, tabIndex: number, isOpening: boolean): void;\r\n}\r\n\r\n/** Interface defining callbacks for stage panel changes\r\n * @public\r\n */\r\nexport interface StagePanelChangeHandler {\r\n /** @alpha */\r\n handlePanelInitialize(panelLocation: StagePanelLocation, size: number): void;\r\n /** @alpha */\r\n handlePanelResize(panelLocation: StagePanelLocation, resizeBy: number): void;\r\n /** @alpha */\r\n handlePanelPaneTargetChange(panelLocation: StagePanelLocation, paneIndex: number | undefined): void;\r\n /** @alpha */\r\n handlePanelTargetChange(panelLocation: StagePanelLocation | undefined): void;\r\n /** @alpha */\r\n handleTogglePanelCollapse(panelLocation: StagePanelLocation): void;\r\n}\r\n\r\n/** Interface defining callbacks for ZoneDropTarget changes\r\n * @deprecated\r\n * @public\r\n */\r\nexport interface TargetChangeHandler {\r\n handleTargetChanged(zoneId: WidgetZoneId, type: ZoneTargetType, isTargeted: boolean): void; // eslint-disable-line deprecation/deprecation\r\n}\r\n\r\n/** Interface defining callbacks for nine zone changes\r\n * @public\r\n */\r\nexport interface NineZoneChangeHandler {\r\n handleFloatingZonesBoundsChange(bounds: RectangleProps): void;\r\n handleZonesBoundsChange(bounds: RectangleProps): void;\r\n}\r\n\r\n/** Interface defining a provider for Zone definitions\r\n * @public\r\n */\r\nexport interface ZoneDefProvider {\r\n getZoneDef(zoneId: number): ZoneDef | undefined;\r\n}\r\n\r\n/** Runtime Props for the Frontstage\r\n * @internal\r\n */\r\nexport interface FrontstageRuntimeProps {\r\n frontstageDef: FrontstageDef;\r\n nineZone: NineZoneManagerProps;\r\n nineZoneChangeHandler: NineZoneChangeHandler;\r\n stagePanelChangeHandler: StagePanelChangeHandler;\r\n targetChangeHandler: TargetChangeHandler; // eslint-disable-line deprecation/deprecation\r\n widgetChangeHandler: WidgetChangeHandler; // eslint-disable-line deprecation/deprecation\r\n widgetTabs: WidgetTabs;\r\n zoneDefProvider: ZoneDefProvider;\r\n}\r\n\r\n/** State for the FrontstageComposer component.\r\n * @internal\r\n */\r\ninterface FrontstageComposerState {\r\n allowPointerUpSelection: boolean;\r\n modalFrontstageCount: number;\r\n nineZone: NineZoneManagerProps;\r\n widgetTabs: WidgetTabs;\r\n}\r\n\r\nconst getDefaultWidgetTabs = (): WidgetTabs => ({\r\n [1]: [],\r\n [2]: [],\r\n [3]: [],\r\n [4]: [],\r\n [6]: [],\r\n [7]: [],\r\n [8]: [],\r\n [9]: [],\r\n});\r\n\r\nconst stagePanelLocations: ReadonlyArray<StagePanelLocation> = [\r\n StagePanelLocation.Top,\r\n StagePanelLocation.TopMost,\r\n StagePanelLocation.Left,\r\n StagePanelLocation.Right,\r\n StagePanelLocation.Bottom,\r\n StagePanelLocation.BottomMost,\r\n];\r\n\r\n/** FrontstageComposer React component.\r\n * @deprecated\r\n * @public\r\n */\r\nexport class FrontstageComposer extends React.Component<CommonProps, FrontstageComposerState>\r\n implements WidgetChangeHandler, TargetChangeHandler, ZoneDefProvider, StagePanelChangeHandler, NineZoneChangeHandler { // eslint-disable-line deprecation/deprecation\r\n\r\n private _frontstageDef: FrontstageDef | undefined;\r\n private _isMounted = false;\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<FrontstageComposerState>;\r\n\r\n constructor(props: CommonProps) {\r\n super(props);\r\n\r\n this._frontstageDef = FrontstageManager.activeFrontstageDef;\r\n\r\n // Get the id and nineZoneProps for the current FrontstageDef\r\n const nineZone = this.determineNineZoneProps(this._frontstageDef);\r\n const widgetTabs = this._frontstageDef ? this.determineWidgetTabs() : getDefaultWidgetTabs();\r\n\r\n this.state = {\r\n allowPointerUpSelection: false,\r\n nineZone,\r\n modalFrontstageCount: FrontstageManager.modalFrontstageCount,\r\n widgetTabs,\r\n };\r\n }\r\n\r\n private determineNineZoneProps(frontstageDef?: FrontstageDef): NineZoneManagerProps {\r\n let nineZone: NineZoneManagerProps;\r\n // istanbul ignore if\r\n if (frontstageDef && frontstageDef.nineZone)\r\n nineZone = { ...frontstageDef.nineZone };\r\n else {\r\n const isInFooterMode = frontstageDef ? frontstageDef.isInFooterMode : false;\r\n nineZone = {\r\n zones: FrontstageManager.NineZoneManager.getZonesManager().setIsInFooterMode(isInFooterMode, getDefaultZonesManagerProps()),\r\n nested: {\r\n panels: {\r\n inner: getDefaultNineZoneStagePanelsManagerProps(),\r\n outer: getDefaultNineZoneStagePanelsManagerProps(),\r\n },\r\n },\r\n };\r\n for (const location of stagePanelLocations) {\r\n const stagePanel = frontstageDef && frontstageDef.getStagePanelDef(location);\r\n if (!stagePanel)\r\n continue;\r\n\r\n const isCollapsed = panelStateToIsCollapsed(stagePanel.panelState);\r\n const panelKey = getNestedStagePanelKey(location);\r\n const nested = FrontstageManager.NineZoneManager.getNestedPanelsManager().setIsCollapsed(panelKey, isCollapsed, nineZone.nested);\r\n nineZone = FrontstageManager.NineZoneManager.setNested(nested, nineZone);\r\n }\r\n }\r\n return nineZone;\r\n }\r\n\r\n private initializeZoneBounds() {\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n this.setState((prevState) => {\r\n const frontstageDef = this._frontstageDef;\r\n if (!frontstageDef)\r\n return null;\r\n const manager = FrontstageManager.NineZoneManager;\r\n const zonesManager = manager.getZonesManager();\r\n let zones = prevState.nineZone.zones;\r\n for (const zoneId of widgetZoneIds) {\r\n const zoneDef = frontstageDef.getZoneDef(zoneId);\r\n if (!zoneDef)\r\n continue;\r\n // istanbul ignore next\r\n if (zoneDef.initialWidth)\r\n zones = zonesManager.setZoneWidth(zoneId, zoneDef.initialWidth, zones);\r\n }\r\n // istanbul ignore else\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n\r\n }\r\n\r\n private determineWidgetTabs(): WidgetTabs {\r\n const defaultWidgetTabs = getDefaultWidgetTabs();\r\n const widgetTabs = widgetZoneIds.reduce((acc, zoneId) => {\r\n const zoneDef = this.getZoneDef(zoneId);\r\n if (!zoneDef)\r\n return acc;\r\n const visibleWidgetDefs = zoneDef.widgetDefs.filter((widgetDef: WidgetDef) => {\r\n return widgetDef.isVisible && !widgetDef.isFloating;\r\n });\r\n const tabs = visibleWidgetDefs.map<WidgetTab>((widgetDef: WidgetDef) => ({\r\n badgeType: widgetDef.badgeType,\r\n iconSpec: widgetDef.iconSpec,\r\n title: widgetDef.label,\r\n widgetName: widgetDef.id,\r\n }));\r\n return {\r\n ...acc,\r\n [zoneId]: tabs,\r\n };\r\n }, defaultWidgetTabs);\r\n return widgetTabs;\r\n }\r\n\r\n private _handleFrontstageActivatedEvent = (args: FrontstageActivatedEventArgs) => {\r\n // istanbul ignore next - Save the nineZoneProps into the former FrontstageDef\r\n if (this._frontstageDef)\r\n this._frontstageDef.nineZone = { ...this.state.nineZone };\r\n\r\n this._frontstageDef = args.activatedFrontstageDef;\r\n\r\n // Get the id and nineZoneProps for the current FrontstageDef\r\n const nineZone = this.determineNineZoneProps(this._frontstageDef);\r\n const needInitialLayout = (this._frontstageDef && this._frontstageDef.nineZone) ? /* istanbul ignore next */ false : true;\r\n const widgetTabs = this.determineWidgetTabs();\r\n\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({\r\n nineZone,\r\n widgetTabs,\r\n }, () => {\r\n needInitialLayout && this.initializeFrontstageLayout(nineZone);\r\n this.layout();\r\n needInitialLayout && this.initializeZoneBounds();\r\n });\r\n };\r\n\r\n private initializeFrontstageLayout(nineZone: NineZoneManagerProps) {\r\n const nestedPanelsManager = FrontstageManager.NineZoneManager.getNestedPanelsManager();\r\n nestedPanelsManager.getPanelsManager(\"inner\").getPanelManager(StagePanelType.Top).minSize = 20;\r\n nestedPanelsManager.getPanelsManager(\"inner\").getPanelManager(StagePanelType.Top).collapseOffset = 0;\r\n nestedPanelsManager.getPanelsManager(\"inner\").getPanelManager(StagePanelType.Bottom).minSize = 20;\r\n nestedPanelsManager.getPanelsManager(\"inner\").getPanelManager(StagePanelType.Bottom).collapseOffset = 0;\r\n nestedPanelsManager.getPanelsManager(\"outer\").getPanelManager(StagePanelType.Top).minSize = 20;\r\n nestedPanelsManager.getPanelsManager(\"outer\").getPanelManager(StagePanelType.Top).collapseOffset = 0;\r\n nestedPanelsManager.getPanelsManager(\"outer\").getPanelManager(StagePanelType.Bottom).minSize = 20;\r\n nestedPanelsManager.getPanelsManager(\"outer\").getPanelManager(StagePanelType.Bottom).collapseOffset = 0;\r\n\r\n widgetZoneIds.forEach((zoneId) => {\r\n const zoneDef = this.getZoneDef(zoneId);\r\n if (!zoneDef || zoneDef.zoneState === ZoneState.Off)\r\n return;\r\n\r\n if (!zoneDef.allowsMerging)\r\n this.setZoneAllowsMerging(zoneId, false);\r\n\r\n if (zoneDef.mergeWithZone)\r\n this.mergeZones(zoneId, zoneDef.mergeWithZone);\r\n\r\n const zoneProps = nineZone.zones.zones[zoneId];\r\n // istanbul ignore else\r\n if (zoneProps.widgets.length >= 1) {\r\n zoneProps.widgets.forEach((widgetId) => {\r\n zoneDef.widgetDefs\r\n .filter((widgetDef: WidgetDef) => {\r\n return widgetDef.isVisible && !widgetDef.isToolSettings && !widgetDef.isStatusBar && !widgetDef.isFreeform;\r\n })\r\n .forEach((widgetDef: WidgetDef, tabIndex: number) => {\r\n if (widgetDef.canOpen()) {\r\n this.handleWidgetStateChange(widgetId, tabIndex, true);\r\n }\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n private _handleModalFrontstageChangedEvent = (_args: ModalFrontstageChangedEventArgs) => {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({ modalFrontstageCount: FrontstageManager.modalFrontstageCount });\r\n };\r\n\r\n private _closeModalStage = () => {\r\n FrontstageManager.closeModalFrontstage();\r\n };\r\n\r\n private renderModalFrontstage(): React.ReactNode {\r\n if (this.state.modalFrontstageCount === 0)\r\n return null;\r\n\r\n const activeModalFrontstage: ModalFrontstageInfo | undefined = FrontstageManager.activeModalFrontstage;\r\n // istanbul ignore next\r\n if (!activeModalFrontstage)\r\n return null;\r\n\r\n const { title, content, appBarRight } = activeModalFrontstage;\r\n\r\n return (\r\n <ModalFrontstage\r\n isOpen={true}\r\n title={title}\r\n closeModal={this._closeModalStage}\r\n appBarRight={appBarRight}\r\n >\r\n {content}\r\n </ModalFrontstage>\r\n );\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n let content: React.ReactNode;\r\n // istanbul ignore else\r\n if (this._frontstageDef) {\r\n // istanbul ignore else\r\n if (this._frontstageDef.frontstageProvider) {\r\n const frontstageRuntimeProps: FrontstageRuntimeProps = {\r\n frontstageDef: this._frontstageDef,\r\n nineZone: this.state.nineZone,\r\n nineZoneChangeHandler: this,\r\n stagePanelChangeHandler: this,\r\n widgetChangeHandler: this,\r\n widgetTabs: this.state.widgetTabs,\r\n targetChangeHandler: this,\r\n zoneDefProvider: this,\r\n };\r\n content = React.cloneElement(this._frontstageDef.frontstageProvider.frontstage, { runtimeProps: frontstageRuntimeProps });\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), \"FrontstageDef has no FrontstageProvider\");\r\n content = null;\r\n }\r\n }\r\n\r\n return (\r\n <ToolGroupPanelContext.Provider value={this.state.allowPointerUpSelection}>\r\n <div\r\n className={this.props.className}\r\n id=\"uifw-frontstage-composer\"\r\n onPointerDown={this._handlePointerDown}\r\n onPointerUp={this._handlePointerUp}\r\n style={this.props.style}\r\n onKeyDown={onEscapeSetFocusToHome}\r\n role=\"presentation\"\r\n >\r\n {this.renderModalFrontstage()}\r\n {content}\r\n </div>\r\n </ToolGroupPanelContext.Provider>\r\n );\r\n }\r\n\r\n public override componentDidMount(): void {\r\n this._isMounted = true;\r\n const needInitialLayout = (this._frontstageDef && this._frontstageDef.nineZone) ? /* istanbul ignore next */ false : true;\r\n if (this._frontstageDef && needInitialLayout)\r\n this.initializeFrontstageLayout(this.state.nineZone);\r\n\r\n this.layout();\r\n this.initializeZoneBounds();\r\n window.addEventListener(\"resize\", this._handleWindowResize, true);\r\n FrontstageManager.onFrontstageActivatedEvent.addListener(this._handleFrontstageActivatedEvent);\r\n FrontstageManager.onModalFrontstageChangedEvent.addListener(this._handleModalFrontstageChangedEvent);\r\n FrontstageManager.onWidgetStateChangedEvent.addListener(this._handleWidgetStateChangedEvent);\r\n FrontstageManager.onPanelStateChangedEvent.addListener(this._handlePanelStateChangedEvent);\r\n FrontstageManager.onPanelSizeChangedEvent.addListener(this._handlePanelSizeChangedEvent);\r\n FrontstageManager.onToolActivatedEvent.addListener(this._handleToolActivatedEvent);\r\n FrontstageManager.onToolPanelOpenedEvent.addListener(this._handleToolPanelOpenedEvent);\r\n FrontstageManager.onWidgetDefsUpdatedEvent.addListener(this._handleWidgetStateChangedEvent);\r\n }\r\n\r\n public override componentWillUnmount(): void {\r\n this._isMounted = false;\r\n window.removeEventListener(\"resize\", this._handleWindowResize, true);\r\n FrontstageManager.onFrontstageActivatedEvent.removeListener(this._handleFrontstageActivatedEvent);\r\n FrontstageManager.onModalFrontstageChangedEvent.removeListener(this._handleModalFrontstageChangedEvent);\r\n FrontstageManager.onPanelStateChangedEvent.removeListener(this._handlePanelStateChangedEvent);\r\n FrontstageManager.onPanelSizeChangedEvent.removeListener(this._handlePanelSizeChangedEvent);\r\n FrontstageManager.onToolActivatedEvent.removeListener(this._handleToolActivatedEvent);\r\n FrontstageManager.onToolPanelOpenedEvent.removeListener(this._handleToolPanelOpenedEvent);\r\n FrontstageManager.onWidgetDefsUpdatedEvent.removeListener(this._handleWidgetStateChangedEvent);\r\n }\r\n\r\n // istanbul ignore next\r\n private _handleWindowResize = () => {\r\n this.layout();\r\n };\r\n\r\n // istanbul ignore next\r\n public handleResize = (zoneId: WidgetZoneId, resizeBy: number, handle: ResizeHandle, filledHeightDiff: number) => { // eslint-disable-line deprecation/deprecation\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const zones = FrontstageManager.NineZoneManager.getZonesManager().handleWidgetResize({ zoneId, resizeBy, handle, filledHeightDiff }, prevState.nineZone.zones);\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n };\r\n\r\n public handleTabClick = (widgetId: WidgetZoneId, tabIndex: number) => { // eslint-disable-line deprecation/deprecation\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const nineZone = FrontstageManager.NineZoneManager.handleWidgetTabClick(widgetId, tabIndex, prevState.nineZone);\r\n // istanbul ignore next\r\n if (nineZone === prevState.nineZone)\r\n return null;\r\n return {\r\n nineZone,\r\n };\r\n }, () => {\r\n // TODO: use NineZoneManager notifications once available\r\n const manager = FrontstageManager.NineZoneManager.getZonesManager();\r\n const props = this.state.nineZone.zones;\r\n const zone = manager.findZoneWithWidget(widgetId, props);\r\n const widgets = zone ? zone.widgets : /* istanbul ignore next */[widgetId];\r\n widgets.forEach((wId) => {\r\n const zoneDef = this.getZoneDef(wId);\r\n if (!zoneDef)\r\n return;\r\n\r\n const w = props.widgets[wId];\r\n const visibleWidgets = zoneDef.widgetDefs.filter((wd) => wd.isVisible);\r\n for (let i = 0; i < visibleWidgets.length; i++) {\r\n const widgetDef = visibleWidgets[i];\r\n let state = widgetDef.state;\r\n if (w.tabIndex === i)\r\n state = WidgetState.Open;\r\n else if (state === WidgetState.Open)\r\n state = WidgetState.Closed;\r\n widgetDef.setWidgetState(state);\r\n }\r\n });\r\n },\r\n );\r\n };\r\n\r\n // istanbul ignore next\r\n // eslint-disable-next-line deprecation/deprecation\r\n public handleTabDragStart = (widgetId: WidgetZoneId, tabIndex: number, initialPosition: PointProps, widgetBounds: RectangleProps) => {\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const nineZone = FrontstageManager.NineZoneManager.handleWidgetTabDragStart({ widgetId, tabIndex, initialPosition, widgetBounds }, prevState.nineZone);\r\n if (nineZone === prevState.nineZone)\r\n return null;\r\n return {\r\n nineZone,\r\n };\r\n });\r\n };\r\n\r\n // istanbul ignore next\r\n public handleTabDragEnd = () => {\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const nineZone = FrontstageManager.NineZoneManager.handleWidgetTabDragEnd(prevState.nineZone);\r\n if (nineZone === prevState.nineZone)\r\n return null;\r\n return {\r\n nineZone,\r\n };\r\n });\r\n };\r\n\r\n // istanbul ignore next\r\n public handleTabDrag = (dragged: PointProps) => {\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const zones = FrontstageManager.NineZoneManager.getZonesManager().handleWidgetTabDrag(dragged, prevState.nineZone.zones);\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n };\r\n\r\n // istanbul ignore next\r\n public handleTargetChanged(zoneId: WidgetZoneId, type: ZoneTargetType, isTargeted: boolean): void { // eslint-disable-line deprecation/deprecation\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const zones = isTargeted ? FrontstageManager.NineZoneManager.getZonesManager().handleTargetChanged({ zoneId, type }, prevState.nineZone.zones) :\r\n FrontstageManager.NineZoneManager.getZonesManager().handleTargetChanged(undefined, prevState.nineZone.zones);\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n }\r\n\r\n /** @alpha */\r\n public handlePanelInitialize(panelLocation: StagePanelLocation, size: number): void {\r\n const panel = getNestedStagePanelKey(panelLocation);\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const nested = FrontstageManager.NineZoneManager.getNestedPanelsManager().setSize(panel, size, prevState.nineZone.nested);\r\n // istanbul ignore if\r\n if (nested === prevState.nineZone.nested)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n nested,\r\n },\r\n };\r\n });\r\n }\r\n\r\n /** @alpha */\r\n // istanbul ignore next\r\n public handlePanelResize(panelLocation: StagePanelLocation, resizeBy: number): void {\r\n const nestedPanelKey = getNestedStagePanelKey(panelLocation);\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const nested = FrontstageManager.NineZoneManager.getNestedPanelsManager().resize(nestedPanelKey, resizeBy, prevState.nineZone.nested);\r\n if (nested === prevState.nineZone.nested)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n nested,\r\n },\r\n };\r\n }, () => {\r\n const frontstage = FrontstageManager.activeFrontstageDef;\r\n const stagePanel = frontstage && frontstage.getStagePanelDef(panelLocation);\r\n if (stagePanel) {\r\n const panels = this.state.nineZone.nested.panels[nestedPanelKey.id];\r\n const panel = StagePanelsManager.getPanel(nestedPanelKey.type, panels);\r\n const panelState = isCollapsedToPanelState(panel.isCollapsed);\r\n stagePanel.panelState = panelState;\r\n }\r\n });\r\n }\r\n\r\n /** @alpha */\r\n // istanbul ignore next\r\n public handlePanelPaneTargetChange(panelLocation: StagePanelLocation, paneIndex: number | undefined): void {\r\n const panelKey = getNestedStagePanelKey(panelLocation);\r\n FrontstageManager.NineZoneManager.setPaneTarget(paneIndex === undefined ? undefined : {\r\n panelId: panelKey.id,\r\n panelType: panelKey.type,\r\n paneIndex,\r\n });\r\n }\r\n\r\n /** @alpha */\r\n // istanbul ignore next\r\n public handlePanelTargetChange(panelLocation: StagePanelLocation | undefined): void {\r\n const panelKey = panelLocation === undefined ? undefined : getNestedStagePanelKey(panelLocation);\r\n FrontstageManager.NineZoneManager.setPanelTarget(panelKey ? {\r\n panelId: panelKey.id,\r\n panelType: panelKey.type,\r\n } : undefined);\r\n }\r\n\r\n /** @alpha */\r\n public handleTogglePanelCollapse(panelLocation: StagePanelLocation): void {\r\n const frontstage = FrontstageManager.activeFrontstageDef;\r\n // istanbul ignore if\r\n if (!frontstage)\r\n return;\r\n const stagePanel = frontstage.getStagePanelDef(panelLocation);\r\n // istanbul ignore if\r\n if (!stagePanel)\r\n return;\r\n const isCollapsed = panelStateToIsCollapsed(stagePanel.panelState);\r\n const panelState = isCollapsed ? /* istanbul ignore next */ StagePanelState.Open : StagePanelState.Minimized;\r\n stagePanel.panelState = panelState;\r\n }\r\n\r\n public handleFloatingZonesBoundsChange(bounds: RectangleProps) {\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n this.setState((prevState) => {\r\n const zones = FrontstageManager.NineZoneManager.getZonesManager().setFloatingZonesBounds(bounds, prevState.nineZone.zones);\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n }\r\n\r\n public handleZonesBoundsChange(bounds: RectangleProps): void {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const zones = FrontstageManager.NineZoneManager.getZonesManager().setZonesBounds(bounds, prevState.nineZone.zones);\r\n // istanbul ignore else\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n // istanbul ignore next\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n public handleWidgetStateChange(widgetId: WidgetZoneId, tabIndex: number, isOpening: boolean): void {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const widget = prevState.nineZone.zones.widgets[widgetId];\r\n if (isOpening && widget.tabIndex === tabIndex)\r\n return null;\r\n if (!isOpening && widget.tabIndex !== tabIndex)\r\n return null;\r\n const nineZone = FrontstageManager.NineZoneManager.handleWidgetTabClick(widgetId, tabIndex, prevState.nineZone);\r\n // istanbul ignore if\r\n if (nineZone === prevState.nineZone)\r\n return null;\r\n return {\r\n nineZone,\r\n };\r\n });\r\n }\r\n\r\n public getZoneDef(zoneId: number): ZoneDef | undefined {\r\n if (!this._frontstageDef) {\r\n Logger.logError(UiFramework.loggerCategory(this), \"getZoneDef: There is no active frontstage\");\r\n return undefined;\r\n }\r\n\r\n const zoneDef = this._frontstageDef.getZoneDef(zoneId);\r\n\r\n // Zones can be undefined in a Frontstage\r\n\r\n return zoneDef;\r\n }\r\n\r\n // istanbul ignore next\r\n public getGhostOutlineBounds(zoneId: WidgetZoneId): RectangleProps | undefined { // eslint-disable-line deprecation/deprecation\r\n const manager = FrontstageManager.NineZoneManager.getZonesManager();\r\n return manager.getGhostOutlineBounds(zoneId, this.state.nineZone.zones);\r\n }\r\n\r\n public setZoneAllowsMerging(zoneId: WidgetZoneId, allowsMerging: boolean): void { // eslint-disable-line deprecation/deprecation\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const zones = FrontstageManager.NineZoneManager.getZonesManager().setAllowsMerging(zoneId, allowsMerging, prevState.nineZone.zones);\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n }\r\n\r\n public mergeZones(toMergeId: WidgetZoneId, targetId: WidgetZoneId): void { // eslint-disable-line deprecation/deprecation\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const zones = FrontstageManager.NineZoneManager.getZonesManager().mergeZone(toMergeId, targetId, prevState.nineZone.zones);\r\n // istanbul ignore else\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n // istanbul ignore next\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n }\r\n\r\n private layout() {\r\n const zones = document.getElementById(\"uifw-ninezone-zones-area\");\r\n const floatingZones = document.getElementById(\"uifw-ninezone-floating-zones-area\");\r\n if (!zones || !floatingZones)\r\n return;\r\n let floatingBounds = Rectangle.create(floatingZones.getBoundingClientRect());\r\n const bounds = Rectangle.create(zones.getBoundingClientRect());\r\n const offset = bounds.topLeft().getOffsetTo(floatingBounds.topLeft());\r\n floatingBounds = floatingBounds.setPosition(offset);\r\n this.handleZonesBoundsChange(bounds);\r\n this.handleFloatingZonesBoundsChange(floatingBounds);\r\n }\r\n\r\n private _handleWidgetStateChangedEvent = () => {\r\n const widgetTabs = this.determineWidgetTabs();\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({\r\n widgetTabs,\r\n });\r\n };\r\n\r\n private _handlePanelStateChangedEvent = ({ panelDef, panelState }: PanelStateChangedEventArgs) => {\r\n this.setPanelState(panelDef.location, panelState);\r\n };\r\n\r\n // istanbul ignore next\r\n private _handlePanelSizeChangedEvent = ({ panelDef, size }: PanelSizeChangedEventArgs) => {\r\n (size !== undefined) && this.handlePanelInitialize(panelDef.location, size);\r\n };\r\n\r\n private _handleToolActivatedEvent = () => {\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n this.setState((prevState) => {\r\n const activeToolSettingsProvider = FrontstageManager.activeToolSettingsProvider;\r\n const manager = FrontstageManager.NineZoneManager;\r\n const nineZone = activeToolSettingsProvider ? manager.showWidget(2, prevState.nineZone) : manager.hideWidget(2, prevState.nineZone);\r\n if (nineZone === prevState.nineZone)\r\n return null;\r\n return {\r\n nineZone,\r\n };\r\n });\r\n };\r\n\r\n // istanbul ignore next\r\n private _handleToolPanelOpenedEvent = () => {\r\n this.setAllowPointerUpSelection(true);\r\n };\r\n\r\n private _handlePointerDown = () => {\r\n this.setAllowPointerUpSelection(false);\r\n };\r\n\r\n private _handlePointerUp = () => {\r\n this.setAllowPointerUpSelection(false);\r\n };\r\n\r\n private setAllowPointerUpSelection(allowPointerUpSelection: boolean) {\r\n // istanbul ignore if\r\n if (!this._isMounted)\r\n return;\r\n\r\n this.setState((prevState) => {\r\n // istanbul ignore if\r\n if (prevState.allowPointerUpSelection === allowPointerUpSelection)\r\n return null;\r\n return {\r\n allowPointerUpSelection,\r\n };\r\n });\r\n }\r\n\r\n private setPanelState(location: StagePanelLocation, panelState: StagePanelState) {\r\n const panelKey = getNestedStagePanelKey(location);\r\n const isCollapsed = panelStateToIsCollapsed(panelState);\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const nested = FrontstageManager.NineZoneManager.getNestedPanelsManager().setIsCollapsed(panelKey, isCollapsed, prevState.nineZone.nested);\r\n // istanbul ignore if\r\n if (nested === prevState.nineZone.nested)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n nested,\r\n },\r\n };\r\n });\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport const panelStateToIsCollapsed = (panelState: StagePanelState) => {\r\n switch (panelState) {\r\n case StagePanelState.Minimized:\r\n case StagePanelState.Off:\r\n return true;\r\n default:\r\n return false;\r\n }\r\n};\r\n\r\n/** @internal */\r\nexport const isCollapsedToPanelState = (isCollapsed: boolean) => {\r\n switch (isCollapsed) {\r\n case true:\r\n return StagePanelState.Minimized;\r\n default:\r\n return StagePanelState.Open;\r\n }\r\n};\r\n\r\n/** @internal */\r\nexport const ToolGroupPanelContext = React.createContext(false); // eslint-disable-line @typescript-eslint/naming-convention\r\n"]}
@@ -2,14 +2,14 @@
2
2
  * @module Frontstage
3
3
  */
4
4
  import { ScreenViewport } from "@itwin/core-frontend";
5
- import { PointProps, StagePanelLocation } from "@itwin/appui-abstract";
5
+ import { PointProps, StagePanelLocation, WidgetState } from "@itwin/appui-abstract";
6
6
  import { RectangleProps, SizeProps } from "@itwin/core-react";
7
7
  import { NineZoneManagerProps, NineZoneState } from "@itwin/appui-layout-react";
8
8
  import { ContentControl } from "../content/ContentControl";
9
9
  import { ContentGroup, ContentGroupProvider } from "../content/ContentGroup";
10
10
  import { ContentLayoutDef } from "../content/ContentLayout";
11
11
  import { ToolItemDef } from "../shared/ToolItemDef";
12
- import { StagePanelDef } from "../stagepanels/StagePanelDef";
12
+ import { StagePanelDef, StagePanelState } from "../stagepanels/StagePanelDef";
13
13
  import { WidgetDef } from "../widgets/WidgetDef";
14
14
  import { ZoneDef } from "../zones/ZoneDef";
15
15
  import { FrontstageProps } from "./Frontstage";
@@ -95,6 +95,9 @@ export declare class FrontstageDef {
95
95
  /** @internal */
96
96
  get nineZone(): NineZoneManagerProps | undefined;
97
97
  set nineZone(props: NineZoneManagerProps | undefined);
98
+ private toStagePanelLocation;
99
+ private populateStateMaps;
100
+ private triggerStateChangeEventForWidgetsAndPanels;
98
101
  /** @internal */
99
102
  get nineZoneState(): NineZoneState | undefined;
100
103
  set nineZoneState(state: NineZoneState | undefined);
@@ -154,6 +157,14 @@ export declare class FrontstageDef {
154
157
  updateWidgetDefs(): void;
155
158
  /** @beta */
156
159
  restoreLayout(): void;
160
+ /** Used only in UI 2.0 to determine WidgetState from NinezoneState
161
+ * @internal
162
+ */
163
+ getWidgetCurrentState(widgetDef: WidgetDef): WidgetState | undefined;
164
+ /** Used only in UI 2.0 to determine StagePanelState and size from NinezoneState
165
+ * @internal
166
+ */
167
+ getPanelCurrentState(panelDef: StagePanelDef): [StagePanelState, number];
157
168
  isPopoutWidget(widgetId: string): boolean;
158
169
  isFloatingWidget(widgetId: string): boolean;
159
170
  /** Create a new floating panel that contains the widget specified by its Id. Supported only when in
@@ -1 +1 @@
1
- {"version":3,"file":"FrontstageDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageDef.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FrontstageDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageDef.tsx"],"names":[],"mappings":"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"}
@@ -9,11 +9,12 @@
9
9
  // cSpell:ignore popout
10
10
  import * as React from "react";
11
11
  import { IModelApp } from "@itwin/core-frontend";
12
- import { StagePanelLocation, StageUsage, UiError } from "@itwin/appui-abstract";
13
- import { dockWidgetContainer, findTab, findWidget, floatWidget, isFloatingLocation, isPopoutLocation, isPopoutWidgetLocation, popoutWidgetToChildWindow, setFloatingWidgetContainerBounds, } from "@itwin/appui-layout-react";
12
+ import { StagePanelLocation, StageUsage, UiError, WidgetState } from "@itwin/appui-abstract";
13
+ import { dockWidgetContainer, findTab, findWidget, floatWidget, isFloatingLocation, isPopoutLocation, isPopoutWidgetLocation, panelSides, popoutWidgetToChildWindow, setFloatingWidgetContainerBounds, } from "@itwin/appui-layout-react";
14
14
  import { ContentGroupProvider } from "../content/ContentGroup";
15
15
  import { ContentLayoutManager } from "../content/ContentLayoutManager";
16
16
  import { ContentViewManager } from "../content/ContentViewManager";
17
+ import { StagePanelState, toPanelSide } from "../stagepanels/StagePanelDef";
17
18
  import { UiFramework } from "../UiFramework";
18
19
  import { ZoneLocation } from "../zones/Zone";
19
20
  import { Frontstage } from "./Frontstage";
@@ -73,12 +74,105 @@ export class FrontstageDef {
73
74
  /** @internal */
74
75
  get nineZone() { return this._nineZone; } // istanbul ignore next
75
76
  set nineZone(props) { this._nineZone = props; }
77
+ toStagePanelLocation(side) {
78
+ switch (side) {
79
+ case "bottom":
80
+ return StagePanelLocation.Bottom;
81
+ case "left":
82
+ return StagePanelLocation.Left;
83
+ case "right":
84
+ return StagePanelLocation.Right;
85
+ case "top":
86
+ return StagePanelLocation.Top;
87
+ }
88
+ }
89
+ populateStateMaps(nineZone, panelMap, widgetMap) {
90
+ for (const panelSide of panelSides) {
91
+ const panel = nineZone.panels[panelSide];
92
+ const location = this.toStagePanelLocation(panelSide);
93
+ const panelDef = this.getStagePanelDef(location);
94
+ if (panelDef) {
95
+ const panelState = panel.collapsed ? StagePanelState.Minimized : StagePanelState.Open;
96
+ panelMap.set(panelDef, panelState);
97
+ }
98
+ for (const widgetId of panel.widgets) {
99
+ const widget = nineZone.widgets[widgetId];
100
+ // istanbul ignore else
101
+ if (widget) {
102
+ for (const tabId of widget.tabs) {
103
+ const widgetDef = this.findWidgetDef(tabId);
104
+ if (widgetDef) {
105
+ let widgetState = WidgetState.Open;
106
+ if (widget.minimized || tabId !== widget.activeTabId)
107
+ widgetState = WidgetState.Closed;
108
+ widgetMap.set(widgetDef, widgetState);
109
+ }
110
+ }
111
+ }
112
+ }
113
+ }
114
+ // istanbul ignore next
115
+ for (const widgetId of nineZone.floatingWidgets.allIds) {
116
+ const widget = nineZone.widgets[widgetId];
117
+ if (widget) {
118
+ for (const tabId of widget.tabs) {
119
+ const widgetDef = this.findWidgetDef(tabId);
120
+ if (widgetDef) {
121
+ let widgetState = WidgetState.Open;
122
+ if (widget.minimized || tabId !== widget.activeTabId)
123
+ widgetState = WidgetState.Closed;
124
+ widgetMap.set(widgetDef, widgetState);
125
+ }
126
+ }
127
+ }
128
+ }
129
+ }
130
+ triggerStateChangeEventForWidgetsAndPanels(state) {
131
+ // istanbul ignore else
132
+ if (!(this._isStageClosing || this._isApplicationClosing)) {
133
+ if (state) {
134
+ const originalPanelStateMap = new Map();
135
+ const originalWidgetStateMap = new Map();
136
+ const newPanelStateMap = new Map();
137
+ const newWidgetStateMap = new Map();
138
+ this._nineZoneState && this.populateStateMaps(this._nineZoneState, originalPanelStateMap, originalWidgetStateMap);
139
+ this.populateStateMaps(state, newPanelStateMap, newWidgetStateMap);
140
+ // set internal state value before triggering events
141
+ this._nineZoneState = state;
142
+ // now walk and trigger set state events
143
+ newWidgetStateMap.forEach((stateValue, widgetDef) => {
144
+ const originalState = originalWidgetStateMap.get(widgetDef);
145
+ if (originalState !== stateValue) {
146
+ FrontstageManager.onWidgetStateChangedEvent.emit({ widgetDef, widgetState: stateValue });
147
+ widgetDef.onWidgetStateChanged();
148
+ }
149
+ });
150
+ newPanelStateMap.forEach((stateValue, panelDef) => {
151
+ const originalState = originalPanelStateMap.get(panelDef);
152
+ if (originalState !== stateValue) {
153
+ FrontstageManager.onPanelStateChangedEvent.emit({
154
+ panelDef,
155
+ panelState: stateValue,
156
+ });
157
+ }
158
+ });
159
+ }
160
+ else {
161
+ this._nineZoneState = state;
162
+ }
163
+ }
164
+ }
76
165
  /** @internal */
77
166
  get nineZoneState() { return this._nineZoneState; }
78
167
  set nineZoneState(state) {
79
168
  if (this._nineZoneState === state)
80
169
  return;
81
- this._nineZoneState = state;
170
+ if ("1" === UiFramework.uiVersion || !this._nineZoneState) {
171
+ this._nineZoneState = state;
172
+ }
173
+ else {
174
+ this.triggerStateChangeEventForWidgetsAndPanels(state);
175
+ }
82
176
  // istanbul ignore next - don't trigger any side effects until stage "isReady"
83
177
  if (!(this._isStageClosing || this._isApplicationClosing) || this.isReady) {
84
178
  FrontstageManager.onFrontstageNineZoneStateChangedEvent.emit({
@@ -439,6 +533,40 @@ export class FrontstageDef {
439
533
  }
440
534
  FrontstageManager.onFrontstageRestoreLayoutEvent.emit({ frontstageDef: this });
441
535
  }
536
+ /** Used only in UI 2.0 to determine WidgetState from NinezoneState
537
+ * @internal
538
+ */
539
+ getWidgetCurrentState(widgetDef) {
540
+ // istanbul ignore else
541
+ if (this.nineZoneState) {
542
+ const location = findTab(this.nineZoneState, widgetDef.id);
543
+ // istanbul ignore next
544
+ if (!location)
545
+ return WidgetState.Hidden;
546
+ const widgetContainer = this.nineZoneState.widgets[location.widgetId];
547
+ if (widgetDef.id === widgetContainer.activeTabId)
548
+ return WidgetState.Open;
549
+ else
550
+ return WidgetState.Closed;
551
+ }
552
+ return widgetDef.defaultState;
553
+ }
554
+ /** Used only in UI 2.0 to determine StagePanelState and size from NinezoneState
555
+ * @internal
556
+ */
557
+ getPanelCurrentState(panelDef) {
558
+ var _a, _b;
559
+ // istanbul ignore else
560
+ if (this.nineZoneState) {
561
+ const side = toPanelSide(panelDef.location);
562
+ const panel = this.nineZoneState.panels[side];
563
+ if (panel) {
564
+ return [panel.collapsed ? StagePanelState.Minimized : StagePanelState.Open, (_a = panel.size) !== null && _a !== void 0 ? _a : 0];
565
+ }
566
+ return [StagePanelState.Off, 0];
567
+ }
568
+ return [panelDef.defaultState, (_b = panelDef.defaultSize) !== null && _b !== void 0 ? _b : 0];
569
+ }
442
570
  isPopoutWidget(widgetId) {
443
571
  // istanbul ignore else
444
572
  if (this.nineZoneState) {