@arcgis/core 5.0.0-next.54 → 5.0.0-next.55

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 (156) hide show
  1. package/Ground.d.ts +4 -6
  2. package/Ground.js +1 -1
  3. package/WebScene.js +1 -1
  4. package/applications/Components/drawUtils.d.ts +8 -1
  5. package/applications/SceneViewer/sceneViewerUtils.d.ts +1 -2
  6. package/assets/esri/core/workers/RemoteClient.js +1 -1
  7. package/assets/esri/core/workers/chunks/{18cc131fd63d8c15df54.js → 14765f98b8ea447498a1.js} +4 -4
  8. package/assets/esri/core/workers/chunks/{308fb48d080e01499a26.js → 436f206898306df019ac.js} +1 -1
  9. package/assets/esri/core/workers/chunks/{f2e8abb556a380cc2941.js → 492d575894c7905bb70c.js} +1 -1
  10. package/assets/esri/core/workers/chunks/5873c7b65d0fb04998fb.js +1 -0
  11. package/assets/esri/core/workers/chunks/d9736c783513e9c9b22f.js +1 -0
  12. package/assets/esri/core/workers/chunks/{cc67f066c3c0c2a1a37c.js → dd99b77a7c0a052507bb.js} +1 -1
  13. package/chunks/ChapmanAtmosphere.glsl.js +12 -9
  14. package/chunks/GlowComposition.glsl.js +1 -1
  15. package/chunks/Haze.glsl.js +4 -4
  16. package/chunks/RasterColorizer.glsl.js +10 -10
  17. package/chunks/Viewshed.glsl.js +1 -1
  18. package/config.js +1 -1
  19. package/geometry/projection/projectPointToVector.js +1 -1
  20. package/geometry/types.d.ts +10 -1
  21. package/interfaces.d.ts +21 -26
  22. package/kernel.js +1 -1
  23. package/layers/FeatureLayer.d.ts +6 -3
  24. package/layers/support/SubtypeSublayer.d.ts +13 -0
  25. package/package.json +1 -1
  26. package/smartMapping/labels/clusters.d.ts +1 -1
  27. package/support/groundUtils.js +1 -1
  28. package/support/revision.js +1 -1
  29. package/views/2d/layers/ImageryLayerView2D.js +1 -1
  30. package/views/2d/layers/ImageryTileLayerView2D.js +1 -1
  31. package/views/2d/layers/types.d.ts +6 -0
  32. package/views/2d/types.d.ts +3 -1
  33. package/views/3d/environment/ChapmanApproximation.glsl.js +9 -10
  34. package/views/3d/environment/ChapmanAtmosphere.glsl.js +1 -1
  35. package/views/3d/environment/ChapmanAtmosphere.js +1 -1
  36. package/views/3d/environment/ChapmanAtmosphereTechnique.js +1 -1
  37. package/views/3d/environment/ChapmanRaymarching.glsl.js +1 -2
  38. package/views/3d/environment/CloudsParameters.js +1 -1
  39. package/views/3d/environment/EnvironmentManager.js +1 -1
  40. package/views/3d/environment/SceneViewEnvironment.d.ts +1 -1
  41. package/views/3d/environment/types.d.ts +13 -0
  42. package/views/3d/layers/ImageryLayerView3D.js +1 -1
  43. package/views/3d/webgl/ManagedFBO.d.ts +4 -5
  44. package/views/3d/webgl/RenderNode.d.ts +1 -1
  45. package/views/3d/{webgl-engine/lighting/SceneLighting.d.ts → webgl/types.d.ts} +4 -6
  46. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js +2 -2
  47. package/views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js +1 -1
  48. package/views/3d/webgl-engine/core/shaderLibrary/raster/RasterColorizer.glsl.js +1 -1
  49. package/views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js +1 -1
  50. package/views/3d/webgl-engine/core/shaderModules/Float4sPassUniform.js +1 -1
  51. package/views/3d/webgl-engine/core/shaderModules/FloatsPassUniform.js +1 -1
  52. package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechnique.js +1 -1
  53. package/views/3d/webgl-engine/effects/haze/Haze.glsl.js +1 -1
  54. package/views/3d/webgl-engine/effects/haze/Haze.js +1 -1
  55. package/views/3d/webgl-engine/effects/haze/HazeTechnique.js +1 -1
  56. package/views/3d/webgl-engine/effects/laserlines/LaserlinePathTechnique.js +1 -1
  57. package/views/3d/webgl-engine/shaders/SphereDepthInterpolate.glsl.js +5 -5
  58. package/views/SceneView.d.ts +14 -17
  59. package/views/VideoView.d.ts +1 -2
  60. package/views/View.d.ts +2 -3
  61. package/views/View2D.d.ts +1 -2
  62. package/views/draw/DrawOperation.js +1 -1
  63. package/views/draw/PolygonDrawAction.d.ts +1 -1
  64. package/views/draw/PolygonDrawAction.js +1 -1
  65. package/views/draw/PolylineDrawAction.d.ts +1 -1
  66. package/views/draw/PolylineDrawAction.js +1 -1
  67. package/views/draw/support/GraphicMover.js +1 -1
  68. package/views/draw/types.d.ts +3 -1
  69. package/views/interactive/sketch/Units.d.ts +5 -1
  70. package/views/layers/ImageryLayerViewMixin.d.ts +2 -3
  71. package/views/layers/support/highlightUtils.js +1 -1
  72. package/views/types.d.ts +69 -1
  73. package/views/ui/types.d.ts +12 -1
  74. package/webscene/Environment.d.ts +2 -2
  75. package/webscene/support/FeatureReference.d.ts +1 -1
  76. package/webscene/types.d.ts +5 -1
  77. package/widgets/BasemapGallery.d.ts +1 -1
  78. package/widgets/BasemapLayerList/BasemapLayerListViewModel.d.ts +1 -1
  79. package/widgets/BasemapLayerList.d.ts +1 -1
  80. package/widgets/BatchAttributeForm/inputs/FieldInput.d.ts +1 -1
  81. package/widgets/BatchAttributeForm.d.ts +1 -1
  82. package/widgets/Bookmarks.d.ts +1 -2
  83. package/widgets/BuildingExplorer.d.ts +1 -1
  84. package/widgets/CatalogLayerList/CatalogLayerListViewModel.d.ts +1 -1
  85. package/widgets/CatalogLayerList.d.ts +1 -1
  86. package/widgets/Compass.d.ts +1 -1
  87. package/widgets/CoordinateConversion.d.ts +1 -2
  88. package/widgets/Daylight.d.ts +1 -1
  89. package/widgets/DirectionalPad/DirectionalPadViewModel.d.ts +1 -2
  90. package/widgets/DirectionalPad/{utils.d.ts → types.d.ts} +3 -1
  91. package/widgets/Directions.d.ts +1 -2
  92. package/widgets/Editor/EditorViewModel.d.ts +1 -2
  93. package/widgets/Editor/SplitFeatureWorkflow.d.ts +1 -2
  94. package/widgets/Editor/SplitFeatureWorkflowData.d.ts +1 -1
  95. package/widgets/Editor/types.d.ts +8 -1
  96. package/widgets/Editor/workflowUtils.js +1 -1
  97. package/widgets/Editor.d.ts +2 -3
  98. package/widgets/Feature/types.d.ts +5 -1
  99. package/widgets/Feature.d.ts +1 -1
  100. package/widgets/FeatureForm/FieldInput.d.ts +1 -1
  101. package/widgets/FeatureForm.d.ts +1 -1
  102. package/widgets/FeatureTemplates.d.ts +1 -1
  103. package/widgets/Features/FeaturesViewModel.d.ts +1 -1
  104. package/widgets/Features.d.ts +1 -2
  105. package/widgets/FloorFilter.d.ts +1 -1
  106. package/widgets/Home.d.ts +1 -1
  107. package/widgets/LayerList/ListItemPanel.d.ts +1 -1
  108. package/widgets/LayerList/types.d.ts +2 -2
  109. package/widgets/LayerList.d.ts +1 -1
  110. package/widgets/Legend.d.ts +1 -1
  111. package/widgets/Locate.d.ts +1 -1
  112. package/widgets/Popup/types.d.ts +2 -0
  113. package/widgets/Popup.d.ts +1 -2
  114. package/widgets/Print.d.ts +1 -1
  115. package/widgets/Search.d.ts +1 -1
  116. package/widgets/ShadowCast/DurationOptions.d.ts +1 -1
  117. package/widgets/ShadowCast/ShadowCastViewModel.d.ts +1 -1
  118. package/widgets/ShadowCast/{ShadowVisualizationType.d.ts → types.d.ts} +4 -1
  119. package/widgets/ShadowCast.d.ts +1 -1
  120. package/widgets/Sketch/types.d.ts +1 -1
  121. package/widgets/Slice.d.ts +1 -1
  122. package/widgets/TableList.d.ts +1 -1
  123. package/widgets/Track.d.ts +1 -1
  124. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.d.ts +1 -1
  125. package/widgets/UtilityNetworkTrace/{support/ResultAreaHandler.d.ts → types.d.ts} +2 -2
  126. package/widgets/Weather/WeatherViewModel.d.ts +2 -2
  127. package/widgets/Weather.d.ts +1 -1
  128. package/widgets/support/GoTo.d.ts +1 -1
  129. package/widgets/support/forms/types.d.ts +2 -0
  130. package/widgets/support/{goToUtils.d.ts → types.d.ts} +8 -1
  131. package/assets/esri/core/workers/chunks/316f3e93aa0db48ef129.js +0 -1
  132. package/assets/esri/core/workers/chunks/ec7e6427d99cf3148a61.js +0 -1
  133. package/views/2d/ViewStateManager.d.ts +0 -2
  134. package/views/2d/layers/support/clusterUtils.d.ts +0 -6
  135. package/views/3d/environment/lightingUtils.d.ts +0 -4
  136. package/views/3d/environment/weather.d.ts +0 -9
  137. package/views/3d/glTF/internal/resourceUtils.d.ts +0 -10
  138. package/views/3d/interactive/visualElements/DrapedVisualElementResources.d.ts +0 -2
  139. package/views/3d/support/QualityProfile.d.ts +0 -2
  140. package/views/SceneViewHitTestResult.d.ts +0 -64
  141. package/views/ViewingMode.d.ts +0 -2
  142. package/views/draw/DrawingMode.d.ts +0 -2
  143. package/views/draw/support/drawUtils.d.ts +0 -7
  144. package/views/ui/Padding.d.ts +0 -11
  145. package/views/viewType.d.ts +0 -2
  146. package/views/webgl/enums.d.ts +0 -38
  147. package/webscene/support/featureReferenceUtils.d.ts +0 -4
  148. package/widgets/DirectionalPad/constants.d.ts +0 -2
  149. package/widgets/Editor/support/splitFeatureUtils.d.ts +0 -7
  150. package/widgets/Feature/support/arcadeFeatureUtils.d.ts +0 -4
  151. package/widgets/Popup/actions.d.ts +0 -4
  152. package/widgets/ShadowCast/DurationMode.d.ts +0 -3
  153. package/widgets/support/Heading.d.ts +0 -7
  154. package/widgets/support/forms/formUtils.d.ts +0 -2
  155. /package/views/animation/{easing.d.ts → types.d.ts} +0 -0
  156. /package/views/draw/{DrawingMode.js → drawingModes.js} +0 -0
package/views/types.d.ts CHANGED
@@ -12,10 +12,16 @@ import type { ScreenPoint } from "../core/types.js";
12
12
  import type { GeometryUnion } from "../geometry/support/typeUtils.js";
13
13
  import type { MediaElement } from "../layers/support/media.js";
14
14
  import type { NetworkFeature } from "../rest/support/interfaces.js";
15
- import type { EasingName } from "./animation/easing.js";
15
+ import type { EasingName } from "./animation/types.js";
16
16
 
17
17
  export type HighlightTarget = Graphic | Graphic[] | Collection<Graphic>;
18
18
 
19
+ export interface SingleBandPixelHighlightTarget {}
20
+
21
+ export interface XYBandPixelHighlightTarget {}
22
+
23
+ export type PixelHighlightTarget = SingleBandPixelHighlightTarget | XYBandPixelHighlightTarget;
24
+
19
25
  export type TargetBase = number[] | GeometryUnion | GeometryUnion[] | Graphic | Graphic[] | Viewpoint;
20
26
 
21
27
  export type Target2D = TargetBase;
