@itwin/frontend-devtools 5.0.0-dev.5 → 5.0.0-dev.52

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 (251) hide show
  1. package/CHANGELOG.md +36 -1
  2. package/lib/cjs/ClipboardUtilities.js.map +1 -1
  3. package/lib/cjs/FrontEndDevTools.js +1 -1
  4. package/lib/cjs/FrontEndDevTools.js.map +1 -1
  5. package/lib/cjs/effects/Convolution.js +23 -23
  6. package/lib/cjs/effects/Convolution.js.map +1 -1
  7. package/lib/cjs/effects/EffectTools.js +2 -2
  8. package/lib/cjs/effects/EffectTools.js.map +1 -1
  9. package/lib/cjs/effects/Explosion.js +6 -6
  10. package/lib/cjs/effects/Explosion.js.map +1 -1
  11. package/lib/cjs/effects/FlipImage.js +22 -22
  12. package/lib/cjs/effects/FlipImage.js.map +1 -1
  13. package/lib/cjs/effects/LensDistortion.js +25 -25
  14. package/lib/cjs/effects/LensDistortion.js.map +1 -1
  15. package/lib/cjs/effects/Random.js.map +1 -1
  16. package/lib/cjs/effects/Saturation.js +30 -30
  17. package/lib/cjs/effects/Saturation.js.map +1 -1
  18. package/lib/cjs/effects/Snow.d.ts +1 -1
  19. package/lib/cjs/effects/Snow.d.ts.map +1 -1
  20. package/lib/cjs/effects/Snow.js +7 -6
  21. package/lib/cjs/effects/Snow.js.map +1 -1
  22. package/lib/cjs/effects/Vignette.js +41 -41
  23. package/lib/cjs/effects/Vignette.js.map +1 -1
  24. package/lib/cjs/frontend-devtools.js.map +1 -1
  25. package/lib/cjs/tools/AnimationIntervalTool.js +1 -1
  26. package/lib/cjs/tools/AnimationIntervalTool.js.map +1 -1
  27. package/lib/cjs/tools/ChangeUnitsTool.js +1 -1
  28. package/lib/cjs/tools/ChangeUnitsTool.js.map +1 -1
  29. package/lib/cjs/tools/ClipTools.js +4 -4
  30. package/lib/cjs/tools/ClipTools.js.map +1 -1
  31. package/lib/cjs/tools/DisplayStyleTools.js +10 -10
  32. package/lib/cjs/tools/DisplayStyleTools.js.map +1 -1
  33. package/lib/cjs/tools/EmphasizeElementsTool.js +5 -5
  34. package/lib/cjs/tools/EmphasizeElementsTool.js.map +1 -1
  35. package/lib/cjs/tools/FrustumDecoration.js +3 -3
  36. package/lib/cjs/tools/FrustumDecoration.js.map +1 -1
  37. package/lib/cjs/tools/InspectElementTool.js +1 -1
  38. package/lib/cjs/tools/InspectElementTool.js.map +1 -1
  39. package/lib/cjs/tools/MapLayerTool.js +20 -20
  40. package/lib/cjs/tools/MapLayerTool.js.map +1 -1
  41. package/lib/cjs/tools/MeasureTileLoadTime.js +1 -1
  42. package/lib/cjs/tools/MeasureTileLoadTime.js.map +1 -1
  43. package/lib/cjs/tools/ModelAppearanceTools.js +9 -9
  44. package/lib/cjs/tools/ModelAppearanceTools.js.map +1 -1
  45. package/lib/cjs/tools/PlanProjectionTools.js +3 -3
  46. package/lib/cjs/tools/PlanProjectionTools.js.map +1 -1
  47. package/lib/cjs/tools/PlanarMaskTools.js +13 -13
  48. package/lib/cjs/tools/PlanarMaskTools.js.map +1 -1
  49. package/lib/cjs/tools/ProjectExtents.js +1 -1
  50. package/lib/cjs/tools/ProjectExtents.js.map +1 -1
  51. package/lib/cjs/tools/RealityModelTools.js +10 -10
  52. package/lib/cjs/tools/RealityModelTools.js.map +1 -1
  53. package/lib/cjs/tools/RealityTransitionTool.js +1 -1
  54. package/lib/cjs/tools/RealityTransitionTool.js.map +1 -1
  55. package/lib/cjs/tools/RenderSystemTools.js +3 -3
  56. package/lib/cjs/tools/RenderSystemTools.js.map +1 -1
  57. package/lib/cjs/tools/RenderTargetTools.js +11 -11
  58. package/lib/cjs/tools/RenderTargetTools.js.map +1 -1
  59. package/lib/cjs/tools/ReportWebGLCompatibilityTool.js +1 -1
  60. package/lib/cjs/tools/ReportWebGLCompatibilityTool.js.map +1 -1
  61. package/lib/cjs/tools/SavedViews.js +3 -3
  62. package/lib/cjs/tools/SavedViews.js.map +1 -1
  63. package/lib/cjs/tools/ScheduleScriptTools.js +3 -3
  64. package/lib/cjs/tools/ScheduleScriptTools.js.map +1 -1
  65. package/lib/cjs/tools/SelectionTools.js +2 -2
  66. package/lib/cjs/tools/SelectionTools.js.map +1 -1
  67. package/lib/cjs/tools/SetGpuMemoryLimitTool.js +1 -1
  68. package/lib/cjs/tools/SetGpuMemoryLimitTool.js.map +1 -1
  69. package/lib/cjs/tools/SourceAspectIdTools.js +2 -2
  70. package/lib/cjs/tools/SourceAspectIdTools.js.map +1 -1
  71. package/lib/cjs/tools/TileRequestDecoration.js +1 -1
  72. package/lib/cjs/tools/TileRequestDecoration.js.map +1 -1
  73. package/lib/cjs/tools/TileTreeBoundsDecoration.d.ts.map +1 -1
  74. package/lib/cjs/tools/TileTreeBoundsDecoration.js +4 -2
  75. package/lib/cjs/tools/TileTreeBoundsDecoration.js.map +1 -1
  76. package/lib/cjs/tools/ToolTipProvider.js +1 -1
  77. package/lib/cjs/tools/ToolTipProvider.js.map +1 -1
  78. package/lib/cjs/tools/ViewportTools.js +19 -19
  79. package/lib/cjs/tools/ViewportTools.js.map +1 -1
  80. package/lib/cjs/tools/parseArgs.js.map +1 -1
  81. package/lib/cjs/tools/parseBoolean.js.map +1 -1
  82. package/lib/cjs/tools/parseToggle.js.map +1 -1
  83. package/lib/cjs/ui/Button.js.map +1 -1
  84. package/lib/cjs/ui/CheckBox.js.map +1 -1
  85. package/lib/cjs/ui/ColorInput.js.map +1 -1
  86. package/lib/cjs/ui/ComboBox.js.map +1 -1
  87. package/lib/cjs/ui/DataList.js.map +1 -1
  88. package/lib/cjs/ui/NestedMenu.js.map +1 -1
  89. package/lib/cjs/ui/NumericInput.js.map +1 -1
  90. package/lib/cjs/ui/RadioBox.js.map +1 -1
  91. package/lib/cjs/ui/Slider.js.map +1 -1
  92. package/lib/cjs/ui/TextBox.js.map +1 -1
  93. package/lib/cjs/widgets/DiagnosticsPanel.d.ts +1 -1
  94. package/lib/cjs/widgets/DiagnosticsPanel.d.ts.map +1 -1
  95. package/lib/cjs/widgets/DiagnosticsPanel.js +1 -1
  96. package/lib/cjs/widgets/DiagnosticsPanel.js.map +1 -1
  97. package/lib/cjs/widgets/FpsTracker.d.ts +1 -1
  98. package/lib/cjs/widgets/FpsTracker.d.ts.map +1 -1
  99. package/lib/cjs/widgets/FpsTracker.js +1 -1
  100. package/lib/cjs/widgets/FpsTracker.js.map +1 -1
  101. package/lib/cjs/widgets/GpuProfiler.d.ts +1 -1
  102. package/lib/cjs/widgets/GpuProfiler.d.ts.map +1 -1
  103. package/lib/cjs/widgets/GpuProfiler.js +1 -1
  104. package/lib/cjs/widgets/GpuProfiler.js.map +1 -1
  105. package/lib/cjs/widgets/KeyinField.js.map +1 -1
  106. package/lib/cjs/widgets/MemoryTracker.d.ts +1 -1
  107. package/lib/cjs/widgets/MemoryTracker.d.ts.map +1 -1
  108. package/lib/cjs/widgets/MemoryTracker.js +1 -1
  109. package/lib/cjs/widgets/MemoryTracker.js.map +1 -1
  110. package/lib/cjs/widgets/RenderCommandBreakdown.d.ts +1 -1
  111. package/lib/cjs/widgets/RenderCommandBreakdown.d.ts.map +1 -1
  112. package/lib/cjs/widgets/RenderCommandBreakdown.js +1 -1
  113. package/lib/cjs/widgets/RenderCommandBreakdown.js.map +1 -1
  114. package/lib/cjs/widgets/TileMemoryBreakdown.d.ts +1 -1
  115. package/lib/cjs/widgets/TileMemoryBreakdown.d.ts.map +1 -1
  116. package/lib/cjs/widgets/TileMemoryBreakdown.js +1 -1
  117. package/lib/cjs/widgets/TileMemoryBreakdown.js.map +1 -1
  118. package/lib/cjs/widgets/TileStatisticsTracker.d.ts +1 -1
  119. package/lib/cjs/widgets/TileStatisticsTracker.d.ts.map +1 -1
  120. package/lib/cjs/widgets/TileStatisticsTracker.js +1 -1
  121. package/lib/cjs/widgets/TileStatisticsTracker.js.map +1 -1
  122. package/lib/cjs/widgets/ToolSettingsTracker.d.ts +1 -1
  123. package/lib/cjs/widgets/ToolSettingsTracker.d.ts.map +1 -1
  124. package/lib/cjs/widgets/ToolSettingsTracker.js +2 -2
  125. package/lib/cjs/widgets/ToolSettingsTracker.js.map +1 -1
  126. package/lib/esm/ClipboardUtilities.js.map +1 -1
  127. package/lib/esm/FrontEndDevTools.js +1 -1
  128. package/lib/esm/FrontEndDevTools.js.map +1 -1
  129. package/lib/esm/effects/Convolution.js +23 -23
  130. package/lib/esm/effects/Convolution.js.map +1 -1
  131. package/lib/esm/effects/EffectTools.js +2 -2
  132. package/lib/esm/effects/EffectTools.js.map +1 -1
  133. package/lib/esm/effects/Explosion.js +6 -6
  134. package/lib/esm/effects/Explosion.js.map +1 -1
  135. package/lib/esm/effects/FlipImage.js +22 -22
  136. package/lib/esm/effects/FlipImage.js.map +1 -1
  137. package/lib/esm/effects/LensDistortion.js +25 -25
  138. package/lib/esm/effects/LensDistortion.js.map +1 -1
  139. package/lib/esm/effects/Random.js.map +1 -1
  140. package/lib/esm/effects/Saturation.js +30 -30
  141. package/lib/esm/effects/Saturation.js.map +1 -1
  142. package/lib/esm/effects/Snow.d.ts +1 -1
  143. package/lib/esm/effects/Snow.d.ts.map +1 -1
  144. package/lib/esm/effects/Snow.js +7 -6
  145. package/lib/esm/effects/Snow.js.map +1 -1
  146. package/lib/esm/effects/Vignette.js +41 -41
  147. package/lib/esm/effects/Vignette.js.map +1 -1
  148. package/lib/esm/frontend-devtools.js.map +1 -1
  149. package/lib/esm/tools/AnimationIntervalTool.js +1 -1
  150. package/lib/esm/tools/AnimationIntervalTool.js.map +1 -1
  151. package/lib/esm/tools/ChangeUnitsTool.js +1 -1
  152. package/lib/esm/tools/ChangeUnitsTool.js.map +1 -1
  153. package/lib/esm/tools/ClipTools.js +4 -4
  154. package/lib/esm/tools/ClipTools.js.map +1 -1
  155. package/lib/esm/tools/DisplayStyleTools.js +10 -10
  156. package/lib/esm/tools/DisplayStyleTools.js.map +1 -1
  157. package/lib/esm/tools/EmphasizeElementsTool.js +5 -5
  158. package/lib/esm/tools/EmphasizeElementsTool.js.map +1 -1
  159. package/lib/esm/tools/FrustumDecoration.js +3 -3
  160. package/lib/esm/tools/FrustumDecoration.js.map +1 -1
  161. package/lib/esm/tools/InspectElementTool.js +1 -1
  162. package/lib/esm/tools/InspectElementTool.js.map +1 -1
  163. package/lib/esm/tools/MapLayerTool.js +20 -20
  164. package/lib/esm/tools/MapLayerTool.js.map +1 -1
  165. package/lib/esm/tools/MeasureTileLoadTime.js +1 -1
  166. package/lib/esm/tools/MeasureTileLoadTime.js.map +1 -1
  167. package/lib/esm/tools/ModelAppearanceTools.js +9 -9
  168. package/lib/esm/tools/ModelAppearanceTools.js.map +1 -1
  169. package/lib/esm/tools/PlanProjectionTools.js +3 -3
  170. package/lib/esm/tools/PlanProjectionTools.js.map +1 -1
  171. package/lib/esm/tools/PlanarMaskTools.js +13 -13
  172. package/lib/esm/tools/PlanarMaskTools.js.map +1 -1
  173. package/lib/esm/tools/ProjectExtents.js +1 -1
  174. package/lib/esm/tools/ProjectExtents.js.map +1 -1
  175. package/lib/esm/tools/RealityModelTools.js +10 -10
  176. package/lib/esm/tools/RealityModelTools.js.map +1 -1
  177. package/lib/esm/tools/RealityTransitionTool.js +1 -1
  178. package/lib/esm/tools/RealityTransitionTool.js.map +1 -1
  179. package/lib/esm/tools/RenderSystemTools.js +3 -3
  180. package/lib/esm/tools/RenderSystemTools.js.map +1 -1
  181. package/lib/esm/tools/RenderTargetTools.js +11 -11
  182. package/lib/esm/tools/RenderTargetTools.js.map +1 -1
  183. package/lib/esm/tools/ReportWebGLCompatibilityTool.js +1 -1
  184. package/lib/esm/tools/ReportWebGLCompatibilityTool.js.map +1 -1
  185. package/lib/esm/tools/SavedViews.js +3 -3
  186. package/lib/esm/tools/SavedViews.js.map +1 -1
  187. package/lib/esm/tools/ScheduleScriptTools.js +3 -3
  188. package/lib/esm/tools/ScheduleScriptTools.js.map +1 -1
  189. package/lib/esm/tools/SelectionTools.js +2 -2
  190. package/lib/esm/tools/SelectionTools.js.map +1 -1
  191. package/lib/esm/tools/SetGpuMemoryLimitTool.js +1 -1
  192. package/lib/esm/tools/SetGpuMemoryLimitTool.js.map +1 -1
  193. package/lib/esm/tools/SourceAspectIdTools.js +2 -2
  194. package/lib/esm/tools/SourceAspectIdTools.js.map +1 -1
  195. package/lib/esm/tools/TileRequestDecoration.js +1 -1
  196. package/lib/esm/tools/TileRequestDecoration.js.map +1 -1
  197. package/lib/esm/tools/TileTreeBoundsDecoration.d.ts.map +1 -1
  198. package/lib/esm/tools/TileTreeBoundsDecoration.js +4 -2
  199. package/lib/esm/tools/TileTreeBoundsDecoration.js.map +1 -1
  200. package/lib/esm/tools/ToolTipProvider.js +1 -1
  201. package/lib/esm/tools/ToolTipProvider.js.map +1 -1
  202. package/lib/esm/tools/ViewportTools.js +19 -19
  203. package/lib/esm/tools/ViewportTools.js.map +1 -1
  204. package/lib/esm/tools/parseArgs.js.map +1 -1
  205. package/lib/esm/tools/parseBoolean.js.map +1 -1
  206. package/lib/esm/tools/parseToggle.js.map +1 -1
  207. package/lib/esm/ui/Button.js.map +1 -1
  208. package/lib/esm/ui/CheckBox.js.map +1 -1
  209. package/lib/esm/ui/ColorInput.js.map +1 -1
  210. package/lib/esm/ui/ComboBox.js.map +1 -1
  211. package/lib/esm/ui/DataList.js.map +1 -1
  212. package/lib/esm/ui/NestedMenu.js.map +1 -1
  213. package/lib/esm/ui/NumericInput.js.map +1 -1
  214. package/lib/esm/ui/RadioBox.js.map +1 -1
  215. package/lib/esm/ui/Slider.js.map +1 -1
  216. package/lib/esm/ui/TextBox.js.map +1 -1
  217. package/lib/esm/widgets/DiagnosticsPanel.d.ts +1 -1
  218. package/lib/esm/widgets/DiagnosticsPanel.d.ts.map +1 -1
  219. package/lib/esm/widgets/DiagnosticsPanel.js +1 -1
  220. package/lib/esm/widgets/DiagnosticsPanel.js.map +1 -1
  221. package/lib/esm/widgets/FpsTracker.d.ts +1 -1
  222. package/lib/esm/widgets/FpsTracker.d.ts.map +1 -1
  223. package/lib/esm/widgets/FpsTracker.js +1 -1
  224. package/lib/esm/widgets/FpsTracker.js.map +1 -1
  225. package/lib/esm/widgets/GpuProfiler.d.ts +1 -1
  226. package/lib/esm/widgets/GpuProfiler.d.ts.map +1 -1
  227. package/lib/esm/widgets/GpuProfiler.js +1 -1
  228. package/lib/esm/widgets/GpuProfiler.js.map +1 -1
  229. package/lib/esm/widgets/KeyinField.js.map +1 -1
  230. package/lib/esm/widgets/MemoryTracker.d.ts +1 -1
  231. package/lib/esm/widgets/MemoryTracker.d.ts.map +1 -1
  232. package/lib/esm/widgets/MemoryTracker.js +1 -1
  233. package/lib/esm/widgets/MemoryTracker.js.map +1 -1
  234. package/lib/esm/widgets/RenderCommandBreakdown.d.ts +1 -1
  235. package/lib/esm/widgets/RenderCommandBreakdown.d.ts.map +1 -1
  236. package/lib/esm/widgets/RenderCommandBreakdown.js +1 -1
  237. package/lib/esm/widgets/RenderCommandBreakdown.js.map +1 -1
  238. package/lib/esm/widgets/TileMemoryBreakdown.d.ts +1 -1
  239. package/lib/esm/widgets/TileMemoryBreakdown.d.ts.map +1 -1
  240. package/lib/esm/widgets/TileMemoryBreakdown.js +1 -1
  241. package/lib/esm/widgets/TileMemoryBreakdown.js.map +1 -1
  242. package/lib/esm/widgets/TileStatisticsTracker.d.ts +1 -1
  243. package/lib/esm/widgets/TileStatisticsTracker.d.ts.map +1 -1
  244. package/lib/esm/widgets/TileStatisticsTracker.js +1 -1
  245. package/lib/esm/widgets/TileStatisticsTracker.js.map +1 -1
  246. package/lib/esm/widgets/ToolSettingsTracker.d.ts +1 -1
  247. package/lib/esm/widgets/ToolSettingsTracker.d.ts.map +1 -1
  248. package/lib/esm/widgets/ToolSettingsTracker.js +2 -2
  249. package/lib/esm/widgets/ToolSettingsTracker.js.map +1 -1
  250. package/lib/public/locales/en/FrontendDevTools.json +494 -494
  251. package/package.json +8 -8
