@itwin/appui-abstract 3.6.0-dev.7 → 4.0.0-dev.2

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 (318) hide show
  1. package/CHANGELOG.md +1 -65
  2. package/lib/cjs/appui-abstract/BaseUiItemsProvider.d.ts +30 -30
  3. package/lib/cjs/appui-abstract/BaseUiItemsProvider.d.ts.map +1 -1
  4. package/lib/cjs/appui-abstract/BaseUiItemsProvider.js +78 -79
  5. package/lib/cjs/appui-abstract/BaseUiItemsProvider.js.map +1 -1
  6. package/lib/cjs/appui-abstract/UiAdmin.d.ts +221 -221
  7. package/lib/cjs/appui-abstract/UiAdmin.js +224 -224
  8. package/lib/cjs/appui-abstract/UiAdmin.js.map +1 -1
  9. package/lib/cjs/appui-abstract/UiItemsManager.d.ts +110 -110
  10. package/lib/cjs/appui-abstract/UiItemsManager.d.ts.map +1 -1
  11. package/lib/cjs/appui-abstract/UiItemsManager.js +198 -199
  12. package/lib/cjs/appui-abstract/UiItemsManager.js.map +1 -1
  13. package/lib/cjs/appui-abstract/UiItemsProvider.d.ts +27 -27
  14. package/lib/cjs/appui-abstract/UiItemsProvider.d.ts.map +1 -1
  15. package/lib/cjs/appui-abstract/UiItemsProvider.js +9 -10
  16. package/lib/cjs/appui-abstract/UiItemsProvider.js.map +1 -1
  17. package/lib/cjs/appui-abstract/backstage/BackstageItem.d.ts +83 -83
  18. package/lib/cjs/appui-abstract/backstage/BackstageItem.js +64 -64
  19. package/lib/cjs/appui-abstract/backstage/BackstageItem.js.map +1 -1
  20. package/lib/cjs/appui-abstract/backstage/BackstageItemsManager.d.ts +38 -38
  21. package/lib/cjs/appui-abstract/backstage/BackstageItemsManager.js +133 -133
  22. package/lib/cjs/appui-abstract/backstage/BackstageItemsManager.js.map +1 -1
  23. package/lib/cjs/appui-abstract/common/KeyboardKey.d.ts +51 -51
  24. package/lib/cjs/appui-abstract/common/KeyboardKey.js +63 -63
  25. package/lib/cjs/appui-abstract/common/KeyboardKey.js.map +1 -1
  26. package/lib/cjs/appui-abstract/content/ContentLayoutProps.d.ts +62 -62
  27. package/lib/cjs/appui-abstract/content/ContentLayoutProps.js +9 -9
  28. package/lib/cjs/appui-abstract/content/ContentLayoutProps.js.map +1 -1
  29. package/lib/cjs/appui-abstract/content/StandardContentLayouts.d.ts +19 -19
  30. package/lib/cjs/appui-abstract/content/StandardContentLayouts.js +108 -108
  31. package/lib/cjs/appui-abstract/content/StandardContentLayouts.js.map +1 -1
  32. package/lib/cjs/appui-abstract/dialogs/DialogItem.d.ts +76 -76
  33. package/lib/cjs/appui-abstract/dialogs/DialogItem.js +67 -67
  34. package/lib/cjs/appui-abstract/dialogs/DialogItem.js.map +1 -1
  35. package/lib/cjs/appui-abstract/dialogs/UiDataProvider.d.ts +55 -55
  36. package/lib/cjs/appui-abstract/dialogs/UiDataProvider.js +66 -66
  37. package/lib/cjs/appui-abstract/dialogs/UiDataProvider.js.map +1 -1
  38. package/lib/cjs/appui-abstract/dialogs/UiLayoutDataProvider.d.ts +97 -97
  39. package/lib/cjs/appui-abstract/dialogs/UiLayoutDataProvider.js +175 -175
  40. package/lib/cjs/appui-abstract/dialogs/UiLayoutDataProvider.js.map +1 -1
  41. package/lib/cjs/appui-abstract/items/AbstractItemProps.d.ts +53 -53
  42. package/lib/cjs/appui-abstract/items/AbstractItemProps.js +9 -9
  43. package/lib/cjs/appui-abstract/items/AbstractItemProps.js.map +1 -1
  44. package/lib/cjs/appui-abstract/items/AbstractMenuItemProps.d.ts +20 -20
  45. package/lib/cjs/appui-abstract/items/AbstractMenuItemProps.js +9 -9
  46. package/lib/cjs/appui-abstract/items/AbstractMenuItemProps.js.map +1 -1
  47. package/lib/cjs/appui-abstract/items/AbstractToolbarProps.d.ts +13 -13
  48. package/lib/cjs/appui-abstract/items/AbstractToolbarProps.js +9 -9
  49. package/lib/cjs/appui-abstract/items/AbstractToolbarProps.js.map +1 -1
  50. package/lib/cjs/appui-abstract/items/BadgeType.d.ts +14 -14
  51. package/lib/cjs/appui-abstract/items/BadgeType.js +22 -22
  52. package/lib/cjs/appui-abstract/items/BadgeType.js.map +1 -1
  53. package/lib/cjs/appui-abstract/items/ConditionalBooleanValue.d.ts +27 -27
  54. package/lib/cjs/appui-abstract/items/ConditionalBooleanValue.js +60 -60
  55. package/lib/cjs/appui-abstract/items/ConditionalBooleanValue.js.map +1 -1
  56. package/lib/cjs/appui-abstract/items/ConditionalStringValue.d.ts +29 -29
  57. package/lib/cjs/appui-abstract/items/ConditionalStringValue.js +62 -62
  58. package/lib/cjs/appui-abstract/items/ConditionalStringValue.js.map +1 -1
  59. package/lib/cjs/appui-abstract/items/ProvidedItem.d.ts +10 -10
  60. package/lib/cjs/appui-abstract/items/ProvidedItem.js +9 -9
  61. package/lib/cjs/appui-abstract/items/ProvidedItem.js.map +1 -1
  62. package/lib/cjs/appui-abstract/items/RelativePosition.d.ts +18 -18
  63. package/lib/cjs/appui-abstract/items/RelativePosition.js +26 -26
  64. package/lib/cjs/appui-abstract/items/RelativePosition.js.map +1 -1
  65. package/lib/cjs/appui-abstract/items/StageUsage.d.ts +15 -15
  66. package/lib/cjs/appui-abstract/items/StageUsage.js +23 -23
  67. package/lib/cjs/appui-abstract/items/StageUsage.js.map +1 -1
  68. package/lib/cjs/appui-abstract/notification/MessagePresenter.d.ts +42 -42
  69. package/lib/cjs/appui-abstract/notification/MessagePresenter.js +24 -24
  70. package/lib/cjs/appui-abstract/notification/MessagePresenter.js.map +1 -1
  71. package/lib/cjs/appui-abstract/notification/MessageSeverity.d.ts +15 -15
  72. package/lib/cjs/appui-abstract/notification/MessageSeverity.js +23 -23
  73. package/lib/cjs/appui-abstract/notification/MessageSeverity.js.map +1 -1
  74. package/lib/cjs/appui-abstract/properties/Description.d.ts +127 -127
  75. package/lib/cjs/appui-abstract/properties/Description.js +196 -196
  76. package/lib/cjs/appui-abstract/properties/Description.js.map +1 -1
  77. package/lib/cjs/appui-abstract/properties/EditorParams.d.ts +260 -260
  78. package/lib/cjs/appui-abstract/properties/EditorParams.js +106 -106
  79. package/lib/cjs/appui-abstract/properties/EditorParams.js.map +1 -1
  80. package/lib/cjs/appui-abstract/properties/PrimitiveTypes.d.ts +60 -60
  81. package/lib/cjs/appui-abstract/properties/PrimitiveTypes.js +9 -9
  82. package/lib/cjs/appui-abstract/properties/PrimitiveTypes.js.map +1 -1
  83. package/lib/cjs/appui-abstract/properties/Record.d.ts +57 -57
  84. package/lib/cjs/appui-abstract/properties/Record.js +78 -78
  85. package/lib/cjs/appui-abstract/properties/Record.js.map +1 -1
  86. package/lib/cjs/appui-abstract/properties/StandardEditorNames.d.ts +22 -22
  87. package/lib/cjs/appui-abstract/properties/StandardEditorNames.js +30 -30
  88. package/lib/cjs/appui-abstract/properties/StandardEditorNames.js.map +1 -1
  89. package/lib/cjs/appui-abstract/properties/StandardTypeNames.d.ts +30 -30
  90. package/lib/cjs/appui-abstract/properties/StandardTypeNames.js +39 -39
  91. package/lib/cjs/appui-abstract/properties/StandardTypeNames.js.map +1 -1
  92. package/lib/cjs/appui-abstract/properties/Value.d.ts +49 -49
  93. package/lib/cjs/appui-abstract/properties/Value.js +20 -20
  94. package/lib/cjs/appui-abstract/properties/Value.js.map +1 -1
  95. package/lib/cjs/appui-abstract/quantity/BaseQuantityDescription.d.ts +22 -22
  96. package/lib/cjs/appui-abstract/quantity/BaseQuantityDescription.js +48 -48
  97. package/lib/cjs/appui-abstract/quantity/BaseQuantityDescription.js.map +1 -1
  98. package/lib/cjs/appui-abstract/statusbar/StatusBarItem.d.ts +116 -116
  99. package/lib/cjs/appui-abstract/statusbar/StatusBarItem.js +81 -81
  100. package/lib/cjs/appui-abstract/statusbar/StatusBarItem.js.map +1 -1
  101. package/lib/cjs/appui-abstract/statusbar/StatusBarItemsManager.d.ts +39 -39
  102. package/lib/cjs/appui-abstract/statusbar/StatusBarItemsManager.js +135 -135
  103. package/lib/cjs/appui-abstract/statusbar/StatusBarItemsManager.js.map +1 -1
  104. package/lib/cjs/appui-abstract/toolbars/ToolbarItem.d.ts +118 -118
  105. package/lib/cjs/appui-abstract/toolbars/ToolbarItem.js +62 -62
  106. package/lib/cjs/appui-abstract/toolbars/ToolbarItem.js.map +1 -1
  107. package/lib/cjs/appui-abstract/toolbars/ToolbarItemsManager.d.ts +45 -45
  108. package/lib/cjs/appui-abstract/toolbars/ToolbarItemsManager.js +235 -235
  109. package/lib/cjs/appui-abstract/toolbars/ToolbarItemsManager.js.map +1 -1
  110. package/lib/cjs/appui-abstract/utils/IconSpecUtilities.d.ts +29 -29
  111. package/lib/cjs/appui-abstract/utils/IconSpecUtilities.js +51 -51
  112. package/lib/cjs/appui-abstract/utils/IconSpecUtilities.js.map +1 -1
  113. package/lib/cjs/appui-abstract/utils/PointProps.d.ts +10 -10
  114. package/lib/cjs/appui-abstract/utils/PointProps.js +9 -9
  115. package/lib/cjs/appui-abstract/utils/PointProps.js.map +1 -1
  116. package/lib/cjs/appui-abstract/utils/UiError.d.ts +12 -12
  117. package/lib/cjs/appui-abstract/utils/UiError.js +22 -22
  118. package/lib/cjs/appui-abstract/utils/UiError.js.map +1 -1
  119. package/lib/cjs/appui-abstract/utils/UiEvent.d.ts +9 -9
  120. package/lib/cjs/appui-abstract/utils/UiEvent.js +17 -17
  121. package/lib/cjs/appui-abstract/utils/UiEvent.js.map +1 -1
  122. package/lib/cjs/appui-abstract/utils/UiEventDispatcher.d.ts +46 -46
  123. package/lib/cjs/appui-abstract/utils/UiEventDispatcher.js +131 -131
  124. package/lib/cjs/appui-abstract/utils/UiEventDispatcher.js.map +1 -1
  125. package/lib/cjs/appui-abstract/utils/callbacks.d.ts +20 -20
  126. package/lib/cjs/appui-abstract/utils/callbacks.js +9 -9
  127. package/lib/cjs/appui-abstract/utils/callbacks.js.map +1 -1
  128. package/lib/cjs/appui-abstract/utils/filter/charCode.d.ts +416 -416
  129. package/lib/cjs/appui-abstract/utils/filter/charCode.js +6 -6
  130. package/lib/cjs/appui-abstract/utils/filter/charCode.js.map +1 -1
  131. package/lib/cjs/appui-abstract/utils/filter/filters.d.ts +98 -98
  132. package/lib/cjs/appui-abstract/utils/filter/filters.js +709 -709
  133. package/lib/cjs/appui-abstract/utils/filter/filters.js.map +1 -1
  134. package/lib/cjs/appui-abstract/utils/filter/map.d.ts +59 -59
  135. package/lib/cjs/appui-abstract/utils/filter/map.js +404 -404
  136. package/lib/cjs/appui-abstract/utils/filter/map.js.map +1 -1
  137. package/lib/cjs/appui-abstract/utils/filter/strings.d.ts +20 -20
  138. package/lib/cjs/appui-abstract/utils/filter/strings.js +78 -78
  139. package/lib/cjs/appui-abstract/utils/filter/strings.js.map +1 -1
  140. package/lib/cjs/appui-abstract/utils/isLetter.d.ts +9 -9
  141. package/lib/cjs/appui-abstract/utils/isLetter.js +19 -19
  142. package/lib/cjs/appui-abstract/utils/isLetter.js.map +1 -1
  143. package/lib/cjs/appui-abstract/utils/misc.d.ts +11 -11
  144. package/lib/cjs/appui-abstract/utils/misc.js +36 -36
  145. package/lib/cjs/appui-abstract/utils/misc.js.map +1 -1
  146. package/lib/cjs/appui-abstract/widget/AbstractWidgetProps.d.ts +68 -83
  147. package/lib/cjs/appui-abstract/widget/AbstractWidgetProps.d.ts.map +1 -1
  148. package/lib/cjs/appui-abstract/widget/AbstractWidgetProps.js +9 -9
  149. package/lib/cjs/appui-abstract/widget/AbstractWidgetProps.js.map +1 -1
  150. package/lib/cjs/appui-abstract/widget/StagePanel.d.ts +19 -32
  151. package/lib/cjs/appui-abstract/widget/StagePanel.d.ts.map +1 -1
  152. package/lib/cjs/appui-abstract/widget/StagePanel.js +28 -42
  153. package/lib/cjs/appui-abstract/widget/StagePanel.js.map +1 -1
  154. package/lib/cjs/appui-abstract/widget/WidgetState.d.ts +18 -18
  155. package/lib/cjs/appui-abstract/widget/WidgetState.js +26 -26
  156. package/lib/cjs/appui-abstract/widget/WidgetState.js.map +1 -1
  157. package/lib/cjs/appui-abstract.d.ts +105 -105
  158. package/lib/cjs/appui-abstract.js +121 -121
  159. package/lib/cjs/appui-abstract.js.map +1 -1
  160. package/lib/esm/appui-abstract/BaseUiItemsProvider.d.ts +30 -30
  161. package/lib/esm/appui-abstract/BaseUiItemsProvider.d.ts.map +1 -1
  162. package/lib/esm/appui-abstract/BaseUiItemsProvider.js +74 -75
  163. package/lib/esm/appui-abstract/BaseUiItemsProvider.js.map +1 -1
  164. package/lib/esm/appui-abstract/UiAdmin.d.ts +221 -221
  165. package/lib/esm/appui-abstract/UiAdmin.js +219 -219
  166. package/lib/esm/appui-abstract/UiAdmin.js.map +1 -1
  167. package/lib/esm/appui-abstract/UiItemsManager.d.ts +110 -110
  168. package/lib/esm/appui-abstract/UiItemsManager.d.ts.map +1 -1
  169. package/lib/esm/appui-abstract/UiItemsManager.js +194 -195
  170. package/lib/esm/appui-abstract/UiItemsManager.js.map +1 -1
  171. package/lib/esm/appui-abstract/UiItemsProvider.d.ts +27 -27
  172. package/lib/esm/appui-abstract/UiItemsProvider.d.ts.map +1 -1
  173. package/lib/esm/appui-abstract/UiItemsProvider.js +8 -9
  174. package/lib/esm/appui-abstract/UiItemsProvider.js.map +1 -1
  175. package/lib/esm/appui-abstract/backstage/BackstageItem.d.ts +83 -83
  176. package/lib/esm/appui-abstract/backstage/BackstageItem.js +58 -58
  177. package/lib/esm/appui-abstract/backstage/BackstageItem.js.map +1 -1
  178. package/lib/esm/appui-abstract/backstage/BackstageItemsManager.d.ts +38 -38
  179. package/lib/esm/appui-abstract/backstage/BackstageItemsManager.js +129 -129
  180. package/lib/esm/appui-abstract/backstage/BackstageItemsManager.js.map +1 -1
  181. package/lib/esm/appui-abstract/common/KeyboardKey.d.ts +51 -51
  182. package/lib/esm/appui-abstract/common/KeyboardKey.js +59 -59
  183. package/lib/esm/appui-abstract/common/KeyboardKey.js.map +1 -1
  184. package/lib/esm/appui-abstract/content/ContentLayoutProps.d.ts +62 -62
  185. package/lib/esm/appui-abstract/content/ContentLayoutProps.js +8 -8
  186. package/lib/esm/appui-abstract/content/ContentLayoutProps.js.map +1 -1
  187. package/lib/esm/appui-abstract/content/StandardContentLayouts.d.ts +19 -19
  188. package/lib/esm/appui-abstract/content/StandardContentLayouts.js +104 -104
  189. package/lib/esm/appui-abstract/content/StandardContentLayouts.js.map +1 -1
  190. package/lib/esm/appui-abstract/dialogs/DialogItem.d.ts +76 -76
  191. package/lib/esm/appui-abstract/dialogs/DialogItem.js +63 -63
  192. package/lib/esm/appui-abstract/dialogs/DialogItem.js.map +1 -1
  193. package/lib/esm/appui-abstract/dialogs/UiDataProvider.d.ts +55 -55
  194. package/lib/esm/appui-abstract/dialogs/UiDataProvider.js +61 -61
  195. package/lib/esm/appui-abstract/dialogs/UiDataProvider.js.map +1 -1
  196. package/lib/esm/appui-abstract/dialogs/UiLayoutDataProvider.d.ts +97 -97
  197. package/lib/esm/appui-abstract/dialogs/UiLayoutDataProvider.js +170 -170
  198. package/lib/esm/appui-abstract/dialogs/UiLayoutDataProvider.js.map +1 -1
  199. package/lib/esm/appui-abstract/items/AbstractItemProps.d.ts +53 -53
  200. package/lib/esm/appui-abstract/items/AbstractItemProps.js +8 -8
  201. package/lib/esm/appui-abstract/items/AbstractItemProps.js.map +1 -1
  202. package/lib/esm/appui-abstract/items/AbstractMenuItemProps.d.ts +20 -20
  203. package/lib/esm/appui-abstract/items/AbstractMenuItemProps.js +8 -8
  204. package/lib/esm/appui-abstract/items/AbstractMenuItemProps.js.map +1 -1
  205. package/lib/esm/appui-abstract/items/AbstractToolbarProps.d.ts +13 -13
  206. package/lib/esm/appui-abstract/items/AbstractToolbarProps.js +8 -8
  207. package/lib/esm/appui-abstract/items/AbstractToolbarProps.js.map +1 -1
  208. package/lib/esm/appui-abstract/items/BadgeType.d.ts +14 -14
  209. package/lib/esm/appui-abstract/items/BadgeType.js +19 -19
  210. package/lib/esm/appui-abstract/items/BadgeType.js.map +1 -1
  211. package/lib/esm/appui-abstract/items/ConditionalBooleanValue.d.ts +27 -27
  212. package/lib/esm/appui-abstract/items/ConditionalBooleanValue.js +56 -56
  213. package/lib/esm/appui-abstract/items/ConditionalBooleanValue.js.map +1 -1
  214. package/lib/esm/appui-abstract/items/ConditionalStringValue.d.ts +29 -29
  215. package/lib/esm/appui-abstract/items/ConditionalStringValue.js +58 -58
  216. package/lib/esm/appui-abstract/items/ConditionalStringValue.js.map +1 -1
  217. package/lib/esm/appui-abstract/items/ProvidedItem.d.ts +10 -10
  218. package/lib/esm/appui-abstract/items/ProvidedItem.js +8 -8
  219. package/lib/esm/appui-abstract/items/ProvidedItem.js.map +1 -1
  220. package/lib/esm/appui-abstract/items/RelativePosition.d.ts +18 -18
  221. package/lib/esm/appui-abstract/items/RelativePosition.js +23 -23
  222. package/lib/esm/appui-abstract/items/RelativePosition.js.map +1 -1
  223. package/lib/esm/appui-abstract/items/StageUsage.d.ts +15 -15
  224. package/lib/esm/appui-abstract/items/StageUsage.js +20 -20
  225. package/lib/esm/appui-abstract/items/StageUsage.js.map +1 -1
  226. package/lib/esm/appui-abstract/notification/MessagePresenter.d.ts +42 -42
  227. package/lib/esm/appui-abstract/notification/MessagePresenter.js +21 -21
  228. package/lib/esm/appui-abstract/notification/MessagePresenter.js.map +1 -1
  229. package/lib/esm/appui-abstract/notification/MessageSeverity.d.ts +15 -15
  230. package/lib/esm/appui-abstract/notification/MessageSeverity.js +20 -20
  231. package/lib/esm/appui-abstract/notification/MessageSeverity.js.map +1 -1
  232. package/lib/esm/appui-abstract/properties/Description.d.ts +127 -127
  233. package/lib/esm/appui-abstract/properties/Description.js +192 -192
  234. package/lib/esm/appui-abstract/properties/Description.js.map +1 -1
  235. package/lib/esm/appui-abstract/properties/EditorParams.d.ts +260 -260
  236. package/lib/esm/appui-abstract/properties/EditorParams.js +97 -97
  237. package/lib/esm/appui-abstract/properties/EditorParams.js.map +1 -1
  238. package/lib/esm/appui-abstract/properties/PrimitiveTypes.d.ts +60 -60
  239. package/lib/esm/appui-abstract/properties/PrimitiveTypes.js +8 -8
  240. package/lib/esm/appui-abstract/properties/PrimitiveTypes.js.map +1 -1
  241. package/lib/esm/appui-abstract/properties/Record.d.ts +57 -57
  242. package/lib/esm/appui-abstract/properties/Record.js +74 -74
  243. package/lib/esm/appui-abstract/properties/Record.js.map +1 -1
  244. package/lib/esm/appui-abstract/properties/StandardEditorNames.d.ts +22 -22
  245. package/lib/esm/appui-abstract/properties/StandardEditorNames.js +27 -27
  246. package/lib/esm/appui-abstract/properties/StandardEditorNames.js.map +1 -1
  247. package/lib/esm/appui-abstract/properties/StandardTypeNames.d.ts +30 -30
  248. package/lib/esm/appui-abstract/properties/StandardTypeNames.js +36 -36
  249. package/lib/esm/appui-abstract/properties/StandardTypeNames.js.map +1 -1
  250. package/lib/esm/appui-abstract/properties/Value.d.ts +49 -49
  251. package/lib/esm/appui-abstract/properties/Value.js +17 -17
  252. package/lib/esm/appui-abstract/properties/Value.js.map +1 -1
  253. package/lib/esm/appui-abstract/quantity/BaseQuantityDescription.d.ts +22 -22
  254. package/lib/esm/appui-abstract/quantity/BaseQuantityDescription.js +44 -44
  255. package/lib/esm/appui-abstract/quantity/BaseQuantityDescription.js.map +1 -1
  256. package/lib/esm/appui-abstract/statusbar/StatusBarItem.d.ts +116 -116
  257. package/lib/esm/appui-abstract/statusbar/StatusBarItem.js +74 -74
  258. package/lib/esm/appui-abstract/statusbar/StatusBarItem.js.map +1 -1
  259. package/lib/esm/appui-abstract/statusbar/StatusBarItemsManager.d.ts +39 -39
  260. package/lib/esm/appui-abstract/statusbar/StatusBarItemsManager.js +131 -131
  261. package/lib/esm/appui-abstract/statusbar/StatusBarItemsManager.js.map +1 -1
  262. package/lib/esm/appui-abstract/toolbars/ToolbarItem.d.ts +118 -118
  263. package/lib/esm/appui-abstract/toolbars/ToolbarItem.js +58 -58
  264. package/lib/esm/appui-abstract/toolbars/ToolbarItem.js.map +1 -1
  265. package/lib/esm/appui-abstract/toolbars/ToolbarItemsManager.d.ts +45 -45
  266. package/lib/esm/appui-abstract/toolbars/ToolbarItemsManager.js +231 -231
  267. package/lib/esm/appui-abstract/toolbars/ToolbarItemsManager.js.map +1 -1
  268. package/lib/esm/appui-abstract/utils/IconSpecUtilities.d.ts +29 -29
  269. package/lib/esm/appui-abstract/utils/IconSpecUtilities.js +47 -47
  270. package/lib/esm/appui-abstract/utils/IconSpecUtilities.js.map +1 -1
  271. package/lib/esm/appui-abstract/utils/PointProps.d.ts +10 -10
  272. package/lib/esm/appui-abstract/utils/PointProps.js +8 -8
  273. package/lib/esm/appui-abstract/utils/PointProps.js.map +1 -1
  274. package/lib/esm/appui-abstract/utils/UiError.d.ts +12 -12
  275. package/lib/esm/appui-abstract/utils/UiError.js +18 -18
  276. package/lib/esm/appui-abstract/utils/UiError.js.map +1 -1
  277. package/lib/esm/appui-abstract/utils/UiEvent.d.ts +9 -9
  278. package/lib/esm/appui-abstract/utils/UiEvent.js +13 -13
  279. package/lib/esm/appui-abstract/utils/UiEvent.js.map +1 -1
  280. package/lib/esm/appui-abstract/utils/UiEventDispatcher.d.ts +46 -46
  281. package/lib/esm/appui-abstract/utils/UiEventDispatcher.js +126 -126
  282. package/lib/esm/appui-abstract/utils/UiEventDispatcher.js.map +1 -1
  283. package/lib/esm/appui-abstract/utils/callbacks.d.ts +20 -20
  284. package/lib/esm/appui-abstract/utils/callbacks.js +8 -8
  285. package/lib/esm/appui-abstract/utils/callbacks.js.map +1 -1
  286. package/lib/esm/appui-abstract/utils/filter/charCode.d.ts +416 -416
  287. package/lib/esm/appui-abstract/utils/filter/charCode.js +5 -5
  288. package/lib/esm/appui-abstract/utils/filter/charCode.js.map +1 -1
  289. package/lib/esm/appui-abstract/utils/filter/filters.d.ts +98 -98
  290. package/lib/esm/appui-abstract/utils/filter/filters.js +694 -694
  291. package/lib/esm/appui-abstract/utils/filter/filters.js.map +1 -1
  292. package/lib/esm/appui-abstract/utils/filter/map.d.ts +59 -59
  293. package/lib/esm/appui-abstract/utils/filter/map.js +399 -399
  294. package/lib/esm/appui-abstract/utils/filter/map.js.map +1 -1
  295. package/lib/esm/appui-abstract/utils/filter/strings.d.ts +20 -20
  296. package/lib/esm/appui-abstract/utils/filter/strings.js +70 -70
  297. package/lib/esm/appui-abstract/utils/filter/strings.js.map +1 -1
  298. package/lib/esm/appui-abstract/utils/isLetter.d.ts +9 -9
  299. package/lib/esm/appui-abstract/utils/isLetter.js +15 -15
  300. package/lib/esm/appui-abstract/utils/isLetter.js.map +1 -1
  301. package/lib/esm/appui-abstract/utils/misc.d.ts +11 -11
  302. package/lib/esm/appui-abstract/utils/misc.js +31 -31
  303. package/lib/esm/appui-abstract/utils/misc.js.map +1 -1
  304. package/lib/esm/appui-abstract/widget/AbstractWidgetProps.d.ts +68 -83
  305. package/lib/esm/appui-abstract/widget/AbstractWidgetProps.d.ts.map +1 -1
  306. package/lib/esm/appui-abstract/widget/AbstractWidgetProps.js +8 -8
  307. package/lib/esm/appui-abstract/widget/AbstractWidgetProps.js.map +1 -1
  308. package/lib/esm/appui-abstract/widget/StagePanel.d.ts +19 -32
  309. package/lib/esm/appui-abstract/widget/StagePanel.d.ts.map +1 -1
  310. package/lib/esm/appui-abstract/widget/StagePanel.js +25 -39
  311. package/lib/esm/appui-abstract/widget/StagePanel.js.map +1 -1
  312. package/lib/esm/appui-abstract/widget/WidgetState.d.ts +18 -18
  313. package/lib/esm/appui-abstract/widget/WidgetState.js +23 -23
  314. package/lib/esm/appui-abstract/widget/WidgetState.js.map +1 -1
  315. package/lib/esm/appui-abstract.d.ts +105 -105
  316. package/lib/esm/appui-abstract.js +109 -109
  317. package/lib/esm/appui-abstract.js.map +1 -1
  318. package/package.json +6 -6