@@ -357,4 +363,66 @@ export interface UserSettings extends SettingsCommon {
357
363
  * of the screenshot area.
358
364
  */
359
365
  width: number;
366
+ }
367
+
368
+ export type HitExtension<T> = T
369
+ & {
370
+ /** The distance from the camera position to the point geometry hit on this graphic. In global scenes the distance will be in meters while in local scenes the distance will be in the unit of the spatial reference of the view. */
371
+ distance: number;
372
+ };
373
+
374
+ /**
375
+ * Object specification for the result returned in {@link views/SceneViewHitTestResult!SceneViewHitTestResult} of the [SceneView#hitTest()](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html#hitTest) method.
376
+ *
377
+ * @since 4.24
378
+ */
379
+ export type SceneViewHit = SceneViewGraphicHit | SceneViewMediaHit | SceneViewRouteHit;
380
+
381
+ /**
382
+ * Object specification for the graphic hit result returned in {@link views/SceneViewHitTestResult!SceneViewHitTestResult} of the [SceneView#hitTest()](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html#hitTest) method.
383
+ * See the table below for the specification of each property in this object.
384
+ *
385
+ * @since 4.24
386
+ */
387
+ export type SceneViewGraphicHit = HitExtension<GraphicHit>;
388
+
389
+ /**
390
+ * Object specification for the media hit results returned from [MediaLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-MediaLayer.html) in {@link views/SceneViewHitTestResult!SceneViewHitTestResult} of the [SceneView#hitTest()](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html#hitTest) method.
391
+ * See the table below for the specification of each property in this object.
392
+ *
393
+ * @since 4.24
394
+ */
395
+ export type SceneViewMediaHit = HitExtension<MediaHit>;
396
+
397
+ /**
398
+ * Object specification for the route hit results returned from [RouteLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-RouteLayer.html) in {@link views/SceneViewHitTestResult!SceneViewHitTestResult} of the [SceneView#hitTest()](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html#hitTest) method.
399
+ * See the table below for the specification of each property in this object.
400
+ *
401
+ * @since 4.24
402
+ */
403
+ export type SceneViewRouteHit = HitExtension<RouteHit>;
404
+
405
+ /**
406
+ * Object specification for the result of the [SceneView#hitTest()](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html#hitTest) method.
407
+ *
408
+ * @since 4.24
409
+ */
410
+ export interface SceneViewHitTestResult extends ViewHitTestResult {
411
+ /** Ground intersection result. The ground hit result will always be returned, even if the ground was excluded from the [SceneView#hitTest()](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html#hitTest). */
412
+ ground: SceneViewHitTestResultGround;
413
+ /**
414
+ * An array of result objects returned from the [SceneView#hitTest()](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html#hitTest)
415
+ * when the location of the input screen coordinates intersect features in the view.
416
+ */
417
+ results: SceneViewHit[];
418
+ }
419
+
420
+ export interface SceneViewHitTestResultGround {
421
+ /** The distance from camera position to the ground hit. The distance will be `0` if the ground was not hit at all. In global scenes the distance will be in meters while in local scenes the distance will be in the unit of the spatial reference of the view. */
422
+ distance: number;
423
+ /**
424
+ * The point at which the ground was hit while performing the
425
+ * hitTest. This may be `null` when the ground was not hit at all (for example by clicking on the sky).
426
+ */
427
+ mapPoint: Point;
360
428
  }
@@ -47,4 +47,15 @@ export type ComponentCompatible = Widget | HTMLElement | string;
47
47
  /** The UI position of an element in the view. */
48
48
  export type UIPosition = UICornerPosition | "manual";
49
49
 
50
- export type UICornerPosition = "top-left" | "top-right" | "bottom-left" | "bottom-right" | "top-leading" | "top-trailing" | "bottom-leading" | "bottom-trailing";
50
+ export type UICornerPosition = "top-left" | "top-right" | "bottom-left" | "bottom-right" | "top-leading" | "top-trailing" | "bottom-leading" | "bottom-trailing";
51
+
52
+ export interface Padding {
53
+ /** The bottom padding (in pixels). */
54
+ bottom: number;
55
+ /** The left padding (in pixels). */
56
+ left: number;
57
+ /** The right padding (in pixels). */
58
+ right: number;
59
+ /** The top padding (in pixels). */
60
+ top: number;
61
+ }
@@ -2,7 +2,7 @@ import type SunLighting from "./SunLighting.js";
2
2
  import type VirtualLighting from "./VirtualLighting.js";
3
3
  import type Background from "./background/Background.js";
4
4
  import type { JSONSupport, JSONSupportMixinProperties } from "../core/JSONSupport.js";
5
- import type { Weather } from "../views/3d/environment/weather.js";
5
+ import type { WeatherUnion } from "../views/3d/environment/types.js";
6
6
  import type { VirtualLightingProperties } from "./VirtualLighting.js";
7
7
  import type { SunLightingProperties } from "./SunLighting.js";
8
8
  import type { BackgroundProperties } from "./background/Background.js";
@@ -94,7 +94,7 @@ export default class Environment extends JSONSupport {
94
94
  *
95
95
  * @default SunnyWeather
96
96
  */
97
- get weather(): Weather;
97
+ get weather(): WeatherUnion;
98
98
  set weather(value: ((SunnyWeatherProperties & { type: "sunny" }) | (CloudyWeatherProperties & { type: "cloudy" }) | (RainyWeatherProperties & { type: "rainy" }) | (SnowyWeatherProperties & { type: "snowy" }) | (FoggyWeatherProperties & { type: "foggy" })));
99
99
  /**
100
100
  * Creates a deep clone of this object.
@@ -1,7 +1,7 @@
1
1
  import type LayerReference from "./LayerReference.js";
2
2
  import type { ClonableMixin, ClonableMixinProperties } from "../../core/Clonable.js";
3
3
  import type { JSONSupport, JSONSupportMixinProperties } from "../../core/JSONSupport.js";
4
- import type { FeatureReferenceIdUnion } from "./featureReferenceUtils.js";
4
+ import type { FeatureReferenceIdUnion } from "../types.js";
5
5
  import type { LayerReferenceProperties } from "./LayerReference.js";
6
6
  import type { FeatureReferenceGlobalIdProperties } from "./FeatureReferenceGlobalId.js";
7
7
  import type { FeatureReferenceObjectIdProperties } from "./FeatureReferenceObjectId.js";
@@ -1,4 +1,6 @@
1
1
  import type SliceAnalysis from "../analysis/SliceAnalysis.js";
2
+ import type FeatureReferenceGlobalId from "./support/FeatureReferenceGlobalId.js";
3
+ import type FeatureReferenceObjectId from "./support/FeatureReferenceObjectId.js";
2
4
 
3
5
  /**
4
6
  * Options for updating a web scene from a view.
@@ -74,4 +76,6 @@ export interface WebSceneThumbnailSize {
74
76
  width: number;
75
77
  }
76
78
 
77
- export type WebSceneSliceAnalysis = SliceAnalysis;
79
+ export type WebSceneSliceAnalysis = SliceAnalysis;
80
+
81
+ export type FeatureReferenceIdUnion = FeatureReferenceObjectId | FeatureReferenceGlobalId;
@@ -10,7 +10,7 @@ import type { ReadonlyArrayOrCollection } from "../core/Collection.js";
10
10
  import type { MapViewOrSceneView } from "../views/MapViewOrSceneView.js";
11
11
  import type { LocalBasemapsSourceProperties } from "./BasemapGallery/support/LocalBasemapsSource.js";
12
12
  import type { PortalBasemapsSourceProperties } from "./BasemapGallery/support/PortalBasemapsSource.js";
13
- import type { HeadingLevel } from "./support/Heading.js";
13
+ import type { HeadingLevel } from "./support/types.js";
14
14
  import type { BasemapGalleryViewModelProperties } from "./BasemapGallery/BasemapGalleryViewModel.js";
15
15
  import type { WidgetProperties } from "./Widget.js";
16
16
 
@@ -66,7 +66,7 @@ export default class BasemapLayerListViewModel extends EventedAccessor {
66
66
  /** A reference to the [MapView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html) or [SceneView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html). Set this to link the widget to a specific view. */
67
67
  accessor view: MapViewOrSceneView | null | undefined;
68
68
  /**
69
- * Triggers the {@link widgets/BasemapLayerList/BasemapLayerListViewModel#event-trigger-action} event and executes
69
+ * Triggers the [BasemapLayerList#@trigger-action](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-BasemapLayerList.html#event-trigger-action) event and executes
70
70
  * the given [action](https://developers.arcgis.com/javascript/latest/api-reference/esri-support-actions-ActionButton.html) or [action toggle](https://developers.arcgis.com/javascript/latest/api-reference/esri-support-actions-ActionToggle.html).
71
71
  *
72
72
  * @param action - The action to execute.
@@ -11,7 +11,7 @@ import type { CatalogLayerListProperties } from "./CatalogLayerList.js";
11
11
  import type { WidgetProperties } from "./Widget.js";
12
12
  import type { BasemapLayerListViewModelEvents, BasemapLayerListViewModelProperties } from "./BasemapLayerList/BasemapLayerListViewModel.js";
13
13
  import type { Action, FilterPredicate, ListItemModifier, VisibilityAppearance } from "./LayerList/types.js";
14
- import type { HeadingLevel } from "./support/Heading.js";
14
+ import type { HeadingLevel } from "./support/types.js";
15
15
  import type { ListItemProperties } from "./LayerList/ListItem.js";
16
16
  import type { ReadonlyArrayOrCollection } from "../core/Collection.js";
17
17
  import type { BasemapLayerListVisibleElementsProperties } from "./BasemapLayerList/BasemapLayerListVisibleElements.js";
@@ -5,7 +5,7 @@ import type GroupInput from "./GroupInput.js";
5
5
  import type { Domain } from "../../../layers/support/domains.js";
6
6
  import type { FieldValue } from "../../../layers/support/fieldUtils.js";
7
7
  import type { EditableInputProperties } from "./EditableInput.js";
8
- import type { FieldInputDataTypes } from "../../support/forms/formUtils.js";
8
+ import type { FieldInputDataTypes } from "../../support/forms/types.js";
9
9
 
10
10
  export interface FieldInputProperties extends EditableInputProperties {}
11
11
 
@@ -8,7 +8,7 @@ import type { WidgetProperties } from "./Widget.js";
8
8
  import type { BatchAttributeFormViewModelEvents, BatchAttributeFormViewModelProperties } from "./BatchAttributeForm/BatchAttributeFormViewModel.js";
9
9
  import type { AttributeFormSupportedLayerInfo } from "./BatchAttributeForm/types.js";
10
10
  import type { VisibleElements, VisibleElementsProperties } from "./BatchAttributeForm/VisibleElements.js";
11
- import type { HeadingLevel } from "./support/Heading.js";
11
+ import type { HeadingLevel } from "./support/types.js";
12
12
 
13
13
  export interface BatchAttributeFormProperties extends WidgetProperties, Partial<Pick<BatchAttributeForm, "activeFeatureIndex" | "disabled" | "features" | "groupDisplay" | "headingLevel" | "layerInfos" | "map" | "readOnly" | "timeZone">> {
14
14
  /**
@@ -11,8 +11,7 @@ import type { BookmarkProperties } from "../webmap/Bookmark.js";
11
11
  import type { WidgetProperties } from "./Widget.js";
12
12
  import type { BookmarksViewModelEvents, BookmarksViewModelProperties } from "./Bookmarks/BookmarksViewModel.js";
13
13
  import type { BookmarkOptions } from "./Bookmarks/types.js";
14
- import type { GoToOverride } from "./support/goToUtils.js";
15
- import type { HeadingLevel } from "./support/Heading.js";
14
+ import type { HeadingLevel, GoToOverride } from "./support/types.js";
16
15
  import type { BookmarksVisibleElementsProperties } from "./Bookmarks/BookmarksVisibleElements.js";
17
16
 
18
17
  export interface BookmarksProperties extends WidgetProperties, IdentifiableMixinProperties, Partial<Pick<Bookmarks, "disabled" | "dragEnabled" | "filterPlaceholder" | "filterText" | "goToOverride" | "headingLevel" | "view">> {
@@ -6,7 +6,7 @@ import type BuildingExplorerViewModel from "./BuildingExplorer/BuildingExplorerV
6
6
  import type { Icon } from "@esri/calcite-components/components/calcite-icon";
7
7
  import type { ReadonlyArrayOrCollection } from "../core/Collection.js";
8
8
  import type { BuildingSceneLayerProperties } from "../layers/BuildingSceneLayer.js";
9
- import type { HeadingLevel } from "./support/Heading.js";
9
+ import type { HeadingLevel } from "./support/types.js";
10
10
  import type { BuildingExplorerViewModelProperties } from "./BuildingExplorer/BuildingExplorerViewModel.js";
11
11
  import type { WidgetProperties } from "./Widget.js";
12
12
 
@@ -30,7 +30,7 @@ export default class CatalogLayerListViewModel extends EventedAccessor {
30
30
  * The collection of [ListItems](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList-ListItem.html) representing the [catalogLayer's](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-CatalogLayerList-CatalogLayerListViewModel.html#catalogLayer)
31
31
  * [CatalogLayer#dynamicGroupLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-CatalogLayer.html#dynamicGroupLayer).
32
32
  *
33
- * @see {@link widgets/CatalogLayerList/CatalogLayerListViewModel#selectedItems}
33
+ * @see [CatalogLayerList#selectedItems](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-CatalogLayerList.html#selectedItems)
34
34
  */
35
35
  get catalogItems(): Collection<ListItem>;
36
36
  /**
@@ -10,7 +10,7 @@ import type { MapViewOrSceneView } from "../views/MapViewOrSceneView.js";
10
10
  import type { WidgetProperties } from "./Widget.js";
11
11
  import type { CatalogLayerListViewModelEvents, CatalogLayerListViewModelProperties } from "./CatalogLayerList/CatalogLayerListViewModel.js";
12
12
  import type { Action, FilterPredicate, ListItemModifier, VisibilityAppearance } from "./LayerList/types.js";
13
- import type { HeadingLevel } from "./support/Heading.js";
13
+ import type { HeadingLevel } from "./support/types.js";
14
14
  import type { ListItemProperties } from "./LayerList/ListItem.js";
15
15
  import type { ReadonlyArrayOrCollection } from "../core/Collection.js";
16
16
  import type { CatalogLayerListVisibleElementsProperties } from "./CatalogLayerList/CatalogLayerListVisibleElements.js";
@@ -3,7 +3,7 @@ import type CompassViewModel from "./Compass/CompassViewModel.js";
3
3
  import type { Icon } from "@esri/calcite-components/components/calcite-icon";
4
4
  import type { MapViewOrSceneView } from "../views/MapViewOrSceneView.js";
5
5
  import type { WidgetProperties } from "./Widget.js";
6
- import type { GoToOverride } from "./support/goToUtils.js";
6
+ import type { GoToOverride } from "./support/types.js";
7
7
  import type { CompassViewModelProperties } from "./Compass/CompassViewModel.js";
8
8
 
9
9
  export interface CompassProperties extends WidgetProperties, Partial<Pick<Compass, "goToOverride" | "view">> {
@@ -15,8 +15,7 @@ import type { MapViewOrSceneView } from "../views/MapViewOrSceneView.js";
15
15
  import type { Mode } from "./types.js";
16
16
  import type { WidgetProperties } from "./Widget.js";
17
17
  import type { ConversionProperties } from "./CoordinateConversion/support/Conversion.js";
18
- import type { GoToOverride } from "./support/goToUtils.js";
19
- import type { HeadingLevel } from "./support/Heading.js";
18
+ import type { HeadingLevel, GoToOverride } from "./support/types.js";
20
19
  import type { FormatProperties } from "./CoordinateConversion/support/Format.js";
21
20
  import type { CIMSymbolProperties } from "../symbols/CIMSymbol.js";
22
21
  import type { PointSymbol3DProperties } from "../symbols/PointSymbol3D.js";
@@ -6,7 +6,7 @@ import type { Icon } from "@esri/calcite-components/components/calcite-icon";
6
6
  import type { WidgetProperties } from "./Widget.js";
7
7
  import type { DaylightViewModelEvents, DaylightViewModelProperties } from "./Daylight/DaylightViewModel.js";
8
8
  import type { DateOrSeason } from "./Daylight/types.js";
9
- import type { HeadingLevel } from "./support/Heading.js";
9
+ import type { HeadingLevel } from "./support/types.js";
10
10
  import type { VisibleElementsProperties } from "./Daylight/VisibleElements.js";
11
11
 
12
12
  /** @deprecated since 4.34. Use the [Daylight component](https://developers.arcgis.com/javascript/latest/references/map-components/arcgis-daylight/) instead. For information on widget deprecation, read about [Esri's move to web components](https://developers.arcgis.com/javascript/latest/components-transition-plan/). */
@@ -1,7 +1,6 @@
1
1
  import type MapView from "../../views/MapView.js";
2
2
  import type { EventedAccessor, EventedMixinProperties } from "../../core/Evented.js";
3
- import type { DirectionalPadAngle } from "./constants.js";
4
- import type { Vector } from "./utils.js";
3
+ import type { DirectionalPadAngle, Vector } from "./types.js";
5
4
  import type { GoTo, GoToProperties } from "../support/GoTo.js";
6
5
 
7
6
  export interface DirectionalPadViewModelProperties extends EventedMixinProperties, GoToProperties, Partial<Pick<DirectionalPadViewModel, "disabled" | "rotation" | "view">> {}
@@ -8,4 +8,6 @@ export interface Vector {
8
8
  readonly x: number;
9
9
  /** Y coordinate */
10
10
  readonly y: number;
11
- }
11
+ }
12
+
13
+ export type DirectionalPadAngle = -45 | 0 | 45 | -90 | 90 | -135 | 180 | 135;
@@ -9,8 +9,7 @@ import type { RouteLayerSolveResult } from "../layers/types.js";
9
9
  import type { SaveAsOptions } from "../layers/mixins/properties/ILayerWithSave.js";
