@itwin/frontend-devtools 3.6.0-dev.8 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/CHANGELOG.md +33 -1
  2. package/LICENSE.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 +68 -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 +98 -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 +164 -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 +370 -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.js +507 -507
  62. package/lib/cjs/tools/MapLayerTool.js.map +1 -1
  63. package/lib/cjs/tools/MeasureTileLoadTime.d.ts +12 -12
  64. package/lib/cjs/tools/MeasureTileLoadTime.js +63 -63
  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.js +393 -393
  74. package/lib/cjs/tools/PlanarMaskTools.js.map +1 -1
  75. package/lib/cjs/tools/ProjectExtents.d.ts +41 -41
  76. package/lib/cjs/tools/ProjectExtents.js +110 -110
  77. package/lib/cjs/tools/ProjectExtents.js.map +1 -1
  78. package/lib/cjs/tools/RealityModelTools.d.ts +116 -116
  79. package/lib/cjs/tools/RealityModelTools.js +281 -281
  80. package/lib/cjs/tools/RealityModelTools.js.map +1 -1
  81. package/lib/cjs/tools/RealityTransitionTool.d.ts +25 -25
  82. package/lib/cjs/tools/RealityTransitionTool.js +116 -116
  83. package/lib/cjs/tools/RealityTransitionTool.js.map +1 -1
  84. package/lib/cjs/tools/RenderSystemTools.d.ts +38 -38
  85. package/lib/cjs/tools/RenderSystemTools.js +70 -70
  86. package/lib/cjs/tools/RenderSystemTools.js.map +1 -1
  87. package/lib/cjs/tools/RenderTargetTools.d.ts +107 -107
  88. package/lib/cjs/tools/RenderTargetTools.js +174 -174
  89. package/lib/cjs/tools/RenderTargetTools.js.map +1 -1
  90. package/lib/cjs/tools/ReportWebGLCompatibilityTool.d.ts +11 -11
  91. package/lib/cjs/tools/ReportWebGLCompatibilityTool.js +30 -30
  92. package/lib/cjs/tools/ReportWebGLCompatibilityTool.js.map +1 -1
  93. package/lib/cjs/tools/SavedViews.d.ts +46 -46
  94. package/lib/cjs/tools/SavedViews.js +136 -136
  95. package/lib/cjs/tools/SavedViews.js.map +1 -1
  96. package/lib/cjs/tools/ScheduleScriptTools.d.ts +37 -37
  97. package/lib/cjs/tools/ScheduleScriptTools.js +159 -159
  98. package/lib/cjs/tools/ScheduleScriptTools.js.map +1 -1
  99. package/lib/cjs/tools/SelectionTools.d.ts +28 -28
  100. package/lib/cjs/tools/SelectionTools.js +87 -87
  101. package/lib/cjs/tools/SelectionTools.js.map +1 -1
  102. package/lib/cjs/tools/SetGpuMemoryLimitTool.d.ts +15 -15
  103. package/lib/cjs/tools/SetGpuMemoryLimitTool.js +33 -33
  104. package/lib/cjs/tools/SetGpuMemoryLimitTool.js.map +1 -1
  105. package/lib/cjs/tools/SourceAspectIdTools.d.ts +40 -40
  106. package/lib/cjs/tools/SourceAspectIdTools.js +86 -86
  107. package/lib/cjs/tools/SourceAspectIdTools.js.map +1 -1
  108. package/lib/cjs/tools/TileRequestDecoration.d.ts +12 -12
  109. package/lib/cjs/tools/TileRequestDecoration.js +83 -83
  110. package/lib/cjs/tools/TileRequestDecoration.js.map +1 -1
  111. package/lib/cjs/tools/TileTreeBoundsDecoration.d.ts +11 -11
  112. package/lib/cjs/tools/TileTreeBoundsDecoration.js +74 -74
  113. package/lib/cjs/tools/TileTreeBoundsDecoration.js.map +1 -1
  114. package/lib/cjs/tools/ToolTipProvider.d.ts +15 -15
  115. package/lib/cjs/tools/ToolTipProvider.js +66 -66
  116. package/lib/cjs/tools/ToolTipProvider.js.map +1 -1
  117. package/lib/cjs/tools/ViewportTools.d.ts +218 -218
  118. package/lib/cjs/tools/ViewportTools.js +516 -516
  119. package/lib/cjs/tools/ViewportTools.js.map +1 -1
  120. package/lib/cjs/tools/parseArgs.d.ts +23 -23
  121. package/lib/cjs/tools/parseArgs.js +51 -51
  122. package/lib/cjs/tools/parseArgs.js.map +1 -1
  123. package/lib/cjs/tools/parseBoolean.d.ts +8 -8
  124. package/lib/cjs/tools/parseBoolean.js +26 -26
  125. package/lib/cjs/tools/parseBoolean.js.map +1 -1
  126. package/lib/cjs/tools/parseToggle.d.ts +8 -8
  127. package/lib/cjs/tools/parseToggle.js +25 -25
  128. package/lib/cjs/tools/parseToggle.js.map +1 -1
  129. package/lib/cjs/ui/Button.d.ts +29 -29
  130. package/lib/cjs/ui/Button.js +26 -26
  131. package/lib/cjs/ui/Button.js.map +1 -1
  132. package/lib/cjs/ui/CheckBox.d.ts +23 -23
  133. package/lib/cjs/ui/CheckBox.js +27 -27
  134. package/lib/cjs/ui/CheckBox.js.map +1 -1
  135. package/lib/cjs/ui/ColorInput.d.ts +27 -27
  136. package/lib/cjs/ui/ColorInput.js +53 -53
  137. package/lib/cjs/ui/ColorInput.js.map +1 -1
  138. package/lib/cjs/ui/ComboBox.d.ts +28 -28
  139. package/lib/cjs/ui/ComboBox.js +42 -42
  140. package/lib/cjs/ui/ComboBox.js.map +1 -1
  141. package/lib/cjs/ui/DataList.d.ts +27 -27
  142. package/lib/cjs/ui/DataList.js +39 -39
  143. package/lib/cjs/ui/DataList.js.map +1 -1
  144. package/lib/cjs/ui/NestedMenu.d.ts +19 -19
  145. package/lib/cjs/ui/NestedMenu.js +46 -46
  146. package/lib/cjs/ui/NestedMenu.js.map +1 -1
  147. package/lib/cjs/ui/NumericInput.d.ts +35 -35
  148. package/lib/cjs/ui/NumericInput.js +61 -61
  149. package/lib/cjs/ui/NumericInput.js.map +1 -1
  150. package/lib/cjs/ui/RadioBox.d.ts +29 -29
  151. package/lib/cjs/ui/RadioBox.js +76 -76
  152. package/lib/cjs/ui/RadioBox.js.map +1 -1
  153. package/lib/cjs/ui/Slider.d.ts +28 -26
  154. package/lib/cjs/ui/Slider.d.ts.map +1 -1
  155. package/lib/cjs/ui/Slider.js +42 -34
  156. package/lib/cjs/ui/Slider.js.map +1 -1
  157. package/lib/cjs/ui/TextBox.d.ts +32 -32
  158. package/lib/cjs/ui/TextBox.js +56 -56
  159. package/lib/cjs/ui/TextBox.js.map +1 -1
  160. package/lib/cjs/widgets/DiagnosticsPanel.d.ts +37 -37
  161. package/lib/cjs/widgets/DiagnosticsPanel.js +81 -81
  162. package/lib/cjs/widgets/DiagnosticsPanel.js.map +1 -1
  163. package/lib/cjs/widgets/FpsTracker.d.ts +19 -19
  164. package/lib/cjs/widgets/FpsTracker.js +56 -56
  165. package/lib/cjs/widgets/FpsTracker.js.map +1 -1
  166. package/lib/cjs/widgets/GpuProfiler.d.ts +16 -16
  167. package/lib/cjs/widgets/GpuProfiler.js +192 -192
  168. package/lib/cjs/widgets/GpuProfiler.js.map +1 -1
  169. package/lib/cjs/widgets/KeyinField.d.ts +61 -61
  170. package/lib/cjs/widgets/KeyinField.js +187 -187
  171. package/lib/cjs/widgets/KeyinField.js.map +1 -1
  172. package/lib/cjs/widgets/MemoryTracker.d.ts +27 -27
  173. package/lib/cjs/widgets/MemoryTracker.js +243 -243
  174. package/lib/cjs/widgets/MemoryTracker.js.map +1 -1
  175. package/lib/cjs/widgets/RenderCommandBreakdown.d.ts +15 -15
  176. package/lib/cjs/widgets/RenderCommandBreakdown.js +68 -68
  177. package/lib/cjs/widgets/RenderCommandBreakdown.js.map +1 -1
  178. package/lib/cjs/widgets/TileMemoryBreakdown.d.ts +30 -30
  179. package/lib/cjs/widgets/TileMemoryBreakdown.js +204 -204
  180. package/lib/cjs/widgets/TileMemoryBreakdown.js.map +1 -1
  181. package/lib/cjs/widgets/TileStatisticsTracker.d.ts +21 -21
  182. package/lib/cjs/widgets/TileStatisticsTracker.js +142 -142
  183. package/lib/cjs/widgets/TileStatisticsTracker.js.map +1 -1
  184. package/lib/cjs/widgets/ToolSettingsTracker.d.ts +9 -9
  185. package/lib/cjs/widgets/ToolSettingsTracker.js +211 -211
  186. package/lib/cjs/widgets/ToolSettingsTracker.js.map +1 -1
  187. package/lib/esm/ClipboardUtilities.d.ts +8 -8
  188. package/lib/esm/ClipboardUtilities.js +22 -22
  189. package/lib/esm/ClipboardUtilities.js.map +1 -1
  190. package/lib/esm/FrontEndDevTools.d.ts +19 -19
  191. package/lib/esm/FrontEndDevTools.js +217 -217
  192. package/lib/esm/FrontEndDevTools.js.map +1 -1
  193. package/lib/esm/effects/Convolution.d.ts +68 -68
  194. package/lib/esm/effects/Convolution.js +155 -155
  195. package/lib/esm/effects/Convolution.js.map +1 -1
  196. package/lib/esm/effects/EffectTools.d.ts +33 -33
  197. package/lib/esm/effects/EffectTools.js +62 -62
  198. package/lib/esm/effects/EffectTools.js.map +1 -1
  199. package/lib/esm/effects/Explosion.d.ts +12 -12
  200. package/lib/esm/effects/Explosion.js +164 -164
  201. package/lib/esm/effects/Explosion.js.map +1 -1
  202. package/lib/esm/effects/FlipImage.d.ts +30 -30
  203. package/lib/esm/effects/FlipImage.js +94 -94
  204. package/lib/esm/effects/FlipImage.js.map +1 -1
  205. package/lib/esm/effects/LensDistortion.d.ts +34 -34
  206. package/lib/esm/effects/LensDistortion.js +104 -104
  207. package/lib/esm/effects/LensDistortion.js.map +1 -1
  208. package/lib/esm/effects/Random.d.ts +24 -24
  209. package/lib/esm/effects/Random.js +41 -41
  210. package/lib/esm/effects/Random.js.map +1 -1
  211. package/lib/esm/effects/Saturation.d.ts +30 -30
  212. package/lib/esm/effects/Saturation.js +80 -80
  213. package/lib/esm/effects/Saturation.js.map +1 -1
  214. package/lib/esm/effects/Snow.d.ts +76 -76
  215. package/lib/esm/effects/Snow.js +182 -182
  216. package/lib/esm/effects/Snow.js.map +1 -1
  217. package/lib/esm/effects/Vignette.d.ts +39 -39
  218. package/lib/esm/effects/Vignette.js +103 -103
  219. package/lib/esm/effects/Vignette.js.map +1 -1
  220. package/lib/esm/frontend-devtools.d.ts +82 -82
  221. package/lib/esm/frontend-devtools.js +86 -86
  222. package/lib/esm/frontend-devtools.js.map +1 -1
  223. package/lib/esm/tools/AnimationIntervalTool.d.ts +15 -15
  224. package/lib/esm/tools/AnimationIntervalTool.js +26 -26
  225. package/lib/esm/tools/AnimationIntervalTool.js.map +1 -1
  226. package/lib/esm/tools/ChangeUnitsTool.d.ts +15 -15
  227. package/lib/esm/tools/ChangeUnitsTool.js +37 -37
  228. package/lib/esm/tools/ChangeUnitsTool.js.map +1 -1
  229. package/lib/esm/tools/ClipTools.d.ts +67 -67
  230. package/lib/esm/tools/ClipTools.js +158 -158
  231. package/lib/esm/tools/ClipTools.js.map +1 -1
  232. package/lib/esm/tools/DisplayStyleTools.d.ts +145 -145
  233. package/lib/esm/tools/DisplayStyleTools.js +356 -356
  234. package/lib/esm/tools/DisplayStyleTools.js.map +1 -1
  235. package/lib/esm/tools/EmphasizeElementsTool.d.ts +60 -60
  236. package/lib/esm/tools/EmphasizeElementsTool.js +145 -145
  237. package/lib/esm/tools/EmphasizeElementsTool.js.map +1 -1
  238. package/lib/esm/tools/FrustumDecoration.d.ts +57 -57
  239. package/lib/esm/tools/FrustumDecoration.js +367 -367
  240. package/lib/esm/tools/FrustumDecoration.js.map +1 -1
  241. package/lib/esm/tools/InspectElementTool.d.ts +42 -42
  242. package/lib/esm/tools/InspectElementTool.js +194 -194
  243. package/lib/esm/tools/InspectElementTool.js.map +1 -1
  244. package/lib/esm/tools/MapLayerTool.d.ts +264 -264
  245. package/lib/esm/tools/MapLayerTool.js +485 -485
  246. package/lib/esm/tools/MapLayerTool.js.map +1 -1
  247. package/lib/esm/tools/MeasureTileLoadTime.d.ts +12 -12
  248. package/lib/esm/tools/MeasureTileLoadTime.js +59 -59
  249. package/lib/esm/tools/MeasureTileLoadTime.js.map +1 -1
  250. package/lib/esm/tools/ModelAppearanceTools.d.ts +86 -86
  251. package/lib/esm/tools/ModelAppearanceTools.js +172 -172
  252. package/lib/esm/tools/ModelAppearanceTools.js.map +1 -1
  253. package/lib/esm/tools/PlanProjectionTools.d.ts +40 -40
  254. package/lib/esm/tools/PlanProjectionTools.js +143 -143
  255. package/lib/esm/tools/PlanProjectionTools.js.map +1 -1
  256. package/lib/esm/tools/PlanarMaskTools.d.ts +182 -182
  257. package/lib/esm/tools/PlanarMaskTools.js +377 -377
  258. package/lib/esm/tools/PlanarMaskTools.js.map +1 -1
  259. package/lib/esm/tools/ProjectExtents.d.ts +41 -41
  260. package/lib/esm/tools/ProjectExtents.js +104 -104
  261. package/lib/esm/tools/ProjectExtents.js.map +1 -1
  262. package/lib/esm/tools/RealityModelTools.d.ts +116 -116
  263. package/lib/esm/tools/RealityModelTools.js +268 -268
  264. package/lib/esm/tools/RealityModelTools.js.map +1 -1
  265. package/lib/esm/tools/RealityTransitionTool.d.ts +25 -25
  266. package/lib/esm/tools/RealityTransitionTool.js +112 -112
  267. package/lib/esm/tools/RealityTransitionTool.js.map +1 -1
  268. package/lib/esm/tools/RenderSystemTools.d.ts +38 -38
  269. package/lib/esm/tools/RenderSystemTools.js +63 -63
  270. package/lib/esm/tools/RenderSystemTools.js.map +1 -1
  271. package/lib/esm/tools/RenderTargetTools.d.ts +107 -107
  272. package/lib/esm/tools/RenderTargetTools.js +159 -159
  273. package/lib/esm/tools/RenderTargetTools.js.map +1 -1
  274. package/lib/esm/tools/ReportWebGLCompatibilityTool.d.ts +11 -11
  275. package/lib/esm/tools/ReportWebGLCompatibilityTool.js +26 -26
  276. package/lib/esm/tools/ReportWebGLCompatibilityTool.js.map +1 -1
  277. package/lib/esm/tools/SavedViews.d.ts +46 -46
  278. package/lib/esm/tools/SavedViews.js +128 -128
  279. package/lib/esm/tools/SavedViews.js.map +1 -1
  280. package/lib/esm/tools/ScheduleScriptTools.d.ts +37 -37
  281. package/lib/esm/tools/ScheduleScriptTools.js +153 -153
  282. package/lib/esm/tools/ScheduleScriptTools.js.map +1 -1
  283. package/lib/esm/tools/SelectionTools.d.ts +28 -28
  284. package/lib/esm/tools/SelectionTools.js +82 -82
  285. package/lib/esm/tools/SelectionTools.js.map +1 -1
  286. package/lib/esm/tools/SetGpuMemoryLimitTool.d.ts +15 -15
  287. package/lib/esm/tools/SetGpuMemoryLimitTool.js +29 -29
  288. package/lib/esm/tools/SetGpuMemoryLimitTool.js.map +1 -1
  289. package/lib/esm/tools/SourceAspectIdTools.d.ts +40 -40
  290. package/lib/esm/tools/SourceAspectIdTools.js +80 -80
  291. package/lib/esm/tools/SourceAspectIdTools.js.map +1 -1
  292. package/lib/esm/tools/TileRequestDecoration.d.ts +12 -12
  293. package/lib/esm/tools/TileRequestDecoration.js +79 -79
  294. package/lib/esm/tools/TileRequestDecoration.js.map +1 -1
  295. package/lib/esm/tools/TileTreeBoundsDecoration.d.ts +11 -11
  296. package/lib/esm/tools/TileTreeBoundsDecoration.js +70 -70
  297. package/lib/esm/tools/TileTreeBoundsDecoration.js.map +1 -1
  298. package/lib/esm/tools/ToolTipProvider.d.ts +15 -15
  299. package/lib/esm/tools/ToolTipProvider.js +62 -62
  300. package/lib/esm/tools/ToolTipProvider.js.map +1 -1
  301. package/lib/esm/tools/ViewportTools.d.ts +218 -218
  302. package/lib/esm/tools/ViewportTools.js +492 -492
  303. package/lib/esm/tools/ViewportTools.js.map +1 -1
  304. package/lib/esm/tools/parseArgs.d.ts +23 -23
  305. package/lib/esm/tools/parseArgs.js +47 -47
  306. package/lib/esm/tools/parseArgs.js.map +1 -1
  307. package/lib/esm/tools/parseBoolean.d.ts +8 -8
  308. package/lib/esm/tools/parseBoolean.js +22 -22
  309. package/lib/esm/tools/parseBoolean.js.map +1 -1
  310. package/lib/esm/tools/parseToggle.d.ts +8 -8
  311. package/lib/esm/tools/parseToggle.js +21 -21
  312. package/lib/esm/tools/parseToggle.js.map +1 -1
  313. package/lib/esm/ui/Button.d.ts +29 -29
  314. package/lib/esm/ui/Button.js +22 -22
  315. package/lib/esm/ui/Button.js.map +1 -1
  316. package/lib/esm/ui/CheckBox.d.ts +23 -23
  317. package/lib/esm/ui/CheckBox.js +23 -23
  318. package/lib/esm/ui/CheckBox.js.map +1 -1
  319. package/lib/esm/ui/ColorInput.d.ts +27 -27
  320. package/lib/esm/ui/ColorInput.js +48 -48
  321. package/lib/esm/ui/ColorInput.js.map +1 -1
  322. package/lib/esm/ui/ComboBox.d.ts +28 -28
  323. package/lib/esm/ui/ComboBox.js +38 -38
  324. package/lib/esm/ui/ComboBox.js.map +1 -1
  325. package/lib/esm/ui/DataList.d.ts +27 -27
  326. package/lib/esm/ui/DataList.js +34 -34
  327. package/lib/esm/ui/DataList.js.map +1 -1
  328. package/lib/esm/ui/NestedMenu.d.ts +19 -19
  329. package/lib/esm/ui/NestedMenu.js +42 -42
  330. package/lib/esm/ui/NestedMenu.js.map +1 -1
  331. package/lib/esm/ui/NumericInput.d.ts +35 -35
  332. package/lib/esm/ui/NumericInput.js +56 -56
  333. package/lib/esm/ui/NumericInput.js.map +1 -1
  334. package/lib/esm/ui/RadioBox.d.ts +29 -29
  335. package/lib/esm/ui/RadioBox.js +72 -72
  336. package/lib/esm/ui/RadioBox.js.map +1 -1
  337. package/lib/esm/ui/Slider.d.ts +28 -26
  338. package/lib/esm/ui/Slider.d.ts.map +1 -1
  339. package/lib/esm/ui/Slider.js +38 -30
  340. package/lib/esm/ui/Slider.js.map +1 -1
  341. package/lib/esm/ui/TextBox.d.ts +32 -32
  342. package/lib/esm/ui/TextBox.js +52 -52
  343. package/lib/esm/ui/TextBox.js.map +1 -1
  344. package/lib/esm/widgets/DiagnosticsPanel.d.ts +37 -37
  345. package/lib/esm/widgets/DiagnosticsPanel.js +77 -77
  346. package/lib/esm/widgets/DiagnosticsPanel.js.map +1 -1
  347. package/lib/esm/widgets/FpsTracker.d.ts +19 -19
  348. package/lib/esm/widgets/FpsTracker.js +52 -52
  349. package/lib/esm/widgets/FpsTracker.js.map +1 -1
  350. package/lib/esm/widgets/GpuProfiler.d.ts +16 -16
  351. package/lib/esm/widgets/GpuProfiler.js +188 -188
  352. package/lib/esm/widgets/GpuProfiler.js.map +1 -1
  353. package/lib/esm/widgets/KeyinField.d.ts +61 -61
  354. package/lib/esm/widgets/KeyinField.js +183 -183
  355. package/lib/esm/widgets/KeyinField.js.map +1 -1
  356. package/lib/esm/widgets/MemoryTracker.d.ts +27 -27
  357. package/lib/esm/widgets/MemoryTracker.js +238 -238
  358. package/lib/esm/widgets/MemoryTracker.js.map +1 -1
  359. package/lib/esm/widgets/RenderCommandBreakdown.d.ts +15 -15
  360. package/lib/esm/widgets/RenderCommandBreakdown.js +64 -64
  361. package/lib/esm/widgets/RenderCommandBreakdown.js.map +1 -1
  362. package/lib/esm/widgets/TileMemoryBreakdown.d.ts +30 -30
  363. package/lib/esm/widgets/TileMemoryBreakdown.js +200 -200
  364. package/lib/esm/widgets/TileMemoryBreakdown.js.map +1 -1
  365. package/lib/esm/widgets/TileStatisticsTracker.d.ts +21 -21
  366. package/lib/esm/widgets/TileStatisticsTracker.js +138 -138
  367. package/lib/esm/widgets/TileStatisticsTracker.js.map +1 -1
  368. package/lib/esm/widgets/ToolSettingsTracker.d.ts +9 -9
  369. package/lib/esm/widgets/ToolSettingsTracker.js +207 -207
  370. package/lib/esm/widgets/ToolSettingsTracker.js.map +1 -1
  371. package/lib/public/locales/en/FrontendDevTools.json +484 -484
  372. package/package.json +7 -7
