@itwin/appui-react 4.0.0-dev.17 → 4.0.0-dev.18

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 (165) hide show
  1. package/CHANGELOG.md +43 -18
  2. package/lib/cjs/appui-react/UiFramework.d.ts +10 -20
  3. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  4. package/lib/cjs/appui-react/UiFramework.js +12 -24
  5. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  6. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
  7. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +4 -4
  8. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  9. package/lib/cjs/appui-react/dialog/ContentDialogManager.d.ts +0 -39
  10. package/lib/cjs/appui-react/dialog/ContentDialogManager.d.ts.map +1 -1
  11. package/lib/cjs/appui-react/dialog/ContentDialogManager.js +1 -61
  12. package/lib/cjs/appui-react/dialog/ContentDialogManager.js.map +1 -1
  13. package/lib/cjs/appui-react/dialog/ModalDialogManager.d.ts +0 -30
  14. package/lib/cjs/appui-react/dialog/ModalDialogManager.d.ts.map +1 -1
  15. package/lib/cjs/appui-react/dialog/ModalDialogManager.js +1 -44
  16. package/lib/cjs/appui-react/dialog/ModalDialogManager.js.map +1 -1
  17. package/lib/cjs/appui-react/dialog/ModelessDialogManager.d.ts +0 -39
  18. package/lib/cjs/appui-react/dialog/ModelessDialogManager.d.ts.map +1 -1
  19. package/lib/cjs/appui-react/dialog/ModelessDialogManager.js +1 -60
  20. package/lib/cjs/appui-react/dialog/ModelessDialogManager.js.map +1 -1
  21. package/lib/cjs/appui-react/framework/FrameworkChildWindows.d.ts +1 -1
  22. package/lib/cjs/appui-react/framework/FrameworkChildWindows.js.map +1 -1
  23. package/lib/cjs/appui-react/framework/FrameworkContent.d.ts +2 -2
  24. package/lib/cjs/appui-react/framework/FrameworkContent.js.map +1 -1
  25. package/lib/cjs/appui-react/framework/FrameworkControls.d.ts +1 -1
  26. package/lib/cjs/appui-react/framework/FrameworkControls.js.map +1 -1
  27. package/lib/cjs/appui-react/framework/FrameworkDialogs.d.ts +1 -1
  28. package/lib/cjs/appui-react/framework/FrameworkDialogs.js.map +1 -1
  29. package/lib/cjs/appui-react/framework/FrameworkFrontstages.d.ts +1 -1
  30. package/lib/cjs/appui-react/framework/FrameworkFrontstages.js.map +1 -1
  31. package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.d.ts +1 -1
  32. package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -1
  33. package/lib/cjs/appui-react/framework/FrameworkToolSettings.d.ts +1 -1
  34. package/lib/cjs/appui-react/framework/FrameworkToolSettings.js.map +1 -1
  35. package/lib/cjs/appui-react/framework/FrameworkVisibility.d.ts +1 -1
  36. package/lib/cjs/appui-react/framework/FrameworkVisibility.js.map +1 -1
  37. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.d.ts +0 -32
  38. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  39. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js +1 -55
  40. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  41. package/lib/cjs/appui-react/messages/MessageManager.js +2 -3
  42. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  43. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts +34 -0
  44. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts.map +1 -0
  45. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +500 -0
  46. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -0
  47. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts +6 -4
  48. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -1
  49. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +33 -6
  50. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  51. package/lib/cjs/appui-react.d.ts +0 -7
  52. package/lib/cjs/appui-react.d.ts.map +1 -1
  53. package/lib/cjs/appui-react.js +0 -7
  54. package/lib/cjs/appui-react.js.map +1 -1
  55. package/lib/esm/appui-react/UiFramework.d.ts +10 -20
  56. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  57. package/lib/esm/appui-react/UiFramework.js +12 -24
  58. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  59. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
  60. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +4 -4
  61. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  62. package/lib/esm/appui-react/dialog/ContentDialogManager.d.ts +0 -39
  63. package/lib/esm/appui-react/dialog/ContentDialogManager.d.ts.map +1 -1
  64. package/lib/esm/appui-react/dialog/ContentDialogManager.js +0 -59
  65. package/lib/esm/appui-react/dialog/ContentDialogManager.js.map +1 -1
  66. package/lib/esm/appui-react/dialog/ModalDialogManager.d.ts +0 -30
  67. package/lib/esm/appui-react/dialog/ModalDialogManager.d.ts.map +1 -1
  68. package/lib/esm/appui-react/dialog/ModalDialogManager.js +0 -42
  69. package/lib/esm/appui-react/dialog/ModalDialogManager.js.map +1 -1
  70. package/lib/esm/appui-react/dialog/ModelessDialogManager.d.ts +0 -39
  71. package/lib/esm/appui-react/dialog/ModelessDialogManager.d.ts.map +1 -1
  72. package/lib/esm/appui-react/dialog/ModelessDialogManager.js +0 -58
  73. package/lib/esm/appui-react/dialog/ModelessDialogManager.js.map +1 -1
  74. package/lib/esm/appui-react/framework/FrameworkChildWindows.d.ts +1 -1
  75. package/lib/esm/appui-react/framework/FrameworkChildWindows.js.map +1 -1
  76. package/lib/esm/appui-react/framework/FrameworkContent.d.ts +2 -2
  77. package/lib/esm/appui-react/framework/FrameworkContent.js.map +1 -1
  78. package/lib/esm/appui-react/framework/FrameworkControls.d.ts +1 -1
  79. package/lib/esm/appui-react/framework/FrameworkControls.js.map +1 -1
  80. package/lib/esm/appui-react/framework/FrameworkDialogs.d.ts +1 -1
  81. package/lib/esm/appui-react/framework/FrameworkDialogs.js.map +1 -1
  82. package/lib/esm/appui-react/framework/FrameworkFrontstages.d.ts +1 -1
  83. package/lib/esm/appui-react/framework/FrameworkFrontstages.js.map +1 -1
  84. package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.d.ts +1 -1
  85. package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -1
  86. package/lib/esm/appui-react/framework/FrameworkToolSettings.d.ts +1 -1
  87. package/lib/esm/appui-react/framework/FrameworkToolSettings.js.map +1 -1
  88. package/lib/esm/appui-react/framework/FrameworkVisibility.d.ts +1 -1
  89. package/lib/esm/appui-react/framework/FrameworkVisibility.js.map +1 -1
  90. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.d.ts +0 -32
  91. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  92. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js +0 -53
  93. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  94. package/lib/esm/appui-react/messages/MessageManager.js +2 -3
  95. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  96. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts +34 -0
  97. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts.map +1 -0
  98. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +496 -0
  99. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -0
  100. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts +6 -4
  101. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -1
  102. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +33 -6
  103. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  104. package/lib/esm/appui-react.d.ts +0 -7
  105. package/lib/esm/appui-react.d.ts.map +1 -1
  106. package/lib/esm/appui-react.js +0 -7
  107. package/lib/esm/appui-react.js.map +1 -1
  108. package/lib/public/locales/en/UiFramework.json +0 -45
  109. package/package.json +21 -13
  110. package/lib/cjs/appui-react/childwindow/ChildWindowManager.d.ts +0 -74
  111. package/lib/cjs/appui-react/childwindow/ChildWindowManager.d.ts.map +0 -1
  112. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js +0 -107
  113. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js.map +0 -1
  114. package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.d.ts +0 -66
  115. package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.d.ts.map +0 -1
  116. package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.js +0 -93
  117. package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.js.map +0 -1
  118. package/lib/cjs/appui-react/content/ContentLayoutManager.d.ts +0 -48
  119. package/lib/cjs/appui-react/content/ContentLayoutManager.d.ts.map +0 -1
  120. package/lib/cjs/appui-react/content/ContentLayoutManager.js +0 -69
  121. package/lib/cjs/appui-react/content/ContentLayoutManager.js.map +0 -1
  122. package/lib/cjs/appui-react/content/ContentViewManager.d.ts +0 -63
  123. package/lib/cjs/appui-react/content/ContentViewManager.d.ts.map +0 -1
  124. package/lib/cjs/appui-react/content/ContentViewManager.js +0 -96
  125. package/lib/cjs/appui-react/content/ContentViewManager.js.map +0 -1
  126. package/lib/cjs/appui-react/frontstage/FrontstageManager.d.ts +0 -202
  127. package/lib/cjs/appui-react/frontstage/FrontstageManager.d.ts.map +0 -1
  128. package/lib/cjs/appui-react/frontstage/FrontstageManager.js +0 -269
  129. package/lib/cjs/appui-react/frontstage/FrontstageManager.js.map +0 -1
  130. package/lib/cjs/appui-react/toolsettings/ToolSettingsManager.d.ts +0 -44
  131. package/lib/cjs/appui-react/toolsettings/ToolSettingsManager.d.ts.map +0 -1
  132. package/lib/cjs/appui-react/toolsettings/ToolSettingsManager.js +0 -64
  133. package/lib/cjs/appui-react/toolsettings/ToolSettingsManager.js.map +0 -1
  134. package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts +0 -54
  135. package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts.map +0 -1
  136. package/lib/cjs/appui-react/utils/UiShowHideManager.js +0 -108
  137. package/lib/cjs/appui-react/utils/UiShowHideManager.js.map +0 -1
  138. package/lib/esm/appui-react/childwindow/ChildWindowManager.d.ts +0 -74
  139. package/lib/esm/appui-react/childwindow/ChildWindowManager.d.ts.map +0 -1
  140. package/lib/esm/appui-react/childwindow/ChildWindowManager.js +0 -103
  141. package/lib/esm/appui-react/childwindow/ChildWindowManager.js.map +0 -1
  142. package/lib/esm/appui-react/configurableui/ConfigurableUiManager.d.ts +0 -66
  143. package/lib/esm/appui-react/configurableui/ConfigurableUiManager.d.ts.map +0 -1
  144. package/lib/esm/appui-react/configurableui/ConfigurableUiManager.js +0 -89
  145. package/lib/esm/appui-react/configurableui/ConfigurableUiManager.js.map +0 -1
  146. package/lib/esm/appui-react/content/ContentLayoutManager.d.ts +0 -48
  147. package/lib/esm/appui-react/content/ContentLayoutManager.d.ts.map +0 -1
  148. package/lib/esm/appui-react/content/ContentLayoutManager.js +0 -65
  149. package/lib/esm/appui-react/content/ContentLayoutManager.js.map +0 -1
  150. package/lib/esm/appui-react/content/ContentViewManager.d.ts +0 -63
  151. package/lib/esm/appui-react/content/ContentViewManager.d.ts.map +0 -1
  152. package/lib/esm/appui-react/content/ContentViewManager.js +0 -92
  153. package/lib/esm/appui-react/content/ContentViewManager.js.map +0 -1
  154. package/lib/esm/appui-react/frontstage/FrontstageManager.d.ts +0 -202
  155. package/lib/esm/appui-react/frontstage/FrontstageManager.d.ts.map +0 -1
  156. package/lib/esm/appui-react/frontstage/FrontstageManager.js +0 -265
  157. package/lib/esm/appui-react/frontstage/FrontstageManager.js.map +0 -1
  158. package/lib/esm/appui-react/toolsettings/ToolSettingsManager.d.ts +0 -44
  159. package/lib/esm/appui-react/toolsettings/ToolSettingsManager.d.ts.map +0 -1
  160. package/lib/esm/appui-react/toolsettings/ToolSettingsManager.js +0 -60
  161. package/lib/esm/appui-react/toolsettings/ToolSettingsManager.js.map +0 -1
  162. package/lib/esm/appui-react/utils/UiShowHideManager.d.ts +0 -54
  163. package/lib/esm/appui-react/utils/UiShowHideManager.d.ts.map +0 -1
  164. package/lib/esm/appui-react/utils/UiShowHideManager.js +0 -105
  165. package/lib/esm/appui-react/utils/UiShowHideManager.js.map +0 -1