10
10
  import type { MapViewOrSceneView } from "../views/MapViewOrSceneView.js";
11
11
  import type { SearchProperties } from "./Search.js";
12
- import type { GoToOverride } from "./support/goToUtils.js";
13
- import type { HeadingLevel } from "./support/Heading.js";
12
+ import type { HeadingLevel, GoToOverride } from "./support/types.js";
14
13
  import type { DirectionsViewModelProperties } from "./Directions/DirectionsViewModel.js";
15
14
  import type { DirectionsVisibleElementsProperties } from "./Directions/DirectionsVisibleElements.js";
16
15
  import type { WidgetProperties } from "./Widget.js";
@@ -15,8 +15,7 @@ import type SketchViewModel from "../Sketch/SketchViewModel.js";
15
15
  import type { EventedAccessor, EventedMixinProperties } from "../../core/Evented.js";
16
16
  import type { AnyEditingTemplateInfo } from "../../editing/types.js";
17
17
  import type { MapViewOrSceneView } from "../../views/MapViewOrSceneView.js";
18
- import type { CreationInfo, EditorLayerUnion, EditorSketchCreateEvent, EditorSketchUpdateEvent, FailedOperation, FeatureInfo, LayerInfo, SplitFeatureWorkflowStep, State } from "./types.js";
19
- import type { SplitterGeometry, SplitterGeometryType } from "./support/splitFeatureUtils.js";
18
+ import type { CreationInfo, EditorLayerUnion, EditorSketchCreateEvent, EditorSketchUpdateEvent, FailedOperation, FeatureInfo, LayerInfo, SplitFeatureWorkflowStep, State, SplitterGeometryType, SplitterGeometry } from "./types.js";
20
19
  import type { AttachmentsViewModelProperties } from "../Attachments/AttachmentsViewModel.js";
21
20
  import type { FeatureTemplatesViewModelProperties } from "../FeatureTemplates/FeatureTemplatesViewModel.js";
22
21
  import type { SketchLabelOptionsProperties } from "../../views/interactive/sketch/SketchLabelOptions.js";
@@ -2,9 +2,8 @@ import type Graphic from "../../Graphic.js";
2
2
  import type SplitFeatureWorkflowData from "./SplitFeatureWorkflowData.js";
3
3
  import type Workflow from "./Workflow.js";
4
4
  import type FeatureFormViewModel from "../FeatureForm/FeatureFormViewModel.js";
5
- import type { EditorLayerUnion, SplitFeatureWorkflowStep } from "./types.js";
5
+ import type { EditorLayerUnion, SplitFeatureWorkflowStep, SplitterGeometryType } from "./types.js";
6
6
  import type { WorkflowProperties } from "./Workflow.js";
7
- import type { SplitterGeometryType } from "./support/splitFeatureUtils.js";
8
7
 
9
8
  export interface SplitFeatureWorkflowProperties extends WorkflowProperties, Partial<Pick<SplitFeatureWorkflow, "defaultSplitterGeometryType">> {}
10
9
 
@@ -3,7 +3,7 @@ import type Accessor from "../../core/Accessor.js";
3
3
  import type EditorViewModel from "./EditorViewModel.js";
4
4
  import type Edits from "./Edits.js";
5
5
  import type EditorItem from "./support/EditorItem.js";
6
- import type { SplitterGeometry } from "./support/splitFeatureUtils.js";
6
+ import type { SplitterGeometry } from "./types.js";
7
7
 
8
8
  /**
9
9
  * This object contains data for the [SplitFeatureWorkflow](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor-SplitFeatureWorkflow.html).
@@ -2,6 +2,9 @@ import type Graphic from "../../Graphic.js";
2
2
  import type EsriError from "../../core/Error.js";
3
3
  import type FormTemplate from "../../form/FormTemplate.js";
4
4
  import type Mesh from "../../geometry/Mesh.js";
5
+ import type Point from "../../geometry/Point.js";
6
+ import type Polygon from "../../geometry/Polygon.js";
7
+ import type Polyline from "../../geometry/Polyline.js";
5
8
  import type SubtypeGroupLayer from "../../layers/SubtypeGroupLayer.js";
6
9
  import type CatalogFootprintLayer from "../../layers/catalog/CatalogFootprintLayer.js";
7
10
  import type KnowledgeGraphSublayer from "../../layers/knowledgeGraph/KnowledgeGraphSublayer.js";
@@ -162,4 +165,8 @@ export interface EditorSketchUpdateEvent extends EditorSketchEventBase {
162
165
  /** Detailed information returned within the "sketch-update" event. */
163
166
  detail: SketchViewModelEvents["update"];
164
167
  type: "sketch-update";
