@arcgis/core 5.2.0-next.161 → 5.2.0-next.163
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/092e311cb7aea92a6a26.js +1 -0
- package/assets/esri/core/workers/chunks/17c6d66b47aa690df0d4.js +1 -0
- package/assets/esri/core/workers/chunks/1e1c45f75020d5e05dc3.js +1 -0
- package/assets/esri/core/workers/chunks/{4ed76fb5f6096a089f5b.js → 1f7f4f821d422b46cae7.js} +1 -1
- package/assets/esri/core/workers/chunks/1fe24ffcd88280d84fbe.js +1 -0
- package/assets/esri/core/workers/chunks/25a3bd8bede2d07d3a54.js +1 -0
- package/assets/esri/core/workers/chunks/2ad69cc496235702bbf2.js +1 -0
- package/assets/esri/core/workers/chunks/3f46acfda693c70abbdd.js +1 -0
- package/assets/esri/core/workers/chunks/434a8ba841a59e0deab9.js +1 -0
- package/assets/esri/core/workers/chunks/45fd2b456a6997584ca1.js +1 -0
- package/assets/esri/core/workers/chunks/{8480fe6b4372dbbfa7cc.js → 46c5371c7a627537098c.js} +10 -10
- 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/5a9b7eb26f936f03d02e.js +1 -0
- package/assets/esri/core/workers/chunks/5d76f4d97beee494bbbf.js +1 -0
- package/assets/esri/core/workers/chunks/5dc604e3691f36f03959.js +1 -0
- package/assets/esri/core/workers/chunks/5f07f52bb8b7721f08d3.js +1 -0
- package/assets/esri/core/workers/chunks/{32b351b047ce1eb58146.js → 60c79934799927114074.js} +1 -1
- package/assets/esri/core/workers/chunks/67f54efc817b241f8746.js +1 -0
- package/assets/esri/core/workers/chunks/7159d9c36869cd82599e.js +29 -0
- package/assets/esri/core/workers/chunks/771dd92cb3e6a3427f66.js +1 -0
- package/assets/esri/core/workers/chunks/792d2b62356a1d953c88.js +1 -0
- package/assets/esri/core/workers/chunks/89c8b0f684c1f27d149e.js +1 -0
- package/assets/esri/core/workers/chunks/{9401cc22373566e1171e.js → 8a7b02037151767542f1.js} +1 -1
- package/assets/esri/core/workers/chunks/8ab57cb1bfd3dc8d3c2a.js +1 -0
- package/assets/esri/core/workers/chunks/95b82cbbe355266c65d7.js +1 -0
- package/assets/esri/core/workers/chunks/97b5f4302fb867c829f4.js +1 -0
- package/assets/esri/core/workers/chunks/9de5ad77bc37ec142218.js +1 -0
- package/assets/esri/core/workers/chunks/a65951f1d5702cfd996e.js +1 -0
- 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/b1d989b72203113a06fe.js +1 -0
- package/assets/esri/core/workers/chunks/{fc73737b41e086f0ce0b.js → b59aaf30c7fe2c8d1aaa.js} +1 -1
- package/assets/esri/core/workers/chunks/b6d71a4ab788a09714f3.js +1 -0
- package/assets/esri/core/workers/chunks/b704f489d0f072a0bfcd.js +1 -0
- package/assets/esri/core/workers/chunks/{28b74bc77f7c13080074.js → be97a629e2ae4d13ceb3.js} +1 -1
- package/assets/esri/core/workers/chunks/{d33360c4f85203edafff.js → bf4d913e523eae2fda28.js} +1 -1
- package/assets/esri/core/workers/chunks/{d6cd0039d6e9c40961e3.js → d1f98c5249c487eb96f1.js} +1 -1
- package/assets/esri/core/workers/chunks/e077e321a3109c2fbbe2.js +1 -0
- package/assets/esri/core/workers/chunks/e251921bc5367258c4d2.js +1 -0
- package/assets/esri/core/workers/chunks/ee08ae5b73439a1ff666.js +1 -0
- package/assets/esri/core/workers/chunks/fcaf9450642fcef83286.js +1 -0
- package/assets/esri/core/workers/chunks/feb41abc03d677df6f73.js +1 -0
- package/assets/esri/themes/base/widgets/_OrientedImageryViewer.scss +2 -5
- 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/DefaultMaterial.glsl.js +1 -1
- package/chunks/RealisticTree.glsl.js +1 -1
- package/chunks/RibbonLine.glsl.js +70 -64
- package/config.d.ts +11 -30
- package/config.js +1 -1
- package/core/workers/workerFactory.js +1 -1
- package/core/workers.d.ts +17 -0
- package/kernel.js +1 -1
- package/layers/FeatureLayer.d.ts +39 -19
- package/layers/FeatureLayer.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/mixins/ArcGISMapService.js +1 -1
- package/layers/ogc/ogcFeatureUtils.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/package.json +2 -2
- 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/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/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/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/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/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/terrainUtils.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/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/support/ScheduledQueueProcessor.js +1 -1
- package/views/types.d.ts +3 -0
- package/views/webgl/ShaderBuilder.js +1 -1
- package/widgets/Daylight/DaylightViewModel.js +1 -1
- package/widgets/OrientedImageryViewer.js +1 -1
- package/widgets/Sketch/SketchViewModel.d.ts +61 -2
- package/widgets/Sketch/SketchViewModel.js +1 -1
- package/widgets/TimeSlider/TimeSliderViewModel.d.ts +3 -2
- package/widgets/TimeSlider.d.ts +5 -4
- package/assets/esri/core/workers/chunks/0a5a9885ee6f5b5f99f0.js +0 -1
- package/assets/esri/core/workers/chunks/0bd5012da287469b17d5.js +0 -1
- package/assets/esri/core/workers/chunks/112befb3b5b406f29298.js +0 -1
- package/assets/esri/core/workers/chunks/172cfeb5f415e4662432.js +0 -1
- package/assets/esri/core/workers/chunks/2d13a22f7b2427927fdc.js +0 -1
- package/assets/esri/core/workers/chunks/3e3e076fa5e8d5d5f33f.js +0 -1
- package/assets/esri/core/workers/chunks/42fd2a7b22b03dacc6a7.js +0 -1
- package/assets/esri/core/workers/chunks/43cf862577bf37344ff4.js +0 -1
- package/assets/esri/core/workers/chunks/4be559c53fe5ac0d0d2e.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/510502a4c9a2ba8d3f7b.js +0 -1
- package/assets/esri/core/workers/chunks/612104dff305ff062dfa.js +0 -29
- 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/830ab9b8d000169da675.js +0 -1
- package/assets/esri/core/workers/chunks/8ff23ac0abeea0073b47.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/a40b6d8b5c73e06e14d4.js +0 -1
- package/assets/esri/core/workers/chunks/aa1ac7954e4f0fefe15b.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/d95d63e8d51244d71afb.js +0 -1
- package/assets/esri/core/workers/chunks/dfd2dc5cdc97ffba8926.js +0 -1
- package/assets/esri/core/workers/chunks/e1b7806ab3e1967b15f0.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/f4a7aa3cdbc0c429c359.js +0 -1
- package/assets/esri/core/workers/chunks/ffbcb816b611049a6276.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/5.2/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/5.2/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};
|
|
@@ -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
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../../PopupTemplate.js";import n from"../../request.js";import r from"../../core/Collection.js";import i from"../../core/Error.js";import has from"../../core/has.js";import{IdentifiableMixin as a}from"../../core/Identifiable.js";import{clone as o}from"../../core/lang.js";import{Loadable as s}from"../../core/Loadable.js";import c from"../../core/Logger.js";import{MultiOriginJSONSupportMixin as l}from"../../core/MultiOriginJSONSupport.js";import{sqlAnd as u}from"../../core/sql.js";import{objectToQuery as d}from"../../core/urlUtils.js";import{property as f,cast as p,subclass as m}from"../../core/accessorSupport/decorators.js";import{ensureInteger as h,ensureType as g,Integer as _,ensureClass as v}from"../../core/accessorSupport/ensureType.js";import{nameToId as y}from"../../core/accessorSupport/PropertyOrigin.js";import{getProperties as b}from"../../core/accessorSupport/utils.js";import x from"../../geometry/Extent.js";import S from"../../geometry/SpatialReference.js";import{joinScaleRanges as C}from"../../geometry/support/scaleUtils.js";import{featureGeometryTypeKebabDictionary as w}from"../../geometry/support/typeUtils.js";import ee from"../../graphic/MapImageGraphicOrigin.js";import te from"../../graphic/TileGraphicOrigin.js";import ne from"../graphics/sources/support/QueryTask.js";import{readOrderByInfos as re}from"../mixins/OrderedLayer.js";import ie from"./EditFieldsInfo.js";import{getFeatureType as ae}from"./featureLayerUtils.js";import oe from"./FeatureType.js";import T from"./Field.js";import E from"./FieldsIndex.js";import{fixRendererFields as D}from"./fieldUtils.js";import O from"./LabelClass.js";import{validateLabelingInfo as k}from"./labelingInfo.js";import A from"./LayerFloorInfo.js";import j from"./OrderByInfo.js";import M from"./Relationship.js";import{getFeatureLayerCapabilities as N}from"./serviceCapabilitiesUtils.js";import{webSceneRendererTypes as P,rendererTypes as F}from"../../renderers/support/typeUtils.js";import{parseUrl as I}from"../../rest/utils.js";import L from"../../rest/layerSources/DynamicDataLayer.js";import R from"../../rest/layerSources/DynamicMapLayer.js";import z from"../../rest/support/AttachmentQuery.js";import se from"../../rest/support/Query.js";import{createPopupTemplate as B}from"../../support/popupUtils.js";import{isSymbol3D as V}from"../../symbols/support/typeUtils.js";import H from"../../tables/AttributeTableTemplate.js";import{reader as U}from"../../core/accessorSupport/decorators/reader.js";import{writer as W}from"../../core/accessorSupport/decorators/writer.js";var G;function K(e){return e?.type===`esriSMS`}function q(e,t,n){let r=n.minimumWritableOrigin||n.origin;return r?e.originIdOf(t)>=y(r):!1}function J(e,t,n){let r=q(this,t,n);return{ignoreOrigin:!0,allowNull:r,enabled:n?n.layer?.type===`map-image`&&(n.writeSublayerStructure||r):!1}}function Y(e,t,n){return{enabled:n?n.layer?.type===`tile`&&(q(this,t,n)||this._isOverridden(t)):!1}}function X(e,t,n){return{ignoreOrigin:!0,enabled:n&&n.writeSublayerStructure||!1}}function Z(e,t,n){return{ignoreOrigin:!0,enabled:n?.writeSublayerStructure?this.originIdOf(t)>2:!1}}function Q(e,t,n){return{ignoreOrigin:!0,enabled:n?n.writeSublayerStructure||q(this,t,n):!1}}let ce=0;const le=new Set([`layer`,`parent`,`loaded`,`loadStatus`,`loadError`,`loadWarnings`]);let $=class extends l(a(s)){static{G=this}constructor(e){super(e),this.attributeTableTemplate=null,this.capabilities=void 0,this.editFieldsInfo=null,this.maxScaleRange={minScale:0,maxScale:0},this.fields=null,this.fullExtent=null,this.geometryType=null,this.globalIdField=null,this.isTable=!1,this.legendEnabled=!0,this.objectIdField=null,this.parent=null,this.popupEnabled=!0,this.popupTemplate=null,this.relationships=null,this.sourceJSON=null,this.spatialReference=null,this.title=null,this.typeIdField=null,this.type=`sublayer`,this.types=null,this.uniqueIdFields=null,this._lastParsedUrl=null}async load(e){return this.addResolvingPromise(this.reload(e)),this}readCapabilities(e,t){t=t.layerDefinition||t;let{attachment:n,operations:{supportsQuery:r,supportsQueryAttachments:i},query:{supportsFormatPBF:a,supportsOrderBy:o,supportsPagination:s,relativeTimeBinWindow:c},data:{supportsAttachment:l},queryRelated:u}=N(t,this.url);return{attachment:{supportsOrderByFields:n?.supportsOrderByFields??!1,supportsResize:n?.supportsResize??!1,supportsTypeWildcard:n?.supportsTypeWildcard??!1},exportMap:{supportsModification:!!t.canModifyLayer},operations:{supportsQuery:r,supportsQueryAttachments:i},data:{supportsAttachment:l},query:{relativeTimeBinWindow:c,supportsFormatPBF:a,supportsOrderBy:o,supportsPagination:s},queryRelated:u}}get defaultPopupTemplate(){return this.createPopupTemplate()}set definitionExpression(e){this._setAndNotifyLayer(`definitionExpression`,e)}get effectiveScaleRange(){let e=this._get(`effectiveScaleRange`),{maxScale:t,minScale:n,parent:r}=this,i={minScale:n,maxScale:t};return r?.effectiveScaleRange!==void 0&&C(i,r.effectiveScaleRange),e&&e.minScale===i.minScale&&e.maxScale===i.maxScale?e:i}get effectiveUniqueIdFields(){return this.uniqueIdFields?[...this.uniqueIdFields]:this.objectIdField?[this.objectIdField]:[]}readMaxScaleRange(e,t){return t=t.layerDefinition||t,{minScale:t.minScale??0,maxScale:t.maxScale??0}}get fieldsIndex(){return new E(this.fields||[])}set floorInfo(e){this._setAndNotifyLayer(`floorInfo`,e)}readGlobalIdFieldFromService(e,t){if(t=t.layerDefinition||t,t.globalIdField)return t.globalIdField;if(t.fields){for(let e of t.fields)if(e.type===`esriFieldTypeGlobalID`)return e.name}}get graphicOrigin(){if(!this.layer)return null;switch(this.layer.type){case`tile`:return new te(this.layer,this);case`map-image`:return new ee(this.layer,this)}}get id(){return this._get(`id`)??ce++}set id(e){if(this._get(`id`)!==e){if(this.layer?.capabilities?.exportMap?.supportsDynamicLayers===!1){this._logLockedError(`id`,`capability not available 'layer.capabilities.exportMap.supportsDynamicLayers'`);return}this._set(`id`,e)}}readIsTable(e,t){return t.type===`Table`}set labelingInfo(e){this._setAndNotifyLayer(`labelingInfo`,e)}writeLabelingInfo(e,t,n,r){e&&e.length&&(t.layerDefinition={drawingInfo:{labelingInfo:e.map(e=>e.write({},r))}})}set labelsVisible(e){this._setAndNotifyLayer(`labelsVisible`,e)}set layer(e){this._set(`layer`,e),this.sublayers?.forEach(t=>t.layer=e)}set listMode(e){this._set(`listMode`,e)}get loaded(){return super.loaded}set minScale(e){this._setAndNotifyLayer(`minScale`,e)}readMinScale(e,t){return t.minScale||t.layerDefinition?.minScale||0}set maxScale(e){this._setAndNotifyLayer(`maxScale`,e)}readMaxScale(e,t){return t.maxScale||t.layerDefinition?.maxScale||0}readObjectIdFieldFromService(e,t){return t=t.layerDefinition||t,t.objectIdField?t.objectIdField:t.fields?.find(e=>e.type===`esriFieldTypeOID`)?.name}set opacity(e){this._setAndNotifyLayer(`opacity`,e)}readOpacity(e,t){let{layerDefinition:n}=t;return 1-(n?.transparency??n?.drawingInfo?.transparency??0)*.01}writeOpacity(e,t,n,r){t.layerDefinition={drawingInfo:{transparency:100-e*100}}}set orderBy(e){this._setAndNotifyLayer(`orderBy`,e)}writeParent(e,t){t.parentLayerId=!this.parent||this.parent===this.layer?-1:h(this.parent.id)}get queryTask(){if(!this.layer)return null;let{capabilities:e,fieldsIndex:t,layer:n,uniqueIdFields:r,url:i}=this,{spatialReference:a}=n,o=`gdbVersion`in n?n.gdbVersion:void 0,s=has(`featurelayer-pbf`)&&e?.query.supportsFormatPBF,c=e?.operations?.supportsQueryAttachments??!1,l=e?.query?.relativeTimeBinWindow??0;return new ne({fieldsIndex:t,gdbVersion:o,pbfSupported:s,queryAttachmentsSupported:c,relativeTimeBinWindow:l,sourceSpatialReference:a,uniqueIdFields:r,url:i})}set renderer(e){if(D(e,this.fieldsIndex),e){for(let t of e.symbols)if(V(t)){c.getLogger(this).warn(`Sublayer renderer should use 2D symbols`);break}}this._setAndNotifyLayer(`renderer`,e)}get source(){return this._get(`source`)||new R({mapLayerId:this.id})}set source(e){this._setAndNotifyLayer(`source`,e)}get sublayers(){return this._get(`sublayers`)}set sublayers(e){this._handleSublayersChange(e,this._get(`sublayers`)),this._set(`sublayers`,e)}castSublayers(e){return g(r.ofType(G),e)}writeSublayers(e,t,n){this.sublayers?.length&&(t[n]=this.sublayers.map(e=>e.id).toArray().reverse())}readTitle(e,t){return t.layerDefinition?.name??t.name}readTypeIdField(e,t){t=t.layerDefinition||t;let n=t.typeIdField;if(n&&t.fields){n=n.toLowerCase();let e=t.fields.find(e=>e.name.toLowerCase()===n);e&&(n=e.name)}return n}readUniqueIdFields(e,t){return t.layerDefinition?.uniqueIdInfo?.OIDFieldContainsHashValue?t.layerDefinition.uniqueIdInfo.fields:null}get url(){let e=this.layer?.parsedUrl??this._lastParsedUrl,t=this.source;if(!e)return null;if(this._lastParsedUrl=e,t?.type===`map-layer`)return`${e.path}/${t.mapLayerId}`;let n={layer:JSON.stringify({source:this.source})};return`${e.path}/dynamicLayer?${d(n)}`}set url(e){this._overrideIfSome(`url`,e)}set visible(e){this._setAndNotifyLayer(`visible`,e)}writeVisible(e,t,n,r){t[n]=this.getAtOrigin(`defaultVisibility`,`service`)||e}clone(){let{store:e}=b(this),t=new G;return b(t).store=e.clone(le),this.commitProperty(`url`),t._lastParsedUrl=this._lastParsedUrl,t}createPopupTemplate(e){return B(this,e)}createQuery(){return new se({returnGeometry:!0,where:this.definitionExpression||`1=1`})}async createFeatureLayer(){if(this.sublayers)return null;let e=(await import(`../FeatureLayer.js`)).default,{layer:t,url:n}=this,r;if(n&&this.originIdOf(`url`)>2)r=new e({url:n});else if(t?.parsedUrl){let n=t.parsedUrl;r=new e({url:n.path}),n&&this.source&&(this.source.type===`map-layer`?r.layerId=this.source.mapLayerId:r.dynamicDataSource=this.source)}else throw new i(`createFeatureLayer:missing-information`,`Cannot create a FeatureLayer without a url or a parent layer`);return t?.refreshInterval!=null&&(r.refreshInterval=t.refreshInterval),this.definitionExpression&&(r.definitionExpression=this.definitionExpression),this.floorInfo&&(r.floorInfo=o(this.floorInfo)),this.originIdOf(`labelingInfo`)>2&&(r.labelingInfo=o(this.labelingInfo)),this.originIdOf(`labelsVisible`)>0&&(r.labelsVisible=this.labelsVisible),this.originIdOf(`legendEnabled`)>0&&(r.legendEnabled=this.legendEnabled),this.originIdOf(`visible`)>0&&(r.visible=this.visible),this.originIdOf(`minScale`)>0&&(r.minScale=this.minScale),this.originIdOf(`maxScale`)>0&&(r.maxScale=this.maxScale),this.originIdOf(`opacity`)>0&&(r.opacity=this.opacity),this.originIdOf(`popupTemplate`)>0&&(r.popupTemplate=o(this.popupTemplate)),this.originIdOf(`renderer`)>2&&(r.renderer=o(this.renderer)),this.source?.type===`data-layer`&&(r.dynamicDataSource=this.source.clone()),this.originIdOf(`title`)>0&&(r.title=this.title),t?.type===`map-image`&&t.originIdOf(`customParameters`)>0&&(r.customParameters=t.customParameters),t?.type===`tile`&&t.originIdOf(`customParameters`)>0&&(r.customParameters=t.customParameters),r}getField(e){return this.fieldsIndex.get(e)}getFeatureType(e){return ae(this.types,this.typeIdField,e)}getFieldDomain(e,t){let n=t?.feature,r=this.getFeatureType(n);if(r){let t=r.domains&&r.domains[e];if(t&&t.type!==`inherited`)return t}return this._getLayerDomain(e)}async queryAttachments(e,t){await this.load();let n=z.from(e),r=this.capabilities;if(!r?.data?.supportsAttachment)throw new i(`queryAttachments:not-supported`,`this layer doesn't support attachments`);let{attachmentTypes:a,objectIds:o,globalIds:s,num:c,size:l,start:u,where:d}=n;if(!r?.operations?.supportsQueryAttachments){let e=a?.length>0,t=s?.length>0,r=l?.length>0;if(e||t||r||c||u||d)throw new i(`queryAttachments:option-not-supported`,`when 'capabilities.operations.supportsQueryAttachments' is false, only objectIds is supported`,n)}if(!(o?.length||s?.length||d))throw new i(`queryAttachments:invalid-query`,`'objectIds', 'globalIds', or 'where' are required to perform attachment query`,n);return!r?.attachment?.supportsOrderByFields&&n.orderByFields?.length&&(n=n.clone(),n.orderByFields=null),this.queryTask.executeAttachmentQuery(n,t)}async queryFeatureCount(e=this.createQuery(),t){if(await this.load(),!this.capabilities.operations.supportsQuery)throw new i(`queryFeatureCount:not-supported`,`this layer doesn't support queries.`);if(!this.url)throw new i(`queryFeatureCount:not-supported`,`this layer has no url.`);let n=this.layer?.apiKey;return await this.queryTask.executeForCount(e,{...t,query:{...this.layer?.customParameters,token:n}})}async queryFeatures(e=this.createQuery(),t){if(await this.load(),!this.capabilities.operations.supportsQuery)throw new i(`queryFeatures:not-supported`,`this layer doesn't support queries.`);if(!this.url)throw new i(`queryFeatures:not-supported`,`this layer has no url.`);let n=await this.queryTask.execute(e,{...t,query:{...this.layer?.customParameters,token:this.layer?.apiKey}});if(n?.features){let e=this.graphicOrigin;for(let t of n.features)t.sourceLayer=this,t.origin=e}return n}async queryObjectIds(e=this.createQuery(),t){if(await this.load(),!this.capabilities.operations.supportsQuery)throw new i(`queryObjectIds:not-supported`,`this layer doesn't support queries.`);if(!this.url)throw new i(`queryObjectIds:not-supported`,`this layer has no url.`);let n=this.layer?.apiKey;return await this.queryTask.executeForIds(e,{...t,query:{...this.layer?.customParameters,token:n}})}async queryRelatedFeatures(e,t){if(await this.load(),!this.capabilities.operations.supportsQuery)throw new i(`queryRelatedFeatures:not-supported`,`this layer doesn't support queries.`);if(!this.url)throw new i(`queryRelatedFeatures:not-supported`,`this layer has no url.`);let n=this.layer?.apiKey;return await this.queryTask.executeRelationshipQuery(e,{...t,query:{...this.layer?.customParameters,token:n}})}async queryRelatedFeaturesCount(e,t){if(await this.load(),!this.capabilities.operations.supportsQuery)throw new i(`queryRelatedFeaturesCount:not-supported`,`this layer doesn't support queries.`);if(!this.capabilities.queryRelated.supportsCount)throw new i(`queryRelatedFeaturesCount:not-supported`,`this layer doesn't support query related counts.`);if(!this.url)throw new i(`queryRelatedFeaturesCount:not-supported`,`this layer has no url.`);let n=this.layer?.apiKey;return await this.queryTask.executeRelationshipQueryForCount(e,{...t,query:{...this.layer?.customParameters,token:n}})}async reload(e){if(this.loadStatus===`not-loaded`)return this.load(e).then(()=>{});let{layer:t,url:r}=this;if(!t&&!r)throw new i(`sublayer:missing-layer`,`Sublayer can't be loaded without being part of a layer`,{sublayer:this});let a=t?await t.fetchSublayerInfo(this,e):(await n(r,{query:{f:`json`},...e})).data;a&&(this.sourceJSON={...this.sourceJSON,...a},this.read({layerDefinition:a},{origin:`service`,layer:t,url:I(r)}))}toExportImageJSON(e){let t={id:this.id,source:this.source?.toJSON()||{mapLayerId:this.id,type:`mapLayer`}},n=u(e,this.definitionExpression);n!=null&&(t.definitionExpression=n);let r=[`renderer`,`labelingInfo`,`opacity`,`labelsVisible`].reduce((e,t)=>(e[t]=this.originIdOf(t),e),{});if(Object.keys(r).some(e=>r[e]>2)){let e=t.drawingInfo={};if(r.renderer>2&&(e.renderer=this.renderer?this.renderer.toJSON():null),r.labelsVisible>2&&(e.showLabels=this.labelsVisible),this.labelsVisible&&r.labelingInfo>2){if(!this.labelingInfo)e.showLabels=!1;else{!this.loaded&&this.labelingInfo?.some(e=>!e.labelPlacement)&&c.getLogger(this).warnOnce(`A Sublayer (title: ${this.title}, id: ${this.id}) has an undefined 'labelPlacement' and so labels cannot be displayed. Either define a valid 'labelPlacement' or call Sublayer.load() to use a default value based on geometry type.`,{sublayer:this});let t=this.labelingInfo;this.geometryType!=null&&(t=k(this.labelingInfo,w.toJSON(this.geometryType))),e.showLabels=!0,e.labelingInfo=t.filter(e=>e.labelPlacement).map(e=>e.toJSON({origin:`service`,layer:this.layer}))}}r.opacity>2&&(e.transparency=100-this.opacity*100),this._assignDefaultSymbolColors(e.renderer)}return(this.layer?.capabilities?.exportMap?.supportsSublayerOrderBy??!1)&&this.originIdOf(`orderBy`)>2&&(t.orderBy=this.orderBy?.map(e=>e.toJSON())??null),t}_assignDefaultSymbolColors(e){this._forEachSimpleMarkerSymbols(e,e=>{e.color||(e.style===`esriSMSX`||e.style===`esriSMSCross`)&&(e.color=e.outline?.color?e.outline.color:[0,0,0,0])})}_forEachSimpleMarkerSymbols(e,t){if(e){let n=(`uniqueValueInfos`in e?e.uniqueValueInfos:`classBreakInfos`in e?e.classBreakInfos:null)??[];for(let e of n)K(e.symbol)&&t(e.symbol);`symbol`in e&&K(e.symbol)&&t(e.symbol),`defaultSymbol`in e&&K(e.defaultSymbol)&&t(e.defaultSymbol)}}_setAndNotifyLayer(e,t){let n=this.layer,r=this._get(e),i,a;switch(e){case`definitionExpression`:case`floorInfo`:i=`supportsSublayerDefinitionExpression`;break;case`minScale`:case`maxScale`:case`visible`:i=`supportsSublayerVisibility`;break;case`labelingInfo`:case`labelsVisible`:case`opacity`:case`renderer`:case`source`:i=`supportsDynamicLayers`,a=`supportsModification`;break;case`orderBy`:i=`supportsSublayerOrderBy`,a=`supportsModification`}let o=b(this).getDefaultOrigin();if(o!==`service`){if(i&&this.layer?.capabilities?.exportMap?.[i]===!1){this._logLockedError(e,`capability not available 'layer.capabilities.exportMap.${i}'`);return}if(a&&this.capabilities?.exportMap[a]===!1){this._logLockedError(e,`capability not available 'capabilities.exportMap.${a}'`);return}}if(e===`source`&&this.loadStatus!==`not-loaded`){this._logLockedError(e,`'source' can't be changed after calling sublayer.load()`);return}this._set(e,t),o!==`service`&&r!==t&&n?.emit&&n.emit(`sublayer-update`,{propertyName:e,target:this})}_handleSublayersChange(e,t){t&&(t.forEach(e=>{e.parent=null,e.layer=null}),this.removeAllHandles()),e&&(e.forEach(e=>{e.parent=this,e.layer=this.layer}),this.addHandles([e.on(`after-add`,({item:e})=>{e.parent=this,e.layer=this.layer}),e.on(`after-remove`,({item:e})=>{e.parent=null,e.layer=null}),e.on(`before-changes`,e=>{(this.layer?.capabilities?.exportMap?.supportsSublayersChanges??!0)||(c.getLogger(this).error(new i(`sublayer:sublayers-non-modifiable`,`Sublayer can't be added, moved, or removed from the layer's sublayers`,{sublayer:this,layer:this.layer})),e.preventDefault())})]))}_logLockedError(e,t){let{layer:n,declaredClass:r}=this;c.getLogger(r).error(new i(`sublayer:locked`,`Property '${String(e)}' can't be changed on Sublayer from the layer '${n?.id}'`,{reason:t,sublayer:this,layer:n}))}_getLayerDomain(e){return this.fieldsIndex.get(e)?.domain??null}static{this.test={isMapImageLayerOverridePolicy:e=>e===Z||e===X||e===J,isTileImageLayerOverridePolicy:e=>e===Y}}};e([f({type:H,json:{name:`attributeTableInfo`,write:{overridePolicy:J},origins:{"web-scene":{write:!1}}}})],$.prototype,`attributeTableTemplate`,void 0),e([f({readOnly:!0})],$.prototype,`capabilities`,void 0),e([U(`service`,`capabilities`,[`layerDefinition.canModifyLayer`,`layerDefinition.capabilities`])],$.prototype,`readCapabilities`,null),e([f()],$.prototype,`defaultPopupTemplate`,null),e([f({type:String,value:null,json:{name:`layerDefinition.definitionExpression`,write:{allowNull:!0,overridePolicy:J}}})],$.prototype,`definitionExpression`,null),e([f({readOnly:!0,type:ie,json:{origins:{service:{read:{source:`layerDefinition.editFieldsInfo`}}}}})],$.prototype,`editFieldsInfo`,void 0),e([f({readOnly:!0})],$.prototype,`effectiveScaleRange`,null),e([f({readOnly:!0,type:[String]})],$.prototype,`effectiveUniqueIdFields`,null),e([U(`service`,`maxScaleRange`,[`minScale`,`maxScale`])],$.prototype,`readMaxScaleRange`,null),e([f({type:[T],json:{origins:{service:{read:{source:`layerDefinition.fields`}}}}})],$.prototype,`fields`,void 0),e([f({readOnly:!0})],$.prototype,`fieldsIndex`,null),e([f({type:A,value:null,json:{name:`layerDefinition.floorInfo`,read:{source:`layerDefinition.floorInfo`},write:{target:`layerDefinition.floorInfo`,overridePolicy:J},origins:{"web-scene":{read:!1,write:!1}}}})],$.prototype,`floorInfo`,null),e([f({type:x,json:{read:{source:`layerDefinition.extent`}}})],$.prototype,`fullExtent`,void 0),e([f({type:w.apiValues,json:{origins:{service:{name:`layerDefinition.geometryType`,read:{reader:w.read}}}}})],$.prototype,`geometryType`,void 0),e([f({type:String})],$.prototype,`globalIdField`,void 0),e([U(`service`,`globalIdField`,[`layerDefinition.globalIdField`,`layerDefinition.fields`])],$.prototype,`readGlobalIdFieldFromService`,null),e([f({readOnly:!0})],$.prototype,`graphicOrigin`,null),e([f({type:_,json:{write:{ignoreOrigin:!0}}})],$.prototype,`id`,null),e([f({readOnly:!0})],$.prototype,`isTable`,void 0),e([U(`service`,`isTable`,[`type`])],$.prototype,`readIsTable`,null),e([f({value:null,type:[O],json:{read:{source:`layerDefinition.drawingInfo.labelingInfo`},write:{target:`layerDefinition.drawingInfo.labelingInfo`,overridePolicy:Z}}})],$.prototype,`labelingInfo`,null),e([W(`labelingInfo`)],$.prototype,`writeLabelingInfo`,null),e([f({type:Boolean,value:!0,json:{read:{source:`layerDefinition.drawingInfo.showLabels`},write:{target:`layerDefinition.drawingInfo.showLabels`,overridePolicy:X}}})],$.prototype,`labelsVisible`,null),e([f({value:null})],$.prototype,`layer`,null),e([f({type:String,json:{write:{overridePolicy:Y}}})],$.prototype,`layerItemId`,void 0),e([f({type:Boolean,value:!0,json:{origins:{service:{read:{enabled:!1}}},read:{source:`showLegend`},write:{target:`showLegend`,overridePolicy:Q}}})],$.prototype,`legendEnabled`,void 0),e([f({type:[`show`,`hide`,`hide-children`],value:`show`,json:{read:!1,write:!1,origins:{"web-scene":{read:!0,write:!0}}}})],$.prototype,`listMode`,null),e([f({type:Number,value:0,json:{write:{overridePolicy:X}}})],$.prototype,`minScale`,null),e([U(`minScale`,[`minScale`,`layerDefinition.minScale`])],$.prototype,`readMinScale`,null),e([f({type:Number,value:0,json:{write:{overridePolicy:X}}})],$.prototype,`maxScale`,null),e([U(`maxScale`,[`maxScale`,`layerDefinition.maxScale`])],$.prototype,`readMaxScale`,null),e([f()],$.prototype,`objectIdField`,void 0),e([U(`service`,`objectIdField`,[`layerDefinition.objectIdField`,`layerDefinition.fields`])],$.prototype,`readObjectIdFieldFromService`,null),e([f({type:Number,value:1,json:{write:{target:`layerDefinition.drawingInfo.transparency`,overridePolicy:X}}})],$.prototype,`opacity`,null),e([U(`opacity`,[`layerDefinition.drawingInfo.transparency`,`layerDefinition.transparency`])],$.prototype,`readOpacity`,null),e([W(`opacity`)],$.prototype,`writeOpacity`,null),e([f({value:null,type:[j],json:{name:`layerDefinition.orderBy`,read:{reader:re},write:{overridePolicy:J},origins:{"web-scene":{read:!1,write:!1}}}})],$.prototype,`orderBy`,null),e([f({json:{type:_,write:{target:`parentLayerId`,writerEnsuresNonNull:!0,overridePolicy:X}}})],$.prototype,`parent`,void 0),e([W(`parent`)],$.prototype,`writeParent`,null),e([f({type:Boolean,value:!0,json:{read:{source:`disablePopup`,reader(e,t){return!t.disablePopup}},write:{target:`disablePopup`,overridePolicy:Q,writer(e,t,n){t[n]=!e}}}})],$.prototype,`popupEnabled`,void 0),e([f({type:t,json:{read:{source:`popupInfo`},write:{target:`popupInfo`,overridePolicy:Q}}})],$.prototype,`popupTemplate`,void 0),e([f({readOnly:!0})],$.prototype,`queryTask`,null),e([f({type:[M],readOnly:!0,json:{origins:{service:{read:{source:`layerDefinition.relationships`}}}}})],$.prototype,`relationships`,void 0),e([f({types:F,value:null,json:{name:`layerDefinition.drawingInfo.renderer`,write:{overridePolicy:Z},origins:{"web-scene":{types:P,name:`layerDefinition.drawingInfo.renderer`,write:{overridePolicy:Z}}}}})],$.prototype,`renderer`,null),e([f({types:{key:`type`,base:null,typeMap:{"data-layer":L,"map-layer":R}},cast(e){if(e){if(`mapLayerId`in e)return v(R,e);if(`dataSource`in e)return v(L,e)}return e},json:{name:`layerDefinition.source`,write:{overridePolicy:X}}})],$.prototype,`source`,null),e([f()],$.prototype,`sourceJSON`,void 0),e([f({type:S,json:{origins:{service:{read:{source:`layerDefinition.extent.spatialReference`}}}}})],$.prototype,`spatialReference`,void 0),e([f({value:null,json:{type:[_],write:{target:`subLayerIds`,allowNull:!0,overridePolicy:X}}})],$.prototype,`sublayers`,null),e([p(`sublayers`)],$.prototype,`castSublayers`,null),e([W(`sublayers`)],$.prototype,`writeSublayers`,null),e([f({type:String,json:{name:`name`,write:{overridePolicy:Q}}})],$.prototype,`title`,void 0),e([U(`service`,`title`,[`name`,`layerDefinition.name`])],$.prototype,`readTitle`,null),e([f({type:String})],$.prototype,`typeIdField`,void 0),e([f({json:{read:!1},readOnly:!0,value:`sublayer`})],$.prototype,`type`,void 0),e([U(`typeIdField`,[`layerDefinition.typeIdField`])],$.prototype,`readTypeIdField`,null),e([f({type:[oe],json:{origins:{service:{read:{source:`layerDefinition.types`}}}}})],$.prototype,`types`,void 0),e([f({type:[String],readOnly:!0})],$.prototype,`uniqueIdFields`,void 0),e([U(`service`,`uniqueIdFields`,[`layerDefinition.uniqueIdInfo.OIDFieldContainsHashValue`,`layerDefinition.uniqueIdInfo.fields`])],$.prototype,`readUniqueIdFields`,null),e([f({type:String,json:{name:`layerUrl`,write:{overridePolicy:Y}}})],$.prototype,`url`,null),e([f({type:Boolean,value:!0,json:{read:{source:`defaultVisibility`},write:{target:`defaultVisibility`,overridePolicy:X}}})],$.prototype,`visible`,null),e([W(`visible`)],$.prototype,`writeVisible`,null),$=G=e([m(`esri.layers.support.Sublayer`)],$);export{$ as default};
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../PopupTemplate.js";import n from"../../request.js";import r from"../../core/Collection.js";import i from"../../core/Error.js";import has from"../../core/has.js";import{IdentifiableMixin as a}from"../../core/Identifiable.js";import{clone as o}from"../../core/lang.js";import{Loadable as s}from"../../core/Loadable.js";import c from"../../core/Logger.js";import{MultiOriginJSONSupportMixin as l}from"../../core/MultiOriginJSONSupport.js";import{sqlAnd as u}from"../../core/sql.js";import{objectToQuery as d}from"../../core/urlUtils.js";import{property as f,cast as p,subclass as m}from"../../core/accessorSupport/decorators.js";import{ensureInteger as ee,ensureType as te,Integer as h,ensureClass as g}from"../../core/accessorSupport/ensureType.js";import{nameToId as ne}from"../../core/accessorSupport/PropertyOrigin.js";import{getProperties as _}from"../../core/accessorSupport/utils.js";import v from"../../geometry/Extent.js";import y from"../../geometry/SpatialReference.js";import{joinScaleRanges as b}from"../../geometry/support/scaleUtils.js";import{featureGeometryTypeKebabDictionary as x}from"../../geometry/support/typeUtils.js";import S from"../../graphic/MapImageGraphicOrigin.js";import C from"../../graphic/TileGraphicOrigin.js";import w from"../graphics/sources/support/QueryTask.js";import{readOrderByInfos as re}from"../mixins/OrderedLayer.js";import ie from"./EditFieldsInfo.js";import{getFeatureType as ae}from"./featureLayerUtils.js";import oe from"./FeatureType.js";import se from"./Field.js";import T from"./FieldsIndex.js";import{fixRendererFields as E}from"./fieldUtils.js";import D from"./LabelClass.js";import{validateLabelingInfo as O}from"./labelingInfo.js";import k from"./LayerFloorInfo.js";import A from"./OrderByInfo.js";import j from"./Relationship.js";import{getFeatureLayerCapabilities as M}from"./serviceCapabilitiesUtils.js";import{webSceneRendererTypes as N,rendererTypes as P}from"../../renderers/support/typeUtils.js";import{parseUrl as F}from"../../rest/utils.js";import I from"../../rest/layerSources/DynamicDataLayer.js";import L from"../../rest/layerSources/DynamicMapLayer.js";import R from"../../rest/layerSources/DynamicWorkspaceLayer.js";import z from"../../rest/support/AttachmentQuery.js";import ce from"../../rest/support/Query.js";import{createPopupTemplate as B}from"../../support/popupUtils.js";import{isSymbol3D as V}from"../../symbols/support/typeUtils.js";import H from"../../tables/AttributeTableTemplate.js";import{reader as U}from"../../core/accessorSupport/decorators/reader.js";import{writer as W}from"../../core/accessorSupport/decorators/writer.js";var G;function K(e){return e?.type===`esriSMS`}function q(e,t,n){let r=n.minimumWritableOrigin||n.origin;return r?e.originIdOf(t)>=ne(r):!1}function J(e,t,n){let r=q(this,t,n);return{ignoreOrigin:!0,allowNull:r,enabled:n?n.layer?.type===`map-image`&&(n.writeSublayerStructure||r):!1}}function Y(e,t,n){return{enabled:n?n.layer?.type===`tile`&&(q(this,t,n)||this._isOverridden(t)):!1}}function X(e,t,n){return{ignoreOrigin:!0,enabled:n&&n.writeSublayerStructure||!1}}function Z(e,t,n){return{ignoreOrigin:!0,enabled:n?.writeSublayerStructure?this.originIdOf(t)>2:!1}}function Q(e,t,n){return{ignoreOrigin:!0,enabled:n?n.writeSublayerStructure||q(this,t,n):!1}}let le=0;const ue=new Set([`layer`,`parent`,`loaded`,`loadStatus`,`loadError`,`loadWarnings`]);let $=class extends l(a(s)){static{G=this}constructor(e){super(e),this.attributeTableTemplate=null,this.capabilities=void 0,this.editFieldsInfo=null,this.maxScaleRange={minScale:0,maxScale:0},this.fields=null,this.fullExtent=null,this.geometryType=null,this.globalIdField=null,this.isTable=!1,this.legendEnabled=!0,this.objectIdField=null,this.parent=null,this.popupEnabled=!0,this.popupTemplate=null,this.relationships=null,this.sourceJSON=null,this.spatialReference=null,this.title=null,this.typeIdField=null,this.type=`sublayer`,this.types=null,this.uniqueIdFields=null,this._lastParsedUrl=null}async load(e){return this.addResolvingPromise(this.reload(e)),this}readCapabilities(e,t){t=t.layerDefinition||t;let{attachment:n,operations:{supportsQuery:r,supportsQueryAttachments:i},query:{supportsFormatPBF:a,supportsOrderBy:o,supportsPagination:s,relativeTimeBinWindow:c},data:{supportsAttachment:l},queryRelated:u}=M(t,this.url);return{attachment:{supportsOrderByFields:n?.supportsOrderByFields??!1,supportsResize:n?.supportsResize??!1,supportsTypeWildcard:n?.supportsTypeWildcard??!1},exportMap:{supportsModification:!!t.canModifyLayer},operations:{supportsQuery:r,supportsQueryAttachments:i},data:{supportsAttachment:l},query:{relativeTimeBinWindow:c,supportsFormatPBF:a,supportsOrderBy:o,supportsPagination:s},queryRelated:u}}get defaultPopupTemplate(){return this.createPopupTemplate()}set definitionExpression(e){this._setAndNotifyLayer(`definitionExpression`,e)}get effectiveScaleRange(){let e=this._get(`effectiveScaleRange`),{maxScale:t,minScale:n,parent:r}=this,i={minScale:n,maxScale:t};return r?.effectiveScaleRange!==void 0&&b(i,r.effectiveScaleRange),e&&e.minScale===i.minScale&&e.maxScale===i.maxScale?e:i}get effectiveUniqueIdFields(){return this.uniqueIdFields?[...this.uniqueIdFields]:this.objectIdField?[this.objectIdField]:[]}readMaxScaleRange(e,t){return t=t.layerDefinition||t,{minScale:t.minScale??0,maxScale:t.maxScale??0}}get fieldsIndex(){return new T(this.fields||[])}set floorInfo(e){this._setAndNotifyLayer(`floorInfo`,e)}readGlobalIdFieldFromService(e,t){if(t=t.layerDefinition||t,t.globalIdField)return t.globalIdField;if(t.fields){for(let e of t.fields)if(e.type===`esriFieldTypeGlobalID`)return e.name}}get graphicOrigin(){if(!this.layer)return null;switch(this.layer.type){case`tile`:return new C(this.layer,this);case`map-image`:return new S(this.layer,this)}}get id(){return this._get(`id`)??le++}set id(e){if(this._get(`id`)!==e){if(this.layer?.capabilities?.exportMap?.supportsDynamicLayers===!1){this._logLockedError(`id`,`capability not available 'layer.capabilities.exportMap.supportsDynamicLayers'`);return}this._set(`id`,e)}}readIsTable(e,t){return t.type===`Table`}set labelingInfo(e){this._setAndNotifyLayer(`labelingInfo`,e)}writeLabelingInfo(e,t,n,r){e&&e.length&&(t.layerDefinition={drawingInfo:{labelingInfo:e.map(e=>e.write({},r))}})}set labelsVisible(e){this._setAndNotifyLayer(`labelsVisible`,e)}set layer(e){this._set(`layer`,e),this.sublayers?.forEach(t=>t.layer=e)}set listMode(e){this._set(`listMode`,e)}get loaded(){return super.loaded}set minScale(e){this._setAndNotifyLayer(`minScale`,e)}readMinScale(e,t){return t.minScale||t.layerDefinition?.minScale||0}set maxScale(e){this._setAndNotifyLayer(`maxScale`,e)}readMaxScale(e,t){return t.maxScale||t.layerDefinition?.maxScale||0}readObjectIdFieldFromService(e,t){return t=t.layerDefinition||t,t.objectIdField?t.objectIdField:t.fields?.find(e=>e.type===`esriFieldTypeOID`)?.name}set opacity(e){this._setAndNotifyLayer(`opacity`,e)}readOpacity(e,t){let{layerDefinition:n}=t;return 1-(n?.transparency??n?.drawingInfo?.transparency??0)*.01}writeOpacity(e,t,n,r){t.layerDefinition={drawingInfo:{transparency:100-e*100}}}set orderBy(e){this._setAndNotifyLayer(`orderBy`,e)}writeParent(e,t){t.parentLayerId=!this.parent||this.parent===this.layer?-1:ee(this.parent.id)}get queryTask(){if(!this.layer)return null;let{capabilities:e,fieldsIndex:t,layer:n,uniqueIdFields:r,url:i}=this,{spatialReference:a}=n,o=`gdbVersion`in n?n.gdbVersion:void 0,s=has(`featurelayer-pbf`)&&e?.query.supportsFormatPBF,c=e?.operations?.supportsQueryAttachments??!1,l=e?.query?.relativeTimeBinWindow??0;return new w({fieldsIndex:t,gdbVersion:o,pbfSupported:s,queryAttachmentsSupported:c,relativeTimeBinWindow:l,sourceSpatialReference:a,uniqueIdFields:r,url:i})}set renderer(e){if(E(e,this.fieldsIndex),e){for(let t of e.symbols)if(V(t)){c.getLogger(this).warn(`Sublayer renderer should use 2D symbols`);break}}this._setAndNotifyLayer(`renderer`,e)}get source(){return this._get(`source`)||new L({mapLayerId:this.id})}set source(e){this._setAndNotifyLayer(`source`,e)}get sublayers(){return this._get(`sublayers`)}set sublayers(e){this._handleSublayersChange(e,this._get(`sublayers`)),this._set(`sublayers`,e)}castSublayers(e){return te(r.ofType(G),e)}writeSublayers(e,t,n){this.sublayers?.length&&(t[n]=this.sublayers.map(e=>e.id).toArray().reverse())}readTitle(e,t){return t.layerDefinition?.name??t.name}readTypeIdField(e,t){t=t.layerDefinition||t;let n=t.typeIdField;if(n&&t.fields){n=n.toLowerCase();let e=t.fields.find(e=>e.name.toLowerCase()===n);e&&(n=e.name)}return n}readUniqueIdFields(e,t){return t.layerDefinition?.uniqueIdInfo?.OIDFieldContainsHashValue?t.layerDefinition.uniqueIdInfo.fields:null}get url(){let e=this.layer?.parsedUrl??this._lastParsedUrl,t=this.source;if(!e)return null;if(this._lastParsedUrl=e,t?.type===`map-layer`)return`${e.path}/${t.mapLayerId}`;let n={layer:JSON.stringify({source:this.source})};return`${e.path}/dynamicLayer?${d(n)}`}set url(e){this._overrideIfSome(`url`,e)}set visible(e){this._setAndNotifyLayer(`visible`,e)}writeVisible(e,t,n,r){t[n]=this.getAtOrigin(`defaultVisibility`,`service`)||e}clone(){let{store:e}=_(this),t=new G;return _(t).store=e.clone(ue),this.commitProperty(`url`),t._lastParsedUrl=this._lastParsedUrl,t}createPopupTemplate(e){return B(this,e)}createQuery(){return new ce({returnGeometry:!0,where:this.definitionExpression||`1=1`})}async createFeatureLayer(){if(this.sublayers)return null;let e=(await import(`../FeatureLayer.js`)).default,{layer:t,url:n}=this,r;if(n&&this.originIdOf(`url`)>2)r=new e({url:n});else if(t?.parsedUrl){let n=t.parsedUrl;r=new e({url:n.path}),n&&this.source&&(this.source.type===`map-layer`?r.layerId=this.source.mapLayerId:r.dynamicDataSource=this.source)}else throw new i(`createFeatureLayer:missing-information`,`Cannot create a FeatureLayer without a url or a parent layer`);return t?.refreshInterval!=null&&(r.refreshInterval=t.refreshInterval),this.definitionExpression&&(r.definitionExpression=this.definitionExpression),this.floorInfo&&(r.floorInfo=o(this.floorInfo)),this.originIdOf(`labelingInfo`)>2&&(r.labelingInfo=o(this.labelingInfo)),this.originIdOf(`labelsVisible`)>0&&(r.labelsVisible=this.labelsVisible),this.originIdOf(`legendEnabled`)>0&&(r.legendEnabled=this.legendEnabled),this.originIdOf(`visible`)>0&&(r.visible=this.visible),this.originIdOf(`minScale`)>0&&(r.minScale=this.minScale),this.originIdOf(`maxScale`)>0&&(r.maxScale=this.maxScale),this.originIdOf(`opacity`)>0&&(r.opacity=this.opacity),this.originIdOf(`popupTemplate`)>0&&(r.popupTemplate=o(this.popupTemplate)),this.originIdOf(`renderer`)>2&&(r.renderer=o(this.renderer)),this.source?.type===`data-layer`&&(r.dynamicDataSource=this.source.clone()),this.originIdOf(`title`)>0&&(r.title=this.title),t?.type===`map-image`&&t.originIdOf(`customParameters`)>0&&(r.customParameters=t.customParameters),t?.type===`tile`&&t.originIdOf(`customParameters`)>0&&(r.customParameters=t.customParameters),r}getField(e){return this.fieldsIndex.get(e)}getFeatureType(e){return ae(this.types,this.typeIdField,e)}getFieldDomain(e,t){let n=t?.feature,r=this.getFeatureType(n);if(r){let t=r.domains&&r.domains[e];if(t&&t.type!==`inherited`)return t}return this._getLayerDomain(e)}async queryAttachments(e,t){await this.load();let n=z.from(e),r=this.capabilities;if(!r?.data?.supportsAttachment)throw new i(`queryAttachments:not-supported`,`this layer doesn't support attachments`);let{attachmentTypes:a,objectIds:o,globalIds:s,num:c,size:l,start:u,where:d}=n;if(!r?.operations?.supportsQueryAttachments){let e=a?.length>0,t=s?.length>0,r=l?.length>0;if(e||t||r||c||u||d)throw new i(`queryAttachments:option-not-supported`,`when 'capabilities.operations.supportsQueryAttachments' is false, only objectIds is supported`,n)}if(!(o?.length||s?.length||d))throw new i(`queryAttachments:invalid-query`,`'objectIds', 'globalIds', or 'where' are required to perform attachment query`,n);return!r?.attachment?.supportsOrderByFields&&n.orderByFields?.length&&(n=n.clone(),n.orderByFields=null),this.queryTask.executeAttachmentQuery(n,t)}async queryFeatureCount(e=this.createQuery(),t){if(await this.load(),!this.capabilities.operations.supportsQuery)throw new i(`queryFeatureCount:not-supported`,`this layer doesn't support queries.`);if(!this.url)throw new i(`queryFeatureCount:not-supported`,`this layer has no url.`);let n=this.layer?.apiKey;return await this.queryTask.executeForCount(e,{...t,query:{...this.layer?.customParameters,token:n}})}async queryFeatures(e=this.createQuery(),t){if(await this.load(),!this.capabilities.operations.supportsQuery)throw new i(`queryFeatures:not-supported`,`this layer doesn't support queries.`);if(!this.url)throw new i(`queryFeatures:not-supported`,`this layer has no url.`);let n=await this.queryTask.execute(e,{...t,query:{...this.layer?.customParameters,token:this.layer?.apiKey}});if(n?.features){let e=this.graphicOrigin;for(let t of n.features)t.sourceLayer=this,t.origin=e}return n}async queryObjectIds(e=this.createQuery(),t){if(await this.load(),!this.capabilities.operations.supportsQuery)throw new i(`queryObjectIds:not-supported`,`this layer doesn't support queries.`);if(!this.url)throw new i(`queryObjectIds:not-supported`,`this layer has no url.`);let n=this.layer?.apiKey;return await this.queryTask.executeForIds(e,{...t,query:{...this.layer?.customParameters,token:n}})}async queryRelatedFeatures(e,t){if(await this.load(),!this.capabilities.operations.supportsQuery)throw new i(`queryRelatedFeatures:not-supported`,`this layer doesn't support queries.`);if(!this.url)throw new i(`queryRelatedFeatures:not-supported`,`this layer has no url.`);let n=this.layer?.apiKey;return await this.queryTask.executeRelationshipQuery(e,{...t,query:{...this.layer?.customParameters,token:n}})}async queryRelatedFeaturesCount(e,t){if(await this.load(),!this.capabilities.operations.supportsQuery)throw new i(`queryRelatedFeaturesCount:not-supported`,`this layer doesn't support queries.`);if(!this.capabilities.queryRelated.supportsCount)throw new i(`queryRelatedFeaturesCount:not-supported`,`this layer doesn't support query related counts.`);if(!this.url)throw new i(`queryRelatedFeaturesCount:not-supported`,`this layer has no url.`);let n=this.layer?.apiKey;return await this.queryTask.executeRelationshipQueryForCount(e,{...t,query:{...this.layer?.customParameters,token:n}})}async reload(e){if(this.loadStatus===`not-loaded`)return this.load(e).then(()=>{});let{layer:t,url:r}=this;if(!t&&!r)throw new i(`sublayer:missing-layer`,`Sublayer can't be loaded without being part of a layer`,{sublayer:this});let a=t?await t.fetchSublayerInfo(this,e):(await n(r,{query:{f:`json`},...e})).data;a&&(this.sourceJSON={...this.sourceJSON,...a},this.read({layerDefinition:a},{origin:`service`,layer:t,url:F(r)}))}toExportImageJSON(e){let t={id:this.id,source:this.source?.toJSON()||{mapLayerId:this.id,type:`mapLayer`}},n=u(e,this.definitionExpression);n!=null&&(t.definitionExpression=n);let r=[`renderer`,`labelingInfo`,`opacity`,`labelsVisible`].reduce((e,t)=>(e[t]=this.originIdOf(t),e),{});if(Object.keys(r).some(e=>r[e]>2)){let e=t.drawingInfo={};if(r.renderer>2&&(e.renderer=this.renderer?this.renderer.toJSON():null),r.labelsVisible>2&&(e.showLabels=this.labelsVisible),this.labelsVisible&&r.labelingInfo>2){if(!this.labelingInfo)e.showLabels=!1;else{!this.loaded&&this.labelingInfo?.some(e=>!e.labelPlacement)&&c.getLogger(this).warnOnce(`A Sublayer (title: ${this.title}, id: ${this.id}) has an undefined 'labelPlacement' and so labels cannot be displayed. Either define a valid 'labelPlacement' or call Sublayer.load() to use a default value based on geometry type.`,{sublayer:this});let t=this.labelingInfo;this.geometryType!=null&&(t=O(this.labelingInfo,x.toJSON(this.geometryType))),e.showLabels=!0,e.labelingInfo=t.filter(e=>e.labelPlacement).map(e=>e.toJSON({origin:`service`,layer:this.layer}))}}r.opacity>2&&(e.transparency=100-this.opacity*100),this._assignDefaultSymbolColors(e.renderer)}return(this.layer?.capabilities?.exportMap?.supportsSublayerOrderBy??!1)&&this.originIdOf(`orderBy`)>2&&(t.orderBy=this.orderBy?.map(e=>e.toJSON())??null),t}_assignDefaultSymbolColors(e){this._forEachSimpleMarkerSymbols(e,e=>{e.color||(e.style===`esriSMSX`||e.style===`esriSMSCross`)&&(e.color=e.outline?.color?e.outline.color:[0,0,0,0])})}_forEachSimpleMarkerSymbols(e,t){if(e){let n=(`uniqueValueInfos`in e?e.uniqueValueInfos:`classBreakInfos`in e?e.classBreakInfos:null)??[];for(let e of n)K(e.symbol)&&t(e.symbol);`symbol`in e&&K(e.symbol)&&t(e.symbol),`defaultSymbol`in e&&K(e.defaultSymbol)&&t(e.defaultSymbol)}}_setAndNotifyLayer(e,t){let n=this.layer,r=this._get(e),i,a;switch(e){case`definitionExpression`:case`floorInfo`:i=`supportsSublayerDefinitionExpression`;break;case`minScale`:case`maxScale`:case`visible`:i=`supportsSublayerVisibility`;break;case`labelingInfo`:case`labelsVisible`:case`opacity`:case`renderer`:case`source`:i=`supportsDynamicLayers`,a=`supportsModification`;break;case`orderBy`:i=`supportsSublayerOrderBy`,a=`supportsModification`}let o=_(this).getDefaultOrigin();if(o!==`service`){if(i&&this.layer?.capabilities?.exportMap?.[i]===!1){this._logLockedError(e,`capability not available 'layer.capabilities.exportMap.${i}'`);return}if(a&&this.capabilities?.exportMap[a]===!1){this._logLockedError(e,`capability not available 'capabilities.exportMap.${a}'`);return}}if(e===`source`&&this.loadStatus!==`not-loaded`){this._logLockedError(e,`'source' can't be changed after calling sublayer.load()`);return}this._set(e,t),o!==`service`&&r!==t&&n?.emit&&n.emit(`sublayer-update`,{propertyName:e,target:this})}_handleSublayersChange(e,t){t&&(t.forEach(e=>{e.parent=null,e.layer=null}),this.removeAllHandles()),e&&(e.forEach(e=>{e.parent=this,e.layer=this.layer}),this.addHandles([e.on(`after-add`,({item:e})=>{e.parent=this,e.layer=this.layer}),e.on(`after-remove`,({item:e})=>{e.parent=null,e.layer=null}),e.on(`before-changes`,e=>{(this.layer?.capabilities?.exportMap?.supportsSublayersChanges??!0)||(c.getLogger(this).error(new i(`sublayer:sublayers-non-modifiable`,`Sublayer can't be added, moved, or removed from the layer's sublayers`,{sublayer:this,layer:this.layer})),e.preventDefault())})]))}_logLockedError(e,t){let{layer:n,declaredClass:r}=this;c.getLogger(r).error(new i(`sublayer:locked`,`Property '${String(e)}' can't be changed on Sublayer from the layer '${n?.id}'`,{reason:t,sublayer:this,layer:n}))}_getLayerDomain(e){return this.fieldsIndex.get(e)?.domain??null}static{this.test={isMapImageLayerOverridePolicy:e=>e===Z||e===X||e===J,isTileImageLayerOverridePolicy:e=>e===Y}}};e([f({type:H,json:{name:`attributeTableInfo`,write:{overridePolicy:J},origins:{"web-scene":{write:!1}}}})],$.prototype,`attributeTableTemplate`,void 0),e([f({readOnly:!0})],$.prototype,`capabilities`,void 0),e([U(`service`,`capabilities`,[`layerDefinition.canModifyLayer`,`layerDefinition.capabilities`])],$.prototype,`readCapabilities`,null),e([f()],$.prototype,`defaultPopupTemplate`,null),e([f({type:String,value:null,json:{name:`layerDefinition.definitionExpression`,write:{allowNull:!0,overridePolicy:J}}})],$.prototype,`definitionExpression`,null),e([f({readOnly:!0,type:ie,json:{origins:{service:{read:{source:`layerDefinition.editFieldsInfo`}}}}})],$.prototype,`editFieldsInfo`,void 0),e([f({readOnly:!0})],$.prototype,`effectiveScaleRange`,null),e([f({readOnly:!0,type:[String]})],$.prototype,`effectiveUniqueIdFields`,null),e([U(`service`,`maxScaleRange`,[`minScale`,`maxScale`])],$.prototype,`readMaxScaleRange`,null),e([f({type:[se],json:{origins:{service:{read:{source:`layerDefinition.fields`}}}}})],$.prototype,`fields`,void 0),e([f({readOnly:!0})],$.prototype,`fieldsIndex`,null),e([f({type:k,value:null,json:{name:`layerDefinition.floorInfo`,read:{source:`layerDefinition.floorInfo`},write:{target:`layerDefinition.floorInfo`,overridePolicy:J},origins:{"web-scene":{read:!1,write:!1}}}})],$.prototype,`floorInfo`,null),e([f({type:v,json:{read:{source:`layerDefinition.extent`}}})],$.prototype,`fullExtent`,void 0),e([f({type:x.apiValues,json:{origins:{service:{name:`layerDefinition.geometryType`,read:{reader:x.read}}}}})],$.prototype,`geometryType`,void 0),e([f({type:String})],$.prototype,`globalIdField`,void 0),e([U(`service`,`globalIdField`,[`layerDefinition.globalIdField`,`layerDefinition.fields`])],$.prototype,`readGlobalIdFieldFromService`,null),e([f({readOnly:!0})],$.prototype,`graphicOrigin`,null),e([f({type:h,json:{write:{ignoreOrigin:!0}}})],$.prototype,`id`,null),e([f({readOnly:!0})],$.prototype,`isTable`,void 0),e([U(`service`,`isTable`,[`type`])],$.prototype,`readIsTable`,null),e([f({value:null,type:[D],json:{read:{source:`layerDefinition.drawingInfo.labelingInfo`},write:{target:`layerDefinition.drawingInfo.labelingInfo`,overridePolicy:Z}}})],$.prototype,`labelingInfo`,null),e([W(`labelingInfo`)],$.prototype,`writeLabelingInfo`,null),e([f({type:Boolean,value:!0,json:{read:{source:`layerDefinition.drawingInfo.showLabels`},write:{target:`layerDefinition.drawingInfo.showLabels`,overridePolicy:X}}})],$.prototype,`labelsVisible`,null),e([f({value:null})],$.prototype,`layer`,null),e([f({type:String,json:{write:{overridePolicy:Y}}})],$.prototype,`layerItemId`,void 0),e([f({type:Boolean,value:!0,json:{origins:{service:{read:{enabled:!1}}},read:{source:`showLegend`},write:{target:`showLegend`,overridePolicy:Q}}})],$.prototype,`legendEnabled`,void 0),e([f({type:[`show`,`hide`,`hide-children`],value:`show`,json:{read:!1,write:!1,origins:{"web-scene":{read:!0,write:!0}}}})],$.prototype,`listMode`,null),e([f({type:Number,value:0,json:{write:{overridePolicy:X}}})],$.prototype,`minScale`,null),e([U(`minScale`,[`minScale`,`layerDefinition.minScale`])],$.prototype,`readMinScale`,null),e([f({type:Number,value:0,json:{write:{overridePolicy:X}}})],$.prototype,`maxScale`,null),e([U(`maxScale`,[`maxScale`,`layerDefinition.maxScale`])],$.prototype,`readMaxScale`,null),e([f()],$.prototype,`objectIdField`,void 0),e([U(`service`,`objectIdField`,[`layerDefinition.objectIdField`,`layerDefinition.fields`])],$.prototype,`readObjectIdFieldFromService`,null),e([f({type:Number,value:1,json:{write:{target:`layerDefinition.drawingInfo.transparency`,overridePolicy:X}}})],$.prototype,`opacity`,null),e([U(`opacity`,[`layerDefinition.drawingInfo.transparency`,`layerDefinition.transparency`])],$.prototype,`readOpacity`,null),e([W(`opacity`)],$.prototype,`writeOpacity`,null),e([f({value:null,type:[A],json:{name:`layerDefinition.orderBy`,read:{reader:re},write:{overridePolicy:J},origins:{"web-scene":{read:!1,write:!1}}}})],$.prototype,`orderBy`,null),e([f({json:{type:h,write:{target:`parentLayerId`,writerEnsuresNonNull:!0,overridePolicy:X}}})],$.prototype,`parent`,void 0),e([W(`parent`)],$.prototype,`writeParent`,null),e([f({type:Boolean,value:!0,json:{read:{source:`disablePopup`,reader(e,t){return!t.disablePopup}},write:{target:`disablePopup`,overridePolicy:Q,writer(e,t,n){t[n]=!e}}}})],$.prototype,`popupEnabled`,void 0),e([f({type:t,json:{read:{source:`popupInfo`},write:{target:`popupInfo`,overridePolicy:Q}}})],$.prototype,`popupTemplate`,void 0),e([f({readOnly:!0})],$.prototype,`queryTask`,null),e([f({type:[j],readOnly:!0,json:{origins:{service:{read:{source:`layerDefinition.relationships`}}}}})],$.prototype,`relationships`,void 0),e([f({types:P,value:null,json:{name:`layerDefinition.drawingInfo.renderer`,write:{overridePolicy:Z},origins:{"web-scene":{types:N,name:`layerDefinition.drawingInfo.renderer`,write:{overridePolicy:Z}}}}})],$.prototype,`renderer`,null),e([f({types:{key:`type`,base:null,typeMap:{"data-layer":I,"map-layer":L,"workspace-layer":R}},cast(e){if(e){if(`mapLayerId`in e)return g(L,e);if(`dataSource`in e)return g(I,e);if(`workspaceId`in e&&`layerId`in e)return g(R,e)}return e},json:{name:`layerDefinition.source`,types:{key:`type`,base:null,typeMap:{"data-layer":I,"map-layer":L}},write:{overridePolicy:X}}})],$.prototype,`source`,null),e([f()],$.prototype,`sourceJSON`,void 0),e([f({type:y,json:{origins:{service:{read:{source:`layerDefinition.extent.spatialReference`}}}}})],$.prototype,`spatialReference`,void 0),e([f({value:null,json:{type:[h],write:{target:`subLayerIds`,allowNull:!0,overridePolicy:X}}})],$.prototype,`sublayers`,null),e([p(`sublayers`)],$.prototype,`castSublayers`,null),e([W(`sublayers`)],$.prototype,`writeSublayers`,null),e([f({type:String,json:{name:`name`,write:{overridePolicy:Q}}})],$.prototype,`title`,void 0),e([U(`service`,`title`,[`name`,`layerDefinition.name`])],$.prototype,`readTitle`,null),e([f({type:String})],$.prototype,`typeIdField`,void 0),e([f({json:{read:!1},readOnly:!0,value:`sublayer`})],$.prototype,`type`,void 0),e([U(`typeIdField`,[`layerDefinition.typeIdField`])],$.prototype,`readTypeIdField`,null),e([f({type:[oe],json:{origins:{service:{read:{source:`layerDefinition.types`}}}}})],$.prototype,`types`,void 0),e([f({type:[String],readOnly:!0})],$.prototype,`uniqueIdFields`,void 0),e([U(`service`,`uniqueIdFields`,[`layerDefinition.uniqueIdInfo.OIDFieldContainsHashValue`,`layerDefinition.uniqueIdInfo.fields`])],$.prototype,`readUniqueIdFields`,null),e([f({type:String,json:{name:`layerUrl`,write:{overridePolicy:Y}}})],$.prototype,`url`,null),e([f({type:Boolean,value:!0,json:{read:{source:`defaultVisibility`},write:{target:`defaultVisibility`,overridePolicy:X}}})],$.prototype,`visible`,null),e([W(`visible`)],$.prototype,`writeVisible`,null),$=G=e([m(`esri.layers.support.Sublayer`)],$);export{$ as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../core/Accessor.js";import{isMultiOriginJSONMixin as n}from"../../core/multiOriginJSONSupportUtils.js";import{sqlAnd as r,sqlName as i,sqlLiteral as a}from"../../core/sql.js";import{property as o}from"../../core/accessorSupport/decorators/property.js";import{subclass as s}from"../../core/accessorSupport/decorators/subclass.js";import{timeExtentToQueryParameter as c}from"../../rest/support/timeUtils.js";function l(e,t,n,r){let o=r.get(e)?.type,s=r.getTimeZone(e);return`${i(e)} ${t} ${a(n,{type:`date`},{type:o,timeZone:s})}`}let u=class extends t{constructor(e){super(e),this.fieldsIndex=null,this.layer=null}getExpression(e){let{layer:t}=this;if(!t)return;if(!n(t))return{type:`where`,value:this._getLayerCondition(e)};let r=t.timeInfo,i=t.getAtOrigin(`timeInfo`,`service`);if(i)return r?r===i||(r.startField===i.startField||!r.startField&&!i.startField)&&(r.endField===i.endField||!r.endField&&!i.endField)?{type:`time`,value:c(e)}:{type:`where`,value:this._getLayerCondition(e)}:void 0;if(r)return{type:`where`,value:this._getLayerCondition(e)}}_getLayerCondition(e){let{fieldsIndex:t,layer:n}=this;if(!t||!n)return;let{timeInfo:i}=n;if(!i)return;let{startField:a,endField:o}=i,{start:s,end:c}=e;if(!s&&!c||!a&&!o)return;let u=a??o,d=o??a;if(u&&d){if(s&&c){if(s.getTime()===c.getTime())return l(u,`==`,s,t);if(!a||!o){let e=l(u,`>=`,s,t),n=l(u,`<=`,c,t);return r(e,n)}let e=l(a,`>=`,s,t),n=l(o,`<=`,c,t);return r(e,n)}if(s)return l(u,`>=`,s,t);if(c)return l(d,`<=`,c,t)}}};e([o({constructOnly:!0})],u.prototype,`fieldsIndex`,void 0),e([o({constructOnly:!0})],u.prototype,`layer`,void 0),u=e([s(`esri.layers.support.TimeInformation`)],u);export{u as default};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arcgis/core",
|
|
3
|
-
"version": "5.2.0-next.
|
|
3
|
+
"version": "5.2.0-next.163",
|
|
4
4
|
"description": "ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ArcGIS",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@amcharts/amcharts5": "~5.20.8",
|
|
23
|
-
"@arcgis/toolkit": "5.2.0-next.
|
|
23
|
+
"@arcgis/toolkit": "5.2.0-next.163",
|
|
24
24
|
"@esri/arcgis-html-sanitizer": "~4.2.0-next.2",
|
|
25
25
|
"@esri/calcite-components": "^5.2.0",
|
|
26
26
|
"@vaadin/grid": "~25.3.2",
|
|
@@ -3,6 +3,7 @@ import type JoinTableDataSource from "./JoinTableDataSource.js";
|
|
|
3
3
|
import type QueryTableDataSource from "./QueryTableDataSource.js";
|
|
4
4
|
import type RasterDataSource from "./RasterDataSource.js";
|
|
5
5
|
import type TableDataSource from "./TableDataSource.js";
|
|
6
|
+
import type { ClonableMixin } from "../../core/Clonable.js";
|
|
6
7
|
import type { JSONSupport } from "../../core/JSONSupport.js";
|
|
7
8
|
import type { FieldProperties } from "../../layers/support/Field.js";
|
|
8
9
|
import type { TableDataSourceProperties } from "./TableDataSource.js";
|
|
@@ -84,7 +85,7 @@ export interface DynamicDataLayerProperties {
|
|
|
84
85
|
* ]
|
|
85
86
|
* });
|
|
86
87
|
*/
|
|
87
|
-
export default class DynamicDataLayer extends
|
|
88
|
+
export default class DynamicDataLayer extends DynamicDataLayerSuperclass {
|
|
88
89
|
constructor(properties?: DynamicDataLayerProperties);
|
|
89
90
|
/**
|
|
90
91
|
* A table,
|
|
@@ -112,4 +113,5 @@ export default class DynamicDataLayer extends JSONSupport {
|
|
|
112
113
|
* @since 5.0
|
|
113
114
|
*/
|
|
114
115
|
get type(): "data-layer";
|
|
115
|
-
}
|
|
116
|
+
}
|
|
117
|
+
declare const DynamicDataLayerSuperclass: typeof JSONSupport & typeof ClonableMixin
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{
|
|
2
|
+
import{__decorate as e}from"tslib";import{ClonableMixin as t}from"../../core/Clonable.js";import{JSONSupport as n}from"../../core/JSONSupport.js";import{property as r,subclass as i}from"../../core/accessorSupport/decorators.js";import{ensureType as a}from"../../core/accessorSupport/ensureType.js";import o from"../../layers/support/Field.js";import s from"./JoinTableDataSource.js";import c from"./QueryTableDataSource.js";import l from"./RasterDataSource.js";import u from"./TableDataSource.js";import{registerDynamicDataLayerClass as d}from"./utils.js";import{enumeration as f}from"../../core/accessorSupport/decorators/enumeration.js";const p={key:`type`,base:null,typeMap:{"join-table":s,"query-table":c,raster:l,table:u}};let m=class extends t(n){constructor(e){super(e),this.type=`data-layer`}toLayerSourceJSON(){return{source:this.toJSON()}}};e([f({dataLayer:`data-layer`}),r({json:{write:{isRequired:!0}}})],m.prototype,`type`,void 0),e([r({type:[o],json:{write:!0}})],m.prototype,`fields`,void 0),e([r({types:p,json:{write:!0}})],m.prototype,`dataSource`,void 0),m=e([i(`esri.rest.layerSources.DynamicDataLayer`)],m);const h=m;m.from=a(m),d(m);export{h as default};
|
|
@@ -50,7 +50,7 @@ export default class DynamicMapLayer extends JSONSupport {
|
|
|
50
50
|
*
|
|
51
51
|
* @since 5.0
|
|
52
52
|
*/
|
|
53
|
-
accessor gdbVersion: string;
|
|
53
|
+
accessor gdbVersion: string | null | undefined;
|
|
54
54
|
/**
|
|
55
55
|
* The [Sublayer.id](https://developers.arcgis.com/javascript/latest/references/core/layers/support/Sublayer/#id) of the service sublayer.
|
|
56
56
|
*
|