@arcgis/core 4.33.0-next.20250211 → 4.33.0-next.20250212

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 (301) hide show
  1. package/assets/esri/core/workers/RemoteClient.js +1 -1
  2. package/assets/esri/core/workers/chunks/{3c23e567cfb7372c44ba.js → 0a5689348d544090006d.js} +1 -1
  3. package/assets/esri/core/workers/chunks/0b8bf1966653c326e95a.js +1 -0
  4. package/assets/esri/core/workers/chunks/{baee20c14763bef80b09.js → 1249fd2f83caeaefd8ce.js} +1 -1
  5. package/assets/esri/core/workers/chunks/135fb580d8afd8d60811.js +1 -0
  6. package/assets/esri/core/workers/chunks/{946a9890f3621d1dfbc5.js → 144e534d4ac1aafab60d.js} +1 -1
  7. package/assets/esri/core/workers/chunks/{cee3a38b92a48a58c4d0.js → 152becae48572299b07f.js} +1 -1
  8. package/assets/esri/core/workers/chunks/{f200dca22f9f9bbb8670.js → 17213c3fc63f580e5b73.js} +1 -1
  9. package/assets/esri/core/workers/chunks/24e6476f32ad2014d39d.js +1 -0
  10. package/assets/esri/core/workers/chunks/272662e4e28341419b4f.js +1 -0
  11. package/assets/esri/core/workers/chunks/{5fbdb5fea7d6676fcf19.js → 2c1a85a801cb4d9d737e.js} +1 -1
  12. package/assets/esri/core/workers/chunks/{7f87cf3d6a365d987f69.js → 30bd5b3204e09f516ea2.js} +1 -1
  13. package/assets/esri/core/workers/chunks/{c04091eea7089dc2e864.js → 35bcb0622234b38d85b4.js} +1 -1
  14. package/assets/esri/core/workers/chunks/{92984981afcbb95828cd.js → 37cfd102b6ab5b959f9d.js} +1 -1
  15. package/assets/esri/core/workers/chunks/3835c2884c55e73dc202.js +1 -0
  16. package/assets/esri/core/workers/chunks/{6c9bb00f33649ab59dab.js → 3ba85f1d660b8887f963.js} +1 -1
  17. package/assets/esri/core/workers/chunks/{1d51c064045e9c47bd2e.js → 3bad184751fcb26c003c.js} +1 -1
  18. package/assets/esri/core/workers/chunks/{e468bf4ec7402942ad8c.js → 3ebdd0701e77bb28c75d.js} +1 -1
  19. package/assets/esri/core/workers/chunks/{a559db8654b4f83fd79b.js → 3f6516af411256d90a03.js} +1 -1
  20. package/assets/esri/core/workers/chunks/{c83b26ff96e39266adc2.js → 4300c80fa10c5d9141e8.js} +1 -1
  21. package/assets/esri/core/workers/chunks/4848a3e31632d15dc4ce.js +1 -0
  22. package/assets/esri/core/workers/chunks/{77764ca90bdd13ee2167.js → 486df1e042204b90b0dd.js} +2 -2
  23. package/assets/esri/core/workers/chunks/{77764ca90bdd13ee2167.js.LICENSE.txt → 486df1e042204b90b0dd.js.LICENSE.txt} +1 -1
  24. package/assets/esri/core/workers/chunks/52f61e1f5972a72b6b54.js +1 -0
  25. package/assets/esri/core/workers/chunks/{354531dc2f0dea2ad96f.js → 5693d9ce4472a4c5959f.js} +2 -2
  26. package/assets/esri/core/workers/chunks/{354531dc2f0dea2ad96f.js.LICENSE.txt → 5693d9ce4472a4c5959f.js.LICENSE.txt} +1 -1
  27. package/assets/esri/core/workers/chunks/{e56647e61296643c5f84.js → 5719471414810b6a9aec.js} +1 -1
  28. package/assets/esri/core/workers/chunks/{1accbc048b74857269e4.js → 57924f4909f2cbe5d64c.js} +1 -1
  29. package/assets/esri/core/workers/chunks/{b21b152fa15896577242.js → 5b56b271afb0fadf48b4.js} +2 -2
  30. package/assets/esri/core/workers/chunks/{b21b152fa15896577242.js.LICENSE.txt → 5b56b271afb0fadf48b4.js.LICENSE.txt} +1 -1
  31. package/assets/esri/core/workers/chunks/{b3aeda290470dcb2bdd2.js → 5cf08ee5114273163e09.js} +1 -1
  32. package/assets/esri/core/workers/chunks/{76794184ba8c2e66745e.js → 629f4621ba6ffdcaa2f9.js} +1 -1
  33. package/assets/esri/core/workers/chunks/{32d3657dcae89b740f8b.js → 6518954889df2e781c47.js} +2 -2
  34. package/assets/esri/core/workers/chunks/{32d3657dcae89b740f8b.js.LICENSE.txt → 6518954889df2e781c47.js.LICENSE.txt} +1 -1
  35. package/assets/esri/core/workers/chunks/{220b12654b94c94f8d8a.js → 6fa1f1e431aae1794ce3.js} +1 -1
  36. package/assets/esri/core/workers/chunks/82facb23dfaba2819bc7.js +1 -0
  37. package/assets/esri/core/workers/chunks/8722d05ae9b0aa5162a4.js +1 -0
  38. package/assets/esri/core/workers/chunks/8de4280080296adb1757.js +1 -0
  39. package/assets/esri/core/workers/chunks/{1f443b99653708470f31.js → 96d7f47ea8fbf345101c.js} +1 -1
  40. package/assets/esri/core/workers/chunks/{e6087eda5e3b7e5ad3e1.js → a12afed58acff17708ca.js} +1 -1
  41. package/assets/esri/core/workers/chunks/{95ad76e58452b60fb79f.js → a864ef9b584c83ebf6ae.js} +1 -1
  42. package/assets/esri/core/workers/chunks/{df3d1a8d3f11d52eb30d.js → afdbdc1569b56489c14d.js} +1 -1
  43. package/assets/esri/core/workers/chunks/{308ec51ff4a66f7fcb0d.js → b0952b81d5be214262dd.js} +2 -2
  44. package/assets/esri/core/workers/chunks/{308ec51ff4a66f7fcb0d.js.LICENSE.txt → b0952b81d5be214262dd.js.LICENSE.txt} +1 -1
  45. package/assets/esri/core/workers/chunks/{89e3f7880abd014a62c0.js → b42d26123784997c66e8.js} +1 -1
  46. package/assets/esri/core/workers/chunks/{4040158835f9036967cd.js → b83151b03bbeba466f82.js} +2 -2
  47. package/assets/esri/core/workers/chunks/{4040158835f9036967cd.js.LICENSE.txt → b83151b03bbeba466f82.js.LICENSE.txt} +1 -1
  48. package/assets/esri/core/workers/chunks/bf0bf2b912d668575a9b.js +1 -0
  49. package/assets/esri/core/workers/chunks/{94490937dca566fe2640.js → c061cad8323f0469e7e4.js} +1 -1
  50. package/assets/esri/core/workers/chunks/{fef135e55706d84d1947.js → c4ce3c35b52b7999e877.js} +1 -1
  51. package/assets/esri/core/workers/chunks/cc8eb975a543556f88ae.js +1 -0
  52. package/assets/esri/core/workers/chunks/{6e6422eda398774acbc7.js → d60da671aba70485050e.js} +1 -1
  53. package/assets/esri/core/workers/chunks/{88a34690480d3658bad8.js → d7b260d6187f29e0c136.js} +1 -1
  54. package/assets/esri/core/workers/chunks/de638753a30c9aa41bad.js +1 -0
  55. package/assets/esri/core/workers/chunks/de87009542886fad9a2f.js +2 -0
  56. package/assets/esri/core/workers/chunks/{b765670b47d209d7655a.js.LICENSE.txt → de87009542886fad9a2f.js.LICENSE.txt} +1 -1
  57. package/assets/esri/core/workers/chunks/{bb73cd34fbae935ccbcc.js → dff4a9d656b84fe3e052.js} +1 -1
  58. package/assets/esri/core/workers/chunks/{12199e8abf377ffc27cd.js → e490f70f192780d7ad50.js} +1 -1
  59. package/assets/esri/core/workers/chunks/f088e7db4e7ac85aaff1.js +1 -0
  60. package/assets/esri/core/workers/chunks/{a38cb1fff519bad8abe3.js → f0d28fe4deb7cd894765.js} +1 -1
  61. package/assets/esri/core/workers/chunks/f52ed527b46c316eb369.js +1 -0
  62. package/assets/esri/core/workers/chunks/{140d0c4285c6978103ea.js → f5ce6af342c02a4b0d15.js} +7 -7
  63. package/assets/esri/core/workers/chunks/{1cbeac3301b6943bb28a.js → fc07d47d44c04f123650.js} +1 -1
  64. package/assets/esri/libs/lyr3d/lyr3DMain.wasm +0 -0
  65. package/assets/esri/libs/lyr3d/lyr3DWorker.wasm +0 -0
  66. package/assets/esri/themes/base/_core.scss +4 -0
  67. package/assets/esri/themes/base/widgets/_BasemapGallery.scss +0 -5
  68. package/assets/esri/themes/base/widgets/_FeatureFormUtilityNetworkAssociationLayers.scss +80 -0
  69. package/assets/esri/themes/base/widgets/_FeatureFormUtilityNetworkAssociationList.scss +14 -0
  70. package/assets/esri/themes/base/widgets/_FeatureFormUtilityNetworkAssociationSettings.scss +41 -0
  71. package/assets/esri/themes/base/widgets/_FilterBuilder.scss +1 -6
  72. package/assets/esri/themes/dark/main.css +1 -1
  73. package/assets/esri/themes/light/main.css +1 -1
  74. package/assets/esri/themes/light/view.css +1 -1
  75. package/chunks/Bufferer-B-V7yYm-.js +5 -0
  76. package/chunks/Distance2DCalculator-Coa0qAFt.js +5 -0
  77. package/chunks/Envelope.js +1 -1
  78. package/chunks/{GeodeticDistanceCalculator-BsWHOuqE.js → GeodeticDistanceCalculator-D4iQ-_NX.js} +1 -1
  79. package/chunks/Geometry.js +1 -1
  80. package/chunks/OperatorClip.js +1 -1
  81. package/chunks/OperatorCut.js +1 -1
  82. package/chunks/OperatorGeneralize.js +1 -1
  83. package/chunks/OperatorGeodesicBuffer.js +1 -1
  84. package/chunks/OperatorGeodeticArea.js +1 -1
  85. package/chunks/OperatorGeodeticDistance.js +1 -1
  86. package/chunks/OperatorMultiPartToSinglePart.js +1 -1
  87. package/chunks/OperatorProximity.js +1 -1
  88. package/chunks/OperatorProximityGeodesic.js +1 -1
  89. package/chunks/OperatorShapePreservingLength.js +1 -1
  90. package/chunks/OperatorShapePreservingProject.js +1 -1
  91. package/chunks/Point2D.js +1 -1
  92. package/chunks/ProjectionTransformation.js +1 -1
  93. package/chunks/QuadraticBezier.js +1 -1
  94. package/chunks/ShadowHighlight.glsl.js +2 -4
  95. package/chunks/SideCalculator2D-BNwb5gvz.js +1 -1
  96. package/chunks/disjointOperator.js +1 -1
  97. package/chunks/distanceOperator.js +1 -1
  98. package/chunks/lyr3DWorker.js +1 -1
  99. package/core/sql.js +1 -1
  100. package/editing/sharedTemplates/SharedTemplate.d.ts +4 -0
  101. package/editing/sharedTemplates/SharedTemplate.js +1 -1
  102. package/editing/sharedTemplates/SharedTemplateMetadata.js +1 -1
  103. package/editing/sharedTemplates/SharedTemplateProvider.js +1 -1
  104. package/editing/sharedTemplates/executor/builders/bufferLineToPolygon.js +1 -1
  105. package/editing/sharedTemplates/executor/builders/bufferPointToPolygon.js +1 -1
  106. package/editing/sharedTemplates/executor/builders/bufferPolygonToPolygon.js +1 -1
  107. package/editing/sharedTemplates/executor/builders/equallySpaced.js +1 -1
  108. package/editing/sharedTemplates/executor/builders/offsetLine.js +1 -1
  109. package/editing/sharedTemplates/executor/builders/offsetPrimaryLine.js +1 -1
  110. package/editing/sharedTemplates/executor/builders/pointAtAllVerticesOfLine.js +1 -1
  111. package/editing/sharedTemplates/executor/builders/pointAtBeginningOfLine.js +1 -1
  112. package/editing/sharedTemplates/executor/builders/pointAtBeginningOfRadial.js +1 -1
  113. package/editing/sharedTemplates/executor/builders/pointAtEndOfLine.js +1 -1
  114. package/editing/sharedTemplates/executor/builders/pointAtInteriorVertices.js +1 -1
  115. package/editing/sharedTemplates/executor/builders/pointAtIntersectionVerticesOfLine.js +1 -1
  116. package/editing/sharedTemplates/executor/builders/pointAtNotBeginningOfLine.js +1 -1
  117. package/editing/sharedTemplates/executor/builders/pointAtNotEndOfLine.js +1 -1
  118. package/editing/sharedTemplates/executor/builders/pointAtPolygonCentroid.js +1 -1
  119. package/editing/sharedTemplates/executor/builders/pointAtPolygonNotStart.js +1 -1
  120. package/editing/sharedTemplates/executor/builders/pointAtPolygonStart.js +1 -1
  121. package/editing/sharedTemplates/executor/builders/pointIdentity.js +1 -1
  122. package/editing/sharedTemplates/executor/builders/pointPrimaryIdentity.js +1 -1
  123. package/editing/sharedTemplates/executor/builders/polygonBoundary.js +1 -1
  124. package/editing/sharedTemplates/executor/builders/polygonBoundaryTwoPoint.js +1 -1
  125. package/editing/sharedTemplates/executor/builders/polygonIdentity.js +1 -1
  126. package/editing/sharedTemplates/executor/builders/polygonPrimaryIdentity.js +1 -1
  127. package/editing/sharedTemplates/executor/builders/polygonVertices.js +1 -1
  128. package/editing/sharedTemplates/executor/builders/support/builderUtils.js +1 -1
  129. package/editing/sharedTemplates/executor/builders/twoPointLines.js +1 -1
  130. package/editing/sharedTemplates/executor/createTemplateExecutor.js +1 -1
  131. package/editing/sharedTemplates/executor/support/createServiceEdit.js +1 -1
  132. package/editing/sharedTemplates/executor/support/executorUtils.js +1 -1
  133. package/editing/sharedTemplates/templateDefinitions/GroupTemplateDefinition.js +1 -1
  134. package/editing/sharedTemplates/templateDefinitions/PresetTemplateDefinition.js +1 -1
  135. package/editing/sharedTemplates/templateDefinitions/parts/builders/builderUtils.js +1 -1
  136. package/editing/templateUtils.js +1 -1
  137. package/geometry/operators/extendOperator.js +1 -1
  138. package/geometry/operators/gx/operatorAlphaShape.js +1 -1
  139. package/geometry/operators/gx/operatorAutoComplete.js +1 -1
  140. package/geometry/operators/gx/operatorBuffer.js +1 -1
  141. package/geometry/operators/gx/operatorGraphicBuffer.js +1 -1
  142. package/geometry/operators/gx/operatorIntegrate.js +1 -1
  143. package/geometry/operators/gx/operatorLabelPoint.js +1 -1
  144. package/geometry/operators/gx/operatorLinesToPolygons.js +1 -1
  145. package/geometry/operators/gx/operatorOffset.js +1 -1
  146. package/geometry/operators/gx/operatorPolygonOverlay.js +1 -1
  147. package/geometry/operators/gx/operatorSimplify.js +1 -1
  148. package/geometry/operators/gx/operatorSymmetricDifference.js +1 -1
  149. package/geometry/operators/gx/operatorUnion.js +1 -1
  150. package/geometry/operators/isNearOperator.js +1 -1
  151. package/geometry/operators/json/disjointOperator.js +1 -1
  152. package/geometry/operators/projectOperator.js +1 -1
  153. package/geometry/operators/reshapeOperator.js +1 -1
  154. package/geometry/operators/shapePreservingProjectOperator.js +1 -1
  155. package/geometry/operators/support/apiConverter.js +1 -1
  156. package/geometry/operators/support/initNoPeFactory.js +1 -1
  157. package/geometry/operators/support/jsonConverter.js +1 -1
  158. package/geometry/support/DoubleArray.js +1 -1
  159. package/geometry/support/UCharArray.js +5 -0
  160. package/geometry/support/UShortArray.js +5 -0
  161. package/interfaces.d.ts +117 -67
  162. package/layers/VectorTileLayer.js +1 -1
  163. package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
  164. package/layers/mixins/operationalLayers.js +1 -1
  165. package/layers/save/featureLayerUtils.js +1 -1
  166. package/layers/save/utils.js +1 -1
  167. package/layers/support/SubtypeSublayer.js +1 -1
  168. package/layers/support/commonProperties.js +1 -1
  169. package/layers/support/rasterFunctions/stretchUtils.js +1 -1
  170. package/layers/support/wmsUtils.js +1 -1
  171. package/networks/Network.js +1 -1
  172. package/networks/RulesTable.js +1 -1
  173. package/networks/UtilityNetwork.js +1 -1
  174. package/networks/support/typeUtils.js +1 -1
  175. package/package.json +3 -3
  176. package/portal/Portal.js +1 -1
  177. package/renderers/support/RasterSymbolizer.js +1 -1
  178. package/rest/print.js +1 -1
  179. package/support/revision.js +1 -1
  180. package/views/2d/engine/webgl/AttributeStoreView.js +1 -1
  181. package/views/2d/engine/webgl/meshing/Mesh.js +1 -1
  182. package/views/2d/engine/webgl/shaderGraph/techniques/line/GradientStrokeTechnique.js +1 -1
  183. package/views/2d/layers/FeatureLayerView2D.js +1 -1
  184. package/views/2d/layers/LayerView2D.js +1 -1
  185. package/views/2d/layers/MapNotesLayerView2D.js +1 -1
  186. package/views/2d/layers/RouteLayerView2D.js +1 -1
  187. package/views/2d/layers/features/FeatureContainer.js +1 -1
  188. package/views/2d/layers/features/FeaturePipelineWorker.js +1 -1
  189. package/views/2d/layers/features/sources/FeatureSource.js +1 -1
  190. package/views/2d/layers/features/sources/strategies/chunks/Overrides.js +1 -1
  191. package/views/2d/layers/features/sources/strategies/chunks/SourceChunkStore.js +1 -1
  192. package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
  193. package/views/2d/layers/support/HighlightCounter.js +1 -1
  194. package/views/3d/environment/ChapmanAtmosphere.js +1 -1
  195. package/views/3d/layers/I3SMeshView3D.js +1 -1
  196. package/views/3d/layers/MediaLayerView3D.js +1 -1
  197. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  198. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  199. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  200. package/views/3d/layers/graphics/Graphics3DLineCalloutSymbolLayer.js +1 -1
  201. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  202. package/views/3d/layers/graphics/GraphicsCorePerformanceInfo.js +1 -1
  203. package/views/3d/layers/i3s/I3SBinaryReader.js +1 -1
  204. package/views/3d/layers/i3s/I3SClientMaterialUtil.js +1 -1
  205. package/views/3d/layers/i3s/I3SIndex.js +1 -1
  206. package/views/3d/layers/i3s/I3SNodeLoader.js +1 -1
  207. package/views/3d/layers/i3s/PointCloudWorkerUtil.js +1 -1
  208. package/views/3d/layers/support/DefinitionExpressionSceneLayerView.js +1 -1
  209. package/views/3d/layers/support/HeatmapFeatureProcessor.js +1 -1
  210. package/views/3d/support/DisplayQualityProfile.js +1 -1
  211. package/views/3d/support/QualitySettings.js +1 -1
  212. package/views/3d/terrain/OverlayManager.js +1 -1
  213. package/views/3d/webgl-engine/effects/haze/Haze.js +1 -1
  214. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  215. package/views/3d/webgl-engine/lib/ShadowMap.js +1 -1
  216. package/views/3d/webgl-engine/lib/TextTextureAtlas.js +1 -1
  217. package/views/3d/webgl-engine/lib/Texture.js +1 -1
  218. package/views/3d/webgl-engine/lib/ViewshedShadowMap.js +1 -1
  219. package/views/3d/webgl-engine/lib/lodRendering/LodResources.js +1 -1
  220. package/views/3d/webgl-engine/lib/textureUtils.js +1 -1
  221. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  222. package/views/SceneView.js +1 -1
  223. package/views/layers/LayerView.js +1 -1
  224. package/views/support/Scheduler.js +1 -1
  225. package/views/webgl/Parameters.js +1 -1
  226. package/views/webgl/RenderingContext.js +1 -1
  227. package/widgets/AreaMeasurement2D/AreaMeasurement2DTool.js +1 -1
  228. package/widgets/AreaMeasurement2D/AreaMeasurement2DViewModel.js +1 -1
  229. package/widgets/AreaMeasurement2D.js +1 -1
  230. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
  231. package/widgets/BatchAttributeForm/ReactiveGraphic.js +1 -1
  232. package/widgets/BatchAttributeForm/inputs/EditableInput.js +1 -1
  233. package/widgets/BatchAttributeForm/inputs/FieldInput.js +1 -1
  234. package/widgets/BatchAttributeForm/inputs/GroupInput.js +1 -1
  235. package/widgets/BatchAttributeForm/inputs/InputBase.js +1 -1
  236. package/widgets/BatchAttributeForm/inputs/support/inputUtils.js +1 -1
  237. package/widgets/BatchAttributeForm/templates/support/createBatchFormTemplate.js +1 -1
  238. package/widgets/BatchAttributeForm.js +1 -1
  239. package/widgets/DistanceMeasurement2D/DistanceMeasurement2DTool.js +1 -1
  240. package/widgets/DistanceMeasurement2D/DistanceMeasurement2DViewModel.js +1 -1
  241. package/widgets/DistanceMeasurement2D.js +1 -1
  242. package/widgets/Editor/AddAssociationWorkflow.js +5 -0
  243. package/widgets/Editor/AddAssociationWorkflowData.js +5 -0
  244. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  245. package/widgets/Editor/CreateFeaturesWorkflowData.js +1 -1
  246. package/widgets/Editor/EditorViewModel.js +1 -1
  247. package/widgets/Editor/UpdateWorkflow.js +1 -1
  248. package/widgets/Editor/UpdateWorkflowData.js +1 -1
  249. package/widgets/Editor/components/PendingFeatureList.js +1 -1
  250. package/widgets/Editor/components/UpdateFeaturePanelContent.js +1 -1
  251. package/widgets/Editor/modelUploadUtils.js +1 -1
  252. package/widgets/Editor/workflowUtils.js +1 -1
  253. package/widgets/Editor.js +1 -1
  254. package/widgets/Feature/FeatureUtilityNetworkAssociationList.js +1 -1
  255. package/widgets/Feature/FeatureUtilityNetworkAssociations.js +1 -1
  256. package/widgets/Feature/FeatureViewModel.js +1 -1
  257. package/widgets/Feature/support/featureUtils.js +1 -1
  258. package/widgets/FeatureForm/FeatureFormUtilityNetworkAssociations/FeatureFormUtilityNetworkAssociationList.js +1 -1
  259. package/widgets/FeatureForm/FeatureFormUtilityNetworkAssociations/UtilityNetworkAssociationItemList.js +5 -0
  260. package/widgets/FeatureForm/FeatureFormUtilityNetworkAssociations/UtilityNetworkAssociationSettings.js +5 -0
  261. package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
  262. package/widgets/FeatureForm/UtilityNetworkAssociationAddAssociationViewModel.js +5 -0
  263. package/widgets/FeatureForm/UtilityNetworkAssociationInput.js +1 -1
  264. package/widgets/FeatureForm.js +1 -1
  265. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  266. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  267. package/widgets/OrientedImageryViewer/constants.js +1 -1
  268. package/widgets/OrientedImageryViewer/galleryUtils.js +5 -0
  269. package/widgets/OrientedImageryViewer/utils.js +1 -1
  270. package/widgets/OrientedImageryViewer.js +1 -1
  271. package/widgets/Sketch/support/sketchUtils.js +1 -1
  272. package/widgets/UtilityNetworkAssociations/UtilityNetworkAssociationsViewModel.d.ts +2 -2
  273. package/widgets/support/FilterBuilder/FilterBuilderViewModel.js +1 -1
  274. package/widgets/support/FilterBuilder.js +1 -1
  275. package/widgets/support/FilterCondition/FilterConditionViewModel.js +1 -1
  276. package/widgets/support/FilterCondition.js +1 -1
  277. package/widgets/support/UtilityNetworkAssociations/FeatureUtilityNetworkAssociationsViewModel.js +5 -0
  278. package/widgets/support/UtilityNetworkAssociations/UtilityNetworkAssociationList.js +1 -1
  279. package/widgets/support/UtilityNetworkAssociations/utilityNetworkUtils.js +1 -1
  280. package/assets/esri/core/workers/chunks/08c4b585290efc98ca5d.js +0 -1
  281. package/assets/esri/core/workers/chunks/117e7a12af77c761efb5.js +0 -1
  282. package/assets/esri/core/workers/chunks/324a5547c64a3bae670d.js +0 -1
  283. package/assets/esri/core/workers/chunks/4be5e453fe54f5631659.js +0 -1
  284. package/assets/esri/core/workers/chunks/5be7cf1564e756c24066.js +0 -1
  285. package/assets/esri/core/workers/chunks/6d79ec15d1858839f576.js +0 -1
  286. package/assets/esri/core/workers/chunks/7966c245a073c85f04b1.js +0 -1
  287. package/assets/esri/core/workers/chunks/8bd51b5b392dfacc922f.js +0 -1
  288. package/assets/esri/core/workers/chunks/9c6380af3bc3130658e1.js +0 -1
  289. package/assets/esri/core/workers/chunks/b18620fc15707e4413a1.js +0 -1
  290. package/assets/esri/core/workers/chunks/b765670b47d209d7655a.js +0 -2
  291. package/assets/esri/core/workers/chunks/c249ad935f54d3b49ae3.js +0 -1
  292. package/assets/esri/core/workers/chunks/c7927c2d5414f19defd5.js +0 -1
  293. package/assets/esri/core/workers/chunks/d27a199fd8e2ade69254.js +0 -1
  294. package/assets/esri/core/workers/chunks/f9070edd8e0b2a57af79.js +0 -1
  295. package/assets/esri/core/workers/chunks/faf9063420262ea40fd8.js +0 -1
  296. package/chunks/Bufferer-DjC-SKTJ.js +0 -5
  297. package/chunks/Distance2DCalculator-8-JrFGHH.js +0 -5
  298. package/editing/sharedTemplates/support/sharedTemplateUtils.js +0 -5
  299. package/widgets/FeatureForm/FeatureFormUtilityNetworkAssociations/FeatureFormUtilityNetworkAssociationSettings.js +0 -5
  300. package/widgets/support/UtilityNetworkAssociations/UtilityNetworkAssociationsViewModel.d.ts +0 -4
  301. package/widgets/support/UtilityNetworkAssociations/UtilityNetworkAssociationsViewModel.js +0 -5
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../Graphic.js";import{isSome as i,equals as a}from"../../core/arrayUtils.js";import{createTask as r}from"../../core/asyncUtils.js";import s from"../../core/Collection.js";import{deprecatedProperty as o}from"../../core/deprecate.js";import n from"../../core/Error.js";import l from"../../core/Evented.js";import c from"../../core/JSONSupport.js";import{equalsShallow as h}from"../../core/lang.js";import u from"../../core/Logger.js";import{clamp as p}from"../../core/mathUtils.js";import{abortMaybe as m,destroyMaybe as d}from"../../core/maybe.js";import g from"../../core/Promise.js";import{isAbortError as y,throwIfAborted as f,waitTick as v}from"../../core/promiseUtils.js";import w from"../../core/ReactiveMap.js";import{on as b,watch as F,syncAndInitial as _,initial as P}from"../../core/reactiveUtils.js";import{sqlAnd as S}from"../../core/sql.js";import{getMetersPerUnitForSR as I}from"../../core/unitUtils.js";import{property as M}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import{subclass as k}from"../../core/accessorSupport/decorators/subclass.js";import{distance as C}from"../../core/libs/gl-matrix-2/math/vec2.js";import{UpdatingHandles as A}from"../../core/support/UpdatingHandles.js";import{union as V}from"../../geometry/geometryEngineAsync.js";import R from"../../geometry/Multipoint.js";import G from"../../geometry/Point.js";import O from"../../geometry/Polygon.js";import j from"../../geometry/Polyline.js";import{projectWithZConversion as z}from"../../geometry/projection.js";import L from"../../geometry/SpatialReference.js";import{isClockwise as x}from"../../geometry/support/coordsUtils.js";import{fromJSON as B}from"../../geometry/support/jsonUtils.js";import{geographicToWebMercator as E}from"../../geometry/support/webMercatorUtils.js";import H from"../../layers/GraphicsLayer.js";import{searchImages as D}from"../../layers/orientedImagery/queries.js";import{calculateSuitabilities as T}from"../../layers/orientedImagery/core/bestImageUtils.js";import{createCoveragePolygon as U,computePolygonForInspection as N,resizePolygon as W,checkIfPolygonContainsSelectedPoint as q}from"../../layers/orientedImagery/core/coverageUtils.js";import{isConstantElevation as $,isElevationSource as J}from"../../layers/orientedImagery/core/ElevationSourceDefinitions.js";import{imageToWorld as Z,imageToWorldPanoramic as K}from"../../layers/orientedImagery/transformations/imageToWorld.js";import Q from"../../layers/orientedImagery/transformations/updateElevation.js";import{getElevationSampler as X}from"../../layers/orientedImagery/transformations/updateElevationUtils.js";import{getInitialAngle as Y,convertPixelToHeadingPitch as ee,getImageToWorldProperties as te,getUpdateElevationProps as ie,isElevationSampler as ae,getImageToWorldPanoramicProperties as re,pointToArray as se,transformGraphicCoordinatesToPixel as oe,getWorldToImageProperties as ne,convertHeadingPitchToSphereVertex as le,or as ce}from"../../layers/orientedImagery/transformations/utils.js";import{worldToImagePanoramic as he,worldToImage as ue}from"../../layers/orientedImagery/transformations/worldToImage.js";import{getFloorFilterClause as pe}from"../../layers/support/floorFilterUtils.js";import me from"../../rest/support/AttachmentQuery.js";import de from"../../symbols/SimpleLineSymbol.js";import ge from"../../views/draw/Draw.js";import{scale as ye}from"../../views/draw/support/drawUtils.js";import{ViewEventPriorities as fe}from"../../views/input/InputManager.js";import ve from"../PanoramicViewer.js";import{invalidCameraHeading as we,sectorsInOrder as be,sectorsRadii as Fe}from"./constants.js";import{configureSketchTool as _e,isValidDigitizationLayer as Pe,extractFieldsFromDigitizationLayer as Se}from"./digitizationUtils.js";import{formatPixels as Ie,heightMeasurement2D as Me,calculateHeightAccuracy as ke,pixelAreaMeasurement2D as Ce,pixelAreaMeasurementPanoramic as Ae,pixelDistanceMeasurement2D as Ve,pixelDistanceMeasurementPanoramic as Re,generateCombinations as Ge,generateCombinationsPanoramic as Oe,calculateTempImagePoint as je,calculateAngle as ze,calculateCorrectedPixel as Le,calculateHeightFromTemporaryDistance as xe}from"./imageMeasurementUtils.js";import{crossSymbol as Be,crossSymbol3D as Ee,measurementPolygonSymbol as He,measurementPolylineSymbol as De,sourcePointSymbol as Te,digitizationSymbol as Ue,diamondSymbol as Ne,diamondSymbol3D as We,activeSourcePointSymbol as qe}from"./symbols.js";import{isNoAttachmentError as $e,getContentType as Je,isTifOrMrf as Ze,filterOILLayerView as Ke,isSceneView as Qe,isGraphic as Xe,calculateSegment as Ye,calculateDirection as et}from"./utils.js";import tt from"./components/ImageViewer.js";const it={click:"view-click",imageClick:"image-click",interactionHandles:"interaction-handles",footprintHandles:"footprint-handles",sketchHandles:"sketch-handles"},at=new Set(["JPG","JPEG"]),rt=/\.(\w+)$/,st=e=>"FA"===e,ot=()=>new n("orientedimageryviewer:sketch-not-initialized","Sketch property is not initialized, call loadSketch first");let nt=class extends(l.EventedMixin(g)){constructor(e){super(e),this.additionalFeatures=new s,this.additionalCameraLocations=new s,this.additionalFootprints=new s,this.areaMeasurementResult=0,this.areaMeasurementAccuracy=0,this.bestFeatureAngle=0,this.bestFeatureCurrentFootprint=null,this.bestFeatureFootprint=null,this.collectionId=null,this.conversionProps=null,this.coverageFrustums=new s,this.coveragePolygons=new s,this.currentBestFeature=null,this.currentBestFeatureLocation=null,this.currentCoverageVisible=!0,this.determineWorkflowForFeature=async(e,t,i)=>{const{currentBestFeature:a,selectedPoint:r,view:s}=this;if(s?.closePopup(),a&&r){this._initialCurrentCoverageUpdate=!0;try{await this._updatePointsAndPolygons(i),await this._loadImage(i)}catch(o){y(o)||(this.loadImageError(o),u.getLogger(this).error("#loadIImage()","error occured while loading image",o))}}},this.disabled=!1,this.displayMessage={key:"onLoadMessage",type:"info"},this.displayNewMeasurementButton=!0,this.distanceMeasurementResult=0,this.distanceAccuracyArray=[],this.digitizationLayer=null,this.features=new s,this.groundCoordinates=null,this.heightMeasurementPixels=[],this.heightGraphic=null,this.heightMeasurementResult=0,this.heightMeasurementAccuracy=0,this.measurementAngle=null,this.tempDistance=null,this.imageGeometryField=null,this.imageLocationToolState=!1,this.isAdditionalCoverageVisible=!1,this.isAdditionalPointSourcesVisible=!1,this.layer=null,this.localPort=null,this.mapImageConversionToolState=!1,this.measureType=null,this.measurementGraphic=null,this.navigatorCurrentBestFeature=null,this.oiObjectIdField=null,this.overlayedCameraLocations=new s,this.overlayedMapFeatures=new w,this.pixelCoordinates=null,this.pointSources=new s,this.previousFeatureAngle=0,this.selectedPoint=null,this.shouldShowSelectedImage=!1,this.sketch=null,this.draw=null,this.sketchAdapter=null,this.updateFootprint=async(e,t)=>{"image-loaded"===this.state&&await(this._adapter?.updateFootprint(e,t))},this.updateFootprintPanorama=async(e,t)=>{await(this._adapter?.updateFootprintPanorama(e,t))},this._adapter=null,this._highlightedFeatureHandle=null,this._imageViewer=new tt,this._initialCurrentCoverageUpdate=!0,this._overlays=new H({listMode:"hide",internal:!0,elevationInfo:{mode:"absolute-height"}}),this._panoramicViewer=new ve,this._referencePointOnGround=null,this._referencePointOnImage=null,this._sectorData=null,this._updatingHandles=new A,this._clickTask=null,this._crossSymbol=null,this.footprintExtent=null,this._featureChangedTask=null,this._openPopupTask=null,this._suitabilities=null,this._transformController=new AbortController,this._updateFootprintTask=null,this.hideImageGeometry=e=>{},this.highlight=e=>{if(!this._overlaysView)return;this.removeHighlight();const t=this.additionalFootprints.find((({attributes:{imageID:t}})=>t===Number(e)));this._highlightedFeatureHandle=t?this._overlaysView?.highlight(t):null},this.loadDigitizationAdapter=async e=>{const{sketchAdapter:t}=this;if(await this.loadSketch(e),"digitization"===t?.type)return t;const i=import("./adapters/sketch/DigitizationAdapter.js"),{default:a}=await i;return f(e),this.sketchAdapter=new a({viewModel:this}),this.sketchAdapter},this.loadImageFromSource=async(e,t)=>this._updatingHandles.addPromise(this._loadImageFromSourceInternal(e,t)),this.loadImageViewer=e=>{this._imageViewer.container=e},this.loadPanoramicViewer=e=>{this._panoramicViewer.container=e},this.removeHighlight=()=>this._highlightedFeatureHandle?.remove(),this.revealImageGeometry=e=>{},this.toggleImageAttributes=()=>{m(this._openPopupTask),this._openPopupTask=r((async e=>{const{currentBestFeature:i,popupEnabled:a,layer:r,view:s}=this;if(s?.closePopup(),!(s&&i&&a&&r))return;const{attributes:o,geometry:n}=i,l=new t({geometry:n,attributes:o.toJSON(),layer:r});f(e),await s.openPopup({features:[l],location:o.location.clone()})}))},this._createViewClickHandle=()=>{if(this.removeHandles(it.click),"disabled"===this.state||null==this.view)return;const e=this.mapImageConversionToolState&&"image-loaded"===this.state?this._mapImageConversionToolViewClickHandler:this._viewClickHandler;this.addHandles(this.view.on("click",e,fe.WIDGET),it.click)},this._createImageClickHandle=()=>{this.removeHandles(it.imageClick);const{mapImageConversionToolState:e,mode:t,activeViewer:i,currentBestFeature:a,footprintExtent:s}=this,o=i?.imageSize;if(!(e&&"none"!==t&&o&&s&&a))return;i.clickAction="pixel-location";let n=null;const l=b((()=>i),"pixel-location",(e=>{this.plotReferencePointOnImage(e),n?.abort(),n=r((async i=>{if(!e)return;const r=await this.getMapPoint(e,{feature:a,imageSize:o,mode:t}).then((e=>{const t=this.view?.spatialReference;return ce(!t,e.spatialReference.equals(t))?e:z(e,t)}));f(i),this.plotReferencePointOnGround(r)}))}));this.addHandles(l,it.imageClick)},this._createImageLocationHandle=()=>{this.removeHandles(it.imageClick);const{imageLocationToolState:e,mode:t,activeViewer:i,currentBestFeature:a,footprintExtent:s}=this,o=i?.imageSize;if(!(e&&"none"!==t&&o&&s&&a))return;i.clickAction="pixel-location";let n=null;const l=b((()=>i),"pixel-location",(e=>{this.pixelCoordinates=e,n?.abort(),n=r((async i=>{if(!e)return;let r=await this.getMapPoint(e,{feature:a,imageSize:o,mode:t});f(i);const s=this.view?.spatialReference;s&&!r.spatialReference.equals(s)&&(r=await z(r,s),f(i)),this.groundCoordinates=r}))}));this.addHandles(l,it.imageClick)},this._getImageSourceFromAttachment=async(e,t,i)=>{const a=new me({objectIds:[t]}),r=await e.queryAttachments(a,i),s=r[`${t}`]?.[0],o=s?.url;if(!o)throw new n("NoAttachmentError","no attachments found",{[e.objectIdField]:t,layer:e});return{datasetFormat:s.contentType.split("/")[1].toUpperCase(),url:o}},this._loadImage=async e=>{const{currentBestFeature:t,layer:i,mode:a}=this;if(this.clearGraphics(),!i||!t||"none"===a)return;const{attributes:r}=t,{imagePath:s,imageRotation:o,cameraHeading:n,cameraRoll:l,cameraPitch:c,objectId:h,cameraOrientation:p,location:m}=r,d=(l??0)+(o??0),g=m.spatialReference.isWGS84&&4!==p?.type?E(m):new G(m);let v=s;if(st(s))try{v=await this._getImageSourceFromAttachment(i,h,e)}catch(w){if(y(w))return;return $e(w)?(u.getLogger(this).error(w),void this.setMessage("noAttachment","error",`${i.objectIdField}: ${h}`)):(u.getLogger(this).error(w,{[i.objectIdField]:h,layer:i}),void this.setMessage("imageLoadError","error",`query-attachments-failed:${i.objectIdField} ${h}`))}try{await this.loadImageFromSource(v,{imageRotation:d,options:e,pitch:c,yaw:n,mode:a,cameraLocation:g}),f(e),await this.transformAndPlotSelectedLocation(e)}catch(w){y(w)||this.loadImageError(w)}},this._loadImageFromSourceInternal=async(e,t)=>{const{mode:i,imageRotation:a,options:r}=t,s="string"==typeof e,o=s?e:e.url,{pathname:n,searchParams:l}=new URL(o);let c=s?n.match(rt)?.[1]:e.datasetFormat;if(!c){const e=await Je(o,{...t.options});c=e?.split("/")[1]??"UNKNOWN FORMAT"}switch(i){case"default":this._imageViewer.imageSource={datasetFormat:c.toUpperCase(),url:o.split("?")[0]},this._imageViewer.customParameters=Object.fromEntries(l),this._imageViewer.imageRotation=a??0,await this._imageViewer.loadImage(r);break;case"panoramic":if(at.has(c.toUpperCase())){const{selectedPoint:e}=this,{pitch:i,yaw:a,cameraLocation:s,viewAngle:n}=t;this._panoramicViewer.imageSource=o;let l=a??0;"number"==typeof n?l=n-l:s&&e&&(l=await Y(s,e)-l),this._panoramicViewer.pitch=i??0,this._panoramicViewer.yaw=l,await this._panoramicViewer.loadImage(r)}else this.setMessage("unsupportedPanoramicImageryError","error",void 0,{datasetFormat:c});break}},this._loadViewAdapter=async e=>{const{view:t}=this;if(t)switch(t.type){case"2d":{const{default:t}=await import("./adapters/view/MapViewAdapter.js");f(e),this._adapter=new t(this);break}case"3d":{const{default:t}=await import("./adapters/view/SceneViewAdapter.js");f(e),this._adapter=new t(this);break}}else this._adapter=null},this._mapImageConversionToolViewClickHandler=e=>{e.stopPropagation(),e.preventDefault(),e.mapPoint&&this.plotMapPoint(e.mapPoint)},this._viewClickHandler=e=>{this._clickTask?.abort(),this._clickTask=r((async t=>{const{pointerType:i,button:a,mapPoint:r}=e;if(("mouse"!==i||0===a)&&r)return e.stopPropagation(),e.preventDefault(),this._updatingHandles.addPromise(this.loadBestImage(r,{signal:t}))}))},this.plotSelectedPointOnImage=async(e,i)=>{if(await v(i),!e)return;const a=new G({...c.isSerializable(e)?e.toJSON():e});if("default"===this.mode)a.x-=.5,a.y=.5-a.y,a.spatialReference=this._imageViewer.imageRenderer.spatialReference.clone(),this._crossSymbol=new t({geometry:a,symbol:Be}),this._imageViewer.addGraphic(this._crossSymbol,0);else if("panoramic"===this.mode){const{imageSize:i}=this._panoramicViewer;if(!i)return;const[a,r]=i,{heading:s,pitch:o}=ee(e,a,r),n=le(s,o);this._crossSymbol=new t({geometry:new G(n,L.WebMercator),symbol:Ee}),this._panoramicViewer.addGraphic(this._crossSymbol,0)}},this.handleSectorClick=this.handleSectorClick.bind(this),this.searchBestImage=this.searchBestImage.bind(this),this.transformAndPlotReferencePointOnImage=this.transformAndPlotReferencePointOnImage.bind(this),this.updateSuitabilities=this.updateSuitabilities.bind(this),this.selectBestFeature=this.selectBestFeature.bind(this)}initialize(){this.addHandles([F((()=>this.view),(()=>{this.load()}),_),F((()=>this.view?.map),((e,t)=>{t?.layers.remove(this._overlays),e?.layers.add(this._overlays)}),P),F((()=>this.view?.map?.allLayers?.length),(e=>{e&&this.view?.map?.layers.reorder(this._overlays,e-1)}),P),F((()=>[this.state,this.mapImageConversionToolState,this.view]),(()=>{this._createViewClickHandle(),this._createImageClickHandle()}),_),F((()=>[this.state,this.imageLocationToolState,this.view]),(()=>{this.imageLocationToolState||this.clearPreviousGroundLocation(),this._createImageLocationHandle()}),_),F((()=>this.measureType),(()=>{this.clearPreviousMeasurements()}),_),F((()=>this.bestFeatureAngle),((e,t)=>{this.previousFeatureAngle=t??0}),_),F((()=>this.currentBestFeature),(async(e,t)=>{m(this._featureChangedTask),this._featureChangedTask=r((async i=>this.determineWorkflowForFeature.apply(this,[e,t,{signal:i}]))),await this._featureChangedTask.promise}),{sync:!0}),F((()=>this.mode),(e=>{switch(this.removeHandles(it.interactionHandles),e){case"default":this.addHandles(F((()=>this._imageViewer.imagePointsInView),(e=>{e&&(m(this._updateFootprintTask),this._updateFootprintTask=r((async t=>{await this.updateFootprint(e,{signal:t})})))}),{..._,equals:(e,t)=>a(e,t,h)}),it.interactionHandles);break;case"panoramic":this.addHandles(F((()=>{const{currentBestFeature:e,state:t}=this,{imageSize:i,vfov:a,hfov:r,pitch:s,yaw:o}=this._panoramicViewer;return e&&i&&"image-loading"!==t?[a,r,o,s]:null}),(e=>{if(!e||"image-loading"===this.state)return;const[t,i,a,s]=e;m(this._updateFootprintTask),this._updateFootprintTask=r((async e=>{await this.updateFootprintPanorama({verticalFieldOfView:t,horizontalFieldOfView:i,yaw:a,pitch:s},{signal:e})}))}),{..._,equals:(e,t)=>a(e,t,h)}),it.interactionHandles)}}),_),F((()=>[this.brightness,this.contrast,this.sharpness]),(()=>{const{_imageViewer:e,brightness:t,contrast:i,mode:a,sharpness:r}=this;"default"===a&&(e.brightness=t,e.contrast=i,e.sharpness=r)}),_),F((()=>this.activeViewer?.imageRenderer),(()=>{this.sketch&&(this.sketch.view=this.activeViewer?.imageRenderer)}))]),this.when().finally((()=>{this.notifyChange("state")}))}destroy(){this._updateFootprintTask=m(this._updateFootprintTask),this._clickTask=m(this._clickTask),this.coverageFrustums.destroy(),this.coveragePolygons.destroy(),this.pointSources.destroy(),this.additionalFootprints.destroy(),this.additionalCameraLocations.destroy(),this.bestFeatureFootprint=d(this.bestFeatureFootprint),this.bestFeatureCurrentFootprint=d(this.bestFeatureCurrentFootprint),this._crossSymbol=d(this._crossSymbol),this._referencePointOnGround=d(this._referencePointOnGround),this._referencePointOnImage=d(this._referencePointOnImage),this._overlays&&this.view?.map?.remove(this._overlays),this._overlays.destroy(),this._imageViewer.destroy(),this._panoramicViewer.destroy()}get activeLayer(){return o(u.getLogger(this),"activeLayer",{replacement:"layer"}),this.layer}set activeLayer(e){o(u.getLogger(this),"activeLayer",{replacement:"layer"}),this.layer=e}get activeViewer(){const{_imageViewer:e,_panoramicViewer:t,mode:i}=this;switch(i){case"default":return e;case"panoramic":return t;default:return null}}get accuracyParametersMissing(){return this.layer?.orientationAccuracy?.every((e=>0===e))??!0}get brightness(){return this._get("brightness")??0}set brightness(e){this._set("brightness",p(e,-10,10))}get contrast(){return this._get("contrast")??0}set contrast(e){this._set("contrast",p(e,-10,10))}get featureCount(){return this.features?.length??0}get imageGalleryEnabled(){return Ze(this.currentBestFeature?.attributes.imagePath.trim())}get imageLoaded(){return o(u.getLogger(this),"imageLoaded",{replacement:'Use OrientedImageryViewer.state === "image-loaded"',version:"4.29",warnOnce:!0}),"image-loaded"===this.state}get invalidCameraHeading(){return this.currentBestFeature?.attributes?.cameraHeading===we}get imagePointsInView(){const{mode:e,_imageViewer:t}=this;return"default"===e?t.imagePointsInView:null}get layerView(){const{layer:e,view:t}=this;if(e&&t)return t.allLayerViews.find(Ke(e))}get layerFloorFilterClause(){const{layerView:e}=this;return e?pe(e):null}get mode(){const e=this.currentBestFeature?.attributes;if(!e)return"none";const{horizontalFieldOfView:t,isSpherical:i}=e;return 360===t||i?"panoramic":"default"}get popupEnabled(){return!0===this.layer?.popupEnabled}get referencePoint(){return this._referencePointOnGround?.geometry}get sectorData(){const{_sectorData:e}=this;return e?be.map((t=>e[t])):null}get sharpness(){return this._get("sharpness")??0}set sharpness(e){this._set("sharpness",p(e,0,1))}get sketchGraphicsLayer(){return this.sketch?.layer}get state(){const{mode:e,disabled:t}=this;if(t)return"disabled";if(!this.isFulfilled())return"loading";if(this.isRejected())return"error";if(this._updatingHandles.updating)return"image-loading";if("error"===this.displayMessage?.type)return"image-load-error";switch(e){case"default":return this._imageViewer.state;case"panoramic":return this._panoramicViewer.state}return"ready"}get thumbnails(){const{features:e}=this;return e?new s(e.map((({attributes:{imagePath:e,objectId:t,cameraRoll:i,imageRotation:a}})=>{const r=e.trim();return Ze(r)?{url:r,objectId:t,rotation:(i??0)+(a??0)}:null})).filter(i)):null}set view(e){this._set("view",e)}get _sketchGraphicsLayer(){const{mode:e}=this;switch(e){case"panoramic":return new H({elevationInfo:{mode:"absolute-height"}});case"default":return new H;case"none":return}}get _overlaysView(){return this.view?.layerViews.find((({layer:e})=>e===this._overlays))}async computeHeight(e,t=!0){const{currentBestFeature:i,activeViewer:a,layer:r}=this,s=a?.imageSize,o=i?.attributes,n=r?.orientationAccuracy;if(!o||!s||!e||e.length<2||!n)return;const l=te(o,s[0],s[1]),c=e.at(0),h=e.at(-1);if(!c||!h||!n)return;const u=[h,c],p=Ie(u,!1),m=await Me(u,l,n,!0,t);if(!m)return;const d=await ke(n,p,l,m,!0);return d?{value:m,accuracy:d}:{value:m}}async calculateAreaMeasurement(e,t,i){if(e.length<3||!this.currentBestFeature||!this.activeViewer?.imageSize||"none"===t)return null;const a="default"===t?await this.getMeasurementProperties():await this.getMeasurementPropertiesPanoramic();return f(i),a?"default"===t?await Ce(e,a,!0):await Ae(e,a,!0,i):null}async calculateDistanceMeasurement(e,t,i){const{currentBestFeature:a,activeViewer:r}=this;if(e.length<2||!a||!r?.imageSize||"none"===t)return null;const s="default"===t?await this.getMeasurementProperties():await this.getMeasurementPropertiesPanoramic();return f(i),s?"default"===t?await Ve([e.at(0),e.at(-1)],s,!0):await Re([e.at(0),e.at(-1)],s,!0):null}async calculateAccuracy(e,t,i){const{layer:a,currentBestFeature:r,activeViewer:s}=this,o=a?.orientationAccuracy,n=o?.every((e=>0===e))||!o?.length;if("area"===t&&e.length<3||"distance"===t&&e.length<2||!r||!s?.imageSize||n)return null;const l=await this.getMeasurementProperties();if(f(i),!l)return null;const c="area"===t?await Ce(e,l,!0):await Ve([e.at(0),e.at(-1)],l,!0);f(i);const{updateElevationProps:h,...u}=l,p=Ge(u,o);if(!p?.length)return null;const m=p.map((e=>({...e,updateElevationProps:h}))).map((async a=>{const r="area"===t?await Ce(e,a,!0):await Ve([e.at(0),e.at(-1)],a,!0);if(f(i),r&&c){if("area"===t){const e="number"!=typeof r?r.area:null;return e?Math.abs(e-c.area):null}return Math.abs(r-c)}return null})),d=await Promise.all(m);f(i);const g=d.filter((e=>null!==e));if(0===g.length)return null;return Math.max(...g.map((e=>e)))}async calculateAccuracyPanoramic(e,t,i){const{layer:a,currentBestFeature:r,activeViewer:s,mode:o}=this,n=a?.orientationAccuracy,l=n?.every((e=>0===e))||!n?.length;if("area"===t&&e.length<3||"distance"===t&&e.length<2||!r||!s?.imageSize||l||"panoramic"!==o)return null;const c=await this.getMeasurementPropertiesPanoramic();if(f(i),!c)return null;const h="area"===t?await Ae(e,c,!0):await Re([e.at(0),e.at(-1)],c,!0);f(i);const{updateElevationProps:u,...p}=c,m=Oe(p,n);if(!m?.length)return null;const d=m.map((e=>({...e,updateElevationProps:u}))).map((async a=>{const r="area"===t?await Ae(e,a,!0):await Re([e.at(0),e.at(-1)],a,!0);if(f(i),r&&h){if("area"===t){const e="number"!=typeof r?r.area:null;return e?Math.abs(e-h.area):null}return Math.abs(r-h)}return null})),g=await Promise.all(d);f(i);const y=g.filter((e=>null!==e));if(0===y.length)return null;return Math.max(...y.map((e=>e)))}async calculateHeightMeasurementInfo(e,t){const{currentBestFeature:i,activeViewer:a}=this,r=a?.imageSize;if(!i||!a||!r?.length)return;const{attributes:s}=i,[o]=Ie([e],!0),n=te(s,r[0],r[1]),l=await je(o,n,t);if(!l)return;const c=ze(o,l),h=C([o.x,o.y],[l.x,l.y]);return c&&h?{measurementAngle:c,tempDistance:h}:void 0}clearPreviousMeasurements(){this.clearMeasurementGraphics(),this.resetMeasurementData(),this.stopMeasurement()}clearPreviousGroundLocation(){this.groundCoordinates=null,this.pixelCoordinates=null}clearMeasurementGraphics(){this.measurementGraphic&&(this.activeViewer?.removeGraphic(this.measurementGraphic),this.measurementGraphic=null),this.heightGraphic&&(this.activeViewer?.removeGraphic(this.heightGraphic),this.heightGraphic=null)}digitizeCancel(){return this.sketch?.cancel()}digitizeCanRedo(){return this.sketch?.canRedo()??!1}digitizeCanUndo(){return this.sketch?.canUndo()??!1}digitizeComplete(){return this.sketch?.complete()}async digitizeCreate(e,t){const{sketch:i,digitizationLayer:a}=this;if(!i)throw ot();_e(a,e,i),await i.create(e,{...t,defaultZ:0})}async digitizeDelete(){if(!this.sketch)throw ot();return this.sketch.delete()}digitizeDuplicate(){if(!this.sketch)throw ot();return this.sketch.duplicate()}digitizePlace(e,t){if(!this.sketch)throw ot();return this.sketch.place(e,t)}digitizeRedo(){if(!this.sketch)throw ot();return this.sketch.redo()}digitizeUndo(){if(!this.sketch)throw ot();return this.sketch.undo()}digitizeUpdate(e,t){if(!this.sketch)throw ot();return this.sketch.update(e,t)}async displayHeightResults(){const{currentBestFeature:e,activeViewer:t,heightMeasurementPixels:i}=this,a=t?.imageSize,r=e?.attributes;if(!r||!a)return;const s=await this.computeHeight(i);s?.value&&s?.accuracy&&(this.heightMeasurementResult=s.value,this.heightMeasurementAccuracy=s.accuracy)}filterByFootprints(e,t){const i=[],a=[],r=[];return e.forEach((e=>{const{layer:{coveragePercent:s},attributes:o}=e;let n;const l=I(e.geometry.spatialReference);o.cameraHeight/=l,o.farDistance/=l,o.nearDistance/=l,$(o.elevationSource)&&(o.elevationSource.constantElevation/=l);const{polygon:c,frustum:h}=U(o);if(n=c.clone(),o.isInspection&&(n=N(o)),s&&(n=W(n,s)),q(n,t)){r.push(e);const{geometry:t,objectId:s,cameraHeight:n,cameraHeading:l}=o,u=t.clone();u.z=n,u.imageID=s,this.pointSources.push(u),l!==we&&(i.push(c),h&&a.push(h))}})),{features:r,polygons:i,frustums:a}}getMeasurementProperties(){const{currentBestFeature:e,activeViewer:t}=this;if(!e||!t?.imageSize)return;const{elevationSample:i,attributes:a}=e,{elevationSource:r,cameraHeight:s}=a,o=te(a,t.imageSize[0],t.imageSize[1]);let n=o.cameraLocation;return(n.spatialReference.isGeographic?z(n,L.WebMercator):Promise.resolve(n)).then((e=>(n=e,ie((n.z??0)-s,{elevationSample:i,elevationSource:r,extent:this.footprintExtent})))).then((t=>("elevationSample"in t&&ae(t.elevationSample)&&(e.elevationSample=t.elevationSample),{...o,cameraLocation:n,updateElevationProps:t})))}getMeasurementPropertiesPanoramic(){const{currentBestFeature:e,activeViewer:t}=this;if(!e||!t?.imageSize)return;const{elevationSample:i,attributes:a}=e,{elevationSource:r,cameraHeight:s}=a,o=re(a,t.imageSize[0],t.imageSize[1]);let n=o.cameraLocation;return(n.spatialReference.isGeographic?z(n,L.WebMercator):Promise.resolve(n)).then((e=>(n=e,ie((n.z??0)-s,{elevationSample:i,elevationSource:r,extent:this.footprintExtent})))).then((t=>("elevationSample"in t&&ae(t.elevationSample)&&(e.elevationSample=t.elevationSample),{...o,cameraLocation:n,updateElevationProps:t})))}async deleteDigitizedFeatures(e){const{digitizationLayer:t}=this;if(!t)throw new n("Digitization layer is not available");return t.queryFeatures({objectIds:e}).then((({features:e})=>t.applyEdits({deleteFeatures:e})))}handleSectorClick(e){if(isNaN(e))return;const t=this._sectorData?.[be[e]];t?.length&&this._updateCurrentBestFeature(t.at(0))}handleFeatureClick(e){const{sector:t,featureIndexInSector:i}=e;if(isNaN(i))return;const a=this._sectorData?.[t];a?.length&&this._updateCurrentBestFeature(a.at(i))}handleDrawCursorUpdateEvents(e){const{measurementAngle:t,tempDistance:i,heightMeasurementPixels:a}=this;if(!e.vertices)return;const r=e.vertices.at(-1);if(a.length<1||!r||!i||!t)return;const s=Le(a[0],r,t);if(!s?.length)return;this.heightMeasurementPixels.push(s),this.createPolylineGraphic();const o=xe(this.heightMeasurementPixels,i);o&&(this.heightMeasurementResult=o)}async handleDrawVertexAddEvents(e,t){const{currentBestFeature:i,activeViewer:a,heightMeasurementPixels:r}=this;if(!i||!a||!e.vertices?.length)return;const s=a?.imageSize;if(!r.length&&s){const i=e.vertices.at(-1);this.heightMeasurementPixels.push(i);const a=await this.calculateHeightMeasurementInfo(i,t);if(!a?.measurementAngle||!a?.tempDistance)return;this.measurementAngle=a.measurementAngle,this.tempDistance=a.tempDistance}}async load(e){return this.addResolvingPromise(this._loadViewAdapter(e).catch((e=>{if(!y(e))throw e}))),this}async loadBestImage(e,t){return this.view?.closePopup(),this.displayMessage=null,this.clearPreviousGroundLocation(),this.imageLocationToolState=!1,this.selectedPoint=e.spatialReference.isGeographic?E(e):e.clone(),this.features.removeAll(),this.currentBestFeature=null,this.additionalFeatures.removeAll(),this.additionalFootprints.removeAll(),this.additionalCameraLocations.removeAll(),this.bestFeatureCurrentFootprint=d(this.bestFeatureCurrentFootprint),this._overlays?.removeAll(),this._fetchFeaturesWithController(e,t)}loadImageError(e){u.getLogger(this).error("oriented-imagery-viewer:load-image",e),this.setMessage("imageLoadError","error",e.message)}async loadSketch(e){if(!this.sketch){const t=import("../Sketch/SketchViewModel.js"),{default:i}=await t;f(e),this.sketch=new i({layer:this._sketchGraphicsLayer,view:this.activeViewer?.imageRenderer,updateOnGraphicClick:!1,defaultUpdateOptions:{reshapeOptions:{edgeOperation:"none",shapeOperation:"none",vertexOperation:void 0},enableMoveAllGraphics:!1,enableRotation:!1,enableScaling:!1,multipleSelectionEnabled:!1,toggleToolOnClick:!1,tool:"transform"}})}return this.sketch}async loadMeasurementAdapter(e){if(!this.sketchAdapter){const t=import("./adapters/sketch/MeasurementAdapter.js"),{default:i}=await t;if(f(e),this.sketchAdapter=new i({viewModel:this}),!this.sketchAdapter.viewModel.isResolved())return}return this.sketchAdapter}async startMeasurement(e,t){await this.loadSketch(t),await this.loadMeasurementAdapter(t);const{sketch:i,sketchAdapter:a,activeViewer:r,mode:s}=this;if(!i||!a||!r||"none"===s)return;if(this.displayNewMeasurementButton=!1,"panoramic"===s&&(i.defaultCreateOptions.defaultZ=0),await i.create(e),"panoramic"===s){const{drawOperation:e}=i.view.activeTool;e.constraintsEnabled=!1,e._set("elevationDrawSurface",null)}const o=this.activeViewer?.imageRenderer.effectiveTheme.accentColor;o&&this.sketch&&(this.sketch.polygonSymbol=He(o),this.sketch.polylineSymbol=De(o))}startHeightMeasurement(){this.heightMeasurementPixels=[],this.displayNewMeasurementButton=!1,this.draw??=new ge({view:this.activeViewer?.imageRenderer});this.draw.create("polyline").on(["cursor-update","vertex-add","draw-complete"],(e=>this.handleDrawEvents(e)))}createPolylineGraphic(){const e=[this.heightMeasurementPixels[0],this.heightMeasurementPixels.at(-1)],i=this.activeViewer?.imageRenderer.spatialReference;if(this.heightGraphic)this.heightGraphic.geometry=new j({paths:[e],spatialReference:i});else{const a=new j({paths:[e],spatialReference:i}),r=this.activeViewer?.imageRenderer.effectiveTheme.accentColor;this.heightGraphic=new t({geometry:a,symbol:De(r,2.5)}),this.activeViewer?.addGraphic(this.heightGraphic)}}async handleDrawEvents(e,t){if(this.draw)switch(e.type){case"cursor-update":this.handleDrawCursorUpdateEvents(e);break;case"vertex-add":this.handleDrawVertexAddEvents(e,t);break;case"draw-complete":await this.displayHeightResults()}}initializeMeasurement(e){switch(this.clearMeasurementGraphics(),this.resetMeasurementData(),e){case"distance":this.startMeasurement("polyline");break;case"area":this.startMeasurement("polygon");break;case"height":this.startHeightMeasurement()}}async overlayCameraLocations(e){const{activeViewer:i,currentBestFeature:a,overlayedCameraLocations:r,layer:s,mode:o,state:n}=this,l=i?.imageSize;if(!l||!a||!s||"none"===o||n.includes("loading"))return;const{polygon:c}=U(a.attributes);if(i.removeManyGraphics(r.toArray()),r.removeAll(),e){const{features:e}=await s.queryFeatures({where:`${s.objectIdField} <> ${a.attributes.objectId}`,geometry:c,returnGeometry:!0,outFields:[s.objectIdField]}),n=await Promise.all(e.map((async e=>{const{attributes:i,geometry:r}=e,s=await this.getPixels(r,{feature:a,imageSize:l,mode:o}),n=Te.clone();return n.outline=new de({color:[0,0,0],width:1}),new t({attributes:i,symbol:n,geometry:s})})));r.addMany(n),i.addManyGraphics(r.toArray())}}overlayGraphicsOnImage(e,t){this.removeOverlayedGraphicsOnImage(e),this.overlayedMapFeatures.set(e,t),this.activeViewer?.addManyGraphics(t.toArray())}async overlayMapFeatures(e,a=!1){const{activeViewer:r,currentBestFeature:o,mode:n,state:l}=this,c=r?.imageSize;if(!c||!o||"none"===n||l.includes("loading"))return;const{polygon:h}=U(o.attributes),p=Pe(e);try{const{imageGeometryField:t,oiObjectIdField:i}=Se(e);this.imageGeometryField=t.name,this.oiObjectIdField=i.name}catch(g){u.getLogger(this).warn("oriented-imagery-viewer:overlay-map-features",g)}const{features:m}=await e.queryFeatures({geometry:h,returnGeometry:!0,outFields:["*"]}),d=new s((await Promise.all(m.map((async i=>{const r=i.symbol?.clone()??e.renderer?.getSymbol(i)?.clone(),{attributes:s,geometry:l}=i;let h=l;if(p&&this.imageGeometryField&&this.oiObjectIdField){if(s[this.oiObjectIdField]===`${o.attributes.objectId}`)return h=B(JSON.parse(atob(s[this.imageGeometryField]))),new t({attributes:s,layer:e,symbol:h.type===e.geometryType?r:Ue(h.type)?.()??null,geometry:h,visible:e.visible&&a})}switch(h?.type){case"point":{const i=await this.getPixels(h,{feature:o,imageSize:c,mode:n});return new t({attributes:s,layer:e,symbol:r,geometry:i,visible:e.visible&&a})}case"polygon":{const{rings:i,spatialReference:l}=h,u=i.map((e=>e.map((([e,t,i])=>new G({x:e,y:t,z:i,spatialReference:l}))))),p=await Promise.all(u.map((async e=>this.getPixels(e,{feature:o,imageSize:c,mode:n}).then((e=>e.map(se))))));return new t({attributes:s,layer:e,symbol:r,geometry:new O({rings:p,spatialReference:L.WebMercator}),visible:e.visible&&a})}case"polyline":{const{paths:i,spatialReference:l}=h,u=i.map((e=>e.map((([e,t,i])=>new G({x:e,y:t,z:i,spatialReference:l}))))),p=await Promise.all(u.map((async e=>this.getPixels(e,{feature:o,imageSize:c,mode:n}).then((e=>e.map(se))))));return new t({attributes:s,layer:e,symbol:r,geometry:new j({paths:p,spatialReference:L.WebMercator}),visible:e.visible&&a})}case"multipoint":{const{points:i,spatialReference:l}=h,u=i.map((([e,t,i])=>new G({x:e,y:t,z:i,spatialReference:l}))),p=await this.getPixels(u,{feature:o,imageSize:c,mode:n}).then((e=>e.map(se)));return new t({attributes:s,layer:e,symbol:r,geometry:new R({points:p,spatialReference:L.WebMercator}),visible:e.visible&&a})}}return null})))).filter(i));this.overlayGraphicsOnImage(`${e.id}`,d)}async getPixels(e,t){const{imageSize:i,mode:a}=t,r=(await this.worldToImage(Array.isArray(e)?e:[e])).map((e=>{if("default"===a)return new G({x:e.x-.5,y:.5-e.y,spatialReference:L.WebMercator});const[t,r]=i,{heading:s,pitch:o}=ee(e,t,r),n=le(s,o);return new G(n,L.WebMercator)}));return Array.isArray(e)?r:r[0]}async getMapPoint(e,t){const{feature:i,mode:a,imageSize:r}=t,{elevationSample:s,attributes:o}=i,{elevationSource:n,location:l,elevation:c,cameraHeight:h}=o;let u=l.clone();u.spatialReference.isGeographic&&(u=await z(u,L.WebMercator));const p=await ie(c??(l.z??0)-h,{elevationSample:s,elevationSource:n,extent:this.footprintExtent});let m;if("elevationSample"in p&&ae(p.elevationSample)&&(i.elevationSample=p.elevationSample),"default"===a){const t=te(o,r[0],r[1]);m=await Z(Array.isArray(e)?e:[e],{...t,cameraLocation:u},p)}else{const t=re(o,r[0],r[1]);m=await K(Array.isArray(e)?e:[e],{...t,cameraLocation:u},p)}return Array.isArray(e)?m:m[0]}async plotMapPoint(e){return this.plotReferencePoint(e),this.transformAndPlotReferencePointOnImage({feature:this.currentBestFeature,selectedLocation:e,options:{signal:this._transformController?.signal}})}plotReferencePointOnGround(e){this._referencePointOnGround&&(this._overlays?.remove(this._referencePointOnGround),this._referencePointOnGround.destroy()),null!=e&&(this._referencePointOnGround=new t({geometry:new G({...e.toJSON()}),symbol:Ne}),this.view?this._overlays?.add(this._referencePointOnGround):this.emit("plot-ground-point",{data:{point:this._referencePointOnGround?.geometry}}))}plotReferencePointOnImage(e){if("image-loaded"===this.state)switch(this.clearReferencePointOnImage(),this.mode){case"default":{const i=c.isSerializable(e)?e.toJSON():e;i.x-=.5,i.y=.5-i.y,this._referencePointOnImage=new t({geometry:new G({spatialReference:this._imageViewer.imageRenderer.spatialReference.clone(),...i}),symbol:Ne}),this._imageViewer.addGraphic(this._referencePointOnImage,0);break}case"panoramic":{const{imageSize:i}=this._panoramicViewer;if(!i)return;const[a,r]=i,{heading:s,pitch:o}=ee(e,a,r),n=le(s,o);this._referencePointOnImage=new t({geometry:new G(n,L.WebMercator),symbol:We}),this._panoramicViewer.addGraphic(this._referencePointOnImage,0);break}}}removeAllOverlayMapFeatures(){this.overlayedMapFeatures.forEach((e=>{this._imageViewer.removeManyGraphics(e.toArray())})),this.overlayedMapFeatures.clear()}removeOverlayedGraphicsOnImage(e){const t=this.overlayedMapFeatures.get(e);t?.length&&(this.activeViewer?.removeManyGraphics(t.toArray()),this.overlayedMapFeatures.delete(e))}resetImage(){switch(this.setMessage("onLoadMessage","info"),this.mode){case"default":this._imageViewer.clearImage(),this._imageViewer.clearGraphics();break;case"panoramic":this._panoramicViewer.clearGraphics()}this._clickTask=m(this._clickTask)}resetMeasurementData(){this.areaMeasurementResult=0,this.areaMeasurementAccuracy=0,this.distanceMeasurementResult=0,this.distanceAccuracyArray=[],this.heightMeasurementPixels=[],this.heightMeasurementResult=0,this.tempDistance=null,this.measurementAngle=null,this.heightMeasurementAccuracy=0,this.heightGraphic=null}async saveDrawing(){const{digitizationLayer:e,sketchAdapter:t}=this;if(!e||"digitization"!==t?.type)return;const{pendingGraphics:i,savedGraphics:a}=t,r=i.get(e.id),s=r?.toArray();if(!r||!s?.length)return;const{addFeatureResults:o}=await this.saveDigitizedFeatures(s),n=o.reduce(((t,{objectId:i,globalId:a,error:r},o)=>{const n=s[o],{attributes:l}=n;return r?t.error.push(n):(i&&(l[e.objectIdField]=i),a&&e.globalIdField&&(l[e.globalIdField]=a),t.success.push(n)),t}),{success:[],error:[]});a.addMany(n.success),r.removeAll(),r.addMany(n.error)}async saveDigitizedFeatures(e){const{activeViewer:t,currentBestFeature:a,digitizationLayer:r,mode:s}=this,o=t?.imageSize;if(!o||!a||"none"===s)throw new n("Image size, current best feature and mode are required to save digitized features");if(!r)throw new n("Digitization layer is not available");const l=await Promise.all(e.map((async e=>{const t=e.clone(),{geometry:i}=t;if(!i)return;const n=i.type,l=r.hasZ,c=r.geometryType,h=n!==c,u=h?await import("./transformers.js"):null,p=u?.default[c],m=h?p?.(i):i;if(m)switch(m.type){case"point":return t.geometry=await this.getMapPoint(oe(s,m,o),{feature:a,imageSize:o,mode:s}),l||(delete t.geometry.z,t.geometry.hasZ=!1),t.geometry.hasM=!1,t;case"polygon":{const e=await Promise.all(m.rings.map((async e=>this.getMapPoint(e.map((([e,t,i])=>oe(s,{x:e,y:t,z:i},o))),{feature:a,imageSize:o,mode:s}))));return t.geometry=new O({spatialReference:e[0][0].spatialReference,hasZ:l,hasM:!1,rings:e.map((e=>e.map(se)))}),t}case"polyline":{const e=await Promise.all(m.paths.map((async e=>this.getMapPoint(e.map((([e,t,i])=>oe(s,{x:e,y:t,z:i},o))),{feature:a,imageSize:o,mode:s}))));return t.geometry=new j({spatialReference:e[0][0].spatialReference,hasZ:l,hasM:!1,paths:e.map((e=>e.map(se)))}),t}}}))),c=l.filter(i);return r.applyEdits({addFeatures:c}).then((e=>{const{addFeatureResults:t}=e;let i=0;const a=l.map((e=>{const a=t[i++];return e?a:{error:new n("Error in saving digitized features"),objectId:null,globalId:null}}));return{...e,addFeatureResults:a}}))}async searchBestImage(e,t){try{const i=await D(e,t);i&&await this._processFeatureResponse(i,e.point,{signal:t?.signal})}catch(i){y(i)||(this.setMessage("imageLoadError","error",i.message),u.getLogger(this).error("error occurred while finding best image",i))}}selectBestFeature(e){this.currentBestFeature=this.features?.find((({attributes:t})=>t.objectId===Number(e)))}setAdditionalCameraLocationsVisibility(e){this.additionalCameraLocations.forEach((t=>{t.visible=e}))}setAdditionalCoverageVisibility(e){this.additionalFootprints.forEach((t=>{t.visible=e}))}setCurrentCoverageVisibility(e){this.bestFeatureCurrentFootprint&&(this.bestFeatureCurrentFootprint.visible=e),this.currentBestFeatureLocation&&(this.currentBestFeatureLocation.visible=e)}setMapImageConversionToolState(e){this.mapImageConversionToolState=e}async startDigitization(e,t){const i=this.activeViewer?.imageRenderer;if(!i)return;const a=this.overlayedMapFeatures.get(e.id)?.toArray()??[];this.removeOverlayedGraphicsOnImage(e.id),this.collectionId=e.id,await this.loadSketch(t),await this.loadDigitizationAdapter(t),f(t),this.sketchGraphicsLayer?.addMany(a),this.sketchAdapter?.savedGraphics.addMany(a);i.ui.find("zoom").visible=!1,i.map.layers.add(this.sketchGraphicsLayer)}stopDigitization(e){this.sketch?.cancel();const t=this.sketchAdapter?.savedGraphics;this.sketchGraphicsLayer?.removeAll();const i=this.activeViewer?.imageRenderer;if(!t||!i)return;this.overlayGraphicsOnImage(e,t);i.ui.find("zoom").visible=!0,i.map.layers.remove(this.sketchGraphicsLayer)}stopMeasurement(){this.heightMeasurementPixels=[],this.draw?.reset(),this.sketch?.cancel()}toggleAllOverlayMapFeatures(e){this.overlayedMapFeatures.forEach((t=>{this._toggleVisiblity(t,e)}))}toggleOverlayMapFeatures(e,t){const i=this.overlayedMapFeatures.get(e);i&&this._toggleVisiblity(i,t)}toggleSelection(e){const{sketch:t}=this;t&&(t.updateOnGraphicClick=e,t.cancel())}async transformAndPlotReferencePointOnImage(e){const{selectedLocation:t,options:i}=e;let a=!1,r=!1;const s=this.bestFeatureFootprint?.geometry;switch(s?.type){case"polygon":{const e=t.spatialReference.equals(s.spatialReference)?t:await z(t,s.spatialReference);a=s.contains(e);break}case"mesh":{const e=t.spatialReference.equals(s.spatialReference)?t:await z(t,s.spatialReference);r=s.extent.contains(e);break}}if(!a&&!r)return void this.clearReferencePointOnImage();const o=await this.worldToImage(t,i);if(o)return f(i),this.plotReferencePointOnImage(o),{x:o.x,y:o.y};this.clearReferencePointOnImage()}updateSuitabilities(e){e.sort(((e,t)=>e.suitability-t.suitability)),this._suitabilities=e;const t=this._suitabilities.map((({feature:e})=>e));this._initialCurrentCoverageUpdate=!0,this._updateFeatures(t),this._groupFeaturesBySectors()}async _fetchFeatures(e,t){if(!this.view)return;const i=this.layer;if(i){const a={include:i},r=this.view.toScreen(e);if(!r)return;const s=await this.view.hitTest(r,a);return this._processHitTestResults(i,s,t)}}async _fetchFeaturesWithController(e,t){try{await this._fetchFeatures(e,t)}catch(i){if(y(i))return;this.setMessage("imageLoadError","error"),u.getLogger(this).error("error occurred while fetching features",i)}}_groupFeaturesBySectors(){const{_suitabilities:e,additionalFeatures:t,currentBestFeature:i,features:a,invalidCameraHeading:r}=this;if(!e||!t||!i||!a||r)return void(this._sectorData=null);this._sectorData={};for(const c of be)this._sectorData[c]=new s;const o=e.map(((e,t)=>({...e,featureIndex:t})));o.sort(((e,t)=>e.trueSuitability-t.trueSuitability));const n=o.map((({distance:e})=>e)),l=Math.max(...n);o.forEach((e=>{const{distance:t,angle:i,featureIndex:r}=e,s=t/l*Fe[2],o=Ye(t,l),n=et(i);if(!this._sectorData)return;const c=Fe[3]+s*Math.sin(i*Math.PI/180),h=Fe[3]+s*Math.cos(i*Math.PI/180);let u;const p=a.at(r),m=p===this.currentBestFeature,d=this.currentBestFeature?.attributes.cameraPitch&&this.currentBestFeature?.attributes.cameraPitch<5;if(m&&d)u=-90;else{const e=c-Fe[3],t=h-Fe[3],i=t/Math.sqrt(e**2+t**2);let a=180*Math.acos(i)/Math.PI;(e<0&&t<0||e<0&&t>0)&&(a*=-1),u=a}const g=""===o?n:`${o}_${n}`;m&&(u===this.bestFeatureAngle?this.previousFeatureAngle=u:this.bestFeatureAngle=u,this.navigatorCurrentBestFeature=d?null:{x:c,y:h,direction:n});const y=this._sectorData[g];y.add({angle:i,featureIndex:r,x:c,y:h,objectID:p.attributes.objectId,sector:g,featureIndexInSector:y.length})}))}async _processFeatureResponse(e,t,i){const{features:a}=e;if(!a?.length)return this.setMessage("noImageError","error"),void(this.currentBestFeature=null);this.coveragePolygons.removeAll(),this.coverageFrustums.removeAll(),this.pointSources.removeAll();const{features:r,polygons:s,frustums:o}=this.filterByFootprints(a,t);if(!r.length)return this.setMessage("noImageError","error"),void(this.currentBestFeature=null);let n;if(this.coveragePolygons.addMany(s),this.coverageFrustums.addMany(o),s[0]){let e=new O({spatialReference:s[0].spatialReference});for(const i of s)e=await V(e,i);const t=[];for(const{geometry:i}of r)e.contains(i)||t.push([i.x,i.y]);if(t.sort(((e,t)=>+x([e,t]))),e.addRing(t),this.footprintExtent=ye(e.extent,2,2),this.view?.supportsGround)try{n=await this.view.map.ground.createElevationSampler(this.footprintExtent,i)}catch(l){y(l)||u.getLogger(this).error(l)}}if((n||r[0].attributes.elevationSource)&&this.footprintExtent){const e=r[0].attributes.elevationSource;J(e)&&!n&&(n=await X({extent:this.footprintExtent,lod:e.lod,url:e.url,rasterFunction:e.rasterFunction}));const i=await ie((r[0].attributes.location.z??0)-r[0].attributes.cameraHeight,{elevationSample:n,elevationSource:e,extent:this.footprintExtent}),[a,...s]=await Q([t,...r.map((e=>e.attributes.geometry.clone()))],i);r[0].elevationSample=n??i.elevationSample,t.elevation=a.z,r.forEach(((e,t)=>{e.attributes.elevation=s[t].z}))}r[0].elevationSample&&r.forEach((e=>{e.elevationSample=r[0].elevationSample})),this._suitabilities=T({features:r,selectedPoint:t,camera:Qe(this.view)?this.view.camera:null,currentImage:this.currentBestFeature}),this.updateSuitabilities(this._suitabilities)}async _processHitTestResults(e,t,i){const{screenPoint:a,results:[r]}=t,s="graphic"===r?.type&&this.shouldShowSelectedImage,o=r?.mapPoint??this.view?.toMap(a);if(!o)return;const{layerFloorFilterClause:n}=this,l=e.spatialReference.equals(o.spatialReference)?o:await z(o,e.spatialReference),c=S("1=1",S(e.definitionExpression,n)),h=l.spatialReference.isGeographic?1:I(l.spatialReference),u={layerInstanceOrURL:e,point:l,queryParams:{where:c,maximumDistance:e.maximumDistance?e.maximumDistance/h:void 0,objectIds:s?[r.graphic.getAttribute(e.objectIdField)]:void 0}};await this.searchBestImage(u,i)}_toggleVisiblity(e,t){e.forEach((e=>{e.visible=t}))}_updateFeatures(e){if(!e.length)return this.currentBestFeature=null,void this.additionalFeatures.removeAll();this.features.removeAll(),this.features.addMany(e),e.length>1?this.additionalFeatures.addMany(e.slice(1)):this.additionalFeatures.removeAll(),this.currentBestFeature=e[0]}async _updatePointsAndPolygons(e){const{pointSources:i,currentBestFeature:a,currentCoverageVisible:r,isAdditionalPointSourcesVisible:s}=this;if(a&&(this.additionalFootprints.removeAll(),this.additionalCameraLocations.removeAll(),this.bestFeatureCurrentFootprint&&(this.bestFeatureCurrentFootprint.destroy(),this.bestFeatureCurrentFootprint=null,this.bestFeatureFootprint=null),!this.invalidCameraHeading)){await(this._adapter?.createFootprints(e)),f(e);for(const e of i)e.imageID===a.attributes.objectId?this.currentBestFeatureLocation=new t({attributes:{imageID:e.imageID},geometry:e,symbol:qe,visible:r}):this.additionalCameraLocations.push(new t({attributes:{imageID:e.imageID},geometry:e,symbol:Te,visible:s}))}}_updateCurrentBestFeature(e){if(!e)return;this.currentBestFeature=this.features?.at(e.featureIndex);const t=this.currentBestFeature?.attributes.cameraPitch&&this.currentBestFeature?.attributes.cameraPitch<5;let i;if(t)i=-90;else{const t=e.x-Fe[3],a=e.y-Fe[3],r=a/Math.sqrt(t**2+a**2);let s=180*Math.acos(r)/Math.PI;(t<0&&a<0||t<0&&a>0)&&(s*=-1),i=s}i===this.bestFeatureAngle?this.previousFeatureAngle=i:this.bestFeatureAngle=i,this.navigatorCurrentBestFeature=t?null:{x:e.x,y:e.y,direction:e.sector.includes("_")?e.sector.split("_")[1]:e.sector}}clearGraphics(){this._imageViewer.clearGraphics(),this._panoramicViewer.clearGraphics()}clearReferencePointOnImage(){this._referencePointOnImage&&(this._imageViewer.removeGraphic(this._referencePointOnImage),this._panoramicViewer.removeGraphic(this._referencePointOnImage),this._referencePointOnImage=d(this._referencePointOnImage))}plotReferencePoint(e){"mapPoint"in e?this.plotReferencePointOnGround(e.mapPoint):this.plotReferencePointOnGround(e)}setMessage(e,t,i,a){this.displayMessage={key:e,type:t,data:i,map:a}}async transformAndPlotSelectedLocation(e){const{currentBestFeature:t,invalidCameraHeading:i,selectedPoint:a,state:r}=this;if(this._crossSymbol&&(this._panoramicViewer.removeGraphic(this._crossSymbol),this._imageViewer.removeGraphic(this._crossSymbol),this._crossSymbol=d(this._crossSymbol)),!a||!t||"image-loaded"!==r||i)return;let s;try{s=await this.worldToImage(a,e),f(e),await this.plotSelectedPointOnImage(s,e)}catch(o){y(o)||u.getLogger(this).error("failed to transform map point to pixel, cross symbol will not be plotted on image",{error:o,selectedPoint:a,feature:t})}}async worldToImage(e,t){const{footprintExtent:i}=this,{imageSize:a}=this.activeViewer;if("none"===this.mode||!this.currentBestFeature||!a||!i)return;const{attributes:{location:r,elevationSource:s,cameraHeading:o,elevation:n,cameraHeight:l},elevationSample:c}=this.currentBestFeature;let h=r.clone();const u=await ie(n??(r.z??0)-l,{elevationSample:c,elevationSource:s});this.currentBestFeature.elevationSample=u.elevationSample;const p=Array.isArray(e)?e:[e];let m,d=await Promise.all(p.map((e=>new Promise((t=>{if(!e.hasZ)return t(Q(e,u));t(e)})))));if(r.spatialReference.isGeographic&&(h=await z(h,L.WebMercator,t)),d=await Promise.all(d.map((async e=>h.spatialReference.equals(e.spatialReference)?e:await z(e,h.spatialReference,t)))),f(t),"panoramic"===this.mode)m=he(d,{imageHeight:a[1],imageWidth:a[0],cameraHeading:o,cameraLocation:h});else{const e=ne(this.currentBestFeature.attributes,a[0],a[1]);m=ue(d,{...e,cameraLocation:h})}return Array.isArray(e)?m:m[0]}updateCurrentCoveragePolygon(e){const{additionalFootprints:i,additionalCameraLocations:a,currentBestFeature:r,currentBestFeatureLocation:s,currentCoverageVisible:o,selectedPoint:n,view:l,_adapter:c}=this,{attributes:{objectId:h},elevationSample:u}=r;if(this._initialCurrentCoverageUpdate){if(this._overlays?.removeAll(),this._initialCurrentCoverageUpdate=!1,this.bestFeatureCurrentFootprint=d(this.bestFeatureCurrentFootprint),e&&!this.invalidCameraHeading&&(e.visible=o,this.bestFeatureCurrentFootprint=e),l){const e=[...i,...a,this.bestFeatureCurrentFootprint,s].filter(Xe);l.supportsGround&&u&&c?.updateGroundElevation&&c.updateGroundElevation(e,u),n&&e.push(new t({geometry:n.clone(),symbol:Be.clone(),attributes:{imageID:h}})),this._overlays.graphics.addMany(e)}}else if(l){if(this.invalidCameraHeading)return;this.bestFeatureCurrentFootprint&&(this._overlays?.remove(this.bestFeatureCurrentFootprint),this.bestFeatureCurrentFootprint=d(this.bestFeatureCurrentFootprint));const t=this.bestFeatureCurrentFootprint&&this._overlays?this._overlays.graphics.indexOf(this.bestFeatureCurrentFootprint):-1;e&&(this.bestFeatureCurrentFootprint=e,l?.supportsGround&&u&&c?.updateGroundElevation&&c.updateGroundElevation([e],u),e.visible=this.currentCoverageVisible,this._overlays?.graphics.add(this.bestFeatureCurrentFootprint,t>=0?t:this._overlays.graphics.length-1))}}};e([M()],nt.prototype,"activeLayer",null),e([M({readOnly:!0})],nt.prototype,"activeViewer",null),e([M()],nt.prototype,"accuracyParametersMissing",null),e([M()],nt.prototype,"additionalFeatures",void 0),e([M({type:s.ofType(t)})],nt.prototype,"additionalCameraLocations",void 0),e([M({type:s.ofType(t)})],nt.prototype,"additionalFootprints",void 0),e([M()],nt.prototype,"areaMeasurementResult",void 0),e([M()],nt.prototype,"areaMeasurementAccuracy",void 0),e([M()],nt.prototype,"bestFeatureAngle",void 0),e([M()],nt.prototype,"bestFeatureCurrentFootprint",void 0),e([M({type:t})],nt.prototype,"bestFeatureFootprint",void 0),e([M({type:Number})],nt.prototype,"brightness",null),e([M()],nt.prototype,"collectionId",void 0),e([M({type:Number})],nt.prototype,"contrast",null),e([M()],nt.prototype,"conversionProps",void 0),e([M()],nt.prototype,"coverageFrustums",void 0),e([M()],nt.prototype,"coveragePolygons",void 0),e([M()],nt.prototype,"currentBestFeature",void 0),e([M()],nt.prototype,"currentBestFeatureLocation",void 0),e([M()],nt.prototype,"currentCoverageVisible",void 0),e([M({json:{write:!1}})],nt.prototype,"determineWorkflowForFeature",void 0),e([M()],nt.prototype,"disabled",void 0),e([M()],nt.prototype,"displayMessage",void 0),e([M()],nt.prototype,"displayNewMeasurementButton",void 0),e([M()],nt.prototype,"distanceMeasurementResult",void 0),e([M()],nt.prototype,"distanceAccuracyArray",void 0),e([M()],nt.prototype,"digitizationLayer",void 0),e([M({readOnly:!0})],nt.prototype,"featureCount",null),e([M()],nt.prototype,"features",void 0),e([M()],nt.prototype,"groundCoordinates",void 0),e([M()],nt.prototype,"heightMeasurementPixels",void 0),e([M()],nt.prototype,"heightGraphic",void 0),e([M()],nt.prototype,"heightMeasurementResult",void 0),e([M()],nt.prototype,"heightMeasurementAccuracy",void 0),e([M()],nt.prototype,"measurementAngle",void 0),e([M()],nt.prototype,"tempDistance",void 0),e([M({readOnly:!0})],nt.prototype,"imageGalleryEnabled",null),e([M()],nt.prototype,"imageGeometryField",void 0),e([M({readOnly:!0})],nt.prototype,"imageLoaded",null),e([M()],nt.prototype,"imageLocationToolState",void 0),e([M({readOnly:!0})],nt.prototype,"invalidCameraHeading",null),e([M()],nt.prototype,"imagePointsInView",null),e([M()],nt.prototype,"isAdditionalCoverageVisible",void 0),e([M()],nt.prototype,"isAdditionalPointSourcesVisible",void 0),e([M()],nt.prototype,"layer",void 0),e([M()],nt.prototype,"layerView",null),e([M({readOnly:!0})],nt.prototype,"layerFloorFilterClause",null),e([M({type:Number})],nt.prototype,"localPort",void 0),e([M()],nt.prototype,"mapImageConversionToolState",void 0),e([M()],nt.prototype,"measureType",void 0),e([M()],nt.prototype,"measurementGraphic",void 0),e([M({readOnly:!0,value:"none"})],nt.prototype,"mode",null),e([M()],nt.prototype,"navigatorCurrentBestFeature",void 0),e([M()],nt.prototype,"oiObjectIdField",void 0),e([M({type:s.ofType(t)})],nt.prototype,"overlayedCameraLocations",void 0),e([M()],nt.prototype,"overlayedMapFeatures",void 0),e([M()],nt.prototype,"pixelCoordinates",void 0),e([M()],nt.prototype,"pointSources",void 0),e([M({readOnly:!0})],nt.prototype,"popupEnabled",null),e([M()],nt.prototype,"previousFeatureAngle",void 0),e([M()],nt.prototype,"referencePoint",null),e([M({readOnly:!0})],nt.prototype,"sectorData",null),e([M()],nt.prototype,"selectedPoint",void 0),e([M({type:Number})],nt.prototype,"sharpness",null),e([M()],nt.prototype,"shouldShowSelectedImage",void 0),e([M()],nt.prototype,"sketch",void 0),e([M()],nt.prototype,"draw",void 0),e([M()],nt.prototype,"sketchAdapter",void 0),e([M({readOnly:!0})],nt.prototype,"sketchGraphicsLayer",null),e([M({readOnly:!0})],nt.prototype,"state",null),e([M({readOnly:!0})],nt.prototype,"thumbnails",null),e([M()],nt.prototype,"updateFootprint",void 0),e([M()],nt.prototype,"updateFootprintPanorama",void 0),e([M({value:null})],nt.prototype,"view",null),e([M()],nt.prototype,"_adapter",void 0),e([M()],nt.prototype,"_sketchGraphicsLayer",null),e([M()],nt.prototype,"_highlightedFeatureHandle",void 0),e([M()],nt.prototype,"_imageViewer",void 0),e([M()],nt.prototype,"_initialCurrentCoverageUpdate",void 0),e([M()],nt.prototype,"_overlays",void 0),e([M({readOnly:!0})],nt.prototype,"_overlaysView",null),e([M()],nt.prototype,"_panoramicViewer",void 0),e([M()],nt.prototype,"_referencePointOnGround",void 0),e([M()],nt.prototype,"_referencePointOnImage",void 0),e([M()],nt.prototype,"_sectorData",void 0),e([M({readOnly:!0})],nt.prototype,"_updatingHandles",void 0),e([M()],nt.prototype,"footprintExtent",void 0),nt=e([k("esri.widgets.OrientedImageryViewer.OrientedImageryViewerViewModel")],nt);const lt=nt;export{lt as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../Graphic.js";import{isSome as i,equals as a}from"../../core/arrayUtils.js";import{createTask as r}from"../../core/asyncUtils.js";import s from"../../core/Collection.js";import{deprecatedProperty as o}from"../../core/deprecate.js";import n from"../../core/Error.js";import l from"../../core/Evented.js";import c from"../../core/JSONSupport.js";import{equalsShallow as h}from"../../core/lang.js";import u from"../../core/Logger.js";import{clamp as p}from"../../core/mathUtils.js";import{abortMaybe as m,destroyMaybe as d}from"../../core/maybe.js";import g from"../../core/Promise.js";import{isAbortError as y,throwIfAborted as f,waitTick as v}from"../../core/promiseUtils.js";import w from"../../core/ReactiveMap.js";import{on as b,watch as F,syncAndInitial as _,initial as P}from"../../core/reactiveUtils.js";import{sqlAnd as S}from"../../core/sql.js";import{getMetersPerUnitForSR as M}from"../../core/unitUtils.js";import{property as I}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import{subclass as k}from"../../core/accessorSupport/decorators/subclass.js";import{distance as C}from"../../core/libs/gl-matrix-2/math/vec2.js";import{UpdatingHandles as A}from"../../core/support/UpdatingHandles.js";import{union as V}from"../../geometry/geometryEngineAsync.js";import R from"../../geometry/Multipoint.js";import G from"../../geometry/Point.js";import O from"../../geometry/Polygon.js";import j from"../../geometry/Polyline.js";import{projectWithZConversion as L}from"../../geometry/projection.js";import z from"../../geometry/SpatialReference.js";import{isClockwise as x}from"../../geometry/support/coordsUtils.js";import{fromJSON as B}from"../../geometry/support/jsonUtils.js";import{geographicToWebMercator as E}from"../../geometry/support/webMercatorUtils.js";import H from"../../layers/GraphicsLayer.js";import{searchImages as D}from"../../layers/orientedImagery/queries.js";import{calculateSuitabilities as T}from"../../layers/orientedImagery/core/bestImageUtils.js";import{createCoveragePolygon as U,computePolygonForInspection as N,resizePolygon as W,checkIfPolygonContainsSelectedPoint as q}from"../../layers/orientedImagery/core/coverageUtils.js";import{isConstantElevation as $,isElevationSource as J}from"../../layers/orientedImagery/core/ElevationSourceDefinitions.js";import{imageToWorld as Z,imageToWorldPanoramic as K}from"../../layers/orientedImagery/transformations/imageToWorld.js";import Q from"../../layers/orientedImagery/transformations/updateElevation.js";import{getElevationSampler as X}from"../../layers/orientedImagery/transformations/updateElevationUtils.js";import{getInitialAngle as Y,convertPixelToHeadingPitch as ee,getImageToWorldProperties as te,getUpdateElevationProps as ie,isElevationSampler as ae,getImageToWorldPanoramicProperties as re,pointToArray as se,transformGraphicCoordinatesToPixel as oe,getWorldToImageProperties as ne,convertHeadingPitchToSphereVertex as le,or as ce}from"../../layers/orientedImagery/transformations/utils.js";import{worldToImagePanoramic as he,worldToImage as ue}from"../../layers/orientedImagery/transformations/worldToImage.js";import{getFloorFilterClause as pe}from"../../layers/support/floorFilterUtils.js";import me from"../../symbols/SimpleLineSymbol.js";import de from"../../views/draw/Draw.js";import{scale as ge}from"../../views/draw/support/drawUtils.js";import{ViewEventPriorities as ye}from"../../views/input/InputManager.js";import fe from"../PanoramicViewer.js";import{invalidCameraHeading as ve,sectorsInOrder as we,sectorsRadii as be}from"./constants.js";import{configureSketchTool as Fe,isValidDigitizationLayer as _e,extractFieldsFromDigitizationLayer as Pe}from"./digitizationUtils.js";import{isFeatureAttachment as Se,getImageSourceFromAttachment as Me}from"./galleryUtils.js";import{formatPixels as Ie,heightMeasurement2D as ke,calculateHeightAccuracy as Ce,pixelAreaMeasurement2D as Ae,pixelAreaMeasurementPanoramic as Ve,pixelDistanceMeasurement2D as Re,pixelDistanceMeasurementPanoramic as Ge,generateCombinations as Oe,generateCombinationsPanoramic as je,calculateTempImagePoint as Le,calculateAngle as ze,calculateCorrectedPixel as xe,calculateHeightFromTemporaryDistance as Be}from"./imageMeasurementUtils.js";import{crossSymbol as Ee,crossSymbol3D as He,measurementPolygonSymbol as De,measurementPolylineSymbol as Te,sourcePointSymbol as Ue,digitizationSymbol as Ne,diamondSymbol as We,diamondSymbol3D as qe,activeSourcePointSymbol as $e}from"./symbols.js";import{isNoAttachmentError as Je,getContentType as Ze,isTifOrMrf as Ke,filterOILLayerView as Qe,isSceneView as Xe,isGraphic as Ye,calculateSegment as et,calculateDirection as tt}from"./utils.js";import it from"./components/ImageViewer.js";const at={click:"view-click",imageClick:"image-click",interactionHandles:"interaction-handles",footprintHandles:"footprint-handles",sketchHandles:"sketch-handles"},rt=new Set(["JPG","JPEG"]),st=/\.(\w+)$/,ot=()=>new n("orientedimageryviewer:sketch-not-initialized","Sketch property is not initialized, call loadSketch first");let nt=class extends(l.EventedMixin(g)){constructor(e){super(e),this.additionalFeatures=new s,this.additionalCameraLocations=new s,this.additionalFootprints=new s,this.areaMeasurementResult=0,this.areaMeasurementAccuracy=0,this.bestFeatureAngle=0,this.bestFeatureCurrentFootprint=null,this.bestFeatureFootprint=null,this.collectionId=null,this.conversionProps=null,this.coverageFrustums=new s,this.coveragePolygons=new s,this.currentBestFeature=null,this.currentBestFeatureLocation=null,this.currentCoverageVisible=!0,this.determineWorkflowForFeature=async(e,t,i)=>{const{currentBestFeature:a,selectedPoint:r,view:s}=this;if(s?.closePopup(),a&&r){this._initialCurrentCoverageUpdate=!0;try{await this._updatePointsAndPolygons(i),await this._loadImage(i)}catch(o){y(o)||(this.loadImageError(o),u.getLogger(this).error("#loadIImage()","error occured while loading image",o))}}},this.disabled=!1,this.displayMessage={key:"onLoadMessage",type:"info"},this.displayNewMeasurementButton=!0,this.distanceMeasurementResult=0,this.distanceAccuracyArray=[],this.digitizationLayer=null,this.features=new s,this.groundCoordinates=null,this.heightMeasurementPixels=[],this.heightGraphic=null,this.heightMeasurementResult=0,this.heightMeasurementAccuracy=0,this.measurementAngle=null,this.tempDistance=null,this.imageGeometryField=null,this.imageLocationToolState=!1,this.isAdditionalCoverageVisible=!1,this.isAdditionalPointSourcesVisible=!1,this.layer=null,this.localPort=null,this.mapImageConversionToolState=!1,this.measureType=null,this.measurementGraphic=null,this.navigatorCurrentBestFeature=null,this.oiObjectIdField=null,this.overlayedCameraLocations=new s,this.overlayedMapFeatures=new w,this.pixelCoordinates=null,this.pointSources=new s,this.previousFeatureAngle=0,this.selectedPoint=null,this.shouldShowSelectedImage=!1,this.sketch=null,this.draw=null,this.sketchAdapter=null,this.updateFootprint=async(e,t)=>{"image-loaded"===this.state&&await(this._adapter?.updateFootprint(e,t))},this.updateFootprintPanorama=async(e,t)=>{await(this._adapter?.updateFootprintPanorama(e,t))},this._adapter=null,this._highlightedFeatureHandle=null,this._imageViewer=new it,this._initialCurrentCoverageUpdate=!0,this._overlays=new H({listMode:"hide",internal:!0,elevationInfo:{mode:"absolute-height"}}),this._panoramicViewer=new fe,this._referencePointOnGround=null,this._referencePointOnImage=null,this._sectorData=null,this._updatingHandles=new A,this._clickTask=null,this._crossSymbol=null,this.footprintExtent=null,this._featureChangedTask=null,this._openPopupTask=null,this._suitabilities=null,this._transformController=new AbortController,this._updateFootprintTask=null,this.hideImageGeometry=e=>{},this.highlight=e=>{if(!this._overlaysView)return;this.removeHighlight();const t=this.additionalFootprints.find((({attributes:{imageID:t}})=>t===Number(e)));this._highlightedFeatureHandle=t?this._overlaysView?.highlight(t):null},this.loadDigitizationAdapter=async e=>{const{sketchAdapter:t}=this;if(await this.loadSketch(e),"digitization"===t?.type)return t;const i=import("./adapters/sketch/DigitizationAdapter.js"),{default:a}=await i;return f(e),this.sketchAdapter=new a({viewModel:this}),this.sketchAdapter},this.loadImageFromSource=async(e,t)=>this._updatingHandles.addPromise(this._loadImageFromSourceInternal(e,t)),this.loadImageViewer=e=>{this._imageViewer.container=e},this.loadPanoramicViewer=e=>{this._panoramicViewer.container=e},this.removeHighlight=()=>this._highlightedFeatureHandle?.remove(),this.revealImageGeometry=e=>{},this.toggleImageAttributes=()=>{m(this._openPopupTask),this._openPopupTask=r((async e=>{const{currentBestFeature:i,popupEnabled:a,layer:r,view:s}=this;if(s?.closePopup(),!(s&&i&&a&&r))return;const{attributes:o,geometry:n}=i,l=new t({geometry:n,attributes:o.toJSON(),layer:r});f(e),await s.openPopup({features:[l],location:o.location.clone()})}))},this._createViewClickHandle=()=>{if(this.removeHandles(at.click),"disabled"===this.state||null==this.view)return;const e=this.mapImageConversionToolState&&"image-loaded"===this.state?this._mapImageConversionToolViewClickHandler:this._viewClickHandler;this.addHandles(this.view.on("click",e,ye.WIDGET),at.click)},this._createImageClickHandle=()=>{this.removeHandles(at.imageClick);const{mapImageConversionToolState:e,mode:t,activeViewer:i,currentBestFeature:a,footprintExtent:s}=this,o=i?.imageSize;if(!(e&&"none"!==t&&o&&s&&a))return;i.clickAction="pixel-location";let n=null;const l=b((()=>i),"pixel-location",(e=>{this.plotReferencePointOnImage(e),n?.abort(),n=r((async i=>{if(!e)return;const r=await this.getMapPoint(e,{feature:a,imageSize:o,mode:t}).then((e=>{const t=this.view?.spatialReference;return ce(!t,e.spatialReference.equals(t))?e:L(e,t)}));f(i),this.plotReferencePointOnGround(r)}))}));this.addHandles(l,at.imageClick)},this._createImageLocationHandle=()=>{this.removeHandles(at.imageClick);const{imageLocationToolState:e,mode:t,activeViewer:i,currentBestFeature:a,footprintExtent:s}=this,o=i?.imageSize;if(!(e&&"none"!==t&&o&&s&&a))return;i.clickAction="pixel-location";let n=null;const l=b((()=>i),"pixel-location",(e=>{this.pixelCoordinates=e,n?.abort(),n=r((async i=>{if(!e)return;let r=await this.getMapPoint(e,{feature:a,imageSize:o,mode:t});f(i);const s=this.view?.spatialReference;s&&!r.spatialReference.equals(s)&&(r=await L(r,s),f(i)),this.groundCoordinates=r}))}));this.addHandles(l,at.imageClick)},this._loadImage=async e=>{const{currentBestFeature:t,layer:i,mode:a}=this;if(this.clearGraphics(),!i||!t||"none"===a)return;const{attributes:r}=t,{imagePath:s,imageRotation:o,cameraHeading:n,cameraRoll:l,cameraPitch:c,objectId:h,cameraOrientation:p,location:m}=r,d=(l??0)+(o??0),g=m.spatialReference.isWGS84&&4!==p?.type?E(m):new G(m);let v=s;if(Se(s))try{v=await Me(i,h,e)}catch(w){if(y(w))return;return Je(w)?(u.getLogger(this).error(w),void this.setMessage("noAttachment","error",`${i.objectIdField}: ${h}`)):(u.getLogger(this).error(w,{[i.objectIdField]:h,layer:i}),void this.setMessage("imageLoadError","error",`query-attachments-failed:${i.objectIdField} ${h}`))}try{await this.loadImageFromSource(v,{imageRotation:d,options:e,pitch:c,yaw:n,mode:a,cameraLocation:g}),f(e),await this.transformAndPlotSelectedLocation(e)}catch(w){y(w)||this.loadImageError(w)}},this._loadImageFromSourceInternal=async(e,t)=>{const{mode:i,imageRotation:a,options:r}=t,s="string"==typeof e,o=s?e:e.url,{pathname:n,searchParams:l}=new URL(o);let c=s?n.match(st)?.[1]:e.datasetFormat;if(!c)try{c=await Ze(o,{...t.options})}catch(h){y(h)||u.getLogger(this).error("#getContentType()",h)}switch(c??="UNKNOWN FORMAT",i){case"default":this._imageViewer.imageSource={datasetFormat:c.toUpperCase(),url:o.split("?")[0]},this._imageViewer.customParameters=Object.fromEntries(l),this._imageViewer.imageRotation=a??0,await this._imageViewer.loadImage(r);break;case"panoramic":if(rt.has(c.toUpperCase())){const{selectedPoint:e}=this,{pitch:i,yaw:a,cameraLocation:s,viewAngle:n}=t;this._panoramicViewer.imageSource=o;let l=a??0;"number"==typeof n?l=n-l:s&&e&&(l=await Y(s,e)-l),this._panoramicViewer.pitch=i??0,this._panoramicViewer.yaw=l,await this._panoramicViewer.loadImage(r)}else this.setMessage("unsupportedPanoramicImageryError","error",void 0,{datasetFormat:c});break}},this._loadViewAdapter=async e=>{const{view:t}=this;if(t)switch(t.type){case"2d":{const{default:t}=await import("./adapters/view/MapViewAdapter.js");f(e),this._adapter=new t(this);break}case"3d":{const{default:t}=await import("./adapters/view/SceneViewAdapter.js");f(e),this._adapter=new t(this);break}}else this._adapter=null},this._mapImageConversionToolViewClickHandler=e=>{e.stopPropagation(),e.preventDefault(),e.mapPoint&&this.plotMapPoint(e.mapPoint)},this._viewClickHandler=e=>{this._clickTask?.abort(),this._clickTask=r((async t=>{const{pointerType:i,button:a,mapPoint:r}=e;if(("mouse"!==i||0===a)&&r)return e.stopPropagation(),e.preventDefault(),this._updatingHandles.addPromise(this.loadBestImage(r,{signal:t}))}))},this.plotSelectedPointOnImage=async(e,i)=>{if(await v(i),!e)return;const a=new G({...c.isSerializable(e)?e.toJSON():e});if("default"===this.mode)a.x-=.5,a.y=.5-a.y,a.spatialReference=this._imageViewer.imageRenderer.spatialReference.clone(),this._crossSymbol=new t({geometry:a,symbol:Ee}),this._imageViewer.addGraphic(this._crossSymbol,0);else if("panoramic"===this.mode){const{imageSize:i}=this._panoramicViewer;if(!i)return;const[a,r]=i,{heading:s,pitch:o}=ee(e,a,r),n=le(s,o);this._crossSymbol=new t({geometry:new G(n,z.WebMercator),symbol:He}),this._panoramicViewer.addGraphic(this._crossSymbol,0)}},this.handleSectorClick=this.handleSectorClick.bind(this),this.searchBestImage=this.searchBestImage.bind(this),this.transformAndPlotReferencePointOnImage=this.transformAndPlotReferencePointOnImage.bind(this),this.updateSuitabilities=this.updateSuitabilities.bind(this),this.selectBestFeature=this.selectBestFeature.bind(this)}initialize(){this.addHandles([F((()=>this.view),(()=>{this.load()}),_),F((()=>this.view?.map),((e,t)=>{t?.layers.remove(this._overlays),e?.layers.add(this._overlays)}),P),F((()=>this.view?.map?.allLayers?.length),(e=>{e&&this.view?.map?.layers.reorder(this._overlays,e-1)}),P),F((()=>[this.state,this.mapImageConversionToolState,this.view]),(()=>{this._createViewClickHandle(),this._createImageClickHandle()}),_),F((()=>[this.state,this.imageLocationToolState,this.view]),(()=>{this.imageLocationToolState||this.clearPreviousGroundLocation(),this._createImageLocationHandle()}),_),F((()=>this.measureType),(()=>{this.clearPreviousMeasurements()}),_),F((()=>this.bestFeatureAngle),((e,t)=>{this.previousFeatureAngle=t??0}),_),F((()=>this.currentBestFeature),(async(e,t)=>{m(this._featureChangedTask),this._featureChangedTask=r((async i=>this.determineWorkflowForFeature.apply(this,[e,t,{signal:i}]))),await this._featureChangedTask.promise}),{sync:!0}),F((()=>this.mode),(e=>{switch(this.removeHandles(at.interactionHandles),e){case"default":this.addHandles(F((()=>this._imageViewer.imagePointsInView),(e=>{e&&(m(this._updateFootprintTask),this._updateFootprintTask=r((async t=>{await this.updateFootprint(e,{signal:t})})))}),{..._,equals:(e,t)=>a(e,t,h)}),at.interactionHandles);break;case"panoramic":this.addHandles(F((()=>{const{currentBestFeature:e,state:t}=this,{imageSize:i,vfov:a,hfov:r,pitch:s,yaw:o}=this._panoramicViewer;return e&&i&&"image-loading"!==t?[a,r,o,s]:null}),(e=>{if(!e||"image-loading"===this.state)return;const[t,i,a,s]=e;m(this._updateFootprintTask),this._updateFootprintTask=r((async e=>{await this.updateFootprintPanorama({verticalFieldOfView:t,horizontalFieldOfView:i,yaw:a,pitch:s},{signal:e})}))}),{..._,equals:(e,t)=>a(e,t,h)}),at.interactionHandles)}}),_),F((()=>[this.brightness,this.contrast,this.sharpness]),(()=>{const{_imageViewer:e,brightness:t,contrast:i,mode:a,sharpness:r}=this;"default"===a&&(e.brightness=t,e.contrast=i,e.sharpness=r)}),_),F((()=>this.activeViewer?.imageRenderer),(()=>{this.sketch&&(this.sketch.view=this.activeViewer?.imageRenderer)}))]),this.when().finally((()=>{this.notifyChange("state")}))}destroy(){this._updateFootprintTask=m(this._updateFootprintTask),this._clickTask=m(this._clickTask),this.coverageFrustums.destroy(),this.coveragePolygons.destroy(),this.pointSources.destroy(),this.additionalFootprints.destroy(),this.additionalCameraLocations.destroy(),this.bestFeatureFootprint=d(this.bestFeatureFootprint),this.bestFeatureCurrentFootprint=d(this.bestFeatureCurrentFootprint),this._crossSymbol=d(this._crossSymbol),this._referencePointOnGround=d(this._referencePointOnGround),this._referencePointOnImage=d(this._referencePointOnImage),this._overlays&&this.view?.map?.remove(this._overlays),this._overlays.destroy(),this._imageViewer.destroy(),this._panoramicViewer.destroy()}get activeLayer(){return o(u.getLogger(this),"activeLayer",{replacement:"layer"}),this.layer}set activeLayer(e){o(u.getLogger(this),"activeLayer",{replacement:"layer"}),this.layer=e}get activeViewer(){const{_imageViewer:e,_panoramicViewer:t,mode:i}=this;switch(i){case"default":return e;case"panoramic":return t;default:return null}}get accuracyParametersMissing(){return this.layer?.orientationAccuracy?.every((e=>0===e))??!0}get brightness(){return this._get("brightness")??0}set brightness(e){this._set("brightness",p(e,-10,10))}get contrast(){return this._get("contrast")??0}set contrast(e){this._set("contrast",p(e,-10,10))}get featureCount(){return this.features?.length??0}get imageGalleryEnabled(){const{currentBestFeature:e}=this;if(!e)return!1;const t=e.attributes.imagePath?.trim();return Ke(t)||Se(t)}get imageLoaded(){return o(u.getLogger(this),"imageLoaded",{replacement:'Use OrientedImageryViewer.state === "image-loaded"',version:"4.29",warnOnce:!0}),"image-loaded"===this.state}get invalidCameraHeading(){return this.currentBestFeature?.attributes?.cameraHeading===ve}get imagePointsInView(){const{mode:e,_imageViewer:t}=this;return"default"===e?t.imagePointsInView:null}get layerView(){const{layer:e,view:t}=this;if(e&&t)return t.allLayerViews.find(Qe(e))}get layerFloorFilterClause(){const{layerView:e}=this;return e?pe(e):null}get mode(){const e=this.currentBestFeature?.attributes;if(!e)return"none";const{horizontalFieldOfView:t,isSpherical:i}=e;return 360===t||i?"panoramic":"default"}get popupEnabled(){return!0===this.layer?.popupEnabled}get referencePoint(){return this._referencePointOnGround?.geometry}get sectorData(){const{_sectorData:e}=this;return e?we.map((t=>e[t])):null}get sharpness(){return this._get("sharpness")??0}set sharpness(e){this._set("sharpness",p(e,0,1))}get sketchGraphicsLayer(){return this.sketch?.layer}get state(){const{mode:e,disabled:t}=this;if(t)return"disabled";if(!this.isFulfilled())return"loading";if(this.isRejected())return"error";if(this._updatingHandles.updating)return"image-loading";if("error"===this.displayMessage?.type)return"image-load-error";switch(e){case"default":return this._imageViewer.state;case"panoramic":return this._panoramicViewer.state}return"ready"}get thumbnails(){const{features:e}=this;return e?new s(e.map((({attributes:{imagePath:e,objectId:t,cameraRoll:i,imageRotation:a}})=>{const r=e?.trim();return Ke(r)||Se(r)?{url:r,objectId:t,rotation:(i??0)+(a??0)}:null})).filter(i)):null}set view(e){this._set("view",e)}get _sketchGraphicsLayer(){const{mode:e}=this;switch(e){case"panoramic":return new H({elevationInfo:{mode:"absolute-height"}});case"default":return new H;case"none":return}}get _overlaysView(){return this.view?.layerViews.find((({layer:e})=>e===this._overlays))}async computeHeight(e,t=!0){const{currentBestFeature:i,activeViewer:a,layer:r}=this,s=a?.imageSize,o=i?.attributes,n=r?.orientationAccuracy;if(!o||!s||!e||e.length<2||!n)return;const l=te(o,s[0],s[1]),c=e.at(0),h=e.at(-1);if(!c||!h||!n)return;const u=[h,c],p=Ie(u,!1),m=await ke(u,l,n,!0,t);if(!m)return;const d=await Ce(n,p,l,m,!0);return d?{value:m,accuracy:d}:{value:m}}async calculateAreaMeasurement(e,t,i){if(e.length<3||!this.currentBestFeature||!this.activeViewer?.imageSize||"none"===t)return null;const a="default"===t?await this.getMeasurementProperties():await this.getMeasurementPropertiesPanoramic();return f(i),a?"default"===t?await Ae(e,a,!0):await Ve(e,a,!0,i):null}async calculateDistanceMeasurement(e,t,i){const{currentBestFeature:a,activeViewer:r}=this;if(e.length<2||!a||!r?.imageSize||"none"===t)return null;const s="default"===t?await this.getMeasurementProperties():await this.getMeasurementPropertiesPanoramic();return f(i),s?"default"===t?await Re([e.at(0),e.at(-1)],s,!0):await Ge([e.at(0),e.at(-1)],s,!0):null}async calculateAccuracy(e,t,i){const{layer:a,currentBestFeature:r,activeViewer:s}=this,o=a?.orientationAccuracy,n=o?.every((e=>0===e))||!o?.length;if("area"===t&&e.length<3||"distance"===t&&e.length<2||!r||!s?.imageSize||n)return null;const l=await this.getMeasurementProperties();if(f(i),!l)return null;const c="area"===t?await Ae(e,l,!0):await Re([e.at(0),e.at(-1)],l,!0);f(i);const{updateElevationProps:h,...u}=l,p=Oe(u,o);if(!p?.length)return null;const m=p.map((e=>({...e,updateElevationProps:h}))).map((async a=>{const r="area"===t?await Ae(e,a,!0):await Re([e.at(0),e.at(-1)],a,!0);if(f(i),r&&c){if("area"===t){const e="number"!=typeof r?r.area:null;return e?Math.abs(e-c.area):null}return Math.abs(r-c)}return null})),d=await Promise.all(m);f(i);const g=d.filter((e=>null!==e));if(0===g.length)return null;return Math.max(...g.map((e=>e)))}async calculateAccuracyPanoramic(e,t,i){const{layer:a,currentBestFeature:r,activeViewer:s,mode:o}=this,n=a?.orientationAccuracy,l=n?.every((e=>0===e))||!n?.length;if("area"===t&&e.length<3||"distance"===t&&e.length<2||!r||!s?.imageSize||l||"panoramic"!==o)return null;const c=await this.getMeasurementPropertiesPanoramic();if(f(i),!c)return null;const h="area"===t?await Ve(e,c,!0):await Ge([e.at(0),e.at(-1)],c,!0);f(i);const{updateElevationProps:u,...p}=c,m=je(p,n);if(!m?.length)return null;const d=m.map((e=>({...e,updateElevationProps:u}))).map((async a=>{const r="area"===t?await Ve(e,a,!0):await Ge([e.at(0),e.at(-1)],a,!0);if(f(i),r&&h){if("area"===t){const e="number"!=typeof r?r.area:null;return e?Math.abs(e-h.area):null}return Math.abs(r-h)}return null})),g=await Promise.all(d);f(i);const y=g.filter((e=>null!==e));if(0===y.length)return null;return Math.max(...y.map((e=>e)))}async calculateHeightMeasurementInfo(e,t){const{currentBestFeature:i,activeViewer:a}=this,r=a?.imageSize;if(!i||!a||!r?.length)return;const{attributes:s}=i,[o]=Ie([e],!0),n=te(s,r[0],r[1]),l=await Le(o,n,t);if(!l)return;const c=ze(o,l),h=C([o.x,o.y],[l.x,l.y]);return c&&h?{measurementAngle:c,tempDistance:h}:void 0}clearPreviousMeasurements(){this.clearMeasurementGraphics(),this.resetMeasurementData(),this.stopMeasurement()}clearPreviousGroundLocation(){this.groundCoordinates=null,this.pixelCoordinates=null}clearMeasurementGraphics(){this.measurementGraphic&&(this.activeViewer?.removeGraphic(this.measurementGraphic),this.measurementGraphic=null),this.heightGraphic&&(this.activeViewer?.removeGraphic(this.heightGraphic),this.heightGraphic=null)}digitizeCancel(){return this.sketch?.cancel()}digitizeCanRedo(){return this.sketch?.canRedo()??!1}digitizeCanUndo(){return this.sketch?.canUndo()??!1}digitizeComplete(){return this.sketch?.complete()}async digitizeCreate(e,t){const{sketch:i,digitizationLayer:a}=this;if(!i)throw ot();Fe(a,e,i),await i.create(e,{...t,defaultZ:0})}async digitizeDelete(){if(!this.sketch)throw ot();return this.sketch.delete()}digitizeDuplicate(){if(!this.sketch)throw ot();return this.sketch.duplicate()}digitizePlace(e,t){if(!this.sketch)throw ot();return this.sketch.place(e,t)}digitizeRedo(){if(!this.sketch)throw ot();return this.sketch.redo()}digitizeUndo(){if(!this.sketch)throw ot();return this.sketch.undo()}digitizeUpdate(e,t){if(!this.sketch)throw ot();return this.sketch.update(e,t)}async displayHeightResults(){const{currentBestFeature:e,activeViewer:t,heightMeasurementPixels:i}=this,a=t?.imageSize,r=e?.attributes;if(!r||!a)return;const s=await this.computeHeight(i);s?.value&&s?.accuracy&&(this.heightMeasurementResult=s.value,this.heightMeasurementAccuracy=s.accuracy)}filterByFootprints(e,t){const i=[],a=[],r=[];return e.forEach((e=>{const{layer:{coveragePercent:s},attributes:o}=e;let n;const l=M(e.geometry.spatialReference);o.cameraHeight/=l,o.farDistance/=l,o.nearDistance/=l,$(o.elevationSource)&&(o.elevationSource.constantElevation/=l);const{polygon:c,frustum:h}=U(o);if(n=c.clone(),o.isInspection&&(n=N(o)),s&&(n=W(n,s)),q(n,t)){r.push(e);const{geometry:t,objectId:s,cameraHeight:n,cameraHeading:l}=o,u=t.clone();u.z=n,u.imageID=s,this.pointSources.push(u),l!==ve&&(i.push(c),h&&a.push(h))}})),{features:r,polygons:i,frustums:a}}getMeasurementProperties(){const{currentBestFeature:e,activeViewer:t}=this;if(!e||!t?.imageSize)return;const{elevationSample:i,attributes:a}=e,{elevationSource:r,cameraHeight:s}=a,o=te(a,t.imageSize[0],t.imageSize[1]);let n=o.cameraLocation;return(n.spatialReference.isGeographic?L(n,z.WebMercator):Promise.resolve(n)).then((e=>(n=e,ie((n.z??0)-s,{elevationSample:i,elevationSource:r,extent:this.footprintExtent})))).then((t=>("elevationSample"in t&&ae(t.elevationSample)&&(e.elevationSample=t.elevationSample),{...o,cameraLocation:n,updateElevationProps:t})))}getMeasurementPropertiesPanoramic(){const{currentBestFeature:e,activeViewer:t}=this;if(!e||!t?.imageSize)return;const{elevationSample:i,attributes:a}=e,{elevationSource:r,cameraHeight:s}=a,o=re(a,t.imageSize[0],t.imageSize[1]);let n=o.cameraLocation;return(n.spatialReference.isGeographic?L(n,z.WebMercator):Promise.resolve(n)).then((e=>(n=e,ie((n.z??0)-s,{elevationSample:i,elevationSource:r,extent:this.footprintExtent})))).then((t=>("elevationSample"in t&&ae(t.elevationSample)&&(e.elevationSample=t.elevationSample),{...o,cameraLocation:n,updateElevationProps:t})))}async deleteDigitizedFeatures(e){const{digitizationLayer:t}=this;if(!t)throw new n("Digitization layer is not available");return t.queryFeatures({objectIds:e}).then((({features:e})=>t.applyEdits({deleteFeatures:e})))}handleSectorClick(e){if(isNaN(e))return;const t=this._sectorData?.[we[e]];t?.length&&this._updateCurrentBestFeature(t.at(0))}handleFeatureClick(e){const{sector:t,featureIndexInSector:i}=e;if(isNaN(i))return;const a=this._sectorData?.[t];a?.length&&this._updateCurrentBestFeature(a.at(i))}handleDrawCursorUpdateEvents(e){const{measurementAngle:t,tempDistance:i,heightMeasurementPixels:a}=this;if(!e.vertices)return;const r=e.vertices.at(-1);if(a.length<1||!r||!i||!t)return;const s=xe(a[0],r,t);if(!s?.length)return;this.heightMeasurementPixels.push(s),this.createPolylineGraphic();const o=Be(this.heightMeasurementPixels,i);o&&(this.heightMeasurementResult=o)}async handleDrawVertexAddEvents(e,t){const{currentBestFeature:i,activeViewer:a,heightMeasurementPixels:r}=this;if(!i||!a||!e.vertices?.length)return;const s=a?.imageSize;if(!r.length&&s){const i=e.vertices.at(-1);this.heightMeasurementPixels.push(i);const a=await this.calculateHeightMeasurementInfo(i,t);if(!a?.measurementAngle||!a?.tempDistance)return;this.measurementAngle=a.measurementAngle,this.tempDistance=a.tempDistance}}async load(e){return this.addResolvingPromise(this._loadViewAdapter(e).catch((e=>{if(!y(e))throw e}))),this}async loadBestImage(e,t){return this.view?.closePopup(),this.displayMessage=null,this.clearPreviousGroundLocation(),this.imageLocationToolState=!1,this.selectedPoint=e.spatialReference.isGeographic?E(e):e.clone(),this.features.removeAll(),this.currentBestFeature=null,this.additionalFeatures.removeAll(),this.additionalFootprints.removeAll(),this.additionalCameraLocations.removeAll(),this.bestFeatureCurrentFootprint=d(this.bestFeatureCurrentFootprint),this._overlays?.removeAll(),this._fetchFeaturesWithController(e,t)}loadImageError(e){u.getLogger(this).error("oriented-imagery-viewer:load-image",e),this.setMessage("imageLoadError","error",e.message)}async loadSketch(e){if(!this.sketch){const t=import("../Sketch/SketchViewModel.js"),{default:i}=await t;f(e),this.sketch=new i({layer:this._sketchGraphicsLayer,view:this.activeViewer?.imageRenderer,updateOnGraphicClick:!1,defaultUpdateOptions:{reshapeOptions:{edgeOperation:"none",shapeOperation:"none",vertexOperation:void 0},enableMoveAllGraphics:!1,enableRotation:!1,enableScaling:!1,multipleSelectionEnabled:!1,toggleToolOnClick:!1,tool:"transform"}})}return this.sketch}async loadMeasurementAdapter(e){if(!this.sketchAdapter){const t=import("./adapters/sketch/MeasurementAdapter.js"),{default:i}=await t;if(f(e),this.sketchAdapter=new i({viewModel:this}),!this.sketchAdapter.viewModel.isResolved())return}return this.sketchAdapter}async startMeasurement(e,t){await this.loadSketch(t),await this.loadMeasurementAdapter(t);const{sketch:i,sketchAdapter:a,activeViewer:r,mode:s}=this;if(!i||!a||!r||"none"===s)return;if(this.displayNewMeasurementButton=!1,"panoramic"===s&&(i.defaultCreateOptions.defaultZ=0),await i.create(e),"panoramic"===s){const{drawOperation:e}=i.view.activeTool;e.constraintsEnabled=!1,e._set("elevationDrawSurface",null)}const o=this.activeViewer?.imageRenderer.effectiveTheme.accentColor;o&&this.sketch&&(this.sketch.polygonSymbol=De(o),this.sketch.polylineSymbol=Te(o))}startHeightMeasurement(){this.heightMeasurementPixels=[],this.displayNewMeasurementButton=!1,this.draw??=new de({view:this.activeViewer?.imageRenderer});this.draw.create("polyline").on(["cursor-update","vertex-add","draw-complete"],(e=>this.handleDrawEvents(e)))}createPolylineGraphic(){const e=[this.heightMeasurementPixels[0],this.heightMeasurementPixels.at(-1)],i=this.activeViewer?.imageRenderer.spatialReference;if(this.heightGraphic)this.heightGraphic.geometry=new j({paths:[e],spatialReference:i});else{const a=new j({paths:[e],spatialReference:i}),r=this.activeViewer?.imageRenderer.effectiveTheme.accentColor;this.heightGraphic=new t({geometry:a,symbol:Te(r,2.5)}),this.activeViewer?.addGraphic(this.heightGraphic)}}async handleDrawEvents(e,t){if(this.draw)switch(e.type){case"cursor-update":this.handleDrawCursorUpdateEvents(e);break;case"vertex-add":this.handleDrawVertexAddEvents(e,t);break;case"draw-complete":await this.displayHeightResults()}}initializeMeasurement(e){switch(this.clearMeasurementGraphics(),this.resetMeasurementData(),e){case"distance":this.startMeasurement("polyline");break;case"area":this.startMeasurement("polygon");break;case"height":this.startHeightMeasurement()}}async overlayCameraLocations(e){const{activeViewer:i,currentBestFeature:a,overlayedCameraLocations:r,layer:s,mode:o,state:n}=this,l=i?.imageSize;if(!l||!a||!s||"none"===o||n.includes("loading"))return;const{polygon:c}=U(a.attributes);if(i.removeManyGraphics(r.toArray()),r.removeAll(),e){const{features:e}=await s.queryFeatures({where:`${s.objectIdField} <> ${a.attributes.objectId}`,geometry:c,returnGeometry:!0,outFields:[s.objectIdField]}),n=await Promise.all(e.map((async e=>{const{attributes:i,geometry:r}=e,s=await this.getPixels(r,{feature:a,imageSize:l,mode:o}),n=Ue.clone();return n.outline=new me({color:[0,0,0],width:1}),new t({attributes:i,symbol:n,geometry:s})})));r.addMany(n),i.addManyGraphics(r.toArray())}}overlayGraphicsOnImage(e,t){this.removeOverlayedGraphicsOnImage(e),this.overlayedMapFeatures.set(e,t),this.activeViewer?.addManyGraphics(t.toArray())}async overlayMapFeatures(e,a=!1){const{activeViewer:r,currentBestFeature:o,mode:n,state:l}=this,c=r?.imageSize;if(!c||!o||"none"===n||l.includes("loading"))return;const{polygon:h}=U(o.attributes),p=_e(e);try{const{imageGeometryField:t,oiObjectIdField:i}=Pe(e);this.imageGeometryField=t.name,this.oiObjectIdField=i.name}catch(g){u.getLogger(this).warn("oriented-imagery-viewer:overlay-map-features",g)}const{features:m}=await e.queryFeatures({geometry:h,returnGeometry:!0,outFields:["*"]}),d=new s((await Promise.all(m.map((async i=>{const r=i.symbol?.clone()??e.renderer?.getSymbol(i)?.clone(),{attributes:s,geometry:l}=i;let h=l;if(p&&this.imageGeometryField&&this.oiObjectIdField){if(s[this.oiObjectIdField]===`${o.attributes.objectId}`)return h=B(JSON.parse(atob(s[this.imageGeometryField]))),new t({attributes:s,layer:e,symbol:h.type===e.geometryType?r:Ne(h.type)?.()??null,geometry:h,visible:e.visible&&a})}switch(h?.type){case"point":{const i=await this.getPixels(h,{feature:o,imageSize:c,mode:n});return new t({attributes:s,layer:e,symbol:r,geometry:i,visible:e.visible&&a})}case"polygon":{const{rings:i,spatialReference:l}=h,u=i.map((e=>e.map((([e,t,i])=>new G({x:e,y:t,z:i,spatialReference:l}))))),p=await Promise.all(u.map((async e=>this.getPixels(e,{feature:o,imageSize:c,mode:n}).then((e=>e.map(se))))));return new t({attributes:s,layer:e,symbol:r,geometry:new O({rings:p,spatialReference:z.WebMercator}),visible:e.visible&&a})}case"polyline":{const{paths:i,spatialReference:l}=h,u=i.map((e=>e.map((([e,t,i])=>new G({x:e,y:t,z:i,spatialReference:l}))))),p=await Promise.all(u.map((async e=>this.getPixels(e,{feature:o,imageSize:c,mode:n}).then((e=>e.map(se))))));return new t({attributes:s,layer:e,symbol:r,geometry:new j({paths:p,spatialReference:z.WebMercator}),visible:e.visible&&a})}case"multipoint":{const{points:i,spatialReference:l}=h,u=i.map((([e,t,i])=>new G({x:e,y:t,z:i,spatialReference:l}))),p=await this.getPixels(u,{feature:o,imageSize:c,mode:n}).then((e=>e.map(se)));return new t({attributes:s,layer:e,symbol:r,geometry:new R({points:p,spatialReference:z.WebMercator}),visible:e.visible&&a})}}return null})))).filter(i));this.overlayGraphicsOnImage(`${e.id}`,d)}async getPixels(e,t){const{imageSize:i,mode:a}=t,r=(await this.worldToImage(Array.isArray(e)?e:[e])).map((e=>{if("default"===a)return new G({x:e.x-.5,y:.5-e.y,spatialReference:z.WebMercator});const[t,r]=i,{heading:s,pitch:o}=ee(e,t,r),n=le(s,o);return new G(n,z.WebMercator)}));return Array.isArray(e)?r:r[0]}async getMapPoint(e,t){const{feature:i,mode:a,imageSize:r}=t,{elevationSample:s,attributes:o}=i,{elevationSource:n,location:l,elevation:c,cameraHeight:h}=o;let u=l.clone();u.spatialReference.isGeographic&&(u=await L(u,z.WebMercator));const p=await ie(c??(l.z??0)-h,{elevationSample:s,elevationSource:n,extent:this.footprintExtent});let m;if("elevationSample"in p&&ae(p.elevationSample)&&(i.elevationSample=p.elevationSample),"default"===a){const t=te(o,r[0],r[1]);m=await Z(Array.isArray(e)?e:[e],{...t,cameraLocation:u},p)}else{const t=re(o,r[0],r[1]);m=await K(Array.isArray(e)?e:[e],{...t,cameraLocation:u},p)}return Array.isArray(e)?m:m[0]}async plotMapPoint(e){return this.plotReferencePoint(e),this.transformAndPlotReferencePointOnImage({feature:this.currentBestFeature,selectedLocation:e,options:{signal:this._transformController?.signal}})}plotReferencePointOnGround(e){this._referencePointOnGround&&(this._overlays?.remove(this._referencePointOnGround),this._referencePointOnGround.destroy()),null!=e&&(this._referencePointOnGround=new t({geometry:new G({...e.toJSON()}),symbol:We}),this.view?this._overlays?.add(this._referencePointOnGround):this.emit("plot-ground-point",{data:{point:this._referencePointOnGround?.geometry}}))}plotReferencePointOnImage(e){if("image-loaded"===this.state)switch(this.clearReferencePointOnImage(),this.mode){case"default":{const i=c.isSerializable(e)?e.toJSON():e;i.x-=.5,i.y=.5-i.y,this._referencePointOnImage=new t({geometry:new G({spatialReference:this._imageViewer.imageRenderer.spatialReference.clone(),...i}),symbol:We}),this._imageViewer.addGraphic(this._referencePointOnImage,0);break}case"panoramic":{const{imageSize:i}=this._panoramicViewer;if(!i)return;const[a,r]=i,{heading:s,pitch:o}=ee(e,a,r),n=le(s,o);this._referencePointOnImage=new t({geometry:new G(n,z.WebMercator),symbol:qe}),this._panoramicViewer.addGraphic(this._referencePointOnImage,0);break}}}removeAllOverlayMapFeatures(){this.overlayedMapFeatures.forEach((e=>{this._imageViewer.removeManyGraphics(e.toArray())})),this.overlayedMapFeatures.clear()}removeOverlayedGraphicsOnImage(e){const t=this.overlayedMapFeatures.get(e);t?.length&&(this.activeViewer?.removeManyGraphics(t.toArray()),this.overlayedMapFeatures.delete(e))}resetImage(){switch(this.setMessage("onLoadMessage","info"),this.mode){case"default":this._imageViewer.clearImage(),this._imageViewer.clearGraphics();break;case"panoramic":this._panoramicViewer.clearGraphics()}this._clickTask=m(this._clickTask)}resetMeasurementData(){this.areaMeasurementResult=0,this.areaMeasurementAccuracy=0,this.distanceMeasurementResult=0,this.distanceAccuracyArray=[],this.heightMeasurementPixels=[],this.heightMeasurementResult=0,this.tempDistance=null,this.measurementAngle=null,this.heightMeasurementAccuracy=0,this.heightGraphic=null}async saveDrawing(){const{digitizationLayer:e,sketchAdapter:t}=this;if(!e||"digitization"!==t?.type)return;const{pendingGraphics:i,savedGraphics:a}=t,r=i.get(e.id),s=r?.toArray();if(!r||!s?.length)return;const{addFeatureResults:o}=await this.saveDigitizedFeatures(s),n=o.reduce(((t,{objectId:i,globalId:a,error:r},o)=>{const n=s[o],{attributes:l}=n;return r?t.error.push(n):(i&&(l[e.objectIdField]=i),a&&e.globalIdField&&(l[e.globalIdField]=a),t.success.push(n)),t}),{success:[],error:[]});a.addMany(n.success),r.removeAll(),r.addMany(n.error)}async saveDigitizedFeatures(e){const{activeViewer:t,currentBestFeature:a,digitizationLayer:r,mode:s}=this,o=t?.imageSize;if(!o||!a||"none"===s)throw new n("Image size, current best feature and mode are required to save digitized features");if(!r)throw new n("Digitization layer is not available");const l=await Promise.all(e.map((async e=>{const t=e.clone(),{geometry:i}=t;if(!i)return;const n=i.type,l=r.hasZ,c=r.geometryType,h=n!==c,u=h?await import("./transformers.js"):null,p=u?.default[c],m=h?p?.(i):i;if(m)switch(m.type){case"point":return t.geometry=await this.getMapPoint(oe(s,m,o),{feature:a,imageSize:o,mode:s}),l||(delete t.geometry.z,t.geometry.hasZ=!1),t.geometry.hasM=!1,t;case"polygon":{const e=await Promise.all(m.rings.map((async e=>this.getMapPoint(e.map((([e,t,i])=>oe(s,{x:e,y:t,z:i},o))),{feature:a,imageSize:o,mode:s}))));return t.geometry=new O({spatialReference:e[0][0].spatialReference,hasZ:l,hasM:!1,rings:e.map((e=>e.map(se)))}),t}case"polyline":{const e=await Promise.all(m.paths.map((async e=>this.getMapPoint(e.map((([e,t,i])=>oe(s,{x:e,y:t,z:i},o))),{feature:a,imageSize:o,mode:s}))));return t.geometry=new j({spatialReference:e[0][0].spatialReference,hasZ:l,hasM:!1,paths:e.map((e=>e.map(se)))}),t}}}))),c=l.filter(i);return r.applyEdits({addFeatures:c}).then((e=>{const{addFeatureResults:t}=e;let i=0;const a=l.map((e=>{const a=t[i++];return e?a:{error:new n("Error in saving digitized features"),objectId:null,globalId:null}}));return{...e,addFeatureResults:a}}))}async searchBestImage(e,t){try{const i=await D(e,t);i&&await this._processFeatureResponse(i,e.point,{signal:t?.signal})}catch(i){y(i)||(this.setMessage("imageLoadError","error",i.message),u.getLogger(this).error("error occurred while finding best image",i))}}selectBestFeature(e){this.currentBestFeature=this.features?.find((({attributes:t})=>t.objectId===Number(e)))}setAdditionalCameraLocationsVisibility(e){this.additionalCameraLocations.forEach((t=>{t.visible=e}))}setAdditionalCoverageVisibility(e){this.additionalFootprints.forEach((t=>{t.visible=e}))}setCurrentCoverageVisibility(e){this.bestFeatureCurrentFootprint&&(this.bestFeatureCurrentFootprint.visible=e),this.currentBestFeatureLocation&&(this.currentBestFeatureLocation.visible=e)}setMapImageConversionToolState(e){this.mapImageConversionToolState=e}async startDigitization(e,t){const i=this.activeViewer?.imageRenderer;if(!i)return;const a=this.overlayedMapFeatures.get(e.id)?.toArray()??[];this.removeOverlayedGraphicsOnImage(e.id),this.collectionId=e.id,await this.loadSketch(t),await this.loadDigitizationAdapter(t),f(t),this.sketchGraphicsLayer?.addMany(a),this.sketchAdapter?.savedGraphics.addMany(a);i.ui.find("zoom").visible=!1,i.map.layers.add(this.sketchGraphicsLayer)}stopDigitization(e){this.sketch?.cancel();const t=this.sketchAdapter?.savedGraphics;this.sketchGraphicsLayer?.removeAll();const i=this.activeViewer?.imageRenderer;if(!t||!i)return;this.overlayGraphicsOnImage(e,t);i.ui.find("zoom").visible=!0,i.map.layers.remove(this.sketchGraphicsLayer)}stopMeasurement(){this.heightMeasurementPixels=[],this.draw?.reset(),this.sketch?.cancel()}toggleAllOverlayMapFeatures(e){this.overlayedMapFeatures.forEach((t=>{this._toggleVisiblity(t,e)}))}toggleOverlayMapFeatures(e,t){const i=this.overlayedMapFeatures.get(e);i&&this._toggleVisiblity(i,t)}toggleSelection(e){const{sketch:t}=this;t&&(t.updateOnGraphicClick=e,t.cancel())}async transformAndPlotReferencePointOnImage(e){const{selectedLocation:t,options:i}=e;let a=!1,r=!1;const s=this.bestFeatureFootprint?.geometry;switch(s?.type){case"polygon":{const e=t.spatialReference.equals(s.spatialReference)?t:await L(t,s.spatialReference);a=s.contains(e);break}case"mesh":{const e=t.spatialReference.equals(s.spatialReference)?t:await L(t,s.spatialReference);r=s.extent.contains(e);break}}if(!a&&!r)return void this.clearReferencePointOnImage();const o=await this.worldToImage(t,i);if(o)return f(i),this.plotReferencePointOnImage(o),{x:o.x,y:o.y};this.clearReferencePointOnImage()}updateSuitabilities(e){e.sort(((e,t)=>e.suitability-t.suitability)),this._suitabilities=e;const t=this._suitabilities.map((({feature:e})=>e));this._initialCurrentCoverageUpdate=!0,this._updateFeatures(t),this._groupFeaturesBySectors()}async _fetchFeatures(e,t){if(!this.view)return;const i=this.layer;if(i){const a={include:i},r=this.view.toScreen(e);if(!r)return;const s=await this.view.hitTest(r,a);return this._processHitTestResults(i,s,t)}}async _fetchFeaturesWithController(e,t){try{await this._fetchFeatures(e,t)}catch(i){if(y(i))return;this.setMessage("imageLoadError","error"),u.getLogger(this).error("error occurred while fetching features",i)}}_groupFeaturesBySectors(){const{_suitabilities:e,additionalFeatures:t,currentBestFeature:i,features:a,invalidCameraHeading:r}=this;if(!e||!t||!i||!a||r)return void(this._sectorData=null);this._sectorData={};for(const c of we)this._sectorData[c]=new s;const o=e.map(((e,t)=>({...e,featureIndex:t})));o.sort(((e,t)=>e.trueSuitability-t.trueSuitability));const n=o.map((({distance:e})=>e)),l=Math.max(...n);o.forEach((e=>{const{distance:t,angle:i,featureIndex:r}=e,s=t/l*be[2],o=et(t,l),n=tt(i);if(!this._sectorData)return;const c=be[3]+s*Math.sin(i*Math.PI/180),h=be[3]+s*Math.cos(i*Math.PI/180);let u;const p=a.at(r),m=p===this.currentBestFeature,d=this.currentBestFeature?.attributes.cameraPitch&&this.currentBestFeature?.attributes.cameraPitch<5;if(m&&d)u=-90;else{const e=c-be[3],t=h-be[3],i=t/Math.sqrt(e**2+t**2);let a=180*Math.acos(i)/Math.PI;(e<0&&t<0||e<0&&t>0)&&(a*=-1),u=a}const g=""===o?n:`${o}_${n}`;m&&(u===this.bestFeatureAngle?this.previousFeatureAngle=u:this.bestFeatureAngle=u,this.navigatorCurrentBestFeature=d?null:{x:c,y:h,direction:n});const y=this._sectorData[g];y.add({angle:i,featureIndex:r,x:c,y:h,objectID:p.attributes.objectId,sector:g,featureIndexInSector:y.length})}))}async _processFeatureResponse(e,t,i){const{features:a}=e;if(!a?.length)return this.setMessage("noImageError","error"),void(this.currentBestFeature=null);this.coveragePolygons.removeAll(),this.coverageFrustums.removeAll(),this.pointSources.removeAll();const{features:r,polygons:s,frustums:o}=this.filterByFootprints(a,t);if(!r.length)return this.setMessage("noImageError","error"),void(this.currentBestFeature=null);let n;if(this.coveragePolygons.addMany(s),this.coverageFrustums.addMany(o),s[0]){let e=new O({spatialReference:s[0].spatialReference});for(const i of s)e=await V(e,i);const t=[];for(const{geometry:i}of r)e.contains(i)||t.push([i.x,i.y]);if(t.sort(((e,t)=>+x([e,t]))),e.addRing(t),this.footprintExtent=ge(e.extent,2,2),this.view?.supportsGround)try{n=await this.view.map.ground.createElevationSampler(this.footprintExtent,i)}catch(l){y(l)||u.getLogger(this).error(l)}}if((n||r[0].attributes.elevationSource)&&this.footprintExtent){const e=r[0].attributes.elevationSource;J(e)&&!n&&(n=await X({extent:this.footprintExtent,lod:e.lod,url:e.url,rasterFunction:e.rasterFunction}));const i=await ie((r[0].attributes.location.z??0)-r[0].attributes.cameraHeight,{elevationSample:n,elevationSource:e,extent:this.footprintExtent}),[a,...s]=await Q([t,...r.map((e=>e.attributes.geometry.clone()))],i);r[0].elevationSample=n??i.elevationSample,t.elevation=a.z,r.forEach(((e,t)=>{e.attributes.elevation=s[t].z}))}r[0].elevationSample&&r.forEach((e=>{e.elevationSample=r[0].elevationSample})),this._suitabilities=T({features:r,selectedPoint:t,camera:Xe(this.view)?this.view.camera:null,currentImage:this.currentBestFeature}),this.updateSuitabilities(this._suitabilities)}async _processHitTestResults(e,t,i){const{screenPoint:a,results:[r]}=t,s="graphic"===r?.type&&this.shouldShowSelectedImage,o=r?.mapPoint??this.view?.toMap(a);if(!o)return;const{layerFloorFilterClause:n}=this,l=e.spatialReference.equals(o.spatialReference)?o:await L(o,e.spatialReference),c=S("1=1",S(e.definitionExpression,n)),h=l.spatialReference.isGeographic?1:M(l.spatialReference),u={layerInstanceOrURL:e,point:l,queryParams:{where:c,maximumDistance:e.maximumDistance?e.maximumDistance/h:void 0,objectIds:s?[r.graphic.getAttribute(e.objectIdField)]:void 0}};await this.searchBestImage(u,i)}_toggleVisiblity(e,t){e.forEach((e=>{e.visible=t}))}_updateFeatures(e){if(!e.length)return this.currentBestFeature=null,void this.additionalFeatures.removeAll();this.features.removeAll(),this.features.addMany(e),e.length>1?this.additionalFeatures.addMany(e.slice(1)):this.additionalFeatures.removeAll(),this.currentBestFeature=e[0]}async _updatePointsAndPolygons(e){const{pointSources:i,currentBestFeature:a,currentCoverageVisible:r,isAdditionalPointSourcesVisible:s}=this;if(a&&(this.additionalFootprints.removeAll(),this.additionalCameraLocations.removeAll(),this.bestFeatureCurrentFootprint&&(this.bestFeatureCurrentFootprint.destroy(),this.bestFeatureCurrentFootprint=null,this.bestFeatureFootprint=null),!this.invalidCameraHeading)){await(this._adapter?.createFootprints(e)),f(e);for(const e of i)e.imageID===a.attributes.objectId?this.currentBestFeatureLocation=new t({attributes:{imageID:e.imageID},geometry:e,symbol:$e,visible:r}):this.additionalCameraLocations.push(new t({attributes:{imageID:e.imageID},geometry:e,symbol:Ue,visible:s}))}}_updateCurrentBestFeature(e){if(!e)return;this.currentBestFeature=this.features?.at(e.featureIndex);const t=this.currentBestFeature?.attributes.cameraPitch&&this.currentBestFeature?.attributes.cameraPitch<5;let i;if(t)i=-90;else{const t=e.x-be[3],a=e.y-be[3],r=a/Math.sqrt(t**2+a**2);let s=180*Math.acos(r)/Math.PI;(t<0&&a<0||t<0&&a>0)&&(s*=-1),i=s}i===this.bestFeatureAngle?this.previousFeatureAngle=i:this.bestFeatureAngle=i,this.navigatorCurrentBestFeature=t?null:{x:e.x,y:e.y,direction:e.sector.includes("_")?e.sector.split("_")[1]:e.sector}}clearGraphics(){this._imageViewer.clearGraphics(),this._panoramicViewer.clearGraphics()}clearReferencePointOnImage(){this._referencePointOnImage&&(this._imageViewer.removeGraphic(this._referencePointOnImage),this._panoramicViewer.removeGraphic(this._referencePointOnImage),this._referencePointOnImage=d(this._referencePointOnImage))}plotReferencePoint(e){"mapPoint"in e?this.plotReferencePointOnGround(e.mapPoint):this.plotReferencePointOnGround(e)}setMessage(e,t,i,a){this.displayMessage={key:e,type:t,data:i,map:a}}async transformAndPlotSelectedLocation(e){const{currentBestFeature:t,invalidCameraHeading:i,selectedPoint:a,state:r}=this;if(this._crossSymbol&&(this._panoramicViewer.removeGraphic(this._crossSymbol),this._imageViewer.removeGraphic(this._crossSymbol),this._crossSymbol=d(this._crossSymbol)),!a||!t||"image-loaded"!==r||i)return;let s;try{s=await this.worldToImage(a,e),f(e),await this.plotSelectedPointOnImage(s,e)}catch(o){y(o)||u.getLogger(this).error("failed to transform map point to pixel, cross symbol will not be plotted on image",{error:o,selectedPoint:a,feature:t})}}async worldToImage(e,t){const{footprintExtent:i}=this,{imageSize:a}=this.activeViewer;if("none"===this.mode||!this.currentBestFeature||!a||!i)return;const{attributes:{location:r,elevationSource:s,cameraHeading:o,elevation:n,cameraHeight:l},elevationSample:c}=this.currentBestFeature;let h=r.clone();const u=await ie(n??(r.z??0)-l,{elevationSample:c,elevationSource:s});this.currentBestFeature.elevationSample=u.elevationSample;const p=Array.isArray(e)?e:[e];let m,d=await Promise.all(p.map((e=>new Promise((t=>{if(!e.hasZ)return t(Q(e,u));t(e)})))));if(r.spatialReference.isGeographic&&(h=await L(h,z.WebMercator,t)),d=await Promise.all(d.map((async e=>h.spatialReference.equals(e.spatialReference)?e:await L(e,h.spatialReference,t)))),f(t),"panoramic"===this.mode)m=he(d,{imageHeight:a[1],imageWidth:a[0],cameraHeading:o,cameraLocation:h});else{const e=ne(this.currentBestFeature.attributes,a[0],a[1]);m=ue(d,{...e,cameraLocation:h})}return Array.isArray(e)?m:m[0]}updateCurrentCoveragePolygon(e){const{additionalFootprints:i,additionalCameraLocations:a,currentBestFeature:r,currentBestFeatureLocation:s,currentCoverageVisible:o,selectedPoint:n,view:l,_adapter:c}=this,{attributes:{objectId:h},elevationSample:u}=r;if(this._initialCurrentCoverageUpdate){if(this._overlays?.removeAll(),this._initialCurrentCoverageUpdate=!1,this.bestFeatureCurrentFootprint=d(this.bestFeatureCurrentFootprint),e&&!this.invalidCameraHeading&&(e.visible=o,this.bestFeatureCurrentFootprint=e),l){const e=[...i,...a,this.bestFeatureCurrentFootprint,s].filter(Ye);l.supportsGround&&u&&c?.updateGroundElevation&&c.updateGroundElevation(e,u),n&&e.push(new t({geometry:n.clone(),symbol:Ee.clone(),attributes:{imageID:h}})),this._overlays.graphics.addMany(e)}}else if(l){if(this.invalidCameraHeading)return;this.bestFeatureCurrentFootprint&&(this._overlays?.remove(this.bestFeatureCurrentFootprint),this.bestFeatureCurrentFootprint=d(this.bestFeatureCurrentFootprint));const t=this.bestFeatureCurrentFootprint&&this._overlays?this._overlays.graphics.indexOf(this.bestFeatureCurrentFootprint):-1;e&&(this.bestFeatureCurrentFootprint=e,l?.supportsGround&&u&&c?.updateGroundElevation&&c.updateGroundElevation([e],u),e.visible=this.currentCoverageVisible,this._overlays?.graphics.add(this.bestFeatureCurrentFootprint,t>=0?t:this._overlays.graphics.length-1))}}};e([I()],nt.prototype,"activeLayer",null),e([I({readOnly:!0})],nt.prototype,"activeViewer",null),e([I()],nt.prototype,"accuracyParametersMissing",null),e([I()],nt.prototype,"additionalFeatures",void 0),e([I({type:s.ofType(t)})],nt.prototype,"additionalCameraLocations",void 0),e([I({type:s.ofType(t)})],nt.prototype,"additionalFootprints",void 0),e([I()],nt.prototype,"areaMeasurementResult",void 0),e([I()],nt.prototype,"areaMeasurementAccuracy",void 0),e([I()],nt.prototype,"bestFeatureAngle",void 0),e([I()],nt.prototype,"bestFeatureCurrentFootprint",void 0),e([I({type:t})],nt.prototype,"bestFeatureFootprint",void 0),e([I({type:Number})],nt.prototype,"brightness",null),e([I()],nt.prototype,"collectionId",void 0),e([I({type:Number})],nt.prototype,"contrast",null),e([I()],nt.prototype,"conversionProps",void 0),e([I()],nt.prototype,"coverageFrustums",void 0),e([I()],nt.prototype,"coveragePolygons",void 0),e([I()],nt.prototype,"currentBestFeature",void 0),e([I()],nt.prototype,"currentBestFeatureLocation",void 0),e([I()],nt.prototype,"currentCoverageVisible",void 0),e([I({json:{write:!1}})],nt.prototype,"determineWorkflowForFeature",void 0),e([I()],nt.prototype,"disabled",void 0),e([I()],nt.prototype,"displayMessage",void 0),e([I()],nt.prototype,"displayNewMeasurementButton",void 0),e([I()],nt.prototype,"distanceMeasurementResult",void 0),e([I()],nt.prototype,"distanceAccuracyArray",void 0),e([I()],nt.prototype,"digitizationLayer",void 0),e([I({readOnly:!0})],nt.prototype,"featureCount",null),e([I()],nt.prototype,"features",void 0),e([I()],nt.prototype,"groundCoordinates",void 0),e([I()],nt.prototype,"heightMeasurementPixels",void 0),e([I()],nt.prototype,"heightGraphic",void 0),e([I()],nt.prototype,"heightMeasurementResult",void 0),e([I()],nt.prototype,"heightMeasurementAccuracy",void 0),e([I()],nt.prototype,"measurementAngle",void 0),e([I()],nt.prototype,"tempDistance",void 0),e([I({readOnly:!0})],nt.prototype,"imageGalleryEnabled",null),e([I()],nt.prototype,"imageGeometryField",void 0),e([I({readOnly:!0})],nt.prototype,"imageLoaded",null),e([I()],nt.prototype,"imageLocationToolState",void 0),e([I({readOnly:!0})],nt.prototype,"invalidCameraHeading",null),e([I()],nt.prototype,"imagePointsInView",null),e([I()],nt.prototype,"isAdditionalCoverageVisible",void 0),e([I()],nt.prototype,"isAdditionalPointSourcesVisible",void 0),e([I()],nt.prototype,"layer",void 0),e([I()],nt.prototype,"layerView",null),e([I({readOnly:!0})],nt.prototype,"layerFloorFilterClause",null),e([I({type:Number})],nt.prototype,"localPort",void 0),e([I()],nt.prototype,"mapImageConversionToolState",void 0),e([I()],nt.prototype,"measureType",void 0),e([I()],nt.prototype,"measurementGraphic",void 0),e([I({readOnly:!0,value:"none"})],nt.prototype,"mode",null),e([I()],nt.prototype,"navigatorCurrentBestFeature",void 0),e([I()],nt.prototype,"oiObjectIdField",void 0),e([I({type:s.ofType(t)})],nt.prototype,"overlayedCameraLocations",void 0),e([I()],nt.prototype,"overlayedMapFeatures",void 0),e([I()],nt.prototype,"pixelCoordinates",void 0),e([I()],nt.prototype,"pointSources",void 0),e([I({readOnly:!0})],nt.prototype,"popupEnabled",null),e([I()],nt.prototype,"previousFeatureAngle",void 0),e([I()],nt.prototype,"referencePoint",null),e([I({readOnly:!0})],nt.prototype,"sectorData",null),e([I()],nt.prototype,"selectedPoint",void 0),e([I({type:Number})],nt.prototype,"sharpness",null),e([I()],nt.prototype,"shouldShowSelectedImage",void 0),e([I()],nt.prototype,"sketch",void 0),e([I()],nt.prototype,"draw",void 0),e([I()],nt.prototype,"sketchAdapter",void 0),e([I({readOnly:!0})],nt.prototype,"sketchGraphicsLayer",null),e([I({readOnly:!0})],nt.prototype,"state",null),e([I({readOnly:!0})],nt.prototype,"thumbnails",null),e([I()],nt.prototype,"updateFootprint",void 0),e([I()],nt.prototype,"updateFootprintPanorama",void 0),e([I({value:null})],nt.prototype,"view",null),e([I()],nt.prototype,"_adapter",void 0),e([I()],nt.prototype,"_sketchGraphicsLayer",null),e([I()],nt.prototype,"_highlightedFeatureHandle",void 0),e([I()],nt.prototype,"_imageViewer",void 0),e([I()],nt.prototype,"_initialCurrentCoverageUpdate",void 0),e([I()],nt.prototype,"_overlays",void 0),e([I({readOnly:!0})],nt.prototype,"_overlaysView",null),e([I()],nt.prototype,"_panoramicViewer",void 0),e([I()],nt.prototype,"_referencePointOnGround",void 0),e([I()],nt.prototype,"_referencePointOnImage",void 0),e([I()],nt.prototype,"_sectorData",void 0),e([I({readOnly:!0})],nt.prototype,"_updatingHandles",void 0),e([I()],nt.prototype,"footprintExtent",void 0),nt=e([k("esri.widgets.OrientedImageryViewer.OrientedImageryViewerViewModel")],nt);const lt=nt;export{lt as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- const T=120,A=[21,36,51,60],E=3.5,R=["FAR_WEST","FAR_NORTH","FAR_EAST","FAR_SOUTH","WEST","NORTH","EAST","SOUTH","NEAR_WEST","NEAR_NORTH","NEAR_EAST","NEAR_SOUTH"],S=23.937554159486076,H=96.06244584051393,N={EAST:[S,S,H,S,60,S],NORTH:[S,H,S,S,S,60],SOUTH:[H,S,H,H,H,60],WEST:[H,H,S,H,60,H]},O=-999;export{E as featureCircleRadius,O as invalidCameraHeading,T as navigationToolDimensionLength,R as sectorsInOrder,A as sectorsRadii,N as segmentArcs};
5
+ const T=120,A=[21,36,51,60],E=3.5,R=["FAR_WEST","FAR_NORTH","FAR_EAST","FAR_SOUTH","WEST","NORTH","EAST","SOUTH","NEAR_WEST","NEAR_NORTH","NEAR_EAST","NEAR_SOUTH"],S=23.937554159486076,H=96.06244584051393,N={EAST:[S,S,H,S,60,S],NORTH:[S,H,S,S,S,60],SOUTH:[H,S,H,H,H,60],WEST:[H,H,S,H,60,H]},O=-999,_=100;export{E as featureCircleRadius,_ as imageGalleryThumbnailSize,O as invalidCameraHeading,T as navigationToolDimensionLength,R as sectorsInOrder,A as sectorsRadii,N as segmentArcs};
@@ -0,0 +1,5 @@
1
+ /*
2
+ All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
+ */
5
+ import t from"../../request.js";import e from"../../core/Error.js";import{deg2rad as a}from"../../core/mathUtils.js";import{throwIfAborted as r}from"../../core/promiseUtils.js";import{rotatePixel as o}from"../../layers/orientedImagery/transformations/utils.js";import{imageGalleryThumbnailSize as s}from"./constants.js";import{getContentType as n,validateTifOrMrfExtension as i}from"./utils.js";const m=t=>"FA"===t,c=async(t,a,r)=>{const o=new(await import("../../rest/support/AttachmentQuery.js").then((t=>t.default)))({objectIds:[a]}),s=await t.queryAttachments(o,r),n=s[`${a}`]?.[0],i=n?.url;if(!i)throw new e("NoAttachmentError","no attachments found",{[t.objectIdField]:a,layer:t});return{datasetFormat:n.contentType.split("/")[1].toUpperCase(),url:i}};async function h(t,e){const a="string"==typeof t?t:t.url,{origin:r,pathname:o,searchParams:s}=new URL(a);let i="string"==typeof t?void 0:t.datasetFormat;i||(i=await n(a));const m=await import("../../layers/support/rasterDatasets/RasterFactory.js").then((t=>t.default)),c=await m.open({ioConfig:{customFetchParameters:Object.fromEntries(s),skipMapInfo:!0},datasetFormat:i,url:`${r}${o}`,signal:e?.signal});return c?l(c,{signal:e?.signal}):null}async function l(t,e){const{level:a,offset:o,size:s}=u(t),{pixelBlock:n}=await t.fetchRawPixels(a,o,s,e);return r(e),n}function u(t){const{storageInfo:e,width:a,height:r}=t.rasterInfo,{maximumPyramidLevel:o,pyramidScalingFactor:s}=e,n=s??2;return{level:o,offset:{x:0,y:0},size:{width:Math.ceil(a/n**o),height:Math.ceil(r/n**o)}}}async function f(e,a,r){const{datasetFormat:o,url:n}=await c(e,+a,r);return i(o)?await h({datasetFormat:o,url:n},r):(await t(n,{...r,useRequestQueue:!0,responseType:"image",query:{w:s}})).data}function p(t,e,a=0){const{height:r,width:o}=t;e.width=o,e.height=r;const s=e.getContext("2d");if(!s)return;const n=d(t,e,s);n.getContext("2d")&&(a>0?g(s,n,o,r,a):s.drawImage(n,0,0))}function d(t,e,a){const r=document.createElement("canvas"),o=r.getContext("2d");if(t instanceof HTMLImageElement)r.width=t.width,r.height=t.height,o?.drawImage(t,0,0);else{const s=a.createImageData(e.width,e.height);s&&(s.data.set(t.getAsRGBA()),r.width=s.width,r.height=s.height,o?.putImageData(s,0,0))}return r}function g(t,e,r,s,n){const i=a(n),m=[o(0,0,i),o(r,0,i),o(r,s,i),o(0,s,i)],c=Math.max(...m.map((t=>t[0])))-Math.min(...m.map((t=>t[0]))),h=Math.max(...m.map((t=>t[1])))-Math.min(...m.map((t=>t[1]))),l=Math.min(r/c,s/h);t.save(),t.clearRect(0,0,r,s),t.translate(r/2,s/2),t.rotate(i),t.scale(l,l),t.drawImage(e,-r/2,-s/2,r,s),t.restore()}export{c as getImageSourceFromAttachment,h as getThumbnailPixelBlock,m as isFeatureAttachment,f as loadImageForAttachment,p as renderImageWithRotation};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import t from"../../request.js";import r from"../../core/Logger.js";import{sectorsRadii as e}from"./constants.js";function n(t){return"3d"===t?.type}function o(t){return"esri.Graphic"===t?.declaredClass}function i(t){if(!t)return!1;if(!URL.canParse(t))return!1;const{pathname:r}=new URL(t);return/.*\.(tiff|tif|mrf)$/i.test(r??"")}function s(t){return Math.abs(t)>=135?"WEST":t<-45&&t>-135?"SOUTH":t<=45?"EAST":"NORTH"}function a(t,r){const n=t/r*e[2];return n<=e[0]?"NEAR":n<=e[1]?"":"FAR"}function u(t){return t&&t.url&&t.datasetFormat?t:null}function c(t){return"string"==typeof t&&t.length?t:u(t)}const f=t=>r=>r.layer===t;function m(t){return"NoAttachmentError"===t?.name}const g=t=>`${t}:missing-property`,p=(t,r)=>`Property ${r} is missing in ${t}`,y=(t="esri.widgets.OrientedImageryViewer",e)=>{throw r.getLogger(t).error(e),e},d=async(e,n)=>{try{const r=await t(e,{...n,method:"head"});return r?.getHeader?.("Content-Type")}catch(o){return r.getLogger("esri.widgets.OrientedImagery").error("failed to fetch Content-Type",o),null}};function h(t,r){0!==r&&(t.xmin/=r,t.xmax*=r,t.ymin/=r,t.ymax*=r)}export{s as calculateDirection,a as calculateSegment,c as castImageSource,u as castURLWithDatasetFormat,f as filterOILLayerView,d as getContentType,p as getMissingPropertyErrorMessage,g as getMissingPropertyErrorName,o as isGraphic,m as isNoAttachmentError,n as isSceneView,i as isTifOrMrf,y as logAndThrow,h as scaleExtent};
5
+ import t from"../../request.js";import r from"../../core/Logger.js";import{sectorsRadii as n}from"./constants.js";function e(t){return"3d"===t?.type}function i(t){return"esri.Graphic"===t?.declaredClass}function o(t){return/(tiff|tif|mrf)$/i.test(t??"")}function s(t){if(!t)return!1;if(!URL.canParse(t))return!1;const{pathname:r}=new URL(t);return/.*\.(tiff|tif|mrf)$/i.test(r??"")}function f(t){return Math.abs(t)>=135?"WEST":t<-45&&t>-135?"SOUTH":t<=45?"EAST":"NORTH"}function u(t,r){const e=t/r*n[2];return e<=n[0]?"NEAR":e<=n[1]?"":"FAR"}function a(t){return t&&t.url&&t.datasetFormat?t:null}function c(t){return"string"==typeof t&&t.length?t:a(t)}const m=t=>r=>r.layer===t;function p(t){return"NoAttachmentError"===t?.name}const g=t=>`${t}:missing-property`,y=(t,r)=>`Property ${r} is missing in ${t}`,d=(t="esri.widgets.OrientedImageryViewer",n)=>{throw r.getLogger(t).error(n),n},h=async(r,n)=>{const e=await t(r,{...n,method:"head"}),i=e?.getHeader?.("Content-Type");if(i)return i.split("/")[1]};function l(t,r){0!==r&&(t.xmin/=r,t.xmax*=r,t.ymin/=r,t.ymax*=r)}export{f as calculateDirection,u as calculateSegment,c as castImageSource,a as castURLWithDatasetFormat,m as filterOILLayerView,h as getContentType,y as getMissingPropertyErrorMessage,g as getMissingPropertyErrorName,i as isGraphic,p as isNoAttachmentError,e as isSceneView,s as isTifOrMrf,d as logAndThrow,l as scaleExtent,o as validateTifOrMrfExtension};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{prefersReducedMotion as t}from"../core/a11yUtils.js";import{createTask as i}from"../core/asyncUtils.js";import a from"../core/Collection.js";import{deprecatedProperty as o}from"../core/deprecate.js";import s from"../core/Logger.js";import{deg2rad as n}from"../core/mathUtils.js";import r from"../core/ReactiveMap.js";import{watch as l,initial as c,syncAndInitial as d,whenOnce as g}from"../core/reactiveUtils.js";import{property as h}from"../core/accessorSupport/decorators/property.js";import"../core/has.js";import"../core/RandomLCG.js";import{subclass as m}from"../core/accessorSupport/decorators/subclass.js";import{rotatePixel as p}from"../layers/orientedImagery/transformations/utils.js";import u from"../layers/support/rasterDatasets/RasterFactory.js";import v from"./Widget.js";import{getAllArcPath as y}from"./OrientedImageryViewer/arcUtils.js";import{segmentArcs as w,sectorsRadii as _,featureCircleRadius as b,navigationToolDimensionLength as M}from"./OrientedImageryViewer/constants.js";import{css as T,navigation as C,navigationToolRotationFrom as f,navigationToolRotationTo as I,root as A}from"./OrientedImageryViewer/css.js";import O from"./OrientedImageryViewer/OrientedImageryViewerViewModel.js";import L from"./OrientedImageryViewer/OrientedImageryViewerVisibleElements.js";import k from"./OrientedImageryViewer/components/ImageLocationWidget.js";import E from"./OrientedImageryViewer/components/ImageOverlays.js";import{loadCalciteComponents as S}from"./support/componentsUtils.js";import{globalCss as F}from"./support/globalCss.js";import"./support/widgetUtils.js";import{messageBundle as P}from"./support/decorators/messageBundle.js";import{vmEvent as V}from"./support/decorators/vmEvent.js";import{tsx as x}from"./support/jsxFactory.js";import{substitute as j}from"../intl/substitute.js";const z={overlayMapFeatures:"overlay-map-features",overlayed:"overlayed",overlaysActionHandles:"overlays-action-handles"};let $=class extends v{constructor(e,t){super(e,t),this.digitizationEnabled=!1,this.galleryOpened=!1,this.imageEnhancementToolActive=!1,this.imageOverlaysOpened=!1,this.navigationToolActive=!1,this.viewModel=new O,this.messagesCommon=null,this.messagesSketch=null,this.pixelMeasurementUnit="meters",this.pixelAreaMeasurementUnit="square-meters",this.showCameraLocations=!1,this.showMapFeatures=!1,this.visibleElements=new L,this._actionItems=new r,this._imageMeasurementToolsLoaderTask=null,this._clearMeasurements=()=>{this.viewModel.measureType=null,this.viewModel.clearPreviousMeasurements()},this._clearImageLocation=()=>{this.imageLocationToolActive=!1},this._navigationToolExpanded=!1,this._navigationTool=null,this._warningTitleElement=null,this._galleryController=new AbortController,this._galleryObserver=new IntersectionObserver(this._lazyLoadImage.bind(this)),this._overlayedLayers=new a,this._handleDigitizationLayerChange=e=>{this.digitizationLayer&&this.stopDigitization(this.digitizationLayer.id),this.digitizationLayer=this.digitizationLayer===e?null:e,this.digitizationLayer&&this.startDigitization(this.digitizationLayer)},this._handleOverlayLayerDeselect=e=>{const t=e.layer;this.viewModel.removeOverlayedGraphicsOnImage(`${t.id}`),this.removeHandles(`${z.overlayed}-${t.id}`)},this._handleOverlayLayerSelect=e=>{const t=e.layer;this.viewModel.overlayMapFeatures(t,this.showMapFeatures),this.addHandles(l((()=>t.visible),(()=>{this.viewModel.toggleOverlayMapFeatures(t.id,t.visible)})),`${z.overlayed}-${t.id}`)},this._highlight=e=>{const t=e.target?.dataset.objectid;t&&this.viewModel.highlight(t)},this._onAction=e=>{const{target:t}=e,{dataset:{action:i}}=t;switch(i){case"draw-point":case"draw-polygon":case"draw-polyline":{const e=i.replace("draw-","");this.viewModel.digitizeCreate(e);break}case"save":this.viewModel.saveDrawing();break;case"select-feature":t.active=!t.active,this.viewModel.toggleSelection(t.active);break;case"delete-feature":this.viewModel.digitizeDelete()}},this._onImageOverlayClosed=()=>{this.imageOverlaysOpened=!1},this._onShowCameraLocationsChanged=e=>{this.showCameraLocations=e},this._onShowMapFeaturesChanged=e=>{this.showMapFeatures=e},this._removeActionElement=e=>{this._actionItems.delete(e.text)},this._removeHighlight=()=>this.viewModel.removeHighlight(),this._scaleNavigationTool=()=>{this._navigationToolExpanded=!this._navigationToolExpanded},this._sketchLoaderTask=null,this._toggleImageAttributes=()=>{this.viewModel.toggleImageAttributes()},this._loadImageFromGallery=this._loadImageFromGallery.bind(this),this._registerGalleryItem=this._registerGalleryItem.bind(this),this._unregisterGalleryItem=this._unregisterGalleryItem.bind(this),this.loadImageFromSource=this.loadImageFromSource.bind(this),this.updateSuitabilities=this.updateSuitabilities.bind(this)}initialize(){this.addHandles([l((()=>[this.viewModel?.bestFeatureAngle,this._navigationTool]),(([e,t])=>{t&&this._updateNavigationTool(t)}),c),l((()=>this.currentCoverageVisible),(e=>this._onCurrentCoverageVisibilityChange(e))),l((()=>this.isAdditionalCoverageVisible),(e=>this._onAdditionalCoverageVisibilityChange(e))),l((()=>this.isAdditionalPointSourcesVisible),(e=>this._onAdditionalCameraLocationsVisibility(e))),l((()=>({features:this.currentBestFeature,showCameraLocations:this.showCameraLocations,state:this.viewModel.state})),(({showCameraLocations:e,state:t})=>{"image-loaded"===t&&this.viewModel.overlayCameraLocations(e)}),d),l((()=>({feature:this.currentBestFeature,showMapFeatures:this.showMapFeatures,state:this.viewModel.state})),((e,t)=>{e.showMapFeatures!==t?.showMapFeatures&&this.viewModel.toggleAllOverlayMapFeatures(e.showMapFeatures),null!=e.feature&&e.feature!==t?.feature&&g((()=>"image-loaded"===this.viewModel.state)).then((()=>{this.viewModel.removeAllOverlayMapFeatures(),this._overlayedLayers?.forEach((t=>{this.viewModel.overlayMapFeatures(t,e.showMapFeatures)}))}))}),c)])}loadDependencies(){return S({"action-bar":()=>import("@esri/calcite-components/dist/components/calcite-action-bar"),"action-group":()=>import("@esri/calcite-components/dist/components/calcite-action-group"),action:()=>import("@esri/calcite-components/dist/components/calcite-action"),label:()=>import("@esri/calcite-components/dist/components/calcite-label"),notice:()=>import("@esri/calcite-components/dist/components/calcite-notice"),panel:()=>import("@esri/calcite-components/dist/components/calcite-panel"),shell:()=>import("@esri/calcite-components/dist/components/calcite-shell"),dialog:()=>import("@esri/calcite-components/dist/components/calcite-dialog"),dropdown:()=>import("@esri/calcite-components/dist/components/calcite-dropdown"),"dropdown-group":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-group"),"dropdown-item":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-item"),slider:()=>import("@esri/calcite-components/dist/components/calcite-slider"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip")})}destroy(){this._galleryController.abort(),this._galleryObserver.disconnect()}get accuracyParametersMissing(){return this.viewModel.accuracyParametersMissing}get activeLayer(){return o(s.getLogger(this),"activeLayer",{replacement:"layer"}),this.layer}set activeLayer(e){o(s.getLogger(this),"activeLayer",{replacement:"layer"}),this.layer=e}get currentBestFeature(){return this.viewModel.currentBestFeature}set currentBestFeature(e){this.viewModel.currentBestFeature=e}get currentCoverageVisible(){return this.viewModel.currentCoverageVisible}set currentCoverageVisible(e){this.viewModel.currentCoverageVisible=e}get digitizationLayer(){return this.viewModel.digitizationLayer}set digitizationLayer(e){this.viewModel.digitizationLayer=e}get disabled(){return this.viewModel.disabled}set disabled(e){this.viewModel.disabled=e}get displayMessage(){return this.viewModel.displayMessage}get features(){return this.viewModel.features}get imagePointsInView(){return this.viewModel.imagePointsInView}get icon(){return"oriented-imagery-widget"}set icon(e){this._overrideIfSome("icon",e)}get imageGalleryEnabled(){return this.viewModel.imageGalleryEnabled}get imageLocationToolActive(){return this.viewModel.imageLocationToolState}set imageLocationToolActive(e){this.viewModel.imageLocationToolState=e}get invalidCameraHeading(){return this.viewModel.invalidCameraHeading}get isAdditionalCoverageVisible(){return this.viewModel.isAdditionalCoverageVisible}set isAdditionalCoverageVisible(e){this.viewModel.isAdditionalCoverageVisible=e}get isAdditionalPointSourcesVisible(){return this.viewModel.isAdditionalPointSourcesVisible}set isAdditionalPointSourcesVisible(e){this.viewModel.isAdditionalPointSourcesVisible=e}get mapImageConversionToolState(){return this.viewModel.mapImageConversionToolState}set mapImageConversionToolState(e){this.viewModel.mapImageConversionToolState=e}get measureType(){return this.viewModel.measureType}set measureType(e){this.viewModel.measureType=e}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}get popupEnabled(){const{popupEnabled:e,state:t}=this.viewModel;return"image-loaded"===t&&e}get referencePoint(){return this.viewModel.referencePoint??null}get sketchViewModel(){return this.viewModel.sketch}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}set determineWorkflowForFeature(e){this.viewModel.determineWorkflowForFeature=e}get determineWorkflowForFeature(){return this.viewModel.determineWorkflowForFeature}set updateFootprint(e){this.viewModel.updateFootprint=e}get updateFootprint(){return this.viewModel.updateFootprint}_renderActionBar(){return x("calcite-action-bar",{expandDisabled:!0,layout:"horizontal",slot:"action-bar"},x("calcite-action-group",null,this._currentFootprintToggle(),this._additionalFootprintToggle(),this._additionalPointSourcesToggle()),x("calcite-action-group",null,this._mapImageConversionToggle(),this._navigationToolToggle(),this._imageEnhancementsToggle()),x("calcite-action-group",null,this._imageGalleryToggle(),this._imageOverlaysToggle(),this._openPopupAction()),x("calcite-action-group",null,this._measurementToolsToggle()),this._actionTooltips())}_actionTooltips(){return[...this._actionItems].map((([e,t])=>x("calcite-tooltip",{closeOnClick:!0,key:e,placement:"bottom",referenceElement:t},x("span",null,e))))}get _activeMeasurementIcon(){const{measureType:e,imageLocationToolActive:t}=this;if(t)return"pin-tear";switch(e){case"area":return"measure-area";case"height":return"measure-building-height-top-base";default:return"measure-line"}}get _activeMeasurementHeading(){const{measureType:e,messages:t}=this,{groundArea:i,heightAboveGround:a,groundDistance:o}=t;switch(e){case"area":return i;case"height":return a;default:return o}}_additionalFootprintToggle(){const{isAdditionalCoverageVisible:e,invalidCameraHeading:t,visibleElements:{additionalFootprintToggle:i}}=this;return i?x("calcite-action",{active:e,...this._commonActionProperties,class:T.addCoverage,disabled:t,icon:"trapezoid-area",onclick:this._toggleAdditionalCoverage,text:this.messages.additionalFootprints}):null}_additionalPointSourcesToggle(){const{isAdditionalPointSourcesVisible:e,invalidCameraHeading:t,visibleElements:{additionalCameraLocationsToggle:i}}=this;return i?x("calcite-action",{active:e,...this._commonActionProperties,class:T.addExpPoints,disabled:t,icon:"circle-area",onclick:this._toggleAdditionalCameraLocations,text:this.messages.additionalCameraLocations}):null}get _measurementToggle(){const{viewModel:{state:e,measureType:t},id:i}=this;if("image-loaded"!==e||!t)return;this._imageMeasurementToolsLoaderTask||this._loadImageMeasurementResources();const a=this._imageMeasurementToolsLoaderTask?.value;return a?x("calcite-dialog",{bind:this,dragEnabled:!0,escapeDisabled:!0,heading:this._activeMeasurementHeading,id:`${i}-${t}-measurement`,open:!0,placement:"bottom-start",resizable:!0,scale:"s",slot:"dialogs",width:"s",onCalciteDialogBeforeClose:this._clearMeasurements},x(a,{measurementType:t,measurementUnitMessages:this.measurementUnitMessages,messages:this.messages,oiViewModel:this.viewModel})):null}get _commonActionProperties(){return{afterCreate:this._storeActionElement,afterRemoved:this._removeActionElement,afterUpdate:this._storeActionElement,bind:this}}_renderRoot(){const{viewModel:{state:e}}=this;return x("calcite-panel",null,x("calcite-shell",null,x("calcite-panel",{bind:this,class:T.viewerContainer,heading:this.visibleElements.title?this.messages.title:void 0,loading:"image-loading"===e},this.visibleElements.menu?this._renderActionBar():null,this._imageViewer,this._panoramicViewer,this._messageBox,this.invalidCameraHeading?[this._renderWarning(this.messages.invalidCameraHeadingWarningTitle),this._renderWarningTooltip(this.messages.invalidCameraHeadingWarningDescription)]:[this._imageGalleryPanel,this._renderNavigation,this._imageOverlaysPanel],this._imageEnhancementTools,this._renderSketch()),this._measurementToggle,this._locationToggle))}_currentFootprintToggle(){const{currentCoverageVisible:e,invalidCameraHeading:t}=this,{currentFootprintToggle:i}=this.visibleElements;return i?x("calcite-action",{active:e,...this._commonActionProperties,class:T.currentCoverage,disabled:t,icon:"trapezoid-area",onclick:this._toggleCurrentCoverage,text:this.messages.currentFootprint}):null}get _imageEnhancementTools(){const{imageEnhancementToolActive:e,viewModel:{brightness:t,contrast:i,sharpness:a,state:o}}=this;return e&&"image-loaded"===o?x("calcite-panel",{bind:this,class:T.imageEnhancementWrapper,closable:!0,closed:!e,heading:this.messages.imageEnhancement,key:this.messages.imageEnhancement,onCalcitePanelClose:this._toggleImageEnhancementToolState},x("div",{class:T.imageEnhancementTools},x("div",{class:T.imageEnhancementToolContainer},x("calcite-label",null,this.messages.brightness,x("calcite-slider",{bind:this,labelTicks:!0,max:10,min:-10,ticks:5,value:t,onCalciteSliderInput:this._handleBrightnessChange}))),x("div",{class:T.imageEnhancementToolContainer},x("calcite-label",null,this.messages.contrast,x("calcite-slider",{bind:this,labelTicks:!0,max:10,min:-10,ticks:5,value:i,onCalciteSliderInput:this._handleContrastChange}))),x("div",{class:T.imageEnhancementToolContainer},x("calcite-label",null,this.messages.sharpness,x("calcite-slider",{bind:this,labelTicks:!0,max:1,min:0,step:.1,ticks:.5,value:a,onCalciteSliderInput:this._handleSharpnessChange})))),x("calcite-action",{bind:this,icon:"reset",onclick:this._resetImageTools,slot:"header-actions-end",text:this.messagesCommon.reset})):null}_imageEnhancementsToggle(){const{state:e,mode:t}=this.viewModel,{imageEnhancement:i}=this.visibleElements;return i?x("calcite-action",{active:this.imageEnhancementToolActive,...this._commonActionProperties,disabled:"default"!==t||"image-loaded"!==e,icon:"sliders-horizontal",onclick:this._toggleImageEnhancementToolState,text:this.messages.imageEnhancement}):null}get _imageGalleryPanel(){const{container:e,galleryOpened:t,imageGalleryEnabled:i,viewModel:{thumbnails:a},invalidCameraHeading:o}=this;return i&&t&&(e&&a)?x("calcite-panel",{bind:this,class:T.carousel,closable:!0,closed:!t,disabled:o,heading:this.messages.imageGallery,key:this.messages.imageGallery,onCalcitePanelClose:this._toggleImageGallery},x("div",{class:T.carouselContainer},this._renderThumbnails(a))):null}_imageGalleryToggle(){const{imageGalleryEnabled:e,invalidCameraHeading:t,visibleElements:{imageGallery:i}}=this;return i?x("calcite-action",{active:this.galleryOpened,...this._commonActionProperties,disabled:!e||t,icon:"images",onclick:this._toggleImageGallery,text:this.messages.imageGallery}):null}get _imageOverlaysComponent(){return x(E,{closed:!this.imageOverlaysOpened,digitizationEnabled:this.digitizationEnabled,digitizationLayer:this.digitizationLayer,messages:this._imageOverlayMessages,overlayedLayers:this._overlayedLayers,showCameraLocations:this.showCameraLocations,showMapFeatures:this.showMapFeatures,view:this.view,onDigitizationLayerChanged:this._handleDigitizationLayerChange,onImageOverlaysClosed:this._onImageOverlayClosed,onLayerDeselected:this._handleOverlayLayerDeselect,onLayerSelected:this._handleOverlayLayerSelect,onShowCameraLocationsChanged:this._onShowCameraLocationsChanged,onShowMapFeaturesChanged:this._onShowMapFeaturesChanged})}get _imageOverlayMessages(){return{...this.messages,...this.messagesSketch}}get _imageSketchToolsMessages(){return{...this.messagesSketch,...this.messagesCommon}}get _imageOverlaysPanel(){const{imageOverlaysOpened:e,viewModel:{state:t}}=this;if(e&&"image-loaded"===t)return x("div",{class:T.imageOverlaysContainer,key:this.messages.imageOverlays},this._imageOverlaysComponent)}_imageOverlaysToggle(){const{viewModel:{state:e},imageOverlaysOpened:t,invalidCameraHeading:i,visibleElements:{imageOverlays:a}}=this;return a?x("calcite-action",{active:t,...this._commonActionProperties,disabled:"image-loaded"!==e||i,icon:"layers",onclick:this._toggleImageOverlays,text:this.messages.imageOverlays}):null}get _imageViewer(){const{displayMessage:e,loadImageViewer:t,mode:i}=this.viewModel,a=null!=e||"default"!==i,o=this.classes({[T.viewer]:!a,[T.viewerHidden]:a});return x("calcite-panel",{afterCreate:t,bind:this,class:o},this._renderSketch())}get _locationToggle(){const{viewModel:{state:e,groundCoordinates:t},imageLocationToolActive:i,messages:{groundLocation:a}}=this;if("image-loaded"===e&&t&&i)return x("calcite-dialog",{bind:this,dragEnabled:!0,escapeDisabled:!0,heading:a,id:a,open:!0,placement:"bottom-start",resizable:!0,scale:"s",slot:"dialogs",width:"s",onCalciteDialogBeforeClose:this._clearImageLocation},x(k,{groundCoordinates:t,messages:this.messages}))}_mapImageConversionToggle(){const{mapImageConversionToolState:e,viewModel:{state:t},invalidCameraHeading:i,visibleElements:{mapImageConversionTool:a}}=this;return a?x("calcite-action",{active:e,...this._commonActionProperties,disabled:"image-loaded"!==t||i,icon:"image-pin",onclick:this._toggleMapImageConversionToolState,text:this.messages.mapImageConversionTool}):null}_measurementToolsToggle(){const{_activeMeasurementIcon:e,measureType:t,viewModel:i,accuracyParametersMissing:a,messages:o,visibleElements:{measurementTools:s}}=this,{state:n,mode:r}=i,{measurementTools:l,groundDistance:c,groundArea:d,heightAboveGround:g,groundLocation:h}=o;return s?x("calcite-dropdown",{disabled:a,key:"measurement-tools",width:"m"},x("calcite-action",{...this._commonActionProperties,icon:e,slot:"trigger",text:l}),x("calcite-dropdown-group",null,x("calcite-dropdown-item",{bind:this,disabled:"image-loaded"!==n,iconStart:"measure-line",key:"distance-measurement",onclick:e=>this._toggleMeasurementSketch(e,"distance"),selected:"distance"===t},c),x("calcite-dropdown-item",{bind:this,disabled:"image-loaded"!==n,iconStart:"measure-area",key:"area-measurement",onclick:e=>this._toggleMeasurementSketch(e,"area"),selected:"area"===t},d),x("calcite-dropdown-item",{bind:this,disabled:"image-loaded"!==n||"panoramic"===r,iconStart:"measure-building-height-top-base",key:"height-dropdown",onclick:e=>this._toggleMeasurementSketch(e,"height"),selected:"height"===t},g),x("calcite-dropdown-item",{bind:this,disabled:"image-loaded"!==n,iconStart:"pin-tear",key:"surface-location",onclick:e=>this._toggleLocationTool(e),selected:this.imageLocationToolActive},h))):null}get _messageBox(){const{messages:e,viewModel:{displayMessage:t}}=this;if(!t)return null;const{data:i,key:a,map:o}=t,s=`${o?j(e[a],o):e[a]}`;return x("span",{class:T.messageBox},i?`${s} ${i}`:s)}_navigationToolToggle(){const{state:e}=this.viewModel,{visibleElements:{navigationTool:t}}=this;return t?x("calcite-action",{active:this.navigationToolActive,...this._commonActionProperties,disabled:"image-loaded"!==e||this.invalidCameraHeading,icon:"explore",onclick:this._toggleNavigationTool,text:this.messages.navigationTool}):null}_openPopupAction(){const{showPopupsAction:e}=this.visibleElements;return e?x("calcite-action",{...this._commonActionProperties,disabled:!this.popupEnabled,icon:"popup",onclick:this._toggleImageAttributes,text:this.messages.showPopups}):null}get _panoramicViewer(){const{displayMessage:e,loadPanoramicViewer:t,mode:i}=this.viewModel,a=null!=e||"panoramic"!==i,o=this.classes({[T.viewer]:!a,[T.viewerHidden]:a});return x("calcite-panel",{afterCreate:t,bind:this,class:o})}_closeAllImageTools(){this.imageEnhancementToolActive=!1,this.navigationToolActive=!1,this.imageOverlaysOpened=!1,this.galleryOpened=!1,this.measureType=null,this.imageLocationToolActive=!1}async _getThumbnailPixelBlockInternal(e,t){const{level:i,offset:a,size:o}=this._getMaxLevelRasterParameters(e);try{const{pixelBlock:s}=await e.fetchRawPixels(i,a,o,t);return s}catch(n){s.getLogger(this).warn("failed to create canvas with pixel data",n)}return null}_getMaxLevelRasterParameters(e){const{storageInfo:t,width:i,height:a}=e.rasterInfo,{maximumPyramidLevel:o,pyramidScalingFactor:s}=t,n=s??2;return{level:o,offset:{x:0,y:0},size:{width:Math.ceil(i/n**o),height:Math.ceil(a/n**o)}}}async _getThumbnailPixelBlock(e){const{signal:t}=this._galleryController;try{const{origin:i,pathname:a,searchParams:o}=new URL(e),s=await u.open({ioConfig:{customFetchParameters:Object.fromEntries(o),skipMapInfo:!0},url:`${i}${a}`,signal:t});return s?await this._getThumbnailPixelBlockInternal(s,{signal:t}):null}catch(i){s.getLogger(this).error("failed to create thumbnail",i)}return null}_handleBrightnessChange(e){this.viewModel.brightness=e.currentTarget.value??0}_handleContrastChange(e){this.viewModel.contrast=e.currentTarget.value??0}_handleSharpnessChange(e){this.viewModel.sharpness=e.currentTarget.value??0}_lazyLoadImage(e,t){e.forEach((async e=>{if(e.isIntersecting){const i=e.target,a=i.getAttribute("data-src"),o=i.getAttribute("data-rotation"),r=o?parseFloat(o)%360:null;if(!a)return;const l=await this._getThumbnailPixelBlock(a);if(!l)return;i.width=l.width,i.height=l.height;const c=i.getContext("2d");if(!c)return;const d=c.createImageData(i.width,i.height);if(d.data.set(l.getAsRGBA()),"number"==typeof r&&0!==r){const e=n(r),a=document.createElement("canvas"),o=a.getContext("2d");if(o){a.width=d.width,a.height=d.height,o.putImageData(d,0,0);const s=p(0,0,e),n=p(d.width,0,e),r=p(d.width,d.height,e),l=p(0,d.height,e),g=Math.max(s[0],n[0],r[0],l[0])-Math.min(s[0],n[0],r[0],l[0]),h=Math.max(s[1],n[1],r[1],l[1])-Math.min(s[1],n[1],r[1],l[1]),m=Math.min(i.width/g,i.height/h);return c.save(),c.clearRect(0,0,i.width,i.height),c.translate(i.width/2,i.height/2),c.rotate(e),c.scale(m,m),c.drawImage(a,-d.width/2,-d.height/2,d.width,d.height),c.restore(),t.unobserve(i)}s.getLogger(this).warn("oriented-imagery-viewer:image-gallery","failed to apply rotation on thumbnail")}c.putImageData(d,0,0),t.unobserve(i)}}))}_loadImageFromGallery(e){const{target:t}=e;if(!t)return;const i=t.getAttribute("data-objectid");i&&this.viewModel.currentBestFeature?.attributes.objectId!==Number(i)&&this.viewModel.selectBestFeature(i)}_loadImageMeasurementResources(){this._imageMeasurementToolsLoaderTask=i((async()=>{const{default:e}=await import("./OrientedImageryViewer/components/ImageMeasurementWidget.js");return e}))}_loadSketchResources(){this._sketchLoaderTask=i((async()=>(await import("./OrientedImageryViewer/components/SketchTools.js")).default))}_onAdditionalCoverageVisibilityChange(e){this.viewModel.setAdditionalCoverageVisibility(e)}_onAdditionalCameraLocationsVisibility(e){this.viewModel.setAdditionalCameraLocationsVisibility(e)}_onCurrentCoverageVisibilityChange(e){this.viewModel.setCurrentCoverageVisibility(e)}_registerGalleryItem(e){this._galleryObserver.observe(e)}_renderWarning(e){const{invalidCameraHeading:t,viewModel:{state:i}}=this;return t&&"image-loaded"===i?[x("calcite-notice",{class:T.alert,closable:!0,icon:"exclamation-mark-triangle-f",iconFlipRtl:!0,kind:"warning",open:!0,scale:"s"},x("div",{afterCreate:e=>this._storeWarningTitleElement(e),slot:"title"},e))]:null}_renderWarningTooltip(e){const{_warningTitleElement:t}=this;if(e?.length&&t)return x("calcite-tooltip",{closeOnClick:!0,referenceElement:t},e)}get _renderNavigation(){const{viewModel:{sectorData:e,navigatorCurrentBestFeature:i,currentBestFeature:a,state:o}}=this;if(!this.container||!a)return null;let s,n,r,l,c;if(i){const{x:e,y:t,direction:a}=i,[o,d,g,h]=w[a];s=`M ${e} ${t} L ${o} ${d} A ${_[2]} ${_[2]} 0 0 1 ${g} ${h} Z`,n=e,l=t,r=w[a][4],c=w[a][5]}const d=e=>{const t=e.target.dataset?.sector;t&&this.viewModel.handleSectorClick(+t)},g=e=>{const t=e.target.dataset;if(!t)return;const{featureIndexInSector:i,sector:a}=t;i&&a&&this.viewModel.handleFeatureClick({sector:a,featureIndexInSector:+i})},h=e=>{e.removeEventListener("click",g)},m=a.attributes.objectId,p=e?.map((e=>e?.items)).filter(Boolean).flatMap((e=>e?.map((({x:e,y:t,objectID:i,featureIndexInSector:a,sector:o})=>x("circle",{afterRemoved:h,class:this.classes(T.feature,{selected:m===i}),cx:e,cy:t,"data-feature-index-in-sector":a,"data-sector":o,key:`${T.feature}-${i}`,onclick:g,r:b}))))),u=e=>{e.removeEventListener("click",d)},v=this.classes({[T.navigationWrapper]:!0,[T.navigationZoomed]:this._navigationToolExpanded});return this.navigationToolActive&&"image-loaded"===o?x("div",{bind:this,class:v,key:this.messages.navigationTool},x("svg",{afterCreate:e=>this._storeNavigationToolReference(e),class:t()?C:T.rotateWithAnimation,focusable:"false",height:M,role:"img",width:M,xmlns:"http://www.w3.org/2000/svg"},x("defs",null,x("linearGradient",{gradientUnits:"userSpaceOnUse",id:`${this.id}-coverage-fill`,x1:n,x2:r,y1:l,y2:c},x("stop",{class:T.navigationPathOffset0,offset:0}),x("stop",{class:T.navigationPathOffset1,offset:1}))),x("g",null,x("circle",{class:this.classes(T.sector,T.outerSector),cx:_[3],cy:_[3],onclick:this._scaleNavigationTool,r:_[3]}),x("circle",{class:T.sector,cx:_[3],cy:_[3],r:_[2]}),x("circle",{class:T.sector,cx:_[3],cy:_[3],r:_[1]}),x("circle",{class:T.sector,cx:_[3],cy:_[3],r:_[0]}),x("path",{class:T.pointer,d:"M 56.5 6.06217782649107 L 60 0 L 63.5 6.06217782649107 Z",key:`${T.pointer}-west`}),x("path",{class:this.classes(T.pointer,T.north),d:"M 113.93782217350893 56.5 L 120 60 L 113.93782217350893 63.5 Z",key:`${T.pointer}-north`}),x("path",{class:T.pointer,d:"M 56.5 113.93782217350893 L 60 120 L 63.5 113.93782217350893 Z",key:`${T.pointer}-east`}),x("path",{class:T.pointer,d:"M 6.06217782649107 56.5 L 0 60 L 6.06217782649107 63.5 Z",key:`${T.pointer}-south`}),x("path",{class:this.classes(T.sector,T.sectorSeparator),d:"M 23.937554159486076 23.937554159486076 L 96.06244584051393 96.06244584051393 M 23.937554159486076 96.06244584051393 L 96.06244584051393 23.937554159486076",key:T.sectorSeparator}),y([_[2],_[1],_[0]],_[3],_[3]).map(((t,i)=>x("path",{afterRemoved:u,class:this.classes(T.sector,e?.[i]?.length?T.sectorEnabled:T.sectorDisabled),d:t,"data-sector":`${i}`,key:`${T.sector}-${i}`,onclick:d}))),x("path",{class:this.classes(T.sector,T.sectorCross),d:"M 56.4 56.4 L 63.53 63.53 M 63.53 56.4 L 56.4 63.53",key:T.sectorCross}),p,a.attributes.cameraPitch>=5&&s?x("path",{class:T.selectedFeaturePath,d:s,fill:`url(#${this.id}-coverage-fill)`,key:T.selectedFeaturePath}):null))):null}_renderSketch(){const{digitizationLayer:e,imageOverlaysOpened:t}=this;if(!e||t)return null;if(this._sketchLoaderTask||this._loadSketchResources(),!this._sketchLoaderTask?.value)return null;const{geometryType:i}=e,a="point"===i?"pin":"polyline"===i?"line":"polygon",o=this._sketchLoaderTask.value;return x("div",{class:T.sketchTools},x(o,{icon:a,messages:this._imageSketchToolsMessages,type:i,onAction:this._onAction}))}_renderThumbnails(e){const{currentBestFeature:t}=this.viewModel;return t?x("div",{class:T.carouselContent},e.items.map((({url:e,objectId:i,rotation:a},o)=>x("div",{class:`${T.carouselItemWrapper}${t.attributes.objectId===i?"--selected":""}`,key:`${T.carouselItemWrapper}-${o}`},x("canvas",{afterCreate:this._registerGalleryItem,afterRemoved:this._unregisterGalleryItem,alt:`thumbnail-${i}`,class:T.carouselItem,"data-objectid":`${i}`,"data-rotation":`${a}`,"data-src":e,onclick:this._loadImageFromGallery,onmouseenter:this._highlight,onmouseleave:this._removeHighlight}))))):null}_resetImageTools(){this.viewModel.sharpness=this.viewModel.brightness=this.viewModel.contrast=0}_storeActionElement(e){this._actionItems.set(e.text,e)}_storeNavigationToolReference(e){this._navigationTool=e}_storeWarningTitleElement(e){this._warningTitleElement=e}_toggleAdditionalCameraLocations(){this.isAdditionalPointSourcesVisible=!this.isAdditionalPointSourcesVisible}_toggleAdditionalCoverage(){this.isAdditionalCoverageVisible=!this.isAdditionalCoverageVisible}_toggleCurrentCoverage(){this.currentCoverageVisible=!this.currentCoverageVisible}_toggleImageEnhancementToolState(e){e.stopPropagation(),this.imageEnhancementToolActive=!this.imageEnhancementToolActive,this.imageEnhancementToolActive&&(this.galleryOpened&&(this.galleryOpened=!1),this.navigationToolActive&&(this.navigationToolActive=!1),this.imageOverlaysOpened&&(this.imageOverlaysOpened=!1))}_toggleImageOverlays(e){e.stopPropagation(),this.imageOverlaysOpened=!this.imageOverlaysOpened,this.imageOverlaysOpened&&(this.galleryOpened&&(this.galleryOpened=!1),this.navigationToolActive&&(this.navigationToolActive=!1),this.imageEnhancementToolActive&&(this.imageEnhancementToolActive=!1))}_toggleImageGallery(e){e.stopPropagation(),this.galleryOpened=!!this.imageGalleryEnabled&&!this.galleryOpened,this.galleryOpened&&(this.imageEnhancementToolActive&&(this.imageEnhancementToolActive=!1),this.navigationToolActive&&(this.navigationToolActive=!1),this.imageOverlaysOpened&&(this.imageOverlaysOpened=!1))}_toggleLocationTool(e){const t=this.imageLocationToolActive;this._closeAllImageTools(),this.imageLocationToolActive=!t,e.stopPropagation()}_toggleMeasurementSketch(e,t){e.stopPropagation();const i=this.measureType;this._closeAllImageTools(),this.measureType=i===t?null:t,this.measureType===t&&(this.viewModel.displayNewMeasurementButton=!0)}_toggleNavigationTool(){this.navigationToolActive=!this.navigationToolActive,this.navigationToolActive&&(this.galleryOpened&&(this.galleryOpened=!1),this.imageEnhancementToolActive&&(this.imageEnhancementToolActive=!1),this.imageOverlaysOpened&&(this.imageOverlaysOpened=!1))}_toggleMapImageConversionToolState(){this.mapImageConversionToolState=!this.mapImageConversionToolState}_unregisterGalleryItem(e){this._galleryObserver.unobserve(e)}_updateNavigationTool(e){const{previousFeatureAngle:t,bestFeatureAngle:i}=this.viewModel,a=(i-t+540)%360-180;e.style.setProperty(f,`${t}deg`),e.style.setProperty(I,`${t+a}deg`)}async loadBestImage(e){return this.viewModel.loadBestImage(e)}loadImageFromSource(e,t){return this.viewModel.loadImageFromSource(e,t)}async plotMapPoint(e){return this.viewModel.plotMapPoint(e)}plotReferencePointOnGround(e){this.viewModel.plotReferencePointOnGround(e)}plotReferencePointOnImage(e){this.viewModel.plotReferencePointOnImage(e)}resetImage(){this.viewModel.resetImage()}render(){return x("div",{class:this.classes(F.widget,A)},this._renderRoot())}startDigitization(e){this.viewModel.startDigitization(e)}stopDigitization(e){this.viewModel.stopDigitization(e)}updateSuitabilities(e){this.viewModel.updateSuitabilities(e)}};e([h({readOnly:!0})],$.prototype,"accuracyParametersMissing",null),e([h()],$.prototype,"activeLayer",null),e([h()],$.prototype,"currentBestFeature",null),e([h()],$.prototype,"currentCoverageVisible",null),e([h()],$.prototype,"digitizationEnabled",void 0),e([h()],$.prototype,"digitizationLayer",null),e([h()],$.prototype,"disabled",null),e([h()],$.prototype,"features",null),e([h()],$.prototype,"imagePointsInView",null),e([h()],$.prototype,"galleryOpened",void 0),e([h()],$.prototype,"icon",null),e([h()],$.prototype,"imageEnhancementToolActive",void 0),e([h({readOnly:!0})],$.prototype,"imageGalleryEnabled",null),e([h()],$.prototype,"imageLocationToolActive",null),e([h()],$.prototype,"imageOverlaysOpened",void 0),e([h({readOnly:!0})],$.prototype,"invalidCameraHeading",null),e([h()],$.prototype,"isAdditionalCoverageVisible",null),e([h()],$.prototype,"isAdditionalPointSourcesVisible",null),e([h()],$.prototype,"mapImageConversionToolState",null),e([h()],$.prototype,"measureType",null),e([h()],$.prototype,"layer",null),e([h()],$.prototype,"navigationToolActive",void 0),e([V(["after-digitization-complete"]),h({type:O})],$.prototype,"viewModel",void 0),e([h(),P("esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer")],$.prototype,"messages",void 0),e([h(),P("esri/core/t9n/Units")],$.prototype,"measurementUnitMessages",void 0),e([h(),P("esri/t9n/common")],$.prototype,"messagesCommon",void 0),e([h(),P("esri/widgets/Sketch/t9n/Sketch")],$.prototype,"messagesSketch",void 0),e([h()],$.prototype,"pixelMeasurementUnit",void 0),e([h()],$.prototype,"pixelAreaMeasurementUnit",void 0),e([h({readOnly:!0})],$.prototype,"popupEnabled",null),e([h()],$.prototype,"referencePoint",null),e([h()],$.prototype,"showCameraLocations",void 0),e([h()],$.prototype,"showMapFeatures",void 0),e([V(["create","delete","redo","undo","update"]),h({readOnly:!0})],$.prototype,"sketchViewModel",null),e([h()],$.prototype,"view",null),e([h({type:L,nonNullable:!0})],$.prototype,"visibleElements",void 0),e([h()],$.prototype,"determineWorkflowForFeature",null),e([h()],$.prototype,"updateFootprint",null),e([h()],$.prototype,"_actionItems",void 0),e([h()],$.prototype,"_activeMeasurementIcon",null),e([h()],$.prototype,"_activeMeasurementHeading",null),e([h()],$.prototype,"_imageMeasurementToolsLoaderTask",void 0),e([h()],$.prototype,"_measurementToggle",null),e([h()],$.prototype,"_commonActionProperties",null),e([h()],$.prototype,"_imageEnhancementTools",null),e([h()],$.prototype,"_imageGalleryPanel",null),e([h()],$.prototype,"_imageOverlaysComponent",null),e([h()],$.prototype,"_imageOverlayMessages",null),e([h()],$.prototype,"_imageSketchToolsMessages",null),e([h()],$.prototype,"_imageOverlaysPanel",null),e([h()],$.prototype,"_imageViewer",null),e([h()],$.prototype,"_locationToggle",null),e([h()],$.prototype,"_messageBox",null),e([h()],$.prototype,"_navigationToolExpanded",void 0),e([h()],$.prototype,"_navigationTool",void 0),e([h()],$.prototype,"_panoramicViewer",null),e([h()],$.prototype,"_warningTitleElement",void 0),e([h()],$.prototype,"_renderNavigation",null),e([h()],$.prototype,"_sketchLoaderTask",void 0),$=e([m("esri.widgets.OrientedImageryViewer")],$);const G=$;export{G as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{prefersReducedMotion as t}from"../core/a11yUtils.js";import{createTask as i}from"../core/asyncUtils.js";import a from"../core/Collection.js";import{deprecatedProperty as o}from"../core/deprecate.js";import s from"../core/Logger.js";import{isAbortError as n}from"../core/promiseUtils.js";import r from"../core/ReactiveMap.js";import{watch as l,initial as c,syncAndInitial as d,whenOnce as g}from"../core/reactiveUtils.js";import{property as m}from"../core/accessorSupport/decorators/property.js";import"../core/has.js";import"../core/RandomLCG.js";import{subclass as h}from"../core/accessorSupport/decorators/subclass.js";import p from"./Widget.js";import{getAllArcPath as u}from"./OrientedImageryViewer/arcUtils.js";import{segmentArcs as v,sectorsRadii as y,featureCircleRadius as _,navigationToolDimensionLength as w}from"./OrientedImageryViewer/constants.js";import{css as b,navigation as M,navigationToolRotationFrom as T,navigationToolRotationTo as C,root as f}from"./OrientedImageryViewer/css.js";import{isFeatureAttachment as A,loadImageForAttachment as I,getThumbnailPixelBlock as O,renderImageWithRotation as L}from"./OrientedImageryViewer/galleryUtils.js";import k from"./OrientedImageryViewer/OrientedImageryViewerViewModel.js";import E from"./OrientedImageryViewer/OrientedImageryViewerVisibleElements.js";import S from"./OrientedImageryViewer/components/ImageLocationWidget.js";import F from"./OrientedImageryViewer/components/ImageOverlays.js";import{loadCalciteComponents as V}from"./support/componentsUtils.js";import{globalCss as P}from"./support/globalCss.js";import"./support/widgetUtils.js";import{messageBundle as x}from"./support/decorators/messageBundle.js";import{vmEvent as j}from"./support/decorators/vmEvent.js";import{tsx as z}from"./support/jsxFactory.js";import{substitute as G}from"../intl/substitute.js";const $={overlayMapFeatures:"overlay-map-features",overlayed:"overlayed",overlaysActionHandles:"overlays-action-handles"};let B=class extends p{constructor(e,t){super(e,t),this.digitizationEnabled=!1,this.galleryOpened=!1,this.imageEnhancementToolActive=!1,this.imageOverlaysOpened=!1,this.navigationToolActive=!1,this.viewModel=new k,this.messagesCommon=null,this.messagesSketch=null,this.pixelMeasurementUnit="meters",this.pixelAreaMeasurementUnit="square-meters",this.showCameraLocations=!1,this.showMapFeatures=!1,this.visibleElements=new E,this._actionItems=new r,this._imageMeasurementToolsLoaderTask=null,this._clearMeasurements=()=>{this.viewModel.measureType=null,this.viewModel.clearPreviousMeasurements()},this._clearImageLocation=()=>{this.imageLocationToolActive=!1},this._navigationToolExpanded=!1,this._navigationTool=null,this._warningTitleElement=null,this._galleryController=new AbortController,this._galleryObserver=new IntersectionObserver(this._lazyLoadImage.bind(this)),this._overlayedLayers=new a,this._handleDigitizationLayerChange=e=>{this.digitizationLayer&&this.stopDigitization(this.digitizationLayer.id),this.digitizationLayer=this.digitizationLayer===e?null:e,this.digitizationLayer&&this.startDigitization(this.digitizationLayer)},this._handleOverlayLayerDeselect=e=>{const t=e.layer;this.viewModel.removeOverlayedGraphicsOnImage(`${t.id}`),this.removeHandles(`${$.overlayed}-${t.id}`)},this._handleOverlayLayerSelect=e=>{const t=e.layer;this.viewModel.overlayMapFeatures(t,this.showMapFeatures),this.addHandles(l((()=>t.visible),(()=>{this.viewModel.toggleOverlayMapFeatures(t.id,t.visible)})),`${$.overlayed}-${t.id}`)},this._highlight=e=>{const t=e.target?.dataset.objectid;t&&this.viewModel.highlight(t)},this._onAction=e=>{const{target:t}=e,{dataset:{action:i}}=t;switch(i){case"draw-point":case"draw-polygon":case"draw-polyline":{const e=i.replace("draw-","");this.viewModel.digitizeCreate(e);break}case"save":this.viewModel.saveDrawing();break;case"select-feature":t.active=!t.active,this.viewModel.toggleSelection(t.active);break;case"delete-feature":this.viewModel.digitizeDelete()}},this._onImageOverlayClosed=()=>{this.imageOverlaysOpened=!1},this._onShowCameraLocationsChanged=e=>{this.showCameraLocations=e},this._onShowMapFeaturesChanged=e=>{this.showMapFeatures=e},this._removeActionElement=e=>{this._actionItems.delete(e.text)},this._removeHighlight=()=>this.viewModel.removeHighlight(),this._scaleNavigationTool=()=>{this._navigationToolExpanded=!this._navigationToolExpanded},this._sketchLoaderTask=null,this._toggleImageAttributes=()=>{this.viewModel.toggleImageAttributes()},this._loadImageFromGallery=this._loadImageFromGallery.bind(this),this._registerGalleryItem=this._registerGalleryItem.bind(this),this._unregisterGalleryItem=this._unregisterGalleryItem.bind(this),this.loadImageFromSource=this.loadImageFromSource.bind(this),this.updateSuitabilities=this.updateSuitabilities.bind(this)}initialize(){this.addHandles([l((()=>[this.viewModel?.bestFeatureAngle,this._navigationTool]),(([e,t])=>{t&&this._updateNavigationTool(t)}),c),l((()=>this.currentCoverageVisible),(e=>this._onCurrentCoverageVisibilityChange(e))),l((()=>this.isAdditionalCoverageVisible),(e=>this._onAdditionalCoverageVisibilityChange(e))),l((()=>this.isAdditionalPointSourcesVisible),(e=>this._onAdditionalCameraLocationsVisibility(e))),l((()=>({features:this.currentBestFeature,showCameraLocations:this.showCameraLocations,state:this.viewModel.state})),(({showCameraLocations:e,state:t})=>{"image-loaded"===t&&this.viewModel.overlayCameraLocations(e)}),d),l((()=>({feature:this.currentBestFeature,showMapFeatures:this.showMapFeatures,state:this.viewModel.state})),((e,t)=>{e.showMapFeatures!==t?.showMapFeatures&&this.viewModel.toggleAllOverlayMapFeatures(e.showMapFeatures),null!=e.feature&&e.feature!==t?.feature&&g((()=>"image-loaded"===this.viewModel.state)).then((()=>{this.viewModel.removeAllOverlayMapFeatures(),this._overlayedLayers?.forEach((t=>{this.viewModel.overlayMapFeatures(t,e.showMapFeatures)}))}))}),c)])}loadDependencies(){return V({"action-bar":()=>import("@esri/calcite-components/dist/components/calcite-action-bar"),"action-group":()=>import("@esri/calcite-components/dist/components/calcite-action-group"),action:()=>import("@esri/calcite-components/dist/components/calcite-action"),label:()=>import("@esri/calcite-components/dist/components/calcite-label"),notice:()=>import("@esri/calcite-components/dist/components/calcite-notice"),panel:()=>import("@esri/calcite-components/dist/components/calcite-panel"),shell:()=>import("@esri/calcite-components/dist/components/calcite-shell"),dialog:()=>import("@esri/calcite-components/dist/components/calcite-dialog"),dropdown:()=>import("@esri/calcite-components/dist/components/calcite-dropdown"),"dropdown-group":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-group"),"dropdown-item":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-item"),slider:()=>import("@esri/calcite-components/dist/components/calcite-slider"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip")})}destroy(){this._galleryController.abort(),this._galleryObserver.disconnect()}get accuracyParametersMissing(){return this.viewModel.accuracyParametersMissing}get activeLayer(){return o(s.getLogger(this),"activeLayer",{replacement:"layer"}),this.layer}set activeLayer(e){o(s.getLogger(this),"activeLayer",{replacement:"layer"}),this.layer=e}get currentBestFeature(){return this.viewModel.currentBestFeature}set currentBestFeature(e){this.viewModel.currentBestFeature=e}get currentCoverageVisible(){return this.viewModel.currentCoverageVisible}set currentCoverageVisible(e){this.viewModel.currentCoverageVisible=e}get digitizationLayer(){return this.viewModel.digitizationLayer}set digitizationLayer(e){this.viewModel.digitizationLayer=e}get disabled(){return this.viewModel.disabled}set disabled(e){this.viewModel.disabled=e}get displayMessage(){return this.viewModel.displayMessage}get features(){return this.viewModel.features}get imagePointsInView(){return this.viewModel.imagePointsInView}get icon(){return"oriented-imagery-widget"}set icon(e){this._overrideIfSome("icon",e)}get imageGalleryEnabled(){return this.viewModel.imageGalleryEnabled}get imageLocationToolActive(){return this.viewModel.imageLocationToolState}set imageLocationToolActive(e){this.viewModel.imageLocationToolState=e}get invalidCameraHeading(){return this.viewModel.invalidCameraHeading}get isAdditionalCoverageVisible(){return this.viewModel.isAdditionalCoverageVisible}set isAdditionalCoverageVisible(e){this.viewModel.isAdditionalCoverageVisible=e}get isAdditionalPointSourcesVisible(){return this.viewModel.isAdditionalPointSourcesVisible}set isAdditionalPointSourcesVisible(e){this.viewModel.isAdditionalPointSourcesVisible=e}get mapImageConversionToolState(){return this.viewModel.mapImageConversionToolState}set mapImageConversionToolState(e){this.viewModel.mapImageConversionToolState=e}get measureType(){return this.viewModel.measureType}set measureType(e){this.viewModel.measureType=e}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}get popupEnabled(){const{popupEnabled:e,state:t}=this.viewModel;return"image-loaded"===t&&e}get referencePoint(){return this.viewModel.referencePoint??null}get sketchViewModel(){return this.viewModel.sketch}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}set determineWorkflowForFeature(e){this.viewModel.determineWorkflowForFeature=e}get determineWorkflowForFeature(){return this.viewModel.determineWorkflowForFeature}set updateFootprint(e){this.viewModel.updateFootprint=e}get updateFootprint(){return this.viewModel.updateFootprint}_renderActionBar(){return z("calcite-action-bar",{expandDisabled:!0,layout:"horizontal",slot:"action-bar"},z("calcite-action-group",null,this._currentFootprintToggle(),this._additionalFootprintToggle(),this._additionalPointSourcesToggle()),z("calcite-action-group",null,this._mapImageConversionToggle(),this._navigationToolToggle(),this._imageEnhancementsToggle()),z("calcite-action-group",null,this._imageGalleryToggle(),this._imageOverlaysToggle(),this._openPopupAction()),z("calcite-action-group",null,this._measurementToolsToggle()),this._actionTooltips())}_actionTooltips(){return[...this._actionItems].map((([e,t])=>z("calcite-tooltip",{closeOnClick:!0,key:e,placement:"bottom",referenceElement:t},z("span",null,e))))}get _activeMeasurementIcon(){const{measureType:e,imageLocationToolActive:t}=this;if(t)return"pin-tear";switch(e){case"area":return"measure-area";case"height":return"measure-building-height-top-base";default:return"measure-line"}}get _activeMeasurementHeading(){const{measureType:e,messages:t}=this,{groundArea:i,heightAboveGround:a,groundDistance:o}=t;switch(e){case"area":return i;case"height":return a;default:return o}}_additionalFootprintToggle(){const{isAdditionalCoverageVisible:e,invalidCameraHeading:t,visibleElements:{additionalFootprintToggle:i}}=this;return i?z("calcite-action",{active:e,...this._commonActionProperties,class:b.addCoverage,disabled:t,icon:"trapezoid-area",onclick:this._toggleAdditionalCoverage,text:this.messages.additionalFootprints}):null}_additionalPointSourcesToggle(){const{isAdditionalPointSourcesVisible:e,invalidCameraHeading:t,visibleElements:{additionalCameraLocationsToggle:i}}=this;return i?z("calcite-action",{active:e,...this._commonActionProperties,class:b.addExpPoints,disabled:t,icon:"circle-area",onclick:this._toggleAdditionalCameraLocations,text:this.messages.additionalCameraLocations}):null}get _measurementToggle(){const{viewModel:{state:e,measureType:t},id:i}=this;if("image-loaded"!==e||!t)return;this._imageMeasurementToolsLoaderTask||this._loadImageMeasurementResources();const a=this._imageMeasurementToolsLoaderTask?.value;return a?z("calcite-dialog",{bind:this,dragEnabled:!0,escapeDisabled:!0,heading:this._activeMeasurementHeading,id:`${i}-${t}-measurement`,open:!0,placement:"bottom-start",resizable:!0,scale:"s",slot:"dialogs",width:"s",onCalciteDialogBeforeClose:this._clearMeasurements},z(a,{measurementType:t,measurementUnitMessages:this.measurementUnitMessages,messages:this.messages,oiViewModel:this.viewModel})):null}get _commonActionProperties(){return{afterCreate:this._storeActionElement,afterRemoved:this._removeActionElement,afterUpdate:this._storeActionElement,bind:this}}_renderRoot(){const{viewModel:{state:e}}=this;return z("calcite-panel",null,z("calcite-shell",null,z("calcite-panel",{bind:this,class:b.viewerContainer,heading:this.visibleElements.title?this.messages.title:void 0,loading:"image-loading"===e},this.visibleElements.menu?this._renderActionBar():null,this._imageViewer,this._panoramicViewer,this._messageBox,this.invalidCameraHeading?[this._renderWarning(this.messages.invalidCameraHeadingWarningTitle),this._renderWarningTooltip(this.messages.invalidCameraHeadingWarningDescription)]:[this._imageGalleryPanel,this._renderNavigation,this._imageOverlaysPanel],this._imageEnhancementTools,this._renderSketch()),this._measurementToggle,this._locationToggle))}_currentFootprintToggle(){const{currentCoverageVisible:e,invalidCameraHeading:t}=this,{currentFootprintToggle:i}=this.visibleElements;return i?z("calcite-action",{active:e,...this._commonActionProperties,class:b.currentCoverage,disabled:t,icon:"trapezoid-area",onclick:this._toggleCurrentCoverage,text:this.messages.currentFootprint}):null}get _imageEnhancementTools(){const{imageEnhancementToolActive:e,viewModel:{brightness:t,contrast:i,sharpness:a,state:o}}=this;return e&&"image-loaded"===o?z("calcite-panel",{bind:this,class:b.imageEnhancementWrapper,closable:!0,closed:!e,heading:this.messages.imageEnhancement,key:this.messages.imageEnhancement,onCalcitePanelClose:this._toggleImageEnhancementToolState},z("div",{class:b.imageEnhancementTools},z("div",{class:b.imageEnhancementToolContainer},z("calcite-label",null,this.messages.brightness,z("calcite-slider",{bind:this,labelTicks:!0,max:10,min:-10,ticks:5,value:t,onCalciteSliderInput:this._handleBrightnessChange}))),z("div",{class:b.imageEnhancementToolContainer},z("calcite-label",null,this.messages.contrast,z("calcite-slider",{bind:this,labelTicks:!0,max:10,min:-10,ticks:5,value:i,onCalciteSliderInput:this._handleContrastChange}))),z("div",{class:b.imageEnhancementToolContainer},z("calcite-label",null,this.messages.sharpness,z("calcite-slider",{bind:this,labelTicks:!0,max:1,min:0,step:.1,ticks:.5,value:a,onCalciteSliderInput:this._handleSharpnessChange})))),z("calcite-action",{bind:this,icon:"reset",onclick:this._resetImageTools,slot:"header-actions-end",text:this.messagesCommon.reset})):null}_imageEnhancementsToggle(){const{state:e,mode:t}=this.viewModel,{imageEnhancement:i}=this.visibleElements;return i?z("calcite-action",{active:this.imageEnhancementToolActive,...this._commonActionProperties,disabled:"default"!==t||"image-loaded"!==e,icon:"sliders-horizontal",onclick:this._toggleImageEnhancementToolState,text:this.messages.imageEnhancement}):null}get _imageGalleryPanel(){const{container:e,galleryOpened:t,imageGalleryEnabled:i}=this;return i&&t&&e?this._imageGalleryContext:null}get _imageGalleryContext(){const{galleryOpened:e,invalidCameraHeading:t}=this;return z("calcite-panel",{bind:this,class:b.carousel,closable:!0,closed:!e,disabled:t,heading:this.messages.imageGallery,key:this.messages.imageGallery,onCalcitePanelClose:this._toggleImageGallery},z("div",{class:b.carouselContainer},this._renderThumbnails))}_imageGalleryToggle(){const{imageGalleryEnabled:e,invalidCameraHeading:t,visibleElements:{imageGallery:i}}=this;return i?z("calcite-action",{active:this.galleryOpened,...this._commonActionProperties,disabled:!e||t,icon:"images",onclick:this._toggleImageGallery,text:this.messages.imageGallery}):null}get _imageOverlaysComponent(){return z(F,{closed:!this.imageOverlaysOpened,digitizationEnabled:this.digitizationEnabled,digitizationLayer:this.digitizationLayer,messages:this._imageOverlayMessages,overlayedLayers:this._overlayedLayers,showCameraLocations:this.showCameraLocations,showMapFeatures:this.showMapFeatures,view:this.view,onDigitizationLayerChanged:this._handleDigitizationLayerChange,onImageOverlaysClosed:this._onImageOverlayClosed,onLayerDeselected:this._handleOverlayLayerDeselect,onLayerSelected:this._handleOverlayLayerSelect,onShowCameraLocationsChanged:this._onShowCameraLocationsChanged,onShowMapFeaturesChanged:this._onShowMapFeaturesChanged})}get _imageOverlayMessages(){return{...this.messages,...this.messagesSketch}}get _imageSketchToolsMessages(){return{...this.messagesSketch,...this.messagesCommon}}get _imageOverlaysPanel(){const{imageOverlaysOpened:e,viewModel:{state:t}}=this;if(e&&"image-loaded"===t)return z("div",{class:b.imageOverlaysContainer,key:this.messages.imageOverlays},this._imageOverlaysComponent)}_imageOverlaysToggle(){const{viewModel:{state:e},imageOverlaysOpened:t,invalidCameraHeading:i,visibleElements:{imageOverlays:a}}=this;return a?z("calcite-action",{active:t,...this._commonActionProperties,disabled:"image-loaded"!==e||i,icon:"layers",onclick:this._toggleImageOverlays,text:this.messages.imageOverlays}):null}get _imageViewer(){const{displayMessage:e,loadImageViewer:t,mode:i}=this.viewModel,a=null!=e||"default"!==i,o=this.classes({[b.viewer]:!a,[b.viewerHidden]:a});return z("calcite-panel",{afterCreate:t,bind:this,class:o},this._renderSketch())}get _locationToggle(){const{viewModel:{state:e,groundCoordinates:t},imageLocationToolActive:i,messages:{groundLocation:a}}=this;if("image-loaded"===e&&t&&i)return z("calcite-dialog",{bind:this,dragEnabled:!0,escapeDisabled:!0,heading:a,id:a,open:!0,placement:"bottom-start",resizable:!0,scale:"s",slot:"dialogs",width:"s",onCalciteDialogBeforeClose:this._clearImageLocation},z(S,{groundCoordinates:t,messages:this.messages}))}_mapImageConversionToggle(){const{mapImageConversionToolState:e,viewModel:{state:t},invalidCameraHeading:i,visibleElements:{mapImageConversionTool:a}}=this;return a?z("calcite-action",{active:e,...this._commonActionProperties,disabled:"image-loaded"!==t||i,icon:"image-pin",onclick:this._toggleMapImageConversionToolState,text:this.messages.mapImageConversionTool}):null}_measurementToolsToggle(){const{_activeMeasurementIcon:e,measureType:t,viewModel:i,accuracyParametersMissing:a,messages:o,visibleElements:{measurementTools:s}}=this,{state:n,mode:r}=i,{measurementTools:l,groundDistance:c,groundArea:d,heightAboveGround:g,groundLocation:m}=o;return s?z("calcite-dropdown",{disabled:a,key:"measurement-tools",width:"m"},z("calcite-action",{...this._commonActionProperties,icon:e,slot:"trigger",text:l}),z("calcite-dropdown-group",null,z("calcite-dropdown-item",{bind:this,disabled:"image-loaded"!==n,iconStart:"measure-line",key:"distance-measurement",onclick:e=>this._toggleMeasurementSketch(e,"distance"),selected:"distance"===t},c),z("calcite-dropdown-item",{bind:this,disabled:"image-loaded"!==n,iconStart:"measure-area",key:"area-measurement",onclick:e=>this._toggleMeasurementSketch(e,"area"),selected:"area"===t},d),z("calcite-dropdown-item",{bind:this,disabled:"image-loaded"!==n||"panoramic"===r,iconStart:"measure-building-height-top-base",key:"height-dropdown",onclick:e=>this._toggleMeasurementSketch(e,"height"),selected:"height"===t},g),z("calcite-dropdown-item",{bind:this,disabled:"image-loaded"!==n,iconStart:"pin-tear",key:"surface-location",onclick:e=>this._toggleLocationTool(e),selected:this.imageLocationToolActive},m))):null}get _messageBox(){const{messages:e,viewModel:{displayMessage:t}}=this;if(!t)return null;const{data:i,key:a,map:o}=t,s=`${o?G(e[a],o):e[a]}`;return z("span",{class:b.messageBox},i?`${s} ${i}`:s)}_navigationToolToggle(){const{state:e}=this.viewModel,{visibleElements:{navigationTool:t}}=this;return t?z("calcite-action",{active:this.navigationToolActive,...this._commonActionProperties,disabled:"image-loaded"!==e||this.invalidCameraHeading,icon:"explore",onclick:this._toggleNavigationTool,text:this.messages.navigationTool}):null}_openPopupAction(){const{showPopupsAction:e}=this.visibleElements;return e?z("calcite-action",{...this._commonActionProperties,disabled:!this.popupEnabled,icon:"popup",onclick:this._toggleImageAttributes,text:this.messages.showPopups}):null}get _panoramicViewer(){const{displayMessage:e,loadPanoramicViewer:t,mode:i}=this.viewModel,a=null!=e||"panoramic"!==i,o=this.classes({[b.viewer]:!a,[b.viewerHidden]:a});return z("calcite-panel",{afterCreate:t,bind:this,class:o})}_closeAllImageTools(){this.imageEnhancementToolActive=!1,this.navigationToolActive=!1,this.imageOverlaysOpened=!1,this.galleryOpened=!1,this.measureType=null,this.imageLocationToolActive=!1}_handleBrightnessChange(e){this.viewModel.brightness=e.currentTarget.value??0}_handleContrastChange(e){this.viewModel.contrast=e.currentTarget.value??0}_handleSharpnessChange(e){this.viewModel.sharpness=e.currentTarget.value??0}_lazyLoadImage(e,t){e.forEach((async e=>{if(e.isIntersecting){const a=e.target,o=a.getAttribute("data-src"),r=a.getAttribute("data-rotation"),l=a.getAttribute("data-objectid"),c=r?parseFloat(r)%360:0,{layer:d,_galleryController:{signal:g}}=this;if(!o||!d||!l)return;let m;try{m=A(o)?await I(d,l,{signal:g}):await O(o,{signal:g})}catch(i){n(i)||s.getLogger("esri.widgets.OrientedImageryViewer").error("#lazyLoadImage()",i)}finally{t.unobserve(a)}if(!m)return;L(m,a,c)}}))}_loadImageFromGallery(e){const{target:t}=e;if(!t)return;const i=t.getAttribute("data-objectid");i&&this.viewModel.currentBestFeature?.attributes.objectId!==Number(i)&&this.viewModel.selectBestFeature(i)}_loadImageMeasurementResources(){this._imageMeasurementToolsLoaderTask=i((async()=>{const{default:e}=await import("./OrientedImageryViewer/components/ImageMeasurementWidget.js");return e}))}_loadSketchResources(){this._sketchLoaderTask=i((async()=>(await import("./OrientedImageryViewer/components/SketchTools.js")).default))}_onAdditionalCoverageVisibilityChange(e){this.viewModel.setAdditionalCoverageVisibility(e)}_onAdditionalCameraLocationsVisibility(e){this.viewModel.setAdditionalCameraLocationsVisibility(e)}_onCurrentCoverageVisibilityChange(e){this.viewModel.setCurrentCoverageVisibility(e)}_registerGalleryItem(e){this._galleryObserver.observe(e)}_renderWarning(e){const{invalidCameraHeading:t,viewModel:{state:i}}=this;return t&&"image-loaded"===i?[z("calcite-notice",{class:b.alert,closable:!0,icon:"exclamation-mark-triangle-f",iconFlipRtl:!0,kind:"warning",open:!0,scale:"s"},z("div",{afterCreate:e=>this._storeWarningTitleElement(e),slot:"title"},e))]:null}_renderWarningTooltip(e){const{_warningTitleElement:t}=this;if(e?.length&&t)return z("calcite-tooltip",{closeOnClick:!0,referenceElement:t},e)}get _renderNavigation(){const{viewModel:{sectorData:e,navigatorCurrentBestFeature:i,currentBestFeature:a,state:o}}=this;if(!this.container||!a)return null;let s,n,r,l,c;if(i){const{x:e,y:t,direction:a}=i,[o,d,g,m]=v[a];s=`M ${e} ${t} L ${o} ${d} A ${y[2]} ${y[2]} 0 0 1 ${g} ${m} Z`,n=e,l=t,r=v[a][4],c=v[a][5]}const d=e=>{const t=e.target.dataset?.sector;t&&this.viewModel.handleSectorClick(+t)},g=e=>{const t=e.target.dataset;if(!t)return;const{featureIndexInSector:i,sector:a}=t;i&&a&&this.viewModel.handleFeatureClick({sector:a,featureIndexInSector:+i})},m=e=>{e.removeEventListener("click",g)},h=a.attributes.objectId,p=e?.map((e=>e?.items)).filter(Boolean).flatMap((e=>e?.map((({x:e,y:t,objectID:i,featureIndexInSector:a,sector:o})=>z("circle",{afterRemoved:m,class:this.classes(b.feature,{selected:h===i}),cx:e,cy:t,"data-feature-index-in-sector":a,"data-sector":o,key:`${b.feature}-${i}`,onclick:g,r:_}))))),T=e=>{e.removeEventListener("click",d)},C=this.classes({[b.navigationWrapper]:!0,[b.navigationZoomed]:this._navigationToolExpanded});return this.navigationToolActive&&"image-loaded"===o?z("div",{bind:this,class:C,key:this.messages.navigationTool},z("svg",{afterCreate:e=>this._storeNavigationToolReference(e),class:t()?M:b.rotateWithAnimation,focusable:"false",height:w,role:"img",width:w,xmlns:"http://www.w3.org/2000/svg"},z("defs",null,z("linearGradient",{gradientUnits:"userSpaceOnUse",id:`${this.id}-coverage-fill`,x1:n,x2:r,y1:l,y2:c},z("stop",{class:b.navigationPathOffset0,offset:0}),z("stop",{class:b.navigationPathOffset1,offset:1}))),z("g",null,z("circle",{class:this.classes(b.sector,b.outerSector),cx:y[3],cy:y[3],onclick:this._scaleNavigationTool,r:y[3]}),z("circle",{class:b.sector,cx:y[3],cy:y[3],r:y[2]}),z("circle",{class:b.sector,cx:y[3],cy:y[3],r:y[1]}),z("circle",{class:b.sector,cx:y[3],cy:y[3],r:y[0]}),z("path",{class:b.pointer,d:"M 56.5 6.06217782649107 L 60 0 L 63.5 6.06217782649107 Z",key:`${b.pointer}-west`}),z("path",{class:this.classes(b.pointer,b.north),d:"M 113.93782217350893 56.5 L 120 60 L 113.93782217350893 63.5 Z",key:`${b.pointer}-north`}),z("path",{class:b.pointer,d:"M 56.5 113.93782217350893 L 60 120 L 63.5 113.93782217350893 Z",key:`${b.pointer}-east`}),z("path",{class:b.pointer,d:"M 6.06217782649107 56.5 L 0 60 L 6.06217782649107 63.5 Z",key:`${b.pointer}-south`}),z("path",{class:this.classes(b.sector,b.sectorSeparator),d:"M 23.937554159486076 23.937554159486076 L 96.06244584051393 96.06244584051393 M 23.937554159486076 96.06244584051393 L 96.06244584051393 23.937554159486076",key:b.sectorSeparator}),u([y[2],y[1],y[0]],y[3],y[3]).map(((t,i)=>z("path",{afterRemoved:T,class:this.classes(b.sector,e?.[i]?.length?b.sectorEnabled:b.sectorDisabled),d:t,"data-sector":`${i}`,key:`${b.sector}-${i}`,onclick:d}))),z("path",{class:this.classes(b.sector,b.sectorCross),d:"M 56.4 56.4 L 63.53 63.53 M 63.53 56.4 L 56.4 63.53",key:b.sectorCross}),p,a.attributes.cameraPitch>=5&&s?z("path",{class:b.selectedFeaturePath,d:s,fill:`url(#${this.id}-coverage-fill)`,key:b.selectedFeaturePath}):null))):null}_renderSketch(){const{digitizationLayer:e,imageOverlaysOpened:t}=this;if(!e||t)return null;if(this._sketchLoaderTask||this._loadSketchResources(),!this._sketchLoaderTask?.value)return null;const{geometryType:i}=e,a="point"===i?"pin":"polyline"===i?"line":"polygon",o=this._sketchLoaderTask.value;return z("div",{class:b.sketchTools},z(o,{icon:a,messages:this._imageSketchToolsMessages,type:i,onAction:this._onAction}))}get _renderThumbnails(){const{currentBestFeature:e,thumbnails:t}=this.viewModel;return e?z("div",{class:b.carouselContent},t?.items.map((({url:t,objectId:i,rotation:a},o)=>z("div",{class:`${b.carouselItemWrapper}${e.attributes.objectId===i?"--selected":""}`,key:`${b.carouselItemWrapper}-${o}`},z("canvas",{afterCreate:this._registerGalleryItem,afterRemoved:this._unregisterGalleryItem,alt:`thumbnail-${i}`,class:b.carouselItem,"data-objectid":`${i}`,"data-rotation":`${a}`,"data-src":t,onclick:this._loadImageFromGallery,onmouseenter:this._highlight,onmouseleave:this._removeHighlight}))))):null}_resetImageTools(){this.viewModel.sharpness=this.viewModel.brightness=this.viewModel.contrast=0}_storeActionElement(e){this._actionItems.set(e.text,e)}_storeNavigationToolReference(e){this._navigationTool=e}_storeWarningTitleElement(e){this._warningTitleElement=e}_toggleAdditionalCameraLocations(){this.isAdditionalPointSourcesVisible=!this.isAdditionalPointSourcesVisible}_toggleAdditionalCoverage(){this.isAdditionalCoverageVisible=!this.isAdditionalCoverageVisible}_toggleCurrentCoverage(){this.currentCoverageVisible=!this.currentCoverageVisible}_toggleImageEnhancementToolState(e){e.stopPropagation(),this.imageEnhancementToolActive=!this.imageEnhancementToolActive,this.imageEnhancementToolActive&&(this.galleryOpened&&(this.galleryOpened=!1),this.navigationToolActive&&(this.navigationToolActive=!1),this.imageOverlaysOpened&&(this.imageOverlaysOpened=!1))}_toggleImageOverlays(e){e.stopPropagation(),this.imageOverlaysOpened=!this.imageOverlaysOpened,this.imageOverlaysOpened&&(this.galleryOpened&&(this.galleryOpened=!1),this.navigationToolActive&&(this.navigationToolActive=!1),this.imageEnhancementToolActive&&(this.imageEnhancementToolActive=!1))}_toggleImageGallery(e){e.stopPropagation(),this.galleryOpened=!!this.imageGalleryEnabled&&!this.galleryOpened,this.galleryOpened&&(this.imageEnhancementToolActive&&(this.imageEnhancementToolActive=!1),this.navigationToolActive&&(this.navigationToolActive=!1),this.imageOverlaysOpened&&(this.imageOverlaysOpened=!1))}_toggleLocationTool(e){const t=this.imageLocationToolActive;this._closeAllImageTools(),this.imageLocationToolActive=!t,e.stopPropagation()}_toggleMeasurementSketch(e,t){e.stopPropagation();const i=this.measureType;this._closeAllImageTools(),this.measureType=i===t?null:t,this.measureType===t&&(this.viewModel.displayNewMeasurementButton=!0)}_toggleNavigationTool(){this.navigationToolActive=!this.navigationToolActive,this.navigationToolActive&&(this.galleryOpened&&(this.galleryOpened=!1),this.imageEnhancementToolActive&&(this.imageEnhancementToolActive=!1),this.imageOverlaysOpened&&(this.imageOverlaysOpened=!1))}_toggleMapImageConversionToolState(){this.mapImageConversionToolState=!this.mapImageConversionToolState}_unregisterGalleryItem(e){this._galleryObserver.unobserve(e)}_updateNavigationTool(e){const{previousFeatureAngle:t,bestFeatureAngle:i}=this.viewModel,a=(i-t+540)%360-180;e.style.setProperty(T,`${t}deg`),e.style.setProperty(C,`${t+a}deg`)}async loadBestImage(e){return this.viewModel.loadBestImage(e)}loadImageFromSource(e,t){return this.viewModel.loadImageFromSource(e,t)}async plotMapPoint(e){return this.viewModel.plotMapPoint(e)}plotReferencePointOnGround(e){this.viewModel.plotReferencePointOnGround(e)}plotReferencePointOnImage(e){this.viewModel.plotReferencePointOnImage(e)}resetImage(){this.viewModel.resetImage()}render(){return z("div",{class:this.classes(P.widget,f)},this._renderRoot())}startDigitization(e){this.viewModel.startDigitization(e)}stopDigitization(e){this.viewModel.stopDigitization(e)}updateSuitabilities(e){this.viewModel.updateSuitabilities(e)}};e([m({readOnly:!0})],B.prototype,"accuracyParametersMissing",null),e([m()],B.prototype,"activeLayer",null),e([m()],B.prototype,"currentBestFeature",null),e([m()],B.prototype,"currentCoverageVisible",null),e([m()],B.prototype,"digitizationEnabled",void 0),e([m()],B.prototype,"digitizationLayer",null),e([m()],B.prototype,"disabled",null),e([m()],B.prototype,"features",null),e([m()],B.prototype,"imagePointsInView",null),e([m()],B.prototype,"galleryOpened",void 0),e([m()],B.prototype,"icon",null),e([m()],B.prototype,"imageEnhancementToolActive",void 0),e([m({readOnly:!0})],B.prototype,"imageGalleryEnabled",null),e([m()],B.prototype,"imageLocationToolActive",null),e([m()],B.prototype,"imageOverlaysOpened",void 0),e([m({readOnly:!0})],B.prototype,"invalidCameraHeading",null),e([m()],B.prototype,"isAdditionalCoverageVisible",null),e([m()],B.prototype,"isAdditionalPointSourcesVisible",null),e([m()],B.prototype,"mapImageConversionToolState",null),e([m()],B.prototype,"measureType",null),e([m()],B.prototype,"layer",null),e([m()],B.prototype,"navigationToolActive",void 0),e([j(["after-digitization-complete"]),m({type:k})],B.prototype,"viewModel",void 0),e([m(),x("esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer")],B.prototype,"messages",void 0),e([m(),x("esri/core/t9n/Units")],B.prototype,"measurementUnitMessages",void 0),e([m(),x("esri/t9n/common")],B.prototype,"messagesCommon",void 0),e([m(),x("esri/widgets/Sketch/t9n/Sketch")],B.prototype,"messagesSketch",void 0),e([m()],B.prototype,"pixelMeasurementUnit",void 0),e([m()],B.prototype,"pixelAreaMeasurementUnit",void 0),e([m({readOnly:!0})],B.prototype,"popupEnabled",null),e([m()],B.prototype,"referencePoint",null),e([m()],B.prototype,"showCameraLocations",void 0),e([m()],B.prototype,"showMapFeatures",void 0),e([j(["create","delete","redo","undo","update"]),m({readOnly:!0})],B.prototype,"sketchViewModel",null),e([m()],B.prototype,"view",null),e([m({type:E,nonNullable:!0})],B.prototype,"visibleElements",void 0),e([m()],B.prototype,"determineWorkflowForFeature",null),e([m()],B.prototype,"updateFootprint",null),e([m()],B.prototype,"_actionItems",void 0),e([m()],B.prototype,"_activeMeasurementIcon",null),e([m()],B.prototype,"_activeMeasurementHeading",null),e([m()],B.prototype,"_imageMeasurementToolsLoaderTask",void 0),e([m()],B.prototype,"_measurementToggle",null),e([m()],B.prototype,"_commonActionProperties",null),e([m()],B.prototype,"_imageEnhancementTools",null),e([m()],B.prototype,"_imageGalleryPanel",null),e([m()],B.prototype,"_imageGalleryContext",null),e([m()],B.prototype,"_imageOverlaysComponent",null),e([m()],B.prototype,"_imageOverlayMessages",null),e([m()],B.prototype,"_imageSketchToolsMessages",null),e([m()],B.prototype,"_imageOverlaysPanel",null),e([m()],B.prototype,"_imageViewer",null),e([m()],B.prototype,"_locationToggle",null),e([m()],B.prototype,"_messageBox",null),e([m()],B.prototype,"_navigationToolExpanded",void 0),e([m()],B.prototype,"_navigationTool",void 0),e([m()],B.prototype,"_panoramicViewer",null),e([m()],B.prototype,"_warningTitleElement",void 0),e([m()],B.prototype,"_renderNavigation",null),e([m()],B.prototype,"_renderThumbnails",null),e([m()],B.prototype,"_sketchLoaderTask",void 0),B=e([h("esri.widgets.OrientedImageryViewer")],B);const H=B;export{H as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- function e(e,n){if("freehandPolygon"===n||"freehandPolyline"===n)return"freehand";return e??("rectangle"===n||"circle"===n?"hybrid":"click")}function n(e){switch(e){case"freehandPolygon":return"polygon";case"freehandPolyline":return"polyline";default:return e}}export{n as getDrawToolGeometryTypeFromCreateTool,e as getModeFromCreateOptions};
5
+ function e(e,n){if("freehandPolygon"===n||"freehandPolyline"===n)return"freehand";return e??("rectangle"===n||"circle"===n?"hybrid":"click")}function n(e){switch(e){case"freehandPolygon":return"polygon";case"freehandPolyline":return"polyline";default:return e}}function r(e){return!!e&&("draw-2d"===e.type||"draw-3d"===e.type)}export{n as getDrawToolGeometryTypeFromCreateTool,e as getModeFromCreateOptions,r as isDrawGraphicTool};
@@ -1,4 +1,4 @@
1
1
  import "../../interfaces";
2
2
 
3
- import UtilityNetworkAssociationsUtilityNetworkAssociationsViewModel = __esri.UtilityNetworkAssociationsUtilityNetworkAssociationsViewModel;
4
- export default UtilityNetworkAssociationsUtilityNetworkAssociationsViewModel;
3
+ import UtilityNetworkAssociationsViewModel = __esri.UtilityNetworkAssociationsViewModel;
4
+ export default UtilityNetworkAssociationsViewModel;
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as o}from"../../../chunks/tslib.es6.js";import t from"../../../core/Accessor.js";import{isSome as e}from"../../../core/arrayUtils.js";import r from"../../../core/Collection.js";import{watch as i,initial as s}from"../../../core/reactiveUtils.js";import{property as n}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/has.js";import"../../../core/Logger.js";import{subclass as a}from"../../../core/accessorSupport/decorators/subclass.js";import d from"../FilterCondition.js";import{defaultOperatorNamesByFieldType as l}from"../FilterCondition/conditionUtils.js";let p=class extends t{constructor(o){super(o),this.conditionOperator="AND",this.conditionWidgets=new r,this.layer=null,this.operators=l}initialize(){this.addHandles([i((()=>this.layer),(async o=>{o&&!o.loaded&&"loading"!==o.loadStatus&&await o.load()}),s)])}get count(){return this.conditionWidgets.length}get state(){const{layer:o}=this;return o?o.loaded?"ready":"loading":"disabled"}get whereClause(){const{conditionOperator:o,whereClauses:t}=this;let e="";return t.forEach(((t,r)=>{e+=r>0?` ${o} (${t})`:`(${t})`})),e}get whereClauses(){return this.conditionWidgets.toArray().map((o=>o.whereClause)).filter(e)}addCondition(o,t){const{layer:e,operators:r}=this;e&&this.conditionWidgets.add(new d({...o,layer:e,operators:r}),t)}duplicateCondition(o){const t=this.conditionWidgets.at(o);if(!t)return;const{fieldName:e,operator:r,value:i}=t;this.addCondition({fieldName:e,operator:r,value:i})}reset(){this.conditionWidgets.removeAll()}removeCondition(o){null==o?this.conditionWidgets.pop():this.conditionWidgets.splice(o,1)}};o([n()],p.prototype,"conditionOperator",void 0),o([n()],p.prototype,"conditionWidgets",void 0),o([n()],p.prototype,"count",null),o([n()],p.prototype,"layer",void 0),o([n()],p.prototype,"operators",void 0),o([n()],p.prototype,"state",null),o([n()],p.prototype,"whereClause",null),o([n()],p.prototype,"whereClauses",null),p=o([a("esri.widgets.support.FilterBuilder.FilterBuilderViewModel")],p);const c=p;export{c as default};
5
+ import{_ as o}from"../../../chunks/tslib.es6.js";import t from"../../../core/Accessor.js";import{isSome as e}from"../../../core/arrayUtils.js";import r from"../../../core/Collection.js";import{watch as i,initial as s}from"../../../core/reactiveUtils.js";import{property as n}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/has.js";import"../../../core/Logger.js";import{subclass as d}from"../../../core/accessorSupport/decorators/subclass.js";import a from"../FilterCondition.js";import{defaultOperatorNamesByFieldType as l}from"../FilterCondition/conditionUtils.js";let p=class extends t{constructor(o){super(o),this.conditionOperator="AND",this.conditionWidgets=new r,this.layer=null,this.operators=l}initialize(){this.addHandles([i((()=>this.layer),(async o=>{o&&!o.loaded&&await o.load()}),s)])}get count(){return this.conditionWidgets.length}get state(){const{layer:o}=this;return o?o.loaded?"ready":"loading":"disabled"}get whereClause(){const{conditionOperator:o,whereClauses:t}=this;let e="";return t.forEach(((t,r)=>{e+=r>0?` ${o} (${t})`:`(${t})`})),e}get whereClauses(){return this.conditionWidgets.toArray().map((o=>o.whereClause)).filter(e)}addCondition(o,t){const{layer:e,operators:r}=this;e&&this.conditionWidgets.add(new a({...o,layer:e,operators:r}),t)}duplicateCondition(o){const t=this.conditionWidgets.at(o);if(!t)return;const{fieldName:e,operator:r,value:i}=t;this.addCondition({fieldName:e,operator:r,value:i})}reset(){this.conditionWidgets.removeAll()}removeCondition(o){null==o?this.conditionWidgets.pop():this.conditionWidgets.splice(o,1)}};o([n()],p.prototype,"conditionOperator",void 0),o([n()],p.prototype,"conditionWidgets",void 0),o([n()],p.prototype,"count",null),o([n()],p.prototype,"layer",void 0),o([n()],p.prototype,"operators",void 0),o([n()],p.prototype,"state",null),o([n()],p.prototype,"whereClause",null),o([n()],p.prototype,"whereClauses",null),p=o([d("esri.widgets.support.FilterBuilder.FilterBuilderViewModel")],p);const c=p;export{c as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import{property as t}from"../../core/accessorSupport/decorators/property.js";import{cast as o}from"../../core/accessorSupport/decorators/cast.js";import"../../core/has.js";import"../../core/RandomLCG.js";import{subclass as i}from"../../core/accessorSupport/decorators/subclass.js";import r from"../Widget.js";import{loadCalciteComponents as n}from"./componentsUtils.js";import"./widgetUtils.js";import{messageBundle as s}from"./decorators/messageBundle.js";import{tsx as l}from"./jsxFactory.js";import c from"./FilterBuilder/FilterBuilderViewModel.js";const a={fab:!0,menu:!0},d="esri-filter-builder",p={base:d,container:`${d}__container`,conditionContainer:`${d}__condition-container`,operatorSelect:`${d}__operator-select`};let u=class extends r{constructor(e,t){super(e,t),this.messages=null,this.messagesCommon=null,this.viewModel=new c,this.visibleElements={...a}}loadDependencies(){return n({action:()=>import("@esri/calcite-components/dist/components/calcite-action"),"action-menu":()=>import("@esri/calcite-components/dist/components/calcite-action-menu"),block:()=>import("@esri/calcite-components/dist/components/calcite-block"),fab:()=>import("@esri/calcite-components/dist/components/calcite-fab"),option:()=>import("@esri/calcite-components/dist/components/calcite-option"),select:()=>import("@esri/calcite-components/dist/components/calcite-select")})}get conditionOperator(){return this.viewModel.conditionOperator}set conditionOperator(e){this.viewModel.conditionOperator=e}get count(){return this.viewModel.count}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}get operators(){return this.viewModel.operators}set operators(e){this.viewModel.operators=e}get state(){return this.viewModel.state}castVisibleElements(e){return{...a,...e}}get whereClause(){return this.viewModel.whereClause}get whereClauses(){return this.viewModel.whereClauses}render(){return l("div",{class:p.base},this._renderOperatorSelect(),this._renderConditions(),this._renderFAB())}_renderOperatorSelect(){if(this.count<2)return;const{conditionOperator:e,messages:t}=this,o="AND"===e;return l("div",{class:p.operatorSelect},l("calcite-select",{label:t.condition,width:"full",onCalciteSelectChange:({currentTarget:e})=>{this.conditionOperator=e.value}},l("calcite-option",{label:t.allAreTrue,selected:o,value:"AND"}),l("calcite-option",{label:t.anyAreTrue,selected:!o,value:"OR"})))}_renderConditions(){return this.viewModel.conditionWidgets.toArray().map(((e,t)=>this._renderConditionContainer(e,t)))}_renderConditionContainer(e,t){return l("calcite-block",{class:p.conditionContainer,heading:this.messages.condition,open:!0},e.render(),this._renderConditionrMenu(t))}_renderFAB(){if(!this.visibleElements.fab)return;const e="loading"===this.state;return l("calcite-fab",{appearance:"outline-fill",disabled:e,icon:"plus",kind:"neutral",loading:e,onclick:()=>this.viewModel.addCondition(),text:this.messages.addNew,textEnabled:!0})}_renderConditionrMenu(e){if(!this.visibleElements.menu)return;const{messages:t}=this;return l("calcite-action-menu",{label:t.moreOptions,overlayPositioning:"fixed",placement:"bottom-end",slot:"control"},l("calcite-action",{onclick:()=>this.viewModel.removeCondition(e),text:t.delete,textEnabled:!0}),l("calcite-action",{onclick:()=>this.viewModel.duplicateCondition(e),text:t.duplicate,textEnabled:!0}))}};e([t()],u.prototype,"conditionOperator",null),e([t()],u.prototype,"count",null),e([t()],u.prototype,"layer",null),e([t(),s("esri/widgets/support/FilterBuilder/t9n/FilterBuilder")],u.prototype,"messages",void 0),e([t(),s("esri/t9n/common")],u.prototype,"messagesCommon",void 0),e([t()],u.prototype,"operators",null),e([t()],u.prototype,"state",null),e([t()],u.prototype,"viewModel",void 0),e([t()],u.prototype,"visibleElements",void 0),e([o("visibleElements")],u.prototype,"castVisibleElements",null),e([t()],u.prototype,"whereClause",null),e([t()],u.prototype,"whereClauses",null),u=e([i("esri.widgets.support.FilterBuilder")],u);const m=u;export{m as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import{property as t}from"../../core/accessorSupport/decorators/property.js";import{cast as o}from"../../core/accessorSupport/decorators/cast.js";import"../../core/has.js";import"../../core/RandomLCG.js";import{subclass as i}from"../../core/accessorSupport/decorators/subclass.js";import r from"../Widget.js";import{loadCalciteComponents as s}from"./componentsUtils.js";import"./widgetUtils.js";import{messageBundle as n}from"./decorators/messageBundle.js";import{tsx as l}from"./jsxFactory.js";import c from"./FilterBuilder/FilterBuilderViewModel.js";const a={fab:!0,menu:!0},d="esri-filter-builder",p={base:d,container:`${d}__container`,conditionContainer:`${d}__condition-container`,operatorSelect:`${d}__operator-select`};let u=class extends r{constructor(e,t){super(e,t),this.messages=null,this.messagesCommon=null,this.viewModel=new c,this.visibleElements={...a}}loadDependencies(){return s({action:()=>import("@esri/calcite-components/dist/components/calcite-action"),"action-menu":()=>import("@esri/calcite-components/dist/components/calcite-action-menu"),block:()=>import("@esri/calcite-components/dist/components/calcite-block"),fab:()=>import("@esri/calcite-components/dist/components/calcite-fab"),option:()=>import("@esri/calcite-components/dist/components/calcite-option"),select:()=>import("@esri/calcite-components/dist/components/calcite-select")})}get conditionOperator(){return this.viewModel.conditionOperator}set conditionOperator(e){this.viewModel.conditionOperator=e}get count(){return this.viewModel.count}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}get operators(){return this.viewModel.operators}set operators(e){this.viewModel.operators=e}get state(){return this.viewModel.state}castVisibleElements(e){return{...a,...e}}get whereClause(){return this.viewModel.whereClause}get whereClauses(){return this.viewModel.whereClauses}render(){return l("div",{class:p.base},this._renderOperatorSelect(),this._renderConditions(),this._renderFAB())}reset(){this.viewModel.reset()}_renderOperatorSelect(){if(this.count<2)return;const{conditionOperator:e,messages:t}=this,o="AND"===e;return l("div",{class:p.operatorSelect},l("calcite-select",{label:t.condition,width:"full",onCalciteSelectChange:({currentTarget:e})=>{this.conditionOperator=e.value}},l("calcite-option",{label:t.allAreTrue,selected:o,value:"AND"}),l("calcite-option",{label:t.anyAreTrue,selected:!o,value:"OR"})))}_renderConditions(){return this.viewModel.conditionWidgets.toArray().map(((e,t)=>this._renderConditionContainer(e,t)))}_renderConditionContainer(e,t){return l("calcite-block",{class:p.conditionContainer,heading:this.messages.condition,open:!0},e.render(),this._renderConditionrMenu(t))}_renderFAB(){if(!this.visibleElements.fab)return;const e="loading"===this.state;return l("calcite-fab",{appearance:"outline-fill",disabled:e,icon:"plus",kind:"neutral",loading:e,onclick:()=>this.viewModel.addCondition(),text:this.messages.addNew,textEnabled:!0})}_renderConditionrMenu(e){if(!this.visibleElements.menu)return;const{messages:t}=this;return l("calcite-action-menu",{label:t.moreOptions,overlayPositioning:"fixed",placement:"bottom-end",slot:"control"},l("calcite-action",{onclick:()=>this.viewModel.removeCondition(e),text:t.delete,textEnabled:!0}),l("calcite-action",{onclick:()=>this.viewModel.duplicateCondition(e),text:t.duplicate,textEnabled:!0}))}};e([t()],u.prototype,"conditionOperator",null),e([t()],u.prototype,"count",null),e([t()],u.prototype,"layer",null),e([t(),n("esri/widgets/support/FilterBuilder/t9n/FilterBuilder")],u.prototype,"messages",void 0),e([t(),n("esri/t9n/common")],u.prototype,"messagesCommon",void 0),e([t()],u.prototype,"operators",null),e([t()],u.prototype,"state",null),e([t()],u.prototype,"viewModel",void 0),e([t()],u.prototype,"visibleElements",void 0),e([o("visibleElements")],u.prototype,"castVisibleElements",null),e([t()],u.prototype,"whereClause",null),e([t()],u.prototype,"whereClauses",null),u=e([i("esri.widgets.support.FilterBuilder")],u);const m=u;export{m as default};