@itwin/frontend-devtools 4.6.0-dev.9 → 4.7.0-dev.3

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 (195) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/README.md +6 -5
  3. package/lib/cjs/FrontEndDevTools.d.ts.map +1 -1
  4. package/lib/cjs/FrontEndDevTools.js +2 -1
  5. package/lib/cjs/FrontEndDevTools.js.map +1 -1
  6. package/lib/cjs/effects/Convolution.js +6 -6
  7. package/lib/cjs/effects/Convolution.js.map +1 -1
  8. package/lib/cjs/effects/EffectTools.js +2 -2
  9. package/lib/cjs/effects/EffectTools.js.map +1 -1
  10. package/lib/cjs/effects/Explosion.js +1 -1
  11. package/lib/cjs/effects/Explosion.js.map +1 -1
  12. package/lib/cjs/effects/FlipImage.js +2 -2
  13. package/lib/cjs/effects/FlipImage.js.map +1 -1
  14. package/lib/cjs/effects/LensDistortion.js +2 -2
  15. package/lib/cjs/effects/LensDistortion.js.map +1 -1
  16. package/lib/cjs/effects/Saturation.js +2 -2
  17. package/lib/cjs/effects/Saturation.js.map +1 -1
  18. package/lib/cjs/effects/Snow.js +2 -2
  19. package/lib/cjs/effects/Snow.js.map +1 -1
  20. package/lib/cjs/effects/Vignette.js +2 -2
  21. package/lib/cjs/effects/Vignette.js.map +1 -1
  22. package/lib/cjs/tools/AnimationIntervalTool.js +1 -1
  23. package/lib/cjs/tools/AnimationIntervalTool.js.map +1 -1
  24. package/lib/cjs/tools/ChangeUnitsTool.js +1 -1
  25. package/lib/cjs/tools/ChangeUnitsTool.js.map +1 -1
  26. package/lib/cjs/tools/ClipTools.js +4 -4
  27. package/lib/cjs/tools/ClipTools.js.map +1 -1
  28. package/lib/cjs/tools/DisplayStyleTools.js +10 -10
  29. package/lib/cjs/tools/DisplayStyleTools.js.map +1 -1
  30. package/lib/cjs/tools/EmphasizeElementsTool.js +5 -5
  31. package/lib/cjs/tools/EmphasizeElementsTool.js.map +1 -1
  32. package/lib/cjs/tools/FrustumDecoration.js +3 -3
  33. package/lib/cjs/tools/FrustumDecoration.js.map +1 -1
  34. package/lib/cjs/tools/InspectElementTool.js +1 -1
  35. package/lib/cjs/tools/InspectElementTool.js.map +1 -1
  36. package/lib/cjs/tools/MapLayerTool.d.ts +7 -0
  37. package/lib/cjs/tools/MapLayerTool.d.ts.map +1 -1
  38. package/lib/cjs/tools/MapLayerTool.js +28 -20
  39. package/lib/cjs/tools/MapLayerTool.js.map +1 -1
  40. package/lib/cjs/tools/MeasureTileLoadTime.js +1 -1
  41. package/lib/cjs/tools/MeasureTileLoadTime.js.map +1 -1
  42. package/lib/cjs/tools/ModelAppearanceTools.js +8 -8
  43. package/lib/cjs/tools/ModelAppearanceTools.js.map +1 -1
  44. package/lib/cjs/tools/PlanProjectionTools.js +3 -3
  45. package/lib/cjs/tools/PlanProjectionTools.js.map +1 -1
  46. package/lib/cjs/tools/PlanarMaskTools.js +12 -12
  47. package/lib/cjs/tools/PlanarMaskTools.js.map +1 -1
  48. package/lib/cjs/tools/ProjectExtents.js +1 -1
  49. package/lib/cjs/tools/ProjectExtents.js.map +1 -1
  50. package/lib/cjs/tools/RealityModelTools.js +10 -10
  51. package/lib/cjs/tools/RealityModelTools.js.map +1 -1
  52. package/lib/cjs/tools/RealityTransitionTool.js +1 -1
  53. package/lib/cjs/tools/RealityTransitionTool.js.map +1 -1
  54. package/lib/cjs/tools/RenderSystemTools.js +3 -3
  55. package/lib/cjs/tools/RenderSystemTools.js.map +1 -1
  56. package/lib/cjs/tools/RenderTargetTools.js +10 -10
  57. package/lib/cjs/tools/RenderTargetTools.js.map +1 -1
  58. package/lib/cjs/tools/ReportWebGLCompatibilityTool.js +1 -1
  59. package/lib/cjs/tools/ReportWebGLCompatibilityTool.js.map +1 -1
  60. package/lib/cjs/tools/SavedViews.js +3 -3
  61. package/lib/cjs/tools/SavedViews.js.map +1 -1
  62. package/lib/cjs/tools/ScheduleScriptTools.js +3 -3
  63. package/lib/cjs/tools/ScheduleScriptTools.js.map +1 -1
  64. package/lib/cjs/tools/SelectionTools.js +2 -2
  65. package/lib/cjs/tools/SelectionTools.js.map +1 -1
  66. package/lib/cjs/tools/SetGpuMemoryLimitTool.js +1 -1
  67. package/lib/cjs/tools/SetGpuMemoryLimitTool.js.map +1 -1
  68. package/lib/cjs/tools/SourceAspectIdTools.js +2 -2
  69. package/lib/cjs/tools/SourceAspectIdTools.js.map +1 -1
  70. package/lib/cjs/tools/TileRequestDecoration.js +1 -1
  71. package/lib/cjs/tools/TileRequestDecoration.js.map +1 -1
  72. package/lib/cjs/tools/TileTreeBoundsDecoration.js +1 -1
  73. package/lib/cjs/tools/TileTreeBoundsDecoration.js.map +1 -1
  74. package/lib/cjs/tools/ToolTipProvider.js +1 -1
  75. package/lib/cjs/tools/ToolTipProvider.js.map +1 -1
  76. package/lib/cjs/tools/ViewportTools.js +19 -19
  77. package/lib/cjs/tools/ViewportTools.js.map +1 -1
  78. package/lib/cjs/tools/parseArgs.js.map +1 -1
  79. package/lib/cjs/tools/parseBoolean.js.map +1 -1
  80. package/lib/cjs/tools/parseToggle.js.map +1 -1
  81. package/lib/cjs/ui/ColorInput.js.map +1 -1
  82. package/lib/cjs/ui/ComboBox.js.map +1 -1
  83. package/lib/cjs/ui/DataList.js.map +1 -1
  84. package/lib/cjs/ui/NumericInput.js.map +1 -1
  85. package/lib/cjs/ui/RadioBox.js.map +1 -1
  86. package/lib/cjs/ui/Slider.js.map +1 -1
  87. package/lib/cjs/ui/TextBox.js.map +1 -1
  88. package/lib/cjs/widgets/DiagnosticsPanel.js.map +1 -1
  89. package/lib/cjs/widgets/FpsTracker.js.map +1 -1
  90. package/lib/cjs/widgets/GpuProfiler.js.map +1 -1
  91. package/lib/cjs/widgets/KeyinField.js +1 -1
  92. package/lib/cjs/widgets/KeyinField.js.map +1 -1
  93. package/lib/cjs/widgets/MemoryTracker.js.map +1 -1
  94. package/lib/cjs/widgets/RenderCommandBreakdown.js.map +1 -1
  95. package/lib/cjs/widgets/TileMemoryBreakdown.js.map +1 -1
  96. package/lib/cjs/widgets/TileStatisticsTracker.js.map +1 -1
  97. package/lib/cjs/widgets/ToolSettingsTracker.js +1 -1
  98. package/lib/cjs/widgets/ToolSettingsTracker.js.map +1 -1
  99. package/lib/esm/FrontEndDevTools.d.ts.map +1 -1
  100. package/lib/esm/FrontEndDevTools.js +3 -3
  101. package/lib/esm/FrontEndDevTools.js.map +1 -1
  102. package/lib/esm/effects/Convolution.js +6 -12
  103. package/lib/esm/effects/Convolution.js.map +1 -1
  104. package/lib/esm/effects/EffectTools.js +2 -4
  105. package/lib/esm/effects/EffectTools.js.map +1 -1
  106. package/lib/esm/effects/Explosion.js +1 -2
  107. package/lib/esm/effects/Explosion.js.map +1 -1
  108. package/lib/esm/effects/FlipImage.js +2 -4
  109. package/lib/esm/effects/FlipImage.js.map +1 -1
  110. package/lib/esm/effects/LensDistortion.js +2 -4
  111. package/lib/esm/effects/LensDistortion.js.map +1 -1
  112. package/lib/esm/effects/Saturation.js +2 -4
  113. package/lib/esm/effects/Saturation.js.map +1 -1
  114. package/lib/esm/effects/Snow.js +2 -4
  115. package/lib/esm/effects/Snow.js.map +1 -1
  116. package/lib/esm/effects/Vignette.js +2 -4
  117. package/lib/esm/effects/Vignette.js.map +1 -1
  118. package/lib/esm/tools/AnimationIntervalTool.js +1 -2
  119. package/lib/esm/tools/AnimationIntervalTool.js.map +1 -1
  120. package/lib/esm/tools/ChangeUnitsTool.js +1 -2
  121. package/lib/esm/tools/ChangeUnitsTool.js.map +1 -1
  122. package/lib/esm/tools/ClipTools.js +4 -8
  123. package/lib/esm/tools/ClipTools.js.map +1 -1
  124. package/lib/esm/tools/DisplayStyleTools.js +10 -20
  125. package/lib/esm/tools/DisplayStyleTools.js.map +1 -1
  126. package/lib/esm/tools/EmphasizeElementsTool.js +5 -10
  127. package/lib/esm/tools/EmphasizeElementsTool.js.map +1 -1
  128. package/lib/esm/tools/FrustumDecoration.js +3 -6
  129. package/lib/esm/tools/FrustumDecoration.js.map +1 -1
  130. package/lib/esm/tools/InspectElementTool.js +1 -2
  131. package/lib/esm/tools/InspectElementTool.js.map +1 -1
  132. package/lib/esm/tools/MapLayerTool.d.ts +7 -0
  133. package/lib/esm/tools/MapLayerTool.d.ts.map +1 -1
  134. package/lib/esm/tools/MapLayerTool.js +26 -38
  135. package/lib/esm/tools/MapLayerTool.js.map +1 -1
  136. package/lib/esm/tools/MeasureTileLoadTime.js +1 -2
  137. package/lib/esm/tools/MeasureTileLoadTime.js.map +1 -1
  138. package/lib/esm/tools/ModelAppearanceTools.js +8 -16
  139. package/lib/esm/tools/ModelAppearanceTools.js.map +1 -1
  140. package/lib/esm/tools/PlanProjectionTools.js +3 -6
  141. package/lib/esm/tools/PlanProjectionTools.js.map +1 -1
  142. package/lib/esm/tools/PlanarMaskTools.js +12 -24
  143. package/lib/esm/tools/PlanarMaskTools.js.map +1 -1
  144. package/lib/esm/tools/ProjectExtents.js +1 -2
  145. package/lib/esm/tools/ProjectExtents.js.map +1 -1
  146. package/lib/esm/tools/RealityModelTools.js +10 -20
  147. package/lib/esm/tools/RealityModelTools.js.map +1 -1
  148. package/lib/esm/tools/RealityTransitionTool.js +1 -2
  149. package/lib/esm/tools/RealityTransitionTool.js.map +1 -1
  150. package/lib/esm/tools/RenderSystemTools.js +3 -6
  151. package/lib/esm/tools/RenderSystemTools.js.map +1 -1
  152. package/lib/esm/tools/RenderTargetTools.js +10 -20
  153. package/lib/esm/tools/RenderTargetTools.js.map +1 -1
  154. package/lib/esm/tools/ReportWebGLCompatibilityTool.js +1 -2
  155. package/lib/esm/tools/ReportWebGLCompatibilityTool.js.map +1 -1
  156. package/lib/esm/tools/SavedViews.js +3 -6
  157. package/lib/esm/tools/SavedViews.js.map +1 -1
  158. package/lib/esm/tools/ScheduleScriptTools.js +3 -6
  159. package/lib/esm/tools/ScheduleScriptTools.js.map +1 -1
  160. package/lib/esm/tools/SelectionTools.js +2 -4
  161. package/lib/esm/tools/SelectionTools.js.map +1 -1
  162. package/lib/esm/tools/SetGpuMemoryLimitTool.js +1 -2
  163. package/lib/esm/tools/SetGpuMemoryLimitTool.js.map +1 -1
  164. package/lib/esm/tools/SourceAspectIdTools.js +2 -4
  165. package/lib/esm/tools/SourceAspectIdTools.js.map +1 -1
  166. package/lib/esm/tools/TileRequestDecoration.js +1 -2
  167. package/lib/esm/tools/TileRequestDecoration.js.map +1 -1
  168. package/lib/esm/tools/TileTreeBoundsDecoration.js +1 -2
  169. package/lib/esm/tools/TileTreeBoundsDecoration.js.map +1 -1
  170. package/lib/esm/tools/ToolTipProvider.js +1 -2
  171. package/lib/esm/tools/ToolTipProvider.js.map +1 -1
  172. package/lib/esm/tools/ViewportTools.js +19 -38
  173. package/lib/esm/tools/ViewportTools.js.map +1 -1
  174. package/lib/esm/tools/parseArgs.js.map +1 -1
  175. package/lib/esm/tools/parseBoolean.js.map +1 -1
  176. package/lib/esm/tools/parseToggle.js.map +1 -1
  177. package/lib/esm/ui/ColorInput.js.map +1 -1
  178. package/lib/esm/ui/ComboBox.js.map +1 -1
  179. package/lib/esm/ui/DataList.js.map +1 -1
  180. package/lib/esm/ui/NumericInput.js.map +1 -1
  181. package/lib/esm/ui/RadioBox.js.map +1 -1
  182. package/lib/esm/ui/Slider.js.map +1 -1
  183. package/lib/esm/ui/TextBox.js.map +1 -1
  184. package/lib/esm/widgets/DiagnosticsPanel.js.map +1 -1
  185. package/lib/esm/widgets/FpsTracker.js.map +1 -1
  186. package/lib/esm/widgets/GpuProfiler.js.map +1 -1
  187. package/lib/esm/widgets/KeyinField.js.map +1 -1
  188. package/lib/esm/widgets/MemoryTracker.js.map +1 -1
  189. package/lib/esm/widgets/RenderCommandBreakdown.js.map +1 -1
  190. package/lib/esm/widgets/TileMemoryBreakdown.js.map +1 -1
  191. package/lib/esm/widgets/TileStatisticsTracker.js.map +1 -1
  192. package/lib/esm/widgets/ToolSettingsTracker.js +1 -2
  193. package/lib/esm/widgets/ToolSettingsTracker.js.map +1 -1
  194. package/lib/public/locales/en/FrontendDevTools.json +3 -0
  195. package/package.json +8 -8