@@ -0,0 +1,496 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module UiProvider
7
+ */
8
+ /* eslint-disable deprecation/deprecation */
9
+ import * as abstract from "@itwin/appui-abstract";
10
+ import { assert } from "@itwin/core-bentley";
11
+ import { IconHelper } from "@itwin/core-react";
12
+ import { StagePanelLocation } from "../stagepanels/StagePanelLocation";
13
+ import { StagePanelSection } from "../stagepanels/StagePanelSection";
14
+ import { isToolbarActionItem, isToolbarGroupItem } from "../toolbar/ToolbarItem";
15
+ import { isStatusBarCustomItem } from "../statusbar/StatusBarItem";
16
+ // @ts-ignore Removed in 4.0
17
+ const AbstractUiItemsManager = abstract.UiItemsManager;
18
+ // @ts-ignore Removed in 4.0
19
+ const isAbstractStatusBarCustomItem = abstract.isAbstractStatusBarCustomItem;
20
+ // @ts-ignore Removed in 4.0
21
+ const AbstractStagePanelLocation = abstract.StagePanelLocation; // eslint-disable-line @typescript-eslint/no-redeclare
22
+ // @ts-ignore Removed in 4.0
23
+ const AbstractStagePanelSection = abstract.StagePanelSection; // eslint-disable-line @typescript-eslint/no-redeclare
24
+ const AbstractToolbarItemUtilities = abstract.ToolbarItemUtilities;
25
+ const originalDataSymbol = Symbol("originalData");
26
+ /** @internal */
27
+ export function createAbstractUiItemsManagerAdapter() {
28
+ if (!AbstractUiItemsManager)
29
+ return undefined;
30
+ return new AbstractUiItemsManagerAdapter(AbstractUiItemsManager);
31
+ }
32
+ class AbstractUiItemsManagerAdapter {
33
+ constructor(_adaptee) {
34
+ this._adaptee = _adaptee;
35
+ }
36
+ clearAllProviders() {
37
+ return this._adaptee.clearAllProviders();
38
+ }
39
+ get onUiProviderRegisteredEvent() {
40
+ if (!("emit" in this._adaptee.onUiProviderRegisteredEvent)) {
41
+ this._adaptee.onUiProviderRegisteredEvent.emit = (args) => {
42
+ this._adaptee.onUiProviderRegisteredEvent.raiseEvent(args);
43
+ };
44
+ }
45
+ return this._adaptee.onUiProviderRegisteredEvent;
46
+ }
47
+ unregister(providerId) {
48
+ return this._adaptee.unregister(providerId);
49
+ }
50
+ get hasRegisteredProviders() {
51
+ return this._adaptee.hasRegisteredProviders;
52
+ }
53
+ get registeredProviderIds() {
54
+ return this._adaptee.registeredProviderIds;
55
+ }
56
+ register(provider, overrides) {
57
+ const abstractProvider = new UiItemsProviderToAbstractAdapter(provider);
58
+ return this._adaptee.register(abstractProvider, overrides);
59
+ }
60
+ getUiItemsProvider(providerId) {
61
+ const abstractProvider = this._adaptee.getUiItemsProvider(providerId);
62
+ if (!abstractProvider)
63
+ return undefined;
64
+ const provider = new AbstractToUiItemsProviderAdapter(abstractProvider);
65
+ return provider;
66
+ }
67
+ getBackstageItems() {
68
+ const abstractItems = this._adaptee.getBackstageItems();
69
+ const items = abstractItems.map((abstractItem) => {
70
+ const item = fromAbstractBackstageItem(abstractItem);
71
+ return {
72
+ ...item,
73
+ providerId: abstractItem.providerId ? abstractItem.providerId : "",
74
+ };
75
+ });
76
+ return items;
77
+ }
78
+ getStatusBarItems(stageId, stageUsage) {
79
+ const abstractItems = this._adaptee.getStatusBarItems(stageId, stageUsage);
80
+ const items = abstractItems.map((abstractItem) => {
81
+ const item = fromAbstractStatusBarItem(abstractItem);
82
+ return {
83
+ ...item,
84
+ providerId: abstractItem.providerId ? abstractItem.providerId : "",
85
+ };
86
+ });
87
+ return items;
88
+ }
89
+ getToolbarButtonItems(stageId, stageUsage, usage, orientation) {
90
+ const abstractItems = this._adaptee.getToolbarButtonItems(stageId, stageUsage, usage, orientation);
91
+ const items = abstractItems.map((abstractItem) => {
92
+ const item = fromAbstractToolbarItem(abstractItem);
93
+ return {
94
+ ...item,
95
+ providerId: abstractItem.providerId ?? "",
96
+ };
97
+ });
98
+ return items;
99
+ }
100
+ getWidgets(stageId, stageUsage, location, section) {
101
+ const abstractLocations = toAbstractStagePanelLocation(location);
102
+ const abstractSections = section === undefined ? [undefined] : toAbstractStagePanelSection(section);
103
+ const combos = [];
104
+ abstractLocations.forEach((abstractLocation) => {
105
+ abstractSections.forEach((abstractSection) => {
106
+ combos.push([abstractLocation, abstractSection]);
107
+ });
108
+ });
109
+ let abstractWidgets = combos.reduce((acc, [abstractLocation, abstractSection]) => {
110
+ const w = this._adaptee.getWidgets(stageId, stageUsage, abstractLocation, abstractSection);
111
+ acc.push(...w);
112
+ return acc;
113
+ }, []);
114
+ abstractWidgets = abstractWidgets.reduce((acc, abstractWidget) => {
115
+ if (-1 === acc.findIndex((w) => w.id === abstractWidget.id))
116
+ acc.push(abstractWidget);
117
+ return acc;
118
+ }, []);
119
+ const widgets = abstractWidgets
120
+ // @ts-ignore Possibly 'any'
121
+ .map((abstractWidget) => {
122
+ const widget = fromAbstractWidget(abstractWidget);
123
+ return {
124
+ ...widget,
125
+ providerId: abstractWidget.providerId ?? "",
126
+ };
127
+ });
128
+ return widgets;
129
+ }
130
+ }
131
+ class UiItemsProviderToAbstractAdapter {
132
+ get id() {
133
+ return this._adaptee.id;
134
+ }
135
+ constructor(_adaptee) {
136
+ this._adaptee = _adaptee;
137
+ }
138
+ onUnregister() {
139
+ this._adaptee.onUnregister?.();
140
+ }
141
+ provideBackstageItems() {
142
+ if (!this._adaptee.provideBackstageItems)
143
+ return [];
144
+ const items = this._adaptee.provideBackstageItems();
145
+ const abstractItems = items.map((item) => toAbstractBackstageItem(item));
146
+ return abstractItems;
147
+ }
148
+ provideStatusBarItems(stageId, stageUsage, _stageAppData) {
149
+ if (!this._adaptee.provideStatusBarItems)
150
+ return [];
151
+ const items = this._adaptee.provideStatusBarItems(stageId, stageUsage);
152
+ const abstractItems = items.map((item) => toAbstractStatusBarItem(item));
153
+ return abstractItems;
154
+ }
155
+ provideToolbarButtonItems(stageId, stageUsage, usage, orientation, _stageAppData) {
156
+ if (!this._adaptee.provideToolbarItems)
157
+ return [];
158
+ const items = this._adaptee.provideToolbarItems(stageId, stageUsage, usage, orientation);
159
+ const abstractItems = items.map((item) => toAbstractToolbarItem(item));
160
+ return abstractItems;
161
+ }
162
+ provideWidgets(stageId, stageUsage, abstractLocation, abstractSection, _zoneLocation, _stageAppData) {
163
+ if (!this._adaptee.provideWidgets)
164
+ return [];
165
+ const location = fromAbstractStagePanelLocation(abstractLocation);
166
+ const section = abstractSection === undefined ? undefined : fromAbstractStagePanelSection(abstractSection);
167
+ const widgets = this._adaptee.provideWidgets(stageId, stageUsage, location, section);
168
+ const abstractWidgets = widgets.map((widget) => toAbstractWidget(widget));
169
+ return abstractWidgets;
170
+ }
171
+ }
172
+ class AbstractToUiItemsProviderAdapter {
173
+ get id() {
174
+ return this._adaptee.id;
175
+ }
176
+ constructor(_adaptee) {
177
+ this._adaptee = _adaptee;
178
+ }
179
+ onUnregister() {
180
+ this._adaptee.onUnregister?.();
181
+ }
182
+ provideBackstageItems() {
183
+ if (!this._adaptee.provideBackstageItems)
184
+ return [];
185
+ const abstractItems = this._adaptee.provideBackstageItems();
186
+ const items = abstractItems.map((abstractItem) => fromAbstractBackstageItem(abstractItem));
187
+ return items;
188
+ }
189
+ provideStatusBarItems(stageId, stageUsage) {
190
+ if (!this._adaptee.provideStatusBarItems)
191
+ return [];
192
+ const abstractItems = this._adaptee.provideStatusBarItems(stageId, stageUsage);
193
+ const items = abstractItems.map((abstractItem) => fromAbstractStatusBarItem(abstractItem));
194
+ return items;
195
+ }
196
+ provideWidgets(stageId, stageUsage, location, section) {
197
+ if (!this._adaptee.provideWidgets)
198
+ return [];
199
+ const abstractLocations = toAbstractStagePanelLocation(location);
200
+ const abstractSections = section === undefined ? [undefined] : toAbstractStagePanelSection(section);
201
+ const combos = [];
202
+ abstractLocations.forEach((abstractLocation) => {
203
+ abstractSections.forEach((abstractSection) => {
204
+ combos.push([abstractLocation, abstractSection]);
205
+ });
206
+ });
207
+ let abstractWidgets = combos.reduce((acc, [abstractLocation, abstractSection]) => {
208
+ assert(!!this._adaptee.provideWidgets);
209
+ const w = this._adaptee.provideWidgets(stageId, stageUsage, abstractLocation, abstractSection);
210
+ acc.push(...w);
211
+ return acc;
212
+ }, []);
213
+ abstractWidgets = abstractWidgets.reduce((acc, abstractWidget) => {
214
+ if (-1 === acc.findIndex((w) => w.id === abstractWidget.id))
215
+ acc.push(abstractWidget);
216
+ return acc;
217
+ }, []);
218
+ const widgets = abstractWidgets.map((abstractWidget) => fromAbstractWidget(abstractWidget));
219
+ return widgets;
220
+ }
221
+ provideToolbarItems(stageId, stageUsage, usage, orientation) {
222
+ if (!this._adaptee.provideToolbarButtonItems)
223
+ return [];
224
+ const abstractItems = this._adaptee.provideToolbarButtonItems(stageId, stageUsage, usage, orientation);
225
+ const items = abstractItems.map((abstractItem) => fromAbstractToolbarItem(abstractItem));
226
+ return items;
227
+ }
228
+ }
229
+ function toAbstractBackstageItem(item) {
230
+ let abstractItem = getOriginalData(item);
231
+ if (abstractItem)
232
+ return abstractItem;
233
+ const internalData = new Map();
234
+ const icon = IconHelper.getIconData(item.icon, internalData);
235
+ abstractItem = {
236
+ ...item,
237
+ badgeType: item.badge,
238
+ icon,
239
+ internalData,
240
+ };
241
+ setOriginalData(abstractItem, item);
242
+ return abstractItem;
243
+ }
244
+ function toAbstractStatusBarItem(item) {
245
+ let abstractItem = getOriginalData(item);
246
+ if (abstractItem)
247
+ return abstractItem;
248
+ if (isStatusBarCustomItem(item)) {
249
+ abstractItem = {
250
+ ...item,
251
+ badgeType: item.badge,
252
+ isCustom: true,
253
+ reactNode: item.content,
254
+ };
255
+ }
256
+ else {
257
+ const internalData = new Map();
258
+ const icon = IconHelper.getIconData(item.icon, internalData);
259
+ abstractItem = {
260
+ ...item,
261
+ badgeType: item.badge,
262
+ icon,
263
+ internalData,
264
+ };
265
+ }
266
+ setOriginalData(abstractItem, item);
267
+ return abstractItem;
268
+ }
269
+ function toAbstractToolbarItem(item) {
270
+ let abstractItem = getOriginalData(item);
271
+ if (abstractItem)
272
+ return abstractItem;
273
+ const internalData = new Map();
274
+ const icon = IconHelper.getIconData(item.icon, internalData);
275
+ if (isToolbarActionItem(item)) {
276
+ abstractItem = {
277
+ ...item,
278
+ badgeType: item.badge,
279
+ icon,
280
+ internalData,
281
+ parentToolGroupId: item.parentGroupItemId,
282
+ };
283
+ }
284
+ else if (isToolbarGroupItem(item)) {
285
+ abstractItem = {
286
+ ...item,
287
+ badgeType: item.badge,
288
+ icon,
289
+ internalData,
290
+ parentToolGroupId: item.parentGroupItemId,
291
+ items: item.items.map((i) => toAbstractToolbarItem(i)),
292
+ };
293
+ }
294
+ else {
295
+ abstractItem = {
296
+ ...item,
297
+ badgeType: item.badge,
298
+ isCustom: true,
299
+ icon,
300
+ internalData,
301
+ };
302
+ }
303
+ setOriginalData(abstractItem, item);
304
+ return abstractItem;
305
+ }
306
+ function toAbstractWidget(widget) {
307
+ let abstractWidget = getOriginalData(widget);
308
+ if (abstractWidget)
309
+ return abstractWidget;
310
+ const allowedPanelTargets = widget.allowedPanels
311
+ // @ts-ignore Possibly 'any'
312
+ ?.map((location) => {
313
+ const map = {
314
+ [StagePanelLocation.Top]: "top",
315
+ [StagePanelLocation.Left]: "left",
316
+ [StagePanelLocation.Right]: "right",
317
+ [StagePanelLocation.Bottom]: "bottom",
318
+ };
319
+ // @ts-ignore Possibly 'any'
320
+ return map[location];
321
+ });
322
+ const internalData = new Map();
323
+ const icon = IconHelper.getIconData(widget.icon, internalData);
324
+ abstractWidget = {
325
+ ...widget,
326
+ id: widget.id ?? "",
327
+ getWidgetContent: () => widget.content,
328
+ allowedPanelTargets,
329
+ badgeType: widget.badge,
330
+ defaultFloatingPosition: typeof widget.canFloat === "object" ? widget.canFloat.defaultPosition : undefined,
331
+ defaultFloatingSize: typeof widget.canFloat === "object" ? widget.canFloat.defaultSize : undefined,
332
+ floatingContainerId: typeof widget.canFloat === "object" ? widget.canFloat.containerId : undefined,
333
+ hideWithUiWhenFloating: typeof widget.canFloat === "object" ? widget.canFloat.hideWithUi : undefined,
334
+ isFloatingStateSupported: !!widget.canFloat,
335
+ isFloatingStateWindowResizable: typeof widget.canFloat === "object" ? widget.canFloat.isResizable : undefined,
336
+ icon,
337
+ internalData,
338
+ };
339
+ setOriginalData(abstractWidget, widget);
340
+ return abstractWidget;
341
+ }
342
+ function fromAbstractBackstageItem(abstractItem) {
343
+ let item = getOriginalData(abstractItem);
344
+ if (item)
345
+ return item;
346
+ const icon = fromAbstractIcon(abstractItem.icon, abstractItem.internalData);
347
+ item = {
348
+ ...abstractItem,
349
+ badge: abstractItem.badgeType,
350
+ icon,
351
+ };
352
+ setOriginalData(item, abstractItem);
353
+ return item;
354
+ }
355
+ function fromAbstractStatusBarItem(abstractItem) {
356
+ let item = getOriginalData(abstractItem);
357
+ if (item)
358
+ return item;
359
+ if (isAbstractStatusBarCustomItem(abstractItem)) {
360
+ const content = abstractItem.reactNode;
361
+ return {
362
+ ...abstractItem,
363
+ badge: abstractItem.badgeType,
364
+ content,
365
+ };
366
+ }
367
+ else {
368
+ const icon = fromAbstractIcon(abstractItem.icon, abstractItem.internalData);
369
+ item = {
370
+ ...abstractItem,
371
+ badge: abstractItem.badgeType,
372
+ icon,
373
+ };
374
+ }
375
+ assert(!!item);
376
+ setOriginalData(item, abstractItem);
377
+ return item;
378
+ }
379
+ function fromAbstractToolbarItem(abstractItem) {
380
+ let item = getOriginalData(abstractItem);
381
+ if (item)
382
+ return item;
383
+ const icon = fromAbstractIcon(abstractItem.icon, abstractItem.internalData);
384
+ if (AbstractToolbarItemUtilities.isCustomDefinition(abstractItem)) {
385
+ item = {
386
+ ...abstractItem,
387
+ badge: abstractItem.badgeType,
388
+ icon,
389
+ };
390
+ }
391
+ else {
392
+ item = {
393
+ ...abstractItem,
394
+ badge: abstractItem.badgeType,
395
+ parentGroupItemId: abstractItem.parentToolGroupId,
396
+ icon,
397
+ };
398
+ }
399
+ setOriginalData(item, abstractItem);
400
+ return item;
401
+ }
402
+ function fromAbstractWidget(abstractWidget) {
403
+ let widget = getOriginalData(abstractWidget);
404
+ if (widget)
405
+ return widget;
406
+ const allowedPanels = abstractWidget.allowedPanelTargets
407
+ // @ts-ignore Possibly 'any'
408
+ ?.map((target) => {
409
+ const map = {
410
+ top: StagePanelLocation.Top,
411
+ left: StagePanelLocation.Left,
412
+ right: StagePanelLocation.Right,
413
+ bottom: StagePanelLocation.Bottom,
414
+ };
415
+ // @ts-ignore Possibly 'any'
416
+ return map[target];
417
+ });
418
+ const icon = fromAbstractIcon(abstractWidget.icon, abstractWidget.internalData);
419
+ widget = {
420
+ ...abstractWidget,
421
+ id: abstractWidget.id ?? "",
422
+ content: abstractWidget.getWidgetContent(),
423
+ allowedPanels,
424
+ badge: abstractWidget.badgeType,
425
+ canFloat: abstractWidget.isFloatingStateSupported && {
426
+ containerId: abstractWidget.floatingContainerId,
427
+ defaultPosition: abstractWidget.defaultFloatingPosition,
428
+ defaultSize: abstractWidget.defaultFloatingSize,
429
+ hideWithUi: abstractWidget.hideWithUiWhenFloating,
430
+ isResizable: abstractWidget.isFloatingStateWindowResizable,
431
+ },
432
+ icon,
433
+ };
434
+ setOriginalData(widget, abstractWidget);
435
+ return widget;
436
+ }
437
+ function fromAbstractStagePanelLocation(location) {
438
+ switch (location) {
439
+ case AbstractStagePanelLocation.Left:
440
+ return StagePanelLocation.Left;
441
+ case AbstractStagePanelLocation.Top:
442
+ return StagePanelLocation.Top;
443
+ case AbstractStagePanelLocation.TopMost:
444
+ return StagePanelLocation.Top;
445
+ case AbstractStagePanelLocation.Bottom:
446
+ return StagePanelLocation.Bottom;
447
+ case AbstractStagePanelLocation.BottomMost:
448
+ return StagePanelLocation.Bottom;
449
+ }
450
+ return StagePanelLocation.Right;
451
+ }
452
+ function toAbstractStagePanelLocation(location) {
453
+ switch (location) {
454
+ case StagePanelLocation.Left:
455
+ return [AbstractStagePanelLocation.Left];
456
+ case StagePanelLocation.Top:
457
+ return [AbstractStagePanelLocation.Top, AbstractStagePanelLocation.TopMost];
458
+ case StagePanelLocation.Bottom:
459
+ return [AbstractStagePanelLocation.Bottom, AbstractStagePanelLocation.BottomMost];
460
+ }
461
+ return [AbstractStagePanelLocation.Right];
462
+ }
463
+ function fromAbstractStagePanelSection(section) {
464
+ switch (section) {
465
+ case AbstractStagePanelSection.End:
466
+ return StagePanelSection.End;
467
+ }
468
+ return StagePanelSection.Start;
469
+ }
470
+ function toAbstractStagePanelSection(section) {
471
+ switch (section) {
472
+ case StagePanelSection.End:
473
+ return [AbstractStagePanelSection.End];
474
+ }
475
+ return [AbstractStagePanelSection.Start, AbstractStagePanelSection.Middle];
476
+ }
477
+ function fromAbstractIcon(icon, internalData) {
478
+ if (!icon)
479
+ return undefined;
480
+ const iconString = abstract.ConditionalStringValue.getValue(icon);
481
+ if (!iconString)
482
+ return undefined;
483
+ if (iconString === IconHelper.reactIconKey && internalData)
484
+ return internalData.get(IconHelper.reactIconKey);
485
+ return iconString;
486
+ }
487
+ function getOriginalData(obj) {
488
+ const originalData = obj[originalDataSymbol];
489
+ if (!originalData)
490
+ return undefined;
491
+ return originalData;
492
+ }
493
+ function setOriginalData(obj, data) {
494
+ obj[originalDataSymbol] = data;
495
+ }
496
+ //# sourceMappingURL=AbstractUiItemsManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractUiItemsManager.js","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/AbstractUiItemsManager.ts"],"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 UiProvider\r\n */\r\n\r\n/* eslint-disable deprecation/deprecation */\r\n\r\nimport * as abstract from \"@itwin/appui-abstract\";\r\nimport { assert, BeUiEvent } from \"@itwin/core-bentley\";\r\nimport { IconHelper, IconSpec } from \"@itwin/core-react\";\r\nimport type {\r\n // @ts-ignore Removed in 4.0\r\n BackstageItem as AbstractBackstageItem,\r\n // @ts-ignore Removed in 4.0\r\n CommonStatusBarItem as AbstractStatusBarItem,\r\n CommonToolbarItem as AbstractToolbarItem,\r\n // @ts-ignore Removed in 4.0\r\n ToolbarOrientation as AbstractToolbarOrientation,\r\n // @ts-ignore Removed in 4.0\r\n ToolbarUsage as AbstractToolbarUsage,\r\n // @ts-ignore Removed in 4.0\r\n UiItemsManager as AbstractUiItemsManagerType,\r\n // @ts-ignore Removed in 4.0\r\n UiItemsProvider as AbstractUiItemsProvider,\r\n // @ts-ignore Removed in 4.0\r\n AbstractWidgetProps as AbstractWidget,\r\n} from \"@itwin/appui-abstract\";\r\nimport type { UiItemsManager, UiItemsProviderOverrides, UiItemsProviderRegisteredEventArgs } from \"./UiItemsManager\";\r\nimport { StagePanelLocation } from \"../stagepanels/StagePanelLocation\";\r\nimport { StagePanelSection } from \"../stagepanels/StagePanelSection\";\r\nimport { Widget } from \"../widgets/Widget\";\r\nimport { ProviderItem } from \"./ProviderItem\";\r\nimport { UiItemsProvider } from \"./UiItemsProvider\";\r\nimport { isToolbarActionItem, isToolbarGroupItem, ToolbarItem, ToolbarOrientation, ToolbarUsage } from \"../toolbar/ToolbarItem\";\r\nimport { BackstageItem } from \"../backstage/BackstageItem\";\r\nimport { isStatusBarCustomItem, StatusBarItem } from \"../statusbar/StatusBarItem\";\r\n\r\n// @ts-ignore Removed in 4.0\r\nconst AbstractUiItemsManager: typeof AbstractUiItemsManagerType | undefined = abstract.UiItemsManager;\r\n// @ts-ignore Removed in 4.0\r\nconst isAbstractStatusBarCustomItem = abstract.isAbstractStatusBarCustomItem;\r\n// @ts-ignore Removed in 4.0\r\ntype AbstractStagePanelLocation = abstract.StagePanelLocation;\r\n// @ts-ignore Removed in 4.0\r\nconst AbstractStagePanelLocation = abstract.StagePanelLocation; // eslint-disable-line @typescript-eslint/no-redeclare\r\n// @ts-ignore Removed in 4.0\r\ntype AbstractStagePanelSection = abstract.StagePanelSection;\r\n// @ts-ignore Removed in 4.0\r\nconst AbstractStagePanelSection = abstract.StagePanelSection; // eslint-disable-line @typescript-eslint/no-redeclare\r\n\r\nconst AbstractToolbarItemUtilities = abstract.ToolbarItemUtilities;\r\n\r\nconst originalDataSymbol = Symbol(\"originalData\");\r\n\r\n/** @internal */\r\nexport function createAbstractUiItemsManagerAdapter() {\r\n if (!AbstractUiItemsManager)\r\n return undefined;\r\n return new AbstractUiItemsManagerAdapter(AbstractUiItemsManager);\r\n}\r\n\r\ntype Target = Pick<typeof UiItemsManager, \"getWidgets\" | \"getToolbarButtonItems\" | \"getStatusBarItems\" | \"getBackstageItems\" | \"register\" | \"getUiItemsProvider\" | \"registeredProviderIds\" | \"hasRegisteredProviders\" | \"unregister\" | \"onUiProviderRegisteredEvent\" | \"clearAllProviders\">;\r\n\r\nclass AbstractUiItemsManagerAdapter implements Target {\r\n constructor(private readonly _adaptee: typeof AbstractUiItemsManagerType) {\r\n }\r\n\r\n public clearAllProviders(): void {\r\n return this._adaptee.clearAllProviders();\r\n }\r\n\r\n public get onUiProviderRegisteredEvent(): BeUiEvent<UiItemsProviderRegisteredEventArgs> {\r\n if (!(\"emit\" in this._adaptee.onUiProviderRegisteredEvent)) {\r\n (this._adaptee.onUiProviderRegisteredEvent as any).emit = (args: UiItemsProviderRegisteredEventArgs) => {\r\n this._adaptee.onUiProviderRegisteredEvent.raiseEvent(args);\r\n };\r\n }\r\n return this._adaptee.onUiProviderRegisteredEvent as BeUiEvent<UiItemsProviderRegisteredEventArgs>;\r\n }\r\n\r\n public unregister(providerId: string): void {\r\n return this._adaptee.unregister(providerId);\r\n }\r\n\r\n public get hasRegisteredProviders(): boolean {\r\n return this._adaptee.hasRegisteredProviders;\r\n }\r\n\r\n public get registeredProviderIds(): string[] {\r\n return this._adaptee.registeredProviderIds;\r\n }\r\n\r\n public register(provider: UiItemsProvider, overrides?: UiItemsProviderOverrides | undefined): void {\r\n const abstractProvider = new UiItemsProviderToAbstractAdapter(provider);\r\n return this._adaptee.register(abstractProvider, overrides);\r\n }\r\n\r\n public getUiItemsProvider(providerId: string): UiItemsProvider | undefined {\r\n const abstractProvider = this._adaptee.getUiItemsProvider(providerId);\r\n if (!abstractProvider)\r\n return undefined;\r\n\r\n const provider = new AbstractToUiItemsProviderAdapter(abstractProvider);\r\n return provider;\r\n }\r\n\r\n public getBackstageItems(): readonly ProviderItem<BackstageItem>[] {\r\n const abstractItems = this._adaptee.getBackstageItems();\r\n const items = abstractItems.map((abstractItem) => {\r\n const item = fromAbstractBackstageItem(abstractItem);\r\n return {\r\n ...item,\r\n providerId: abstractItem.providerId ? abstractItem.providerId : \"\",\r\n };\r\n });\r\n return items;\r\n }\r\n\r\n public getStatusBarItems(stageId: string, stageUsage: string): readonly ProviderItem<StatusBarItem>[] {\r\n const abstractItems = this._adaptee.getStatusBarItems(stageId, stageUsage);\r\n const items = abstractItems.map((abstractItem) => {\r\n const item = fromAbstractStatusBarItem(abstractItem);\r\n return {\r\n ...item,\r\n providerId: abstractItem.providerId ? abstractItem.providerId : \"\",\r\n };\r\n });\r\n return items;\r\n }\r\n\r\n public getToolbarButtonItems(stageId: string, stageUsage: string, usage: ToolbarUsage, orientation: ToolbarOrientation): readonly ProviderItem<ToolbarItem>[] {\r\n const abstractItems = this._adaptee.getToolbarButtonItems(stageId, stageUsage, usage, orientation);\r\n const items = abstractItems.map((abstractItem) => {\r\n const item = fromAbstractToolbarItem(abstractItem);\r\n return {\r\n ...item,\r\n providerId: abstractItem.providerId ?? \"\",\r\n };\r\n });\r\n return items;\r\n }\r\n\r\n public getWidgets(stageId: string, stageUsage: string, location: StagePanelLocation, section?: StagePanelSection | undefined): readonly ProviderItem<Widget>[] {\r\n const abstractLocations = toAbstractStagePanelLocation(location);\r\n const abstractSections = section === undefined ? [undefined] as const : toAbstractStagePanelSection(section);\r\n const combos: [AbstractStagePanelLocation, AbstractStagePanelSection | undefined][] = [];\r\n abstractLocations.forEach((abstractLocation) => {\r\n abstractSections.forEach((abstractSection) => {\r\n combos.push([abstractLocation, abstractSection]);\r\n });\r\n });\r\n let abstractWidgets = combos.reduce<AbstractWidget[]>((acc, [abstractLocation, abstractSection]) => {\r\n const w = this._adaptee.getWidgets(stageId, stageUsage, abstractLocation, abstractSection);\r\n acc.push(...w);\r\n return acc;\r\n }, []);\r\n abstractWidgets = abstractWidgets.reduce<AbstractWidget[]>((acc, abstractWidget) => {\r\n if (-1 === acc.findIndex((w) => w.id === abstractWidget.id))\r\n acc.push(abstractWidget);\r\n return acc;\r\n }, []);\r\n const widgets = abstractWidgets\r\n // @ts-ignore Possibly 'any'\r\n .map((abstractWidget) => {\r\n const widget = fromAbstractWidget(abstractWidget);\r\n return {\r\n ...widget,\r\n providerId: abstractWidget.providerId ?? \"\",\r\n };\r\n });\r\n return widgets;\r\n }\r\n}\r\n\r\nclass UiItemsProviderToAbstractAdapter implements AbstractUiItemsProvider {\r\n public get id(): string {\r\n return this._adaptee.id;\r\n }\r\n\r\n constructor(private readonly _adaptee: UiItemsProvider) {\r\n }\r\n\r\n public onUnregister() {\r\n this._adaptee.onUnregister?.();\r\n }\r\n\r\n public provideBackstageItems() {\r\n if (!this._adaptee.provideBackstageItems)\r\n return [];\r\n\r\n const items = this._adaptee.provideBackstageItems();\r\n const abstractItems = items.map((item) => toAbstractBackstageItem(item));\r\n return abstractItems;\r\n }\r\n\r\n public provideStatusBarItems(stageId: string, stageUsage: string, _stageAppData?: any) {\r\n if (!this._adaptee.provideStatusBarItems)\r\n return [];\r\n\r\n const items = this._adaptee.provideStatusBarItems(stageId, stageUsage);\r\n const abstractItems = items.map((item) => toAbstractStatusBarItem(item));\r\n return abstractItems;\r\n }\r\n\r\n public provideToolbarButtonItems(stageId: string, stageUsage: string, usage: AbstractToolbarUsage, orientation: AbstractToolbarOrientation, _stageAppData?: any) {\r\n if (!this._adaptee.provideToolbarItems)\r\n return [];\r\n\r\n const items = this._adaptee.provideToolbarItems(stageId, stageUsage, usage, orientation);\r\n const abstractItems = items.map((item) => toAbstractToolbarItem(item));\r\n return abstractItems;\r\n }\r\n\r\n public provideWidgets(stageId: string, stageUsage: string, abstractLocation: AbstractStagePanelLocation, abstractSection?: AbstractStagePanelSection | undefined, _zoneLocation?: any, _stageAppData?: any) {\r\n if (!this._adaptee.provideWidgets)\r\n return [];\r\n\r\n const location = fromAbstractStagePanelLocation(abstractLocation);\r\n const section = abstractSection === undefined ? undefined : fromAbstractStagePanelSection(abstractSection);\r\n const widgets = this._adaptee.provideWidgets(stageId, stageUsage, location, section);\r\n const abstractWidgets = widgets.map((widget) => toAbstractWidget(widget));\r\n return abstractWidgets;\r\n }\r\n}\r\n\r\nclass AbstractToUiItemsProviderAdapter implements UiItemsProvider {\r\n public get id(): string {\r\n return this._adaptee.id;\r\n }\r\n\r\n constructor(private readonly _adaptee: AbstractUiItemsProvider) {\r\n }\r\n\r\n public onUnregister() {\r\n this._adaptee.onUnregister?.();\r\n }\r\n\r\n public provideBackstageItems() {\r\n if (!this._adaptee.provideBackstageItems)\r\n return [];\r\n\r\n const abstractItems = this._adaptee.provideBackstageItems();\r\n const items = abstractItems.map((abstractItem) => fromAbstractBackstageItem(abstractItem));\r\n return items;\r\n }\r\n\r\n public provideStatusBarItems(stageId: string, stageUsage: string) {\r\n if (!this._adaptee.provideStatusBarItems)\r\n return [];\r\n\r\n const abstractItems = this._adaptee.provideStatusBarItems(stageId, stageUsage);\r\n const items = abstractItems.map((abstractItem) => fromAbstractStatusBarItem(abstractItem));\r\n return items;\r\n }\r\n\r\n public provideWidgets(stageId: string, stageUsage: string, location: StagePanelLocation, section?: StagePanelSection) {\r\n if (!this._adaptee.provideWidgets)\r\n return [];\r\n\r\n const abstractLocations = toAbstractStagePanelLocation(location);\r\n const abstractSections = section === undefined ? [undefined] as const : toAbstractStagePanelSection(section);\r\n const combos: [AbstractStagePanelLocation, AbstractStagePanelSection | undefined][] = [];\r\n abstractLocations.forEach((abstractLocation) => {\r\n abstractSections.forEach((abstractSection) => {\r\n combos.push([abstractLocation, abstractSection]);\r\n });\r\n });\r\n let abstractWidgets = combos.reduce<AbstractWidget[]>((acc, [abstractLocation, abstractSection]) => {\r\n assert(!!this._adaptee.provideWidgets);\r\n const w = this._adaptee.provideWidgets(stageId, stageUsage, abstractLocation, abstractSection);\r\n acc.push(...w);\r\n return acc;\r\n }, []);\r\n abstractWidgets = abstractWidgets.reduce<AbstractWidget[]>((acc, abstractWidget) => {\r\n if (-1 === acc.findIndex((w) => w.id === abstractWidget.id))\r\n acc.push(abstractWidget);\r\n return acc;\r\n }, []);\r\n const widgets = abstractWidgets.map((abstractWidget) => fromAbstractWidget(abstractWidget));\r\n return widgets;\r\n }\r\n\r\n public provideToolbarItems(stageId: string, stageUsage: string, usage: ToolbarUsage, orientation: ToolbarOrientation) {\r\n if (!this._adaptee.provideToolbarButtonItems)\r\n return [];\r\n\r\n const abstractItems = this._adaptee.provideToolbarButtonItems(stageId, stageUsage, usage, orientation);\r\n const items = abstractItems.map((abstractItem) => fromAbstractToolbarItem(abstractItem));\r\n return items;\r\n }\r\n}\r\n\r\nfunction toAbstractBackstageItem(item: BackstageItem): AbstractBackstageItem {\r\n let abstractItem = getOriginalData<AbstractBackstageItem>(item);\r\n if (abstractItem)\r\n return abstractItem;\r\n\r\n const internalData = new Map();\r\n const icon = IconHelper.getIconData(item.icon, internalData);\r\n abstractItem = {\r\n ...item,\r\n badgeType: item.badge,\r\n icon,\r\n internalData,\r\n };\r\n setOriginalData(abstractItem, item);\r\n return abstractItem;\r\n}\r\n\r\nfunction toAbstractStatusBarItem(item: StatusBarItem): AbstractStatusBarItem {\r\n let abstractItem = getOriginalData<AbstractStatusBarItem>(item);\r\n if (abstractItem)\r\n return abstractItem;\r\n\r\n if (isStatusBarCustomItem(item)) {\r\n abstractItem = {\r\n ...item,\r\n badgeType: item.badge,\r\n isCustom: true,\r\n reactNode: item.content,\r\n } as AbstractStatusBarItem;\r\n } else {\r\n const internalData = new Map();\r\n const icon = IconHelper.getIconData(item.icon, internalData);\r\n abstractItem = {\r\n ...item,\r\n badgeType: item.badge,\r\n icon,\r\n internalData,\r\n };\r\n }\r\n setOriginalData(abstractItem, item);\r\n return abstractItem;\r\n}\r\n\r\nfunction toAbstractToolbarItem(item: ToolbarItem): AbstractToolbarItem {\r\n let abstractItem = getOriginalData<AbstractToolbarItem>(item);\r\n if (abstractItem)\r\n return abstractItem;\r\n\r\n const internalData = new Map();\r\n const icon = IconHelper.getIconData(item.icon, internalData);\r\n if (isToolbarActionItem(item)) {\r\n abstractItem = {\r\n ...item,\r\n badgeType: item.badge,\r\n icon,\r\n internalData,\r\n parentToolGroupId: item.parentGroupItemId,\r\n };\r\n } else if (isToolbarGroupItem(item)) {\r\n abstractItem = {\r\n ...item,\r\n badgeType: item.badge,\r\n icon,\r\n internalData,\r\n parentToolGroupId: item.parentGroupItemId,\r\n items: item.items.map((i) => toAbstractToolbarItem(i)) as any,\r\n };\r\n } else {\r\n abstractItem = {\r\n ...item,\r\n badgeType: item.badge,\r\n isCustom: true,\r\n icon,\r\n internalData,\r\n };\r\n }\r\n setOriginalData(abstractItem, item);\r\n return abstractItem;\r\n}\r\n\r\nfunction toAbstractWidget(widget: Widget): AbstractWidget {\r\n let abstractWidget = getOriginalData<AbstractWidget>(widget);\r\n if (abstractWidget)\r\n return abstractWidget;\r\n\r\n const allowedPanelTargets = widget.allowedPanels\r\n // @ts-ignore Possibly 'any'\r\n ?.map((location) => {\r\n const map = {\r\n [StagePanelLocation.Top]: \"top\" as const,\r\n [StagePanelLocation.Left]: \"left\" as const,\r\n [StagePanelLocation.Right]: \"right\" as const,\r\n [StagePanelLocation.Bottom]: \"bottom\" as const,\r\n };\r\n // @ts-ignore Possibly 'any'\r\n return map[location];\r\n });\r\n const internalData = new Map();\r\n const icon = IconHelper.getIconData(widget.icon, internalData);\r\n abstractWidget = {\r\n ...widget,\r\n id: widget.id ?? \"\",\r\n getWidgetContent: () => widget.content,\r\n allowedPanelTargets,\r\n badgeType: widget.badge,\r\n defaultFloatingPosition: typeof widget.canFloat === \"object\" ? widget.canFloat.defaultPosition : undefined,\r\n defaultFloatingSize: typeof widget.canFloat === \"object\" ? widget.canFloat.defaultSize : undefined,\r\n floatingContainerId: typeof widget.canFloat === \"object\" ? widget.canFloat.containerId : undefined,\r\n hideWithUiWhenFloating: typeof widget.canFloat === \"object\" ? widget.canFloat.hideWithUi : undefined,\r\n isFloatingStateSupported: !!widget.canFloat,\r\n isFloatingStateWindowResizable: typeof widget.canFloat === \"object\" ? widget.canFloat.isResizable : undefined,\r\n icon,\r\n internalData,\r\n };\r\n setOriginalData(abstractWidget, widget);\r\n return abstractWidget;\r\n}\r\n\r\nfunction fromAbstractBackstageItem(abstractItem: AbstractBackstageItem): BackstageItem {\r\n let item = getOriginalData<BackstageItem>(abstractItem);\r\n if (item)\r\n return item;\r\n\r\n const icon = fromAbstractIcon(abstractItem.icon, abstractItem.internalData);\r\n item = {\r\n ...abstractItem,\r\n badge: abstractItem.badgeType,\r\n icon,\r\n };\r\n setOriginalData(item, abstractItem);\r\n return item;\r\n}\r\n\r\nfunction fromAbstractStatusBarItem(abstractItem: AbstractStatusBarItem): StatusBarItem {\r\n let item = getOriginalData<StatusBarItem>(abstractItem);\r\n if (item)\r\n return item;\r\n\r\n if (isAbstractStatusBarCustomItem(abstractItem)) {\r\n const content: React.ReactNode | undefined = (abstractItem as any).reactNode;\r\n return {\r\n ...abstractItem,\r\n badge: abstractItem.badgeType,\r\n content,\r\n };\r\n } else {\r\n const icon = fromAbstractIcon(abstractItem.icon, abstractItem.internalData);\r\n item = {\r\n ...abstractItem,\r\n badge: abstractItem.badgeType,\r\n icon,\r\n };\r\n }\r\n assert(!!item);\r\n setOriginalData(item, abstractItem);\r\n return item;\r\n}\r\n\r\nfunction fromAbstractToolbarItem(abstractItem: AbstractToolbarItem): ToolbarItem {\r\n let item = getOriginalData<ToolbarItem>(abstractItem);\r\n if (item)\r\n return item;\r\n\r\n const icon = fromAbstractIcon(abstractItem.icon, abstractItem.internalData);\r\n if (AbstractToolbarItemUtilities.isCustomDefinition(abstractItem)) {\r\n item = {\r\n ...abstractItem,\r\n badge: abstractItem.badgeType,\r\n icon,\r\n };\r\n } else {\r\n item = {\r\n ...abstractItem,\r\n badge: abstractItem.badgeType,\r\n parentGroupItemId: abstractItem.parentToolGroupId,\r\n icon,\r\n };\r\n }\r\n setOriginalData(item, abstractItem);\r\n return item;\r\n}\r\n\r\nfunction fromAbstractWidget(abstractWidget: AbstractWidget): Widget {\r\n let widget = getOriginalData<Widget>(abstractWidget);\r\n if (widget)\r\n return widget;\r\n\r\n const allowedPanels = abstractWidget.allowedPanelTargets\r\n // @ts-ignore Possibly 'any'\r\n ?.map((target) => {\r\n const map = {\r\n top: StagePanelLocation.Top,\r\n left: StagePanelLocation.Left,\r\n right: StagePanelLocation.Right,\r\n bottom: StagePanelLocation.Bottom,\r\n };\r\n // @ts-ignore Possibly 'any'\r\n return map[target];\r\n });\r\n const icon = fromAbstractIcon(abstractWidget.icon, abstractWidget.internalData);\r\n widget = {\r\n ...abstractWidget,\r\n id: abstractWidget.id ?? \"\",\r\n content: abstractWidget.getWidgetContent(),\r\n allowedPanels,\r\n badge: abstractWidget.badgeType,\r\n canFloat: abstractWidget.isFloatingStateSupported && {\r\n containerId: abstractWidget.floatingContainerId,\r\n defaultPosition: abstractWidget.defaultFloatingPosition,\r\n defaultSize: abstractWidget.defaultFloatingSize,\r\n hideWithUi: abstractWidget.hideWithUiWhenFloating,\r\n isResizable: abstractWidget.isFloatingStateWindowResizable,\r\n },\r\n icon,\r\n };\r\n setOriginalData(widget, abstractWidget);\r\n return widget;\r\n}\r\n\r\nfunction fromAbstractStagePanelLocation(location: AbstractStagePanelLocation): StagePanelLocation {\r\n switch (location) {\r\n case AbstractStagePanelLocation.Left:\r\n return StagePanelLocation.Left;\r\n case AbstractStagePanelLocation.Top:\r\n return StagePanelLocation.Top;\r\n case AbstractStagePanelLocation.TopMost:\r\n return StagePanelLocation.Top;\r\n case AbstractStagePanelLocation.Bottom:\r\n return StagePanelLocation.Bottom;\r\n case AbstractStagePanelLocation.BottomMost:\r\n return StagePanelLocation.Bottom;\r\n }\r\n return StagePanelLocation.Right;\r\n}\r\n\r\nfunction toAbstractStagePanelLocation(location: StagePanelLocation): AbstractStagePanelLocation[] {\r\n switch (location) {\r\n case StagePanelLocation.Left:\r\n return [AbstractStagePanelLocation.Left];\r\n case StagePanelLocation.Top:\r\n return [AbstractStagePanelLocation.Top, AbstractStagePanelLocation.TopMost];\r\n case StagePanelLocation.Bottom:\r\n return [AbstractStagePanelLocation.Bottom, AbstractStagePanelLocation.BottomMost];\r\n }\r\n return [AbstractStagePanelLocation.Right];\r\n}\r\n\r\nfunction fromAbstractStagePanelSection(section: AbstractStagePanelSection): StagePanelSection {\r\n switch (section) {\r\n case AbstractStagePanelSection.End:\r\n return StagePanelSection.End;\r\n }\r\n return StagePanelSection.Start;\r\n}\r\n\r\nfunction toAbstractStagePanelSection(section: StagePanelSection): AbstractStagePanelSection[] {\r\n switch (section) {\r\n case StagePanelSection.End:\r\n return [AbstractStagePanelSection.End];\r\n }\r\n return [AbstractStagePanelSection.Start, AbstractStagePanelSection.Middle];\r\n}\r\n\r\nfunction fromAbstractIcon(icon: string | abstract.ConditionalStringValue | undefined, internalData: Map<string, any> | undefined): IconSpec {\r\n if (!icon)\r\n return undefined;\r\n const iconString = abstract.ConditionalStringValue.getValue(icon);\r\n if (!iconString)\r\n return undefined;\r\n if (iconString === IconHelper.reactIconKey && internalData)\r\n return internalData.get(IconHelper.reactIconKey) as React.ReactNode;\r\n return iconString;\r\n}\r\n\r\nfunction getOriginalData<TData>(obj: Object): TData | undefined {\r\n const originalData = (obj as any)[originalDataSymbol];\r\n if (!originalData)\r\n return undefined;\r\n return originalData;\r\n}\r\n\r\nfunction setOriginalData<TData>(obj: Object, data: TData) {\r\n (obj as any)[originalDataSymbol] = data;\r\n}\r\n"]}
@@ -38,11 +38,13 @@ export type UiItemsProviderOverrides = MarkRequired<AllowedUiItemsProviderOverri
38
38
  */