165
- }
168
+ }
169
+
170
+ export type SplitterGeometry = Point | Polyline | Polygon;
171
+
172
+ export type SplitterGeometryType = "point" | "polyline" | "polygon";
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../Color.js";import t from"../../Graphic.js";import{isSome as r,equals as n,addMany as o}from"../../core/arrayUtils.js";import{createTask as a}from"../../core/asyncUtils.js";import"../../core/has.js";import i from"../../core/Error.js";import{handlesGroup as s,makeHandle as l,abortHandle as c}from"../../core/handleUtils.js";import{clone as u}from"../../core/lang.js";import d from"../../core/Logger.js";import{getOrCreateMapValue as p}from"../../core/MapUtils.js";import{debounce as f,isPromiseLike as y,throwIfAborted as m,whenOrAbort as h}from"../../core/promiseUtils.js";import{watch as b,on as g,whenOnce as w}from"../../core/reactiveUtils.js";import{px2pt as I}from"../../core/screenUtils.js";import{addMany as v}from"../../core/SetUtils.js";import{diff as T}from"../../core/accessorSupport/diffUtils.js";import{isSharedTemplateOrMetadata as S,isSharedGroupTemplate as F,isSharedTemplate as j,isSharedPresetTemplate as k,isStandardFeatureTemplate as A,isSharedFeatureTemplate as L}from"../../editing/templateUtils.js";import{getSharedTemplateProvider as U}from"../../editing/sharedTemplates/SharedTemplateProvider.js";import V from"../../layers/GraphicsLayer.js";import{featureHasFields as M,fixFields as O,getDisplayFieldName as x}from"../../layers/support/fieldUtils.js";import{isSubtypeSublayer as q,isGraphicsLayer as z}from"../../layers/support/layerUtils.js";import{calculateTolerance as E}from"../../renderers/support/clickToleranceUtils.js";import{meterIn as P}from"../../renderers/support/lengthUtils.js";import{isRenderer as C}from"../../renderers/support/typeUtils.js";import{getTransformationType as D}from"../../renderers/visualVariables/support/sizeVariableUtils.js";import{isGraphic as R}from"../../support/guards.js";import G from"../../symbols/SimpleFillSymbol.js";import B from"../../symbols/SimpleLineSymbol.js";import N from"../../symbols/SimpleMarkerSymbol.js";import{to3D as Z}from"../../symbols/support/symbolConversion.js";import{getDisplayedSymbol as Q}from"../../symbols/support/symbolUtils.js";import{getServices as W}from"../../undoredo/support/Services.js";import{GraphicState as $}from"../../views/3d/layers/graphics/GraphicState.js";import{defaultDrawingMode as J}from"../../views/draw/DrawingMode.js";import{createQueryGeometry as H}from"../../views/support/drapedUtils.js";import{filterGraphicHits as K,hitTestSelectSimilarDistance as X}from"../../views/support/hitTestSelectUtils.js";import{dependencySort as Y}from"./support/dependencySort.js";import{isDrawGraphicTool as _}from"../Sketch/support/sketchUtils.js";const ee=()=>d.getLogger("esri.widgets.Editor.workflowUtils");function te(e){return se(e)||ae(e)}function re(e){return!!e&&"features"in e}function ne(e){return null!=e&&"create-features"===e.type}function oe(e){return!!e&&"feature"in e}function ae(e){return null!=e&&"update-features"===e.type}function ie(e){return null!=e&&"update-feature"===e.type}function se(e){return null!=e&&e.type.includes("update-")&&"fullFeature"in e}function le(e){return null!=e&&"update"===e.type}function ce(e){return null!=e&&"merge-features"===e.type}function ue(e){return null!=e&&"split-feature"===e.type}function de(e){const t=e?.type;return"update-feature"===t||"update-table-record"===t||"update-features"===t||"split-feature"===t}function pe(e){return"merge"===e?.type}function fe(e){return"split"===e?.type}function ye(e){return ce(e)||ue(e)}function me(e){return"update-multiple"===e?.type}function he(e){const t=e&&"renderer"in e?e.renderer:null;if(!Se(t))return{rotation:null,size:null};const r=t.getVisualVariablesForType("rotation").filter(e=>(!e.axis||"heading"===e.axis)&&e.field&&!e.valueExpression),n=t.getVisualVariablesForType("size").filter(e=>e.field&&!e.useSymbolValue&&!e.valueExpression&&"real-world-size"===D(e));return{rotation:1===r.length?r[0]:null,size:1===n.length?n[0]:null}}function be(e){const t=e.sourceLayer;if(!(t&&"renderer"in t&&Se(t.renderer)))return{rotation:null,size:null};const{rotation:r,size:n}=he(t);let o=null,a=null;if(r){const e=t.fields?.filter(e=>e.name===r.field),n=1===e?.length?e[0]:null;o=ge(r,n)}if(n){const e=t.fields?.filter(e=>e.name===n.field),r=1===e?.length?e[0]:null;a=ve(n,r)}return{rotation:o,size:a}}function ge(e,t){const r="heading"===(e.axis||"heading")&&"arithmetic"===e.rotationType?-1:1,n=t?.type??"double",o={initial:0,current:0};return{field:e.field,fieldType:n,getDefaultValue:()=>Promise.resolve(0),getValue:e=>(o.current=o.initial-r*e,Te((o.current+360)%360,n)),setInitialValue:e=>{o.initial=e,o.current=0},isUpdatingInteractively:!1,rotationType:e.rotationType??"geographic"}}function we(e,t){switch(t){case"width":return e[0];case"depth":return e[1];case"height":return e[2];default:return e[2]||e[1]||e[0]}}async function Ie(e,t,r){if(null==t)return 0;const{symbol:n}=Z(t);if(null==n||"web-style"===n.type||"cim"===n.type)return 0;const o=n.symbolLayers.at(0);if(!o)return 0;switch(o.type){case"icon":{const{computeIconLayerResourceSize:e}=await import("../../symbols/support/symbolLayerUtils.js");return Math.min(ut.icon,(await e(o,ut.icon))[0])||ut.icon}case"text":return ut.text;case"line":return ut.line;case"object":{const{computeObjectLayerResourceSize:t}=await import("../../symbols/support/symbolLayerUtils.js");return we(await t(o,e.scale/ut.viewScaleSizeFactor),r)}case"path":case"extrude":return e.scale/ut.viewScaleSizeFactor;default:return 0}}function ve(e,t){const r=e.axis,n=t?.type??"double",o={initial:0,current:0},a=P[e.valueUnit]??1;let i;return i="area"===e.valueRepresentation?e=>(e*a/2)**2*Math.PI:"radius"===e.valueRepresentation||"distance"===e.valueRepresentation?e=>e*a/2:e=>e*a,{field:e.field,fieldType:n,getDefaultValue:async(e,t)=>Te(i(await Ie(t,e,r)),n),getValue:(e,t)=>(o.initial||(o.initial=t.pixelSizeAt(t.center)),o.current=o.initial*e,Te(o.current,n)),setInitialValue:e=>{o.initial=e,o.current=0},isUpdatingInteractively:!1,displayUnit:ft(e.valueUnit),axis:e.axis}}function Te(e,t){switch(t){case"small-integer":case"integer":case"long":return Math.round(e);case"double":case"single":return e;default:return 0}}function Se(e){if(!C(e))return!1;switch(e?.type){case"class-breaks":case"simple":case"unique-value":case"dot-density":case"dictionary":case"pie-chart":return!0;default:return!1}}async function Fe(e,t,r){const n=await Q(e,{useSourceLayer:!0,ignoreGraphicSymbol:!0,webStyleCache:t,scale:r});null!=T(e.symbol,n)&&(e.symbol=n)}function je(e,t){if(!e||!t)throw new Error("no geometry type");if("multipatch"===e)return{tool:"mesh",createOptions:{mode:"hybrid"}};const r=new Map;r.set("circle",{mode:"freehand"}),r.set("rectangle",{mode:"freehand"});const n={mode:J,optionsPerTool:r};if(S(t)){const o=t.defaultTool,a=F(t)?t.definition?.inputGeometryType??e:e;switch(o){case"freehand":case"stream-line":return{tool:"polyline"===a?"freehandPolyline":"freehandPolygon",createOptions:n};case"autocomplete-freehand-polygons":case"stream-polygon":return{tool:"freehandPolygon",createOptions:n};case"autocomplete-polygons":case"difference-polygon":case"create-structures":case"polygon":case"trace":return{tool:"polygon"===a?"polygon":"polyline",createOptions:n};case"circle":return r.get("circle").preserveAspectRatio=!0,{tool:"circle",createOptions:n};case"ellipse":return r.get("circle").preserveAspectRatio=!1,{tool:"circle",createOptions:n};case"create-points-along-line":case"multipoint":return{tool:"multipoint",createOptions:n};case"line":case"radial-line":case"right-angle-line":case"split":case"two-point-line":return{tool:"polyline",createOptions:n};case"rectangle":case"regular-polygon":case"right-angle-polygon":return{tool:"rectangle",createOptions:n};case"elevation-point-from-contour":case"elevation-point-from-dem":case"parcel-seed":case"point":case"point-and-rotation":case"point-at-end-of-line":return{tool:"point",createOptions:n}}}else{const o=t.drawingTool;if("circle"===o||"ellipse"===o)return r.get("circle").preserveAspectRatio="circle"===o,{tool:"circle",createOptions:n};if("rectangle"===o)return{tool:"rectangle",createOptions:n};if("freehand"===o)return{tool:"polygon"===e?"freehandPolygon":"freehandPolyline",createOptions:n}}return{tool:e,createOptions:n}}async function ke(e,t,r,n){const{creationInfo:o,fullTemplate:a}=r;if(!o)throw new i("featureworkflow","No creation info provided.");const s=o.layer,l=Ze(a,o.attributeOverrides),{view:c}=e,u="2d"===c?.type;F(a)||k(a)||await Qe(e,s,l,n,u?c.scale:null);const{capabilities:d}=s;t.elevationInfo=s.elevationInfo;const p=je(s.geometryType,a);e.defaultCreateOptions={graphicProperties:{attributes:l,sourceLayer:s},mode:p.createOptions.mode,optionsPerTool:p.createOptions.optionsPerTool,preserveAspectRatio:p.createOptions.preserveAspectRatio,hasZ:d.data.supportsZ,defaultZ:(u?d.editing.zDefault:null)??e.defaultCreateOptions.defaultZ},null==o.geometryToPlace?await e.create(p.tool):await e.place(o.geometryToPlace,{graphicProperties:{attributes:l,sourceLayer:s}})}async function Ae(e){return s([Le(e),Ue(e)])}function Le({creationAttributes:e,data:t,sketchViewModel:r,view:n,webStyleCache:o}){const{creationInfo:a}=t,{fullTemplate:i}=t;if(!a||"2d"!==n?.type||F(i)||k(i))return null;const s=f(t=>Qe(r,a.layer,e,o,t));return b(()=>n.scale,e=>s(e))}function Ue({data:t,sketchViewModel:r,view:n}){const{templateExecutorInfo:o}=t;if(!o)return null;const a=r.activeComponent;if(!n||!_(a))return ee().error(new i("featureworkflow","Failed to set up template feedback.")),null;const c=new V({effect:"saturate(0.6) opacity(0.8)",listMode:"hide",title:"Shared Template Feedback Graphics"});n.map?.add(c);const{executor:u,serviceLayersById:d}=o,p=n.theme?.accentColor??new e([255,165,0,1]);return s([g(()=>a,["cursor-update","vertex-add"],()=>{c.removeAll();const e=a.graphic?.geometry;if(!e||!Ve(e))return;const t=u(e,"digitizing");if(!y(t))for(const r of t.edits){const e=d.get(r.id);if(e&&r.addFeatures&&0!==r.addFeatures.length)for(const t of e)if(!t.isTable)for(const e of r.addFeatures){const t=Me(e,p);t&&c.add(t)}}}),l(()=>{n.map.remove(c),c.destroy()})])}function Ve(e){switch(e.type){case"point":case"multipoint":return!0;case"polyline":return e.paths[0].length>1;case"polygon":{const t=e.rings[0];return n(t.at(0),t.at(-1))?t.length>2:t.length>1}default:return!1}}function Me(e,r){let n=null;switch(e.geometry?.type){case"point":case"multipoint":n=new N({angle:0,color:r,outline:new B({cap:"round",color:r,join:"round",miterLimit:1,style:"solid",width:1}),path:"undefined",size:8,style:"circle",xoffset:0,yoffset:0});break;case"polygon":n=new G({color:r,outline:new B({cap:"round",color:r,join:"round",miterLimit:1,style:"solid",width:3}),style:"none"});break;case"polyline":n=new B({cap:"round",color:r,join:"round",miterLimit:1,style:"solid",width:2});break;default:return null}return new t({geometry:e.geometry,symbol:n,attributes:{...e.attributes}})}function Oe(e,t){const r=W(t),n=q(e)?e.parent:e;return r.tablesAndLayersLookup.get(n)}function xe(e,t){const r=Oe(e,t);if(!r)return new Map;const n=new Map;for(const o of r.layersAndTables)p(n,o.layerId,()=>[]).push(o);return n}function qe(e){const t=e.objectIdField,r=e.globalIdField??"";return{id:e.layerId,identifierFields:{objectIdField:t,globalIdField:r},addFeatures:[],deleteAttachments:[],addAttachments:[],deleteFeatures:[],updateFeatures:[]}}function ze(e){const{edits:t,serviceInfo:n,view:o,findOriginalFeature:a}=e,i=Ee(n.layersAndTables),s=n.layersAndTables.toArray(),{allEditData:l,editDataByLayerIdMap:c,editDataByIdMap:u}=Ce(t,i,a),d=De(l,Pe(s,c),c);if(o&&Be(l,d,o),0===d.length)return t;const p=Y(d,{continueOnCircularDependency:!0}).map(e=>u.get(e)).filter(r),f=new Map;for(const r of p)f.set(r.uniqueId,r);const y=[];for(const r of l)f.has(r.uniqueId)||y.push(r);const m=[];let h=null;for(const r of p){const{layer:e}=r;switch(null==h?h=qe(e):h.id!==e.layerId&&(m.push(h),h=qe(e)),r.operationType){case"add":case"modify":h.addFeatures.push(r.after);break;case"delete":h.deleteFeatures.push(r.before)}}null!==h&&m.push(h);for(const r of y){const e=r.layer.layerId,t=m.find(t=>t.id===e)??qe(r.layer);switch(m.includes(t)||m.push(t),r.operationType){case"add":t.addFeatures.push(r.after);break;case"modify":t.updateFeatures.push(r.after);break;case"delete":t.deleteFeatures.push(r.before);break;case"deleteAttachment":t.deleteAttachments.push(r.attachmentId);break;case"addAttachment":t.addAttachments.push(r.attachment)}}for(const r of m)void 0!==r.deleteAttachments&&0===r.deleteAttachments.length&&delete r.deleteAttachments,void 0!==r.addAttachments&&0===r.addAttachments.length&&delete r.addAttachments;return m}function Ee(e){const t=new Map;for(const r of e)t.set(r.layerId,r);return t}function Pe(e,t){const r=new Map;for(const n of e)for(const e of n.relationships??[])if(r.set(Re(n,e),""),t.has(e.relatedTableId)){const o=t.get(e.relatedTableId);if(o.length>0)for(const t of o[0].layer.relationships??[])if(t.id===e.id){r.set(Re(n,e),t.keyField);break}}return r}function Ce(e,t,r){const n=new Map,o=[],a=new Map;let s=1;for(const l of e){const e=[],c=t.get(l.id);if(!c)throw new i("featureworkflow",`Failed to prepare applyEdits payload. Layer with id ${l.id} not found.`);for(const t of l.addFeatures??[])e.push({uniqueId:"T"+s++,operationType:"add",layer:c,after:t});for(const t of l.deleteFeatures??[])e.push({uniqueId:"T"+s++,operationType:"delete",before:t,layer:c});for(const t of l.deleteAttachments??[])e.push({uniqueId:"T"+s++,operationType:"deleteAttachment",attachmentId:t,layer:c});for(const t of l.addAttachments??[])e.push({uniqueId:"T"+s++,operationType:"addAttachment",attachment:t,layer:c});for(const t of l.updateFeatures??[])e.push({uniqueId:"T"+s++,operationType:"modify",before:r(t),after:t,layer:c});n.set(c.layerId,e);for(const t of e)o.push(t),a.set(t.uniqueId,t)}return{allEditData:o,editDataByIdMap:a,editDataByLayerIdMap:n}}function De(e,t,r){const n=[];for(const o of e){const e=o.layer.relationships??[],{uniqueId:a}=o;for(const i of e){const e=i.keyField;if("origin"===i.role){const s=r.get(i.relatedTableId);if(!s||0===s.length)continue;const l=Re(o.layer,i),c=t.get(l);if(void 0===c||""===c)continue;switch(o.operationType){case"add":for(const t of s)t!==o&&("add"!==t.operationType&&"modify"!==t.operationType||t.after.attributes[c]===o.after.attributes[e]&&n.push([a,t.uniqueId]));break;case"modify":if(o.before.attributes[e]!==o.after.attributes[e])for(const t of s){const r=t.uniqueId;t!==o&&("delete"===t.operationType?t.before.attributes[c]===o.before.attributes[e]?n.push([r,a]):t.before.attributes[c]===o.after.attributes[e]&&n.push([a,r]):"add"===t.operationType?t.after.attributes[c]===o.after.attributes[e]?n.push([a,r]):t.after.attributes[c]===o.before.attributes[e]&&n.push([r,a]):"modify"===t.operationType&&(t.before.attributes[c]!==t.after.attributes[c]?t.after.attributes[c]===o.after.attributes[e]?n.push([a,r]):n.push([r,a]):n.push([a,r])))}break;case"delete":for(const t of s)t!==o&&("delete"!==t.operationType&&"modify"!==t.operationType||t.before.attributes[c]===o.before.attributes[e]&&n.push([t.uniqueId,a]))}}}}return n}function Re(e,t){return`${e.layerId}:${t.id}`}function Ge(e,t){return!!(t?.map&&"utilityNetworks"in t.map&&t.map.utilityNetworks?.length&&t.map.utilityNetworks.some(t=>!(!t.loaded||!e.url?.startsWith(t.featureServiceUrl)||e.layerId!==t.networkSystemLayers.associationsTableId)))}function Be(e,t,r){const n=[];for(const a of e)Ge(a.layer,r)&&n.push(a);if(0===n.length)return;let o=[];for(const a of n){const r=a.layer;switch(a.operationType){case"delete":o=[...Ne(a.before.attributes[r.fieldsIndex.get("fromglobalid").name],e),...Ne(a.before.attributes[r.fieldsIndex.get("toglobalid").name],e)];for(const e of o)t.push([a.uniqueId,e.uniqueId]);break;case"add":o=[...Ne(a.after.attributes[r.fieldsIndex.get("fromglobalid").name],e),...Ne(a.after.attributes[r.fieldsIndex.get("toglobalid").name],e)];for(const e of o)t.push([e.uniqueId,a.uniqueId])}}}function Ne(e,t){const r=[],n=t.filter(({layer:e})=>""!==e.globalIdField&&null!=e.globalIdField);for(const o of n){const t=o.layer.globalIdField;("before"in o&&o.before?.attributes[t]===e||"after"in o&&o.after?.attributes[t]===e)&&r.push(o)}return r}function Ze(e,t={}){return F(e)||k(e)?{}:A(e)?{...e.prototype.attributes,...t}:L(e)?{...e.definition?.defaultValues,...t}:{...t}}async function Qe(e,r,n,o,a){const i=new t({sourceLayer:r,attributes:n}),{rotation:s,size:l}=be(i);let c=await Q(i,{useSourceLayer:!0,webStyleCache:o,scale:a}),u=!1;for(const t of[l,s]){if(null==t)continue;null==n[t.field]&&(n[t.field]=await t.getDefaultValue(c,e.view),u=!0)}switch(u&&(c=await Q(i,{useSourceLayer:!0,webStyleCache:o,scale:a})),c?.type){case"simple-fill":case"polygon-3d":e.polygonSymbol=c;break;case"simple-line":case"line-3d":e.polylineSymbol=c;break;case"simple-marker":case"picture-marker":case"point-3d":case"cim":e.pointSymbol=c;break;case"mesh-3d":e.meshSymbol=c}We(e.tooltipOptions,l,s)}function We(e,t,r){e.visualVariables=null!=t||null!=r?{size:null!=t?{unit:t.displayUnit,axis:t.axis,valueType:t.fieldType}:null,rotation:null!=r?{valueType:r.fieldType,rotationType:r.rotationType??"geographic"}:null}:null}function $e(e,t){return e.find(e=>e.layer===t)}function Je(e,t){const r=$e(e,t);if(null==r)throw new i("no-editorItem-found","The EditorViewModel provided did not have an EditorItem associated with the specified layer");return r}function He(e,t){return e?.find(e=>e.layer===t)}async function Ke(e,t,r,n){switch(t.type){case"3d":return Xe(e,t,r,n);case"2d":return Ye(e,t,r,n)}}async function Xe(e,t,r,n){if(0===e.length)return[];const{updatable:a,graphicsByLayer:i}=await r.defer(async()=>{const{results:o}=await h(X(t,r),n),a=new Map,i=e=>{const t=e.layer,r=a.get(t);if(!r){const e=new Array;return a.set(t,e),e}return r};K(o).forEach(({graphic:e})=>i(e).push(e));const s=e.filter(({capabilities:e,layer:t})=>e.update.enabled&&a.has(t));return 0!==s.length&&r.stopPropagation(),{updatable:s,graphicsByLayer:a}});return h(Promise.allSettled(a.map(async({layer:e})=>{const t=i.get(e),r=_e(e);if(t.every(e=>M(e,r)))return t;const a=[];for(const n of t){a.push(n.getObjectId());const e=Object.keys(n.attributes);o(r,e)}const s=e.createQuery();return s.returnGeometry=!1,s.objectIds=a,s.outFields=O(e.fieldsIndex,r),e.queryFeatures(s,{signal:n}).then(({features:e})=>e)})),n)}async function Ye(e,t,r,n){if(0===e.length)return[];const{mapPoint:o}=r;if(null==o)return[];let a=null;const i=await r.defer(async()=>{const{results:o}=await h(t.hitTest(r),n);if(0===o.length)return[];const i=new Set;a=K(o),a.forEach(({graphic:e})=>e&&i.add(e.layer));const s=e.filter(e=>i.has(e.layer)&&e.supportsUpdateWorkflow);return s.length>0&&r.stopPropagation(),s});return h(Promise.allSettled(i.map(async({layer:e})=>{const i=e.createQuery();i.returnGeometry=!0,i.outFields=_e(e);const s="renderer"in e?E({renderer:e.renderer,pointerType:r.pointerType}):0;i.geometry=H(o,s,t),i.outSpatialReference=t.spatialReference;const{features:l}=await e.queryFeatures(i,{signal:n});return a?.forEach(({graphic:t})=>{t.layer!==e||l.some(e=>e.getObjectId()===t.getObjectId())||l.push(t)}),l})),n)}function _e(e){return O(e.fieldsIndex,[e.objectIdField,x({displayField:"displayField"in e?e.displayField:null,fields:e.fields})])}async function et(e,t,n,o){return tt(e.map(e=>e.getObjectId()??e.attributes[t.objectIdField]).filter(r),t,n,o)}async function tt(e,t,r,n){const o=t.createQuery();o.objectIds=e,o.outFields=["*"],o.returnM=t.capabilities.data.supportsM,o.returnZ=t.capabilities.data.supportsZ,o.returnGeometry=!0,"scene"===t.type&&null!=t.infoFor3D||(o.outSpatialReference=r);const a=await t.queryFeatures(o,{signal:n});return m(n),a.features}async function rt(e){const{graphic:t,sketchViewModel:r,sourceLayer:n,visualVariables:o}=e;await nt(e);const a={multipleSelectionEnabled:!1};return"point"===n.geometryType&&(a.enableRotation=null!=o.rotation,a.enableScaling=null!=o.size),r.update(t,a)}async function nt(e){const{graphic:t,sketchLayer:r,sketchViewModel:n,sourceLayer:o,visualVariables:a,webStyleCache:i}=e;let s=!1;const{rotation:l,size:c}=a;for(const u of[l,c]){if(null==u)continue;const e=t.getAttribute(u.field);if(null!=e)u.setInitialValue(e);else{const e=await u.getDefaultValue(t.symbol,n.view);u.setInitialValue(e),t.setAttribute(u.field,e),s=!0}}if(s){const e="2d"===n.view?.type?n.view.scale:null;await Fe(t,i,e)}We(n.tooltipOptions,c,l),r.elevationInfo=o.elevationInfo}function ot(e){return null==e||"rotate-start"!==e.type&&"rotate"!==e.type&&"rotate-stop"!==e.type?null:e}function at(e){return null==e||"scale-start"!==e.type&&"scale"!==e.type&&"scale-stop"!==e.type?null:e}function it(e,t,r,n){if(null==t.geometry||"point"!==t.geometry?.type)return!1;const o=t.attributes;let a=!1;const i=n.rotation,s=ot(r.toolEventInfo);if(null!=i&&null!=s){const{field:r,getValue:n}=i;if("rotate-stop"===s.type)i.isUpdatingInteractively=!1,i.setInitialValue(t.getAttribute(r));else{i.isUpdatingInteractively=!0;const l=n(s.angle,e);l!==o[r]&&t.setAttribute(r,l),a=!0}}const l=n.size,c=at(r.toolEventInfo);if(null!=l&&null!=c){const{field:r,getValue:n}=l;if("scale-stop"===c.type)l.isUpdatingInteractively=!1,l.setInitialValue(t.getAttribute(r));else{l.isUpdatingInteractively=!0;const i=n(c.xScale,e);i!==o[r]&&t.setAttribute(r,i),a=!0}}return a}async function st({feature:e,featureClone:t,visualVariableAttributes:r,sketchLayer:n,sketchViewModel:o,view:a,onUpdate:i,webStyleCache:u,addUpdatingPromise:d,addHandle:p}){await Fe(t,u,"2d"===a.type?a.scale:null);let y=null;if("2d"===o?.view?.type){const e=f(e=>Fe(t,u,e));y=b(()=>o?.view?.scale,t=>e(t))}const m=t.sourceLayer,h=ht(a,m);await rt({graphic:t,sketchLayer:n,sketchViewModel:o,sourceLayer:m,visualVariables:r,webStyleCache:u});let g=null;h.then(e=>g=e).catch(()=>{});const I=r.size,v=r.rotation,T=b(()=>e.attributes,async e=>{let r=!1;for(const n in e){const o=e[n];o!==t.getAttribute(n)&&(t.setAttribute(n,o),null==I||I.isUpdatingInteractively||I.field!==n||I.setInitialValue(o),null==v||v.isUpdatingInteractively||v.field!==n||v.setInitialValue(o),(null==g||g.requiredFields.includes(n))&&(r=!0))}r&&await Fe(t,u,"2d"===a.type?a.scale:null)}),S=o.on("update",async e=>{const t=e.graphics[0],s={graphic:t,sketchLayer:n,sketchViewModel:o,sourceLayer:m,visualVariables:r,webStyleCache:u};if("complete"===e.state){if(null===a.activeTool)return rt(s);const e=new AbortController,t=c(e);return p(t),d(w(()=>null===a.activeTool,e.signal).then(async()=>{if(!e.signal.aborted)return e.abort(),rt(s)}))}it(a,t,e,r)&&await Fe(t,u,"2d"===a.type?a.scale:null),i(gt(t),e)}),F=o.on(["undo","redo"],e=>{i(gt(e.graphics[0]),e)});return s([F,S,l(()=>o.cancel()),T,y])}async function lt(e,t,r,n){e.add(n);const o=r.sourceLayer,i=r.layer??o,c=r.getAttribute(o.objectIdField);let u=null;function d(e){u?.abort(),z(i)?r.visible=e:u=a(async r=>{const n=await ht(t,i);m(r),n.setVisibility?.(c,e)})}return await ct(t,n),d(!1),s([l(async()=>{d(!0);try{if(!t.destroyed){const e=await ht(t,i).catch(()=>{});e&&!e.destroyed&&await w(()=>!e.updating)}}finally{e.remove(n)}})])}async function ct(e,t){if("3d"===e.type){const r=new $({graphic:t}),n=e.trackGraphicState(r);await w(()=>r.displaying||r.error),n.remove()}else await w(()=>t.visible)}const ut={icon:I(24),text:I(12),line:I(1),viewScaleSizeFactor:100};function dt(e,t,r){let n=!1;return e.filter(e=>!!n||(n=e===t,n)).map(e=>r[e]())}function pt(e,t){e.viewModel.syncFeatureTemplates();const r=e.creationInfo;if("awaiting-feature-creation-info"===t[0].id&&r){const n=r.layer,o=e.viewModel.getTemplatesForLayer(n);1===o.length&&"scene"!==n.type&&(r.template=o[0],t.shift())}return t}function ft(e){return"unknown"===e?null:e}function yt(e){e.filesEnabled=!0,e.mode="view",e.capabilities={editing:!0,operations:{add:!0,update:!0,delete:!0}}}const mt=e=>e.includes("-stop")||e.includes("vertex-"),ht=(e,t)=>{const r="subtype-sublayer"===t.type?t.parent:t;return e.whenLayerView(r)};function bt(e){return"createInteractiveEditSession"in e}function gt(e){const t=e.geometry;if("mesh"===t?.type){const r=e.cloneShallow();return r.attributes=u(e.attributes),r.geometry=t.cloneShallow(),r.geometry.transform=t.transform?.clone()??null,r}return e.clone()}function wt(e){return e.acquireCursor("progress")}async function It(e,t){const{template:r}=e;if(null==r)return null;if(j(r))return r.load();if(S(r)){const e=(await import("../../editing/sharedTemplates/SharedTemplate.js")).default,n=U(t,{makeSharedTemplateFromJSON:t=>e.fromJSON(t)}),o=await n.getTemplates({templateIds:[r.templateId],featureService:r.featureService});if(0===o.length)throw new i("editor:failed-to-load-template","Unable to load the provided template");return o[0].load()}return r}function vt(e){for(const t of e){const{destinationGraphic:e,destinationField:r,sourceGraphic:n,sourceField:o}=t;e.setAttribute(r,n.getAttribute(o))}}function Tt(e){const t=e.templateExecutorInfo?.completionResults;return t?.length?(t.forEach(e=>vt(e.relationships)),t.flatMap(e=>e.edits)):null}function St(e){const t=le(e)?e.activeWorkflow:e;if(null==t)return[];if(ae(t))return t.data.layers;const r=t.layer;return r?[r]:[]}function Ft({attributes:e},t){const r=new Set;r.add(t.objectIdField),"uniqueIdFields"in t&&t.uniqueIdFields&&t.uniqueIdFields.length>0&&v(r,t.uniqueIdFields);const n={};for(const o of r)null!=e[o]&&(n[o]=e[o]);if("scene"===t.type&&null!=t.infoFor3D){const r=t.associatedLayer?.globalIdField;null!=r&&(e[r]=e[r])}return n}function jt(e){if(!kt(e))return e;const t=new Map;for(const r of e){const e=r.getObjectId();if(null!=e){const n=r.sourceLayer??r.layer;p(t,n,()=>[]).push(e)}}return Array.from(t.entries()).map(([e,t])=>({layer:e,objectIds:t}))}function kt(e){return 0===e.length||R(e[0])}export{Be as appendAllUtilityNetworkAssociationRelationships,pt as avoidFeatureTemplateSelectionWithOnlyOneItem,bt as canCreateInteractiveEditSession,gt as cloneGraphicExceptMesh,Ee as createLayerIdMap,Pe as createRelationshipKeyMap,je as createToolFromGeometryType,dt as createWorkflowSteps,Ke as fetchCandidates,et as fetchFullFeatures,tt as fetchFullFeaturesByObjectId,De as findAllDependencies,Ne as findChangesByGlobalId,$e as findEditorItemForLayer,Je as findEditorItemForLayerOrThrow,He as findLayerInfo,Re as generateHashForRelationship,Ze as getCreationAttributes,It as getFullTemplateForCreationInfo,St as getLayersFromWorkflow,ge as getRotationVariableAttribute,Tt as getServiceEditsFromWorkflowData,Oe as getServiceInfoForLayer,xe as getServiceLayersById,ve as getSizeVariableAttribute,be as getVisualVariableAttributes,he as getVisualVariablesForLayer,te as isAnyUpdateLeafWorkflow,re as isBatchAttributeFormViewModel,ne as isCreateFeaturesWorkflow,oe as isFeatureFormViewModel,kt as isGraphicsArray,ce as isMergeFeaturesWorkflow,pe as isMergeWorkflowOptions,de as isParentWorkflow,ue as isSplitFeatureWorkflow,fe as isSplitWorkflowOptions,mt as isTerminalUpdateEventType,ie as isUpdateFeatureWorkflow,ae as isUpdateFeaturesWorkflow,me as isUpdateFeaturesWorkflowOptions,se as isUpdateRecordWorkflow,le as isUpdateWorkflow,Ge as isUtilityNetworkAssociationsTable,Ft as makeMinimalAttributes,ze as orderEditsByRelationshipDependencies,yt as prepareAttachmentsForCreateFeaturesWorkflow,vt as setRelationshipFields,st as setUpGeometryUpdate,Ae as setUpSketchCreateWatchers,nt as setVisualVariablesAndElevationInfoForUpdate,wt as showProgressCursor,ut as sizeDefaults,ft as sizeVariableUnitToLengthUnit,ke as startCreatingNewFeature,rt as startUpdatingFeatureGeometry,lt as swapForEditingSession,jt as toFeatureInfos,Fe as updateGraphicSymbolWhenRequired,it as visualVariableInteractiveUpdate,ht as whenEditorLayerView,ct as whenGraphicDisplayed,ye as workflowInfluencesOutcomeOfParent};
5
+ import e from"../../Color.js";import t from"../../Graphic.js";import{isSome as r,equals as n,addMany as o}from"../../core/arrayUtils.js";import{createTask as a}from"../../core/asyncUtils.js";import"../../core/has.js";import i from"../../core/Error.js";import{handlesGroup as s,makeHandle as l,abortHandle as c}from"../../core/handleUtils.js";import{clone as u}from"../../core/lang.js";import d from"../../core/Logger.js";import{getOrCreateMapValue as p}from"../../core/MapUtils.js";import{debounce as f,isPromiseLike as y,throwIfAborted as m,whenOrAbort as h}from"../../core/promiseUtils.js";import{watch as b,on as g,whenOnce as w}from"../../core/reactiveUtils.js";import{px2pt as I}from"../../core/screenUtils.js";import{addMany as v}from"../../core/SetUtils.js";import{diff as T}from"../../core/accessorSupport/diffUtils.js";import{isSharedTemplateOrMetadata as S,isSharedGroupTemplate as F,isSharedTemplate as j,isSharedPresetTemplate as k,isStandardFeatureTemplate as A,isSharedFeatureTemplate as L}from"../../editing/templateUtils.js";import{getSharedTemplateProvider as U}from"../../editing/sharedTemplates/SharedTemplateProvider.js";import V from"../../layers/GraphicsLayer.js";import{featureHasFields as M,fixFields as O,getDisplayFieldName as x}from"../../layers/support/fieldUtils.js";import{isSubtypeSublayer as q,isGraphicsLayer as z,isSceneLayer as E}from"../../layers/support/layerUtils.js";import{calculateTolerance as P}from"../../renderers/support/clickToleranceUtils.js";import{meterIn as C}from"../../renderers/support/lengthUtils.js";import{isRenderer as R}from"../../renderers/support/typeUtils.js";import{getTransformationType as D}from"../../renderers/visualVariables/support/sizeVariableUtils.js";import{isGraphic as G}from"../../support/guards.js";import B from"../../symbols/SimpleFillSymbol.js";import N from"../../symbols/SimpleLineSymbol.js";import Z from"../../symbols/SimpleMarkerSymbol.js";import{to3D as Q}from"../../symbols/support/symbolConversion.js";import{getDisplayedSymbol as W}from"../../symbols/support/symbolUtils.js";import{getServices as $}from"../../undoredo/support/Services.js";import{GraphicState as J}from"../../views/3d/layers/graphics/GraphicState.js";import{defaultDrawingMode as H}from"../../views/draw/drawingModes.js";import{createQueryGeometry as K}from"../../views/support/drapedUtils.js";import{filterGraphicHits as X,hitTestSelectSimilarDistance as Y}from"../../views/support/hitTestSelectUtils.js";import{dependencySort as _}from"./support/dependencySort.js";import{isDrawGraphicTool as ee}from"../Sketch/support/sketchUtils.js";const te=()=>d.getLogger("esri.widgets.Editor.workflowUtils");function re(e){return le(e)||ie(e)}function ne(e){return!!e&&"features"in e}function oe(e){return null!=e&&"create-features"===e.type}function ae(e){return!!e&&"feature"in e}function ie(e){return null!=e&&"update-features"===e.type}function se(e){return null!=e&&"update-feature"===e.type}function le(e){return null!=e&&e.type.includes("update-")&&"fullFeature"in e}function ce(e){return null!=e&&"update"===e.type}function ue(e){return null!=e&&"merge-features"===e.type}function de(e){return null!=e&&"split-feature"===e.type}function pe(e){const t=e?.type;return"update-feature"===t||"update-table-record"===t||"update-features"===t||"split-feature"===t}function fe(e){return"merge"===e?.type}function ye(e){return"split"===e?.type}function me(e){return ue(e)||de(e)}function he(e){return"update-multiple"===e?.type}function be(e){const t=e&&"renderer"in e?e.renderer:null;if(!Fe(t))return{rotation:null,size:null};const r=t.getVisualVariablesForType("rotation").filter(e=>(!e.axis||"heading"===e.axis)&&e.field&&!e.valueExpression),n=t.getVisualVariablesForType("size").filter(e=>e.field&&!e.useSymbolValue&&!e.valueExpression&&"real-world-size"===D(e));return{rotation:1===r.length?r[0]:null,size:1===n.length?n[0]:null}}function ge(e){const t=e.sourceLayer;if(!(t&&"renderer"in t&&Fe(t.renderer)))return{rotation:null,size:null};const{rotation:r,size:n}=be(t);let o=null,a=null;if(r){const e=t.fields?.filter(e=>e.name===r.field),n=1===e?.length?e[0]:null;o=we(r,n)}if(n){const e=t.fields?.filter(e=>e.name===n.field),r=1===e?.length?e[0]:null;a=Te(n,r)}return{rotation:o,size:a}}function we(e,t){const r="heading"===(e.axis||"heading")&&"arithmetic"===e.rotationType?-1:1,n=t?.type??"double",o={initial:0,current:0};return{field:e.field,fieldType:n,getDefaultValue:()=>Promise.resolve(0),getValue:e=>(o.current=o.initial-r*e,Se((o.current+360)%360,n)),setInitialValue:e=>{o.initial=e,o.current=0},isUpdatingInteractively:!1,rotationType:e.rotationType??"geographic"}}function Ie(e,t){switch(t){case"width":return e[0];case"depth":return e[1];case"height":return e[2];default:return e[2]||e[1]||e[0]}}async function ve(e,t,r){if(null==t)return 0;const{symbol:n}=Q(t);if(null==n||"web-style"===n.type||"cim"===n.type)return 0;const o=n.symbolLayers.at(0);if(!o)return 0;switch(o.type){case"icon":{const{computeIconLayerResourceSize:e}=await import("../../symbols/support/symbolLayerUtils.js");return Math.min(dt.icon,(await e(o,dt.icon))[0])||dt.icon}case"text":return dt.text;case"line":return dt.line;case"object":{const{computeObjectLayerResourceSize:t}=await import("../../symbols/support/symbolLayerUtils.js");return Ie(await t(o,e.scale/dt.viewScaleSizeFactor),r)}case"path":case"extrude":return e.scale/dt.viewScaleSizeFactor;default:return 0}}function Te(e,t){const r=e.axis,n=t?.type??"double",o={initial:0,current:0},a=C[e.valueUnit]??1;let i;return i="area"===e.valueRepresentation?e=>(e*a/2)**2*Math.PI:"radius"===e.valueRepresentation||"distance"===e.valueRepresentation?e=>e*a/2:e=>e*a,{field:e.field,fieldType:n,getDefaultValue:async(e,t)=>Se(i(await ve(t,e,r)),n),getValue:(e,t)=>(o.initial||(o.initial=t.pixelSizeAt(t.center)),o.current=o.initial*e,Se(o.current,n)),setInitialValue:e=>{o.initial=e,o.current=0},isUpdatingInteractively:!1,displayUnit:yt(e.valueUnit),axis:e.axis}}function Se(e,t){switch(t){case"small-integer":case"integer":case"long":return Math.round(e);case"double":case"single":return e;default:return 0}}function Fe(e){if(!R(e))return!1;switch(e?.type){case"class-breaks":case"simple":case"unique-value":case"dot-density":case"dictionary":case"pie-chart":return!0;default:return!1}}async function je(e,t,r){const n=await W(e,{useSourceLayer:!0,ignoreGraphicSymbol:!0,webStyleCache:t,scale:r});null!=T(e.symbol,n)&&(e.symbol=n)}function ke(e,t){if(!e||!t)throw new Error("no geometry type");if("multipatch"===e)return{tool:"mesh",createOptions:{mode:"hybrid"}};const r=new Map;r.set("circle",{mode:"freehand"}),r.set("rectangle",{mode:"freehand"});const n={mode:H,optionsPerTool:r};if(S(t)){const o=t.defaultTool,a=F(t)?t.definition?.inputGeometryType??e:e;switch(o){case"freehand":case"stream-line":return{tool:"polyline"===a?"freehandPolyline":"freehandPolygon",createOptions:n};case"autocomplete-freehand-polygons":case"stream-polygon":return{tool:"freehandPolygon",createOptions:n};case"autocomplete-polygons":case"difference-polygon":case"create-structures":case"polygon":case"trace":return{tool:"polygon"===a?"polygon":"polyline",createOptions:n};case"circle":return r.get("circle").preserveAspectRatio=!0,{tool:"circle",createOptions:n};case"ellipse":return r.get("circle").preserveAspectRatio=!1,{tool:"circle",createOptions:n};case"create-points-along-line":case"multipoint":return{tool:"multipoint",createOptions:n};case"line":case"radial-line":case"right-angle-line":case"split":case"two-point-line":return{tool:"polyline",createOptions:n};case"rectangle":case"regular-polygon":case"right-angle-polygon":return{tool:"rectangle",createOptions:n};case"elevation-point-from-contour":case"elevation-point-from-dem":case"parcel-seed":case"point":case"point-and-rotation":case"point-at-end-of-line":return{tool:"point",createOptions:n}}}else{const o=t.drawingTool;if("circle"===o||"ellipse"===o)return r.get("circle").preserveAspectRatio="circle"===o,{tool:"circle",createOptions:n};if("rectangle"===o)return{tool:"rectangle",createOptions:n};if("freehand"===o)return{tool:"polygon"===e?"freehandPolygon":"freehandPolyline",createOptions:n}}return{tool:e,createOptions:n}}async function Ae(e,t,r,n){const{creationInfo:o,fullTemplate:a}=r;if(!o)throw new i("featureworkflow","No creation info provided.");const s=o.layer,l=Qe(a,o.attributeOverrides),{view:c}=e,u="2d"===c?.type;F(a)||k(a)||await We(e,s,l,n,u?c.scale:null);const{capabilities:d}=s;t.elevationInfo=s.elevationInfo;const p=ke(s.geometryType,a);e.defaultCreateOptions={graphicProperties:{attributes:l,sourceLayer:s},mode:p.createOptions.mode,optionsPerTool:p.createOptions.optionsPerTool,preserveAspectRatio:p.createOptions.preserveAspectRatio,hasZ:d.data.supportsZ,defaultZ:(u?d.editing.zDefault:null)??e.defaultCreateOptions.defaultZ},null==o.geometryToPlace?await e.create(p.tool):await e.place(o.geometryToPlace,{graphicProperties:{attributes:l,sourceLayer:s}})}async function Le(e){return s([Ue(e),Ve(e)])}function Ue({creationAttributes:e,data:t,sketchViewModel:r,view:n,webStyleCache:o}){const{creationInfo:a}=t,{fullTemplate:i}=t;if(!a||"2d"!==n?.type||F(i)||k(i))return null;const s=f(t=>We(r,a.layer,e,o,t));return b(()=>n.scale,e=>s(e))}function Ve({data:t,sketchViewModel:r,view:n}){const{templateExecutorInfo:o}=t;if(!o)return null;const a=r.activeComponent;if(!n||!ee(a))return te().error(new i("featureworkflow","Failed to set up template feedback.")),null;const c=new V({effect:"saturate(0.6) opacity(0.8)",listMode:"hide",title:"Shared Template Feedback Graphics"});n.map?.add(c);const{executor:u,serviceLayersById:d}=o,p=n.theme?.accentColor??new e([255,165,0,1]);return s([g(()=>a,["cursor-update","vertex-add"],()=>{c.removeAll();const e=a.graphic?.geometry;if(!e||!Me(e))return;const t=u(e,"digitizing");if(!y(t))for(const r of t.edits){const e=d.get(r.id);if(e&&r.addFeatures&&0!==r.addFeatures.length)for(const t of e)if(!t.isTable)for(const e of r.addFeatures){const t=Oe(e,p);t&&c.add(t)}}}),l(()=>{n.map.remove(c),c.destroy()})])}function Me(e){switch(e.type){case"point":case"multipoint":return!0;case"polyline":return e.paths[0].length>1;case"polygon":{const t=e.rings[0];return n(t.at(0),t.at(-1))?t.length>2:t.length>1}default:return!1}}function Oe(e,r){let n=null;switch(e.geometry?.type){case"point":case"multipoint":n=new Z({angle:0,color:r,outline:new N({cap:"round",color:r,join:"round",miterLimit:1,style:"solid",width:1}),path:"undefined",size:8,style:"circle",xoffset:0,yoffset:0});break;case"polygon":n=new B({color:r,outline:new N({cap:"round",color:r,join:"round",miterLimit:1,style:"solid",width:3}),style:"none"});break;case"polyline":n=new N({cap:"round",color:r,join:"round",miterLimit:1,style:"solid",width:2});break;default:return null}return new t({geometry:e.geometry,symbol:n,attributes:{...e.attributes}})}function xe(e,t){const r=$(t),n=q(e)?e.parent:e;return r.tablesAndLayersLookup.get(n)}function qe(e,t){const r=xe(e,t);if(!r)return new Map;const n=new Map;for(const o of r.layersAndTables)p(n,o.layerId,()=>[]).push(o);return n}function ze(e){const t=e.objectIdField,r=e.globalIdField??"";return{id:e.layerId,identifierFields:{objectIdField:t,globalIdField:r},addFeatures:[],deleteAttachments:[],addAttachments:[],deleteFeatures:[],updateFeatures:[]}}function Ee(e){const{edits:t,serviceInfo:n,view:o,findOriginalFeature:a}=e,i=Pe(n.layersAndTables),s=n.layersAndTables.toArray(),{allEditData:l,editDataByLayerIdMap:c,editDataByIdMap:u}=Re(t,i,a),d=De(l,Ce(s,c),c);if(o&&Ne(l,d,o),0===d.length)return t;const p=_(d,{continueOnCircularDependency:!0}).map(e=>u.get(e)).filter(r),f=new Map;for(const r of p)f.set(r.uniqueId,r);const y=[];for(const r of l)f.has(r.uniqueId)||y.push(r);const m=[];let h=null;for(const r of p){const{layer:e}=r;switch(null==h?h=ze(e):h.id!==e.layerId&&(m.push(h),h=ze(e)),r.operationType){case"add":case"modify":h.addFeatures.push(r.after);break;case"delete":h.deleteFeatures.push(r.before)}}null!==h&&m.push(h);for(const r of y){const e=r.layer.layerId,t=m.find(t=>t.id===e)??ze(r.layer);switch(m.includes(t)||m.push(t),r.operationType){case"add":t.addFeatures.push(r.after);break;case"modify":t.updateFeatures.push(r.after);break;case"delete":t.deleteFeatures.push(r.before);break;case"deleteAttachment":t.deleteAttachments.push(r.attachmentId);break;case"addAttachment":t.addAttachments.push(r.attachment)}}for(const r of m)void 0!==r.deleteAttachments&&0===r.deleteAttachments.length&&delete r.deleteAttachments,void 0!==r.addAttachments&&0===r.addAttachments.length&&delete r.addAttachments;return m}function Pe(e){const t=new Map;for(const r of e)t.set(r.layerId,r);return t}function Ce(e,t){const r=new Map;for(const n of e)for(const e of n.relationships??[])if(r.set(Ge(n,e),""),t.has(e.relatedTableId)){const o=t.get(e.relatedTableId);if(o.length>0)for(const t of o[0].layer.relationships??[])if(t.id===e.id){r.set(Ge(n,e),t.keyField);break}}return r}function Re(e,t,r){const n=new Map,o=[],a=new Map;let s=1;for(const l of e){const e=[],c=t.get(l.id);if(!c)throw new i("featureworkflow",`Failed to prepare applyEdits payload. Layer with id ${l.id} not found.`);for(const t of l.addFeatures??[])e.push({uniqueId:"T"+s++,operationType:"add",layer:c,after:t});for(const t of l.deleteFeatures??[])e.push({uniqueId:"T"+s++,operationType:"delete",before:t,layer:c});for(const t of l.deleteAttachments??[])e.push({uniqueId:"T"+s++,operationType:"deleteAttachment",attachmentId:t,layer:c});for(const t of l.addAttachments??[])e.push({uniqueId:"T"+s++,operationType:"addAttachment",attachment:t,layer:c});for(const t of l.updateFeatures??[])e.push({uniqueId:"T"+s++,operationType:"modify",before:r(t),after:t,layer:c});n.set(c.layerId,e);for(const t of e)o.push(t),a.set(t.uniqueId,t)}return{allEditData:o,editDataByIdMap:a,editDataByLayerIdMap:n}}function De(e,t,r){const n=[];for(const o of e){const e=o.layer.relationships??[],{uniqueId:a}=o;for(const i of e){const e=i.keyField;if("origin"===i.role){const s=r.get(i.relatedTableId);if(!s||0===s.length)continue;const l=Ge(o.layer,i),c=t.get(l);if(void 0===c||""===c)continue;switch(o.operationType){case"add":for(const t of s)t!==o&&("add"!==t.operationType&&"modify"!==t.operationType||t.after.attributes[c]===o.after.attributes[e]&&n.push([a,t.uniqueId]));break;case"modify":if(o.before.attributes[e]!==o.after.attributes[e])for(const t of s){const r=t.uniqueId;t!==o&&("delete"===t.operationType?t.before.attributes[c]===o.before.attributes[e]?n.push([r,a]):t.before.attributes[c]===o.after.attributes[e]&&n.push([a,r]):"add"===t.operationType?t.after.attributes[c]===o.after.attributes[e]?n.push([a,r]):t.after.attributes[c]===o.before.attributes[e]&&n.push([r,a]):"modify"===t.operationType&&(t.before.attributes[c]!==t.after.attributes[c]?t.after.attributes[c]===o.after.attributes[e]?n.push([a,r]):n.push([r,a]):n.push([a,r])))}break;case"delete":for(const t of s)t!==o&&("delete"!==t.operationType&&"modify"!==t.operationType||t.before.attributes[c]===o.before.attributes[e]&&n.push([t.uniqueId,a]))}}}}return n}function Ge(e,t){return`${e.layerId}:${t.id}`}function Be(e,t){return!!(t?.map&&"utilityNetworks"in t.map&&t.map.utilityNetworks?.length&&t.map.utilityNetworks.some(t=>!(!t.loaded||!e.url?.startsWith(t.featureServiceUrl)||e.layerId!==t.networkSystemLayers.associationsTableId)))}function Ne(e,t,r){const n=[];for(const a of e)Be(a.layer,r)&&n.push(a);if(0===n.length)return;let o=[];for(const a of n){const r=a.layer;switch(a.operationType){case"delete":o=[...Ze(a.before.attributes[r.fieldsIndex.get("fromglobalid").name],e),...Ze(a.before.attributes[r.fieldsIndex.get("toglobalid").name],e)];for(const e of o)t.push([a.uniqueId,e.uniqueId]);break;case"add":o=[...Ze(a.after.attributes[r.fieldsIndex.get("fromglobalid").name],e),...Ze(a.after.attributes[r.fieldsIndex.get("toglobalid").name],e)];for(const e of o)t.push([e.uniqueId,a.uniqueId])}}}function Ze(e,t){const r=[],n=t.filter(({layer:e})=>""!==e.globalIdField&&null!=e.globalIdField);for(const o of n){const t=o.layer.globalIdField;("before"in o&&o.before?.attributes[t]===e||"after"in o&&o.after?.attributes[t]===e)&&r.push(o)}return r}function Qe(e,t={}){return F(e)||k(e)?{}:A(e)?{...e.prototype.attributes,...t}:L(e)?{...e.definition?.defaultValues,...t}:{...t}}async function We(e,r,n,o,a){const i=new t({sourceLayer:r,attributes:n}),{rotation:s,size:l}=ge(i);let c=await W(i,{useSourceLayer:!0,webStyleCache:o,scale:a}),u=!1;for(const t of[l,s]){if(null==t)continue;null==n[t.field]&&(n[t.field]=await t.getDefaultValue(c,e.view),u=!0)}switch(u&&(c=await W(i,{useSourceLayer:!0,webStyleCache:o,scale:a})),c?.type){case"simple-fill":case"polygon-3d":e.polygonSymbol=c;break;case"simple-line":case"line-3d":e.polylineSymbol=c;break;case"simple-marker":case"picture-marker":case"point-3d":case"cim":e.pointSymbol=c;break;case"mesh-3d":e.meshSymbol=c}$e(e.tooltipOptions,l,s)}function $e(e,t,r){e.visualVariables=null!=t||null!=r?{size:null!=t?{unit:t.displayUnit,axis:t.axis,valueType:t.fieldType}:null,rotation:null!=r?{valueType:r.fieldType,rotationType:r.rotationType??"geographic"}:null}:null}function Je(e,t){return e.find(e=>e.layer===t)}function He(e,t){const r=Je(e,t);if(null==r)throw new i("no-editorItem-found","The EditorViewModel provided did not have an EditorItem associated with the specified layer");return r}function Ke(e,t){return e?.find(e=>e.layer===t)}async function Xe(e,t,r,n){switch(t.type){case"3d":return Ye(e,t,r,n);case"2d":return _e(e,t,r,n)}}async function Ye(e,t,r,n){if(0===e.length)return[];const{updatable:a,graphicsByLayer:i}=await r.defer(async()=>{const{results:o}=await h(Y(t,r),n),a=new Map,i=e=>{const t=e.layer,r=a.get(t);if(!r){const e=new Array;return a.set(t,e),e}return r};X(o).forEach(({graphic:e})=>i(e).push(e));const s=e.filter(({capabilities:e,layer:t})=>e.update.enabled&&a.has(t));return 0!==s.length&&r.stopPropagation(),{updatable:s,graphicsByLayer:a}});return h(Promise.allSettled(a.map(async({layer:e})=>{const t=i.get(e),r=et(e);if(t.every(e=>M(e,r)))return t;const a=[];for(const n of t){a.push(n.getObjectId());const e=Object.keys(n.attributes);o(r,e)}const s=e.createQuery();return s.returnGeometry=!1,s.objectIds=a,s.outFields=O(e.fieldsIndex,r),e.queryFeatures(s,{signal:n}).then(({features:e})=>e)})),n)}async function _e(e,t,r,n){if(0===e.length)return[];const{mapPoint:o}=r;if(null==o)return[];let a=null;const i=await r.defer(async()=>{const{results:o}=await h(t.hitTest(r),n);if(0===o.length)return[];const i=new Set;a=X(o),a.forEach(({graphic:e})=>e&&i.add(e.layer));const s=e.filter(e=>i.has(e.layer)&&e.supportsUpdateWorkflow);return s.length>0&&r.stopPropagation(),s});return h(Promise.allSettled(i.map(async({layer:e})=>{const i=e.createQuery();i.returnGeometry=!0,i.outFields=et(e);const s="renderer"in e?P({renderer:e.renderer,pointerType:r.pointerType}):0;i.geometry=K(o,s,t),i.outSpatialReference=t.spatialReference;const{features:l}=await e.queryFeatures(i,{signal:n});return a?.forEach(({graphic:t})=>{t.layer!==e||l.some(e=>e.getObjectId()===t.getObjectId())||l.push(t)}),l})),n)}function et(e){return O(e.fieldsIndex,[e.objectIdField,x({displayField:"displayField"in e?e.displayField:null,fields:e.fields})])}async function tt(e,t,n,o){return rt(e.map(e=>e.getObjectId()??e.attributes[t.objectIdField]).filter(r),t,n,o)}async function rt(e,t,r,n){const o=t.createQuery();o.objectIds=e,o.outFields=["*"],o.returnM=t.capabilities.data.supportsM,o.returnZ=t.capabilities.data.supportsZ,o.returnGeometry=!0,E(t)&&null!=t.infoFor3D||(o.outSpatialReference=r),!E(t)&&t.capabilities?.data.supportsTrueCurve&&(o.returnTrueCurves=!0);const a=await t.queryFeatures(o,{signal:n});return m(n),a.features}async function nt(e){const{graphic:t,sketchViewModel:r,sourceLayer:n,visualVariables:o}=e;await ot(e);const a={multipleSelectionEnabled:!1};return"point"===n.geometryType&&(a.enableRotation=null!=o.rotation,a.enableScaling=null!=o.size),r.update(t,a)}async function ot(e){const{graphic:t,sketchLayer:r,sketchViewModel:n,sourceLayer:o,visualVariables:a,webStyleCache:i}=e;let s=!1;const{rotation:l,size:c}=a;for(const u of[l,c]){if(null==u)continue;const e=t.getAttribute(u.field);if(null!=e)u.setInitialValue(e);else{const e=await u.getDefaultValue(t.symbol,n.view);u.setInitialValue(e),t.setAttribute(u.field,e),s=!0}}if(s){const e="2d"===n.view?.type?n.view.scale:null;await je(t,i,e)}$e(n.tooltipOptions,c,l),r.elevationInfo=o.elevationInfo}function at(e){return null==e||"rotate-start"!==e.type&&"rotate"!==e.type&&"rotate-stop"!==e.type?null:e}function it(e){return null==e||"scale-start"!==e.type&&"scale"!==e.type&&"scale-stop"!==e.type?null:e}function st(e,t,r,n){if(null==t.geometry||"point"!==t.geometry?.type)return!1;const o=t.attributes;let a=!1;const i=n.rotation,s=at(r.toolEventInfo);if(null!=i&&null!=s){const{field:r,getValue:n}=i;if("rotate-stop"===s.type)i.isUpdatingInteractively=!1,i.setInitialValue(t.getAttribute(r));else{i.isUpdatingInteractively=!0;const l=n(s.angle,e);l!==o[r]&&t.setAttribute(r,l),a=!0}}const l=n.size,c=it(r.toolEventInfo);if(null!=l&&null!=c){const{field:r,getValue:n}=l;if("scale-stop"===c.type)l.isUpdatingInteractively=!1,l.setInitialValue(t.getAttribute(r));else{l.isUpdatingInteractively=!0;const i=n(c.xScale,e);i!==o[r]&&t.setAttribute(r,i),a=!0}}return a}async function lt({feature:e,featureClone:t,visualVariableAttributes:r,sketchLayer:n,sketchViewModel:o,view:a,onUpdate:i,webStyleCache:u,addUpdatingPromise:d,addHandle:p}){await je(t,u,"2d"===a.type?a.scale:null);let y=null;if("2d"===o?.view?.type){const e=f(e=>je(t,u,e));y=b(()=>o?.view?.scale,t=>e(t))}const m=t.sourceLayer,h=bt(a,m);await nt({graphic:t,sketchLayer:n,sketchViewModel:o,sourceLayer:m,visualVariables:r,webStyleCache:u});let g=null;h.then(e=>g=e).catch(()=>{});const I=r.size,v=r.rotation,T=b(()=>e.attributes,async e=>{let r=!1;for(const n in e){const o=e[n];o!==t.getAttribute(n)&&(t.setAttribute(n,o),null==I||I.isUpdatingInteractively||I.field!==n||I.setInitialValue(o),null==v||v.isUpdatingInteractively||v.field!==n||v.setInitialValue(o),(null==g||g.requiredFields.includes(n))&&(r=!0))}r&&await je(t,u,"2d"===a.type?a.scale:null)}),S=o.on("update",async e=>{const t=e.graphics[0],s={graphic:t,sketchLayer:n,sketchViewModel:o,sourceLayer:m,visualVariables:r,webStyleCache:u};if("complete"===e.state){if(null===a.activeTool)return nt(s);const e=new AbortController,t=c(e);return p(t),d(w(()=>null===a.activeTool,e.signal).then(async()=>{if(!e.signal.aborted)return e.abort(),nt(s)}))}st(a,t,e,r)&&await je(t,u,"2d"===a.type?a.scale:null),i(wt(t),e)}),F=o.on(["undo","redo"],e=>{i(wt(e.graphics[0]),e)});return s([F,S,l(()=>o.cancel()),T,y])}async function ct(e,t,r,n){e.add(n);const o=r.sourceLayer,i=r.layer??o,c=r.getAttribute(o.objectIdField);let u=null;function d(e){u?.abort(),z(i)?r.visible=e:u=a(async r=>{const n=await bt(t,i);m(r),n.setVisibility?.(c,e)})}return await ut(t,n),d(!1),s([l(async()=>{d(!0);try{if(!t.destroyed){const e=await bt(t,i).catch(()=>{});e&&!e.destroyed&&await w(()=>!e.updating)}}finally{e.remove(n)}})])}async function ut(e,t){if("3d"===e.type){const r=new J({graphic:t}),n=e.trackGraphicState(r);await w(()=>r.displaying||r.error),n.remove()}else await w(()=>t.visible)}const dt={icon:I(24),text:I(12),line:I(1),viewScaleSizeFactor:100};function pt(e,t,r){let n=!1;return e.filter(e=>!!n||(n=e===t,n)).map(e=>r[e]())}function ft(e,t){e.viewModel.syncFeatureTemplates();const r=e.creationInfo;if("awaiting-feature-creation-info"===t[0].id&&r){const n=r.layer,o=e.viewModel.getTemplatesForLayer(n);1===o.length&&"scene"!==n.type&&(r.template=o[0],t.shift())}return t}function yt(e){return"unknown"===e?null:e}function mt(e){e.filesEnabled=!0,e.mode="view",e.capabilities={editing:!0,operations:{add:!0,update:!0,delete:!0}}}const ht=e=>e.includes("-stop")||e.includes("vertex-"),bt=(e,t)=>{const r="subtype-sublayer"===t.type?t.parent:t;return e.whenLayerView(r)};function gt(e){return"createInteractiveEditSession"in e}function wt(e){const t=e.geometry;if("mesh"===t?.type){const r=e.cloneShallow();return r.attributes=u(e.attributes),r.geometry=t.cloneShallow(),r.geometry.transform=t.transform?.clone()??null,r}return e.clone()}function It(e){return e.acquireCursor("progress")}async function vt(e,t){const{template:r}=e;if(null==r)return null;if(j(r))return r.load();if(S(r)){const e=(await import("../../editing/sharedTemplates/SharedTemplate.js")).default,n=U(t,{makeSharedTemplateFromJSON:t=>e.fromJSON(t)}),o=await n.getTemplates({templateIds:[r.templateId],featureService:r.featureService});if(0===o.length)throw new i("editor:failed-to-load-template","Unable to load the provided template");return o[0].load()}return r}function Tt(e){for(const t of e){const{destinationGraphic:e,destinationField:r,sourceGraphic:n,sourceField:o}=t;e.setAttribute(r,n.getAttribute(o))}}function St(e){const t=e.templateExecutorInfo?.completionResults;return t?.length?(t.forEach(e=>Tt(e.relationships)),t.flatMap(e=>e.edits)):null}function Ft(e){const t=ce(e)?e.activeWorkflow:e;if(null==t)return[];if(ie(t))return t.data.layers;const r=t.layer;return r?[r]:[]}function jt({attributes:e},t){const r=new Set;r.add(t.objectIdField),"uniqueIdFields"in t&&t.uniqueIdFields&&t.uniqueIdFields.length>0&&v(r,t.uniqueIdFields);const n={};for(const o of r)null!=e[o]&&(n[o]=e[o]);if("scene"===t.type&&null!=t.infoFor3D){const r=t.associatedLayer?.globalIdField;null!=r&&(e[r]=e[r])}return n}function kt(e){if(!At(e))return e;const t=new Map;for(const r of e){const e=r.getObjectId();if(null!=e){const n=r.sourceLayer??r.layer;p(t,n,()=>[]).push(e)}}return Array.from(t.entries()).map(([e,t])=>({layer:e,objectIds:t}))}function At(e){return 0===e.length||G(e[0])}export{Ne as appendAllUtilityNetworkAssociationRelationships,ft as avoidFeatureTemplateSelectionWithOnlyOneItem,gt as canCreateInteractiveEditSession,wt as cloneGraphicExceptMesh,Pe as createLayerIdMap,Ce as createRelationshipKeyMap,ke as createToolFromGeometryType,pt as createWorkflowSteps,Xe as fetchCandidates,tt as fetchFullFeatures,rt as fetchFullFeaturesByObjectId,De as findAllDependencies,Ze as findChangesByGlobalId,Je as findEditorItemForLayer,He as findEditorItemForLayerOrThrow,Ke as findLayerInfo,Ge as generateHashForRelationship,Qe as getCreationAttributes,vt as getFullTemplateForCreationInfo,Ft as getLayersFromWorkflow,we as getRotationVariableAttribute,St as getServiceEditsFromWorkflowData,xe as getServiceInfoForLayer,qe as getServiceLayersById,Te as getSizeVariableAttribute,ge as getVisualVariableAttributes,be as getVisualVariablesForLayer,re as isAnyUpdateLeafWorkflow,ne as isBatchAttributeFormViewModel,oe as isCreateFeaturesWorkflow,ae as isFeatureFormViewModel,At as isGraphicsArray,ue as isMergeFeaturesWorkflow,fe as isMergeWorkflowOptions,pe as isParentWorkflow,de as isSplitFeatureWorkflow,ye as isSplitWorkflowOptions,ht as isTerminalUpdateEventType,se as isUpdateFeatureWorkflow,ie as isUpdateFeaturesWorkflow,he as isUpdateFeaturesWorkflowOptions,le as isUpdateRecordWorkflow,ce as isUpdateWorkflow,Be as isUtilityNetworkAssociationsTable,jt as makeMinimalAttributes,Ee as orderEditsByRelationshipDependencies,mt as prepareAttachmentsForCreateFeaturesWorkflow,Tt as setRelationshipFields,lt as setUpGeometryUpdate,Le as setUpSketchCreateWatchers,ot as setVisualVariablesAndElevationInfoForUpdate,It as showProgressCursor,dt as sizeDefaults,yt as sizeVariableUnitToLengthUnit,Ae as startCreatingNewFeature,nt as startUpdatingFeatureGeometry,ct as swapForEditingSession,kt as toFeatureInfos,je as updateGraphicSymbolWhenRequired,st as visualVariableInteractiveUpdate,bt as whenEditorLayerView,ut as whenGraphicDisplayed,me as workflowInfluencesOutcomeOfParent};
@@ -10,9 +10,8 @@ import type { Icon } from "@esri/calcite-components/components/calcite-icon";
10
10
  import type { MapViewOrSceneView } from "../views/MapViewOrSceneView.js";