@@ -1,196 +1,195 @@
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
- /* eslint-disable deprecation/deprecation */
6
- /** @packageDocumentation
7
- * @module UiItemsProvider
8
- */
9
- import { BeEvent, Logger } from "@itwin/core-bentley";
10
- import { loggerCategory } from "./utils/misc";
11
- /** Action taken by the application on item provided by a UiItemsProvider
12
- * @public @deprecated this was only used by the previously removed UiItemsArbiter.
13
- */
14
- export var UiItemsApplicationAction;
15
- (function (UiItemsApplicationAction) {
16
- /** Allow the change to the item */
17
- UiItemsApplicationAction[UiItemsApplicationAction["Allow"] = 0] = "Allow";
18
- /** Disallow the change to the item */
19
- UiItemsApplicationAction[UiItemsApplicationAction["Disallow"] = 1] = "Disallow";
20
- /** Update the item during the change */
21
- UiItemsApplicationAction[UiItemsApplicationAction["Update"] = 2] = "Update";
22
- })(UiItemsApplicationAction || (UiItemsApplicationAction = {}));
23
- /**
24
- * Controls registering of UiItemsProviders and calls the provider's methods when populating different parts of the User Interface.
25
- * @public
26
- */
27
- export class UiItemsManager {
28
- /** For use in unit testing
29
- * @internal */
30
- static clearAllProviders() {
31
- UiItemsManager._registeredUiItemsProviders.clear();
32
- }
33
- /** Return number of registered UiProvider. */
34
- static get registeredProviderIds() {
35
- const ids = [...UiItemsManager._registeredUiItemsProviders.keys()];
36
- return ids;
37
- }
38
- /** Return true if there is any registered UiProvider. */
39
- static get hasRegisteredProviders() {
40
- return this._registeredUiItemsProviders.size > 0;
41
- }
42
- /**
43
- * Retrieves a previously loaded UiItemsProvider.
44
- * @param providerId id of the UiItemsProvider to get
45
- */
46
- static getUiItemsProvider(providerId) {
47
- var _a;
48
- return (_a = UiItemsManager._registeredUiItemsProviders.get(providerId)) === null || _a === void 0 ? void 0 : _a.provider;
49
- }
50
- static sendRegisteredEvent(ev) {
51
- UiItemsManager.onUiProviderRegisteredEvent.raiseEvent(ev);
52
- }
53
- /**
54
- * Registers a UiItemsProvider with the UiItemsManager.
55
- * @param uiProvider the UI items provider to register.
56
- */
57
- static register(uiProvider, overrides) {
58
- var _a;
59
- const providerId = (_a = overrides === null || overrides === void 0 ? void 0 : overrides.providerId) !== null && _a !== void 0 ? _a : uiProvider.id;
60
- if (UiItemsManager.getUiItemsProvider(providerId)) {
61
- Logger.logInfo(loggerCategory(this), `UiItemsProvider (${providerId}) is already loaded`);
62
- }
63
- else {
64
- UiItemsManager._registeredUiItemsProviders.set(providerId, { provider: uiProvider, overrides });
65
- Logger.logInfo(loggerCategory(this), `UiItemsProvider ${uiProvider.id} registered as ${providerId} `);
66
- UiItemsManager.sendRegisteredEvent({ providerId });
67
- }
68
- }
69
- /** Remove a specific UiItemsProvider from the list of available providers. */
70
- static unregister(uiProviderId) {
71
- const provider = UiItemsManager.getUiItemsProvider(uiProviderId);
72
- if (!provider)
73
- return;
74
- provider.onUnregister && provider.onUnregister();
75
- UiItemsManager._registeredUiItemsProviders.delete(uiProviderId);
76
- Logger.logInfo(loggerCategory(this), `UiItemsProvider (${uiProviderId}) unloaded`);
77
- // trigger a refresh of the ui
78
- UiItemsManager.sendRegisteredEvent({ providerId: uiProviderId });
79
- }
80
- static allowItemsFromProvider(entry, stageId, stageUsage) {
81
- // istanbul ignore else
82
- const overrides = entry.overrides;
83
- if (undefined !== stageId && (overrides === null || overrides === void 0 ? void 0 : overrides.stageIds) && !(overrides.stageIds.some((value) => value === stageId)))
84
- return false;
85
- if (undefined !== stageUsage && (overrides === null || overrides === void 0 ? void 0 : overrides.stageUsages) && !(overrides.stageUsages.some((value) => value === stageUsage)))
86
- return false;
87
- return true;
88
- }
89
- /** Called when the application is populating a toolbar so that any registered UiItemsProvider can add tool buttons that either either execute
90
- * an action or specify a registered ToolId into toolbar.
91
- * @param stageId a string identifier the active stage.
92
- * @param stageUsage the StageUsage of the active stage.
93
- * @param toolbarUsage usage of the toolbar
94
- * @param toolbarOrientation orientation of the toolbar
95
- * @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.
96
- */
97
- static getToolbarButtonItems(stageId, stageUsage, toolbarUsage, toolbarOrientation, stageAppData) {
98
- const buttonItems = [];
99
- if (0 === UiItemsManager._registeredUiItemsProviders.size)
100
- return buttonItems;
101
- UiItemsManager._registeredUiItemsProviders.forEach((entry) => {
102
- var _a, _b;
103
- const uiProvider = entry.provider;
104
- const providerId = (_b = (_a = entry.overrides) === null || _a === void 0 ? void 0 : _a.providerId) !== null && _b !== void 0 ? _b : uiProvider.id;
105
- // istanbul ignore else
106
- if (uiProvider.provideToolbarButtonItems && this.allowItemsFromProvider(entry, stageId, stageUsage)) {
107
- uiProvider.provideToolbarButtonItems(stageId, stageUsage, toolbarUsage, toolbarOrientation, stageAppData)
108
- .forEach((spec) => {
109
- // ignore duplicate ids
110
- if (-1 === buttonItems.findIndex((existingItem) => spec.id === existingItem.id))
111
- buttonItems.push({ ...spec, providerId });
112
- });
113
- }
114
- });
115
- return buttonItems;
116
- }
117
- /** Called when the application is populating the statusbar so that any registered UiItemsProvider can add status fields
118
- * @param stageId a string identifier the active stage.
119
- * @param stageUsage the StageUsage of the active stage.
120
- * @returns An array of CommonStatusBarItem that will be used to create controls for the status bar.
121
- */
122
- static getStatusBarItems(stageId, stageUsage, stageAppData) {
123
- const statusBarItems = [];
124
- if (0 === UiItemsManager._registeredUiItemsProviders.size)
125
- return statusBarItems;
126
- UiItemsManager._registeredUiItemsProviders.forEach((entry) => {
127
- var _a, _b;
128
- const uiProvider = entry.provider;
129
- const providerId = (_b = (_a = entry.overrides) === null || _a === void 0 ? void 0 : _a.providerId) !== null && _b !== void 0 ? _b : uiProvider.id;
130
- // istanbul ignore else
131
- if (uiProvider.provideStatusBarItems && this.allowItemsFromProvider(entry, stageId, stageUsage)) {
132
- uiProvider.provideStatusBarItems(stageId, stageUsage, stageAppData)
133
- .forEach((item) => {
134
- // ignore duplicate ids
135
- if (-1 === statusBarItems.findIndex((existingItem) => item.id === existingItem.id))
136
- statusBarItems.push({ ...item, providerId });
137
- });
138
- }
139
- });
140
- return statusBarItems;
141
- }
142
- /** Called when the application is populating the statusbar so that any registered UiItemsProvider can add status fields
143
- * @returns An array of BackstageItem that will be used to create controls for the backstage menu.
144
- */
145
- static getBackstageItems() {
146
- const backstageItems = [];
147
- if (0 === UiItemsManager._registeredUiItemsProviders.size)
148
- return backstageItems;
149
- UiItemsManager._registeredUiItemsProviders.forEach((entry) => {
150
- var _a, _b;
151
- const uiProvider = entry.provider;
152
- const providerId = (_b = (_a = entry.overrides) === null || _a === void 0 ? void 0 : _a.providerId) !== null && _b !== void 0 ? _b : uiProvider.id;
153
- // istanbul ignore else
154
- if (uiProvider.provideBackstageItems) { // Note: We do not call this.allowItemsFromProvider here as backstage items
155
- uiProvider.provideBackstageItems() // should not be considered stage specific. If they need to be hidden
156
- .forEach((item) => {
157
- // ignore duplicate ids
158
- if (-1 === backstageItems.findIndex((existingItem) => item.id === existingItem.id))
159
- backstageItems.push({ ...item, providerId });
160
- });
161
- }
162
- });
163
- return backstageItems;
164
- }
165
- /** Called when the application is populating the Stage Panels so that any registered UiItemsProvider can add widgets
166
- * @param stageId a string identifier the active stage.
167
- * @param stageUsage the StageUsage of the active stage.
168
- * @param location the location within the stage.
169
- * @param section the section within location.
170
- * @returns An array of AbstractWidgetProps that will be used to create widgets.
171
- */
172
- static getWidgets(stageId, stageUsage, location, section, zoneLocation, stageAppData) {
173
- const widgets = [];
174
- if (0 === UiItemsManager._registeredUiItemsProviders.size)
175
- return widgets;
176
- UiItemsManager._registeredUiItemsProviders.forEach((entry) => {
177
- var _a, _b;
178
- const uiProvider = entry.provider;
179
- const providerId = (_b = (_a = entry.overrides) === null || _a === void 0 ? void 0 : _a.providerId) !== null && _b !== void 0 ? _b : uiProvider.id;
180
- // istanbul ignore else
181
- if (uiProvider.provideWidgets && this.allowItemsFromProvider(entry, stageId, stageUsage)) {
182
- uiProvider.provideWidgets(stageId, stageUsage, location, section, zoneLocation, stageAppData)
183
- .forEach((widget) => {
184
- // ignore duplicate ids
185
- if (-1 === widgets.findIndex((existingItem) => widget.id === existingItem.id))
186
- widgets.push({ ...widget, providerId });
187
- });
188
- }
189
- });
190
- return widgets;
191
- }
192
- }
193
- UiItemsManager._registeredUiItemsProviders = new Map();
194
- /** Event raised any time a UiProvider is registered or unregistered. */
195
- UiItemsManager.onUiProviderRegisteredEvent = new BeEvent();
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 UiItemsProvider
7
+ */
8
+ import { BeEvent, Logger } from "@itwin/core-bentley";
9
+ import { loggerCategory } from "./utils/misc";
10
+ /** Action taken by the application on item provided by a UiItemsProvider
11
+ * @public @deprecated this was only used by the previously removed UiItemsArbiter.
12
+ */
13
+ export var UiItemsApplicationAction;
14
+ (function (UiItemsApplicationAction) {
15
+ /** Allow the change to the item */
16
+ UiItemsApplicationAction[UiItemsApplicationAction["Allow"] = 0] = "Allow";
17
+ /** Disallow the change to the item */
18
+ UiItemsApplicationAction[UiItemsApplicationAction["Disallow"] = 1] = "Disallow";
19
+ /** Update the item during the change */
20
+ UiItemsApplicationAction[UiItemsApplicationAction["Update"] = 2] = "Update";
21
+ })(UiItemsApplicationAction || (UiItemsApplicationAction = {}));
22
+ /**
23
+ * Controls registering of UiItemsProviders and calls the provider's methods when populating different parts of the User Interface.
24
+ * @public
25
+ */
26
+ export class UiItemsManager {
27
+ /** For use in unit testing
28
+ * @internal */
29
+ static clearAllProviders() {
30
+ UiItemsManager._registeredUiItemsProviders.clear();
31
+ }
32
+ /** Return number of registered UiProvider. */
33
+ static get registeredProviderIds() {
34
+ const ids = [...UiItemsManager._registeredUiItemsProviders.keys()];
35
+ return ids;
36
+ }
37
+ /** Return true if there is any registered UiProvider. */
38
+ static get hasRegisteredProviders() {
39
+ return this._registeredUiItemsProviders.size > 0;
40
+ }
41
+ /**
42
+ * Retrieves a previously loaded UiItemsProvider.
43
+ * @param providerId id of the UiItemsProvider to get
44
+ */
45
+ static getUiItemsProvider(providerId) {
46
+ var _a;
47
+ return (_a = UiItemsManager._registeredUiItemsProviders.get(providerId)) === null || _a === void 0 ? void 0 : _a.provider;
48
+ }
49
+ static sendRegisteredEvent(ev) {
50
+ UiItemsManager.onUiProviderRegisteredEvent.raiseEvent(ev);
51
+ }
52
+ /**
53
+ * Registers a UiItemsProvider with the UiItemsManager.
54
+ * @param uiProvider the UI items provider to register.
55
+ */
56
+ static register(uiProvider, overrides) {
57
+ var _a;
58
+ const providerId = (_a = overrides === null || overrides === void 0 ? void 0 : overrides.providerId) !== null && _a !== void 0 ? _a : uiProvider.id;
59
+ if (UiItemsManager.getUiItemsProvider(providerId)) {
60
+ Logger.logInfo(loggerCategory(this), `UiItemsProvider (${providerId}) is already loaded`);
61
+ }
62
+ else {
63
+ UiItemsManager._registeredUiItemsProviders.set(providerId, { provider: uiProvider, overrides });
64
+ Logger.logInfo(loggerCategory(this), `UiItemsProvider ${uiProvider.id} registered as ${providerId} `);
65
+ UiItemsManager.sendRegisteredEvent({ providerId });
66
+ }
67
+ }
68
+ /** Remove a specific UiItemsProvider from the list of available providers. */
69
+ static unregister(uiProviderId) {
70
+ const provider = UiItemsManager.getUiItemsProvider(uiProviderId);
71
+ if (!provider)
72
+ return;
73
+ provider.onUnregister && provider.onUnregister();
74
+ UiItemsManager._registeredUiItemsProviders.delete(uiProviderId);
75
+ Logger.logInfo(loggerCategory(this), `UiItemsProvider (${uiProviderId}) unloaded`);
76
+ // trigger a refresh of the ui
77
+ UiItemsManager.sendRegisteredEvent({ providerId: uiProviderId });
78
+ }
79
+ static allowItemsFromProvider(entry, stageId, stageUsage) {
80
+ // istanbul ignore else
81
+ const overrides = entry.overrides;
82
+ if (undefined !== stageId && (overrides === null || overrides === void 0 ? void 0 : overrides.stageIds) && !(overrides.stageIds.some((value) => value === stageId)))
83
+ return false;
84
+ if (undefined !== stageUsage && (overrides === null || overrides === void 0 ? void 0 : overrides.stageUsages) && !(overrides.stageUsages.some((value) => value === stageUsage)))
85
+ return false;
86
+ return true;
87
+ }
88
+ /** Called when the application is populating a toolbar so that any registered UiItemsProvider can add tool buttons that either either execute
89
+ * an action or specify a registered ToolId into toolbar.
90
+ * @param stageId a string identifier the active stage.
91
+ * @param stageUsage the StageUsage of the active stage.
92
+ * @param toolbarUsage usage of the toolbar
93
+ * @param toolbarOrientation orientation of the toolbar
94
+ * @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.
95
+ */
96
+ static getToolbarButtonItems(stageId, stageUsage, toolbarUsage, toolbarOrientation) {
97
+ const buttonItems = [];
98
+ if (0 === UiItemsManager._registeredUiItemsProviders.size)
99
+ return buttonItems;
100
+ UiItemsManager._registeredUiItemsProviders.forEach((entry) => {
101
+ var _a, _b;
102
+ const uiProvider = entry.provider;
103
+ const providerId = (_b = (_a = entry.overrides) === null || _a === void 0 ? void 0 : _a.providerId) !== null && _b !== void 0 ? _b : uiProvider.id;
104
+ // istanbul ignore else
105
+ if (uiProvider.provideToolbarButtonItems && this.allowItemsFromProvider(entry, stageId, stageUsage)) {
106
+ uiProvider.provideToolbarButtonItems(stageId, stageUsage, toolbarUsage, toolbarOrientation)
107
+ .forEach((spec) => {
108
+ // ignore duplicate ids
109
+ if (-1 === buttonItems.findIndex((existingItem) => spec.id === existingItem.id))
110
+ buttonItems.push({ ...spec, providerId });
111
+ });
112
+ }
113
+ });
114
+ return buttonItems;
115
+ }
116
+ /** Called when the application is populating the statusbar so that any registered UiItemsProvider can add status fields
117
+ * @param stageId a string identifier the active stage.
118
+ * @param stageUsage the StageUsage of the active stage.
119
+ * @returns An array of CommonStatusBarItem that will be used to create controls for the status bar.
120
+ */
121
+ static getStatusBarItems(stageId, stageUsage) {
122
+ const statusBarItems = [];
123
+ if (0 === UiItemsManager._registeredUiItemsProviders.size)
124
+ return statusBarItems;
125
+ UiItemsManager._registeredUiItemsProviders.forEach((entry) => {
126
+ var _a, _b;
127
+ const uiProvider = entry.provider;
128
+ const providerId = (_b = (_a = entry.overrides) === null || _a === void 0 ? void 0 : _a.providerId) !== null && _b !== void 0 ? _b : uiProvider.id;
129
+ // istanbul ignore else
130
+ if (uiProvider.provideStatusBarItems && this.allowItemsFromProvider(entry, stageId, stageUsage)) {
131
+ uiProvider.provideStatusBarItems(stageId, stageUsage)
132
+ .forEach((item) => {
133
+ // ignore duplicate ids
134
+ if (-1 === statusBarItems.findIndex((existingItem) => item.id === existingItem.id))
135
+ statusBarItems.push({ ...item, providerId });
136
+ });
137
+ }
138
+ });
139
+ return statusBarItems;
140
+ }
141
+ /** Called when the application is populating the statusbar so that any registered UiItemsProvider can add status fields
142
+ * @returns An array of BackstageItem that will be used to create controls for the backstage menu.
143
+ */
144
+ static getBackstageItems() {
145
+ const backstageItems = [];
146
+ if (0 === UiItemsManager._registeredUiItemsProviders.size)
147
+ return backstageItems;
148
+ UiItemsManager._registeredUiItemsProviders.forEach((entry) => {
149
+ var _a, _b;
150
+ const uiProvider = entry.provider;
151
+ const providerId = (_b = (_a = entry.overrides) === null || _a === void 0 ? void 0 : _a.providerId) !== null && _b !== void 0 ? _b : uiProvider.id;
152
+ // istanbul ignore else
153
+ if (uiProvider.provideBackstageItems) { // Note: We do not call this.allowItemsFromProvider here as backstage items
154
+ uiProvider.provideBackstageItems() // should not be considered stage specific. If they need to be hidden
155
+ .forEach((item) => {
156
+ // ignore duplicate ids
157
+ if (-1 === backstageItems.findIndex((existingItem) => item.id === existingItem.id))
158
+ backstageItems.push({ ...item, providerId });
159
+ });
160
+ }
161
+ });
162
+ return backstageItems;
163
+ }
164
+ /** Called when the application is populating the Stage Panels so that any registered UiItemsProvider can add widgets
165
+ * @param stageId a string identifier the active stage.
166
+ * @param stageUsage the StageUsage of the active stage.
167
+ * @param location the location within the stage.
168
+ * @param section the section within location.
169
+ * @returns An array of AbstractWidgetProps that will be used to create widgets.
170
+ */
171
+ static getWidgets(stageId, stageUsage, location, section) {
172
+ const widgets = [];
173
+ if (0 === UiItemsManager._registeredUiItemsProviders.size)
174
+ return widgets;
175
+ UiItemsManager._registeredUiItemsProviders.forEach((entry) => {
176
+ var _a, _b;
177
+ const uiProvider = entry.provider;
178
+ const providerId = (_b = (_a = entry.overrides) === null || _a === void 0 ? void 0 : _a.providerId) !== null && _b !== void 0 ? _b : uiProvider.id;
179
+ // istanbul ignore else
180
+ if (uiProvider.provideWidgets && this.allowItemsFromProvider(entry, stageId, stageUsage)) {
181
+ uiProvider.provideWidgets(stageId, stageUsage, location, section)
182
+ .forEach((widget) => {
183
+ // ignore duplicate ids
184
+ if (-1 === widgets.findIndex((existingItem) => widget.id === existingItem.id))
185
+ widgets.push({ ...widget, providerId });
186
+ });
187
+ }
188
+ });
189
+ return widgets;
190
+ }
191
+ }
192
+ UiItemsManager._registeredUiItemsProviders = new Map();
193
+ /** Event raised any time a UiProvider is registered or unregistered. */
194
+ UiItemsManager.onUiProviderRegisteredEvent = new BeEvent();
196
195
  //# sourceMappingURL=UiItemsManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UiItemsManager.js","sourceRoot":"","sources":["../../../src/appui-abstract/UiItemsManager.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/* eslint-disable deprecation/deprecation */\r\n/** @packageDocumentation\r\n * @module UiItemsProvider\r\n */\r\n\r\nimport { BeEvent, Logger, MarkRequired } from \"@itwin/core-bentley\";\r\nimport { BackstageItem } from \"./backstage/BackstageItem\";\r\nimport { CommonStatusBarItem } from \"./statusbar/StatusBarItem\";\r\nimport { CommonToolbarItem, ToolbarOrientation, ToolbarUsage } from \"./toolbars/ToolbarItem\";\r\nimport { AbstractWidgetProps } from \"./widget/AbstractWidgetProps\";\r\nimport { AbstractZoneLocation, StagePanelLocation, StagePanelSection } from \"./widget/StagePanel\";\r\nimport { loggerCategory } from \"./utils/misc\";\r\nimport { UiItemsProvider } from \"./UiItemsProvider\";\r\n\r\n/** Action taken by the application on item provided by a UiItemsProvider\r\n * @public @deprecated this was only used by the previously removed UiItemsArbiter.\r\n */\r\nexport enum UiItemsApplicationAction {\r\n /** Allow the change to the item */\r\n Allow,\r\n /** Disallow the change to the item */\r\n Disallow,\r\n /** Update the item during the change */\r\n Update,\r\n}\r\n\r\n/** UIProvider Registered Event Args interface.\r\n * @public\r\n */\r\nexport interface UiItemProviderRegisteredEventArgs {\r\n providerId: string;\r\n}\r\n\r\n/** UiItemProviderOverrides allows the application that registers a provider to limit when it is allowed to provide items\r\n * @public\r\n */\r\nexport interface AllowedUiItemProviderOverrides {\r\n /** allows providerId to be overridden in the items manager for cases where the same provider needs to provide different content to different stages\r\n * @beta\r\n */\r\n providerId?: string;\r\n /** if specified then the current stage's Usage will be compared before allowing any items to be provided\r\n * @beta\r\n */\r\n stageUsages?: string[];\r\n /** if specified then the current stage's Id will be compared before allowing any items to be provided\r\n * @beta\r\n */\r\n stageIds?: string[];\r\n}\r\n\r\n/** Allowed overrides applied to a UiItemsProvider the application that registers a provider to limit when it is allowed to provide items.\r\n * Note that if an override `providerId` is specified then either `stageIds` or `stageUsages` must be defined to limit when the provider's\r\n * items are allowed.\r\n * @public\r\n */\r\nexport type UiItemProviderOverrides = MarkRequired<AllowedUiItemProviderOverrides, \"providerId\" | \"stageUsages\"> |\r\n MarkRequired<AllowedUiItemProviderOverrides, \"providerId\" | \"stageIds\"> | // eslint-disable-line @typescript-eslint/indent\r\n MarkRequired<AllowedUiItemProviderOverrides, \"stageIds\"> | // eslint-disable-line @typescript-eslint/indent\r\n MarkRequired<AllowedUiItemProviderOverrides, \"stageUsages\"> | // eslint-disable-line @typescript-eslint/indent\r\n MarkRequired<AllowedUiItemProviderOverrides, \"providerId\" | \"stageUsages\" | \"stageIds\">; // eslint-disable-line @typescript-eslint/indent\r\n\r\n/** Interface that defines an instance of a UiItemsProvider and its application specified overrides.\r\n * @beta\r\n */\r\ninterface UiItemProviderEntry {\r\n provider: UiItemsProvider;\r\n overrides?: UiItemProviderOverrides;\r\n}\r\n\r\n/**\r\n * Controls registering of UiItemsProviders and calls the provider's methods when populating different parts of the User Interface.\r\n * @public\r\n */\r\nexport class UiItemsManager {\r\n private static _registeredUiItemsProviders: Map<string, UiItemProviderEntry> = new Map<string, UiItemProviderEntry>();\r\n\r\n /** For use in unit testing\r\n * @internal */\r\n public static clearAllProviders() {\r\n UiItemsManager._registeredUiItemsProviders.clear();\r\n }\r\n\r\n /** Event raised any time a UiProvider is registered or unregistered. */\r\n public static readonly onUiProviderRegisteredEvent = new BeEvent<(ev: UiItemProviderRegisteredEventArgs) => void>();\r\n\r\n /** Return number of registered UiProvider. */\r\n public static get registeredProviderIds() {\r\n const ids = [...UiItemsManager._registeredUiItemsProviders.keys()];\r\n return ids;\r\n }\r\n\r\n /** Return true if there is any registered UiProvider. */\r\n public static get hasRegisteredProviders(): boolean {\r\n return this._registeredUiItemsProviders.size > 0;\r\n }\r\n\r\n /**\r\n * Retrieves a previously loaded UiItemsProvider.\r\n * @param providerId id of the UiItemsProvider to get\r\n */\r\n public static getUiItemsProvider(providerId: string): UiItemsProvider | undefined {\r\n return UiItemsManager._registeredUiItemsProviders.get(providerId)?.provider;\r\n }\r\n\r\n private static sendRegisteredEvent(ev: UiItemProviderRegisteredEventArgs) {\r\n UiItemsManager.onUiProviderRegisteredEvent.raiseEvent(ev);\r\n }\r\n\r\n /**\r\n * Registers a UiItemsProvider with the UiItemsManager.\r\n * @param uiProvider the UI items provider to register.\r\n */\r\n public static register(uiProvider: UiItemsProvider, overrides?: UiItemProviderOverrides): void {\r\n const providerId = overrides?.providerId ?? uiProvider.id;\r\n\r\n if (UiItemsManager.getUiItemsProvider(providerId)) {\r\n Logger.logInfo(loggerCategory(this), `UiItemsProvider (${providerId}) is already loaded`);\r\n } else {\r\n UiItemsManager._registeredUiItemsProviders.set(providerId, { provider: uiProvider, overrides });\r\n Logger.logInfo(loggerCategory(this), `UiItemsProvider ${uiProvider.id} registered as ${providerId} `);\r\n\r\n UiItemsManager.sendRegisteredEvent({ providerId } as UiItemProviderRegisteredEventArgs);\r\n }\r\n }\r\n\r\n /** Remove a specific UiItemsProvider from the list of available providers. */\r\n public static unregister(uiProviderId: string): void {\r\n const provider = UiItemsManager.getUiItemsProvider(uiProviderId);\r\n if (!provider)\r\n return;\r\n\r\n provider.onUnregister && provider.onUnregister();\r\n\r\n UiItemsManager._registeredUiItemsProviders.delete(uiProviderId);\r\n Logger.logInfo(loggerCategory(this), `UiItemsProvider (${uiProviderId}) unloaded`);\r\n\r\n // trigger a refresh of the ui\r\n UiItemsManager.sendRegisteredEvent({ providerId: uiProviderId } as UiItemProviderRegisteredEventArgs);\r\n }\r\n\r\n private static allowItemsFromProvider(entry: UiItemProviderEntry, stageId?: string, stageUsage?: string) {\r\n // istanbul ignore else\r\n const overrides = entry.overrides;\r\n if (undefined !== stageId && overrides?.stageIds && !(overrides.stageIds.some((value: string) => value === stageId)))\r\n return false;\r\n if (undefined !== stageUsage && overrides?.stageUsages && !(overrides.stageUsages.some((value: string) => value === stageUsage)))\r\n return false;\r\n return true;\r\n }\r\n\r\n /** Called when the application is populating a toolbar so that any registered UiItemsProvider can add tool buttons that either either execute\r\n * an action or specify a registered ToolId into toolbar.\r\n * @param stageId a string identifier the active stage.\r\n * @param stageUsage the StageUsage of the active stage.\r\n * @param toolbarUsage usage of the toolbar\r\n * @param toolbarOrientation orientation of the toolbar\r\n * @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.\r\n */\r\n public static getToolbarButtonItems(stageId: string, stageUsage: string, toolbarUsage: ToolbarUsage,\r\n toolbarOrientation: ToolbarOrientation, stageAppData?: any): CommonToolbarItem[] {\r\n const buttonItems: CommonToolbarItem[] = [];\r\n if (0 === UiItemsManager._registeredUiItemsProviders.size)\r\n return buttonItems;\r\n\r\n UiItemsManager._registeredUiItemsProviders.forEach((entry: UiItemProviderEntry) => {\r\n const uiProvider = entry.provider;\r\n const providerId = entry.overrides?.providerId ?? uiProvider.id;\r\n // istanbul ignore else\r\n if (uiProvider.provideToolbarButtonItems && this.allowItemsFromProvider(entry, stageId, stageUsage)) {\r\n uiProvider.provideToolbarButtonItems(stageId, stageUsage, toolbarUsage, toolbarOrientation, stageAppData)\r\n .forEach((spec: CommonToolbarItem) => {\r\n // ignore duplicate ids\r\n if (-1 === buttonItems.findIndex((existingItem)=> spec.id === existingItem.id ))\r\n buttonItems.push({ ...spec, providerId });\r\n });\r\n }\r\n });\r\n\r\n return buttonItems;\r\n }\r\n\r\n /** Called when the application is populating the statusbar so that any registered UiItemsProvider can add status fields\r\n * @param stageId a string identifier the active stage.\r\n * @param stageUsage the StageUsage of the active stage.\r\n * @returns An array of CommonStatusBarItem that will be used to create controls for the status bar.\r\n */\r\n public static getStatusBarItems(stageId: string, stageUsage: string, stageAppData?: any): CommonStatusBarItem[] {\r\n const statusBarItems: CommonStatusBarItem[] = [];\r\n\r\n if (0 === UiItemsManager._registeredUiItemsProviders.size)\r\n return statusBarItems;\r\n\r\n UiItemsManager._registeredUiItemsProviders.forEach((entry: UiItemProviderEntry) => {\r\n const uiProvider = entry.provider;\r\n const providerId = entry.overrides?.providerId ?? uiProvider.id;\r\n\r\n // istanbul ignore else\r\n if (uiProvider.provideStatusBarItems && this.allowItemsFromProvider(entry, stageId, stageUsage)) {\r\n uiProvider.provideStatusBarItems(stageId, stageUsage, stageAppData)\r\n .forEach((item: CommonStatusBarItem) => {\r\n // ignore duplicate ids\r\n if (-1 === statusBarItems.findIndex((existingItem)=> item.id === existingItem.id ))\r\n statusBarItems.push({ ...item, providerId });\r\n });\r\n }\r\n });\r\n\r\n return statusBarItems;\r\n }\r\n\r\n /** Called when the application is populating the statusbar so that any registered UiItemsProvider can add status fields\r\n * @returns An array of BackstageItem that will be used to create controls for the backstage menu.\r\n */\r\n public static getBackstageItems(): BackstageItem[] {\r\n const backstageItems: BackstageItem[] = [];\r\n\r\n if (0 === UiItemsManager._registeredUiItemsProviders.size)\r\n return backstageItems;\r\n\r\n UiItemsManager._registeredUiItemsProviders.forEach((entry: UiItemProviderEntry) => {\r\n const uiProvider = entry.provider;\r\n const providerId = entry.overrides?.providerId ?? uiProvider.id;\r\n\r\n // istanbul ignore else\r\n if (uiProvider.provideBackstageItems) { // Note: We do not call this.allowItemsFromProvider here as backstage items\r\n uiProvider.provideBackstageItems() // should not be considered stage specific. If they need to be hidden\r\n .forEach((item: BackstageItem) => { // the isHidden property should be set to a ConditionalBooleanValue\r\n // ignore duplicate ids\r\n if (-1 === backstageItems.findIndex((existingItem)=> item.id === existingItem.id ))\r\n backstageItems.push({ ...item, providerId });\r\n });\r\n }\r\n });\r\n return backstageItems;\r\n }\r\n\r\n /** Called when the application is populating the Stage Panels so that any registered UiItemsProvider can add widgets\r\n * @param stageId a string identifier the active stage.\r\n * @param stageUsage the StageUsage of the active stage.\r\n * @param location the location within the stage.\r\n * @param section the section within location.\r\n * @returns An array of AbstractWidgetProps that will be used to create widgets.\r\n */\r\n public static getWidgets(stageId: string, stageUsage: string, location: StagePanelLocation, section?: StagePanelSection, zoneLocation?: AbstractZoneLocation, stageAppData?: any): ReadonlyArray<AbstractWidgetProps> {\r\n const widgets: AbstractWidgetProps[] = [];\r\n\r\n if (0 === UiItemsManager._registeredUiItemsProviders.size)\r\n return widgets;\r\n\r\n UiItemsManager._registeredUiItemsProviders.forEach((entry: UiItemProviderEntry) => {\r\n const uiProvider = entry.provider;\r\n const providerId = entry.overrides?.providerId ?? uiProvider.id;\r\n\r\n // istanbul ignore else\r\n if (uiProvider.provideWidgets && this.allowItemsFromProvider(entry, stageId, stageUsage)) {\r\n uiProvider.provideWidgets(stageId, stageUsage, location, section, zoneLocation, stageAppData)\r\n .forEach((widget: AbstractWidgetProps) => {\r\n // ignore duplicate ids\r\n if (-1 === widgets.findIndex((existingItem)=> widget.id === existingItem.id ))\r\n widgets.push({ ...widget, providerId });\r\n });\r\n }\r\n });\r\n return widgets;\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"UiItemsManager.js","sourceRoot":"","sources":["../../../src/appui-abstract/UiItemsManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module UiItemsProvider\n */\n\nimport { BeEvent, Logger, MarkRequired } from \"@itwin/core-bentley\";\nimport { BackstageItem } from \"./backstage/BackstageItem\";\nimport { CommonStatusBarItem } from \"./statusbar/StatusBarItem\";\nimport { CommonToolbarItem, ToolbarOrientation, ToolbarUsage } from \"./toolbars/ToolbarItem\";\nimport { AbstractWidgetProps } from \"./widget/AbstractWidgetProps\";\nimport { StagePanelLocation, StagePanelSection } from \"./widget/StagePanel\";\nimport { loggerCategory } from \"./utils/misc\";\nimport { UiItemsProvider } from \"./UiItemsProvider\";\n\n/** Action taken by the application on item provided by a UiItemsProvider\n * @public @deprecated this was only used by the previously removed UiItemsArbiter.\n */\nexport enum UiItemsApplicationAction {\n /** Allow the change to the item */\n Allow,\n /** Disallow the change to the item */\n Disallow,\n /** Update the item during the change */\n Update,\n}\n\n/** UIProvider Registered Event Args interface.\n * @public\n */\nexport interface UiItemProviderRegisteredEventArgs {\n providerId: string;\n}\n\n/** UiItemProviderOverrides allows the application that registers a provider to limit when it is allowed to provide items\n * @public\n */\nexport interface AllowedUiItemProviderOverrides {\n /** allows providerId to be overridden in the items manager for cases where the same provider needs to provide different content to different stages\n * @beta\n */\n providerId?: string;\n /** if specified then the current stage's Usage will be compared before allowing any items to be provided\n * @beta\n */\n stageUsages?: string[];\n /** if specified then the current stage's Id will be compared before allowing any items to be provided\n * @beta\n */\n stageIds?: string[];\n}\n\n/** Allowed overrides applied to a UiItemsProvider the application that registers a provider to limit when it is allowed to provide items.\n * Note that if an override `providerId` is specified then either `stageIds` or `stageUsages` must be defined to limit when the provider's\n * items are allowed.\n * @public\n */\nexport type UiItemProviderOverrides = MarkRequired<AllowedUiItemProviderOverrides, \"providerId\" | \"stageUsages\"> |\n MarkRequired<AllowedUiItemProviderOverrides, \"providerId\" | \"stageIds\"> | // eslint-disable-line @typescript-eslint/indent\n MarkRequired<AllowedUiItemProviderOverrides, \"stageIds\"> | // eslint-disable-line @typescript-eslint/indent\n MarkRequired<AllowedUiItemProviderOverrides, \"stageUsages\"> | // eslint-disable-line @typescript-eslint/indent\n MarkRequired<AllowedUiItemProviderOverrides, \"providerId\" | \"stageUsages\" | \"stageIds\">; // eslint-disable-line @typescript-eslint/indent\n\n/** Interface that defines an instance of a UiItemsProvider and its application specified overrides.\n * @beta\n */\ninterface UiItemProviderEntry {\n provider: UiItemsProvider;\n overrides?: UiItemProviderOverrides;\n}\n\n/**\n * Controls registering of UiItemsProviders and calls the provider's methods when populating different parts of the User Interface.\n * @public\n */\nexport class UiItemsManager {\n private static _registeredUiItemsProviders: Map<string, UiItemProviderEntry> = new Map<string, UiItemProviderEntry>();\n\n /** For use in unit testing\n * @internal */\n public static clearAllProviders() {\n UiItemsManager._registeredUiItemsProviders.clear();\n }\n\n /** Event raised any time a UiProvider is registered or unregistered. */\n public static readonly onUiProviderRegisteredEvent = new BeEvent<(ev: UiItemProviderRegisteredEventArgs) => void>();\n\n /** Return number of registered UiProvider. */\n public static get registeredProviderIds() {\n const ids = [...UiItemsManager._registeredUiItemsProviders.keys()];\n return ids;\n }\n\n /** Return true if there is any registered UiProvider. */\n public static get hasRegisteredProviders(): boolean {\n return this._registeredUiItemsProviders.size > 0;\n }\n\n /**\n * Retrieves a previously loaded UiItemsProvider.\n * @param providerId id of the UiItemsProvider to get\n */\n public static getUiItemsProvider(providerId: string): UiItemsProvider | undefined {\n return UiItemsManager._registeredUiItemsProviders.get(providerId)?.provider;\n }\n\n private static sendRegisteredEvent(ev: UiItemProviderRegisteredEventArgs) {\n UiItemsManager.onUiProviderRegisteredEvent.raiseEvent(ev);\n }\n\n /**\n * Registers a UiItemsProvider with the UiItemsManager.\n * @param uiProvider the UI items provider to register.\n */\n public static register(uiProvider: UiItemsProvider, overrides?: UiItemProviderOverrides): void {\n const providerId = overrides?.providerId ?? uiProvider.id;\n\n if (UiItemsManager.getUiItemsProvider(providerId)) {\n Logger.logInfo(loggerCategory(this), `UiItemsProvider (${providerId}) is already loaded`);\n } else {\n UiItemsManager._registeredUiItemsProviders.set(providerId, { provider: uiProvider, overrides });\n Logger.logInfo(loggerCategory(this), `UiItemsProvider ${uiProvider.id} registered as ${providerId} `);\n\n UiItemsManager.sendRegisteredEvent({ providerId } as UiItemProviderRegisteredEventArgs);\n }\n }\n\n /** Remove a specific UiItemsProvider from the list of available providers. */\n public static unregister(uiProviderId: string): void {\n const provider = UiItemsManager.getUiItemsProvider(uiProviderId);\n if (!provider)\n return;\n\n provider.onUnregister && provider.onUnregister();\n\n UiItemsManager._registeredUiItemsProviders.delete(uiProviderId);\n Logger.logInfo(loggerCategory(this), `UiItemsProvider (${uiProviderId}) unloaded`);\n\n // trigger a refresh of the ui\n UiItemsManager.sendRegisteredEvent({ providerId: uiProviderId } as UiItemProviderRegisteredEventArgs);\n }\n\n private static allowItemsFromProvider(entry: UiItemProviderEntry, stageId?: string, stageUsage?: string) {\n // istanbul ignore else\n const overrides = entry.overrides;\n if (undefined !== stageId && overrides?.stageIds && !(overrides.stageIds.some((value: string) => value === stageId)))\n return false;\n if (undefined !== stageUsage && overrides?.stageUsages && !(overrides.stageUsages.some((value: string) => value === stageUsage)))\n return false;\n return true;\n }\n\n /** Called when the application is populating a toolbar so that any registered UiItemsProvider can add tool buttons that either either execute\n * an action or specify a registered ToolId into toolbar.\n * @param stageId a string identifier the active stage.\n * @param stageUsage the StageUsage of the active stage.\n * @param toolbarUsage usage of the toolbar\n * @param toolbarOrientation orientation of the toolbar\n * @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.\n */\n public static getToolbarButtonItems(stageId: string, stageUsage: string, toolbarUsage: ToolbarUsage,\n toolbarOrientation: ToolbarOrientation): CommonToolbarItem[] {\n const buttonItems: CommonToolbarItem[] = [];\n if (0 === UiItemsManager._registeredUiItemsProviders.size)\n return buttonItems;\n\n UiItemsManager._registeredUiItemsProviders.forEach((entry: UiItemProviderEntry) => {\n const uiProvider = entry.provider;\n const providerId = entry.overrides?.providerId ?? uiProvider.id;\n // istanbul ignore else\n if (uiProvider.provideToolbarButtonItems && this.allowItemsFromProvider(entry, stageId, stageUsage)) {\n uiProvider.provideToolbarButtonItems(stageId, stageUsage, toolbarUsage, toolbarOrientation)\n .forEach((spec: CommonToolbarItem) => {\n // ignore duplicate ids\n if (-1 === buttonItems.findIndex((existingItem) => spec.id === existingItem.id))\n buttonItems.push({ ...spec, providerId });\n });\n }\n });\n\n return buttonItems;\n }\n\n /** Called when the application is populating the statusbar so that any registered UiItemsProvider can add status fields\n * @param stageId a string identifier the active stage.\n * @param stageUsage the StageUsage of the active stage.\n * @returns An array of CommonStatusBarItem that will be used to create controls for the status bar.\n */\n public static getStatusBarItems(stageId: string, stageUsage: string): CommonStatusBarItem[] {\n const statusBarItems: CommonStatusBarItem[] = [];\n\n if (0 === UiItemsManager._registeredUiItemsProviders.size)\n return statusBarItems;\n\n UiItemsManager._registeredUiItemsProviders.forEach((entry: UiItemProviderEntry) => {\n const uiProvider = entry.provider;\n const providerId = entry.overrides?.providerId ?? uiProvider.id;\n\n // istanbul ignore else\n if (uiProvider.provideStatusBarItems && this.allowItemsFromProvider(entry, stageId, stageUsage)) {\n uiProvider.provideStatusBarItems(stageId, stageUsage)\n .forEach((item: CommonStatusBarItem) => {\n // ignore duplicate ids\n if (-1 === statusBarItems.findIndex((existingItem) => item.id === existingItem.id))\n statusBarItems.push({ ...item, providerId });\n });\n }\n });\n\n return statusBarItems;\n }\n\n /** Called when the application is populating the statusbar so that any registered UiItemsProvider can add status fields\n * @returns An array of BackstageItem that will be used to create controls for the backstage menu.\n */\n public static getBackstageItems(): BackstageItem[] {\n const backstageItems: BackstageItem[] = [];\n\n if (0 === UiItemsManager._registeredUiItemsProviders.size)\n return backstageItems;\n\n UiItemsManager._registeredUiItemsProviders.forEach((entry: UiItemProviderEntry) => {\n const uiProvider = entry.provider;\n const providerId = entry.overrides?.providerId ?? uiProvider.id;\n\n // istanbul ignore else\n if (uiProvider.provideBackstageItems) { // Note: We do not call this.allowItemsFromProvider here as backstage items\n uiProvider.provideBackstageItems() // should not be considered stage specific. If they need to be hidden\n .forEach((item: BackstageItem) => { // the isHidden property should be set to a ConditionalBooleanValue\n // ignore duplicate ids\n if (-1 === backstageItems.findIndex((existingItem) => item.id === existingItem.id))\n backstageItems.push({ ...item, providerId });\n });\n }\n });\n return backstageItems;\n }\n\n /** Called when the application is populating the Stage Panels so that any registered UiItemsProvider can add widgets\n * @param stageId a string identifier the active stage.\n * @param stageUsage the StageUsage of the active stage.\n * @param location the location within the stage.\n * @param section the section within location.\n * @returns An array of AbstractWidgetProps that will be used to create widgets.\n */\n public static getWidgets(stageId: string, stageUsage: string, location: StagePanelLocation, section?: StagePanelSection): ReadonlyArray<AbstractWidgetProps> {\n const widgets: AbstractWidgetProps[] = [];\n\n if (0 === UiItemsManager._registeredUiItemsProviders.size)\n return widgets;\n\n UiItemsManager._registeredUiItemsProviders.forEach((entry: UiItemProviderEntry) => {\n const uiProvider = entry.provider;\n const providerId = entry.overrides?.providerId ?? uiProvider.id;\n\n // istanbul ignore else\n if (uiProvider.provideWidgets && this.allowItemsFromProvider(entry, stageId, stageUsage)) {\n uiProvider.provideWidgets(stageId, stageUsage, location, section)\n .forEach((widget: AbstractWidgetProps) => {\n // ignore duplicate ids\n if (-1 === widgets.findIndex((existingItem) => widget.id === existingItem.id))\n widgets.push({ ...widget, providerId });\n });\n }\n });\n return widgets;\n }\n\n}\n"]}
