@itwin/frontend-devtools 4.0.0-dev.10 → 4.0.0-dev.101

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 (398) hide show
  1. package/CHANGELOG.md +51 -1
  2. package/README.md +1 -1
  3. package/lib/cjs/ClipboardUtilities.d.ts +8 -8
  4. package/lib/cjs/ClipboardUtilities.js +26 -26
  5. package/lib/cjs/ClipboardUtilities.js.map +1 -1
  6. package/lib/cjs/FrontEndDevTools.d.ts +19 -19
  7. package/lib/cjs/FrontEndDevTools.js +221 -221
  8. package/lib/cjs/FrontEndDevTools.js.map +1 -1
  9. package/lib/cjs/effects/Convolution.d.ts +68 -68
  10. package/lib/cjs/effects/Convolution.js +165 -165
  11. package/lib/cjs/effects/Convolution.js.map +1 -1
  12. package/lib/cjs/effects/EffectTools.d.ts +33 -33
  13. package/lib/cjs/effects/EffectTools.js +67 -68
  14. package/lib/cjs/effects/EffectTools.js.map +1 -1
  15. package/lib/cjs/effects/Explosion.d.ts +12 -12
  16. package/lib/cjs/effects/Explosion.js +168 -168
  17. package/lib/cjs/effects/Explosion.js.map +1 -1
  18. package/lib/cjs/effects/FlipImage.d.ts +30 -30
  19. package/lib/cjs/effects/FlipImage.js +99 -99
  20. package/lib/cjs/effects/FlipImage.js.map +1 -1
  21. package/lib/cjs/effects/LensDistortion.d.ts +34 -34
  22. package/lib/cjs/effects/LensDistortion.js +109 -109
  23. package/lib/cjs/effects/LensDistortion.js.map +1 -1
  24. package/lib/cjs/effects/Random.d.ts +24 -24
  25. package/lib/cjs/effects/Random.js +49 -49
  26. package/lib/cjs/effects/Random.js.map +1 -1
  27. package/lib/cjs/effects/Saturation.d.ts +30 -30
  28. package/lib/cjs/effects/Saturation.js +85 -85
  29. package/lib/cjs/effects/Saturation.js.map +1 -1
  30. package/lib/cjs/effects/Snow.d.ts +76 -76
  31. package/lib/cjs/effects/Snow.js +187 -187
  32. package/lib/cjs/effects/Snow.js.map +1 -1
  33. package/lib/cjs/effects/Vignette.d.ts +39 -39
  34. package/lib/cjs/effects/Vignette.js +108 -108
  35. package/lib/cjs/effects/Vignette.js.map +1 -1
  36. package/lib/cjs/frontend-devtools.d.ts +82 -82
  37. package/lib/cjs/frontend-devtools.js +102 -98
  38. package/lib/cjs/frontend-devtools.js.map +1 -1
  39. package/lib/cjs/tools/AnimationIntervalTool.d.ts +15 -15
  40. package/lib/cjs/tools/AnimationIntervalTool.js +30 -30
  41. package/lib/cjs/tools/AnimationIntervalTool.js.map +1 -1
  42. package/lib/cjs/tools/ChangeUnitsTool.d.ts +15 -15
  43. package/lib/cjs/tools/ChangeUnitsTool.js +41 -41
  44. package/lib/cjs/tools/ChangeUnitsTool.js.map +1 -1
  45. package/lib/cjs/tools/ClipTools.d.ts +67 -67
  46. package/lib/cjs/tools/ClipTools.js +161 -164
  47. package/lib/cjs/tools/ClipTools.js.map +1 -1
  48. package/lib/cjs/tools/DisplayStyleTools.d.ts +145 -145
  49. package/lib/cjs/tools/DisplayStyleTools.js +368 -370
  50. package/lib/cjs/tools/DisplayStyleTools.js.map +1 -1
  51. package/lib/cjs/tools/EmphasizeElementsTool.d.ts +60 -60
  52. package/lib/cjs/tools/EmphasizeElementsTool.js +154 -154
  53. package/lib/cjs/tools/EmphasizeElementsTool.js.map +1 -1
  54. package/lib/cjs/tools/FrustumDecoration.d.ts +57 -57
  55. package/lib/cjs/tools/FrustumDecoration.js +374 -374
  56. package/lib/cjs/tools/FrustumDecoration.js.map +1 -1
  57. package/lib/cjs/tools/InspectElementTool.d.ts +42 -42
  58. package/lib/cjs/tools/InspectElementTool.js +198 -198
  59. package/lib/cjs/tools/InspectElementTool.js.map +1 -1
  60. package/lib/cjs/tools/MapLayerTool.d.ts +264 -264
  61. package/lib/cjs/tools/MapLayerTool.d.ts.map +1 -1
  62. package/lib/cjs/tools/MapLayerTool.js +509 -507
  63. package/lib/cjs/tools/MapLayerTool.js.map +1 -1
  64. package/lib/cjs/tools/MeasureTileLoadTime.d.ts +12 -12
  65. package/lib/cjs/tools/MeasureTileLoadTime.js +63 -63
  66. package/lib/cjs/tools/MeasureTileLoadTime.js.map +1 -1
  67. package/lib/cjs/tools/ModelAppearanceTools.d.ts +86 -86
  68. package/lib/cjs/tools/ModelAppearanceTools.js +183 -183
  69. package/lib/cjs/tools/ModelAppearanceTools.js.map +1 -1
  70. package/lib/cjs/tools/PlanProjectionTools.d.ts +40 -40
  71. package/lib/cjs/tools/PlanProjectionTools.js +149 -149
  72. package/lib/cjs/tools/PlanProjectionTools.js.map +1 -1
  73. package/lib/cjs/tools/PlanarMaskTools.d.ts +182 -182
  74. package/lib/cjs/tools/PlanarMaskTools.js +391 -393
  75. package/lib/cjs/tools/PlanarMaskTools.js.map +1 -1
  76. package/lib/cjs/tools/ProjectExtents.d.ts +41 -41
  77. package/lib/cjs/tools/ProjectExtents.js +110 -110
  78. package/lib/cjs/tools/ProjectExtents.js.map +1 -1
  79. package/lib/cjs/tools/RealityModelTools.d.ts +116 -116
  80. package/lib/cjs/tools/RealityModelTools.js +281 -281
  81. package/lib/cjs/tools/RealityModelTools.js.map +1 -1
  82. package/lib/cjs/tools/RealityTransitionTool.d.ts +25 -25
  83. package/lib/cjs/tools/RealityTransitionTool.js +115 -116
  84. package/lib/cjs/tools/RealityTransitionTool.js.map +1 -1
  85. package/lib/cjs/tools/RenderSystemTools.d.ts +38 -38
  86. package/lib/cjs/tools/RenderSystemTools.js +69 -70
  87. package/lib/cjs/tools/RenderSystemTools.js.map +1 -1
  88. package/lib/cjs/tools/RenderTargetTools.d.ts +107 -107
  89. package/lib/cjs/tools/RenderTargetTools.d.ts.map +1 -1
  90. package/lib/cjs/tools/RenderTargetTools.js +174 -174
  91. package/lib/cjs/tools/RenderTargetTools.js.map +1 -1
  92. package/lib/cjs/tools/ReportWebGLCompatibilityTool.d.ts +11 -11
  93. package/lib/cjs/tools/ReportWebGLCompatibilityTool.js +30 -30
  94. package/lib/cjs/tools/ReportWebGLCompatibilityTool.js.map +1 -1
  95. package/lib/cjs/tools/SavedViews.d.ts +46 -46
  96. package/lib/cjs/tools/SavedViews.js +136 -136
  97. package/lib/cjs/tools/SavedViews.js.map +1 -1
  98. package/lib/cjs/tools/ScheduleScriptTools.d.ts +37 -37
  99. package/lib/cjs/tools/ScheduleScriptTools.js +157 -159
  100. package/lib/cjs/tools/ScheduleScriptTools.js.map +1 -1
  101. package/lib/cjs/tools/SelectionTools.d.ts +28 -28
  102. package/lib/cjs/tools/SelectionTools.js +87 -87
  103. package/lib/cjs/tools/SelectionTools.js.map +1 -1
  104. package/lib/cjs/tools/SetGpuMemoryLimitTool.d.ts +15 -15
  105. package/lib/cjs/tools/SetGpuMemoryLimitTool.js +33 -33
  106. package/lib/cjs/tools/SetGpuMemoryLimitTool.js.map +1 -1
  107. package/lib/cjs/tools/SourceAspectIdTools.d.ts +40 -40
  108. package/lib/cjs/tools/SourceAspectIdTools.js +85 -86
  109. package/lib/cjs/tools/SourceAspectIdTools.js.map +1 -1
  110. package/lib/cjs/tools/TileRequestDecoration.d.ts +12 -12
  111. package/lib/cjs/tools/TileRequestDecoration.js +83 -83
  112. package/lib/cjs/tools/TileRequestDecoration.js.map +1 -1
  113. package/lib/cjs/tools/TileTreeBoundsDecoration.d.ts +11 -11
  114. package/lib/cjs/tools/TileTreeBoundsDecoration.js +74 -74
  115. package/lib/cjs/tools/TileTreeBoundsDecoration.js.map +1 -1
  116. package/lib/cjs/tools/ToolTipProvider.d.ts +15 -15
  117. package/lib/cjs/tools/ToolTipProvider.js +66 -66
  118. package/lib/cjs/tools/ToolTipProvider.js.map +1 -1
  119. package/lib/cjs/tools/ViewportTools.d.ts +218 -218
  120. package/lib/cjs/tools/ViewportTools.d.ts.map +1 -1
  121. package/lib/cjs/tools/ViewportTools.js +516 -516
  122. package/lib/cjs/tools/ViewportTools.js.map +1 -1
  123. package/lib/cjs/tools/parseArgs.d.ts +23 -23
  124. package/lib/cjs/tools/parseArgs.js +51 -51
  125. package/lib/cjs/tools/parseArgs.js.map +1 -1
  126. package/lib/cjs/tools/parseBoolean.d.ts +8 -8
  127. package/lib/cjs/tools/parseBoolean.js +26 -26
  128. package/lib/cjs/tools/parseBoolean.js.map +1 -1
  129. package/lib/cjs/tools/parseToggle.d.ts +8 -8
  130. package/lib/cjs/tools/parseToggle.js +25 -25
  131. package/lib/cjs/tools/parseToggle.js.map +1 -1
  132. package/lib/cjs/ui/Button.d.ts +29 -29
  133. package/lib/cjs/ui/Button.d.ts.map +1 -1
  134. package/lib/cjs/ui/Button.js +26 -26
  135. package/lib/cjs/ui/Button.js.map +1 -1
  136. package/lib/cjs/ui/CheckBox.d.ts +23 -23
  137. package/lib/cjs/ui/CheckBox.d.ts.map +1 -1
  138. package/lib/cjs/ui/CheckBox.js +27 -27
  139. package/lib/cjs/ui/CheckBox.js.map +1 -1
  140. package/lib/cjs/ui/ColorInput.d.ts +27 -27
  141. package/lib/cjs/ui/ColorInput.d.ts.map +1 -1
  142. package/lib/cjs/ui/ColorInput.js +53 -53
  143. package/lib/cjs/ui/ColorInput.js.map +1 -1
  144. package/lib/cjs/ui/ComboBox.d.ts +28 -28
  145. package/lib/cjs/ui/ComboBox.d.ts.map +1 -1
  146. package/lib/cjs/ui/ComboBox.js +42 -42
  147. package/lib/cjs/ui/ComboBox.js.map +1 -1
  148. package/lib/cjs/ui/DataList.d.ts +27 -27
  149. package/lib/cjs/ui/DataList.d.ts.map +1 -1
  150. package/lib/cjs/ui/DataList.js +39 -39
  151. package/lib/cjs/ui/DataList.js.map +1 -1
  152. package/lib/cjs/ui/NestedMenu.d.ts +19 -19
  153. package/lib/cjs/ui/NestedMenu.d.ts.map +1 -1
  154. package/lib/cjs/ui/NestedMenu.js +46 -46
  155. package/lib/cjs/ui/NestedMenu.js.map +1 -1
  156. package/lib/cjs/ui/NumericInput.d.ts +35 -35
  157. package/lib/cjs/ui/NumericInput.d.ts.map +1 -1
  158. package/lib/cjs/ui/NumericInput.js +61 -61
  159. package/lib/cjs/ui/NumericInput.js.map +1 -1
  160. package/lib/cjs/ui/RadioBox.d.ts +29 -29
  161. package/lib/cjs/ui/RadioBox.d.ts.map +1 -1
  162. package/lib/cjs/ui/RadioBox.js +76 -76
  163. package/lib/cjs/ui/RadioBox.js.map +1 -1
  164. package/lib/cjs/ui/Slider.d.ts +28 -28
  165. package/lib/cjs/ui/Slider.d.ts.map +1 -1
  166. package/lib/cjs/ui/Slider.js +42 -42
  167. package/lib/cjs/ui/Slider.js.map +1 -1
  168. package/lib/cjs/ui/TextBox.d.ts +32 -32
  169. package/lib/cjs/ui/TextBox.d.ts.map +1 -1
  170. package/lib/cjs/ui/TextBox.js +56 -56
  171. package/lib/cjs/ui/TextBox.js.map +1 -1
  172. package/lib/cjs/widgets/DiagnosticsPanel.d.ts +37 -37
  173. package/lib/cjs/widgets/DiagnosticsPanel.js +81 -81
  174. package/lib/cjs/widgets/DiagnosticsPanel.js.map +1 -1
  175. package/lib/cjs/widgets/FpsTracker.d.ts +19 -19
  176. package/lib/cjs/widgets/FpsTracker.js +56 -56
  177. package/lib/cjs/widgets/FpsTracker.js.map +1 -1
  178. package/lib/cjs/widgets/GpuProfiler.d.ts +16 -16
  179. package/lib/cjs/widgets/GpuProfiler.js +192 -192
  180. package/lib/cjs/widgets/GpuProfiler.js.map +1 -1
  181. package/lib/cjs/widgets/KeyinField.d.ts +61 -61
  182. package/lib/cjs/widgets/KeyinField.js +186 -187
  183. package/lib/cjs/widgets/KeyinField.js.map +1 -1
  184. package/lib/cjs/widgets/MemoryTracker.d.ts +27 -27
  185. package/lib/cjs/widgets/MemoryTracker.js +242 -243
  186. package/lib/cjs/widgets/MemoryTracker.js.map +1 -1
  187. package/lib/cjs/widgets/RenderCommandBreakdown.d.ts +15 -15
  188. package/lib/cjs/widgets/RenderCommandBreakdown.js +67 -68
  189. package/lib/cjs/widgets/RenderCommandBreakdown.js.map +1 -1
  190. package/lib/cjs/widgets/TileMemoryBreakdown.d.ts +30 -30
  191. package/lib/cjs/widgets/TileMemoryBreakdown.js +203 -204
  192. package/lib/cjs/widgets/TileMemoryBreakdown.js.map +1 -1
  193. package/lib/cjs/widgets/TileStatisticsTracker.d.ts +21 -21
  194. package/lib/cjs/widgets/TileStatisticsTracker.d.ts.map +1 -1
  195. package/lib/cjs/widgets/TileStatisticsTracker.js +144 -142
  196. package/lib/cjs/widgets/TileStatisticsTracker.js.map +1 -1
  197. package/lib/cjs/widgets/ToolSettingsTracker.d.ts +9 -9
  198. package/lib/cjs/widgets/ToolSettingsTracker.js +211 -211
  199. package/lib/cjs/widgets/ToolSettingsTracker.js.map +1 -1
  200. package/lib/esm/ClipboardUtilities.d.ts +8 -8
  201. package/lib/esm/ClipboardUtilities.js +22 -22
  202. package/lib/esm/ClipboardUtilities.js.map +1 -1
  203. package/lib/esm/FrontEndDevTools.d.ts +19 -19
  204. package/lib/esm/FrontEndDevTools.js +218 -217
  205. package/lib/esm/FrontEndDevTools.js.map +1 -1
  206. package/lib/esm/effects/Convolution.d.ts +68 -68
  207. package/lib/esm/effects/Convolution.js +161 -155
  208. package/lib/esm/effects/Convolution.js.map +1 -1
  209. package/lib/esm/effects/EffectTools.d.ts +33 -33
  210. package/lib/esm/effects/EffectTools.js +63 -62
  211. package/lib/esm/effects/EffectTools.js.map +1 -1
  212. package/lib/esm/effects/Explosion.d.ts +12 -12
  213. package/lib/esm/effects/Explosion.js +165 -164
  214. package/lib/esm/effects/Explosion.js.map +1 -1
  215. package/lib/esm/effects/FlipImage.d.ts +30 -30
  216. package/lib/esm/effects/FlipImage.js +96 -94
  217. package/lib/esm/effects/FlipImage.js.map +1 -1
  218. package/lib/esm/effects/LensDistortion.d.ts +34 -34
  219. package/lib/esm/effects/LensDistortion.js +106 -104
  220. package/lib/esm/effects/LensDistortion.js.map +1 -1
  221. package/lib/esm/effects/Random.d.ts +24 -24
  222. package/lib/esm/effects/Random.js +41 -41
  223. package/lib/esm/effects/Random.js.map +1 -1
  224. package/lib/esm/effects/Saturation.d.ts +30 -30
  225. package/lib/esm/effects/Saturation.js +82 -80
  226. package/lib/esm/effects/Saturation.js.map +1 -1
  227. package/lib/esm/effects/Snow.d.ts +76 -76
  228. package/lib/esm/effects/Snow.js +184 -182
  229. package/lib/esm/effects/Snow.js.map +1 -1
  230. package/lib/esm/effects/Vignette.d.ts +39 -39
  231. package/lib/esm/effects/Vignette.js +105 -103
  232. package/lib/esm/effects/Vignette.js.map +1 -1
  233. package/lib/esm/frontend-devtools.d.ts +82 -82
  234. package/lib/esm/frontend-devtools.js +86 -86
  235. package/lib/esm/frontend-devtools.js.map +1 -1
  236. package/lib/esm/tools/AnimationIntervalTool.d.ts +15 -15
  237. package/lib/esm/tools/AnimationIntervalTool.js +27 -26
  238. package/lib/esm/tools/AnimationIntervalTool.js.map +1 -1
  239. package/lib/esm/tools/ChangeUnitsTool.d.ts +15 -15
  240. package/lib/esm/tools/ChangeUnitsTool.js +38 -37
  241. package/lib/esm/tools/ChangeUnitsTool.js.map +1 -1
  242. package/lib/esm/tools/ClipTools.d.ts +67 -67
  243. package/lib/esm/tools/ClipTools.js +158 -158
  244. package/lib/esm/tools/ClipTools.js.map +1 -1
  245. package/lib/esm/tools/DisplayStyleTools.d.ts +145 -145
  246. package/lib/esm/tools/DisplayStyleTools.js +364 -356
  247. package/lib/esm/tools/DisplayStyleTools.js.map +1 -1
  248. package/lib/esm/tools/EmphasizeElementsTool.d.ts +60 -60
  249. package/lib/esm/tools/EmphasizeElementsTool.js +150 -145
  250. package/lib/esm/tools/EmphasizeElementsTool.js.map +1 -1
  251. package/lib/esm/tools/FrustumDecoration.d.ts +57 -57
  252. package/lib/esm/tools/FrustumDecoration.js +370 -367
  253. package/lib/esm/tools/FrustumDecoration.js.map +1 -1
  254. package/lib/esm/tools/InspectElementTool.d.ts +42 -42
  255. package/lib/esm/tools/InspectElementTool.js +195 -194
  256. package/lib/esm/tools/InspectElementTool.js.map +1 -1
  257. package/lib/esm/tools/MapLayerTool.d.ts +264 -264
  258. package/lib/esm/tools/MapLayerTool.d.ts.map +1 -1
  259. package/lib/esm/tools/MapLayerTool.js +506 -485
  260. package/lib/esm/tools/MapLayerTool.js.map +1 -1
  261. package/lib/esm/tools/MeasureTileLoadTime.d.ts +12 -12
  262. package/lib/esm/tools/MeasureTileLoadTime.js +60 -59
  263. package/lib/esm/tools/MeasureTileLoadTime.js.map +1 -1
  264. package/lib/esm/tools/ModelAppearanceTools.d.ts +86 -86
  265. package/lib/esm/tools/ModelAppearanceTools.js +180 -172
  266. package/lib/esm/tools/ModelAppearanceTools.js.map +1 -1
  267. package/lib/esm/tools/PlanProjectionTools.d.ts +40 -40
  268. package/lib/esm/tools/PlanProjectionTools.js +146 -143
  269. package/lib/esm/tools/PlanProjectionTools.js.map +1 -1
  270. package/lib/esm/tools/PlanarMaskTools.d.ts +182 -182
  271. package/lib/esm/tools/PlanarMaskTools.js +387 -377
  272. package/lib/esm/tools/PlanarMaskTools.js.map +1 -1
  273. package/lib/esm/tools/ProjectExtents.d.ts +41 -41
  274. package/lib/esm/tools/ProjectExtents.js +105 -104
  275. package/lib/esm/tools/ProjectExtents.js.map +1 -1
  276. package/lib/esm/tools/RealityModelTools.d.ts +116 -116
  277. package/lib/esm/tools/RealityModelTools.js +278 -268
  278. package/lib/esm/tools/RealityModelTools.js.map +1 -1
  279. package/lib/esm/tools/RealityTransitionTool.d.ts +25 -25
  280. package/lib/esm/tools/RealityTransitionTool.js +112 -112
  281. package/lib/esm/tools/RealityTransitionTool.js.map +1 -1
  282. package/lib/esm/tools/RenderSystemTools.d.ts +38 -38
  283. package/lib/esm/tools/RenderSystemTools.js +65 -63
  284. package/lib/esm/tools/RenderSystemTools.js.map +1 -1
  285. package/lib/esm/tools/RenderTargetTools.d.ts +107 -107
  286. package/lib/esm/tools/RenderTargetTools.d.ts.map +1 -1
  287. package/lib/esm/tools/RenderTargetTools.js +169 -159
  288. package/lib/esm/tools/RenderTargetTools.js.map +1 -1
  289. package/lib/esm/tools/ReportWebGLCompatibilityTool.d.ts +11 -11
  290. package/lib/esm/tools/ReportWebGLCompatibilityTool.js +27 -26
  291. package/lib/esm/tools/ReportWebGLCompatibilityTool.js.map +1 -1
  292. package/lib/esm/tools/SavedViews.d.ts +46 -46
  293. package/lib/esm/tools/SavedViews.js +131 -128
  294. package/lib/esm/tools/SavedViews.js.map +1 -1
  295. package/lib/esm/tools/ScheduleScriptTools.d.ts +37 -37
  296. package/lib/esm/tools/ScheduleScriptTools.js +154 -153
  297. package/lib/esm/tools/ScheduleScriptTools.js.map +1 -1
  298. package/lib/esm/tools/SelectionTools.d.ts +28 -28
  299. package/lib/esm/tools/SelectionTools.js +84 -82
  300. package/lib/esm/tools/SelectionTools.js.map +1 -1
  301. package/lib/esm/tools/SetGpuMemoryLimitTool.d.ts +15 -15
  302. package/lib/esm/tools/SetGpuMemoryLimitTool.js +30 -29
  303. package/lib/esm/tools/SetGpuMemoryLimitTool.js.map +1 -1
  304. package/lib/esm/tools/SourceAspectIdTools.d.ts +40 -40
  305. package/lib/esm/tools/SourceAspectIdTools.js +81 -80
  306. package/lib/esm/tools/SourceAspectIdTools.js.map +1 -1
  307. package/lib/esm/tools/TileRequestDecoration.d.ts +12 -12
  308. package/lib/esm/tools/TileRequestDecoration.js +80 -79
  309. package/lib/esm/tools/TileRequestDecoration.js.map +1 -1
  310. package/lib/esm/tools/TileTreeBoundsDecoration.d.ts +11 -11
  311. package/lib/esm/tools/TileTreeBoundsDecoration.js +71 -70
  312. package/lib/esm/tools/TileTreeBoundsDecoration.js.map +1 -1
  313. package/lib/esm/tools/ToolTipProvider.d.ts +15 -15
  314. package/lib/esm/tools/ToolTipProvider.js +63 -62
  315. package/lib/esm/tools/ToolTipProvider.js.map +1 -1
  316. package/lib/esm/tools/ViewportTools.d.ts +218 -218
  317. package/lib/esm/tools/ViewportTools.d.ts.map +1 -1
  318. package/lib/esm/tools/ViewportTools.js +511 -492
  319. package/lib/esm/tools/ViewportTools.js.map +1 -1
  320. package/lib/esm/tools/parseArgs.d.ts +23 -23
  321. package/lib/esm/tools/parseArgs.js +47 -47
  322. package/lib/esm/tools/parseArgs.js.map +1 -1
  323. package/lib/esm/tools/parseBoolean.d.ts +8 -8
  324. package/lib/esm/tools/parseBoolean.js +22 -22
  325. package/lib/esm/tools/parseBoolean.js.map +1 -1
  326. package/lib/esm/tools/parseToggle.d.ts +8 -8
  327. package/lib/esm/tools/parseToggle.js +21 -21
  328. package/lib/esm/tools/parseToggle.js.map +1 -1
  329. package/lib/esm/ui/Button.d.ts +29 -29
  330. package/lib/esm/ui/Button.d.ts.map +1 -1
  331. package/lib/esm/ui/Button.js +22 -22
  332. package/lib/esm/ui/Button.js.map +1 -1
  333. package/lib/esm/ui/CheckBox.d.ts +23 -23
  334. package/lib/esm/ui/CheckBox.d.ts.map +1 -1
  335. package/lib/esm/ui/CheckBox.js +23 -23
  336. package/lib/esm/ui/CheckBox.js.map +1 -1
  337. package/lib/esm/ui/ColorInput.d.ts +27 -27
  338. package/lib/esm/ui/ColorInput.d.ts.map +1 -1
  339. package/lib/esm/ui/ColorInput.js +48 -48
  340. package/lib/esm/ui/ColorInput.js.map +1 -1
  341. package/lib/esm/ui/ComboBox.d.ts +28 -28
  342. package/lib/esm/ui/ComboBox.d.ts.map +1 -1
  343. package/lib/esm/ui/ComboBox.js +38 -38
  344. package/lib/esm/ui/ComboBox.js.map +1 -1
  345. package/lib/esm/ui/DataList.d.ts +27 -27
  346. package/lib/esm/ui/DataList.d.ts.map +1 -1
  347. package/lib/esm/ui/DataList.js +34 -34
  348. package/lib/esm/ui/DataList.js.map +1 -1
  349. package/lib/esm/ui/NestedMenu.d.ts +19 -19
  350. package/lib/esm/ui/NestedMenu.d.ts.map +1 -1
  351. package/lib/esm/ui/NestedMenu.js +42 -42
  352. package/lib/esm/ui/NestedMenu.js.map +1 -1
  353. package/lib/esm/ui/NumericInput.d.ts +35 -35
  354. package/lib/esm/ui/NumericInput.d.ts.map +1 -1
  355. package/lib/esm/ui/NumericInput.js +56 -56
  356. package/lib/esm/ui/NumericInput.js.map +1 -1
  357. package/lib/esm/ui/RadioBox.d.ts +29 -29
  358. package/lib/esm/ui/RadioBox.d.ts.map +1 -1
  359. package/lib/esm/ui/RadioBox.js +72 -72
  360. package/lib/esm/ui/RadioBox.js.map +1 -1
  361. package/lib/esm/ui/Slider.d.ts +28 -28
  362. package/lib/esm/ui/Slider.d.ts.map +1 -1
  363. package/lib/esm/ui/Slider.js +38 -38
  364. package/lib/esm/ui/Slider.js.map +1 -1
  365. package/lib/esm/ui/TextBox.d.ts +32 -32
  366. package/lib/esm/ui/TextBox.d.ts.map +1 -1
  367. package/lib/esm/ui/TextBox.js +52 -52
  368. package/lib/esm/ui/TextBox.js.map +1 -1
  369. package/lib/esm/widgets/DiagnosticsPanel.d.ts +37 -37
  370. package/lib/esm/widgets/DiagnosticsPanel.js +77 -77
  371. package/lib/esm/widgets/DiagnosticsPanel.js.map +1 -1
  372. package/lib/esm/widgets/FpsTracker.d.ts +19 -19
  373. package/lib/esm/widgets/FpsTracker.js +52 -52
  374. package/lib/esm/widgets/FpsTracker.js.map +1 -1
  375. package/lib/esm/widgets/GpuProfiler.d.ts +16 -16
  376. package/lib/esm/widgets/GpuProfiler.js +188 -188
  377. package/lib/esm/widgets/GpuProfiler.js.map +1 -1
  378. package/lib/esm/widgets/KeyinField.d.ts +61 -61
  379. package/lib/esm/widgets/KeyinField.js +182 -183
  380. package/lib/esm/widgets/KeyinField.js.map +1 -1
  381. package/lib/esm/widgets/MemoryTracker.d.ts +27 -27
  382. package/lib/esm/widgets/MemoryTracker.js +237 -238
  383. package/lib/esm/widgets/MemoryTracker.js.map +1 -1
  384. package/lib/esm/widgets/RenderCommandBreakdown.d.ts +15 -15
  385. package/lib/esm/widgets/RenderCommandBreakdown.js +63 -64
  386. package/lib/esm/widgets/RenderCommandBreakdown.js.map +1 -1
  387. package/lib/esm/widgets/TileMemoryBreakdown.d.ts +30 -30
  388. package/lib/esm/widgets/TileMemoryBreakdown.js +199 -200
  389. package/lib/esm/widgets/TileMemoryBreakdown.js.map +1 -1
  390. package/lib/esm/widgets/TileStatisticsTracker.d.ts +21 -21
  391. package/lib/esm/widgets/TileStatisticsTracker.d.ts.map +1 -1
  392. package/lib/esm/widgets/TileStatisticsTracker.js +140 -138
  393. package/lib/esm/widgets/TileStatisticsTracker.js.map +1 -1
  394. package/lib/esm/widgets/ToolSettingsTracker.d.ts +9 -9
  395. package/lib/esm/widgets/ToolSettingsTracker.js +208 -207
  396. package/lib/esm/widgets/ToolSettingsTracker.js.map +1 -1
  397. package/lib/public/locales/en/FrontendDevTools.json +484 -484
  398. package/package.json +15 -16
