@arcgis/core 5.2.0-next.48 → 5.2.0-next.49

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 (190) hide show
  1. package/applications/Components/OrientedImageryViewer/PanoramicViewer/utils.d.ts +33 -0
  2. package/applications/Components/OrientedImageryViewer/PanoramicViewer/utils.js +2 -0
  3. package/arcgisGlobal.d.ts +2 -0
  4. package/assets/esri/core/workers/RemoteClient.js +1 -1
  5. package/assets/esri/core/workers/chunks/031ccf2e1583beebdf24.js +1 -0
  6. package/assets/esri/core/workers/chunks/0474af7687466d8befd2.js +1 -0
  7. package/assets/esri/core/workers/chunks/{f9b2727b41943d83d4ca.js → 0a413d917f3d19440fc1.js} +1 -1
  8. package/assets/esri/core/workers/chunks/0b2ca406761c63529a6a.js +1 -0
  9. package/assets/esri/core/workers/chunks/{c369d4266f38e9ea6592.js → 1119a33245138e7b3914.js} +1 -1
  10. package/assets/esri/core/workers/chunks/{6fbcf1b85461c6c6c127.js → 172571397c66f992d08c.js} +1 -1
  11. package/assets/esri/core/workers/chunks/18edf2846d7546285e5e.js +1 -0
  12. package/assets/esri/core/workers/chunks/{7759a489205a874e13bb.js → 1b0557fcb058fc450230.js} +1 -1
  13. package/assets/esri/core/workers/chunks/{7d0ff52748fd4eb0334d.js → 1bc45872d22d61dbd7d1.js} +1 -1
  14. package/assets/esri/core/workers/chunks/{835643f716f7058a2722.js → 1cf8fb704c48ac3d3b15.js} +1 -1
  15. package/assets/esri/core/workers/chunks/25cb56c3b538d00e7693.js +1 -0
  16. package/assets/esri/core/workers/chunks/{2c0d92c0e3511775401a.js → 35cbf00f0c37a86517af.js} +1 -1
  17. package/assets/esri/core/workers/chunks/382d9491c2a56c1925fe.js +1 -0
  18. package/assets/esri/core/workers/chunks/3af2b9d6d5466cb2b957.js +256 -0
  19. package/assets/esri/core/workers/chunks/{c3766d98f0a70897647f.js → 3bc2943035391b44d4cf.js} +1 -1
  20. package/assets/esri/core/workers/chunks/{bd8b180c61a80e60568c.js → 40f7bb0ebd918d76f078.js} +1 -1
  21. package/assets/esri/core/workers/chunks/43b39abd49c4a8ce891f.js +1 -0
  22. package/assets/esri/core/workers/chunks/{821176ee3be724621bb0.js → 461c2de938bf4c9b1442.js} +1 -1
  23. package/assets/esri/core/workers/chunks/4ee7232ea41fa41c5ed4.js +29 -0
  24. package/assets/esri/core/workers/chunks/50674ba5f24129d61d89.js +1 -0
  25. package/assets/esri/core/workers/chunks/547a2fe53139f705f95e.js +1 -0
  26. package/assets/esri/core/workers/chunks/5ce09c4d06e98b1e9251.js +1 -0
  27. package/assets/esri/core/workers/chunks/{4d9433f127aef76f3449.js → 5dbd28fce73751d2d1aa.js} +1 -1
  28. package/assets/esri/core/workers/chunks/5ec8b02e097cf6718462.js +1 -0
  29. package/assets/esri/core/workers/chunks/5f54d927dc77e92cf145.js +1 -0
  30. package/assets/esri/core/workers/chunks/63e3d338751240479335.js +1 -0
  31. package/assets/esri/core/workers/chunks/6ccd5fa5e35dc70fcd5d.js +1 -0
  32. package/assets/esri/core/workers/chunks/6e520ef645c5edcd499a.js +1 -0
  33. package/assets/esri/core/workers/chunks/{68d898037feb0aee3138.js → 78add8e6b54b51eaa299.js} +1 -1
  34. package/assets/esri/core/workers/chunks/7b61f56d0f766421eaef.js +1 -0
  35. package/assets/esri/core/workers/chunks/7f2f2a92dce3f68e579b.js +1 -0
  36. package/assets/esri/core/workers/chunks/{e7e3ea7af928b49b226c.js → 801a664f21e0218bc705.js} +1 -1
  37. package/assets/esri/core/workers/chunks/8d21e2dabc5165f1c8ca.js +1 -0
  38. package/assets/esri/core/workers/chunks/9008090a5d8431ddfa22.js +1 -0
  39. package/assets/esri/core/workers/chunks/{71ce1009dadcae8f8094.js → 95b3b8fe45ef4ac6b277.js} +1 -1
  40. package/assets/esri/core/workers/chunks/{78918035144c3c76df71.js → 96cec8a02ca96175d602.js} +1 -1
  41. package/assets/esri/core/workers/chunks/{bab71e1b8b93d09d4809.js → 99eccf9ce53582cfa5b5.js} +1 -1
  42. package/assets/esri/core/workers/chunks/9b7cb96acea388d86fa4.js +1 -0
  43. package/assets/esri/core/workers/chunks/{ff2c4f648f77850922d5.js → 9e474465d069cb9e94f5.js} +1 -1
  44. package/assets/esri/core/workers/chunks/{ae9f9e975d7a9d442fa5.js → ab5aa4280ed0cb7fcbe9.js} +1 -1
  45. package/assets/esri/core/workers/chunks/b49952541d189b4b9f7e.js +1 -0
  46. package/assets/esri/core/workers/chunks/{fed6c75485601cd3afa1.js → baac90da0703891d59c4.js} +1 -1
  47. package/assets/esri/core/workers/chunks/bb552089b34d6811fb03.js +1 -0
  48. package/assets/esri/core/workers/chunks/{b30237361d87cf982e41.js → d1af0bd611a3dc549858.js} +64 -59
  49. package/assets/esri/core/workers/chunks/d2cb3d5ef0a9285afb78.js +1 -0
  50. package/assets/esri/core/workers/chunks/d560ed96dde5ca3a5583.js +1 -0
  51. package/assets/esri/core/workers/chunks/dc1787d88b11ed985159.js +1 -0
  52. package/assets/esri/core/workers/chunks/{399e23d777a043efa9f1.js → dd95f50dac3f33cdb6d2.js} +1 -1
  53. package/assets/esri/core/workers/chunks/ddb92c815d17c67a45e6.js +1 -0
  54. package/assets/esri/core/workers/chunks/{52efa4ded11c1e71f04f.js → e2e2162adbfb9b46bede.js} +1 -1
  55. package/assets/esri/core/workers/chunks/e4353f0792f45aa6a62f.js +1 -0
  56. package/assets/esri/core/workers/chunks/eac8cae89da9ce2f4946.js +1 -0
  57. package/assets/esri/core/workers/chunks/edf87407dd20685c82ab.js +1 -0
  58. package/assets/esri/core/workers/chunks/{be6caade351e89f84251.js → ee7c8a7f384ea6393487.js} +107 -82
  59. package/assets/esri/core/workers/chunks/f1299b4fc760ccca1518.js +1 -0
  60. package/assets/esri/core/workers/chunks/f244632f7934a4b72c91.js +1 -0
  61. package/assets/esri/core/workers/chunks/fc639c730115e07a4a1a.js +1 -0
  62. package/assets/esri/libs/dxtEncoder/dxt_encoder.wasm +0 -0
  63. package/chunks/Component.glsl.js +104 -67
  64. package/chunks/LineMarker.glsl.js +31 -31
  65. package/chunks/RibbonLine.glsl.js +60 -49
  66. package/chunks/dxt_encoder.js +1 -1
  67. package/chunks/vec3.js +1 -1
  68. package/config.js +1 -1
  69. package/core/has.js +1 -1
  70. package/geometry/support/aaBoundingBox.js +1 -1
  71. package/geometry/support/buffer/math/vec3.js +1 -1
  72. package/geometry/support/frustum.js +1 -1
  73. package/geometry/support/meshUtils/extent.js +1 -1
  74. package/geometry/support/meshUtils/vertexSpaceConversion.js +1 -1
  75. package/kernel.js +1 -1
  76. package/layers/orientedImagery/transformations/imageToWorld.js +1 -1
  77. package/layers/orientedImagery/transformations/utils.js +1 -1
  78. package/package.json +1 -1
  79. package/support/revision.js +1 -1
  80. package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
  81. package/symbols/cim/CIMSymbolHelper.js +1 -1
  82. package/symbols/cim/TextRasterizer.js +1 -1
  83. package/symbols/cim/cimAnalyzer.js +1 -1
  84. package/symbols/cim/richTextUtils.js +2 -0
  85. package/views/2d/engine/webgl/TextureManager.js +1 -1
  86. package/views/2d/engine/webgl/definitions.js +1 -1
  87. package/views/2d/engine/webgl/mesh/templates/shapingUtils.js +1 -1
  88. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelMeshWriter.js +1 -1
  89. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js +1 -1
  90. package/views/2d/engine/webgl/util/DimensionMatcher.js +1 -1
  91. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  92. package/views/2d/layers/features/schema/processor/symbols/SymbolSchema.js +1 -1
  93. package/views/2d/layers/support/annodime/DimensionInfo.js +1 -1
  94. package/views/2d/layers/support/annodime/dimensionUtils.js +1 -1
  95. package/views/3d/analysis/LineOfSight/LineOfSightReshapeTool3D.js +1 -1
  96. package/views/3d/analysis/Viewshed/ViewshedConfiguration.js +1 -1
  97. package/views/3d/analysis/Viewshed/ViewshedEditTool.js +1 -1
  98. package/views/3d/analysis/Viewshed/ViewshedSubTool.js +1 -1
  99. package/views/3d/analysis/Viewshed/ViewshedSubVisualization.js +1 -1
  100. package/views/3d/analysis/Viewshed/ViewshedTool.js +1 -1
  101. package/views/3d/analysis/ViewshedAnalysisView3D.js +1 -1
  102. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillController.js +1 -1
  103. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillVisualization.js +1 -1
  104. package/views/3d/focusAreaUtils.js +1 -1
  105. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  106. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  107. package/views/3d/layers/graphics/objectResourceUtils.js +1 -1
  108. package/views/3d/layers/graphics/wosrLoader.js +1 -1
  109. package/views/3d/layers/i3s/meshUtils.js +1 -1
  110. package/views/3d/webgl/RenderCamera.js +1 -1
  111. package/views/3d/webgl/RenderNode.js +1 -1
  112. package/views/3d/webgl-engine/collections/Component/Material/Component.glsl.js +1 -1
  113. package/views/3d/webgl-engine/core/shaderLibrary/TextureBackedBuffer.glsl.js +2 -2
  114. package/views/3d/webgl-engine/core/shaderLibrary/TextureBackedBufferFields.glsl.js +2 -2
  115. package/views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js +36 -25
  116. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +17 -10
  117. package/views/3d/webgl-engine/lib/BoundingInfo.js +1 -1
  118. package/views/3d/webgl-engine/lib/Object3D.js +1 -1
  119. package/views/3d/webgl-engine/lib/PolygonIntersections2D.js +1 -1
  120. package/views/3d/webgl-engine/lib/RayIntersections.js +1 -1
  121. package/views/3d/webgl-engine/lib/RenderGeometry.js +1 -1
  122. package/views/3d/webgl-engine/lib/depthRangeUtils.js +1 -1
  123. package/views/3d/webgl-engine/lib/lodRendering/LodLevel.js +1 -1
  124. package/views/3d/webgl-engine/lib/screenPolygonOverlapUtils.js +1 -1
  125. package/views/3d/webgl-engine/lib/screenPolygonTriangleIntersections.js +1 -1
  126. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  127. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  128. package/views/3d/webgl-engine/shaders/AnimatedLine.glsl.js +8 -5
  129. package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
  130. package/views/3d/webgl-engine/shaders/RibbonLineLayouts.js +1 -1
  131. package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
  132. package/views/3d/webgl-engine/shaders/RibbonLineTextureBuffer.glsl.js +1 -1
  133. package/views/SceneView.js +1 -1
  134. package/views/interactive/snapping/featureSources/FeatureServiceSnappingSource.js +1 -1
  135. package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceSnappingSourceWorkerHandle.js +1 -1
  136. package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiledFetcher.js +1 -1
  137. package/views/selection/SelectionOperation.js +1 -1
  138. package/views/support/DefaultsFromMap.js +1 -1
  139. package/views/support/LayerViewManager.js +1 -1
  140. package/views/support/TextureCompressionWorker.js +1 -1
  141. package/views/webgl/RenderingContext.js +1 -1
  142. package/widgets/Editor.js +1 -1
  143. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  144. package/widgets/OrientedImageryViewer/services/SuperimposeService.js +1 -1
  145. package/widgets/OrientedImageryViewer/support/superimposeUtils.js +1 -1
  146. package/widgets/PanoramicViewer/support/PanoramicTileNode.d.ts +63 -0
  147. package/widgets/PanoramicViewer/support/PanoramicTileNode.js +1 -1
  148. package/widgets/PanoramicViewer/support/PanoramicTilePyramid.d.ts +66 -0
  149. package/widgets/PanoramicViewer/support/PanoramicTilePyramid.js +1 -1
  150. package/widgets/PanoramicViewer/utils.js +1 -1
  151. package/widgets/Sketch/VisibleElements.d.ts +0 -10
  152. package/widgets/Sketch.js +1 -1
  153. package/widgets/support/SelectionToolbar/SelectionToolbarViewModel.js +1 -1
  154. package/widgets/support/SelectionToolbar.js +1 -1
  155. package/widgets/support/Selector3D/selectorUtils.js +2 -0
  156. package/assets/esri/core/workers/chunks/0e64e20fedfe01a1985f.js +0 -1
  157. package/assets/esri/core/workers/chunks/0f674c625f24ac73e25a.js +0 -1
  158. package/assets/esri/core/workers/chunks/15351354afcbf840a23d.js +0 -29
  159. package/assets/esri/core/workers/chunks/1843a762f7051f61af43.js +0 -1
  160. package/assets/esri/core/workers/chunks/1d1f5578c7d8619f7a46.js +0 -1
  161. package/assets/esri/core/workers/chunks/2015f4def2ef201bdab8.js +0 -1
  162. package/assets/esri/core/workers/chunks/20c363a113dc068de9e0.js +0 -1
  163. package/assets/esri/core/workers/chunks/24d936d459c538187af6.js +0 -1
  164. package/assets/esri/core/workers/chunks/272c8ab189217240d05f.js +0 -1
  165. package/assets/esri/core/workers/chunks/2e121eac97ae72a8b49a.js +0 -1
  166. package/assets/esri/core/workers/chunks/327899182a4dace428eb.js +0 -1
  167. package/assets/esri/core/workers/chunks/32ca15d928d51b380068.js +0 -1
  168. package/assets/esri/core/workers/chunks/3e1a7e4c674057807e3a.js +0 -1
  169. package/assets/esri/core/workers/chunks/4e2baa60c5d5197b2271.js +0 -1
  170. package/assets/esri/core/workers/chunks/519c0b51b1ba42fb71d7.js +0 -1
  171. package/assets/esri/core/workers/chunks/57fa3c0e7892c2eef3ee.js +0 -261
  172. package/assets/esri/core/workers/chunks/68b615bbd27fadcfcb66.js +0 -1
  173. package/assets/esri/core/workers/chunks/69d740ab18510156f5d6.js +0 -1
  174. package/assets/esri/core/workers/chunks/8d21f3d6edbcd7b335d0.js +0 -1
  175. package/assets/esri/core/workers/chunks/9a97f6cda2f36941efae.js +0 -1
  176. package/assets/esri/core/workers/chunks/9ceeae787dc7c194d60e.js +0 -1
  177. package/assets/esri/core/workers/chunks/a90f7b1c6c69b6033b4c.js +0 -1
  178. package/assets/esri/core/workers/chunks/b32bdf5730953c2fb16b.js +0 -1
  179. package/assets/esri/core/workers/chunks/b5d23efa584c74955d5b.js +0 -1
  180. package/assets/esri/core/workers/chunks/b83f2bbd634f57a5e8f9.js +0 -1
  181. package/assets/esri/core/workers/chunks/bb8e9b8343b83dd1ba3c.js +0 -1
  182. package/assets/esri/core/workers/chunks/bef1990159c0e49e7d27.js +0 -1
  183. package/assets/esri/core/workers/chunks/bf287f0e2ecb4532dc00.js +0 -1
  184. package/assets/esri/core/workers/chunks/c5e36544b2d1792e4c5f.js +0 -1
  185. package/assets/esri/core/workers/chunks/cba3316910ff088f4d77.js +0 -1
  186. package/assets/esri/core/workers/chunks/de9573871f64c01e9f01.js +0 -1
  187. package/assets/esri/core/workers/chunks/e232459f0b00110e07ac.js +0 -1
  188. package/assets/esri/core/workers/chunks/ee6bb6cd16f99421c76b.js +0 -1
  189. package/assets/esri/core/workers/chunks/fd2ba6f76645ba503cbb.js +0 -1
  190. package/views/3d/analysis/Viewshed/ViewshedTool2.js +0 -2