@@ -58,7 +58,7 @@ class AttachMapLayerBaseTool extends Tool {
58
58
  /** Attach a map layer from URL base class. A layer is attached for each unique model in the selection
59
59
  * @beta
60
60
  */
61
- class AttachModelMapLayerTool extends Tool {
61
+ export class AttachModelMapLayerTool extends Tool {
62
62
  static get minArgs() { return 0; }
63
63
  static get maxArgs() { return 1; }
64
64
  constructor(_formatId) {
@@ -90,7 +90,6 @@ class AttachModelMapLayerTool extends Tool {
90
90
  }
91
91
  }
92
92
  AttachModelMapLayerTool.toolId = "AttachModelMapLayerTool";
93
- export { AttachModelMapLayerTool };
94
93
  /** Attach a map layer from URL base class. */
95
94
  class AttachMapLayerByURLBaseTool extends AttachMapLayerBaseTool {
96
95
  static get minArgs() { return 1; }
@@ -115,7 +114,7 @@ class AttachMapLayerByURLBaseTool extends AttachMapLayerBaseTool {
115
114
  /** This tool attaches a WMS map layer from a given URL.
116
115
  * @beta
117
116
  */
118
- class AttachWmsMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {
117
+ export class AttachWmsMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {
119
118
  constructor() { super("WMS"); }
120
119
  /** This method runs the tool, attaching a WMS map layer from a given URL.
121
120
  * @param args contains url, name, userName, password in array order
@@ -125,11 +124,10 @@ class AttachWmsMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {
125
124
  }
126
125
  }
127
126
  AttachWmsMapLayerByUrlTool.toolId = "AttachWmsMapLayerTool";
128
- export { AttachWmsMapLayerByUrlTool };
129
127
  /** This tool attaches a WMTS map layer from a given URL.
130
128
  * @beta
131
129
  */
132
- class AttachWmtsMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {
130
+ export class AttachWmtsMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {
133
131
  constructor() { super("WMTS"); }
134
132
  /** This method runs the tool, attaching a WMTS map layer from a given URL.
135
133
  * @param args contains url, name, userName, password in array order
@@ -139,35 +137,38 @@ class AttachWmtsMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {
139
137
  }
140
138
  }
141
139
  AttachWmtsMapLayerByUrlTool.toolId = "AttachWmtsMapLayerTool";
142
- export { AttachWmtsMapLayerByUrlTool };
143
140
  /** This tool attaches an ArcGIS map layer from a given URL.
144
141
  * @beta
145
142
  */
146
- class AttachArcGISMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {
143
+ export class AttachArcGISMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {
147
144
  constructor() { super("ArcGIS"); }
148
145
  }
149
146
  AttachArcGISMapLayerByUrlTool.toolId = "AttachArcGISMapLayerTool";
150
- export { AttachArcGISMapLayerByUrlTool };
151
147
  /** This tool attaches an ArcGIS map layer from a given URL.
152
148
  * @beta
153
149
  */
154
- class AttachArcGISFeatureMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {
150
+ export class AttachArcGISFeatureMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {
155
151
  constructor() { super("ArcGISFeature"); }
156
152
  }
157
153
  AttachArcGISFeatureMapLayerByUrlTool.toolId = "AttachArcGISFeatureMapLayerTool";
158
- export { AttachArcGISFeatureMapLayerByUrlTool };
154
+ /** This tool attaches an ArcGIS map layer from a given URL.
155
+ * @beta
156
+ */
157
+ export class AttachOgcApiFeaturesMapLayerTool extends AttachMapLayerByURLBaseTool {
158
+ constructor() { super("OgcApiFeatures"); }
159
+ }
160
+ AttachOgcApiFeaturesMapLayerTool.toolId = "AttachOgcApiFeaturesMapLayerTool";
159
161
  /** This tool attaches a map layer from a given tile URL.
160
162
  * @beta
161
163
  */
162
- class AttachTileURLMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {
164
+ export class AttachTileURLMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {
163
165
  constructor() { super("TileURL"); }
164
166
  }
165
167
  AttachTileURLMapLayerByUrlTool.toolId = "AttachTileURLMapLayerTool";
166
- export { AttachTileURLMapLayerByUrlTool };
167
168
  /** This tool add a Map Layer from a specified name (look up in MapLayerSources.json).
168
169
  * @beta
169
170
  */
170
- class AttachMapLayerTool extends AttachMapLayerBaseTool {
171
+ export class AttachMapLayerTool extends AttachMapLayerBaseTool {
171
172
  static get minArgs() { return 1; }
172
173
  static get maxArgs() { return 1; }
173
174
  /** This method runs the tool, adding a map layer from a specified name in MayLayerSources.json.
@@ -194,33 +195,30 @@ class AttachMapLayerTool extends AttachMapLayerBaseTool {
194
195
  }
195
196
  }
196
197
  AttachMapLayerTool.toolId = "AttachMapLayerTool";
197
- export { AttachMapLayerTool };
198
198
  /** This tool attaches a Overlay map layer.
199
199
  * @beta
200
200
  */
201
- class AttachMapOverlayTool extends AttachMapLayerTool {
201
+ export class AttachMapOverlayTool extends AttachMapLayerTool {
202
202
  constructor() {
203
203
  super();
204
204
  this._isBackground = false;
205
205
  }
206
206
  }
207
207
  AttachMapOverlayTool.toolId = "AttachMapOverlayTool";
208
- export { AttachMapOverlayTool };
209
208
  /** Sets map layer base tool.
210
209
  * @beta
211
210
  */
212
- class SetMapBaseTool extends AttachMapLayerTool {
211
+ export class SetMapBaseTool extends AttachMapLayerTool {
213
212
  constructor() {
214
213
  super();
215
214
  this._isBase = true;
216
215
  }
217
216
  }
218
217
  SetMapBaseTool.toolId = "SetMapBaseTool";
219
- export { SetMapBaseTool };
220
218
  /** Detach Map Layers Tool.
221
219
  * @beta
222
220
  */
223
- class DetachMapLayersTool extends Tool {
221
+ export class DetachMapLayersTool extends Tool {
224
222
  static get minArgs() { return 0; }
225
223
  static get maxArgs() { return 0; }
226
224
  async parseAndRun(..._args) {
@@ -237,7 +235,6 @@ class DetachMapLayersTool extends Tool {
237
235
  }
238
236
  }
239
237
  DetachMapLayersTool.toolId = "DetachMapLayersTool";
240
- export { DetachMapLayersTool };
241
238
  function parseLayerIndex(args) {
242
239
  const layerIndex = args.length > 1 ? parseInt(args[1], 10) : 0;
243
240
  return isNaN(layerIndex) ? 0 : layerIndex;
@@ -245,7 +242,7 @@ function parseLayerIndex(args) {
245
242
  /** This tool sets the visibility of the map layer.
246
243
  * @beta
247
244
  */
248
- class MapLayerVisibilityTool extends Tool {
245
+ export class MapLayerVisibilityTool extends Tool {
249
246
  static get minArgs() { return 1; }
250
247
  static get maxArgs() { return 2; }
251
248
  /** This method runs the tool, setting the visibility of a map layer.
@@ -276,11 +273,10 @@ class MapLayerVisibilityTool extends Tool {
276
273
  }
277
274
  }
278
275
  MapLayerVisibilityTool.toolId = "SetMapLayerVisibility";
279
- export { MapLayerVisibilityTool };
280
276
  /** This tool reorders map layers.
281
277
  * @beta
282
278
  */
283
- class ReorderMapLayers extends Tool {
279
+ export class ReorderMapLayers extends Tool {
284
280
  static get minArgs() { return 0; }
285
281
  static get maxArgs() { return 2; }
286
282
  /** This method runs the tool, reordering the map layers.
@@ -306,11 +302,10 @@ class ReorderMapLayers extends Tool {
306
302
  }
307
303
  }
308
304
  ReorderMapLayers.toolId = "ReorderMapLayers";
309
- export { ReorderMapLayers };
310
305
  /** This tool sets the transparency of a map layer.
311
306
  * @beta
312
307
  */
313
- class MapLayerTransparencyTool extends Tool {
308
+ export class MapLayerTransparencyTool extends Tool {
314
309
  static get minArgs() { return 1; }
315
310
  static get maxArgs() { return 2; }
316
311
  /** This method runs the tool, setting the transparency of a map layer.
@@ -337,11 +332,10 @@ class MapLayerTransparencyTool extends Tool {
337
332
  }
338
333
  }
339
334
  MapLayerTransparencyTool.toolId = "SetMapLayerTransparency";
340
- export { MapLayerTransparencyTool };
341
335
  /** This tool sets the visibility of the map sublayer.
342
336
  * @beta
343
337
  */
344
- class MapLayerSubLayerVisibilityTool extends Tool {
338
+ export class MapLayerSubLayerVisibilityTool extends Tool {
345
339
  static get minArgs() { return 1; }
346
340
  static get maxArgs() { return 2; }
347
341
  /** This method runs the tool, setting the visibility of a map sublayer.
@@ -367,11 +361,10 @@ class MapLayerSubLayerVisibilityTool extends Tool {
367
361
  }
368
362
  }
369
363
  MapLayerSubLayerVisibilityTool.toolId = "SetMapSubLayerVisibility";
370
- export { MapLayerSubLayerVisibilityTool };
371
364
  /** This tool changes the viewport so it is zoomed to the range of a map layer.
372
365
  * @beta
373
366
  */
374
- class MapLayerZoomTool extends Tool {
367
+ export class MapLayerZoomTool extends Tool {
375
368
  static get minArgs() { return 0; }
376
369
  static get maxArgs() { return 1; }
377
370
  /** This method runs the tool, changing the viewport so it is zoomed to the range of a map layer.
@@ -394,11 +387,10 @@ class MapLayerZoomTool extends Tool {
394
387
  }
395
388
  }
396
389
  MapLayerZoomTool.toolId = "MapLayerZoom";
397
- export { MapLayerZoomTool };
398
390
  /** This tool toggles whether to apply terrain heights to the map.
399
391
  * @beta
400
392
  */
401
- class ToggleTerrainTool extends Tool {
393
+ export class ToggleTerrainTool extends Tool {
402
394
  static get minArgs() { return 0; }
403
395
  static get maxArgs() { return 1; }
404
396
  /** This method runs the tool, changing whether to apply terrain heights to the map.
@@ -424,11 +416,10 @@ class ToggleTerrainTool extends Tool {
424
416
  }
425
417
  }
426
418
  ToggleTerrainTool.toolId = "ToggleTerrain";
427
- export { ToggleTerrainTool };
428
419
  /** This tool changes the color of the base map.
429
420
  * @beta
430
421
  */
431
- class MapBaseColorTool extends Tool {
422
+ export class MapBaseColorTool extends Tool {
432
423
  static get minArgs() { return 3; }
433
424
  static get maxArgs() { return 3; }
434
425
  /** This method runs the tool, changing the color of the base map.
@@ -453,11 +444,10 @@ class MapBaseColorTool extends Tool {
453
444
  }
454
445
  }
455
446
  MapBaseColorTool.toolId = "SetMapBaseColorTool";
456
- export { MapBaseColorTool };
457
447
  /** This tool changes the transparency of the base map.
458
448
  * @beta
459
449
  */
460
- class MapBaseTransparencyTool extends Tool {
450
+ export class MapBaseTransparencyTool extends Tool {
461
451
  static get minArgs() { return 1; }
462
452
  static get maxArgs() { return 1; }
463
453
  /** This method runs the tool, changing the transparency of the base map.
@@ -480,11 +470,10 @@ class MapBaseTransparencyTool extends Tool {
480
470
  }
481
471
  }
482
472
  MapBaseTransparencyTool.toolId = "SetMapBaseTransparencyTool";
483
- export { MapBaseTransparencyTool };
484
473
  /** This tool changes the visibility of the base map.
485
474
  * @beta
486
475
  */
487
- class MapBaseVisibilityTool extends Tool {
476
+ export class MapBaseVisibilityTool extends Tool {
488
477
  static get minArgs() { return 1; }
489
478
  static get maxArgs() { return 1; }
490
479
  /** This method runs the tool, changing the visibility of the base map.
@@ -507,5 +496,4 @@ class MapBaseVisibilityTool extends Tool {
507
496
  }
508
497
  }
509
498
  MapBaseVisibilityTool.toolId = "SetMapBaseVisibilityTool";
510
- export { MapBaseVisibilityTool };
511
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 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":"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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"]}
@@ -45,7 +45,7 @@ class TileLoadTimer {
45
45
  * Outputs the elapsed time to notifications manager.
46
46
  * @beta
47
47
  */
48
- class MeasureTileLoadTimeTool extends Tool {
48
+ export class MeasureTileLoadTimeTool extends Tool {
49
49
  /** 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
50
  * @param _args this parameter is unused
51
51
  */
@@ -57,5 +57,4 @@ class MeasureTileLoadTimeTool extends Tool {
57
57
  }
58
58
  }
59
59
  MeasureTileLoadTimeTool.toolId = "MeasureTileLoadTime";
60
- export { MeasureTileLoadTimeTool };
61
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;YAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;SAC3B;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,MAAa,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;SAD3C,uBAAuB","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;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"]}
@@ -26,7 +26,7 @@ function modelChangedString(name) {
26
26
  /** Set model appearance override for transparency in display style.
27
27
  * @beta
28
28
  */
29
- class SetModelTransparencyTool extends Tool {
29
+ export class SetModelTransparencyTool extends Tool {
30
30
  static get minArgs() { return 1; }
31
31
  static get maxArgs() { return 2; }
32
32
  async run(transparency, name) {
@@ -40,11 +40,10 @@ class SetModelTransparencyTool extends Tool {
40
40
  }
41
41
  }
42
42
  SetModelTransparencyTool.toolId = "SetModelTransparencyTool";
43
- export { SetModelTransparencyTool };
44
43
  /** Set model appearance override for line weight in display style.
45
44
  * @beta
46
45
  */
47
- class SetModelLineWeightTool extends Tool {
46
+ export class SetModelLineWeightTool extends Tool {
48
47
  static get minArgs() { return 1; }
49
48
  static get maxArgs() { return 2; }
50
49
  async run(weight, name) {
@@ -58,11 +57,10 @@ class SetModelLineWeightTool extends Tool {
58
57
  }
59
58
  }
60
59
  SetModelLineWeightTool.toolId = "SetModelLineWeightTool";
61
- export { SetModelLineWeightTool };
62
60
  /** Set model appearance override for line code in display style.
63
61
  * @beta
64
62
  */
65
- class SetModelLineCodeTool extends Tool {
63
+ export class SetModelLineCodeTool extends Tool {
66
64
  static get minArgs() { return 1; }
67
65
  static get maxArgs() { return 2; }
68
66
  async run(lineCode, name) {
@@ -79,11 +77,10 @@ class SetModelLineCodeTool extends Tool {
79
77
  }
80
78
  SetModelLineCodeTool.toolId = "SetModelLineCodeTool";
81
79
  SetModelLineCodeTool.linePixels = [LinePixels.Code0, LinePixels.Code1, LinePixels.Code2, LinePixels.Code3, LinePixels.Code4, LinePixels.Code5, LinePixels.Code6, LinePixels.Code7];
82
- export { SetModelLineCodeTool };
83
80
  /** Set model appearance override for nonLocatable in display style.
84
81
  * @beta
85
82
  */
86
- class SetModelLocateTool extends Tool {
83
+ export class SetModelLocateTool extends Tool {
87
84
  static get minArgs() { return 1; }
88
85
  static get maxArgs() { return 2; }
89
86
  async run(locate, name) {
@@ -99,11 +96,10 @@ class SetModelLocateTool extends Tool {
99
96
  }
100
97
  }
101
98
  SetModelLocateTool.toolId = "SetModelLocateTool";
102
- export { SetModelLocateTool };
103
99
  /** Set model appearance override for emphasized in display style.
104
100
  * @beta
105
101
  */
106
- class SetModelEmphasizedTool extends Tool {
102
+ export class SetModelEmphasizedTool extends Tool {
107
103
  static get minArgs() { return 1; }
108
104
  static get maxArgs() { return 2; }
109
105
  async run(emphasized, name) {
@@ -118,11 +114,10 @@ class SetModelEmphasizedTool extends Tool {
118
114
  }
119
115
  }
120
116
  SetModelEmphasizedTool.toolId = "SetModelEmphasizedTool";
121
- export { SetModelEmphasizedTool };
122
117
  /** Set model appearance override for ignoreMaterials in display style.
123
118
  * @beta
124
119
  */
125
- class SetModelIgnoresMaterialsTool extends Tool {
120
+ export class SetModelIgnoresMaterialsTool extends Tool {
126
121
  static get minArgs() { return 1; }
127
122
  static get maxArgs() { return 2; }
128
123
  async run(ignoresMaterial, name) {
@@ -137,11 +132,10 @@ class SetModelIgnoresMaterialsTool extends Tool {
137
132
  }
138
133
  }
139
134
  SetModelIgnoresMaterialsTool.toolId = "SetModelIgnoresMaterialsTool";
140
- export { SetModelIgnoresMaterialsTool };
141
135
  /** Set model appearance override for color in display style.
142
136
  * @beta
143
137
  */
144
- class SetModelColorTool extends Tool {
138
+ export class SetModelColorTool extends Tool {
145
139
  static get minArgs() { return 3; }
146
140
  static get maxArgs() { return 4; }
147
141
  async run(rgb, name) {
@@ -155,11 +149,10 @@ class SetModelColorTool extends Tool {
155
149
  }
156
150
  }
157
151
  SetModelColorTool.toolId = "SetModelColorTool";
158
- export { SetModelColorTool };
159
152
  /** clear model appearance overrides in display style.
160
153
  * @beta
161
154
  */
162
- class ClearModelAppearanceOverrides extends Tool {
155
+ export class ClearModelAppearanceOverrides extends Tool {
163
156
  static get minArgs() { return 0; }
164
157
  static get maxArgs() { return 1; }
165
158
  async run(name) {
@@ -177,5 +170,4 @@ class ClearModelAppearanceOverrides extends Tool {
177
170
  }
178
171
  }
179
172
  ClearModelAppearanceOverrides.toolId = "ClearModelAppearanceOverrides";
180
- export { ClearModelAppearanceOverrides };
181
173
  //# sourceMappingURL=ModelAppearanceTools.js.map