@itwin/appui-react 3.1.0-dev.8 → 3.2.0-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/CHANGELOG.md +122 -16
  2. package/lib/cjs/appui-react/backstage/Backstage.d.ts +0 -2
  3. package/lib/cjs/appui-react/backstage/Backstage.d.ts.map +1 -1
  4. package/lib/cjs/appui-react/backstage/Backstage.js +0 -1
  5. package/lib/cjs/appui-react/backstage/Backstage.js.map +1 -1
  6. package/lib/cjs/appui-react/backstage/BackstageComposerItem.d.ts +1 -0
  7. package/lib/cjs/appui-react/backstage/BackstageComposerItem.d.ts.map +1 -1
  8. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +2 -2
  9. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  10. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  11. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js +2 -0
  12. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  13. package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.d.ts.map +1 -1
  14. package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.js +6 -1
  15. package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.js.map +1 -1
  16. package/lib/cjs/appui-react/content/ContentControl.d.ts +6 -0
  17. package/lib/cjs/appui-react/content/ContentControl.d.ts.map +1 -1
  18. package/lib/cjs/appui-react/content/ContentControl.js +11 -1
  19. package/lib/cjs/appui-react/content/ContentControl.js.map +1 -1
  20. package/lib/cjs/appui-react/content/ContentLayout.d.ts +8 -0
  21. package/lib/cjs/appui-react/content/ContentLayout.d.ts.map +1 -1
  22. package/lib/cjs/appui-react/content/ContentLayout.js +43 -36
  23. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  24. package/lib/cjs/appui-react/content/ContentLayout.scss +27 -27
  25. package/lib/cjs/appui-react/content/ContentViewManager.d.ts +7 -0
  26. package/lib/cjs/appui-react/content/ContentViewManager.d.ts.map +1 -1
  27. package/lib/cjs/appui-react/content/ContentViewManager.js +46 -22
  28. package/lib/cjs/appui-react/content/ContentViewManager.js.map +1 -1
  29. package/lib/cjs/appui-react/content/FloatingViewportContent.css +9 -0
  30. package/lib/cjs/appui-react/content/FloatingViewportContent.d.ts +25 -0
  31. package/lib/cjs/appui-react/content/FloatingViewportContent.d.ts.map +1 -0
  32. package/lib/cjs/appui-react/content/FloatingViewportContent.js +73 -0
  33. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -0
  34. package/lib/cjs/appui-react/content/IModelViewport.d.ts +1 -1
  35. package/lib/cjs/appui-react/content/IModelViewport.d.ts.map +1 -1
  36. package/lib/cjs/appui-react/content/IModelViewport.js +1 -1
  37. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  38. package/lib/cjs/appui-react/content/ViewportContentControl.d.ts +9 -0
  39. package/lib/cjs/appui-react/content/ViewportContentControl.d.ts.map +1 -1
  40. package/lib/cjs/appui-react/content/ViewportContentControl.js +24 -1
  41. package/lib/cjs/appui-react/content/ViewportContentControl.js.map +1 -1
  42. package/lib/cjs/appui-react/dialog/ContentDialog.d.ts +24 -0
  43. package/lib/cjs/appui-react/dialog/ContentDialog.d.ts.map +1 -0
  44. package/lib/cjs/appui-react/dialog/ContentDialog.js +72 -0
  45. package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -0
  46. package/lib/cjs/appui-react/dialog/ContentDialog.scss +25 -0
  47. package/lib/cjs/appui-react/dialog/ContentDialogManager.d.ts +65 -0
  48. package/lib/cjs/appui-react/dialog/ContentDialogManager.d.ts.map +1 -0
  49. package/lib/cjs/appui-react/dialog/ContentDialogManager.js +148 -0
  50. package/lib/cjs/appui-react/dialog/ContentDialogManager.js.map +1 -0
  51. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +9 -0
  52. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  53. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +65 -7
  54. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  55. package/lib/cjs/appui-react/frontstage/FrontstageManager.d.ts +3 -0
  56. package/lib/cjs/appui-react/frontstage/FrontstageManager.d.ts.map +1 -1
  57. package/lib/cjs/appui-react/frontstage/FrontstageManager.js +8 -0
  58. package/lib/cjs/appui-react/frontstage/FrontstageManager.js.map +1 -1
  59. package/lib/cjs/appui-react/hooks/useUiVisibility.d.ts +6 -0
  60. package/lib/cjs/appui-react/hooks/useUiVisibility.d.ts.map +1 -0
  61. package/lib/cjs/appui-react/hooks/useUiVisibility.js +27 -0
  62. package/lib/cjs/appui-react/hooks/useUiVisibility.js.map +1 -0
  63. package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts.map +1 -1
  64. package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js +2 -1
  65. package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js.map +1 -1
  66. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsTreeSearch.json +3 -3
  67. package/lib/cjs/appui-react/popup/CardPopup.scss +3 -1
  68. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +2 -3
  69. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  70. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +2 -3
  71. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  72. package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts +3 -0
  73. package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  74. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +20 -5
  75. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  76. package/lib/cjs/appui-react/timeline/AnalysisAnimationProvider.js +1 -1
  77. package/lib/cjs/appui-react/timeline/AnalysisAnimationProvider.js.map +1 -1
  78. package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.scss +3 -0
  79. package/lib/cjs/appui-react/widget-panels/Content.d.ts.map +1 -1
  80. package/lib/cjs/appui-react/widget-panels/Content.js +2 -2
  81. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  82. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  83. package/lib/cjs/appui-react/widget-panels/Frontstage.js +25 -7
  84. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  85. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js +2 -2
  86. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  87. package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts +0 -2
  88. package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  89. package/lib/cjs/appui-react/widgets/BasicToolWidget.js +3 -17
  90. package/lib/cjs/appui-react/widgets/BasicToolWidget.js.map +1 -1
  91. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js +2 -2
  92. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  93. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js +2 -2
  94. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  95. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +2 -0
  96. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  97. package/lib/cjs/appui-react/widgets/WidgetDef.js +2 -0
  98. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  99. package/lib/cjs/appui-react.d.ts +4 -0
  100. package/lib/cjs/appui-react.d.ts.map +1 -1
  101. package/lib/cjs/appui-react.js +4 -0
  102. package/lib/cjs/appui-react.js.map +1 -1
  103. package/lib/esm/appui-react/backstage/Backstage.d.ts +0 -2
  104. package/lib/esm/appui-react/backstage/Backstage.d.ts.map +1 -1
  105. package/lib/esm/appui-react/backstage/Backstage.js +0 -1
  106. package/lib/esm/appui-react/backstage/Backstage.js.map +1 -1
  107. package/lib/esm/appui-react/backstage/BackstageComposerItem.d.ts +1 -0
  108. package/lib/esm/appui-react/backstage/BackstageComposerItem.d.ts.map +1 -1
  109. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +2 -2
  110. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  111. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  112. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +2 -0
  113. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  114. package/lib/esm/appui-react/configurableui/ConfigurableUiManager.d.ts.map +1 -1
  115. package/lib/esm/appui-react/configurableui/ConfigurableUiManager.js +6 -1
  116. package/lib/esm/appui-react/configurableui/ConfigurableUiManager.js.map +1 -1
  117. package/lib/esm/appui-react/content/ContentControl.d.ts +6 -0
  118. package/lib/esm/appui-react/content/ContentControl.d.ts.map +1 -1
  119. package/lib/esm/appui-react/content/ContentControl.js +10 -1
  120. package/lib/esm/appui-react/content/ContentControl.js.map +1 -1
  121. package/lib/esm/appui-react/content/ContentLayout.d.ts +8 -0
  122. package/lib/esm/appui-react/content/ContentLayout.d.ts.map +1 -1
  123. package/lib/esm/appui-react/content/ContentLayout.js +41 -35
  124. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  125. package/lib/esm/appui-react/content/ContentLayout.scss +27 -27
  126. package/lib/esm/appui-react/content/ContentViewManager.d.ts +7 -0
  127. package/lib/esm/appui-react/content/ContentViewManager.d.ts.map +1 -1
  128. package/lib/esm/appui-react/content/ContentViewManager.js +46 -22
  129. package/lib/esm/appui-react/content/ContentViewManager.js.map +1 -1
  130. package/lib/esm/appui-react/content/FloatingViewportContent.css +9 -0
  131. package/lib/esm/appui-react/content/FloatingViewportContent.d.ts +25 -0
  132. package/lib/esm/appui-react/content/FloatingViewportContent.d.ts.map +1 -0
  133. package/lib/esm/appui-react/content/FloatingViewportContent.js +69 -0
  134. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -0
  135. package/lib/esm/appui-react/content/IModelViewport.d.ts +1 -1
  136. package/lib/esm/appui-react/content/IModelViewport.d.ts.map +1 -1
  137. package/lib/esm/appui-react/content/IModelViewport.js +1 -1
  138. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  139. package/lib/esm/appui-react/content/ViewportContentControl.d.ts +9 -0
  140. package/lib/esm/appui-react/content/ViewportContentControl.d.ts.map +1 -1
  141. package/lib/esm/appui-react/content/ViewportContentControl.js +23 -1
  142. package/lib/esm/appui-react/content/ViewportContentControl.js.map +1 -1
  143. package/lib/esm/appui-react/dialog/ContentDialog.d.ts +24 -0
  144. package/lib/esm/appui-react/dialog/ContentDialog.d.ts.map +1 -0
  145. package/lib/esm/appui-react/dialog/ContentDialog.js +67 -0
  146. package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -0
  147. package/lib/esm/appui-react/dialog/ContentDialog.scss +25 -0
  148. package/lib/esm/appui-react/dialog/ContentDialogManager.d.ts +65 -0
  149. package/lib/esm/appui-react/dialog/ContentDialogManager.d.ts.map +1 -0
  150. package/lib/esm/appui-react/dialog/ContentDialogManager.js +142 -0
  151. package/lib/esm/appui-react/dialog/ContentDialogManager.js.map +1 -0
  152. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +9 -0
  153. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  154. package/lib/esm/appui-react/frontstage/FrontstageDef.js +66 -8
  155. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  156. package/lib/esm/appui-react/frontstage/FrontstageManager.d.ts +3 -0
  157. package/lib/esm/appui-react/frontstage/FrontstageManager.d.ts.map +1 -1
  158. package/lib/esm/appui-react/frontstage/FrontstageManager.js +8 -0
  159. package/lib/esm/appui-react/frontstage/FrontstageManager.js.map +1 -1
  160. package/lib/esm/appui-react/hooks/useUiVisibility.d.ts +6 -0
  161. package/lib/esm/appui-react/hooks/useUiVisibility.d.ts.map +1 -0
  162. package/lib/esm/appui-react/hooks/useUiVisibility.js +23 -0
  163. package/lib/esm/appui-react/hooks/useUiVisibility.js.map +1 -0
  164. package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts.map +1 -1
  165. package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js +2 -1
  166. package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js.map +1 -1
  167. package/lib/esm/appui-react/imodel-components/models-tree/ModelsTreeSearch.json +3 -3
  168. package/lib/esm/appui-react/popup/CardPopup.scss +3 -1
  169. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +2 -3
  170. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  171. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +1 -2
  172. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  173. package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts +3 -0
  174. package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  175. package/lib/esm/appui-react/statusbar/StatusBarComposer.js +20 -5
  176. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  177. package/lib/esm/appui-react/timeline/AnalysisAnimationProvider.js +1 -1
  178. package/lib/esm/appui-react/timeline/AnalysisAnimationProvider.js.map +1 -1
  179. package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.scss +3 -0
  180. package/lib/esm/appui-react/widget-panels/Content.d.ts.map +1 -1
  181. package/lib/esm/appui-react/widget-panels/Content.js +2 -2
  182. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  183. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  184. package/lib/esm/appui-react/widget-panels/Frontstage.js +25 -7
  185. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  186. package/lib/esm/appui-react/widgets/BasicNavigationWidget.js +1 -1
  187. package/lib/esm/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  188. package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts +0 -2
  189. package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  190. package/lib/esm/appui-react/widgets/BasicToolWidget.js +1 -14
  191. package/lib/esm/appui-react/widgets/BasicToolWidget.js.map +1 -1
  192. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js +1 -1
  193. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  194. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js +1 -1
  195. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  196. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +2 -0
  197. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  198. package/lib/esm/appui-react/widgets/WidgetDef.js +2 -0
  199. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  200. package/lib/esm/appui-react.d.ts +4 -0
  201. package/lib/esm/appui-react.d.ts.map +1 -1
  202. package/lib/esm/appui-react.js +4 -0
  203. package/lib/esm/appui-react.js.map +1 -1
  204. package/package.json +34 -35
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module Dialog
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.ContentDialogRenderer = exports.ContentDialogManager = exports.ContentDialogChangedEvent = void 0;
11
+ const React = require("react");
12
+ const core_bentley_1 = require("@itwin/core-bentley");
13
+ const core_react_1 = require("@itwin/core-react");
14
+ const UiFramework_1 = require("../UiFramework");
15
+ const DialogManagerBase_1 = require("./DialogManagerBase");
16
+ const core_frontend_1 = require("@itwin/core-frontend");
17
+ // cSpell:ignore ZINDEX modeless
18
+ /** Content Dialog Changed Event class.
19
+ * @public
20
+ */
21
+ class ContentDialogChangedEvent extends DialogManagerBase_1.DialogChangedEvent {
22
+ }
23
+ exports.ContentDialogChangedEvent = ContentDialogChangedEvent;
24
+ /** Used if the 'dialog' z-index CSS variable cannot be read */
25
+ const CONTENT_DIALOG_ZINDEX_DEFAULT = 2000;
26
+ /** Content Dialog Manager class displays and manages multiple modeless dialogs
27
+ * @public
28
+ */
29
+ class ContentDialogManager {
30
+ /** Get the array of modeless dialogs */
31
+ static get dialogs() { return ContentDialogManager.dialogManager.dialogs; }
32
+ /** Initialize the modeless dialog manager */
33
+ static initialize() {
34
+ ContentDialogManager._topZIndex = ContentDialogManager.getDialogZIndexDefault();
35
+ }
36
+ static getDialogZIndexDefault() {
37
+ const variable = "--uicore-z-index-view-content-dialog";
38
+ const value = (0, core_react_1.getCssVariableAsNumber)(variable);
39
+ // istanbul ignore next
40
+ if (!isNaN(value))
41
+ return value;
42
+ core_bentley_1.Logger.logError(UiFramework_1.UiFramework.loggerCategory(this), `'${variable}' CSS variable not found`);
43
+ return CONTENT_DIALOG_ZINDEX_DEFAULT;
44
+ }
45
+ /** Open a modeless dialog
46
+ * @param dialog The Dialog to open
47
+ * @param id The id of the Dialog to open
48
+ */
49
+ static openDialog(dialog, id, parentDocument = document) {
50
+ const dialogInfo = ContentDialogManager._dialogMap.get(id);
51
+ if (dialogInfo) {
52
+ const message = `Dialog with id of '${id}' already opened`;
53
+ core_bentley_1.Logger.logInfo(UiFramework_1.UiFramework.loggerCategory(this), `openDialog: ${message}`);
54
+ core_frontend_1.IModelApp.notifications.outputMessage(new core_frontend_1.NotifyMessageDetails(core_frontend_1.OutputMessagePriority.Info, message, undefined, core_frontend_1.OutputMessageType.Toast));
55
+ return;
56
+ }
57
+ ContentDialogManager._dialogMap.set(id, { reactNode: dialog, zIndex: ++ContentDialogManager._topZIndex, parentDocument });
58
+ ContentDialogManager._idArray.push(id);
59
+ ContentDialogManager.dialogManager.openDialog(dialog, id, parentDocument);
60
+ }
61
+ /** Close a modeless dialog
62
+ * @param id The id of the Dialog to close.
63
+ */
64
+ static closeDialog(id) {
65
+ const dialogInfo = ContentDialogManager._dialogMap.get(id);
66
+ if (dialogInfo) {
67
+ ContentDialogManager.dialogManager.removeDialog(dialogInfo.reactNode);
68
+ ContentDialogManager._dialogMap.delete(id);
69
+ const index = ContentDialogManager._idArray.indexOf(id);
70
+ // istanbul ignore else
71
+ if (index >= 0)
72
+ ContentDialogManager._idArray.splice(index, 1);
73
+ if (ContentDialogManager.activeDialog === undefined)
74
+ ContentDialogManager._topZIndex = ContentDialogManager.getDialogZIndexDefault();
75
+ this.update();
76
+ }
77
+ else {
78
+ core_bentley_1.Logger.logError(UiFramework_1.UiFramework.loggerCategory(this), `closeDialog: Could not find dialog with id of '${id}'`);
79
+ }
80
+ }
81
+ /** @internal */
82
+ static closeAll() {
83
+ ContentDialogManager.dialogManager.closeAll();
84
+ }
85
+ /** Update the dialogs */
86
+ static update() {
87
+ ContentDialogManager.dialogManager.update();
88
+ }
89
+ /** Get the active modeless dialog */
90
+ static get activeDialog() {
91
+ if (ContentDialogManager._idArray.length > 0) {
92
+ const id = ContentDialogManager._idArray[ContentDialogManager._idArray.length - 1];
93
+ const dialogInfo = ContentDialogManager._dialogMap.get(id);
94
+ // istanbul ignore else
95
+ if (dialogInfo)
96
+ return dialogInfo.reactNode;
97
+ }
98
+ return undefined;
99
+ }
100
+ /** Get the count of modeless dialogs */
101
+ static get dialogCount() {
102
+ return ContentDialogManager.dialogManager.dialogCount;
103
+ }
104
+ /** Handle a pointer down event on a modeless dialog */
105
+ static handlePointerDownEvent(_event, id, updateFunc) {
106
+ const dialogInfo = ContentDialogManager._dialogMap.get(id);
107
+ if (dialogInfo && dialogInfo.reactNode !== ContentDialogManager.activeDialog) {
108
+ dialogInfo.zIndex = ++ContentDialogManager._topZIndex;
109
+ ContentDialogManager._idArray.splice(ContentDialogManager._idArray.indexOf(id), 1);
110
+ ContentDialogManager._idArray.push(id);
111
+ updateFunc();
112
+ this.update();
113
+ }
114
+ }
115
+ /** Get the z-index for a modeless dialog */
116
+ static getDialogZIndex(id) {
117
+ let zIndex = ContentDialogManager.getDialogZIndexDefault();
118
+ const dialogInfo = ContentDialogManager._dialogMap.get(id);
119
+ // istanbul ignore else
120
+ if (dialogInfo)
121
+ zIndex = dialogInfo.zIndex;
122
+ return zIndex;
123
+ }
124
+ static getDialogInfo(id) {
125
+ return ContentDialogManager._dialogMap.get(id);
126
+ }
127
+ }
128
+ exports.ContentDialogManager = ContentDialogManager;
129
+ /** Content Dialog Changed Event */
130
+ ContentDialogManager.onContentDialogChangedEvent = new ContentDialogChangedEvent();
131
+ /** @internal */
132
+ ContentDialogManager.dialogManager = new DialogManagerBase_1.DialogManagerBase(ContentDialogManager.onContentDialogChangedEvent);
133
+ ContentDialogManager._dialogMap = new Map();
134
+ ContentDialogManager._idArray = new Array();
135
+ ContentDialogManager._topZIndex = CONTENT_DIALOG_ZINDEX_DEFAULT;
136
+ /** ContentDialogRenderer React component renders modeless dialogs.
137
+ * @public
138
+ */
139
+ class ContentDialogRenderer extends React.PureComponent {
140
+ constructor(props) {
141
+ super(props);
142
+ }
143
+ render() {
144
+ return (React.createElement(DialogManagerBase_1.DialogRendererBase, { ...this.props, dialogManager: ContentDialogManager.dialogManager }));
145
+ }
146
+ }
147
+ exports.ContentDialogRenderer = ContentDialogRenderer;
148
+ //# sourceMappingURL=ContentDialogManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentDialogManager.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/ContentDialogManager.tsx"],"names":[],"mappings":"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","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/** @packageDocumentation\r\n * @module Dialog\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { CommonProps, getCssVariableAsNumber } from \"@itwin/core-react\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { DialogChangedEvent, DialogManagerBase, DialogRendererBase } from \"./DialogManagerBase\";\r\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, OutputMessageType } from \"@itwin/core-frontend\";\r\n\r\n// cSpell:ignore ZINDEX modeless\r\n\r\n/** Content Dialog Changed Event class.\r\n * @public\r\n */\r\nexport class ContentDialogChangedEvent extends DialogChangedEvent { }\r\n\r\n/** @internal */\r\ninterface ContentDialogInfo {\r\n reactNode: React.ReactNode;\r\n zIndex: number;\r\n parentDocument: Document;\r\n}\r\n\r\n/** Used if the 'dialog' z-index CSS variable cannot be read */\r\nconst CONTENT_DIALOG_ZINDEX_DEFAULT = 2000;\r\n\r\n/** Content Dialog Manager class displays and manages multiple modeless dialogs\r\n * @public\r\n */\r\nexport class ContentDialogManager {\r\n /** Content Dialog Changed Event */\r\n public static readonly onContentDialogChangedEvent = new ContentDialogChangedEvent();\r\n\r\n /** @internal */\r\n public static readonly dialogManager: DialogManagerBase = new DialogManagerBase(ContentDialogManager.onContentDialogChangedEvent);\r\n\r\n /** Get the array of modeless dialogs */\r\n public static get dialogs() { return ContentDialogManager.dialogManager.dialogs; }\r\n\r\n private static _dialogMap = new Map<string, ContentDialogInfo>();\r\n private static _idArray = new Array<string>();\r\n\r\n private static _topZIndex = CONTENT_DIALOG_ZINDEX_DEFAULT;\r\n\r\n /** Initialize the modeless dialog manager */\r\n public static initialize(): void {\r\n ContentDialogManager._topZIndex = ContentDialogManager.getDialogZIndexDefault();\r\n }\r\n\r\n private static getDialogZIndexDefault(): number {\r\n const variable = \"--uicore-z-index-view-content-dialog\";\r\n const value = getCssVariableAsNumber(variable);\r\n\r\n // istanbul ignore next\r\n if (!isNaN(value))\r\n return value;\r\n\r\n Logger.logError(UiFramework.loggerCategory(this), `'${variable}' CSS variable not found`);\r\n return CONTENT_DIALOG_ZINDEX_DEFAULT;\r\n }\r\n\r\n /** Open a modeless dialog\r\n * @param dialog The Dialog to open\r\n * @param id The id of the Dialog to open\r\n */\r\n public static openDialog(dialog: React.ReactNode, id: string, parentDocument = document): void {\r\n const dialogInfo = ContentDialogManager._dialogMap.get(id);\r\n if (dialogInfo) {\r\n const message = `Dialog with id of '${id}' already opened`;\r\n Logger.logInfo(UiFramework.loggerCategory(this), `openDialog: ${message}`);\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, message, undefined, OutputMessageType.Toast));\r\n return;\r\n }\r\n ContentDialogManager._dialogMap.set(id, { reactNode: dialog, zIndex: ++ContentDialogManager._topZIndex, parentDocument });\r\n ContentDialogManager._idArray.push(id);\r\n ContentDialogManager.dialogManager.openDialog(dialog, id, parentDocument);\r\n }\r\n\r\n /** Close a modeless dialog\r\n * @param id The id of the Dialog to close.\r\n */\r\n public static closeDialog(id: string): void {\r\n const dialogInfo = ContentDialogManager._dialogMap.get(id);\r\n if (dialogInfo) {\r\n ContentDialogManager.dialogManager.removeDialog(dialogInfo.reactNode);\r\n ContentDialogManager._dialogMap.delete(id);\r\n const index = ContentDialogManager._idArray.indexOf(id);\r\n // istanbul ignore else\r\n if (index >= 0)\r\n ContentDialogManager._idArray.splice(index, 1);\r\n\r\n if (ContentDialogManager.activeDialog === undefined)\r\n ContentDialogManager._topZIndex = ContentDialogManager.getDialogZIndexDefault();\r\n\r\n this.update();\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), `closeDialog: Could not find dialog with id of '${id}'`);\r\n }\r\n }\r\n\r\n /** @internal */\r\n public static closeAll(): void {\r\n ContentDialogManager.dialogManager.closeAll();\r\n }\r\n\r\n /** Update the dialogs */\r\n public static update(): void {\r\n ContentDialogManager.dialogManager.update();\r\n }\r\n\r\n /** Get the active modeless dialog */\r\n public static get activeDialog(): React.ReactNode | undefined {\r\n if (ContentDialogManager._idArray.length > 0) {\r\n const id = ContentDialogManager._idArray[ContentDialogManager._idArray.length - 1];\r\n const dialogInfo = ContentDialogManager._dialogMap.get(id);\r\n // istanbul ignore else\r\n if (dialogInfo)\r\n return dialogInfo.reactNode;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /** Get the count of modeless dialogs */\r\n public static get dialogCount(): number {\r\n return ContentDialogManager.dialogManager.dialogCount;\r\n }\r\n\r\n /** Handle a pointer down event on a modeless dialog */\r\n public static handlePointerDownEvent(_event: React.PointerEvent, id: string, updateFunc: () => void): void {\r\n const dialogInfo = ContentDialogManager._dialogMap.get(id);\r\n if (dialogInfo && dialogInfo.reactNode !== ContentDialogManager.activeDialog) {\r\n dialogInfo.zIndex = ++ContentDialogManager._topZIndex;\r\n\r\n ContentDialogManager._idArray.splice(ContentDialogManager._idArray.indexOf(id), 1);\r\n ContentDialogManager._idArray.push(id);\r\n\r\n updateFunc();\r\n this.update();\r\n }\r\n }\r\n\r\n /** Get the z-index for a modeless dialog */\r\n public static getDialogZIndex(id: string): number {\r\n let zIndex = ContentDialogManager.getDialogZIndexDefault();\r\n const dialogInfo = ContentDialogManager._dialogMap.get(id);\r\n // istanbul ignore else\r\n if (dialogInfo)\r\n zIndex = dialogInfo.zIndex;\r\n return zIndex;\r\n }\r\n\r\n public static getDialogInfo(id: string): ContentDialogInfo | undefined {\r\n return ContentDialogManager._dialogMap.get(id);\r\n }\r\n}\r\n\r\n/** ContentDialogRenderer React component renders modeless dialogs.\r\n * @public\r\n */\r\nexport class ContentDialogRenderer extends React.PureComponent<CommonProps> {\r\n\r\n constructor(props: CommonProps) {\r\n super(props);\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n return (\r\n <DialogRendererBase {...this.props} dialogManager={ContentDialogManager.dialogManager} />\r\n );\r\n }\r\n}\r\n"]}
@@ -59,6 +59,7 @@ export declare class FrontstageDef {
59
59
  private _timeTracker;
60
60
  private _nineZoneState?;
61
61
  private _contentGroupProvider?;
62
+ private _floatingContentControls?;
62
63
  get id(): string;
63
64
  get defaultTool(): ToolItemDef | undefined;
64
65
  get defaultContentId(): string;
@@ -67,6 +68,7 @@ export declare class FrontstageDef {
67
68
  get usage(): string;
68
69
  get version(): number;
69
70
  get contentGroupProvider(): ContentGroupProvider | undefined;
71
+ get floatingContentControls(): ContentControl[] | undefined;
70
72
  get topLeft(): ZoneDef | undefined;
71
73
  get topCenter(): ZoneDef | undefined;
72
74
  get topRight(): ZoneDef | undefined;
@@ -147,6 +149,8 @@ export declare class FrontstageDef {
147
149
  findWidgetDef(id: string): WidgetDef | undefined;
148
150
  /** Gets the list of [[WidgetControl]]s */
149
151
  private get _widgetControls();
152
+ addFloatingContentControl(contentControl?: ContentControl): void;
153
+ dropFloatingContentControl(contentControl?: ContentControl): void;
150
154
  /** Gets the list of [[ContentControl]]s */
151
155
  get contentControls(): ContentControl[];
152
156
  /** Initializes a FrontstageDef from FrontstageProps
@@ -176,6 +180,11 @@ export declare class FrontstageDef {
176
180
  * @beta
177
181
  */
178
182
  floatWidget(widgetId: string, point?: PointProps, size?: SizeProps): void;
183
+ /** Check widget and panel state to determine whether the widget is currently displayed
184
+ * @param widgetId case-sensitive Widget Id
185
+ * @public
186
+ */
187
+ isWidgetDisplayed(widgetId: string): boolean;
179
188
  /** Opens window for specified PopoutWidget container. Used to reopen popout when running in Electron.
180
189
  * @internal */
181
190
  openPopoutWidgetContainer(state: NineZoneState, widgetContainerId: string): void;
@@ -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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"}
@@ -27,6 +27,7 @@ const PopoutWidget_1 = require("../childwindow/PopoutWidget");
27
27
  const timers_1 = require("timers");
28
28
  const Frontstage_2 = require("../widget-panels/Frontstage");
29
29
  const core_bentley_1 = require("@itwin/core-bentley");
30
+ const ContentDialogManager_1 = require("../dialog/ContentDialogManager");
30
31
  /** FrontstageDef class provides an API for a Frontstage.
31
32
  * @public
32
33
  */
@@ -49,6 +50,7 @@ class FrontstageDef {
49
50
  get usage() { return this._usage !== undefined ? this._usage : appui_abstract_1.StageUsage.General; }
50
51
  get version() { return this._version; }
51
52
  get contentGroupProvider() { return this._contentGroupProvider; }
53
+ get floatingContentControls() { return this._floatingContentControls; }
52
54
  get topLeft() { return this._topLeft; }
53
55
  get topCenter() { return this._topCenter; }
54
56
  get topRight() { return this._topRight; }
@@ -229,6 +231,10 @@ class FrontstageDef {
229
231
  this._timeTracker.stopTiming();
230
232
  this._isStageClosing = true; // this keeps widgets in child windows from automatically re-docking
231
233
  UiFramework_1.UiFramework.childWindowManager.closeAllChildWindows();
234
+ if (this._floatingContentControls) {
235
+ ContentDialogManager_1.ContentDialogManager.closeAll();
236
+ this._floatingContentControls = undefined;
237
+ }
232
238
  await this._onDeactivated();
233
239
  this._isStageClosing = false;
234
240
  }
@@ -453,15 +459,37 @@ class FrontstageDef {
453
459
  });
454
460
  return widgetControls;
455
461
  }
462
+ addFloatingContentControl(contentControl) {
463
+ // istanbul ignore next
464
+ if (!contentControl)
465
+ return;
466
+ if (!this._floatingContentControls)
467
+ this._floatingContentControls = new Array();
468
+ this._floatingContentControls.push(contentControl);
469
+ ContentViewManager_1.ContentViewManager.onAvailableContentChangedEvent.emit({ contentId: contentControl.uniqueId });
470
+ }
471
+ dropFloatingContentControl(contentControl) {
472
+ // istanbul ignore next
473
+ if (!contentControl || !this._floatingContentControls)
474
+ return;
475
+ const index = this._floatingContentControls.indexOf(contentControl);
476
+ // istanbul ignore else
477
+ if (index > -1) {
478
+ this._floatingContentControls.splice(index, 1);
479
+ ContentViewManager_1.ContentViewManager.onAvailableContentChangedEvent.emit({ contentId: contentControl.uniqueId });
480
+ }
481
+ }
456
482
  /** Gets the list of [[ContentControl]]s */
457
483
  get contentControls() {
484
+ const contentControls = new Array();
458
485
  // istanbul ignore else
459
486
  if (this.contentGroup) {
460
- return this.contentGroup.getContentControls();
487
+ contentControls.push(...this.contentGroup.getContentControls());
461
488
  }
462
- else {
463
- return [];
489
+ if (this._floatingContentControls) {
490
+ contentControls.push(...this._floatingContentControls);
464
491
  }
492
+ return contentControls;
465
493
  }
466
494
  /** Initializes a FrontstageDef from FrontstageProps
467
495
  * @internal
@@ -546,8 +574,15 @@ class FrontstageDef {
546
574
  // istanbul ignore next
547
575
  if (!location)
548
576
  return appui_abstract_1.WidgetState.Hidden;
577
+ if ((0, appui_layout_react_1.isFloatingLocation)(location))
578
+ return appui_abstract_1.WidgetState.Floating;
579
+ let collapsedPanel = false;
580
+ if ("side" in location) {
581
+ const panel = this.nineZoneState.panels[location.side];
582
+ collapsedPanel = panel.collapsed || undefined === panel.size || 0 === panel.size;
583
+ }
549
584
  const widgetContainer = this.nineZoneState.widgets[location.widgetId];
550
- if (widgetDef.id === widgetContainer.activeTabId)
585
+ if (widgetDef.id === widgetContainer.activeTabId && !collapsedPanel)
551
586
  return appui_abstract_1.WidgetState.Open;
552
587
  else
553
588
  return appui_abstract_1.WidgetState.Closed;
@@ -559,13 +594,12 @@ class FrontstageDef {
559
594
  */
560
595
  getPanelCurrentState(panelDef) {
561
596
  var _a, _b;
562
- // istanbul ignore else
597
+ // istanbul ignore next
563
598
  if (this.nineZoneState) {
564
599
  const side = (0, StagePanelDef_1.toPanelSide)(panelDef.location);
565
600
  const panel = this.nineZoneState.panels[side];
566
- if (panel) {
601
+ if (panel)
567
602
  return [panel.collapsed ? StagePanelDef_1.StagePanelState.Minimized : StagePanelDef_1.StagePanelState.Open, (_a = panel.size) !== null && _a !== void 0 ? _a : 0];
568
- }
569
603
  return [StagePanelDef_1.StagePanelState.Off, 0];
570
604
  }
571
605
  return [panelDef.defaultState, (_b = panelDef.defaultSize) !== null && _b !== void 0 ? _b : 0];
@@ -618,6 +652,30 @@ class FrontstageDef {
618
652
  }
619
653
  }
620
654
  }
655
+ /** Check widget and panel state to determine whether the widget is currently displayed
656
+ * @param widgetId case-sensitive Widget Id
657
+ * @public
658
+ */
659
+ isWidgetDisplayed(widgetId) {
660
+ let widgetIsVisible = false;
661
+ if (this.nineZoneState) {
662
+ const tabLocation = (0, appui_layout_react_1.findTab)(this.nineZoneState, widgetId);
663
+ if (tabLocation) {
664
+ if ((0, appui_layout_react_1.isFloatingLocation)(tabLocation) || (0, appui_layout_react_1.isPopoutLocation)(tabLocation)) {
665
+ widgetIsVisible = true;
666
+ }
667
+ else {
668
+ if ((0, appui_layout_react_1.isPanelLocation)(tabLocation)) {
669
+ const panel = this.nineZoneState.panels[tabLocation.side];
670
+ const widgetDef = this.findWidgetDef(widgetId);
671
+ if (widgetDef && widgetDef.state === appui_abstract_1.WidgetState.Open && !panel.collapsed)
672
+ widgetIsVisible = true;
673
+ }
674
+ }
675
+ }
676
+ }
677
+ return widgetIsVisible;
678
+ }
621
679
  /** Opens window for specified PopoutWidget container. Used to reopen popout when running in Electron.
622
680
  * @internal */
623
681
  openPopoutWidgetContainer(state, widgetContainerId) {