@itwin/frontend-devtools 3.4.0-dev.48 → 3.4.0-dev.55

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 (386) hide show
  1. package/lib/cjs/ClipboardUtilities.d.ts +8 -8
  2. package/lib/cjs/ClipboardUtilities.js +26 -26
  3. package/lib/cjs/ClipboardUtilities.js.map +1 -1
  4. package/lib/cjs/FrontEndDevTools.d.ts +19 -19
  5. package/lib/cjs/FrontEndDevTools.js +219 -219
  6. package/lib/cjs/FrontEndDevTools.js.map +1 -1
  7. package/lib/cjs/effects/Convolution.d.ts +68 -68
  8. package/lib/cjs/effects/Convolution.js +165 -165
  9. package/lib/cjs/effects/Convolution.js.map +1 -1
  10. package/lib/cjs/effects/EffectTools.d.ts +33 -33
  11. package/lib/cjs/effects/EffectTools.js +68 -68
  12. package/lib/cjs/effects/EffectTools.js.map +1 -1
  13. package/lib/cjs/effects/Explosion.d.ts +12 -12
  14. package/lib/cjs/effects/Explosion.js +168 -168
  15. package/lib/cjs/effects/Explosion.js.map +1 -1
  16. package/lib/cjs/effects/FlipImage.d.ts +30 -30
  17. package/lib/cjs/effects/FlipImage.js +99 -99
  18. package/lib/cjs/effects/FlipImage.js.map +1 -1
  19. package/lib/cjs/effects/LensDistortion.d.ts +34 -34
  20. package/lib/cjs/effects/LensDistortion.js +109 -109
  21. package/lib/cjs/effects/LensDistortion.js.map +1 -1
  22. package/lib/cjs/effects/Random.d.ts +24 -24
  23. package/lib/cjs/effects/Random.js +49 -49
  24. package/lib/cjs/effects/Random.js.map +1 -1
  25. package/lib/cjs/effects/Saturation.d.ts +30 -30
  26. package/lib/cjs/effects/Saturation.js +85 -85
  27. package/lib/cjs/effects/Saturation.js.map +1 -1
  28. package/lib/cjs/effects/Snow.d.ts +76 -76
  29. package/lib/cjs/effects/Snow.js +187 -187
  30. package/lib/cjs/effects/Snow.js.map +1 -1
  31. package/lib/cjs/effects/Vignette.d.ts +39 -39
  32. package/lib/cjs/effects/Vignette.js +108 -108
  33. package/lib/cjs/effects/Vignette.js.map +1 -1
  34. package/lib/cjs/frontend-devtools.d.ts +82 -82
  35. package/lib/cjs/frontend-devtools.js +98 -98
  36. package/lib/cjs/frontend-devtools.js.map +1 -1
  37. package/lib/cjs/tools/AnimationIntervalTool.d.ts +15 -15
  38. package/lib/cjs/tools/AnimationIntervalTool.js +30 -30
  39. package/lib/cjs/tools/AnimationIntervalTool.js.map +1 -1
  40. package/lib/cjs/tools/ChangeUnitsTool.d.ts +15 -15
  41. package/lib/cjs/tools/ChangeUnitsTool.js +41 -41
  42. package/lib/cjs/tools/ChangeUnitsTool.js.map +1 -1
  43. package/lib/cjs/tools/ClipTools.d.ts +67 -67
  44. package/lib/cjs/tools/ClipTools.js +164 -164
  45. package/lib/cjs/tools/ClipTools.js.map +1 -1
  46. package/lib/cjs/tools/DisplayStyleTools.d.ts +145 -145
  47. package/lib/cjs/tools/DisplayStyleTools.js +370 -370
  48. package/lib/cjs/tools/DisplayStyleTools.js.map +1 -1
  49. package/lib/cjs/tools/EmphasizeElementsTool.d.ts +60 -60
  50. package/lib/cjs/tools/EmphasizeElementsTool.js +154 -154
  51. package/lib/cjs/tools/EmphasizeElementsTool.js.map +1 -1
  52. package/lib/cjs/tools/FrustumDecoration.d.ts +57 -57
  53. package/lib/cjs/tools/FrustumDecoration.d.ts.map +1 -1
  54. package/lib/cjs/tools/FrustumDecoration.js +374 -371
  55. package/lib/cjs/tools/FrustumDecoration.js.map +1 -1
  56. package/lib/cjs/tools/InspectElementTool.d.ts +42 -42
  57. package/lib/cjs/tools/InspectElementTool.js +198 -198
  58. package/lib/cjs/tools/InspectElementTool.js.map +1 -1
  59. package/lib/cjs/tools/MapLayerTool.d.ts +257 -257
  60. package/lib/cjs/tools/MapLayerTool.js +499 -499
  61. package/lib/cjs/tools/MapLayerTool.js.map +1 -1
  62. package/lib/cjs/tools/MeasureTileLoadTime.d.ts +12 -12
  63. package/lib/cjs/tools/MeasureTileLoadTime.d.ts.map +1 -1
  64. package/lib/cjs/tools/MeasureTileLoadTime.js +63 -60
  65. package/lib/cjs/tools/MeasureTileLoadTime.js.map +1 -1
  66. package/lib/cjs/tools/ModelAppearanceTools.d.ts +86 -86
  67. package/lib/cjs/tools/ModelAppearanceTools.js +183 -183
  68. package/lib/cjs/tools/ModelAppearanceTools.js.map +1 -1
  69. package/lib/cjs/tools/PlanProjectionTools.d.ts +40 -40
  70. package/lib/cjs/tools/PlanProjectionTools.js +149 -149
  71. package/lib/cjs/tools/PlanProjectionTools.js.map +1 -1
  72. package/lib/cjs/tools/PlanarMaskTools.d.ts +182 -182
  73. package/lib/cjs/tools/PlanarMaskTools.d.ts.map +1 -1
  74. package/lib/cjs/tools/PlanarMaskTools.js +393 -390
  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 +116 -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 +70 -70
  87. package/lib/cjs/tools/RenderSystemTools.js.map +1 -1
  88. package/lib/cjs/tools/RenderTargetTools.d.ts +100 -100
  89. package/lib/cjs/tools/RenderTargetTools.js +166 -166
  90. package/lib/cjs/tools/RenderTargetTools.js.map +1 -1
  91. package/lib/cjs/tools/ReportWebGLCompatibilityTool.d.ts +11 -11
  92. package/lib/cjs/tools/ReportWebGLCompatibilityTool.js +30 -30
  93. package/lib/cjs/tools/ReportWebGLCompatibilityTool.js.map +1 -1
  94. package/lib/cjs/tools/SavedViews.d.ts +46 -46
  95. package/lib/cjs/tools/SavedViews.js +136 -136
  96. package/lib/cjs/tools/SavedViews.js.map +1 -1
  97. package/lib/cjs/tools/ScheduleScriptTools.d.ts +37 -37
  98. package/lib/cjs/tools/ScheduleScriptTools.js +159 -159
  99. package/lib/cjs/tools/ScheduleScriptTools.js.map +1 -1
  100. package/lib/cjs/tools/SelectionTools.d.ts +28 -28
  101. package/lib/cjs/tools/SelectionTools.d.ts.map +1 -1
  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 +86 -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.js +516 -516
  121. package/lib/cjs/tools/ViewportTools.js.map +1 -1
  122. package/lib/cjs/tools/parseArgs.d.ts +23 -23
  123. package/lib/cjs/tools/parseArgs.js +51 -51
  124. package/lib/cjs/tools/parseArgs.js.map +1 -1
  125. package/lib/cjs/tools/parseBoolean.d.ts +8 -8
  126. package/lib/cjs/tools/parseBoolean.js +26 -26
  127. package/lib/cjs/tools/parseBoolean.js.map +1 -1
  128. package/lib/cjs/tools/parseToggle.d.ts +8 -8
  129. package/lib/cjs/tools/parseToggle.js +25 -25
  130. package/lib/cjs/tools/parseToggle.js.map +1 -1
  131. package/lib/cjs/ui/Button.d.ts +29 -29
  132. package/lib/cjs/ui/Button.d.ts.map +1 -1
  133. package/lib/cjs/ui/Button.js +26 -26
  134. package/lib/cjs/ui/Button.js.map +1 -1
  135. package/lib/cjs/ui/CheckBox.d.ts +23 -23
  136. package/lib/cjs/ui/CheckBox.js +27 -27
  137. package/lib/cjs/ui/CheckBox.js.map +1 -1
  138. package/lib/cjs/ui/ColorInput.d.ts +27 -27
  139. package/lib/cjs/ui/ColorInput.d.ts.map +1 -1
  140. package/lib/cjs/ui/ColorInput.js +53 -53
  141. package/lib/cjs/ui/ColorInput.js.map +1 -1
  142. package/lib/cjs/ui/ComboBox.d.ts +28 -28
  143. package/lib/cjs/ui/ComboBox.js +42 -42
  144. package/lib/cjs/ui/ComboBox.js.map +1 -1
  145. package/lib/cjs/ui/DataList.d.ts +27 -27
  146. package/lib/cjs/ui/DataList.js +39 -39
  147. package/lib/cjs/ui/DataList.js.map +1 -1
  148. package/lib/cjs/ui/NestedMenu.d.ts +19 -19
  149. package/lib/cjs/ui/NestedMenu.d.ts.map +1 -1
  150. package/lib/cjs/ui/NestedMenu.js +46 -46
  151. package/lib/cjs/ui/NestedMenu.js.map +1 -1
  152. package/lib/cjs/ui/NumericInput.d.ts +34 -34
  153. package/lib/cjs/ui/NumericInput.d.ts.map +1 -1
  154. package/lib/cjs/ui/NumericInput.js +59 -59
  155. package/lib/cjs/ui/NumericInput.js.map +1 -1
  156. package/lib/cjs/ui/RadioBox.d.ts +28 -28
  157. package/lib/cjs/ui/RadioBox.js +76 -76
  158. package/lib/cjs/ui/RadioBox.js.map +1 -1
  159. package/lib/cjs/ui/Slider.d.ts +24 -24
  160. package/lib/cjs/ui/Slider.js +32 -32
  161. package/lib/cjs/ui/Slider.js.map +1 -1
  162. package/lib/cjs/ui/TextBox.d.ts +32 -32
  163. package/lib/cjs/ui/TextBox.js +56 -56
  164. package/lib/cjs/ui/TextBox.js.map +1 -1
  165. package/lib/cjs/widgets/DiagnosticsPanel.d.ts +37 -37
  166. package/lib/cjs/widgets/DiagnosticsPanel.js +81 -81
  167. package/lib/cjs/widgets/DiagnosticsPanel.js.map +1 -1
  168. package/lib/cjs/widgets/FpsTracker.d.ts +19 -19
  169. package/lib/cjs/widgets/FpsTracker.js +56 -56
  170. package/lib/cjs/widgets/FpsTracker.js.map +1 -1
  171. package/lib/cjs/widgets/GpuProfiler.d.ts +16 -16
  172. package/lib/cjs/widgets/GpuProfiler.js +192 -192
  173. package/lib/cjs/widgets/GpuProfiler.js.map +1 -1
  174. package/lib/cjs/widgets/KeyinField.d.ts +61 -61
  175. package/lib/cjs/widgets/KeyinField.js +187 -187
  176. package/lib/cjs/widgets/KeyinField.js.map +1 -1
  177. package/lib/cjs/widgets/MemoryTracker.d.ts +27 -27
  178. package/lib/cjs/widgets/MemoryTracker.js +243 -243
  179. package/lib/cjs/widgets/MemoryTracker.js.map +1 -1
  180. package/lib/cjs/widgets/RenderCommandBreakdown.d.ts +15 -15
  181. package/lib/cjs/widgets/RenderCommandBreakdown.js +68 -68
  182. package/lib/cjs/widgets/RenderCommandBreakdown.js.map +1 -1
  183. package/lib/cjs/widgets/TileMemoryBreakdown.d.ts +30 -30
  184. package/lib/cjs/widgets/TileMemoryBreakdown.js +204 -204
  185. package/lib/cjs/widgets/TileMemoryBreakdown.js.map +1 -1
  186. package/lib/cjs/widgets/TileStatisticsTracker.d.ts +21 -21
  187. package/lib/cjs/widgets/TileStatisticsTracker.js +142 -142
  188. package/lib/cjs/widgets/TileStatisticsTracker.js.map +1 -1
  189. package/lib/cjs/widgets/ToolSettingsTracker.d.ts +9 -9
  190. package/lib/cjs/widgets/ToolSettingsTracker.d.ts.map +1 -1
  191. package/lib/cjs/widgets/ToolSettingsTracker.js +211 -181
  192. package/lib/cjs/widgets/ToolSettingsTracker.js.map +1 -1
  193. package/lib/esm/ClipboardUtilities.d.ts +8 -8
  194. package/lib/esm/ClipboardUtilities.js +22 -22
  195. package/lib/esm/ClipboardUtilities.js.map +1 -1
  196. package/lib/esm/FrontEndDevTools.d.ts +19 -19
  197. package/lib/esm/FrontEndDevTools.js +215 -215
  198. package/lib/esm/FrontEndDevTools.js.map +1 -1
  199. package/lib/esm/effects/Convolution.d.ts +68 -68
  200. package/lib/esm/effects/Convolution.js +155 -155
  201. package/lib/esm/effects/Convolution.js.map +1 -1
  202. package/lib/esm/effects/EffectTools.d.ts +33 -33
  203. package/lib/esm/effects/EffectTools.js +62 -62
  204. package/lib/esm/effects/EffectTools.js.map +1 -1
  205. package/lib/esm/effects/Explosion.d.ts +12 -12
  206. package/lib/esm/effects/Explosion.js +164 -164
  207. package/lib/esm/effects/Explosion.js.map +1 -1
  208. package/lib/esm/effects/FlipImage.d.ts +30 -30
  209. package/lib/esm/effects/FlipImage.js +94 -94
  210. package/lib/esm/effects/FlipImage.js.map +1 -1
  211. package/lib/esm/effects/LensDistortion.d.ts +34 -34
  212. package/lib/esm/effects/LensDistortion.js +104 -104
  213. package/lib/esm/effects/LensDistortion.js.map +1 -1
  214. package/lib/esm/effects/Random.d.ts +24 -24
  215. package/lib/esm/effects/Random.js +41 -41
  216. package/lib/esm/effects/Random.js.map +1 -1
  217. package/lib/esm/effects/Saturation.d.ts +30 -30
  218. package/lib/esm/effects/Saturation.js +80 -80
  219. package/lib/esm/effects/Saturation.js.map +1 -1
  220. package/lib/esm/effects/Snow.d.ts +76 -76
  221. package/lib/esm/effects/Snow.js +182 -182
  222. package/lib/esm/effects/Snow.js.map +1 -1
  223. package/lib/esm/effects/Vignette.d.ts +39 -39
  224. package/lib/esm/effects/Vignette.js +103 -103
  225. package/lib/esm/effects/Vignette.js.map +1 -1
  226. package/lib/esm/frontend-devtools.d.ts +82 -82
  227. package/lib/esm/frontend-devtools.js +86 -86
  228. package/lib/esm/frontend-devtools.js.map +1 -1
  229. package/lib/esm/tools/AnimationIntervalTool.d.ts +15 -15
  230. package/lib/esm/tools/AnimationIntervalTool.js +26 -26
  231. package/lib/esm/tools/AnimationIntervalTool.js.map +1 -1
  232. package/lib/esm/tools/ChangeUnitsTool.d.ts +15 -15
  233. package/lib/esm/tools/ChangeUnitsTool.js +37 -37
  234. package/lib/esm/tools/ChangeUnitsTool.js.map +1 -1
  235. package/lib/esm/tools/ClipTools.d.ts +67 -67
  236. package/lib/esm/tools/ClipTools.js +158 -158
  237. package/lib/esm/tools/ClipTools.js.map +1 -1
  238. package/lib/esm/tools/DisplayStyleTools.d.ts +145 -145
  239. package/lib/esm/tools/DisplayStyleTools.js +356 -356
  240. package/lib/esm/tools/DisplayStyleTools.js.map +1 -1
  241. package/lib/esm/tools/EmphasizeElementsTool.d.ts +60 -60
  242. package/lib/esm/tools/EmphasizeElementsTool.js +145 -145
  243. package/lib/esm/tools/EmphasizeElementsTool.js.map +1 -1
  244. package/lib/esm/tools/FrustumDecoration.d.ts +57 -57
  245. package/lib/esm/tools/FrustumDecoration.d.ts.map +1 -1
  246. package/lib/esm/tools/FrustumDecoration.js +367 -364
  247. package/lib/esm/tools/FrustumDecoration.js.map +1 -1
  248. package/lib/esm/tools/InspectElementTool.d.ts +42 -42
  249. package/lib/esm/tools/InspectElementTool.js +194 -194
  250. package/lib/esm/tools/InspectElementTool.js.map +1 -1
  251. package/lib/esm/tools/MapLayerTool.d.ts +257 -257
  252. package/lib/esm/tools/MapLayerTool.js +478 -478
  253. package/lib/esm/tools/MapLayerTool.js.map +1 -1
  254. package/lib/esm/tools/MeasureTileLoadTime.d.ts +12 -12
  255. package/lib/esm/tools/MeasureTileLoadTime.d.ts.map +1 -1
  256. package/lib/esm/tools/MeasureTileLoadTime.js +59 -56
  257. package/lib/esm/tools/MeasureTileLoadTime.js.map +1 -1
  258. package/lib/esm/tools/ModelAppearanceTools.d.ts +86 -86
  259. package/lib/esm/tools/ModelAppearanceTools.js +172 -172
  260. package/lib/esm/tools/ModelAppearanceTools.js.map +1 -1
  261. package/lib/esm/tools/PlanProjectionTools.d.ts +40 -40
  262. package/lib/esm/tools/PlanProjectionTools.js +143 -143
  263. package/lib/esm/tools/PlanProjectionTools.js.map +1 -1
  264. package/lib/esm/tools/PlanarMaskTools.d.ts +182 -182
  265. package/lib/esm/tools/PlanarMaskTools.d.ts.map +1 -1
  266. package/lib/esm/tools/PlanarMaskTools.js +377 -374
  267. package/lib/esm/tools/PlanarMaskTools.js.map +1 -1
  268. package/lib/esm/tools/ProjectExtents.d.ts +41 -41
  269. package/lib/esm/tools/ProjectExtents.js +104 -104
  270. package/lib/esm/tools/ProjectExtents.js.map +1 -1
  271. package/lib/esm/tools/RealityModelTools.d.ts +116 -116
  272. package/lib/esm/tools/RealityModelTools.js +268 -268
  273. package/lib/esm/tools/RealityModelTools.js.map +1 -1
  274. package/lib/esm/tools/RealityTransitionTool.d.ts +25 -25
  275. package/lib/esm/tools/RealityTransitionTool.js +112 -112
  276. package/lib/esm/tools/RealityTransitionTool.js.map +1 -1
  277. package/lib/esm/tools/RenderSystemTools.d.ts +38 -38
  278. package/lib/esm/tools/RenderSystemTools.js +63 -63
  279. package/lib/esm/tools/RenderSystemTools.js.map +1 -1
  280. package/lib/esm/tools/RenderTargetTools.d.ts +100 -100
  281. package/lib/esm/tools/RenderTargetTools.js +152 -152
  282. package/lib/esm/tools/RenderTargetTools.js.map +1 -1
  283. package/lib/esm/tools/ReportWebGLCompatibilityTool.d.ts +11 -11
  284. package/lib/esm/tools/ReportWebGLCompatibilityTool.js +26 -26
  285. package/lib/esm/tools/ReportWebGLCompatibilityTool.js.map +1 -1
  286. package/lib/esm/tools/SavedViews.d.ts +46 -46
  287. package/lib/esm/tools/SavedViews.js +128 -128
  288. package/lib/esm/tools/SavedViews.js.map +1 -1
  289. package/lib/esm/tools/ScheduleScriptTools.d.ts +37 -37
  290. package/lib/esm/tools/ScheduleScriptTools.js +153 -153
  291. package/lib/esm/tools/ScheduleScriptTools.js.map +1 -1
  292. package/lib/esm/tools/SelectionTools.d.ts +28 -28
  293. package/lib/esm/tools/SelectionTools.d.ts.map +1 -1
  294. package/lib/esm/tools/SelectionTools.js +82 -82
  295. package/lib/esm/tools/SelectionTools.js.map +1 -1
  296. package/lib/esm/tools/SetGpuMemoryLimitTool.d.ts +15 -15
  297. package/lib/esm/tools/SetGpuMemoryLimitTool.js +29 -29
  298. package/lib/esm/tools/SetGpuMemoryLimitTool.js.map +1 -1
  299. package/lib/esm/tools/SourceAspectIdTools.d.ts +40 -40
  300. package/lib/esm/tools/SourceAspectIdTools.js +80 -80
  301. package/lib/esm/tools/SourceAspectIdTools.js.map +1 -1
  302. package/lib/esm/tools/TileRequestDecoration.d.ts +12 -12
  303. package/lib/esm/tools/TileRequestDecoration.js +79 -79
  304. package/lib/esm/tools/TileRequestDecoration.js.map +1 -1
  305. package/lib/esm/tools/TileTreeBoundsDecoration.d.ts +11 -11
  306. package/lib/esm/tools/TileTreeBoundsDecoration.js +70 -70
  307. package/lib/esm/tools/TileTreeBoundsDecoration.js.map +1 -1
  308. package/lib/esm/tools/ToolTipProvider.d.ts +15 -15
  309. package/lib/esm/tools/ToolTipProvider.js +62 -62
  310. package/lib/esm/tools/ToolTipProvider.js.map +1 -1
  311. package/lib/esm/tools/ViewportTools.d.ts +218 -218
  312. package/lib/esm/tools/ViewportTools.js +492 -492
  313. package/lib/esm/tools/ViewportTools.js.map +1 -1
  314. package/lib/esm/tools/parseArgs.d.ts +23 -23
  315. package/lib/esm/tools/parseArgs.js +47 -47
  316. package/lib/esm/tools/parseArgs.js.map +1 -1
  317. package/lib/esm/tools/parseBoolean.d.ts +8 -8
  318. package/lib/esm/tools/parseBoolean.js +22 -22
  319. package/lib/esm/tools/parseBoolean.js.map +1 -1
  320. package/lib/esm/tools/parseToggle.d.ts +8 -8
  321. package/lib/esm/tools/parseToggle.js +21 -21
  322. package/lib/esm/tools/parseToggle.js.map +1 -1
  323. package/lib/esm/ui/Button.d.ts +29 -29
  324. package/lib/esm/ui/Button.d.ts.map +1 -1
  325. package/lib/esm/ui/Button.js +22 -22
  326. package/lib/esm/ui/Button.js.map +1 -1
  327. package/lib/esm/ui/CheckBox.d.ts +23 -23
  328. package/lib/esm/ui/CheckBox.js +23 -23
  329. package/lib/esm/ui/CheckBox.js.map +1 -1
  330. package/lib/esm/ui/ColorInput.d.ts +27 -27
  331. package/lib/esm/ui/ColorInput.d.ts.map +1 -1
  332. package/lib/esm/ui/ColorInput.js +48 -48
  333. package/lib/esm/ui/ColorInput.js.map +1 -1
  334. package/lib/esm/ui/ComboBox.d.ts +28 -28
  335. package/lib/esm/ui/ComboBox.js +38 -38
  336. package/lib/esm/ui/ComboBox.js.map +1 -1
  337. package/lib/esm/ui/DataList.d.ts +27 -27
  338. package/lib/esm/ui/DataList.js +34 -34
  339. package/lib/esm/ui/DataList.js.map +1 -1
  340. package/lib/esm/ui/NestedMenu.d.ts +19 -19
  341. package/lib/esm/ui/NestedMenu.d.ts.map +1 -1
  342. package/lib/esm/ui/NestedMenu.js +42 -42
  343. package/lib/esm/ui/NestedMenu.js.map +1 -1
  344. package/lib/esm/ui/NumericInput.d.ts +34 -34
  345. package/lib/esm/ui/NumericInput.d.ts.map +1 -1
  346. package/lib/esm/ui/NumericInput.js +54 -54
  347. package/lib/esm/ui/NumericInput.js.map +1 -1
  348. package/lib/esm/ui/RadioBox.d.ts +28 -28
  349. package/lib/esm/ui/RadioBox.js +72 -72
  350. package/lib/esm/ui/RadioBox.js.map +1 -1
  351. package/lib/esm/ui/Slider.d.ts +24 -24
  352. package/lib/esm/ui/Slider.js +28 -28
  353. package/lib/esm/ui/Slider.js.map +1 -1
  354. package/lib/esm/ui/TextBox.d.ts +32 -32
  355. package/lib/esm/ui/TextBox.js +52 -52
  356. package/lib/esm/ui/TextBox.js.map +1 -1
  357. package/lib/esm/widgets/DiagnosticsPanel.d.ts +37 -37
  358. package/lib/esm/widgets/DiagnosticsPanel.js +77 -77
  359. package/lib/esm/widgets/DiagnosticsPanel.js.map +1 -1
  360. package/lib/esm/widgets/FpsTracker.d.ts +19 -19
  361. package/lib/esm/widgets/FpsTracker.js +52 -52
  362. package/lib/esm/widgets/FpsTracker.js.map +1 -1
  363. package/lib/esm/widgets/GpuProfiler.d.ts +16 -16
  364. package/lib/esm/widgets/GpuProfiler.js +188 -188
  365. package/lib/esm/widgets/GpuProfiler.js.map +1 -1
  366. package/lib/esm/widgets/KeyinField.d.ts +61 -61
  367. package/lib/esm/widgets/KeyinField.js +183 -183
  368. package/lib/esm/widgets/KeyinField.js.map +1 -1
  369. package/lib/esm/widgets/MemoryTracker.d.ts +27 -27
  370. package/lib/esm/widgets/MemoryTracker.js +238 -238
  371. package/lib/esm/widgets/MemoryTracker.js.map +1 -1
  372. package/lib/esm/widgets/RenderCommandBreakdown.d.ts +15 -15
  373. package/lib/esm/widgets/RenderCommandBreakdown.js +64 -64
  374. package/lib/esm/widgets/RenderCommandBreakdown.js.map +1 -1
  375. package/lib/esm/widgets/TileMemoryBreakdown.d.ts +30 -30
  376. package/lib/esm/widgets/TileMemoryBreakdown.js +200 -200
  377. package/lib/esm/widgets/TileMemoryBreakdown.js.map +1 -1
  378. package/lib/esm/widgets/TileStatisticsTracker.d.ts +21 -21
  379. package/lib/esm/widgets/TileStatisticsTracker.js +138 -138
  380. package/lib/esm/widgets/TileStatisticsTracker.js.map +1 -1
  381. package/lib/esm/widgets/ToolSettingsTracker.d.ts +9 -9
  382. package/lib/esm/widgets/ToolSettingsTracker.d.ts.map +1 -1
  383. package/lib/esm/widgets/ToolSettingsTracker.js +207 -177
  384. package/lib/esm/widgets/ToolSettingsTracker.js.map +1 -1
  385. package/lib/public/locales/en/FrontendDevTools.json +479 -479
  386. package/package.json +7 -7