@@ -1,28 +1,28 @@
1
- /** @packageDocumentation
2
- * @module UiItemsProvider
3
- */
4
- import { BackstageItem } from "./backstage/BackstageItem";
5
- import { CommonStatusBarItem } from "./statusbar/StatusBarItem";
6
- import { CommonToolbarItem, ToolbarOrientation, ToolbarUsage } from "./toolbars/ToolbarItem";
7
- import { AbstractWidgetProps } from "./widget/AbstractWidgetProps";
8
- import { AbstractZoneLocation, StagePanelLocation, StagePanelSection } from "./widget/StagePanel";
9
- /** Describes interface of objects that want to provide UI component to the running IModelApp.
10
- * @public
11
- */
12
- export interface UiItemsProvider {
13
- /** id of provider */
14
- readonly id: string;
15
- /** UiItemsManager calls following method to get items to populate specific toolbars */
16
- provideToolbarButtonItems?: (stageId: string, stageUsage: string, toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation, stageAppData?: any) => CommonToolbarItem[];
17
- /** UiItemsManager calls following method to augment base statusbar for stages that allow it. */
18
- provideStatusBarItems?: (stageId: string, stageUsage: string, stageAppData?: any) => CommonStatusBarItem[];
19
- /** UiItemsManager calls following method to augment backstage items. */
20
- provideBackstageItems?: () => BackstageItem[];
21
- /** UiItemsManager calls following method to augment Widget lists.
22
- * @note Returned widgets must provide unique `AbstractWidgetProps["id"]` to correctly save/restore App layout.
23
- */
24
- provideWidgets?: (stageId: string, stageUsage: string, location: StagePanelLocation, section?: StagePanelSection, zoneLocation?: AbstractZoneLocation, stageAppData?: any) => ReadonlyArray<AbstractWidgetProps>;
25
- /** Function called when the provider is unregistered via `ItemsManager.unregister` to allow provider to do cleanup. */
26
- onUnregister?: () => void;
27
- }
1
+ /** @packageDocumentation
2
+ * @module UiItemsProvider
3
+ */
4
+ import { BackstageItem } from "./backstage/BackstageItem";
5
+ import { CommonStatusBarItem } from "./statusbar/StatusBarItem";
6
+ import { CommonToolbarItem, ToolbarOrientation, ToolbarUsage } from "./toolbars/ToolbarItem";
7
+ import { AbstractWidgetProps } from "./widget/AbstractWidgetProps";
8
+ import { StagePanelLocation, StagePanelSection } from "./widget/StagePanel";
9
+ /** Describes interface of objects that want to provide UI component to the running IModelApp.
10
+ * @public
11
+ */
12
+ export interface UiItemsProvider {
13
+ /** id of provider */
14
+ readonly id: string;
15
+ /** UiItemsManager calls following method to get items to populate specific toolbars */
16
+ provideToolbarButtonItems?: (stageId: string, stageUsage: string, toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation) => CommonToolbarItem[];
17
+ /** UiItemsManager calls following method to augment base statusbar for stages that allow it. */
18
+ provideStatusBarItems?: (stageId: string, stageUsage: string) => CommonStatusBarItem[];
19
+ /** UiItemsManager calls following method to augment backstage items. */
20
+ provideBackstageItems?: () => BackstageItem[];
21
+ /** UiItemsManager calls following method to augment Widget lists.
22
+ * @note Returned widgets must provide unique `AbstractWidgetProps["id"]` to correctly save/restore App layout.
23
+ */
24
+ provideWidgets?: (stageId: string, stageUsage: string, location: StagePanelLocation, section?: StagePanelSection) => ReadonlyArray<AbstractWidgetProps>;
25
+ /** Function called when the provider is unregistered via `ItemsManager.unregister` to allow provider to do cleanup. */
26
+ onUnregister?: () => void;
27
+ }
28
28
  //# sourceMappingURL=UiItemsProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UiItemsProvider.d.ts","sourceRoot":"","sources":["../../../src/appui-abstract/UiItemsProvider.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAElG;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,qBAAqB;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,uFAAuF;IACvF,yBAAyB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,YAAY,CAAC,EAAE,GAAG,KAAK,iBAAiB,EAAE,CAAC;IACjL,gGAAgG;IAChG,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,KAAK,mBAAmB,EAAE,CAAC;IAC3G,wEAAwE;IACxE,qBAAqB,CAAC,EAAE,MAAM,aAAa,EAAE,CAAC;IAC9C;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,iBAAiB,EAC9G,YAAY,CAAC,EAAE,oBAAoB,EAAE,YAAY,CAAC,EAAE,GAAG,KAAK,aAAa,CAAC,mBAAmB,CAAC,CAAC;IACjG,uHAAuH;IACvH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B"}
