@arcgis/core 6.0.0-next.20 → 6.0.0-next.22
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.
- package/arcgisGlobal.d.ts +1 -0
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/0049b66ccbfb168caa76.js +1 -0
- package/assets/esri/core/workers/chunks/092e311cb7aea92a6a26.js +1 -0
- package/assets/esri/core/workers/chunks/0df9a906f7823c23d426.js +1 -0
- package/assets/esri/core/workers/chunks/17c6d66b47aa690df0d4.js +1 -0
- package/assets/esri/core/workers/chunks/{3704b4e7efc3abc1a7b1.js → 242a77066ac5cdb5b7d7.js} +1 -1
- package/assets/esri/core/workers/chunks/2ad69cc496235702bbf2.js +1 -0
- package/assets/esri/core/workers/chunks/2f91fd61019d2a37476d.js +1 -0
- package/assets/esri/core/workers/chunks/3cd04d23b73beaf79650.js +1 -0
- package/assets/esri/core/workers/chunks/434a8ba841a59e0deab9.js +1 -0
- package/assets/esri/core/workers/chunks/{60f92eb03c6e17ab4747.js → 435b90168f79c5587a07.js} +1 -1
- package/assets/esri/core/workers/chunks/{f00458654c7c34c369ef.js → 45ba4aa87a4732198596.js} +1 -1
- package/assets/esri/core/workers/chunks/504184828048310a052c.js +1 -0
- package/assets/esri/core/workers/chunks/{eca44e53bcee9b08d70a.js → 5046214dd32029cb733d.js} +1 -1
- package/assets/esri/core/workers/chunks/53ff68d4f9e365fc15cd.js +1 -0
- package/assets/esri/core/workers/chunks/542e5640ea1b80ef801a.js +1 -0
- package/assets/esri/core/workers/chunks/58865772bed48141a56a.js +1 -0
- package/assets/esri/core/workers/chunks/5a9b7eb26f936f03d02e.js +1 -0
- package/assets/esri/core/workers/chunks/5d76f4d97beee494bbbf.js +1 -0
- package/assets/esri/core/workers/chunks/5f07f52bb8b7721f08d3.js +1 -0
- package/assets/esri/core/workers/chunks/67f54efc817b241f8746.js +1 -0
- package/assets/esri/core/workers/chunks/6d41444b46677aa762a7.js +1 -0
- package/assets/esri/core/workers/chunks/6dfe96b056bec30068df.js +1 -0
- package/assets/esri/core/workers/chunks/7159d9c36869cd82599e.js +29 -0
- package/assets/esri/core/workers/chunks/792d2b62356a1d953c88.js +1 -0
- package/assets/esri/core/workers/chunks/{00d66e3fba5ab4d2aa3c.js → 84940d8e14caf5a27e04.js} +1 -1
- package/assets/esri/core/workers/chunks/{9401cc22373566e1171e.js → 8a7b02037151767542f1.js} +1 -1
- package/assets/esri/core/workers/chunks/95b82cbbe355266c65d7.js +1 -0
- package/assets/esri/core/workers/chunks/a64446a3328a7323e307.js +1 -0
- package/assets/esri/core/workers/chunks/a65951f1d5702cfd996e.js +1 -0
- package/assets/esri/core/workers/chunks/{7bbfe9ff352afc566367.js → a679207c3458cc0b1fec.js} +1 -1
- package/assets/esri/core/workers/chunks/a6f969851d4278865cc5.js +1 -0
- package/assets/esri/core/workers/chunks/aa4f3751f0d830113bed.js +1 -0
- package/assets/esri/core/workers/chunks/b0ca81a07cff25df19d2.js +1 -0
- package/assets/esri/core/workers/chunks/b1d989b72203113a06fe.js +1 -0
- package/assets/esri/core/workers/chunks/{9fab290090ef2ccae810.js → b3273f847405799e3362.js} +1 -1
- package/assets/esri/core/workers/chunks/b4c3ec081874b49ff89b.js +1 -0
- package/assets/esri/core/workers/chunks/b6d71a4ab788a09714f3.js +1 -0
- package/assets/esri/core/workers/chunks/{597db9c90f19092d8d66.js → baed828b7846c0863289.js} +14 -14
- package/assets/esri/core/workers/chunks/{28b74bc77f7c13080074.js → be97a629e2ae4d13ceb3.js} +1 -1
- package/assets/esri/core/workers/chunks/c0d7ae314ebfad1e3791.js +1 -0
- package/assets/esri/core/workers/chunks/c82daefb193aae895bc0.js +1 -0
- package/assets/esri/core/workers/chunks/d8a7eba588d374b2f961.js +1 -0
- package/assets/esri/core/workers/chunks/db9921fbda556f142c4a.js +1 -0
- package/assets/esri/core/workers/chunks/ee08ae5b73439a1ff666.js +1 -0
- package/assets/esri/core/workers/chunks/{a34b3d2e11a777e1ff3f.js → f28b63c1179366dac8a2.js} +1 -1
- package/assets/esri/core/workers/chunks/{557671c897ca5563be6c.js → f6bd7b52745b82ba73dc.js} +1 -1
- package/assets/esri/core/workers/chunks/fcaf9450642fcef83286.js +1 -0
- package/assets/esri/core/workers/chunks/feb41abc03d677df6f73.js +1 -0
- package/assets/esri/core/workers/chunks/ffcb99693182a621a93e.js +1 -0
- package/assets/esri/themes/base/widgets/_OrientedImageryViewer.scss +4 -0
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/light/main.css +1 -1
- package/assets/esri/themes/light/view.css +1 -1
- package/chunks/CloudsComposition.glsl.js +2 -2
- package/chunks/DefaultMaterial.glsl.js +1 -1
- package/chunks/RealisticTree.glsl.js +1 -1
- package/chunks/RibbonLine.glsl.js +113 -121
- package/config.d.ts +47 -38
- package/config.js +1 -1
- package/core/accessorSupport/trackingUtils.js +1 -1
- package/core/accessorSupport/watch.js +1 -1
- package/core/workers/Connection.d.ts +58 -89
- package/core/workers/workerFactory.js +1 -1
- package/core/workers.d.ts +61 -53
- package/geometry/support/MeshComponent.d.ts +1 -1
- package/geometry/support/vcsData.js +1 -1
- package/kernel.js +1 -1
- package/layers/FeatureLayer.d.ts +39 -19
- package/layers/FeatureLayer.js +1 -1
- package/layers/GeospatialPDFLayer.js +1 -1
- package/layers/MapImageLayer.d.ts +10 -3
- package/layers/MapNotesLayer.d.ts +2 -2
- package/layers/SubtypeGroupLayer.d.ts +64 -1
- package/layers/SubtypeGroupLayer.js +1 -1
- package/layers/geospatialPDF/GeospatialPDFLayerWorker.js +1 -1
- package/layers/graphics/sources/FeatureLayerSource.js +1 -1
- package/layers/graphics/sources/support/QueryTask.js +1 -1
- package/layers/knowledgeGraph/KnowledgeGraphSublayer.d.ts +16 -16
- package/layers/knowledgeGraph/KnowledgeGraphSublayer.js +1 -1
- package/layers/mixins/ArcGISMapService.js +1 -1
- package/layers/ogc/ogcFeatureUtils.js +1 -1
- package/layers/orientedImagery/core/coverageUtils.js +1 -1
- package/layers/support/LabelClass.d.ts +20 -2
- package/layers/support/Sublayer.d.ts +61 -17
- package/layers/support/Sublayer.js +1 -1
- package/layers/support/TimeInformation.js +2 -0
- package/layers/support/commonProperties.js +1 -1
- package/libs/basisu/textureMetadata.js +2 -0
- package/package.json +4 -4
- package/rest/layerSources/DynamicDataLayer.d.ts +4 -2
- package/rest/layerSources/DynamicDataLayer.js +1 -1
- package/rest/layerSources/DynamicMapLayer.d.ts +1 -1
- package/rest/layerSources/DynamicWorkspaceLayer.d.ts +49 -0
- package/rest/layerSources/DynamicWorkspaceLayer.js +2 -0
- package/rest/layerSources/typeUtils.js +2 -0
- package/rest/print.js +1 -1
- package/rest/query/operations/queryRelatedRecords.js +1 -1
- package/rest/query/operations/queryUtils.js +1 -1
- package/rest/support/Query.js +1 -1
- package/rest/support/RelationshipQuery.js +1 -1
- package/rest/support/timeUtils.js +2 -0
- package/symbols/LineSymbol3D.d.ts +5 -3
- package/symbols/TextSymbol.d.ts +27 -2
- package/time/legacyTimeZoneMap.js +1 -1
- package/views/2d/analysis/AreaMeasurement/AreaMeasurementTool.js +1 -1
- package/views/2d/analysis/AreaMeasurementAnalysisView2D.js +1 -1
- package/views/2d/analysis/DistanceMeasurement/DistanceMeasurementTool.js +1 -1
- package/views/2d/analysis/DistanceMeasurementAnalysisView2D.js +1 -1
- package/views/2d/analysis/ElevationProfileAnalysisView2D.d.ts +6 -0
- package/views/2d/analysis/ElevationProfileAnalysisView2D.js +1 -1
- package/views/2d/layers/AnnotationFeatureLayerView2D.js +1 -1
- package/views/2d/layers/CSVLayerView2D.js +1 -1
- package/views/2d/layers/CatalogFootprintLayerView2D.js +1 -1
- package/views/2d/layers/DimensionFeatureLayerView2D.js +1 -1
- package/views/2d/layers/FeatureLayerView2D.js +1 -1
- package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
- package/views/2d/layers/GeoJSONLayerView2D.js +1 -1
- package/views/2d/layers/KnowledgeGraphSublayerView2D.js +1 -1
- package/views/2d/layers/OGCFeatureLayerView2D.js +1 -1
- package/views/2d/layers/OrientedImageryLayerView2D.js +1 -1
- package/views/2d/layers/ParquetLayerView2D.js +1 -1
- package/views/2d/layers/StreamLayerView2D.js +1 -1
- package/views/2d/layers/SubtypeGroupLayerView2D.js +1 -1
- package/views/2d/layers/WFSLayerView2D.js +1 -1
- package/views/2d/layers/features/layerAdapters/FeatureLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/SubtypeGroupLayerAdapter.js +1 -1
- package/views/3d/GroundView3D.js +1 -1
- package/views/3d/analysis/Dimension/DimensionVisualization.js +1 -1
- package/views/3d/analysis/Dimension/LengthDimensionSubTool.js +1 -1
- package/views/3d/analysis/Dimension/lengthDimensionManipulatorUtils.js +1 -1
- package/views/3d/analysis/ElevationProfileAnalysisView3D.d.ts +6 -0
- package/views/3d/analysis/ElevationProfileAnalysisView3D.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightObserverPlugin.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightTargetPlugin.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedFieldOfViewManipulation.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedPlacementPointPlugin.js +1 -1
- package/views/3d/analysis/ViewshedAnalysisView3D.js +1 -1
- package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementController.js +1 -1
- package/views/3d/environment/SunLighting.d.ts +17 -1
- package/views/3d/environment/SunLighting.js +1 -1
- package/views/3d/environment/VirtualLighting.d.ts +17 -1
- package/views/3d/environment/VirtualLighting.js +1 -1
- package/views/3d/interactive/editingTools/move/MoveTool3D.js +1 -1
- package/views/3d/interactive/editingTools/reshape/ReshapeOperation.js +1 -1
- package/views/3d/interactive/manipulators/ResizeManipulator.js +1 -1
- package/views/3d/interactive/manipulators/RotateManipulator.js +1 -1
- package/views/3d/interactive/manipulators/ShiftManipulator.js +1 -1
- package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/LineVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/OutlineVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/ParallelLineVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/RightAngleQuadVisualElement.js +1 -1
- package/views/3d/layers/FlowSubView3D.js +1 -1
- package/views/3d/layers/I3SMeshView3D.js +1 -1
- package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
- package/views/3d/layers/TiledLayerView3D.js +1 -1
- package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DPolygonFillSymbolLayer.js +1 -1
- package/views/3d/support/elevationUpdateUtils.js +1 -1
- package/views/3d/terrain/TerrainData.js +1 -1
- package/views/3d/terrain/TerrainSurface.js +1 -1
- package/views/3d/terrain/TileAgent.js +1 -1
- package/views/3d/terrain/terrainUtils.js +1 -1
- package/views/3d/terrain/tileUtils.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentData.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/SymbolColor.glsl.js +3 -3
- package/views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialExternalColor.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/output/getEmissions.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientLighting.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/WaterColor.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +6 -6
- package/views/3d/webgl-engine/effects/clouds/CloudsComposition.js +1 -1
- package/views/3d/webgl-engine/lib/BasisUtil.js +1 -1
- package/views/3d/webgl-engine/lib/GridLocalOriginFactory.js +1 -1
- package/views/3d/webgl-engine/lib/RenderFeature.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/RenderingContext.js +1 -1
- package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
- package/views/3d/webgl-engine/parts/RenderView.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
- package/views/BasemapView.js +1 -1
- package/views/BreakpointsOwner.d.ts +6 -0
- package/views/GroundView.d.ts +1 -1
- package/views/GroundView.js +1 -1
- package/views/SceneView.js +1 -1
- package/views/analysis/ElevationProfile/ElevationProfileTool.js +1 -1
- package/views/types.d.ts +3 -0
- package/views/ui/UI.js +1 -1
- package/views/webgl/ShaderBuilder.js +1 -1
- package/widgets/Daylight/DaylightViewModel.js +1 -1
- package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
- package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
- package/widgets/OrientedImageryViewer.js +2 -2
- package/widgets/PanoramicViewer/PanoramicVideoViewerViewModel.js +1 -1
- package/widgets/Sketch/SketchViewModel.d.ts +61 -2
- package/widgets/TimeSlider/TimeSliderViewModel.d.ts +3 -2
- package/widgets/TimeSlider.d.ts +5 -4
- package/assets/esri/core/workers/chunks/0bd5012da287469b17d5.js +0 -1
- package/assets/esri/core/workers/chunks/1e40a26dcce4d1dadc28.js +0 -1
- package/assets/esri/core/workers/chunks/2d13a22f7b2427927fdc.js +0 -1
- package/assets/esri/core/workers/chunks/34e0a8a3a2beea50f4f5.js +0 -1
- package/assets/esri/core/workers/chunks/370aad23df597db80d65.js +0 -1
- package/assets/esri/core/workers/chunks/42fd2a7b22b03dacc6a7.js +0 -1
- package/assets/esri/core/workers/chunks/494bd434fee9032e1d02.js +0 -1
- package/assets/esri/core/workers/chunks/4e350d6c76957f5beb70.js +0 -1
- package/assets/esri/core/workers/chunks/4fe34da1c5d63e66ce98.js +0 -1
- package/assets/esri/core/workers/chunks/501c6e14ab119785252b.js +0 -1
- package/assets/esri/core/workers/chunks/510502a4c9a2ba8d3f7b.js +0 -1
- package/assets/esri/core/workers/chunks/564565246dae080f5e6c.js +0 -1
- package/assets/esri/core/workers/chunks/612104dff305ff062dfa.js +0 -29
- package/assets/esri/core/workers/chunks/6ad309154fe84210d23c.js +0 -1
- package/assets/esri/core/workers/chunks/6c255c029d67423e4dac.js +0 -1
- package/assets/esri/core/workers/chunks/6c9266120d46e8c69dbf.js +0 -1
- package/assets/esri/core/workers/chunks/6c9acd9e4e201dc380e9.js +0 -1
- package/assets/esri/core/workers/chunks/74c866e0b66e61751861.js +0 -1
- package/assets/esri/core/workers/chunks/939942b00ba380e2957e.js +0 -1
- package/assets/esri/core/workers/chunks/95dbbddac6581b9d671f.js +0 -1
- package/assets/esri/core/workers/chunks/9d61740ef8bdcc162be1.js +0 -1
- package/assets/esri/core/workers/chunks/a49fe94933b65b4b64f8.js +0 -1
- package/assets/esri/core/workers/chunks/aa1ac7954e4f0fefe15b.js +0 -1
- package/assets/esri/core/workers/chunks/b48952e1fb4cb7360dd0.js +0 -1
- package/assets/esri/core/workers/chunks/b5df193c93e9c19f9700.js +0 -1
- package/assets/esri/core/workers/chunks/befa32b9e7b3fbdd431e.js +0 -1
- package/assets/esri/core/workers/chunks/c2c1f51a4668055c2838.js +0 -1
- package/assets/esri/core/workers/chunks/d0f5bee9db1ad51ae687.js +0 -1
- package/assets/esri/core/workers/chunks/d678828726371243d5eb.js +0 -1
- package/assets/esri/core/workers/chunks/dd0310184fe4832755a8.js +0 -1
- package/assets/esri/core/workers/chunks/de5ecb567bd69c613e9d.js +0 -1
- package/assets/esri/core/workers/chunks/e1f5d00878f27e1d413e.js +0 -1
- package/assets/esri/core/workers/chunks/e8bf653376a607f00897.js +0 -1
- package/assets/esri/core/workers/chunks/fb70ab267a08e24b710f.js +0 -1
- package/assets/esri/core/workers/chunks/fc44d45598a7476bc606.js +0 -1
|
@@ -122,7 +122,7 @@ export interface KnowledgeGraphSublayerProperties extends LayerProperties, Refre
|
|
|
122
122
|
* }
|
|
123
123
|
* });
|
|
124
124
|
*
|
|
125
|
-
* knowledgeGraphLayer.layers.
|
|
125
|
+
* knowledgeGraphLayer.layers.at(0).labelingInfo = [ statesLabelClass ];
|
|
126
126
|
*/
|
|
127
127
|
labelingInfo?: LabelClassProperties[] | null;
|
|
128
128
|
/**
|
|
@@ -182,7 +182,7 @@ export interface KnowledgeGraphSublayerProperties extends LayerProperties, Refre
|
|
|
182
182
|
* // a 6pt black marker symbol and a thin, white outline
|
|
183
183
|
*
|
|
184
184
|
* //Apply renderer to the first sublayer of the KnowledgeGraphLayer
|
|
185
|
-
* const sublayer = knowledgeGraphLayer.layers.
|
|
185
|
+
* const sublayer = knowledgeGraphLayer.layers.at(0);
|
|
186
186
|
* sublayer.renderer = {
|
|
187
187
|
* type: "simple", // autocasts as new SimpleRenderer()
|
|
188
188
|
* symbol: {
|
|
@@ -223,7 +223,7 @@ export interface KnowledgeGraphSublayerProperties extends LayerProperties, Refre
|
|
|
223
223
|
* @see [knowledgeGraphService](https://developers.arcgis.com/javascript/latest/references/core/rest/knowledgeGraphService/)
|
|
224
224
|
* @example
|
|
225
225
|
* //to access individual sublayers in a KnowledgeGraphLayer
|
|
226
|
-
* knowledgeGraphLayer.layers.
|
|
226
|
+
* knowledgeGraphLayer.layers.forEach((sublayer)=>{
|
|
227
227
|
* sublayer.popupTemplate = new PopupTemplate({
|
|
228
228
|
* title: "{common_name}",
|
|
229
229
|
* content: [{
|
|
@@ -256,7 +256,7 @@ export default class KnowledgeGraphSublayer extends KnowledgeGraphSublayerSuperc
|
|
|
256
256
|
*
|
|
257
257
|
* @example
|
|
258
258
|
* // Set the definition expression directly on sublayer instance to only suppliers with more than 50 employees.
|
|
259
|
-
* knowledgeGraphLayer.layers.
|
|
259
|
+
* knowledgeGraphLayer.layers.at(0).definitionExpression = "employee_count > 50";
|
|
260
260
|
*/
|
|
261
261
|
accessor definitionExpression: string | null | undefined;
|
|
262
262
|
/**
|
|
@@ -407,7 +407,7 @@ export default class KnowledgeGraphSublayer extends KnowledgeGraphSublayerSuperc
|
|
|
407
407
|
* }
|
|
408
408
|
* });
|
|
409
409
|
*
|
|
410
|
-
* knowledgeGraphLayer.layers.
|
|
410
|
+
* knowledgeGraphLayer.layers.at(0).labelingInfo = [ statesLabelClass ];
|
|
411
411
|
*/
|
|
412
412
|
get labelingInfo(): LabelClass[] | null | undefined;
|
|
413
413
|
set labelingInfo(value: LabelClassProperties[] | null | undefined);
|
|
@@ -515,7 +515,7 @@ export default class KnowledgeGraphSublayer extends KnowledgeGraphSublayerSuperc
|
|
|
515
515
|
* // a 6pt black marker symbol and a thin, white outline
|
|
516
516
|
*
|
|
517
517
|
* //Apply renderer to the first sublayer of the KnowledgeGraphLayer
|
|
518
|
-
* const sublayer = knowledgeGraphLayer.layers.
|
|
518
|
+
* const sublayer = knowledgeGraphLayer.layers.at(0);
|
|
519
519
|
* sublayer.renderer = {
|
|
520
520
|
* type: "simple", // autocasts as new SimpleRenderer()
|
|
521
521
|
* symbol: {
|
|
@@ -629,7 +629,7 @@ export default class KnowledgeGraphSublayer extends KnowledgeGraphSublayerSuperc
|
|
|
629
629
|
* // Get a range domain associated with the first feature
|
|
630
630
|
* // returned from queryFeatures().
|
|
631
631
|
* //get the first sublayer from the parent KnowledgeGraphLayer
|
|
632
|
-
* const sublayer = knowledgeGraphLayer.layers.
|
|
632
|
+
* const sublayer = knowledgeGraphLayer.layers.at(0);
|
|
633
633
|
* sublayer.queryFeatures(query).then(function(results){
|
|
634
634
|
* const domain = sublayer.getFieldDomain("Height", {feature: results.features[0]});
|
|
635
635
|
* console.log("domain", domain)
|
|
@@ -656,14 +656,14 @@ export default class KnowledgeGraphSublayer extends KnowledgeGraphSublayerSuperc
|
|
|
656
656
|
* // Queries for the extent of all features matching the layer's configurations
|
|
657
657
|
* // e.g. definitionExpression
|
|
658
658
|
* //get the first sublayer from the parent KnowledgeGraphLayer
|
|
659
|
-
* const sublayer = knowledgeGraphLayer.layers.
|
|
659
|
+
* const sublayer = knowledgeGraphLayer.layers.at(0);
|
|
660
660
|
* sublayer.queryExtent().then(function(results){
|
|
661
661
|
* // go to the extent of the results satisfying the query
|
|
662
662
|
* view.goTo(results.extent);
|
|
663
663
|
* });
|
|
664
664
|
* @example
|
|
665
665
|
* //get the first sublayer from the parent KnowledgeGraphLayer
|
|
666
|
-
* const sublayer = knowledgeGraphLayer.layers.
|
|
666
|
+
* const sublayer = knowledgeGraphLayer.layers.at(0);
|
|
667
667
|
*
|
|
668
668
|
* const query = new Query();
|
|
669
669
|
* query.where = "region = 'Southern California'";
|
|
@@ -690,14 +690,14 @@ export default class KnowledgeGraphSublayer extends KnowledgeGraphSublayerSuperc
|
|
|
690
690
|
* // Queries for the count of all features matching the layer's configurations
|
|
691
691
|
* // e.g. definitionExpression
|
|
692
692
|
* //get the first sublayer from the parent KnowledgeGraphLayer
|
|
693
|
-
* const sublayer = knowledgeGraphLayer.layers.
|
|
693
|
+
* const sublayer = knowledgeGraphLayer.layers.at(0);
|
|
694
694
|
* sublayer.queryFeatureCount().then(function(numFeatures){
|
|
695
695
|
* // prints the total count to the console
|
|
696
696
|
* console.log(numFeatures);
|
|
697
697
|
* });
|
|
698
698
|
* @example
|
|
699
699
|
* //get the first sublayer from the parent KnowledgeGraphLayer
|
|
700
|
-
* const sublayer = knowledgeGraphLayer.layers.
|
|
700
|
+
* const sublayer = knowledgeGraphLayer.layers.at(0);
|
|
701
701
|
*
|
|
702
702
|
* const query = new Query();
|
|
703
703
|
* query.where = "region = 'Southern California'";
|
|
@@ -736,14 +736,14 @@ export default class KnowledgeGraphSublayer extends KnowledgeGraphSublayerSuperc
|
|
|
736
736
|
* // Queries for all the features matching the layer's configurations
|
|
737
737
|
* // e.g. definitionExpression
|
|
738
738
|
* //get the first sublayer from the parent KnowledgeGraphLayer
|
|
739
|
-
* const sublayer = knowledgeGraphLayer.layers.
|
|
739
|
+
* const sublayer = knowledgeGraphLayer.layers.at(0);
|
|
740
740
|
* sublayer.queryFeatures().then(function(results){
|
|
741
741
|
* // prints the array of result graphics to the console
|
|
742
742
|
* console.log(results.features);
|
|
743
743
|
* });
|
|
744
744
|
* @example
|
|
745
745
|
* //get the first sublayer from the parent KnowledgeGraphLayer
|
|
746
|
-
* const sublayer = knowledgeGraphLayer.layers.
|
|
746
|
+
* const sublayer = knowledgeGraphLayer.layers.at(0);
|
|
747
747
|
*
|
|
748
748
|
* const query = new Query();
|
|
749
749
|
* query.where = "STATE_NAME = 'Washington'";
|
|
@@ -769,7 +769,7 @@ export default class KnowledgeGraphSublayer extends KnowledgeGraphSublayerSuperc
|
|
|
769
769
|
* });
|
|
770
770
|
* @example
|
|
771
771
|
* //get the first sublayer from the parent KnowledgeGraphLayer
|
|
772
|
-
* const sublayer = knowledgeGraphLayer.layers.
|
|
772
|
+
* const sublayer = knowledgeGraphLayer.layers.at(0);
|
|
773
773
|
*
|
|
774
774
|
* // query all features from the layer and only return
|
|
775
775
|
* // attributes specified in outFields.
|
|
@@ -799,14 +799,14 @@ export default class KnowledgeGraphSublayer extends KnowledgeGraphSublayerSuperc
|
|
|
799
799
|
* // Queries for all the Object IDs of features matching the layer's configurations
|
|
800
800
|
* // e.g. definitionExpression
|
|
801
801
|
* //get the first sublayer from the parent KnowledgeGraphLayer
|
|
802
|
-
* const sublayer = knowledgeGraphLayer.layers.
|
|
802
|
+
* const sublayer = knowledgeGraphLayer.layers.at(0);
|
|
803
803
|
* sublayer.queryObjectIds().then(function(results){
|
|
804
804
|
* // prints the array of Object IDs to the console
|
|
805
805
|
* console.log(results);
|
|
806
806
|
* });
|
|
807
807
|
* @example
|
|
808
808
|
* //get the first sublayer from the parent KnowledgeGraphLayer
|
|
809
|
-
* const sublayer = linkChartLayer.layers.
|
|
809
|
+
* const sublayer = linkChartLayer.layers.at(0);
|
|
810
810
|
*
|
|
811
811
|
* const query = new Query();
|
|
812
812
|
* query.where = "region = 'Southern California'";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../../PopupTemplate.js";import n from"../../core/Error.js";import{clone as r}from"../../core/lang.js";import i from"../../core/Logger.js";import{MultiOriginJSONSupportMixin as a}from"../../core/MultiOriginJSONSupport.js";import{property as o,subclass as s}from"../../core/accessorSupport/decorators.js";import"../../core/workers/workers.js";import ee from"../../form/FormTemplate.js";import c from"../../geometry/Extent.js";import te from"../../geometry/Point.js";import ne from"../../geometry/Polygon.js";import re from"../../geometry/Polyline.js";import{initializeProjection as ie,project as l}from"../../geometry/projectionUtils.js";import ae from"../../geometry/SpatialReference.js";import{wgs84 as u}from"../../geometry/support/spatialReferenceUtils.js";import{featureGeometryTypeKebabDictionary as d}from"../../geometry/support/typeUtils.js";import f from"../../graphic/KnowledgeGraphGraphicOrigin.js";import oe from"../../graphic/LinkChartGraphicOrigin.js";import se from"../Layer.js";import ce from"../graphics/data/FeatureStore.js";import{QueryEngine as le}from"../graphics/data/QueryEngine.js";import{createDrawingInfo as p}from"../graphics/sources/support/clientSideDefaults.js";import{systemOidFieldName as m,systemAggregationCountFieldName as h,systemIsSpatialFieldName as g,systemLayoutGeometryFieldName as _,systemOriginIdFieldName as ue,systemDestinationIdFieldName as v}from"./constants.js";import{KnowledgeGraphSublayerBase as y}from"./KnowledgeGraphSublayerBase.js";import{createCapabilitiesFromKnowledgeGraph as b,createDefaultKGSLFormTemplate as x,getDisplayLabelProperty as S,getLinkChartDefaultLabelingInfo as C,getMapDefaultLabelingInfo as w,getKGSublayerSymbolColor as T,getDefaultLCRelationshipSublayerSymbol as E,createDefaultKGSLFeatureTemplates as D,convertLayerEditsToGraphEdits as O,convertGraphEditsResultToFeatureEdits as k}from"./layerUtils.js";import{BlendLayer as A,blendModeProperty as j,effectProperty as M}from"../mixins/BlendLayer.js";import{DisplayFilteredLayer as N,displayFilterEnabledProperty as P,displayFilterInfoProperty as F}from"../mixins/DisplayFilteredLayer.js";import{FeatureEffectLayer as I,featureEffectProperty as L}from"../mixins/FeatureEffectLayer.js";import{FeatureReductionLayer as R}from"../mixins/FeatureReductionLayer.js";import{OrderedLayer as z,orderByProperty as B}from"../mixins/OrderedLayer.js";import{RefreshableLayer as V}from"../mixins/RefreshableLayer.js";import{ScaleRangeLayer as H}from"../mixins/ScaleRangeLayer.js";import{TemporalLayer as U,useViewTimeProperty as de}from"../mixins/TemporalLayer.js";import{legendEnabled as fe,maxScale as pe,minScale as me,opacity as he,popupEnabled as ge}from"../support/commonProperties.js";import{featureReductionProperty as _e}from"../support/featureReductionUtils.js";import ve from"../support/FeatureTemplate.js";import W from"../support/Field.js";import{fixRendererFields as ye,fixTimeInfoFields as be}from"../support/fieldUtils.js";import xe from"../support/LabelClass.js";import{reader as Se}from"../support/labelingInfo.js";import Ce from"../support/TimeInfo.js";import we from"../../renderers/SimpleRenderer.js";import{fromJSON as G}from"../../renderers/support/jsonUtils.js";import{rendererTypes as Te}from"../../renderers/support/typeUtils.js";import{executeApplyEdits as Ee}from"../../rest/knowledgeGraphService.js";import De from"../../rest/support/FeatureSet.js";import K from"../../rest/support/Query.js";import{createPopupTemplate as Oe}from"../../support/popupUtils.js";import ke from"../../symbols/support/ElevationInfo.js";import{applyColorToSymbol as q}from"../../symbols/support/utils.js";import Ae from"../../core/workers/RemoteClient.js";import{writer as je}from"../../core/accessorSupport/decorators/writer.js";function J(e){if(!e.json)return e;e.json.write=Y(e.json.write);let t=e.json.origins;if(!t)return e;let n;for(n in t){let e=t[n];e&&(e.write=Y(e.write))}return e}function Y(e){return typeof e==`object`&&e?(e.enabled!==!1&&(e.overridePolicy=Me(e)),e):e===!0?X():e}function Me(e){let{target:t,writer:n,overridePolicy:r,...i}=e;return function(e,t){let n=Z.call(this,e,t);return n.enabled?{...i,...n}:n}}function X(){return{overridePolicy:Z}}function Z(e,t){let n=!!this.geometryType,r={enabled:n};return n&&(r={...r,...Q.call(this,e,t)}),r}function Q(e,t){return{ignoreOrigin:this.originIdOf(t)>0}}let $=class extends y(N(R(I(A(z(U(H(V(a(se)))))))))){constructor(e){super(e),this.blendMode=`normal`,this.charts=null,this.definitionExpression=null,this.displayFilterEnabled=!0,this.displayFilterInfo=null,this.effect=null,this.elevationInfo=null,this.featureEffect=null,this.graphType=null,this.labelsVisible=!0,this.layerType=null,this.legendEnabled=!0,this.maxScale=0,this.minScale=0,this.objectIdField=m,this.objectType=null,this.opacity=1,this.orderBy=null,this.parent=null,this.parentCompositeLayer=null,this.persistenceEnabled=!0,this.popupEnabled=!0,this.popupTemplate=null,this.refreshInterval=0,this.source={openPorts:()=>this.load().then(()=>{let e=new MessageChannel;return new Ae(e.port1,{channel:e,client:{queryFeatures:(e,t={})=>{let n=K.fromJSON(e);return this.queryFeaturesJSON(n,t)}}}),[e.port2]})},this.type=`knowledge-graph-sublayer`,this.useViewTime=!0,this.visible=!0}get capabilities(){return this.parent?this.parent.sublayerCapabilities:b(null)}get isTable(){return this.parentCompositeLayer?.type!==`link-chart`&&this.geometryFieldName==null}get defaultPopupTemplate(){return this.createPopupTemplate()}get editingEnabled(){return this.capabilities.operations.supportsEditing&&this.userHasEditingPrivileges}set editingEnabled(e){this._overrideIfSome(`editingEnabled`,e)}get effectiveCapabilities(){let e=r(this.capabilities),{operations:t,editing:n}=e;return this.userHasUpdateItemPrivileges&&(t.supportsAdd=t.supportsDelete=t.supportsEditing=t.supportsQuery=t.supportsUpdate=n.supportsDeleteByOthers=n.supportsGeometryUpdate=n.supportsUpdateByOthers=!0),this.userHasFullEditingPrivileges&&t.supportsEditing&&(t.supportsAdd=t.supportsDelete=t.supportsUpdate=n.supportsGeometryUpdate=!0),e}get effectiveEditingEnabled(){return this.userHasUpdateItemPrivileges||this.editingEnabled}set featureReduction(e){let t=this._normalizeFeatureReduction(e);this._set(`featureReduction`,t)}get fields(){let e=[],t=new Map;for(let e of this.parent?.knowledgeGraph.dataModel.domains??[])t.set(e.name,e);return this.objectType?.properties?.forEach(n=>{let r=n.fieldType===`esriFieldTypeOID`?`esriFieldTypeInteger`:n.fieldType,i=W.fromJSON({name:n.name,type:r,alias:n.alias,defaultValue:n.defaultValue,editable:n.editable,nullable:n.nullable,domain:n.domain&&t.has(n.domain)?t.get(n.domain).toJSON():void 0});e.push(i)}),e.push(W.fromJSON({name:this.objectIdField,type:`esriFieldTypeString`,alias:this.objectIdField,editable:!1}),W.fromJSON({name:h,type:`esriFieldTypeInteger`,alias:h,editable:!1}),W.fromJSON({name:g,type:`esriFieldTypeInteger`,alias:g,editable:!1})),e}get formTemplate(){return this._isOverridden(`formTemplate`)?this._get(`formTemplate`):x(this)}set formTemplate(e){this._overrideIfSome(`formTemplate`,e)}get geometryType(){if(this.parentCompositeLayer?.type===`link-chart`)return this.graphType===`relationship`?`polyline`:`point`;let e=this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name)?.geometryType;return!e||e===`esriGeometryNull`?null:d.fromJSON(e)}get geometryFieldName(){return this.parentCompositeLayer?.type===`link-chart`?_:this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name)?.name??null}get graphicOrigin(){if(!this.parent)return null;switch(this.parent.type){case`knowledge-graph`:return new f(this.parent,this);case`link-chart`:return new oe(this.parent,this)}}get graphTypeName(){return this.objectType?.name}set graphTypeName(e){this._set(`graphTypeName`,e)}get hasM(){let e=this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name)?.name;return(e?this.objectType?.properties?.[e]:null)?.hasM??!1}get hasZ(){let e=this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name)?.name;return(e?this.objectType?.properties?.[e]:null)?.hasZ??!1}set labelingInfo(e){this._set(`labelingInfo`,e)}get labelingInfo(){if(this._isOverridden(`labelingInfo`))return this._get(`labelingInfo`);if(!this.objectType||!this.parentCompositeLayer||!this.graphTypeName)return null;let e=this.objectType.properties?S(this.objectType.properties):`ESRI__ID`;return this.parentCompositeLayer.type===`link-chart`?C(this.graphType,this.graphTypeName,e):w(this.graphTypeName,this.geometryType,e)}set renderer(e){ye(e,this.fieldsIndex),this._set(`renderer`,e)}get renderer(){if(this._isOverridden(`renderer`))return this._get(`renderer`);let e=this.parentCompositeLayer?.dataManager?.knowledgeGraph?.dataModel,t=[...e?.entityTypes??[],...e?.relationshipTypes??[]].map(e=>e.name).indexOf(this.graphTypeName),n=T(t);if(this.parentCompositeLayer?.type===`link-chart`){if(this.graphType===`relationship`)return new we({type:`simple`,symbol:E(n)});let e=G(p(d.toJSON(`point`)).renderer);return q(e.symbol,n),e}let r=G(p(d.toJSON(this.geometryType)).renderer);return q(r.symbol,n),r}get spatialReference(){return this.parentCompositeLayer?.dataManager?.knowledgeGraph?.dataModel?.spatialReference??ae.WGS84}get templates(){return this._isOverridden(`templates`)?this._get(`templates`):D(this)}set templates(e){this._overrideIfSome(`templates`,e)}set timeInfo(e){this._set(`timeInfo`,e)}get dateFieldsTimeZone(){return this.parentCompositeLayer?.dateFieldsTimeZone}get title(){return this._isOverridden(`title`)?this._get(`title`):this.graphTypeName}set title(e){this._set(`title`,e)}writeTitle(e,t){t.title=e??`Layer`}get userHasEditingPrivileges(){return!this.parent||this.parent.userHasEditingPrivileges}get userHasFullEditingPrivileges(){return this.parent?this.parent.userHasFullEditingPrivileges:!1}get userHasUpdateItemPrivileges(){return this.parent?this.parent.userHasUpdateItemPrivileges:!1}createPopupTemplate(e){return Oe(this,e)}createQuery(){return new K({where:`1=1`,outFields:[`*`]})}getField(e){return this.fieldsIndex.get(e)}getFieldDomain(e,t){return this.fields.find(t=>t.name===e)?.domain||null}async queryFeatures(e,t){await this.load();let{resolvedQuery:n,queryEngine:r,cypherTranslationApplied:i}=await this._setupQueryObjects(e),a=this.graphicOrigin,o=De.fromJSON(await r.executeQuery(this._createQueryEngineQueryJSON(n,i),t?.signal));return o.features.forEach(e=>{e.sourceLayer=this,e.origin=a}),o}async queryFeaturesJSON(e,t){await this.load();let{resolvedQuery:n,queryEngine:r,cypherTranslationApplied:i}=await this._setupQueryObjects(e);return await r.executeQuery(this._createQueryEngineQueryJSON(n,i),t?.signal)}async queryFeatureCount(e,t){await this.load();let{resolvedQuery:n,queryEngine:r,cypherTranslationApplied:i}=await this._setupQueryObjects(e);return r.executeQueryForCount(this._createQueryEngineQueryJSON(n,i),t?.signal)}async queryExtent(e={},t){await this.load();let n={...e,returnGeometry:!0},{resolvedQuery:r,queryEngine:i,cypherTranslationApplied:a}=await this._setupQueryObjects(n),o=await i.executeQueryForExtent(this._createQueryEngineQueryJSON(r,a),t?.signal),s;return s=o.extent?.xmin!=null&&o.extent?.xmax!=null&&o.extent?.ymin!=null&&o.extent?.ymax!=null?new c(o.extent):new c,{count:o.count,extent:s}}async queryObjectIds(e,t){await this.load();let n=K.from(e),r;if(!this.parentCompositeLayer)i.getLogger(this).warn(`Attempting to query for object IDs with no features failed because the parent composite layer is missing or not yet loaded.`),r=this.loadQueryEngine([]);else if(this.parentCompositeLayer.type===`link-chart`&&this._cachedQueryEngine)r=this._cachedQueryEngine;else{let{features:e,cypherTranslationApplied:i}=await this.parentCompositeLayer.dataManager.getData(n,this,this.parentCompositeLayer,t);return r=this.loadQueryEngine(e),await r.executeQueryForIds(this._createQueryEngineQueryJSON(n,i),t?.signal)}return await r.executeQueryForIds(this._createQueryEngineQueryJSON(n,!1),t?.signal)}async applyEdits(e){if(!this.parentCompositeLayer?.dataManager.knowledgeGraph)throw new n(`knowledge-graph-sublayer:no-knowledge-graph`,`ApplyEdits cannot be executed because the parent does not have a Knowledge Graph model. This is usually caused by the layer not yet being loaded`);let t=await O(e,this,this.parentCompositeLayer);t.options={cascadeDelete:!0,cascadeProvenanceDelete:this.parent?.knowledgeGraph.serviceDefinition.supportsProvenance?!0:void 0};let r=await Ee(this.parentCompositeLayer.dataManager.knowledgeGraph,t),i=k(r,this.graphTypeName),a={addedFeatures:i.addFeatureResults,updatedFeatures:i.updateFeatureResults,deletedFeatures:i.deleteFeatureResults,addedAttachments:i.addAttachmentResults,deletedAttachments:i.deleteAttachmentResults,updatedAttachments:i.updateAttachmentResults,exceededTransferLimit:!1,historicMoment:new Date,edits:void 0};return this.emit(`edits`,a),this.emit(`apply-edits`,{result:Promise.resolve(a)}),this.parentCompositeLayer.type===`link-chart`&&await this.parentCompositeLayer.refreshLinkChartCache([...a.addedFeatures.map(e=>e.globalId),...a.updatedFeatures.map(e=>e.globalId),...a.deletedFeatures.map(e=>e.globalId)]),i}loadQueryEngine(e){let t=new ce({geometryType:d.toJSON(this.geometryType),hasM:this.hasM,hasZ:this.hasZ}),n=new le({fieldsIndex:this.fieldsIndex.toJSON(),geometryType:d.toJSON(this.geometryType),hasM:this.hasM,hasZ:this.hasZ,featureIdInfo:{type:`object-id`,fieldName:this.objectIdField},spatialReference:this.spatialReference.toJSON(),timeInfo:this.timeInfo?.toJSON(),featureStore:t});return n.featureStore.addMany(e),n}async refreshCachedQueryEngine(){if(!this.parentCompositeLayer){i.getLogger(this).warn(`Attempting to refresh the cached query engine with no features failed because the parent composite layer is missing or not yet loaded.`),this._cachedQueryEngine=this.loadQueryEngine([]);return}let{features:e}=await this.parentCompositeLayer.dataManager.getData(new K({where:`1=1`,outFields:[m]}),this,this.parentCompositeLayer);this._cachedQueryEngine=this.loadQueryEngine(e)}load(e){return this.addResolvingPromise(this.parent.load(e).then(()=>be(this.timeInfo,this.fieldsIndex))),Promise.resolve(this)}_createQueryEngineQueryJSON(e,t){let n=e.toJSON();return t&&delete n.resultOffset,n}async _setupQueryObjects(e,t){let n=K.from(e),r=n.geometry;if(r&&!r.spatialReference?.isWGS84&&(await ie(r.spatialReference,u),n.geometry=r instanceof ne||r instanceof re||r instanceof te?l(r,u):l(r.extent,u)),!this.parentCompositeLayer)return i.getLogger(this).warn(`Attempting to execute a query with no features failed because the parent composite layer is missing or not yet loaded.`),{resolvedQuery:n,queryEngine:this.loadQueryEngine([]),cypherTranslationApplied:!1};if(this.parentCompositeLayer.type===`link-chart`&&this._cachedQueryEngine)return{resolvedQuery:n,queryEngine:this._cachedQueryEngine,cypherTranslationApplied:!1};let{features:a,cypherTranslationApplied:o}=await this.parentCompositeLayer.dataManager.getData(n,this,this.parentCompositeLayer,t);return{resolvedQuery:n,queryEngine:this.loadQueryEngine(a),cypherTranslationApplied:o}}};e([o(J(r(j)))],$.prototype,`blendMode`,void 0),e([o({readOnly:!0})],$.prototype,`capabilities`,null),e([o()],$.prototype,`isTable`,null),e([o({json:{origins:{"web-scene":{write:!1}},write:X()}})],$.prototype,`charts`,void 0),e([o({readOnly:!0})],$.prototype,`defaultPopupTemplate`,null),e([o({type:String,json:{origins:{service:{read:!1}},name:`layerDefinition.definitionExpression`,write:{ignoreOrigin:!0}}})],$.prototype,`definitionExpression`,void 0),e([o(J(r(P)))],$.prototype,`displayFilterEnabled`,void 0),e([o(J(r(F)))],$.prototype,`displayFilterInfo`,void 0),e([o()],$.prototype,`editingEnabled`,null),e([o(J(r(M)))],$.prototype,`effect`,void 0),e([o({readOnly:!0})],$.prototype,`effectiveCapabilities`,null),e([o({readOnly:!0})],$.prototype,`effectiveEditingEnabled`,null),e([o({type:ke})],$.prototype,`elevationInfo`,void 0),e([o(J(r(L)))],$.prototype,`featureEffect`,void 0),e([o(J(r(_e)))],$.prototype,`featureReduction`,null),e([o()],$.prototype,`fields`,null),e([o({type:ee})],$.prototype,`formTemplate`,null),e([o()],$.prototype,`geometryType`,null),e([o()],$.prototype,`geometryFieldName`,null),e([o({readOnly:!0})],$.prototype,`graphicOrigin`,null),e([o({type:[`entity`,`relationship`],nonNullable:!0,json:{write:{isRequired:!0,ignoreOrigin:!0}}})],$.prototype,`graphType`,void 0),e([o({type:String,nonNullable:!0,json:{write:{isRequired:!0,ignoreOrigin:!0}}})],$.prototype,`graphTypeName`,null),e([o()],$.prototype,`hasM`,null),e([o()],$.prototype,`hasZ`,null),e([o({type:String,json:{origins:{service:{read:!1},"portal-item":{read:!1}},write:{ignoreOrigin:!0}}})],$.prototype,`id`,void 0),e([o({type:Boolean,value:!0,nonNullable:!0,json:{name:`showLabels`,default:!1,write:{overridePolicy(){return{enabled:!!this.geometryType,alwaysWriteDefaults:!0,ignoreOrigin:!0}}}}})],$.prototype,`labelsVisible`,void 0),e([o({type:[xe],json:{name:`layerDefinition.drawingInfo.labelingInfo`,read:Ne,write:X()}})],$.prototype,`labelingInfo`,null),e([o({readOnly:!0,json:{read:!1,write:{writer(e,t){switch(this.parentCompositeLayer?.type){case`link-chart`:t.layerType=`LinkChartSubLayer`;break;case`knowledge-graph`:t.layerType=this.geometryType?`KnowledgeGraphSubLayer`:`KnowledgeGraphSubTable`}},isRequired:!0,ignoreOrigin:!0,writerEnsuresNonNull:!0}}})],$.prototype,`layerType`,void 0),e([o(J(r(fe)))],$.prototype,`legendEnabled`,void 0),e([o(J(r(pe)))],$.prototype,`maxScale`,void 0),e([o(J(r(me)))],$.prototype,`minScale`,void 0),e([o()],$.prototype,`objectIdField`,void 0),e([o()],$.prototype,`objectType`,void 0),e([o(J(r(he)))],$.prototype,`opacity`,void 0),e([o(J(r(B)))],$.prototype,`orderBy`,void 0),e([o({clonable:!1})],$.prototype,`parent`,void 0),e([o()],$.prototype,`parentCompositeLayer`,void 0),e([o(J(r(ge)))],$.prototype,`popupEnabled`,void 0),e([o({type:t,json:{name:`popupInfo`,write:{ignoreOrigin:!0}}})],$.prototype,`popupTemplate`,void 0),e([o({type:Number,json:{write:{overridePolicy:Q}}})],$.prototype,`refreshInterval`,void 0),e([o({types:Te,json:{name:`layerDefinition.drawingInfo.renderer`,write:X()}})],$.prototype,`renderer`,null),e([o()],$.prototype,`source`,void 0),e([o()],$.prototype,`spatialReference`,null),e([o({type:ve})],$.prototype,`templates`,null),e([o({type:Ce,json:{name:`layerDefinition.timeInfo`,write:{overridePolicy:Q},origins:{"web-document":{name:`layerDefinition.timeInfo`,read:!0,write:{overridePolicy:Q}},"portal-item":{name:`layerDefinition.timeInfo`,read:!0,write:{overridePolicy:Q}}}}})],$.prototype,`timeInfo`,null),e([o({readOnly:!0})],$.prototype,`dateFieldsTimeZone`,null),e([o({type:String,json:{write:{isRequired:!0,ignoreOrigin:!0,writerEnsuresNonNull:!0}}})],$.prototype,`title`,null),e([je(`title`)],$.prototype,`writeTitle`,null),e([o({json:{read:!1}})],$.prototype,`type`,void 0),e([o(J(r(de)))],$.prototype,`useViewTime`,void 0),e([o({readOnly:!0})],$.prototype,`userHasEditingPrivileges`,null),e([o({readOnly:!0})],$.prototype,`userHasFullEditingPrivileges`,null),e([o({readOnly:!0})],$.prototype,`userHasUpdateItemPrivileges`,null),e([o({type:Boolean,json:{name:`visibility`,write:X()}})],$.prototype,`visible`,void 0),$=e([s(`esri.layers.knowledgeGraph.KnowledgeGraphSublayer`)],$);function Ne(e,t,n){let r=[[`ESRI__AGGREGATION_COUNT`,h],[`ESRI__ORIGIN_ID`,ue],[`ESRI__DESTINATION_ID`,v],[`ESRI__LAYOUT_GEOMETRY`,_]];try{for(let t of e)for(let[e,n]of r)t.labelExpression=t.labelExpression?.replaceAll(e,n),t.labelExpressionInfo?.expression&&(t.labelExpressionInfo.expression=t.labelExpressionInfo.expression.replaceAll(e,n))}catch(e){i.getLogger(this).warn(`Error updating labelingInfo`,e)}return Se.call(this,e,t,n)}export{$ as default};
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../PopupTemplate.js";import n from"../../core/Error.js";import{clone as r}from"../../core/lang.js";import i from"../../core/Logger.js";import{MultiOriginJSONSupportMixin as a}from"../../core/MultiOriginJSONSupport.js";import{property as o,subclass as s}from"../../core/accessorSupport/decorators.js";import"../../core/workers/workers.js";import ee from"../../form/FormTemplate.js";import c from"../../geometry/Extent.js";import te from"../../geometry/Point.js";import ne from"../../geometry/Polygon.js";import re from"../../geometry/Polyline.js";import{initializeProjection as ie,project as l}from"../../geometry/projectionUtils.js";import ae from"../../geometry/SpatialReference.js";import{wgs84 as u}from"../../geometry/support/spatialReferenceUtils.js";import{featureGeometryTypeKebabDictionary as d}from"../../geometry/support/typeUtils.js";import f from"../../graphic/KnowledgeGraphGraphicOrigin.js";import oe from"../../graphic/LinkChartGraphicOrigin.js";import se from"../Layer.js";import ce from"../graphics/data/FeatureStore.js";import{QueryEngine as le}from"../graphics/data/QueryEngine.js";import{createDrawingInfo as p}from"../graphics/sources/support/clientSideDefaults.js";import{systemOidFieldName as m,systemAggregationCountFieldName as h,systemIsSpatialFieldName as g,systemLayoutGeometryFieldName as _,systemOriginIdFieldName as ue,systemDestinationIdFieldName as v}from"./constants.js";import{KnowledgeGraphSublayerBase as y}from"./KnowledgeGraphSublayerBase.js";import{createCapabilitiesFromKnowledgeGraph as b,createDefaultKGSLFormTemplate as x,getDisplayLabelProperty as S,getLinkChartDefaultLabelingInfo as C,getMapDefaultLabelingInfo as w,getKGSublayerSymbolColor as T,getDefaultLCRelationshipSublayerSymbol as E,createDefaultKGSLFeatureTemplates as D,convertLayerEditsToGraphEdits as O,convertGraphEditsResultToFeatureEdits as k}from"./layerUtils.js";import{BlendLayer as A,blendModeProperty as j,effectProperty as M}from"../mixins/BlendLayer.js";import{DisplayFilteredLayer as N,displayFilterEnabledProperty as P,displayFilterInfoProperty as F}from"../mixins/DisplayFilteredLayer.js";import{FeatureEffectLayer as I,featureEffectProperty as L}from"../mixins/FeatureEffectLayer.js";import{FeatureReductionLayer as R}from"../mixins/FeatureReductionLayer.js";import{OrderedLayer as z,orderByProperty as B}from"../mixins/OrderedLayer.js";import{RefreshableLayer as V}from"../mixins/RefreshableLayer.js";import{ScaleRangeLayer as H}from"../mixins/ScaleRangeLayer.js";import{TemporalLayer as U,useViewTimeProperty as de}from"../mixins/TemporalLayer.js";import{legendEnabled as fe,maxScale as pe,minScale as me,opacity as he,popupEnabled as ge}from"../support/commonProperties.js";import{featureReductionProperty as _e}from"../support/featureReductionUtils.js";import ve from"../support/FeatureTemplate.js";import W from"../support/Field.js";import{fixRendererFields as ye,fixTimeInfoFields as be}from"../support/fieldUtils.js";import xe from"../support/LabelClass.js";import{reader as Se}from"../support/labelingInfo.js";import Ce from"../support/TimeInfo.js";import we from"../../renderers/SimpleRenderer.js";import{fromJSON as G}from"../../renderers/support/jsonUtils.js";import{rendererTypes as Te}from"../../renderers/support/typeUtils.js";import{executeApplyEdits as Ee}from"../../rest/knowledgeGraphService.js";import De from"../../rest/support/FeatureSet.js";import K from"../../rest/support/Query.js";import{createPopupTemplate as Oe}from"../../support/popupUtils.js";import ke from"../../symbols/support/ElevationInfo.js";import{applyColorToSymbol as q}from"../../symbols/support/utils.js";import Ae from"../../core/workers/RemoteClient.js";import{writer as je}from"../../core/accessorSupport/decorators/writer.js";function J(e){if(!e.json)return e;e.json.write=Y(e.json.write);let t=e.json.origins;if(!t)return e;let n;for(n in t){let e=t[n];e&&(e.write=Y(e.write))}return e}function Y(e){return typeof e==`object`&&e?(e.enabled!==!1&&(e.overridePolicy=Me(e)),e):e===!0?X():e}function Me(e){let{target:t,writer:n,overridePolicy:r,...i}=e;return function(e,t){let n=Z.call(this,e,t);return n.enabled?{...i,...n}:n}}function X(){return{overridePolicy:Z}}function Z(e,t){let n=!!this.geometryType,r={enabled:n};return n&&(r={...r,...Q.call(this,e,t)}),r}function Q(e,t){return{allowNull:this.originIdOf(t)>=3,ignoreOrigin:this.originIdOf(t)>0}}let $=class extends y(N(R(I(A(z(U(H(V(a(se)))))))))){constructor(e){super(e),this.blendMode=`normal`,this.charts=null,this.definitionExpression=null,this.displayFilterEnabled=!0,this.displayFilterInfo=null,this.effect=null,this.elevationInfo=null,this.featureEffect=null,this.graphType=null,this.labelsVisible=!0,this.layerType=null,this.legendEnabled=!0,this.maxScale=0,this.minScale=0,this.objectIdField=m,this.objectType=null,this.opacity=1,this.orderBy=null,this.parent=null,this.parentCompositeLayer=null,this.persistenceEnabled=!0,this.popupEnabled=!0,this.popupTemplate=null,this.refreshInterval=0,this.source={openPorts:()=>this.load().then(()=>{let e=new MessageChannel;return new Ae(e.port1,{channel:e,client:{queryFeatures:(e,t={})=>{let n=K.fromJSON(e);return this.queryFeaturesJSON(n,t)}}}),[e.port2]})},this.type=`knowledge-graph-sublayer`,this.useViewTime=!0,this.visible=!0}get capabilities(){return this.parent?this.parent.sublayerCapabilities:b(null)}get isTable(){return this.parentCompositeLayer?.type!==`link-chart`&&this.geometryFieldName==null}get defaultPopupTemplate(){return this.createPopupTemplate()}get editingEnabled(){return this.capabilities.operations.supportsEditing&&this.userHasEditingPrivileges}set editingEnabled(e){this._overrideIfSome(`editingEnabled`,e)}get effectiveCapabilities(){let e=r(this.capabilities),{operations:t,editing:n}=e;return this.userHasUpdateItemPrivileges&&(t.supportsAdd=t.supportsDelete=t.supportsEditing=t.supportsQuery=t.supportsUpdate=n.supportsDeleteByOthers=n.supportsGeometryUpdate=n.supportsUpdateByOthers=!0),this.userHasFullEditingPrivileges&&t.supportsEditing&&(t.supportsAdd=t.supportsDelete=t.supportsUpdate=n.supportsGeometryUpdate=!0),e}get effectiveEditingEnabled(){return this.userHasUpdateItemPrivileges||this.editingEnabled}set featureReduction(e){let t=this._normalizeFeatureReduction(e);this._set(`featureReduction`,t)}get fields(){let e=[],t=new Map;for(let e of this.parent?.knowledgeGraph.dataModel.domains??[])t.set(e.name,e);return this.objectType?.properties?.forEach(n=>{let r=n.fieldType===`esriFieldTypeOID`?`esriFieldTypeInteger`:n.fieldType,i=W.fromJSON({name:n.name,type:r,alias:n.alias,defaultValue:n.defaultValue,editable:n.editable,nullable:n.nullable,domain:n.domain&&t.has(n.domain)?t.get(n.domain).toJSON():void 0});e.push(i)}),e.push(W.fromJSON({name:this.objectIdField,type:`esriFieldTypeString`,alias:this.objectIdField,editable:!1}),W.fromJSON({name:h,type:`esriFieldTypeInteger`,alias:h,editable:!1}),W.fromJSON({name:g,type:`esriFieldTypeInteger`,alias:g,editable:!1})),e}get formTemplate(){return this._isOverridden(`formTemplate`)?this._get(`formTemplate`):x(this)}set formTemplate(e){this._overrideIfSome(`formTemplate`,e)}get geometryType(){if(this.parentCompositeLayer?.type===`link-chart`)return this.graphType===`relationship`?`polyline`:`point`;let e=this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name)?.geometryType;return!e||e===`esriGeometryNull`?null:d.fromJSON(e)}get geometryFieldName(){return this.parentCompositeLayer?.type===`link-chart`?_:this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name)?.name??null}get graphicOrigin(){if(!this.parent)return null;switch(this.parent.type){case`knowledge-graph`:return new f(this.parent,this);case`link-chart`:return new oe(this.parent,this)}}get graphTypeName(){return this.objectType?.name}set graphTypeName(e){this._set(`graphTypeName`,e)}get hasM(){let e=this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name)?.name;return(e?this.objectType?.properties?.[e]:null)?.hasM??!1}get hasZ(){let e=this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name)?.name;return(e?this.objectType?.properties?.[e]:null)?.hasZ??!1}set labelingInfo(e){this._set(`labelingInfo`,e)}get labelingInfo(){if(this._isOverridden(`labelingInfo`))return this._get(`labelingInfo`);if(!this.objectType||!this.parentCompositeLayer||!this.graphTypeName)return null;let e=this.objectType.properties?S(this.objectType.properties):`ESRI__ID`;return this.parentCompositeLayer.type===`link-chart`?C(this.graphType,this.graphTypeName,e):w(this.graphTypeName,this.geometryType,e)}set renderer(e){ye(e,this.fieldsIndex),this._set(`renderer`,e)}get renderer(){if(this._isOverridden(`renderer`))return this._get(`renderer`);let e=this.parentCompositeLayer?.dataManager?.knowledgeGraph?.dataModel,t=[...e?.entityTypes??[],...e?.relationshipTypes??[]].map(e=>e.name).indexOf(this.graphTypeName),n=T(t);if(this.parentCompositeLayer?.type===`link-chart`){if(this.graphType===`relationship`)return new we({type:`simple`,symbol:E(n)});let e=G(p(d.toJSON(`point`)).renderer);return q(e.symbol,n),e}let r=G(p(d.toJSON(this.geometryType)).renderer);return q(r.symbol,n),r}get spatialReference(){return this.parentCompositeLayer?.dataManager?.knowledgeGraph?.dataModel?.spatialReference??ae.WGS84}get templates(){return this._isOverridden(`templates`)?this._get(`templates`):D(this)}set templates(e){this._overrideIfSome(`templates`,e)}set timeInfo(e){this._set(`timeInfo`,e)}get dateFieldsTimeZone(){return this.parentCompositeLayer?.dateFieldsTimeZone}get title(){return this._isOverridden(`title`)?this._get(`title`):this.graphTypeName}set title(e){this._set(`title`,e)}writeTitle(e,t){t.title=e??`Layer`}get userHasEditingPrivileges(){return!this.parent||this.parent.userHasEditingPrivileges}get userHasFullEditingPrivileges(){return this.parent?this.parent.userHasFullEditingPrivileges:!1}get userHasUpdateItemPrivileges(){return this.parent?this.parent.userHasUpdateItemPrivileges:!1}createPopupTemplate(e){return Oe(this,e)}createQuery(){return new K({where:`1=1`,outFields:[`*`]})}getField(e){return this.fieldsIndex.get(e)}getFieldDomain(e,t){return this.fields.find(t=>t.name===e)?.domain||null}async queryFeatures(e,t){await this.load();let{resolvedQuery:n,queryEngine:r,cypherTranslationApplied:i}=await this._setupQueryObjects(e),a=this.graphicOrigin,o=De.fromJSON(await r.executeQuery(this._createQueryEngineQueryJSON(n,i),t?.signal));return o.features.forEach(e=>{e.sourceLayer=this,e.origin=a}),o}async queryFeaturesJSON(e,t){await this.load();let{resolvedQuery:n,queryEngine:r,cypherTranslationApplied:i}=await this._setupQueryObjects(e);return await r.executeQuery(this._createQueryEngineQueryJSON(n,i),t?.signal)}async queryFeatureCount(e,t){await this.load();let{resolvedQuery:n,queryEngine:r,cypherTranslationApplied:i}=await this._setupQueryObjects(e);return r.executeQueryForCount(this._createQueryEngineQueryJSON(n,i),t?.signal)}async queryExtent(e={},t){await this.load();let n={...e,returnGeometry:!0},{resolvedQuery:r,queryEngine:i,cypherTranslationApplied:a}=await this._setupQueryObjects(n),o=await i.executeQueryForExtent(this._createQueryEngineQueryJSON(r,a),t?.signal),s;return s=o.extent?.xmin!=null&&o.extent?.xmax!=null&&o.extent?.ymin!=null&&o.extent?.ymax!=null?new c(o.extent):new c,{count:o.count,extent:s}}async queryObjectIds(e,t){await this.load();let n=K.from(e),r;if(!this.parentCompositeLayer)i.getLogger(this).warn(`Attempting to query for object IDs with no features failed because the parent composite layer is missing or not yet loaded.`),r=this.loadQueryEngine([]);else if(this.parentCompositeLayer.type===`link-chart`&&this._cachedQueryEngine)r=this._cachedQueryEngine;else{let{features:e,cypherTranslationApplied:i}=await this.parentCompositeLayer.dataManager.getData(n,this,this.parentCompositeLayer,t);return r=this.loadQueryEngine(e),await r.executeQueryForIds(this._createQueryEngineQueryJSON(n,i),t?.signal)}return await r.executeQueryForIds(this._createQueryEngineQueryJSON(n,!1),t?.signal)}async applyEdits(e){if(!this.parentCompositeLayer?.dataManager.knowledgeGraph)throw new n(`knowledge-graph-sublayer:no-knowledge-graph`,`ApplyEdits cannot be executed because the parent does not have a Knowledge Graph model. This is usually caused by the layer not yet being loaded`);let t=await O(e,this,this.parentCompositeLayer);t.options={cascadeDelete:!0,cascadeProvenanceDelete:this.parent?.knowledgeGraph.serviceDefinition.supportsProvenance?!0:void 0};let r=await Ee(this.parentCompositeLayer.dataManager.knowledgeGraph,t),i=k(r,this.graphTypeName),a={addedFeatures:i.addFeatureResults,updatedFeatures:i.updateFeatureResults,deletedFeatures:i.deleteFeatureResults,addedAttachments:i.addAttachmentResults,deletedAttachments:i.deleteAttachmentResults,updatedAttachments:i.updateAttachmentResults,exceededTransferLimit:!1,historicMoment:new Date,edits:void 0};return this.emit(`edits`,a),this.emit(`apply-edits`,{result:Promise.resolve(a)}),this.parentCompositeLayer.type===`link-chart`&&await this.parentCompositeLayer.refreshLinkChartCache([...a.addedFeatures.map(e=>e.globalId),...a.updatedFeatures.map(e=>e.globalId),...a.deletedFeatures.map(e=>e.globalId)]),i}loadQueryEngine(e){let t=new ce({geometryType:d.toJSON(this.geometryType),hasM:this.hasM,hasZ:this.hasZ}),n=new le({fieldsIndex:this.fieldsIndex.toJSON(),geometryType:d.toJSON(this.geometryType),hasM:this.hasM,hasZ:this.hasZ,featureIdInfo:{type:`object-id`,fieldName:this.objectIdField},spatialReference:this.spatialReference.toJSON(),timeInfo:this.timeInfo?.toJSON(),featureStore:t});return n.featureStore.addMany(e),n}async refreshCachedQueryEngine(){if(!this.parentCompositeLayer){i.getLogger(this).warn(`Attempting to refresh the cached query engine with no features failed because the parent composite layer is missing or not yet loaded.`),this._cachedQueryEngine=this.loadQueryEngine([]);return}let{features:e}=await this.parentCompositeLayer.dataManager.getData(new K({where:`1=1`,outFields:[m]}),this,this.parentCompositeLayer);this._cachedQueryEngine=this.loadQueryEngine(e)}load(e){return this.addResolvingPromise(this.parent.load(e).then(()=>be(this.timeInfo,this.fieldsIndex))),Promise.resolve(this)}_createQueryEngineQueryJSON(e,t){let n=e.toJSON();return t&&delete n.resultOffset,n}async _setupQueryObjects(e,t){let n=K.from(e),r=n.geometry;if(r&&!r.spatialReference?.isWGS84&&(await ie(r.spatialReference,u),n.geometry=r instanceof ne||r instanceof re||r instanceof te?l(r,u):l(r.extent,u)),!this.parentCompositeLayer)return i.getLogger(this).warn(`Attempting to execute a query with no features failed because the parent composite layer is missing or not yet loaded.`),{resolvedQuery:n,queryEngine:this.loadQueryEngine([]),cypherTranslationApplied:!1};if(this.parentCompositeLayer.type===`link-chart`&&this._cachedQueryEngine)return{resolvedQuery:n,queryEngine:this._cachedQueryEngine,cypherTranslationApplied:!1};let{features:a,cypherTranslationApplied:o}=await this.parentCompositeLayer.dataManager.getData(n,this,this.parentCompositeLayer,t);return{resolvedQuery:n,queryEngine:this.loadQueryEngine(a),cypherTranslationApplied:o}}};e([o(J(r(j)))],$.prototype,`blendMode`,void 0),e([o({readOnly:!0})],$.prototype,`capabilities`,null),e([o()],$.prototype,`isTable`,null),e([o({json:{origins:{"web-scene":{write:!1}},write:X()}})],$.prototype,`charts`,void 0),e([o({readOnly:!0})],$.prototype,`defaultPopupTemplate`,null),e([o({type:String,json:{origins:{service:{read:!1}},name:`layerDefinition.definitionExpression`,write:{ignoreOrigin:!0}}})],$.prototype,`definitionExpression`,void 0),e([o(J(r(P)))],$.prototype,`displayFilterEnabled`,void 0),e([o(J(r(F)))],$.prototype,`displayFilterInfo`,void 0),e([o()],$.prototype,`editingEnabled`,null),e([o(J(r(M)))],$.prototype,`effect`,void 0),e([o({readOnly:!0})],$.prototype,`effectiveCapabilities`,null),e([o({readOnly:!0})],$.prototype,`effectiveEditingEnabled`,null),e([o({type:ke})],$.prototype,`elevationInfo`,void 0),e([o(J(r(L)))],$.prototype,`featureEffect`,void 0),e([o(J(r(_e)))],$.prototype,`featureReduction`,null),e([o()],$.prototype,`fields`,null),e([o({type:ee})],$.prototype,`formTemplate`,null),e([o()],$.prototype,`geometryType`,null),e([o()],$.prototype,`geometryFieldName`,null),e([o({readOnly:!0})],$.prototype,`graphicOrigin`,null),e([o({type:[`entity`,`relationship`],nonNullable:!0,json:{write:{isRequired:!0,ignoreOrigin:!0}}})],$.prototype,`graphType`,void 0),e([o({type:String,nonNullable:!0,json:{write:{isRequired:!0,ignoreOrigin:!0}}})],$.prototype,`graphTypeName`,null),e([o()],$.prototype,`hasM`,null),e([o()],$.prototype,`hasZ`,null),e([o({type:String,json:{origins:{service:{read:!1},"portal-item":{read:!1}},write:{ignoreOrigin:!0}}})],$.prototype,`id`,void 0),e([o({type:Boolean,value:!0,nonNullable:!0,json:{name:`showLabels`,default:!1,write:{overridePolicy(){return{enabled:!!this.geometryType,alwaysWriteDefaults:!0,ignoreOrigin:!0}}}}})],$.prototype,`labelsVisible`,void 0),e([o({type:[xe],json:{name:`layerDefinition.drawingInfo.labelingInfo`,read:Ne,write:X()}})],$.prototype,`labelingInfo`,null),e([o({readOnly:!0,json:{read:!1,write:{writer(e,t){switch(this.parentCompositeLayer?.type){case`link-chart`:t.layerType=`LinkChartSubLayer`;break;case`knowledge-graph`:t.layerType=this.geometryType?`KnowledgeGraphSubLayer`:`KnowledgeGraphSubTable`}},isRequired:!0,ignoreOrigin:!0,writerEnsuresNonNull:!0}}})],$.prototype,`layerType`,void 0),e([o(J(r(fe)))],$.prototype,`legendEnabled`,void 0),e([o(J(r(pe)))],$.prototype,`maxScale`,void 0),e([o(J(r(me)))],$.prototype,`minScale`,void 0),e([o()],$.prototype,`objectIdField`,void 0),e([o()],$.prototype,`objectType`,void 0),e([o(J(r(he)))],$.prototype,`opacity`,void 0),e([o(J(r(B)))],$.prototype,`orderBy`,void 0),e([o({clonable:!1})],$.prototype,`parent`,void 0),e([o()],$.prototype,`parentCompositeLayer`,void 0),e([o(J(r(ge)))],$.prototype,`popupEnabled`,void 0),e([o({type:t,json:{name:`popupInfo`,write:{ignoreOrigin:!0}}})],$.prototype,`popupTemplate`,void 0),e([o({type:Number,json:{write:{overridePolicy:Q}}})],$.prototype,`refreshInterval`,void 0),e([o({types:Te,json:{name:`layerDefinition.drawingInfo.renderer`,write:X()}})],$.prototype,`renderer`,null),e([o()],$.prototype,`source`,void 0),e([o()],$.prototype,`spatialReference`,null),e([o({type:ve})],$.prototype,`templates`,null),e([o({type:Ce,json:{name:`layerDefinition.timeInfo`,write:{overridePolicy:Q},origins:{"web-document":{name:`layerDefinition.timeInfo`,read:!0,write:{overridePolicy:Q}},"portal-item":{name:`layerDefinition.timeInfo`,read:!0,write:{overridePolicy:Q}}}}})],$.prototype,`timeInfo`,null),e([o({readOnly:!0})],$.prototype,`dateFieldsTimeZone`,null),e([o({type:String,json:{write:{isRequired:!0,ignoreOrigin:!0,writerEnsuresNonNull:!0}}})],$.prototype,`title`,null),e([je(`title`)],$.prototype,`writeTitle`,null),e([o({json:{read:!1}})],$.prototype,`type`,void 0),e([o(J(r(de)))],$.prototype,`useViewTime`,void 0),e([o({readOnly:!0})],$.prototype,`userHasEditingPrivileges`,null),e([o({readOnly:!0})],$.prototype,`userHasFullEditingPrivileges`,null),e([o({readOnly:!0})],$.prototype,`userHasUpdateItemPrivileges`,null),e([o({type:Boolean,json:{name:`visibility`,write:X()}})],$.prototype,`visible`,void 0),$=e([s(`esri.layers.knowledgeGraph.KnowledgeGraphSublayer`)],$);function Ne(e,t,n){let r=[[`ESRI__AGGREGATION_COUNT`,h],[`ESRI__ORIGIN_ID`,ue],[`ESRI__DESTINATION_ID`,v],[`ESRI__LAYOUT_GEOMETRY`,_]];try{for(let t of e)for(let[e,n]of r)t.labelExpression=t.labelExpression?.replaceAll(e,n),t.labelExpressionInfo?.expression&&(t.labelExpressionInfo.expression=t.labelExpressionInfo.expression.replaceAll(e,n))}catch(e){i.getLogger(this).warn(`Error updating labelingInfo`,e)}return Se.call(this,e,t,n)}export{$ as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../../request.js";import{some as n}from"../../core/iteratorUtils.js";import{getOrCreateMapValue as r}from"../../core/MapUtils.js";import{throwIfAborted as i}from"../../core/promiseUtils.js";import{join as a}from"../../core/urlUtils.js";import o from"../../core/Version.js";import{property as s,subclass as c}from"../../core/accessorSupport/decorators.js";import l from"../../geometry/Extent.js";import u from"../../geometry/SpatialReference.js";import{parse as d}from"../support/arcgisLayerUrl.js";import{id as f,popupEnabled as p}from"../support/commonProperties.js";import{isHostedLayer as m}from"../../portal/support/portalItemUtils.js";import{reader as h}from"../../core/accessorSupport/decorators/reader.js";const g=g=>{let _=g,v=class extends _{constructor(){super(...arguments),this.capabilities=void 0,this.copyright=null,this.fullExtent=null,this.legendEnabled=!0,this.spatialReference=null,this.version=void 0,this._allLayersAndTablesMap=null}readCapabilities(e,t){let n=t.capabilities&&t.capabilities.split(`,`).map(e=>e.toLowerCase().trim());if(!n)return{operations:{supportsExportMap:!1,supportsExportTiles:!1,supportsIdentify:!1,supportsQuery:!1,supportsTileMap:!1},exportMap:null,exportTiles:null};let r=this.type,i=r!==`tile`&&!!t.supportsDynamicLayers,a=n.includes(`query`),s=n.includes(`map`),c=!!t.exportTilesAllowed,l=n.includes(`tilemap`),u=n.includes(`data`),d=r!==`tile`&&(!t.tileInfo||i),f=r!==`tile`&&(!t.tileInfo||i),p=r!==`tile`,m=r!==`tile`&&i&&t.currentVersion>=11.1,h=t.cimVersion?o.parse(t.cimVersion):null,g=h?.greaterEqual(1,4)??!1,_=h?.greaterEqual(2,0)??!1;return{operations:{supportsExportMap:s,supportsExportTiles:c,supportsIdentify:a,supportsQuery:u,supportsTileMap:l},exportMap:s?{supportsArcadeExpressionForLabeling:g,supportsCIMSymbols:_,supportsDynamicLayers:i,supportsSublayerOrderBy:m,supportsSublayerDefinitionExpression:f,supportsSublayerVisibility:d,supportsSublayersChanges:p}:null,exportTiles:c?{maxExportTilesCount:+t.maxExportTilesCount}:null}}readVersion(e,t){let n=t.currentVersion;return n||=t.hasOwnProperty(`capabilities`)||t.hasOwnProperty(`tables`)?10:t.hasOwnProperty(`supportedImageFormatTypes`)?9.31:9.3,n}async fetchRelatedService(e){let t=this.portalItem;if(!t||!m(t))return null;this._relatedFeatureServicePromise||=t.fetchRelatedItems({relationshipType:`Service2Service`,direction:`reverse`},e).then(e=>e.find(e=>e.type===`Feature Service`)??null,()=>null);let n=await this._relatedFeatureServicePromise;return i(e),n?{itemId:n.id,url:n.url}:null}async fetchSublayerInfo(e,n){let{source:r}=e;if(this?.portalItem&&this.type===`tile`&&r?.type===`map-layer`&&m(this.portalItem)&&e.originIdOf(`url`)<2){let t=await this.fetchRelatedService(n);t&&(e.url=a(t.url,r.mapLayerId.toString()),e.layerItemId=t.itemId)}let{url:i}=e,o;if(r.type===`data-layer`)o=(await t(i,{responseType:`json`,query:{f:`json`,...this.customParameters,token:this.apiKey},...n})).data;else{let t=e.id;r?.type===`map-layer`&&(t=r.mapLayerId);try{o=(await this.fetchAllLayersAndTables(n)).get(t)}catch{}if(i&&e.originIdOf(`url`)>2)try{let e=await this._fetchAllLayersAndTablesFromService(i),t=d(i)?.sublayer??r.mapLayerId,n=structuredClone(e.get(t));if(n!=null){for(let e of[`drawingInfo`,`maxScale`,`minScale`,`name`])delete n[e];o={...o,...n}}}catch{}}return o}async fetchAllLayersAndTables(e){return this._fetchAllLayersAndTablesFromService(this.parsedUrl?.path,e)}async _fetchAllLayersAndTablesFromService(e,o){await this.load(o),this._allLayersAndTablesMap||=new Map;let s=d(e),c=await r(this._allLayersAndTablesMap,s?.url.path,()=>t(a(s?.url.path,`/layers`),{query:{f:`json`,...this.customParameters,token:this.apiKey}}).then(async e=>{let r=new Map,{layers:i,tables:a}=e.data,o=[...i??[],...a??[]];for(let e of o)r.set(e.id,e);if(n(r.values(),e=>e.capabilities==null||e.extent==null)){let{data:e}=await t(s?.url.path,{query:{f:`json`,...this.customParameters,token:this.apiKey}}).catch(()=>({data:{capabilities:``,fullExtent:void 0}}));for(let t of r.values())t.capabilities??=e.capabilities??``,t.extent??=e.fullExtent}return{result:r}},e=>({error:e})));if(i(o),`result`in c)return c.result;throw c.error}};return e([s({readOnly:!0})],v.prototype,`capabilities`,void 0),e([h(`service`,`capabilities`,[`capabilities`,`cimVersion`,`currentVersion`,`exportTilesAllowed`,`maxExportTilesCount`,`supportsDynamicLayers`,`tileInfo`])],v.prototype,`readCapabilities`,null),e([s({json:{read:{source:`copyrightText`}}})],v.prototype,`copyright`,void 0),e([s({type:l})],v.prototype,`fullExtent`,void 0),e([s(f)],v.prototype,`id`,void 0),e([s({type:Boolean,json:{origins:{service:{read:{enabled:!1}}},read:{source:`showLegend`},write:{target:`showLegend`}}})],v.prototype,`legendEnabled`,void 0),e([s(p)],v.prototype,`popupEnabled`,void 0),e([s({type:u})],v.prototype,`spatialReference`,void 0),e([s({readOnly:!0})],v.prototype,`version`,void 0),e([h(`service`,`version`,[`currentVersion`,`capabilities`,`tables`,`supportedImageFormatTypes`])],v.prototype,`readVersion`,null),v=e([c(`esri.layers.mixins.ArcGISMapService`)],v),v};export{g as ArcGISMapService};
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../request.js";import{some as n}from"../../core/iteratorUtils.js";import{getOrCreateMapValue as r}from"../../core/MapUtils.js";import{throwIfAborted as i}from"../../core/promiseUtils.js";import{join as a}from"../../core/urlUtils.js";import o from"../../core/Version.js";import{property as s,subclass as c}from"../../core/accessorSupport/decorators.js";import l from"../../geometry/Extent.js";import u from"../../geometry/SpatialReference.js";import{parse as d}from"../support/arcgisLayerUrl.js";import{id as f,popupEnabled as p}from"../support/commonProperties.js";import{isHostedLayer as m}from"../../portal/support/portalItemUtils.js";import{reader as h}from"../../core/accessorSupport/decorators/reader.js";const g=g=>{let _=g,v=class extends _{constructor(){super(...arguments),this.capabilities=void 0,this.copyright=null,this.fullExtent=null,this.legendEnabled=!0,this.spatialReference=null,this.version=void 0,this._allLayersAndTablesMap=null}readCapabilities(e,t){let n=t.capabilities&&t.capabilities.split(`,`).map(e=>e.toLowerCase().trim());if(!n)return{operations:{supportsExportMap:!1,supportsExportTiles:!1,supportsIdentify:!1,supportsQuery:!1,supportsTileMap:!1},exportMap:null,exportTiles:null};let r=this.type,i=r!==`tile`&&!!t.supportsDynamicLayers,a=n.includes(`query`),s=n.includes(`map`),c=!!t.exportTilesAllowed,l=n.includes(`tilemap`),u=n.includes(`data`),d=r!==`tile`&&(!t.tileInfo||i),f=r!==`tile`&&(!t.tileInfo||i),p=r!==`tile`,m=r!==`tile`&&i&&t.currentVersion>=11.1,h=t.cimVersion?o.parse(t.cimVersion):null,g=h?.greaterEqual(1,4)??!1,_=h?.greaterEqual(2,0)??!1;return{operations:{supportsExportMap:s,supportsExportTiles:c,supportsIdentify:a,supportsQuery:u,supportsTileMap:l},exportMap:s?{supportsArcadeExpressionForLabeling:g,supportsCIMSymbols:_,supportsDynamicLayers:i,supportsSublayerOrderBy:m,supportsSublayerDefinitionExpression:f,supportsSublayerVisibility:d,supportsSublayersChanges:p}:null,exportTiles:c?{maxExportTilesCount:+t.maxExportTilesCount}:null}}readVersion(e,t){let n=t.currentVersion;return n||=t.hasOwnProperty(`capabilities`)||t.hasOwnProperty(`tables`)?10:t.hasOwnProperty(`supportedImageFormatTypes`)?9.31:9.3,n}async fetchRelatedService(e){let t=this.portalItem;if(!t||!m(t))return null;this._relatedFeatureServicePromise||=t.fetchRelatedItems({relationshipType:`Service2Service`,direction:`reverse`},e).then(e=>e.find(e=>e.type===`Feature Service`)??null,()=>null);let n=await this._relatedFeatureServicePromise;return i(e),n?{itemId:n.id,url:n.url}:null}async fetchSublayerInfo(e,n){let{source:r}=e;if(this?.portalItem&&this.type===`tile`&&r?.type===`map-layer`&&m(this.portalItem)&&e.originIdOf(`url`)<2){let t=await this.fetchRelatedService(n);t&&(e.url=a(t.url,r.mapLayerId.toString()),e.layerItemId=t.itemId)}let{url:i}=e,o;if(r.type===`data-layer`||r.type===`workspace-layer`)o=(await t(i,{responseType:`json`,query:{f:`json`,...this.customParameters,token:this.apiKey},...n})).data;else{let t=e.id;r?.type===`map-layer`&&(t=r.mapLayerId);try{o=(await this.fetchAllLayersAndTables(n)).get(t)}catch{}if(i&&e.originIdOf(`url`)>2)try{let e=await this._fetchAllLayersAndTablesFromService(i),t=d(i)?.sublayer??r.mapLayerId,n=structuredClone(e.get(t));if(n!=null){for(let e of[`drawingInfo`,`maxScale`,`minScale`,`name`])delete n[e];o={...o,...n}}}catch{}}return o}async fetchAllLayersAndTables(e){return this._fetchAllLayersAndTablesFromService(this.parsedUrl?.path,e)}async _fetchAllLayersAndTablesFromService(e,o){await this.load(o),this._allLayersAndTablesMap||=new Map;let s=d(e),c=await r(this._allLayersAndTablesMap,s?.url.path,()=>t(a(s?.url.path,`/layers`),{query:{f:`json`,...this.customParameters,token:this.apiKey}}).then(async e=>{let r=new Map,{layers:i,tables:a}=e.data,o=[...i??[],...a??[]];for(let e of o)r.set(e.id,e);if(n(r.values(),e=>e.capabilities==null||e.extent==null)){let{data:e}=await t(s?.url.path,{query:{f:`json`,...this.customParameters,token:this.apiKey}}).catch(()=>({data:{capabilities:``,fullExtent:void 0}}));for(let t of r.values())t.capabilities??=e.capabilities??``,t.extent??=e.fullExtent}return{result:r}},e=>({error:e})));if(i(o),`result`in c)return c.result;throw c.error}};return e([s({readOnly:!0})],v.prototype,`capabilities`,void 0),e([h(`service`,`capabilities`,[`capabilities`,`cimVersion`,`currentVersion`,`exportTilesAllowed`,`maxExportTilesCount`,`supportsDynamicLayers`,`tileInfo`])],v.prototype,`readCapabilities`,null),e([s({json:{read:{source:`copyrightText`}}})],v.prototype,`copyright`,void 0),e([s({type:l})],v.prototype,`fullExtent`,void 0),e([s(f)],v.prototype,`id`,void 0),e([s({type:Boolean,json:{origins:{service:{read:{enabled:!1}}},read:{source:`showLegend`},write:{target:`showLegend`}}})],v.prototype,`legendEnabled`,void 0),e([s(p)],v.prototype,`popupEnabled`,void 0),e([s({type:u})],v.prototype,`spatialReference`,void 0),e([s({readOnly:!0})],v.prototype,`version`,void 0),e([h(`service`,`version`,[`currentVersion`,`capabilities`,`tables`,`supportedImageFormatTypes`])],v.prototype,`readVersion`,null),v=e([c(`esri.layers.mixins.ArcGISMapService`)],v),v};export{g as ArcGISMapService};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import e from"../../request.js";import t from"../../core/Error.js";import n from"../../core/Logger.js";import{makeAbsolute as r,addQueryParameters as i,urlToObject as a}from"../../core/urlUtils.js";import o from"../../geometry/SpatialReference.js";import{wgs84 as s}from"../../geometry/support/spatialReferenceUtils.js";import{project as c}from"../../geometry/support/webMercatorUtils.js";import{convertToFeatureSet as l,convertToGeometry as u,convertFromGeometry as d}from"../graphics/featureConversionUtils.js";import f from"../graphics/OptimizedFeatureSet.js";import{validateGeoJSON as p,inferLayerProperties as m,createOptimizedFeatures as h}from"../graphics/sources/geojson/geojson.js";import{createDrawingInfo as g}from"../graphics/sources/support/clientSideDefaults.js";import{mixAttributes as _}from"../graphics/sources/support/sourceUtils.js";import v from"../support/FieldsIndex.js";import{kebabDict as y}from"../support/fieldType.js";import{utc as b}from"../../time/constants.js";const x=()=>n.getLogger(`esri.layers.ogc.ogcFeatureUtils`),S=`startindex`,C=new Set([S,`offset`]),w=`http://www.opengis.net/def/crs/`,T=`${w}OGC/1.3/CRS84`;async function E(n,a,o={},s=5){let{links:c}=n,l=U(c);if(!l)throw new t(`ogc-feature-layer:missing-items-page`,`Missing items url`);let{apiKey:u,customParameters:d,signal:f}=o,h=r(l.href,n.landingPage.url),_={limit:s,...d,token:u},C=i(h,_),{data:w}=await e(C,{signal:f,headers:{accept:`application/geo+json`}}),T=K(C,s,w.links)??S;p(w);let E=w.numberMatched,D=m(w,{geometryType:a.geometryType}),O=a.fields||D.fields||[],k=a.hasZ==null?D.hasZ:a.hasZ,A=D.geometryType,j=a.objectIdField||D.objectIdFieldName||`OBJECTID`,M=a.timeInfo,N=O.find(({name:e})=>e===j);if(N)N.editable=!1,N.nullable=!1;else{if(!D.objectIdFieldType)throw new t(`ogc-feature-layer:missing-feature-id`,`Collection geojson require a feature id as a unique identifier`);O.unshift({name:j,alias:j,type:D.objectIdFieldType===`number`?`esriFieldTypeOID`:`esriFieldTypeString`,editable:!1,nullable:!1})}if(j!==D.objectIdFieldName){let e=O.find(({name:e})=>e===D.objectIdFieldName);e&&(e.type=`esriFieldTypeInteger`)}O===D.fields&&D.unknownFields.length>0&&x().warn({name:`ogc-feature-layer:unknown-field-types`,message:`Some fields types couldn't be inferred from the features and were dropped`,details:{unknownFields:D.unknownFields}});for(let e of O){if(e.name??=e.alias,e.alias??=e.name,e.type!==`esriFieldTypeOID`&&e.type!==`esriFieldTypeGlobalID`&&(e.editable??=!0,e.nullable??=!0),!e.name)throw new t(`ogc-feature-layer:invalid-field-name`,`field name is missing`,{field:e});if(!y.jsonValues.includes(e.type))throw new t(`ogc-feature-layer:invalid-field-type`,`invalid type for field "${e.name}"`,{field:e})}if(M){let e=new v(O);if(M.startTimeField){let t=e.get(M.startTimeField);t?(M.startTimeField=t.name,t.type=`esriFieldTypeDate`):M.startTimeField=null}if(M.endTimeField){let t=e.get(M.endTimeField);t?(M.endTimeField=t.name,t.type=`esriFieldTypeDate`):M.endTimeField=null}if(M.trackIdField){let t=e.get(M.trackIdField);t?M.trackIdField=t.name:(M.trackIdField=null,x().warn({name:`ogc-feature-layer:invalid-timeInfo-trackIdField`,message:`trackIdField is missing`,details:{timeInfo:M}}))}M.timeReference||={timeZoneIANA:b},!M.startTimeField&&!M.endTimeField&&(x().warn({name:`ogc-feature-layer:invalid-timeInfo`,message:`startTimeField and endTimeField are missing`,details:{timeInfo:M}}),M=void 0)}return{drawingInfo:A?g(A):null,extent:H(n),geometryType:A,fields:O,hasZ:!!k,objectIdField:j,paginationParameter:T,timeInfo:M,featureCount:E}}async function D(n,i={}){let{links:a,url:o}=n,s=V(a);if(!s)throw new t(`ogc-feature-layer:missing-collections-page`,`Missing collections url`);let{apiKey:c,customParameters:l,signal:u}=i,d=r(s.href,o),{data:f}=await e(d,{signal:u,headers:{accept:`application/json`},query:{...l,token:c}});for(let e of f.collections)e.landingPage=n;return f}async function O(n,i={}){let{links:a,url:o}=n,s=B(a);if(!s)throw new t(`ogc-feature-layer:missing-conformance-page`,`Missing conformance url`);let{apiKey:c,customParameters:l,signal:u}=i,d=r(s.href,o),{data:f}=await e(d,{signal:u,headers:{accept:`application/json`},query:{...l,token:c}});return f}async function k(t,n={}){let{apiKey:r,customParameters:i,signal:a}=n,{data:o}=await e(t,{signal:a,headers:{accept:`application/json`},query:{...i,token:r}});return o.url=t,o}async function A(t,n={}){let{links:i,url:a}=t,o=W(i,`service-desc`,`application/vnd.oai.openapi+json;version=3.0`);if(!o)return x().warn(`ogc-feature-layer:missing-openapi-page`,`The OGC API-Features server does not have an OpenAPI page.`),null;let{apiKey:s,customParameters:c,signal:l}=n,u=r(o.href,a),{data:d}=await e(u,{signal:l,headers:{accept:`application/vnd.oai.openapi+json;version=3.0`},query:{...c,token:s}});return d}function j(e){let t=/^http:\/\/www\.opengis.net\/def\/crs\/(?<authority>.*)\/(?<version>.*)\/(?<code>.*)$/i.exec(e)?.groups;if(!t)return null;let{authority:n,code:r}=t;switch(n.toLowerCase()){case`ogc`:switch(r.toLowerCase()){case`crs27`:return o.GCS_NAD_1927.wkid;case`crs83`:return 4269;case`crs84`:case`crs84h`:return o.WGS84.wkid;default:return null}case`esri`:case`epsg`:{let e=Number.parseInt(r,10);return Number.isNaN(e)?null:e}default:return null}}async function M(e,t,n){let r=await N(e,t,n);return l(r)}async function N(n,i,a){let{collection:{links:l,landingPage:{url:p}},layerDefinition:m,maxRecordCount:g,queryParameters:{apiKey:y,customParameters:b},spatialReference:x,supportedCrs:S}=n,C=U(l);if(!C)throw new t(`ogc-feature-layer:missing-items-page`,`Missing items url`);let{geometry:w,num:T,start:E,timeExtent:D,where:O}=i;if(i.objectIds)throw new t(`ogc-feature-layer:query-by-objectids-not-supported`,`Queries with object ids are not supported`);let k=o.fromJSON(x),A=i.outSpatialReference??k,j=A.isWGS84?null:F(A,S),M=z(w,S),N=L(D),P=R(O),I=T??(E==null?g:10),B=E===0?void 0:E,{fields:V,geometryType:H,hasZ:W,objectIdField:K,paginationParameter:q}=m,J=r(C.href,p),{data:Y}=await e(J,{...a,query:{...b,...M,crs:j,datetime:N,query:P,limit:I,[q]:B,token:y},headers:{accept:`application/geo+json`}}),X=h(Y,{geometryType:H,hasZ:W,objectIdField:K}),Z=X.length===I&&!!G(Y.links??[]),Q=new v(V);for(let e of X){let t={};_(Q,t,e.attributes,!0);for(let e of Q.fields)e.nullable&&!(e.name in t)&&(t[e.name]=null);t[K]=e.attributes[K],e.attributes=t}if(!j&&A.isWebMercator){for(let e of X)if(e.geometry!=null&&H!=null){let t=u(e.geometry,H,W,!1);t.spatialReference=o.WGS84,e.geometry=d(c(t,A))}}for(let e of X)e.objectId=e.attributes[K];let ee=j||!j&&A.isWebMercator?A.toJSON():s,$=new f;return $.exceededTransferLimit=Z,$.features=X,$.fields=V,$.geometryType=H,$.hasZ=W,$.spatialReference=ee,$}function P(e){return e!=null&&e.type===`extent`}function F(e,t){let{isWebMercator:n,wkid:r,latestWkid:i}=e;if(!r&&!i)return null;let a=n?t[3857]??t[102100]??t[102113]??t[900913]:r&&t[r]||i&&t[i];return a?`${w}${a}`:null}function I(e){if(!e)return``;let{xmin:t,ymin:n,xmax:r,ymax:i}=e;return`${t},${n},${r},${i}`}function L(e){if(!e)return null;let{start:t,end:n}=e;return`${t==null?`..`:t.toISOString()}/${n==null?`..`:n.toISOString()}`}function R(e){return!e||e===`1=1`?null:e}function z(e,t){if(!P(e))return null;let{spatialReference:n}=e;if(!n||n.isWGS84)return{bbox:I(e)};let r=F(n,t);return r==null?n.isWebMercator?{bbox:I(c(e,o.WGS84))}:null:{bbox:I(e),"bbox-crs":r}}function B(e){return W(e,`conformance`,`application/json`)??W(e,`http://www.opengis.net/def/rel/ogc/1.0/conformance`,`application/json`)}function V(e){return W(e,`data`,`application/json`)??W(e,`http://www.opengis.net/def/rel/ogc/1.0/data`,`application/json`)}function H(e){let t=e.extent?.spatial;if(!t)return null;let n=t.bbox[0],r=n.length===4,[i,a]=n,s=r?void 0:n[2];return{xmin:i,ymin:a,xmax:r?n[2]:n[3],ymax:r?n[3]:n[4],zmin:s,zmax:r?void 0:n[5],spatialReference:o.WGS84.toJSON()}}function U(e){return W(e,`items`,`application/geo+json`,`http://www.opengis.net/def/profile/
|
|
2
|
+
import e from"../../request.js";import t from"../../core/Error.js";import n from"../../core/Logger.js";import{makeAbsolute as r,addQueryParameters as i,urlToObject as a}from"../../core/urlUtils.js";import o from"../../geometry/SpatialReference.js";import{wgs84 as s}from"../../geometry/support/spatialReferenceUtils.js";import{project as c}from"../../geometry/support/webMercatorUtils.js";import{convertToFeatureSet as l,convertToGeometry as u,convertFromGeometry as d}from"../graphics/featureConversionUtils.js";import f from"../graphics/OptimizedFeatureSet.js";import{validateGeoJSON as p,inferLayerProperties as m,createOptimizedFeatures as h}from"../graphics/sources/geojson/geojson.js";import{createDrawingInfo as g}from"../graphics/sources/support/clientSideDefaults.js";import{mixAttributes as _}from"../graphics/sources/support/sourceUtils.js";import v from"../support/FieldsIndex.js";import{kebabDict as y}from"../support/fieldType.js";import{utc as b}from"../../time/constants.js";const x=()=>n.getLogger(`esri.layers.ogc.ogcFeatureUtils`),S=`startindex`,C=new Set([S,`offset`]),w=`http://www.opengis.net/def/crs/`,T=`${w}OGC/1.3/CRS84`;async function E(n,a,o={},s=5){let{links:c}=n,l=U(c);if(!l)throw new t(`ogc-feature-layer:missing-items-page`,`Missing items url`);let{apiKey:u,customParameters:d,signal:f}=o,h=r(l.href,n.landingPage.url),_={limit:s,...d,token:u},C=i(h,_),{data:w}=await e(C,{signal:f,headers:{accept:`application/geo+json`}}),T=K(C,s,w.links)??S;p(w);let E=w.numberMatched,D=m(w,{geometryType:a.geometryType}),O=a.fields||D.fields||[],k=a.hasZ==null?D.hasZ:a.hasZ,A=D.geometryType,j=a.objectIdField||D.objectIdFieldName||`OBJECTID`,M=a.timeInfo,N=O.find(({name:e})=>e===j);if(N)N.editable=!1,N.nullable=!1;else{if(!D.objectIdFieldType)throw new t(`ogc-feature-layer:missing-feature-id`,`Collection geojson require a feature id as a unique identifier`);O.unshift({name:j,alias:j,type:D.objectIdFieldType===`number`?`esriFieldTypeOID`:`esriFieldTypeString`,editable:!1,nullable:!1})}if(j!==D.objectIdFieldName){let e=O.find(({name:e})=>e===D.objectIdFieldName);e&&(e.type=`esriFieldTypeInteger`)}O===D.fields&&D.unknownFields.length>0&&x().warn({name:`ogc-feature-layer:unknown-field-types`,message:`Some fields types couldn't be inferred from the features and were dropped`,details:{unknownFields:D.unknownFields}});for(let e of O){if(e.name??=e.alias,e.alias??=e.name,e.type!==`esriFieldTypeOID`&&e.type!==`esriFieldTypeGlobalID`&&(e.editable??=!0,e.nullable??=!0),!e.name)throw new t(`ogc-feature-layer:invalid-field-name`,`field name is missing`,{field:e});if(!y.jsonValues.includes(e.type))throw new t(`ogc-feature-layer:invalid-field-type`,`invalid type for field "${e.name}"`,{field:e})}if(M){let e=new v(O);if(M.startTimeField){let t=e.get(M.startTimeField);t?(M.startTimeField=t.name,t.type=`esriFieldTypeDate`):M.startTimeField=null}if(M.endTimeField){let t=e.get(M.endTimeField);t?(M.endTimeField=t.name,t.type=`esriFieldTypeDate`):M.endTimeField=null}if(M.trackIdField){let t=e.get(M.trackIdField);t?M.trackIdField=t.name:(M.trackIdField=null,x().warn({name:`ogc-feature-layer:invalid-timeInfo-trackIdField`,message:`trackIdField is missing`,details:{timeInfo:M}}))}M.timeReference||={timeZoneIANA:b},!M.startTimeField&&!M.endTimeField&&(x().warn({name:`ogc-feature-layer:invalid-timeInfo`,message:`startTimeField and endTimeField are missing`,details:{timeInfo:M}}),M=void 0)}return{drawingInfo:A?g(A):null,extent:H(n),geometryType:A,fields:O,hasZ:!!k,objectIdField:j,paginationParameter:T,timeInfo:M,featureCount:E}}async function D(n,i={}){let{links:a,url:o}=n,s=V(a);if(!s)throw new t(`ogc-feature-layer:missing-collections-page`,`Missing collections url`);let{apiKey:c,customParameters:l,signal:u}=i,d=r(s.href,o),{data:f}=await e(d,{signal:u,headers:{accept:`application/json`},query:{...l,token:c}});for(let e of f.collections)e.landingPage=n;return f}async function O(n,i={}){let{links:a,url:o}=n,s=B(a);if(!s)throw new t(`ogc-feature-layer:missing-conformance-page`,`Missing conformance url`);let{apiKey:c,customParameters:l,signal:u}=i,d=r(s.href,o),{data:f}=await e(d,{signal:u,headers:{accept:`application/json`},query:{...l,token:c}});return f}async function k(t,n={}){let{apiKey:r,customParameters:i,signal:a}=n,{data:o}=await e(t,{signal:a,headers:{accept:`application/json`},query:{...i,token:r}});return o.url=t,o}async function A(t,n={}){let{links:i,url:a}=t,o=W(i,`service-desc`,`application/vnd.oai.openapi+json;version=3.0`);if(!o)return x().warn(`ogc-feature-layer:missing-openapi-page`,`The OGC API-Features server does not have an OpenAPI page.`),null;let{apiKey:s,customParameters:c,signal:l}=n,u=r(o.href,a),{data:d}=await e(u,{signal:l,headers:{accept:`application/vnd.oai.openapi+json;version=3.0`},query:{...c,token:s}});return d}function j(e){let t=/^http:\/\/www\.opengis.net\/def\/crs\/(?<authority>.*)\/(?<version>.*)\/(?<code>.*)$/i.exec(e)?.groups;if(!t)return null;let{authority:n,code:r}=t;switch(n.toLowerCase()){case`ogc`:switch(r.toLowerCase()){case`crs27`:return o.GCS_NAD_1927.wkid;case`crs83`:return 4269;case`crs84`:case`crs84h`:return o.WGS84.wkid;default:return null}case`esri`:case`epsg`:{let e=Number.parseInt(r,10);return Number.isNaN(e)?null:e}default:return null}}async function M(e,t,n){let r=await N(e,t,n);return l(r)}async function N(n,i,a){let{collection:{links:l,landingPage:{url:p}},layerDefinition:m,maxRecordCount:g,queryParameters:{apiKey:y,customParameters:b},spatialReference:x,supportedCrs:S}=n,C=U(l);if(!C)throw new t(`ogc-feature-layer:missing-items-page`,`Missing items url`);let{geometry:w,num:T,start:E,timeExtent:D,where:O}=i;if(i.objectIds)throw new t(`ogc-feature-layer:query-by-objectids-not-supported`,`Queries with object ids are not supported`);let k=o.fromJSON(x),A=i.outSpatialReference??k,j=A.isWGS84?null:F(A,S),M=z(w,S),N=L(D),P=R(O),I=T??(E==null?g:10),B=E===0?void 0:E,{fields:V,geometryType:H,hasZ:W,objectIdField:K,paginationParameter:q}=m,J=r(C.href,p),{data:Y}=await e(J,{...a,query:{...b,...M,crs:j,datetime:N,query:P,limit:I,[q]:B,token:y},headers:{accept:`application/geo+json`}}),X=h(Y,{geometryType:H,hasZ:W,objectIdField:K}),Z=X.length===I&&!!G(Y.links??[]),Q=new v(V);for(let e of X){let t={};_(Q,t,e.attributes,!0);for(let e of Q.fields)e.nullable&&!(e.name in t)&&(t[e.name]=null);t[K]=e.attributes[K],e.attributes=t}if(!j&&A.isWebMercator){for(let e of X)if(e.geometry!=null&&H!=null){let t=u(e.geometry,H,W,!1);t.spatialReference=o.WGS84,e.geometry=d(c(t,A))}}for(let e of X)e.objectId=e.attributes[K];let ee=j||!j&&A.isWebMercator?A.toJSON():s,$=new f;return $.exceededTransferLimit=Z,$.features=X,$.fields=V,$.geometryType=H,$.hasZ=W,$.spatialReference=ee,$}function P(e){return e!=null&&e.type===`extent`}function F(e,t){let{isWebMercator:n,wkid:r,latestWkid:i}=e;if(!r&&!i)return null;let a=n?t[3857]??t[102100]??t[102113]??t[900913]:r&&t[r]||i&&t[i];return a?`${w}${a}`:null}function I(e){if(!e)return``;let{xmin:t,ymin:n,xmax:r,ymax:i}=e;return`${t},${n},${r},${i}`}function L(e){if(!e)return null;let{start:t,end:n}=e;return`${t==null?`..`:t.toISOString()}/${n==null?`..`:n.toISOString()}`}function R(e){return!e||e===`1=1`?null:e}function z(e,t){if(!P(e))return null;let{spatialReference:n}=e;if(!n||n.isWGS84)return{bbox:I(e)};let r=F(n,t);return r==null?n.isWebMercator?{bbox:I(c(e,o.WGS84))}:null:{bbox:I(e),"bbox-crs":r}}function B(e){return W(e,`conformance`,`application/json`)??W(e,`http://www.opengis.net/def/rel/ogc/1.0/conformance`,`application/json`)}function V(e){return W(e,`data`,`application/json`)??W(e,`http://www.opengis.net/def/rel/ogc/1.0/data`,`application/json`)}function H(e){let t=e.extent?.spatial;if(!t)return null;let n=t.bbox[0],r=n.length===4,[i,a]=n,s=r?void 0:n[2];return{xmin:i,ymin:a,xmax:r?n[2]:n[3],ymax:r?n[3]:n[4],zmin:s,zmax:r?void 0:n[5],spatialReference:o.WGS84.toJSON()}}function U(e){return W(e,`items`,`application/geo+json`,`http://www.opengis.net/def/profile/OGC/0/rfc7946`)??W(e,`http://www.opengis.net/def/rel/ogc/1.0/items`,`application/geo+json`,`http://www.opengis.net/def/profile/OGC/0/rfc7946`)}function W(e,t,n,r){return r?e.find(({rel:e,type:i,profile:a})=>e===t&&i===n&&a?.some(e=>e.toLowerCase()===r.toLowerCase()))??e.find(({rel:e,type:r,profile:i})=>e===t&&r===n&&!i):e.find(({rel:e,type:r})=>e===t&&r===n)??e.find(({rel:e,type:n})=>e===t&&!n)}function G(e){return W(e,`next`,`application/geo+json`)}function K(e,t,n){if(!n)return;let r=G(n),i=a(r?.href)?.query;if(!i)return;let o=a(e).query,s=Object.keys(o??{});return Object.entries(i).filter(([e])=>!s.includes(e)).find(([e,n])=>C.has(e.toLowerCase())&&Number.parseInt(n,10)===t)?.[0]}export{T as crsDefault,w as crsPrefix,E as getCollectionDefinition,U as getItemsLink,D as getServerCollectionsPage,O as getServerConformance,k as getServerLandingPage,A as getServerOpenApi,j as getSpatialReferenceWkid,M as queryFeatureSetJSON,N as queryOptimizedFeatureSet};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{deg2rad as e}from"../../../core/mathUtils.js";import{throwIfAborted as t}from"../../../core/promiseUtils.js";import{create as n}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{zeros as r}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{transpose as i}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{sub as a,add as o,length as s,dot as c}from"../../../core/libs/gl-matrix-2/math/vec3.js";import l from"../../../geometry/Circle.js";import u from"../../../geometry/Mesh.js";import d from"../../../geometry/Multipoint.js";import f from"../../../geometry/Polygon.js";import{projectAsync as p}from"../../../geometry/projectionUtils.js";import m from"../../../geometry/SpatialReference.js";import{polygonCentroidPoint as h}from"../../../geometry/support/centroid.js";import{earth as g}from"../../../geometry/support/Ellipsoid.js";import _ from"../../../geometry/support/MeshComponent.js";import{createSphere as v}from"../../../geometry/support/meshUtils.js";import y from"../../../geometry/support/MeshVertexAttributes.js";import{create as b,fromArray as x,intersectRay as S}from"../../../geometry/support/plane.js";import{isWebMercator as C}from"../../../geometry/support/spatialReferenceUtils.js";import{getMetersPerUnitOfSR as w}from"./utils.js";import{convertToSRUnits as T,getWebMercatorScalingFactor as E,createRotationMatrixFromHPR as D,transformMat3 as O,scaleAndAddWithFactor as k,scaleWithFactor as A,computeHFOVAndVFOV as j,projectiveTransform as M}from"../transformations/utils.js";const N=Math.PI/180;function P(e,t,n){let r=T(e,t.spatialReference);return r.cameraHeight=(t.z??r.cameraHeight)-n,e.isSpherical?z(r,t):F(r,t)}function F(e,t){let{horizontalFieldOfView:n,verticalFieldOfView:r,cameraHeading:i}=e,a=E(t.y,t.spatialReference),o=e.cameraPitch,s=e.cameraRoll??0,c=150;n>150&&(o=90,s=0,c=5);let l=Math.ceil(n/c),u=I(l,i,n),d=K(e)*a,p=new f({spatialReference:t?.spatialReference});p.imageID=e.objectId;let m=null;for(let i of u)m=L(i,o,e.cameraHeight,t,d,a,r,n,l,p,s,e.nearDistance);return m.imageID=e.objectId,{polygon:p,frustum:m}}function I(e,t,n){let r=[];if(e%2==0)for(let i=0;i<e/2;i++)r.push(t-n/e*(i+.5),t+n/e*(i+.5));else{r.push(t);for(let i=1;i<e/2;i++)r.push(t-n/e*i,t+n/e*i)}return r.sort(),r}function L(e,t,s,c,l,u,d,f,p,m,h=0,g=0){let _=i(n(),D([e,t,h??0])),v=U({cameraHeight:s,cameraPitch:t,farDistance:l,location:c,horizontalFieldOfView:f,nearDistance:g,verticalFieldOfView:d},_),y=O([0,0,-1],_),{x:b,y:x}=c,S=k([b,x,c.z??s],y,l,u),C=2*Math.tan(d*N/2)*l,w=2*Math.tan(f/p*N/2)*l,T=O([0,1,0],_),E=O([1,0,0],_),j=A(T,C/2,u),M=A(E,w/2,u),P=a(r(),j,M),F=o(r(),j,M),I=R([o(r(),S,P),o(r(),S,F),a(r(),S,P),a(r(),S,F)],s,c,u);return I.push(I[0]),m.addRing(I),v}function R(e,t,n,r){return e.map(e=>W(e,t,n,r))}function z(e,t){let{farDistance:n,objectId:r,nearDistance:i,cameraHeight:a}=e,o=E(t.y,t.spatialReference),s=new l({center:t.clone(),radius:n*o});if(s.imageID=r,i){let e=new l({center:t.clone(),radius:i*o});s.addRing(e.rings[0])}let c=t.clone();c.z=(t.z??a)-n*o;let u=v(c,{size:2*n*o});return u.imageID=r,{polygon:s,frustum:u}}function B(e,t){return e.contains(t)}function V(e,t){let r=T(e,e.location.spatialReference);if(t.z==null)return!1;let{horizontalFieldOfView:a,location:o,nearDistance:l=0,verticalFieldOfView:u}=r,d=K(r);if(a==null||u==null||d<=0)return!1;let f=E(o.y,o.spatialReference),p=o.z??0,m=[(t.x-o.x)/f,(t.y-o.y)/f,t.z-p];if(r.isSpherical){let e=s(m);return l<=e&&e<=d}let h=i(n(),D([r.cameraHeading,r.cameraPitch,r.cameraRoll??0])),g=O([0,0,-1],h),_=c(m,g);return _>0&&_>=l&&_<=d}function H(e,t){return Math.sign(e)!==Math.sign(t)}function U(e,t,n){let{cameraHeight:i,cameraPitch:s,farDistance:c,location:l,horizontalFieldOfView:d,nearDistance:f,verticalFieldOfView:p}=e,m=l.z??i,h=m-i,g=q(l),_=!(s+p/2>=90),v=2*Math.tan(p*N/2)*f,b=2*Math.tan(d*N/2)*f,x=2*Math.tan(p*N/2)*c,S=2*Math.tan(d*N/2)*c,C,w=[0,0,-1];w=O(w,t),C=k([l.x,l.y,m],w,c,g),_&&(C[2]=h);let T=k([l.x,l.y,m],w,f,g),E=[0,1,0];E=O(E,t);let D=[1,0,0];D=O(D,t);let j=[],M=[];f?(M=[{faces:[4,0,3,4,7,3]},{faces:[5,1,2,5,6,2]},{faces:[4,0,1,4,5,1]},{faces:[6,2,3,6,7,3]}],j=j.concat(o(r(),T,a(r(),A(E,v/2,g),A(D,b/2,g)))),j=j.concat(o(r(),T,o(r(),A(E,v/2,g),A(D,b/2,g)))),j=j.concat(a(r(),T,a(r(),A(E,v/2,g),A(D,b/2,g)))),j=j.concat(a(r(),T,o(r(),A(E,v/2,g),A(D,b/2,g))))):(j=[l.x,l.y,m],M=[{faces:[0,1,2,0,2,3,0,3,4,0,4,1]}]),j=j.concat(o(r(),C,a(r(),A(E,x/2,g),A(D,S/2,g)))),j=j.concat(o(r(),C,o(r(),A(E,x/2,g),A(D,S/2,g)))),j=j.concat(a(r(),C,a(r(),A(E,x/2,g),A(D,S/2,g)))),j=j.concat(a(r(),C,o(r(),A(E,x/2,g),A(D,S/2,g))));let P=new y({position:Float64Array.from(j)});return new u({vertexAttributes:P,components:M,spatialReference:l.spatialReference})}function W(e,t,n,i){{let o=n.z??t,s=o-t,c=Math.sqrt((e[2]-o)**2+(Math.sqrt((e[0]-n.x)**2+(e[1]-n.y)**2)/i)**2)*i,l=A(a(r(),[e[0],e[1],e[2]],[n.x,n.y,o]),1/c,1/i),u=t/(o-e[2]),d={x:(1-u)*n.x+u*e[0],y:(1-u)*n.y+u*e[1],z:(1-u)*o+u*e[2]},f=Math.sqrt((d.z-o)**2+(Math.sqrt((d.x-n.x)**2+(d.y-n.y)**2)/i)**2)*i,p=A(a(r(),[d.x,d.y,d.z],[n.x,n.y,o]),1/f,1/i);return H(l[0],p[0])&&H(l[1],p[1])&&H(l[2],p[2])||e[2]>=s?[e[0],e[1],s]:[d.x,d.y,d.z]}}function G(e){let{spatialReference:t,x:n,y:r}=e.geometry,{cameraHeading:i,cameraPitch:a,farDistance:o,nearDistance:s}=e,c=q(e.geometry),l=new f({spatialReference:t}),u=Math.abs(1.44*o*c),d=Math.abs(1.44*s*c);(a<20||i==null)&&(d=u);let p=[];return p[0]={x:n+u*Math.sin((i-45)*N),y:r+u*Math.cos((i-45)*N)},p[1]={x:n+u*Math.sin((i+45)*N),y:r+u*Math.cos((i+45)*N)},p[2]={x:n+d*Math.sin((i+135)*N),y:r+d*Math.cos((i+135)*N)},p[3]={x:n+d*Math.sin((i+225)*N),y:r+d*Math.cos((i+225)*N)},l.addRing([[p[0].x,p[0].y,0],[p[1].x,p[1].y,0],[p[2].x,p[2].y,0],[p[3].x,p[3].y,0],[p[0].x,p[0].y,0]]),l}function K(t){let{cameraHeight:n,cameraPitch:r,farDistance:i,location:a,verticalFieldOfView:o}=t;return i??(r+o/2>=90?20/w(a.spatialReference):n/Math.cos(e(r)))}function q(e){return e&&C(e?.spatialReference)?1/Math.cos(Math.PI/2-2*Math.atan(Math.exp(-1*e.y/g.radius))):1}function ee(e,t){let n=1+t/100;if(e.declaredClass===`esri.geometry.Circle`){let{radius:t,center:r}=e,i=t*n,a=new l({radius:i,center:r});return e.rings.length>1&&a.addRing(e.rings[1]),a}if(e.declaredClass===`esri.geometry.Polygon`){let t=new f({spatialReference:e.spatialReference}),i=h(e);if(i){let o=[];for(let t=0;t<e.rings[0].length;t++){let s=Math.sqrt((i.x-e.rings[0][t][0])**2+(i.y-e.rings[0][t][1])**2),c=A(a(r(),[e.rings[0][t][0],e.rings[0][t][1],0],[i.x,i.y,0]),1/s,1),l=k([i.x,i.y,0],c,s*n,1);o.push({x:l[0],y:l[1]})}t.addRing([[o[0].x,o[0].y,0],[o[1].x,o[1].y,0],[o[2].x,o[2].y,0],[o[3].x,o[3].y,0],[o[0].x,o[0].y,0]])}return t}return e}async function te(e,t,n){let{cameraHeight:r,cameraLocation:i,cameraPitch:a,frustumVertices:o,horizontalFieldOfView:s,imageHeight:c,imageWidth:l,inSRS:u,outSRS:d,verticalFieldOfView:f,cameraRoll:p,options:h}=n,g=new m(u),_=new m(d),v=j(s,f,p??0),y=o.length>15;return a+v.vfov/2>=90?await oe(o,e,l,c,g,_,y,h):await ne(o,e,t,i,r,y,g,_,h)}async function ne(e,t,n,r,i,a,o,s,c){let l=re(e,t,n,r,i);if(!l)return;let{farPlane:d,nearPlane:f}=l,p=await J([...f?.vertexPositions??e.slice(0,3),...d.vertexPositions],o,s,c),m=$(p);return new u({vertexAttributes:new y({position:p}),components:Q(a?X(m,!0):Z(m,!0)),spatialReference:s})}function re(e,t,n,r,i){let a=Y(e),o=Y(e,`near`);if(!a)return;let s=t.length;for(let e=0;e<s;e++){let t=Array.from(n[e]),s=[t[0]-r[0],t[1]-r[1],t[2]-(r[2]??i)];ae(r,s,e,o),ie(r,s,e,a)}return{farPlane:a,nearPlane:o}}function ie(e,t,n,i){let{coefficients:a,vertexPositions:o}=i,s=r();S(a,{origin:e,direction:t},s)&&o.splice(n*3,3,...s)}function ae(e,t,n,i){if(!i)return;let a=r();S(i.coefficients,{origin:e,direction:t},a)&&i.vertexPositions.splice(n*3,3,...a)}async function oe(e,t,n,r,i,a,o,s){let c=o?[]:[e[0],e[1],e[2]],l,d=[];for(let i of t)o?(l=M([i[0],i[1],1],[[0,0,1],[n,0,1],[n,r,1],[0,r,1]],[[e[0],e[1],e[2]],[e[3],e[4],e[5]],[e[6],e[7],e[8]],[e[9],e[10],e[11]]]),c=c.concat(...l),l=M([i[0],i[1],1],[[0,0,1],[n,0,1],[n,r,1],[0,r,1]],[[e[12],e[13],e[14]],[e[15],e[16],e[17]],[e[18],e[19],e[20]],[e[21],e[22],e[23]]]),d=d.concat(...l)):(l=M([i[0],i[1],1],[[0,0,1],[n,0,1],[n,r,1],[0,r,1]],[[e[3],e[4],e[5]],[e[6],e[7],e[8]],[e[9],e[10],e[11]],[e[12],e[13],e[14]]]),c=c.concat(...l));c=c.concat(d);let f=await J(c,i,a,s),p=$(f);return new u({vertexAttributes:new y({position:f}),components:Q(o?X(p,!0):Z(p,!0)),spatialReference:a})}async function J(e,n,r,i){if(n.equals(r))return e;let a=e.reduce((e,t,n)=>{let r=Math.floor(n/3);return e[r]||(e[r]=[]),e[r].push(t),e},[]),{points:o}=await p(new d({points:a,spatialReference:n}),r,i);return t(i),o.flat()}function Y(e,t=`far`){let n=b(),r;switch(t){case`far`:if(r=Array.from(e.length===15?e.slice(3):e.slice(12)),x(n,r,!1))return{coefficients:n,vertexPositions:r};break;case`near`:return r=Array.from(e.slice(0,12)),e.length===15||!x(n,r,!1)?void 0:{coefficients:n,vertexPositions:r}}}const X=(e,t=!1)=>{if(t&&e-2<=4||e<=4||e%2!=0)throw Error(`Invalid number of vertices`);let n=[],r=e/2,i=Math.round((t?e-2:e)/2);for(let a=0;a<i;a++){let i=a+r,o=t?i+1:i,s=o%e,c=(t?i:o+1)%e;n.push({faces:new Uint32Array([a,c,s,a,a+1,s])})}return n};function Z(e,t=!1){if(e<3||t&&e-1<3)throw Error(`Invalid number of vertices`);let n=[],r=t?e-2:e-1;for(let e=0;e<r;e++)n.push({faces:new Uint32Array([0,e+1,e+2])});return n}const Q=e=>e.map(e=>new _(e)),$=e=>e.length/3;export{V as checkIfFrustumContainsSelectedPoint,B as checkIfPolygonContainsSelectedPoint,G as computePolygonForInspection,P as createCoveragePolygon,R as limitZToGround,J as projectVertices,ee as resizePolygon,te as updateFrustum};
|
|
2
|
+
import{deg2rad as e}from"../../../core/mathUtils.js";import{throwIfAborted as t}from"../../../core/promiseUtils.js";import{create as n}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{zeros as r}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{transpose as i}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{sub as a,add as o,length as s,dot as c}from"../../../core/libs/gl-matrix-2/math/vec3.js";import l from"../../../geometry/Circle.js";import u from"../../../geometry/Mesh.js";import d from"../../../geometry/Multipoint.js";import f from"../../../geometry/Polygon.js";import{projectAsync as p}from"../../../geometry/projectionUtils.js";import m from"../../../geometry/SpatialReference.js";import{polygonCentroidPoint as h}from"../../../geometry/support/centroid.js";import{earth as g}from"../../../geometry/support/Ellipsoid.js";import _ from"../../../geometry/support/MeshComponent.js";import{createSphere as v}from"../../../geometry/support/meshUtils.js";import y from"../../../geometry/support/MeshVertexAttributes.js";import{create as b,fromArray as x,intersectRay as S}from"../../../geometry/support/plane.js";import{isWebMercator as C}from"../../../geometry/support/spatialReferenceUtils.js";import{getMetersPerUnitOfSR as w}from"./utils.js";import{convertToSRUnits as T,getWebMercatorScalingFactor as E,createRotationMatrixFromHPR as D,transformMat3 as O,scaleAndAddWithFactor as k,scaleWithFactor as A,computeHFOVAndVFOV as j,projectiveTransform as M}from"../transformations/utils.js";const N=Math.PI/180;function P(e,t,n){let r=T(e,t.spatialReference);return r.cameraHeight=(t.z??r.cameraHeight)-n,e.isSpherical?te(r,t):F(r,t)}function F(e,t){let{horizontalFieldOfView:n,verticalFieldOfView:r,cameraHeading:i}=e,a=E(t.y,t.spatialReference),o=e.cameraPitch,s=e.cameraRoll??0,c=150;n>150&&(o=90,s=0,c=5);let l=Math.ceil(n/c),u=I(l,i,n),d=V(e)*a,p=new f({spatialReference:t?.spatialReference});p.imageID=e.objectId;let m=null;for(let i of u)m=ee(i,o,e.cameraHeight,t,d,a,r,n,l,p,s,e.nearDistance);return m.imageID=e.objectId,{polygon:p,frustum:m}}function I(e,t,n){let r=[];if(e%2==0)for(let i=0;i<e/2;i++)r.push(t-n/e*(i+.5),t+n/e*(i+.5));else{r.push(t);for(let i=1;i<e/2;i++)r.push(t-n/e*i,t+n/e*i)}return r.sort(),r}function ee(e,t,s,c,l,u,d,f,p,m,h=0,g=0){let _=i(n(),D([e,t,h??0])),v=re({cameraHeight:s,cameraPitch:t,farDistance:l,location:c,horizontalFieldOfView:f,nearDistance:g,verticalFieldOfView:d},_),y=O([0,0,-1],_),{x:b,y:x}=c,S=k([b,x,c.z??s],y,l,u),C=2*Math.tan(d*N/2)*l,w=2*Math.tan(f/p*N/2)*l,T=O([0,1,0],_),E=O([1,0,0],_),j=A(T,C/2,u),M=A(E,w/2,u),P=a(r(),j,M),F=o(r(),j,M),I=L([o(r(),S,P),o(r(),S,F),a(r(),S,P),a(r(),S,F)],s,c,u);return I.push(I[0]),m.addRing(I),v}function L(e,t,n,r){return e.map(e=>ie(e,t,n,r))}function te(e,t){let{farDistance:n,objectId:r,nearDistance:i,cameraHeight:a}=e,o=E(t.y,t.spatialReference),s=new l({center:t.clone(),radius:n*o});if(s.imageID=r,i){let e=new l({center:t.clone(),radius:i*o});s.addRing(e.rings[0])}let c=t.clone();c.z=(t.z??a)-n*o;let u=v(c,{size:2*n*o});return u.imageID=r,{polygon:s,frustum:u}}function ne(e,t){return e.contains(t)}function R({cameraHeading:e,cameraPitch:t,cameraRoll:r,farDistance:a,horizontalFieldOfView:o,nearDistance:s,vectorToPoint:l,verticalFieldOfView:u}){let d=i(n(),D([e,t,r])),f=O([1,0,0],d),p=O([0,1,0],d),m=O([0,0,-1],d),h=c(l,f),g=c(l,p),_=c(l,m);if(_<=0||_<s||_>a)return!1;let v=_*Math.tan(o*N/2),y=_*Math.tan(u*N/2);return Math.abs(h)<=v&&Math.abs(g)<=y}function z(e,t){let n=T(e,e.location.spatialReference);if(t.z==null)return!1;let{horizontalFieldOfView:r,location:i,nearDistance:a,verticalFieldOfView:o}=n,c=V(n);if(r==null||o==null||!Number.isFinite(a)||a<0||!Number.isFinite(c)||c<=0)return!1;let l=E(i.y,i.spatialReference),u=i.z??0,d=[(t.x-i.x)/l,(t.y-i.y)/l,t.z-u];if(n.isSpherical){let e=s(d);return a<=e&&e<=c}let f={vectorToPoint:d,verticalFieldOfView:o,nearDistance:a,farDistance:c};if(r>150){let e=Math.ceil(r/5),t=r/e;return I(e,n.cameraHeading,r).some(e=>R({...f,cameraHeading:e,cameraPitch:90,cameraRoll:0,horizontalFieldOfView:t}))}return R({...f,cameraHeading:n.cameraHeading,cameraPitch:n.cameraPitch,cameraRoll:n.cameraRoll??0,horizontalFieldOfView:r})}function B(e,t){return Math.sign(e)!==Math.sign(t)}function re(e,t,n){let{cameraHeight:i,cameraPitch:s,farDistance:c,location:l,horizontalFieldOfView:d,nearDistance:f,verticalFieldOfView:p}=e,m=l.z??i,h=m-i,g=H(l),_=!(s+p/2>=90),v=2*Math.tan(p*N/2)*f,b=2*Math.tan(d*N/2)*f,x=2*Math.tan(p*N/2)*c,S=2*Math.tan(d*N/2)*c,C,w=[0,0,-1];w=O(w,t),C=k([l.x,l.y,m],w,c,g),_&&(C[2]=h);let T=k([l.x,l.y,m],w,f,g),E=[0,1,0];E=O(E,t);let D=[1,0,0];D=O(D,t);let j=[],M=[];f?(M=[{faces:[4,0,3,4,7,3]},{faces:[5,1,2,5,6,2]},{faces:[4,0,1,4,5,1]},{faces:[6,2,3,6,7,3]}],j=j.concat(o(r(),T,a(r(),A(E,v/2,g),A(D,b/2,g)))),j=j.concat(o(r(),T,o(r(),A(E,v/2,g),A(D,b/2,g)))),j=j.concat(a(r(),T,a(r(),A(E,v/2,g),A(D,b/2,g)))),j=j.concat(a(r(),T,o(r(),A(E,v/2,g),A(D,b/2,g))))):(j=[l.x,l.y,m],M=[{faces:[0,1,2,0,2,3,0,3,4,0,4,1]}]),j=j.concat(o(r(),C,a(r(),A(E,x/2,g),A(D,S/2,g)))),j=j.concat(o(r(),C,o(r(),A(E,x/2,g),A(D,S/2,g)))),j=j.concat(a(r(),C,a(r(),A(E,x/2,g),A(D,S/2,g)))),j=j.concat(a(r(),C,o(r(),A(E,x/2,g),A(D,S/2,g))));let P=new y({position:Float64Array.from(j)});return new u({vertexAttributes:P,components:M,spatialReference:l.spatialReference})}function ie(e,t,n,i){{let o=n.z??t,s=o-t,c=Math.sqrt((e[2]-o)**2+(Math.sqrt((e[0]-n.x)**2+(e[1]-n.y)**2)/i)**2)*i,l=A(a(r(),[e[0],e[1],e[2]],[n.x,n.y,o]),1/c,1/i),u=t/(o-e[2]),d={x:(1-u)*n.x+u*e[0],y:(1-u)*n.y+u*e[1],z:(1-u)*o+u*e[2]},f=Math.sqrt((d.z-o)**2+(Math.sqrt((d.x-n.x)**2+(d.y-n.y)**2)/i)**2)*i,p=A(a(r(),[d.x,d.y,d.z],[n.x,n.y,o]),1/f,1/i);return B(l[0],p[0])&&B(l[1],p[1])&&B(l[2],p[2])||e[2]>=s?[e[0],e[1],s]:[d.x,d.y,d.z]}}function ae(e){let{spatialReference:t,x:n,y:r}=e.geometry,{cameraHeading:i,cameraPitch:a,farDistance:o,nearDistance:s}=e,c=H(e.geometry),l=new f({spatialReference:t}),u=Math.abs(1.44*o*c),d=Math.abs(1.44*s*c);(a<20||i==null)&&(d=u);let p=[];return p[0]={x:n+u*Math.sin((i-45)*N),y:r+u*Math.cos((i-45)*N)},p[1]={x:n+u*Math.sin((i+45)*N),y:r+u*Math.cos((i+45)*N)},p[2]={x:n+d*Math.sin((i+135)*N),y:r+d*Math.cos((i+135)*N)},p[3]={x:n+d*Math.sin((i+225)*N),y:r+d*Math.cos((i+225)*N)},l.addRing([[p[0].x,p[0].y,0],[p[1].x,p[1].y,0],[p[2].x,p[2].y,0],[p[3].x,p[3].y,0],[p[0].x,p[0].y,0]]),l}function V(t){let{cameraHeight:n,cameraPitch:r,farDistance:i,location:a,verticalFieldOfView:o}=t;return i??(r+o/2>=90?20/w(a.spatialReference):n/Math.cos(e(r)))}function H(e){return e&&C(e?.spatialReference)?1/Math.cos(Math.PI/2-2*Math.atan(Math.exp(-1*e.y/g.radius))):1}function U(e,t){let n=1+t/100;if(e.declaredClass===`esri.geometry.Circle`){let{radius:t,center:r}=e,i=t*n,a=new l({radius:i,center:r});return e.rings.length>1&&a.addRing(e.rings[1]),a}if(e.declaredClass===`esri.geometry.Polygon`){let t=new f({spatialReference:e.spatialReference}),i=h(e);if(i){let o=[];for(let t=0;t<e.rings[0].length;t++){let s=Math.sqrt((i.x-e.rings[0][t][0])**2+(i.y-e.rings[0][t][1])**2),c=A(a(r(),[e.rings[0][t][0],e.rings[0][t][1],0],[i.x,i.y,0]),1/s,1),l=k([i.x,i.y,0],c,s*n,1);o.push({x:l[0],y:l[1]})}t.addRing([[o[0].x,o[0].y,0],[o[1].x,o[1].y,0],[o[2].x,o[2].y,0],[o[3].x,o[3].y,0],[o[0].x,o[0].y,0]])}return t}return e}async function W(e,t,n){let{cameraHeight:r,cameraLocation:i,cameraPitch:a,frustumVertices:o,horizontalFieldOfView:s,imageHeight:c,imageWidth:l,inSRS:u,outSRS:d,verticalFieldOfView:f,cameraRoll:p,options:h}=n,g=new m(u),_=new m(d),v=j(s,f,p??0),y=o.length>15;return a+v.vfov/2>=90?await se(o,e,l,c,g,_,y,h):await G(o,e,t,i,r,y,g,_,h)}async function G(e,t,n,r,i,a,o,s,c){let l=K(e,t,n,r,i);if(!l)return;let{farPlane:d,nearPlane:f}=l,p=await J([...f?.vertexPositions??e.slice(0,3),...d.vertexPositions],o,s,c),m=$(p);return new u({vertexAttributes:new y({position:p}),components:Q(a?X(m,!0):Z(m,!0)),spatialReference:s})}function K(e,t,n,r,i){let a=Y(e),o=Y(e,`near`);if(!a)return;let s=t.length;for(let e=0;e<s;e++){let t=Array.from(n[e]),s=[t[0]-r[0],t[1]-r[1],t[2]-(r[2]??i)];oe(r,s,e,o),q(r,s,e,a)}return{farPlane:a,nearPlane:o}}function q(e,t,n,i){let{coefficients:a,vertexPositions:o}=i,s=r();S(a,{origin:e,direction:t},s)&&o.splice(n*3,3,...s)}function oe(e,t,n,i){if(!i)return;let a=r();S(i.coefficients,{origin:e,direction:t},a)&&i.vertexPositions.splice(n*3,3,...a)}async function se(e,t,n,r,i,a,o,s){let c=o?[]:[e[0],e[1],e[2]],l,d=[];for(let i of t)o?(l=M([i[0],i[1],1],[[0,0,1],[n,0,1],[n,r,1],[0,r,1]],[[e[0],e[1],e[2]],[e[3],e[4],e[5]],[e[6],e[7],e[8]],[e[9],e[10],e[11]]]),c=c.concat(...l),l=M([i[0],i[1],1],[[0,0,1],[n,0,1],[n,r,1],[0,r,1]],[[e[12],e[13],e[14]],[e[15],e[16],e[17]],[e[18],e[19],e[20]],[e[21],e[22],e[23]]]),d=d.concat(...l)):(l=M([i[0],i[1],1],[[0,0,1],[n,0,1],[n,r,1],[0,r,1]],[[e[3],e[4],e[5]],[e[6],e[7],e[8]],[e[9],e[10],e[11]],[e[12],e[13],e[14]]]),c=c.concat(...l));c=c.concat(d);let f=await J(c,i,a,s),p=$(f);return new u({vertexAttributes:new y({position:f}),components:Q(o?X(p,!0):Z(p,!0)),spatialReference:a})}async function J(e,n,r,i){if(n.equals(r))return e;let a=e.reduce((e,t,n)=>{let r=Math.floor(n/3);return e[r]||(e[r]=[]),e[r].push(t),e},[]),{points:o}=await p(new d({points:a,spatialReference:n}),r,i);return t(i),o.flat()}function Y(e,t=`far`){let n=b(),r;switch(t){case`far`:if(r=Array.from(e.length===15?e.slice(3):e.slice(12)),x(n,r,!1))return{coefficients:n,vertexPositions:r};break;case`near`:return r=Array.from(e.slice(0,12)),e.length===15||!x(n,r,!1)?void 0:{coefficients:n,vertexPositions:r}}}const X=(e,t=!1)=>{if(t&&e-2<=4||e<=4||e%2!=0)throw Error(`Invalid number of vertices`);let n=[],r=e/2,i=Math.round((t?e-2:e)/2);for(let a=0;a<i;a++){let i=a+r,o=t?i+1:i,s=o%e,c=(t?i:o+1)%e;n.push({faces:new Uint32Array([a,c,s,a,a+1,s])})}return n};function Z(e,t=!1){if(e<3||t&&e-1<3)throw Error(`Invalid number of vertices`);let n=[],r=t?e-2:e-1;for(let e=0;e<r;e++)n.push({faces:new Uint32Array([0,e+1,e+2])});return n}const Q=e=>e.map(e=>new _(e)),$=e=>e.length/3;export{z as checkIfFrustumContainsSelectedPoint,ne as checkIfPolygonContainsSelectedPoint,ae as computePolygonForInspection,P as createCoveragePolygon,L as limitZToGround,J as projectVertices,U as resizePolygon,W as updateFrustum};
|
|
@@ -20,11 +20,20 @@ export interface LabelClassProperties extends Partial<Pick<LabelClass, "allowOve
|
|
|
20
20
|
* property. If `true`, then [labelExpression](https://developers.arcgis.com/javascript/latest/references/core/layers/support/LabelClass/#labelExpression) or labelExpressionInfo can be used.
|
|
21
21
|
* If `false`, then only labelExpression can be used.
|
|
22
22
|
*
|
|
23
|
+
* This property supports [formatting tags](https://doc.esri.com/en/arcgis-pro/latest/help/mapping/text/text-formatting-tags.html) if
|
|
24
|
+
* the associated [Font.family](https://developers.arcgis.com/javascript/latest/references/core/symbols/Font/#family) supports it. See the [Labeling guide](https://developers.arcgis.com/javascript/latest/labeling/#formatting-tags)
|
|
25
|
+
* for more details.
|
|
26
|
+
*
|
|
23
27
|
* @see [Arcade Labeling Profile](https://developers.arcgis.com/javascript/latest/arcade/#labeling)
|
|
24
28
|
* @example
|
|
25
29
|
* // For Spokane County, WA, label will display: "Spokane County, Washington"
|
|
26
30
|
* labelClass.labelExpressionInfo = {
|
|
27
|
-
* expression: "$feature.COUNTY_NAME + ' County, ' + $feature.STATE_NAME"
|
|
31
|
+
* expression: "$feature.COUNTY_NAME + ' County, ' + $feature.STATE_NAME",
|
|
32
|
+
* };
|
|
33
|
+
* @example
|
|
34
|
+
* // For Spokane County, WA, label will display: "Spokane County, Washington" where "Washington" is bold and underlined
|
|
35
|
+
* labelClass.labelExpressionInfo = {
|
|
36
|
+
* expression: "return `${$feature.COUNTY_NAME} County, <BOL><UND>${$feature.STATE_NAME}</UND></BOL>`",
|
|
28
37
|
* };
|
|
29
38
|
*/
|
|
30
39
|
labelExpressionInfo?: LabelExpressionInfoProperties | null;
|
|
@@ -230,11 +239,20 @@ export default class LabelClass extends JSONSupport {
|
|
|
230
239
|
* property. If `true`, then [labelExpression](https://developers.arcgis.com/javascript/latest/references/core/layers/support/LabelClass/#labelExpression) or labelExpressionInfo can be used.
|
|
231
240
|
* If `false`, then only labelExpression can be used.
|
|
232
241
|
*
|
|
242
|
+
* This property supports [formatting tags](https://doc.esri.com/en/arcgis-pro/latest/help/mapping/text/text-formatting-tags.html) if
|
|
243
|
+
* the associated [Font.family](https://developers.arcgis.com/javascript/latest/references/core/symbols/Font/#family) supports it. See the [Labeling guide](https://developers.arcgis.com/javascript/latest/labeling/#formatting-tags)
|
|
244
|
+
* for more details.
|
|
245
|
+
*
|
|
233
246
|
* @see [Arcade Labeling Profile](https://developers.arcgis.com/javascript/latest/arcade/#labeling)
|
|
234
247
|
* @example
|
|
235
248
|
* // For Spokane County, WA, label will display: "Spokane County, Washington"
|
|
236
249
|
* labelClass.labelExpressionInfo = {
|
|
237
|
-
* expression: "$feature.COUNTY_NAME + ' County, ' + $feature.STATE_NAME"
|
|
250
|
+
* expression: "$feature.COUNTY_NAME + ' County, ' + $feature.STATE_NAME",
|
|
251
|
+
* };
|
|
252
|
+
* @example
|
|
253
|
+
* // For Spokane County, WA, label will display: "Spokane County, Washington" where "Washington" is bold and underlined
|
|
254
|
+
* labelClass.labelExpressionInfo = {
|
|
255
|
+
* expression: "return `${$feature.COUNTY_NAME} County, <BOL><UND>${$feature.STATE_NAME}</UND></BOL>`",
|
|
238
256
|
* };
|
|
239
257
|
*/
|
|
240
258
|
get labelExpressionInfo(): LabelExpressionInfo | null | undefined;
|
|
@@ -16,6 +16,7 @@ import type OrderByInfo from "./OrderByInfo.js";
|
|
|
16
16
|
import type Relationship from "./Relationship.js";
|
|
17
17
|
import type DynamicDataLayer from "../../rest/layerSources/DynamicDataLayer.js";
|
|
18
18
|
import type DynamicMapLayer from "../../rest/layerSources/DynamicMapLayer.js";
|
|
19
|
+
import type DynamicWorkspaceLayer from "../../rest/layerSources/DynamicWorkspaceLayer.js";
|
|
19
20
|
import type AttachmentInfo from "../../rest/query/support/AttachmentInfo.js";
|
|
20
21
|
import type FeatureSet from "../../rest/support/FeatureSet.js";
|
|
21
22
|
import type Query from "../../rest/support/Query.js";
|
|
@@ -46,6 +47,7 @@ import type { DotDensityRendererProperties } from "../../renderers/DotDensityRen
|
|
|
46
47
|
import type { UniqueValueRendererProperties } from "../../renderers/UniqueValueRenderer.js";
|
|
47
48
|
import type { ClassBreaksRendererProperties } from "../../renderers/ClassBreaksRenderer.js";
|
|
48
49
|
import type { SimpleRendererProperties } from "../../renderers/SimpleRenderer.js";
|
|
50
|
+
import type { DynamicWorkspaceLayerProperties } from "../../rest/layerSources/DynamicWorkspaceLayer.js";
|
|
49
51
|
import type { DynamicDataLayerProperties } from "../../rest/layerSources/DynamicDataLayer.js";
|
|
50
52
|
import type { DynamicMapLayerProperties } from "../../rest/layerSources/DynamicMapLayer.js";
|
|
51
53
|
|
|
@@ -202,11 +204,17 @@ export interface SublayerProperties extends LoadableMixinProperties, Identifiabl
|
|
|
202
204
|
/**
|
|
203
205
|
* An object that allows you to create a dynamic layer with data
|
|
204
206
|
* either from the map service sublayers or data from a registered workspace.
|
|
205
|
-
*
|
|
206
|
-
* for creating dynamic layers from
|
|
207
|
-
* rendering, labeling, and filtering (definition expressions).
|
|
208
|
-
*
|
|
209
|
-
*
|
|
207
|
+
*
|
|
208
|
+
* Use [DynamicMapLayer](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicMapLayer/) for creating dynamic layers from
|
|
209
|
+
* map service layers for on the fly rendering, labeling, and filtering (definition expressions).
|
|
210
|
+
*
|
|
211
|
+
* Use [DynamicDataLayer](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicDataLayer/) for creating dynamic layers from other sources in registered
|
|
212
|
+
* workspaces such as tables and table joins.
|
|
213
|
+
*
|
|
214
|
+
* Use [DynamicWorkspaceLayer](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicWorkspaceLayer/) for creating dynamic layers from pre-authored Layer Files (.lyrx) in registered workspaces.
|
|
215
|
+
*
|
|
216
|
+
* > [!WARNING]
|
|
217
|
+
* > Sublayers with a [DynamicWorkspaceLayer](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicWorkspaceLayer/) source cannot be [saved](https://developers.arcgis.com/javascript/latest/references/core/WebMap/#save) to web maps.
|
|
210
218
|
*
|
|
211
219
|
* @example
|
|
212
220
|
* // Creates two sublayers that point to the same map service layer.
|
|
@@ -237,8 +245,21 @@ export interface SublayerProperties extends LoadableMixinProperties, Identifiabl
|
|
|
237
245
|
* }
|
|
238
246
|
* }]
|
|
239
247
|
* });
|
|
248
|
+
* @example
|
|
249
|
+
* ```js
|
|
250
|
+
* const layer = new MapImageLayer({
|
|
251
|
+
* url: "<your-map-service-url>",
|
|
252
|
+
* sublayers: [{
|
|
253
|
+
* source: {
|
|
254
|
+
* type: "workspace-layer",
|
|
255
|
+
* workspaceId: "lyrx_folder",
|
|
256
|
+
* layerId: "WorldCities.lyrx"
|
|
257
|
+
* }
|
|
258
|
+
* }]
|
|
259
|
+
* });
|
|
260
|
+
* ```
|
|
240
261
|
*/
|
|
241
|
-
source?: (DynamicMapLayerProperties & { type: "map-layer" }) | (DynamicDataLayerProperties & { type: "data-layer" });
|
|
262
|
+
source?: (DynamicMapLayerProperties & { type: "map-layer" }) | (DynamicDataLayerProperties & { type: "data-layer" }) | (DynamicWorkspaceLayerProperties & { type: "workspace-layer" });
|
|
242
263
|
/**
|
|
243
264
|
* If a sublayer contains sublayers, this
|
|
244
265
|
* property is a [Collection](https://developers.arcgis.com/javascript/latest/references/core/core/Collection/) of [Sublayer](https://developers.arcgis.com/javascript/latest/references/core/layers/support/Sublayer/)
|
|
@@ -287,8 +308,9 @@ export interface SublayerProperties extends LoadableMixinProperties, Identifiabl
|
|
|
287
308
|
* ## Dynamic layers
|
|
288
309
|
*
|
|
289
310
|
* Sublayers may be rendered on the fly as dynamic layers. Dynamic layers are created using
|
|
290
|
-
* the [source](https://developers.arcgis.com/javascript/latest/references/core/layers/support/Sublayer/#source) property of the sublayer. There are
|
|
291
|
-
* [dynamic map layers](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicMapLayer/)
|
|
311
|
+
* the [source](https://developers.arcgis.com/javascript/latest/references/core/layers/support/Sublayer/#source) property of the sublayer. There are three types of dynamic layers:
|
|
312
|
+
* [dynamic map layers](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicMapLayer/), [dynamic data layers](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicDataLayer/), and
|
|
313
|
+
* [dynamic workspace layers](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicWorkspaceLayer/).
|
|
292
314
|
*
|
|
293
315
|
* [Dynamic map layers](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicMapLayer/) allow you to override sublayers in the map service with new renderers,
|
|
294
316
|
* definition expressions, opacity, scale visibility, etc. Multiple dynamic map layers may exist
|
|
@@ -301,6 +323,9 @@ export interface SublayerProperties extends LoadableMixinProperties, Identifiabl
|
|
|
301
323
|
* published and configured with the ArcGIS Server Manager. Data from tables may be joined to other
|
|
302
324
|
* tables or dynamic map layers.
|
|
303
325
|
*
|
|
326
|
+
* [Dynamic workspace layers](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicWorkspaceLayer/) let you create sublayers from pre-authored
|
|
327
|
+
* ArcGIS Pro layer files (`.lyrx`) in registered workspaces.
|
|
328
|
+
*
|
|
304
329
|
* @since 4.1
|
|
305
330
|
* @see [MapImageLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/MapImageLayer/)
|
|
306
331
|
* @see [Sample - MapImageLayer: toggle sublayer visibility](https://developers.arcgis.com/javascript/latest/sample-code/layers-mapimagelayer-sublayers/)
|
|
@@ -463,7 +488,7 @@ export default class Sublayer extends SublayerSuperclass {
|
|
|
463
488
|
* @see [loadStatus](https://developers.arcgis.com/javascript/latest/references/core/layers/support/Sublayer/#loadStatus)
|
|
464
489
|
* @example
|
|
465
490
|
* // print the first Sublayer's first field to the console
|
|
466
|
-
* console.log(mapImageLayer.sublayers.
|
|
491
|
+
* console.log(mapImageLayer.sublayers.at(0).fields[0]);
|
|
467
492
|
*
|
|
468
493
|
* // OUTPUT:
|
|
469
494
|
* alias: "OBJECTID"
|
|
@@ -487,7 +512,7 @@ export default class Sublayer extends SublayerSuperclass {
|
|
|
487
512
|
* @see [fields](https://developers.arcgis.com/javascript/latest/references/core/layers/support/Sublayer/#fields)
|
|
488
513
|
* @example
|
|
489
514
|
* // lookup a field by name, name is case-insensitive
|
|
490
|
-
* const fieldsIndex = mapImageLayer.sublayers.
|
|
515
|
+
* const fieldsIndex = mapImageLayer.sublayers.at(0).fieldsIndex.get("OBjecTID");
|
|
491
516
|
*
|
|
492
517
|
* // if there's a field by that name, print it to the console
|
|
493
518
|
* if (fieldsIndex) {
|
|
@@ -839,11 +864,17 @@ export default class Sublayer extends SublayerSuperclass {
|
|
|
839
864
|
/**
|
|
840
865
|
* An object that allows you to create a dynamic layer with data
|
|
841
866
|
* either from the map service sublayers or data from a registered workspace.
|
|
842
|
-
*
|
|
843
|
-
* for creating dynamic layers from
|
|
844
|
-
* rendering, labeling, and filtering (definition expressions).
|
|
845
|
-
*
|
|
846
|
-
*
|
|
867
|
+
*
|
|
868
|
+
* Use [DynamicMapLayer](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicMapLayer/) for creating dynamic layers from
|
|
869
|
+
* map service layers for on the fly rendering, labeling, and filtering (definition expressions).
|
|
870
|
+
*
|
|
871
|
+
* Use [DynamicDataLayer](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicDataLayer/) for creating dynamic layers from other sources in registered
|
|
872
|
+
* workspaces such as tables and table joins.
|
|
873
|
+
*
|
|
874
|
+
* Use [DynamicWorkspaceLayer](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicWorkspaceLayer/) for creating dynamic layers from pre-authored Layer Files (.lyrx) in registered workspaces.
|
|
875
|
+
*
|
|
876
|
+
* > [!WARNING]
|
|
877
|
+
* > Sublayers with a [DynamicWorkspaceLayer](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicWorkspaceLayer/) source cannot be [saved](https://developers.arcgis.com/javascript/latest/references/core/WebMap/#save) to web maps.
|
|
847
878
|
*
|
|
848
879
|
* @example
|
|
849
880
|
* // Creates two sublayers that point to the same map service layer.
|
|
@@ -874,9 +905,22 @@ export default class Sublayer extends SublayerSuperclass {
|
|
|
874
905
|
* }
|
|
875
906
|
* }]
|
|
876
907
|
* });
|
|
908
|
+
* @example
|
|
909
|
+
* ```js
|
|
910
|
+
* const layer = new MapImageLayer({
|
|
911
|
+
* url: "<your-map-service-url>",
|
|
912
|
+
* sublayers: [{
|
|
913
|
+
* source: {
|
|
914
|
+
* type: "workspace-layer",
|
|
915
|
+
* workspaceId: "lyrx_folder",
|
|
916
|
+
* layerId: "WorldCities.lyrx"
|
|
917
|
+
* }
|
|
918
|
+
* }]
|
|
919
|
+
* });
|
|
920
|
+
* ```
|
|
877
921
|
*/
|
|
878
|
-
get source(): DynamicMapLayer | DynamicDataLayer;
|
|
879
|
-
set source(value: (DynamicMapLayerProperties & { type: "map-layer" }) | (DynamicDataLayerProperties & { type: "data-layer" }));
|
|
922
|
+
get source(): DynamicMapLayer | DynamicDataLayer | DynamicWorkspaceLayer;
|
|
923
|
+
set source(value: (DynamicMapLayerProperties & { type: "map-layer" }) | (DynamicDataLayerProperties & { type: "data-layer" }) | (DynamicWorkspaceLayerProperties & { type: "workspace-layer" }));
|
|
880
924
|
/**
|
|
881
925
|
* The [map service's metadata JSON](https://developers.arcgis.com/rest/services-reference/map-service.htm)
|
|
882
926
|
* exposed by the ArcGIS REST API. While most commonly used properties
|