@@ -1,62 +1,62 @@
1
- import { DataList } from "../ui/DataList";
2
- import { TextBox } from "../ui/TextBox";
3
- /** Controls whether localized and/or non-localized key-in strings appear in a KeyinField's auto-completion list.
4
- * @beta
5
- */
6
- export declare enum KeyinFieldLocalization {
7
- /** Include only non-localized key-in strings. */
8
- NonLocalized = 0,
9
- /** Include only localized key-in strings. */
10
- Localized = 1,
11
- /** Include localized and non-localized strings for each key-in. */
12
- Both = 2
13
- }
14
- /** Properties controlling how a KeyinField is created.
15
- * @beta
16
- */
17
- export interface KeyinFieldProps {
18
- /** If supplied, the keyin field's elements will be added as children of this parent element. */
19
- parent?: HTMLElement;
20
- /** Required, unique ID prefix used to produce unique IDs for child elements. */
21
- baseId: string;
22
- /** Default: false. */
23
- wantButton?: boolean;
24
- /** Default: false. */
25
- wantLabel?: boolean;
26
- /** The maximum number of submitted key-ins to store in the history.
27
- * If greater than zero, pressing up/down while the KeyinField has focus will move backwards/forwards through the history.
28
- * Default: zero;
29
- */
30
- historyLength?: number;
31
- /** Controls whether localized and/or non-localized keyin strings appear in the autocompletion list.
32
- * Note: the KeyinField will still accept either localized or non-localized strings; this option only controls what is displayed in the auto-completion list.
33
- * Default: non-localized
34
- */
35
- localization?: KeyinFieldLocalization;
36
- }
37
- /** 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.
38
- * Press `enter` or click the Enter button to run the key-in.
39
- * @beta
40
- */
41
- export declare class KeyinField {
42
- /** @alpha */
43
- readonly autoCompleteList: DataList;
44
- readonly textBox: TextBox;
45
- readonly keyins: string[];
46
- private _historyIndex?;
47
- private _historyLength;
48
- private readonly _history;
49
- private readonly _localization;
50
- constructor(props: KeyinFieldProps);
51
- focus(): void;
52
- loseFocus(): void;
53
- selectAll(): void;
54
- private handleKeyPress;
55
- private handleKeyDown;
56
- private resetHistoryIndex;
57
- private pushHistory;
58
- private submitKeyin;
59
- private respondToKeyinFocus;
60
- private findKeyins;
61
- }
1
+ import { DataList } from "../ui/DataList";
2
+ import { TextBox } from "../ui/TextBox";
3
+ /** Controls whether localized and/or non-localized key-in strings appear in a KeyinField's auto-completion list.
4
+ * @beta
5
+ */
6
+ export declare enum KeyinFieldLocalization {
7
+ /** Include only non-localized key-in strings. */
8
+ NonLocalized = 0,
9
+ /** Include only localized key-in strings. */
10
+ Localized = 1,
11
+ /** Include localized and non-localized strings for each key-in. */
12
+ Both = 2
13
+ }
14
+ /** Properties controlling how a KeyinField is created.
15
+ * @beta
16
+ */
17
+ export interface KeyinFieldProps {
18
+ /** If supplied, the keyin field's elements will be added as children of this parent element. */
19
+ parent?: HTMLElement;
20
+ /** Required, unique ID prefix used to produce unique IDs for child elements. */
21
+ baseId: string;
22
+ /** Default: false. */
23
+ wantButton?: boolean;
24
+ /** Default: false. */
25
+ wantLabel?: boolean;
26
+ /** The maximum number of submitted key-ins to store in the history.
27
+ * If greater than zero, pressing up/down while the KeyinField has focus will move backwards/forwards through the history.
28
+ * Default: zero;
29
+ */
30
+ historyLength?: number;
31
+ /** Controls whether localized and/or non-localized keyin strings appear in the autocompletion list.
32
+ * Note: the KeyinField will still accept either localized or non-localized strings; this option only controls what is displayed in the auto-completion list.
33
+ * Default: non-localized
34
+ */
35
+ localization?: KeyinFieldLocalization;
36
+ }
37
+ /** 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.
38
+ * Press `enter` or click the Enter button to run the key-in.
39
+ * @beta
40
+ */
41
+ export declare class KeyinField {
42
+ /** @alpha */
43
+ readonly autoCompleteList: DataList;
44
+ readonly textBox: TextBox;
45
+ readonly keyins: string[];
46
+ private _historyIndex?;
47
+ private _historyLength;
48
+ private readonly _history;
49
+ private readonly _localization;
50
+ constructor(props: KeyinFieldProps);
51
+ focus(): void;
52
+ loseFocus(): void;
53
+ selectAll(): void;
54
+ private handleKeyPress;
55
+ private handleKeyDown;
56
+ private resetHistoryIndex;
57
+ private pushHistory;
58
+ private submitKeyin;
59
+ private respondToKeyinFocus;
60
+ private findKeyins;
61
+ }
62
62
  //# sourceMappingURL=KeyinField.d.ts.map