11
11
  import type { WidgetProperties } from "./Widget.js";
12
12
  import type { EditorViewModelEvents, EditorViewModelProperties } from "./Editor/EditorViewModel.js";
13
- import type { CreationInfo, FeatureInfo, LayerInfo, SplitFeatureWorkflowStep, SupportingWidgetDefaults } from "./Editor/types.js";
14
- import type { SplitterGeometry, SplitterGeometryType } from "./Editor/support/splitFeatureUtils.js";
15
- import type { HeadingLevel } from "./support/Heading.js";
13
+ import type { CreationInfo, FeatureInfo, LayerInfo, SplitFeatureWorkflowStep, SupportingWidgetDefaults, SplitterGeometryType, SplitterGeometry } from "./Editor/types.js";
14
+ import type { HeadingLevel } from "./support/types.js";
16
15
  import type { SketchLabelOptionsProperties } from "../views/interactive/sketch/SketchLabelOptions.js";
17
16
  import type { SnappingOptionsProperties } from "../views/interactive/snapping/SnappingOptions.js";
18
17
  import type { SketchTooltipOptionsProperties } from "../views/interactive/sketch/SketchTooltipOptions.js";
@@ -112,4 +112,8 @@ export interface Abilities {
112
112
  * @default true
113
113
  */
114
114
  utilityNetworkAssociationsContent?: boolean;
115
- }
115
+ }
116
+
117
+ export interface CompiledExpressionInfos {}
118
+
119
+ export interface CompiledExpressionInfo {}
@@ -11,7 +11,7 @@ import type { MapViewOrSceneView } from "../views/MapViewOrSceneView.js";
11
11
  import type { WidgetProperties } from "./Widget.js";