39
39
  export declare class UiItemsManager {
40
40
  private static _registeredUiItemsProviders;
41
+ private static _onUiProviderRegisteredEvent;
42
+ private static _abstractAdapter;
41
43
  /** For use in unit testing
42
44
  * @internal */
43
45
  static clearAllProviders(): void;
44
46
  /** Event raised any time a UiProvider is registered or unregistered. */
45
- static readonly onUiProviderRegisteredEvent: BeUiEvent<UiItemsProviderRegisteredEventArgs>;
47
+ static get onUiProviderRegisteredEvent(): BeUiEvent<UiItemsProviderRegisteredEventArgs>;
46
48
  /** Return number of registered UiProvider. */
47
49
  static get registeredProviderIds(): string[];
48
50
  /** Return true if there is any registered UiProvider. */
@@ -65,11 +67,11 @@ export declare class UiItemsManager {
65
67
  * an action or specify a registered ToolId into toolbar.
66
68
  * @param stageId a string identifier the active stage.
67
69
  * @param stageUsage the StageUsage of the active stage.
68
- * @param toolbarUsage usage of the toolbar
69
- * @param toolbarOrientation orientation of the toolbar
70
+ * @param usage usage of the toolbar
71
+ * @param orientation orientation of the toolbar
70
72
  * @returns an array of error messages. The array will be empty if the load is successful, otherwise it is a list of one or more problems.
71
73
  */
72
- static getToolbarButtonItems(stageId: string, stageUsage: string, toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation): ReadonlyArray<ProviderItem<ToolbarItem>>;
74
+ static getToolbarButtonItems(stageId: string, stageUsage: string, usage: ToolbarUsage, orientation: ToolbarOrientation): ReadonlyArray<ProviderItem<ToolbarItem>>;
73
75
  /** Called when the application is populating the statusbar so that any registered UiItemsProvider can add status fields
74
76
  * @param stageId a string identifier the active stage.
75
77
  * @param stageUsage the StageUsage of the active stage.
@@ -1 +1 @@
1
- {"version":3,"file":"UiItemsManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/UiItemsManager.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAU,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEvF,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,kCAAkC;IACjD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C,uJAAuJ;IACvJ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4GAA4G;IAC5G,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,yGAAyG;IACzG,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAClC,YAAY,CAAC,+BAA+B,EAAE,YAAY,GAAG,aAAa,CAAC,GAC3E,YAAY,CAAC,+BAA+B,EAAE,YAAY,GAAG,UAAU,CAAC,GACxE,YAAY,CAAC,+BAA+B,EAAE,UAAU,CAAC,GACzD,YAAY,CAAC,+BAA+B,EAAE,aAAa,CAAC,GAC5D,YAAY,CAAC,+BAA+B,EAAE,YAAY,GAAG,aAAa,GAAG,UAAU,CAAC,CAAC;AAQ3F;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,2BAA2B,CAA4E;IAEtH;mBACe;WACD,iBAAiB;IAI/B,wEAAwE;IACxE,gBAAuB,2BAA2B,gDAAuD;IAEzG,8CAA8C;IAC9C,WAAkB,qBAAqB,aAGtC;IAED,yDAAyD;IACzD,WAAkB,sBAAsB,IAAI,OAAO,CAElD;IAED;;;OAGG;WACW,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAIjF,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAIlC;;;OAGG;WACW,QAAQ,CAAC,UAAU,EAAE,eAAe,EAAE,SAAS,CAAC,EAAE,wBAAwB,GAAG,IAAI;IAa/F,8EAA8E;WAChE,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAclD,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAUrC;;;;;;;OAOG;WACW,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,GAAG,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IAoBtL;;;;OAIG;WACW,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAqBhH;;OAEG;WACW,iBAAiB,IAAI,aAAa,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAqB7E;;;;;;OAMG;WACW,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;CAqB9J"}
1
+ {"version":3,"file":"UiItemsManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/UiItemsManager.ts"],"names":[],"mappings":"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"}