@@ -0,0 +1,63 @@
1
+ import type Mesh from "../../../geometry/Mesh.js";
2
+ import type PixelBlock from "../../../layers/support/PixelBlock.js";
3
+ import type { AbortOptions } from "../../../core/promiseUtils.js";
4
+
5
+ /** @internal */
6
+ export default interface PanoramicTileNode {
7
+ /** @internal */
8
+ column: number;
9
+ /** @internal */
10
+ distance: number;
11
+ /** @internal */
12
+ readonly key: string;
13
+ /** @internal */
14
+ loaded: boolean;
15
+ /**
16
+ * @param level
17
+ * @param row
18
+ * @param column
19
+ * @param options
20
+ * @internal
21
+ */
22
+ getPixelBlock(level: number, row: number, column: number, options?: AbortOptions): Promise<PixelBlock | null | undefined>;
23
+ /** @internal */
24
+ horizonAngles: [
25
+ number,
26
+ number,
27
+ number
28
+ ];
29
+ /** @internal */
30
+ horizontalFieldOfView: number;
31
+ /** @internal */
32
+ level: number;
33
+ /** @internal */
34
+ pitch: number;
35
+ /** @internal */
36
+ row: number;
37
+ /** @internal */
38
+ verticalFieldOfView: number;
39
+ /** @internal */
40
+ yaw: number;
41
+ /**
42
+ * Loads and constructs a mesh for the panoramic tile node.
43
+ *
44
+ * This method retrieves pixel data for the specified tile, converts it to image data,
45
+ * computes the mesh vertex attributes and faces, and assembles a `Mesh` object.
46
+ * The result is cached for subsequent calls.
47
+ *
48
+ * @param options - Optional abort options to cancel the operation.
49
+ * @returns A promise that resolves to the constructed `Mesh` object.
50
+ * @internal
51
+ * @throws {EsriError} If the pixel block data for the tile is missing.
52
+ * @throws {AbortError} If the operation is aborted via the provided options.
53
+ */
54
+ loadMesh(options?: AbortOptions): Promise<Mesh>;
55
+ /**
56
+ * Loads or updates the mesh for the tile node at a new distance.
57
+ *
58
+ * @param newDistance
59
+ * @param options
60
+ * @internal
61
+ */
62
+ loadMeshAtDistance(newDistance: number, options?: AbortOptions): Promise<Mesh>;
63
+ }
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import e from"../../../core/Error.js";import{throwIfAborted as t}from"../../../core/promiseUtils.js";import i from"../../../geometry/Mesh.js";import s from"../../../geometry/SpatialReference.js";import r from"../../../geometry/support/MeshMaterialMetallicRoughness.js";import o from"../../../geometry/support/MeshTexture.js";import{defaultImageSphereCenter as a}from"../constants.js";import{loadMeshDependencies as c}from"./importUtils.js";class l{constructor(i,l,n,h,m,w,u,p,f,d){this.level=i,this.row=l,this.column=n,this.horizontalFieldOfView=h,this.verticalFieldOfView=m,this.yaw=w,this.pitch=u,this.distance=p,this.horizonAngles=f,this.getPixelBlock=d,this._cache=null,this.loadMesh=async i=>{const{level:l,row:n,column:h,horizontalFieldOfView:m,verticalFieldOfView:w,yaw:u,pitch:p,distance:f}=this,{Mesh:d,MeshComponent:g,MeshVertexAttributes:v,panoramicMeshManager:M}=await c(),{faces:x,...y}=await M.getFacesWithVertexAttributes({distance:f,yaw:u,horizontalFieldOfView:m,pitch:p,verticalFieldOfView:w});t(i);const V=await this.getPixelBlock(l,n,h,i);if(t(i),!V)throw new e("panoramic-viewer:missing-tile-data",`Tile data for level ${l}, row ${n}, column ${h} is missing`,{level:l,row:n,column:h});const A=await M.convertPixelBlockToImageData(V);t(i);const F=new d({vertexAttributes:new v(y),components:[new g({faces:x,trustSourceNormals:!0,material:new r({colorTexture:new o({data:A}),emissiveTexture:new o({data:A}),emissiveStrength:.5})})],spatialReference:s.WebMercator});return F.rotate(...this.horizonAngles,{origin:a}),await F.load(i),this._cache=F,this._cache},this.loadMeshAtDistance=async(e,t)=>{const i=this.distance;return this.distance=e,Math.abs(i-e)>1e-6&&this._cache?this._cache:await this.loadMesh(t)}}get loaded(){return null!==this._cache}get key(){return`${this.level}/${this.row}/${this.column}`}clone(){const{level:e,row:t,column:s,horizontalFieldOfView:r,verticalFieldOfView:o,yaw:a,pitch:c,distance:n,getPixelBlock:h,horizonAngles:m}=this,w=new l(e,t,s,r,o,a,c,n,m,h);if(this._cache){const{vertexAttributes:e,components:t,spatialReference:s}=this._cache,r=t?.map(({material:e,faces:t,trustSourceNormals:i})=>({material:e,faces:t?.slice(),trustSourceNormals:i}));w._cache=new i({components:r,vertexAttributes:e.clone(),spatialReference:s})}return w}}export{l as default};
2
+ import e from"../../../core/Error.js";import{throwIfAborted as t}from"../../../core/promiseUtils.js";import i from"../../../geometry/Mesh.js";import s from"../../../geometry/SpatialReference.js";import o from"../../../geometry/support/MeshMaterialMetallicRoughness.js";import r from"../../../geometry/support/MeshTexture.js";import{defaultImageSphereCenter as a}from"../constants.js";import{loadMeshDependencies as c}from"./importUtils.js";class l{constructor(i,l,n,h,m,w,u,p,f,d){this.level=i,this.row=l,this.column=n,this.horizontalFieldOfView=h,this.verticalFieldOfView=m,this.yaw=w,this.pitch=u,this.distance=p,this.horizonAngles=f,this.getPixelBlock=d,this._cache=null,this.loadMesh=async i=>{const{level:l,row:n,column:h,horizontalFieldOfView:m,verticalFieldOfView:w,yaw:u,pitch:p,distance:f}=this,{Mesh:d,MeshComponent:g,MeshVertexAttributes:v,panoramicMeshManager:M}=await c(),{faces:x,...y}=await M.getFacesWithVertexAttributes({distance:f,yaw:u,horizontalFieldOfView:m,pitch:p,verticalFieldOfView:w});t(i);const V=await this.getPixelBlock(l,n,h,i);if(t(i),!V)throw new e("panoramic-viewer:missing-tile-data",`Tile data for level ${l}, row ${n}, column ${h} is missing`,{level:l,row:n,column:h});const A=await M.convertPixelBlockToImageData(V);t(i);const F=new d({vertexAttributes:new v(y),components:[new g({faces:x,trustSourceNormals:!0,material:new o({colorTexture:new r({data:A}),unlit:!0})})],spatialReference:s.WebMercator});return F.rotate(...this.horizonAngles,{origin:a}),await F.load(i),this._cache=F,this._cache},this.loadMeshAtDistance=async(e,t)=>{const i=this.distance;return this.distance=e,Math.abs(i-e)>1e-6&&this._cache?this._cache:await this.loadMesh(t)}}get loaded(){return null!==this._cache}get key(){return`${this.level}/${this.row}/${this.column}`}clone(){const{level:e,row:t,column:s,horizontalFieldOfView:o,verticalFieldOfView:r,yaw:a,pitch:c,distance:l,getPixelBlock:h,horizonAngles:m}=this,w=new n(e,t,s,o,r,a,c,l,m,h);if(this._cache){const{vertexAttributes:e,components:t,spatialReference:s}=this._cache,o=t?.map(({material:e,faces:t,trustSourceNormals:i})=>({material:e,faces:t?.slice(),trustSourceNormals:i}));w._cache=new i({components:o,vertexAttributes:e.clone(),spatialReference:s})}return w}}const n=l;export{n as default};
@@ -0,0 +1,66 @@
1
+ import type Accessor from "../../../core/Accessor.js";
2
+ import type RasterInfo from "../../../layers/support/RasterInfo.js";
3
+ import type PanoramicTileNode from "./PanoramicTileNode.js";
4
+
5
+ /** @internal */
6
+ export default abstract class PanoramicTilePyramid extends Accessor {
7
+ /**
8
+ * Pitch of the horizon in degrees. This is used to adjust the orientation of the panoramic image. A positive value tilts the horizon upwards, while a negative value tilts it downwards.
9
+ *
10
+ * @default 0
11
+ * @internal
12
+ */
13
+ accessor horizonPitch: number;
14
+ /**
15
+ * Roll of the horizon in degrees. This is used to adjust the orientation of the panoramic image. A positive value rolls the horizon clockwise, while a negative value rolls it counterclockwise.
16
+ *
17
+ * @default 0
18
+ * @internal
19
+ */
20
+ accessor horizonRoll: number;
21
+ /**
22
+ * Yaw of the horizon in degrees. This is used to adjust the orientation of the panoramic image. A positive value rotates the horizon to the right, while a negative value rotates it to the left.
23
+ *
24
+ * @default 0
25
+ * @internal
26
+ */
27
+ accessor horizonYaw: number;
28
+ /** @internal */
29
+ get imageSize(): [
30
+ number,
31
+ number
32
+ ];
33
+ /** @internal */
34
+ get maximumPyramidLevel(): number;
35
+ /** @internal */
36
+ get rasterInfo(): RasterInfo;
37
+ /** @internal */
38
+ destroy(): void;
39
+ /**
40
+ * Returns all the tiles at the specified level of the pyramid. If no tiles are found for the given level, it returns null.
41
+ *
42
+ * @param level - The level of the pyramid for which to retrieve the tiles.
43
+ * @internal
44
+ */
45
+ getLevelTiles(level: number): PanoramicTileNode[] | null;
46
+ /**
47
+ * Returns the level of the pyramid that corresponds to the specified pixel angle. If no level is found, it returns 0.
48
+ *
49
+ * @param resolution - The pixel angle for which to find the corresponding pyramid level.
50
+ * @internal
51
+ */
52
+ getLevelWithPixelAngle(resolution: number): number;
53
+ /** @internal */
54
+ getLowResolutionTiles(): PanoramicTileNode[] | null;
55
+ /**
56
+ * Returns the tiles that are visible in the current view based on the specified level, yaw, pitch, horizontal field of view (hfov), and vertical field of view (vfov).
57
+ *
58
+ * @param level - The level of the pyramid for which to retrieve the visible tiles.
59
+ * @param yaw - The yaw angle of the current view.
60
+ * @param pitch - The pitch angle of the current view.
61
+ * @param hfov - The horizontal field of view.
62
+ * @param vfov - The vertical field of view.
63
+ * @internal
64
+ */
65
+ getTiles(level: number, yaw: number, pitch: number, hfov: number, vfov: number): PanoramicTileNode[];
66
+ }
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../../core/Accessor.js";import i from"../../../core/Error.js";import{property as r,subclass as o}from"../../../core/accessorSupport/decorators.js";import s from"../../../geometry/Extent.js";import{RasterJobHandlerMixin as a}from"../../../layers/mixins/RasterJobHandlerMixin.js";import{pixelAngleThreshold as n,defaultImageSphereSize as l}from"../constants.js";import h from"./ClosestMap.js";import m from"./getVisibleTiles.js";import p from"./PanoramicTileNode.js";let c=class extends(a(t)){constructor(e){super(e),this._maximumPyramidLevel=-1,this._pixelAngleToLevelMap=new h,this._tileMap=new Map,this.horizonPitch=0,this.horizonYaw=0,this.horizonRoll=0,this.raster=null,this._fetchRawTile=async(e,t,i,r)=>{await this._initJobHandler();const{pyramidBlockWidth:o,pyramidBlockHeight:a}=this.storageInfo,{minCol:n,maxCol:l,minRow:h,maxRow:m}=this.storageInfo.blockBoundary[e],p=l-n+1,c=m-h+1,d=i*this.imageSize[0]/p,g=t*this.imageSize[1]/c,f=Math.min((i+1)*this.imageSize[0]/p,this.imageSize[0]),u=Math.min((t+1)*this.imageSize[1]/c,this.imageSize[1]),x=f-d,w=u-g,y=new s({xmin:d-.5,ymin:.5-u,xmax:f-.5,ymax:.5-g,spatialReference:this.raster.rasterInfo.spatialReference}),{pixelBlock:_}=await this.raster.fetchPixels(y,o??x,a??w,r);return _},this.getLevelTiles=e=>{const t=[],{minCol:i,maxCol:r,minRow:o,maxRow:s}=this.storageInfo.blockBoundary[e];for(let a=o;a<=s;a++)for(let o=i;o<=r;o++){const i=this._tileMap.get(`${e}/${a}/${o}`);i&&t.push(i)}return t.length?t:null},this.getLevelWithPixelAngle=e=>this._pixelAngleToLevelMap.get(e)??0,this.getLowResolutionTiles=()=>{const e=this.maximumPyramidLevel;return e<0?null:this.getLevelTiles(e)},this.getTiles=(e,t,i,r,o)=>{const{minCol:s,minRow:a,maxCol:n,maxRow:l}=this.storageInfo.blockBoundary[e];return m(e,[s,a],[n,l],this._tileMap,t,i,r,o)}}initialize(){this._processLevels()}destroy(){this.raster.rasterJobHandler=null,this.raster=null,this._shutdownJobHandler(),this._tileMap.clear(),this._pixelAngleToLevelMap.clear()}async _initJobHandler(){this._rasterJobHandler||(await super._initJobHandler(),this.raster.rasterJobHandler=this._rasterJobHandler)}_processLevels(){const{blockBoundary:e,tileInfo:t}=this.storageInfo,r=e?.length;if(!r)throw new i("panoramic-viewer:missing-pyramid-resolutions","TIFF/MRF must have pyramid resolutions defined",{rasterId:this.raster.rasterId});this._tileMap.clear();for(let i=0;i<r;i++){const{maxCol:r,maxRow:o,minCol:s,minRow:a}=e[i],h=180/(o-a+1),m=360/(r-s+1),c=m/t.size[0];if(c>n)break;this._pixelAngleToLevelMap.set(c,i);for(let e=a;e<=o;e++){const t=180-(e+.5)*h;for(let o=s;o<=r;o++){const r=(o+.5)*m-180;this._tileMap.set(`${i}/${e}/${o}`,new p(i,e,o,m,h,r,t,l/2,[this.horizonPitch,this.horizonRoll,this.horizonYaw],this._fetchRawTile))}}this._maximumPyramidLevel=i}}get rasterInfo(){return this.raster.rasterInfo}get storageInfo(){return this.rasterInfo.storageInfo}get imageSize(){const{width:e,height:t}=this.rasterInfo;return[e,t]}get maximumPyramidLevel(){return this._maximumPyramidLevel}};e([r()],c.prototype,"horizonPitch",void 0),e([r()],c.prototype,"horizonYaw",void 0),e([r()],c.prototype,"horizonRoll",void 0),e([r()],c.prototype,"raster",void 0),c=e([o("esri.widgets.PanoramicViewer.support.PanoramicTilePyramid")],c);const d=c;export{d as default};
2
+ import{__decorate as e}from"tslib";import t from"../../../core/Accessor.js";import i from"../../../core/Error.js";import{property as r,subclass as o}from"../../../core/accessorSupport/decorators.js";import s from"../../../geometry/Extent.js";import{RasterJobHandlerMixin as a}from"../../../layers/mixins/RasterJobHandlerMixin.js";import{pixelAngleThreshold as n,defaultImageSphereSize as l}from"../constants.js";import m from"./ClosestMap.js";import h from"./getVisibleTiles.js";import p from"./PanoramicTileNode.js";let c=class extends(a(t)){constructor(e){super(e),this._maximumPyramidLevel=-1,this._pixelAngleToLevelMap=new m,this._tileMap=new Map,this.horizonPitch=0,this.horizonYaw=0,this.horizonRoll=0,this.raster=null,this._fetchRawTile=async(e,t,i,r)=>{await this._initJobHandler();const{pyramidBlockWidth:o,pyramidBlockHeight:a}=this.storageInfo,{minCol:n,maxCol:l,minRow:m,maxRow:h}=this.storageInfo.blockBoundary[e],p=l-n+1,c=h-m+1,d=i*this.imageSize[0]/p,g=t*this.imageSize[1]/c,f=Math.min((i+1)*this.imageSize[0]/p,this.imageSize[0]),u=Math.min((t+1)*this.imageSize[1]/c,this.imageSize[1]),x=f-d,w=u-g,y=new s({xmin:d-.5,ymin:.5-u,xmax:f-.5,ymax:.5-g,spatialReference:this.raster.rasterInfo.spatialReference}),{pixelBlock:_}=await this.raster.fetchPixels(y,o??x,a??w,r);return _}}initialize(){this._processLevels()}destroy(){this.raster.rasterJobHandler=null,this.raster=null,this._shutdownJobHandler(),this._tileMap.clear(),this._pixelAngleToLevelMap.clear()}async _initJobHandler(){this._rasterJobHandler||(await super._initJobHandler(),this.raster.rasterJobHandler=this._rasterJobHandler)}_processLevels(){const{blockBoundary:e,tileInfo:t}=this.storageInfo,r=e?.length;if(!r)throw new i("panoramic-viewer:missing-pyramid-resolutions","TIFF/MRF must have pyramid resolutions defined",{rasterId:this.raster.rasterId});this._tileMap.clear();for(let i=0;i<r;i++){const{maxCol:r,maxRow:o,minCol:s,minRow:a}=e[i],m=180/(o-a+1),h=360/(r-s+1),c=h/t.size[0];if(c>n)break;this._pixelAngleToLevelMap.set(c,i);for(let e=a;e<=o;e++){const t=180-(e+.5)*m;for(let o=s;o<=r;o++){const r=(o+.5)*h-180;this._tileMap.set(`${i}/${e}/${o}`,new p(i,e,o,h,m,r,t,l/2,[this.horizonPitch,this.horizonRoll,this.horizonYaw],this._fetchRawTile))}}this._maximumPyramidLevel=i}}getLevelTiles(e){const t=[],{minCol:i,maxCol:r,minRow:o,maxRow:s}=this.storageInfo.blockBoundary[e];for(let a=o;a<=s;a++)for(let o=i;o<=r;o++){const i=this._tileMap.get(`${e}/${a}/${o}`);i&&t.push(i)}return t.length?t:null}getLevelWithPixelAngle(e){return this._pixelAngleToLevelMap.get(e)??0}getLowResolutionTiles(){const e=this.maximumPyramidLevel;return e<0?null:this.getLevelTiles(e)}getTiles(e,t,i,r,o){const{minCol:s,minRow:a,maxCol:n,maxRow:l}=this.storageInfo.blockBoundary[e];return h(e,[s,a],[n,l],this._tileMap,t,i,r,o)}get rasterInfo(){return this.raster.rasterInfo}get storageInfo(){return this.rasterInfo.storageInfo}get imageSize(){const{width:e,height:t}=this.rasterInfo;return[e,t]}get maximumPyramidLevel(){return this._maximumPyramidLevel}};e([r()],c.prototype,"horizonPitch",void 0),e([r()],c.prototype,"horizonYaw",void 0),e([r()],c.prototype,"horizonRoll",void 0),e([r()],c.prototype,"raster",void 0),c=e([o("esri.widgets.PanoramicViewer.support.PanoramicTilePyramid")],c);const d=c;export{d as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import t from"../../Graphic.js";import r from"../../core/Collection.js";import o from"../../core/Error.js";import{rad2deg as e,deg2rad as n}from"../../core/mathUtils.js";import{throwIfAborted as s}from"../../core/promiseUtils.js";import i from"../../geometry/support/MeshMaterialMetallicRoughness.js";import a from"../../geometry/support/MeshTexture.js";import{createSphere as m}from"../../geometry/support/meshUtils.js";import c from"../../symbols/FillSymbol3DLayer.js";import l from"../../symbols/MeshSymbol3D.js";import{defaultImageSphereCenter as u,defaultImageSphereSize as p}from"./constants.js";import{loadRasterFactory as f,loadPanoramicTilePyramid as h}from"./support/importUtils.js";function w({data:t,center:r=u,size:o=p,horizonPitch:e=0,horizonYaw:n=0,horizonRoll:s=0}){const c=r.clone();c.z=-o/2;const l=m(c,{size:o,densificationFactor:2,vertexSpace:"georeferenced",material:new i({emissiveTexture:new a({data:t}),emissiveStrength:.5,colorTexture:new a({data:t})})});if(l.components[0].trustSourceNormals=!0,l.vertexAttributes.uv){const t=l.vertexAttributes.uv.length??0;for(let r=0;r<t;r++)l.vertexAttributes.uv[2*r+0]=1-l.vertexAttributes.uv[2*r+0]}return l.rotate(e,s,n,{origin:l.extent.center}),l.centerAt(c),l}function y(o){return new t({geometry:o,symbol:new l({symbolLayers:new r([new c])})})}function g(t,r){return 2*e(Math.atan(Math.tan(n(t/2))*Math.sqrt((1/r)**2+1)))}async function j(t,r){const o=await f(),e=await o.open({url:t,ioConfig:{skipExtensions:["jgw","aux.xml"],skipMapInfo:!0},...r});return s(r),x(e,{url:t})}const x=(t,r)=>{if(!t)throw new o("panoramic-viewer:missing-raster","Raster data could not be loaded",r);return t};async function v(t,r,o){const e=await h();return s(o),new e({raster:t,horizonPitch:r.pitch,horizonYaw:r.yaw,horizonRoll:r.roll})}async function b(t,r){return t?.length?await Promise.all(t.map(t=>t.loadMesh(r))):[]}export{w as createImageSphere,g as findDiagonalFOV,b as loadMeshes,v as loadPyramid,j as loadRaster,y as meshToGraphic};
2
+ import t from"../../Graphic.js";import r from"../../core/Collection.js";import o from"../../core/Error.js";import{rad2deg as e,deg2rad as n}from"../../core/mathUtils.js";import{throwIfAborted as i}from"../../core/promiseUtils.js";import s from"../../geometry/support/MeshMaterialMetallicRoughness.js";import a from"../../geometry/support/MeshTexture.js";import{createSphere as m}from"../../geometry/support/meshUtils.js";import c from"../../symbols/FillSymbol3DLayer.js";import l from"../../symbols/MeshSymbol3D.js";import{defaultImageSphereCenter as u,defaultImageSphereSize as p}from"./constants.js";import{loadRasterFactory as f,loadPanoramicTilePyramid as h}from"./support/importUtils.js";function w({data:t,center:r=u,size:o=p,horizonPitch:e=0,horizonYaw:n=0,horizonRoll:i=0}){const c=r.clone();c.z=-o/2;const l=m(c,{size:o,densificationFactor:2,vertexSpace:"georeferenced",material:new s({colorTexture:new a({data:t}),unlit:!0})});if(l.components[0].trustSourceNormals=!0,l.vertexAttributes.uv){const t=l.vertexAttributes.uv.length??0;for(let r=0;r<t;r++)l.vertexAttributes.uv[2*r+0]=1-l.vertexAttributes.uv[2*r+0]}return l.rotate(e,i,n,{origin:l.extent.center}),l.centerAt(c),l}function y(o){return new t({geometry:o,symbol:new l({symbolLayers:new r([new c])})})}function j(t,r){return 2*e(Math.atan(Math.tan(n(t/2))*Math.sqrt((1/r)**2+1)))}async function g(t,r){const o=await f(),e=await o.open({url:t,ioConfig:{skipExtensions:["jgw","aux.xml"],skipMapInfo:!0},...r});return i(r),x(e,{url:t})}const x=(t,r)=>{if(!t)throw new o("panoramic-viewer:missing-raster","Raster data could not be loaded",r);return t};async function b(t,r,o){const e=await h();return i(o),new e({raster:t,horizonPitch:r.pitch,horizonYaw:r.yaw,horizonRoll:r.roll})}async function v(t,r){return t?.length?await Promise.all(t.map(t=>t.loadMesh(r))):[]}export{w as createImageSphere,j as findDiagonalFOV,v as loadMeshes,b as loadPyramid,g as loadRaster,y as meshToGraphic};
@@ -16,11 +16,6 @@ export interface VisibleElementsProperties extends Partial<Pick<VisibleElements,
16
16
  createTools?: CreateToolVisibilityMapProperties;
17
17
  /**
18
18
  * The available selection tools within the widget.
19
- * > [!WARNING]
20
- * >
21
- * > **Known Limitation**
22
- * >
23
- * > Rectangle and lasso selection is only supported when working with a [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/).
24
19
  *
25
20
  * @since 5.0
26
21
  */
@@ -116,11 +111,6 @@ export default class VisibleElements extends Accessor {
116
111
  accessor selectionCountLabel: boolean;
117
112
  /**
118
113
  * The available selection tools within the widget.
119
- * > [!WARNING]
120
- * >
121
- * > **Known Limitation**
122
- * >
123
- * > Rectangle and lasso selection is only supported when working with a [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/).
124
114
  *
125
115
  * @since 5.0
126
116
  */
package/widgets/Sketch.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{substitute as t}from"../intl.js";import{isSome as o}from"../core/arrayUtils.js";import{deprecateWidget as i}from"../core/deprecate.js";import{handlesGroup as s}from"../core/handleUtils.js";import l from"../core/Logger.js";import{removeMaybe as r,destroyMaybe as n}from"../core/maybe.js";import{ignoreAbortErrors as a}from"../core/promiseUtils.js";import{watch as c,syncAndInitial as p,when as d}from"../core/reactiveUtils.js";import{property as h,subclass as u}from"../core/accessorSupport/decorators.js";import{symbolTypes as v}from"../symbols/support/typeUtils.js";import g from"../views/interactive/sketch/SketchLabelOptions.js";import m from"../views/interactive/sketch/SketchTooltipOptions.js";import f from"../views/interactive/sketch/SketchValueOptions.js";import _ from"./Widget.js";import y from"./Sketch/SketchViewModel.js";import b from"./Sketch/VisibleElements.js";import w from"./Sketch/support/ResponsiveToolbar/ResponsiveToolbar.js";import{loadCalciteComponents as T}from"./support/componentsUtils.js";import{connectDelayedLoading as S}from"./support/loaderUtils.js";import C from"./support/SelectionToolbar.js";import M from"./support/SketchTooltipControls.js";import O from"./support/SnappingControls.js";import{tsx as k,messageBundle as P,vmEvent as I}from"./support/widget.js";import L from"./support/SelectionToolbar/VisibleElements.js";import E from"./support/SketchTooltipControls/VisibleElements.js";const R="esri-sketch",x="settings-menu-action",G={base:R,vertical:`${R}--vertical`,docked:`${R}-bar`,floating:`${R}-pad`,chipHorizontal:`${R}__selection-count-chip--horizontal`,chipVertical:`${R}__selection-count-chip--vertical`,chipVerticalSmall:`${R}__selection-count-chip--vertical--s`,popoverWrapper:`${R}__popover-wrapper`,simplificationProgressLoader:`${R}__simplification-progress-loader`},U={point:"pin",polyline:"line",polygon:"polygon",rectangle:"rectangle",circle:"circle",multipoint:"pins",mesh:"i3d-building",freehandPolygon:"freehand-area",freehandPolyline:"freehand",text:"text"};let D=class extends _{constructor(e,t){super(e,t),this._selectionToolbar=null,this._viewModelHandlesGroup=null,this._popoverElement=null,this.availableCreateTools=["point","polyline","polygon","rectangle","circle"],this.customToolOptions=null,this.customActions=null,this.toolbarKind="floating",this.contextualToolLocation="separate",this.groupCollapsePriorities=null,this.groupAllowCollapseOptions=null,this.messages=null,this.messagesCommon=null,this.visibleElements=new b,this._defaultViewModel=null,this._activeCustomToolOptions=null,this._effectiveRenderStateCache=new Map,this._calcitePopoverReferenceElement=null,this._relativeLocation="top",this._popoverOpen=!1,this._showSimplificationProgress=!1,this._clickedWhileTemporarilyDisabled=!1,!0!==e?.suppressDeprecationWarning&&(this.announceDeprecation=()=>{i(l.getLogger(this),"Sketch","arcgis-sketch",{version:"5.0"})}),this._activateCreateTool=this._activateCreateTool.bind(this),this.viewModel=e?.viewModel||(this._defaultViewModel=new y({creationMode:e?.creationMode??"continuous",useLegacyCreateTools:e?.useLegacyCreateTools??"3d"===e?.view?.type})),this.viewModel.pluginManager.sketch=this}normalizeCtorArgs(e={}){const{suppressDeprecationWarning:t,...o}=e;return o}initialize(){const{layer:e,view:t}=this,o="2d"===t?.type,i=new C({persistSelection:!1,visibleElements:new L({chip:!1,lassoTool:o,operationTypeControls:!1,pan:!1,pointTool:!1,rectangleTool:o}),view:t,sources:e?[e]:null,scale:this.scale,disabled:"disabled"===this.state||this._hasLongRunningOperation});this.addHandles([c(()=>this.viewModel,e=>{this._viewModelHandlesGroup=r(this._viewModelHandlesGroup),e&&(this._viewModelHandlesGroup=s([e.on("delete",e=>this.emit("delete",e)),c(()=>e.layer,e=>{this._selectionToolbar&&(this._selectionToolbar.sources=e?[e]:null)}),c(()=>e.view,e=>{this._selectionToolbar&&(this._selectionToolbar.view=e)}),c(()=>e.state,()=>{this.notifyChange("state"),this._syncSelectionToolbarDisabledState()}),c(()=>e.geometrySimplificationInProgress,e=>{e||(this._clickedWhileTemporarilyDisabled=!1),this._syncSelectionToolbarDisabledState()}),S({getLoading:()=>e.geometrySimplificationInProgress,setEffectiveLoading:e=>{this._showSimplificationProgress=e,this._syncSelectionToolbarDisabledState()}})]))},p),d(()=>i.activeOperation,()=>{this.viewModel.cancel(),this._activeCustomToolOptions=null}),i.on("complete",e=>this._onSelectionOperationComplete(e)),c(()=>{const{view:e,visibleElements:{selectionTools:t}}=this;return{lassoTool:"3d"!==e?.type&&!!t?.["lasso-selection"],rectangleTool:"3d"!==e?.type&&!!t?.["rectangle-selection"]}},e=>{Object.assign(i.visibleElements,e)},p)]),this._selectionToolbar=i,this._syncSelectionToolbarDisabledState()}loadDependencies(){return T({action:()=>import("@esri/calcite-components/dist/components/calcite-action"),chip:()=>import("@esri/calcite-components/dist/components/calcite-chip"),loader:()=>import("@esri/calcite-components/dist/components/calcite-loader"),popover:()=>import("@esri/calcite-components/dist/components/calcite-popover")})}destroy(){this._selectionToolbar?.destroy(),this._viewModelHandlesGroup=r(this._viewModelHandlesGroup)}get activeTool(){const e=this._selectionToolbar?.activeOperation;if(e)switch(e.toolName){case"lasso":return"lasso-selection";case"rectangle":return"rectangle-selection";case"default":return"custom-selection"}const{availableCreateTools:t}=this,{activeTool:o,activeCreateToolDrawMode:i}=this.viewModel;return"polygon"===o&&"freehand"===i&&t?.includes("freehandPolygon")?"freehandPolygon":"polyline"===o&&"freehand"===i&&t?.includes("freehandPolyline")?"freehandPolyline":this.viewModel.activeTool}get activeTooltip(){return this.viewModel.activeTooltip}get createGraphic(){return this.viewModel.createGraphic}get creationMode(){return this.viewModel.creationMode}set creationMode(e){this.viewModel.creationMode=e}get defaultCreateOptions(){return this.viewModel.defaultCreateOptions}set defaultCreateOptions(e){this.viewModel.defaultCreateOptions=e}get defaultUpdateOptions(){return this.viewModel.defaultUpdateOptions}set defaultUpdateOptions(e){this.viewModel.defaultUpdateOptions=e}get icon(){return"pencil"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get labelOptions(){return this.viewModel.labelOptions}set labelOptions(e){this.viewModel.labelOptions=e}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}set layout(e){this._set("layout",e),this._selectionToolbar&&(this._selectionToolbar.layout=e)}get pointSymbol(){return this.viewModel.pointSymbol}set pointSymbol(e){this.viewModel.pointSymbol=e}get polygonSymbol(){return this.viewModel.polygonSymbol}set polygonSymbol(e){this.viewModel.polygonSymbol=e}get polylineSymbol(){return this.viewModel.polylineSymbol}set polylineSymbol(e){this.viewModel.polylineSymbol=e}get textSymbol(){return this.viewModel.textSymbol}set textSymbol(e){this.viewModel.textSymbol=e}set scale(e){this._set("scale",e),this._selectionToolbar&&(this._selectionToolbar.scale=e)}get snappingOptions(){return this.viewModel.snappingOptions}set snappingOptions(e){this.viewModel.snappingOptions=e}get state(){return this._selectionToolbar?.activeOperation?"active":this.viewModel.state}get tooltipOptions(){return this.viewModel.tooltipOptions}set tooltipOptions(e){this.viewModel.tooltipOptions=e}get updateGraphics(){return this.viewModel.updateGraphics}get valueOptions(){return this.viewModel.valueOptions}set valueOptions(e){this.viewModel.valueOptions=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}set viewModel(e){const t=this._get("viewModel");e!==t&&(t&&t===this._defaultViewModel&&n(t),t?.pluginManager?.sketch===this&&(t.pluginManager.sketch=null),this._set("viewModel",e),e.pluginManager.sketch=this)}get useLegacyCreateTools(){return this.viewModel.useLegacyCreateTools}set useLegacyCreateTools(e){this.viewModel.useLegacyCreateTools=e}get isUsingLegacyCreateTools(){return this.viewModel.isUsingLegacyCreateTools}get settingsManager(){return this.viewModel.settingsManager}get _effectiveAvailableCreateTools(){return this._getEffectiveValue("availableCreateTools",()=>{const e=this.viewModel.effectiveAvailablePlugins;return e?.length?e:this._visibleCreateTools})}get _effectiveUpdateGraphicsCount(){return this._getEffectiveValue("updateGraphicsCount",()=>this.updateGraphics.length)}get _effectiveFirstPluginWithSwappableLeaf(){return this._getEffectiveValue("firstPluginWithSwappableLeaf",()=>this.viewModel.firstPluginWithSwappableLeaf)}get _effectiveActivePluginUniqueIds(){return this._getEffectiveValue("activePluginUniqueIds",()=>{const e=this.viewModel.drawTool?.pluginStack.filter(e=>!e.configuration?.hidden).map(e=>e.configuration?.uniqueId).filter(o);return e?new Set(e):new Set})}get _isEffectiveRenderStateFrozen(){const{viewModel:e}=this;return e.toolTransitionInProgress||e.geometrySimplificationInProgress}get _visibleCreateTools(){const{availableCreateTools:e,view:t,visibleElements:o}=this,i=e?.filter(e=>!!o.createTools?.[e]);return"3d"===t?.type?i?.filter(e=>"multipoint"!==e):i}_getEffectiveValue(e,t){if(!this._isEffectiveRenderStateFrozen||!this._effectiveRenderStateCache.has(e)){const o=t();return this._effectiveRenderStateCache.set(e,o),o}return this._effectiveRenderStateCache.get(e)}create(e,t,o){const i=o?.createOptions??t;return this._activeCustomToolOptions=o,a(this.viewModel.create(e,i))}update(e,t){return a(this.viewModel.update(e,t))}complete(){this.viewModel.complete()}cancel(){this._selectionToolbar?.cancel(),this.viewModel.cancel(),this._activeCustomToolOptions=null}undo(){this.viewModel.undo(),this.view?.focus()}redo(){this.viewModel.redo(),this.view?.focus()}delete(){this.viewModel.delete()}duplicate(){return this.viewModel.duplicate()}dismissFloatingElements(){this._popoverOpen=!1}render(){const{toolbarKind:e,layout:t,scale:o}=this;return k("div",null,k("div",{classes:{[G.base]:!0,[G.floating]:"floating"===e,[G.docked]:"docked"===e,[G.vertical]:"vertical"===t}},k(w,{barStyle:e,layout:t,scale:o},this._renderSelectionSetItemGroupInline(),this._renderSelectionToolsOrBack(),this._renderCreateToolActionGroup(),this._renderUndoRedoMenuItemGroup(),this._renderSettingsMenuItemGroup(),this._renderSimplificationProgressItemGroupInline()),this._renderSelectionSetToolbar(),this._renderSimplificationProgressToolbar(),this._renderSettingsMenuPopover()))}_renderSimplificationProgressToolbar(){if("separate"!==this.contextualToolLocation)return;const e=this._renderSimplificationProgressItemGroup();return e?k(w,{barStyle:this.toolbarKind,layout:this.layout,scale:this.scale},e):void 0}_renderSimplificationProgressItemGroupInline(){if("separate"!==this.contextualToolLocation)return this._renderSimplificationProgressItemGroup()}_renderSelectionToolsOrBack(){if(!this.viewModel.isUsingLegacyCreateTools&&this._effectiveFirstPluginWithSwappableLeaf)return this._renderBackButton();const e=this.customActions?.filter(e=>"selection-toolbar"===e.position);return k("div",{"allow-collapse":this.groupAllowCollapseOptions?.get("selectionTools")??!0,"group-kind":"split-button",key:"selection-split-button",priority:this.groupCollapsePriorities?.get("selectionTools")??0},this._renderDefaultSelectionButton(),this._selectionToolbar?.render(),e?.map(e=>this._renderToolbarItem(e)))}_renderSettingsMenuPopover(){const{messagesCommon:e,snappingOptions:t,view:o,viewModel:i,visibleElements:s}=this;if(!this._calcitePopoverReferenceElement)return;const l={directionModePicker:s.directionModePicker,labelsToggle:s.labelsToggle,tooltipsToggle:s.tooltipsToggle},r="horizontal"===this.layout?"top"===this._relativeLocation?"bottom-end":"top-end":"right-end";return k("calcite-popover",{afterCreate:e=>this._popoverElement=e,closable:!0,heading:e.settings,key:`${this.id}-settings`,label:e.settings,open:this._popoverOpen,overlayPositioning:"fixed",placement:r,referenceElement:this._calcitePopoverReferenceElement,scale:this.scale,topLayerDisabled:this.topLayerDisabled,onCalcitePopoverBeforeClose:e=>this._beforePopoverClose(e.target),onCalcitePopoverBeforeOpen:e=>this._remeasurePopoverSizes(e.currentTarget),onCalcitePopoverClose:e=>this._refocusOnView(e.target)},k("div",{class:G.popoverWrapper},Object.values(l).includes(!0)?k(M,{sketchOptions:i.sketchOptions,view:o,visibleElements:new E(l)}):void 0,s.snappingControls&&o&&t?k(O,{snappingManager:this.viewModel.snappingManager,snappingOptions:t,view:o,visibleElements:s.snappingControlsElements}):void 0))}_beforePopoverClose(e){e===this._popoverElement&&(this._popoverOpen=!1)}_renderSelectionSetToolbar(){if("separate"!==this.contextualToolLocation)return;const e=this._renderSelectionSetItemGroup();return e?.length?k(w,{barStyle:this.toolbarKind,layout:this.layout,scale:this.scale},e):void 0}_renderSimplificationProgressItemGroup(){if(!this.visibleElements.geometrySimplificationActivityIndicator||!this._showSimplificationProgress)return;const e=`${this.messages.finalizingDrawingTitle}`;return k("div",{"group-kind":"measured-content-group",key:"simplification-progress-group",slot:"actions-end"},k("calcite-action",{"data-testid":"simplification-progress",key:"simplification-progress",scale:this.scale,text:e,title:e},k("calcite-loader",{class:G.simplificationProgressLoader,inline:!0,label:e,scale:this.scale,type:"indeterminate"})))}_renderSelectionSetItemGroupInline(){return"separate"===this.contextualToolLocation?[]:this._renderSelectionSetItemGroup()}_renderUndoRedoMenuItemGroup(){return k("div",{"allow-collapse":this.groupAllowCollapseOptions?.get("undoRedo")??!0,"group-kind":"split-button",key:"undo-redo-menu",priority:this.groupCollapsePriorities?.get("undoRedo")??10,slot:"actions-end"},this._renderUndoButton(),this._renderRedoButton())}_renderSettingsMenuItemGroup(){const e=[],t=[];this.customActions?.forEach(o=>{"settings-before"===o.position?t.push(o):"settings-after"===o.position&&e.push(o)});const i=[...t.map(e=>this._renderToolbarItem(e)),this._renderSettingsMenuButton(),...e.map(e=>this._renderToolbarItem(e))].filter(o);if(i.length)return k("div",{"allow-collapse":this.groupAllowCollapseOptions?.get("settings")??!1,"group-kind":"overflow-group",key:"settings-menu",priority:this.groupCollapsePriorities?.get("settings")??1e3,slot:"actions-end"},i)}_renderSelectionSetItemGroup(){if(!this._effectiveUpdateGraphicsCount)return[];const e="inline-end"===this.contextualToolLocation?"actions-end":void 0,t=this.customActions?.filter(e=>"before-selection-set"===e.position),o=this.customActions?.filter(e=>"after-selection-set"===e.position),i=this.groupCollapsePriorities?.get("selectionSet")??100;return[k("div",{"group-kind":"measured-content",key:"selection-count-chip-group",priority:i,slot:e},this._renderFeatureCountChip()),k("div",{"allow-collapse":this.groupAllowCollapseOptions?.get("selectionSet")??!1,"group-kind":"overflow-group",key:"selection-set-tool-group",priority:i,slot:e},t?.map(e=>this._renderToolbarItem(e)),this._renderDuplicateButton(),this._renderDeleteButton(),o?.map(e=>this._renderToolbarItem(e)))]}_renderDefaultSelectionButton(){if(!this._getEffectiveValue("updateOnGraphicClick",()=>this.viewModel.updateOnGraphicClick))return[];const{messages:e}=this;return this._renderToolbarItem({id:"pointer-select",text:e.selectFeature,icon:"cursor",onclick:this._activateDefaultSelectTool,active:"ready"===this._getEffectiveValue("state",()=>this.state)})}_renderBackButton(){const{isUsingLegacyCreateTools:e}=this,t=this._getEffectiveValue("multiplePluginsActive",()=>this.viewModel.multiplePluginsActive),o=this._effectiveFirstPluginWithSwappableLeaf,i=this._getEffectiveValue("rootPlugins",()=>this.viewModel.rootPlugins);if(!e&&t&&o&&i&&(!(i.length<2&&i.includes(o))||this.visibleElements.singlePluginBackButton))return k("div",{"allow-collapse":!1,"group-kind":"overflow-group",key:"selection-split-button"},k("calcite-action",{disabled:"disabled"===this.state||this._hasLongRunningOperation,icon:"chevron-left",iconFlipRtl:!0,scale:this.scale,text:this.messagesCommon.back,onclick:()=>{this.shouldIgnoreClick()||this.viewModel?.cancel()}}))}_renderCreateToolActionGroup(){const e=this._effectiveFirstPluginWithSwappableLeaf?[]:this.customToolOptions?.flatMap(e=>this._renderCustomToolItem(e))??[],t=this._effectiveAvailableCreateTools,o=t?.filter(e=>"string"==typeof e),i=o?.map(e=>this._renderCreateToolItem(e)),s=t?.filter(e=>"string"!=typeof e).map(e=>this._renderCreateToolItem(e));return[i?.length||e?.length||s?.length?k("div",{"allow-collapse":this.groupAllowCollapseOptions?.get("createTools")??!0,"group-kind":"overflow-group",key:"create-tools-group",priority:this.groupCollapsePriorities?.get("createTools")??100},i,e,s):void 0]}_renderCreateToolItem(e){return"string"==typeof e?this._renderBuiltInCreateToolItem(e):this._renderDrawToolPluginItem(e)}_renderDrawToolPluginItem(e){const{icon:t,localizationKey:o,uniqueId:i,hidden:s}=e;if(s)return[];const l=this.messages.digitizers,r=l?.[o]??o,n=!this._activeCustomToolOptions&&this._effectiveActivePluginUniqueIds.has(i);return this._renderToolbarItem({id:`${o}-button`,text:r,icon:t,onclick:()=>this._activatePlugin([e]),active:n})}_renderBuiltInCreateToolItem(e){return this._renderToolbarItem({id:`${e}-button`,text:this.messages.draw[e],icon:U[e],onclick:()=>this._activateCreateTool(e),active:this._getEffectiveValue("activeTool",()=>this.activeTool)===e&&!this._activeCustomToolOptions})}_renderCustomToolItem(e){const{toolKey:t}=e;return this._renderToolbarItem({id:`custom-${e.toolKey}`,text:e.label,icon:e.icon,onclick:()=>this._activateCreateTool(e.toolName,null,e),active:this._activeCustomToolOptions?.toolKey===t})}_renderUndoButton(){return this.visibleElements.undoRedoMenu?this._renderToolbarItem({id:"undo-button",text:this.messages.undo,icon:"undo",disabled:!this.viewModel.canUndo(),onclick:this.undo,flipRTL:!0}):[]}_renderRedoButton(){return this.visibleElements.undoRedoMenu?this._renderToolbarItem({id:"redo-button",text:this.messages.redo,icon:"redo",disabled:!this.viewModel.canRedo(),onclick:this.redo,flipRTL:!0}):[]}_renderSettingsMenuButton(){return this.visibleElements.settingsMenu?this._renderToolbarItem({id:x,text:this.messagesCommon.settings,icon:"gear",active:this._popoverOpen,onclick:()=>this._popoverOpen=!this._popoverOpen,afterCreate:e=>this._calcitePopoverReferenceElement=e,afterUpdate:e=>this._calcitePopoverReferenceElement=e,afterRemoved:()=>this._calcitePopoverReferenceElement=null}):[]}_renderFeatureCountChip(){if(!this.visibleElements.selectionCountLabel)return[];const{layout:e,messages:o,scale:i,id:s}=this,l=this._effectiveUpdateGraphicsCount,r=t(o.selectedCount,{count:l}),n="l"===i?999:99,a=l>n?t(o.selectedCountTruncated,{truncated:n}):l,c="l"!==i&&"vertical"===e,p=c?`${s}-selection-chip-small`:`${s}-selection-chip`;return[c?k("span",{classes:{[G.chipVertical]:!0,[G.chipVerticalSmall]:"s"===this.scale},id:p,tabIndex:0,title:r},a):k("calcite-chip",{appearance:"outline",class:"horizontal"===e?G.chipHorizontal:G.chipVertical,id:p,kind:"brand",label:r,scale:"l"===i?"m":"s",tabIndex:0,title:"vertical"===e?r:void 0},"vertical"===e?a:r)]}_renderDuplicateButton(){if(!this.visibleElements.duplicateButton)return[];const{messages:e}=this;return this._renderToolbarItem({id:"duplicate",text:this._effectiveUpdateGraphicsCount>1?e.duplicateFeatures:e.duplicateFeature,icon:"copy",onclick:this._onDuplicateSelect})}_renderDeleteButton(){if(!this.visibleElements.deleteButton)return[];const{messages:e}=this,t=this._effectiveUpdateGraphicsCount>1?e.deleteFeatures:e.deleteFeature;return this._renderToolbarItem({id:"delete",text:t,icon:"trash",onclick:this.delete})}_renderToolbarItem({id:e,text:t,icon:o,disabled:i,onclick:s,active:l,flipRTL:r,afterCreate:n,afterUpdate:a,afterRemoved:c}){const p=`${this.id}-${e}`,d=s?()=>{this.shouldIgnoreClick()||s.call(this)}:void 0;return[k("calcite-action",{active:l,afterCreate:n,afterRemoved:c,afterUpdate:a,bind:this,"data-testid":e,disabled:i||"disabled"===this.state||this._hasLongRunningOperation,icon:o,iconFlipRtl:r??!1,id:p,key:e,scale:this.scale,text:t,title:t,onclick:d})]}get _hasLongRunningOperation(){return this._showSimplificationProgress||this._clickedWhileTemporarilyDisabled}_remeasurePopoverSizes(e){try{const t=this._calcitePopoverReferenceElement,o=e.parentElement,i=this?.view?.container?.getBoundingClientRect(),s=o?.style;if(!(o&&i&&s&&this.view?.container?.contains(o)&&t))return;const{bottom:l,top:r}=t.getBoundingClientRect();if("horizontal"===this.layout){const e=l<i.height/2;e!==("top"===this._relativeLocation)&&(this._relativeLocation=e?"top":"bottom"),e?(s?.setProperty("--sketch-view-height-offset",l-i.top+"px"),s?.setProperty("--sketch-view-margin-offset","30px")):(s?.setProperty("--sketch-view-height-offset",i.bottom-r+"px"),s?.setProperty("--sketch-view-margin-offset","15px"))}else"vertical"===this.layout&&(s.setProperty("--sketch-view-height-offset","15px"),s.setProperty("--sketch-view-margin-offset","15px"));const n=e.shadowRoot?.querySelector("div.header")?.getBoundingClientRect().height;s.setProperty("--sketch-popover-header-offset",`${n}px`)}catch(t){l.getLogger(this.declaredClass).warnOnce("Sketch failed to lay out settings menu.",t)}}_activateCreateTool(e,t,o){const i=this._activeCustomToolOptions;if(o||i){if(o?.toolKey===i?.toolKey)return void this.cancel()}else if(this.activeTool===e)return void this.cancel();this._selectionToolbar?.cancel(),this.create(e,t,o)}_activatePlugin(e){this._selectionToolbar?.cancel(),this.viewModel.firstPluginWithSwappableLeaf?(this.viewModel.drawTool?.replaceLeaf(e),this.view?.ready&&this.view.focus()):this._activateCreateTool(e)}_onDuplicateSelect(){const e=this.duplicate(),t=this.viewModel.activeTool;"transform"!==t&&"reshape"!==t||this.update(e,{tool:t})}shouldIgnoreClick(){return!!this._clickedWhileTemporarilyDisabled||!!this.viewModel.geometrySimplificationInProgress&&(this._clickedWhileTemporarilyDisabled=!0,this._syncSelectionToolbarDisabledState(),!0)}_onSelectionOperationComplete(e){const{viewModel:{defaultUpdateOptions:t}}=this,{selection:o}=e;if(!e.aborted&&o.length){const e=t.tool,i=o.length>1&&"reshape"===e?"transform":e;this.update(o,{...t,tool:i})}this.notifyChange("state")}_activateDefaultSelectTool(){this.cancel(),this.view?.focus()}_refocusOnView(e){this.activeTool&&e===this._popoverElement&&this.view?.focus()}_syncSelectionToolbarDisabledState(){this._selectionToolbar&&(this._selectionToolbar.disabled="disabled"===this.state||this._hasLongRunningOperation)}};e([h()],D.prototype,"activeTool",null),e([h({readOnly:!0})],D.prototype,"activeTooltip",null),e([h({cast:e=>{if(!e?.length)return null;const t=new Set(["point","polyline","polygon","rectangle","circle","multipoint","freehandPolyline","freehandPolygon","mesh","text"]);return e.filter(e=>t.has(e))}})],D.prototype,"availableCreateTools",void 0),e([h({readOnly:!0})],D.prototype,"createGraphic",null),e([h()],D.prototype,"creationMode",null),e([h()],D.prototype,"customToolOptions",void 0),e([h()],D.prototype,"customActions",void 0),e([h()],D.prototype,"defaultCreateOptions",null),e([h()],D.prototype,"defaultUpdateOptions",null),e([h()],D.prototype,"icon",null),e([h()],D.prototype,"label",null),e([h({type:g})],D.prototype,"labelOptions",null),e([h()],D.prototype,"layer",null),e([h({type:["horizontal","vertical"],value:"horizontal"})],D.prototype,"layout",null),e([h({types:v})],D.prototype,"pointSymbol",null),e([h({types:v})],D.prototype,"polygonSymbol",null),e([h({types:v})],D.prototype,"polylineSymbol",null),e([h()],D.prototype,"textSymbol",null),e([h({value:"m"})],D.prototype,"scale",null),e([h()],D.prototype,"toolbarKind",void 0),e([h()],D.prototype,"contextualToolLocation",void 0),e([h()],D.prototype,"groupCollapsePriorities",void 0),e([h()],D.prototype,"groupAllowCollapseOptions",void 0),e([h(),P("esri/widgets/Sketch/t9n/Sketch")],D.prototype,"messages",void 0),e([h(),P("esri/t9n/common")],D.prototype,"messagesCommon",void 0),e([h()],D.prototype,"snappingOptions",null),e([h()],D.prototype,"state",null),e([h({type:m})],D.prototype,"tooltipOptions",null),e([h({readOnly:!0})],D.prototype,"updateGraphics",null),e([h({type:f,nonNullable:!0})],D.prototype,"valueOptions",null),e([h()],D.prototype,"view",null),e([h({type:y}),I(["create","duplicate","update","undo","redo"])],D.prototype,"viewModel",null),e([h({type:b,nonNullable:!0})],D.prototype,"visibleElements",void 0),e([h()],D.prototype,"useLegacyCreateTools",null),e([h()],D.prototype,"isUsingLegacyCreateTools",null),e([h()],D.prototype,"settingsManager",null),e([h()],D.prototype,"_effectiveAvailableCreateTools",null),e([h()],D.prototype,"_effectiveUpdateGraphicsCount",null),e([h()],D.prototype,"_effectiveFirstPluginWithSwappableLeaf",null),e([h()],D.prototype,"_effectiveActivePluginUniqueIds",null),e([h()],D.prototype,"_isEffectiveRenderStateFrozen",null),e([h()],D.prototype,"_defaultViewModel",void 0),e([h()],D.prototype,"_activeCustomToolOptions",void 0),e([h()],D.prototype,"_calcitePopoverReferenceElement",void 0),e([h()],D.prototype,"_hasLongRunningOperation",null),e([h()],D.prototype,"_relativeLocation",void 0),e([h()],D.prototype,"_popoverOpen",void 0),e([h()],D.prototype,"_showSimplificationProgress",void 0),e([h()],D.prototype,"_clickedWhileTemporarilyDisabled",void 0),D=e([u("esri.widgets.Sketch")],D);const B=D;export{B as default};
2
+ import{__decorate as e}from"tslib";import{substitute as t}from"../intl.js";import{isSome as o}from"../core/arrayUtils.js";import{deprecateWidget as i}from"../core/deprecate.js";import{handlesGroup as s}from"../core/handleUtils.js";import l from"../core/Logger.js";import{removeMaybe as r,destroyMaybe as n}from"../core/maybe.js";import{ignoreAbortErrors as a}from"../core/promiseUtils.js";import{watch as c,syncAndInitial as p,when as h}from"../core/reactiveUtils.js";import{property as d,subclass as u}from"../core/accessorSupport/decorators.js";import{symbolTypes as v}from"../symbols/support/typeUtils.js";import g from"../views/interactive/sketch/SketchLabelOptions.js";import m from"../views/interactive/sketch/SketchTooltipOptions.js";import f from"../views/interactive/sketch/SketchValueOptions.js";import _ from"./Widget.js";import y from"./Sketch/SketchViewModel.js";import b from"./Sketch/VisibleElements.js";import w from"./Sketch/support/ResponsiveToolbar/ResponsiveToolbar.js";import{loadCalciteComponents as T}from"./support/componentsUtils.js";import{connectDelayedLoading as S}from"./support/loaderUtils.js";import C from"./support/SelectionToolbar.js";import M from"./support/SketchTooltipControls.js";import O from"./support/SnappingControls.js";import{tsx as k,messageBundle as P,vmEvent as I}from"./support/widget.js";import L from"./support/SelectionToolbar/VisibleElements.js";import E from"./support/SketchTooltipControls/VisibleElements.js";const R="esri-sketch",x="settings-menu-action",G={base:R,vertical:`${R}--vertical`,docked:`${R}-bar`,floating:`${R}-pad`,chipHorizontal:`${R}__selection-count-chip--horizontal`,chipVertical:`${R}__selection-count-chip--vertical`,chipVerticalSmall:`${R}__selection-count-chip--vertical--s`,popoverWrapper:`${R}__popover-wrapper`,simplificationProgressLoader:`${R}__simplification-progress-loader`},U={point:"pin",polyline:"line",polygon:"polygon",rectangle:"rectangle",circle:"circle",multipoint:"pins",mesh:"i3d-building",freehandPolygon:"freehand-area",freehandPolyline:"freehand",text:"text"};let D=class extends _{constructor(e,t){super(e,t),this._selectionToolbar=null,this._viewModelHandlesGroup=null,this._popoverElement=null,this.availableCreateTools=["point","polyline","polygon","rectangle","circle"],this.customToolOptions=null,this.customActions=null,this.toolbarKind="floating",this.contextualToolLocation="separate",this.groupCollapsePriorities=null,this.groupAllowCollapseOptions=null,this.messages=null,this.messagesCommon=null,this.visibleElements=new b,this._defaultViewModel=null,this._activeCustomToolOptions=null,this._effectiveRenderStateCache=new Map,this._calcitePopoverReferenceElement=null,this._relativeLocation="top",this._popoverOpen=!1,this._showSimplificationProgress=!1,this._clickedWhileTemporarilyDisabled=!1,!0!==e?.suppressDeprecationWarning&&(this.announceDeprecation=()=>{i(l.getLogger(this),"Sketch","arcgis-sketch",{version:"5.0"})}),this._activateCreateTool=this._activateCreateTool.bind(this),this.viewModel=e?.viewModel||(this._defaultViewModel=new y({creationMode:e?.creationMode??"continuous",useLegacyCreateTools:e?.useLegacyCreateTools??"3d"===e?.view?.type})),this.viewModel.pluginManager.sketch=this}normalizeCtorArgs(e={}){const{suppressDeprecationWarning:t,...o}=e;return o}initialize(){const{layer:e,view:t}=this,o=new C({persistSelection:!1,visibleElements:new L({chip:!1,lassoTool:!0,operationTypeControls:!1,pan:!1,pointTool:!1,rectangleTool:!0}),view:t,sources:e?[e]:null,scale:this.scale,disabled:"disabled"===this.state||this._hasLongRunningOperation});this.addHandles([c(()=>this.viewModel,e=>{this._viewModelHandlesGroup=r(this._viewModelHandlesGroup),e&&(this._viewModelHandlesGroup=s([e.on("delete",e=>this.emit("delete",e)),c(()=>e.layer,e=>{this._selectionToolbar&&(this._selectionToolbar.sources=e?[e]:null)}),c(()=>e.view,e=>{this._selectionToolbar&&(this._selectionToolbar.view=e)}),c(()=>e.state,()=>{this.notifyChange("state"),this._syncSelectionToolbarDisabledState()}),c(()=>e.geometrySimplificationInProgress,e=>{e||(this._clickedWhileTemporarilyDisabled=!1),this._syncSelectionToolbarDisabledState()}),S({getLoading:()=>e.geometrySimplificationInProgress,setEffectiveLoading:e=>{this._showSimplificationProgress=e,this._syncSelectionToolbarDisabledState()}})]))},p),h(()=>o.activeOperation,()=>{this.viewModel.cancel(),this._activeCustomToolOptions=null}),o.on("complete",e=>this._onSelectionOperationComplete(e)),c(()=>{const{visibleElements:{selectionTools:e}}=this;return{lassoTool:!!e?.["lasso-selection"],rectangleTool:!!e?.["rectangle-selection"]}},e=>{Object.assign(o.visibleElements,e)},p)]),this._selectionToolbar=o,this._syncSelectionToolbarDisabledState()}loadDependencies(){return T({action:()=>import("@esri/calcite-components/dist/components/calcite-action"),chip:()=>import("@esri/calcite-components/dist/components/calcite-chip"),loader:()=>import("@esri/calcite-components/dist/components/calcite-loader"),popover:()=>import("@esri/calcite-components/dist/components/calcite-popover")})}destroy(){this._selectionToolbar?.destroy(),this._viewModelHandlesGroup=r(this._viewModelHandlesGroup)}get activeTool(){const e=this._selectionToolbar?.activeOperation;if(e)switch(e.toolName){case"lasso":return"lasso-selection";case"rectangle":return"rectangle-selection";case"default":return"custom-selection"}const{availableCreateTools:t}=this,{activeTool:o,activeCreateToolDrawMode:i}=this.viewModel;return"polygon"===o&&"freehand"===i&&t?.includes("freehandPolygon")?"freehandPolygon":"polyline"===o&&"freehand"===i&&t?.includes("freehandPolyline")?"freehandPolyline":this.viewModel.activeTool}get activeTooltip(){return this.viewModel.activeTooltip}get createGraphic(){return this.viewModel.createGraphic}get creationMode(){return this.viewModel.creationMode}set creationMode(e){this.viewModel.creationMode=e}get defaultCreateOptions(){return this.viewModel.defaultCreateOptions}set defaultCreateOptions(e){this.viewModel.defaultCreateOptions=e}get defaultUpdateOptions(){return this.viewModel.defaultUpdateOptions}set defaultUpdateOptions(e){this.viewModel.defaultUpdateOptions=e}get icon(){return"pencil"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get labelOptions(){return this.viewModel.labelOptions}set labelOptions(e){this.viewModel.labelOptions=e}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}set layout(e){this._set("layout",e),this._selectionToolbar&&(this._selectionToolbar.layout=e)}get pointSymbol(){return this.viewModel.pointSymbol}set pointSymbol(e){this.viewModel.pointSymbol=e}get polygonSymbol(){return this.viewModel.polygonSymbol}set polygonSymbol(e){this.viewModel.polygonSymbol=e}get polylineSymbol(){return this.viewModel.polylineSymbol}set polylineSymbol(e){this.viewModel.polylineSymbol=e}get textSymbol(){return this.viewModel.textSymbol}set textSymbol(e){this.viewModel.textSymbol=e}set scale(e){this._set("scale",e),this._selectionToolbar&&(this._selectionToolbar.scale=e)}get snappingOptions(){return this.viewModel.snappingOptions}set snappingOptions(e){this.viewModel.snappingOptions=e}get state(){return this._selectionToolbar?.activeOperation?"active":this.viewModel.state}get tooltipOptions(){return this.viewModel.tooltipOptions}set tooltipOptions(e){this.viewModel.tooltipOptions=e}get updateGraphics(){return this.viewModel.updateGraphics}get valueOptions(){return this.viewModel.valueOptions}set valueOptions(e){this.viewModel.valueOptions=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}set viewModel(e){const t=this._get("viewModel");e!==t&&(t&&t===this._defaultViewModel&&n(t),t?.pluginManager?.sketch===this&&(t.pluginManager.sketch=null),this._set("viewModel",e),e.pluginManager.sketch=this)}get useLegacyCreateTools(){return this.viewModel.useLegacyCreateTools}set useLegacyCreateTools(e){this.viewModel.useLegacyCreateTools=e}get isUsingLegacyCreateTools(){return this.viewModel.isUsingLegacyCreateTools}get settingsManager(){return this.viewModel.settingsManager}get _effectiveAvailableCreateTools(){return this._getEffectiveValue("availableCreateTools",()=>{const e=this.viewModel.effectiveAvailablePlugins;return e?.length?e:this._visibleCreateTools})}get _effectiveUpdateGraphicsCount(){return this._getEffectiveValue("updateGraphicsCount",()=>this.updateGraphics.length)}get _effectiveFirstPluginWithSwappableLeaf(){return this._getEffectiveValue("firstPluginWithSwappableLeaf",()=>this.viewModel.firstPluginWithSwappableLeaf)}get _effectiveActivePluginUniqueIds(){return this._getEffectiveValue("activePluginUniqueIds",()=>{const e=this.viewModel.drawTool?.pluginStack.filter(e=>!e.configuration?.hidden).map(e=>e.configuration?.uniqueId).filter(o);return e?new Set(e):new Set})}get _isEffectiveRenderStateFrozen(){const{viewModel:e}=this;return e.toolTransitionInProgress||e.geometrySimplificationInProgress}get _visibleCreateTools(){const{availableCreateTools:e,view:t,visibleElements:o}=this,i=e?.filter(e=>!!o.createTools?.[e]);return"3d"===t?.type?i?.filter(e=>"multipoint"!==e):i}_getEffectiveValue(e,t){if(!this._isEffectiveRenderStateFrozen||!this._effectiveRenderStateCache.has(e)){const o=t();return this._effectiveRenderStateCache.set(e,o),o}return this._effectiveRenderStateCache.get(e)}create(e,t,o){const i=o?.createOptions??t;return this._activeCustomToolOptions=o,a(this.viewModel.create(e,i))}update(e,t){return a(this.viewModel.update(e,t))}complete(){this.viewModel.complete()}cancel(){this._selectionToolbar?.cancel(),this.viewModel.cancel(),this._activeCustomToolOptions=null}undo(){this.viewModel.undo(),this.view?.focus()}redo(){this.viewModel.redo(),this.view?.focus()}delete(){this.viewModel.delete()}duplicate(){return this.viewModel.duplicate()}dismissFloatingElements(){this._popoverOpen=!1}render(){const{toolbarKind:e,layout:t,scale:o}=this;return k("div",null,k("div",{classes:{[G.base]:!0,[G.floating]:"floating"===e,[G.docked]:"docked"===e,[G.vertical]:"vertical"===t}},k(w,{barStyle:e,layout:t,scale:o},this._renderSelectionSetItemGroupInline(),this._renderSelectionToolsOrBack(),this._renderCreateToolActionGroup(),this._renderUndoRedoMenuItemGroup(),this._renderSettingsMenuItemGroup(),this._renderSimplificationProgressItemGroupInline()),this._renderSelectionSetToolbar(),this._renderSimplificationProgressToolbar(),this._renderSettingsMenuPopover()))}_renderSimplificationProgressToolbar(){if("separate"!==this.contextualToolLocation)return;const e=this._renderSimplificationProgressItemGroup();return e?k(w,{barStyle:this.toolbarKind,layout:this.layout,scale:this.scale},e):void 0}_renderSimplificationProgressItemGroupInline(){if("separate"!==this.contextualToolLocation)return this._renderSimplificationProgressItemGroup()}_renderSelectionToolsOrBack(){if(!this.viewModel.isUsingLegacyCreateTools&&this._effectiveFirstPluginWithSwappableLeaf)return this._renderBackButton();const e=this.customActions?.filter(e=>"selection-toolbar"===e.position);return k("div",{"allow-collapse":this.groupAllowCollapseOptions?.get("selectionTools")??!0,"group-kind":"split-button",key:"selection-split-button",priority:this.groupCollapsePriorities?.get("selectionTools")??0},this._renderDefaultSelectionButton(),this._selectionToolbar?.render(),e?.map(e=>this._renderToolbarItem(e)))}_renderSettingsMenuPopover(){const{messagesCommon:e,snappingOptions:t,view:o,viewModel:i,visibleElements:s}=this;if(!this._calcitePopoverReferenceElement)return;const l={directionModePicker:s.directionModePicker,labelsToggle:s.labelsToggle,tooltipsToggle:s.tooltipsToggle},r="horizontal"===this.layout?"top"===this._relativeLocation?"bottom-end":"top-end":"right-end";return k("calcite-popover",{afterCreate:e=>this._popoverElement=e,closable:!0,heading:e.settings,key:`${this.id}-settings`,label:e.settings,open:this._popoverOpen,overlayPositioning:"fixed",placement:r,referenceElement:this._calcitePopoverReferenceElement,scale:this.scale,topLayerDisabled:this.topLayerDisabled,onCalcitePopoverBeforeClose:e=>this._beforePopoverClose(e.target),onCalcitePopoverBeforeOpen:e=>this._remeasurePopoverSizes(e.currentTarget),onCalcitePopoverClose:e=>this._refocusOnView(e.target)},k("div",{class:G.popoverWrapper},Object.values(l).includes(!0)?k(M,{sketchOptions:i.sketchOptions,view:o,visibleElements:new E(l)}):void 0,s.snappingControls&&o&&t?k(O,{snappingManager:this.viewModel.snappingManager,snappingOptions:t,view:o,visibleElements:s.snappingControlsElements}):void 0))}_beforePopoverClose(e){e===this._popoverElement&&(this._popoverOpen=!1)}_renderSelectionSetToolbar(){if("separate"!==this.contextualToolLocation)return;const e=this._renderSelectionSetItemGroup();return e?.length?k(w,{barStyle:this.toolbarKind,layout:this.layout,scale:this.scale},e):void 0}_renderSimplificationProgressItemGroup(){if(!this.visibleElements.geometrySimplificationActivityIndicator||!this._showSimplificationProgress)return;const e=`${this.messages.finalizingDrawingTitle}`;return k("div",{"group-kind":"measured-content-group",key:"simplification-progress-group",slot:"actions-end"},k("calcite-action",{"data-testid":"simplification-progress",key:"simplification-progress",scale:this.scale,text:e,title:e},k("calcite-loader",{class:G.simplificationProgressLoader,inline:!0,label:e,scale:this.scale,type:"indeterminate"})))}_renderSelectionSetItemGroupInline(){return"separate"===this.contextualToolLocation?[]:this._renderSelectionSetItemGroup()}_renderUndoRedoMenuItemGroup(){return k("div",{"allow-collapse":this.groupAllowCollapseOptions?.get("undoRedo")??!0,"group-kind":"split-button",key:"undo-redo-menu",priority:this.groupCollapsePriorities?.get("undoRedo")??10,slot:"actions-end"},this._renderUndoButton(),this._renderRedoButton())}_renderSettingsMenuItemGroup(){const e=[],t=[];this.customActions?.forEach(o=>{"settings-before"===o.position?t.push(o):"settings-after"===o.position&&e.push(o)});const i=[...t.map(e=>this._renderToolbarItem(e)),this._renderSettingsMenuButton(),...e.map(e=>this._renderToolbarItem(e))].filter(o);if(i.length)return k("div",{"allow-collapse":this.groupAllowCollapseOptions?.get("settings")??!1,"group-kind":"overflow-group",key:"settings-menu",priority:this.groupCollapsePriorities?.get("settings")??1e3,slot:"actions-end"},i)}_renderSelectionSetItemGroup(){if(!this._effectiveUpdateGraphicsCount)return[];const e="inline-end"===this.contextualToolLocation?"actions-end":void 0,t=this.customActions?.filter(e=>"before-selection-set"===e.position),o=this.customActions?.filter(e=>"after-selection-set"===e.position),i=this.groupCollapsePriorities?.get("selectionSet")??100;return[k("div",{"group-kind":"measured-content",key:"selection-count-chip-group",priority:i,slot:e},this._renderFeatureCountChip()),k("div",{"allow-collapse":this.groupAllowCollapseOptions?.get("selectionSet")??!1,"group-kind":"overflow-group",key:"selection-set-tool-group",priority:i,slot:e},t?.map(e=>this._renderToolbarItem(e)),this._renderDuplicateButton(),this._renderDeleteButton(),o?.map(e=>this._renderToolbarItem(e)))]}_renderDefaultSelectionButton(){if(!this._getEffectiveValue("updateOnGraphicClick",()=>this.viewModel.updateOnGraphicClick))return[];const{messages:e}=this;return this._renderToolbarItem({id:"pointer-select",text:e.selectFeature,icon:"cursor",onclick:this._activateDefaultSelectTool,active:"ready"===this._getEffectiveValue("state",()=>this.state)})}_renderBackButton(){const{isUsingLegacyCreateTools:e}=this,t=this._getEffectiveValue("multiplePluginsActive",()=>this.viewModel.multiplePluginsActive),o=this._effectiveFirstPluginWithSwappableLeaf,i=this._getEffectiveValue("rootPlugins",()=>this.viewModel.rootPlugins);if(!e&&t&&o&&i&&(!(i.length<2&&i.includes(o))||this.visibleElements.singlePluginBackButton))return k("div",{"allow-collapse":!1,"group-kind":"overflow-group",key:"selection-split-button"},k("calcite-action",{disabled:"disabled"===this.state||this._hasLongRunningOperation,icon:"chevron-left",iconFlipRtl:!0,scale:this.scale,text:this.messagesCommon.back,onclick:()=>{this.shouldIgnoreClick()||this.viewModel?.cancel()}}))}_renderCreateToolActionGroup(){const e=this._effectiveFirstPluginWithSwappableLeaf?[]:this.customToolOptions?.flatMap(e=>this._renderCustomToolItem(e))??[],t=this._effectiveAvailableCreateTools,o=t?.filter(e=>"string"==typeof e),i=o?.map(e=>this._renderCreateToolItem(e)),s=t?.filter(e=>"string"!=typeof e).map(e=>this._renderCreateToolItem(e));return[i?.length||e?.length||s?.length?k("div",{"allow-collapse":this.groupAllowCollapseOptions?.get("createTools")??!0,"group-kind":"overflow-group",key:"create-tools-group",priority:this.groupCollapsePriorities?.get("createTools")??100},i,e,s):void 0]}_renderCreateToolItem(e){return"string"==typeof e?this._renderBuiltInCreateToolItem(e):this._renderDrawToolPluginItem(e)}_renderDrawToolPluginItem(e){const{icon:t,localizationKey:o,uniqueId:i,hidden:s}=e;if(s)return[];const l=this.messages.digitizers,r=l?.[o]??o,n=!this._activeCustomToolOptions&&this._effectiveActivePluginUniqueIds.has(i);return this._renderToolbarItem({id:`${o}-button`,text:r,icon:t,onclick:()=>this._activatePlugin([e]),active:n})}_renderBuiltInCreateToolItem(e){return this._renderToolbarItem({id:`${e}-button`,text:this.messages.draw[e],icon:U[e],onclick:()=>this._activateCreateTool(e),active:this._getEffectiveValue("activeTool",()=>this.activeTool)===e&&!this._activeCustomToolOptions})}_renderCustomToolItem(e){const{toolKey:t}=e;return this._renderToolbarItem({id:`custom-${e.toolKey}`,text:e.label,icon:e.icon,onclick:()=>this._activateCreateTool(e.toolName,null,e),active:this._activeCustomToolOptions?.toolKey===t})}_renderUndoButton(){return this.visibleElements.undoRedoMenu?this._renderToolbarItem({id:"undo-button",text:this.messages.undo,icon:"undo",disabled:!this.viewModel.canUndo(),onclick:this.undo,flipRTL:!0}):[]}_renderRedoButton(){return this.visibleElements.undoRedoMenu?this._renderToolbarItem({id:"redo-button",text:this.messages.redo,icon:"redo",disabled:!this.viewModel.canRedo(),onclick:this.redo,flipRTL:!0}):[]}_renderSettingsMenuButton(){return this.visibleElements.settingsMenu?this._renderToolbarItem({id:x,text:this.messagesCommon.settings,icon:"gear",active:this._popoverOpen,onclick:()=>this._popoverOpen=!this._popoverOpen,afterCreate:e=>this._calcitePopoverReferenceElement=e,afterUpdate:e=>this._calcitePopoverReferenceElement=e,afterRemoved:()=>this._calcitePopoverReferenceElement=null}):[]}_renderFeatureCountChip(){if(!this.visibleElements.selectionCountLabel)return[];const{layout:e,messages:o,scale:i,id:s}=this,l=this._effectiveUpdateGraphicsCount,r=t(o.selectedCount,{count:l}),n="l"===i?999:99,a=l>n?t(o.selectedCountTruncated,{truncated:n}):l,c="l"!==i&&"vertical"===e,p=c?`${s}-selection-chip-small`:`${s}-selection-chip`;return[c?k("span",{classes:{[G.chipVertical]:!0,[G.chipVerticalSmall]:"s"===this.scale},id:p,tabIndex:0,title:r},a):k("calcite-chip",{appearance:"outline",class:"horizontal"===e?G.chipHorizontal:G.chipVertical,id:p,kind:"brand",label:r,scale:"l"===i?"m":"s",tabIndex:0,title:"vertical"===e?r:void 0},"vertical"===e?a:r)]}_renderDuplicateButton(){if(!this.visibleElements.duplicateButton)return[];const{messages:e}=this;return this._renderToolbarItem({id:"duplicate",text:this._effectiveUpdateGraphicsCount>1?e.duplicateFeatures:e.duplicateFeature,icon:"copy",onclick:this._onDuplicateSelect})}_renderDeleteButton(){if(!this.visibleElements.deleteButton)return[];const{messages:e}=this,t=this._effectiveUpdateGraphicsCount>1?e.deleteFeatures:e.deleteFeature;return this._renderToolbarItem({id:"delete",text:t,icon:"trash",onclick:this.delete})}_renderToolbarItem({id:e,text:t,icon:o,disabled:i,onclick:s,active:l,flipRTL:r,afterCreate:n,afterUpdate:a,afterRemoved:c}){const p=`${this.id}-${e}`,h=s?()=>{this.shouldIgnoreClick()||s.call(this)}:void 0;return[k("calcite-action",{active:l,afterCreate:n,afterRemoved:c,afterUpdate:a,bind:this,"data-testid":e,disabled:i||"disabled"===this.state||this._hasLongRunningOperation,icon:o,iconFlipRtl:r??!1,id:p,key:e,scale:this.scale,text:t,title:t,onclick:h})]}get _hasLongRunningOperation(){return this._showSimplificationProgress||this._clickedWhileTemporarilyDisabled}_remeasurePopoverSizes(e){try{const t=this._calcitePopoverReferenceElement,o=e.parentElement,i=this?.view?.container?.getBoundingClientRect(),s=o?.style;if(!(o&&i&&s&&this.view?.container?.contains(o)&&t))return;const{bottom:l,top:r}=t.getBoundingClientRect();if("horizontal"===this.layout){const e=l<i.height/2;e!==("top"===this._relativeLocation)&&(this._relativeLocation=e?"top":"bottom"),e?(s?.setProperty("--sketch-view-height-offset",l-i.top+"px"),s?.setProperty("--sketch-view-margin-offset","30px")):(s?.setProperty("--sketch-view-height-offset",i.bottom-r+"px"),s?.setProperty("--sketch-view-margin-offset","15px"))}else"vertical"===this.layout&&(s.setProperty("--sketch-view-height-offset","15px"),s.setProperty("--sketch-view-margin-offset","15px"));const n=e.shadowRoot?.querySelector("div.header")?.getBoundingClientRect().height;s.setProperty("--sketch-popover-header-offset",`${n}px`)}catch(t){l.getLogger(this.declaredClass).warnOnce("Sketch failed to lay out settings menu.",t)}}_activateCreateTool(e,t,o){const i=this._activeCustomToolOptions;if(o||i){if(o?.toolKey===i?.toolKey)return void this.cancel()}else if(this.activeTool===e)return void this.cancel();this._selectionToolbar?.cancel(),this.create(e,t,o)}_activatePlugin(e){this._selectionToolbar?.cancel(),this.viewModel.firstPluginWithSwappableLeaf?(this.viewModel.drawTool?.replaceLeaf(e),this.view?.ready&&this.view.focus()):this._activateCreateTool(e)}_onDuplicateSelect(){const e=this.duplicate(),t=this.viewModel.activeTool;"transform"!==t&&"reshape"!==t||this.update(e,{tool:t})}shouldIgnoreClick(){return!!this._clickedWhileTemporarilyDisabled||!!this.viewModel.geometrySimplificationInProgress&&(this._clickedWhileTemporarilyDisabled=!0,this._syncSelectionToolbarDisabledState(),!0)}_onSelectionOperationComplete(e){const{viewModel:{defaultUpdateOptions:t}}=this,{selection:o}=e;if(!e.aborted&&o.length){const e=t.tool,i=o.length>1&&"reshape"===e?"transform":e;this.update(o,{...t,tool:i})}this.notifyChange("state")}_activateDefaultSelectTool(){this.cancel(),this.view?.focus()}_refocusOnView(e){this.activeTool&&e===this._popoverElement&&this.view?.focus()}_syncSelectionToolbarDisabledState(){this._selectionToolbar&&(this._selectionToolbar.disabled="disabled"===this.state||this._hasLongRunningOperation)}};e([d()],D.prototype,"activeTool",null),e([d({readOnly:!0})],D.prototype,"activeTooltip",null),e([d({cast:e=>{if(!e?.length)return null;const t=new Set(["point","polyline","polygon","rectangle","circle","multipoint","freehandPolyline","freehandPolygon","mesh","text"]);return e.filter(e=>t.has(e))}})],D.prototype,"availableCreateTools",void 0),e([d({readOnly:!0})],D.prototype,"createGraphic",null),e([d()],D.prototype,"creationMode",null),e([d()],D.prototype,"customToolOptions",void 0),e([d()],D.prototype,"customActions",void 0),e([d()],D.prototype,"defaultCreateOptions",null),e([d()],D.prototype,"defaultUpdateOptions",null),e([d()],D.prototype,"icon",null),e([d()],D.prototype,"label",null),e([d({type:g})],D.prototype,"labelOptions",null),e([d()],D.prototype,"layer",null),e([d({type:["horizontal","vertical"],value:"horizontal"})],D.prototype,"layout",null),e([d({types:v})],D.prototype,"pointSymbol",null),e([d({types:v})],D.prototype,"polygonSymbol",null),e([d({types:v})],D.prototype,"polylineSymbol",null),e([d()],D.prototype,"textSymbol",null),e([d({value:"m"})],D.prototype,"scale",null),e([d()],D.prototype,"toolbarKind",void 0),e([d()],D.prototype,"contextualToolLocation",void 0),e([d()],D.prototype,"groupCollapsePriorities",void 0),e([d()],D.prototype,"groupAllowCollapseOptions",void 0),e([d(),P("esri/widgets/Sketch/t9n/Sketch")],D.prototype,"messages",void 0),e([d(),P("esri/t9n/common")],D.prototype,"messagesCommon",void 0),e([d()],D.prototype,"snappingOptions",null),e([d()],D.prototype,"state",null),e([d({type:m})],D.prototype,"tooltipOptions",null),e([d({readOnly:!0})],D.prototype,"updateGraphics",null),e([d({type:f,nonNullable:!0})],D.prototype,"valueOptions",null),e([d()],D.prototype,"view",null),e([d({type:y}),I(["create","duplicate","update","undo","redo"])],D.prototype,"viewModel",null),e([d({type:b,nonNullable:!0})],D.prototype,"visibleElements",void 0),e([d()],D.prototype,"useLegacyCreateTools",null),e([d()],D.prototype,"isUsingLegacyCreateTools",null),e([d()],D.prototype,"settingsManager",null),e([d()],D.prototype,"_effectiveAvailableCreateTools",null),e([d()],D.prototype,"_effectiveUpdateGraphicsCount",null),e([d()],D.prototype,"_effectiveFirstPluginWithSwappableLeaf",null),e([d()],D.prototype,"_effectiveActivePluginUniqueIds",null),e([d()],D.prototype,"_isEffectiveRenderStateFrozen",null),e([d()],D.prototype,"_defaultViewModel",void 0),e([d()],D.prototype,"_activeCustomToolOptions",void 0),e([d()],D.prototype,"_calcitePopoverReferenceElement",void 0),e([d()],D.prototype,"_hasLongRunningOperation",null),e([d()],D.prototype,"_relativeLocation",void 0),e([d()],D.prototype,"_popoverOpen",void 0),e([d()],D.prototype,"_showSimplificationProgress",void 0),e([d()],D.prototype,"_clickedWhileTemporarilyDisabled",void 0),D=e([u("esri.widgets.Sketch")],D);const B=D;export{B as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{deprecatedProperty as t}from"../../../core/deprecate.js";import{EventedAccessor as o}from"../../../core/Evented.js";import{handlesGroup as i}from"../../../core/handleUtils.js";import s from"../../../core/Logger.js";import{removeMaybe as r}from"../../../core/maybe.js";import{watch as n}from"../../../core/reactiveUtils.js";import{property as a,subclass as l}from"../../../core/accessorSupport/decorators.js";import{isKnowledgeGraphLayer as c,isLinkChartLayer as p}from"../../../layers/support/layerUtils.js";import{findLayerView as u}from"../../../views/draw/support/layerUtils.js";import h from"../../../views/selection/SelectionOperation.js";import{isSelectableLayerView2D as d}from"../../../views/support/layerViewUtils.js";let v=class extends o{constructor(e){super(e),this._operationHandlesGroup=null,this.activeOperation=null,this.continuousSelectionEnabled=!1,this.defaultLassoToolOptions={createTool:"polygon",mode:"hybrid",toolName:"lasso"},this.defaultOperationType="add",this.defaultPointToolOptions={createTool:"point",toolName:"point"},this.defaultRectangleToolOptions={createTool:"rectangle",toolName:"rectangle"},this.layerViewPreferenceEnabled=!0,this.persistSelection=!0,this.selectionManager=null,this.returnFeatureTitleFields=!1,this.returnGeometry=!0,this.selectOnComplete=!0,this.sources=null,this.toolConfigs=[]}initialize(){this.addHandles([n(()=>this.effectiveSources,e=>{this.activeOperation&&(this.activeOperation.sources=e)}),n(()=>this.defaultOperationType,e=>{this.activeOperation&&(this.activeOperation.type=e)})])}destroy(){this.activeOperation?.cancel(),this.activeOperation?.destroy(),this._operationHandlesGroup=r(this._operationHandlesGroup)}get effectiveSelectionManager(){return this.selectionManager??this.view?.selectionManager}get effectiveSources(){const{layerViewPreferenceEnabled:e,sources:t,view:o}=this,i=t??this.effectiveSelectionManager?.sources;if(!i?.length)return[];const s=[];return i.forEach(t=>{if(d(t))s.push(t);else if(c(t)||p(t)){(t.layers||[]).forEach(t=>{const i=o?u(o,t):void 0,r=e&&d(i)?i:t;s.push(r)})}else if(e){const e=o?u(o,t):void 0,i=d(e)?e:t;s.push(i)}else s.push(t)}),s}get layers(){return t(s.getLogger(this),"layers",{replacement:"Use SelectionToolbar.sources instead."}),this.sources}set layers(e){t(s.getLogger(this),"layers",{replacement:"Use SelectionToolbar.sources instead."}),this.sources=e}get state(){return this.activeOperation?"active":this.view?.ready&&this.effectiveSources.length?"ready":"disabled"}activate(e){const{state:t}=this,o=e?.view||this.view,r=e?.sources||this.effectiveSources;if("disabled"===t||!o)return void s.getLogger(this).warn("Unable to start selection operation.");"active"===t&&this.cancel();const n=new CustomEvent("before-activate",{cancelable:!0,detail:{toolName:e?.toolName??null}});if(this.emit("before-activate",n),n.defaultPrevented)return;const a={type:this.defaultOperationType,persistSelection:this.persistSelection,returnFeatureTitleFields:this.returnFeatureTitleFields,returnGeometry:this.returnGeometry,selectOnComplete:this.selectOnComplete,selectionManager:this.effectiveSelectionManager,...e,sources:r,view:o},l=new h({...a});return this._operationHandlesGroup=i([l.on("selection-change",e=>this.emit("selection-change",e)),l.once("complete",e=>this._onOperationComplete(e,a))]),this._set("activeOperation",l),l}activateTool(e){this.cancel();const t=this._getToolOptions(e);if(t)return this.activate(t);s.getLogger(this).warn("Unable to activate tool: unable to determine options.")}cancel(){this.activeOperation?.cancel(),this._set("activeOperation",null)}toggleTool(e){const{activeOperation:t}=this;if(t){const o=t.toolName;if(this.cancel(),o===e)return}return this.activateTool(e)}_onOperationComplete(e,t){const o=this.activeOperation?.type??e.operationType;this._operationHandlesGroup=r(this._operationHandlesGroup),this.activeOperation?.destroy(),this._set("activeOperation",null),this.emit("complete",e),this.continuousSelectionEnabled&&!e.aborted&&this.activate({...t,type:o})}_getToolOptions(e){const t=this.toolConfigs.find(t=>t.toolName===e);return t||("lasso"===e?this.defaultLassoToolOptions:"point"===e?this.defaultPointToolOptions:"rectangle"===e?this.defaultRectangleToolOptions:void 0)}};e([a({readOnly:!0})],v.prototype,"activeOperation",void 0),e([a()],v.prototype,"continuousSelectionEnabled",void 0),e([a()],v.prototype,"defaultLassoToolOptions",void 0),e([a()],v.prototype,"defaultOperationType",void 0),e([a()],v.prototype,"defaultPointToolOptions",void 0),e([a()],v.prototype,"defaultRectangleToolOptions",void 0),e([a()],v.prototype,"effectiveSelectionManager",null),e([a()],v.prototype,"effectiveSources",null),e([a()],v.prototype,"layers",null),e([a()],v.prototype,"layerViewPreferenceEnabled",void 0),e([a()],v.prototype,"persistSelection",void 0),e([a()],v.prototype,"selectionManager",void 0),e([a()],v.prototype,"returnFeatureTitleFields",void 0),e([a()],v.prototype,"returnGeometry",void 0),e([a()],v.prototype,"selectOnComplete",void 0),e([a()],v.prototype,"sources",void 0),e([a({readOnly:!0})],v.prototype,"state",null),e([a()],v.prototype,"toolConfigs",void 0),e([a()],v.prototype,"view",void 0),v=e([l("esri.widgets.support.SelectionToolbar.SelectionToolbarViewModel")],v);const f=v;export{f as default};
2
+ import{__decorate as e}from"tslib";import{deprecatedProperty as t}from"../../../core/deprecate.js";import{EventedAccessor as o}from"../../../core/Evented.js";import{handlesGroup as i}from"../../../core/handleUtils.js";import s from"../../../core/Logger.js";import{removeMaybe as r}from"../../../core/maybe.js";import{watch as n}from"../../../core/reactiveUtils.js";import{property as a,subclass as l}from"../../../core/accessorSupport/decorators.js";import{isKnowledgeGraphLayer as c,isLinkChartLayer as p}from"../../../layers/support/layerUtils.js";import{findLayerView as u}from"../../../views/draw/support/layerUtils.js";import h from"../../../views/selection/SelectionOperation.js";import{isSelectableLayerView2D as d}from"../../../views/support/layerViewUtils.js";import{isSelectableLayerView as v}from"../../../views/support/selectionUtils.js";let f=class extends o{constructor(e){super(e),this._operationHandlesGroup=null,this.activeOperation=null,this.continuousSelectionEnabled=!1,this.defaultLassoToolOptions={createTool:"polygon",mode:"hybrid",toolName:"lasso"},this.defaultOperationType="add",this.defaultPointToolOptions={createTool:"point",toolName:"point"},this.defaultRectangleToolOptions={createTool:"rectangle",toolName:"rectangle"},this.layerViewPreferenceEnabled=!0,this.persistSelection=!0,this.selectionManager=null,this.returnFeatureTitleFields=!1,this.returnGeometry=!0,this.selectOnComplete=!0,this.sources=null,this.toolConfigs=[]}initialize(){this.addHandles([n(()=>this.effectiveSources,e=>{this.activeOperation&&(this.activeOperation.sources=e)}),n(()=>this.defaultOperationType,e=>{this.activeOperation&&(this.activeOperation.type=e)})])}destroy(){this.activeOperation?.cancel(),this.activeOperation?.destroy(),this._operationHandlesGroup=r(this._operationHandlesGroup)}get effectiveSelectionManager(){return this.selectionManager??this.view?.selectionManager}get effectiveSources(){const{layerViewPreferenceEnabled:e,sources:t,view:o}=this,i=t??this.effectiveSelectionManager?.sources;if(!i?.length)return[];const s=[],r="3d"===o?.type?v:d;return i.forEach(t=>{if(r(t))s.push(t);else if(c(t)||p(t)){(t.layers||[]).forEach(t=>{const i=o?u(o,t):void 0,n=e&&r(i)?i:t;s.push(n)})}else if(e){const e=o?u(o,t):void 0,i=r(e)?e:t;s.push(i)}else s.push(t)}),s}get layers(){return t(s.getLogger(this),"layers",{replacement:"Use SelectionToolbar.sources instead."}),this.sources}set layers(e){t(s.getLogger(this),"layers",{replacement:"Use SelectionToolbar.sources instead."}),this.sources=e}get state(){return this.activeOperation?"active":this.view?.ready&&this.effectiveSources.length?"ready":"disabled"}activate(e){const{state:t}=this,o=e?.view||this.view,r=e?.sources||this.effectiveSources;if("disabled"===t||!o)return void s.getLogger(this).warn("Unable to start selection operation.");"active"===t&&this.cancel();const n=new CustomEvent("before-activate",{cancelable:!0,detail:{toolName:e?.toolName??null}});if(this.emit("before-activate",n),n.defaultPrevented)return;const a={type:this.defaultOperationType,persistSelection:this.persistSelection,returnFeatureTitleFields:this.returnFeatureTitleFields,returnGeometry:this.returnGeometry,selectOnComplete:this.selectOnComplete,selectionManager:this.effectiveSelectionManager,...e,sources:r,view:o},l=new h({...a});return this._operationHandlesGroup=i([l.on("selection-change",e=>this.emit("selection-change",e)),l.once("complete",e=>this._onOperationComplete(e,a))]),this._set("activeOperation",l),l}activateTool(e){this.cancel();const t=this._getToolOptions(e);if(t)return this.activate(t);s.getLogger(this).warn("Unable to activate tool: unable to determine options.")}cancel(){this.activeOperation?.cancel(),this._set("activeOperation",null)}toggleTool(e){const{activeOperation:t}=this;if(t){const o=t.toolName;if(this.cancel(),o===e)return}return this.activateTool(e)}_onOperationComplete(e,t){const o=this.activeOperation?.type??e.operationType;this._operationHandlesGroup=r(this._operationHandlesGroup),this.activeOperation?.destroy(),this._set("activeOperation",null),this.emit("complete",e),this.continuousSelectionEnabled&&!e.aborted&&this.activate({...t,type:o})}_getToolOptions(e){const t=this.toolConfigs.find(t=>t.toolName===e);return t||("lasso"===e?this.defaultLassoToolOptions:"point"===e?this.defaultPointToolOptions:"rectangle"===e?this.defaultRectangleToolOptions:void 0)}};e([a({readOnly:!0})],f.prototype,"activeOperation",void 0),e([a()],f.prototype,"continuousSelectionEnabled",void 0),e([a()],f.prototype,"defaultLassoToolOptions",void 0),e([a()],f.prototype,"defaultOperationType",void 0),e([a()],f.prototype,"defaultPointToolOptions",void 0),e([a()],f.prototype,"defaultRectangleToolOptions",void 0),e([a()],f.prototype,"effectiveSelectionManager",null),e([a()],f.prototype,"effectiveSources",null),e([a()],f.prototype,"layers",null),e([a()],f.prototype,"layerViewPreferenceEnabled",void 0),e([a()],f.prototype,"persistSelection",void 0),e([a()],f.prototype,"selectionManager",void 0),e([a()],f.prototype,"returnFeatureTitleFields",void 0),e([a()],f.prototype,"returnGeometry",void 0),e([a()],f.prototype,"selectOnComplete",void 0),e([a()],f.prototype,"sources",void 0),e([a({readOnly:!0})],f.prototype,"state",null),e([a()],f.prototype,"toolConfigs",void 0),e([a()],f.prototype,"view",void 0),f=e([l("esri.widgets.support.SelectionToolbar.SelectionToolbarViewModel")],f);const y=f;export{y as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{formatNumber as t}from"../../intl.js";import{deprecatedProperty as o}from"../../core/deprecate.js";import{handlesGroup as i}from"../../core/handleUtils.js";import l from"../../core/Logger.js";import{removeMaybe as s}from"../../core/maybe.js";import{on as r}from"../../core/reactiveUtils.js";import{property as n,subclass as a}from"../../core/accessorSupport/decorators.js";import c from"../Widget.js";import{loadCalciteComponents as p}from"./componentsUtils.js";import{globalCss as d}from"./globalCss.js";import{messageBundle as u,tsx as h}from"./widget.js";import v from"./SelectionToolbar/SelectionToolbarViewModel.js";import m from"./SelectionToolbar/VisibleElements.js";const f="esri-selection-toolbar",g={base:f,container:`${f}__container`,toolButton:`${f}__tool-button`};let T=class extends c{constructor(e,t){super(e,t),this._viewModelHandlesGroup=null,this.availableOperationTypes=["replace","add","remove"],this.disabled=!1,this.layout="horizontal",this.messages=null,this.scale="s",this.viewModel=new v,this.visibleElements=new m}initialize(){this._viewModelHandlesGroup=i([r(()=>this.viewModel,"before-activate",e=>this.emit("before-activate",e)),r(()=>this.viewModel,"complete",e=>this.emit("complete",e)),r(()=>this.viewModel,"selection-change",e=>this.emit("selection-change",e))])}destroy(){this._viewModelHandlesGroup=s(this._viewModelHandlesGroup)}loadDependencies(){return p({action:()=>import("@esri/calcite-components/dist/components/calcite-action"),"action-bar":()=>import("@esri/calcite-components/dist/components/calcite-action-bar"),"action-group":()=>import("@esri/calcite-components/dist/components/calcite-action-group"),chip:()=>import("@esri/calcite-components/dist/components/calcite-chip"),dropdown:()=>import("@esri/calcite-components/dist/components/calcite-dropdown"),"dropdown-item":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-item"),"dropdown-group":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-group"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon")})}get _effectiveDisabled(){return this.disabled||"disabled"===this.state}get _effectiveOperationType(){return this.activeOperation?.effectiveType||this.defaultOperationType}get activeOperation(){return this.viewModel.activeOperation}get continuousSelectionEnabled(){return this.viewModel.continuousSelectionEnabled}set continuousSelectionEnabled(e){this.viewModel.continuousSelectionEnabled=e}get defaultLassoToolOptions(){return this.viewModel.defaultLassoToolOptions}set defaultLassoToolOptions(e){this.viewModel.defaultLassoToolOptions=e}get defaultOperationType(){return this.viewModel.defaultOperationType}set defaultOperationType(e){this.viewModel.defaultOperationType=e}get defaultPointToolOptions(){return this.viewModel.defaultPointToolOptions}set defaultPointToolOptions(e){this.viewModel.defaultPointToolOptions=e}get defaultRectangleToolOptions(){return this.viewModel.defaultRectangleToolOptions}set defaultRectangleToolOptions(e){this.viewModel.defaultRectangleToolOptions=e}get effectiveSelectionManager(){return this.viewModel.effectiveSelectionManager}get effectiveSources(){return this.viewModel.effectiveSources}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get layers(){return o(l.getLogger(this),"layers",{replacement:"Use SelectionToolbar.sources instead."}),this.viewModel.sources}set layers(e){o(l.getLogger(this),"layers",{replacement:"Use SelectionToolbar.sources instead."}),this.viewModel.sources=e}get layerViewPreferenceEnabled(){return this.viewModel.layerViewPreferenceEnabled}set layerViewPreferenceEnabled(e){this.viewModel.layerViewPreferenceEnabled=e}get persistSelection(){return this.viewModel.persistSelection}set persistSelection(e){this.viewModel.persistSelection=e}get returnFeatureTitleFields(){return this.viewModel.returnFeatureTitleFields}set returnFeatureTitleFields(e){this.viewModel.returnFeatureTitleFields=e}get returnGeometry(){return this.viewModel.returnGeometry}set returnGeometry(e){this.viewModel.returnGeometry=e}get selectOnComplete(){return this.viewModel.selectOnComplete}set selectOnComplete(e){this.viewModel.selectOnComplete=e}get selectionManager(){return this.viewModel.selectionManager}set selectionManager(e){this.viewModel.selectionManager=e}get state(){return this.viewModel.state}get sources(){return this.viewModel.sources}set sources(e){this.viewModel.sources=e}get toolConfigs(){return this.viewModel.toolConfigs}set toolConfigs(e){this.viewModel.toolConfigs=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get visibleToolCount(){const{visibleElements:e}=this;return this.toolConfigs.length+(e.lassoTool?1:0)+(e.rectangleTool?1:0)}activate(e){if(this.cancel(),!this._effectiveDisabled)return this.viewModel.activate(e)}activateTool(e){if(!this._effectiveDisabled)return this.viewModel.activateTool(e)}cancel(){this.viewModel.cancel()}toggleTool(e){if(!this._effectiveDisabled)return this.viewModel.toggleTool(e)}render(){return h("div",{"aria-label":this.label,class:this.classes(g.base,d.widget)},h("div",{class:g.container},h("calcite-action-bar",{expandDisabled:!0,layout:"horizontal",overflowActionsDisabled:!0,scale:this.scale},this._renderOperationTypeControls(),this._renderToolsGroup(),this._renderChip())))}_renderToolsGroup(){return h("calcite-action-group",{key:"tools-group"},this._renderDefaultTools(),this._renderCustomTools())}_renderDefaultTools(){return[this._renderPanAction(),this._renderPointTool(),this._renderRectangleTool(),this._renderLassoTool()]}_renderPanAction(){if(!this.visibleElements.pan)return;const e=this.messages.pan,t=`${this.id}-tool-pan`;return this._renderAction({active:!this.activeOperation,disabled:this._effectiveDisabled,icon:"pan",id:t,key:t,onclick:()=>this.cancel(),text:e,title:e})}_renderChip(){if(!this.visibleElements.chip)return;const{effectiveSelectionManager:e}=this,o=e?.count??0,i=t(o);return h("calcite-chip",{appearance:"outline",closable:o>0,closed:0===o,disabled:this._effectiveDisabled||0===o,label:i,scale:this.scale,slot:"actions-end",title:this.messages.clearSelection,onCalciteChipClose:()=>e?.clear()},i)}_renderCustomTools(){return this.toolConfigs.map(({toolName:e,icon:t})=>this._renderToolWithTooltip(e,t))}_renderPointTool(){if(this.visibleElements.pointTool)return this._renderToolWithTooltip("point","selection-set",this.messages.selectByPoint)}_renderLassoTool(){if(this.visibleElements.lassoTool)return this._renderToolWithTooltip("lasso","lasso-select",this.messages.selectByLasso)}_renderRectangleTool(){if(this.visibleElements.rectangleTool)return this._renderToolWithTooltip("rectangle","cursor-marquee",this.messages.selectByRectangle)}_renderOperationTypeControls(){const{availableOperationTypes:e}=this;if(!this.visibleElements.operationTypeControls||!e.length)return;const{_effectiveOperationType:t,scale:o}=this,i=this._getIconForSelectionOperationType(t),l=this._getLabelForSelectionOperationType(t);return h("calcite-action-group",{key:"toggle-group"},h("calcite-dropdown",{overlayPositioning:"fixed",placement:"bottom-start",scale:o,topLayerDisabled:this.topLayerDisabled},h("calcite-action",{class:g.toolButton,disabled:this._effectiveDisabled,icon:i,scale:o,slot:"trigger",text:l,title:l},h("calcite-icon",{icon:"chevron-down",scale:"s"})),h("calcite-dropdown-group",null,e.map(e=>this._renderOperationTypeDropdownItem(e)))))}_renderOperationTypeDropdownItem(e){return h("calcite-dropdown-item",{iconStart:this._getIconForSelectionOperationType(e),selected:this.defaultOperationType===e,onCalciteDropdownItemSelect:()=>this.defaultOperationType=e},this._getLabelForSelectionOperationType(e))}_renderToolWithTooltip(e,t,o=e){const i=`${this.id}-tool-${e}`;return this._renderAction({active:this.activeOperation?.toolName===e,disabled:this._effectiveDisabled,icon:t||"selection",id:i,key:i,onclick:()=>this.toggleTool(e),text:o,title:o})}_renderAction(e){return h("calcite-action",{...e,bind:this,class:g.toolButton,scale:this.scale})}_getIconForSelectionOperationType(e){switch(e){case"replace":return"overwrite-features";case"add":return"cursor-plus";case"remove":return"cursor-minus"}}_getLabelForSelectionOperationType(e){const{messages:t}=this;switch(e){case"replace":return t.replaceSelection;case"add":return t.addToSelection;case"remove":return t.removeFromSelection}}};e([n()],T.prototype,"_effectiveDisabled",null),e([n()],T.prototype,"_effectiveOperationType",null),e([n()],T.prototype,"activeOperation",null),e([n()],T.prototype,"availableOperationTypes",void 0),e([n()],T.prototype,"continuousSelectionEnabled",null),e([n()],T.prototype,"defaultLassoToolOptions",null),e([n()],T.prototype,"defaultOperationType",null),e([n()],T.prototype,"defaultPointToolOptions",null),e([n()],T.prototype,"defaultRectangleToolOptions",null),e([n()],T.prototype,"disabled",void 0),e([n()],T.prototype,"effectiveSelectionManager",null),e([n()],T.prototype,"effectiveSources",null),e([n()],T.prototype,"label",null),e([n()],T.prototype,"layers",null),e([n()],T.prototype,"layerViewPreferenceEnabled",null),e([n()],T.prototype,"layout",void 0),e([n(),u("esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar")],T.prototype,"messages",void 0),e([n()],T.prototype,"persistSelection",null),e([n()],T.prototype,"returnFeatureTitleFields",null),e([n()],T.prototype,"returnGeometry",null),e([n()],T.prototype,"selectOnComplete",null),e([n()],T.prototype,"scale",void 0),e([n()],T.prototype,"selectionManager",null),e([n()],T.prototype,"state",null),e([n()],T.prototype,"sources",null),e([n()],T.prototype,"toolConfigs",null),e([n()],T.prototype,"view",null),e([n()],T.prototype,"viewModel",void 0),e([n({type:m,nonNullable:!0})],T.prototype,"visibleElements",void 0),e([n()],T.prototype,"visibleToolCount",null),T=e([a("esri.widgets.support.SelectionToolbar")],T);const y=T;export{y as default};
2
+ import{__decorate as e}from"tslib";import{formatNumber as t}from"../../intl.js";import{deprecatedProperty as o}from"../../core/deprecate.js";import{handlesGroup as i}from"../../core/handleUtils.js";import s from"../../core/Logger.js";import{removeMaybe as l}from"../../core/maybe.js";import{on as r}from"../../core/reactiveUtils.js";import{property as n,subclass as a}from"../../core/accessorSupport/decorators.js";import c from"../Widget.js";import{loadCalciteComponents as p}from"./componentsUtils.js";import{globalCss as d}from"./globalCss.js";import{messageBundle as u,tsx as h}from"./widget.js";import v from"./SelectionToolbar/SelectionToolbarViewModel.js";import m from"./SelectionToolbar/VisibleElements.js";const f="esri-selection-toolbar",g={base:f,container:`${f}__container`,toolButton:`${f}__tool-button`};let T=class extends c{constructor(e,t){super(e,t),this._viewModelHandlesGroup=null,this.availableOperationTypes=["replace","add","remove"],this.disabled=!1,this.layout="horizontal",this.messages=null,this.scale="s",this.viewModel=new v,this.visibleElements=new m}initialize(){this._viewModelHandlesGroup=i([r(()=>this.viewModel,"before-activate",e=>this.emit("before-activate",e)),r(()=>this.viewModel,"complete",e=>this.emit("complete",e)),r(()=>this.viewModel,"selection-change",e=>this.emit("selection-change",e))])}destroy(){this._viewModelHandlesGroup=l(this._viewModelHandlesGroup)}loadDependencies(){return p({action:()=>import("@esri/calcite-components/dist/components/calcite-action"),"action-bar":()=>import("@esri/calcite-components/dist/components/calcite-action-bar"),"action-group":()=>import("@esri/calcite-components/dist/components/calcite-action-group"),chip:()=>import("@esri/calcite-components/dist/components/calcite-chip"),dropdown:()=>import("@esri/calcite-components/dist/components/calcite-dropdown"),"dropdown-item":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-item"),"dropdown-group":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-group"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon")})}get _effectiveDisabled(){return this.disabled||"disabled"===this.state}get _effectiveOperationType(){return this.activeOperation?.effectiveType||this.defaultOperationType}get activeOperation(){return this.viewModel.activeOperation}get continuousSelectionEnabled(){return this.viewModel.continuousSelectionEnabled}set continuousSelectionEnabled(e){this.viewModel.continuousSelectionEnabled=e}get defaultLassoToolOptions(){return this.viewModel.defaultLassoToolOptions}set defaultLassoToolOptions(e){this.viewModel.defaultLassoToolOptions=e}get defaultOperationType(){return this.viewModel.defaultOperationType}set defaultOperationType(e){this.viewModel.defaultOperationType=e}get defaultPointToolOptions(){return this.viewModel.defaultPointToolOptions}set defaultPointToolOptions(e){this.viewModel.defaultPointToolOptions=e}get defaultRectangleToolOptions(){return this.viewModel.defaultRectangleToolOptions}set defaultRectangleToolOptions(e){this.viewModel.defaultRectangleToolOptions=e}get effectiveSelectionManager(){return this.viewModel.effectiveSelectionManager}get effectiveSources(){return this.viewModel.effectiveSources}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get layers(){return o(s.getLogger(this),"layers",{replacement:"Use SelectionToolbar.sources instead."}),this.viewModel.sources}set layers(e){o(s.getLogger(this),"layers",{replacement:"Use SelectionToolbar.sources instead."}),this.viewModel.sources=e}get layerViewPreferenceEnabled(){return this.viewModel.layerViewPreferenceEnabled}set layerViewPreferenceEnabled(e){this.viewModel.layerViewPreferenceEnabled=e}get persistSelection(){return this.viewModel.persistSelection}set persistSelection(e){this.viewModel.persistSelection=e}get returnFeatureTitleFields(){return this.viewModel.returnFeatureTitleFields}set returnFeatureTitleFields(e){this.viewModel.returnFeatureTitleFields=e}get returnGeometry(){return this.viewModel.returnGeometry}set returnGeometry(e){this.viewModel.returnGeometry=e}get selectOnComplete(){return this.viewModel.selectOnComplete}set selectOnComplete(e){this.viewModel.selectOnComplete=e}get selectionManager(){return this.viewModel.selectionManager}set selectionManager(e){this.viewModel.selectionManager=e}get state(){return this.viewModel.state}get sources(){return this.viewModel.sources}set sources(e){this.viewModel.sources=e}get toolConfigs(){return this.viewModel.toolConfigs}set toolConfigs(e){this.viewModel.toolConfigs=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get visibleToolCount(){const{visibleElements:e}=this;return this.toolConfigs.length+(e.lassoTool?1:0)+(e.rectangleTool?1:0)}activate(e){if(this.cancel(),!this._effectiveDisabled)return this.viewModel.activate(e)}activateTool(e){if(!this._effectiveDisabled)return this.viewModel.activateTool(e)}cancel(){this.viewModel.cancel()}toggleTool(e){if(!this._effectiveDisabled)return this.viewModel.toggleTool(e)}render(){return h("div",{"aria-label":this.label,class:this.classes(g.base,d.widget)},h("div",{class:g.container},h("calcite-action-bar",{expandDisabled:!0,layout:"horizontal",overflowActionsDisabled:!0,scale:this.scale},this._renderOperationTypeControls(),this._renderToolsGroup(),this._renderChip())))}_renderToolsGroup(){return h("calcite-action-group",{key:"tools-group"},this._renderDefaultTools(),this._renderCustomTools())}_renderDefaultTools(){return[this._renderPanAction(),this._renderPointTool(),this._renderRectangleTool(),this._renderLassoTool()]}_renderPanAction(){if(!this.visibleElements.pan)return;const e=this.messages.pan,t=`${this.id}-tool-pan`;return this._renderAction({active:!this.activeOperation,disabled:this._effectiveDisabled,icon:"pan",id:t,key:t,onclick:()=>this.cancel(),text:e,title:e})}_renderChip(){if(!this.visibleElements.chip)return;const{effectiveSelectionManager:e}=this,o=e?.count??0,i=t(o);return h("calcite-chip",{appearance:"outline",closable:o>0,closed:0===o,disabled:this._effectiveDisabled||0===o,label:i,scale:this.scale,slot:"actions-end",title:this.messages.clearSelection,onCalciteChipClose:()=>e?.clear()},i)}_renderCustomTools(){return this.toolConfigs.map(({toolName:e,icon:t})=>this._renderToolWithTooltip(e,t))}_renderPointTool(){if(this.visibleElements.pointTool)return this._renderToolWithTooltip("point","selection-set",this.messages.selectByPoint)}_renderLassoTool(){if(this.visibleElements.lassoTool)return this._renderToolWithTooltip("lasso","lasso-select",this.messages.selectByLasso)}_renderRectangleTool(){if(this.visibleElements.rectangleTool)return this._renderToolWithTooltip("rectangle","cursor-marquee",this.messages.selectByRectangle)}_renderOperationTypeControls(){const{availableOperationTypes:e}=this;if(!this.visibleElements.operationTypeControls||!e.length)return;const{_effectiveOperationType:t,scale:o}=this,i=this._getIconForSelectionOperationType(t),s=this._getLabelForSelectionOperationType(t);return h("calcite-action-group",{key:"toggle-group"},h("calcite-dropdown",{overlayPositioning:"fixed",placement:"bottom-start",scale:o,topLayerDisabled:this.topLayerDisabled},h("calcite-action",{class:g.toolButton,disabled:this._effectiveDisabled,icon:i,scale:o,slot:"trigger",text:s,title:s},h("calcite-icon",{icon:"chevron-down",scale:"s"})),h("calcite-dropdown-group",null,e.map(e=>this._renderOperationTypeDropdownItem(e)))))}_renderOperationTypeDropdownItem(e){return h("calcite-dropdown-item",{iconStart:this._getIconForSelectionOperationType(e),selected:this.defaultOperationType===e,onCalciteDropdownItemSelect:()=>this.defaultOperationType=e},this._getLabelForSelectionOperationType(e))}_renderToolWithTooltip(e,t,o=e){const i=`${this.id}-tool-${e}`;return this._renderAction({active:this.activeOperation?.toolName===e,disabled:this._effectiveDisabled,icon:t||"selection",id:i,key:i,onclick:t=>{t.stopPropagation(),this.toggleTool(e)},text:o,title:o})}_renderAction(e){return h("calcite-action",{...e,bind:this,class:g.toolButton,scale:this.scale})}_getIconForSelectionOperationType(e){switch(e){case"replace":return"overwrite-features";case"add":return"cursor-plus";case"remove":return"cursor-minus"}}_getLabelForSelectionOperationType(e){const{messages:t}=this;switch(e){case"replace":return t.replaceSelection;case"add":return t.addToSelection;case"remove":return t.removeFromSelection}}};e([n()],T.prototype,"_effectiveDisabled",null),e([n()],T.prototype,"_effectiveOperationType",null),e([n()],T.prototype,"activeOperation",null),e([n()],T.prototype,"availableOperationTypes",void 0),e([n()],T.prototype,"continuousSelectionEnabled",null),e([n()],T.prototype,"defaultLassoToolOptions",null),e([n()],T.prototype,"defaultOperationType",null),e([n()],T.prototype,"defaultPointToolOptions",null),e([n()],T.prototype,"defaultRectangleToolOptions",null),e([n()],T.prototype,"disabled",void 0),e([n()],T.prototype,"effectiveSelectionManager",null),e([n()],T.prototype,"effectiveSources",null),e([n()],T.prototype,"label",null),e([n()],T.prototype,"layers",null),e([n()],T.prototype,"layerViewPreferenceEnabled",null),e([n()],T.prototype,"layout",void 0),e([n(),u("esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar")],T.prototype,"messages",void 0),e([n()],T.prototype,"persistSelection",null),e([n()],T.prototype,"returnFeatureTitleFields",null),e([n()],T.prototype,"returnGeometry",null),e([n()],T.prototype,"selectOnComplete",null),e([n()],T.prototype,"scale",void 0),e([n()],T.prototype,"selectionManager",null),e([n()],T.prototype,"state",null),e([n()],T.prototype,"sources",null),e([n()],T.prototype,"toolConfigs",null),e([n()],T.prototype,"view",null),e([n()],T.prototype,"viewModel",void 0),e([n({type:m,nonNullable:!0})],T.prototype,"visibleElements",void 0),e([n()],T.prototype,"visibleToolCount",null),T=e([a("esri.widgets.support.SelectionToolbar")],T);const y=T;export{y as default};
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
+ import{ignoreAbortErrors as t,whenOrAbort as r}from"../../../core/promiseUtils.js";import{isSelectableLayerViewBase as e}from"../../../views/support/selectionUtils.js";async function s(e){const{selector:s,signal:n,sources:o,view:c}=e;if(!o.length)return[];const a=i(o);if(!a.length)return[];const h=[],p=new Set;return await t(r(c.hitTest(s,{include:a}).then(({results:t})=>{t.forEach(t=>{"graphic"!==t.type||p.has(t.graphic)||(p.add(t.graphic),h.push(t.graphic))})}),n)),h}function i(t){const r=[];return t.forEach(t=>{e(t)&&r.push(t.layer)}),r}export{s as getSelectionFromScreenSelector};
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[5902],{95902(e,t,n){n.r(t),n.d(t,{TextureCompressionWorkerOutput:()=>T,compress:()=>S,compressRGBADataToKTX2:()=>G,createTextureDataKTX2:()=>C,destroy:()=>u,initializeBasisEncoder:()=>o,initializeDXTEncoder:()=>c});var r=n(2741);let a,l;var s=n(63907);let _,i,R=null,E=null;class T{constructor(e,t){this.internalFormat=e,this.compressedTexture=t}}function u(){R=null,_=null,E=null,i=null,a=null,l=null}async function S(e){const t=e.data instanceof ImageBitmap?e.data:null;let n;n=e.data instanceof ImageBitmap?function(e){const t=new OffscreenCanvas(e.width,e.height),n=t.getContext("2d");return n.drawImage(e,0,0),n.getImageData(0,0,t.width,t.height).data}(e.data):function(e,t,n,r,a){const l=new Uint8ClampedArray(e).subarray(0,t*n*r);if(!a)return l;const s=new Uint8ClampedArray(l.length),_=t*r;for(let e=0;e<n;e++){const t=e*_,r=(n-e-1)*_;s.set(l.subarray(t,t+_),r)}return s}(e.data,e.width,e.height,e.components,e.needsFlip);try{const t=e.preMultiplyAlpha&&!e.isOpaque;if(e.hasS3TC){E||await c();const r=new Uint8Array(n.length),a=E?.encode(n,e.width,e.height,t,r)??0;if(a){const e=r.slice(0,a),t=function(e){const t=new Int32Array(e.buffer,e.byteOffset,31);let n,r;switch(t[21]){case A:n=8,r=s.CQ.COMPRESSED_RGB_S3TC_DXT1_EXT;break;case f:n=16,r=s.CQ.COMPRESSED_RGBA_S3TC_DXT3_EXT;break;case B:n=16,r=s.CQ.COMPRESSED_RGBA_S3TC_DXT5_EXT;break;default:return null}let a=1,l=t[4],_=t[3];(3&l||3&_)&&(l=l+3&-4,_=_+3&-4);const i=l,R=_;let E,T;t[2]&I&&(a=Math.max(1,t[7]));let u=e.byteOffset+t[1]+4;const S=[];for(let t=0;t<a;++t)T=(l+3>>2)*(_+3>>2)*n,E=new Uint8Array(e.buffer,u,T),S.push(E),u+=T,l=Math.max(1,l>>1),_=Math.max(1,_>>1);return{textureData:{type:"compressed",levels:S},internalFormat:r,width:i,height:R}}(e),n=[e.buffer];return{result:new T(t?.internalFormat??null,t?.textureData??null),transferList:n}}return{result:new T(null,null)}}if(e.hasETC){if(R||await o(),t&&!E&&await c(),t){const t=new Uint8ClampedArray(n.length);E?.premultiply(new Uint8Array(n),e.width,e.height,t),n=t}const r=G(n,e.width,e.height,e.hasMipmap,void 0,void 0,!1,!1,e.isOpaque),a=r?C(r):null,l=a?.compressedTexture?.levels.map(e=>e.buffer)||[];return{result:new T(a?.internalFormat??null,a?.compressedTexture??null),transferList:l}}return{result:new T(null,null)}}finally{t?.close()}}async function o(){R||(R=await(_??=(a??=(async()=>{const e=await n.e(2372).then(n.bind(n,62372)),t=await e.default({locateFile:e=>(0,r.s)(`esri/libs/basisu/${e}`)});return t.initializeBasis(),t})(),a)),_=null)}async function c(){E||(E=await(i??=(l??=(async()=>{const e=await n.e(8714).then(n.bind(n,98714));return await e.default({locateFile:e=>(0,r.s)(`esri/libs/dxtEncoder/${e}`)})})(),l)),i=null)}function G(e,t,n,r,a=255,l=0,s=!1,_=!1,i=!1){if(!R)return null;const E=new R.BasisEncoder;E.setPerceptual(!_),E.setCheckForAlpha(!i),E.setForceAlpha(!1),E.setRenormalize(_),E.setMipGen(r),E.setMipSRGB(!_),E.setCreateKTX2File(!0),E.setKTX2AndBasisSRGBTransferFunc(!_),E.setQualityLevel(a),E.setETC1SCompressionLevel(l);const T=new Uint8Array(e.byteLength);try{E.setSliceSourceImage(0,new Uint8Array(e),t,n,s);const r=E.encode(T);if(!r)return null;const a=new Uint8Array(T.buffer,0,r),l=new R.KTX2File(new Uint8Array(a));try{if(!l.isValid())return null}finally{l.close(),l.delete()}return a}finally{E.delete()}}function C(e){if(!R)return new T(null,null);const t=new R.KTX2File(new Uint8Array(e));try{if(!t.startTranscoding())return new T(null,null);const[e,n]=t.getHasAlpha()?[1,s.CQ.COMPRESSED_RGBA8_ETC2_EAC]:[0,s.CQ.COMPRESSED_RGB8_ETC2],r=t.getLevels(),a=[];for(let n=0;n<r;n++){const r=new Uint8Array(t.getImageTranscodedSizeInBytes(n,0,0,e));if(!t.transcodeImage(r,n,0,0,e,0,-1,-1))return new T(null,null);a.push(r)}return{internalFormat:n,compressedTexture:{type:"compressed",levels:a}}}finally{t.close(),t.delete()}}const I=131072;function N(e){return e.charCodeAt(0)+(e.charCodeAt(1)<<8)+(e.charCodeAt(2)<<16)+(e.charCodeAt(3)<<24)}const A=N("DXT1"),f=N("DXT3"),B=N("DXT5")},63907(e,t,n){const r={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,HALF_FLOAT:5131},a={RGBA4:32854,R16F:33325,RG16F:33327,RGB32F:34837,RGBA16F:34842,R32F:33326,RG32F:33328,RGBA32F:34836,R11F_G11F_B10F:35898,RGB8:32849,RGBA8:32856,RGB5_A1:32855,R8:33321,RG8:33323,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,RGB16F:34843,RGB9_E5:35901,SRGB8:35905,SRGB8_ALPHA8:35907,RGB565:36194,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,RGB10_A2:32857,RGB10_A2UI:36975},l=Object.values(a),s={FLOAT:r.FLOAT,UNSIGNED_BYTE:r.UNSIGNED_BYTE,UNSIGNED_INT_24_8:34042,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,BYTE:r.BYTE,UNSIGNED_SHORT:r.UNSIGNED_SHORT,SHORT:r.SHORT,UNSIGNED_INT:r.UNSIGNED_INT,INT:r.INT,HALF_FLOAT:5131,UNSIGNED_INT_2_10_10_10_REV:33640,UNSIGNED_INT_10F_11F_11F_REV:35899,UNSIGNED_INT_5_9_9_9_REV:35902,FLOAT_32_UNSIGNED_INT_24_8_REV:36269};n.d(t,["CQ",0,{COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497},"H0",0,a,"SB",0,{DEPTH_COMPONENT16:33189,DEPTH_COMPONENT24:33190,DEPTH_COMPONENT32F:36012},"WR",0,{POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},"XN",0,l,"iE",0,{DEPTH24_STENCIL8:35056,DEPTH32F_STENCIL8:36013},"ld",0,s,"pe",0,r,"vt",0,{Texture:0,TileTexture:1,BufferObject:2,VertexArrayObject:3,Shader:4,Program:5,FramebufferObject:6,Renderbuffer:7,TransformFeedback:8,Sync:9,UNCOUNTED:10,LinesOfCode:10,Uniform:11,COUNT:12}])}}]);