@@ -61,6 +61,7 @@ class AttachMapLayerBaseTool extends Tool {
61
61
  export class AttachModelMapLayerTool extends Tool {
62
62
  static get minArgs() { return 0; }
63
63
  static get maxArgs() { return 1; }
64
+ static { this.toolId = "AttachModelMapLayerTool"; }
64
65
  constructor(_formatId) {
65
66
  super();
66
67
  this._formatId = _formatId;
@@ -89,7 +90,6 @@ export class AttachModelMapLayerTool extends Tool {
89
90
  async onRestartTool() {
90
91
  }
91
92
  }
92
- AttachModelMapLayerTool.toolId = "AttachModelMapLayerTool";
93
93
  /** Attach a map layer from URL base class. */
94
94
  class AttachMapLayerByURLBaseTool extends AttachMapLayerBaseTool {
95
95
  static get minArgs() { return 1; }
@@ -115,6 +115,7 @@ class AttachMapLayerByURLBaseTool extends AttachMapLayerBaseTool {
115
115
  * @beta
116
116
  */
117
117
  export class AttachWmsMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {
118
+ static { this.toolId = "AttachWmsMapLayerTool"; }
118
119
  constructor() { super("WMS"); }
119
120
  /** This method runs the tool, attaching a WMS map layer from a given URL.
120
121
  * @param args contains url, name, userName, password in array order
@@ -123,11 +124,11 @@ export class AttachWmsMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {
123
124
  return this.run(WmsUtilities.getBaseUrl(args[0]), args[1], args[2], args[3]);
124
125
  }
125
126
  }
126
- AttachWmsMapLayerByUrlTool.toolId = "AttachWmsMapLayerTool";
127
127
  /** This tool attaches a WMTS map layer from a given URL.
128
128
  * @beta
129
129
  */
130
130
  export class AttachWmtsMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {
131
+ static { this.toolId = "AttachWmtsMapLayerTool"; }
131
132
  constructor() { super("WMTS"); }
132
133
  /** This method runs the tool, attaching a WMTS map layer from a given URL.
133
134
  * @param args contains url, name, userName, password in array order
@@ -136,39 +137,39 @@ export class AttachWmtsMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {
136
137
  return this.run(WmsUtilities.getBaseUrl(args[0]), args[1], args[2], args[3]);
137
138
  }
138
139
  }
139
- AttachWmtsMapLayerByUrlTool.toolId = "AttachWmtsMapLayerTool";
140
140
  /** This tool attaches an ArcGIS map layer from a given URL.
141
141
  * @beta
142
142
  */
143
143
  export class AttachArcGISMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {
144
+ static { this.toolId = "AttachArcGISMapLayerTool"; }
144
145
  constructor() { super("ArcGIS"); }
145
146
  }
146
- AttachArcGISMapLayerByUrlTool.toolId = "AttachArcGISMapLayerTool";
147
147
  /** This tool attaches an ArcGIS map layer from a given URL.
148
148
  * @beta
149
149
  */
150
150
  export class AttachArcGISFeatureMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {
151
+ static { this.toolId = "AttachArcGISFeatureMapLayerTool"; }
151
152
  constructor() { super("ArcGISFeature"); }
152
153
  }
153
- AttachArcGISFeatureMapLayerByUrlTool.toolId = "AttachArcGISFeatureMapLayerTool";
154
154
  /** This tool attaches an ArcGIS map layer from a given URL.
155
155
  * @beta
156
156
  */
157
157
  export class AttachOgcApiFeaturesMapLayerTool extends AttachMapLayerByURLBaseTool {
158
+ static { this.toolId = "AttachOgcApiFeaturesMapLayerTool"; }
158
159
  constructor() { super("OgcApiFeatures"); }
159
160
  }
160
- AttachOgcApiFeaturesMapLayerTool.toolId = "AttachOgcApiFeaturesMapLayerTool";
161
161
  /** This tool attaches a map layer from a given tile URL.
162
162
  * @beta
163
163
  */
164
164
  export class AttachTileURLMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {
165
+ static { this.toolId = "AttachTileURLMapLayerTool"; }
165
166
  constructor() { super("TileURL"); }
166
167
  }
167
- AttachTileURLMapLayerByUrlTool.toolId = "AttachTileURLMapLayerTool";
168
168
  /** This tool add a Map Layer from a specified name (look up in MapLayerSources.json).
169
169
  * @beta
170
170
  */
171
171
  export class AttachMapLayerTool extends AttachMapLayerBaseTool {
172
+ static { this.toolId = "AttachMapLayerTool"; }
172
173
  static get minArgs() { return 1; }
173
174
  static get maxArgs() { return 1; }
174
175
  /** This method runs the tool, adding a map layer from a specified name in MayLayerSources.json.
@@ -194,31 +195,31 @@ export class AttachMapLayerTool extends AttachMapLayerBaseTool {
194
195
  return this.run(args[0]);
195
196
  }
196
197
  }
197
- AttachMapLayerTool.toolId = "AttachMapLayerTool";
198
198
  /** This tool attaches a Overlay map layer.
199
199
  * @beta
200
200
  */
201
201
  export class AttachMapOverlayTool extends AttachMapLayerTool {
202
+ static { this.toolId = "AttachMapOverlayTool"; }
202
203
  constructor() {
203
204
  super();
204
205
  this._isBackground = false;
205
206
  }
206
207
  }
207
- AttachMapOverlayTool.toolId = "AttachMapOverlayTool";
208
208
  /** Sets map layer base tool.
209
209
  * @beta
210
210
  */
211
211
  export class SetMapBaseTool extends AttachMapLayerTool {
212
+ static { this.toolId = "SetMapBaseTool"; }
212
213
  constructor() {
213
214
  super();
214
215
  this._isBase = true;
215
216
  }
216
217
  }
217
- SetMapBaseTool.toolId = "SetMapBaseTool";
218
218
  /** Detach Map Layers Tool.
219
219
  * @beta
220
220
  */
221
221
  export class DetachMapLayersTool extends Tool {
222
+ static { this.toolId = "DetachMapLayersTool"; }
222
223
  static get minArgs() { return 0; }
223
224
  static get maxArgs() { return 0; }
224
225
  async parseAndRun(..._args) {
@@ -234,7 +235,6 @@ export class DetachMapLayersTool extends Tool {
234
235
  return true;
235
236
  }
236
237
  }
237
- DetachMapLayersTool.toolId = "DetachMapLayersTool";
238
238
  function parseLayerIndex(args) {
239
239
  const layerIndex = args.length > 1 ? parseInt(args[1], 10) : 0;
240
240
  return isNaN(layerIndex) ? 0 : layerIndex;
@@ -243,6 +243,7 @@ function parseLayerIndex(args) {
243
243
  * @beta
244
244
  */
245
245
  export class MapLayerVisibilityTool extends Tool {
246
+ static { this.toolId = "SetMapLayerVisibility"; }
246
247
  static get minArgs() { return 1; }
247
248
  static get maxArgs() { return 2; }
248
249
  /** This method runs the tool, setting the visibility of a map layer.
@@ -272,11 +273,11 @@ export class MapLayerVisibilityTool extends Tool {
272
273
  return true;
273
274
  }
274
275
  }
275
- MapLayerVisibilityTool.toolId = "SetMapLayerVisibility";
276
276
  /** This tool reorders map layers.
277
277
  * @beta
278
278
  */
279
279
  export class ReorderMapLayers extends Tool {
280
+ static { this.toolId = "ReorderMapLayers"; }
280
281
  static get minArgs() { return 0; }
281
282
  static get maxArgs() { return 2; }
282
283
  /** This method runs the tool, reordering the map layers.
@@ -301,11 +302,11 @@ export class ReorderMapLayers extends Tool {
301
302
  return true;
302
303
  }
303
304
  }
304
- ReorderMapLayers.toolId = "ReorderMapLayers";
305
305
  /** This tool sets the transparency of a map layer.
306
306
  * @beta
307
307
  */
308
308
  export class MapLayerTransparencyTool extends Tool {
309
+ static { this.toolId = "SetMapLayerTransparency"; }
309
310
  static get minArgs() { return 1; }
310
311
  static get maxArgs() { return 2; }
311
312
  /** This method runs the tool, setting the transparency of a map layer.
@@ -331,11 +332,11 @@ export class MapLayerTransparencyTool extends Tool {
331
332
  return true;
332
333
  }
333
334
  }
334
- MapLayerTransparencyTool.toolId = "SetMapLayerTransparency";
335
335
  /** This tool sets the visibility of the map sublayer.
336
336
  * @beta
337
337
  */
338
338
  export class MapLayerSubLayerVisibilityTool extends Tool {
339
+ static { this.toolId = "SetMapSubLayerVisibility"; }
339
340
  static get minArgs() { return 1; }
340
341
  static get maxArgs() { return 2; }
341
342
  /** This method runs the tool, setting the visibility of a map sublayer.
@@ -360,11 +361,11 @@ export class MapLayerSubLayerVisibilityTool extends Tool {
360
361
  return true;
361
362
  }
362
363
  }
363
- MapLayerSubLayerVisibilityTool.toolId = "SetMapSubLayerVisibility";
364
364
  /** This tool changes the viewport so it is zoomed to the range of a map layer.
365
365
  * @beta
366
366
  */
367
367
  export class MapLayerZoomTool extends Tool {
368
+ static { this.toolId = "MapLayerZoom"; }
368
369
  static get minArgs() { return 0; }
369
370
  static get maxArgs() { return 1; }
370
371
  /** This method runs the tool, changing the viewport so it is zoomed to the range of a map layer.
@@ -386,11 +387,11 @@ export class MapLayerZoomTool extends Tool {
386
387
  return true;
387
388
  }
388
389
  }
389
- MapLayerZoomTool.toolId = "MapLayerZoom";
390
390
  /** This tool toggles whether to apply terrain heights to the map.
391
391
  * @beta
392
392
  */
393
393
  export class ToggleTerrainTool extends Tool {
394
+ static { this.toolId = "ToggleTerrain"; }
394
395
  static get minArgs() { return 0; }
395
396
  static get maxArgs() { return 1; }
396
397
  /** This method runs the tool, changing whether to apply terrain heights to the map.
@@ -415,11 +416,11 @@ export class ToggleTerrainTool extends Tool {
415
416
  return true;
416
417
  }
417
418
  }
418
- ToggleTerrainTool.toolId = "ToggleTerrain";
419
419
  /** This tool changes the color of the base map.
420
420
  * @beta
421
421
  */
422
422
  export class MapBaseColorTool extends Tool {
423
+ static { this.toolId = "SetMapBaseColorTool"; }
423
424
  static get minArgs() { return 3; }
424
425
  static get maxArgs() { return 3; }
425
426
  /** This method runs the tool, changing the color of the base map.
@@ -443,11 +444,11 @@ export class MapBaseColorTool extends Tool {
443
444
  return (isNaN(red) || red < 0 || red > 255 || isNaN(green) || green < 0 || green > 255 || isNaN(blue) || blue < 0 || blue > 255) ? false : this.run(ColorDef.from(red, green, blue));
444
445
  }
445
446
  }
446
- MapBaseColorTool.toolId = "SetMapBaseColorTool";
447
447
  /** This tool changes the transparency of the base map.
448
448
  * @beta
449
449
  */
450
450
  export class MapBaseTransparencyTool extends Tool {
451
+ static { this.toolId = "SetMapBaseTransparencyTool"; }
451
452
  static get minArgs() { return 1; }
452
453
  static get maxArgs() { return 1; }
453
454
  /** This method runs the tool, changing the transparency of the base map.
@@ -469,11 +470,11 @@ export class MapBaseTransparencyTool extends Tool {
469
470
  return (isNaN(transparency) || transparency < 0 || transparency > 1) ? false : this.run(transparency);
470
471
  }
471
472
  }
472
- MapBaseTransparencyTool.toolId = "SetMapBaseTransparencyTool";
473
473
  /** This tool changes the visibility of the base map.
474
474
  * @beta
475
475
  */
476
476
  export class MapBaseVisibilityTool extends Tool {
477
+ static { this.toolId = "SetMapBaseVisibilityTool"; }
477
478
  static get minArgs() { return 1; }
478
479
  static get maxArgs() { return 1; }
479
480
  /** This method runs the tool, changing the visibility of the base map.
@@ -495,5 +496,4 @@ export class MapBaseVisibilityTool extends Tool {
495
496
  return (visible !== undefined ? this.run(visible) : false);
496
497
  }
497
498
  }
498
- MapBaseVisibilityTool.toolId = "SetMapBaseVisibilityTool";
499
499
  //# sourceMappingURL=MapLayerTool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MapLayerTool.js","sourceRoot":"","sources":["../../../src/tools/MapLayerTool.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 { Id64String } from \"@itwin/core-bentley\";\r\nimport { BaseMapLayerSettings, ColorDef, ModelMapLayerSettings } from \"@itwin/core-common\";\r\nimport { IModelApp, MapLayerSource, MapLayerSources, MapLayerSourceStatus, NotifyMessageDetails, OutputMessagePriority, Tool, WmsUtilities } from \"@itwin/core-frontend\";\r\nimport { parseBoolean } from \"./parseBoolean\";\r\nimport { parseToggle } from \"./parseToggle\";\r\n\r\n/** Base class for attaching map layer tool. */\r\nclass AttachMapLayerBaseTool extends Tool {\r\n constructor(protected _isBackground = true, protected _isBase = false) {\r\n super();\r\n }\r\n\r\n protected doAttach(source?: MapLayerSource) {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (vp === undefined || source === undefined)\r\n return;\r\n\r\n source.validateSource().then((validation) => {\r\n if (validation.status === MapLayerSourceStatus.Valid || validation.status === MapLayerSourceStatus.RequireAuth) {\r\n if (this._isBase) {\r\n vp.displayStyle.backgroundMapBase = BaseMapLayerSettings.fromJSON({ ...source, subLayers: validation.subLayers });\r\n vp.invalidateRenderPlan();\r\n } else {\r\n const settings = source.toLayerSettings(validation.subLayers);\r\n if (settings) {\r\n // Need to specify index in mapLayerIndex, so just use -1 to attach layer at the bottom\r\n // Previously, this was done within attachMapLayer if index was undefined.\r\n vp.displayStyle.attachMapLayer({ settings, mapLayerIndex: { isOverlay: !this._isBackground, index: -1 } });\r\n }\r\n }\r\n\r\n if (validation.status === MapLayerSourceStatus.Valid) {\r\n vp.invalidateRenderPlan();\r\n const msg = IModelApp.localization.getLocalizedString(\"FrontendDevTools:tools.AttachMapLayerTool.Messages.MapLayerAttached\", { sourceName: source.name });\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, msg));\r\n } else if (validation.status === MapLayerSourceStatus.RequireAuth) {\r\n const msg = IModelApp.localization.getLocalizedString(\"FrontendDevTools:tools.AttachMapLayerTool.Messages.MapLayerAttachedRequiresAuth\", { sourceName: source.name });\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Warning, msg));\r\n }\r\n\r\n } else if (validation.status === MapLayerSourceStatus.IncompatibleFormat) {\r\n const msg = IModelApp.localization.getLocalizedString(\"FrontendDevTools:tools.AttachMapLayerTool.Messages.MapLayersIncompatibleFormat\", { sourceName: source.name });\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Error, msg));\r\n } else {\r\n const msg = IModelApp.localization.getLocalizedString(\"FrontendDevTools:tools.AttachMapLayerTool.Messages.MapLayerValidationFailed\", { sourceName: source.name });\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Error, msg));\r\n }\r\n }).catch((error) => {\r\n const msg = IModelApp.localization.getLocalizedString(\"FrontendDevTools:tools.AttachMapLayerTool.Messages.MapLayerAttachError\", { error, sourceName: source.name });\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Error, msg));\r\n });\r\n }\r\n}\r\n\r\n/** Attach a map layer from URL base class. A layer is attached for each unique model in the selection\r\n * @beta\r\n */\r\nexport class AttachModelMapLayerTool extends Tool {\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n public static override toolId = \"AttachModelMapLayerTool\";\r\n constructor(protected _formatId: string) { super(); }\r\n\r\n public override async run(nameIn?: string): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return false;\r\n\r\n const iModel = vp.iModel;\r\n const elements = await iModel.elements.getProps(iModel.selectionSet.elements);\r\n const modelIds = new Set<Id64String>();\r\n\r\n for (const element of elements)\r\n modelIds.add(element.model);\r\n\r\n for (const modelId of modelIds) {\r\n const modelProps = await iModel.models.getProps(modelId);\r\n const modelName = modelProps[0].name ? modelProps[0].name : modelId;\r\n const name = nameIn ? (modelIds.size > 1 ? `${nameIn}: ${modelName}` : nameIn) : modelName;\r\n const settings = ModelMapLayerSettings.fromJSON({ name, modelId });\r\n vp.displayStyle.attachMapLayer({ settings, mapLayerIndex: { isOverlay: false, index: -1 } });\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[0]);\r\n }\r\n public async onRestartTool() {\r\n }\r\n}\r\n/** Attach a map layer from URL base class. */\r\nclass AttachMapLayerByURLBaseTool extends AttachMapLayerBaseTool {\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 4; }\r\n constructor(protected _formatId: string) { super(); }\r\n\r\n public override async run(url: string, name?: string, userName?: string, password?: string): Promise<boolean> {\r\n const source = MapLayerSource.fromJSON({ url, name: (name ? name : url), formatId: this._formatId });\r\n if (source) {\r\n source.userName = userName;\r\n source.password = password;\r\n }\r\n\r\n this.doAttach(source);\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n return this.run(args[0], args[1], args[2], args[3]);\r\n }\r\n}\r\n\r\n/** This tool attaches a WMS map layer from a given URL.\r\n * @beta\r\n */\r\nexport class AttachWmsMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {\r\n public static override toolId = \"AttachWmsMapLayerTool\";\r\n constructor() { super(\"WMS\"); }\r\n /** This method runs the tool, attaching a WMS map layer from a given URL.\r\n * @param args contains url, name, userName, password in array order\r\n */\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n return this.run(WmsUtilities.getBaseUrl(args[0]), args[1], args[2], args[3]);\r\n }\r\n}\r\n\r\n/** This tool attaches a WMTS map layer from a given URL.\r\n * @beta\r\n */\r\nexport class AttachWmtsMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {\r\n public static override toolId = \"AttachWmtsMapLayerTool\";\r\n constructor() { super(\"WMTS\"); }\r\n /** This method runs the tool, attaching a WMTS map layer from a given URL.\r\n * @param args contains url, name, userName, password in array order\r\n */\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n return this.run(WmsUtilities.getBaseUrl(args[0]), args[1], args[2], args[3]);\r\n }\r\n}\r\n\r\n/** This tool attaches an ArcGIS map layer from a given URL.\r\n * @beta\r\n */\r\nexport class AttachArcGISMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {\r\n public static override toolId = \"AttachArcGISMapLayerTool\";\r\n constructor() { super(\"ArcGIS\"); }\r\n}\r\n\r\n/** This tool attaches an ArcGIS map layer from a given URL.\r\n * @beta\r\n */\r\nexport class AttachArcGISFeatureMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {\r\n public static override toolId = \"AttachArcGISFeatureMapLayerTool\";\r\n constructor() { super(\"ArcGISFeature\"); }\r\n}\r\n\r\n/** This tool attaches an ArcGIS map layer from a given URL.\r\n * @beta\r\n */\r\nexport class AttachOgcApiFeaturesMapLayerTool extends AttachMapLayerByURLBaseTool {\r\n public static override toolId = \"AttachOgcApiFeaturesMapLayerTool\";\r\n constructor() { super(\"OgcApiFeatures\"); }\r\n}\r\n\r\n/** This tool attaches a map layer from a given tile URL.\r\n * @beta\r\n */\r\nexport class AttachTileURLMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {\r\n public static override toolId = \"AttachTileURLMapLayerTool\";\r\n constructor() { super(\"TileURL\"); }\r\n}\r\n\r\n/** This tool add a Map Layer from a specified name (look up in MapLayerSources.json).\r\n * @beta\r\n */\r\nexport class AttachMapLayerTool extends AttachMapLayerBaseTool {\r\n public static override toolId = \"AttachMapLayerTool\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n /** This method runs the tool, adding a map layer from a specified name in MayLayerSources.json.\r\n * @param name the name of the map layer to add\r\n */\r\n public override async run(name: string): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (vp === undefined)\r\n return false;\r\n\r\n MapLayerSources.create().then((sources) => {\r\n if (sources !== undefined) {\r\n const source = sources.findByName(name, this._isBase);\r\n if (source !== undefined)\r\n this.doAttach(source);\r\n }\r\n }).catch((_err) => { });\r\n\r\n return true;\r\n }\r\n\r\n /** Executes this tool's run method with args[0] containing `name`.\r\n * @see [[run]]\r\n */\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n return this.run(args[0]);\r\n }\r\n}\r\n/** This tool attaches a Overlay map layer.\r\n * @beta\r\n */\r\nexport class AttachMapOverlayTool extends AttachMapLayerTool {\r\n public static override toolId = \"AttachMapOverlayTool\";\r\n constructor() {\r\n super();\r\n this._isBackground = false;\r\n }\r\n}\r\n\r\n/** Sets map layer base tool.\r\n * @beta\r\n */\r\nexport class SetMapBaseTool extends AttachMapLayerTool {\r\n public static override toolId = \"SetMapBaseTool\";\r\n constructor() {\r\n super();\r\n this._isBase = true;\r\n }\r\n}\r\n\r\n/** Detach Map Layers Tool.\r\n * @beta\r\n */\r\nexport class DetachMapLayersTool extends Tool {\r\n public static override toolId = \"DetachMapLayersTool\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 0; }\r\n public override async parseAndRun(..._args: string[]): Promise<boolean> {\r\n return this.run();\r\n }\r\n\r\n public override async run(): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (vp === undefined)\r\n return false;\r\n vp.displayStyle.detachMapLayerByIndex({ index: -1, isOverlay: true });\r\n vp.displayStyle.detachMapLayerByIndex({ index: -1, isOverlay: false });\r\n vp.invalidateRenderPlan();\r\n return true;\r\n }\r\n}\r\n\r\nfunction parseLayerIndex(args: string[]) {\r\n const layerIndex = args.length > 1 ? parseInt(args[1], 10) : 0;\r\n return isNaN(layerIndex) ? 0 : layerIndex;\r\n}\r\n\r\n/** This tool sets the visibility of the map layer.\r\n * @beta\r\n */\r\nexport class MapLayerVisibilityTool extends Tool {\r\n public static override toolId = \"SetMapLayerVisibility\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 2; }\r\n\r\n /** This method runs the tool, setting the visibility of a map layer.\r\n * @param layerIndex the index of the layer to change\r\n * @param visible a boolean that should be true if the layer should be visible\r\n */\r\n public override async run(layerIndex: number, enable?: boolean): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined === vp || !vp.view.isSpatialView())\r\n return false;\r\n\r\n const mapLayer = vp.displayStyle.mapLayerAtIndex({ index: layerIndex, isOverlay: false });\r\n if (undefined === mapLayer)\r\n return false;\r\n\r\n const visible = (enable === undefined) ? !mapLayer.visible : enable;\r\n\r\n vp.displayStyle.changeMapLayerProps({ visible }, { index: layerIndex, isOverlay: false });\r\n vp.invalidateRenderPlan();\r\n\r\n return true;\r\n }\r\n\r\n /** Executes this tool's run method with args[0] containing `enable` and args[1] containing `layerIndex`.\r\n * @see [[run]]\r\n */\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const enable = parseToggle(args[0]);\r\n const layerIndex = parseLayerIndex(args);\r\n if (typeof enable !== \"string\")\r\n await this.run(layerIndex, enable);\r\n\r\n return true;\r\n }\r\n}\r\n/** This tool reorders map layers.\r\n * @beta\r\n */\r\nexport class ReorderMapLayers extends Tool {\r\n public static override toolId = \"ReorderMapLayers\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 2; }\r\n /** This method runs the tool, reordering the map layers.\r\n * @param from a numeric value specifying the layer index that is being moved\r\n * @param from a numeric value specifying the layer index to move that layer to\r\n */\r\n public override async run(from: number, to: number): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined === vp || !vp.view.isSpatialView())\r\n return false;\r\n\r\n vp.displayStyle.moveMapLayerToIndex(isNaN(from) ? 0 : from, isNaN(to) ? vp.displayStyle.settings.mapImagery.backgroundLayers.length : to, false);\r\n vp.invalidateRenderPlan();\r\n return true;\r\n }\r\n /** Executes this tool's run method with args[0] containing `from` and args[1] containing `to`.\r\n * @see [[run]]\r\n */\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const from = parseInt(args[0], 10);\r\n const to = parseInt(args[1], 10);\r\n await this.run(from, to);\r\n return true;\r\n }\r\n\r\n}\r\n\r\n/** This tool sets the transparency of a map layer.\r\n * @beta\r\n */\r\nexport class MapLayerTransparencyTool extends Tool {\r\n public static override toolId = \"SetMapLayerTransparency\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 2; }\r\n /** This method runs the tool, setting the transparency of a map layer.\r\n * @param layerIndex the index of the layer to change\r\n * @param transparency a numeric value in the range 0.0 (fully opaque) to 1.0 (fully transparent)\r\n */\r\n public override async run(layerIndex: number, transparency: number): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined === vp || !vp.view.isSpatialView())\r\n return false;\r\n\r\n vp.displayStyle.changeMapLayerProps({ transparency }, { index: layerIndex, isOverlay: false });\r\n vp.invalidateRenderPlan();\r\n\r\n return true;\r\n }\r\n /** Executes this tool's run method with args[0] containing `transparency` and args[1] containing `layerIndex`.\r\n * @see [[run]]\r\n */\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const transparency = parseFloat(args[0]);\r\n const layerIndex = parseLayerIndex(args);\r\n if (transparency >= 0 && transparency <= 1)\r\n await this.run(layerIndex, transparency);\r\n\r\n return true;\r\n }\r\n}\r\n/** This tool sets the visibility of the map sublayer.\r\n * @beta\r\n */\r\nexport class MapLayerSubLayerVisibilityTool extends Tool {\r\n public static override toolId = \"SetMapSubLayerVisibility\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 2; }\r\n\r\n /** This method runs the tool, setting the visibility of a map sublayer.\r\n * @param layerIndex the index of the layer to change\r\n * @param visible a boolean that should be true if the sublayer should be visible\r\n */\r\n public override async run(layerIndex: number, visible: boolean): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined === vp || !vp.view.isSpatialView())\r\n return false;\r\n\r\n vp.displayStyle.changeMapSubLayerProps({ visible }, -1, { index: layerIndex, isOverlay: false });\r\n vp.invalidateRenderPlan();\r\n\r\n return true;\r\n }\r\n\r\n /** Executes this tool's run method with args[0] containing `transparency` and args[1] containing `layerIndex`.\r\n * @see [[run]]\r\n */\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const on = args[0] !== \"off\";\r\n const layerIndex = parseLayerIndex(args);\r\n await this.run(layerIndex, on);\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** This tool changes the viewport so it is zoomed to the range of a map layer.\r\n * @beta\r\n */\r\nexport class MapLayerZoomTool extends Tool {\r\n public static override toolId = \"MapLayerZoom\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n /** This method runs the tool, changing the viewport so it is zoomed to the range of a map layer.\r\n * @param layerIndex the index of the layer whose range to zoom to\r\n */\r\n public override async run(layerIndex: number): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined === vp || !vp.view.isSpatialView())\r\n return false;\r\n\r\n vp.viewMapLayerRange({ index: layerIndex, isOverlay: false }, vp).then(() => { }).catch(() => { });\r\n\r\n return true;\r\n }\r\n\r\n /** Executes this tool's run method with args[0] containing `layerIndex`.\r\n * @see [[run]]\r\n */\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const layerIndex = parseLayerIndex(args);\r\n await this.run(layerIndex);\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** This tool toggles whether to apply terrain heights to the map.\r\n * @beta\r\n */\r\nexport class ToggleTerrainTool extends Tool {\r\n public static override toolId = \"ToggleTerrain\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n /** This method runs the tool, changing whether to apply terrain heights to the map.\r\n * @param enable whether or not to enable terrain heights on the map\r\n */\r\n public override async run(enable?: boolean): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined === vp || !vp.view.isSpatialView())\r\n return false;\r\n\r\n const applyTerrain = (enable === undefined) ? !vp.displayStyle.backgroundMapSettings.applyTerrain : enable;\r\n vp.displayStyle.changeBackgroundMapProps({ applyTerrain });\r\n vp.invalidateRenderPlan();\r\n\r\n return true;\r\n }\r\n\r\n /** Executes this tool's run method with args[0] containing `enable`.\r\n * @see [[run]]\r\n */\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const enable = parseToggle(args[0]);\r\n if (typeof enable !== \"string\")\r\n await this.run(enable);\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** This tool changes the color of the base map.\r\n * @beta\r\n */\r\nexport class MapBaseColorTool extends Tool {\r\n public static override toolId = \"SetMapBaseColorTool\";\r\n public static override get minArgs() { return 3; }\r\n public static override get maxArgs() { return 3; }\r\n\r\n /** This method runs the tool, changing the color of the base map.\r\n * @param color the color for the base map\r\n */\r\n public override async run(color: ColorDef) {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined === vp || !vp.view.isSpatialView())\r\n return false;\r\n\r\n const curTransparency = vp.displayStyle.backgroundMapBase instanceof ColorDef ? vp.displayStyle.backgroundMapBase.getTransparency() : 0;\r\n vp.displayStyle.backgroundMapBase = color.withTransparency(curTransparency);\r\n vp.invalidateRenderPlan();\r\n\r\n return true;\r\n }\r\n\r\n /** Executes this tool's run method with args[0] containing a 0 to 255 red component, args[1] containing a 0 to 255 green component, and args[2] containing a 0 to 255 blue component.\r\n * These rgb values will be used to construct the `color` parameter passed to this tool's run method.\r\n * @see [[run]]\r\n */\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const red = parseFloat(args[0]), green = parseFloat(args[1]), blue = parseFloat(args[2]);\r\n\r\n return (isNaN(red) || red < 0 || red > 255 || isNaN(green) || green < 0 || green > 255 || isNaN(blue) || blue < 0 || blue > 255) ? false : this.run(ColorDef.from(red, green, blue));\r\n }\r\n}\r\n/** This tool changes the transparency of the base map.\r\n * @beta\r\n */\r\nexport class MapBaseTransparencyTool extends Tool {\r\n public static override toolId = \"SetMapBaseTransparencyTool\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n /** This method runs the tool, changing the transparency of the base map.\r\n * @param transparency a numeric value in range 0.0 to 1.0 whether 0.0 means fully opaque and 1.0 means fully transparent\r\n */\r\n public override async run(transparency: number) {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined === vp || !vp.view.isSpatialView())\r\n return false;\r\n\r\n vp.displayStyle.changeBaseMapTransparency(transparency);\r\n vp.invalidateRenderPlan();\r\n\r\n return true;\r\n }\r\n\r\n /** Executes this tool's run method with args[0] containing `transparency`.\r\n * @see [[run]]\r\n */\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const transparency = parseFloat(args[0]);\r\n\r\n return (isNaN(transparency) || transparency < 0 || transparency > 1) ? false : this.run(transparency);\r\n }\r\n}\r\n\r\n/** This tool changes the visibility of the base map.\r\n * @beta\r\n */\r\nexport class MapBaseVisibilityTool extends Tool {\r\n public static override toolId = \"SetMapBaseVisibilityTool\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n /** This method runs the tool, changing the visibility of the base map.\r\n * @param visible a boolean which specifies whether or not to make the base map visible\r\n */\r\n public override async run(visible: boolean) {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined === vp || !vp.view.isSpatialView() || vp.displayStyle.backgroundMapBase instanceof ColorDef)\r\n return false;\r\n\r\n vp.displayStyle.backgroundMapBase = vp.displayStyle.backgroundMapBase.clone({ visible });\r\n vp.invalidateRenderPlan();\r\n\r\n return true;\r\n }\r\n\r\n /** Executes this tool's run method with args[0] containing `visible`.\r\n * @see [[run]]\r\n */\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const visible = parseBoolean(args[0]);\r\n\r\n return (visible !== undefined ? this.run(visible) : false);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"MapLayerTool.js","sourceRoot":"","sources":["../../../src/tools/MapLayerTool.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAO/F,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,eAAe,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzK,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,+CAA+C;AAC/C,MAAM,sBAAuB,SAAQ,IAAI;IACvC,YAAsB,gBAAgB,IAAI,EAAY,UAAU,KAAK;QACnE,KAAK,EAAE,CAAC;QADY,kBAAa,GAAb,aAAa,CAAO;QAAY,YAAO,GAAP,OAAO,CAAQ;IAErE,CAAC;IAES,QAAQ,CAAC,MAAuB;QACxC,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;YAC1C,OAAO;QAET,MAAM,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE;YAC1C,IAAI,UAAU,CAAC,MAAM,KAAK,oBAAoB,CAAC,KAAK,IAAI,UAAU,CAAC,MAAM,KAAK,oBAAoB,CAAC,WAAW,EAAE,CAAC;gBAC/G,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,EAAE,CAAC,YAAY,CAAC,iBAAiB,GAAG,oBAAoB,CAAC,QAAQ,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC;oBAClH,EAAE,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACN,MAAM,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;oBAC9D,IAAI,QAAQ,EAAE,CAAC;wBACb,uFAAuF;wBACvF,0EAA0E;wBAC1E,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC7G,CAAC;gBACH,CAAC;gBAED,IAAI,UAAU,CAAC,MAAM,KAAK,oBAAoB,CAAC,KAAK,EAAE,CAAC;oBACrD,EAAE,CAAC,oBAAoB,EAAE,CAAC;oBAC1B,MAAM,GAAG,GAAG,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,qEAAqE,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC1J,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oBAAoB,CAAC,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBACnG,CAAC;qBAAM,IAAI,UAAU,CAAC,MAAM,KAAK,oBAAoB,CAAC,WAAW,EAAE,CAAC;oBAClE,MAAM,GAAG,GAAG,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,iFAAiF,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;oBACtK,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oBAAoB,CAAC,qBAAqB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;gBACtG,CAAC;YAEH,CAAC;iBAAM,IAAI,UAAU,CAAC,MAAM,KAAK,oBAAoB,CAAC,kBAAkB,EAAE,CAAC;gBACzE,MAAM,GAAG,GAAG,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,gFAAgF,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBACrK,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oBAAoB,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YACpG,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,6EAA6E,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAClK,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oBAAoB,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YACpG,CAAC;QACH,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACjB,MAAM,GAAG,GAAG,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,wEAAwE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACpK,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oBAAoB,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QACpG,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,uBAAwB,SAAQ,IAAI;IACxC,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;aAC3B,WAAM,GAAG,yBAAyB,CAAC;IAC1D,YAAsB,SAAiB;QAAI,KAAK,EAAE,CAAC;QAA7B,cAAS,GAAT,SAAS,CAAQ;IAAa,CAAC;IAErC,KAAK,CAAC,GAAG,CAAC,MAAe;QACvC,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,EAAE;YACL,OAAO,KAAK,CAAC;QAEf,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;QACzB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC9E,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAc,CAAC;QAEvC,KAAK,MAAM,OAAO,IAAI,QAAQ;YAC5B,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAE9B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACzD,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YACpE,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3F,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YACnE,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/F,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEe,KAAK,CAAC,WAAW,CAAC,GAAG,IAAc;QACjD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACM,KAAK,CAAC,aAAa;IAC1B,CAAC;;AAEH,8CAA8C;AAC9C,MAAM,2BAA4B,SAAQ,sBAAsB;IACvD,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAClD,YAAsB,SAAiB;QAAI,KAAK,EAAE,CAAC;QAA7B,cAAS,GAAT,SAAS,CAAQ;IAAa,CAAC;IAErC,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,IAAa,EAAE,QAAiB,EAAE,QAAiB;QACxF,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACrG,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC3B,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAEe,KAAK,CAAC,WAAW,CAAC,GAAG,IAAc;QACjD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,0BAA2B,SAAQ,2BAA2B;aAClD,WAAM,GAAG,uBAAuB,CAAC;IACxD,gBAAgB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/B;;OAEG;IACa,KAAK,CAAC,WAAW,CAAC,GAAG,IAAc;QACjD,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC;;AAGH;;GAEG;AACH,MAAM,OAAO,2BAA4B,SAAQ,2BAA2B;aACnD,WAAM,GAAG,wBAAwB,CAAC;IACzD,gBAAgB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAChC;;OAEG;IACa,KAAK,CAAC,WAAW,CAAC,GAAG,IAAc;QACjD,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC;;AAGH;;GAEG;AACH,MAAM,OAAO,6BAA8B,SAAQ,2BAA2B;aACrD,WAAM,GAAG,0BAA0B,CAAC;IAC3D,gBAAgB,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;;AAGpC;;GAEG;AACH,MAAM,OAAO,oCAAqC,SAAQ,2BAA2B;aAC5D,WAAM,GAAG,iCAAiC,CAAC;IAClE,gBAAgB,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;;AAG3C;;GAEG;AACH,MAAM,OAAO,gCAAiC,SAAQ,2BAA2B;aACxD,WAAM,GAAG,kCAAkC,CAAC;IACnE,gBAAgB,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;;AAG5C;;GAEG;AACH,MAAM,OAAO,8BAA+B,SAAQ,2BAA2B;aACtD,WAAM,GAAG,2BAA2B,CAAC;IAC5D,gBAAgB,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;;AAGrC;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,sBAAsB;aACrC,WAAM,GAAG,oBAAoB,CAAC;IAC9C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAElD;;OAEG;IACa,KAAK,CAAC,GAAG,CAAC,IAAY;QACpC,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,EAAE,KAAK,SAAS;YAClB,OAAO,KAAK,CAAC;QAEf,eAAe,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YACxC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtD,IAAI,MAAM,KAAK,SAAS;oBACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;QAExB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACa,KAAK,CAAC,WAAW,CAAC,GAAG,IAAc;QACjD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;;AAEH;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,kBAAkB;aACnC,WAAM,GAAG,sBAAsB,CAAC;IACvD;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;;AAGH;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,kBAAkB;aAC7B,WAAM,GAAG,gBAAgB,CAAC;IACjD;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;;AAGH;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,IAAI;aACpB,WAAM,GAAG,qBAAqB,CAAC;IAC/C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAClC,KAAK,CAAC,WAAW,CAAC,GAAG,KAAe;QAClD,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;IAEe,KAAK,CAAC,GAAG;QACvB,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,EAAE,KAAK,SAAS;YAClB,OAAO,KAAK,CAAC;QACf,EAAE,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,EAAE,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACvE,EAAE,CAAC,oBAAoB,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;;AAGH,SAAS,eAAe,CAAC,IAAc;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,IAAI;aACvB,WAAM,GAAG,uBAAuB,CAAC;IACjD,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAElD;;;OAGG;IACa,KAAK,CAAC,GAAG,CAAC,UAAkB,EAAE,MAAgB;QAC5D,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,SAAS,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE;YAC9C,OAAO,KAAK,CAAC;QAEf,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1F,IAAI,SAAS,KAAK,QAAQ;YACxB,OAAO,KAAK,CAAC;QAEf,MAAM,OAAO,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAEpE,EAAE,CAAC,YAAY,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1F,EAAE,CAAC,oBAAoB,EAAE,CAAC;QAE1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACa,KAAK,CAAC,WAAW,CAAC,GAAG,IAAc;QACjD,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,OAAO,MAAM,KAAK,QAAQ;YAC5B,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAErC,OAAO,IAAI,CAAC;IACd,CAAC;;AAEH;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,IAAI;aACjB,WAAM,GAAG,kBAAkB,CAAC;IAC5C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAClD;;;OAGG;IACa,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,EAAU;QAChD,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,SAAS,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE;YAC9C,OAAO,KAAK,CAAC;QAEf,EAAE,CAAC,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACjJ,EAAE,CAAC,oBAAoB,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IACD;;OAEG;IACa,KAAK,CAAC,WAAW,CAAC,GAAG,IAAc;QACjD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnC,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjC,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;;AAIH;;GAEG;AACH,MAAM,OAAO,wBAAyB,SAAQ,IAAI;aACzB,WAAM,GAAG,yBAAyB,CAAC;IACnD,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAClD;;;OAGG;IACa,KAAK,CAAC,GAAG,CAAC,UAAkB,EAAE,YAAoB;QAChE,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,SAAS,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE;YAC9C,OAAO,KAAK,CAAC;QAEf,EAAE,CAAC,YAAY,CAAC,mBAAmB,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/F,EAAE,CAAC,oBAAoB,EAAE,CAAC;QAE1B,OAAO,IAAI,CAAC;IACd,CAAC;IACD;;OAEG;IACa,KAAK,CAAC,WAAW,CAAC,GAAG,IAAc;QACjD,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,YAAY,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC;YACxC,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAE3C,OAAO,IAAI,CAAC;IACd,CAAC;;AAEH;;GAEG;AACH,MAAM,OAAO,8BAA+B,SAAQ,IAAI;aAC/B,WAAM,GAAG,0BAA0B,CAAC;IACpD,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAElD;;;OAGG;IACa,KAAK,CAAC,GAAG,CAAC,UAAkB,EAAE,OAAgB;QAC5D,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,SAAS,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE;YAC9C,OAAO,KAAK,CAAC;QAEf,EAAE,CAAC,YAAY,CAAC,sBAAsB,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACjG,EAAE,CAAC,oBAAoB,EAAE,CAAC;QAE1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACa,KAAK,CAAC,WAAW,CAAC,GAAG,IAAc;QACjD,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC;QAC7B,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAE/B,OAAO,IAAI,CAAC;IACd,CAAC;;AAGH;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,IAAI;aACjB,WAAM,GAAG,cAAc,CAAC;IACxC,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAElD;;OAEG;IACa,KAAK,CAAC,GAAG,CAAC,UAAkB;QAC1C,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,SAAS,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE;YAC9C,OAAO,KAAK,CAAC;QAEf,EAAE,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAEnG,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACa,KAAK,CAAC,WAAW,CAAC,GAAG,IAAc;QACjD,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAE3B,OAAO,IAAI,CAAC;IACd,CAAC;;AAGH;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,IAAI;aAClB,WAAM,GAAG,eAAe,CAAC;IACzC,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAElD;;OAEG;IACa,KAAK,CAAC,GAAG,CAAC,MAAgB;QACxC,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,SAAS,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE;YAC9C,OAAO,KAAK,CAAC;QAEf,MAAM,YAAY,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3G,EAAE,CAAC,YAAY,CAAC,wBAAwB,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;QAC3D,EAAE,CAAC,oBAAoB,EAAE,CAAC;QAE1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACa,KAAK,CAAC,WAAW,CAAC,GAAG,IAAc;QACjD,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,OAAO,MAAM,KAAK,QAAQ;YAC5B,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEzB,OAAO,IAAI,CAAC;IACd,CAAC;;AAGH;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,IAAI;aACjB,WAAM,GAAG,qBAAqB,CAAC;IAC/C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAElD;;OAEG;IACa,KAAK,CAAC,GAAG,CAAC,KAAe;QACvC,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,SAAS,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE;YAC9C,OAAO,KAAK,CAAC;QAEf,MAAM,eAAe,GAAG,EAAE,CAAC,YAAY,CAAC,iBAAiB,YAAY,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACxI,EAAE,CAAC,YAAY,CAAC,iBAAiB,GAAG,KAAK,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;QAC5E,EAAE,CAAC,oBAAoB,EAAE,CAAC;QAE1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACa,KAAK,CAAC,WAAW,CAAC,GAAG,IAAc;QACjD,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzF,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IACvL,CAAC;;AAEH;;GAEG;AACH,MAAM,OAAO,uBAAwB,SAAQ,IAAI;aACxB,WAAM,GAAG,4BAA4B,CAAC;IACtD,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAElD;;OAEG;IACa,KAAK,CAAC,GAAG,CAAC,YAAoB;QAC5C,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,SAAS,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE;YAC9C,OAAO,KAAK,CAAC;QAEf,EAAE,CAAC,YAAY,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;QACxD,EAAE,CAAC,oBAAoB,EAAE,CAAC;QAE1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACa,KAAK,CAAC,WAAW,CAAC,GAAG,IAAc;QACjD,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACxG,CAAC;;AAGH;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,IAAI;aACtB,WAAM,GAAG,0BAA0B,CAAC;IACpD,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAElD;;OAEG;IACa,KAAK,CAAC,GAAG,CAAC,OAAgB;QACxC,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,SAAS,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,YAAY,CAAC,iBAAiB,YAAY,QAAQ;YACvG,OAAO,KAAK,CAAC;QAEf,EAAE,CAAC,YAAY,CAAC,iBAAiB,GAAG,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QACzF,EAAE,CAAC,oBAAoB,EAAE,CAAC;QAE1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACa,KAAK,CAAC,WAAW,CAAC,GAAG,IAAc;QACjD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC","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 { Id64String } from \"@itwin/core-bentley\";\nimport { BaseMapLayerSettings, ColorDef, ModelMapLayerSettings } from \"@itwin/core-common\";\nimport { IModelApp, MapLayerSource, MapLayerSources, MapLayerSourceStatus, NotifyMessageDetails, OutputMessagePriority, Tool, WmsUtilities } from \"@itwin/core-frontend\";\nimport { parseBoolean } from \"./parseBoolean\";\nimport { parseToggle } from \"./parseToggle\";\n\n/** Base class for attaching map layer tool. */\nclass AttachMapLayerBaseTool extends Tool {\n constructor(protected _isBackground = true, protected _isBase = false) {\n super();\n }\n\n protected doAttach(source?: MapLayerSource) {\n const vp = IModelApp.viewManager.selectedView;\n if (vp === undefined || source === undefined)\n return;\n\n source.validateSource().then((validation) => {\n if (validation.status === MapLayerSourceStatus.Valid || validation.status === MapLayerSourceStatus.RequireAuth) {\n if (this._isBase) {\n vp.displayStyle.backgroundMapBase = BaseMapLayerSettings.fromJSON({ ...source, subLayers: validation.subLayers });\n vp.invalidateRenderPlan();\n } else {\n const settings = source.toLayerSettings(validation.subLayers);\n if (settings) {\n // Need to specify index in mapLayerIndex, so just use -1 to attach layer at the bottom\n // Previously, this was done within attachMapLayer if index was undefined.\n vp.displayStyle.attachMapLayer({ settings, mapLayerIndex: { isOverlay: !this._isBackground, index: -1 } });\n }\n }\n\n if (validation.status === MapLayerSourceStatus.Valid) {\n vp.invalidateRenderPlan();\n const msg = IModelApp.localization.getLocalizedString(\"FrontendDevTools:tools.AttachMapLayerTool.Messages.MapLayerAttached\", { sourceName: source.name });\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, msg));\n } else if (validation.status === MapLayerSourceStatus.RequireAuth) {\n const msg = IModelApp.localization.getLocalizedString(\"FrontendDevTools:tools.AttachMapLayerTool.Messages.MapLayerAttachedRequiresAuth\", { sourceName: source.name });\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Warning, msg));\n }\n\n } else if (validation.status === MapLayerSourceStatus.IncompatibleFormat) {\n const msg = IModelApp.localization.getLocalizedString(\"FrontendDevTools:tools.AttachMapLayerTool.Messages.MapLayersIncompatibleFormat\", { sourceName: source.name });\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Error, msg));\n } else {\n const msg = IModelApp.localization.getLocalizedString(\"FrontendDevTools:tools.AttachMapLayerTool.Messages.MapLayerValidationFailed\", { sourceName: source.name });\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Error, msg));\n }\n }).catch((error) => {\n const msg = IModelApp.localization.getLocalizedString(\"FrontendDevTools:tools.AttachMapLayerTool.Messages.MapLayerAttachError\", { error, sourceName: source.name });\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Error, msg));\n });\n }\n}\n\n/** Attach a map layer from URL base class. A layer is attached for each unique model in the selection\n * @beta\n */\nexport class AttachModelMapLayerTool extends Tool {\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n public static override toolId = \"AttachModelMapLayerTool\";\n constructor(protected _formatId: string) { super(); }\n\n public override async run(nameIn?: string): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (!vp)\n return false;\n\n const iModel = vp.iModel;\n const elements = await iModel.elements.getProps(iModel.selectionSet.elements);\n const modelIds = new Set<Id64String>();\n\n for (const element of elements)\n modelIds.add(element.model);\n\n for (const modelId of modelIds) {\n const modelProps = await iModel.models.getProps(modelId);\n const modelName = modelProps[0].name ? modelProps[0].name : modelId;\n const name = nameIn ? (modelIds.size > 1 ? `${nameIn}: ${modelName}` : nameIn) : modelName;\n const settings = ModelMapLayerSettings.fromJSON({ name, modelId });\n vp.displayStyle.attachMapLayer({ settings, mapLayerIndex: { isOverlay: false, index: -1 } });\n }\n return true;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n return this.run(args[0]);\n }\n public async onRestartTool() {\n }\n}\n/** Attach a map layer from URL base class. */\nclass AttachMapLayerByURLBaseTool extends AttachMapLayerBaseTool {\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 4; }\n constructor(protected _formatId: string) { super(); }\n\n public override async run(url: string, name?: string, userName?: string, password?: string): Promise<boolean> {\n const source = MapLayerSource.fromJSON({ url, name: (name ? name : url), formatId: this._formatId });\n if (source) {\n source.userName = userName;\n source.password = password;\n }\n\n this.doAttach(source);\n return true;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n return this.run(args[0], args[1], args[2], args[3]);\n }\n}\n\n/** This tool attaches a WMS map layer from a given URL.\n * @beta\n */\nexport class AttachWmsMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {\n public static override toolId = \"AttachWmsMapLayerTool\";\n constructor() { super(\"WMS\"); }\n /** This method runs the tool, attaching a WMS map layer from a given URL.\n * @param args contains url, name, userName, password in array order\n */\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n return this.run(WmsUtilities.getBaseUrl(args[0]), args[1], args[2], args[3]);\n }\n}\n\n/** This tool attaches a WMTS map layer from a given URL.\n * @beta\n */\nexport class AttachWmtsMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {\n public static override toolId = \"AttachWmtsMapLayerTool\";\n constructor() { super(\"WMTS\"); }\n /** This method runs the tool, attaching a WMTS map layer from a given URL.\n * @param args contains url, name, userName, password in array order\n */\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n return this.run(WmsUtilities.getBaseUrl(args[0]), args[1], args[2], args[3]);\n }\n}\n\n/** This tool attaches an ArcGIS map layer from a given URL.\n * @beta\n */\nexport class AttachArcGISMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {\n public static override toolId = \"AttachArcGISMapLayerTool\";\n constructor() { super(\"ArcGIS\"); }\n}\n\n/** This tool attaches an ArcGIS map layer from a given URL.\n * @beta\n */\nexport class AttachArcGISFeatureMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {\n public static override toolId = \"AttachArcGISFeatureMapLayerTool\";\n constructor() { super(\"ArcGISFeature\"); }\n}\n\n/** This tool attaches an ArcGIS map layer from a given URL.\n * @beta\n */\nexport class AttachOgcApiFeaturesMapLayerTool extends AttachMapLayerByURLBaseTool {\n public static override toolId = \"AttachOgcApiFeaturesMapLayerTool\";\n constructor() { super(\"OgcApiFeatures\"); }\n}\n\n/** This tool attaches a map layer from a given tile URL.\n * @beta\n */\nexport class AttachTileURLMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {\n public static override toolId = \"AttachTileURLMapLayerTool\";\n constructor() { super(\"TileURL\"); }\n}\n\n/** This tool add a Map Layer from a specified name (look up in MapLayerSources.json).\n * @beta\n */\nexport class AttachMapLayerTool extends AttachMapLayerBaseTool {\n public static override toolId = \"AttachMapLayerTool\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 1; }\n\n /** This method runs the tool, adding a map layer from a specified name in MayLayerSources.json.\n * @param name the name of the map layer to add\n */\n public override async run(name: string): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (vp === undefined)\n return false;\n\n MapLayerSources.create().then((sources) => {\n if (sources !== undefined) {\n const source = sources.findByName(name, this._isBase);\n if (source !== undefined)\n this.doAttach(source);\n }\n }).catch((_err) => { });\n\n return true;\n }\n\n /** Executes this tool's run method with args[0] containing `name`.\n * @see [[run]]\n */\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n return this.run(args[0]);\n }\n}\n/** This tool attaches a Overlay map layer.\n * @beta\n */\nexport class AttachMapOverlayTool extends AttachMapLayerTool {\n public static override toolId = \"AttachMapOverlayTool\";\n constructor() {\n super();\n this._isBackground = false;\n }\n}\n\n/** Sets map layer base tool.\n * @beta\n */\nexport class SetMapBaseTool extends AttachMapLayerTool {\n public static override toolId = \"SetMapBaseTool\";\n constructor() {\n super();\n this._isBase = true;\n }\n}\n\n/** Detach Map Layers Tool.\n * @beta\n */\nexport class DetachMapLayersTool extends Tool {\n public static override toolId = \"DetachMapLayersTool\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 0; }\n public override async parseAndRun(..._args: string[]): Promise<boolean> {\n return this.run();\n }\n\n public override async run(): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (vp === undefined)\n return false;\n vp.displayStyle.detachMapLayerByIndex({ index: -1, isOverlay: true });\n vp.displayStyle.detachMapLayerByIndex({ index: -1, isOverlay: false });\n vp.invalidateRenderPlan();\n return true;\n }\n}\n\nfunction parseLayerIndex(args: string[]) {\n const layerIndex = args.length > 1 ? parseInt(args[1], 10) : 0;\n return isNaN(layerIndex) ? 0 : layerIndex;\n}\n\n/** This tool sets the visibility of the map layer.\n * @beta\n */\nexport class MapLayerVisibilityTool extends Tool {\n public static override toolId = \"SetMapLayerVisibility\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 2; }\n\n /** This method runs the tool, setting the visibility of a map layer.\n * @param layerIndex the index of the layer to change\n * @param visible a boolean that should be true if the layer should be visible\n */\n public override async run(layerIndex: number, enable?: boolean): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (undefined === vp || !vp.view.isSpatialView())\n return false;\n\n const mapLayer = vp.displayStyle.mapLayerAtIndex({ index: layerIndex, isOverlay: false });\n if (undefined === mapLayer)\n return false;\n\n const visible = (enable === undefined) ? !mapLayer.visible : enable;\n\n vp.displayStyle.changeMapLayerProps({ visible }, { index: layerIndex, isOverlay: false });\n vp.invalidateRenderPlan();\n\n return true;\n }\n\n /** Executes this tool's run method with args[0] containing `enable` and args[1] containing `layerIndex`.\n * @see [[run]]\n */\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const enable = parseToggle(args[0]);\n const layerIndex = parseLayerIndex(args);\n if (typeof enable !== \"string\")\n await this.run(layerIndex, enable);\n\n return true;\n }\n}\n/** This tool reorders map layers.\n * @beta\n */\nexport class ReorderMapLayers extends Tool {\n public static override toolId = \"ReorderMapLayers\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 2; }\n /** This method runs the tool, reordering the map layers.\n * @param from a numeric value specifying the layer index that is being moved\n * @param from a numeric value specifying the layer index to move that layer to\n */\n public override async run(from: number, to: number): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (undefined === vp || !vp.view.isSpatialView())\n return false;\n\n vp.displayStyle.moveMapLayerToIndex(isNaN(from) ? 0 : from, isNaN(to) ? vp.displayStyle.settings.mapImagery.backgroundLayers.length : to, false);\n vp.invalidateRenderPlan();\n return true;\n }\n /** Executes this tool's run method with args[0] containing `from` and args[1] containing `to`.\n * @see [[run]]\n */\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const from = parseInt(args[0], 10);\n const to = parseInt(args[1], 10);\n await this.run(from, to);\n return true;\n }\n\n}\n\n/** This tool sets the transparency of a map layer.\n * @beta\n */\nexport class MapLayerTransparencyTool extends Tool {\n public static override toolId = \"SetMapLayerTransparency\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 2; }\n /** This method runs the tool, setting the transparency of a map layer.\n * @param layerIndex the index of the layer to change\n * @param transparency a numeric value in the range 0.0 (fully opaque) to 1.0 (fully transparent)\n */\n public override async run(layerIndex: number, transparency: number): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (undefined === vp || !vp.view.isSpatialView())\n return false;\n\n vp.displayStyle.changeMapLayerProps({ transparency }, { index: layerIndex, isOverlay: false });\n vp.invalidateRenderPlan();\n\n return true;\n }\n /** Executes this tool's run method with args[0] containing `transparency` and args[1] containing `layerIndex`.\n * @see [[run]]\n */\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const transparency = parseFloat(args[0]);\n const layerIndex = parseLayerIndex(args);\n if (transparency >= 0 && transparency <= 1)\n await this.run(layerIndex, transparency);\n\n return true;\n }\n}\n/** This tool sets the visibility of the map sublayer.\n * @beta\n */\nexport class MapLayerSubLayerVisibilityTool extends Tool {\n public static override toolId = \"SetMapSubLayerVisibility\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 2; }\n\n /** This method runs the tool, setting the visibility of a map sublayer.\n * @param layerIndex the index of the layer to change\n * @param visible a boolean that should be true if the sublayer should be visible\n */\n public override async run(layerIndex: number, visible: boolean): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (undefined === vp || !vp.view.isSpatialView())\n return false;\n\n vp.displayStyle.changeMapSubLayerProps({ visible }, -1, { index: layerIndex, isOverlay: false });\n vp.invalidateRenderPlan();\n\n return true;\n }\n\n /** Executes this tool's run method with args[0] containing `transparency` and args[1] containing `layerIndex`.\n * @see [[run]]\n */\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const on = args[0] !== \"off\";\n const layerIndex = parseLayerIndex(args);\n await this.run(layerIndex, on);\n\n return true;\n }\n}\n\n/** This tool changes the viewport so it is zoomed to the range of a map layer.\n * @beta\n */\nexport class MapLayerZoomTool extends Tool {\n public static override toolId = \"MapLayerZoom\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n /** This method runs the tool, changing the viewport so it is zoomed to the range of a map layer.\n * @param layerIndex the index of the layer whose range to zoom to\n */\n public override async run(layerIndex: number): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (undefined === vp || !vp.view.isSpatialView())\n return false;\n\n vp.viewMapLayerRange({ index: layerIndex, isOverlay: false }, vp).then(() => { }).catch(() => { });\n\n return true;\n }\n\n /** Executes this tool's run method with args[0] containing `layerIndex`.\n * @see [[run]]\n */\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const layerIndex = parseLayerIndex(args);\n await this.run(layerIndex);\n\n return true;\n }\n}\n\n/** This tool toggles whether to apply terrain heights to the map.\n * @beta\n */\nexport class ToggleTerrainTool extends Tool {\n public static override toolId = \"ToggleTerrain\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n /** This method runs the tool, changing whether to apply terrain heights to the map.\n * @param enable whether or not to enable terrain heights on the map\n */\n public override async run(enable?: boolean): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (undefined === vp || !vp.view.isSpatialView())\n return false;\n\n const applyTerrain = (enable === undefined) ? !vp.displayStyle.backgroundMapSettings.applyTerrain : enable;\n vp.displayStyle.changeBackgroundMapProps({ applyTerrain });\n vp.invalidateRenderPlan();\n\n return true;\n }\n\n /** Executes this tool's run method with args[0] containing `enable`.\n * @see [[run]]\n */\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const enable = parseToggle(args[0]);\n if (typeof enable !== \"string\")\n await this.run(enable);\n\n return true;\n }\n}\n\n/** This tool changes the color of the base map.\n * @beta\n */\nexport class MapBaseColorTool extends Tool {\n public static override toolId = \"SetMapBaseColorTool\";\n public static override get minArgs() { return 3; }\n public static override get maxArgs() { return 3; }\n\n /** This method runs the tool, changing the color of the base map.\n * @param color the color for the base map\n */\n public override async run(color: ColorDef) {\n const vp = IModelApp.viewManager.selectedView;\n if (undefined === vp || !vp.view.isSpatialView())\n return false;\n\n const curTransparency = vp.displayStyle.backgroundMapBase instanceof ColorDef ? vp.displayStyle.backgroundMapBase.getTransparency() : 0;\n vp.displayStyle.backgroundMapBase = color.withTransparency(curTransparency);\n vp.invalidateRenderPlan();\n\n return true;\n }\n\n /** Executes this tool's run method with args[0] containing a 0 to 255 red component, args[1] containing a 0 to 255 green component, and args[2] containing a 0 to 255 blue component.\n * These rgb values will be used to construct the `color` parameter passed to this tool's run method.\n * @see [[run]]\n */\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const red = parseFloat(args[0]), green = parseFloat(args[1]), blue = parseFloat(args[2]);\n\n return (isNaN(red) || red < 0 || red > 255 || isNaN(green) || green < 0 || green > 255 || isNaN(blue) || blue < 0 || blue > 255) ? false : this.run(ColorDef.from(red, green, blue));\n }\n}\n/** This tool changes the transparency of the base map.\n * @beta\n */\nexport class MapBaseTransparencyTool extends Tool {\n public static override toolId = \"SetMapBaseTransparencyTool\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 1; }\n\n /** This method runs the tool, changing the transparency of the base map.\n * @param transparency a numeric value in range 0.0 to 1.0 whether 0.0 means fully opaque and 1.0 means fully transparent\n */\n public override async run(transparency: number) {\n const vp = IModelApp.viewManager.selectedView;\n if (undefined === vp || !vp.view.isSpatialView())\n return false;\n\n vp.displayStyle.changeBaseMapTransparency(transparency);\n vp.invalidateRenderPlan();\n\n return true;\n }\n\n /** Executes this tool's run method with args[0] containing `transparency`.\n * @see [[run]]\n */\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const transparency = parseFloat(args[0]);\n\n return (isNaN(transparency) || transparency < 0 || transparency > 1) ? false : this.run(transparency);\n }\n}\n\n/** This tool changes the visibility of the base map.\n * @beta\n */\nexport class MapBaseVisibilityTool extends Tool {\n public static override toolId = \"SetMapBaseVisibilityTool\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 1; }\n\n /** This method runs the tool, changing the visibility of the base map.\n * @param visible a boolean which specifies whether or not to make the base map visible\n */\n public override async run(visible: boolean) {\n const vp = IModelApp.viewManager.selectedView;\n if (undefined === vp || !vp.view.isSpatialView() || vp.displayStyle.backgroundMapBase instanceof ColorDef)\n return false;\n\n vp.displayStyle.backgroundMapBase = vp.displayStyle.backgroundMapBase.clone({ visible });\n vp.invalidateRenderPlan();\n\n return true;\n }\n\n /** Executes this tool's run method with args[0] containing `visible`.\n * @see [[run]]\n */\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const visible = parseBoolean(args[0]);\n\n return (visible !== undefined ? this.run(visible) : false);\n }\n}\n"]}
@@ -46,6 +46,7 @@ class TileLoadTimer {
46
46
  * @beta
47
47
  */
48
48
  export class MeasureTileLoadTimeTool extends Tool {
49
+ static { this.toolId = "MeasureTileLoadTime"; }
49
50
  /** This method runs the tool, unloading all tile trees, then starts a timer that stops when all tile trees and tiles required for the view are ready. It will then output the elapsed time to notifications manager.
50
51
  * @param _args this parameter is unused
51
52
  */
@@ -56,5 +57,4 @@ export class MeasureTileLoadTimeTool extends Tool {
56
57
  return true;
57
58
  }
58
59
  }
59
- MeasureTileLoadTimeTool.toolId = "MeasureTileLoadTime";
60
60
  //# sourceMappingURL=MeasureTileLoadTime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MeasureTileLoadTime.js","sourceRoot":"","sources":["../../../src/tools/MeasureTileLoadTime.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,IAAI,EAAY,MAAM,sBAAsB,CAAC;AAE9G,MAAM,aAAa;IAKjB,YAAmB,EAAY;QAC7B,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,EAAE,CAAC;QAElC,mCAAmC;QACnC,SAAS,CAAC,WAAW,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;QAE1D,MAAM,cAAc,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtE,MAAM,aAAa,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE;YACnB,cAAc,EAAE,CAAC;YACjB,aAAa,EAAE,CAAC;QAClB,CAAC,CAAC;QAEF,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oBAAoB,CAAC,qBAAqB,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAC,CAAC;QAC3H,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAEO,MAAM;QACZ,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oBAAoB,CAAC,qBAAqB,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC;QAC5H,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAEO,IAAI;QACV,IAAI,SAAS,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC5B,CAAC;IACH,CAAC;IAEO,QAAQ;QACd,uIAAuI;QACvI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB;YACnE,OAAO;QAET,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACvB,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oBAAoB,CAAC,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QAErK,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,uBAAwB,SAAQ,IAAI;IAG/C;;OAEG;IACa,KAAK,CAAC,GAAG,CAAC,KAAY;QACpC,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,SAAS,KAAK,EAAE;YAClB,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC;QAExB,OAAO,IAAI,CAAC;IACd,CAAC;;AAXsB,8BAAM,GAAG,qBAAqB,CAAC","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 { StopWatch } from \"@itwin/core-bentley\";\r\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, Tool, Viewport } from \"@itwin/core-frontend\";\r\n\r\nclass TileLoadTimer {\r\n private readonly _vp: Viewport;\r\n private readonly _stopwatch: StopWatch;\r\n private _cleanup?: () => void;\r\n\r\n public constructor(vp: Viewport) {\r\n this._vp = vp;\r\n this._stopwatch = new StopWatch();\r\n\r\n // Purge tile trees for all models.\r\n IModelApp.viewManager.refreshForModifiedModels(undefined);\r\n\r\n const removeOnRender = vp.onRender.addListener(() => this.onRender());\r\n const removeOnClose = vp.iModel.onClose.addOnce(() => this.cancel());\r\n this._cleanup = () => {\r\n removeOnRender();\r\n removeOnClose();\r\n };\r\n\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, \"Tile loading timer started.\"));\r\n this._stopwatch.start();\r\n }\r\n\r\n private cancel(): void {\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, \"Tile loading timer canceled.\"));\r\n this.stop();\r\n }\r\n\r\n private stop(): void {\r\n if (undefined !== this._cleanup) {\r\n this._cleanup();\r\n this._cleanup = undefined;\r\n }\r\n }\r\n\r\n private onRender(): void {\r\n // ###TODO: May be intermediate frames during which children props have been asynchronously requested but no outstanding tile requests.\r\n if (!this._vp.areAllTileTreesLoaded || 0 < this._vp.numRequestedTiles)\r\n return;\r\n\r\n this._stopwatch.stop();\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `Tiles loaded in ${this._stopwatch.elapsedSeconds.toFixed(4)} seconds.`));\r\n\r\n this.stop();\r\n }\r\n}\r\n\r\n/** Unloads all tile trees, then starts a timer that stops when all tile trees and tiles required for the view are ready.\r\n * Outputs the elapsed time to notifications manager.\r\n * @beta\r\n */\r\nexport class MeasureTileLoadTimeTool extends Tool {\r\n public static override toolId = \"MeasureTileLoadTime\";\r\n\r\n /** This method runs the tool, unloading all tile trees, then starts a timer that stops when all tile trees and tiles required for the view are ready. It will then output the elapsed time to notifications manager.\r\n * @param _args this parameter is unused\r\n */\r\n public override async run(_args: any[]): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined !== vp)\r\n new TileLoadTimer(vp);\r\n\r\n return true;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"MeasureTileLoadTime.js","sourceRoot":"","sources":["../../../src/tools/MeasureTileLoadTime.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,IAAI,EAAY,MAAM,sBAAsB,CAAC;AAE9G,MAAM,aAAa;IAKjB,YAAmB,EAAY;QAC7B,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,EAAE,CAAC;QAElC,mCAAmC;QACnC,SAAS,CAAC,WAAW,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;QAE1D,MAAM,cAAc,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtE,MAAM,aAAa,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE;YACnB,cAAc,EAAE,CAAC;YACjB,aAAa,EAAE,CAAC;QAClB,CAAC,CAAC;QAEF,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oBAAoB,CAAC,qBAAqB,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAC,CAAC;QAC3H,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAEO,MAAM;QACZ,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oBAAoB,CAAC,qBAAqB,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC;QAC5H,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAEO,IAAI;QACV,IAAI,SAAS,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC5B,CAAC;IACH,CAAC;IAEO,QAAQ;QACd,uIAAuI;QACvI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB;YACnE,OAAO;QAET,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACvB,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oBAAoB,CAAC,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QAErK,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,uBAAwB,SAAQ,IAAI;aACxB,WAAM,GAAG,qBAAqB,CAAC;IAEtD;;OAEG;IACa,KAAK,CAAC,GAAG,CAAC,KAAY;QACpC,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,SAAS,KAAK,EAAE;YAClB,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC;QAExB,OAAO,IAAI,CAAC;IACd,CAAC","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 { StopWatch } from \"@itwin/core-bentley\";\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, Tool, Viewport } from \"@itwin/core-frontend\";\n\nclass TileLoadTimer {\n private readonly _vp: Viewport;\n private readonly _stopwatch: StopWatch;\n private _cleanup?: () => void;\n\n public constructor(vp: Viewport) {\n this._vp = vp;\n this._stopwatch = new StopWatch();\n\n // Purge tile trees for all models.\n IModelApp.viewManager.refreshForModifiedModels(undefined);\n\n const removeOnRender = vp.onRender.addListener(() => this.onRender());\n const removeOnClose = vp.iModel.onClose.addOnce(() => this.cancel());\n this._cleanup = () => {\n removeOnRender();\n removeOnClose();\n };\n\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, \"Tile loading timer started.\"));\n this._stopwatch.start();\n }\n\n private cancel(): void {\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, \"Tile loading timer canceled.\"));\n this.stop();\n }\n\n private stop(): void {\n if (undefined !== this._cleanup) {\n this._cleanup();\n this._cleanup = undefined;\n }\n }\n\n private onRender(): void {\n // ###TODO: May be intermediate frames during which children props have been asynchronously requested but no outstanding tile requests.\n if (!this._vp.areAllTileTreesLoaded || 0 < this._vp.numRequestedTiles)\n return;\n\n this._stopwatch.stop();\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `Tiles loaded in ${this._stopwatch.elapsedSeconds.toFixed(4)} seconds.`));\n\n this.stop();\n }\n}\n\n/** Unloads all tile trees, then starts a timer that stops when all tile trees and tiles required for the view are ready.\n * Outputs the elapsed time to notifications manager.\n * @beta\n */\nexport class MeasureTileLoadTimeTool extends Tool {\n public static override toolId = \"MeasureTileLoadTime\";\n\n /** This method runs the tool, unloading all tile trees, then starts a timer that stops when all tile trees and tiles required for the view are ready. It will then output the elapsed time to notifications manager.\n * @param _args this parameter is unused\n */\n public override async run(_args: any[]): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (undefined !== vp)\n new TileLoadTimer(vp);\n\n return true;\n }\n}\n"]}
@@ -27,6 +27,7 @@ function modelChangedString(name) {
27
27
  * @beta
28
28
  */
29
29
  export class SetModelTransparencyTool extends Tool {
30
+ static { this.toolId = "SetModelTransparencyTool"; }
30
31
  static get minArgs() { return 1; }
31
32
  static get maxArgs() { return 2; }
32
33
  async run(transparency, name) {
@@ -39,11 +40,11 @@ export class SetModelTransparencyTool extends Tool {
39
40
  return this.run(parseFloat(args[0]), args[1]);
40
41
  }
41
42
  }
42
- SetModelTransparencyTool.toolId = "SetModelTransparencyTool";
43
43
  /** Set model appearance override for line weight in display style.
44
44
  * @beta
45
45
  */
46
46
  export class SetModelLineWeightTool extends Tool {
47
+ static { this.toolId = "SetModelLineWeightTool"; }
47
48
  static get minArgs() { return 1; }
48
49
  static get maxArgs() { return 2; }
49
50
  async run(weight, name) {
@@ -56,13 +57,14 @@ export class SetModelLineWeightTool extends Tool {
56
57
  return this.run(parseFloat(args[0]), args[1]);
57
58
  }
58
59
  }
59
- SetModelLineWeightTool.toolId = "SetModelLineWeightTool";
60
60
  /** Set model appearance override for line code in display style.
61
61
  * @beta
62
62
  */
63
63
  export class SetModelLineCodeTool extends Tool {
64
+ static { this.toolId = "SetModelLineCodeTool"; }
64
65
  static get minArgs() { return 1; }
65
66
  static get maxArgs() { return 2; }
67
+ static { this.linePixels = [LinePixels.Code0, LinePixels.Code1, LinePixels.Code2, LinePixels.Code3, LinePixels.Code4, LinePixels.Code5, LinePixels.Code6, LinePixels.Code7]; }
66
68
  async run(lineCode, name) {
67
69
  if (lineCode < 0 || lineCode >= SetModelLineCodeTool.linePixels.length)
68
70
  return false;
@@ -75,12 +77,11 @@ export class SetModelLineCodeTool extends Tool {
75
77
  return this.run(parseFloat(args[0]), args[1]);
76
78
  }
77
79
  }
78
- SetModelLineCodeTool.toolId = "SetModelLineCodeTool";
79
- SetModelLineCodeTool.linePixels = [LinePixels.Code0, LinePixels.Code1, LinePixels.Code2, LinePixels.Code3, LinePixels.Code4, LinePixels.Code5, LinePixels.Code6, LinePixels.Code7];
80
80
  /** Set model appearance override for nonLocatable in display style.
81
81
  * @beta
82
82
  */
83
83
  export class SetModelLocateTool extends Tool {
84
+ static { this.toolId = "SetModelLocateTool"; }
84
85
  static get minArgs() { return 1; }
85
86
  static get maxArgs() { return 2; }
86
87
  async run(locate, name) {
@@ -95,11 +96,11 @@ export class SetModelLocateTool extends Tool {
95
96
  return locate === undefined ? false : this.run(locate, args[1]);
96
97
  }
97
98
  }
98
- SetModelLocateTool.toolId = "SetModelLocateTool";
99
99
  /** Set model appearance override for emphasized in display style.
100
100
  * @beta
101
101
  */
102
102
  export class SetModelEmphasizedTool extends Tool {
103
+ static { this.toolId = "SetModelEmphasizedTool"; }
103
104
  static get minArgs() { return 1; }
104
105
  static get maxArgs() { return 2; }
105
106
  async run(emphasized, name) {
@@ -113,11 +114,11 @@ export class SetModelEmphasizedTool extends Tool {
113
114
  return emphasized === undefined ? false : this.run(emphasized ? true : undefined, args[1]);
114
115
  }
115
116
  }
116
- SetModelEmphasizedTool.toolId = "SetModelEmphasizedTool";
117
117
  /** Set model appearance override for ignoreMaterials in display style.
118
118
  * @beta
119
119
  */
120
120
  export class SetModelIgnoresMaterialsTool extends Tool {
121
+ static { this.toolId = "SetModelIgnoresMaterialsTool"; }
121
122
  static get minArgs() { return 1; }
122
123
  static get maxArgs() { return 2; }
123
124
  async run(ignoresMaterial, name) {
@@ -131,11 +132,11 @@ export class SetModelIgnoresMaterialsTool extends Tool {
131
132
  return ignoresMaterial === undefined ? false : this.run(ignoresMaterial ? true : undefined, args[1]);
132
133
  }
133
134
  }
134
- SetModelIgnoresMaterialsTool.toolId = "SetModelIgnoresMaterialsTool";
135
135
  /** Set model appearance override for color in display style.
136
136
  * @beta
137
137
  */
138
138
  export class SetModelColorTool extends Tool {
139
+ static { this.toolId = "SetModelColorTool"; }
139
140
  static get minArgs() { return 3; }
140
141
  static get maxArgs() { return 4; }
141
142
  async run(rgb, name) {
@@ -148,11 +149,11 @@ export class SetModelColorTool extends Tool {
148
149
  return this.run({ r: parseFloat(args[0]), g: parseFloat(args[1]), b: parseFloat(args[2]) }, args[3]);
149
150
  }
150
151
  }
151
- SetModelColorTool.toolId = "SetModelColorTool";
152
152
  /** clear model appearance overrides in display style.
153
153
  * @beta
154
154
  */
155
155
  export class ClearModelAppearanceOverrides extends Tool {
156
+ static { this.toolId = "ClearModelAppearanceOverrides"; }
156
157
  static get minArgs() { return 0; }
157
158
  static get maxArgs() { return 1; }
158
159
  async run(name) {
@@ -169,5 +170,4 @@ export class ClearModelAppearanceOverrides extends Tool {
169
170
  return this.run(args[0]);
170
171
  }
171
172
  }
172
- ClearModelAppearanceOverrides.toolId = "ClearModelAppearanceOverrides";
173
173
  //# sourceMappingURL=ModelAppearanceTools.js.map