@arcgis/core 5.2.0-next.29 → 5.2.0-next.30

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 (131) hide show
  1. package/assets/esri/core/t9n/Units_en.json +1 -1
  2. package/assets/esri/core/workers/RemoteClient.js +1 -1
  3. package/assets/esri/core/workers/chunks/0af6b87a3d77bb93b893.js +1 -0
  4. package/assets/esri/core/workers/chunks/{7ff37a4f315f7621462b.js → 125edba5c618c6257cb8.js} +1 -1
  5. package/assets/esri/core/workers/chunks/{4ba4fd8fa31169760fee.js → 1282598516cd0e3056b7.js} +3 -3
  6. package/assets/esri/core/workers/chunks/414691f7758c78e2a704.js +1 -0
  7. package/assets/esri/core/workers/chunks/4452fd0c59431904d533.js +1 -0
  8. package/assets/esri/core/workers/chunks/451331f69d21c61ec93b.js +1 -0
  9. package/assets/esri/core/workers/chunks/{11f47a012dd8881e3d55.js → 4e803d12486c8de4c901.js} +23 -23
  10. package/assets/esri/core/workers/chunks/{992a90ecbab931198fd0.js → 4ecc345c3732f7fc130f.js} +1 -1
  11. package/assets/esri/core/workers/chunks/557300ec03bae84d8afc.js +1 -0
  12. package/assets/esri/core/workers/chunks/{b18b6bb85e52b03b85e3.js → 6df54132299b9e8f6dad.js} +18 -18
  13. package/assets/esri/core/workers/chunks/{c6f5688074ae89c37add.js → 7b1678dcf62481469544.js} +1 -1
  14. package/assets/esri/core/workers/chunks/{a90619adff41658f8057.js → 8d21f3d6edbcd7b335d0.js} +1 -1
  15. package/assets/esri/core/workers/chunks/b1a0eb6598309e11337f.js +1 -0
  16. package/assets/esri/core/workers/chunks/bd0829eb79efff5b7223.js +1 -0
  17. package/assets/esri/core/workers/chunks/bee56a6ac99312f03109.js +1 -0
  18. package/assets/esri/core/workers/chunks/c7316fd2bdb7ac9eada3.js +1 -0
  19. package/assets/esri/core/workers/chunks/daf539e9f88fc9e101e4.js +1 -0
  20. package/assets/esri/core/workers/chunks/{9fe71d49c888fd871312.js → e2d500ac1a264d09c857.js} +1 -1
  21. package/assets/esri/core/workers/chunks/{aded4e704e09a28edc8f.js → f63e7b01c70352538b1e.js} +1 -1
  22. package/assets/esri/core/workers/chunks/f71f5778e03f68f27482.js +1 -0
  23. package/assets/esri/core/workers/chunks/fc9664d3282b052ef40f.js +1 -0
  24. package/assets/esri/widgets/Features/t9n/Features_en.json +1 -1
  25. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_en.json +1 -1
  26. package/chunks/CutFillComposition.glsl.js +16 -10
  27. package/chunks/CutFillDepth.glsl.js +1 -14
  28. package/chunks/HUDMaterial.glsl.js +7 -7
  29. package/chunks/Viewshed.glsl.js +3 -3
  30. package/config.js +1 -1
  31. package/core/PooledArray.js +1 -1
  32. package/geometry/support/lineSegment.js +1 -1
  33. package/geometry/support/triangle.js +1 -1
  34. package/kernel.js +1 -1
  35. package/layers/AnnotationFeatureLayer.js +1 -1
  36. package/layers/DimensionFeatureLayer.js +1 -1
  37. package/layers/knowledgeGraph/KnowledgeGraphSublayer.js +1 -1
  38. package/layers/knowledgeGraph/nodeMovementUtils.js +1 -1
  39. package/layers/mixins/ArcGISImageService.js +1 -1
  40. package/layers/raster/datasets/pixelReader.js +1 -1
  41. package/layers/support/ExportImageServiceParameters.js +1 -1
  42. package/package.json +1 -1
  43. package/support/revision.js +1 -1
  44. package/views/2d/engine/webgl/mesh/bufcut.js +1 -1
  45. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  46. package/views/2d/engine/webgl/util/AnnotationMatcher.js +1 -1
  47. package/views/2d/layers/features/layerAdapters/AnnotationLayerAdapter.js +1 -1
  48. package/views/2d/layers/features/layerAdapters/DimensionLayerAdapter.js +1 -1
  49. package/views/2d/layers/support/annodime/DimensionInfo.js +1 -1
  50. package/views/2d/layers/support/annodime/MatcherGeometryOverride.js +1 -1
  51. package/views/2d/layers/support/annodime/annotationGraphic.js +1 -1
  52. package/views/2d/layers/support/annodime/cimAnnotations.js +1 -1
  53. package/views/2d/layers/support/annodime/dimensionSymbols.js +1 -1
  54. package/views/2d/layers/support/annodime/dimensionUtils.js +1 -1
  55. package/views/2d/layers/support/annodime/fields.js +1 -1
  56. package/views/2d/layers/support/annodime/utils.js +1 -1
  57. package/views/2d/layers/support/annodime/virtualFields.js +1 -1
  58. package/views/3d/FocusAreasView.js +1 -1
  59. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillController.js +1 -1
  60. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillVisualization.js +1 -1
  61. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  62. package/views/3d/support/hitTest.js +1 -1
  63. package/views/3d/webgl/RenderCamera.js +1 -1
  64. package/views/3d/webgl-engine/core/shaderLibrary/util/LocalFromScreenSpace.glsl.js +2 -2
  65. package/views/3d/webgl-engine/core/shaderModules/FloatsDrawUniform.js +2 -0
  66. package/views/3d/webgl-engine/effects/focusArea/{FocusAreaMaskNode.js → FocusAreaMask.js} +1 -1
  67. package/views/3d/webgl-engine/effects/focusArea/{FocusAreaColorNode.js → FocusAreaVisualization.js} +1 -1
  68. package/views/3d/webgl-engine/effects/geometry/{ObjectAndLayerIDRenderNode.js → ObjectAndLayerID.js} +1 -1
  69. package/views/3d/webgl-engine/effects/geometry/{RenderOccludedRenderNode.js → RenderOccluded.js} +1 -1
  70. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  71. package/views/3d/webgl-engine/lib/CutFillComputation.js +2 -0
  72. package/views/3d/webgl-engine/lib/CutFillVisualization.js +2 -0
  73. package/views/3d/webgl-engine/lib/{GaussianSplatRenderNode.js → GaussianSplatRenderer.js} +1 -1
  74. package/views/3d/webgl-engine/lib/GaussianSplatShadows.js +2 -0
  75. package/views/3d/webgl-engine/lib/Intersector.js +1 -1
  76. package/views/3d/webgl-engine/lib/Octree.js +1 -1
  77. package/views/3d/webgl-engine/lib/RayIntersections.js +1 -1
  78. package/views/3d/webgl-engine/lib/RenderingContext.js +1 -1
  79. package/views/3d/webgl-engine/lib/ShadowMap.js +1 -1
  80. package/views/3d/webgl-engine/lib/Viewshed.js +1 -1
  81. package/views/3d/webgl-engine/lib/ViewshedShadowMap.js +1 -1
  82. package/views/3d/webgl-engine/lib/geometryDataUtils.js +1 -1
  83. package/views/3d/webgl-engine/lib/intersectionConstants.js +2 -0
  84. package/views/3d/webgl-engine/lib/screenPolygonOverlapUtils.js +2 -0
  85. package/views/3d/webgl-engine/lib/screenPolygonTriangleIntersections.js +2 -0
  86. package/views/3d/webgl-engine/lib/triangleIntersectionUtils.js +1 -1
  87. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  88. package/views/3d/webgl-engine/materials/PolygonOffset.js +1 -1
  89. package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
  90. package/views/3d/webgl-engine/materials/TriangleMaterial.js +1 -1
  91. package/views/3d/webgl-engine/materials/intersectWithPolygonOffset.js +2 -0
  92. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  93. package/views/3d/webgl-engine/shaders/CutFillComposition.glsl.js +1 -1
  94. package/views/3d/webgl-engine/shaders/CutFillCompositionTechnique.js +1 -1
  95. package/views/3d/webgl-engine/shaders/CutFillDepth.glsl.js +1 -1
  96. package/views/3d/webgl-engine/shaders/HUDMaterial.glsl.js +1 -1
  97. package/views/3d/webgl-engine/shaders/Viewshed.glsl.js +1 -1
  98. package/views/3d/webgl-engine/shaders/ViewshedTechnique.js +1 -1
  99. package/views/SceneView.js +1 -1
  100. package/views/draw/support/Reshape.js +1 -1
  101. package/views/layers/FeatureLikeLayerView.js +1 -1
  102. package/views/support/euclideanAreaMeasurementUtils.js +1 -1
  103. package/views/webgl/ShaderBuilder.js +1 -1
  104. package/widgets/Attachments/support/attachmentUtils.js +1 -1
  105. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
  106. package/widgets/BatchAttributeForm/inputs/AttachmentElementInput.js +1 -1
  107. package/widgets/BatchAttributeForm.js +1 -1
  108. package/widgets/Editor/components/UpdateFeaturePanelContent.js +1 -1
  109. package/widgets/Editor.js +1 -1
  110. package/widgets/FeatureForm/UtilityNetworkAssociationAddAssociationViewModel.js +1 -1
  111. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  112. package/widgets/OrientedImageryViewer/navigation/NavigationManager.js +1 -1
  113. package/widgets/PanoramicViewer/support/PanoramicTileNode.js +1 -1
  114. package/widgets/PanoramicViewer/utils.js +1 -1
  115. package/widgets/Sketch/support/OperationHandle.js +1 -1
  116. package/widgets/support/UtilityNetworkAssociations/FeatureUtilityNetworkAssociationsViewModel.js +1 -1
  117. package/assets/esri/core/workers/chunks/0d3c9112ae07fa4a97d6.js +0 -1
  118. package/assets/esri/core/workers/chunks/1849f72f23b434e6c78d.js +0 -1
  119. package/assets/esri/core/workers/chunks/218e2d8d6cd147c769ce.js +0 -1
  120. package/assets/esri/core/workers/chunks/294f2803aac000c99693.js +0 -1
  121. package/assets/esri/core/workers/chunks/2c15c227d057292d4fa8.js +0 -1
  122. package/assets/esri/core/workers/chunks/38a2f34661563c7c29c1.js +0 -1
  123. package/assets/esri/core/workers/chunks/5468a65698931603656d.js +0 -1
  124. package/assets/esri/core/workers/chunks/780519b60aa674a61a74.js +0 -1
  125. package/assets/esri/core/workers/chunks/88827e23f8938342781c.js +0 -1
  126. package/assets/esri/core/workers/chunks/bfe9c8ab35d9bf7e1035.js +0 -1
  127. package/assets/esri/core/workers/chunks/caf150028aeac91b8d80.js +0 -1
  128. package/assets/esri/core/workers/chunks/e98a8f80023c6023e72c.js +0 -1
  129. package/views/3d/webgl-engine/lib/CutFillComputationRenderNode.js +0 -2
  130. package/views/3d/webgl-engine/lib/CutFillVisualizationRenderNode.js +0 -2
  131. package/views/3d/webgl-engine/lib/GaussianSplatShadowRenderNode.js +0 -2
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{clamp as t}from"../../core/mathUtils.js";import{ObjectStack as r}from"../../core/ObjectStack.js";import{copy as n,subtract as o,dot as i,squaredLength as e,scale as c,add as g,squaredDistance as u}from"../../core/libs/gl-matrix-2/math/vec3.js";import{create as s,clone as a}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import{sv3d as f}from"./vectorStacks.js";function v(t){return t?{origin:a(t.origin),vector:a(t.vector)}:{origin:s(),vector:s()}}function m(t,r){const n=w.get();return n.origin=t,n.vector=r,n}function p(t,r=v()){return b(t.origin,t.vector,r)}function b(t,r,o=v()){return n(o.origin,t),n(o.vector,r),o}function h(t,r,i=v()){return n(i.origin,t),o(i.vector,r,t),i}function l(r,n){const e=o(f.get(),n,r.origin),g=i(r.vector,e),u=i(r.vector,r.vector),s=t(g/u,0,1),a=o(f.get(),c(f.get(),r.vector,s),e);return i(a,a)}function M(t,r,n){return B(t,r,0,1,n)}function j(r,n){const{vector:c,origin:g}=r,u=o(f.get(),n,g),s=i(c,u)/e(c);return t(s,0,1)}function A(t,r,n){return g(n,t.origin,c(n,t.vector,r))}function B(r,n,u,s,a){const{vector:v,origin:m}=r,p=o(f.get(),n,m),b=i(v,p)/e(v);return c(a,v,t(b,u,s)),g(a,a,r.origin)}function d(t,r){if(k(t,m(r.origin,r.direction),!1,S)){const{tA:r,pB:n,distance2:o}=S;if(r>=0&&r<=1)return o;if(r<0)return u(t.origin,n);if(r>1)return u(g(f.get(),t.origin,t.vector),n)}return null}function x(t,r,o){return!!k(t,r,!0,S)&&(n(o,S.pA),!0)}function k(r,n,o,i){const e=1e-6,c=r.origin,s=g(f.get(),c,r.vector),a=n.origin,v=g(f.get(),a,n.vector),m=f.get(),p=f.get();if(m[0]=c[0]-a[0],m[1]=c[1]-a[1],m[2]=c[2]-a[2],p[0]=v[0]-a[0],p[1]=v[1]-a[1],p[2]=v[2]-a[2],Math.abs(p[0])<e&&Math.abs(p[1])<e&&Math.abs(p[2])<e)return!1;const b=f.get();if(b[0]=s[0]-c[0],b[1]=s[1]-c[1],b[2]=s[2]-c[2],Math.abs(b[0])<e&&Math.abs(b[1])<e&&Math.abs(b[2])<e)return!1;const h=m[0]*p[0]+m[1]*p[1]+m[2]*p[2],l=p[0]*b[0]+p[1]*b[1]+p[2]*b[2],M=m[0]*b[0]+m[1]*b[1]+m[2]*b[2],j=p[0]*p[0]+p[1]*p[1]+p[2]*p[2],A=(b[0]*b[0]+b[1]*b[1]+b[2]*b[2])*j-l*l;if(Math.abs(A)<e)return!1;let B=(h*l-M*j)/A,d=(h+l*B)/j;o&&(B=t(B,0,1),d=t(d,0,1));const x=f.get(),k=f.get();return x[0]=c[0]+B*b[0],x[1]=c[1]+B*b[1],x[2]=c[2]+B*b[2],k[0]=a[0]+d*p[0],k[1]=a[1]+d*p[1],k[2]=a[2]+d*p[2],i.tA=B,i.tB=d,i.pA=x,i.pB=k,i.distance2=u(x,k),!0}const S={tA:0,tB:0,pA:s(),pB:s(),distance2:0},w=new r(()=>v());export{x as closestLineSegmentPoint,d as closestRayDistance2,p as copy,v as create,l as distance2,h as fromPoints,b as fromValues,A as pointAt,M as projectPoint,B as projectPointClamp,j as projectPointFraction,m as wrap};
2
+ import{clamp as t}from"../../core/mathUtils.js";import{ObjectStack as r}from"../../core/ObjectStack.js";import{copy as n,subtract as o,dot as i,squaredLength as e,scale as c,add as g,squaredDistance as s}from"../../core/libs/gl-matrix-2/math/vec3.js";import{create as u,clone as a}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import{sv3d as f}from"./vectorStacks.js";function v(t){return t?{origin:a(t.origin),vector:a(t.vector)}:{origin:u(),vector:u()}}function m(t,r){const n=w.get();return n.origin=t,n.vector=r,n}function p(t,r=v()){return b(t.origin,t.vector,r)}function b(t,r,o=v()){return n(o.origin,t),n(o.vector,r),o}function h(t,r,i=v()){return n(i.origin,t),o(i.vector,r,t),i}function l(r,n){const e=o(f.get(),n,r.origin),g=i(r.vector,e),u=i(r.vector,r.vector);if(Math.abs(u)<y)return s(r.origin,n);const a=t(g/u,0,1),v=o(f.get(),c(f.get(),r.vector,a),e);return i(v,v)}function M(t,r,n){return B(t,r,0,1,n)}function j(r,n){const{vector:c,origin:g}=r,s=o(f.get(),n,g),u=i(c,s)/e(c);return t(u,0,1)}function A(t,r,n){return g(n,t.origin,c(n,t.vector,r))}function B(r,n,s,u,a){const{vector:v,origin:m}=r,p=o(f.get(),n,m),b=i(v,p)/e(v);return c(a,v,t(b,s,u)),g(a,a,r.origin)}function d(t,r){if(k(t,m(r.origin,r.direction),!1,S)){const{tA:r,pB:n,distance2:o}=S;if(r>=0&&r<=1)return o;if(r<0)return s(t.origin,n);if(r>1)return s(g(f.get(),t.origin,t.vector),n)}return null}function x(t,r,o){return!!k(t,r,!0,S)&&(n(o,S.pA),!0)}function k(r,n,o,i){const e=1e-6,c=r.origin,u=g(f.get(),c,r.vector),a=n.origin,v=g(f.get(),a,n.vector),m=f.get(),p=f.get();if(m[0]=c[0]-a[0],m[1]=c[1]-a[1],m[2]=c[2]-a[2],p[0]=v[0]-a[0],p[1]=v[1]-a[1],p[2]=v[2]-a[2],Math.abs(p[0])<e&&Math.abs(p[1])<e&&Math.abs(p[2])<e)return!1;const b=f.get();if(b[0]=u[0]-c[0],b[1]=u[1]-c[1],b[2]=u[2]-c[2],Math.abs(b[0])<e&&Math.abs(b[1])<e&&Math.abs(b[2])<e)return!1;const h=m[0]*p[0]+m[1]*p[1]+m[2]*p[2],l=p[0]*b[0]+p[1]*b[1]+p[2]*b[2],M=m[0]*b[0]+m[1]*b[1]+m[2]*b[2],j=p[0]*p[0]+p[1]*p[1]+p[2]*p[2],A=(b[0]*b[0]+b[1]*b[1]+b[2]*b[2])*j-l*l;if(Math.abs(A)<e)return!1;let B=(h*l-M*j)/A,d=(h+l*B)/j;o&&(B=t(B,0,1),d=t(d,0,1));const x=f.get(),k=f.get();return x[0]=c[0]+B*b[0],x[1]=c[1]+B*b[1],x[2]=c[2]+B*b[2],k[0]=a[0]+d*p[0],k[1]=a[1]+d*p[1],k[2]=a[2]+d*p[2],i.tA=B,i.tB=d,i.pA=x,i.pB=k,i.distance2=s(x,k),!0}const S={tA:0,tB:0,pA:u(),pB:u(),distance2:0},w=new r(()=>v()),y=1e-9;export{x as closestLineSegmentPoint,d as closestRayDistance2,p as copy,v as create,l as distance2,h as fromPoints,b as fromValues,A as pointAt,M as projectPoint,B as projectPointClamp,j as projectPointFraction,m as wrap};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{ObjectStack as t}from"../../core/ObjectStack.js";import{subtract as e,length as r,cross as n,scale as o,add as c,dot as p,copy as i}from"../../core/libs/gl-matrix-2/math/vec3.js";import{create as s,clone as f}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as u,distance2 as a,fromValues as g}from"./lineSegment.js";import{sv3d as m}from"./vectorStacks.js";function j(t){return t?{p0:f(t.p0),p1:f(t.p1),p2:f(t.p2)}:{p0:s(),p1:s(),p2:s()}}function l(t,e,r){const n=w.get();return n.p0=t,n.p1=e,n.p2=r,n}function b(t,e=j()){return h(t.p0,t.p1,t.p2,e)}function h(t,e,r,n=j()){return i(n.p0,t),i(n.p1,e),i(n.p2,r),n}function v(t,r){const o=t.p0,c=t.p1,i=t.p2,s=e(m.get(),c,o),f=e(m.get(),i,c),u=e(m.get(),o,i),j=e(m.get(),r,o),l=e(m.get(),r,c),b=e(m.get(),r,i),h=n(s,s,u),v=p(n(m.get(),s,h),j),x=p(n(m.get(),f,h),l),S=p(n(m.get(),u,h),b);if(v>0&&x>0&&S>0){const t=p(h,j);return t*t/p(h,h)}const d=a(g(o,s,k.get()),r),w=a(g(c,f,k.get()),r),M=a(g(i,u,k.get()),r);return Math.min(d,w,M)}function x(t,e,r){const n=1e-5,{direction:p,origin:i}=e,{p0:s,p1:f,p2:u}=t,a=f[0]-s[0],g=f[1]-s[1],m=f[2]-s[2],j=u[0]-s[0],l=u[1]-s[1],b=u[2]-s[2],h=p[1]*b-l*p[2],v=p[2]*j-b*p[0],x=p[0]*l-j*p[1],S=a*h+g*v+m*x;if(S>-n&&S<n)return!1;const d=1/S,k=i[0]-s[0],w=i[1]-s[1],M=i[2]-s[2],y=d*(k*h+w*v+M*x);if(y<0||y>1)return!1;const O=w*m-g*M,V=M*a-m*k,q=k*g-a*w,z=d*(p[0]*O+p[1]*V+p[2]*q);if(z<0||y+z>1)return!1;if(r){o(r,p,d*(j*O+l*V+b*q)),c(r,i,r)}return!0}function S(t,e,r){const n=e[0]-t[0],o=e[1]-t[1],c=r[0]-t[0],p=r[1]-t[1];return.5*Math.abs(n*p-o*c)}function d(t,o,c){return e(M,o,t),e(y,c,t),.5*r(n(M,M,y))}const k=new t(u),w=new t(()=>j()),M=s(),y=s();export{S as areaPoints2d,d as areaPoints3d,b as copy,j as create,v as distance2,h as fromValues,x as intersectRay,l as wrap};
2
+ import{ObjectStack as t}from"../../core/ObjectStack.js";import{subtract as n,length as r,cross as e,scale as o,add as i,sub as c,dot as s,copy as u,scaleAndAdd as f}from"../../core/libs/gl-matrix-2/math/vec3.js";import{create as p,clone as a}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as g,distance2 as m,fromValues as v}from"./lineSegment.js";import{sv3d as d}from"./vectorStacks.js";function j(t){return t?{p0:a(t.p0),p1:a(t.p1),p2:a(t.p2)}:{p0:p(),p1:p(),p2:p()}}function l(t,n,r){const e=z.get();return e.p0=t,e.p1=n,e.p2=r,e}function b(t,n=j()){return h(t.p0,t.p1,t.p2,n)}function h(t,n,r,e=j()){return u(e.p0,t),u(e.p1,n),u(e.p2,r),e}function x(t,r){const o=t.p0,i=t.p1,c=t.p2,u=n(d.get(),i,o),f=n(d.get(),c,i),p=n(d.get(),o,c),a=n(d.get(),r,o),g=n(d.get(),r,i),j=n(d.get(),r,c),l=e(u,u,p),b=s(e(d.get(),u,l),a),h=s(e(d.get(),f,l),g),x=s(e(d.get(),p,l),j);if(b>0&&h>0&&x>0){const t=s(l,a);return t*t/s(l,l)}const S=m(v(o,u,q.get()),r),k=m(v(i,f,q.get()),r),w=m(v(c,p,q.get()),r);return Math.min(S,k,w)}function S(t,n,r){const e=1e-5,{direction:c,origin:s}=n,{p0:u,p1:f,p2:p}=t,a=f[0]-u[0],g=f[1]-u[1],m=f[2]-u[2],v=p[0]-u[0],d=p[1]-u[1],j=p[2]-u[2],l=c[1]*j-d*c[2],b=c[2]*v-j*c[0],h=c[0]*d-v*c[1],x=a*l+g*b+m*h;if(x>-e&&x<e)return!1;const S=1/x,k=s[0]-u[0],w=s[1]-u[1],M=s[2]-u[2],y=S*(k*l+w*b+M*h);if(y<0||y>1)return!1;const O=w*m-g*M,V=M*a-m*k,q=k*g-a*w,z=S*(c[0]*O+c[1]*V+c[2]*q);if(z<0||y+z>1)return!1;if(r){o(r,c,S*(v*O+d*V+j*q)),i(r,s,r)}return!0}function k(t,n,r){return Math.abs(w(t,n,r))}function w(t,n,r){const[e,o]=t,[i,c]=n,[s,u]=r;return.5*((i-e)*(u-o)-(c-o)*(s-e))}function M(t,n,r,e,o=0){const i=w(e,t,n),c=w(e,n,r),s=w(e,r,t);return!((i<-o||c<-o||s<-o)&&(i>o||c>o||s>o))}function y(t,o,i){return n(A,o,t),n(B,i,t),.5*r(e(A,A,B))}function O(t,n,r,e,o){c(A,e,r),c(C,o,r),c(B,n,r);const i=s(A,B),p=s(C,B);if(i<=0&&p<=0)return void u(t,r);c(B,n,e);const a=s(A,B),g=s(C,B);if(a>=0&&g<=a)return void u(t,e);const m=i*g-a*p;if(m<=0&&i>=0&&a<=0)return void f(t,r,A,i/(i-a));c(B,n,o);const v=s(A,B),d=s(C,B);if(d>=0&&v<=d)return void u(t,o);const j=v*p-i*d;if(j<=0&&p>=0&&d<=0)return void f(t,r,C,p/(p-d));const l=a*d-v*g;if(l<=0&&g-a>=0&&v-d>=0)return c(B,o,e),void f(t,e,B,(g-a)/(g-a+(v-d)));const b=1/(l+j+m);u(t,r),f(t,t,A,j*b),f(t,t,C,m*b)}function V(t,n,i,s){c(A,i,n),c(B,s,n),e(t,A,B);const u=r(t);return 0!==u&&(o(t,t,1/u),!0)}const q=new t(g),z=new t(()=>j()),A=p(),B=p(),C=p();export{k as area2dFromValues,y as area3dFromValues,O as closestPointFromValues,M as containsPoint2dFromValues,b as copy,j as create,x as distance2,h as fromValues,S as intersectRay,V as normalFromValues,l as wrap};
package/kernel.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import has from"./core/has.js";import{addQueryParameter as o}from"./core/urlUtils.js";export{buildDate,commitHash as revision}from"./support/revision.js";Symbol.dispose??=Symbol("Symbol.dispose"),Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");const e="5.2";let s,r=e;function i(o){s=o}function t(e){const r=s?.findCredential(e);return r?.token?o(e,"token",r.token):e}r="5.2.0-next.29",has("host-webworker")||globalThis.$arcgis||Object.defineProperty(globalThis,"$arcgis",{configurable:!1,enumerable:!0,writable:!1,value:{}}),has("host-webworker");export{t as addTokenParameter,r as fullVersion,s as id,i as setId,e as version};
2
+ import has from"./core/has.js";import{addQueryParameter as o}from"./core/urlUtils.js";export{buildDate,commitHash as revision}from"./support/revision.js";Symbol.dispose??=Symbol("Symbol.dispose"),Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");const e="5.2";let s,r=e;function i(o){s=o}function t(e){const r=s?.findCredential(e);return r?.token?o(e,"token",r.token):e}r="5.2.0-next.30",has("host-webworker")||globalThis.$arcgis||Object.defineProperty(globalThis,"$arcgis",{configurable:!1,enumerable:!0,writable:!1,value:{}}),has("host-webworker");export{t as addTokenParameter,r as fullVersion,s as id,i as setId,e as version};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__addDisposableResource as e,__disposeResources as t,__decorate as r}from"tslib";import s from"../PopupTemplate.js";import i from"../request.js";import{ClonableMixin as o}from"../core/Clonable.js";import a from"../core/Collection.js";import n from"../core/Error.js";import{disposable as l,makeHandle as p}from"../core/handleUtils.js";import{MultiOriginJSONSupportMixin as u}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as d,whenOrAbort as y,onAbort as m}from"../core/promiseUtils.js";import{watch as h,sync as c}from"../core/reactiveUtils.js";import{join as f}from"../core/urlUtils.js";import{property as b,subclass as v}from"../core/accessorSupport/decorators.js";import g from"../geometry/SpatialReference.js";import S from"./Layer.js";import{APIKeyMixin as j}from"./mixins/APIKeyMixin.js";import{ArcGISService as L}from"./mixins/ArcGISService.js";import{BlendLayer as E}from"./mixins/BlendLayer.js";import{CustomParametersMixin as I}from"./mixins/CustomParametersMixin.js";import{EditBusLayer as F}from"./mixins/EditBusLayer.js";import{FeatureLayerBase as w}from"./mixins/FeatureLayerBase.js";import{OperationalLayer as T}from"./mixins/OperationalLayer.js";import{PortalLayer as x}from"./mixins/PortalLayer.js";import{RefreshableLayer as P}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as _}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as O}from"./mixins/TemporalLayer.js";import C from"./support/AnnotationFeatureSublayer.js";import{parse as A,cleanTitle as q,titleFromUrlAndName as D}from"./support/arcgisLayerUrl.js";import{barrierWeight as U,id as k,popupEnabled as M}from"./support/commonProperties.js";import{ensureLayerCredential as R,createQuery as G,getFieldDomain as N,hasDataChanged as Q}from"./support/featureLayerUtils.js";import{defineFieldProperties as H}from"./support/fieldProperties.js";import{fixTimeInfoFields as J}from"./support/fieldUtils.js";import{serviceSupportsSpatialReference as $}from"./support/versionUtils.js";import B from"../rest/support/Query.js";import{createPopupTemplate as K}from"../support/popupUtils.js";import{reader as V}from"../core/accessorSupport/decorators/reader.js";const W="annotation-feature-layer",Z=H(),z=a.ofType(C);let X=class extends(w(E(O(F(_(P(L(T(x(u(I(j(o(S)))))))))))))){constructor(e){super(e),this._sublayerLookup=new Map,this.barrierWeight="high",this.fields=null,this.fieldsIndex=null,this.operationalLayerType="ArcGISAnnotationLayer",this.outFields=null,this.popupEnabled=!0,this.popupTemplate=null,this.source=null,this.sublayers=new z,this.sublayerTitleMode="item-title",this.supportedSourceTypes=new Set(["Annotation Layer"]),this.type="annotation-feature",this._dataElementPromise=null,this.addHandles(h(()=>this.sublayers,(e,t)=>this._handleSublayersChange(e,t),c))}destroy(){this.source?.destroy()}load(e){const t=e?.signal,r=this.loadFromPortal({supportedTypes:["Feature Service"]},e).catch(d).then(async()=>{if(this.url&&null==this.layerId&&/FeatureServer|MapServer\/*$/i.test(this.url)){const e=await this._fetchFirstValidLayerId(t);null!=e&&(this.layerId=e)}if(!this.url)throw new n(`${W}:missing-url`,"AnnotationFeatureLayer must be created with a url");return this.initLayerProperties(await this.createGraphicsSource(t))}).then(()=>R(this,"load",e));return this.addResolvingPromise(r),Promise.resolve(this)}get editingEnabled(){return this._isOverridden("editingEnabled")?this._get("editingEnabled"):this.loaded&&null!=this.capabilities&&this.capabilities.operations.supportsEditing&&this.userHasEditingPrivileges}set editingEnabled(e){this._overrideIfSome("editingEnabled",e)}get effectiveEditingEnabled(){return!1}get defaultPopupTemplate(){return this.createPopupTemplate()}readSublayers(e,t){const r=new z(t.subtypes.map(({code:e})=>new C({subtypeCode:e})).reverse());if(this.visibleLayers){const e=new Set(this.visibleLayers);r.forEach(t=>{t.visible=e.has(t.subtypeCode)})}return r}readTitleFromService(e,t){const{url:r}=this,s=t.name||A(r)?.title;switch(this.sublayerTitleMode){case"item-title":if(r)return D(r,s);break;case"item-title-and-service-name":{let e=this.portalItem?.title;if(e&&e!==s)return e=q(e),s?`${e} - ${q(s)}`:e;break}}return s?q(s):void 0}readTitleFromPortalItem(e){return"item-title"===this.sublayerTitleMode?e:void 0}get visibleLayers(){return 0===this.sublayers.length?this._get("visibleLayers")??null:Array.from(new Set(this.sublayers?.toArray().filter(e=>e.visible).map(e=>e.subtypeCode).sort((e,t)=>e-t)??null))}set visibleLayers(e){this._set("visibleLayers",e)}createPopupTemplate(e){return K(this,e)}async createGraphicsSource(r){const s={stack:[],error:void 0,hasError:!1};try{const{default:t}=await y(import("./graphics/sources/FeatureLayerSource.js"),r),i=new t({layer:this,supportedSourceTypes:this.supportedSourceTypes});e(s,l(m(r,()=>i.cancelLoad())??p()),!1);return await i.load({signal:r}),i}catch(i){s.error=i,s.hasError=!0}finally{t(s)}}createQuery(){const e=G(this);return e.where=this.definitionExpression||"1=1",e}async fetchDataElement(e){if(this._dataElementPromise)return this._dataElementPromise;if(!this.url)throw new Error("InternalError: A URL is required to retrieve the data element for this layer.");const t=f(this.url,"queryDataElements"),r={f:"json",layers:this.layerId};return this._dataElementPromise=i(t,{...e,responseType:"json",query:r}).then(e=>{const t=e.data.layerDataElements,r=this.layerId,s=t.find(e=>e.layerId===r);if(!s)throw new n("fetchDataElement:not-available","A data element for this layer could not be retrieved.");return s.dataElement}),this._dataElementPromise}findSublayerForFeature(e){const t=this.fieldsIndex.get(this.subtypeField),r=e.attributes[t.name];return this.findSublayerForSubtypeCode(r)}findSublayerForSubtypeCode(e){return this._sublayerLookup.get(e)}getFieldDomain(e,t){return N(this,e,t,this.getField(e)?.domain??null)}async queryFeatures(e,t){const r=await this.load(),s=await r.source.queryFeatures(B.from(e)??r.createQuery(),t);if(s?.features)for(const i of s.features){const e=this.findSublayerForFeature(i);i.origin=e?.graphicOrigin,i.layer=i.sourceLayer=this}return s}async queryObjectIds(e,t){const r=await this.load();return r.source.queryObjectIds(B.from(e)??r.createQuery(),t)}async queryFeatureCount(e,t){const r=await this.load();return r.source.queryFeatureCount(B.from(e)??r.createQuery(),t)}async queryExtent(e,t){const r=await this.load();return r.source.queryExtent(B.from(e)??r.createQuery(),t)}serviceSupportsSpatialReference(e){return this.loaded&&$(this,e)}async initLayerProperties(e){this._set("source",e),e.sourceJSON&&(this.sourceJSON=e.sourceJSON,this.read(e.sourceJSON,{origin:"service",portalItem:this.portalItem,portal:this.portalItem?.portal,url:this.parsedUrl})),this._verifySource(),J(this.timeInfo,this.fieldsIndex)}async hasDataChanged(){return Q(this)}_verifySource(){if(this.version&&this.version<10.8)throw new n(W+":unsupported-version","The feature service must be version 10.8 or above.");const e=["ZOrder","AnnotationClassID","Element","SymbolID","Status"],t=e.filter(e=>!this.fieldsIndex.has(e));if(this.fieldsIndex.has("FeatureID")||this.fieldsIndex.has("FeatureGlobalID")||t.unshift("FeatureID","FeatureGlobalID"),t.length)throw new n(W+":missing-fields","There are missing fields to operate properly",{requiredFields:e,missingFields:t})}_fetchFirstValidLayerId(e){return i(this.url??"",{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e}).then(e=>{const t=e.data;if(!t)return;this.applyPreferredHost(t);const r=[...t.layers||[],...t.tables||[]];return r.find(({type:e})=>!e||this.supportedSourceTypes.has(e))?.id})}_handleSublayersChange(e,t){t&&(t.forEach(e=>{e.parent=null}),this.removeHandles("sublayers-owner"),this._sublayerLookup.clear()),e&&(e.forEach(e=>{e.parent=this,this._sublayerLookup.set(e.subtypeCode,e)}),this.addHandles([e.on("after-add",({item:e})=>{e.parent=this,this._sublayerLookup.set(e.subtypeCode,e)}),e.on("after-remove",({item:e})=>{e.parent=null,this._sublayerLookup.delete(e.subtypeCode)})],"sublayers-owner"))}};r([b({type:g,json:{origins:{service:{read:{source:"sourceSpatialReference"}}}}})],X.prototype,"attributeSpatialReference",void 0),r([b(U)],X.prototype,"barrierWeight",void 0),r([b({json:{write:!0}})],X.prototype,"editingEnabled",null),r([b({readOnly:!0})],X.prototype,"effectiveEditingEnabled",null),r([b({...Z.fields,readOnly:!0,json:{read:!1,origins:{service:{read:!0}}}})],X.prototype,"fields",void 0),r([b(Z.fieldsIndex)],X.prototype,"fieldsIndex",void 0),r([b(k)],X.prototype,"id",void 0),r([b({type:["ArcGISAnnotationLayer"]})],X.prototype,"operationalLayerType",void 0),r([b(Z.outFields)],X.prototype,"outFields",void 0),r([b(M)],X.prototype,"popupEnabled",void 0),r([b({type:s,json:{name:"popupInfo",write:!0}})],X.prototype,"popupTemplate",void 0),r([b({readOnly:!0})],X.prototype,"defaultPopupTemplate",null),r([b({clonable:!1,readOnly:!0})],X.prototype,"source",void 0),r([b({type:z})],X.prototype,"sublayers",void 0),r([V("service","sublayers",["subtypes"])],X.prototype,"readSublayers",null),r([b({type:String})],X.prototype,"sublayerTitleMode",void 0),r([V("service","title",["name"])],X.prototype,"readTitleFromService",null),r([V("portal-item","title")],X.prototype,"readTitleFromPortalItem",null),r([b({json:{read:!1},value:"annotation-feature",readOnly:!0})],X.prototype,"type",void 0),r([b({type:[Number],json:{write:{ignoreOrigin:!0}}})],X.prototype,"visibleLayers",null),X=r([v("esri.layers.AnnotationFeatureLayer")],X);const Y=X;export{Y as default};
2
+ import{__addDisposableResource as e,__disposeResources as t,__decorate as r}from"tslib";import i from"../PopupTemplate.js";import s from"../request.js";import{ClonableMixin as o}from"../core/Clonable.js";import a from"../core/Collection.js";import n from"../core/Error.js";import{disposable as l,makeHandle as p}from"../core/handleUtils.js";import{MultiOriginJSONSupportMixin as u}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as d,whenOrAbort as y,onAbort as m}from"../core/promiseUtils.js";import{watch as h,sync as c}from"../core/reactiveUtils.js";import{join as f}from"../core/urlUtils.js";import{property as b,subclass as v}from"../core/accessorSupport/decorators.js";import g from"../geometry/SpatialReference.js";import S from"./Layer.js";import{APIKeyMixin as j}from"./mixins/APIKeyMixin.js";import{ArcGISService as L}from"./mixins/ArcGISService.js";import{BlendLayer as F}from"./mixins/BlendLayer.js";import{CustomParametersMixin as E}from"./mixins/CustomParametersMixin.js";import{EditBusLayer as I}from"./mixins/EditBusLayer.js";import{FeatureLayerBase as w}from"./mixins/FeatureLayerBase.js";import{OperationalLayer as T}from"./mixins/OperationalLayer.js";import{PortalLayer as x}from"./mixins/PortalLayer.js";import{RefreshableLayer as P}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as _}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as O}from"./mixins/TemporalLayer.js";import C from"./support/AnnotationFeatureSublayer.js";import{parse as A,cleanTitle as q,titleFromUrlAndName as D}from"./support/arcgisLayerUrl.js";import{barrierWeight as U,id as k,popupEnabled as M}from"./support/commonProperties.js";import{ensureLayerCredential as R,createQuery as G,getFieldDomain as N,hasDataChanged as Q}from"./support/featureLayerUtils.js";import{defineFieldProperties as H}from"./support/fieldProperties.js";import{fixTimeInfoFields as J}from"./support/fieldUtils.js";import{serviceSupportsSpatialReference as $}from"./support/versionUtils.js";import B from"../rest/support/Query.js";import{createPopupTemplate as K}from"../support/popupUtils.js";import{reader as V}from"../core/accessorSupport/decorators/reader.js";const W="annotation-feature-layer",Z=H(),z=a.ofType(C);let X=class extends(w(F(O(I(_(P(L(T(x(u(E(j(o(S)))))))))))))){constructor(e){super(e),this._sublayerLookup=new Map,this.barrierWeight="high",this.elementField="element",this.fields=null,this.fieldsIndex=null,this.operationalLayerType="ArcGISAnnotationLayer",this.outFields=null,this.popupEnabled=!0,this.popupTemplate=null,this.source=null,this.sublayers=new z,this.sublayerTitleMode="item-title",this.supportedSourceTypes=new Set(["Annotation Layer"]),this.type="annotation-feature",this._dataElementPromise=null,this.addHandles(h(()=>this.sublayers,(e,t)=>this._handleSublayersChange(e,t),c))}destroy(){this.source?.destroy()}load(e){const t=e?.signal,r=this.loadFromPortal({supportedTypes:["Feature Service"]},e).catch(d).then(async()=>{if(this.url&&null==this.layerId&&/FeatureServer|MapServer\/*$/i.test(this.url)){const e=await this._fetchFirstValidLayerId(t);null!=e&&(this.layerId=e)}if(!this.url)throw new n(`${W}:missing-url`,"AnnotationFeatureLayer must be created with a url");return this.initLayerProperties(await this.createGraphicsSource(t))}).then(()=>R(this,"load",e));return this.addResolvingPromise(r),Promise.resolve(this)}get editingEnabled(){return this._isOverridden("editingEnabled")?this._get("editingEnabled"):this.loaded&&null!=this.capabilities&&this.capabilities.operations.supportsEditing&&this.userHasEditingPrivileges}set editingEnabled(e){this._overrideIfSome("editingEnabled",e)}get effectiveEditingEnabled(){return!1}get defaultPopupTemplate(){return this.createPopupTemplate()}readSublayers(e,t){const r=new z(t.subtypes.map(({code:e})=>new C({subtypeCode:e})).reverse());if(this.visibleLayers){const e=new Set(this.visibleLayers);r.forEach(t=>{t.visible=e.has(t.subtypeCode)})}return r}readTitleFromService(e,t){const{url:r}=this,i=t.name||A(r)?.title;switch(this.sublayerTitleMode){case"item-title":if(r)return D(r,i);break;case"item-title-and-service-name":{let e=this.portalItem?.title;if(e&&e!==i)return e=q(e),i?`${e} - ${q(i)}`:e;break}}return i?q(i):void 0}readTitleFromPortalItem(e){return"item-title"===this.sublayerTitleMode?e:void 0}get visibleLayers(){return 0===this.sublayers.length?this._get("visibleLayers")??null:Array.from(new Set(this.sublayers?.toArray().filter(e=>e.visible).map(e=>e.subtypeCode).sort((e,t)=>e-t)??null))}set visibleLayers(e){this._set("visibleLayers",e)}createPopupTemplate(e){return K(this,e)}async createGraphicsSource(r){const i={stack:[],error:void 0,hasError:!1};try{const{default:t}=await y(import("./graphics/sources/FeatureLayerSource.js"),r),s=new t({layer:this,supportedSourceTypes:this.supportedSourceTypes});e(i,l(m(r,()=>s.cancelLoad())??p()),!1);return await s.load({signal:r}),s}catch(s){i.error=s,i.hasError=!0}finally{t(i)}}createQuery(){const e=G(this);return e.where=this.definitionExpression||"1=1",e}async fetchDataElement(e){if(this._dataElementPromise)return this._dataElementPromise;if(!this.url)throw new Error("InternalError: A URL is required to retrieve the data element for this layer.");const t=f(this.url,"queryDataElements"),r={f:"json",layers:this.layerId};return this._dataElementPromise=s(t,{...e,responseType:"json",query:r}).then(e=>{const t=e.data.layerDataElements,r=this.layerId,i=t.find(e=>e.layerId===r);if(!i)throw new n("fetchDataElement:not-available","A data element for this layer could not be retrieved.");return i.dataElement}),this._dataElementPromise}findSublayerForFeature(e){const t=this.fieldsIndex.get(this.subtypeField),r=e.attributes[t.name];return this.findSublayerForSubtypeCode(r)}findSublayerForSubtypeCode(e){return this._sublayerLookup.get(e)}getFieldDomain(e,t){return N(this,e,t,this.getField(e)?.domain??null)}async queryFeatures(e,t){const r=await this.load(),i=await r.source.queryFeatures(B.from(e)??r.createQuery(),t);if(i?.features)for(const s of i.features){const e=this.findSublayerForFeature(s);s.origin=e?.graphicOrigin,s.layer=s.sourceLayer=this}return i}async queryObjectIds(e,t){const r=await this.load();return r.source.queryObjectIds(B.from(e)??r.createQuery(),t)}async queryFeatureCount(e,t){const r=await this.load();return r.source.queryFeatureCount(B.from(e)??r.createQuery(),t)}async queryExtent(e,t){const r=await this.load();return r.source.queryExtent(B.from(e)??r.createQuery(),t)}serviceSupportsSpatialReference(e){return this.loaded&&$(this,e)}async initLayerProperties(e){this._set("source",e),e.sourceJSON&&(this.sourceJSON=e.sourceJSON,this.read(e.sourceJSON,{origin:"service",portalItem:this.portalItem,portal:this.portalItem?.portal,url:this.parsedUrl})),this._verifySource(),J(this.timeInfo,this.fieldsIndex)}async hasDataChanged(){return Q(this)}_verifySource(){if(this.version&&this.version<10.8)throw new n(W+":unsupported-version","The feature service must be version 10.8 or above.");const e=["ZOrder","AnnotationClassID","Element","SymbolID","Status"],t=e.filter(e=>!this.fieldsIndex.has(e));if(this.fieldsIndex.has("FeatureID")||this.fieldsIndex.has("FeatureGlobalID")||t.unshift("FeatureID","FeatureGlobalID"),t.length)throw new n(W+":missing-fields","There are missing fields to operate properly",{requiredFields:e,missingFields:t})}_fetchFirstValidLayerId(e){return s(this.url??"",{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e}).then(e=>{const t=e.data;if(!t)return;this.applyPreferredHost(t);const r=[...t.layers||[],...t.tables||[]];return r.find(({type:e})=>!e||this.supportedSourceTypes.has(e))?.id})}_handleSublayersChange(e,t){t&&(t.forEach(e=>{e.parent=null}),this.removeHandles("sublayers-owner"),this._sublayerLookup.clear()),e&&(e.forEach(e=>{e.parent=this,this._sublayerLookup.set(e.subtypeCode,e)}),this.addHandles([e.on("after-add",({item:e})=>{e.parent=this,this._sublayerLookup.set(e.subtypeCode,e)}),e.on("after-remove",({item:e})=>{e.parent=null,this._sublayerLookup.delete(e.subtypeCode)})],"sublayers-owner"))}};r([b({type:g,json:{origins:{service:{read:{source:"sourceSpatialReference"}}}}})],X.prototype,"attributeSpatialReference",void 0),r([b(U)],X.prototype,"barrierWeight",void 0),r([b({json:{write:!0}})],X.prototype,"editingEnabled",null),r([b({readOnly:!0})],X.prototype,"elementField",void 0),r([b({readOnly:!0})],X.prototype,"effectiveEditingEnabled",null),r([b({...Z.fields,readOnly:!0,json:{read:!1,origins:{service:{read:!0}}}})],X.prototype,"fields",void 0),r([b(Z.fieldsIndex)],X.prototype,"fieldsIndex",void 0),r([b(k)],X.prototype,"id",void 0),r([b({type:["ArcGISAnnotationLayer"]})],X.prototype,"operationalLayerType",void 0),r([b(Z.outFields)],X.prototype,"outFields",void 0),r([b(M)],X.prototype,"popupEnabled",void 0),r([b({type:i,json:{name:"popupInfo",write:!0}})],X.prototype,"popupTemplate",void 0),r([b({readOnly:!0})],X.prototype,"defaultPopupTemplate",null),r([b({clonable:!1,readOnly:!0})],X.prototype,"source",void 0),r([b({type:z})],X.prototype,"sublayers",void 0),r([V("service","sublayers",["subtypes"])],X.prototype,"readSublayers",null),r([b({type:String})],X.prototype,"sublayerTitleMode",void 0),r([V("service","title",["name"])],X.prototype,"readTitleFromService",null),r([V("portal-item","title")],X.prototype,"readTitleFromPortalItem",null),r([b({json:{read:!1},value:"annotation-feature",readOnly:!0})],X.prototype,"type",void 0),r([b({type:[Number],json:{write:{ignoreOrigin:!0}}})],X.prototype,"visibleLayers",null),X=r([v("esri.layers.AnnotationFeatureLayer")],X);const Y=X;export{Y as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__addDisposableResource as e,__disposeResources as r,__decorate as t}from"tslib";import i from"../PopupTemplate.js";import s from"../request.js";import{ClonableMixin as o}from"../core/Clonable.js";import a from"../core/Error.js";import{disposable as n,makeHandle as l}from"../core/handleUtils.js";import{MultiOriginJSONSupportMixin as p}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as u,whenOrAbort as d,onAbort as m}from"../core/promiseUtils.js";import{join as c}from"../core/urlUtils.js";import{property as h,subclass as y}from"../core/accessorSupport/decorators.js";import f from"../geometry/SpatialReference.js";import E from"../graphic/DimensionFeatureGraphicOrigin.js";import g from"./Layer.js";import{APIKeyMixin as v}from"./mixins/APIKeyMixin.js";import{ArcGISService as j}from"./mixins/ArcGISService.js";import{BlendLayer as S}from"./mixins/BlendLayer.js";import{CustomParametersMixin as T}from"./mixins/CustomParametersMixin.js";import{FeatureLayerBase as I}from"./mixins/FeatureLayerBase.js";import{OperationalLayer as b}from"./mixins/OperationalLayer.js";import{PortalLayer as L}from"./mixins/PortalLayer.js";import{RefreshableLayer as P}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as w}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as F}from"./mixins/TemporalLayer.js";import{parse as D,cleanTitle as x,titleFromUrlAndName as O}from"./support/arcgisLayerUrl.js";import{barrierWeight as M,id as q,popupEnabled as N}from"./support/commonProperties.js";import{ensureLayerCredential as G,createQuery as U,getFieldDomain as _,hasDataChanged as A}from"./support/featureLayerUtils.js";import{defineFieldProperties as R}from"./support/fieldProperties.js";import{fixTimeInfoFields as X}from"./support/fieldUtils.js";import{serviceSupportsSpatialReference as Y}from"./support/versionUtils.js";import C from"../rest/support/Query.js";import{createPopupTemplate as Q}from"../support/popupUtils.js";import{reader as H}from"../core/accessorSupport/decorators/reader.js";const J="dimension-feature-layer",k=R();let B=class extends(I(S(F(w(P(j(b(L(p(T(v(o(g))))))))))))){constructor(e){super(e),this.barrierWeight="high",this.fields=null,this.fieldsIndex=null,this.graphicOrigin=new E(this),this.operationalLayerType="ArcGISDimensionLayer",this.outFields=null,this.popupEnabled=!0,this.popupTemplate=null,this.source=null,this.sublayerTitleMode="item-title",this.supportedSourceTypes=new Set(["Dimension Layer"]),this.type="dimension-feature",this._dataElementPromise=null}destroy(){this.source?.destroy()}load(e){const r=e?.signal,t=this.loadFromPortal({supportedTypes:["Feature Service"]},e).catch(u).then(async()=>{if(this.url&&null==this.layerId&&/FeatureServer|MapServer\/*$/i.test(this.url)){const e=await this._fetchFirstValidLayerId(r);null!=e&&(this.layerId=e)}if(!this.url)throw new a(`${J}:missing-url`,"DimensionFeatureLayer must be created with a url");return this.initLayerProperties(await this.createGraphicsSource(r))}).then(()=>G(this,"load",e));return this.addResolvingPromise(t),Promise.resolve(this)}get editingEnabled(){return this._isOverridden("editingEnabled")?this._get("editingEnabled"):this.loaded&&null!=this.capabilities&&this.capabilities.operations.supportsEditing&&this.userHasEditingPrivileges}set editingEnabled(e){this._overrideIfSome("editingEnabled",e)}get effectiveEditingEnabled(){return!1}get defaultPopupTemplate(){return this.createPopupTemplate()}readTitleFromService(e,r){const{url:t}=this,i=r.name||D(t)?.title;switch(this.sublayerTitleMode){case"item-title":if(t)return O(t,i);break;case"item-title-and-service-name":{let e=this.portalItem?.title;if(e&&e!==i)return e=x(e),i?`${e} - ${x(i)}`:e;break}}return i?x(i):void 0}readTitleFromPortalItem(e){return"item-title"===this.sublayerTitleMode?e:void 0}createPopupTemplate(e){return Q(this,e)}async createGraphicsSource(t){const i={stack:[],error:void 0,hasError:!1};try{const{default:r}=await d(import("./graphics/sources/FeatureLayerSource.js"),t),s=new r({layer:this,supportedSourceTypes:this.supportedSourceTypes});e(i,n(m(t,()=>s.cancelLoad())??l()),!1);return await s.load({signal:t}),s}catch(s){i.error=s,i.hasError=!0}finally{r(i)}}createQuery(){const e=U(this);return e.where=this.definitionExpression||"1=1",e}async fetchDataElement(e){if(this._dataElementPromise)return this._dataElementPromise;if(!this.url)throw new Error("InternalError: A URL is required to retrieve the data element for this layer.");const r=c(this.url,"queryDataElements"),t={f:"json",layers:this.layerId};return this._dataElementPromise=s(r,{...e,responseType:"json",query:t}).then(e=>{const r=e.data.layerDataElements,t=this.layerId,i=r.find(e=>e.layerId===t);if(!i)throw new a("fetchDataElement:not-available","A data element for this layer could not be retrieved.");return i.dataElement}),this._dataElementPromise}getFieldDomain(e,r){return _(this,e,r,this.getField(e)?.domain??null)}async queryFeatures(e,r){const t=await this.load(),i=await t.source.queryFeatures(C.from(e)??t.createQuery(),r),s=this.graphicOrigin;if(i?.features)for(const o of i.features)o.layer=o.sourceLayer=t,o.origin=s;return i}async queryObjectIds(e,r){const t=await this.load();return t.source.queryObjectIds(C.from(e)??t.createQuery(),r)}async queryFeatureCount(e,r){const t=await this.load();return t.source.queryFeatureCount(C.from(e)??t.createQuery(),r)}async queryExtent(e,r){const t=await this.load();return t.source.queryExtent(C.from(e)??t.createQuery(),r)}serviceSupportsSpatialReference(e){return this.loaded&&Y(this,e)}async initLayerProperties(e){this._set("source",e),e.sourceJSON&&(this.sourceJSON=e.sourceJSON,this.read(e.sourceJSON,{origin:"service",portalItem:this.portalItem,portal:this.portalItem?.portal,url:this.parsedUrl})),this._verifySource(),X(this.timeInfo,this.fieldsIndex)}async hasDataChanged(){return A(this)}_verifySource(){if(this.version&&this.version<10.8)throw new a(J+":unsupported-version","The feature service must be version 10.8 or above.");const e=["DIMLENGTH","BEGINX","BEGINY","ENDX","ENDY","DIMX","DIMY","TEXTX","TEXTY","DIMTYPE","EXTANGLE","STYLEID","USECUSTOMLENGTH","CUSTOMLENGTH","DIMDISPLAY","EXTDISPLAY","MARKERDISPLAY","TEXTANGLE"],r=e.filter(e=>!this.fieldsIndex.has(e));if(r.length)throw new a(J+":missing-fields","There are missing fields to operate properly",{requiredFields:e,missingFields:r})}_fetchFirstValidLayerId(e){return s(this.url??"",{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e}).then(e=>{const r=e.data;if(!r)return;this.applyPreferredHost(r);const t=[...r.layers||[],...r.tables||[]];return t.find(({type:e})=>!e||this.supportedSourceTypes.has(e))?.id})}};t([h({type:f,json:{origins:{service:{read:{source:"sourceSpatialReference"}}}}})],B.prototype,"attributeSpatialReference",void 0),t([h(M)],B.prototype,"barrierWeight",void 0),t([h({json:{write:!0}})],B.prototype,"editingEnabled",null),t([h({readOnly:!0})],B.prototype,"effectiveEditingEnabled",null),t([h({...k.fields,readOnly:!0,json:{read:!1,origins:{service:{read:!0}}}})],B.prototype,"fields",void 0),t([h(k.fieldsIndex)],B.prototype,"fieldsIndex",void 0),t([h({readOnly:!0,clonable:!1})],B.prototype,"graphicOrigin",void 0),t([h(q)],B.prototype,"id",void 0),t([h({type:["ArcGISDimensionLayer"]})],B.prototype,"operationalLayerType",void 0),t([h(k.outFields)],B.prototype,"outFields",void 0),t([h(N)],B.prototype,"popupEnabled",void 0),t([h({type:i,json:{name:"popupInfo",write:!0}})],B.prototype,"popupTemplate",void 0),t([h({readOnly:!0})],B.prototype,"defaultPopupTemplate",null),t([h({clonable:!1,readOnly:!0})],B.prototype,"source",void 0),t([h({type:String})],B.prototype,"sublayerTitleMode",void 0),t([H("service","title",["name"])],B.prototype,"readTitleFromService",null),t([H("portal-item","title")],B.prototype,"readTitleFromPortalItem",null),t([h({json:{read:!1},value:"dimension-feature",readOnly:!0})],B.prototype,"type",void 0),B=t([y("esri.layers.DimensionFeatureLayer")],B);const $=B;export{$ as default};
2
+ import{__addDisposableResource as e,__disposeResources as r,__decorate as t}from"tslib";import i from"../PopupTemplate.js";import s from"../request.js";import{ClonableMixin as o}from"../core/Clonable.js";import a from"../core/Error.js";import{disposable as n,makeHandle as l}from"../core/handleUtils.js";import{MultiOriginJSONSupportMixin as p}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as u,whenOrAbort as d,onAbort as m}from"../core/promiseUtils.js";import{join as c}from"../core/urlUtils.js";import{property as h,subclass as y}from"../core/accessorSupport/decorators.js";import f from"../geometry/SpatialReference.js";import E from"../graphic/DimensionFeatureGraphicOrigin.js";import T from"./Layer.js";import{APIKeyMixin as I}from"./mixins/APIKeyMixin.js";import{ArcGISService as v}from"./mixins/ArcGISService.js";import{BlendLayer as S}from"./mixins/BlendLayer.js";import{CustomParametersMixin as g}from"./mixins/CustomParametersMixin.js";import{FeatureLayerBase as j}from"./mixins/FeatureLayerBase.js";import{OperationalLayer as L}from"./mixins/OperationalLayer.js";import{PortalLayer as b}from"./mixins/PortalLayer.js";import{RefreshableLayer as D}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as P}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as w}from"./mixins/TemporalLayer.js";import{parse as F,cleanTitle as O,titleFromUrlAndName as M}from"./support/arcgisLayerUrl.js";import{barrierWeight as N,id as x,popupEnabled as G}from"./support/commonProperties.js";import{ensureLayerCredential as A,createQuery as X,getFieldDomain as Y,hasDataChanged as U}from"./support/featureLayerUtils.js";import{defineFieldProperties as q}from"./support/fieldProperties.js";import{fixTimeInfoFields as _}from"./support/fieldUtils.js";import{serviceSupportsSpatialReference as R}from"./support/versionUtils.js";import C from"../rest/support/Query.js";import{createPopupTemplate as H}from"../support/popupUtils.js";import{reader as B}from"../core/accessorSupport/decorators/reader.js";const Q="dimension-feature-layer",J=q();let k=class extends(j(S(w(P(D(v(L(b(p(g(I(o(T))))))))))))){constructor(e){super(e),this.barrierWeight="high",this.fields=null,this.fieldsIndex=null,this.graphicOrigin=new E(this),this.operationalLayerType="ArcGISDimensionLayer",this.outFields=null,this.popupEnabled=!0,this.popupTemplate=null,this.source=null,this.sublayerTitleMode="item-title",this.supportedSourceTypes=new Set(["Dimension Layer"]),this.symbolFields=["STYLEID","BEGINX","BEGINY","ENDX","ENDY","DIMDISPLAY","EXTDISPLAY","MARKERDISPLAY","DIMX","DIMY","TEXTX","TEXTY","DIMLENGTH","DIMTYPE","EXTANGLE","TEXTANGLE","USECUSTOMLENGTH","CUSTOMLENGTH "],this.type="dimension-feature",this._dataElementPromise=null}destroy(){this.source?.destroy()}load(e){const r=e?.signal,t=this.loadFromPortal({supportedTypes:["Feature Service"]},e).catch(u).then(async()=>{if(this.url&&null==this.layerId&&/FeatureServer|MapServer\/*$/i.test(this.url)){const e=await this._fetchFirstValidLayerId(r);null!=e&&(this.layerId=e)}if(!this.url)throw new a(`${Q}:missing-url`,"DimensionFeatureLayer must be created with a url");return this.initLayerProperties(await this.createGraphicsSource(r))}).then(()=>A(this,"load",e));return this.addResolvingPromise(t),Promise.resolve(this)}get editingEnabled(){return this._isOverridden("editingEnabled")?this._get("editingEnabled"):this.loaded&&null!=this.capabilities&&this.capabilities.operations.supportsEditing&&this.userHasEditingPrivileges}set editingEnabled(e){this._overrideIfSome("editingEnabled",e)}get effectiveEditingEnabled(){return!1}get defaultPopupTemplate(){return this.createPopupTemplate()}readTitleFromService(e,r){const{url:t}=this,i=r.name||F(t)?.title;switch(this.sublayerTitleMode){case"item-title":if(t)return M(t,i);break;case"item-title-and-service-name":{let e=this.portalItem?.title;if(e&&e!==i)return e=O(e),i?`${e} - ${O(i)}`:e;break}}return i?O(i):void 0}readTitleFromPortalItem(e){return"item-title"===this.sublayerTitleMode?e:void 0}createPopupTemplate(e){return H(this,e)}async createGraphicsSource(t){const i={stack:[],error:void 0,hasError:!1};try{const{default:r}=await d(import("./graphics/sources/FeatureLayerSource.js"),t),s=new r({layer:this,supportedSourceTypes:this.supportedSourceTypes});e(i,n(m(t,()=>s.cancelLoad())??l()),!1);return await s.load({signal:t}),s}catch(s){i.error=s,i.hasError=!0}finally{r(i)}}createQuery(){const e=X(this);return e.where=this.definitionExpression||"1=1",e}async fetchDataElement(e){if(this._dataElementPromise)return this._dataElementPromise;if(!this.url)throw new Error("InternalError: A URL is required to retrieve the data element for this layer.");const r=c(this.url,"queryDataElements"),t={f:"json",layers:this.layerId};return this._dataElementPromise=s(r,{...e,responseType:"json",query:t}).then(e=>{const r=e.data.layerDataElements,t=this.layerId,i=r.find(e=>e.layerId===t);if(!i)throw new a("fetchDataElement:not-available","A data element for this layer could not be retrieved.");return i.dataElement}),this._dataElementPromise}getFieldDomain(e,r){return Y(this,e,r,this.getField(e)?.domain??null)}async queryFeatures(e,r){const t=await this.load(),i=await t.source.queryFeatures(C.from(e)??t.createQuery(),r),s=this.graphicOrigin;if(i?.features)for(const o of i.features)o.layer=o.sourceLayer=t,o.origin=s;return i}async queryObjectIds(e,r){const t=await this.load();return t.source.queryObjectIds(C.from(e)??t.createQuery(),r)}async queryFeatureCount(e,r){const t=await this.load();return t.source.queryFeatureCount(C.from(e)??t.createQuery(),r)}async queryExtent(e,r){const t=await this.load();return t.source.queryExtent(C.from(e)??t.createQuery(),r)}serviceSupportsSpatialReference(e){return this.loaded&&R(this,e)}async initLayerProperties(e){this._set("source",e),e.sourceJSON&&(this.sourceJSON=e.sourceJSON,this.read(e.sourceJSON,{origin:"service",portalItem:this.portalItem,portal:this.portalItem?.portal,url:this.parsedUrl})),this._verifySource(),_(this.timeInfo,this.fieldsIndex)}async hasDataChanged(){return U(this)}_verifySource(){if(this.version&&this.version<10.8)throw new a(Q+":unsupported-version","The feature service must be version 10.8 or above.");const e=["DIMLENGTH","BEGINX","BEGINY","ENDX","ENDY","DIMX","DIMY","TEXTX","TEXTY","DIMTYPE","EXTANGLE","STYLEID","USECUSTOMLENGTH","CUSTOMLENGTH","DIMDISPLAY","EXTDISPLAY","MARKERDISPLAY","TEXTANGLE"],r=e.filter(e=>!this.fieldsIndex.has(e));if(r.length)throw new a(Q+":missing-fields","There are missing fields to operate properly",{requiredFields:e,missingFields:r})}_fetchFirstValidLayerId(e){return s(this.url??"",{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e}).then(e=>{const r=e.data;if(!r)return;this.applyPreferredHost(r);const t=[...r.layers||[],...r.tables||[]];return t.find(({type:e})=>!e||this.supportedSourceTypes.has(e))?.id})}};t([h({type:f,json:{origins:{service:{read:{source:"sourceSpatialReference"}}}}})],k.prototype,"attributeSpatialReference",void 0),t([h(N)],k.prototype,"barrierWeight",void 0),t([h({json:{write:!0}})],k.prototype,"editingEnabled",null),t([h({readOnly:!0})],k.prototype,"effectiveEditingEnabled",null),t([h({...J.fields,readOnly:!0,json:{read:!1,origins:{service:{read:!0}}}})],k.prototype,"fields",void 0),t([h(J.fieldsIndex)],k.prototype,"fieldsIndex",void 0),t([h({readOnly:!0,clonable:!1})],k.prototype,"graphicOrigin",void 0),t([h(x)],k.prototype,"id",void 0),t([h({type:["ArcGISDimensionLayer"]})],k.prototype,"operationalLayerType",void 0),t([h(J.outFields)],k.prototype,"outFields",void 0),t([h(G)],k.prototype,"popupEnabled",void 0),t([h({type:i,json:{name:"popupInfo",write:!0}})],k.prototype,"popupTemplate",void 0),t([h({readOnly:!0})],k.prototype,"defaultPopupTemplate",null),t([h({clonable:!1,readOnly:!0})],k.prototype,"source",void 0),t([h({type:String})],k.prototype,"sublayerTitleMode",void 0),t([h({readOnly:!0})],k.prototype,"symbolFields",void 0),t([B("service","title",["name"])],k.prototype,"readTitleFromService",null),t([B("portal-item","title")],k.prototype,"readTitleFromPortalItem",null),t([h({json:{read:!1},value:"dimension-feature",readOnly:!0})],k.prototype,"type",void 0),k=t([y("esri.layers.DimensionFeatureLayer")],k);const K=k;export{K 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 t from"../../PopupTemplate.js";import r from"../../core/Error.js";import{clone as i}from"../../core/lang.js";import o from"../../core/Logger.js";import{MultiOriginJSONSupportMixin as s}from"../../core/MultiOriginJSONSupport.js";import{property as n,subclass as a}from"../../core/accessorSupport/decorators.js";import"../../core/workers/workers.js";import p from"../../form/FormTemplate.js";import l from"../../geometry/Extent.js";import u from"../../geometry/Point.js";import d from"../../geometry/Polygon.js";import y from"../../geometry/Polyline.js";import{initializeProjection as h,project as m}from"../../geometry/projectionUtils.js";import g from"../../geometry/SpatialReference.js";import{wgs84 as c}from"../../geometry/support/spatialReferenceUtils.js";import{featureGeometryTypeKebabDictionary as f}from"../../geometry/support/typeUtils.js";import b from"../../graphic/KnowledgeGraphGraphicOrigin.js";import w from"../../graphic/LinkChartGraphicOrigin.js";import j from"../Layer.js";import T from"../graphics/data/FeatureStore.js";import{QueryEngine as v}from"../graphics/data/QueryEngine.js";import{createDrawingInfo as E}from"../graphics/sources/support/clientSideDefaults.js";import{systemOidFieldName as I,systemAggregationCountFieldName as O,systemIsSpatialFieldName as S,systemLayoutGeometryFieldName as L,systemOriginIdFieldName as F,systemDestinationIdFieldName as N}from"./constants.js";import{KnowledgeGraphSublayerBase as x}from"./KnowledgeGraphSublayerBase.js";import{createCapabilitiesFromKnowledgeGraph as _,createDefaultKGSLFormTemplate as Q,getDisplayLabelProperty as C,getLinkChartDefaultLabelingInfo as R,getMapDefaultLabelingInfo as P,getKGSublayerSymbolColor as k,getDefaultLCRelationshipSublayerSymbol as M,createDefaultKGSLFeatureTemplates as A,convertLayerEditsToGraphEdits as G,convertGraphEditsResultToFeatureEdits as D}from"./layerUtils.js";import{BlendLayer as J,blendModeProperty as q,effectProperty as U}from"../mixins/BlendLayer.js";import{DisplayFilteredLayer as H,displayFilterEnabledProperty as Z,displayFilterInfoProperty as B}from"../mixins/DisplayFilteredLayer.js";import{FeatureEffectLayer as K,featureEffectProperty as V}from"../mixins/FeatureEffectLayer.js";import{FeatureReductionLayer as W}from"../mixins/FeatureReductionLayer.js";import{OrderedLayer as Y,orderByProperty as z}from"../mixins/OrderedLayer.js";import{RefreshableLayer as X}from"../mixins/RefreshableLayer.js";import{ScaleRangeLayer as $}from"../mixins/ScaleRangeLayer.js";import{TemporalLayer as ee,useViewTimeProperty as te}from"../mixins/TemporalLayer.js";import{legendEnabled as re,maxScale as ie,minScale as oe,opacity as se,popupEnabled as ne}from"../support/commonProperties.js";import{featureReductionProperty as ae}from"../support/featureReductionUtils.js";import pe from"../support/FeatureTemplate.js";import le from"../support/Field.js";import{fixRendererFields as ue,fixTimeInfoFields as de}from"../support/fieldUtils.js";import ye from"../support/LabelClass.js";import{reader as he}from"../support/labelingInfo.js";import me from"../support/TimeInfo.js";import ge from"../../renderers/SimpleRenderer.js";import{fromJSON as ce}from"../../renderers/support/jsonUtils.js";import{rendererTypes as fe}from"../../renderers/support/typeUtils.js";import{executeApplyEdits as be}from"../../rest/knowledgeGraphService.js";import we from"../../rest/support/FeatureSet.js";import je from"../../rest/support/Query.js";import{createPopupTemplate as Te}from"../../support/popupUtils.js";import ve from"../../symbols/support/ElevationInfo.js";import{applyColorToSymbol as Ee}from"../../symbols/support/utils.js";import Ie from"../../core/workers/RemoteClient.js";import{writer as Oe}from"../../core/accessorSupport/decorators/writer.js";function Se(e){if(!e.json)return e;e.json.write=Le(e.json.write);const t=e.json.origins;if(!t)return e;let r;for(r in t){const e=t[r];e&&(e.write=Le(e.write))}return e}function Le(e){return"object"==typeof e&&e?(!1!==e.enabled&&(e.overridePolicy=Fe(e)),e):!0===e?Ne():e}function Fe(e){const{target:t,writer:r,overridePolicy:i,...o}=e;return function(e,t){const r=xe.call(this,e,t);return r.enabled?{...o,...r}:r}}function Ne(){return{overridePolicy:xe}}function xe(e,t){const r=!!this.geometryType;let i={enabled:r};return r&&(i={...i,..._e.call(this,e,t)}),i}function _e(e,t){return{ignoreOrigin:this.originIdOf(t)>0}}let Qe=class extends(x(H(W(K(J(Y(ee($(X(s(j))))))))))){constructor(e){super(e),this.blendMode="normal",this.charts=null,this.definitionExpression=null,this.displayFilterEnabled=!0,this.displayFilterInfo=null,this.effect=null,this.elevationInfo=null,this.featureEffect=null,this.graphType=null,this.labelsVisible=!0,this.layerType=null,this.legendEnabled=!0,this.maxScale=0,this.minScale=0,this.objectIdField=I,this.objectType=null,this.opacity=1,this.orderBy=null,this.parent=null,this.parentCompositeLayer=null,this.persistenceEnabled=!0,this.popupEnabled=!0,this.popupTemplate=null,this.refreshInterval=0,this.source={openPorts:()=>this.load().then(()=>{const e=new MessageChannel;return new Ie(e.port1,{channel:e,client:{queryFeatures:(e,t={})=>{const r=je.fromJSON(e);return this.queryFeaturesJSON(r,t)}}}),[e.port2]})},this.type="knowledge-graph-sublayer",this.useViewTime=!0,this.visible=!0}get capabilities(){return this.parent?this.parent.sublayerCapabilities:_(null)}get isTable(){return"link-chart"!==this.parentCompositeLayer?.type&&null==this.geometryFieldName}get defaultPopupTemplate(){return this.createPopupTemplate()}get editingEnabled(){return this.capabilities.operations.supportsEditing&&this.userHasEditingPrivileges}set editingEnabled(e){this._overrideIfSome("editingEnabled",e)}get effectiveCapabilities(){const e=i(this.capabilities),{operations:t,editing:r}=e;return this.userHasUpdateItemPrivileges&&(t.supportsAdd=t.supportsDelete=t.supportsEditing=t.supportsQuery=t.supportsUpdate=r.supportsDeleteByOthers=r.supportsGeometryUpdate=r.supportsUpdateByOthers=!0),this.userHasFullEditingPrivileges&&t.supportsEditing&&(t.supportsAdd=t.supportsDelete=t.supportsUpdate=r.supportsGeometryUpdate=!0),e}get effectiveEditingEnabled(){return this.userHasUpdateItemPrivileges||this.editingEnabled}set featureReduction(e){const t=this._normalizeFeatureReduction(e);this._set("featureReduction",t)}get fields(){const e=[],t=new Map;for(const r of this.parent?.knowledgeGraph.dataModel.domains??[])t.set(r.name,r);return this.objectType?.properties?.forEach(r=>{const i="esriFieldTypeOID"===r.fieldType?"esriFieldTypeInteger":r.fieldType,o=le.fromJSON({name:r.name,type:i,alias:r.alias,defaultValue:r.defaultValue,editable:r.editable,nullable:r.nullable,domain:r.domain&&t.has(r.domain)?t.get(r.domain).toJSON():void 0});e.push(o)}),e.push(le.fromJSON({name:this.objectIdField,type:"esriFieldTypeString",alias:this.objectIdField,editable:!1}),le.fromJSON({name:O,type:"esriFieldTypeInteger",alias:O,editable:!1}),le.fromJSON({name:S,type:"esriFieldTypeInteger",alias:S,editable:!1})),e}get formTemplate(){return this._isOverridden("formTemplate")?this._get("formTemplate"):Q(this)}set formTemplate(e){this._overrideIfSome("formTemplate",e)}get geometryType(){if("link-chart"===this.parentCompositeLayer?.type)return"relationship"===this.graphType?"polyline":"point";const e=this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name),t=e?.geometryType;return t&&"esriGeometryNull"!==t?f.fromJSON(t):null}get geometryFieldName(){if("link-chart"===this.parentCompositeLayer?.type)return L;const e=this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name);return e?.name??null}get graphicOrigin(){if(!this.parent)return null;switch(this.parent.type){case"knowledge-graph":return new b(this.parent,this);case"link-chart":return new w(this.parent,this)}}get graphTypeName(){return this.objectType?.name}set graphTypeName(e){this._set("graphTypeName",e)}get hasM(){const e=this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name),t=e?.name,r=t?this.objectType?.properties?.[t]:null;return r?.hasM??!1}get hasZ(){const e=this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name),t=e?.name,r=t?this.objectType?.properties?.[t]:null;return r?.hasZ??!1}set labelingInfo(e){this._set("labelingInfo",e)}get labelingInfo(){if(this._isOverridden("labelingInfo"))return this._get("labelingInfo");if(!this.objectType||!this.parentCompositeLayer||!this.graphTypeName)return null;const e=this.objectType.properties?C(this.objectType.properties):"ESRI__ID";return"link-chart"===this.parentCompositeLayer.type?R(this.graphType,this.graphTypeName,e):P(this.graphTypeName,this.geometryType,e)}set renderer(e){ue(e,this.fieldsIndex),this._set("renderer",e)}get renderer(){if(this._isOverridden("renderer"))return this._get("renderer");const e=this.parentCompositeLayer?.dataManager?.knowledgeGraph?.dataModel,t=[...e?.entityTypes??[],...e?.relationshipTypes??[]].map(e=>e.name).indexOf(this.graphTypeName),r=k(t);if("link-chart"===this.parentCompositeLayer?.type){if("relationship"===this.graphType)return new ge({type:"simple",symbol:M(r)});const e=ce(E(f.toJSON("point")).renderer);return Ee(e.symbol,r),e}const i=ce(E(f.toJSON(this.geometryType)).renderer);return Ee(i.symbol,r),i}get spatialReference(){return this.parentCompositeLayer?.dataManager?.knowledgeGraph?.dataModel?.spatialReference??g.WGS84}get templates(){return this._isOverridden("templates")?this._get("templates"):A(this)}set templates(e){this._overrideIfSome("templates",e)}set timeInfo(e){this._set("timeInfo",e)}get dateFieldsTimeZone(){return this.parentCompositeLayer?.dateFieldsTimeZone}get title(){return this._isOverridden("title")?this._get("title"):this.graphTypeName}set title(e){this._set("title",e)}writeTitle(e,t){t.title=e??"Layer"}get userHasEditingPrivileges(){return!this.parent||this.parent.userHasEditingPrivileges}get userHasFullEditingPrivileges(){return!!this.parent&&this.parent.userHasFullEditingPrivileges}get userHasUpdateItemPrivileges(){return!!this.parent&&this.parent.userHasUpdateItemPrivileges}createPopupTemplate(e){return Te(this,e)}createQuery(){return new je({where:"1=1",outFields:["*"]})}getField(e){return this.fieldsIndex.get(e)}getFieldDomain(e,t){return this.fields.find(t=>t.name===e)?.domain||null}async queryFeatures(e,t){await this.load();const{resolvedQuery:r,queryEngine:i,cypherTranslationApplied:o}=await this._setupQueryObjects(e),s=this.graphicOrigin,n=we.fromJSON(await i.executeQuery(this._createQueryEngineQueryJSON(r,o),t?.signal));return n.features.forEach(e=>{e.sourceLayer=this,e.origin=s}),n}async queryFeaturesJSON(e,t){await this.load();const{resolvedQuery:r,queryEngine:i,cypherTranslationApplied:o}=await this._setupQueryObjects(e);return await i.executeQuery(this._createQueryEngineQueryJSON(r,o),t?.signal)}async queryFeatureCount(e,t){await this.load();const{resolvedQuery:r,queryEngine:i,cypherTranslationApplied:o}=await this._setupQueryObjects(e);return i.executeQueryForCount(this._createQueryEngineQueryJSON(r,o),t?.signal)}async queryExtent(e={},t){await this.load();const r={...e,returnGeometry:!0},{resolvedQuery:i,queryEngine:o,cypherTranslationApplied:s}=await this._setupQueryObjects(r),n=await o.executeQueryForExtent(this._createQueryEngineQueryJSON(i,s),t?.signal);let a;return a=null!=n.extent?.xmin&&null!=n.extent?.xmax&&null!=n.extent?.ymin&&null!=n.extent?.ymax?new l(n.extent):new l,{count:n.count,extent:a}}async queryObjectIds(e,t){await this.load();const r=je.from(e);let i;if(this.parentCompositeLayer){if("link-chart"!==this.parentCompositeLayer.type||!this._cachedQueryEngine){const{features:e,cypherTranslationApplied:o}=await this.parentCompositeLayer.dataManager.getData(r,this,this.parentCompositeLayer,t);return i=this.loadQueryEngine(e),await i.executeQueryForIds(this._createQueryEngineQueryJSON(r,o),t?.signal)}i=this._cachedQueryEngine}else o.getLogger(this).warn("Attempting to query for object IDs with no features failed because the parent composite layer is missing or not yet loaded."),i=this.loadQueryEngine([]);return await i.executeQueryForIds(this._createQueryEngineQueryJSON(r,!1),t?.signal)}async applyEdits(e){if(!this.parentCompositeLayer?.dataManager.knowledgeGraph)throw new r("knowledge-graph-sublayer:no-knowledge-graph","ApplyEdits cannot be executed because the parent does not have a Knowledge Graph model. This is usually caused by the layer not yet being loaded");const t=await G(e,this,this.parentCompositeLayer);t.options={cascadeDelete:!0,cascadeProvenanceDelete:!!this.parent?.knowledgeGraph.serviceDefinition.supportsProvenance||void 0};const i=await be(this.parentCompositeLayer.dataManager.knowledgeGraph,t),o=D(i,this.graphTypeName),s={addedFeatures:o.addFeatureResults,updatedFeatures:o.updateFeatureResults,deletedFeatures:o.deleteFeatureResults,addedAttachments:o.addAttachmentResults,deletedAttachments:o.deleteAttachmentResults,updatedAttachments:o.updateAttachmentResults,exceededTransferLimit:!1,historicMoment:new Date,edits:void 0};return this.emit("edits",s),this.emit("apply-edits",{result:Promise.resolve(s)}),"link-chart"===this.parentCompositeLayer.type&&await this.parentCompositeLayer.refreshLinkChartCache([...s.addedFeatures.map(e=>e.globalId),...s.updatedFeatures.map(e=>e.globalId),...s.deletedFeatures.map(e=>e.globalId)]),o}loadQueryEngine(e){const t=new T({geometryType:f.toJSON(this.geometryType),hasM:this.hasM,hasZ:this.hasZ}),r=new v({fieldsIndex:this.fieldsIndex.toJSON(),geometryType:f.toJSON(this.geometryType),hasM:this.hasM,hasZ:this.hasZ,featureIdInfo:{type:"object-id",fieldName:this.objectIdField},spatialReference:this.spatialReference.toJSON(),timeInfo:this.timeInfo?.toJSON(),featureStore:t});return r.featureStore.addMany(e),r}async refreshCachedQueryEngine(){if(!this.parentCompositeLayer)return o.getLogger(this).warn("Attempting to refresh the cached query engine with no features failed because the parent composite layer is missing or not yet loaded."),void(this._cachedQueryEngine=this.loadQueryEngine([]));const{features:e}=await this.parentCompositeLayer.dataManager.getData(new je({where:"1=1",outFields:[I]}),this,this.parentCompositeLayer);this._cachedQueryEngine=this.loadQueryEngine(e)}load(e){return this.addResolvingPromise(this.parent.load(e).then(()=>de(this.timeInfo,this.fieldsIndex))),Promise.resolve(this)}_createQueryEngineQueryJSON(e,t){const r=e.toJSON();return t&&delete r.resultOffset,r}async _setupQueryObjects(e,t){const r=je.from(e),i=r.geometry;if(i&&!i.spatialReference?.isWGS84&&(await h(i.spatialReference,c),r.geometry=m(i instanceof d||i instanceof y||i instanceof u?i:i.extent,c)),!this.parentCompositeLayer)return o.getLogger(this).warn("Attempting to execute a query with no features failed because the parent composite layer is missing or not yet loaded."),{resolvedQuery:r,queryEngine:this.loadQueryEngine([]),cypherTranslationApplied:!1};if("link-chart"===this.parentCompositeLayer.type&&this._cachedQueryEngine)return{resolvedQuery:r,queryEngine:this._cachedQueryEngine,cypherTranslationApplied:!1};const{features:s,cypherTranslationApplied:n}=await this.parentCompositeLayer.dataManager.getData(r,this,this.parentCompositeLayer,t);return{resolvedQuery:r,queryEngine:this.loadQueryEngine(s),cypherTranslationApplied:n}}};function Ce(e,t,r){const i=[["ESRI__AGGREGATION_COUNT",O],["ESRI__ORIGIN_ID",F],["ESRI__DESTINATION_ID",N],["ESRI__LAYOUT_GEOMETRY",L]];try{for(const t of e)for(const[e,r]of i)t.labelExpression=t.labelExpression?.replaceAll(e,r),t.labelExpressionInfo?.expression&&(t.labelExpressionInfo.expression=t.labelExpressionInfo.expression.replaceAll(e,r))}catch(s){o.getLogger(this).warn("Error updating labelingInfo",s)}return he(e,t,r)}e([n(Se(i(q)))],Qe.prototype,"blendMode",void 0),e([n({readOnly:!0})],Qe.prototype,"capabilities",null),e([n()],Qe.prototype,"isTable",null),e([n({json:{origins:{"web-scene":{write:!1}},write:Ne()}})],Qe.prototype,"charts",void 0),e([n({readOnly:!0})],Qe.prototype,"defaultPopupTemplate",null),e([n({type:String,json:{origins:{service:{read:!1}},name:"layerDefinition.definitionExpression",write:{ignoreOrigin:!0}}})],Qe.prototype,"definitionExpression",void 0),e([n(Se(i(Z)))],Qe.prototype,"displayFilterEnabled",void 0),e([n(Se(i(B)))],Qe.prototype,"displayFilterInfo",void 0),e([n()],Qe.prototype,"editingEnabled",null),e([n(Se(i(U)))],Qe.prototype,"effect",void 0),e([n({readOnly:!0})],Qe.prototype,"effectiveCapabilities",null),e([n({readOnly:!0})],Qe.prototype,"effectiveEditingEnabled",null),e([n({type:ve})],Qe.prototype,"elevationInfo",void 0),e([n(Se(i(V)))],Qe.prototype,"featureEffect",void 0),e([n(Se(i(ae)))],Qe.prototype,"featureReduction",null),e([n()],Qe.prototype,"fields",null),e([n({type:p})],Qe.prototype,"formTemplate",null),e([n()],Qe.prototype,"geometryType",null),e([n()],Qe.prototype,"geometryFieldName",null),e([n({readOnly:!0})],Qe.prototype,"graphicOrigin",null),e([n({type:["entity","relationship"],nonNullable:!0,json:{write:{isRequired:!0,ignoreOrigin:!0}}})],Qe.prototype,"graphType",void 0),e([n({type:String,nonNullable:!0,json:{write:{isRequired:!0,ignoreOrigin:!0}}})],Qe.prototype,"graphTypeName",null),e([n()],Qe.prototype,"hasM",null),e([n()],Qe.prototype,"hasZ",null),e([n({type:String,json:{origins:{service:{read:!1},"portal-item":{read:!1}},write:{ignoreOrigin:!0}}})],Qe.prototype,"id",void 0),e([n({type:Boolean,value:!0,nonNullable:!0,json:{name:"showLabels",default:!1,write:{overridePolicy(){return{enabled:!!this.geometryType,alwaysWriteDefaults:!0,ignoreOrigin:!0}}}}})],Qe.prototype,"labelsVisible",void 0),e([n({type:[ye],json:{name:"layerDefinition.drawingInfo.labelingInfo",read:Ce,write:Ne()}})],Qe.prototype,"labelingInfo",null),e([n({readOnly:!0,json:{read:!1,write:{writer(e,t){switch(this.parentCompositeLayer?.type){case"link-chart":t.layerType="LinkChartSubLayer";break;case"knowledge-graph":t.layerType=this.geometryType?"KnowledgeGraphSubLayer":"KnowledgeGraphSubTable"}},isRequired:!0,ignoreOrigin:!0,writerEnsuresNonNull:!0}}})],Qe.prototype,"layerType",void 0),e([n(Se(i(re)))],Qe.prototype,"legendEnabled",void 0),e([n(Se(i(ie)))],Qe.prototype,"maxScale",void 0),e([n(Se(i(oe)))],Qe.prototype,"minScale",void 0),e([n()],Qe.prototype,"objectIdField",void 0),e([n()],Qe.prototype,"objectType",void 0),e([n(Se(i(se)))],Qe.prototype,"opacity",void 0),e([n(Se(i(z)))],Qe.prototype,"orderBy",void 0),e([n({clonable:!1})],Qe.prototype,"parent",void 0),e([n()],Qe.prototype,"parentCompositeLayer",void 0),e([n(Se(i(ne)))],Qe.prototype,"popupEnabled",void 0),e([n({type:t,json:{name:"popupInfo",write:{ignoreOrigin:!0}}})],Qe.prototype,"popupTemplate",void 0),e([n({type:Number,json:{write:{overridePolicy:_e}}})],Qe.prototype,"refreshInterval",void 0),e([n({types:fe,json:{name:"layerDefinition.drawingInfo.renderer",write:Ne()}})],Qe.prototype,"renderer",null),e([n()],Qe.prototype,"source",void 0),e([n()],Qe.prototype,"spatialReference",null),e([n({type:pe})],Qe.prototype,"templates",null),e([n({type:me,json:{name:"layerDefinition.timeInfo",write:{overridePolicy:_e},origins:{"web-document":{name:"layerDefinition.timeInfo",read:!0,write:{overridePolicy:_e}},"portal-item":{name:"layerDefinition.timeInfo",read:!0,write:{overridePolicy:_e}}}}})],Qe.prototype,"timeInfo",null),e([n({readOnly:!0})],Qe.prototype,"dateFieldsTimeZone",null),e([n({type:String,json:{write:{isRequired:!0,ignoreOrigin:!0,writerEnsuresNonNull:!0}}})],Qe.prototype,"title",null),e([Oe("title")],Qe.prototype,"writeTitle",null),e([n({json:{read:!1}})],Qe.prototype,"type",void 0),e([n(Se(i(te)))],Qe.prototype,"useViewTime",void 0),e([n({readOnly:!0})],Qe.prototype,"userHasEditingPrivileges",null),e([n({readOnly:!0})],Qe.prototype,"userHasFullEditingPrivileges",null),e([n({readOnly:!0})],Qe.prototype,"userHasUpdateItemPrivileges",null),e([n({type:Boolean,json:{name:"visibility",write:Ne()}})],Qe.prototype,"visible",void 0),Qe=e([a("esri.layers.knowledgeGraph.KnowledgeGraphSublayer")],Qe);export{Qe as default};
2
+ import{__decorate as e}from"tslib";import t from"../../PopupTemplate.js";import r from"../../core/Error.js";import{clone as i}from"../../core/lang.js";import o from"../../core/Logger.js";import{MultiOriginJSONSupportMixin as s}from"../../core/MultiOriginJSONSupport.js";import{property as n,subclass as a}from"../../core/accessorSupport/decorators.js";import"../../core/workers/workers.js";import p from"../../form/FormTemplate.js";import l from"../../geometry/Extent.js";import u from"../../geometry/Point.js";import d from"../../geometry/Polygon.js";import y from"../../geometry/Polyline.js";import{initializeProjection as h,project as m}from"../../geometry/projectionUtils.js";import g from"../../geometry/SpatialReference.js";import{wgs84 as c}from"../../geometry/support/spatialReferenceUtils.js";import{featureGeometryTypeKebabDictionary as f}from"../../geometry/support/typeUtils.js";import b from"../../graphic/KnowledgeGraphGraphicOrigin.js";import w from"../../graphic/LinkChartGraphicOrigin.js";import j from"../Layer.js";import T from"../graphics/data/FeatureStore.js";import{QueryEngine as v}from"../graphics/data/QueryEngine.js";import{createDrawingInfo as E}from"../graphics/sources/support/clientSideDefaults.js";import{systemOidFieldName as I,systemAggregationCountFieldName as O,systemIsSpatialFieldName as S,systemLayoutGeometryFieldName as L,systemOriginIdFieldName as F,systemDestinationIdFieldName as N}from"./constants.js";import{KnowledgeGraphSublayerBase as x}from"./KnowledgeGraphSublayerBase.js";import{createCapabilitiesFromKnowledgeGraph as _,createDefaultKGSLFormTemplate as Q,getDisplayLabelProperty as C,getLinkChartDefaultLabelingInfo as R,getMapDefaultLabelingInfo as P,getKGSublayerSymbolColor as k,getDefaultLCRelationshipSublayerSymbol as M,createDefaultKGSLFeatureTemplates as A,convertLayerEditsToGraphEdits as G,convertGraphEditsResultToFeatureEdits as D}from"./layerUtils.js";import{BlendLayer as J,blendModeProperty as q,effectProperty as U}from"../mixins/BlendLayer.js";import{DisplayFilteredLayer as H,displayFilterEnabledProperty as Z,displayFilterInfoProperty as B}from"../mixins/DisplayFilteredLayer.js";import{FeatureEffectLayer as K,featureEffectProperty as V}from"../mixins/FeatureEffectLayer.js";import{FeatureReductionLayer as W}from"../mixins/FeatureReductionLayer.js";import{OrderedLayer as Y,orderByProperty as z}from"../mixins/OrderedLayer.js";import{RefreshableLayer as X}from"../mixins/RefreshableLayer.js";import{ScaleRangeLayer as $}from"../mixins/ScaleRangeLayer.js";import{TemporalLayer as ee,useViewTimeProperty as te}from"../mixins/TemporalLayer.js";import{legendEnabled as re,maxScale as ie,minScale as oe,opacity as se,popupEnabled as ne}from"../support/commonProperties.js";import{featureReductionProperty as ae}from"../support/featureReductionUtils.js";import pe from"../support/FeatureTemplate.js";import le from"../support/Field.js";import{fixRendererFields as ue,fixTimeInfoFields as de}from"../support/fieldUtils.js";import ye from"../support/LabelClass.js";import{reader as he}from"../support/labelingInfo.js";import me from"../support/TimeInfo.js";import ge from"../../renderers/SimpleRenderer.js";import{fromJSON as ce}from"../../renderers/support/jsonUtils.js";import{rendererTypes as fe}from"../../renderers/support/typeUtils.js";import{executeApplyEdits as be}from"../../rest/knowledgeGraphService.js";import we from"../../rest/support/FeatureSet.js";import je from"../../rest/support/Query.js";import{createPopupTemplate as Te}from"../../support/popupUtils.js";import ve from"../../symbols/support/ElevationInfo.js";import{applyColorToSymbol as Ee}from"../../symbols/support/utils.js";import Ie from"../../core/workers/RemoteClient.js";import{writer as Oe}from"../../core/accessorSupport/decorators/writer.js";function Se(e){if(!e.json)return e;e.json.write=Le(e.json.write);const t=e.json.origins;if(!t)return e;let r;for(r in t){const e=t[r];e&&(e.write=Le(e.write))}return e}function Le(e){return"object"==typeof e&&e?(!1!==e.enabled&&(e.overridePolicy=Fe(e)),e):!0===e?Ne():e}function Fe(e){const{target:t,writer:r,overridePolicy:i,...o}=e;return function(e,t){const r=xe.call(this,e,t);return r.enabled?{...o,...r}:r}}function Ne(){return{overridePolicy:xe}}function xe(e,t){const r=!!this.geometryType;let i={enabled:r};return r&&(i={...i,..._e.call(this,e,t)}),i}function _e(e,t){return{ignoreOrigin:this.originIdOf(t)>0}}let Qe=class extends(x(H(W(K(J(Y(ee($(X(s(j))))))))))){constructor(e){super(e),this.blendMode="normal",this.charts=null,this.definitionExpression=null,this.displayFilterEnabled=!0,this.displayFilterInfo=null,this.effect=null,this.elevationInfo=null,this.featureEffect=null,this.graphType=null,this.labelsVisible=!0,this.layerType=null,this.legendEnabled=!0,this.maxScale=0,this.minScale=0,this.objectIdField=I,this.objectType=null,this.opacity=1,this.orderBy=null,this.parent=null,this.parentCompositeLayer=null,this.persistenceEnabled=!0,this.popupEnabled=!0,this.popupTemplate=null,this.refreshInterval=0,this.source={openPorts:()=>this.load().then(()=>{const e=new MessageChannel;return new Ie(e.port1,{channel:e,client:{queryFeatures:(e,t={})=>{const r=je.fromJSON(e);return this.queryFeaturesJSON(r,t)}}}),[e.port2]})},this.type="knowledge-graph-sublayer",this.useViewTime=!0,this.visible=!0}get capabilities(){return this.parent?this.parent.sublayerCapabilities:_(null)}get isTable(){return"link-chart"!==this.parentCompositeLayer?.type&&null==this.geometryFieldName}get defaultPopupTemplate(){return this.createPopupTemplate()}get editingEnabled(){return this.capabilities.operations.supportsEditing&&this.userHasEditingPrivileges}set editingEnabled(e){this._overrideIfSome("editingEnabled",e)}get effectiveCapabilities(){const e=i(this.capabilities),{operations:t,editing:r}=e;return this.userHasUpdateItemPrivileges&&(t.supportsAdd=t.supportsDelete=t.supportsEditing=t.supportsQuery=t.supportsUpdate=r.supportsDeleteByOthers=r.supportsGeometryUpdate=r.supportsUpdateByOthers=!0),this.userHasFullEditingPrivileges&&t.supportsEditing&&(t.supportsAdd=t.supportsDelete=t.supportsUpdate=r.supportsGeometryUpdate=!0),e}get effectiveEditingEnabled(){return this.userHasUpdateItemPrivileges||this.editingEnabled}set featureReduction(e){const t=this._normalizeFeatureReduction(e);this._set("featureReduction",t)}get fields(){const e=[],t=new Map;for(const r of this.parent?.knowledgeGraph.dataModel.domains??[])t.set(r.name,r);return this.objectType?.properties?.forEach(r=>{const i="esriFieldTypeOID"===r.fieldType?"esriFieldTypeInteger":r.fieldType,o=le.fromJSON({name:r.name,type:i,alias:r.alias,defaultValue:r.defaultValue,editable:r.editable,nullable:r.nullable,domain:r.domain&&t.has(r.domain)?t.get(r.domain).toJSON():void 0});e.push(o)}),e.push(le.fromJSON({name:this.objectIdField,type:"esriFieldTypeString",alias:this.objectIdField,editable:!1}),le.fromJSON({name:O,type:"esriFieldTypeInteger",alias:O,editable:!1}),le.fromJSON({name:S,type:"esriFieldTypeInteger",alias:S,editable:!1})),e}get formTemplate(){return this._isOverridden("formTemplate")?this._get("formTemplate"):Q(this)}set formTemplate(e){this._overrideIfSome("formTemplate",e)}get geometryType(){if("link-chart"===this.parentCompositeLayer?.type)return"relationship"===this.graphType?"polyline":"point";const e=this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name),t=e?.geometryType;return t&&"esriGeometryNull"!==t?f.fromJSON(t):null}get geometryFieldName(){if("link-chart"===this.parentCompositeLayer?.type)return L;const e=this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name);return e?.name??null}get graphicOrigin(){if(!this.parent)return null;switch(this.parent.type){case"knowledge-graph":return new b(this.parent,this);case"link-chart":return new w(this.parent,this)}}get graphTypeName(){return this.objectType?.name}set graphTypeName(e){this._set("graphTypeName",e)}get hasM(){const e=this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name),t=e?.name,r=t?this.objectType?.properties?.[t]:null;return r?.hasM??!1}get hasZ(){const e=this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name),t=e?.name,r=t?this.objectType?.properties?.[t]:null;return r?.hasZ??!1}set labelingInfo(e){this._set("labelingInfo",e)}get labelingInfo(){if(this._isOverridden("labelingInfo"))return this._get("labelingInfo");if(!this.objectType||!this.parentCompositeLayer||!this.graphTypeName)return null;const e=this.objectType.properties?C(this.objectType.properties):"ESRI__ID";return"link-chart"===this.parentCompositeLayer.type?R(this.graphType,this.graphTypeName,e):P(this.graphTypeName,this.geometryType,e)}set renderer(e){ue(e,this.fieldsIndex),this._set("renderer",e)}get renderer(){if(this._isOverridden("renderer"))return this._get("renderer");const e=this.parentCompositeLayer?.dataManager?.knowledgeGraph?.dataModel,t=[...e?.entityTypes??[],...e?.relationshipTypes??[]].map(e=>e.name).indexOf(this.graphTypeName),r=k(t);if("link-chart"===this.parentCompositeLayer?.type){if("relationship"===this.graphType)return new ge({type:"simple",symbol:M(r)});const e=ce(E(f.toJSON("point")).renderer);return Ee(e.symbol,r),e}const i=ce(E(f.toJSON(this.geometryType)).renderer);return Ee(i.symbol,r),i}get spatialReference(){return this.parentCompositeLayer?.dataManager?.knowledgeGraph?.dataModel?.spatialReference??g.WGS84}get templates(){return this._isOverridden("templates")?this._get("templates"):A(this)}set templates(e){this._overrideIfSome("templates",e)}set timeInfo(e){this._set("timeInfo",e)}get dateFieldsTimeZone(){return this.parentCompositeLayer?.dateFieldsTimeZone}get title(){return this._isOverridden("title")?this._get("title"):this.graphTypeName}set title(e){this._set("title",e)}writeTitle(e,t){t.title=e??"Layer"}get userHasEditingPrivileges(){return!this.parent||this.parent.userHasEditingPrivileges}get userHasFullEditingPrivileges(){return!!this.parent&&this.parent.userHasFullEditingPrivileges}get userHasUpdateItemPrivileges(){return!!this.parent&&this.parent.userHasUpdateItemPrivileges}createPopupTemplate(e){return Te(this,e)}createQuery(){return new je({where:"1=1",outFields:["*"]})}getField(e){return this.fieldsIndex.get(e)}getFieldDomain(e,t){return this.fields.find(t=>t.name===e)?.domain||null}async queryFeatures(e,t){await this.load();const{resolvedQuery:r,queryEngine:i,cypherTranslationApplied:o}=await this._setupQueryObjects(e),s=this.graphicOrigin,n=we.fromJSON(await i.executeQuery(this._createQueryEngineQueryJSON(r,o),t?.signal));return n.features.forEach(e=>{e.sourceLayer=this,e.origin=s}),n}async queryFeaturesJSON(e,t){await this.load();const{resolvedQuery:r,queryEngine:i,cypherTranslationApplied:o}=await this._setupQueryObjects(e);return await i.executeQuery(this._createQueryEngineQueryJSON(r,o),t?.signal)}async queryFeatureCount(e,t){await this.load();const{resolvedQuery:r,queryEngine:i,cypherTranslationApplied:o}=await this._setupQueryObjects(e);return i.executeQueryForCount(this._createQueryEngineQueryJSON(r,o),t?.signal)}async queryExtent(e={},t){await this.load();const r={...e,returnGeometry:!0},{resolvedQuery:i,queryEngine:o,cypherTranslationApplied:s}=await this._setupQueryObjects(r),n=await o.executeQueryForExtent(this._createQueryEngineQueryJSON(i,s),t?.signal);let a;return a=null!=n.extent?.xmin&&null!=n.extent?.xmax&&null!=n.extent?.ymin&&null!=n.extent?.ymax?new l(n.extent):new l,{count:n.count,extent:a}}async queryObjectIds(e,t){await this.load();const r=je.from(e);let i;if(this.parentCompositeLayer){if("link-chart"!==this.parentCompositeLayer.type||!this._cachedQueryEngine){const{features:e,cypherTranslationApplied:o}=await this.parentCompositeLayer.dataManager.getData(r,this,this.parentCompositeLayer,t);return i=this.loadQueryEngine(e),await i.executeQueryForIds(this._createQueryEngineQueryJSON(r,o),t?.signal)}i=this._cachedQueryEngine}else o.getLogger(this).warn("Attempting to query for object IDs with no features failed because the parent composite layer is missing or not yet loaded."),i=this.loadQueryEngine([]);return await i.executeQueryForIds(this._createQueryEngineQueryJSON(r,!1),t?.signal)}async applyEdits(e){if(!this.parentCompositeLayer?.dataManager.knowledgeGraph)throw new r("knowledge-graph-sublayer:no-knowledge-graph","ApplyEdits cannot be executed because the parent does not have a Knowledge Graph model. This is usually caused by the layer not yet being loaded");const t=await G(e,this,this.parentCompositeLayer);t.options={cascadeDelete:!0,cascadeProvenanceDelete:!!this.parent?.knowledgeGraph.serviceDefinition.supportsProvenance||void 0};const i=await be(this.parentCompositeLayer.dataManager.knowledgeGraph,t),o=D(i,this.graphTypeName),s={addedFeatures:o.addFeatureResults,updatedFeatures:o.updateFeatureResults,deletedFeatures:o.deleteFeatureResults,addedAttachments:o.addAttachmentResults,deletedAttachments:o.deleteAttachmentResults,updatedAttachments:o.updateAttachmentResults,exceededTransferLimit:!1,historicMoment:new Date,edits:void 0};return this.emit("edits",s),this.emit("apply-edits",{result:Promise.resolve(s)}),"link-chart"===this.parentCompositeLayer.type&&await this.parentCompositeLayer.refreshLinkChartCache([...s.addedFeatures.map(e=>e.globalId),...s.updatedFeatures.map(e=>e.globalId),...s.deletedFeatures.map(e=>e.globalId)]),o}loadQueryEngine(e){const t=new T({geometryType:f.toJSON(this.geometryType),hasM:this.hasM,hasZ:this.hasZ}),r=new v({fieldsIndex:this.fieldsIndex.toJSON(),geometryType:f.toJSON(this.geometryType),hasM:this.hasM,hasZ:this.hasZ,featureIdInfo:{type:"object-id",fieldName:this.objectIdField},spatialReference:this.spatialReference.toJSON(),timeInfo:this.timeInfo?.toJSON(),featureStore:t});return r.featureStore.addMany(e),r}async refreshCachedQueryEngine(){if(!this.parentCompositeLayer)return o.getLogger(this).warn("Attempting to refresh the cached query engine with no features failed because the parent composite layer is missing or not yet loaded."),void(this._cachedQueryEngine=this.loadQueryEngine([]));const{features:e}=await this.parentCompositeLayer.dataManager.getData(new je({where:"1=1",outFields:[I]}),this,this.parentCompositeLayer);this._cachedQueryEngine=this.loadQueryEngine(e)}load(e){return this.addResolvingPromise(this.parent.load(e).then(()=>de(this.timeInfo,this.fieldsIndex))),Promise.resolve(this)}_createQueryEngineQueryJSON(e,t){const r=e.toJSON();return t&&delete r.resultOffset,r}async _setupQueryObjects(e,t){const r=je.from(e),i=r.geometry;if(i&&!i.spatialReference?.isWGS84&&(await h(i.spatialReference,c),r.geometry=m(i instanceof d||i instanceof y||i instanceof u?i:i.extent,c)),!this.parentCompositeLayer)return o.getLogger(this).warn("Attempting to execute a query with no features failed because the parent composite layer is missing or not yet loaded."),{resolvedQuery:r,queryEngine:this.loadQueryEngine([]),cypherTranslationApplied:!1};if("link-chart"===this.parentCompositeLayer.type&&this._cachedQueryEngine)return{resolvedQuery:r,queryEngine:this._cachedQueryEngine,cypherTranslationApplied:!1};const{features:s,cypherTranslationApplied:n}=await this.parentCompositeLayer.dataManager.getData(r,this,this.parentCompositeLayer,t);return{resolvedQuery:r,queryEngine:this.loadQueryEngine(s),cypherTranslationApplied:n}}};function Ce(e,t,r){const i=[["ESRI__AGGREGATION_COUNT",O],["ESRI__ORIGIN_ID",F],["ESRI__DESTINATION_ID",N],["ESRI__LAYOUT_GEOMETRY",L]];try{for(const t of e)for(const[e,r]of i)t.labelExpression=t.labelExpression?.replaceAll(e,r),t.labelExpressionInfo?.expression&&(t.labelExpressionInfo.expression=t.labelExpressionInfo.expression.replaceAll(e,r))}catch(s){o.getLogger(this).warn("Error updating labelingInfo",s)}return he.call(this,e,t,r)}e([n(Se(i(q)))],Qe.prototype,"blendMode",void 0),e([n({readOnly:!0})],Qe.prototype,"capabilities",null),e([n()],Qe.prototype,"isTable",null),e([n({json:{origins:{"web-scene":{write:!1}},write:Ne()}})],Qe.prototype,"charts",void 0),e([n({readOnly:!0})],Qe.prototype,"defaultPopupTemplate",null),e([n({type:String,json:{origins:{service:{read:!1}},name:"layerDefinition.definitionExpression",write:{ignoreOrigin:!0}}})],Qe.prototype,"definitionExpression",void 0),e([n(Se(i(Z)))],Qe.prototype,"displayFilterEnabled",void 0),e([n(Se(i(B)))],Qe.prototype,"displayFilterInfo",void 0),e([n()],Qe.prototype,"editingEnabled",null),e([n(Se(i(U)))],Qe.prototype,"effect",void 0),e([n({readOnly:!0})],Qe.prototype,"effectiveCapabilities",null),e([n({readOnly:!0})],Qe.prototype,"effectiveEditingEnabled",null),e([n({type:ve})],Qe.prototype,"elevationInfo",void 0),e([n(Se(i(V)))],Qe.prototype,"featureEffect",void 0),e([n(Se(i(ae)))],Qe.prototype,"featureReduction",null),e([n()],Qe.prototype,"fields",null),e([n({type:p})],Qe.prototype,"formTemplate",null),e([n()],Qe.prototype,"geometryType",null),e([n()],Qe.prototype,"geometryFieldName",null),e([n({readOnly:!0})],Qe.prototype,"graphicOrigin",null),e([n({type:["entity","relationship"],nonNullable:!0,json:{write:{isRequired:!0,ignoreOrigin:!0}}})],Qe.prototype,"graphType",void 0),e([n({type:String,nonNullable:!0,json:{write:{isRequired:!0,ignoreOrigin:!0}}})],Qe.prototype,"graphTypeName",null),e([n()],Qe.prototype,"hasM",null),e([n()],Qe.prototype,"hasZ",null),e([n({type:String,json:{origins:{service:{read:!1},"portal-item":{read:!1}},write:{ignoreOrigin:!0}}})],Qe.prototype,"id",void 0),e([n({type:Boolean,value:!0,nonNullable:!0,json:{name:"showLabels",default:!1,write:{overridePolicy(){return{enabled:!!this.geometryType,alwaysWriteDefaults:!0,ignoreOrigin:!0}}}}})],Qe.prototype,"labelsVisible",void 0),e([n({type:[ye],json:{name:"layerDefinition.drawingInfo.labelingInfo",read:Ce,write:Ne()}})],Qe.prototype,"labelingInfo",null),e([n({readOnly:!0,json:{read:!1,write:{writer(e,t){switch(this.parentCompositeLayer?.type){case"link-chart":t.layerType="LinkChartSubLayer";break;case"knowledge-graph":t.layerType=this.geometryType?"KnowledgeGraphSubLayer":"KnowledgeGraphSubTable"}},isRequired:!0,ignoreOrigin:!0,writerEnsuresNonNull:!0}}})],Qe.prototype,"layerType",void 0),e([n(Se(i(re)))],Qe.prototype,"legendEnabled",void 0),e([n(Se(i(ie)))],Qe.prototype,"maxScale",void 0),e([n(Se(i(oe)))],Qe.prototype,"minScale",void 0),e([n()],Qe.prototype,"objectIdField",void 0),e([n()],Qe.prototype,"objectType",void 0),e([n(Se(i(se)))],Qe.prototype,"opacity",void 0),e([n(Se(i(z)))],Qe.prototype,"orderBy",void 0),e([n({clonable:!1})],Qe.prototype,"parent",void 0),e([n()],Qe.prototype,"parentCompositeLayer",void 0),e([n(Se(i(ne)))],Qe.prototype,"popupEnabled",void 0),e([n({type:t,json:{name:"popupInfo",write:{ignoreOrigin:!0}}})],Qe.prototype,"popupTemplate",void 0),e([n({type:Number,json:{write:{overridePolicy:_e}}})],Qe.prototype,"refreshInterval",void 0),e([n({types:fe,json:{name:"layerDefinition.drawingInfo.renderer",write:Ne()}})],Qe.prototype,"renderer",null),e([n()],Qe.prototype,"source",void 0),e([n()],Qe.prototype,"spatialReference",null),e([n({type:pe})],Qe.prototype,"templates",null),e([n({type:me,json:{name:"layerDefinition.timeInfo",write:{overridePolicy:_e},origins:{"web-document":{name:"layerDefinition.timeInfo",read:!0,write:{overridePolicy:_e}},"portal-item":{name:"layerDefinition.timeInfo",read:!0,write:{overridePolicy:_e}}}}})],Qe.prototype,"timeInfo",null),e([n({readOnly:!0})],Qe.prototype,"dateFieldsTimeZone",null),e([n({type:String,json:{write:{isRequired:!0,ignoreOrigin:!0,writerEnsuresNonNull:!0}}})],Qe.prototype,"title",null),e([Oe("title")],Qe.prototype,"writeTitle",null),e([n({json:{read:!1}})],Qe.prototype,"type",void 0),e([n(Se(i(te)))],Qe.prototype,"useViewTime",void 0),e([n({readOnly:!0})],Qe.prototype,"userHasEditingPrivileges",null),e([n({readOnly:!0})],Qe.prototype,"userHasFullEditingPrivileges",null),e([n({readOnly:!0})],Qe.prototype,"userHasUpdateItemPrivileges",null),e([n({type:Boolean,json:{name:"visibility",write:Ne()}})],Qe.prototype,"visible",void 0),Qe=e([a("esri.layers.knowledgeGraph.KnowledgeGraphSublayer")],Qe);export{Qe as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import e from"../../core/Error.js";import{makeHandle as t}from"../../core/handleUtils.js";import{getOrCreateMapValue as r}from"../../core/MapUtils.js";import{floatEqualRelative as a}from"../../core/mathUtils.js";import o from"../../geometry/Point.js";import i from"../../geometry/Polyline.js";import{initializeProjection as s,project as n}from"../../geometry/projectionUtils.js";import c from"../../geometry/SpatialReference.js";import p from"../GraphicsLayer.js";import{convertToGeometry as h}from"../graphics/featureConversionUtils.js";import{kgRestServices as d}from"../../rest/knowledgeGraphService.js";import l from"../../rest/knowledgeGraph/GraphQueryStreaming.js";import u from"../../rest/knowledgeGraph/KnowledgeGraph.js";import g from"../../views/draw/support/Reshape.js";const m={newReshapeWrapper:async({getFeatureReshapeProvider:e,targetGraphic:t,reshapeGraphicsLayer:r,view:a,snappingManager:o})=>new g({filterVerticesEnabled:!1,connectedReshapeProviders:[{getFeatureReshapeProvider:e,getVertexReshapeProvider(){throw new Error("Link Charts do not support vertex (polyline) reshape at this time")}}],enableMidpoints:!1,graphic:t,layer:r,view:a,snappingManager:o})},f=async({targetEntityId:r,targetEntityType:i,view:d,snappingManager:l})=>{await s(c.WGS84,d.spatialReference);const u=d.map?.activeLinkChartLayer?.layers.find(e=>e.objectType.name===i);if(!u)throw new e("LinkChartView:target-layer-not-found",`No layer found for target entity type ${i}`);const g=u.createQuery();g.objectIds=[r];const f=await u.queryFeatures(g);if(0===f.features.length)throw new e("LinkChartView:no-matching-feature-found",`No feature found with ID ${r} in layer ${u.title}`);const I=f.features[0].clone(),L=I.attributes.ESRI__ID;if(!I.sourceLayer)throw new e("LinkChartView:no-source-layer",`The target graphic does not have a source layer: ${L}`);const k=new p({listMode:"hide",internal:!0});I.geometry=n(new o(h(I.attributes.ESRI__LayoutGeometry,"esriGeometryPoint",!1,!1)),d.spatialReference),d.map.add(k),k.add(I);const j=I.sourceLayer,R=j.parent,_=new Map([[L,[]]]),C=new Map,b=new Map,M=await y(r,u,d),G=new Map;for(const e of R.layers)G.set(e.objectType.name,e);const E=new Map;for(const[e,t]of R.sublayerIdsCache)R.dataManager.relationshipTypeNames.has(e)&&E.set(e,Array.from(t));const D=await w(L,j.objectType.name,R.knowledgeGraph,E),F=R.entityLinkChartDiagramLookup.get(L);for(const e of D){let t=C.get(e.id);if(t||(t=R.relationshipLinkChartDiagramLookup.get(e.id),C.set(e.id,t??null)),t){const r=G.get(e.typeName);r&&a(t.coords[0],F.coords[0])&&a(t.coords[1],F.coords[1])?_.get(L)?.push({objectId:e.id,pathIndex:0,vertexIndex:0,associatedSublayer:r}):r&&a(t.coords.at(-2),F.coords[0])&&a(t.coords.at(-1),F.coords[1])&&_.get(L)?.push({objectId:e.id,pathIndex:0,vertexIndex:t.coords.length/2-1,associatedSublayer:r})}}const x=e=>new v(e,b,_,d),S=await m.newReshapeWrapper({getFeatureReshapeProvider:x,targetGraphic:I,reshapeGraphicsLayer:k,view:d,snappingManager:l});S.on("move-stop",e=>{d.emit("node-movement-stop",e)});const T=t(()=>{M.remove(),k.removeAll(),d.map.remove(k),k.destroy(),b.clear(),C.clear(),S.destroy()});return{currentReshapeGraphic:S.graphic,localEdits:b,originalRelationshipGeometries:C,teardownHandle:T}},y=async(e,t,r)=>{const a=await r.whenLayerView(t);return a.setVisibility(e,!1),{remove:()=>a.setVisibility(e,!0)}},w=async(e,t,r,a,o)=>{const i={sourceId:e},s=[],n=[];for(const[h,d]of a){const e=`${h}_ids`;i[e]=d,n.push(`Match (n:${t}) WHERE id(n) = $sourceId WITH n MATCH (n)-[r:${h}]-() WHERE ID(r) IN $${e} RETURN {id: ID(r), typeName: type(r)} as result`)}const c=n.join(" UNION "),p=(await d.executeQueryStreaming(new u(JSON.parse(JSON.stringify(r))),new l({openCypherQuery:c,bindParameters:i}),o)).resultRowsStream.getReader();for(;;){const{done:e,value:t}=await p.read();if(e)break;t.forEach(e=>{s.push(e[0].properties)})}return s};class I{constructor(e,t){this.modifiedFeatures=new Map,this.updating=!1,this._totalDx=0,this._totalDy=0,this._localEditsCache=e,this._view=t}async initializeModifiedFeatures(e){const t=new Map;for(const r of this._view.map?.activeLinkChartLayer?.layers??[]){const e=r;t.set(e.objectType.name,e)}const a=new Map;for(const o of e){const t=this._localEditsCache.get(o.objectId);if(t)this.initializeModifiedFeature(t,e);else{r(a,o.associatedSublayer.objectType.name,()=>[]).push(o.objectId)}}for(const[r,o]of a){const a=t.get(r),i=a.createQuery();i.outFields=["ESRI__ID"],i.objectIds=o,a.queryFeatures(i).then(t=>{for(const r of t.features)this.initializeModifiedFeature(this.makeModifiedFeature(r,a),e)})}}makeModifiedFeature(e,t){const r=e.attributes.ESRI__ID,a={graphic:e,layer:t,originalGraphic:e.clone(),uniqueId:r};return this._localEditsCache.set(r,a),a}initializeModifiedFeature(e,t){const r=t.filter(({objectId:t})=>t===e.uniqueId);this.modifiedFeatures.set(e,r);let a=e.graphic.geometry?n(e.graphic.geometry,this._view.spatialReference):void 0;const o=e.graphic.sourceLayer,s=o.parent;if(!a&&"relationship"===o.graphType){const t=s.relationshipLinkChartDiagramLookup.get(e.uniqueId);a=n(new i(h(t,"esriGeometryPolyline",!1,!1)),this._view.spatialReference)}let p=a.clone();for(const{pathIndex:i,vertexIndex:n}of r)p=this.getTranslatedGeometry(a,i,n,this._totalDx,this._totalDy);e.graphic.geometry=n(p,c.WGS84),s.relationshipLinkChartDiagramLookup.get(e.uniqueId)&&(s.relationshipLinkChartDiagramLookup.set(e.uniqueId,null),o.refreshCachedQueryEngine().then(()=>{o.emit("refresh",{dataChanged:!0})}))}translate(e,t){this._totalDx+=e,this._totalDy+=t;const r=new Set;for(const[a,o]of this.modifiedFeatures){let s=a.graphic.geometry?n(a.graphic.geometry,this._view.spatialReference):void 0;const p=a.graphic.sourceLayer,d=p.parent;if(p&&!a.graphic.geometry&&"relationship"===p.graphType){const e=d.relationshipLinkChartDiagramLookup.get(a.uniqueId);s=n(new i(h(e,"esriGeometryPolyline",!1,!1)),this._view.spatialReference)}for(const i of o){if(!s)continue;const o=this.getTranslatedGeometry(s,i.pathIndex,i.vertexIndex,e,t);a.graphic.geometry=n(o,c.WGS84),d.relationshipLinkChartDiagramLookup.get(a.uniqueId)&&(d.relationshipLinkChartDiagramLookup.set(a.uniqueId,null),r.add(p))}}for(const a of r)a.refreshCachedQueryEngine().then(()=>{a.emit("refresh",{dataChanged:!0})});return Array.from(this.modifiedFeatures.keys())}getTranslatedGeometry(e,t,r,a,o){const i=e.clone(),s=e.paths.slice();return null==s.at(t)?.at(r)||(s[t][r][0]+=a??0,s[t][r][1]+=o??0,i.paths=s),i}}class v extends I{constructor(e,t,r,a){super(t,a),this._connectedVerticesLookup=r;const o=[];for(const i of e){const e=this.getConnectedVerticesForFeature(i);for(const t of e)o.push(t)}this.initializeModifiedFeatures(o)}getConnectedVerticesForFeature(e){return this._connectedVerticesLookup.get(e.graphic.attributes.ESRI__ID)??[]}}export{v as ConnectedFeatureReshapeProvider,f as startNodeMovement,m as wrapperObject};
2
+ import e from"../../core/Error.js";import{makeHandle as t}from"../../core/handleUtils.js";import{getOrCreateMapValue as r}from"../../core/MapUtils.js";import{floatEqualRelative as a}from"../../core/mathUtils.js";import o from"../../geometry/Point.js";import i from"../../geometry/Polyline.js";import{initializeProjection as s,project as n}from"../../geometry/projectionUtils.js";import c from"../../geometry/SpatialReference.js";import p from"../GraphicsLayer.js";import{convertToGeometry as h}from"../graphics/featureConversionUtils.js";import{kgRestServices as d}from"../../rest/knowledgeGraphService.js";import l from"../../rest/knowledgeGraph/GraphQueryStreaming.js";import u from"../../rest/knowledgeGraph/KnowledgeGraph.js";import g from"../../views/draw/support/Reshape.js";const m={newReshapeWrapper:async({getFeatureReshapeProvider:e,targetGraphic:t,reshapeGraphicsLayer:r,view:a,snappingManager:o})=>new g({connectedReshapeProviders:[{getFeatureReshapeProvider:e,getVertexReshapeProvider(){throw new Error("Link Charts do not support vertex (polyline) reshape at this time")}}],enableMidpoints:!1,graphic:t,layer:r,view:a,snappingManager:o})},f=async({targetEntityId:r,targetEntityType:i,view:d,snappingManager:l})=>{await s(c.WGS84,d.spatialReference);const u=d.map?.activeLinkChartLayer?.layers.find(e=>e.objectType.name===i);if(!u)throw new e("LinkChartView:target-layer-not-found",`No layer found for target entity type ${i}`);const g=u.createQuery();g.objectIds=[r];const f=await u.queryFeatures(g);if(0===f.features.length)throw new e("LinkChartView:no-matching-feature-found",`No feature found with ID ${r} in layer ${u.title}`);const I=f.features[0].clone(),L=I.attributes.ESRI__ID;if(!I.sourceLayer)throw new e("LinkChartView:no-source-layer",`The target graphic does not have a source layer: ${L}`);const k=new p({listMode:"hide",internal:!0});I.geometry=n(new o(h(I.attributes.ESRI__LayoutGeometry,"esriGeometryPoint",!1,!1)),d.spatialReference),d.map.add(k),k.add(I);const j=I.sourceLayer,R=j.parent,_=new Map([[L,[]]]),C=new Map,b=new Map,M=await y(r,u,d),G=new Map;for(const e of R.layers)G.set(e.objectType.name,e);const D=new Map;for(const[e,t]of R.sublayerIdsCache)R.dataManager.relationshipTypeNames.has(e)&&D.set(e,Array.from(t));const E=await w(L,j.objectType.name,R.knowledgeGraph,D),F=R.entityLinkChartDiagramLookup.get(L);for(const e of E){let t=C.get(e.id);if(t||(t=R.relationshipLinkChartDiagramLookup.get(e.id),C.set(e.id,t??null)),t){const r=G.get(e.typeName);r&&a(t.coords[0],F.coords[0])&&a(t.coords[1],F.coords[1])?_.get(L)?.push({objectId:e.id,pathIndex:0,vertexIndex:0,associatedSublayer:r}):r&&a(t.coords.at(-2),F.coords[0])&&a(t.coords.at(-1),F.coords[1])&&_.get(L)?.push({objectId:e.id,pathIndex:0,vertexIndex:t.coords.length/2-1,associatedSublayer:r})}}const x=e=>new v(e,b,_,d),S=await m.newReshapeWrapper({getFeatureReshapeProvider:x,targetGraphic:I,reshapeGraphicsLayer:k,view:d,snappingManager:l});S.on("move-stop",e=>{d.emit("node-movement-stop",e)});const T=t(()=>{M.remove(),k.removeAll(),d.map.remove(k),k.destroy(),b.clear(),C.clear(),S.destroy()});return{currentReshapeGraphic:S.graphic,localEdits:b,originalRelationshipGeometries:C,teardownHandle:T}},y=async(e,t,r)=>{const a=await r.whenLayerView(t);return a.setVisibility(e,!1),{remove:()=>a.setVisibility(e,!0)}},w=async(e,t,r,a,o)=>{const i={sourceId:e},s=[],n=[];for(const[h,d]of a){const e=`${h}_ids`;i[e]=d,n.push(`Match (n:${t}) WHERE id(n) = $sourceId WITH n MATCH (n)-[r:${h}]-() WHERE ID(r) IN $${e} RETURN {id: ID(r), typeName: type(r)} as result`)}const c=n.join(" UNION "),p=(await d.executeQueryStreaming(new u(JSON.parse(JSON.stringify(r))),new l({openCypherQuery:c,bindParameters:i}),o)).resultRowsStream.getReader();for(;;){const{done:e,value:t}=await p.read();if(e)break;t.forEach(e=>{s.push(e[0].properties)})}return s};class I{constructor(e,t){this.modifiedFeatures=new Map,this.updating=!1,this._totalDx=0,this._totalDy=0,this._localEditsCache=e,this._view=t}async initializeModifiedFeatures(e){const t=new Map;for(const r of this._view.map?.activeLinkChartLayer?.layers??[]){const e=r;t.set(e.objectType.name,e)}const a=new Map;for(const o of e){const t=this._localEditsCache.get(o.objectId);if(t)this.initializeModifiedFeature(t,e);else{r(a,o.associatedSublayer.objectType.name,()=>[]).push(o.objectId)}}for(const[r,o]of a){const a=t.get(r),i=a.createQuery();i.outFields=["ESRI__ID"],i.objectIds=o,a.queryFeatures(i).then(t=>{for(const r of t.features)this.initializeModifiedFeature(this.makeModifiedFeature(r,a),e)})}}makeModifiedFeature(e,t){const r=e.attributes.ESRI__ID,a={graphic:e,layer:t,originalGraphic:e.clone(),uniqueId:r};return this._localEditsCache.set(r,a),a}initializeModifiedFeature(e,t){const r=t.filter(({objectId:t})=>t===e.uniqueId);this.modifiedFeatures.set(e,r);let a=e.graphic.geometry?n(e.graphic.geometry,this._view.spatialReference):void 0;const o=e.graphic.sourceLayer,s=o.parent;if(!a&&"relationship"===o.graphType){const t=s.relationshipLinkChartDiagramLookup.get(e.uniqueId);a=n(new i(h(t,"esriGeometryPolyline",!1,!1)),this._view.spatialReference)}let p=a.clone();for(const{pathIndex:i,vertexIndex:n}of r)p=this.getTranslatedGeometry(a,i,n,this._totalDx,this._totalDy);e.graphic.geometry=n(p,c.WGS84),s.relationshipLinkChartDiagramLookup.get(e.uniqueId)&&(s.relationshipLinkChartDiagramLookup.set(e.uniqueId,null),o.refreshCachedQueryEngine().then(()=>{o.emit("refresh",{dataChanged:!0})}))}translate(e,t){this._totalDx+=e,this._totalDy+=t;const r=new Set;for(const[a,o]of this.modifiedFeatures){let s=a.graphic.geometry?n(a.graphic.geometry,this._view.spatialReference):void 0;const p=a.graphic.sourceLayer,d=p.parent;if(p&&!a.graphic.geometry&&"relationship"===p.graphType){const e=d.relationshipLinkChartDiagramLookup.get(a.uniqueId);s=n(new i(h(e,"esriGeometryPolyline",!1,!1)),this._view.spatialReference)}for(const i of o){if(!s)continue;const o=this.getTranslatedGeometry(s,i.pathIndex,i.vertexIndex,e,t);a.graphic.geometry=n(o,c.WGS84),d.relationshipLinkChartDiagramLookup.get(a.uniqueId)&&(d.relationshipLinkChartDiagramLookup.set(a.uniqueId,null),r.add(p))}}for(const a of r)a.refreshCachedQueryEngine().then(()=>{a.emit("refresh",{dataChanged:!0})});return Array.from(this.modifiedFeatures.keys())}getTranslatedGeometry(e,t,r,a,o){const i=e.clone(),s=e.paths.slice();return null==s.at(t)?.at(r)||(s[t][r][0]+=a??0,s[t][r][1]+=o??0,i.paths=s),i}}class v extends I{constructor(e,t,r,a){super(t,a),this._connectedVerticesLookup=r;const o=[];for(const i of e){const e=this.getConnectedVerticesForFeature(i);for(const t of e)o.push(t)}this.initializeModifiedFeatures(o)}getConnectedVerticesForFeature(e){return this._connectedVerticesLookup.get(e.graphic.attributes.ESRI__ID)??[]}}export{v as ConnectedFeatureReshapeProvider,f as startNodeMovement,m as wrapperObject};