1
+ {"version":3,"file":"UiItemsProvider.d.ts","sourceRoot":"","sources":["../../../src/appui-abstract/UiItemsProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,qBAAqB;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,uFAAuF;IACvF,yBAAyB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,KAAK,iBAAiB,EAAE,CAAC;IAC7J,gGAAgG;IAChG,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,mBAAmB,EAAE,CAAC;IACvF,wEAAwE;IACxE,qBAAqB,CAAC,EAAE,MAAM,aAAa,EAAE,CAAC;IAC9C;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,iBAAiB,KAAK,aAAa,CAAC,mBAAmB,CAAC,CAAC;IACxJ,uHAAuH;IACvH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B"}
@@ -1,10 +1,9 @@
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
- /* eslint-disable deprecation/deprecation */
6
- /** @packageDocumentation
7
- * @module UiItemsProvider
8
- */
9
- export {};
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 UiItemsProvider
7
+ */
8
+ export {};
10
9
  //# sourceMappingURL=UiItemsProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UiItemsProvider.js","sourceRoot":"","sources":["../../../src/appui-abstract/UiItemsProvider.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F,4CAA4C;AAC5C;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable deprecation/deprecation */\r\n/** @packageDocumentation\r\n * @module UiItemsProvider\r\n */\r\n\r\nimport { BackstageItem } from \"./backstage/BackstageItem\";\r\nimport { CommonStatusBarItem } from \"./statusbar/StatusBarItem\";\r\nimport { CommonToolbarItem, ToolbarOrientation, ToolbarUsage } from \"./toolbars/ToolbarItem\";\r\nimport { AbstractWidgetProps } from \"./widget/AbstractWidgetProps\";\r\nimport { AbstractZoneLocation, StagePanelLocation, StagePanelSection } from \"./widget/StagePanel\";\r\n\r\n/** Describes interface of objects that want to provide UI component to the running IModelApp.\r\n * @public\r\n */\r\nexport interface UiItemsProvider {\r\n /** id of provider */\r\n readonly id: string;\r\n\r\n /** UiItemsManager calls following method to get items to populate specific toolbars */\r\n provideToolbarButtonItems?: (stageId: string, stageUsage: string, toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation, stageAppData?: any) => CommonToolbarItem[];\r\n /** UiItemsManager calls following method to augment base statusbar for stages that allow it. */\r\n provideStatusBarItems?: (stageId: string, stageUsage: string, stageAppData?: any) => CommonStatusBarItem[];\r\n /** UiItemsManager calls following method to augment backstage items. */\r\n provideBackstageItems?: () => BackstageItem[];\r\n /** UiItemsManager calls following method to augment Widget lists.\r\n * @note Returned widgets must provide unique `AbstractWidgetProps[\"id\"]` to correctly save/restore App layout.\r\n */\r\n provideWidgets?: (stageId: string, stageUsage: string, location: StagePanelLocation, section?: StagePanelSection,\r\n zoneLocation?: AbstractZoneLocation, stageAppData?: any) => ReadonlyArray<AbstractWidgetProps>;\r\n /** Function called when the provider is unregistered via `ItemsManager.unregister` to allow provider to do cleanup. */\r\n onUnregister?: () => void;\r\n}\r\n"]}
1
+ {"version":3,"file":"UiItemsProvider.js","sourceRoot":"","sources":["../../../src/appui-abstract/UiItemsProvider.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module UiItemsProvider\n */\n\nimport { BackstageItem } from \"./backstage/BackstageItem\";\nimport { CommonStatusBarItem } from \"./statusbar/StatusBarItem\";\nimport { CommonToolbarItem, ToolbarOrientation, ToolbarUsage } from \"./toolbars/ToolbarItem\";\nimport { AbstractWidgetProps } from \"./widget/AbstractWidgetProps\";\nimport { StagePanelLocation, StagePanelSection } from \"./widget/StagePanel\";\n\n/** Describes interface of objects that want to provide UI component to the running IModelApp.\n * @public\n */\nexport interface UiItemsProvider {\n /** id of provider */\n readonly id: string;\n\n /** UiItemsManager calls following method to get items to populate specific toolbars */\n provideToolbarButtonItems?: (stageId: string, stageUsage: string, toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation) => CommonToolbarItem[];\n /** UiItemsManager calls following method to augment base statusbar for stages that allow it. */\n provideStatusBarItems?: (stageId: string, stageUsage: string) => CommonStatusBarItem[];\n /** UiItemsManager calls following method to augment backstage items. */\n provideBackstageItems?: () => BackstageItem[];\n /** UiItemsManager calls following method to augment Widget lists.\n * @note Returned widgets must provide unique `AbstractWidgetProps[\"id\"]` to correctly save/restore App layout.\n */\n provideWidgets?: (stageId: string, stageUsage: string, location: StagePanelLocation, section?: StagePanelSection) => ReadonlyArray<AbstractWidgetProps>;\n /** Function called when the provider is unregistered via `ItemsManager.unregister` to allow provider to do cleanup. */\n onUnregister?: () => void;\n}\n"]}