@@ -1,154 +1,154 @@
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 Tools
7
- */
8
- import { assert, CompressedId64Set } from "@itwin/core-bentley";
9
- import { RenderSchedule, } from "@itwin/core-common";
10
- import { copyStringToClipboard } from "../ClipboardUtilities";
11
- import { parseArgs } from "./parseArgs";
12
- import { DisplayStyleTool } from "./DisplayStyleTools";
13
- /** Query the schedule script JSON from an element.
14
- * @beta
15
- */
16
- export class QueryScheduleScriptTool extends DisplayStyleTool {
17
- constructor() {
18
- super(...arguments);
19
- this._action = "copy";
20
- this._includeElementIds = false;
21
- this._countElementIds = false;
22
- this._expandElementIds = false;
23
- }
24
- static get minArgs() { return 0; }
25
- static get maxArgs() { return 3; }
26
- async parse(input, vp) {
27
- var _a, _b, _c;
28
- const args = parseArgs(input);
29
- // eslint-disable-next-line deprecation/deprecation
30
- this._sourceId = (_a = args.get("i")) !== null && _a !== void 0 ? _a : (_b = vp.displayStyle.scheduleScriptReference) === null || _b === void 0 ? void 0 : _b.sourceId;
31
- if (!this._sourceId)
32
- return false;
33
- const action = (_c = args.get("a")) !== null && _c !== void 0 ? _c : "";
34
- this._action = action.length > 0 && "b" === action[0].toLowerCase() ? "break" : "copy";
35
- this._includeElementIds = this._countElementIds = this._expandElementIds = false;
36
- const ids = args.get("e");
37
- if (ids && ids.length > 0) {
38
- switch (ids[0].toLowerCase()) {
39
- case "i":
40
- this._includeElementIds = true;
41
- break;
42
- case "c":
43
- this._includeElementIds = this._countElementIds = true;
44
- break;
45
- case "e":
46
- this._includeElementIds = this._expandElementIds = true;
47
- break;
48
- }
49
- }
50
- return true;
51
- }
52
- async execute(vp) {
53
- var _a, _b;
54
- if (!this._sourceId || !this._action)
55
- return false;
56
- const opts = {
57
- displayStyle: { omitScheduleScriptElementIds: !this._includeElementIds },
58
- renderTimeline: { omitScriptElementIds: !this._includeElementIds },
59
- };
60
- let script;
61
- const props = await vp.iModel.elements.loadProps(this._sourceId, opts);
62
- if (props.script)
63
- script = JSON.parse(props.script.script);
64
- else if ((_b = (_a = props.jsonProperties) === null || _a === void 0 ? void 0 : _a.styles) === null || _b === void 0 ? void 0 : _b.scheduleScript)
65
- script = props.jsonProperties.styles.scheduleScript;
66
- if (!script)
67
- return false;
68
- if (this._countElementIds || this._expandElementIds) {
69
- for (const model of script) {
70
- for (const elem of model.elementTimelines) {
71
- const elemIds = typeof elem.elementIds === "string" ? CompressedId64Set.decompressArray(elem.elementIds) : elem.elementIds;
72
- if (this._countElementIds)
73
- elem.elementIds = elemIds.length;
74
- else
75
- elem.elementIds = elemIds;
76
- }
77
- }
78
- }
79
- if (this._action === "break")
80
- debugger; // eslint-disable-line no-debugger
81
- else
82
- copyStringToClipboard(JSON.stringify(script, null, 2));
83
- return true;
84
- }
85
- }
86
- QueryScheduleScriptTool.toolId = "QueryScheduleScript";
87
- function reverseTimeline(timeline, accept) {
88
- if (!timeline)
89
- return;
90
- const len = timeline.length;
91
- for (let i = 0; i < len; i++) {
92
- const timeEntry = timeline.getEntry(i);
93
- const valueEntry = timeline.getEntry(len - i - 1);
94
- assert(undefined !== timeEntry);
95
- assert(undefined !== valueEntry);
96
- accept(timeEntry.time, valueEntry);
97
- }
98
- }
99
- /** A tool that modifies the [RenderSchedule.Script]($common), if any, associated with the selected [Viewport]($frontend) such that the entries in each
100
- * of its [RenderSchedule.ElementTimeline]($common)s are reversed.
101
- * @beta
102
- */
103
- export class ReverseScheduleScriptTool extends DisplayStyleTool {
104
- async execute(vp) {
105
- const script = vp === null || vp === void 0 ? void 0 : vp.displayStyle.scheduleScript;
106
- if (!script || script.modelTimelines.some((x) => x.omitsElementIds))
107
- return false;
108
- const builder = new RenderSchedule.ScriptBuilder();
109
- for (const modelTimeline of script.modelTimelines) {
110
- const modelBuilder = builder.addModelTimeline(modelTimeline.modelId);
111
- for (const elemTimeline of modelTimeline.elementTimelines) {
112
- const elemBuilder = modelBuilder.addElementTimeline(elemTimeline.elementIds);
113
- reverseTimeline(elemTimeline.visibility, (time, entry) => elemBuilder.addVisibility(time, entry.value, entry.interpolation));
114
- reverseTimeline(elemTimeline.color, (time, entry) => elemBuilder.addColor(time, entry.value, entry.interpolation));
115
- reverseTimeline(elemTimeline.transform, (time, entry) => elemBuilder.addTransform(time, entry.value, entry.components, entry.interpolation));
116
- reverseTimeline(elemTimeline.cuttingPlane, (time, entry) => elemBuilder.addCuttingPlane(time, entry.value, entry.interpolation));
117
- }
118
- }
119
- const scriptProps = builder.finish();
120
- const newScript = RenderSchedule.Script.fromJSON(scriptProps);
121
- assert(undefined !== newScript);
122
- vp.displayStyle.scheduleScript = newScript;
123
- return true;
124
- }
125
- async parse() {
126
- return true;
127
- }
128
- }
129
- ReverseScheduleScriptTool.toolId = "ReverseScheduleScript";
130
- /** A tool that changes or removes the [RenderSchedule.Script]($common) associated with the selected [Viewport]($frontend).
131
- * @beta
132
- */
133
- export class SetScheduleScriptTool extends DisplayStyleTool {
134
- static get minArgs() { return 0; }
135
- static get maxArgs() { return 1; }
136
- async parse(args) {
137
- if (args.length === 0)
138
- return true; // clear schedule script.
139
- try {
140
- this._script = RenderSchedule.Script.fromJSON(JSON.parse(args[0]));
141
- }
142
- catch (ex) {
143
- if (ex instanceof Error)
144
- alert(ex.toString());
145
- }
146
- return undefined !== this._script;
147
- }
148
- async execute(vp) {
149
- vp.displayStyle.scheduleScript = this._script;
150
- return true;
151
- }
152
- }
153
- SetScheduleScriptTool.toolId = "SetScheduleScript";
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 Tools
7
+ */
8
+ import { assert, CompressedId64Set } from "@itwin/core-bentley";
9
+ import { RenderSchedule, } from "@itwin/core-common";
10
+ import { copyStringToClipboard } from "../ClipboardUtilities";
11
+ import { parseArgs } from "./parseArgs";
12
+ import { DisplayStyleTool } from "./DisplayStyleTools";
13
+ /** Query the schedule script JSON from an element.
14
+ * @beta
15
+ */
16
+ export class QueryScheduleScriptTool extends DisplayStyleTool {
17
+ constructor() {
18
+ super(...arguments);
19
+ this._action = "copy";
20
+ this._includeElementIds = false;
21
+ this._countElementIds = false;
22
+ this._expandElementIds = false;
23
+ }
24
+ static get minArgs() { return 0; }
25
+ static get maxArgs() { return 3; }
26
+ async parse(input, vp) {
27
+ var _a, _b, _c;
28
+ const args = parseArgs(input);
29
+ // eslint-disable-next-line deprecation/deprecation
30
+ this._sourceId = (_a = args.get("i")) !== null && _a !== void 0 ? _a : (_b = vp.displayStyle.scheduleScriptReference) === null || _b === void 0 ? void 0 : _b.sourceId;
31
+ if (!this._sourceId)
32
+ return false;
33
+ const action = (_c = args.get("a")) !== null && _c !== void 0 ? _c : "";
34
+ this._action = action.length > 0 && "b" === action[0].toLowerCase() ? "break" : "copy";
35
+ this._includeElementIds = this._countElementIds = this._expandElementIds = false;
36
+ const ids = args.get("e");
37
+ if (ids && ids.length > 0) {
38
+ switch (ids[0].toLowerCase()) {
39
+ case "i":
40
+ this._includeElementIds = true;
41
+ break;
42
+ case "c":
43
+ this._includeElementIds = this._countElementIds = true;
44
+ break;
45
+ case "e":
46
+ this._includeElementIds = this._expandElementIds = true;
47
+ break;
48
+ }
49
+ }
50
+ return true;
51
+ }
52
+ async execute(vp) {
53
+ var _a, _b;
54
+ if (!this._sourceId || !this._action)
55
+ return false;
56
+ const opts = {
57
+ displayStyle: { omitScheduleScriptElementIds: !this._includeElementIds },
58
+ renderTimeline: { omitScriptElementIds: !this._includeElementIds },
59
+ };
60
+ let script;
61
+ const props = await vp.iModel.elements.loadProps(this._sourceId, opts);
62
+ if (props.script)
63
+ script = JSON.parse(props.script.script);
64
+ else if ((_b = (_a = props.jsonProperties) === null || _a === void 0 ? void 0 : _a.styles) === null || _b === void 0 ? void 0 : _b.scheduleScript)
65
+ script = props.jsonProperties.styles.scheduleScript;
66
+ if (!script)
67
+ return false;
68
+ if (this._countElementIds || this._expandElementIds) {
69
+ for (const model of script) {
70
+ for (const elem of model.elementTimelines) {
71
+ const elemIds = typeof elem.elementIds === "string" ? CompressedId64Set.decompressArray(elem.elementIds) : elem.elementIds;
72
+ if (this._countElementIds)
73
+ elem.elementIds = elemIds.length;
74
+ else
75
+ elem.elementIds = elemIds;
76
+ }
77
+ }
78
+ }
79
+ if (this._action === "break")
80
+ debugger; // eslint-disable-line no-debugger
81
+ else
82
+ copyStringToClipboard(JSON.stringify(script, null, 2));
83
+ return true;
84
+ }
85
+ }
86
+ QueryScheduleScriptTool.toolId = "QueryScheduleScript";
87
+ function reverseTimeline(timeline, accept) {
88
+ if (!timeline)
89
+ return;
90
+ const len = timeline.length;
91
+ for (let i = 0; i < len; i++) {
92
+ const timeEntry = timeline.getEntry(i);
93
+ const valueEntry = timeline.getEntry(len - i - 1);
94
+ assert(undefined !== timeEntry);
95
+ assert(undefined !== valueEntry);
96
+ accept(timeEntry.time, valueEntry);
97
+ }
98
+ }
99
+ /** A tool that modifies the [RenderSchedule.Script]($common), if any, associated with the selected [Viewport]($frontend) such that the entries in each
100
+ * of its [RenderSchedule.ElementTimeline]($common)s are reversed.
101
+ * @beta
102
+ */
103
+ export class ReverseScheduleScriptTool extends DisplayStyleTool {
104
+ async execute(vp) {
105
+ const script = vp === null || vp === void 0 ? void 0 : vp.displayStyle.scheduleScript;
106
+ if (!script || script.modelTimelines.some((x) => x.omitsElementIds))
107
+ return false;
108
+ const builder = new RenderSchedule.ScriptBuilder();
109
+ for (const modelTimeline of script.modelTimelines) {
110
+ const modelBuilder = builder.addModelTimeline(modelTimeline.modelId);
111
+ for (const elemTimeline of modelTimeline.elementTimelines) {
112
+ const elemBuilder = modelBuilder.addElementTimeline(elemTimeline.elementIds);
113
+ reverseTimeline(elemTimeline.visibility, (time, entry) => elemBuilder.addVisibility(time, entry.value, entry.interpolation));
114
+ reverseTimeline(elemTimeline.color, (time, entry) => elemBuilder.addColor(time, entry.value, entry.interpolation));
115
+ reverseTimeline(elemTimeline.transform, (time, entry) => elemBuilder.addTransform(time, entry.value, entry.components, entry.interpolation));
116
+ reverseTimeline(elemTimeline.cuttingPlane, (time, entry) => elemBuilder.addCuttingPlane(time, entry.value, entry.interpolation));
117
+ }
118
+ }
119
+ const scriptProps = builder.finish();
120
+ const newScript = RenderSchedule.Script.fromJSON(scriptProps);
121
+ assert(undefined !== newScript);
122
+ vp.displayStyle.scheduleScript = newScript;
123
+ return true;
124
+ }
125
+ async parse() {
126
+ return true;
127
+ }
128
+ }
129
+ ReverseScheduleScriptTool.toolId = "ReverseScheduleScript";
130
+ /** A tool that changes or removes the [RenderSchedule.Script]($common) associated with the selected [Viewport]($frontend).
131
+ * @beta
132
+ */
133
+ export class SetScheduleScriptTool extends DisplayStyleTool {
134
+ static get minArgs() { return 0; }
135
+ static get maxArgs() { return 1; }
136
+ async parse(args) {
137
+ if (args.length === 0)
138
+ return true; // clear schedule script.
139
+ try {
140
+ this._script = RenderSchedule.Script.fromJSON(JSON.parse(args[0]));
141
+ }
142
+ catch (ex) {
143
+ if (ex instanceof Error)
144
+ alert(ex.toString());
145
+ }
146
+ return undefined !== this._script;
147
+ }
148
+ async execute(vp) {
149
+ vp.displayStyle.scheduleScript = this._script;
150
+ return true;
151
+ }
152
+ }
153
+ SetScheduleScriptTool.toolId = "SetScheduleScript";
154
154
  //# sourceMappingURL=ScheduleScriptTools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScheduleScriptTools.js","sourceRoot":"","sources":["../../../src/tools/ScheduleScriptTools.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 Tools\r\n */\r\n\r\nimport { assert, CompressedId64Set } from \"@itwin/core-bentley\";\r\nimport {\r\n ElementLoadOptions, RenderSchedule, RenderTimelineProps,\r\n} from \"@itwin/core-common\";\r\nimport { Viewport } from \"@itwin/core-frontend\";\r\nimport { copyStringToClipboard } from \"../ClipboardUtilities\";\r\nimport { parseArgs } from \"./parseArgs\";\r\nimport { DisplayStyleTool } from \"./DisplayStyleTools\";\r\n\r\n/** Query the schedule script JSON from an element.\r\n * @beta\r\n */\r\nexport class QueryScheduleScriptTool extends DisplayStyleTool {\r\n private _sourceId?: string;\r\n private _action: \"copy\" | \"break\" = \"copy\";\r\n private _includeElementIds = false;\r\n private _countElementIds = false;\r\n private _expandElementIds = false;\r\n\r\n public static override toolId = \"QueryScheduleScript\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 3; }\r\n\r\n public async parse(input: string[], vp: Viewport) {\r\n const args = parseArgs(input);\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n this._sourceId = args.get(\"i\") ?? vp.displayStyle.scheduleScriptReference?.sourceId;\r\n if (!this._sourceId)\r\n return false;\r\n\r\n const action = args.get(\"a\") ?? \"\";\r\n this._action = action.length > 0 && \"b\" === action[0].toLowerCase() ? \"break\" : \"copy\";\r\n\r\n this._includeElementIds = this._countElementIds = this._expandElementIds = false;\r\n const ids = args.get(\"e\");\r\n if (ids && ids.length > 0) {\r\n switch (ids[0].toLowerCase()) {\r\n case \"i\":\r\n this._includeElementIds = true;\r\n break;\r\n case \"c\":\r\n this._includeElementIds = this._countElementIds = true;\r\n break;\r\n case \"e\":\r\n this._includeElementIds = this._expandElementIds = true;\r\n break;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n if (!this._sourceId || !this._action)\r\n return false;\r\n\r\n const opts: ElementLoadOptions = {\r\n displayStyle: { omitScheduleScriptElementIds: !this._includeElementIds },\r\n renderTimeline: { omitScriptElementIds: !this._includeElementIds },\r\n };\r\n\r\n let script;\r\n const props = await vp.iModel.elements.loadProps(this._sourceId, opts) as any;\r\n if (props.script)\r\n script = JSON.parse((props.script as RenderTimelineProps).script) as RenderSchedule.ScriptProps;\r\n else if (props.jsonProperties?.styles?.scheduleScript)\r\n script = props.jsonProperties.styles.scheduleScript as RenderSchedule.ScriptProps;\r\n\r\n if (!script)\r\n return false;\r\n\r\n if (this._countElementIds || this._expandElementIds) {\r\n for (const model of script) {\r\n for (const elem of model.elementTimelines) {\r\n const elemIds = typeof elem.elementIds === \"string\" ? CompressedId64Set.decompressArray(elem.elementIds) : elem.elementIds;\r\n if (this._countElementIds)\r\n elem.elementIds = elemIds.length as any;\r\n else\r\n elem.elementIds = elemIds;\r\n }\r\n }\r\n }\r\n\r\n if (this._action === \"break\")\r\n debugger; // eslint-disable-line no-debugger\r\n else\r\n copyStringToClipboard(JSON.stringify(script, null, 2));\r\n\r\n return true;\r\n }\r\n}\r\n\r\ninterface Timeline<Entry extends RenderSchedule.TimelineEntry> {\r\n readonly length: number;\r\n getEntry(index: number): Entry | undefined;\r\n}\r\n\r\nfunction reverseTimeline<Entry extends RenderSchedule.TimelineEntry>(timeline: Timeline<Entry> | undefined, accept: (time: number, entry: Entry) => void): void {\r\n if (!timeline)\r\n return;\r\n\r\n const len = timeline.length;\r\n for (let i = 0; i < len; i++) {\r\n const timeEntry = timeline.getEntry(i);\r\n const valueEntry = timeline.getEntry(len - i - 1);\r\n assert(undefined !== timeEntry);\r\n assert(undefined !== valueEntry);\r\n accept(timeEntry.time, valueEntry);\r\n }\r\n}\r\n\r\n/** A tool that modifies the [RenderSchedule.Script]($common), if any, associated with the selected [Viewport]($frontend) such that the entries in each\r\n * of its [RenderSchedule.ElementTimeline]($common)s are reversed.\r\n * @beta\r\n */\r\nexport class ReverseScheduleScriptTool extends DisplayStyleTool {\r\n public static override toolId = \"ReverseScheduleScript\";\r\n\r\n public override async execute(vp: Viewport): Promise<boolean> {\r\n const script = vp?.displayStyle.scheduleScript;\r\n if (!script || script.modelTimelines.some((x) => x.omitsElementIds))\r\n return false;\r\n\r\n const builder = new RenderSchedule.ScriptBuilder();\r\n for (const modelTimeline of script.modelTimelines) {\r\n const modelBuilder = builder.addModelTimeline(modelTimeline.modelId);\r\n for (const elemTimeline of modelTimeline.elementTimelines) {\r\n const elemBuilder = modelBuilder.addElementTimeline(elemTimeline.elementIds);\r\n reverseTimeline(elemTimeline.visibility, (time, entry) => elemBuilder.addVisibility(time, entry.value, entry.interpolation));\r\n reverseTimeline(elemTimeline.color, (time, entry) => elemBuilder.addColor(time, entry.value, entry.interpolation));\r\n reverseTimeline(elemTimeline.transform, (time, entry) => elemBuilder.addTransform(time, entry.value, entry.components, entry.interpolation));\r\n reverseTimeline(elemTimeline.cuttingPlane, (time, entry) => elemBuilder.addCuttingPlane(time, entry.value, entry.interpolation));\r\n }\r\n }\r\n\r\n const scriptProps = builder.finish();\r\n const newScript = RenderSchedule.Script.fromJSON(scriptProps);\r\n assert(undefined !== newScript);\r\n\r\n vp.displayStyle.scheduleScript = newScript;\r\n return true;\r\n }\r\n\r\n public async parse() {\r\n return true;\r\n }\r\n}\r\n\r\n/** A tool that changes or removes the [RenderSchedule.Script]($common) associated with the selected [Viewport]($frontend).\r\n * @beta\r\n */\r\nexport class SetScheduleScriptTool extends DisplayStyleTool {\r\n public static override toolId = \"SetScheduleScript\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n private _script?: RenderSchedule.Script;\r\n\r\n public override async parse(args: string[]): Promise<boolean> {\r\n if (args.length === 0)\r\n return true; // clear schedule script.\r\n\r\n try {\r\n this._script = RenderSchedule.Script.fromJSON(JSON.parse(args[0]));\r\n } catch (ex) {\r\n if (ex instanceof Error)\r\n alert(ex.toString());\r\n }\r\n\r\n return undefined !== this._script;\r\n }\r\n\r\n public override async execute(vp: Viewport): Promise<boolean> {\r\n vp.displayStyle.scheduleScript = this._script;\r\n return true;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ScheduleScriptTools.js","sourceRoot":"","sources":["../../../src/tools/ScheduleScriptTools.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 Tools\n */\n\nimport { assert, CompressedId64Set } from \"@itwin/core-bentley\";\nimport {\n ElementLoadOptions, RenderSchedule, RenderTimelineProps,\n} from \"@itwin/core-common\";\nimport { Viewport } from \"@itwin/core-frontend\";\nimport { copyStringToClipboard } from \"../ClipboardUtilities\";\nimport { parseArgs } from \"./parseArgs\";\nimport { DisplayStyleTool } from \"./DisplayStyleTools\";\n\n/** Query the schedule script JSON from an element.\n * @beta\n */\nexport class QueryScheduleScriptTool extends DisplayStyleTool {\n private _sourceId?: string;\n private _action: \"copy\" | \"break\" = \"copy\";\n private _includeElementIds = false;\n private _countElementIds = false;\n private _expandElementIds = false;\n\n public static override toolId = \"QueryScheduleScript\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 3; }\n\n public async parse(input: string[], vp: Viewport) {\n const args = parseArgs(input);\n\n // eslint-disable-next-line deprecation/deprecation\n this._sourceId = args.get(\"i\") ?? vp.displayStyle.scheduleScriptReference?.sourceId;\n if (!this._sourceId)\n return false;\n\n const action = args.get(\"a\") ?? \"\";\n this._action = action.length > 0 && \"b\" === action[0].toLowerCase() ? \"break\" : \"copy\";\n\n this._includeElementIds = this._countElementIds = this._expandElementIds = false;\n const ids = args.get(\"e\");\n if (ids && ids.length > 0) {\n switch (ids[0].toLowerCase()) {\n case \"i\":\n this._includeElementIds = true;\n break;\n case \"c\":\n this._includeElementIds = this._countElementIds = true;\n break;\n case \"e\":\n this._includeElementIds = this._expandElementIds = true;\n break;\n }\n }\n\n return true;\n }\n\n public async execute(vp: Viewport) {\n if (!this._sourceId || !this._action)\n return false;\n\n const opts: ElementLoadOptions = {\n displayStyle: { omitScheduleScriptElementIds: !this._includeElementIds },\n renderTimeline: { omitScriptElementIds: !this._includeElementIds },\n };\n\n let script;\n const props = await vp.iModel.elements.loadProps(this._sourceId, opts) as any;\n if (props.script)\n script = JSON.parse((props.script as RenderTimelineProps).script) as RenderSchedule.ScriptProps;\n else if (props.jsonProperties?.styles?.scheduleScript)\n script = props.jsonProperties.styles.scheduleScript as RenderSchedule.ScriptProps;\n\n if (!script)\n return false;\n\n if (this._countElementIds || this._expandElementIds) {\n for (const model of script) {\n for (const elem of model.elementTimelines) {\n const elemIds = typeof elem.elementIds === \"string\" ? CompressedId64Set.decompressArray(elem.elementIds) : elem.elementIds;\n if (this._countElementIds)\n elem.elementIds = elemIds.length as any;\n else\n elem.elementIds = elemIds;\n }\n }\n }\n\n if (this._action === \"break\")\n debugger; // eslint-disable-line no-debugger\n else\n copyStringToClipboard(JSON.stringify(script, null, 2));\n\n return true;\n }\n}\n\ninterface Timeline<Entry extends RenderSchedule.TimelineEntry> {\n readonly length: number;\n getEntry(index: number): Entry | undefined;\n}\n\nfunction reverseTimeline<Entry extends RenderSchedule.TimelineEntry>(timeline: Timeline<Entry> | undefined, accept: (time: number, entry: Entry) => void): void {\n if (!timeline)\n return;\n\n const len = timeline.length;\n for (let i = 0; i < len; i++) {\n const timeEntry = timeline.getEntry(i);\n const valueEntry = timeline.getEntry(len - i - 1);\n assert(undefined !== timeEntry);\n assert(undefined !== valueEntry);\n accept(timeEntry.time, valueEntry);\n }\n}\n\n/** A tool that modifies the [RenderSchedule.Script]($common), if any, associated with the selected [Viewport]($frontend) such that the entries in each\n * of its [RenderSchedule.ElementTimeline]($common)s are reversed.\n * @beta\n */\nexport class ReverseScheduleScriptTool extends DisplayStyleTool {\n public static override toolId = \"ReverseScheduleScript\";\n\n public override async execute(vp: Viewport): Promise<boolean> {\n const script = vp?.displayStyle.scheduleScript;\n if (!script || script.modelTimelines.some((x) => x.omitsElementIds))\n return false;\n\n const builder = new RenderSchedule.ScriptBuilder();\n for (const modelTimeline of script.modelTimelines) {\n const modelBuilder = builder.addModelTimeline(modelTimeline.modelId);\n for (const elemTimeline of modelTimeline.elementTimelines) {\n const elemBuilder = modelBuilder.addElementTimeline(elemTimeline.elementIds);\n reverseTimeline(elemTimeline.visibility, (time, entry) => elemBuilder.addVisibility(time, entry.value, entry.interpolation));\n reverseTimeline(elemTimeline.color, (time, entry) => elemBuilder.addColor(time, entry.value, entry.interpolation));\n reverseTimeline(elemTimeline.transform, (time, entry) => elemBuilder.addTransform(time, entry.value, entry.components, entry.interpolation));\n reverseTimeline(elemTimeline.cuttingPlane, (time, entry) => elemBuilder.addCuttingPlane(time, entry.value, entry.interpolation));\n }\n }\n\n const scriptProps = builder.finish();\n const newScript = RenderSchedule.Script.fromJSON(scriptProps);\n assert(undefined !== newScript);\n\n vp.displayStyle.scheduleScript = newScript;\n return true;\n }\n\n public async parse() {\n return true;\n }\n}\n\n/** A tool that changes or removes the [RenderSchedule.Script]($common) associated with the selected [Viewport]($frontend).\n * @beta\n */\nexport class SetScheduleScriptTool extends DisplayStyleTool {\n public static override toolId = \"SetScheduleScript\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n private _script?: RenderSchedule.Script;\n\n public override async parse(args: string[]): Promise<boolean> {\n if (args.length === 0)\n return true; // clear schedule script.\n\n try {\n this._script = RenderSchedule.Script.fromJSON(JSON.parse(args[0]));\n } catch (ex) {\n if (ex instanceof Error)\n alert(ex.toString());\n }\n\n return undefined !== this._script;\n }\n\n public override async execute(vp: Viewport): Promise<boolean> {\n vp.displayStyle.scheduleScript = this._script;\n return true;\n }\n}\n"]}