12
12
  import type { FeatureViewModelProperties } from "./Feature/FeatureViewModel.js";
13
13
  import type { FeatureContentMixin, FeatureContentMixinProperties } from "./Feature/support/FeatureContentMixin.js";
14
- import type { HeadingLevel } from "./support/Heading.js";
14
+ import type { HeadingLevel } from "./support/types.js";
15
15
  import type { GraphicProperties } from "../Graphic.js";
16
16
  import type { PointProperties } from "../geometry/Point.js";
17
17
 
@@ -6,7 +6,7 @@ import type { InputType } from "../../form/elements/inputs/Input.js";
6
6
  import type { Domain } from "../../layers/support/domains.js";
7
7
  import type { FieldValue } from "../../layers/support/fieldUtils.js";
8
8
  import type { EditableInputProperties } from "./EditableInput.js";
9
- import type { FieldInputDataTypes } from "../support/forms/formUtils.js";
9
+ import type { FieldInputDataTypes } from "../support/forms/types.js";
10
10
 
11
11
  export interface FieldInputProperties extends EditableInputProperties, Partial<Pick<FieldInput, "value">> {
12
12
  /** Indicates whether the field is required. If the field is not editable, this property returns `false`. */
@@ -8,7 +8,7 @@ import type { Icon } from "@esri/calcite-components/components/calcite-icon";
8
8
  import type { FormTemplateProperties } from "../form/FormTemplate.js";
9
9
  import type { TimeZone } from "../time/types.js";
10
10
  import type { FeatureFormViewModelEvents, FeatureFormViewModelProperties } from "./FeatureForm/FeatureFormViewModel.js";
11
- import type { HeadingLevel } from "./support/Heading.js";
11
+ import type { HeadingLevel } from "./support/types.js";
12
12
  import type { VisibleElementsProperties } from "./FeatureForm/VisibleElements.js";
13
13
  import type { WidgetProperties } from "./Widget.js";
14
14
 
@@ -5,7 +5,7 @@ import type VisibleElements from "./FeatureTemplates/VisibleElements.js";
5
5
  import type { Icon } from "@esri/calcite-components/components/calcite-icon";
6
6
  import type { FeatureTemplatesViewModelEvents, FeatureTemplatesViewModelProperties } from "./FeatureTemplates/FeatureTemplatesViewModel.js";
7
7
  import type { Filter, GroupByType } from "./FeatureTemplates/types.js";
8
- import type { HeadingLevel } from "./support/Heading.js";
8
+ import type { HeadingLevel } from "./support/types.js";
9
9
  import type { VisibleElementsProperties } from "./FeatureTemplates/VisibleElements.js";
10
10
  import type { WidgetProperties } from "./Widget.js";
11
11
 
@@ -14,7 +14,7 @@ import type { FetchPopupFeaturesResult } from "../../views/types.js";
14
14
  import type { Abilities as FeatureViewModelAbilities } from "../Feature/types.js";
15
15
  import type { PopupOpenOptions, State, FetchFeaturesOptions, InitialDisplayOptions, ActionEvent, PopupAction } from "../Popup/types.js";
16
16
  import type { GoTo, GoToProperties } from "../support/GoTo.js";
17
- import type { GoToParameters } from "../support/goToUtils.js";
17
+ import type { GoToParameters } from "../support/types.js";
18
18
  import type { ActionToggleProperties } from "../../support/actions/ActionToggle.js";
19
19
  import type { ActionButtonProperties } from "../../support/actions/ActionButton.js";
20
20
  import type { ReadonlyArrayOrCollection } from "../../core/Collection.js";