@@ -1,184 +1,184 @@
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 { IModelApp, MessageBoxIconType, MessageBoxType, ParseAndRunResult } from "@itwin/core-frontend";
9
- import { createButton } from "../ui/Button";
10
- import { appendDataListEntries, createDataList } from "../ui/DataList";
11
- import { createTextBox } from "../ui/TextBox";
12
- function keyinsToDataListEntries(keyins) {
13
- const entries = [];
14
- for (const keyin of keyins) {
15
- entries.push({ value: keyin });
16
- }
17
- return entries;
18
- }
19
- /** Controls whether localized and/or non-localized key-in strings appear in a KeyinField's auto-completion list.
20
- * @beta
21
- */
22
- export var KeyinFieldLocalization;
23
- (function (KeyinFieldLocalization) {
24
- /** Include only non-localized key-in strings. */
25
- KeyinFieldLocalization[KeyinFieldLocalization["NonLocalized"] = 0] = "NonLocalized";
26
- /** Include only localized key-in strings. */
27
- KeyinFieldLocalization[KeyinFieldLocalization["Localized"] = 1] = "Localized";
28
- /** Include localized and non-localized strings for each key-in. */
29
- KeyinFieldLocalization[KeyinFieldLocalization["Both"] = 2] = "Both";
30
- })(KeyinFieldLocalization || (KeyinFieldLocalization = {}));
31
- /** 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.
32
- * Press `enter` or click the Enter button to run the key-in.
33
- * @beta
34
- */
35
- export class KeyinField {
36
- constructor(props) {
37
- var _a;
38
- this._historyLength = 0;
39
- this._localization = (_a = props.localization) !== null && _a !== void 0 ? _a : KeyinFieldLocalization.NonLocalized;
40
- this.keyins = this.findKeyins();
41
- const autoCompleteListId = `${props.baseId}_autoComplete`;
42
- this.autoCompleteList = createDataList({
43
- parent: props.parent,
44
- entries: keyinsToDataListEntries(this.keyins),
45
- id: autoCompleteListId,
46
- inline: true,
47
- });
48
- this.textBox = createTextBox({
49
- label: props.wantLabel ? "Key-in: " : undefined,
50
- id: `${props.baseId}_textBox`,
51
- parent: props.parent,
52
- handler: () => this.selectAll(),
53
- keypresshandler: async (_tb, ev) => { await this.handleKeyPress(ev); },
54
- focushandler: (_tb) => { this.respondToKeyinFocus(); },
55
- tooltip: "Type the key-in text here",
56
- inline: true,
57
- list: autoCompleteListId,
58
- });
59
- if (props.wantButton) {
60
- createButton({
61
- handler: async (_bt) => { await this.submitKeyin(); },
62
- parent: props.parent,
63
- value: "Enter",
64
- inline: true,
65
- tooltip: "Click here to execute the key-in",
66
- });
67
- }
68
- if (undefined !== props.historyLength && props.historyLength > 0) {
69
- this.textBox.textbox.onkeydown = (ev) => this.handleKeyDown(ev); // eslint-disable-line @typescript-eslint/promise-function-async
70
- this._historyLength = props.historyLength;
71
- this._history = [];
72
- }
73
- }
74
- focus() { this.textBox.textbox.focus(); }
75
- loseFocus() { this.textBox.textbox.blur(); }
76
- selectAll() {
77
- this.textBox.textbox.setSelectionRange(0, this.textBox.textbox.value.length);
78
- }
79
- async handleKeyPress(ev) {
80
- ev.stopPropagation();
81
- if ("Enter" === ev.key)
82
- await this.submitKeyin();
83
- }
84
- async handleKeyDown(ev) {
85
- ev.stopPropagation();
86
- if (undefined === this._history || 0 === this._history.length)
87
- return;
88
- // NB: History list is ordered by most to least recent so moving "backwards" means incrementing the index.
89
- const direction = ev.key === "ArrowDown" ? 1 : (ev.key === "ArrowUp" ? 1 : 0);
90
- if (0 === direction)
91
- return;
92
- ev.preventDefault();
93
- ev.stopPropagation();
94
- if (this._historyIndex === undefined) {
95
- if (direction < 0)
96
- return;
97
- else
98
- this._historyIndex = -1;
99
- }
100
- const newIndex = this._historyIndex + direction;
101
- if (newIndex >= 0 && newIndex < this._history.length) {
102
- this._historyIndex = newIndex;
103
- if (this._historyIndex >= 0)
104
- this.textBox.textbox.value = this._history[newIndex];
105
- }
106
- }
107
- resetHistoryIndex() {
108
- this._historyIndex = undefined;
109
- }
110
- pushHistory(keyin) {
111
- if (undefined === this._history)
112
- return;
113
- this.textBox.textbox.value = "";
114
- this.resetHistoryIndex();
115
- if (this._history.length === 0 || keyin.toLowerCase() !== this._history[0].toLowerCase()) {
116
- this._history.unshift(keyin);
117
- if (this._history.length > this._historyLength)
118
- this._history.pop();
119
- }
120
- }
121
- async submitKeyin() {
122
- this.selectAll();
123
- const textBox = this.textBox.textbox;
124
- const input = textBox.value;
125
- this.pushHistory(input);
126
- let message;
127
- try {
128
- switch (await IModelApp.tools.parseAndRun(input)) {
129
- case ParseAndRunResult.ToolNotFound:
130
- message = `Cannot find a key-in that matches: ${input}`;
131
- break;
132
- case ParseAndRunResult.BadArgumentCount:
133
- message = "Incorrect number of arguments";
134
- break;
135
- case ParseAndRunResult.FailedToRun:
136
- message = "Key-in failed to run";
137
- break;
138
- }
139
- }
140
- catch (ex) {
141
- message = `Key-in produced exception: ${ex}`;
142
- }
143
- if (undefined !== message)
144
- await IModelApp.notifications.openMessageBox(MessageBoxType.MediumAlert, message, MessageBoxIconType.Warning);
145
- }
146
- respondToKeyinFocus() {
147
- this.resetHistoryIndex();
148
- // Handle case in which new tools were registered since we last populated the auto-complete list.
149
- // This can occur e.g. as a result of loading a extension, or deferred initialization of a package like markup.
150
- const keyins = this.findKeyins();
151
- if (keyins.length > this.keyins.length) {
152
- const newKeyins = [];
153
- for (const keyin of keyins)
154
- if (!this.keyins.includes(keyin)) {
155
- newKeyins.push(keyin);
156
- this.keyins.push(keyin);
157
- }
158
- if (newKeyins.length > 0)
159
- appendDataListEntries(this.autoCompleteList, keyinsToDataListEntries(newKeyins));
160
- }
161
- }
162
- findKeyins() {
163
- const keyins = [];
164
- const tools = IModelApp.tools.getToolList();
165
- for (const tool of tools) {
166
- switch (this._localization) {
167
- case KeyinFieldLocalization.Localized:
168
- keyins.push(tool.keyin);
169
- break;
170
- case KeyinFieldLocalization.Both:
171
- keyins.push(tool.keyin);
172
- if (tool.keyin === tool.englishKeyin)
173
- break;
174
- /* falls through */
175
- default:
176
- case KeyinFieldLocalization.NonLocalized:
177
- keyins.push(tool.englishKeyin);
178
- break;
179
- }
180
- }
181
- return keyins;
182
- }
183
- }
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 { IModelApp, MessageBoxIconType, MessageBoxType, ParseAndRunResult } from "@itwin/core-frontend";
9
+ import { createButton } from "../ui/Button";
10
+ import { appendDataListEntries, createDataList } from "../ui/DataList";
11
+ import { createTextBox } from "../ui/TextBox";
12
+ function keyinsToDataListEntries(keyins) {
13
+ const entries = [];
14
+ for (const keyin of keyins) {
15
+ entries.push({ value: keyin });
16
+ }
17
+ return entries;
18
+ }
19
+ /** Controls whether localized and/or non-localized key-in strings appear in a KeyinField's auto-completion list.
20
+ * @beta
21
+ */
22
+ export var KeyinFieldLocalization;
23
+ (function (KeyinFieldLocalization) {
24
+ /** Include only non-localized key-in strings. */
25
+ KeyinFieldLocalization[KeyinFieldLocalization["NonLocalized"] = 0] = "NonLocalized";
26
+ /** Include only localized key-in strings. */
27
+ KeyinFieldLocalization[KeyinFieldLocalization["Localized"] = 1] = "Localized";
28
+ /** Include localized and non-localized strings for each key-in. */
29
+ KeyinFieldLocalization[KeyinFieldLocalization["Both"] = 2] = "Both";
30
+ })(KeyinFieldLocalization || (KeyinFieldLocalization = {}));
31
+ /** 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.
32
+ * Press `enter` or click the Enter button to run the key-in.
33
+ * @beta
34
+ */
35
+ export class KeyinField {
36
+ constructor(props) {
37
+ var _a;
38
+ this._historyLength = 0;
39
+ this._localization = (_a = props.localization) !== null && _a !== void 0 ? _a : KeyinFieldLocalization.NonLocalized;
40
+ this.keyins = this.findKeyins();
41
+ const autoCompleteListId = `${props.baseId}_autoComplete`;
42
+ this.autoCompleteList = createDataList({
43
+ parent: props.parent,
44
+ entries: keyinsToDataListEntries(this.keyins),
45
+ id: autoCompleteListId,
46
+ inline: true,
47
+ });
48
+ this.textBox = createTextBox({
49
+ label: props.wantLabel ? "Key-in: " : undefined,
50
+ id: `${props.baseId}_textBox`,
51
+ parent: props.parent,
52
+ handler: () => this.selectAll(),
53
+ keypresshandler: async (_tb, ev) => { await this.handleKeyPress(ev); },
54
+ focushandler: (_tb) => { this.respondToKeyinFocus(); },
55
+ tooltip: "Type the key-in text here",
56
+ inline: true,
57
+ list: autoCompleteListId,
58
+ });
59
+ if (props.wantButton) {
60
+ createButton({
61
+ handler: async (_bt) => { await this.submitKeyin(); },
62
+ parent: props.parent,
63
+ value: "Enter",
64
+ inline: true,
65
+ tooltip: "Click here to execute the key-in",
66
+ });
67
+ }
68
+ if (undefined !== props.historyLength && props.historyLength > 0) {
69
+ this.textBox.textbox.onkeydown = (ev) => this.handleKeyDown(ev); // eslint-disable-line @typescript-eslint/promise-function-async
70
+ this._historyLength = props.historyLength;
71
+ this._history = [];
72
+ }
73
+ }
74
+ focus() { this.textBox.textbox.focus(); }
75
+ loseFocus() { this.textBox.textbox.blur(); }
76
+ selectAll() {
77
+ this.textBox.textbox.setSelectionRange(0, this.textBox.textbox.value.length);
78
+ }
79
+ async handleKeyPress(ev) {
80
+ ev.stopPropagation();
81
+ if ("Enter" === ev.key)
82
+ await this.submitKeyin();
83
+ }
84
+ async handleKeyDown(ev) {
85
+ ev.stopPropagation();
86
+ if (undefined === this._history || 0 === this._history.length)
87
+ return;
88
+ // NB: History list is ordered by most to least recent so moving "backwards" means incrementing the index.
89
+ const direction = ev.key === "ArrowDown" ? 1 : (ev.key === "ArrowUp" ? 1 : 0);
90
+ if (0 === direction)
91
+ return;
92
+ ev.preventDefault();
93
+ ev.stopPropagation();
94
+ if (this._historyIndex === undefined) {
95
+ if (direction < 0)
96
+ return;
97
+ else
98
+ this._historyIndex = -1;
99
+ }
100
+ const newIndex = this._historyIndex + direction;
101
+ if (newIndex >= 0 && newIndex < this._history.length) {
102
+ this._historyIndex = newIndex;
103
+ if (this._historyIndex >= 0)
104
+ this.textBox.textbox.value = this._history[newIndex];
105
+ }
106
+ }
107
+ resetHistoryIndex() {
108
+ this._historyIndex = undefined;
109
+ }
110
+ pushHistory(keyin) {
111
+ if (undefined === this._history)
112
+ return;
113
+ this.textBox.textbox.value = "";
114
+ this.resetHistoryIndex();
115
+ if (this._history.length === 0 || keyin.toLowerCase() !== this._history[0].toLowerCase()) {
116
+ this._history.unshift(keyin);
117
+ if (this._history.length > this._historyLength)
118
+ this._history.pop();
119
+ }
120
+ }
121
+ async submitKeyin() {
122
+ this.selectAll();
123
+ const textBox = this.textBox.textbox;
124
+ const input = textBox.value;
125
+ this.pushHistory(input);
126
+ let message;
127
+ try {
128
+ switch (await IModelApp.tools.parseAndRun(input)) {
129
+ case ParseAndRunResult.ToolNotFound:
130
+ message = `Cannot find a key-in that matches: ${input}`;
131
+ break;
132
+ case ParseAndRunResult.BadArgumentCount:
133
+ message = "Incorrect number of arguments";
134
+ break;
135
+ case ParseAndRunResult.FailedToRun:
136
+ message = "Key-in failed to run";
137
+ break;
138
+ }
139
+ }
140
+ catch (ex) {
141
+ message = `Key-in produced exception: ${ex}`;
142
+ }
143
+ if (undefined !== message)
144
+ await IModelApp.notifications.openMessageBox(MessageBoxType.MediumAlert, message, MessageBoxIconType.Warning);
145
+ }
146
+ respondToKeyinFocus() {
147
+ this.resetHistoryIndex();
148
+ // Handle case in which new tools were registered since we last populated the auto-complete list.
149
+ // This can occur e.g. as a result of loading a extension, or deferred initialization of a package like markup.
150
+ const keyins = this.findKeyins();
151
+ if (keyins.length > this.keyins.length) {
152
+ const newKeyins = [];
153
+ for (const keyin of keyins)
154
+ if (!this.keyins.includes(keyin)) {
155
+ newKeyins.push(keyin);
156
+ this.keyins.push(keyin);
157
+ }
158
+ if (newKeyins.length > 0)
159
+ appendDataListEntries(this.autoCompleteList, keyinsToDataListEntries(newKeyins));
160
+ }
161
+ }
162
+ findKeyins() {
163
+ const keyins = [];
164
+ const tools = IModelApp.tools.getToolList();
165
+ for (const tool of tools) {
166
+ switch (this._localization) {
167
+ case KeyinFieldLocalization.Localized:
168
+ keyins.push(tool.keyin);
169
+ break;
170
+ case KeyinFieldLocalization.Both:
171
+ keyins.push(tool.keyin);
172
+ if (tool.keyin === tool.englishKeyin)
173
+ break;
174
+ /* falls through */
175
+ default:
176
+ case KeyinFieldLocalization.NonLocalized:
177
+ keyins.push(tool.englishKeyin);
178
+ break;
179
+ }
180
+ }
181
+ return keyins;
182
+ }
183
+ }
184
184
  //# sourceMappingURL=KeyinField.js.map
@@ -1 +1 @@
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
+ {"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,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