@@ -1,29 +1,29 @@
1
- /** @packageDocumentation
2
- * @module Tools
3
- */
4
- import { Id64Arg } from "@itwin/core-bentley";
5
- import { Tool } from "@itwin/core-frontend";
6
- /** Replaces the contents of the selection set with the set of element Ids specified.
7
- * Element Ids are separated by whitespace.
8
- * @beta
9
- */
10
- export declare class SelectElementsByIdTool extends Tool {
11
- static toolId: string;
12
- static get minArgs(): number;
13
- static get maxArgs(): undefined;
14
- run(ids?: Id64Arg): Promise<boolean>;
15
- parseAndRun(...args: string[]): Promise<boolean>;
16
- }
17
- /** A tool that outputs the Ids of the elements in the [SelectionSet]($frontend) of the [IModelConnection]($frontend) associated with the selected [Viewport]($frontend).
18
- * @beta
19
- */
20
- export declare class DumpSelectionSetTool extends Tool {
21
- static toolId: string;
22
- static get minArgs(): number;
23
- static get maxArgs(): number;
24
- private _format;
25
- private _copy?;
26
- run(): Promise<boolean>;
27
- parseAndRun(...input: string[]): Promise<boolean>;
28
- }
1
+ /** @packageDocumentation
2
+ * @module Tools
3
+ */
4
+ import { Id64Arg } from "@itwin/core-bentley";
5
+ import { Tool } from "@itwin/core-frontend";
6
+ /** Replaces the contents of the selection set with the set of element Ids specified.
7
+ * Element Ids are separated by whitespace.
8
+ * @beta
9
+ */
10
+ export declare class SelectElementsByIdTool extends Tool {
11
+ static toolId: string;
12
+ static get minArgs(): number;
13
+ static get maxArgs(): undefined;
14
+ run(ids?: Id64Arg): Promise<boolean>;
15
+ parseAndRun(...args: string[]): Promise<boolean>;
16
+ }
17
+ /** A tool that outputs the Ids of the elements in the [SelectionSet]($frontend) of the [IModelConnection]($frontend) associated with the selected [Viewport]($frontend).
18
+ * @beta
19
+ */
20
+ export declare class DumpSelectionSetTool extends Tool {
21
+ static toolId: string;
22
+ static get minArgs(): number;
23
+ static get maxArgs(): number;
24
+ private _format;
25
+ private _copy?;
26
+ run(): Promise<boolean>;
27
+ parseAndRun(...input: string[]): Promise<boolean>;
28
+ }
29
29
  //# sourceMappingURL=SelectionTools.d.ts.map