@@ -1 +1 @@
1
- {"version":3,"file":"KeyinField.js","sourceRoot":"","sources":["../../../src/widgets/KeyinField.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\r\n/** @packageDocumentation\r\n * @module Widgets\r\n */\r\n\r\nimport { IModelApp, MessageBoxIconType, MessageBoxType, ParseAndRunResult } from \"@itwin/core-frontend\";\r\nimport { createButton } from \"../ui/Button\";\r\nimport { appendDataListEntries, createDataList, DataList, DataListEntry } from \"../ui/DataList\";\r\nimport { createTextBox, TextBox } from \"../ui/TextBox\";\r\n\r\nfunction keyinsToDataListEntries(keyins: string[]): DataListEntry[] {\r\n const entries: DataListEntry[] = [];\r\n for (const keyin of keyins) {\r\n entries.push({ value: keyin });\r\n }\r\n\r\n return entries;\r\n}\r\n\r\n/** Controls whether localized and/or non-localized key-in strings appear in a KeyinField's auto-completion list.\r\n * @beta\r\n */\r\nexport enum KeyinFieldLocalization {\r\n /** Include only non-localized key-in strings. */\r\n NonLocalized,\r\n /** Include only localized key-in strings. */\r\n Localized,\r\n /** Include localized and non-localized strings for each key-in. */\r\n Both,\r\n}\r\n\r\n/** Properties controlling how a KeyinField is created.\r\n * @beta\r\n */\r\nexport interface KeyinFieldProps {\r\n /** If supplied, the keyin field's elements will be added as children of this parent element. */\r\n parent?: HTMLElement;\r\n /** Required, unique ID prefix used to produce unique IDs for child elements. */\r\n baseId: string;\r\n /** Default: false. */\r\n wantButton?: boolean;\r\n /** Default: false. */\r\n wantLabel?: boolean;\r\n /** The maximum number of submitted key-ins to store in the history.\r\n * If greater than zero, pressing up/down while the KeyinField has focus will move backwards/forwards through the history.\r\n * Default: zero;\r\n */\r\n historyLength?: number;\r\n /** Controls whether localized and/or non-localized keyin strings appear in the autocompletion list.\r\n * Note: the KeyinField will still accept either localized or non-localized strings; this option only controls what is displayed in the auto-completion list.\r\n * Default: non-localized\r\n */\r\n localization?: KeyinFieldLocalization;\r\n}\r\n\r\n/** A textbox allowing input of key-ins (localized tool names) combined with a drop-down that lists all registered key-ins, filtered by substring match on the current input.\r\n * Press `enter` or click the Enter button to run the key-in.\r\n * @beta\r\n */\r\nexport class KeyinField {\r\n /** @alpha */\r\n public readonly autoCompleteList: DataList;\r\n public readonly textBox: TextBox;\r\n public readonly keyins: string[];\r\n private _historyIndex?: number;\r\n private _historyLength = 0;\r\n private readonly _history: string[] | undefined;\r\n private readonly _localization: KeyinFieldLocalization;\r\n\r\n public constructor(props: KeyinFieldProps) {\r\n this._localization = props.localization ?? KeyinFieldLocalization.NonLocalized;\r\n this.keyins = this.findKeyins();\r\n const autoCompleteListId = `${props.baseId}_autoComplete`;\r\n this.autoCompleteList = createDataList({\r\n parent: props.parent,\r\n entries: keyinsToDataListEntries(this.keyins),\r\n id: autoCompleteListId,\r\n inline: true,\r\n });\r\n\r\n this.textBox = createTextBox({\r\n label: props.wantLabel ? \"Key-in: \" : undefined,\r\n id: `${props.baseId}_textBox`,\r\n parent: props.parent,\r\n handler: () => this.selectAll(),\r\n keypresshandler: async (_tb, ev) => { await this.handleKeyPress(ev); },\r\n focushandler: (_tb) => { this.respondToKeyinFocus(); },\r\n tooltip: \"Type the key-in text here\",\r\n inline: true,\r\n list: autoCompleteListId,\r\n });\r\n\r\n if (props.wantButton) {\r\n createButton({\r\n handler: async (_bt) => { await this.submitKeyin(); },\r\n parent: props.parent,\r\n value: \"Enter\",\r\n inline: true,\r\n tooltip: \"Click here to execute the key-in\",\r\n });\r\n }\r\n\r\n if (undefined !== props.historyLength && props.historyLength > 0) {\r\n this.textBox.textbox.onkeydown = (ev) => this.handleKeyDown(ev); // eslint-disable-line @typescript-eslint/promise-function-async\r\n this._historyLength = props.historyLength;\r\n this._history = [];\r\n }\r\n }\r\n\r\n public focus() { this.textBox.textbox.focus(); }\r\n public loseFocus() { this.textBox.textbox.blur(); }\r\n\r\n public selectAll(): void {\r\n this.textBox.textbox.setSelectionRange(0, this.textBox.textbox.value.length);\r\n }\r\n\r\n private async handleKeyPress(ev: KeyboardEvent): Promise<void> {\r\n ev.stopPropagation();\r\n\r\n if (\"Enter\" === ev.key)\r\n await this.submitKeyin();\r\n }\r\n\r\n private async handleKeyDown(ev: KeyboardEvent): Promise<void> {\r\n ev.stopPropagation();\r\n\r\n if (undefined === this._history || 0 === this._history.length)\r\n return;\r\n\r\n // NB: History list is ordered by most to least recent so moving \"backwards\" means incrementing the index.\r\n const direction = ev.key === \"ArrowDown\" ? 1 : (ev.key === \"ArrowUp\" ? 1 : 0);\r\n if (0 === direction)\r\n return;\r\n\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n\r\n if (this._historyIndex === undefined) {\r\n if (direction < 0)\r\n return;\r\n else\r\n this._historyIndex = -1;\r\n }\r\n\r\n const newIndex = this._historyIndex + direction;\r\n if (newIndex >= 0 && newIndex < this._history.length) {\r\n this._historyIndex = newIndex;\r\n if (this._historyIndex >= 0)\r\n this.textBox.textbox.value = this._history[newIndex];\r\n }\r\n }\r\n\r\n private resetHistoryIndex(): void {\r\n this._historyIndex = undefined;\r\n }\r\n\r\n private pushHistory(keyin: string): void {\r\n if (undefined === this._history)\r\n return;\r\n\r\n this.textBox.textbox.value = \"\";\r\n this.resetHistoryIndex();\r\n if (this._history.length === 0 || keyin.toLowerCase() !== this._history[0].toLowerCase()) {\r\n this._history.unshift(keyin);\r\n if (this._history.length > this._historyLength)\r\n this._history.pop();\r\n }\r\n }\r\n\r\n private async submitKeyin(): Promise<void> {\r\n this.selectAll();\r\n const textBox = this.textBox.textbox;\r\n\r\n const input = textBox.value;\r\n this.pushHistory(input);\r\n\r\n let message: string | undefined;\r\n try {\r\n switch (await IModelApp.tools.parseAndRun(input)) {\r\n case ParseAndRunResult.ToolNotFound:\r\n message = `Cannot find a key-in that matches: ${input}`;\r\n break;\r\n case ParseAndRunResult.BadArgumentCount:\r\n message = \"Incorrect number of arguments\";\r\n break;\r\n case ParseAndRunResult.FailedToRun:\r\n message = \"Key-in failed to run\";\r\n break;\r\n }\r\n } catch (ex) {\r\n message = `Key-in produced exception: ${ex}`;\r\n }\r\n\r\n if (undefined !== message)\r\n await IModelApp.notifications.openMessageBox(MessageBoxType.MediumAlert, message, MessageBoxIconType.Warning);\r\n }\r\n\r\n private respondToKeyinFocus() {\r\n this.resetHistoryIndex();\r\n\r\n // Handle case in which new tools were registered since we last populated the auto-complete list.\r\n // This can occur e.g. as a result of loading a extension, or deferred initialization of a package like markup.\r\n const keyins = this.findKeyins();\r\n if (keyins.length > this.keyins.length) {\r\n const newKeyins: string[] = [];\r\n for (const keyin of keyins)\r\n if (!this.keyins.includes(keyin)) {\r\n newKeyins.push(keyin);\r\n this.keyins.push(keyin);\r\n }\r\n\r\n if (newKeyins.length > 0)\r\n appendDataListEntries(this.autoCompleteList, keyinsToDataListEntries(newKeyins));\r\n }\r\n }\r\n\r\n private findKeyins(): string[] {\r\n const keyins: string[] = [];\r\n const tools = IModelApp.tools.getToolList();\r\n for (const tool of tools) {\r\n switch (this._localization) {\r\n case KeyinFieldLocalization.Localized:\r\n keyins.push(tool.keyin);\r\n break;\r\n case KeyinFieldLocalization.Both:\r\n keyins.push(tool.keyin);\r\n if (tool.keyin === tool.englishKeyin)\r\n break;\r\n /* falls through */\r\n default:\r\n case KeyinFieldLocalization.NonLocalized:\r\n keyins.push(tool.englishKeyin);\r\n break;\r\n }\r\n }\r\n\r\n return keyins;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"KeyinField.js","sourceRoot":"","sources":["../../../src/widgets/KeyinField.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\n/** @packageDocumentation\n * @module Widgets\n */\n\nimport { IModelApp, MessageBoxIconType, MessageBoxType, ParseAndRunResult } from \"@itwin/core-frontend\";\nimport { createButton } from \"../ui/Button\";\nimport { appendDataListEntries, createDataList, DataList, DataListEntry } from \"../ui/DataList\";\nimport { createTextBox, TextBox } from \"../ui/TextBox\";\n\nfunction keyinsToDataListEntries(keyins: string[]): DataListEntry[] {\n const entries: DataListEntry[] = [];\n for (const keyin of keyins) {\n entries.push({ value: keyin });\n }\n\n return entries;\n}\n\n/** Controls whether localized and/or non-localized key-in strings appear in a KeyinField's auto-completion list.\n * @beta\n */\nexport enum KeyinFieldLocalization {\n /** Include only non-localized key-in strings. */\n NonLocalized,\n /** Include only localized key-in strings. */\n Localized,\n /** Include localized and non-localized strings for each key-in. */\n Both,\n}\n\n/** Properties controlling how a KeyinField is created.\n * @beta\n */\nexport interface KeyinFieldProps {\n /** If supplied, the keyin field's elements will be added as children of this parent element. */\n parent?: HTMLElement;\n /** Required, unique ID prefix used to produce unique IDs for child elements. */\n baseId: string;\n /** Default: false. */\n wantButton?: boolean;\n /** Default: false. */\n wantLabel?: boolean;\n /** The maximum number of submitted key-ins to store in the history.\n * If greater than zero, pressing up/down while the KeyinField has focus will move backwards/forwards through the history.\n * Default: zero;\n */\n historyLength?: number;\n /** Controls whether localized and/or non-localized keyin strings appear in the autocompletion list.\n * Note: the KeyinField will still accept either localized or non-localized strings; this option only controls what is displayed in the auto-completion list.\n * Default: non-localized\n */\n localization?: KeyinFieldLocalization;\n}\n\n/** A textbox allowing input of key-ins (localized tool names) combined with a drop-down that lists all registered key-ins, filtered by substring match on the current input.\n * Press `enter` or click the Enter button to run the key-in.\n * @beta\n */\nexport class KeyinField {\n /** @alpha */\n public readonly autoCompleteList: DataList;\n public readonly textBox: TextBox;\n public readonly keyins: string[];\n private _historyIndex?: number;\n private _historyLength = 0;\n private readonly _history: string[] | undefined;\n private readonly _localization: KeyinFieldLocalization;\n\n public constructor(props: KeyinFieldProps) {\n this._localization = props.localization ?? KeyinFieldLocalization.NonLocalized;\n this.keyins = this.findKeyins();\n const autoCompleteListId = `${props.baseId}_autoComplete`;\n this.autoCompleteList = createDataList({\n parent: props.parent,\n entries: keyinsToDataListEntries(this.keyins),\n id: autoCompleteListId,\n inline: true,\n });\n\n this.textBox = createTextBox({\n label: props.wantLabel ? \"Key-in: \" : undefined,\n id: `${props.baseId}_textBox`,\n parent: props.parent,\n handler: () => this.selectAll(),\n keypresshandler: async (_tb, ev) => { await this.handleKeyPress(ev); },\n focushandler: (_tb) => { this.respondToKeyinFocus(); },\n tooltip: \"Type the key-in text here\",\n inline: true,\n list: autoCompleteListId,\n });\n\n if (props.wantButton) {\n createButton({\n handler: async (_bt) => { await this.submitKeyin(); },\n parent: props.parent,\n value: \"Enter\",\n inline: true,\n tooltip: \"Click here to execute the key-in\",\n });\n }\n\n if (undefined !== props.historyLength && props.historyLength > 0) {\n this.textBox.textbox.onkeydown = (ev) => this.handleKeyDown(ev); // eslint-disable-line @typescript-eslint/promise-function-async\n this._historyLength = props.historyLength;\n this._history = [];\n }\n }\n\n public focus() { this.textBox.textbox.focus(); }\n public loseFocus() { this.textBox.textbox.blur(); }\n\n public selectAll(): void {\n this.textBox.textbox.setSelectionRange(0, this.textBox.textbox.value.length);\n }\n\n private async handleKeyPress(ev: KeyboardEvent): Promise<void> {\n ev.stopPropagation();\n\n if (\"Enter\" === ev.key)\n await this.submitKeyin();\n }\n\n private async handleKeyDown(ev: KeyboardEvent): Promise<void> {\n ev.stopPropagation();\n\n if (undefined === this._history || 0 === this._history.length)\n return;\n\n // NB: History list is ordered by most to least recent so moving \"backwards\" means incrementing the index.\n const direction = ev.key === \"ArrowDown\" ? 1 : (ev.key === \"ArrowUp\" ? 1 : 0);\n if (0 === direction)\n return;\n\n ev.preventDefault();\n ev.stopPropagation();\n\n if (this._historyIndex === undefined) {\n if (direction < 0)\n return;\n else\n this._historyIndex = -1;\n }\n\n const newIndex = this._historyIndex + direction;\n if (newIndex >= 0 && newIndex < this._history.length) {\n this._historyIndex = newIndex;\n if (this._historyIndex >= 0)\n this.textBox.textbox.value = this._history[newIndex];\n }\n }\n\n private resetHistoryIndex(): void {\n this._historyIndex = undefined;\n }\n\n private pushHistory(keyin: string): void {\n if (undefined === this._history)\n return;\n\n this.textBox.textbox.value = \"\";\n this.resetHistoryIndex();\n if (this._history.length === 0 || keyin.toLowerCase() !== this._history[0].toLowerCase()) {\n this._history.unshift(keyin);\n if (this._history.length > this._historyLength)\n this._history.pop();\n }\n }\n\n private async submitKeyin(): Promise<void> {\n this.selectAll();\n const textBox = this.textBox.textbox;\n\n const input = textBox.value;\n this.pushHistory(input);\n\n let message: string | undefined;\n try {\n switch (await IModelApp.tools.parseAndRun(input)) {\n case ParseAndRunResult.ToolNotFound:\n message = `Cannot find a key-in that matches: ${input}`;\n break;\n case ParseAndRunResult.BadArgumentCount:\n message = \"Incorrect number of arguments\";\n break;\n case ParseAndRunResult.FailedToRun:\n message = \"Key-in failed to run\";\n break;\n }\n } catch (ex) {\n message = `Key-in produced exception: ${ex}`;\n }\n\n if (undefined !== message)\n await IModelApp.notifications.openMessageBox(MessageBoxType.MediumAlert, message, MessageBoxIconType.Warning);\n }\n\n private respondToKeyinFocus() {\n this.resetHistoryIndex();\n\n // Handle case in which new tools were registered since we last populated the auto-complete list.\n // This can occur e.g. as a result of loading a extension, or deferred initialization of a package like markup.\n const keyins = this.findKeyins();\n if (keyins.length > this.keyins.length) {\n const newKeyins: string[] = [];\n for (const keyin of keyins)\n if (!this.keyins.includes(keyin)) {\n newKeyins.push(keyin);\n this.keyins.push(keyin);\n }\n\n if (newKeyins.length > 0)\n appendDataListEntries(this.autoCompleteList, keyinsToDataListEntries(newKeyins));\n }\n }\n\n private findKeyins(): string[] {\n const keyins: string[] = [];\n const tools = IModelApp.tools.getToolList();\n for (const tool of tools) {\n switch (this._localization) {\n case KeyinFieldLocalization.Localized:\n keyins.push(tool.keyin);\n break;\n case KeyinFieldLocalization.Both:\n keyins.push(tool.keyin);\n if (tool.keyin === tool.englishKeyin)\n break;\n /* falls through */\n default:\n case KeyinFieldLocalization.NonLocalized:\n keyins.push(tool.englishKeyin);\n break;\n }\n }\n\n return keyins;\n }\n}\n"]}
@@ -1,28 +1,28 @@
1
- import { Viewport } from "@itwin/core-frontend";
2
- /** @internal */
3
- export declare function formatMemory(numBytes: number): string;
4
- /** Displays GPU memory allocated to tile trees - either all tile trees in the system, or only those associated with a specific Viewport.
5
- * @beta
6
- */
7
- export declare class MemoryTracker {
8
- private readonly _stats;
9
- private readonly _vp;
10
- private readonly _div;
11
- private _curIntervalId?;
12
- private _memIndex;
13
- private readonly _totalElem;
14
- private readonly _totalTreesElem;
15
- private readonly _purgeButton;
16
- private readonly _textures;
17
- private readonly _buffers;
18
- constructor(parent: HTMLElement, vp: Viewport);
19
- dispose(): void;
20
- private addSelector;
21
- private addPurgeButton;
22
- private addStatistics;
23
- private clearInterval;
24
- private change;
25
- private update;
26
- private purge;
27
- }
1
+ import { Viewport } from "@itwin/core-frontend";
2
+ /** @internal */
3
+ export declare function formatMemory(numBytes: number): string;
4
+ /** Displays GPU memory allocated to tile trees - either all tile trees in the system, or only those associated with a specific Viewport.
5
+ * @beta
6
+ */
7
+ export declare class MemoryTracker {
8
+ private readonly _stats;
9
+ private readonly _vp;
10
+ private readonly _div;
11
+ private _curIntervalId?;
12
+ private _memIndex;
13
+ private readonly _totalElem;
14
+ private readonly _totalTreesElem;
15
+ private readonly _purgeButton;
16
+ private readonly _textures;
17
+ private readonly _buffers;
18
+ constructor(parent: HTMLElement, vp: Viewport);
19
+ dispose(): void;
20
+ private addSelector;
21
+ private addPurgeButton;
22
+ private addStatistics;
23
+ private clearInterval;
24
+ private change;
25
+ private update;
26
+ private purge;
27
+ }
28
28
  //# sourceMappingURL=MemoryTracker.d.ts.map
