@arcgis/core 5.1.0-next.45 → 5.1.0-next.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/assets/esri/core/workers/RemoteClient.js +1 -1
  2. package/assets/esri/core/workers/chunks/{288bd32831e94e81653e.js → 08d76c600926d7642a8b.js} +1 -1
  3. package/assets/esri/core/workers/chunks/{54db91c0a3bd1946e026.js → 0d59f5cd3fdd7d6fd693.js} +1 -1
  4. package/assets/esri/core/workers/chunks/{288082ae7b19837a3d38.js → 20e715e3aeb1c3265901.js} +1 -1
  5. package/assets/esri/core/workers/chunks/{0155e5679ded9de5c327.js → 3a7c02616d942c81257d.js} +1 -1
  6. package/assets/esri/core/workers/chunks/3e9700445518b8f9ae1b.js +1 -0
  7. package/assets/esri/core/workers/chunks/{375eac59c9f88c7572db.js → 4b3545965b11a54184d4.js} +2 -2
  8. package/assets/esri/core/workers/chunks/{d3d024b3d2bb8fbbf760.js → 569e4479707bc6881d97.js} +1 -1
  9. package/assets/esri/core/workers/chunks/{8cafdd4addd366795600.js → 6c49ac7888679b9f7823.js} +1 -1
  10. package/assets/esri/core/workers/chunks/{ca88a364ef911526102e.js → 7b48c102a44606291f82.js} +1 -1
  11. package/assets/esri/core/workers/chunks/{1a3f874700f86b750390.js → 867c0cd99a005a3d8e08.js} +3 -3
  12. package/assets/esri/core/workers/chunks/{e5927f9d0e757ec4c22a.js → a422cfe1e2afe0722acd.js} +1 -1
  13. package/assets/esri/core/workers/chunks/{f6e3954ddbb5993d56df.js → b45fdc04d399d2849d63.js} +1 -1
  14. package/assets/esri/core/workers/chunks/{dbafe96ce37bb82d0584.js → b49b608c0d58a9b55fa2.js} +1 -1
  15. package/assets/esri/core/workers/chunks/b744b950999b92393e37.js +1 -0
  16. package/assets/esri/core/workers/chunks/cd491c37ba1ac381178c.js +1 -0
  17. package/assets/esri/core/workers/chunks/{b86cb84c03b76e824213.js → f9fe89ced41b49608667.js} +1 -1
  18. package/assets/esri/core/workers/chunks/{bf4d2f42d31861ea1046.js → ff75fb0fce51ac12e656.js} +1 -1
  19. package/chunks/GaussianSplat.glsl.js +2 -2
  20. package/chunks/HUDMaterial.glsl.js +1 -1
  21. package/chunks/LineCallout.glsl.js +1 -1
  22. package/chunks/OITBlend.glsl.js +2 -1
  23. package/chunks/PointRenderer.glsl.js +1 -1
  24. package/chunks/Terrain.glsl.js +4 -4
  25. package/config.js +1 -1
  26. package/kernel.js +1 -1
  27. package/layers/IntegratedMesh3DTilesLayer.d.ts +2 -1
  28. package/layers/IntegratedMesh3DTilesLayer.js +1 -1
  29. package/layers/Layer.d.ts +2 -1
  30. package/layers/ParquetLayer.d.ts +23 -1
  31. package/layers/knowledgeGraph/dataModelVisualizationUtils.js +1 -1
  32. package/layers/support/LayerContingentValuesCache.js +1 -1
  33. package/layers/support/arcgisLayers.js +1 -1
  34. package/layers/support/schemaValidator.js +1 -1
  35. package/libs/ajv/ajv.bundle-wrapper.js +2 -0
  36. package/package.json +3 -3
  37. package/renderers/visualVariables/SizeVariable.js +1 -1
  38. package/rest/locator/locationToAddress.js +1 -1
  39. package/rest/support/LocationToAddressParameters.d.ts +62 -2
  40. package/rest/support/types.d.ts +6 -0
  41. package/support/revision.js +1 -1
  42. package/views/2d/analysis/AreaMeasurement/AreaMeasurementTool.js +1 -1
  43. package/views/2d/engine/vectorTiles/Placement.js +1 -1
  44. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  45. package/views/3d/layers/I3SMeshView3D.js +1 -1
  46. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  47. package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
  48. package/views/3d/layers/i3s/Highlights.js +1 -1
  49. package/views/3d/terrain/OverlayRenderer.js +1 -1
  50. package/views/3d/terrain/TerrainRenderer.js +1 -1
  51. package/views/3d/terrain/TileCompositor.js +1 -1
  52. package/views/3d/webgl-engine/collections/Component/ComponentObject.js +1 -1
  53. package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
  54. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterialGlobalParameters.js +2 -0
  55. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterialRepository.js +1 -1
  56. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
  57. package/views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js +3 -3
  58. package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +1 -1
  59. package/views/3d/webgl-engine/effects/fog/Fog.js +1 -1
  60. package/views/3d/webgl-engine/effects/glow/GlowBlurTechniqueConfiguration.js +1 -1
  61. package/views/3d/webgl-engine/effects/glow/GlowCompositionTechniqueConfiguration.js +1 -1
  62. package/views/3d/webgl-engine/effects/glow/GlowRenderNode.js +1 -1
  63. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
  64. package/views/3d/webgl-engine/effects/transparency/OITBlend.js +1 -1
  65. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  66. package/views/3d/webgl-engine/lib/GaussianSplatRenderNode.js +1 -1
  67. package/views/3d/webgl-engine/lib/GridLocalOriginFactory.js +1 -1
  68. package/views/3d/webgl-engine/lib/MainFramebuffer.js +1 -1
  69. package/views/3d/webgl-engine/lib/Material.js +1 -1
  70. package/views/3d/webgl-engine/lib/RenderContext.js +1 -1
  71. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  72. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  73. package/views/3d/webgl-engine/shaders/GaussianSplat.glsl.js +1 -1
  74. package/views/3d/webgl-engine/shaders/GaussianSplatTechniqueConfiguration.js +1 -1
  75. package/views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js +1 -1
  76. package/views/webgl/InstanceCounter.js +1 -1
  77. package/webscene/support/schemaValidator.js +1 -1
  78. package/widgets/Editor/workflowUtils.js +1 -1
  79. package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
  80. package/widgets/Sketch/SketchViewModel.js +1 -1
  81. package/assets/esri/core/workers/chunks/385f1bb9164b2d488b2d.js +0 -1
  82. package/assets/esri/core/workers/chunks/73d7337ac9efdbad14a4.js +0 -1
  83. package/assets/esri/core/workers/chunks/fce8d4ff920baf8856e6.js +0 -1
  84. package/chunks/ajv.bundle.js +0 -2
  85. /package/assets/esri/core/workers/chunks/{375eac59c9f88c7572db.js.LICENSE.txt → 4b3545965b11a54184d4.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../request.js";import o from"../core/Error.js";import has from"../core/has.js";import r from"../core/Logger.js";import{MultiOriginJSONSupportMixin as i}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as s}from"../core/promiseUtils.js";import{on as a,sync as n}from"../core/reactiveUtils.js";import{property as l,subclass as p}from"../core/accessorSupport/decorators.js";import{persistable as m}from"../core/accessorSupport/decorators/persistable.js";import c from"../geometry/Extent.js";import d from"../geometry/SpatialReference.js";import u from"./Layer.js";import{APIKeyMixin as h}from"./mixins/APIKeyMixin.js";import{ArcGISService as f}from"./mixins/ArcGISService.js";import{CustomParametersMixin as y}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as g}from"./mixins/OperationalLayer.js";import{PortalLayer as S}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as _}from"./mixins/ScaleRangeLayer.js";import{elevationInfo as v,url as j}from"./support/commonProperties.js";import T from"./support/SceneModifications.js";import{default3DTilesSpatialReference as w,default3DTilesFullExtent as L,initFullExtent as b}from"./support/tiles3DUtils.js";import x from"../portal/Portal.js";import{logInvalidElevationInfoWarning as P,elevationModeRequiredMessage as I,featureExpressionUnsupportedMessage as k}from"../support/elevationInfoUtils.js";import{f as R}from"../chunks/persistableUrlUtils.js";import{isBasemap as D}from"../support/userTypeGuards/isBasemap.js";import{initialize as U,switchMeshModificationPolygonVCSSync as E}from"../views/3d/layers/Lyr3DWorker.js";import{toWasmModification as O,fromWasmModification as M}from"../views/3d/layers/SceneLayerWorkerHandle.js";import{reader as q}from"../core/accessorSupport/decorators/reader.js";let A=class extends(f(g(S(_(i(y(h(u)))))))){readModifications(e,t,o){this._modificationsSource={url:R(e,o),context:o}}initialize(){this.addHandles(a(()=>this.modifications,"after-changes",()=>this.modifications=this.modifications,n))}constructor(e){super(e),this.operationalLayerType="IntegratedMesh3DTilesLayer",this.modifications=null,this._modificationsSource=null,this.spatialReference=w,this.fullExtent=L,this.url=null,this.type="integrated-mesh-3dtiles",this.path=null,this.minScale=0,this.maxScale=0,this._rootTilesetJSON=null,this._rootTileset=null,this._key=null,this._session=null,this._rootRequestPromise=null,this.queryElevationCallback=null}set elevationInfo(e){null!=e&&"absolute-height"!==e.mode||this._set("elevationInfo",e),this._validateElevationInfo(e)}async load(e){return this.addResolvingPromise(this._doLoad(e)),this}get rootTilesetJSON(){return this._rootTilesetJSON}get rootTileset(){return this._rootTileset}get key(){return this._key}get session(){return this._session}_findSessionParameter(e){const t=[e];for(;t?.length>0;){const e=t.pop();if(!e)return;for(const[r,i]of Object.entries(e)){if("uri"===r)try{const e=new URL("https://tmp"+i).searchParams.get("session");if(e)return e}catch(o){}"object"==typeof i&&null!==i&&t.push(i)}}return null}async requestRootAndSession(e){const i=(e,t)=>new o("3dtiles-init:"+e,t);return this._rootRequestPromise||(this._rootRequestPromise=new Promise((o,a)=>{this.url||a(i("url-missing","Layer url missing")),this._key=this.customParameters?this.customParameters.key:null;new Promise((e,o)=>{if(this.replacesTerrain&&!this._key){const r=this.portalItem?.portal||this.parent?.portalItem?.portal||x.getDefault();r.signIn().then(()=>{r.g3dTilesEnabled?t(r.restUrl+"/portals/self/modules/g3dtiles",{responseType:"json",query:{f:"json"}}).then(t=>{this._key=t.data.keyString,e()},()=>o(i("g3dtiles-key-error","Error fetching Google 3D Tiles key from portal"))):o(i("g3dTilesEnabled-false","Google 3D Tiles are not enabled on Portal "+r.url))},()=>o(i("sign-in-failed","Error signing in to Portal")))}else e()}).then(()=>{t(this.url,{query:this._key?{key:this._key,token:this.apiKey}:{token:this.apiKey},responseType:"array-buffer",signal:e}).then(e=>{try{this._rootTilesetJSON=JSON.parse((new TextDecoder).decode(e.data))}catch(t){return void a(i("root-parse-failed","Error parsing root tile, details: "+t))}this._rootTilesetJSON?(this._session=this._findSessionParameter(this._rootTilesetJSON),this._rootTileset=e.data,this.fullExtent=b(this._rootTilesetJSON),o(),this._rootRequestPromise=null):a(i("root-is-null","Root tile is null."))},e=>{s(e),a(i("root-load-failed","Error loading root tile")),this._rootRequestPromise=null,r.getLogger("IntegratedMesh3DTilesLayer").error("Layer loading failed",e)})},e=>a(e))})),this._rootRequestPromise}async _doLoad(e){const t=null!=e?e.signal:null;if(this.isUsedAsGroundLayer&&!has("enable-feature:basemap-groundlayers"))throw new o("3dtiles-init:not-supported-in-groundlayers","Layer is not supported in basemap.");try{await this.loadFromPortal({supportedTypes:["3DTiles Service"],validateItem:e=>{if(e.typeKeywords?.includes("IntegratedMesh"))return!0;throw new o("portal:invalid-layer-item-type","Invalid layer item, expected '${expectedType}' ",{expectedType:"3DTiles Service containing IntegratedMesh"})}},e)}catch(i){s(i)}if(null!=this._modificationsSource){const t=await T.fromUrl(this._modificationsSource.url,this.spatialReference,e);if(t&&t.length>0){await U();try{const e=O(null,t.toArray(),this.spatialReference),o=E({modifications:e,inVCS:115700});o.success&&o.modifications&&M(o.modifications,t)}catch(a){r.getLogger(this).error("convert-mesh-modification-z-error","Error when converting:",a)}null!=this._modificationsSource&&this.setAtOrigin("modifications",t,this._modificationsSource.context.origin),this._modificationsSource=null}}await this.requestRootAndSession(t)}async beforeSave(){if(null==this._modificationsSource){const{modifications:e}=this;return void(e&&e.length>0&&await U())}await this.load().then(()=>{},()=>{})}get hasAttributionData(){return!1}_validateElevationInfo(e){const t="Integrated mesh 3d tiles layers";P(r.getLogger(this),I(t,"absolute-height",e)),P(r.getLogger(this),k(t,e))}get replacesTerrain(){return!!has("enable-feature:basemap-groundlayers")&&this.hasGoogleUrl&&this.isUsedAsGroundLayer}get isUsedAsGroundLayer(){return D(this.parent)}get hasGoogleUrl(){return!!this.url?.match(/.+\.googleapis.com/)}};e([l({type:["IntegratedMesh3DTilesLayer"]})],A.prototype,"operationalLayerType",void 0),e([l({type:T,clonable:e=>e.clone()}),m({origins:["web-scene","portal-item"],type:"resource",prefix:"modifications"})],A.prototype,"modifications",void 0),e([q(["web-scene","portal-item"],"modifications")],A.prototype,"readModifications",null),e([l({type:d})],A.prototype,"spatialReference",void 0),e([l({type:c})],A.prototype,"fullExtent",void 0),e([l(v)],A.prototype,"elevationInfo",null),e([l({type:["show","hide"]})],A.prototype,"listMode",void 0),e([l(j)],A.prototype,"url",void 0),e([l({readOnly:!0})],A.prototype,"type",void 0),e([l({type:String,json:{origins:{"web-scene":{read:!0,write:!0},"portal-item":{read:!0,write:!0}},read:!1}})],A.prototype,"path",void 0),e([l({type:Number,json:{name:"layerDefinition.minScale",write:!0,origins:{service:{read:!1,write:!1}}}})],A.prototype,"minScale",void 0),e([l({type:Number,json:{name:"layerDefinition.maxScale",write:!0,origins:{service:{read:!1,write:!1}}}})],A.prototype,"maxScale",void 0),e([l({readOnly:!0})],A.prototype,"hasAttributionData",null),e([l()],A.prototype,"replacesTerrain",null),e([l()],A.prototype,"isUsedAsGroundLayer",null),e([l()],A.prototype,"hasGoogleUrl",null),A=e([p("esri.layers.IntegratedMesh3DTilesLayer")],A);const G=A;export{G as default};
2
+ import{__decorate as e}from"tslib";import t from"../request.js";import{ClonableMixin as o}from"../core/Clonable.js";import r from"../core/Error.js";import has from"../core/has.js";import i from"../core/Logger.js";import{MultiOriginJSONSupportMixin as s}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as a}from"../core/promiseUtils.js";import{on as n,sync as l}from"../core/reactiveUtils.js";import{property as p,subclass as m}from"../core/accessorSupport/decorators.js";import{persistable as c}from"../core/accessorSupport/decorators/persistable.js";import d from"../geometry/Extent.js";import u from"../geometry/SpatialReference.js";import h from"./Layer.js";import{APIKeyMixin as f}from"./mixins/APIKeyMixin.js";import{ArcGISService as y}from"./mixins/ArcGISService.js";import{CustomParametersMixin as g}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as S}from"./mixins/OperationalLayer.js";import{PortalLayer as _}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as j}from"./mixins/ScaleRangeLayer.js";import{elevationInfo as v,url as T}from"./support/commonProperties.js";import w from"./support/SceneModifications.js";import{default3DTilesSpatialReference as b,default3DTilesFullExtent as L,initFullExtent as x}from"./support/tiles3DUtils.js";import P from"../portal/Portal.js";import{logInvalidElevationInfoWarning as I,elevationModeRequiredMessage as k,featureExpressionUnsupportedMessage as R}from"../support/elevationInfoUtils.js";import{f as D}from"../chunks/persistableUrlUtils.js";import{isBasemap as U}from"../support/userTypeGuards/isBasemap.js";import{initialize as E,switchMeshModificationPolygonVCSSync as O}from"../views/3d/layers/Lyr3DWorker.js";import{toWasmModification as M,fromWasmModification as q}from"../views/3d/layers/SceneLayerWorkerHandle.js";import{reader as A}from"../core/accessorSupport/decorators/reader.js";let G=class extends(y(S(_(j(s(g(f(o(h))))))))){readModifications(e,t,o){this._modificationsSource={url:D(e,o),context:o}}initialize(){this.addHandles(n(()=>this.modifications,"after-changes",()=>this.modifications=this.modifications,l))}constructor(e){super(e),this.operationalLayerType="IntegratedMesh3DTilesLayer",this.modifications=null,this._modificationsSource=null,this.spatialReference=b,this.fullExtent=L,this.url=null,this.type="integrated-mesh-3dtiles",this.path=null,this.minScale=0,this.maxScale=0,this._rootTilesetJSON=null,this._rootTileset=null,this._key=null,this._session=null,this._rootRequestPromise=null,this.queryElevationCallback=null}set elevationInfo(e){null!=e&&"absolute-height"!==e.mode||this._set("elevationInfo",e),this._validateElevationInfo(e)}async load(e){return this.addResolvingPromise(this._doLoad(e)),this}get rootTilesetJSON(){return this._rootTilesetJSON}get rootTileset(){return this._rootTileset}get key(){return this._key}get session(){return this._session}_findSessionParameter(e){const t=[e];for(;t?.length>0;){const e=t.pop();if(!e)return;for(const[r,i]of Object.entries(e)){if("uri"===r)try{const e=new URL("https://tmp"+i).searchParams.get("session");if(e)return e}catch(o){}"object"==typeof i&&null!==i&&t.push(i)}}return null}async requestRootAndSession(e){const o=(e,t)=>new r("3dtiles-init:"+e,t);return this._rootRequestPromise||(this._rootRequestPromise=new Promise((r,s)=>{this.url||s(o("url-missing","Layer url missing")),this._key=this.customParameters?this.customParameters.key:null;new Promise((e,r)=>{if(this.replacesTerrain&&!this._key){const i=this.portalItem?.portal||this.parent?.portalItem?.portal||P.getDefault();i.signIn().then(()=>{i.g3dTilesEnabled?t(i.restUrl+"/portals/self/modules/g3dtiles",{responseType:"json",query:{f:"json"}}).then(t=>{this._key=t.data.keyString,e()},()=>r(o("g3dtiles-key-error","Error fetching Google 3D Tiles key from portal"))):r(o("g3dTilesEnabled-false","Google 3D Tiles are not enabled on Portal "+i.url))},()=>r(o("sign-in-failed","Error signing in to Portal")))}else e()}).then(()=>{t(this.url,{query:this._key?{key:this._key,token:this.apiKey}:{token:this.apiKey},responseType:"array-buffer",signal:e}).then(e=>{try{this._rootTilesetJSON=JSON.parse((new TextDecoder).decode(e.data))}catch(t){return void s(o("root-parse-failed","Error parsing root tile, details: "+t))}this._rootTilesetJSON?(this._session=this._findSessionParameter(this._rootTilesetJSON),this._rootTileset=e.data,this.fullExtent=x(this._rootTilesetJSON),r(),this._rootRequestPromise=null):s(o("root-is-null","Root tile is null."))},e=>{a(e),s(o("root-load-failed","Error loading root tile")),this._rootRequestPromise=null,i.getLogger("IntegratedMesh3DTilesLayer").error("Layer loading failed",e)})},e=>s(e))})),this._rootRequestPromise}async _doLoad(e){const t=null!=e?e.signal:null;if(this.isUsedAsGroundLayer&&!has("enable-feature:basemap-groundlayers"))throw new r("3dtiles-init:not-supported-in-groundlayers","Layer is not supported in basemap.");try{await this.loadFromPortal({supportedTypes:["3DTiles Service"],validateItem:e=>{if(e.typeKeywords?.includes("IntegratedMesh"))return!0;throw new r("portal:invalid-layer-item-type","Invalid layer item, expected '${expectedType}' ",{expectedType:"3DTiles Service containing IntegratedMesh"})}},e)}catch(o){a(o)}if(null!=this._modificationsSource){const t=await w.fromUrl(this._modificationsSource.url,this.spatialReference,e);if(t&&t.length>0){await E();try{const e=M(null,t.toArray(),this.spatialReference),o=O({modifications:e,inVCS:115700});o.success&&o.modifications&&q(o.modifications,t)}catch(s){i.getLogger(this).error("convert-mesh-modification-z-error","Error when converting:",s)}null!=this._modificationsSource&&this.setAtOrigin("modifications",t,this._modificationsSource.context.origin),this._modificationsSource=null}}await this.requestRootAndSession(t)}async beforeSave(){if(null==this._modificationsSource){const{modifications:e}=this;return void(e&&e.length>0&&await E())}await this.load().then(()=>{},()=>{})}get hasAttributionData(){return!1}_validateElevationInfo(e){const t="Integrated mesh 3d tiles layers";I(i.getLogger(this),k(t,"absolute-height",e)),I(i.getLogger(this),R(t,e))}get replacesTerrain(){return!!has("enable-feature:basemap-groundlayers")&&this.hasGoogleUrl&&this.isUsedAsGroundLayer}get isUsedAsGroundLayer(){return U(this.parent)}get hasGoogleUrl(){return!!this.url?.match(/.+\.googleapis.com/)}};e([p({type:["IntegratedMesh3DTilesLayer"]})],G.prototype,"operationalLayerType",void 0),e([p({type:w,clonable:e=>e?.clone()??null}),c({origins:["web-scene","portal-item"],type:"resource",prefix:"modifications"})],G.prototype,"modifications",void 0),e([A(["web-scene","portal-item"],"modifications")],G.prototype,"readModifications",null),e([p({type:u})],G.prototype,"spatialReference",void 0),e([p({type:d})],G.prototype,"fullExtent",void 0),e([p(v)],G.prototype,"elevationInfo",null),e([p({type:["show","hide"]})],G.prototype,"listMode",void 0),e([p(T)],G.prototype,"url",void 0),e([p({readOnly:!0})],G.prototype,"type",void 0),e([p({type:String,json:{origins:{"web-scene":{read:!0,write:!0},"portal-item":{read:!0,write:!0}},read:!1}})],G.prototype,"path",void 0),e([p({type:Number,json:{name:"layerDefinition.minScale",write:!0,origins:{service:{read:!1,write:!1}}}})],G.prototype,"minScale",void 0),e([p({type:Number,json:{name:"layerDefinition.maxScale",write:!0,origins:{service:{read:!1,write:!1}}}})],G.prototype,"maxScale",void 0),e([p({readOnly:!0})],G.prototype,"hasAttributionData",null),e([p()],G.prototype,"replacesTerrain",null),e([p()],G.prototype,"isUsedAsGroundLayer",null),e([p()],G.prototype,"hasGoogleUrl",null),G=e([m("esri.layers.IntegratedMesh3DTilesLayer")],G);const N=G;export{N as default};
package/layers/Layer.d.ts CHANGED
@@ -170,7 +170,8 @@ export default abstract class Layer extends LayerSuperclass {
170
170
  /**
171
171
  * Creates a new layer instance from an ArcGIS Server URL. Depending on the URL, the returned layer type may be a [BuildingSceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/BuildingSceneLayer/),
172
172
  * [CatalogLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/), [ElevationLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ElevationLayer/), [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/), [GroupLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GroupLayer/), [ImageryLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/),
173
- * [ImageryTileLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryTileLayer/), [IntegratedMeshLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/IntegratedMeshLayer/), [KnowledgeGraphLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/KnowledgeGraphLayer/),
173
+ * [ImageryTileLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryTileLayer/), [IntegratedMesh3DTilesLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/IntegratedMesh3DTilesLayer/), [IntegratedMeshLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/IntegratedMeshLayer/),
174
+ * [GaussianSplatLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GaussianSplatLayer/), [KnowledgeGraphLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/KnowledgeGraphLayer/),
174
175
  * [MapImageLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/MapImageLayer/), [OrientedImageryLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/OrientedImageryLayer/), [PointCloudLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/PointCloudLayer/),
175
176
  * [SceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/SceneLayer/), [StreamLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/StreamLayer/), [SubtypeGroupLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/SubtypeGroupLayer/), [TileLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/TileLayer/), or [VideoLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/VideoLayer/).
176
177
  *
@@ -41,7 +41,7 @@ import type { SpatialReferenceProperties } from "../geometry/SpatialReference.js
41
41
  import type { ReadonlyArrayOrCollection } from "../core/Collection.js";
42
42
  import type { LayerProperties } from "./Layer.js";
43
43
 
44
- export interface ParquetLayerProperties extends LayerProperties, CustomParametersMixinProperties, OperationalLayerProperties, ScaleRangeLayerProperties, OrderedLayerProperties, BlendLayerProperties, FeatureEffectLayerProperties, FeatureReductionLayerProperties, Partial<Pick<ParquetLayer, "copyright" | "geometryType" | "labelsVisible" | "legendEnabled" | "outFields" | "popupEnabled">> {
44
+ export interface ParquetLayerProperties extends LayerProperties, CustomParametersMixinProperties, OperationalLayerProperties, ScaleRangeLayerProperties, OrderedLayerProperties, BlendLayerProperties, FeatureEffectLayerProperties, FeatureReductionLayerProperties, Partial<Pick<ParquetLayer, "copyright" | "definitionExpression" | "geometryType" | "labelsVisible" | "legendEnabled" | "outFields" | "popupEnabled">> {
45
45
  /**
46
46
  * An array of fields in the layer.
47
47
  *
@@ -288,6 +288,28 @@ export default class ParquetLayer extends ParquetLayerSuperclass {
288
288
  get capabilities(): FeatureLayerCapabilities | null | undefined;
289
289
  /** Copyright information for the layer. */
290
290
  accessor copyright: string | null | undefined;
291
+ /**
292
+ * The SQL where clause used to filter features on the client. Only the features that satisfy the definition
293
+ * expression are displayed in the map. Setting a definition expression is useful
294
+ * when the dataset is large and you don't want to bring all features to the client for analysis.
295
+ * Definition expressions may be set when a layer is constructed prior to it loading in the view or
296
+ * after it has been added to the map. If the definition expression is set after the layer has been added to the map, the view will
297
+ * automatically refresh itself to display the features that satisfy the new definition expression.
298
+ *
299
+ * @since 5.1
300
+ * @example
301
+ * // Set definition expression in constructor to only display water wells with Status = 'Constructed'
302
+ * const layer = new ParquetLayer({
303
+ * urls: [
304
+ * "https://jsapi.maps.arcgis.com/sharing/rest/content/items/6ab6f959c1684eb5a54db91644a89747/data",
305
+ * ],
306
+ * definitionExpression: "Status = 'Constructed'"
307
+ * });
308
+ * @example
309
+ * // Set the definition expression directly on layer instance after it has loaded
310
+ * layer.definitionExpression = "Status = 'Constructed'";
311
+ */
312
+ accessor definitionExpression: string | null | undefined;
291
313
  /**
292
314
  * An array of fields in the layer.
293
315
  *
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import e from"../../Graphic.js";import n from"../../WebLinkChart.js";import o from"../../core/Collection.js";import t from"../../core/Logger.js";import r from"../../geometry/Extent.js";import a from"../../geometry/Point.js";import i from"../../geometry/Polyline.js";import s from"../GraphicsLayer.js";import l from"../LinkChartLayer.js";import{loadRecordsIntoLocalCache as m}from"./supportUtils.js";import p from"../support/LabelClass.js";import y from"../support/LabelExpressionInfo.js";import d from"../../renderers/visualVariables/SizeVariable.js";import c from"../../renderers/visualVariables/support/SizeStop.js";import{executeQueryStreaming as f}from"../../rest/knowledgeGraphService.js";import u from"../../rest/knowledgeGraph/Entity.js";import w from"../../rest/knowledgeGraph/GraphQueryStreaming.js";import h from"../../rest/knowledgeGraph/Relationship.js";import g from"../../symbols/SimpleLineSymbol.js";import b from"../../symbols/SimpleMarkerSymbol.js";import T from"../../symbols/TextSymbol.js";import x from"../../views/LinkChartView.js";const j="ESRI__DM__ENTITY__",E="ESRI__DM__RELATIONSHIP__",S=e=>`${j}${e}`,v=(e,n,o)=>`${E}${n}--${e}--${o}`,I=async(e,n)=>{const o=e.dataModel.entityTypes.map(({name:e})=>`MATCH (n:${e}) RETURN "${S(e)}" as typename LIMIT 1`),r=[];for(const t of e.dataModel.relationshipTypes)for(const{originEntityType:e,destinationEntityType:n}of t.endPoints)r.push(`MATCH (n:${e})-[r:${t.name}]->(m:${n}) RETURN "${v(e,t.name,n)}" as typename LIMIT 1`);const a=new Set,i=o.concat(r).join(" UNION ALL ");let s=!1;try{const{resultRowsStream:o}=await f(e,new w({openCypherQuery:i}),{signal:n}),t=o.getReader();for(;;){const{done:e,value:n}=await t.read();if(e)break;for(const[o]of n)a.add(o)}}catch(l){n.aborted||t.getLogger("esri.layers.knowledgeGraph.dataModelVisualizationUtils.generateDataModelView").error("Failed to fetch entity and relationship counts for data model visualization:",l),s=!0}return s?null:a},L=e=>{const n=[],o={generateAllSublayers:!0,namedTypeDefinitions:new Map},t=[];return e.dataModel.entityTypes.forEach(e=>{n.push(new u({typeName:e.name,id:S(e.name),properties:e.properties.reduce((e,n)=>({...e,[n.name]:null}),{})})),o.namedTypeDefinitions.set(e.name,{useAllData:!1,members:new Map([[S(e.name),{id:S(e.name)}]])})}),e.dataModel.relationshipTypes.forEach(e=>{const r=new Map;o.namedTypeDefinitions.set(e.name,{useAllData:!1,members:r}),e.endPoints.length||t.push(e.name);for(const{originEntityType:o,destinationEntityType:t}of e.endPoints)n.push(new h({typeName:e.name,id:v(o,e.name,t),originId:S(o),destinationId:S(t),properties:e.properties.reduce((e,n)=>({...e,[n.name]:null}),{})})),r.set(v(o,e.name,t),{id:v(o,e.name,t)})}),{records:n,inclusionDefinition:o,unobservedRelationshipTypes:t}},M=(e,n)=>{const o=n?`\n var typeCount = {\n ${Array.from(n).map(e=>`${JSON.stringify(e)}: 1`).join(",\n")}\n };\n\n var countText = "";\n if (!HasKey(typeCount, $feature.ESRI__ID)) {\n countText = " (0)"; \n }\n\n return ${JSON.stringify(e.objectType.name)} + countText;\n `:`${JSON.stringify(e.objectType.name)}`;return"entity"===e.graphType?[new p({labelExpressionInfo:new y({expression:o}),labelPlacement:"above-center",symbol:new T({color:[255,255,255,255],font:{family:"arial-unicode-ms",size:10,weight:"bold"},haloColor:[0,0,0,255],haloSize:.7})})]:[new p({labelExpressionInfo:new y({expression:o}),labelPlacement:"above-along",repeatLabel:!1,symbol:new T({color:[80,80,80],haloColor:[255,255,255],haloSize:.7,font:{size:10,weight:"normal"},yoffset:"2px"}),deconflictionStrategy:"none"})]},$=e=>"entity"===e.graphType?[new d({valueExpression:"$view.scale",stops:[new c({size:30,value:0}),new c({size:6,value:1e3})]})]:[new d({valueExpression:"$view.scale",stops:[new c({size:20,value:0}),new c({size:8,value:1e3})]})],z=(n,o,t)=>{const l=5e-5,m=15e-5,p=8e-6,y=new s,d=new s({minScale:1e3,maxScale:0});let c=t.ymin;const f=t.xmin,u=f+m;for(const r of o){const o=n.layers.find(e=>e.objectType.name===r);c-=l;const t=("simple"===o?.renderer?.type?o.renderer.symbol?.clone():null)||new g({type:"simple-line",color:"gray",width:2}),s=new e({geometry:new i({paths:[[[f,c],[u,c]]]}),symbol:t});y.add(s);for(const n of[f,u]){const o=new e({geometry:new a({x:n,y:c}),symbol:new b({color:"white",outline:{color:"gray",width:1},size:6})});y.add(o)}const m=new e({geometry:new a({x:(f+u)/2,y:c+p}),symbol:new T({text:r+" (0)",color:[80,80,80],haloColor:[255,255,255],haloSize:.7,font:{size:10,weight:"normal"},yoffset:"2px"})});d.add(m)}return{graphicsLayers:[y,d],graphicsExtent:new r({xmin:f,xmax:u,ymin:c,ymax:t.ymin,spatialReference:t.spatialReference})}},C=({container:e,kg:t})=>{const r=new AbortController,{records:a,inclusionDefinition:i,unobservedRelationshipTypes:s}=L(t),p=I(t,r.signal);m(a,t.dataModel);const y=new l({title:"Data Model Visualization Layer",url:t.url,initializationInclusionModeDefinition:i,dataPreloadedInLocalCache:!0}),d=new n({layers:new o([y])}),c=new x({map:d,container:e}),f=new Promise((e,n)=>{c.when(()=>y.load().then(async()=>{if(y.layers.forEach(e=>{e.labelsVisible=!0,e.visible=!0,e.labelingInfo=M(e,null),p.then(n=>{n&&(e.labelingInfo=M(e,n))}),e.renderer&&"heatmap"!==e.renderer.type&&(e.renderer.visualVariables=$(e))}),d.diagramNodesExtent){let n=null;if(s.length>0){const{graphicsExtent:e,graphicsLayers:o}=z(y,s,d.diagramNodesExtent);d.addMany(o),n=e}const o=n?d.diagramNodesExtent.union(n):d.diagramNodesExtent;c.goTo(o.expand(1.4)).finally(()=>e())}},n),n)});return{_view:c,load:()=>f,destroy:()=>{c.destroy(),r.abort()}}};export{S as entityTypeToRecordId,C as generateDataModelView,L as generateRecordsForDataModelView,I as getExistingEntitiesAndRelationshipTriples,M as getLabellingInfoForLayer,z as getUnobservedRelationshipGraphics,$ as getVisualVariablesForLayer,v as relationshipTripleToRecordId};
2
+ import e from"../../Graphic.js";import n from"../../WebLinkChart.js";import o from"../../core/Collection.js";import t from"../../core/Logger.js";import r from"../../geometry/Extent.js";import a from"../../geometry/Point.js";import i from"../../geometry/Polyline.js";import s from"../GraphicsLayer.js";import l from"../LinkChartLayer.js";import{loadRecordsIntoLocalCache as m}from"./supportUtils.js";import p from"../support/LabelClass.js";import y from"../support/LabelExpressionInfo.js";import d from"../../renderers/visualVariables/SizeVariable.js";import c from"../../renderers/visualVariables/support/SizeStop.js";import{executeQueryStreaming as f}from"../../rest/knowledgeGraphService.js";import u from"../../rest/knowledgeGraph/Entity.js";import w from"../../rest/knowledgeGraph/GraphQueryStreaming.js";import h from"../../rest/knowledgeGraph/Relationship.js";import g from"../../symbols/SimpleLineSymbol.js";import b from"../../symbols/SimpleMarkerSymbol.js";import T from"../../symbols/TextSymbol.js";import x from"../../views/LinkChartView.js";const j="ESRI__DM__ENTITY__",E="ESRI__DM__RELATIONSHIP__",S=e=>`${j}${e}`,v=(e,n,o)=>`${E}${n}--${e}--${o}`,I=async(e,n)=>{const o=e.dataModel.entityTypes.map(({name:e})=>`MATCH (n:${e}) RETURN "${S(e)}" as typename LIMIT 1`),r=[];for(const t of e.dataModel.relationshipTypes)for(const{originEntityType:e,destinationEntityType:n}of t.endPoints)r.push(`MATCH (n:${e})-[r:${t.name}]->(m:${n}) RETURN "${v(e,t.name,n)}" as typename LIMIT 1`);const a=new Set,i=o.concat(r).join(" UNION ALL ");let s=!1;try{const{resultRowsStream:o}=await f(e,new w({openCypherQuery:i}),{signal:n}),t=o.getReader();for(;;){const{done:e,value:n}=await t.read();if(e)break;for(const[o]of n)a.add(o)}}catch(l){n.aborted||t.getLogger("esri.layers.knowledgeGraph.dataModelVisualizationUtils.generateDataModelView").error("Failed to fetch entity and relationship counts for data model visualization:",l),s=!0}return s?null:a},L=e=>{const n=[],o={generateAllSublayers:!0,namedTypeDefinitions:new Map},t=[];return e.dataModel.entityTypes.forEach(e=>{n.push(new u({typeName:e.name,id:S(e.name),properties:e.properties.reduce((e,n)=>({...e,[n.name]:null}),{})})),o.namedTypeDefinitions.set(e.name,{useAllData:!1,members:new Map([[S(e.name),{id:S(e.name)}]])})}),e.dataModel.relationshipTypes.forEach(e=>{const r=new Map;o.namedTypeDefinitions.set(e.name,{useAllData:!1,members:r}),e.endPoints.length||t.push(e.name);for(const{originEntityType:o,destinationEntityType:t}of e.endPoints)n.push(new h({typeName:e.name,id:v(o,e.name,t),originId:S(o),destinationId:S(t),properties:e.properties.reduce((e,n)=>({...e,[n.name]:null}),{})})),r.set(v(o,e.name,t),{id:v(o,e.name,t)})}),{records:n,inclusionDefinition:o,unobservedRelationshipTypes:t}},M=(e,n)=>{const o=n?`\n var typeCount = {\n ${Array.from(n).map(e=>`${JSON.stringify(e)}: 1`).join(",\n")}\n };\n\n var countText = "";\n if (!HasKey(typeCount, $feature.ESRI__ID)) {\n countText = " (0)";\n }\n\n return ${JSON.stringify(e.objectType.name)} + countText;\n `:`${JSON.stringify(e.objectType.name)}`;return"entity"===e.graphType?[new p({labelExpressionInfo:new y({expression:o}),labelPlacement:"above-center",symbol:new T({color:[255,255,255,255],font:{family:"arial-unicode-ms",size:10,weight:"bold"},haloColor:[0,0,0,255],haloSize:.7})})]:[new p({labelExpressionInfo:new y({expression:o}),labelPlacement:"above-along",repeatLabel:!1,symbol:new T({color:[80,80,80],haloColor:[255,255,255],haloSize:.7,font:{size:10,weight:"normal"},yoffset:"2px"}),deconflictionStrategy:"none"})]},$=e=>"entity"===e.graphType?[new d({valueExpression:"$view.scale",stops:[new c({size:30,value:0}),new c({size:6,value:1e3})]})]:[new d({valueExpression:"$view.scale",stops:[new c({size:20,value:0}),new c({size:8,value:1e3})]})],z=(n,o,t)=>{const l=5e-5,m=15e-5,p=8e-6,y=new s,d=new s({minScale:1e3,maxScale:0});let c=t.ymin;const f=t.xmin,u=f+m;for(const r of o){const o=n.layers.find(e=>e.objectType.name===r);c-=l;const t=("simple"===o?.renderer?.type?o.renderer.symbol?.clone():null)||new g({type:"simple-line",color:"gray",width:2}),s=new e({geometry:new i({paths:[[[f,c],[u,c]]]}),symbol:t});y.add(s);for(const n of[f,u]){const o=new e({geometry:new a({x:n,y:c}),symbol:new b({color:"white",outline:{color:"gray",width:1},size:6})});y.add(o)}const m=new e({geometry:new a({x:(f+u)/2,y:c+p}),symbol:new T({text:r+" (0)",color:[80,80,80],haloColor:[255,255,255],haloSize:.7,font:{size:10,weight:"normal"},yoffset:"2px"})});d.add(m)}return{graphicsLayers:[y,d],graphicsExtent:new r({xmin:f,xmax:u,ymin:c,ymax:t.ymin,spatialReference:t.spatialReference})}},C=({container:e,kg:t})=>{const r=new AbortController,{records:a,inclusionDefinition:i,unobservedRelationshipTypes:s}=L(t),p=I(t,r.signal);m(a,t.dataModel);const y=new l({title:"Data Model Visualization Layer",url:t.url,initializationInclusionModeDefinition:i,dataPreloadedInLocalCache:!0}),d=new n({layers:new o([y])}),c=new x({map:d,container:e}),f=new Promise((e,n)=>{c.when(()=>y.load().then(async()=>{if(y.layers.forEach(e=>{e.labelsVisible=!0,e.visible=!0,e.labelingInfo=M(e,null),p.then(n=>{n&&(e.labelingInfo=M(e,n))}),e.renderer&&"heatmap"!==e.renderer.type&&(e.renderer.visualVariables=$(e))}),d.diagramNodesExtent){let n=null;if(s.length>0){const{graphicsExtent:e,graphicsLayers:o}=z(y,s,d.diagramNodesExtent);d.addMany(o),n=e}const o=n?d.diagramNodesExtent.union(n):d.diagramNodesExtent;c.goTo(o.expand(1.4)).finally(()=>e())}},n),n)});return{_view:c,load:()=>f,destroy:()=>{c.destroy(),r.abort()}}};export{S as entityTypeToRecordId,C as generateDataModelView,L as generateRecordsForDataModelView,I as getExistingEntitiesAndRelationshipTriples,M as getLabellingInfoForLayer,z as getUnobservedRelationshipGraphics,$ as getVisualVariablesForLayer,v as relationshipTripleToRecordId};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../request.js";import{isSome as n}from"../../core/arrayUtils.js";import{JSONSupportMixin as i}from"../../core/JSONSupport.js";import{Loadable as s}from"../../core/Loadable.js";import{property as o,subclass as r}from"../../core/accessorSupport/decorators.js";import{parse as a}from"./arcgisLayerUrl.js";import l from"./Contingency.js";import u from"./ContingencyConstraintViolation.js";import c from"./ContingentValue.js";import p from"./ContingentValuesResult.js";import d from"./FieldGroup.js";import{isStringField as f,isDateField as y}from"./fieldUtils.js";import m from"./Subtype.js";import{getNormalizedFeatureTypeInfo as g}from"../../widgets/FeatureForm/featureFormUtils.js";var h;let V=h=class extends(i(s)){constructor(e){super(e),this.request=t,this.fieldGroups=null,this.fieldGroupDefinitions=null}initialize(){}get loaded(){return super.loaded}get subtypeFieldName(){return g(this.layer).typeFieldName}static async createLoadedLayerContingentValuesCache(e){await e.load();const t=e.sourceJSON;if(void 0===e.layerId)return null;const n=t?.hasContingentValuesDefinition;if(n)return new h({layer:e}).load();if(void 0===n){const t=a(e.url);if(null==t)return null;const n=t.url.path;if((await C(n)).supportsQueryDataElements){const t=e.layerId.toString(),i=await x(n,t);if(i){const t=i.map(t=>({name:t.name,isEditingRestrictive:t.isEditingRestrictive,fields:t.fieldNames.names.map(t=>e.fieldsIndex.normalizeFieldName(t))}));return new h({layer:e,fieldGroupDefinitions:t}).load()}}}return null}async load(e){const t=this.layer.load(e).then(()=>this._initializeContingentValues(this.fieldGroupDefinitions,e));return this.addResolvingPromise(t),this}validateContingencyConstraints(e,t){const n=Object.keys(e),i=[],s=[];for(const o of this.fieldGroups){const r=o.isEditingRestrictive?"error":"warning";if(t&&!o.fields.some(e=>t.includes(e)))continue;if(!o.fields.every(e=>n.includes(e))){s.push(new u({fieldGroup:o,type:r}));continue}let a=!1;const l=e[this.subtypeFieldName],c=o.contingencies.filter(e=>!(!e.isRetired&&e.subtype)||e.subtype.code===l);if(0!==c.length){for(const t of c){let n=!0;for(const i in t.values){const s=t.values[i];if("any"!==s.objectType)if("null"===s.objectType){if(null!=e[i]){n=!1;break}}else if("code"===s.objectType){if(e[i]!==s.codedValue.code){n=!1;break}}else if("range"===s.objectType){const t=e[i];if(t<s.minValue||t>s.maxValue){n=!1;break}}}if(n){a=!0;break}}a||i.push(new u({fieldGroup:o,type:r}))}}return{invalid:i,incomplete:s}}getContingentValues(e,t,n=!1){const i=e[this.subtypeFieldName],s=null!=i,o={};let r=[];const a=this.fieldGroups.filter(e=>e.fields.includes(t));r.push(new c({objectType:"any"}));for(const l of a){let a=[];const u=l.contingencies.filter(e=>!(e.isRetired||e.subtype&&s&&e.subtype.code!==i));let c=!1;const p={};for(const n of u){let i,s=!0;for(const o in n.values){const r=n.values[o];if(t!==o){if(void 0!==e[o]&&"any"!==r.objectType)if("null"===r.objectType)null!==e[o]&&(s=!1);else if("code"===r.objectType)e[o]!==r.codedValue.code&&(s=!1);else if("range"===r.objectType){const t=e[o];(t<r.minValue||t>r.maxValue)&&(s=!1)}}else i=r,c=c||"range"===r.objectType}if(i&&s){if("any"===i.objectType){a.length=0,a.push(i);break}const e=b(i);p[e]||a.push(i),p[e]=!0}}c&&(a=j(a)),o[l.name]=a,r=n?G(r,a):[]}return 1===a.length&&n&&(r=[]),new p({contingentValuesAllGroups:r,contingentValuesByFieldGroup:o})}async _initializeContingentValues(e,t){const n=e??await this._fetchFieldGroupDefs(t);if(0===n.length)return void(this.fieldGroups=[]);const i=await this._fetchContingentValues(n,t);this.fieldGroups=i}async _fetchFieldGroupDefs(e){if(void 0===this.layer.layerId)return[];const t=this.layer.sourceJSON,n=this.layer.layerId.toString(),i=a(this.layer.url).url.path;if(t?.hasContingentValuesDefinition){return(await v(i,n,e)).map(e=>({name:e.name,isEditingRestrictive:e.restrictive,fields:e.fields.map(e=>this.layer.fieldsIndex.normalizeFieldName(e))}))}return void 0!==t?.hasContingentValuesDefinition?[]:C(i,e).then(async t=>{if(t.supportsQueryDataElements){return(await x(i,n,e)).map(e=>({name:e.name,isEditingRestrictive:e.isEditingRestrictive,fields:e.fieldNames.names.map(e=>this.layer.fieldsIndex.normalizeFieldName(e))}))}return[]})}async _fetchContingentValues(e,t){if(void 0===this.layer.layerId)return[];const n=this.layer.sourceJSON,i=this.layer.layerId.toString(),s=a(this.layer.url).url.path;if(n?.hasContingentValuesDefinition){const n=await S(s,i,t);return this._constructFieldGroupsAGOL(e,n)}const o=await F(s,i,t);return this._constructFieldGroupsEnterprise(e,o)}_constructFieldGroupsAGOL(e,t){return e.map(e=>{const n=t.contingentValuesDefinition.fieldGroups.find(t=>t.name===e.name);if(n){let i=[];return i=t.contingentValuesDefinition.hasSubType?this._parseAGOLFieldGroupSubtype(e,t,n.subTypes):this._parseAGOLFieldGroup(e,t,n.contingentValues),new d({name:e.name,isEditingRestrictive:e.isEditingRestrictive,fields:e.fields,contingencies:i})}return null}).filter(n)}_parseAGOLFieldGroupSubtype(e,t,n){let i=[];return n?.forEach(n=>{const s=this._getSubtypeAGOL(n.name);i=i.concat(this._parseAGOLFieldGroup(e,t,n.contingentValues,s))}),i}_parseAGOLFieldGroup(e,t,n,i=null){const s=[];for(const o of n??[]){const n=this._parseAGOLContingency(o,e,t,i);s.push(n)}return s}_parseAGOLContingency(e,t,n,i){const s=e.id,o=!!e.retired&&1===e.retired,r={};for(let a=0,l=0;a<t.fields.length;a++){const s=t.fields[a],o=n.typeCodes[e.types[a]];if("Code"===o){let t=e.values[l];l++;const o=this._getDomain(i,s),a=this.layer.getField(s);if("string"===a?.type){const e=n.stringDicts.find(e=>e.domain===o?.name);e&&(t=e.entries[t])}const u=o?.codedValues.find(e=>e.code===t),p=new c({codedValue:u,objectType:"code"});r[s]=p}else if("Range"===o){const t=e.values[l];l++;const n=t.range[0],i=t.range[1],o=new c({minValue:n,maxValue:i,objectType:"range"});r[s]=o}else if("Any"===o){const e=new c({objectType:"any"});r[s]=e}else{const e=new c({objectType:"null"});r[s]=e}}return new l({id:s,isRetired:o,subtype:i,values:r})}_constructFieldGroupsEnterprise(e,t){const i=t.fieldGroups;return e.map(e=>{const n=i.find(t=>t.name===e.name);if(n){const i=n.contingencies.map(n=>{const i=n.id,s=n.isRetired||!1,o=this._getSubtypeEnterprise(n.subtypeCode),r={};for(let a=0;a<e.fields.length;a++){const i=e.fields[a];let s=n.values[a];if("number"==typeof s||"string"==typeof s){const e=this._getDomain(o,i),n=this.layer.getField(i);if(f(n))s=t.stringDictionary[s];else if(y(n)){const e=new Date(`${s}+00:00`);s=e.getTime()}const a=e?.codedValues.find(e=>e.code===s),l=new c({codedValue:a,objectType:"code"});r[i]=l}else if("object"==typeof s){const e=s.minValue,t=s.maxValue,n=new c({minValue:e,maxValue:t,objectType:"range"});r[i]=n}else if(s){const e=new c({objectType:"any"});r[i]=e}else{const e=new c({objectType:"null"});r[i]=e}}return new l({id:i,isRetired:s,subtype:o,values:r})});return new d({name:e.name,isEditingRestrictive:e.isEditingRestrictive,fields:e.fields,contingencies:i})}return null}).filter(n)}_getSubtypeEnterprise(e){const t=this.layer.sourceJSON;let n;if(t?.subtypes){const i=t.subtypes.find(t=>t.code===e);n=m.fromJSON(i)}return n||null}_getSubtypeAGOL(e){const t=this.layer.sourceJSON;let n;if(t?.subtypes){const i=t.subtypes.find(t=>t.name===e);n=m.fromJSON(i)}return n||null}_getDomain(e,t){const n=e?O(e,t):this.layer.getFieldDomain(t);return"inherited"===n?.type?this.layer.getFieldDomain(t):n}};function b(e){switch(e.objectType){case"any":return"@any@";case"null":return"@null@";case"code":return e.codedValue.name+e.codedValue.code.toString();case"range":return e.minValue.toString()+"-"+e.maxValue.toString()}}function j(e){let t,n;e.sort((e,t)=>"null"===e.objectType?-1:"null"===t.objectType?1:e.minValue-t.minValue);const i=[];for(const s of e)"null"!==s.objectType?null!=t&&null!=n?n<s.minValue?(i.push(new c({objectType:"range",minValue:t,maxValue:n})),t=s.minValue,n=s.maxValue):n<s.maxValue&&(n=s.maxValue):(t=s.minValue,n=s.maxValue):i.push(s);return i.push(new c({objectType:"range",minValue:t,maxValue:n})),i}function T(e,t){const n=[];let i,s=0;for(const o of e)for(;s<t.length;s++){const e=t[s];if("null"===o.objectType&&"null"===e.objectType)n.push(new c({objectType:"null"}));else{if("null"===o.objectType)break;if("null"===e.objectType)continue}if(o.maxValue<e.minValue)break;if(o.maxValue===e.minValue){n.push(new c({objectType:"range",minValue:o.maxValue,maxValue:e.minValue}));break}if(!(o.minValue>e.maxValue))if(o.minValue!==e.maxValue){if(i=o.minValue>e.minValue?o.minValue:e.minValue,o.maxValue<e.maxValue){n.push(new c({objectType:"range",minValue:i,maxValue:o.maxValue}));break}n.push(new c({objectType:"range",minValue:i,maxValue:e.maxValue}))}else n.push(new c({objectType:"range",minValue:o.minValue,maxValue:e.maxValue}))}return n}function w(e,t){const n=[];for(const i of e)t.some(e=>{if(i.objectType===e.objectType)switch(i.objectType){case"any":case"null":return!0;case"code":return i.codedValue.code===e.codedValue.code&&i.codedValue.name===e.codedValue.name}return!1})&&n.push(i);return n}function G(e,t){if(0===e.length||0===t.length)return[];if("any"===e[0].objectType)return t;if("any"===t[0].objectType)return e;const n="range"===e[0].objectType||"range"===e[1]?.objectType,i="range"===t[0].objectType||"range"===t[1]?.objectType;return n||i?T(e,t):w(e,t)}async function v(e,n,i){return t(`${e}/${n}/fieldgroups`,{responseType:"json",query:{f:"json"},...i}).then(e=>e.data.fieldGroups??[])}async function x(e,n,i){return t(`${e}/queryDataElements`,{responseType:"json",query:{layers:JSON.stringify([n]),f:"json"},...i}).then(e=>e.data.layerDataElements?.[0].dataElement.fieldGroups??[])}async function C(e,n){return t(e,{responseType:"json",query:{f:"json"},...n}).then(e=>e.data)}async function F(e,n,i){return t(`${e}/queryContingentValues`,{responseType:"json",query:{layers:JSON.stringify([n]),f:"json"},...i}).then(e=>e.data.contingentValueSets?.[0])}async function S(e,n,i){return t(`${e}/${n}/contingentValues`,{responseType:"json",query:{f:"json"},...i}).then(e=>e.data)}function O(e,t){const n=e.domains;if(n){const[e,i]=Object.entries(n).find(([e])=>e.trim().toLowerCase()===t.trim().toLowerCase())||[];return i||null}return null}e([o({constructOnly:!0})],V.prototype,"layer",void 0),e([o({constructOnly:!0})],V.prototype,"request",void 0),e([o({type:[d]})],V.prototype,"fieldGroups",void 0),e([o({constructOnly:!0})],V.prototype,"fieldGroupDefinitions",void 0),e([o()],V.prototype,"subtypeFieldName",null),V=h=e([r("esri.layers.support.LayerContingentValuesCache")],V);const D=V;export{D as default};
2
+ import{__decorate as e}from"tslib";import t from"../../request.js";import{isSome as n}from"../../core/arrayUtils.js";import{JSONSupportMixin as i}from"../../core/JSONSupport.js";import{Loadable as s}from"../../core/Loadable.js";import{property as o,subclass as r}from"../../core/accessorSupport/decorators.js";import{parse as a}from"./arcgisLayerUrl.js";import l from"./Contingency.js";import u from"./ContingencyConstraintViolation.js";import c from"./ContingentValue.js";import p from"./ContingentValuesResult.js";import d from"./FieldGroup.js";import{isStringField as f,isDateField as y}from"./fieldUtils.js";import m from"./Subtype.js";import{getNormalizedFeatureTypeInfo as g}from"../../widgets/FeatureForm/featureFormUtils.js";var h;let V=h=class extends(i(s)){constructor(e){super(e),this.request=t,this.fieldGroups=null,this.fieldGroupDefinitions=null}initialize(){}get loaded(){return super.loaded}get subtypeFieldName(){return g(this.layer).typeFieldName}static async createLoadedLayerContingentValuesCache(e,t){await e.load();const n=e.sourceJSON;if(void 0===e.layerId)return null;const i=n?.hasContingentValuesDefinition;if(i)return new h({layer:e}).load(t);if(void 0===i){const n=a(e.url);if(null==n)return null;const i=n.url.path;if((await C(i,t)).supportsQueryDataElements){const n=e.layerId.toString(),s=await x(i,n,t);if(s){const n=s.map(t=>({name:t.name,isEditingRestrictive:t.isEditingRestrictive,fields:t.fieldNames.names.map(t=>e.fieldsIndex.normalizeFieldName(t))}));return new h({layer:e,fieldGroupDefinitions:n}).load(t)}}}return null}async load(e){const t=this.layer.load(e).then(()=>this._initializeContingentValues(this.fieldGroupDefinitions,e));return this.addResolvingPromise(t),this}validateContingencyConstraints(e,t){const n=Object.keys(e),i=[],s=[];for(const o of this.fieldGroups){const r=o.isEditingRestrictive?"error":"warning";if(t&&!o.fields.some(e=>t.includes(e)))continue;if(!o.fields.every(e=>n.includes(e))){s.push(new u({fieldGroup:o,type:r}));continue}let a=!1;const l=e[this.subtypeFieldName],c=o.contingencies.filter(e=>!(!e.isRetired&&e.subtype)||e.subtype.code===l);if(0!==c.length){for(const t of c){let n=!0;for(const i in t.values){const s=t.values[i];if("any"!==s.objectType)if("null"===s.objectType){if(null!=e[i]){n=!1;break}}else if("code"===s.objectType){if(e[i]!==s.codedValue.code){n=!1;break}}else if("range"===s.objectType){const t=e[i];if(t<s.minValue||t>s.maxValue){n=!1;break}}}if(n){a=!0;break}}a||i.push(new u({fieldGroup:o,type:r}))}}return{invalid:i,incomplete:s}}getContingentValues(e,t,n=!1){const i=e[this.subtypeFieldName],s=null!=i,o={};let r=[];const a=this.fieldGroups.filter(e=>e.fields.includes(t));r.push(new c({objectType:"any"}));for(const l of a){let a=[];const u=l.contingencies.filter(e=>!(e.isRetired||e.subtype&&s&&e.subtype.code!==i));let c=!1;const p={};for(const n of u){let i,s=!0;for(const o in n.values){const r=n.values[o];if(t!==o){if(void 0!==e[o]&&"any"!==r.objectType)if("null"===r.objectType)null!==e[o]&&(s=!1);else if("code"===r.objectType)e[o]!==r.codedValue.code&&(s=!1);else if("range"===r.objectType){const t=e[o];(t<r.minValue||t>r.maxValue)&&(s=!1)}}else i=r,c=c||"range"===r.objectType}if(i&&s){if("any"===i.objectType){a.length=0,a.push(i);break}const e=b(i);p[e]||a.push(i),p[e]=!0}}c&&(a=j(a)),o[l.name]=a,r=n?G(r,a):[]}return 1===a.length&&n&&(r=[]),new p({contingentValuesAllGroups:r,contingentValuesByFieldGroup:o})}async _initializeContingentValues(e,t){const n=e??await this._fetchFieldGroupDefs(t);if(0===n.length)return void(this.fieldGroups=[]);const i=await this._fetchContingentValues(n,t);this.fieldGroups=i}async _fetchFieldGroupDefs(e){if(void 0===this.layer.layerId)return[];const t=this.layer.sourceJSON,n=this.layer.layerId.toString(),i=a(this.layer.url).url.path;if(t?.hasContingentValuesDefinition){return(await v(i,n,e)).map(e=>({name:e.name,isEditingRestrictive:e.restrictive,fields:e.fields.map(e=>this.layer.fieldsIndex.normalizeFieldName(e))}))}return void 0!==t?.hasContingentValuesDefinition?[]:C(i,e).then(async t=>{if(t.supportsQueryDataElements){return(await x(i,n,e)).map(e=>({name:e.name,isEditingRestrictive:e.isEditingRestrictive,fields:e.fieldNames.names.map(e=>this.layer.fieldsIndex.normalizeFieldName(e))}))}return[]})}async _fetchContingentValues(e,t){if(void 0===this.layer.layerId)return[];const n=this.layer.sourceJSON,i=this.layer.layerId.toString(),s=a(this.layer.url).url.path;if(n?.hasContingentValuesDefinition){const n=await S(s,i,t);return this._constructFieldGroupsAGOL(e,n)}const o=await F(s,i,t);return this._constructFieldGroupsEnterprise(e,o)}_constructFieldGroupsAGOL(e,t){return e.map(e=>{const n=t.contingentValuesDefinition.fieldGroups.find(t=>t.name===e.name);if(n){let i=[];return i=t.contingentValuesDefinition.hasSubType?this._parseAGOLFieldGroupSubtype(e,t,n.subTypes):this._parseAGOLFieldGroup(e,t,n.contingentValues),new d({name:e.name,isEditingRestrictive:e.isEditingRestrictive,fields:e.fields,contingencies:i})}return null}).filter(n)}_parseAGOLFieldGroupSubtype(e,t,n){let i=[];return n?.forEach(n=>{const s=this._getSubtypeAGOL(n.name);i=i.concat(this._parseAGOLFieldGroup(e,t,n.contingentValues,s))}),i}_parseAGOLFieldGroup(e,t,n,i=null){const s=[];for(const o of n??[]){const n=this._parseAGOLContingency(o,e,t,i);s.push(n)}return s}_parseAGOLContingency(e,t,n,i){const s=e.id,o=!!e.retired&&1===e.retired,r={};for(let a=0,l=0;a<t.fields.length;a++){const s=t.fields[a],o=n.typeCodes[e.types[a]];if("Code"===o){let t=e.values[l];l++;const o=this._getDomain(i,s),a=this.layer.getField(s);if("string"===a?.type){const e=n.stringDicts.find(e=>e.domain===o?.name);e&&(t=e.entries[t])}const u=o?.codedValues.find(e=>e.code===t),p=new c({codedValue:u,objectType:"code"});r[s]=p}else if("Range"===o){const t=e.values[l];l++;const n=t.range[0],i=t.range[1],o=new c({minValue:n,maxValue:i,objectType:"range"});r[s]=o}else if("Any"===o){const e=new c({objectType:"any"});r[s]=e}else{const e=new c({objectType:"null"});r[s]=e}}return new l({id:s,isRetired:o,subtype:i,values:r})}_constructFieldGroupsEnterprise(e,t){const i=t.fieldGroups;return e.map(e=>{const n=i.find(t=>t.name===e.name);if(n){const i=n.contingencies.map(n=>{const i=n.id,s=n.isRetired||!1,o=this._getSubtypeEnterprise(n.subtypeCode),r={};for(let a=0;a<e.fields.length;a++){const i=e.fields[a];let s=n.values[a];if("number"==typeof s||"string"==typeof s){const e=this._getDomain(o,i),n=this.layer.getField(i);if(f(n))s=t.stringDictionary[s];else if(y(n)){const e=new Date(`${s}+00:00`);s=e.getTime()}const a=e?.codedValues.find(e=>e.code===s),l=new c({codedValue:a,objectType:"code"});r[i]=l}else if("object"==typeof s){const e=s.minValue,t=s.maxValue,n=new c({minValue:e,maxValue:t,objectType:"range"});r[i]=n}else if(s){const e=new c({objectType:"any"});r[i]=e}else{const e=new c({objectType:"null"});r[i]=e}}return new l({id:i,isRetired:s,subtype:o,values:r})});return new d({name:e.name,isEditingRestrictive:e.isEditingRestrictive,fields:e.fields,contingencies:i})}return null}).filter(n)}_getSubtypeEnterprise(e){const t=this.layer.sourceJSON;let n;if(t?.subtypes){const i=t.subtypes.find(t=>t.code===e);n=m.fromJSON(i)}return n||null}_getSubtypeAGOL(e){const t=this.layer.sourceJSON;let n;if(t?.subtypes){const i=t.subtypes.find(t=>t.name===e);n=m.fromJSON(i)}return n||null}_getDomain(e,t){const n=e?O(e,t):this.layer.getFieldDomain(t);return"inherited"===n?.type?this.layer.getFieldDomain(t):n}};function b(e){switch(e.objectType){case"any":return"@any@";case"null":return"@null@";case"code":return e.codedValue.name+e.codedValue.code.toString();case"range":return e.minValue.toString()+"-"+e.maxValue.toString()}}function j(e){let t,n;e.sort((e,t)=>"null"===e.objectType?-1:"null"===t.objectType?1:e.minValue-t.minValue);const i=[];for(const s of e)"null"!==s.objectType?null!=t&&null!=n?n<s.minValue?(i.push(new c({objectType:"range",minValue:t,maxValue:n})),t=s.minValue,n=s.maxValue):n<s.maxValue&&(n=s.maxValue):(t=s.minValue,n=s.maxValue):i.push(s);return i.push(new c({objectType:"range",minValue:t,maxValue:n})),i}function T(e,t){const n=[];let i,s=0;for(const o of e)for(;s<t.length;s++){const e=t[s];if("null"===o.objectType&&"null"===e.objectType)n.push(new c({objectType:"null"}));else{if("null"===o.objectType)break;if("null"===e.objectType)continue}if(o.maxValue<e.minValue)break;if(o.maxValue===e.minValue){n.push(new c({objectType:"range",minValue:o.maxValue,maxValue:e.minValue}));break}if(!(o.minValue>e.maxValue))if(o.minValue!==e.maxValue){if(i=o.minValue>e.minValue?o.minValue:e.minValue,o.maxValue<e.maxValue){n.push(new c({objectType:"range",minValue:i,maxValue:o.maxValue}));break}n.push(new c({objectType:"range",minValue:i,maxValue:e.maxValue}))}else n.push(new c({objectType:"range",minValue:o.minValue,maxValue:e.maxValue}))}return n}function w(e,t){const n=[];for(const i of e)t.some(e=>{if(i.objectType===e.objectType)switch(i.objectType){case"any":case"null":return!0;case"code":return i.codedValue.code===e.codedValue.code&&i.codedValue.name===e.codedValue.name}return!1})&&n.push(i);return n}function G(e,t){if(0===e.length||0===t.length)return[];if("any"===e[0].objectType)return t;if("any"===t[0].objectType)return e;const n="range"===e[0].objectType||"range"===e[1]?.objectType,i="range"===t[0].objectType||"range"===t[1]?.objectType;return n||i?T(e,t):w(e,t)}async function v(e,n,i){return t(`${e}/${n}/fieldgroups`,{responseType:"json",query:{f:"json"},...i}).then(e=>e.data.fieldGroups??[])}async function x(e,n,i){return t(`${e}/queryDataElements`,{responseType:"json",query:{layers:JSON.stringify([n]),f:"json"},...i}).then(e=>e.data.layerDataElements?.[0].dataElement.fieldGroups??[])}async function C(e,n){return t(e,{responseType:"json",query:{f:"json"},...n}).then(e=>e.data)}async function F(e,n,i){return t(`${e}/queryContingentValues`,{responseType:"json",query:{layers:JSON.stringify([n]),f:"json"},...i}).then(e=>e.data.contingentValueSets?.[0])}async function S(e,n,i){return t(`${e}/${n}/contingentValues`,{responseType:"json",query:{f:"json"},...i}).then(e=>e.data)}function O(e,t){const n=e.domains;if(n){const[e,i]=Object.entries(n).find(([e])=>e.trim().toLowerCase()===t.trim().toLowerCase())||[];return i||null}return null}e([o({constructOnly:!0})],V.prototype,"layer",void 0),e([o({constructOnly:!0})],V.prototype,"request",void 0),e([o({type:[d]})],V.prototype,"fieldGroups",void 0),e([o({constructOnly:!0})],V.prototype,"fieldGroupDefinitions",void 0),e([o()],V.prototype,"subtypeFieldName",null),V=h=e([r("esri.layers.support.LayerContingentValuesCache")],V);const D=V;export{D as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import e from"../../core/Error.js";import{urlToObject as r,getFilename as a}from"../../core/urlUtils.js";import{parse as t,parseNonStandardSublayerUrl as s}from"./arcgisLayerUrl.js";import{findAssociatedFeatureService as l}from"./associatedFeatureServiceUtils.js";import{getLayerModuleType as o,fetchFeatureService as n}from"./fetchService.js";import{getPreferredUrl as c,sceneServiceLayerTypeToClassName as i}from"./layerUtils.js";import{layerLookupMap as u}from"./lazyLayerLoader.js";import{requestServiceJSON as y}from"../../request/serviceJSON.js";const f={FeatureLayer:!0,SceneLayer:!0,VideoLayer:!0};async function p(e){const{properties:r,url:a}=e,t={...r,url:a},s=await w(a,r?.customParameters),{Constructor:l,layerId:o,sourceJSON:n,parsedUrl:c,layers:i,tables:u}=s;if(i.length+u.length===0)return null!=o&&(t.layerId=o),null!=n&&(t.sourceJSON=n),new l(t);const y=new(0,(await import("../GroupLayer.js")).default)({title:c.title});return await v(y,s,t),y}function m(e,r){return e?e.find(({id:e})=>e===r):null}function d(e,r,a,t,s){const l={...s,layerId:r};return null!=e&&(l.url=e),null!=a&&(l.sourceJSON=a),"sublayerTitleMode"in t.prototype&&(l.sublayerTitleMode="service-name"),new t(l)}async function v(e,r,a){const t=r.sublayerConstructorProvider;for(const{id:s,serverUrl:l}of r.layers){const o=m(r.sublayerInfos,s),n=d(l,s,o,(o&&t?.(o))??r.Constructor,a);e.add(n)}if(r.tables.length){const t=await L("FeatureLayer");r.tables.forEach(({id:s,serverUrl:l})=>{const o=d(l,s,m(r.tableInfos,s),t,a);e.tables.add(o)})}}async function w(r,a){let s=t(r);if(null==s&&(s=await S(r,a)),null==s)throw new e("arcgis-layers:url-mismatch","The url '${url}' is not a valid arcgis resource",{url:r});const{serverType:l,sublayer:n}=s;let u;const p={FeatureServer:"FeatureLayer",KnowledgeGraphServer:"KnowledgeGraphLayer",StreamServer:"StreamLayer",VectorTileServer:"VectorTileLayer",VideoServer:"VideoLayer"},m="FeatureServer"===l,d="SceneServer"===l,v={parsedUrl:s,Constructor:null,layerId:m||d?n??void 0:void 0,layers:[],tables:[]};switch(l){case"MapServer":if(null!=n){const{type:t}=await y(r,{customParameters:a});switch(u="FeatureLayer",t){case"Catalog Layer":u="CatalogLayer";break;case"Catalog Dynamic Group Layer":throw new e("arcgis-layers:unsupported",`fromUrl() not supported for "${t}" layers`)}}else{u=await g(r,a)?"TileLayer":"MapImageLayer"}break;case"ImageServer":{const e=await y(r,{customParameters:a}),{tileInfo:t,cacheType:s}=e;u=t?"LERC"!==t?.format?.toUpperCase()||s&&"elevation"!==s.toLowerCase()?"ImageryTileLayer":"ElevationLayer":"ImageryLayer";break}case"SceneServer":{const e=await y(s.url.path,{customParameters:a});if(u="SceneLayer",e){const r=e?.layers;if("Voxel"===e?.layerType)u="VoxelLayer";else if(r?.length){const e=r[0]?.layerType;null!=e&&null!=i[e]&&(u=i[e])}}break}case"3DTilesServer":throw new e("arcgis-layers:unsupported","fromUrl() not supported for 3DTiles layers");case"FeatureServer":if(u="FeatureLayer",null!=n){const e=await y(r,{customParameters:a});v.sourceJSON=e,v.preferredUrl=c(),u=o(e.type)}break;default:u=p[l]}if(f[u]&&null==n){const e=await h(r,l,a);m&&(v.preferredUrl=e.preferredUrl,v.sublayerInfos=e.layerInfos,v.tableInfos=e.tableInfos);if(1!==e.layers.length+e.tables.length)v.layers=e.layers,v.tables=e.tables,m&&e.layerInfos?.length&&(v.sublayerConstructorProvider=await P(e.layerInfos));else if(m||d){const r=e.layerInfos?.[0]??e.tableInfos?.[0];if(v.layerId=e.layers[0]?.id??e.tables[0]?.id,v.sourceJSON=r,m){const e=r?.type;u=o(e)}}}return v.Constructor=await L(u),v}async function S(e,t){const l=await y(e,{customParameters:t});let o=null,n=null;const c=l.type;if("Feature Layer"===c||"Table"===c?(o="FeatureServer",n=l.id??null):"indexedVector"===c?o="VectorTileServer":l.hasOwnProperty("mapName")?o="MapServer":l.hasOwnProperty("bandCount")&&l.hasOwnProperty("pixelSizeX")?o="ImageServer":l.hasOwnProperty("maxRecordCount")&&l.hasOwnProperty("allowGeometryUpdates")?o="FeatureServer":l.hasOwnProperty("streamUrls")?o="StreamServer":b(l)?(o="SceneServer",n=l.id):l.hasOwnProperty("layers")&&b(l.layers?.[0])&&(o="SceneServer"),!o)return null;const i=null!=n?s(e):null;return{title:null!=i&&l.name||a(e),serverType:o,sublayer:n,url:{path:null!=i?i.serviceUrl:r(e).path}}}function b(e){return null!=e&&e.hasOwnProperty("store")&&e.hasOwnProperty("id")&&"number"==typeof e.id}async function h(e,r,a){let t,s,l,o=!1;switch(r){case"FeatureServer":{const r=await n(e,{customParameters:a});l=c(e,{preferredHost:r.preferredHost}),o=!!r.layersJSON,t=r.layersJSON||r.serviceJSON;break}case"SceneServer":{const r=await I(e,a);t=r.serviceInfo,s=r.tableServerUrl;break}default:t=await y(e,{customParameters:a})}const i=t?.layers,u=t?.tables;return{preferredUrl:l,layers:i?.map(e=>({id:e.id})).reverse()||[],tables:u?.map(e=>({serverUrl:s,id:e.id})).reverse()||[],layerInfos:o?i:[],tableInfos:o?u:[]}}async function I(e,r){const a=await y(e,{customParameters:r}),t=a.layers?.[0];if(!t)return{serviceInfo:a};try{const{serverUrl:t}=await l(e),s=await y(t,{customParameters:r}).catch(()=>null);return s&&(a.tables=s.tables),{serviceInfo:a,tableServerUrl:t}}catch{return{serviceInfo:a}}}async function L(e){return(0,u[e])()}async function g(e,r){return(await y(e,{customParameters:r})).tileInfo}async function P(e){if(!e.length)return;const r=new Set,a=[];for(const{type:l}of e)r.has(l)||(r.add(l),a.push(L(o(l))));const t=await Promise.all(a),s=new Map;return Array.from(r).forEach((e,r)=>{s.set(e,t[r])}),e=>s.get(e.type)}export{p as fromUrl};
2
+ import e from"../../core/Error.js";import{urlToObject as r,getFilename as a}from"../../core/urlUtils.js";import{parse as t,parseNonStandardSublayerUrl as s}from"./arcgisLayerUrl.js";import{findAssociatedFeatureService as n}from"./associatedFeatureServiceUtils.js";import{getLayerModuleType as l,fetchFeatureService as o}from"./fetchService.js";import{getPreferredUrl as i,sceneServiceLayerTypeToClassName as c}from"./layerUtils.js";import{layerLookupMap as u}from"./lazyLayerLoader.js";import{requestServiceJSON as y}from"../../request/serviceJSON.js";const f="KHR_gaussian_splatting",p={FeatureLayer:!0,SceneLayer:!0,VideoLayer:!0};async function m(e){const{properties:r,url:a}=e,t={...r,url:a},s=await S(a,r?.customParameters),{Constructor:n,layerId:l,sourceJSON:o,parsedUrl:i,layers:c,tables:u}=s;if(c.length+u.length===0)return null!=l&&(t.layerId=l),null!=o&&(t.sourceJSON=o),new n(t);const y=new(0,(await import("../GroupLayer.js")).default)({title:i.title});return await w(y,s,t),y}function d(e,r){return e?e.find(({id:e})=>e===r):null}function v(e,r,a,t,s){const n={...s,layerId:r};return null!=e&&(n.url=e),null!=a&&(n.sourceJSON=a),"sublayerTitleMode"in t.prototype&&(n.sublayerTitleMode="service-name"),new t(n)}async function w(e,r,a){const t=r.sublayerConstructorProvider;for(const{id:s,serverUrl:n}of r.layers){const l=d(r.sublayerInfos,s),o=v(n,s,l,(l&&t?.(l))??r.Constructor,a);e.add(o)}if(r.tables.length){const t=await g("FeatureLayer");r.tables.forEach(({id:s,serverUrl:n})=>{const l=v(n,s,d(r.tableInfos,s),t,a);e.tables.add(l)})}}async function S(r,a){let s=t(r);if(null==s&&(s=await b(r,a)),null==s)throw new e("arcgis-layers:url-mismatch","The url '${url}' is not a valid arcgis resource",{url:r});const{serverType:n,sublayer:o}=s;let u;const f={FeatureServer:"FeatureLayer",KnowledgeGraphServer:"KnowledgeGraphLayer",StreamServer:"StreamLayer",VectorTileServer:"VectorTileLayer",VideoServer:"VideoLayer"},m="FeatureServer"===n,d="SceneServer"===n,v={parsedUrl:s,Constructor:null,layerId:m||d?o??void 0:void 0,layers:[],tables:[]};switch(n){case"MapServer":if(null!=o){const{type:t}=await y(r,{customParameters:a});switch(u="FeatureLayer",t){case"Catalog Layer":u="CatalogLayer";break;case"Catalog Dynamic Group Layer":throw new e("arcgis-layers:unsupported",`fromUrl() not supported for "${t}" layers`)}}else{u=await P(r,a)?"TileLayer":"MapImageLayer"}break;case"ImageServer":{const e=await y(r,{customParameters:a}),{tileInfo:t,cacheType:s}=e;u=t?"LERC"!==t?.format?.toUpperCase()||s&&"elevation"!==s.toLowerCase()?"ImageryTileLayer":"ElevationLayer":"ImageryLayer";break}case"SceneServer":{const e=await y(s.url.path,{customParameters:a});if(u="SceneLayer",e){const r=e?.layers;if("Voxel"===e?.layerType)u="VoxelLayer";else if(r?.length){const e=r[0]?.layerType;null!=e&&null!=c[e]&&(u=c[e])}}break}case"3DTilesServer":u=await U(r,a)?"GaussianSplatLayer":"IntegratedMesh3DTilesLayer";break;case"FeatureServer":if(u="FeatureLayer",null!=o){const e=await y(r,{customParameters:a});v.sourceJSON=e,v.preferredUrl=i(),u=l(e.type)}break;default:u=f[n]}if(p[u]&&null==o){const e=await L(r,n,a);m&&(v.preferredUrl=e.preferredUrl,v.sublayerInfos=e.layerInfos,v.tableInfos=e.tableInfos);if(1!==e.layers.length+e.tables.length)v.layers=e.layers,v.tables=e.tables,m&&e.layerInfos?.length&&(v.sublayerConstructorProvider=await O(e.layerInfos));else if(m||d){const r=e.layerInfos?.[0]??e.tableInfos?.[0];if(v.layerId=e.layers[0]?.id??e.tables[0]?.id,v.sourceJSON=r,m){const e=r?.type;u=l(e)}}}return v.Constructor=await g(u),v}async function b(e,t){const n=await y(e,{customParameters:t});let l=null,o=null;const i=n.type;if("Feature Layer"===i||"Table"===i?(l="FeatureServer",o=n.id??null):"indexedVector"===i?l="VectorTileServer":n.hasOwnProperty("mapName")?l="MapServer":n.hasOwnProperty("bandCount")&&n.hasOwnProperty("pixelSizeX")?l="ImageServer":n.hasOwnProperty("maxRecordCount")&&n.hasOwnProperty("allowGeometryUpdates")?l="FeatureServer":n.hasOwnProperty("streamUrls")?l="StreamServer":h(n)?(l="SceneServer",o=n.id):n.hasOwnProperty("layers")&&h(n.layers?.[0])&&(l="SceneServer"),!l)return null;const c=null!=o?s(e):null;return{title:null!=c&&n.name||a(e),serverType:l,sublayer:o,url:{path:null!=c?c.serviceUrl:r(e).path}}}function h(e){return null!=e&&e.hasOwnProperty("store")&&e.hasOwnProperty("id")&&"number"==typeof e.id}async function L(e,r,a){let t,s,n,l=!1;switch(r){case"FeatureServer":{const r=await o(e,{customParameters:a});n=i(e,{preferredHost:r.preferredHost}),l=!!r.layersJSON,t=r.layersJSON||r.serviceJSON;break}case"SceneServer":{const r=await I(e,a);t=r.serviceInfo,s=r.tableServerUrl;break}default:t=await y(e,{customParameters:a})}const c=t?.layers,u=t?.tables;return{preferredUrl:n,layers:c?.map(e=>({id:e.id})).reverse()||[],tables:u?.map(e=>({serverUrl:s,id:e.id})).reverse()||[],layerInfos:l?c:[],tableInfos:l?u:[]}}async function I(e,r){const a=await y(e,{customParameters:r}),t=a.layers?.[0];if(!t)return{serviceInfo:a};try{const{serverUrl:t}=await n(e),s=await y(t,{customParameters:r}).catch(()=>null);return s&&(a.tables=s.tables),{serviceInfo:a,tableServerUrl:t}}catch{return{serviceInfo:a}}}async function g(e){return(0,u[e])()}async function P(e,r){return(await y(e,{customParameters:r})).tileInfo}async function U(e,r){const a=await y(e,{customParameters:r}),t=a.extensions?.["3DTILES_content_gltf"];return!0===t?.extensionsRequired?.includes(f)}async function O(e){if(!e.length)return;const r=new Set,a=[];for(const{type:n}of e)r.has(n)||(r.add(n),a.push(g(l(n))));const t=await Promise.all(a),s=new Map;return Array.from(r).forEach((e,r)=>{s.set(e,t[r])}),e=>s.get(e.type)}export{m as fromUrl};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import e from"../../core/Error.js";import{A as r}from"../../chunks/ajv.bundle.js";import{json as t}from"../../portal/schemas/buildingSceneLayerItem.js";import{json as s}from"../../portal/schemas/integratedMesh3DTilesLayerItem.js";import{json as a}from"../../portal/schemas/integratedMeshLayerItem.js";import{json as o}from"../../portal/schemas/pointCloudLayerItem.js";import{json as n}from"../../portal/schemas/sceneLayerItem.js";import{convertAjvErrors as i}from"../../support/validationUtilsAjv.js";const m=new r({allErrors:!0,extendRefs:!0});function l(e,r){return m.validate(c(r),e),i(m.errors||[])}function c(r){switch(r){case"building-scene":return t;case"integrated-mesh":return a;case"integrated-mesh-3dtiles":return s;case"point-cloud":return o;case"scene":return n;default:throw new e("portalitemlayertype:unknown","Can not validate against unknown PortalItemLayerType.")}}export{l as validate};
2
+ import e from"../../core/Error.js";import r from"../../libs/ajv/ajv.bundle-wrapper.js";import{json as t}from"../../portal/schemas/buildingSceneLayerItem.js";import{json as s}from"../../portal/schemas/integratedMesh3DTilesLayerItem.js";import{json as a}from"../../portal/schemas/integratedMeshLayerItem.js";import{json as o}from"../../portal/schemas/pointCloudLayerItem.js";import{json as n}from"../../portal/schemas/sceneLayerItem.js";import{convertAjvErrors as i}from"../../support/validationUtilsAjv.js";const m=new r({allErrors:!0,extendRefs:!0});function l(e,r){return m.validate(p(r),e),i(m.errors||[])}function p(r){switch(r){case"building-scene":return t;case"integrated-mesh":return a;case"integrated-mesh-3dtiles":return s;case"point-cloud":return o;case"scene":return n;default:throw new e("portalitemlayertype:unknown","Can not validate against unknown PortalItemLayerType.")}}export{l as validate};