@@ -1,83 +1,83 @@
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 Tools
7
- */
8
- import { CompressedId64Set, OrderedId64Iterable } from "@itwin/core-bentley";
9
- import { IModelApp, NotifyMessageDetails, OutputMessagePriority, Tool } from "@itwin/core-frontend";
10
- import { copyStringToClipboard } from "../ClipboardUtilities";
11
- import { parseArgs } from "./parseArgs";
12
- /** Replaces the contents of the selection set with the set of element Ids specified.
13
- * Element Ids are separated by whitespace.
14
- * @beta
15
- */
16
- export class SelectElementsByIdTool extends Tool {
17
- static get minArgs() { return 1; }
18
- static get maxArgs() { return undefined; }
19
- async run(ids) {
20
- const vp = IModelApp.viewManager.selectedView;
21
- if (undefined !== vp && undefined !== ids)
22
- vp.iModel.selectionSet.replace(ids);
23
- return true;
24
- }
25
- async parseAndRun(...args) {
26
- return this.run(args);
27
- }
28
- }
29
- SelectElementsByIdTool.toolId = "SelectElementsById";
30
- /** A tool that outputs the Ids of the elements in the [SelectionSet]($frontend) of the [IModelConnection]($frontend) associated with the selected [Viewport]($frontend).
31
- * @beta
32
- */
33
- export class DumpSelectionSetTool extends Tool {
34
- constructor() {
35
- super(...arguments);
36
- this._format = "list";
37
- }
38
- static get minArgs() { return 0; }
39
- static get maxArgs() { return 2; }
40
- async run() {
41
- const vp = IModelApp.viewManager.selectedView;
42
- if (!vp)
43
- return false;
44
- const elems = Array.from(vp.iModel.selectionSet.elements);
45
- OrderedId64Iterable.sortArray(elems);
46
- let output;
47
- switch (this._format) {
48
- case "compressed":
49
- output = CompressedId64Set.compressArray(elems);
50
- break;
51
- case "json":
52
- output = JSON.stringify(elems);
53
- break;
54
- default:
55
- output = elems.join(" ");
56
- break;
57
- }
58
- if (this._copy)
59
- copyStringToClipboard(output);
60
- const brief = `Selection set dumped${this._copy ? " to clipboard" : ""}.`;
61
- const details = new NotifyMessageDetails(OutputMessagePriority.Info, brief, output);
62
- IModelApp.notifications.outputMessage(details);
63
- return true;
64
- }
65
- async parseAndRun(...input) {
66
- const args = parseArgs(input);
67
- this._copy = args.getBoolean("c");
68
- const formatArg = args.get("f");
69
- if (formatArg) {
70
- switch (formatArg[0].toLowerCase()) {
71
- case "j":
72
- this._format = "json";
73
- break;
74
- case "c":
75
- this._format = "compressed";
76
- break;
77
- }
78
- }
79
- return this.run();
80
- }
81
- }
82
- DumpSelectionSetTool.toolId = "DumpSelectionSet";
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 Tools
7
+ */
8
+ import { CompressedId64Set, OrderedId64Iterable } from "@itwin/core-bentley";
9
+ import { IModelApp, NotifyMessageDetails, OutputMessagePriority, Tool } from "@itwin/core-frontend";
10
+ import { copyStringToClipboard } from "../ClipboardUtilities";
11
+ import { parseArgs } from "./parseArgs";
12
+ /** Replaces the contents of the selection set with the set of element Ids specified.
13
+ * Element Ids are separated by whitespace.
14
+ * @beta
15
+ */
16
+ export class SelectElementsByIdTool extends Tool {
17
+ static get minArgs() { return 1; }
18
+ static get maxArgs() { return undefined; }
19
+ async run(ids) {
20
+ const vp = IModelApp.viewManager.selectedView;
21
+ if (undefined !== vp && undefined !== ids)
22
+ vp.iModel.selectionSet.replace(ids);
23
+ return true;
24
+ }
25
+ async parseAndRun(...args) {
26
+ return this.run(args);
27
+ }
28
+ }
29
+ SelectElementsByIdTool.toolId = "SelectElementsById";
30
+ /** A tool that outputs the Ids of the elements in the [SelectionSet]($frontend) of the [IModelConnection]($frontend) associated with the selected [Viewport]($frontend).
31
+ * @beta
32
+ */
33
+ export class DumpSelectionSetTool extends Tool {
34
+ constructor() {
35
+ super(...arguments);
36
+ this._format = "list";
37
+ }
38
+ static get minArgs() { return 0; }
39
+ static get maxArgs() { return 2; }
40
+ async run() {
41
+ const vp = IModelApp.viewManager.selectedView;
42
+ if (!vp)
43
+ return false;
44
+ const elems = Array.from(vp.iModel.selectionSet.elements);
45
+ OrderedId64Iterable.sortArray(elems);
46
+ let output;
47
+ switch (this._format) {
48
+ case "compressed":
49
+ output = CompressedId64Set.compressArray(elems);
50
+ break;
51
+ case "json":
52
+ output = JSON.stringify(elems);
53
+ break;
54
+ default:
55
+ output = elems.join(" ");
56
+ break;
57
+ }
58
+ if (this._copy)
59
+ copyStringToClipboard(output);
60
+ const brief = `Selection set dumped${this._copy ? " to clipboard" : ""}.`;
61
+ const details = new NotifyMessageDetails(OutputMessagePriority.Info, brief, output);
62
+ IModelApp.notifications.outputMessage(details);
63
+ return true;
64
+ }
65
+ async parseAndRun(...input) {
66
+ const args = parseArgs(input);
67
+ this._copy = args.getBoolean("c");
68
+ const formatArg = args.get("f");
69
+ if (formatArg) {
70
+ switch (formatArg[0].toLowerCase()) {
71
+ case "j":
72
+ this._format = "json";
73
+ break;
74
+ case "c":
75
+ this._format = "compressed";
76
+ break;
77
+ }
78
+ }
79
+ return this.run();
80
+ }
81
+ }
82
+ DumpSelectionSetTool.toolId = "DumpSelectionSet";
83
83
  //# sourceMappingURL=SelectionTools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionTools.js","sourceRoot":"","sources":["../../../src/tools/SelectionTools.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 Tools\r\n */\r\n\r\nimport { CompressedId64Set, Id64Arg, OrderedId64Iterable } from \"@itwin/core-bentley\";\r\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, Tool } from \"@itwin/core-frontend\";\r\nimport { copyStringToClipboard } from \"../ClipboardUtilities\";\r\nimport { parseArgs } from \"./parseArgs\";\r\n\r\n/** Replaces the contents of the selection set with the set of element Ids specified.\r\n * Element Ids are separated by whitespace.\r\n * @beta\r\n */\r\nexport class SelectElementsByIdTool extends Tool {\r\n public static override toolId = \"SelectElementsById\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return undefined; }\r\n\r\n public override async run(ids?: Id64Arg): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined !== vp && undefined !== ids)\r\n vp.iModel.selectionSet.replace(ids);\r\n\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n return this.run(args);\r\n }\r\n}\r\n\r\n/** A tool that outputs the Ids of the elements in the [SelectionSet]($frontend) of the [IModelConnection]($frontend) associated with the selected [Viewport]($frontend).\r\n * @beta\r\n */\r\nexport class DumpSelectionSetTool extends Tool {\r\n public static override toolId = \"DumpSelectionSet\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 2; }\r\n\r\n private _format: \"json\" | \"compressed\" | \"list\" = \"list\";\r\n private _copy?: boolean;\r\n\r\n public override async run(): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return false;\r\n\r\n const elems = Array.from(vp.iModel.selectionSet.elements);\r\n OrderedId64Iterable.sortArray(elems);\r\n\r\n let output;\r\n switch (this._format) {\r\n case \"compressed\":\r\n output = CompressedId64Set.compressArray(elems);\r\n break;\r\n case \"json\":\r\n output = JSON.stringify(elems);\r\n break;\r\n default:\r\n output = elems.join(\" \");\r\n break;\r\n }\r\n\r\n if (this._copy)\r\n copyStringToClipboard(output);\r\n\r\n const brief = `Selection set dumped${this._copy ? \" to clipboard\" : \"\"}.`;\r\n const details = new NotifyMessageDetails(OutputMessagePriority.Info, brief, output);\r\n IModelApp.notifications.outputMessage(details);\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...input: string[]): Promise<boolean> {\r\n const args = parseArgs(input);\r\n this._copy = args.getBoolean(\"c\");\r\n const formatArg = args.get(\"f\");\r\n if (formatArg) {\r\n switch (formatArg[0].toLowerCase()) {\r\n case \"j\":\r\n this._format = \"json\";\r\n break;\r\n case \"c\":\r\n this._format = \"compressed\";\r\n break;\r\n }\r\n }\r\n\r\n return this.run();\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"SelectionTools.js","sourceRoot":"","sources":["../../../src/tools/SelectionTools.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 Tools\n */\n\nimport { CompressedId64Set, Id64Arg, OrderedId64Iterable } from \"@itwin/core-bentley\";\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, Tool } from \"@itwin/core-frontend\";\nimport { copyStringToClipboard } from \"../ClipboardUtilities\";\nimport { parseArgs } from \"./parseArgs\";\n\n/** Replaces the contents of the selection set with the set of element Ids specified.\n * Element Ids are separated by whitespace.\n * @beta\n */\nexport class SelectElementsByIdTool extends Tool {\n public static override toolId = \"SelectElementsById\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return undefined; }\n\n public override async run(ids?: Id64Arg): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (undefined !== vp && undefined !== ids)\n vp.iModel.selectionSet.replace(ids);\n\n return true;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n return this.run(args);\n }\n}\n\n/** A tool that outputs the Ids of the elements in the [SelectionSet]($frontend) of the [IModelConnection]($frontend) associated with the selected [Viewport]($frontend).\n * @beta\n */\nexport class DumpSelectionSetTool extends Tool {\n public static override toolId = \"DumpSelectionSet\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 2; }\n\n private _format: \"json\" | \"compressed\" | \"list\" = \"list\";\n private _copy?: boolean;\n\n public override async run(): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (!vp)\n return false;\n\n const elems = Array.from(vp.iModel.selectionSet.elements);\n OrderedId64Iterable.sortArray(elems);\n\n let output;\n switch (this._format) {\n case \"compressed\":\n output = CompressedId64Set.compressArray(elems);\n break;\n case \"json\":\n output = JSON.stringify(elems);\n break;\n default:\n output = elems.join(\" \");\n break;\n }\n\n if (this._copy)\n copyStringToClipboard(output);\n\n const brief = `Selection set dumped${this._copy ? \" to clipboard\" : \"\"}.`;\n const details = new NotifyMessageDetails(OutputMessagePriority.Info, brief, output);\n IModelApp.notifications.outputMessage(details);\n return true;\n }\n\n public override async parseAndRun(...input: string[]): Promise<boolean> {\n const args = parseArgs(input);\n this._copy = args.getBoolean(\"c\");\n const formatArg = args.get(\"f\");\n if (formatArg) {\n switch (formatArg[0].toLowerCase()) {\n case \"j\":\n this._format = \"json\";\n break;\n case \"c\":\n this._format = \"compressed\";\n break;\n }\n }\n\n return this.run();\n }\n}\n"]}