@@ -1,239 +1,238 @@
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 Widgets
7
- */
8
- import { assert, BeTimePoint } from "@itwin/core-bentley";
9
- import { DisclosedTileTreeSet, IModelApp, RenderMemory, } from "@itwin/core-frontend";
10
- import { createComboBox } from "../ui/ComboBox";
11
- function collectTileTreeMemory(stats, owner) {
12
- const tree = owner.tileTree;
13
- if (undefined !== tree)
14
- tree.collectStatistics(stats);
15
- }
16
- // Includes None (-1) at index 0
17
- const memLabels = [
18
- "None",
19
- "Viewed Tile Trees",
20
- "Selected Tiles",
21
- "All Tile Trees",
22
- "Render Target",
23
- "Viewport",
24
- "System",
25
- "All",
26
- ];
27
- function collectStatisticsForViewedTileTrees(vp, stats) {
28
- vp.collectStatistics(stats);
29
- const trees = new DisclosedTileTreeSet();
30
- vp.discloseTileTrees(trees);
31
- return trees.size;
32
- }
33
- function collectStatisticsForSelectedTiles(vp, stats) {
34
- var _a;
35
- const trees = new Set();
36
- const selectedTiles = (_a = IModelApp.tileAdmin.getTilesForUser(vp)) === null || _a === void 0 ? void 0 : _a.selected;
37
- if (selectedTiles) {
38
- for (const tile of selectedTiles) {
39
- trees.add(tile.tree);
40
- tile.collectStatistics(stats);
41
- }
42
- }
43
- return trees.size;
44
- }
45
- function collectStatisticsForAllTileTrees(vp, stats) {
46
- let numTrees = 0;
47
- vp.view.iModel.tiles.forEachTreeOwner((owner) => {
48
- collectTileTreeMemory(stats, owner);
49
- if (undefined !== owner.tileTree)
50
- ++numTrees;
51
- });
52
- return numTrees;
53
- }
54
- const calcMem = [
55
- (stats, vp) => collectStatisticsForViewedTileTrees(vp, stats),
56
- (stats, vp) => collectStatisticsForSelectedTiles(vp, stats),
57
- (stats, vp) => collectStatisticsForAllTileTrees(vp, stats),
58
- (stats, vp) => {
59
- vp.target.collectStatistics(stats);
60
- return 0;
61
- },
62
- (stats, vp) => {
63
- vp.target.collectStatistics(stats);
64
- return collectStatisticsForViewedTileTrees(vp, stats);
65
- },
66
- (stats, vp) => {
67
- vp.target.renderSystem.collectStatistics(stats);
68
- return 0;
69
- },
70
- (stats, vp) => {
71
- vp.target.renderSystem.collectStatistics(stats);
72
- for (const x of IModelApp.viewManager)
73
- x.target.collectStatistics(stats);
74
- return collectStatisticsForAllTileTrees(vp, stats);
75
- },
76
- ];
77
- // ###TODO...
78
- const purgeMem = [
79
- undefined,
80
- (olderThan) => IModelApp.viewManager.purgeTileTrees(olderThan ? olderThan : BeTimePoint.now()),
81
- ];
82
- /** @internal */
83
- export function formatMemory(numBytes) {
84
- let suffix = "b";
85
- if (numBytes >= 1024) {
86
- numBytes /= 1024;
87
- suffix = "kb";
88
- if (numBytes >= 1024) {
89
- numBytes /= 1024;
90
- suffix = "mb";
91
- }
92
- }
93
- return numBytes.toFixed(2) + suffix;
94
- }
95
- class MemoryPanel {
96
- constructor(parent, label, labels) {
97
- this._elems = [];
98
- this._label = label;
99
- this._labels = labels;
100
- this._div = document.createElement("div");
101
- this._header = document.createElement("label");
102
- this._header.style.fontWeight = "bold";
103
- this._div.appendChild(this._header);
104
- const numElems = labels.length;
105
- for (let i = 0; i < numElems; i++) {
106
- const elem = document.createElement("label");
107
- this._elems.push(elem);
108
- this._div.appendChild(elem);
109
- }
110
- parent.appendChild(this._div);
111
- }
112
- update(stats, total) {
113
- assert(this._labels.length === stats.length);
114
- assert(this._labels.length === this._elems.length);
115
- this._header.innerHTML = `${this._label}: ${formatMemory(total)}`;
116
- for (let i = 0; i < this._labels.length; i++) {
117
- const elem = this._elems[i];
118
- const stat = stats[i];
119
- if (0 === stat.totalBytes) {
120
- elem.style.display = "none";
121
- continue;
122
- }
123
- elem.style.display = "block";
124
- elem.innerHTML = `${this._labels[i]} (${stat.count}): ${formatMemory(stat.totalBytes)}`; // + "\n(max: " + formatMemory(stat.maxBytes) + ")";
125
- }
126
- }
127
- }
128
- /** Displays GPU memory allocated to tile trees - either all tile trees in the system, or only those associated with a specific Viewport.
129
- * @beta
130
- */
131
- export class MemoryTracker {
132
- constructor(parent, vp) {
133
- this._stats = new RenderMemory.Statistics();
134
- this._memIndex = -1 /* None */;
135
- this._vp = vp;
136
- this._div = document.createElement("div");
137
- this._div.style.display = "none";
138
- this._div.style.textAlign = "right";
139
- this.addSelector(parent);
140
- const table = document.createElement("table");
141
- table.style.width = "100%";
142
- table.setAttribute("border", "1");
143
- this._div.appendChild(table);
144
- const row0 = document.createElement("tr");
145
- const cell00 = document.createElement("td");
146
- const cell01 = document.createElement("td");
147
- cell00.style.width = cell01.style.width = "50%";
148
- row0.appendChild(cell00);
149
- row0.appendChild(cell01);
150
- table.appendChild(row0);
151
- const row1 = document.createElement("tr");
152
- const cell10 = document.createElement("td");
153
- const cell11 = document.createElement("td");
154
- cell10.style.width = cell11.style.width = "50%";
155
- row1.appendChild(cell10);
156
- row1.appendChild(cell11);
157
- table.appendChild(row1);
158
- this._textures = new MemoryPanel(cell00, "Textures", ["Surface Textures", "Vertex Tables", "Edge Tables", "Feature Tables", "Feature Overrides", "Clip Volumes", "Planar Classifiers", "Shadow Maps", "Texture Attachments", "Thematic Textures"]);
159
- this._buffers = new MemoryPanel(cell01, "Buffers", ["Surfaces", "Visible Edges", "Silhouettes", "Polyline Edges", "Indexed Edges", "Polylines", "Point Strings", "Point Clouds", "Instances", "Terrain", "Reality Mesh"]);
160
- this._totalElem = this.addStatistics(cell10);
161
- this._totalTreesElem = this.addStatistics(cell11);
162
- this._purgeButton = this.addPurgeButton(this._div);
163
- parent.appendChild(this._div);
164
- }
165
- dispose() {
166
- this.clearInterval();
167
- }
168
- addSelector(parent) {
169
- const entries = [];
170
- for (let i = -1 /* None */; i < 7 /* COUNT */; i++)
171
- entries.push({ name: memLabels[i + 1], value: i });
172
- createComboBox({
173
- parent,
174
- name: "Track Memory: ",
175
- id: "memTracker_type",
176
- value: -1 /* None */,
177
- handler: (select) => this.change(Number.parseInt(select.value, 10)),
178
- entries,
179
- });
180
- }
181
- addPurgeButton(parent) {
182
- const div = document.createElement("div");
183
- div.style.textAlign = "center";
184
- const button = document.createElement("button");
185
- button.innerText = "Purge";
186
- button.addEventListener("click", () => this.purge());
187
- div.appendChild(button);
188
- parent.appendChild(div);
189
- return button;
190
- }
191
- addStatistics(parent) {
192
- const div = document.createElement("div");
193
- const text = document.createElement("text");
194
- text.style.fontWeight = "bold";
195
- div.appendChild(text);
196
- parent.appendChild(div);
197
- return text;
198
- }
199
- clearInterval() {
200
- if (undefined !== this._curIntervalId) {
201
- clearInterval(this._curIntervalId);
202
- this._curIntervalId = undefined;
203
- }
204
- }
205
- change(newIndex) {
206
- if (newIndex === this._memIndex)
207
- return;
208
- this._memIndex = newIndex;
209
- if (-1 /* None */ === newIndex) {
210
- this.clearInterval();
211
- this._div.style.display = "none";
212
- return;
213
- }
214
- if (undefined === this._curIntervalId) {
215
- this._curIntervalId = setInterval(() => this.update(), 1000);
216
- this._div.style.display = "block";
217
- }
218
- this._purgeButton.disabled = undefined === purgeMem[this._memIndex];
219
- this.update();
220
- }
221
- update() {
222
- const calc = calcMem[this._memIndex];
223
- this._stats.clear();
224
- const numTrees = calc(this._stats, this._vp);
225
- this._totalElem.innerText = `Total: ${formatMemory(this._stats.totalBytes)}`;
226
- this._totalTreesElem.innerText = `Total Tile Trees: ${numTrees}`;
227
- this._textures.update(this._stats.consumers, this._stats.totalBytes - this._stats.buffers.totalBytes);
228
- this._buffers.update(this._stats.buffers.consumers, this._stats.buffers.totalBytes);
229
- }
230
- purge() {
231
- const purge = purgeMem[this._memIndex];
232
- if (undefined !== purge) {
233
- purge();
234
- this._vp.invalidateScene(); // to trigger reloading of tiles we actually do want to continue drawing
235
- this.update();
236
- }
237
- }
238
- }
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 Widgets
7
+ */
8
+ import { assert, BeTimePoint } from "@itwin/core-bentley";
9
+ import { DisclosedTileTreeSet, IModelApp, RenderMemory, } from "@itwin/core-frontend";
10
+ import { createComboBox } from "../ui/ComboBox";
11
+ function collectTileTreeMemory(stats, owner) {
12
+ const tree = owner.tileTree;
13
+ if (undefined !== tree)
14
+ tree.collectStatistics(stats);
15
+ }
16
+ // Includes None (-1) at index 0
17
+ const memLabels = [
18
+ "None",
19
+ "Viewed Tile Trees",
20
+ "Selected Tiles",
21
+ "All Tile Trees",
22
+ "Render Target",
23
+ "Viewport",
24
+ "System",
25
+ "All",
26
+ ];
27
+ function collectStatisticsForViewedTileTrees(vp, stats) {
28
+ vp.collectStatistics(stats);
29
+ const trees = new DisclosedTileTreeSet();
30
+ vp.discloseTileTrees(trees);
31
+ return trees.size;
32
+ }
33
+ function collectStatisticsForSelectedTiles(vp, stats) {
34
+ const trees = new Set();
35
+ const selectedTiles = IModelApp.tileAdmin.getTilesForUser(vp)?.selected;
36
+ if (selectedTiles) {
37
+ for (const tile of selectedTiles) {
38
+ trees.add(tile.tree);
39
+ tile.collectStatistics(stats);
40
+ }
41
+ }
42
+ return trees.size;
43
+ }
44
+ function collectStatisticsForAllTileTrees(vp, stats) {
45
+ let numTrees = 0;
46
+ vp.view.iModel.tiles.forEachTreeOwner((owner) => {
47
+ collectTileTreeMemory(stats, owner);
48
+ if (undefined !== owner.tileTree)
49
+ ++numTrees;
50
+ });
51
+ return numTrees;
52
+ }
53
+ const calcMem = [
54
+ (stats, vp) => collectStatisticsForViewedTileTrees(vp, stats),
55
+ (stats, vp) => collectStatisticsForSelectedTiles(vp, stats),
56
+ (stats, vp) => collectStatisticsForAllTileTrees(vp, stats),
57
+ (stats, vp) => {
58
+ vp.target.collectStatistics(stats);
59
+ return 0;
60
+ },
61
+ (stats, vp) => {
62
+ vp.target.collectStatistics(stats);
63
+ return collectStatisticsForViewedTileTrees(vp, stats);
64
+ },
65
+ (stats, vp) => {
66
+ vp.target.renderSystem.collectStatistics(stats);
67
+ return 0;
68
+ },
69
+ (stats, vp) => {
70
+ vp.target.renderSystem.collectStatistics(stats);
71
+ for (const x of IModelApp.viewManager)
72
+ x.target.collectStatistics(stats);
73
+ return collectStatisticsForAllTileTrees(vp, stats);
74
+ },
75
+ ];
76
+ // ###TODO...
77
+ const purgeMem = [
78
+ undefined,
79
+ (olderThan) => IModelApp.viewManager.purgeTileTrees(olderThan ? olderThan : BeTimePoint.now()),
80
+ ];
81
+ /** @internal */
82
+ export function formatMemory(numBytes) {
83
+ let suffix = "b";
84
+ if (numBytes >= 1024) {
85
+ numBytes /= 1024;
86
+ suffix = "kb";
87
+ if (numBytes >= 1024) {
88
+ numBytes /= 1024;
89
+ suffix = "mb";
90
+ }
91
+ }
92
+ return numBytes.toFixed(2) + suffix;
93
+ }
94
+ class MemoryPanel {
95
+ constructor(parent, label, labels) {
96
+ this._elems = [];
97
+ this._label = label;
98
+ this._labels = labels;
99
+ this._div = document.createElement("div");
100
+ this._header = document.createElement("label");
101
+ this._header.style.fontWeight = "bold";
102
+ this._div.appendChild(this._header);
103
+ const numElems = labels.length;
104
+ for (let i = 0; i < numElems; i++) {
105
+ const elem = document.createElement("label");
106
+ this._elems.push(elem);
107
+ this._div.appendChild(elem);
108
+ }
109
+ parent.appendChild(this._div);
110
+ }
111
+ update(stats, total) {
112
+ assert(this._labels.length === stats.length);
113
+ assert(this._labels.length === this._elems.length);
114
+ this._header.innerHTML = `${this._label}: ${formatMemory(total)}`;
115
+ for (let i = 0; i < this._labels.length; i++) {
116
+ const elem = this._elems[i];
117
+ const stat = stats[i];
118
+ if (0 === stat.totalBytes) {
119
+ elem.style.display = "none";
120
+ continue;
121
+ }
122
+ elem.style.display = "block";
123
+ elem.innerHTML = `${this._labels[i]} (${stat.count}): ${formatMemory(stat.totalBytes)}`; // + "\n(max: " + formatMemory(stat.maxBytes) + ")";
124
+ }
125
+ }
126
+ }
127
+ /** Displays GPU memory allocated to tile trees - either all tile trees in the system, or only those associated with a specific Viewport.
128
+ * @beta
129
+ */
130
+ export class MemoryTracker {
131
+ constructor(parent, vp) {
132
+ this._stats = new RenderMemory.Statistics();
133
+ this._memIndex = -1 /* MemIndex.None */;
134
+ this._vp = vp;
135
+ this._div = document.createElement("div");
136
+ this._div.style.display = "none";
137
+ this._div.style.textAlign = "right";
138
+ this.addSelector(parent);
139
+ const table = document.createElement("table");
140
+ table.style.width = "100%";
141
+ table.setAttribute("border", "1");
142
+ this._div.appendChild(table);
143
+ const row0 = document.createElement("tr");
144
+ const cell00 = document.createElement("td");
145
+ const cell01 = document.createElement("td");
146
+ cell00.style.width = cell01.style.width = "50%";
147
+ row0.appendChild(cell00);
148
+ row0.appendChild(cell01);
149
+ table.appendChild(row0);
150
+ const row1 = document.createElement("tr");
151
+ const cell10 = document.createElement("td");
152
+ const cell11 = document.createElement("td");
153
+ cell10.style.width = cell11.style.width = "50%";
154
+ row1.appendChild(cell10);
155
+ row1.appendChild(cell11);
156
+ table.appendChild(row1);
157
+ this._textures = new MemoryPanel(cell00, "Textures", ["Surface Textures", "Vertex Tables", "Edge Tables", "Feature Tables", "Feature Overrides", "Clip Volumes", "Planar Classifiers", "Shadow Maps", "Texture Attachments", "Thematic Textures"]);
158
+ this._buffers = new MemoryPanel(cell01, "Buffers", ["Surfaces", "Visible Edges", "Silhouettes", "Polyline Edges", "Indexed Edges", "Polylines", "Point Strings", "Point Clouds", "Instances", "Terrain", "Reality Mesh"]);
159
+ this._totalElem = this.addStatistics(cell10);
160
+ this._totalTreesElem = this.addStatistics(cell11);
161
+ this._purgeButton = this.addPurgeButton(this._div);
162
+ parent.appendChild(this._div);
163
+ }
164
+ dispose() {
165
+ this.clearInterval();
166
+ }
167
+ addSelector(parent) {
168
+ const entries = [];
169
+ for (let i = -1 /* MemIndex.None */; i < 7 /* MemIndex.COUNT */; i++)
170
+ entries.push({ name: memLabels[i + 1], value: i });
171
+ createComboBox({
172
+ parent,
173
+ name: "Track Memory: ",
174
+ id: "memTracker_type",
175
+ value: -1 /* MemIndex.None */,
176
+ handler: (select) => this.change(Number.parseInt(select.value, 10)),
177
+ entries,
178
+ });
179
+ }
180
+ addPurgeButton(parent) {
181
+ const div = document.createElement("div");
182
+ div.style.textAlign = "center";
183
+ const button = document.createElement("button");
184
+ button.innerText = "Purge";
185
+ button.addEventListener("click", () => this.purge());
186
+ div.appendChild(button);
187
+ parent.appendChild(div);
188
+ return button;
189
+ }
190
+ addStatistics(parent) {
191
+ const div = document.createElement("div");
192
+ const text = document.createElement("text");
193
+ text.style.fontWeight = "bold";
194
+ div.appendChild(text);
195
+ parent.appendChild(div);
196
+ return text;
197
+ }
198
+ clearInterval() {
199
+ if (undefined !== this._curIntervalId) {
200
+ clearInterval(this._curIntervalId);
201
+ this._curIntervalId = undefined;
202
+ }
203
+ }
204
+ change(newIndex) {
205
+ if (newIndex === this._memIndex)
206
+ return;
207
+ this._memIndex = newIndex;
208
+ if (-1 /* MemIndex.None */ === newIndex) {
209
+ this.clearInterval();
210
+ this._div.style.display = "none";
211
+ return;
212
+ }
213
+ if (undefined === this._curIntervalId) {
214
+ this._curIntervalId = setInterval(() => this.update(), 1000);
215
+ this._div.style.display = "block";
216
+ }
217
+ this._purgeButton.disabled = undefined === purgeMem[this._memIndex];
218
+ this.update();
219
+ }
220
+ update() {
221
+ const calc = calcMem[this._memIndex];
222
+ this._stats.clear();
223
+ const numTrees = calc(this._stats, this._vp);
224
+ this._totalElem.innerText = `Total: ${formatMemory(this._stats.totalBytes)}`;
225
+ this._totalTreesElem.innerText = `Total Tile Trees: ${numTrees}`;
226
+ this._textures.update(this._stats.consumers, this._stats.totalBytes - this._stats.buffers.totalBytes);
227
+ this._buffers.update(this._stats.buffers.consumers, this._stats.buffers.totalBytes);
228
+ }
229
+ purge() {
230
+ const purge = purgeMem[this._memIndex];
231
+ if (undefined !== purge) {
232
+ purge();
233
+ this._vp.invalidateScene(); // to trigger reloading of tiles we actually do want to continue drawing
234
+ this.update();
235
+ }
236
+ }
237
+ }
239
238
  //# sourceMappingURL=MemoryTracker.js.map