@arcgis/core 5.1.0-next.100 → 5.1.0-next.101

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 (81) hide show
  1. package/assets/esri/core/workers/RemoteClient.js +1 -1
  2. package/assets/esri/core/workers/chunks/{d345030a89914348d3c5.js → 00a25dd4b057cc9f2a7e.js} +1 -1
  3. package/assets/esri/core/workers/chunks/0d81409721d29d8bc276.js +1 -0
  4. package/assets/esri/core/workers/chunks/{6881ae969b48bd04f064.js → 156efa014b6edd9ccce9.js} +1 -1
  5. package/assets/esri/core/workers/chunks/{2b2e5628d08d0e3108d2.js → 17de1c251242b692cf45.js} +1 -1
  6. package/assets/esri/core/workers/chunks/{2ad7c221ad317706387a.js → 22fa4aa2b76573bafe21.js} +1 -1
  7. package/assets/esri/core/workers/chunks/{40137b23d8ad4af7ff9c.js → 3996149146dd1eca7cc5.js} +1 -1
  8. package/assets/esri/core/workers/chunks/{fff4b9e43464ebb3fb4e.js → 40ffb1aa17cbfae17b23.js} +1 -1
  9. package/assets/esri/core/workers/chunks/{b8d10d8db44c7c6acebe.js → 48a0e7a32ebd44045c8f.js} +1 -1
  10. package/assets/esri/core/workers/chunks/{e7637d6a8ce0af46843c.js → 53bf9b0c2b8da12820ea.js} +2 -2
  11. package/assets/esri/core/workers/chunks/{0253292939b981134663.js → 5b07f3253403fe25ce5b.js} +1 -1
  12. package/assets/esri/core/workers/chunks/5dafd35801dca4229aed.js +1 -0
  13. package/assets/esri/core/workers/chunks/{df232b8aa77f7e3285e3.js → 657268b3fde6da2dd735.js} +1 -1
  14. package/assets/esri/core/workers/chunks/{889a0405e3cdfa59b8e7.js → 7bb17d0ab1cc2b89c035.js} +1 -1
  15. package/assets/esri/core/workers/chunks/{b6b6f190687813267d77.js → 7db09c5bf024242becfa.js} +1 -1
  16. package/assets/esri/core/workers/chunks/{07ddf1b1f7602063ceb0.js → 8f9117d589de7caaa02d.js} +1 -1
  17. package/assets/esri/core/workers/chunks/{9478a0478fb49a88685e.js → 99f726f05cf80b0330ed.js} +1 -1
  18. package/assets/esri/core/workers/chunks/{490e4a648cb2ab3e7956.js → a318cf6bb900e0ee268c.js} +1 -1
  19. package/assets/esri/core/workers/chunks/{7a20941913d0115cfe26.js → a58662698c69190a12d8.js} +2 -2
  20. package/assets/esri/core/workers/chunks/{3ba29e7cf9fba3aa5f41.js → b1b8a7c00ec4d998ab84.js} +1 -1
  21. package/assets/esri/core/workers/chunks/{9940b318f38ea9d7a533.js → bafe489e54f34d1841e6.js} +1 -1
  22. package/assets/esri/core/workers/chunks/{765ee0f2bfcec6d5bcc6.js → bc6a809a965355eb425f.js} +1 -1
  23. package/assets/esri/core/workers/chunks/{53ff47c06ccfc0be885c.js → d30790c69724258dab2b.js} +1 -1
  24. package/chunks/GaussianSplatShadow.glsl.js +39 -0
  25. package/chunks/GlobalIllumination.glsl.js +1 -1
  26. package/config.js +1 -1
  27. package/interfaces.d.ts +14 -0
  28. package/kernel.js +1 -1
  29. package/layers/KnowledgeGraphLayer.d.ts +1 -1
  30. package/layers/KnowledgeGraphLayer.js +1 -1
  31. package/layers/ParquetLayer.d.ts +73 -24
  32. package/layers/ParquetLayer.js +1 -1
  33. package/layers/SceneLayer.d.ts +2 -2
  34. package/layers/graphics/sources/ParquetSource.js +1 -1
  35. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  36. package/layers/knowledgeGraph/KnowledgeGraphSublayer.d.ts +3 -1
  37. package/layers/support/ParquetFilesData.d.ts +46 -0
  38. package/layers/support/ParquetFilesData.js +2 -0
  39. package/layers/support/ParquetPortalItemData.d.ts +25 -0
  40. package/layers/support/ParquetPortalItemData.js +2 -0
  41. package/layers/support/parquetUtils.js +1 -1
  42. package/layers/support/types.d.ts +9 -0
  43. package/networks/UtilityNetworkTraceAnalysis.d.ts +1 -1
  44. package/networks/UtilityNetworkTraceAnalysis.js +1 -1
  45. package/package.json +3 -3
  46. package/renderers/support/ClassBreakInfo.d.ts +3 -3
  47. package/renderers/support/ClassBreakInfo.js +1 -1
  48. package/renderers/support/UniqueValueInfo.d.ts +3 -3
  49. package/renderers/support/UniqueValueInfo.js +1 -1
  50. package/support/revision.js +1 -1
  51. package/views/2d/engine/webgl/shaderGraph/techniques/raster/RasterColorizerTechnique.js +1 -1
  52. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  53. package/views/2d/layers/features/layerAdapters/ParquetLayerAdapter.js +1 -1
  54. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  55. package/views/3d/support/gaussianSplatting/GaussianSplatFadeHelper.js +1 -1
  56. package/views/3d/webgl/RenderNode.js +1 -1
  57. package/views/3d/webgl-engine/core/shaderLibrary/util/GaussianSplatUnpacking.glsl.js +5 -2
  58. package/views/3d/webgl-engine/effects/RenderNodes.js +1 -1
  59. package/views/3d/webgl-engine/lib/GaussianSplatRenderNode.js +1 -1
  60. package/views/3d/webgl-engine/lib/GaussianSplatShadowRenderNode.js +2 -0
  61. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  62. package/views/3d/webgl-engine/lib/ShadowMap.js +1 -1
  63. package/views/3d/webgl-engine/shaders/GaussianSplatShadow.glsl.js +2 -0
  64. package/views/3d/webgl-engine/shaders/GaussianSplatShadowTechnique.js +2 -0
  65. package/views/3d/webgl.js +1 -1
  66. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  67. package/widgets/OrientedImageryViewer/OrientedImageryViewerVisibleElements.js +1 -1
  68. package/widgets/OrientedImageryViewer/adapters/view/SceneViewAdapter.js +1 -1
  69. package/widgets/OrientedImageryViewer/components/OrientedImageryVideoViewModel.js +1 -1
  70. package/widgets/OrientedImageryViewer/services/SuperimposeService.js +1 -1
  71. package/widgets/OrientedImageryViewer/services/TransformationService.js +1 -1
  72. package/widgets/OrientedImageryViewer/support/dataCaptureUtils.js +1 -1
  73. package/widgets/OrientedImageryViewer/support/geometryUtils.js +1 -1
  74. package/widgets/OrientedImageryViewer/support/superimposeUtils.js +1 -1
  75. package/widgets/OrientedImageryViewer/videoViewerUtils.js +1 -1
  76. package/widgets/OrientedImageryViewer.js +1 -1
  77. package/widgets/PanoramicViewer/PanoramicVideoViewerViewModel.js +1 -1
  78. package/assets/esri/core/workers/chunks/26f28406056ddc0e159c.js +0 -1
  79. package/assets/esri/core/workers/chunks/b06cc59068d32baaaa87.js +0 -1
  80. /package/assets/esri/core/workers/chunks/{e7637d6a8ce0af46843c.js.LICENSE.txt → 53bf9b0c2b8da12820ea.js.LICENSE.txt} +0 -0
  81. /package/assets/esri/core/workers/chunks/{7a20941913d0115cfe26.js.LICENSE.txt → a58662698c69190a12d8.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[8692],{28692(e,t,i){i.r(t),i.d(t,{default:()=>G});var a=i(5482),s=i(79842),r=i(7762),n=i(49186),o=i(53966),l=i(91869),d=i(25728),h=i(17676),p=i(36708),u=i(84952),y=i(13069),c=i(91429),g=i(35666),f=i(4146),m=i(24137),w=i(62796),M=i(40736),b=i(18768),T=i(63074),v=i(69208),_=i(34287),D=i(8303),I=i(54310),A=i(25036),C=i(10873),L=i(53902),P=i(97159),S=i(56400),E=i(36005),k=i(43937);let N=class extends((0,T.dM)((0,A.j)((0,I.J)((0,b.b)((0,_.q)((0,D.A)((0,d.M)((0,v.d)(f.A))))))))){constructor(e){super(e),this._graphTypeLookup=new Map,this._namedTypesModified=!1,this.dataManager=null,this.definitionSetMap=null,this.knowledgeGraph=null,this.layers=new(r.A.ofType(w.A)),this.memberEntityTypes=null,this.memberRelationshipTypes=null,this.operationalLayerType="KnowledgeGraphLayer",this.sublayerIdsCache=new Map,this.tables=new(r.A.ofType(w.A)),this.type="knowledge-graph",this.url=null,!e?.title&&e?.url&&(this.title=(0,M.$L)(e.url)),this.addHandles((0,p.wB)(()=>this.layers.concat(this.tables),(e,t)=>this._handleSublayersChange(e,t),p.OH))}load(e){return this.addResolvingPromise(this._doLoad(e)),Promise.resolve(this)}async _doLoad(e){try{await this.loadFromPortal({supportedTypes:["Knowledge Graph Layer"]},e)}catch(e){(0,h.QP)(e)}await this._fetchMetadata(e),await this._initializeLayerProperties(e),this.loadLayerAssumingLocalCache(),this._layersLoadedFromAuthoritativeItem()||await(0,M.qN)(this)}async _fetchMetadata(e){if(!this.url)throw new n.A("knowledge-graph:missing-url","KnowledgeGraphLayer must be created with a url");const t=await(0,L.fetchKnowledgeGraph)(this.url);this.knowledgeGraph=t;const{edit:i,fullEdit:a,updateItem:s}=await(0,M.N1)(t.serviceDefinition.serviceItemId,this.url,e);this._set("userHasEditingPrivileges",i),this._set("userHasFullEditingPrivileges",a),this._set("userHasUpdateItemPrivileges",s),this.read({dateFieldsTimeReference:t.serviceDefinition.dateFieldsTimeReference},{origin:"service"}),this._forEachGraphType(e=>{e.name&&this._graphTypeLookup.set(e.name,e)})}async _initializeLayerProperties(e){7===this.originIdOf("inclusionModeDefinition")?this._validateInclusionModeDefinition():await this._initializeInclusionModeDefinition(e),this._setMemberTypes(),this.dataManager=new m.P({knowledgeGraph:this.knowledgeGraph,inclusionModeDefinition:this.inclusionModeDefinition})}async _initializeInclusionModeDefinition(e){const t=this.definitionSetMap?await(0,s.cZ)(this.definitionSetMap,!0,e?.signal?{signal:e.signal}:void 0):{generateAllSublayers:!0,namedTypeDefinitions:new Map};[...this.layers.toArray(),...this.tables.toArray()].forEach(e=>{const i=this._graphTypeLookup.get(e.graphTypeName);i&&!t.namedTypeDefinitions.has(i.name)&&t.namedTypeDefinitions.set(i.name,{useAllData:!0})}),this.setAtOrigin("inclusionModeDefinition",t,(0,g.OL)(this.originIdOf("definitionSetMap")))}_validateInclusionModeDefinition(){const{inclusionModeDefinition:e}=this;if(!e)return;const{namedTypeDefinitions:t}=e;if(t?.size>0)t.forEach((e,i)=>{const a=this._graphTypeLookup.get(i);if(!a)return o.A.getLogger(this).warn(`A named type, ${i}, was in the inclusion list that wasn't in the data model and will be removed`),void t.delete(i);"relationship"!==a.type&&"entity"!==a.type&&(o.A.getLogger(this).warn(`A named type, ${i}, was in the inclusion list that wasn't properly modeled and will be removed`),t.delete(i))});else if(!e.generateAllSublayers)throw new n.A("knowledge-graph:composite-layer-constructor","If an explicit inclusion definition is defined, at least one namedTypeDefinition must also be defined")}_setMemberTypes(){let e=[],t=[];const{inclusionModeDefinition:i}=this,a=i?.namedTypeDefinitions;!i||i.generateAllSublayers?(e=this.knowledgeGraph.dataModel?.entityTypes??[],t=this.knowledgeGraph.dataModel?.relationshipTypes??[]):a&&a.size>0&&a.forEach((i,a)=>{const s=this._graphTypeLookup.get(a);switch(s?.type){case"relationship":t.push(s);break;case"entity":e.push(s)}}),this.memberEntityTypes=e,this.memberRelationshipTypes=t}_forEachGraphType(e){[...this.knowledgeGraph.dataModel?.entityTypes??[],...this.knowledgeGraph.dataModel?.relationshipTypes??[]].forEach(t=>{e(t)})}_refreshNamedTypes(){this._namedTypesModified=!0;for(const e of this.layers)e.emit("refresh",{dataChanged:!0});for(const e of this.tables)e.emit("refresh",{dataChanged:!0})}async _handleNewRecords(e){const t=new Set,i=[];for(const a of e)this._graphTypeLookup.has(a.typeName)&&(!1===this.layers.concat(this.tables).some(e=>e.objectType.name===a.typeName)&&(this.dataManager.sublayerCaches.set(a.typeName,new Map),t.add(a.typeName)),(0,l.tE)(this.sublayerIdsCache,a.typeName,()=>new Set).add(a.id),i.push(a));this.dataManager.addToLayer(i);for(const e of t){const t=this._graphTypeLookup.get(e);t&&(this._addSublayer(t),"entity"===t.type?this.dataManager.entityTypeNames.add(e):this.dataManager.relationshipTypeNames.add(e))}await(0,M.qN)(this,Array.from(t)),this._refreshNamedTypes()}_createSublayers(e,t,i){e.forEach(e=>{const a=this._createSublayer(e);i(a)&&t.push(a),this._updateSublayerCaches(e)})}_addSublayer(e){const t=this._createSublayer(e);return t.geometryType?this.layers.push(t):this.tables.push(t),t}_createSublayer(e){return new w.A({objectType:e,parentCompositeLayer:this,graphType:e.type})}_updateSublayers(e,t){t.forEach(t=>{t.parentCompositeLayer=this;const i=e.find(e=>e.type===t.graphType&&e.name===t.graphTypeName);i&&(t.objectType=i,this._updateSublayerCaches(i))})}_updateSublayerCaches({name:e}){if(!e)return;const t=this.dataManager.sublayerCaches;t.has(e)||t.set(e,new Map)}_saveUrlAsNewResource(e,t,i,a){e[t]="<pending>",i.pendingOperations.push(async function(e){const t=await(0,s.fe)(e);return new Blob([t],{type:"application/x-protobuf"})}(this.inclusionModeDefinition).then(s=>{const r=function(e){const t=`definitionSetMap-${(0,y.lk)()}.dat`,i=(0,u.fj)("knowledgeGraphLayer",t);return e.resourceFromPath(i)}(a);e[t]=r.itemRelativeUrl,i.toAdd.push({resource:r,content:{type:"blob",blob:s},compress:!1,finish:e=>{this.definitionSetMap=e.url}})}))}_displaysAllRecords(e){for(const[,{useAllData:t}]of e.namedTypeDefinitions)if(!t)return!1;return!0}_handleSublayersChange(e,t){t&&(t.forEach(e=>{e.parent=null}),this.removeHandles("sublayers-owner")),e&&(e.forEach(e=>{e.parent=this}),this.addHandles([e.on("after-add",({item:e})=>{e.parent=this}),e.on("after-remove",({item:e})=>{e.parent=null})],"sublayers-owner"))}_layersLoadedFromAuthoritativeItem(){const e=this.originIdOf("layers");return e>=3&&e<7}readDefinitionSetMap(e,t,i){return(0,P.f)(e,i)}writeDefinitionSetMap(e,t,i,a){const s=a?.portalItem,r=a?.resources,n=(0,g.aB)(a?.origin);if(!s||!r||null==n)return void(e&&(t[i]=(0,P.t)(e,a)));const{inclusionModeDefinition:o}=this;if(!o||this._displaysAllRecords(o))return void(this.definitionSetMap=null);const l=this.originIdOf("inclusionModeDefinition");if(7===l||this._namedTypesModified||n<l)this._saveUrlAsNewResource(t,i,r,s);else if(n===l&&e){const n=(0,P.t)(e,a);(0,u.oP)(n)?this._saveUrlAsNewResource(t,i,r,s):t[i]=n}}set inclusionModeDefinition(e){"loaded"!==this.loadStatus&&"failed"!==this.loadStatus?this._set("inclusionModeDefinition",e):o.A.getLogger(this).error("#inclusionModeDefinition","inclusionModeDefinition cannot be changed after the layer is loaded.")}get sublayerCapabilities(){return(0,M.hZ)(this.knowledgeGraph)}loadLayerAssumingLocalCache(){const e=[...this.memberEntityTypes,...this.memberRelationshipTypes];this.layers.length||0===this.originIdOf("tables")?0===this.originIdOf("layers")?this._createSublayers(e,this.layers,e=>!!e.geometryType):this._updateSublayers(e,this.layers):this.layers=new r.A,this.tables.length||0===this.originIdOf("layers")?0===this.originIdOf("tables")?this._createSublayers(e,this.tables,e=>!e.geometryType):this._updateSublayers(e,this.tables):this.tables=new r.A,this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.forEach((e,t)=>{const i=(0,l.tE)(this.sublayerIdsCache,t,()=>new Set);e.members?.forEach(e=>{i.add(e.id)})})}async addRecords(e){await this.load(),await this._handleNewRecords(e)}async createSublayerForNamedType(e){await this.load();const t=this._graphTypeLookup.get(e);if(!t)throw new n.A("knowledge-graph:missing-type","The specified type does not exist in the layer's graph data model.");if(this.dataManager.sublayerCaches.has(e))throw new n.A("knowledge-graph:duplicate-type","The specified type already exists as a sublayer.");this.dataManager.sublayerCaches.set(e,new Map),(0,l.tE)(this.sublayerIdsCache,e,()=>new Set);const i=this._addSublayer(t);return"entity"===t.type?this.dataManager.entityTypeNames.add(e):this.dataManager.relationshipTypeNames.add(e),this.dataManager.inclusionModeDefinition&&this.dataManager.inclusionModeDefinition.namedTypeDefinitions.set(e,{useAllData:!0}),await(0,M.qN)(this,[e]),this._refreshNamedTypes(),i}convertSublayerToDynamicData(e){if(!this.dataManager.inclusionModeDefinition)throw new n.A("knowledge-graph:fully-dynamic-membership","This Knowledge Graph Layer already uses fully dynamic membership, individual sublayers cannot be converted");if(!this._graphTypeLookup.get(e))throw new n.A("knowledge-graph:missing-type","The specified type does not exist in the layer's graph data model.");if(!this.dataManager.sublayerCaches.has(e))throw new n.A("knowledge-graph:duplicate-type","The specified type does not exist as a sublayer.");const t=this.dataManager.inclusionModeDefinition.namedTypeDefinitions.get(e);t?.useAllData?o.A.getLogger(this).warn("This Knowledge Graph Layer already uses dynamic membership for the sublayer - no conversion was made"):(this.dataManager.inclusionModeDefinition.namedTypeDefinitions.set(e,{useAllData:!0}),this.sublayerIdsCache.delete(e),this._refreshNamedTypes())}convertSublayerToExplicitMembership(e){if(!this.dataManager.inclusionModeDefinition)throw new n.A("knowledge-graph:fully-dynamic-membership","This Knowledge Graph Layer already uses fully dynamic membership, individual sublayers cannot be converted");if(!this._graphTypeLookup.get(e))throw new n.A("knowledge-graph:missing-type","The specified type does not exist in the layer's graph data model.");const t=this.dataManager.inclusionModeDefinition.namedTypeDefinitions.get(e);if(!t||t.useAllData){if(!this.dataManager.sublayerCaches.has(e))throw new n.A("knowledge-graph:duplicate-type","The specified type does not exist as a sublayer.");this.sublayerIdsCache.set(e,new Set),this.dataManager.inclusionModeDefinition.namedTypeDefinitions.set(e,{useAllData:!1,members:new Map}),this._refreshNamedTypes()}else o.A.getLogger(this).warn("This Knowledge Graph Layer already uses explicit membership for the sublayer - no conversion was made")}convertToFullyDynamicData(){this.dataManager.inclusionModeDefinition||o.A.getLogger(this).warn("This Knowledge Graph Layer already uses fully dynamic membership - no conversion was made"),this.sublayerIdsCache.clear(),this.dataManager.inclusionModeDefinition=null,this._refreshNamedTypes()}convertToExplicitMembership(){this.dataManager.inclusionModeDefinition&&this.dataManager.inclusionModeDefinition.namedTypeDefinitions.size>0&&o.A.getLogger(this).warn("This Knowledge Graph Layer already uses explicit membership - no conversion was made"),this.dataManager.inclusionModeDefinition={generateAllSublayers:!1,namedTypeDefinitions:new Map};for(const e of this.dataManager.sublayerCaches.keys())(0,l.tE)(this.sublayerIdsCache,e,()=>new Set),this.dataManager.inclusionModeDefinition.namedTypeDefinitions.set(e,{useAllData:!1,members:new Map});this._refreshNamedTypes()}async removeRecords(e){await this.load();const t=[];for(const i of e)!1===this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.get(i.typeName)?.useAllData&&this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.get(i.typeName)?.members?.has(i.id)&&t.push(i);this.dataManager.removeFromLayer(t);for(const e of t)this.sublayerIdsCache.get(e.typeName)?.delete(e.id);return this._refreshNamedTypes(),t}};(0,a.Cg)([(0,c.MZ)()],N.prototype,"dataManager",void 0),(0,a.Cg)([(0,c.MZ)({json:{write:{ignoreOrigin:!0,writerEnsuresNonNull:!0}}})],N.prototype,"definitionSetMap",void 0),(0,a.Cg)([(0,E.w)("definitionSetMap")],N.prototype,"readDefinitionSetMap",null),(0,a.Cg)([(0,k.K)("definitionSetMap")],N.prototype,"writeDefinitionSetMap",null),(0,a.Cg)([(0,c.MZ)()],N.prototype,"inclusionModeDefinition",null),(0,a.Cg)([(0,c.MZ)()],N.prototype,"knowledgeGraph",void 0),(0,a.Cg)([(0,c.MZ)({type:r.A.ofType(w.A),json:{write:{ignoreOrigin:!0}}})],N.prototype,"layers",void 0),(0,a.Cg)([(0,c.MZ)()],N.prototype,"memberEntityTypes",void 0),(0,a.Cg)([(0,c.MZ)()],N.prototype,"memberRelationshipTypes",void 0),(0,a.Cg)([(0,c.MZ)({type:["KnowledgeGraphLayer"]})],N.prototype,"operationalLayerType",void 0),(0,a.Cg)([(0,c.MZ)()],N.prototype,"sublayerCapabilities",null),(0,a.Cg)([(0,c.MZ)()],N.prototype,"sublayerIdsCache",void 0),(0,a.Cg)([(0,c.MZ)({type:r.A.ofType(w.A),json:{write:{ignoreOrigin:!0}}})],N.prototype,"tables",void 0),(0,a.Cg)([(0,c.MZ)({json:{read:!1}})],N.prototype,"type",void 0),(0,a.Cg)([(0,c.MZ)(C.OZ)],N.prototype,"url",void 0),(0,a.Cg)([(0,c.MZ)((0,S.P6)("dateFieldsTimeReference"))],N.prototype,"dateFieldsTimeZone",void 0),N=(0,a.Cg)([(0,c.$K)("esri.layers.KnowledgeGraphLayer")],N);const G=N},18768(e,t,i){i.d(t,{b:()=>o});var a=i(5482),s=i(53966),r=i(91429),n=i(60694);const o=e=>{const t=e;let i=class extends t{get title(){if(this._get("title")&&"defaults"!==this.originOf("title"))return this._get("title");if(this.url){const e=(0,n.qg)(this.url);if(e?.title)return e.title}return this._get("title")||""}set title(e){this._set("title",e)}set url(e){this._set("url",(0,n.Jf)(e,s.A.getLogger(this)))}};return(0,a.Cg)([(0,r.MZ)()],i.prototype,"title",null),(0,a.Cg)([(0,r.MZ)({type:String})],i.prototype,"url",null),i=(0,a.Cg)([(0,r.$K)("esri.layers.mixins.ArcGISService")],i),i}},69208(e,t,i){i.d(t,{d:()=>r});var a=i(5482),s=i(91429);const r=e=>{const t=e;let i=class extends t{constructor(){super(...arguments),this.customParameters=null}};return(0,a.Cg)([(0,s.MZ)({type:Object,json:{write:{overridePolicy:e=>({enabled:!!(e&&Object.keys(e).length>0)})}}})],i.prototype,"customParameters",void 0),i=(0,a.Cg)([(0,s.$K)("esri.layers.mixins.CustomParametersMixin")],i),i}},8303(e,t,i){i.d(t,{A:()=>v});var a=i(5482),s=i(92602),r=i(70333),n=i(11254),o=i(60999),l=i(49186),d=i(36563),h=i(53966),p=i(97768),u=i(17676),y=i(84952),c=i(91429),g=i(77548),f=i(20655),m=i(80812),w=i(41318),M=i(10407),b=i(36005),T=i(43937);const v=e=>{const t=e;let v=class extends t{constructor(){super(...arguments),this.resourceReferences={portalItem:null,paths:[]},this.userHasEditingPrivileges=!0,this.userHasFullEditingPrivileges=!1,this.userHasUpdateItemPrivileges=!1}destroy(){this.portalItem=(0,p.pR)(this.portalItem),this.resourceReferences.portalItem=null,this.resourceReferences.paths.length=0}get portalItem(){return this._get("portalItem")}set portalItem(e){e!==this._get("portalItem")&&(this.removeOrigin("portal-item"),this._set("portalItem",e))}readPortalItem(e,t,i){if(t.itemId)return new m.default({id:t.itemId,portal:i?.portal})}writePortalItem(e,t){e?.id&&(t.itemId=e.id)}async loadFromPortal(e,t){if(this.portalItem?.id)try{const{load:a}=await i.e(1204).then(i.bind(i,41204));return(0,u.Te)(t),await a({instance:this,supportedTypes:e.supportedTypes,validateItem:e.validateItem,supportsData:e.supportsData,layerModuleTypeMap:e.layerModuleTypeMap,populateGroupLayer:e.populateGroupLayer},t)}catch(e){throw(0,u.zf)(e)||h.A.getLogger(this).warn(`Failed to load layer (${this.title}, ${this.id}) portal item (${this.portalItem.id})\n ${e}`),e}}async reloadFromPortal(e){if(!this.loaded||!this.portalItem?.id)return!1;try{const{reload:t}=await i.e(1204).then(i.bind(i,41204)),a=new AbortController,s=(0,d.rE)(a);return this.addHandles(s,"reloadFromPortal"),await t({instance:this,supportedTypes:e.supportedTypes,validateItem:e.validateItem,supportsData:e.supportsData,layerModuleTypeMap:e.layerModuleTypeMap,populateGroupLayer:e.populateGroupLayer},{signal:a.signal})}catch(e){throw(0,u.zf)(e)||h.A.getLogger(this).warn(`Failed to reload layer (${this.title}, ${this.id}) portal item (${this.portalItem.id})\n ${e}`),e}finally{this.removeHandles("reloadFromPortal")}}async finishLoadEditablePortalLayer(e){this._set("userHasEditingPrivileges",await this._fetchUserHasEditingPrivileges(e).catch(e=>((0,u.QP)(e),!0)))}async setUserPrivileges(e,t){if(!s.A.userPrivilegesApplied)return this.finishLoadEditablePortalLayer(t);if(this.url)try{const{features:{edit:i,fullEdit:a},content:{updateItem:s}}=await this._fetchUserPrivileges(e,t);this._set("userHasEditingPrivileges",i),this._set("userHasFullEditingPrivileges",a),this._set("userHasUpdateItemPrivileges",s)}catch(e){(0,u.QP)(e)}}async _fetchUserPrivileges(e,t){let i=this.portalItem;if(!e||!i||!i.loaded||i.sourceUrl)return this._fetchFallbackUserPrivileges(t);const a=!r.id?.findCredential(this.url),s=e===i.id;if(s&&i.portal.user)return this._getUserPrivileges(i,a);let n,o;if(s)n=i.portal.url;else try{n=await(0,g.wI)(this.url,t)}catch(e){(0,u.QP)(e)}if(!n||!(0,y.b8)(n,i.portal.url))return this._fetchFallbackUserPrivileges(t);try{const e=null!=t?t.signal:null;o=await(r.id?.getCredential(`${n}/sharing`,{prompt:!1,signal:e}))}catch(e){(0,u.QP)(e)}const l=!0,d=!1,h=!1;if(!o)return{features:{edit:l,fullEdit:d},content:{updateItem:h}};try{if(s?await i.reload():(i=new m.default({id:e,portal:{url:n}}),await i.load(t)),i.portal.user)return this._getUserPrivileges(i,a)}catch(e){(0,u.QP)(e)}return{features:{edit:l,fullEdit:d},content:{updateItem:h}}}_getUserPrivileges(e,t){const i=(0,M.It)(e);return t&&(i.features.edit=!0),i}async _fetchFallbackUserPrivileges(e){let t=!0;try{t=await this._fetchUserHasEditingPrivileges(e)}catch(e){(0,u.QP)(e)}return{features:{edit:t,fullEdit:!1},content:{updateItem:!1}}}async _fetchUserHasEditingPrivileges(e){const t=this.url?r.id?.findCredential(this.url):null;if(!t)return!0;const i=_.credential===t?_.user:await this._fetchEditingUser(e);return _.credential=t,_.user=i,null==i?.privileges||i.privileges.includes("features:user:edit")}async _fetchEditingUser(e){const t=this.portalItem?.portal?.user;if(t)return t;const i=r.id?.findServerInfo(this.url??"");if(!i?.owningSystemUrl)return null;const a=`${i.owningSystemUrl}/sharing/rest`,s=f.A.getDefault();if(s&&s.loaded&&(0,y.S8)(s.restUrl)===(0,y.S8)(a))return s.user;const l=`${a}/community/self`,d=null!=e?e.signal:null,h=await(0,o.Ke)((0,n.A)(l,{authMode:"no-prompt",query:{f:"json"},signal:d}));return h.ok?w.A.fromJSON(h.value.data):null}read(e,t){t&&(t.layer=this),super.read(e,t)}write(e,t){const i=t?.portal,a=this.portalItem?.id&&(this.portalItem.portal||f.A.getDefault());return i&&a&&!(0,y.ut)(a.restUrl,i.restUrl)?(t.messages&&t.messages.push(new l.A("layer:cross-portal",`The layer '${this.title} (${this.id})' cannot be persisted because it refers to an item on a different portal than the one being saved to. To save, set layer.portalItem to null or save to the same portal as the item associated with the layer`,{layer:this})),null):super.write(e,{...t,layer:this})}};return(0,a.Cg)([(0,c.MZ)({type:m.default})],v.prototype,"portalItem",null),(0,a.Cg)([(0,b.w)("web-document","portalItem",["itemId"])],v.prototype,"readPortalItem",null),(0,a.Cg)([(0,T.K)("web-document","portalItem",{itemId:{type:String}})],v.prototype,"writePortalItem",null),(0,a.Cg)([(0,c.MZ)({clonable:!1})],v.prototype,"resourceReferences",void 0),(0,a.Cg)([(0,c.MZ)({type:Boolean,readOnly:!0})],v.prototype,"userHasEditingPrivileges",void 0),(0,a.Cg)([(0,c.MZ)({type:Boolean,readOnly:!0})],v.prototype,"userHasFullEditingPrivileges",void 0),(0,a.Cg)([(0,c.MZ)({type:Boolean,readOnly:!0})],v.prototype,"userHasUpdateItemPrivileges",void 0),v=(0,a.Cg)([(0,c.$K)("esri.layers.mixins.PortalLayer")],v),v},_={credential:null,user:null}}}]);
1
+ "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[8692],{28692(e,t,i){i.r(t),i.d(t,{default:()=>G});var a=i(5482),s=i(79842),r=i(7762),n=i(49186),o=i(53966),l=i(91869),d=i(25728),h=i(17676),p=i(36708),u=i(84952),y=i(13069),c=i(91429),g=i(35666),f=i(4146),m=i(24137),w=i(62796),M=i(40736),b=i(18768),T=i(63074),v=i(69208),_=i(34287),D=i(8303),I=i(54310),A=i(25036),C=i(10873),L=i(53902),P=i(97159),S=i(56400),E=i(36005),k=i(43937);let N=class extends((0,T.dM)((0,A.j)((0,I.J)((0,b.b)((0,_.q)((0,D.A)((0,d.M)((0,v.d)(f.A))))))))){constructor(e){super(e),this._graphTypeLookup=new Map,this._namedTypesModified=!1,this.dataManager=null,this.definitionSetMap=null,this.knowledgeGraph=null,this.layers=new(r.A.ofType(w.A)),this.memberEntityTypes=null,this.memberRelationshipTypes=null,this.operationalLayerType="KnowledgeGraphLayer",this.sublayerIdsCache=new Map,this.tables=new(r.A.ofType(w.A)),this.type="knowledge-graph",this.url=null,!e?.title&&e?.url&&(this.title=(0,M.$L)(e.url)),this.addHandles((0,p.wB)(()=>this.layers.concat(this.tables),(e,t)=>this._handleSublayersChange(e,t),p.OH))}load(e){return this.addResolvingPromise(this._doLoad(e)),Promise.resolve(this)}async _doLoad(e){try{await this.loadFromPortal({supportedTypes:["Knowledge Graph Layer"]},e)}catch(e){(0,h.QP)(e)}await this._fetchMetadata(e),await this._initializeLayerProperties(e),this.loadLayerAssumingLocalCache(),this._layersLoadedFromAuthoritativeItem()||await(0,M.qN)(this)}async _fetchMetadata(e){if(!this.url)throw new n.A("knowledge-graph:missing-url","KnowledgeGraphLayer must be created with a url");const t=await(0,L.fetchKnowledgeGraph)(this.url);this.knowledgeGraph=t;const{edit:i,fullEdit:a,updateItem:s}=await(0,M.N1)(t.serviceDefinition.serviceItemId,this.url,e);this._set("userHasEditingPrivileges",i),this._set("userHasFullEditingPrivileges",a),this._set("userHasUpdateItemPrivileges",s),this.read({dateFieldsTimeReference:t.serviceDefinition.dateFieldsTimeReference},{origin:"service"}),this._forEachGraphType(e=>{e.name&&this._graphTypeLookup.set(e.name,e)})}async _initializeLayerProperties(e){7===this.originIdOf("inclusionModeDefinition")?this._validateInclusionModeDefinition():await this._initializeInclusionModeDefinition(e),this._setMemberTypes(),this.dataManager=new m.P({knowledgeGraph:this.knowledgeGraph,inclusionModeDefinition:this.inclusionModeDefinition})}async _initializeInclusionModeDefinition(e){const t=this.definitionSetMap?await(0,s.cZ)(this.definitionSetMap,!0,e?.signal?{signal:e.signal}:void 0):{generateAllSublayers:!0,namedTypeDefinitions:new Map};[...this.layers.toArray(),...this.tables.toArray()].forEach(e=>{const i=this._graphTypeLookup.get(e.graphTypeName);i&&!t.namedTypeDefinitions.has(i.name)&&t.namedTypeDefinitions.set(i.name,{useAllData:!0})}),this.setAtOrigin("inclusionModeDefinition",t,(0,g.OL)(this.originIdOf("definitionSetMap")))}_validateInclusionModeDefinition(){const{inclusionModeDefinition:e}=this;if(!e)return;const{namedTypeDefinitions:t}=e;if(t?.size>0)t.forEach((e,i)=>{const a=this._graphTypeLookup.get(i);if(!a)return o.A.getLogger(this).warn(`A named type, ${i}, was in the inclusion list that wasn't in the data model and will be removed`),void t.delete(i);"relationship"!==a.type&&"entity"!==a.type&&(o.A.getLogger(this).warn(`A named type, ${i}, was in the inclusion list that wasn't properly modeled and will be removed`),t.delete(i))});else if(!e.generateAllSublayers)throw new n.A("knowledge-graph:composite-layer-constructor","If an explicit inclusion definition is defined, at least one namedTypeDefinition must also be defined")}_setMemberTypes(){let e=[],t=[];const{inclusionModeDefinition:i}=this,a=i?.namedTypeDefinitions;!i||i.generateAllSublayers?(e=this.knowledgeGraph.dataModel?.entityTypes??[],t=this.knowledgeGraph.dataModel?.relationshipTypes??[]):a&&a.size>0&&a.forEach((i,a)=>{const s=this._graphTypeLookup.get(a);switch(s?.type){case"relationship":t.push(s);break;case"entity":e.push(s)}}),this.memberEntityTypes=e,this.memberRelationshipTypes=t}_forEachGraphType(e){[...this.knowledgeGraph.dataModel?.entityTypes??[],...this.knowledgeGraph.dataModel?.relationshipTypes??[]].forEach(t=>{e(t)})}_refreshNamedTypes(){this._namedTypesModified=!0;for(const e of this.layers)e.emit("refresh",{dataChanged:!0});for(const e of this.tables)e.emit("refresh",{dataChanged:!0})}async _handleNewRecords(e){const t=new Set,i=[];for(const a of e)this._graphTypeLookup.has(a.typeName)&&(!1===this.layers.concat(this.tables).some(e=>e.objectType.name===a.typeName)&&(this.dataManager.sublayerCaches.set(a.typeName,new Map),t.add(a.typeName)),(0,l.tE)(this.sublayerIdsCache,a.typeName,()=>new Set).add(a.id),i.push(a));this.dataManager.addToLayer(i);for(const e of t){const t=this._graphTypeLookup.get(e);t&&(this._addSublayer(t),"entity"===t.type?this.dataManager.entityTypeNames.add(e):this.dataManager.relationshipTypeNames.add(e))}await(0,M.qN)(this,Array.from(t)),this._refreshNamedTypes()}_createSublayers(e,t,i){e.forEach(e=>{const a=this._createSublayer(e);i(a)&&t.push(a),this._updateSublayerCaches(e)})}_addSublayer(e){const t=this._createSublayer(e);return t.geometryType?this.layers.push(t):this.tables.push(t),t}_createSublayer(e){return new w.A({objectType:e,parentCompositeLayer:this,graphType:e.type})}_updateSublayers(e,t){t.forEach(t=>{t.parentCompositeLayer=this;const i=e.find(e=>e.type===t.graphType&&e.name===t.graphTypeName);i&&(t.objectType=i,this._updateSublayerCaches(i))})}_updateSublayerCaches({name:e}){if(!e)return;const t=this.dataManager.sublayerCaches;t.has(e)||t.set(e,new Map)}_saveUrlAsNewResource(e,t,i,a){e[t]="<pending>",i.pendingOperations.push(async function(e){const t=await(0,s.fe)(e);return new Blob([t],{type:"application/x-protobuf"})}(this.inclusionModeDefinition).then(s=>{const r=function(e){const t=`definitionSetMap-${(0,y.lk)()}.dat`,i=(0,u.fj)("knowledgeGraphLayer",t);return e.resourceFromPath(i)}(a);e[t]=r.itemRelativeUrl,i.toAdd.push({resource:r,content:{type:"blob",blob:s},compress:!1,finish:e=>{this.definitionSetMap=e.url}})}))}_displaysAllRecords(e){for(const[,{useAllData:t}]of e.namedTypeDefinitions)if(!t)return!1;return!0}_handleSublayersChange(e,t){t&&(t.forEach(e=>{e.parent=null}),this.removeHandles("sublayers-owner")),e&&(e.forEach(e=>{e.parent=this}),this.addHandles([e.on("after-add",({item:e})=>{e.parent=this}),e.on("after-remove",({item:e})=>{e.parent=null})],"sublayers-owner"))}_layersLoadedFromAuthoritativeItem(){const e=this.originIdOf("layers");return e>=3&&e<7}readDefinitionSetMap(e,t,i){return(0,P.f)(e,i)}writeDefinitionSetMap(e,t,i,a){const s=a?.portalItem,r=a?.resources,n=(0,g.aB)(a?.origin);if(!s||!r||null==n)return void(e&&(t[i]=(0,P.t)(e,a)));const{inclusionModeDefinition:o}=this;if(!o||this._displaysAllRecords(o))return void(this.definitionSetMap=null);const l=this.originIdOf("inclusionModeDefinition");if(7===l||this._namedTypesModified||n<l)this._saveUrlAsNewResource(t,i,r,s);else if(n===l&&e){const n=(0,P.t)(e,a);(0,u.oP)(n)?this._saveUrlAsNewResource(t,i,r,s):t[i]=n}}set inclusionModeDefinition(e){"loaded"!==this.loadStatus&&"failed"!==this.loadStatus?this._set("inclusionModeDefinition",e):o.A.getLogger(this).error("#inclusionModeDefinition","inclusionModeDefinition cannot be changed after the layer is loaded.")}get sublayerCapabilities(){return(0,M.hZ)(this.knowledgeGraph)}loadLayerAssumingLocalCache(){const e=[...this.memberEntityTypes,...this.memberRelationshipTypes];this.layers.length||0===this.originIdOf("tables")?0===this.originIdOf("layers")?this._createSublayers(e,this.layers,e=>!!e.geometryType):this._updateSublayers(e,this.layers):this.layers=new r.A,this.tables.length||0===this.originIdOf("layers")?0===this.originIdOf("tables")?this._createSublayers(e,this.tables,e=>!e.geometryType):this._updateSublayers(e,this.tables):this.tables=new r.A,this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.forEach((e,t)=>{const i=(0,l.tE)(this.sublayerIdsCache,t,()=>new Set);e.members?.forEach(e=>{i.add(e.id)})})}async addRecords(e){await this.load(),await this._handleNewRecords(e)}async createSublayerForNamedType(e){await this.load();const t=this._graphTypeLookup.get(e);if(!t)throw new n.A("knowledge-graph:missing-type","The specified type does not exist in the layer's graph data model.");if(this.dataManager.sublayerCaches.has(e))throw new n.A("knowledge-graph:duplicate-type","The specified type already exists as a sublayer.");this.dataManager.sublayerCaches.set(e,new Map),(0,l.tE)(this.sublayerIdsCache,e,()=>new Set);const i=this._addSublayer(t);return"entity"===t.type?this.dataManager.entityTypeNames.add(e):this.dataManager.relationshipTypeNames.add(e),this.dataManager.inclusionModeDefinition&&this.dataManager.inclusionModeDefinition.namedTypeDefinitions.set(e,{useAllData:!0}),await(0,M.qN)(this,[e]),this._refreshNamedTypes(),i}convertSublayerToDynamicData(e){if(!this.dataManager.inclusionModeDefinition)throw new n.A("knowledge-graph:fully-dynamic-membership","This Knowledge Graph Layer already uses fully dynamic membership, individual sublayers cannot be converted");if(!this._graphTypeLookup.get(e))throw new n.A("knowledge-graph:missing-type","The specified type does not exist in the layer's graph data model.");if(!this.dataManager.sublayerCaches.has(e))throw new n.A("knowledge-graph:duplicate-type","The specified type does not exist as a sublayer.");const t=this.dataManager.inclusionModeDefinition.namedTypeDefinitions.get(e);t?.useAllData?o.A.getLogger(this).warn("This Knowledge Graph Layer already uses dynamic membership for the sublayer - no conversion was made"):(this.dataManager.inclusionModeDefinition.namedTypeDefinitions.set(e,{useAllData:!0}),this.sublayerIdsCache.delete(e),this._refreshNamedTypes())}convertSublayerToExplicitMembership(e){if(!this.dataManager.inclusionModeDefinition)throw new n.A("knowledge-graph:fully-dynamic-membership","This Knowledge Graph Layer already uses fully dynamic membership, individual sublayers cannot be converted");if(!this._graphTypeLookup.get(e))throw new n.A("knowledge-graph:missing-type","The specified type does not exist in the layer's graph data model.");const t=this.dataManager.inclusionModeDefinition.namedTypeDefinitions.get(e);if(!t||t.useAllData){if(!this.dataManager.sublayerCaches.has(e))throw new n.A("knowledge-graph:duplicate-type","The specified type does not exist as a sublayer.");this.sublayerIdsCache.set(e,new Set),this.dataManager.inclusionModeDefinition.namedTypeDefinitions.set(e,{useAllData:!1,members:new Map}),this._refreshNamedTypes()}else o.A.getLogger(this).warn("This Knowledge Graph Layer already uses explicit membership for the sublayer - no conversion was made")}convertToFullyDynamicData(){this.dataManager.inclusionModeDefinition||o.A.getLogger(this).warn("This Knowledge Graph Layer already uses fully dynamic membership - no conversion was made"),this.sublayerIdsCache.clear(),this.dataManager.inclusionModeDefinition=null,this.setAtOrigin("inclusionModeDefinition",this.dataManager.inclusionModeDefinition,(0,g.OL)(7)),this._refreshNamedTypes()}convertToExplicitMembership(){this.dataManager.inclusionModeDefinition&&this.dataManager.inclusionModeDefinition.namedTypeDefinitions.size>0&&o.A.getLogger(this).warn("This Knowledge Graph Layer already uses explicit membership - no conversion was made"),this.dataManager.inclusionModeDefinition={generateAllSublayers:!1,namedTypeDefinitions:new Map},this.setAtOrigin("inclusionModeDefinition",this.dataManager.inclusionModeDefinition,(0,g.OL)(7));for(const e of this.dataManager.sublayerCaches.keys())(0,l.tE)(this.sublayerIdsCache,e,()=>new Set),this.dataManager.inclusionModeDefinition.namedTypeDefinitions.set(e,{useAllData:!1,members:new Map});this._refreshNamedTypes()}async removeRecords(e){await this.load();const t=[];for(const i of e)!1===this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.get(i.typeName)?.useAllData&&this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.get(i.typeName)?.members?.has(i.id)&&t.push(i);this.dataManager.removeFromLayer(t);for(const e of t)this.sublayerIdsCache.get(e.typeName)?.delete(e.id);return this._refreshNamedTypes(),t}};(0,a.Cg)([(0,c.MZ)()],N.prototype,"dataManager",void 0),(0,a.Cg)([(0,c.MZ)({json:{write:{ignoreOrigin:!0,writerEnsuresNonNull:!0}}})],N.prototype,"definitionSetMap",void 0),(0,a.Cg)([(0,E.w)("definitionSetMap")],N.prototype,"readDefinitionSetMap",null),(0,a.Cg)([(0,k.K)("definitionSetMap")],N.prototype,"writeDefinitionSetMap",null),(0,a.Cg)([(0,c.MZ)()],N.prototype,"inclusionModeDefinition",null),(0,a.Cg)([(0,c.MZ)()],N.prototype,"knowledgeGraph",void 0),(0,a.Cg)([(0,c.MZ)({type:r.A.ofType(w.A),json:{write:{ignoreOrigin:!0}}})],N.prototype,"layers",void 0),(0,a.Cg)([(0,c.MZ)()],N.prototype,"memberEntityTypes",void 0),(0,a.Cg)([(0,c.MZ)()],N.prototype,"memberRelationshipTypes",void 0),(0,a.Cg)([(0,c.MZ)({type:["KnowledgeGraphLayer"]})],N.prototype,"operationalLayerType",void 0),(0,a.Cg)([(0,c.MZ)()],N.prototype,"sublayerCapabilities",null),(0,a.Cg)([(0,c.MZ)()],N.prototype,"sublayerIdsCache",void 0),(0,a.Cg)([(0,c.MZ)({type:r.A.ofType(w.A),json:{write:{ignoreOrigin:!0}}})],N.prototype,"tables",void 0),(0,a.Cg)([(0,c.MZ)({json:{read:!1}})],N.prototype,"type",void 0),(0,a.Cg)([(0,c.MZ)(C.OZ)],N.prototype,"url",void 0),(0,a.Cg)([(0,c.MZ)((0,S.P6)("dateFieldsTimeReference"))],N.prototype,"dateFieldsTimeZone",void 0),N=(0,a.Cg)([(0,c.$K)("esri.layers.KnowledgeGraphLayer")],N);const G=N},18768(e,t,i){i.d(t,{b:()=>o});var a=i(5482),s=i(53966),r=i(91429),n=i(60694);const o=e=>{const t=e;let i=class extends t{get title(){if(this._get("title")&&"defaults"!==this.originOf("title"))return this._get("title");if(this.url){const e=(0,n.qg)(this.url);if(e?.title)return e.title}return this._get("title")||""}set title(e){this._set("title",e)}set url(e){this._set("url",(0,n.Jf)(e,s.A.getLogger(this)))}};return(0,a.Cg)([(0,r.MZ)()],i.prototype,"title",null),(0,a.Cg)([(0,r.MZ)({type:String})],i.prototype,"url",null),i=(0,a.Cg)([(0,r.$K)("esri.layers.mixins.ArcGISService")],i),i}},69208(e,t,i){i.d(t,{d:()=>r});var a=i(5482),s=i(91429);const r=e=>{const t=e;let i=class extends t{constructor(){super(...arguments),this.customParameters=null}};return(0,a.Cg)([(0,s.MZ)({type:Object,json:{write:{overridePolicy:e=>({enabled:!!(e&&Object.keys(e).length>0)})}}})],i.prototype,"customParameters",void 0),i=(0,a.Cg)([(0,s.$K)("esri.layers.mixins.CustomParametersMixin")],i),i}},8303(e,t,i){i.d(t,{A:()=>v});var a=i(5482),s=i(92602),r=i(70333),n=i(11254),o=i(60999),l=i(49186),d=i(36563),h=i(53966),p=i(97768),u=i(17676),y=i(84952),c=i(91429),g=i(77548),f=i(20655),m=i(80812),w=i(41318),M=i(10407),b=i(36005),T=i(43937);const v=e=>{const t=e;let v=class extends t{constructor(){super(...arguments),this.resourceReferences={portalItem:null,paths:[]},this.userHasEditingPrivileges=!0,this.userHasFullEditingPrivileges=!1,this.userHasUpdateItemPrivileges=!1}destroy(){this.portalItem=(0,p.pR)(this.portalItem),this.resourceReferences.portalItem=null,this.resourceReferences.paths.length=0}get portalItem(){return this._get("portalItem")}set portalItem(e){e!==this._get("portalItem")&&(this.removeOrigin("portal-item"),this._set("portalItem",e))}readPortalItem(e,t,i){if(t.itemId)return new m.default({id:t.itemId,portal:i?.portal})}writePortalItem(e,t){e?.id&&(t.itemId=e.id)}async loadFromPortal(e,t){if(this.portalItem?.id)try{const{load:a}=await i.e(1204).then(i.bind(i,41204));return(0,u.Te)(t),await a({instance:this,supportedTypes:e.supportedTypes,validateItem:e.validateItem,supportsData:e.supportsData,layerModuleTypeMap:e.layerModuleTypeMap,populateGroupLayer:e.populateGroupLayer},t)}catch(e){throw(0,u.zf)(e)||h.A.getLogger(this).warn(`Failed to load layer (${this.title}, ${this.id}) portal item (${this.portalItem.id})\n ${e}`),e}}async reloadFromPortal(e){if(!this.loaded||!this.portalItem?.id)return!1;try{const{reload:t}=await i.e(1204).then(i.bind(i,41204)),a=new AbortController,s=(0,d.rE)(a);return this.addHandles(s,"reloadFromPortal"),await t({instance:this,supportedTypes:e.supportedTypes,validateItem:e.validateItem,supportsData:e.supportsData,layerModuleTypeMap:e.layerModuleTypeMap,populateGroupLayer:e.populateGroupLayer},{signal:a.signal})}catch(e){throw(0,u.zf)(e)||h.A.getLogger(this).warn(`Failed to reload layer (${this.title}, ${this.id}) portal item (${this.portalItem.id})\n ${e}`),e}finally{this.removeHandles("reloadFromPortal")}}async finishLoadEditablePortalLayer(e){this._set("userHasEditingPrivileges",await this._fetchUserHasEditingPrivileges(e).catch(e=>((0,u.QP)(e),!0)))}async setUserPrivileges(e,t){if(!s.A.userPrivilegesApplied)return this.finishLoadEditablePortalLayer(t);if(this.url)try{const{features:{edit:i,fullEdit:a},content:{updateItem:s}}=await this._fetchUserPrivileges(e,t);this._set("userHasEditingPrivileges",i),this._set("userHasFullEditingPrivileges",a),this._set("userHasUpdateItemPrivileges",s)}catch(e){(0,u.QP)(e)}}async _fetchUserPrivileges(e,t){let i=this.portalItem;if(!e||!i||!i.loaded||i.sourceUrl)return this._fetchFallbackUserPrivileges(t);const a=!r.id?.findCredential(this.url),s=e===i.id;if(s&&i.portal.user)return this._getUserPrivileges(i,a);let n,o;if(s)n=i.portal.url;else try{n=await(0,g.wI)(this.url,t)}catch(e){(0,u.QP)(e)}if(!n||!(0,y.b8)(n,i.portal.url))return this._fetchFallbackUserPrivileges(t);try{const e=null!=t?t.signal:null;o=await(r.id?.getCredential(`${n}/sharing`,{prompt:!1,signal:e}))}catch(e){(0,u.QP)(e)}const l=!0,d=!1,h=!1;if(!o)return{features:{edit:l,fullEdit:d},content:{updateItem:h}};try{if(s?await i.reload():(i=new m.default({id:e,portal:{url:n}}),await i.load(t)),i.portal.user)return this._getUserPrivileges(i,a)}catch(e){(0,u.QP)(e)}return{features:{edit:l,fullEdit:d},content:{updateItem:h}}}_getUserPrivileges(e,t){const i=(0,M.It)(e);return t&&(i.features.edit=!0),i}async _fetchFallbackUserPrivileges(e){let t=!0;try{t=await this._fetchUserHasEditingPrivileges(e)}catch(e){(0,u.QP)(e)}return{features:{edit:t,fullEdit:!1},content:{updateItem:!1}}}async _fetchUserHasEditingPrivileges(e){const t=this.url?r.id?.findCredential(this.url):null;if(!t)return!0;const i=_.credential===t?_.user:await this._fetchEditingUser(e);return _.credential=t,_.user=i,null==i?.privileges||i.privileges.includes("features:user:edit")}async _fetchEditingUser(e){const t=this.portalItem?.portal?.user;if(t)return t;const i=r.id?.findServerInfo(this.url??"");if(!i?.owningSystemUrl)return null;const a=`${i.owningSystemUrl}/sharing/rest`,s=f.A.getDefault();if(s&&s.loaded&&(0,y.S8)(s.restUrl)===(0,y.S8)(a))return s.user;const l=`${a}/community/self`,d=null!=e?e.signal:null,h=await(0,o.Ke)((0,n.A)(l,{authMode:"no-prompt",query:{f:"json"},signal:d}));return h.ok?w.A.fromJSON(h.value.data):null}read(e,t){t&&(t.layer=this),super.read(e,t)}write(e,t){const i=t?.portal,a=this.portalItem?.id&&(this.portalItem.portal||f.A.getDefault());return i&&a&&!(0,y.ut)(a.restUrl,i.restUrl)?(t.messages&&t.messages.push(new l.A("layer:cross-portal",`The layer '${this.title} (${this.id})' cannot be persisted because it refers to an item on a different portal than the one being saved to. To save, set layer.portalItem to null or save to the same portal as the item associated with the layer`,{layer:this})),null):super.write(e,{...t,layer:this})}};return(0,a.Cg)([(0,c.MZ)({type:m.default})],v.prototype,"portalItem",null),(0,a.Cg)([(0,b.w)("web-document","portalItem",["itemId"])],v.prototype,"readPortalItem",null),(0,a.Cg)([(0,T.K)("web-document","portalItem",{itemId:{type:String}})],v.prototype,"writePortalItem",null),(0,a.Cg)([(0,c.MZ)({clonable:!1})],v.prototype,"resourceReferences",void 0),(0,a.Cg)([(0,c.MZ)({type:Boolean,readOnly:!0})],v.prototype,"userHasEditingPrivileges",void 0),(0,a.Cg)([(0,c.MZ)({type:Boolean,readOnly:!0})],v.prototype,"userHasFullEditingPrivileges",void 0),(0,a.Cg)([(0,c.MZ)({type:Boolean,readOnly:!0})],v.prototype,"userHasUpdateItemPrivileges",void 0),v=(0,a.Cg)([(0,c.$K)("esri.layers.mixins.PortalLayer")],v),v},_={credential:null,user:null}}}]);
@@ -0,0 +1,39 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
+ import{set as e}from"../core/libs/gl-matrix-2/math/vec2.js";import{create as a}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{create as i}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{RejectBySlicePass as n}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{OutputDepth as r}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{positionOutsideClipSpace as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{GaussianSplatCovariance as c}from"../views/3d/webgl-engine/core/shaderLibrary/util/GaussianSplatCovariance.glsl.js";import{GaussianSplatEvaluation as s}from"../views/3d/webgl-engine/core/shaderLibrary/util/GaussianSplatEvaluation.glsl.js";import{GaussianSplatTextureFetch as t}from"../views/3d/webgl-engine/core/shaderLibrary/util/GaussianSplatTextureFetch.glsl.js";import{GaussianSplatUnpackingPassParameters as l,GaussianSplatUnpacking as v}from"../views/3d/webgl-engine/core/shaderLibrary/util/GaussianSplatUnpacking.glsl.js";import{QuaternionToRotationMatrix as d}from"../views/3d/webgl-engine/core/shaderLibrary/util/QuaternionToRotationMatrix.glsl.js";import{Float2BindUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Float2BindUniform.js";import{Float3PassUniform as p}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{FloatPassUniform as m}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as f,If as x}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as g}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Texture2DUintPassUniform as w}from"../views/3d/webgl-engine/core/shaderModules/Texture2DUintPassUniform.js";import{ShaderBuilder as h}from"../views/webgl/ShaderBuilder.js";class P extends l{constructor(){super(...arguments),this.clipMinCameraRelative=i(),this.clipMaxCameraRelative=i(),this.minSplatRadius=-1}}function S(a){const{clippingEnabled:i,hasSlicePlane:l}=a,P=new h,{fragment:S,varyings:G,vertex:y}=P;P.include(r,a),G.add("conic","vec3"),G.add("gaussianLogAlphaCutoff","float"),G.add("offsetFromCenter","vec2"),G.add("depth","float",{invariant:!0}),y.uniforms.add(new w("splatOrderTexture",e=>e.splatOrder),new w("splatAtlasTexture",e=>e.splatAtlas),new m("minSplatRadius",e=>e.minSplatRadius),new u("inverseScreenSize",({camera:a})=>e(j,1/a.fullWidth,1/a.fullHeight)),new g("proj",e=>e.camera.projectionMatrix),new g("view",e=>e.camera.viewMatrix),new u("nearFar",e=>e.camera.nearFar)),i&&y.uniforms.add(new p("clipMin",e=>e.clipMinCameraRelative),new p("clipMax",e=>e.clipMaxCameraRelative)),y.include(v),y.include(t),y.include(d),y.include(c),y.include(s),y.include(n,a),y.code.add(f`float safeClipW(float clipW) {
3
+ return abs(clipW) < 1e-7 ? (clipW < 0.0 ? -1e-7 : 1e-7) : clipW;
4
+ }`),y.code.add(f`vec3 computeProjectivePixelGradient(
5
+ vec3 clipGradient,
6
+ vec3 clipWGradient,
7
+ float clipValue,
8
+ float safeW,
9
+ float invWSquared,
10
+ float halfScreenSize
11
+ ) {
12
+ return (clipGradient * safeW - clipValue * clipWGradient) * invWSquared * halfScreenSize;
13
+ }`),y.code.add(f`vec3 multiplyCovariance3D(float[6] covariance3D, vec3 value) {
14
+ return vec3(
15
+ covariance3D[0] * value.x + covariance3D[1] * value.y + covariance3D[2] * value.z,
16
+ covariance3D[1] * value.x + covariance3D[3] * value.y + covariance3D[4] * value.z,
17
+ covariance3D[2] * value.x + covariance3D[4] * value.y + covariance3D[5] * value.z
18
+ );
19
+ }`),y.code.add(f`vec3 computeProjectiveCovariance2D(vec3 pixelXGradient, vec3 pixelYGradient, float[6] covariance3D, mat4 view) {
20
+ mat3 worldToView = transpose(mat3(view));
21
+ vec3 axisX = worldToView * pixelXGradient;
22
+ vec3 axisY = worldToView * pixelYGradient;
23
+ vec3 covarianceAxisX = multiplyCovariance3D(covariance3D, axisX);
24
+ vec3 covarianceAxisY = multiplyCovariance3D(covariance3D, axisY);
25
+ const float regularization = 0.3;
26
+ float covarianceXX = dot(axisX, covarianceAxisX) + regularization;
27
+ float covarianceXY = dot(axisX, covarianceAxisY);
28
+ float covarianceYY = dot(axisY, covarianceAxisY) + regularization;
29
+ return vec3(covarianceXX, covarianceXY, covarianceYY);
30
+ }`);const b=.25,D=Math.log(b);return y.main.add(`\n uint gaussianIndex = fetchOrderedGaussianIndex(uint(gl_InstanceID));\n uvec4 packedGaussian = fetchPackedGaussian(gaussianIndex);\n\n float opacity = unpackOpacity(packedGaussian);\n\n gl_Position = ${o};\n\n if (opacity < ${b}) {\n return;\n }\n\n vec3 cameraRelativePosition = fetchGaussianCameraRelativePosition(gaussianIndex, packedGaussian);\n\n ${x(i,f`if (cameraRelativePosition.x < clipMin.x || cameraRelativePosition.y < clipMin.y || cameraRelativePosition.z < clipMin.z ||
31
+ cameraRelativePosition.x > clipMax.x || cameraRelativePosition.y > clipMax.y || cameraRelativePosition.z > clipMax.z) {
32
+ return;
33
+ }`)}\n\n ${x(l,f`if (rejectBySlice(cameraRelativePosition)) {
34
+ return;
35
+ }`)}\n\n vec4 viewPos = vec4(mat3(view) * cameraRelativePosition, 1.0);\n\n if (viewPos.z > -nearFar.x || viewPos.z < -nearFar.y) {\n return;\n }\n\n vec3 covarianceA;\n vec3 covarianceB;\n computePackedGaussianCovariance3D(packedGaussian, covarianceA, covarianceB);\n\n float covariance3D[6] = float[6](covarianceA.x, covarianceA.y, covarianceA.z, covarianceB.x, covarianceB.y, covarianceB.z);\n\n vec4 projPos = proj * viewPos;\n float safeW = safeClipW(projPos.w);\n float invWSquared = 1.0 / (safeW * safeW);\n vec2 halfScreenSize = 0.5 / inverseScreenSize;\n\n // Projection matrix columns are the clip-space derivatives with respect to view-space xyz.\n vec3 clipWGradient = vec3(proj[0][3], proj[1][3], proj[2][3]);\n vec3 pixelXGradient = computeProjectivePixelGradient(\n vec3(proj[0][0], proj[1][0], proj[2][0]),\n clipWGradient,\n projPos.x,\n safeW,\n invWSquared,\n halfScreenSize.x\n );\n vec3 pixelYGradient = computeProjectivePixelGradient(\n vec3(proj[0][1], proj[1][1], proj[2][1]),\n clipWGradient,\n projPos.y,\n safeW,\n invWSquared,\n halfScreenSize.y\n );\n vec3 covariance2D = computeProjectiveCovariance2D(pixelXGradient, pixelYGradient, covariance3D, view);\n\n float determinant = computeGaussianCovarianceDeterminant(covariance2D);\n if (determinant <= 0.0) {\n return;\n }\n\n vec2 eigenvalues = computeGaussianCovarianceEigenvalues(covariance2D);\n\n gaussianLogAlphaCutoff = ${D} - log(opacity);\n float gaussianEllipseThreshold = computeGaussianEllipseThreshold(gaussianLogAlphaCutoff);\n vec2 axisLengths = computeGaussianAxisLengths(eigenvalues, gaussianEllipseThreshold);\n float maxRadius = max(axisLengths.x, axisLengths.y);\n\n if (rejectGaussianByMinimumRadius(maxRadius, opacity, minSplatRadius)) {\n return;\n }\n\n vec3 ndcPos = projPos.xyz / safeW;\n vec2 clipSpacePixelScale = 2.0 * inverseScreenSize;\n\n if (rejectGaussianByScreenBounds(ndcPos.xy, maxRadius, clipSpacePixelScale)) {\n return;\n }\n\n offsetFromCenter = computeGaussianQuadOffset(covariance2D, eigenvalues, axisLengths, gl_VertexID);\n conic = computeGaussianConic(covariance2D, determinant);\n depth = (-viewPos.z - nearFar.x) / (nearFar.y - nearFar.x);\n\n vec2 clipPos = ndcPos.xy + offsetFromCenter * clipSpacePixelScale - inverseScreenSize;\n gl_Position = vec4(clipPos, ndcPos.z, 1.0);\n `),S.include(s),S.main.add(f`float gaussianExponent = evaluateGaussianExponent(conic, offsetFromCenter);
36
+ if (gaussianExponent > 0.0 || gaussianExponent < gaussianLogAlphaCutoff) {
37
+ discard;
38
+ }
39
+ outputDepth(depth);`),P}const j=a(),G=Object.freeze(Object.defineProperty({__proto__:null,GaussianSplatShadowPassParameters:P,build:S},Symbol.toStringTag,{value:"Module"}));export{P as G,G as a,S as b};
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadDepthLastFrame as a}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepthLastFrame.glsl.js";import{addMainLightDirection as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{ScreenSpaceRayMarching as t}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js";import{CameraSpace as r}from"../views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js";import{FloatPassUniform as i}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as l,If as n}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Texture2DBindUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{ColorAttachment1 as h}from"../views/webgl/enums.js";import{NoParameters as u}from"../views/webgl/NoParameters.js";import{ShaderBuilder as d}from"../views/webgl/ShaderBuilder.js";const p=.01,f=.008,g=.002,v=.5,x=.02,M=.1,y=.008,b=.012,w=.008,S=40,W=.095,C=.008,F=60,R=2,D=.0039,j=.25,z=1/3,I=2/3,B=2,G=.05,P=.15,T=.75,$=25,E=.15,L=.5,O=1,U=1.5,V=16;class k extends u{constructor(){super(...arguments),this.projScale=1,this.scaleGlobalIllumination=1,this.accumulatedFrames=0,this.frameCount=0,this.rayMarchMinReach=E,this.rayMarchMaxReach=L,this.rayMarchWorldReach=$,this.rayMarchMinReachEmissionWeight=O,this.rayMarchMaxReachEmissionWeight=U,this.rayMarchMaxSteps=V}}function N(u){const $=new d,E=$.fragment;return $.include(e),$.include(r),o(E),E.include(a),$.include(t,u),E.uniforms.add(new m("normalMap",e=>e.normalTexture),new m("depthMap",e=>e.depthTexture),new m("lastFrameColorTexture",(e,a)=>a.reprojection.lastFrameColor?.getTexture()),new m("lastFrameDepthTexture",(e,a)=>a.reprojection.lastFrameDepth?.attachment),new s("lastFrameGlobalIlluminationTexture",e=>e.globalIllumination?.getTexture()),new s("lastFrameGlobalIlluminationWeightTexture",e=>e.globalIllumination?.getTexture(h)),new c("reprojectionViewMatrix",e=>e.reprojection.viewMatrix),new c("view",e=>e.camera.viewMatrix),new i("accumulatedFramesGI",e=>e.accumulatedFrames),new i("frameCount",e=>e.frameCount),new i("scaleGlobalIllumination",e=>e.scaleGlobalIllumination),new m("blueNoiseTex",e=>e.noiseTexture)),E.uniforms.add(new i("rayMarchMinReach",e=>e.rayMarchMinReach),new i("rayMarchMaxReach",e=>e.rayMarchMaxReach),new i("rayMarchWorldReach",e=>e.rayMarchWorldReach),new i("rayMarchMinReachEmissionWeight",e=>e.rayMarchMinReachEmissionWeight),new i("rayMarchMaxReachEmissionWeight",e=>e.rayMarchMaxReachEmissionWeight),new i("rayMarchMaxSteps",e=>e.rayMarchMaxSteps)),u.hasEmission&&E.uniforms.add(new m("lastFrameEmissionTexture",(e,a)=>a.reprojection.lastFrameEmission?.attachment)),E.constants.add("timeSamplesSize","float",64),E.constants.add("blueNoiseGridSize","float",8),E.code.add(l`
2
+ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadDepthLastFrame as a}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepthLastFrame.glsl.js";import{addMainLightDirection as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{ScreenSpaceRayMarching as t}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js";import{CameraSpace as r}from"../views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js";import{FloatPassUniform as i}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as l,If as n}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Texture2DBindUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{ColorAttachment1 as h}from"../views/webgl/enums.js";import{NoParameters as u}from"../views/webgl/NoParameters.js";import{ShaderBuilder as d}from"../views/webgl/ShaderBuilder.js";const p=.01,f=.008,g=.002,v=.5,x=.02,M=.1,y=.008,b=.012,w=.008,S=40,W=.095,C=.008,F=60,R=2,D=.0039,j=.25,z=1/3,I=2/3,B=2,G=.05,P=.15,T=.75,$=25,E=.15,L=.5,O=1,U=1,V=16;class k extends u{constructor(){super(...arguments),this.projScale=1,this.scaleGlobalIllumination=1,this.accumulatedFrames=0,this.frameCount=0,this.rayMarchMinReach=E,this.rayMarchMaxReach=L,this.rayMarchWorldReach=$,this.rayMarchMinReachEmissionWeight=O,this.rayMarchMaxReachEmissionWeight=U,this.rayMarchMaxSteps=V}}function N(u){const $=new d,E=$.fragment;return $.include(e),$.include(r),o(E),E.include(a),$.include(t,u),E.uniforms.add(new m("normalMap",e=>e.normalTexture),new m("depthMap",e=>e.depthTexture),new m("lastFrameColorTexture",(e,a)=>a.reprojection.lastFrameColor?.getTexture()),new m("lastFrameDepthTexture",(e,a)=>a.reprojection.lastFrameDepth?.attachment),new s("lastFrameGlobalIlluminationTexture",e=>e.globalIllumination?.getTexture()),new s("lastFrameGlobalIlluminationWeightTexture",e=>e.globalIllumination?.getTexture(h)),new c("reprojectionViewMatrix",e=>e.reprojection.viewMatrix),new c("view",e=>e.camera.viewMatrix),new i("accumulatedFramesGI",e=>e.accumulatedFrames),new i("frameCount",e=>e.frameCount),new i("scaleGlobalIllumination",e=>e.scaleGlobalIllumination),new m("blueNoiseTex",e=>e.noiseTexture)),E.uniforms.add(new i("rayMarchMinReach",e=>e.rayMarchMinReach),new i("rayMarchMaxReach",e=>e.rayMarchMaxReach),new i("rayMarchWorldReach",e=>e.rayMarchWorldReach),new i("rayMarchMinReachEmissionWeight",e=>e.rayMarchMinReachEmissionWeight),new i("rayMarchMaxReachEmissionWeight",e=>e.rayMarchMaxReachEmissionWeight),new i("rayMarchMaxSteps",e=>e.rayMarchMaxSteps)),u.hasEmission&&E.uniforms.add(new m("lastFrameEmissionTexture",(e,a)=>a.reprojection.lastFrameEmission?.attachment)),E.constants.add("timeSamplesSize","float",64),E.constants.add("blueNoiseGridSize","float",8),E.code.add(l`
3
3
  float computeIdleColorBlendWeight(float accumulatedFrames) {
4
4
  float idleColorBlendProgress = clamp(
5
5
  accumulatedFrames / ${l.float(S)},
package/config.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import"./core/has.js";import{deepMerge as e}from"./core/object.js";const s={apiKey:void 0,apiKeys:{scopes:[]},applicationName:"",applicationUrl:globalThis.location?.href,assetsPath:"",fontsUrl:"https://static.arcgis.com/fonts",geometryServiceUrl:"https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer",geoRSSServiceUrl:"https://utility.arcgis.com/sharing/rss",kmlServiceUrl:"https://utility.arcgis.com/sharing/kml",userPrivilegesApplied:!0,portalUrl:"https://www.arcgis.com",respectPrefersReducedMotion:!0,routeServiceUrl:"https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World",workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:["arcgis.com","arcgisonline.com","esrikr.com","premiumservices.blackbridge.com","esripremium.accuweather.com","gbm.digitalglobe.com","firstlook.digitalglobe.com","msi.digitalglobe.com"],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:"high",proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};if(globalThis.esriConfig&&(e(s,globalThis.esriConfig,!0),delete s.has),!s.assetsPath){{const e="5.1.0-next.100";s.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@${e}/assets`}s.defaultAssetsPath=s.assetsPath}export{s as default};
2
+ import"./core/has.js";import{deepMerge as e}from"./core/object.js";const s={apiKey:void 0,apiKeys:{scopes:[]},applicationName:"",applicationUrl:globalThis.location?.href,assetsPath:"",fontsUrl:"https://static.arcgis.com/fonts",geometryServiceUrl:"https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer",geoRSSServiceUrl:"https://utility.arcgis.com/sharing/rss",kmlServiceUrl:"https://utility.arcgis.com/sharing/kml",userPrivilegesApplied:!0,portalUrl:"https://www.arcgis.com",respectPrefersReducedMotion:!0,routeServiceUrl:"https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World",workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:["arcgis.com","arcgisonline.com","esrikr.com","premiumservices.blackbridge.com","esripremium.accuweather.com","gbm.digitalglobe.com","firstlook.digitalglobe.com","msi.digitalglobe.com"],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:"high",proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};if(globalThis.esriConfig&&(e(s,globalThis.esriConfig,!0),delete s.has),!s.assetsPath){{const e="5.1.0-next.101";s.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@${e}/assets`}s.defaultAssetsPath=s.assetsPath}export{s as default};
package/interfaces.d.ts CHANGED
@@ -5378,6 +5378,20 @@ declare namespace __esri {
5378
5378
  export type OrderByInfo = import("./layers/support/OrderByInfo.js").default;
5379
5379
  export const OrderByInfo: typeof import("./layers/support/OrderByInfo.js").default;
5380
5380
 
5381
+ /** @deprecated since 5.0. Refactor using \@arcgis/codemod */
5382
+ export type ParquetFilesDataProperties = import("./layers/support/ParquetFilesData.js").ParquetFilesDataProperties;
5383
+
5384
+ /** @deprecated since 5.0. Refactor using \@arcgis/codemod */
5385
+ export type ParquetFilesData = import("./layers/support/ParquetFilesData.js").default;
5386
+ export const ParquetFilesData: typeof import("./layers/support/ParquetFilesData.js").default;
5387
+
5388
+ /** @deprecated since 5.0. Refactor using \@arcgis/codemod */
5389
+ export type ParquetPortalItemDataProperties = import("./layers/support/ParquetPortalItemData.js").ParquetPortalItemDataProperties;
5390
+
5391
+ /** @deprecated since 5.0. Refactor using \@arcgis/codemod */
5392
+ export type ParquetPortalItemData = import("./layers/support/ParquetPortalItemData.js").default;
5393
+ export const ParquetPortalItemData: typeof import("./layers/support/ParquetPortalItemData.js").default;
5394
+
5381
5395
  /** @deprecated since 5.0. Refactor using \@arcgis/codemod */
5382
5396
  export type PixelBlockProperties = import("./layers/support/PixelBlock.js").PixelBlockProperties;
5383
5397
 
package/kernel.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import has from"./core/has.js";import{addQueryParameter as o}from"./core/urlUtils.js";export{buildDate,commitHash as revision}from"./support/revision.js";Symbol.dispose??=Symbol("Symbol.dispose"),Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");const e="5.1";let s,r=e;function i(o){s=o}function t(e){const r=s?.findCredential(e);return r?.token?o(e,"token",r.token):e}r="5.1.0-next.100",has("host-webworker")||globalThis.$arcgis||Object.defineProperty(globalThis,"$arcgis",{configurable:!1,enumerable:!0,writable:!1,value:{}}),has("host-webworker");export{t as addTokenParameter,r as fullVersion,s as id,i as setId,e as version};
2
+ import has from"./core/has.js";import{addQueryParameter as o}from"./core/urlUtils.js";export{buildDate,commitHash as revision}from"./support/revision.js";Symbol.dispose??=Symbol("Symbol.dispose"),Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");const e="5.1";let s,r=e;function i(o){s=o}function t(e){const r=s?.findCredential(e);return r?.token?o(e,"token",r.token):e}r="5.1.0-next.101",has("host-webworker")||globalThis.$arcgis||Object.defineProperty(globalThis,"$arcgis",{configurable:!1,enumerable:!0,writable:!1,value:{}}),has("host-webworker");export{t as addTokenParameter,r as fullVersion,s as id,i as setId,e as version};
@@ -307,7 +307,7 @@ export default class KnowledgeGraphLayer extends KnowledgeGraphLayerSuperclass {
307
307
  * const layerInclusionMemberDefinition = new Map();
308
308
  * layerInclusionMemberDefinition.set("{1A4W8G4-W52G-W89G-1W5G-J1R4S8H52H4S}",{id:"{1A4W8G4-W52G-W89G-1W5G-J1R4S8H52H4S}"})
309
309
  *
310
- * //The layerInclusionDefinition specifies whether to use all of the data in a named type or only the records
310
+ * // The layerInclusionDefinition specifies whether to use all of the data in a named type or only the records
311
311
  * // specified in the 'members' list. In this case we only want the records specified.
312
312
  * const layerInclusionDefinition = {
313
313
  * useAllData: false, //only include instances in the member list
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{fetchAndConvertSerializedKnowledgeIdMap as i,serializeInclusionDefinitionToIdCollectionsMapPbf as t}from"../applications/KnowledgeStudio/resourceSerializationUtils.js";import a from"../core/Collection.js";import s from"../core/Error.js";import n from"../core/Logger.js";import{getOrCreateMapValue as r}from"../core/MapUtils.js";import{MultiOriginJSONSupportMixin as o}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as l}from"../core/promiseUtils.js";import{watch as d,sync as h}from"../core/reactiveUtils.js";import{isAbsolute as p,join as y}from"../core/urlUtils.js";import{generateUUID as c}from"../core/uuid.js";import{property as m,subclass as u}from"../core/accessorSupport/decorators.js";import{idToName as f,nameToId as g}from"../core/accessorSupport/PropertyOrigin.js";import w from"./Layer.js";import{KnowledgeGraphLayerDataManager as b}from"./knowledgeGraph/KnowledgeGraphLayerDataManager.js";import M from"./knowledgeGraph/KnowledgeGraphSublayer.js";import{getTitleFromServerUrl as T,initializeLayersFromClientData as D,getUserKGSPrivileges as _,createCapabilitiesFromKnowledgeGraph as S}from"./knowledgeGraph/layerUtils.js";import{ArcGISService as v}from"./mixins/ArcGISService.js";import{BlendLayer as L}from"./mixins/BlendLayer.js";import{CustomParametersMixin as k}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as j}from"./mixins/OperationalLayer.js";import{PortalLayer as C}from"./mixins/PortalLayer.js";import{RefreshableLayer as G}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as I}from"./mixins/ScaleRangeLayer.js";import{url as N}from"./support/commonProperties.js";import{fetchKnowledgeGraph as A}from"../rest/knowledgeGraphService.js";import{f as E,t as x}from"../chunks/persistableUrlUtils.js";import{timeZoneProperty as R}from"../time/timeZoneUtils.js";import{reader as O}from"../core/accessorSupport/decorators/reader.js";import{writer as K}from"../core/accessorSupport/decorators/writer.js";let U=class extends(L(I(G(v(j(C(o(k(w))))))))){constructor(e){super(e),this._graphTypeLookup=new Map,this._namedTypesModified=!1,this.dataManager=null,this.definitionSetMap=null,this.knowledgeGraph=null,this.layers=new(a.ofType(M)),this.memberEntityTypes=null,this.memberRelationshipTypes=null,this.operationalLayerType="KnowledgeGraphLayer",this.sublayerIdsCache=new Map,this.tables=new(a.ofType(M)),this.type="knowledge-graph",this.url=null,!e?.title&&e?.url&&(this.title=T(e.url)),this.addHandles(d(()=>this.layers.concat(this.tables),(e,i)=>this._handleSublayersChange(e,i),h))}load(e){return this.addResolvingPromise(this._doLoad(e)),Promise.resolve(this)}async _doLoad(e){try{await this.loadFromPortal({supportedTypes:["Knowledge Graph Layer"]},e)}catch(i){l(i)}await this._fetchMetadata(e),await this._initializeLayerProperties(e),this.loadLayerAssumingLocalCache(),this._layersLoadedFromAuthoritativeItem()||await D(this)}async _fetchMetadata(e){if(!this.url)throw new s("knowledge-graph:missing-url","KnowledgeGraphLayer must be created with a url");const i=await A(this.url);this.knowledgeGraph=i;const{edit:t,fullEdit:a,updateItem:n}=await _(i.serviceDefinition.serviceItemId,this.url,e);this._set("userHasEditingPrivileges",t),this._set("userHasFullEditingPrivileges",a),this._set("userHasUpdateItemPrivileges",n),this.read({dateFieldsTimeReference:i.serviceDefinition.dateFieldsTimeReference},{origin:"service"}),this._forEachGraphType(e=>{e.name&&this._graphTypeLookup.set(e.name,e)})}async _initializeLayerProperties(e){7===this.originIdOf("inclusionModeDefinition")?this._validateInclusionModeDefinition():await this._initializeInclusionModeDefinition(e),this._setMemberTypes(),this.dataManager=new b({knowledgeGraph:this.knowledgeGraph,inclusionModeDefinition:this.inclusionModeDefinition})}async _initializeInclusionModeDefinition(e){const t=this.definitionSetMap?await i(this.definitionSetMap,!0,e?.signal?{signal:e.signal}:void 0):{generateAllSublayers:!0,namedTypeDefinitions:new Map};[...this.layers.toArray(),...this.tables.toArray()].forEach(e=>{const i=this._graphTypeLookup.get(e.graphTypeName);i&&!t.namedTypeDefinitions.has(i.name)&&t.namedTypeDefinitions.set(i.name,{useAllData:!0})}),this.setAtOrigin("inclusionModeDefinition",t,f(this.originIdOf("definitionSetMap")))}_validateInclusionModeDefinition(){const{inclusionModeDefinition:e}=this;if(!e)return;const{namedTypeDefinitions:i}=e;if(i?.size>0)i.forEach((e,t)=>{const a=this._graphTypeLookup.get(t);if(!a)return n.getLogger(this).warn(`A named type, ${t}, was in the inclusion list that wasn't in the data model and will be removed`),void i.delete(t);"relationship"!==a.type&&"entity"!==a.type&&(n.getLogger(this).warn(`A named type, ${t}, was in the inclusion list that wasn't properly modeled and will be removed`),i.delete(t))});else if(!e.generateAllSublayers)throw new s("knowledge-graph:composite-layer-constructor","If an explicit inclusion definition is defined, at least one namedTypeDefinition must also be defined")}_setMemberTypes(){let e=[],i=[];const{inclusionModeDefinition:t}=this,a=t?.namedTypeDefinitions;!t||t.generateAllSublayers?(e=this.knowledgeGraph.dataModel?.entityTypes??[],i=this.knowledgeGraph.dataModel?.relationshipTypes??[]):a&&a.size>0&&a.forEach((t,a)=>{const s=this._graphTypeLookup.get(a);switch(s?.type){case"relationship":i.push(s);break;case"entity":e.push(s)}}),this.memberEntityTypes=e,this.memberRelationshipTypes=i}_forEachGraphType(e){[...this.knowledgeGraph.dataModel?.entityTypes??[],...this.knowledgeGraph.dataModel?.relationshipTypes??[]].forEach(i=>{e(i)})}_refreshNamedTypes(){this._namedTypesModified=!0;for(const e of this.layers)e.emit("refresh",{dataChanged:!0});for(const e of this.tables)e.emit("refresh",{dataChanged:!0})}async _handleNewRecords(e){const i=new Set,t=[];for(const a of e){if(!this._graphTypeLookup.has(a.typeName))continue;!1===this.layers.concat(this.tables).some(e=>e.objectType.name===a.typeName)&&(this.dataManager.sublayerCaches.set(a.typeName,new Map),i.add(a.typeName));r(this.sublayerIdsCache,a.typeName,()=>new Set).add(a.id),t.push(a)}this.dataManager.addToLayer(t);for(const a of i){const e=this._graphTypeLookup.get(a);e&&(this._addSublayer(e),"entity"===e.type?this.dataManager.entityTypeNames.add(a):this.dataManager.relationshipTypeNames.add(a))}await D(this,Array.from(i)),this._refreshNamedTypes()}_createSublayers(e,i,t){e.forEach(e=>{const a=this._createSublayer(e);t(a)&&i.push(a),this._updateSublayerCaches(e)})}_addSublayer(e){const i=this._createSublayer(e);return i.geometryType?this.layers.push(i):this.tables.push(i),i}_createSublayer(e){return new M({objectType:e,parentCompositeLayer:this,graphType:e.type})}_updateSublayers(e,i){i.forEach(i=>{i.parentCompositeLayer=this;const t=e.find(e=>e.type===i.graphType&&e.name===i.graphTypeName);t&&(i.objectType=t,this._updateSublayerCaches(t))})}_updateSublayerCaches({name:e}){if(!e)return;const i=this.dataManager.sublayerCaches;i.has(e)||i.set(e,new Map)}_saveUrlAsNewResource(e,i,t,a){e[i]="<pending>",t.pendingOperations.push(F(this.inclusionModeDefinition).then(s=>{const n=z(a);e[i]=n.itemRelativeUrl,t.toAdd.push({resource:n,content:{type:"blob",blob:s},compress:!1,finish:e=>{this.definitionSetMap=e.url}})}))}_displaysAllRecords(e){for(const[,{useAllData:i}]of e.namedTypeDefinitions)if(!i)return!1;return!0}_handleSublayersChange(e,i){i&&(i.forEach(e=>{e.parent=null}),this.removeHandles("sublayers-owner")),e&&(e.forEach(e=>{e.parent=this}),this.addHandles([e.on("after-add",({item:e})=>{e.parent=this}),e.on("after-remove",({item:e})=>{e.parent=null})],"sublayers-owner"))}_layersLoadedFromAuthoritativeItem(){const e=this.originIdOf("layers");return e>=3&&e<7}readDefinitionSetMap(e,i,t){return E(e,t)}writeDefinitionSetMap(e,i,t,a){const s=a?.portalItem,n=a?.resources,r=g(a?.origin);if(!s||!n||null==r)return void(e&&(i[t]=x(e,a)));const{inclusionModeDefinition:o}=this;if(!o||this._displaysAllRecords(o))return void(this.definitionSetMap=null);const l=this.originIdOf("inclusionModeDefinition");if(7===l||this._namedTypesModified||r<l)this._saveUrlAsNewResource(i,t,n,s);else if(r===l&&e){const r=x(e,a);p(r)?this._saveUrlAsNewResource(i,t,n,s):i[t]=r}}set inclusionModeDefinition(e){"loaded"!==this.loadStatus&&"failed"!==this.loadStatus?this._set("inclusionModeDefinition",e):n.getLogger(this).error("#inclusionModeDefinition","inclusionModeDefinition cannot be changed after the layer is loaded.")}get sublayerCapabilities(){return S(this.knowledgeGraph)}loadLayerAssumingLocalCache(){const e=[...this.memberEntityTypes,...this.memberRelationshipTypes];this.layers.length||0===this.originIdOf("tables")?0===this.originIdOf("layers")?this._createSublayers(e,this.layers,e=>!!e.geometryType):this._updateSublayers(e,this.layers):this.layers=new a,this.tables.length||0===this.originIdOf("layers")?0===this.originIdOf("tables")?this._createSublayers(e,this.tables,e=>!e.geometryType):this._updateSublayers(e,this.tables):this.tables=new a,this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.forEach((e,i)=>{const t=r(this.sublayerIdsCache,i,()=>new Set);e.members?.forEach(e=>{t.add(e.id)})})}async addRecords(e){await this.load(),await this._handleNewRecords(e)}async createSublayerForNamedType(e){await this.load();const i=this._graphTypeLookup.get(e);if(!i)throw new s("knowledge-graph:missing-type","The specified type does not exist in the layer's graph data model.");if(this.dataManager.sublayerCaches.has(e))throw new s("knowledge-graph:duplicate-type","The specified type already exists as a sublayer.");this.dataManager.sublayerCaches.set(e,new Map),r(this.sublayerIdsCache,e,()=>new Set);const t=this._addSublayer(i);return"entity"===i.type?this.dataManager.entityTypeNames.add(e):this.dataManager.relationshipTypeNames.add(e),this.dataManager.inclusionModeDefinition&&this.dataManager.inclusionModeDefinition.namedTypeDefinitions.set(e,{useAllData:!0}),await D(this,[e]),this._refreshNamedTypes(),t}convertSublayerToDynamicData(e){if(!this.dataManager.inclusionModeDefinition)throw new s("knowledge-graph:fully-dynamic-membership","This Knowledge Graph Layer already uses fully dynamic membership, individual sublayers cannot be converted");if(!this._graphTypeLookup.get(e))throw new s("knowledge-graph:missing-type","The specified type does not exist in the layer's graph data model.");if(!this.dataManager.sublayerCaches.has(e))throw new s("knowledge-graph:duplicate-type","The specified type does not exist as a sublayer.");const i=this.dataManager.inclusionModeDefinition.namedTypeDefinitions.get(e);i?.useAllData?n.getLogger(this).warn("This Knowledge Graph Layer already uses dynamic membership for the sublayer - no conversion was made"):(this.dataManager.inclusionModeDefinition.namedTypeDefinitions.set(e,{useAllData:!0}),this.sublayerIdsCache.delete(e),this._refreshNamedTypes())}convertSublayerToExplicitMembership(e){if(!this.dataManager.inclusionModeDefinition)throw new s("knowledge-graph:fully-dynamic-membership","This Knowledge Graph Layer already uses fully dynamic membership, individual sublayers cannot be converted");if(!this._graphTypeLookup.get(e))throw new s("knowledge-graph:missing-type","The specified type does not exist in the layer's graph data model.");const i=this.dataManager.inclusionModeDefinition.namedTypeDefinitions.get(e);if(!i||i.useAllData){if(!this.dataManager.sublayerCaches.has(e))throw new s("knowledge-graph:duplicate-type","The specified type does not exist as a sublayer.");this.sublayerIdsCache.set(e,new Set),this.dataManager.inclusionModeDefinition.namedTypeDefinitions.set(e,{useAllData:!1,members:new Map}),this._refreshNamedTypes()}else n.getLogger(this).warn("This Knowledge Graph Layer already uses explicit membership for the sublayer - no conversion was made")}convertToFullyDynamicData(){this.dataManager.inclusionModeDefinition||n.getLogger(this).warn("This Knowledge Graph Layer already uses fully dynamic membership - no conversion was made"),this.sublayerIdsCache.clear(),this.dataManager.inclusionModeDefinition=null,this._refreshNamedTypes()}convertToExplicitMembership(){this.dataManager.inclusionModeDefinition&&this.dataManager.inclusionModeDefinition.namedTypeDefinitions.size>0&&n.getLogger(this).warn("This Knowledge Graph Layer already uses explicit membership - no conversion was made"),this.dataManager.inclusionModeDefinition={generateAllSublayers:!1,namedTypeDefinitions:new Map};for(const e of this.dataManager.sublayerCaches.keys())r(this.sublayerIdsCache,e,()=>new Set),this.dataManager.inclusionModeDefinition.namedTypeDefinitions.set(e,{useAllData:!1,members:new Map});this._refreshNamedTypes()}async removeRecords(e){await this.load();const i=[];for(const t of e)!1===this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.get(t.typeName)?.useAllData&&this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.get(t.typeName)?.members?.has(t.id)&&i.push(t);this.dataManager.removeFromLayer(i);for(const t of i)this.sublayerIdsCache.get(t.typeName)?.delete(t.id);return this._refreshNamedTypes(),i}};e([m()],U.prototype,"dataManager",void 0),e([m({json:{write:{ignoreOrigin:!0,writerEnsuresNonNull:!0}}})],U.prototype,"definitionSetMap",void 0),e([O("definitionSetMap")],U.prototype,"readDefinitionSetMap",null),e([K("definitionSetMap")],U.prototype,"writeDefinitionSetMap",null),e([m()],U.prototype,"inclusionModeDefinition",null),e([m()],U.prototype,"knowledgeGraph",void 0),e([m({type:a.ofType(M),json:{write:{ignoreOrigin:!0}}})],U.prototype,"layers",void 0),e([m()],U.prototype,"memberEntityTypes",void 0),e([m()],U.prototype,"memberRelationshipTypes",void 0),e([m({type:["KnowledgeGraphLayer"]})],U.prototype,"operationalLayerType",void 0),e([m()],U.prototype,"sublayerCapabilities",null),e([m()],U.prototype,"sublayerIdsCache",void 0),e([m({type:a.ofType(M),json:{write:{ignoreOrigin:!0}}})],U.prototype,"tables",void 0),e([m({json:{read:!1}})],U.prototype,"type",void 0),e([m(N)],U.prototype,"url",void 0),e([m(R("dateFieldsTimeReference"))],U.prototype,"dateFieldsTimeZone",void 0),U=e([u("esri.layers.KnowledgeGraphLayer")],U);const P=U;async function F(e){const i=await t(e);return new Blob([i],{type:"application/x-protobuf"})}function z(e){const i=`definitionSetMap-${c()}.dat`,t=y("knowledgeGraphLayer",i);return e.resourceFromPath(t)}export{P as default};
2
+ import{__decorate as e}from"tslib";import{fetchAndConvertSerializedKnowledgeIdMap as i,serializeInclusionDefinitionToIdCollectionsMapPbf as t}from"../applications/KnowledgeStudio/resourceSerializationUtils.js";import a from"../core/Collection.js";import s from"../core/Error.js";import n from"../core/Logger.js";import{getOrCreateMapValue as o}from"../core/MapUtils.js";import{MultiOriginJSONSupportMixin as r}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as l}from"../core/promiseUtils.js";import{watch as d,sync as h}from"../core/reactiveUtils.js";import{isAbsolute as p,join as y}from"../core/urlUtils.js";import{generateUUID as c}from"../core/uuid.js";import{property as m,subclass as u}from"../core/accessorSupport/decorators.js";import{idToName as f,nameToId as g}from"../core/accessorSupport/PropertyOrigin.js";import w from"./Layer.js";import{KnowledgeGraphLayerDataManager as M}from"./knowledgeGraph/KnowledgeGraphLayerDataManager.js";import b from"./knowledgeGraph/KnowledgeGraphSublayer.js";import{getTitleFromServerUrl as T,initializeLayersFromClientData as D,getUserKGSPrivileges as _,createCapabilitiesFromKnowledgeGraph as S}from"./knowledgeGraph/layerUtils.js";import{ArcGISService as v}from"./mixins/ArcGISService.js";import{BlendLayer as L}from"./mixins/BlendLayer.js";import{CustomParametersMixin as k}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as j}from"./mixins/OperationalLayer.js";import{PortalLayer as A}from"./mixins/PortalLayer.js";import{RefreshableLayer as C}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as G}from"./mixins/ScaleRangeLayer.js";import{url as I}from"./support/commonProperties.js";import{fetchKnowledgeGraph as N}from"../rest/knowledgeGraphService.js";import{f as E,t as x}from"../chunks/persistableUrlUtils.js";import{timeZoneProperty as R}from"../time/timeZoneUtils.js";import{reader as O}from"../core/accessorSupport/decorators/reader.js";import{writer as K}from"../core/accessorSupport/decorators/writer.js";let U=class extends(L(G(C(v(j(A(r(k(w))))))))){constructor(e){super(e),this._graphTypeLookup=new Map,this._namedTypesModified=!1,this.dataManager=null,this.definitionSetMap=null,this.knowledgeGraph=null,this.layers=new(a.ofType(b)),this.memberEntityTypes=null,this.memberRelationshipTypes=null,this.operationalLayerType="KnowledgeGraphLayer",this.sublayerIdsCache=new Map,this.tables=new(a.ofType(b)),this.type="knowledge-graph",this.url=null,!e?.title&&e?.url&&(this.title=T(e.url)),this.addHandles(d(()=>this.layers.concat(this.tables),(e,i)=>this._handleSublayersChange(e,i),h))}load(e){return this.addResolvingPromise(this._doLoad(e)),Promise.resolve(this)}async _doLoad(e){try{await this.loadFromPortal({supportedTypes:["Knowledge Graph Layer"]},e)}catch(i){l(i)}await this._fetchMetadata(e),await this._initializeLayerProperties(e),this.loadLayerAssumingLocalCache(),this._layersLoadedFromAuthoritativeItem()||await D(this)}async _fetchMetadata(e){if(!this.url)throw new s("knowledge-graph:missing-url","KnowledgeGraphLayer must be created with a url");const i=await N(this.url);this.knowledgeGraph=i;const{edit:t,fullEdit:a,updateItem:n}=await _(i.serviceDefinition.serviceItemId,this.url,e);this._set("userHasEditingPrivileges",t),this._set("userHasFullEditingPrivileges",a),this._set("userHasUpdateItemPrivileges",n),this.read({dateFieldsTimeReference:i.serviceDefinition.dateFieldsTimeReference},{origin:"service"}),this._forEachGraphType(e=>{e.name&&this._graphTypeLookup.set(e.name,e)})}async _initializeLayerProperties(e){7===this.originIdOf("inclusionModeDefinition")?this._validateInclusionModeDefinition():await this._initializeInclusionModeDefinition(e),this._setMemberTypes(),this.dataManager=new M({knowledgeGraph:this.knowledgeGraph,inclusionModeDefinition:this.inclusionModeDefinition})}async _initializeInclusionModeDefinition(e){const t=this.definitionSetMap?await i(this.definitionSetMap,!0,e?.signal?{signal:e.signal}:void 0):{generateAllSublayers:!0,namedTypeDefinitions:new Map};[...this.layers.toArray(),...this.tables.toArray()].forEach(e=>{const i=this._graphTypeLookup.get(e.graphTypeName);i&&!t.namedTypeDefinitions.has(i.name)&&t.namedTypeDefinitions.set(i.name,{useAllData:!0})}),this.setAtOrigin("inclusionModeDefinition",t,f(this.originIdOf("definitionSetMap")))}_validateInclusionModeDefinition(){const{inclusionModeDefinition:e}=this;if(!e)return;const{namedTypeDefinitions:i}=e;if(i?.size>0)i.forEach((e,t)=>{const a=this._graphTypeLookup.get(t);if(!a)return n.getLogger(this).warn(`A named type, ${t}, was in the inclusion list that wasn't in the data model and will be removed`),void i.delete(t);"relationship"!==a.type&&"entity"!==a.type&&(n.getLogger(this).warn(`A named type, ${t}, was in the inclusion list that wasn't properly modeled and will be removed`),i.delete(t))});else if(!e.generateAllSublayers)throw new s("knowledge-graph:composite-layer-constructor","If an explicit inclusion definition is defined, at least one namedTypeDefinition must also be defined")}_setMemberTypes(){let e=[],i=[];const{inclusionModeDefinition:t}=this,a=t?.namedTypeDefinitions;!t||t.generateAllSublayers?(e=this.knowledgeGraph.dataModel?.entityTypes??[],i=this.knowledgeGraph.dataModel?.relationshipTypes??[]):a&&a.size>0&&a.forEach((t,a)=>{const s=this._graphTypeLookup.get(a);switch(s?.type){case"relationship":i.push(s);break;case"entity":e.push(s)}}),this.memberEntityTypes=e,this.memberRelationshipTypes=i}_forEachGraphType(e){[...this.knowledgeGraph.dataModel?.entityTypes??[],...this.knowledgeGraph.dataModel?.relationshipTypes??[]].forEach(i=>{e(i)})}_refreshNamedTypes(){this._namedTypesModified=!0;for(const e of this.layers)e.emit("refresh",{dataChanged:!0});for(const e of this.tables)e.emit("refresh",{dataChanged:!0})}async _handleNewRecords(e){const i=new Set,t=[];for(const a of e){if(!this._graphTypeLookup.has(a.typeName))continue;!1===this.layers.concat(this.tables).some(e=>e.objectType.name===a.typeName)&&(this.dataManager.sublayerCaches.set(a.typeName,new Map),i.add(a.typeName));o(this.sublayerIdsCache,a.typeName,()=>new Set).add(a.id),t.push(a)}this.dataManager.addToLayer(t);for(const a of i){const e=this._graphTypeLookup.get(a);e&&(this._addSublayer(e),"entity"===e.type?this.dataManager.entityTypeNames.add(a):this.dataManager.relationshipTypeNames.add(a))}await D(this,Array.from(i)),this._refreshNamedTypes()}_createSublayers(e,i,t){e.forEach(e=>{const a=this._createSublayer(e);t(a)&&i.push(a),this._updateSublayerCaches(e)})}_addSublayer(e){const i=this._createSublayer(e);return i.geometryType?this.layers.push(i):this.tables.push(i),i}_createSublayer(e){return new b({objectType:e,parentCompositeLayer:this,graphType:e.type})}_updateSublayers(e,i){i.forEach(i=>{i.parentCompositeLayer=this;const t=e.find(e=>e.type===i.graphType&&e.name===i.graphTypeName);t&&(i.objectType=t,this._updateSublayerCaches(t))})}_updateSublayerCaches({name:e}){if(!e)return;const i=this.dataManager.sublayerCaches;i.has(e)||i.set(e,new Map)}_saveUrlAsNewResource(e,i,t,a){e[i]="<pending>",t.pendingOperations.push(F(this.inclusionModeDefinition).then(s=>{const n=z(a);e[i]=n.itemRelativeUrl,t.toAdd.push({resource:n,content:{type:"blob",blob:s},compress:!1,finish:e=>{this.definitionSetMap=e.url}})}))}_displaysAllRecords(e){for(const[,{useAllData:i}]of e.namedTypeDefinitions)if(!i)return!1;return!0}_handleSublayersChange(e,i){i&&(i.forEach(e=>{e.parent=null}),this.removeHandles("sublayers-owner")),e&&(e.forEach(e=>{e.parent=this}),this.addHandles([e.on("after-add",({item:e})=>{e.parent=this}),e.on("after-remove",({item:e})=>{e.parent=null})],"sublayers-owner"))}_layersLoadedFromAuthoritativeItem(){const e=this.originIdOf("layers");return e>=3&&e<7}readDefinitionSetMap(e,i,t){return E(e,t)}writeDefinitionSetMap(e,i,t,a){const s=a?.portalItem,n=a?.resources,o=g(a?.origin);if(!s||!n||null==o)return void(e&&(i[t]=x(e,a)));const{inclusionModeDefinition:r}=this;if(!r||this._displaysAllRecords(r))return void(this.definitionSetMap=null);const l=this.originIdOf("inclusionModeDefinition");if(7===l||this._namedTypesModified||o<l)this._saveUrlAsNewResource(i,t,n,s);else if(o===l&&e){const o=x(e,a);p(o)?this._saveUrlAsNewResource(i,t,n,s):i[t]=o}}set inclusionModeDefinition(e){"loaded"!==this.loadStatus&&"failed"!==this.loadStatus?this._set("inclusionModeDefinition",e):n.getLogger(this).error("#inclusionModeDefinition","inclusionModeDefinition cannot be changed after the layer is loaded.")}get sublayerCapabilities(){return S(this.knowledgeGraph)}loadLayerAssumingLocalCache(){const e=[...this.memberEntityTypes,...this.memberRelationshipTypes];this.layers.length||0===this.originIdOf("tables")?0===this.originIdOf("layers")?this._createSublayers(e,this.layers,e=>!!e.geometryType):this._updateSublayers(e,this.layers):this.layers=new a,this.tables.length||0===this.originIdOf("layers")?0===this.originIdOf("tables")?this._createSublayers(e,this.tables,e=>!e.geometryType):this._updateSublayers(e,this.tables):this.tables=new a,this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.forEach((e,i)=>{const t=o(this.sublayerIdsCache,i,()=>new Set);e.members?.forEach(e=>{t.add(e.id)})})}async addRecords(e){await this.load(),await this._handleNewRecords(e)}async createSublayerForNamedType(e){await this.load();const i=this._graphTypeLookup.get(e);if(!i)throw new s("knowledge-graph:missing-type","The specified type does not exist in the layer's graph data model.");if(this.dataManager.sublayerCaches.has(e))throw new s("knowledge-graph:duplicate-type","The specified type already exists as a sublayer.");this.dataManager.sublayerCaches.set(e,new Map),o(this.sublayerIdsCache,e,()=>new Set);const t=this._addSublayer(i);return"entity"===i.type?this.dataManager.entityTypeNames.add(e):this.dataManager.relationshipTypeNames.add(e),this.dataManager.inclusionModeDefinition&&this.dataManager.inclusionModeDefinition.namedTypeDefinitions.set(e,{useAllData:!0}),await D(this,[e]),this._refreshNamedTypes(),t}convertSublayerToDynamicData(e){if(!this.dataManager.inclusionModeDefinition)throw new s("knowledge-graph:fully-dynamic-membership","This Knowledge Graph Layer already uses fully dynamic membership, individual sublayers cannot be converted");if(!this._graphTypeLookup.get(e))throw new s("knowledge-graph:missing-type","The specified type does not exist in the layer's graph data model.");if(!this.dataManager.sublayerCaches.has(e))throw new s("knowledge-graph:duplicate-type","The specified type does not exist as a sublayer.");const i=this.dataManager.inclusionModeDefinition.namedTypeDefinitions.get(e);i?.useAllData?n.getLogger(this).warn("This Knowledge Graph Layer already uses dynamic membership for the sublayer - no conversion was made"):(this.dataManager.inclusionModeDefinition.namedTypeDefinitions.set(e,{useAllData:!0}),this.sublayerIdsCache.delete(e),this._refreshNamedTypes())}convertSublayerToExplicitMembership(e){if(!this.dataManager.inclusionModeDefinition)throw new s("knowledge-graph:fully-dynamic-membership","This Knowledge Graph Layer already uses fully dynamic membership, individual sublayers cannot be converted");if(!this._graphTypeLookup.get(e))throw new s("knowledge-graph:missing-type","The specified type does not exist in the layer's graph data model.");const i=this.dataManager.inclusionModeDefinition.namedTypeDefinitions.get(e);if(!i||i.useAllData){if(!this.dataManager.sublayerCaches.has(e))throw new s("knowledge-graph:duplicate-type","The specified type does not exist as a sublayer.");this.sublayerIdsCache.set(e,new Set),this.dataManager.inclusionModeDefinition.namedTypeDefinitions.set(e,{useAllData:!1,members:new Map}),this._refreshNamedTypes()}else n.getLogger(this).warn("This Knowledge Graph Layer already uses explicit membership for the sublayer - no conversion was made")}convertToFullyDynamicData(){this.dataManager.inclusionModeDefinition||n.getLogger(this).warn("This Knowledge Graph Layer already uses fully dynamic membership - no conversion was made"),this.sublayerIdsCache.clear(),this.dataManager.inclusionModeDefinition=null,this.setAtOrigin("inclusionModeDefinition",this.dataManager.inclusionModeDefinition,f(7)),this._refreshNamedTypes()}convertToExplicitMembership(){this.dataManager.inclusionModeDefinition&&this.dataManager.inclusionModeDefinition.namedTypeDefinitions.size>0&&n.getLogger(this).warn("This Knowledge Graph Layer already uses explicit membership - no conversion was made"),this.dataManager.inclusionModeDefinition={generateAllSublayers:!1,namedTypeDefinitions:new Map},this.setAtOrigin("inclusionModeDefinition",this.dataManager.inclusionModeDefinition,f(7));for(const e of this.dataManager.sublayerCaches.keys())o(this.sublayerIdsCache,e,()=>new Set),this.dataManager.inclusionModeDefinition.namedTypeDefinitions.set(e,{useAllData:!1,members:new Map});this._refreshNamedTypes()}async removeRecords(e){await this.load();const i=[];for(const t of e)!1===this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.get(t.typeName)?.useAllData&&this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.get(t.typeName)?.members?.has(t.id)&&i.push(t);this.dataManager.removeFromLayer(i);for(const t of i)this.sublayerIdsCache.get(t.typeName)?.delete(t.id);return this._refreshNamedTypes(),i}};e([m()],U.prototype,"dataManager",void 0),e([m({json:{write:{ignoreOrigin:!0,writerEnsuresNonNull:!0}}})],U.prototype,"definitionSetMap",void 0),e([O("definitionSetMap")],U.prototype,"readDefinitionSetMap",null),e([K("definitionSetMap")],U.prototype,"writeDefinitionSetMap",null),e([m()],U.prototype,"inclusionModeDefinition",null),e([m()],U.prototype,"knowledgeGraph",void 0),e([m({type:a.ofType(b),json:{write:{ignoreOrigin:!0}}})],U.prototype,"layers",void 0),e([m()],U.prototype,"memberEntityTypes",void 0),e([m()],U.prototype,"memberRelationshipTypes",void 0),e([m({type:["KnowledgeGraphLayer"]})],U.prototype,"operationalLayerType",void 0),e([m()],U.prototype,"sublayerCapabilities",null),e([m()],U.prototype,"sublayerIdsCache",void 0),e([m({type:a.ofType(b),json:{write:{ignoreOrigin:!0}}})],U.prototype,"tables",void 0),e([m({json:{read:!1}})],U.prototype,"type",void 0),e([m(I)],U.prototype,"url",void 0),e([m(R("dateFieldsTimeReference"))],U.prototype,"dateFieldsTimeZone",void 0),U=e([u("esri.layers.KnowledgeGraphLayer")],U);const P=U;async function F(e){const i=await t(e);return new Blob([i],{type:"application/x-protobuf"})}function z(e){const i=`definitionSetMap-${c()}.dat`,t=y("knowledgeGraphLayer",i);return e.resourceFromPath(t)}export{P as default};
@@ -20,7 +20,7 @@ import type { OperationalLayer, OperationalLayerProperties } from "./mixins/Oper
20
20
  import type { OrderedLayer, OrderedLayerProperties } from "./mixins/OrderedLayer.js";
21
21
  import type { ScaleRangeLayer, ScaleRangeLayerProperties } from "./mixins/ScaleRangeLayer.js";
22
22
  import type { ParquetGeometryType } from "./support/parquetUtils.js";
23
- import type { DomainUnion, ParquetGeometryEncodingUnion } from "./support/types.js";
23
+ import type { DomainUnion, ParquetDataUnion, ParquetGeometryEncodingUnion } from "./support/types.js";
24
24
  import type { RendererUnion } from "../renderers/types.js";
25
25
  import type { QueryProperties } from "../rest/support/Query.js";
26
26
  import type { CreatePopupTemplateOptions } from "../support/popupUtils.js";
@@ -39,10 +39,28 @@ import type { UniqueValueRendererProperties } from "../renderers/UniqueValueRend
39
39
  import type { ClassBreaksRendererProperties } from "../renderers/ClassBreaksRenderer.js";
40
40
  import type { SimpleRendererProperties } from "../renderers/SimpleRenderer.js";
41
41
  import type { SpatialReferenceProperties } from "../geometry/SpatialReference.js";
42
+ import type { ParquetPortalItemDataProperties } from "./support/ParquetPortalItemData.js";
43
+ import type { ParquetFilesDataProperties } from "./support/ParquetFilesData.js";
42
44
  import type { ReadonlyArrayOrCollection } from "../core/Collection.js";
43
45
  import type { LayerProperties } from "./Layer.js";
44
46
 
45
47
  export interface ParquetLayerProperties extends LayerProperties, CustomParametersMixinProperties, OperationalLayerProperties, ScaleRangeLayerProperties, OrderedLayerProperties, BlendLayerProperties, FeatureEffectLayerProperties, FeatureReductionLayerProperties, Partial<Pick<ParquetLayer, "copyright" | "definitionExpression" | "geometryType" | "labelsVisible" | "legendEnabled" | "outFields" | "popupEnabled">> {
48
+ /**
49
+ * The data backing the layer.
50
+ *
51
+ * @since 5.1
52
+ * @example
53
+ * // Create a parquet layer from multiple Parquet files
54
+ * const layer = new ParquetLayer({
55
+ * data: new ParquetFilesData({
56
+ * urls: [
57
+ * "https://example.com/path/to/parquetfile1.parquet",
58
+ * "https://example.com/path/to/parquetfile2.parquet"
59
+ * ]
60
+ * })
61
+ * });
62
+ */
63
+ data?: (ParquetFilesDataProperties | (ParquetPortalItemDataProperties & { type: "portal-item" })) | null;
46
64
  /**
47
65
  * An array of fields in the layer.
48
66
  *
@@ -102,7 +120,9 @@ export interface ParquetLayerProperties extends LayerProperties, CustomParameter
102
120
  * @example
103
121
  * // ParquetLayer with WKB geometry encoding
104
122
  * const layer = new ParquetLayer({
105
- * urls: ["https://example.com/path/to/parquetfile.parquet"],
123
+ * data: new ParquetFilesData({
124
+ * urls: ["https://example.com/path/to/parquetfile.parquet"]
125
+ * }),
106
126
  * geometryEncoding: new ParquetGeometryEncodingWkb({
107
127
  * field: "polyGeometry"
108
128
  * }), // WKB geometry column
@@ -180,8 +200,9 @@ export interface ParquetLayerProperties extends LayerProperties, CustomParameter
180
200
  /**
181
201
  * Collection of urls for Parquet files.
182
202
  *
203
+ * @deprecated since 5.1. Use [data](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#data) with [ParquetFilesData](https://developers.arcgis.com/javascript/latest/references/core/layers/support/ParquetFilesData/) instead.
183
204
  * @example
184
- * // create parquet layer from multiple Parquet files
205
+ * // Create a parquet layer from multiple Parquet files
185
206
  * const layer = new ParquetLayer({
186
207
  * urls: [
187
208
  * "https://example.com/path/to/parquetfile1.parquet",
@@ -189,7 +210,7 @@ export interface ParquetLayerProperties extends LayerProperties, CustomParameter
189
210
  * ]
190
211
  * });
191
212
  */
192
- urls?: ReadonlyArrayOrCollection<string>;
213
+ urls?: ReadonlyArrayOrCollection<string> | string[] | null;
193
214
  }
194
215
 
195
216
  /**
@@ -209,18 +230,20 @@ export interface ParquetLayerProperties extends LayerProperties, CustomParameter
209
230
  * or rely on auto-detection, see the [geometryEncoding](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#geometryEncoding) property.
210
231
  *
211
232
  * ParquetLayers may be created by either:
212
- * ###### Specifying the [urls](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#urls) of the Parquet files.
233
+ * ###### Specifying the [data](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#data) for the Parquet files.
213
234
  *
214
- * The ParquetLayer can be loaded by setting its [urls](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#urls) property to the urls of the Parquet files.
235
+ * The ParquetLayer can be loaded by setting its [data](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#data) property to file-backed data.
215
236
  * The following snippet shows how to add a new ParquetLayer to the map.
216
237
  *
217
238
  * ```js
218
239
  * // Add the Parquet files from given urls as a parquet layer.
219
240
  * const layer = new ParquetLayer({
220
- * urls: [
221
- * "url-to-parquet-file1.parquet",
222
- * "url-to-parquet-file2.parquet"
223
- * ]
241
+ * data: new ParquetFilesData({
242
+ * urls: [
243
+ * "url-to-parquet-file1.parquet",
244
+ * "url-to-parquet-file2.parquet"
245
+ * ]
246
+ * })
224
247
  * });
225
248
  * map.add(layer);
226
249
  * ```
@@ -277,10 +300,12 @@ export default class ParquetLayer extends ParquetLayerSuperclass {
277
300
  /**
278
301
  * @example
279
302
  * const layer = new ParquetLayer({
280
- * urls: [
281
- * "https://example.com/path/to/parquetfile1.parquet",
282
- * "https://example.com/path/to/parquetfile2.parquet"
283
- * ]
303
+ * data: new ParquetFilesData({
304
+ * urls: [
305
+ * "https://example.com/path/to/parquetfile1.parquet",
306
+ * "https://example.com/path/to/parquetfile2.parquet"
307
+ * ]
308
+ * })
284
309
  * });
285
310
  * mapElement.map.add(layer); // adds the layer to the map
286
311
  */
@@ -289,6 +314,23 @@ export default class ParquetLayer extends ParquetLayerSuperclass {
289
314
  get capabilities(): FeatureLayerCapabilities | null | undefined;
290
315
  /** Copyright information for the layer. */
291
316
  accessor copyright: string | null | undefined;
317
+ /**
318
+ * The data backing the layer.
319
+ *
320
+ * @since 5.1
321
+ * @example
322
+ * // Create a parquet layer from multiple Parquet files
323
+ * const layer = new ParquetLayer({
324
+ * data: new ParquetFilesData({
325
+ * urls: [
326
+ * "https://example.com/path/to/parquetfile1.parquet",
327
+ * "https://example.com/path/to/parquetfile2.parquet"
328
+ * ]
329
+ * })
330
+ * });
331
+ */
332
+ get data(): ParquetDataUnion | null | undefined;
333
+ set data(value: (ParquetFilesDataProperties | (ParquetPortalItemDataProperties & { type: "portal-item" })) | null | undefined);
292
334
  /**
293
335
  * The SQL where clause used to filter features on the client. Only the features that satisfy the definition
294
336
  * expression are displayed in the map. Setting a definition expression is useful
@@ -301,9 +343,11 @@ export default class ParquetLayer extends ParquetLayerSuperclass {
301
343
  * @example
302
344
  * // Set definition expression in constructor to only display water wells with Status = 'Constructed'
303
345
  * const layer = new ParquetLayer({
304
- * urls: [
305
- * "https://jsapi.maps.arcgis.com/sharing/rest/content/items/6ab6f959c1684eb5a54db91644a89747/data",
306
- * ],
346
+ * data: new ParquetFilesData({
347
+ * urls: [
348
+ * "https://jsapi.maps.arcgis.com/sharing/rest/content/items/6ab6f959c1684eb5a54db91644a89747/data",
349
+ * ]
350
+ * }),
307
351
  * definitionExpression: "Status = 'Constructed'"
308
352
  * });
309
353
  * @example
@@ -385,7 +429,9 @@ export default class ParquetLayer extends ParquetLayerSuperclass {
385
429
  * @example
386
430
  * // ParquetLayer with WKB geometry encoding
387
431
  * const layer = new ParquetLayer({
388
- * urls: ["https://example.com/path/to/parquetfile.parquet"],
432
+ * data: new ParquetFilesData({
433
+ * urls: ["https://example.com/path/to/parquetfile.parquet"]
434
+ * }),
389
435
  * geometryEncoding: new ParquetGeometryEncodingWkb({
390
436
  * field: "polyGeometry"
391
437
  * }), // WKB geometry column
@@ -402,7 +448,7 @@ export default class ParquetLayer extends ParquetLayerSuperclass {
402
448
  * Non-spatial Parquet files do not have geometry object that represent geographic features.
403
449
  * The [geometryType](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#geometryType) of the layer will be `null` if the `isTable` is `true`.
404
450
  *
405
- * A non-spatial table instance can be created from the [urls](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#urls) and the table must be loaded by calling [load()](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#load) method.
451
+ * A non-spatial table instance can be created from [file-backed layer data](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#data) and the table must be loaded by calling [load()](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#load).
406
452
  *
407
453
  * @default false
408
454
  * @since 4.34
@@ -535,8 +581,9 @@ export default class ParquetLayer extends ParquetLayerSuperclass {
535
581
  /**
536
582
  * Collection of urls for Parquet files.
537
583
  *
584
+ * @deprecated since 5.1. Use [data](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#data) with [ParquetFilesData](https://developers.arcgis.com/javascript/latest/references/core/layers/support/ParquetFilesData/) instead.
538
585
  * @example
539
- * // create parquet layer from multiple Parquet files
586
+ * // Create a parquet layer from multiple Parquet files
540
587
  * const layer = new ParquetLayer({
541
588
  * urls: [
542
589
  * "https://example.com/path/to/parquetfile1.parquet",
@@ -545,7 +592,7 @@ export default class ParquetLayer extends ParquetLayerSuperclass {
545
592
  * });
546
593
  */
547
594
  get urls(): Collection<string>;
548
- set urls(value: ReadonlyArrayOrCollection<string>);
595
+ set urls(value: ReadonlyArrayOrCollection<string> | string[] | null | undefined);
549
596
  /**
550
597
  * Creates a popup template for the layer, populated with all the fields of the layer.
551
598
  *
@@ -731,9 +778,11 @@ export default class ParquetLayer extends ParquetLayerSuperclass {
731
778
  * });
732
779
  * @example
733
780
  * const layer = new ParquetLayer({
734
- * urls: [
735
- * "parquet-file-url1.parquet"
736
- * ]
781
+ * data: new ParquetFilesData({
782
+ * urls: [
783
+ * "parquet-file-url1.parquet"
784
+ * ]
785
+ * })
737
786
  * });
738
787
  *
739
788
  * const query = new Query();
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import r from"../PopupTemplate.js";import{ClonableMixin as t}from"../core/Clonable.js";import i from"../core/Collection.js";import o from"../core/Error.js";import has from"../core/has.js";import{MultiOriginJSONSupportMixin as s}from"../core/MultiOriginJSONSupport.js";import{setDeepValue as n}from"../core/object.js";import{watch as p}from"../core/reactiveUtils.js";import{property as a}from"../core/accessorSupport/decorators/property.js";import{reader as l}from"../core/accessorSupport/decorators/reader.js";import{subclass as u}from"../core/accessorSupport/decorators/subclass.js";import{writer as d}from"../core/accessorSupport/decorators/writer.js";import m from"../geometry/Extent.js";import y from"../geometry/SpatialReference.js";import c from"../graphic/ParquetGraphicOrigin.js";import f from"./Layer.js";import{ParquetSource as h}from"./graphics/sources/ParquetSource.js";import{BlendLayer as g}from"./mixins/BlendLayer.js";import{CustomParametersMixin as j}from"./mixins/CustomParametersMixin.js";import{FeatureEffectLayer as v}from"./mixins/FeatureEffectLayer.js";import{FeatureReductionLayer as w}from"./mixins/FeatureReductionLayer.js";import{OperationalLayer as b}from"./mixins/OperationalLayer.js";import{OrderedLayer as O}from"./mixins/OrderedLayer.js";import{ScaleRangeLayer as x}from"./mixins/ScaleRangeLayer.js";import{labelsVisible as q,legendEnabled as E,popupEnabled as F}from"./support/commonProperties.js";import I from"./support/FeatureTemplate.js";import S from"./support/Field.js";import{defineFieldProperties as T}from"./support/fieldProperties.js";import{fixRendererFields as P}from"./support/fieldUtils.js";import R from"./support/GeometryEncodingLocation.js";import L from"./support/GeometryEncodingWkb.js";import U from"./support/LabelClass.js";import{reader as _}from"./support/labelingInfo.js";import{parquetGeometryTypeKebabDict as D}from"./support/parquetUtils.js";import{rendererTypes as z}from"../renderers/support/typeUtils.js";import C from"../rest/support/Query.js";import{t as Q}from"../chunks/persistableUrlUtils.js";import{createPopupTemplate as k}from"../support/popupUtils.js";const G=T(),J="__OBJECTID",M={types:{key:"type",base:null,typeMap:{wkb:L,location:R}},json:{name:"layerDefinition.geometryEncoding",write:{ignoreOrigin:!0,isRequired:!0},origins:{service:{read:{source:"geometryEncoding"}}}}};let N=class extends(w(v(g(O(x(b(s(j(t(f)))))))))){constructor(e){super(e),this.copyright=null,this.definitionExpression=null,this.displayOptimization=null,this.fields=null,this.fieldsIndex=null,this.geometryEncoding=null,this.fullExtent=null,this.geometryType=null,this.graphicOrigin=new c(this),this.labelsVisible=!0,this.labelingInfo=null,this.objectIdField=J,this.operationalLayerType="ParquetLayer",this.outFields=null,this.persistenceEnabled=!!has("parquetlayer-persistence-enabled"),this.popupTemplate=null,this.source=null,this.spatialReference=null,this.templates=null,this.title="Parquet",this.type="parquet",this.urls=new i}destroy(){this.source?.destroy()}async load(e){return this.addResolvingPromise(this._load(e)),this.addHandles([p(()=>this.urls,e=>this.source?.updateFiles(e.items)),p(()=>this.customParameters,e=>this.source?.setCustomParameters(e))]),this}get capabilities(){return this.source?.capabilities}get defaultPopupTemplate(){return this.createPopupTemplate()}writeFields(e,r,t,i){const o=e.filter(e=>!(e.name===J&&"oid"===e.type)).map(e=>e.toJSON(i));n(t,o,r)}get isTable(){return null==this.geometryEncoding&&null==this.displayOptimization}set renderer(e){P(e,this.fieldsIndex),this._set("renderer",e)}readUrls(e){return new i("files"===e.type?e.urls:[])}writeUrls(e,r,t,i){const s=[];if(e?.length){i={blockedRelativeUrls:i?.blockedRelativeUrls};for(let r of e)r=Q(r,i),r&&s.push(r)}s.length?r.source={type:"files",urls:s}:i.messages?.push(new o("parquet-layer:missing-urls","Missing or empty 'urls'",{layer:this}))}createPopupTemplate(e){return k(this,e)}createQuery(){const e=new C;return e.returnGeometry=!0,e.outFields=["*"],e.where=this.definitionExpression||"1=1",e}async createSource(e){const r=new h({layer:this});return await r.load(e),r}getFieldDomain(e,r){return null}getField(e){return this.fieldsIndex.get(e)}async queryFeatures(e,r){await this.load();const t=await this.source.queryFeatures(this._normalizeQuery(e),r),i=this.graphicOrigin;if(t?.features)for(const o of t.features)o.layer=o.sourceLayer=this,o.origin=i;return t}async queryObjectIds(e,r){return await this.load(),this.source.queryObjectIds(this._normalizeQuery(e),r)}async queryFeatureCount(e,r){return await this.load(),this.source.queryFeatureCount(this._normalizeQuery(e),r)}async queryExtent(e,r){return await this.load(),this.source.queryExtent(this._normalizeQuery(e),r)}_normalizeQuery(e){return C.from(e)??this.createQuery()}async _load(e){const r=await this.createSource(e);this._set("source",r),this.read(r.sourceJSON,{origin:"service"}),["fields"].forEach(e=>this.revertToOrigin(e,"service")),P(this.renderer,this.fieldsIndex),null==this.spatialReference&&(this.spatialReference=y.WGS84)}};e([a({readOnly:!0,json:{read:!1,write:!1}})],N.prototype,"capabilities",null),e([a({type:String})],N.prototype,"copyright",void 0),e([a({readOnly:!0})],N.prototype,"defaultPopupTemplate",null),e([a({type:String,json:{name:"layerDefinition.definitionExpression",write:{enabled:!0,allowNull:!0}}})],N.prototype,"definitionExpression",void 0),e([a()],N.prototype,"displayOptimization",void 0),e([a({type:[S],json:{name:"layerDefinition.fields",write:{ignoreOrigin:!0,isRequired:!0},origins:{service:{name:"fields"}}}})],N.prototype,"fields",void 0),e([d("fields")],N.prototype,"writeFields",null),e([a(G.fieldsIndex)],N.prototype,"fieldsIndex",void 0),e([a(M)],N.prototype,"geometryEncoding",void 0),e([a({type:m,json:{name:"extent"}})],N.prototype,"fullExtent",void 0),e([a({type:D.apiValues,json:{name:"layerDefinition.geometryType",read:{reader:D.read},write:{writer:D.write,ignoreOrigin:!0,isRequired:!0},origins:{service:{read:{source:"geometryType",reader:D.read}}}}})],N.prototype,"geometryType",void 0),e([a({readOnly:!0,clonable:!1})],N.prototype,"graphicOrigin",void 0),e([a(q)],N.prototype,"labelsVisible",void 0),e([a({type:[U],json:{name:"layerDefinition.drawingInfo.labelingInfo",read:{reader:_},write:!0}})],N.prototype,"labelingInfo",void 0),e([a(E)],N.prototype,"legendEnabled",void 0),e([a()],N.prototype,"file",void 0),e([a({type:String,readOnly:!0})],N.prototype,"objectIdField",void 0),e([a({type:["ParquetLayer"]})],N.prototype,"operationalLayerType",void 0),e([a(G.outFields)],N.prototype,"outFields",void 0),e([a(F)],N.prototype,"popupEnabled",void 0),e([a({type:r,json:{name:"popupInfo",write:!0}})],N.prototype,"popupTemplate",void 0),e([a({types:z,json:{name:"layerDefinition.drawingInfo.renderer",write:!0,origins:{service:{read:{source:"drawingInfo.renderer"}}}}})],N.prototype,"renderer",null),e([a({type:h,readOnly:!0,cast:null,json:{read:!1}})],N.prototype,"source",void 0),e([a({type:y,json:{name:"layerDefinition.spatialReference",write:{ignoreOrigin:!0,isRequired:!0},origins:{service:{read:{source:"extent.spatialReference"}}}}})],N.prototype,"spatialReference",void 0),e([a({type:[I]})],N.prototype,"templates",void 0),e([a()],N.prototype,"title",void 0),e([a({json:{read:!1},readOnly:!0})],N.prototype,"type",void 0),e([a({type:i.ofType(String),json:{name:"source",write:{isRequired:!0,ignoreOrigin:!0}}})],N.prototype,"urls",void 0),e([l("urls")],N.prototype,"readUrls",null),e([d("urls")],N.prototype,"writeUrls",null),N=e([u("esri.layers.ParquetLayer")],N);const V=N;export{V as default};
2
+ import{__decorate as e}from"tslib";import r from"../PopupTemplate.js";import{ClonableMixin as t}from"../core/Clonable.js";import i from"../core/Collection.js";import{deprecatedProperty as o}from"../core/deprecate.js";import s from"../core/Error.js";import has from"../core/has.js";import p from"../core/Logger.js";import{MultiOriginJSONSupportMixin as n}from"../core/MultiOriginJSONSupport.js";import{setDeepValue as a}from"../core/object.js";import{property as l}from"../core/accessorSupport/decorators/property.js";import{subclass as u}from"../core/accessorSupport/decorators/subclass.js";import{writer as d}from"../core/accessorSupport/decorators/writer.js";import m from"../geometry/Extent.js";import y from"../geometry/SpatialReference.js";import c from"../graphic/ParquetGraphicOrigin.js";import f from"./Layer.js";import{ParquetSource as h}from"./graphics/sources/ParquetSource.js";import{BlendLayer as g}from"./mixins/BlendLayer.js";import{CustomParametersMixin as j}from"./mixins/CustomParametersMixin.js";import{FeatureEffectLayer as w}from"./mixins/FeatureEffectLayer.js";import{FeatureReductionLayer as b}from"./mixins/FeatureReductionLayer.js";import{OperationalLayer as v}from"./mixins/OperationalLayer.js";import{OrderedLayer as O}from"./mixins/OrderedLayer.js";import{ScaleRangeLayer as x}from"./mixins/ScaleRangeLayer.js";import{labelsVisible as q,legendEnabled as E,popupEnabled as I}from"./support/commonProperties.js";import P from"./support/FeatureTemplate.js";import F from"./support/Field.js";import{defineFieldProperties as T}from"./support/fieldProperties.js";import{fixRendererFields as L}from"./support/fieldUtils.js";import S from"./support/GeometryEncodingLocation.js";import _ from"./support/GeometryEncodingWkb.js";import R from"./support/LabelClass.js";import{reader as D}from"./support/labelingInfo.js";import z from"./support/ParquetFilesData.js";import Q from"./support/ParquetPortalItemData.js";import{parquetGeometryTypeKebabDict as U}from"./support/parquetUtils.js";import{rendererTypes as C}from"../renderers/support/typeUtils.js";import k from"../rest/support/Query.js";import{createPopupTemplate as G}from"../support/popupUtils.js";const J=T(),M="__OBJECTID",N={types:{key:"type",base:null,typeMap:{wkb:_,location:S}},json:{name:"layerDefinition.geometryEncoding",write:{ignoreOrigin:!0,isRequired:!0},origins:{service:{read:{source:"geometryEncoding"}}}}};let V=class extends(b(w(g(O(x(v(n(j(t(f)))))))))){constructor(e){super(e),this._emptyUrls=new i,this.copyright=null,this.definitionExpression=null,this.displayOptimization=null,this.fields=null,this.fieldsIndex=null,this.geometryEncoding=null,this.fullExtent=null,this.geometryType=null,this.graphicOrigin=new c(this),this.labelsVisible=!0,this.labelingInfo=null,this.objectIdField=M,this.operationalLayerType="ParquetLayer",this.outFields=null,this.persistenceEnabled=!!has("parquetlayer-persistence-enabled"),this.popupTemplate=null,this.source=null,this.spatialReference=null,this.templates=null,this.title="Parquet",this.type="parquet",this.data=null}destroy(){this.source?.destroy()}async load(e){return this.addResolvingPromise(this._load(e)),this}get capabilities(){return this.source?.capabilities}get defaultPopupTemplate(){return this.createPopupTemplate()}writeFields(e,r,t,i){const o=e.filter(e=>!(e.name===M&&"oid"===e.type)).map(e=>e.toJSON(i));a(t,o,r)}get isTable(){return null==this.geometryEncoding&&null==this.displayOptimization}set renderer(e){L(e,this.fieldsIndex),this._set("renderer",e)}writeData(e,r,t,i){if(!e)return;const o=e.write({},i);"portal-item"!==o.type?o.urls.length&&(r.source=o):i.messages?.push(new s("parquet-layer:unsupported-data","Portal-item-backed Parquet data is not yet supported in web maps",{layer:this}))}get urls(){return"files"===this.data?.type?this.data.urls:this._emptyUrls}set urls(e){o(p.getLogger(this),"urls",{replacement:"data",version:"5.1",warnOnce:!0}),this.data=new z({urls:this._normalizeUrls(e)})}createPopupTemplate(e){return G(this,e)}createQuery(){const e=new k;return e.returnGeometry=!0,e.outFields=["*"],e.where=this.definitionExpression||"1=1",e}async createSource(e){const r=new h({layer:this});return await r.load(e),r}getFieldDomain(e,r){return null}getField(e){return this.fieldsIndex.get(e)}async queryFeatures(e,r){await this.load();const t=await this.source.queryFeatures(this._normalizeQuery(e),r),i=this.graphicOrigin;if(t?.features)for(const o of t.features)o.layer=o.sourceLayer=this,o.origin=i;return t}async queryObjectIds(e,r){return await this.load(),this.source.queryObjectIds(this._normalizeQuery(e),r)}async queryFeatureCount(e,r){return await this.load(),this.source.queryFeatureCount(this._normalizeQuery(e),r)}async queryExtent(e,r){return await this.load(),this.source.queryExtent(this._normalizeQuery(e),r)}_normalizeQuery(e){return k.from(e)??this.createQuery()}_normalizeUrls(e){return Array.isArray(e)?new i(e):e??new i}async _load(e){const r=await this.createSource(e);this._set("source",r),this.read(r.sourceJSON,{origin:"service"}),["fields"].forEach(e=>this.revertToOrigin(e,"service")),L(this.renderer,this.fieldsIndex),null==this.spatialReference&&(this.spatialReference=y.WGS84)}};e([l({readOnly:!0,json:{read:!1,write:!1}})],V.prototype,"capabilities",null),e([l({type:String})],V.prototype,"copyright",void 0),e([l({readOnly:!0})],V.prototype,"defaultPopupTemplate",null),e([l({type:String,json:{name:"layerDefinition.definitionExpression",write:{enabled:!0,allowNull:!0}}})],V.prototype,"definitionExpression",void 0),e([l()],V.prototype,"displayOptimization",void 0),e([l({type:[F],json:{name:"layerDefinition.fields",write:{ignoreOrigin:!0,isRequired:!0},origins:{service:{name:"fields"}}}})],V.prototype,"fields",void 0),e([d("fields")],V.prototype,"writeFields",null),e([l(J.fieldsIndex)],V.prototype,"fieldsIndex",void 0),e([l(N)],V.prototype,"geometryEncoding",void 0),e([l({type:m,json:{name:"extent"}})],V.prototype,"fullExtent",void 0),e([l({type:U.apiValues,json:{name:"layerDefinition.geometryType",read:{reader:U.read},write:{writer:U.write,ignoreOrigin:!0,isRequired:!0},origins:{service:{read:{source:"geometryType",reader:U.read}}}}})],V.prototype,"geometryType",void 0),e([l({readOnly:!0,clonable:!1})],V.prototype,"graphicOrigin",void 0),e([l(q)],V.prototype,"labelsVisible",void 0),e([l({type:[R],json:{name:"layerDefinition.drawingInfo.labelingInfo",read:{reader:D},write:!0}})],V.prototype,"labelingInfo",void 0),e([l(E)],V.prototype,"legendEnabled",void 0),e([l()],V.prototype,"file",void 0),e([l({type:String,readOnly:!0})],V.prototype,"objectIdField",void 0),e([l({type:["ParquetLayer"]})],V.prototype,"operationalLayerType",void 0),e([l(J.outFields)],V.prototype,"outFields",void 0),e([l(I)],V.prototype,"popupEnabled",void 0),e([l({type:r,json:{name:"popupInfo",write:!0}})],V.prototype,"popupTemplate",void 0),e([l({types:C,json:{name:"layerDefinition.drawingInfo.renderer",write:!0,origins:{service:{read:{source:"drawingInfo.renderer"}}}}})],V.prototype,"renderer",null),e([l({type:h,readOnly:!0,cast:null,json:{read:!1}})],V.prototype,"source",void 0),e([l({type:y,json:{name:"layerDefinition.spatialReference",write:{ignoreOrigin:!0,isRequired:!0},origins:{service:{read:{source:"extent.spatialReference"}}}}})],V.prototype,"spatialReference",void 0),e([l({type:[P]})],V.prototype,"templates",void 0),e([l()],V.prototype,"title",void 0),e([l({json:{read:!1},readOnly:!0})],V.prototype,"type",void 0),e([l({types:{key:"type",base:null,typeMap:{files:z,"portal-item":Q}},json:{name:"source",origins:{"web-map":{write:{target:"source",ignoreOrigin:!0}}}}})],V.prototype,"data",void 0),e([d("web-map","data")],V.prototype,"writeData",null),e([l({type:i.ofType(String),json:{read:!1,write:!1}})],V.prototype,"urls",null),V=e([u("esri.layers.ParquetLayer")],V);const A=V;export{A as default};
@@ -344,9 +344,9 @@ export interface SceneLayerEvents extends EditBusLayerEvents, LayerEvents {}
344
344
  * [![san-francisco-buildings](https://developers.arcgis.com/javascript/latest/assets/references/core/layers/scenelayer-buildings.avif)](https://tiles.arcgis.com/tiles/z2tnIkrLQ2BRzr6P/arcgis/rest/services/SanFrancisco_Bldgs/SceneServer)
345
345
  *
346
346
  * You can find many samples of SceneLayers in ArcGIS Online by
347
- * [searching the gallery](https://www.arcgis.com/home/search.html?start=1&sortOrder=desc&sortField=relevance&q=&focus=layers-weblayers-scenelayers).
347
+ * [searching the gallery](https://www.arcgis.com/home/search.html?restrict=false&sortField=relevance&sortOrder=desc&focus=layers-weblayers-3Dlayers).
348
348
  *
349
- * [![city-scene-layer-guide](https://developers.arcgis.com/javascript/latest/assets/images/guide/scene-layer/city-scene-layer-guide.avif)](https://www.arcgis.com/home/search.html?start=1&sortOrder=desc&sortField=relevance&q=&focus=layers-weblayers-scenelayers)
349
+ * [![city-scene-layer-guide](https://developers.arcgis.com/javascript/latest/assets/references/core/layers/city-scene-layer-guide.avif)](https://www.arcgis.com/home/search.html?restrict=false&sortField=relevance&sortOrder=desc&focus=layers-weblayers-3Dlayers)
350
350
  *
351
351
  * <span id="publishing-a-scenelayer"></span>
352
352
  * ## Publishing a SceneLayer
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as t}from"tslib";import{Loadable as e}from"../../../core/Loadable.js";import r from"../../../core/Logger.js";import{throwIfAborted as s}from"../../../core/promiseUtils.js";import{open as o}from"../../../core/workers.js";import{property as i}from"../../../core/accessorSupport/decorators/property.js";import{subclass as a}from"../../../core/accessorSupport/decorators/subclass.js";import n from"../../../geometry/Extent.js";import{toParquetJSONGeometryType as u}from"../../support/parquetUtils.js";import l from"../../../rest/support/FeatureSet.js";let c=class extends e{constructor(t){super(t),this.type="parquet"}load(t){const e=null!=t?t.signal:null;return this.addResolvingPromise(this._initialize(e)),Promise.resolve(this)}destroy(){this._connection?.destroy()}async openPorts(){return await this.load(),this._connection.openPorts()}setCustomParameters(t){this._proxy.setCustomParameters(t).catch(()=>{r.getLogger(this).warn("Failed to update customParameters")})}async updateFiles(t){await this._proxy.updateFiles(t)}async queryFeaturesJSON(t,e={}){return await this.load(e),this._proxy.queryFeatures(t.toJSON(),{signal:e?.signal})}async queryFeatures(t,e={}){const r=await this.queryFeaturesJSON(t,{signal:e?.signal});return l.fromJSON(r)}async queryObjectIds(t,e){return await this._proxy.queryObjectIds(t.toJSON(),{signal:e?.signal})}async queryFeatureCount(t,e){return this._proxy.queryFeatureCount(t.toJSON(),{signal:e?.signal})}async queryExtent(t,e){if(null==this.layer.geometryEncoding)return r.getLogger(this).warn("Tried to queryExtent, but source does not have a geometry. Returning null extent."),{count:0,extent:null};const s=await this._proxy.queryExtent(t.toJSON(),{signal:e?.signal});return{count:s.count,extent:n.fromJSON(s.extent)}}async _initialize(t){this._connection=await o("ParquetSourceWorker",{strategy:"dedicated",signal:t,registryTarget:this}),s(t),this._proxy=this._connection.createInvokeProxy();const{layerDefinition:e,capabilities:r}=await this._proxy.load({urls:this.layer.urls.items,fields:this.layer.fields?.map(t=>t.toJSON()),geometryType:this.layer.geometryType?u(this.layer.geometryType):null,spatialReference:this.layer.spatialReference?.toJSON(),geometryEncoding:this.layer.geometryEncoding?.toJSON(),displayOptimization:this.layer.displayOptimization,customParameters:this.layer.customParameters});s(t),this.sourceJSON=e,this.capabilities=r}};t([i()],c.prototype,"type",void 0),t([i({constructOnly:!0})],c.prototype,"layer",void 0),t([i()],c.prototype,"sourceJSON",void 0),t([i()],c.prototype,"capabilities",void 0),c=t([a("esri.layers.graphics.sources.ParquetSource")],c);export{c as ParquetSource};
2
+ import{__decorate as t}from"tslib";import{Loadable as e}from"../../../core/Loadable.js";import r from"../../../core/Logger.js";import{throwIfAborted as s}from"../../../core/promiseUtils.js";import{watch as o}from"../../../core/reactiveUtils.js";import{open as i}from"../../../core/workers.js";import{property as a}from"../../../core/accessorSupport/decorators/property.js";import{subclass as n}from"../../../core/accessorSupport/decorators/subclass.js";import l from"../../../geometry/Extent.js";import{resolveParquetDataUrls as u,toParquetJSONGeometryType as y}from"../../support/parquetUtils.js";import c from"../../../rest/support/FeatureSet.js";let p=class extends e{constructor(t){super(t),this.type="parquet",this.resolvedUrls=[]}load(t){const e=null!=t?t.signal:null;return this.addResolvingPromise(this._initialize(e)),this.addHandles([o(()=>"files"===this.layer.data?.type?this.layer.data.urls:null,t=>this.updateFiles(t?.items??[])),o(()=>this.layer.customParameters,t=>this.setCustomParameters(t))]),Promise.resolve(this)}destroy(){this._connection?.destroy()}async openPorts(){return await this.load(),this._connection.openPorts()}setCustomParameters(t){this._proxy.setCustomParameters(t).catch(()=>{r.getLogger(this).warn("Failed to update customParameters")})}async updateFiles(t){await this._proxy.updateFiles(t)}async queryFeaturesJSON(t,e={}){return await this.load(e),this._proxy.queryFeatures(t.toJSON(),{signal:e?.signal})}async queryFeatures(t,e={}){const r=await this.queryFeaturesJSON(t,{signal:e?.signal});return c.fromJSON(r)}async queryObjectIds(t,e){return await this._proxy.queryObjectIds(t.toJSON(),{signal:e?.signal})}async queryFeatureCount(t,e){return this._proxy.queryFeatureCount(t.toJSON(),{signal:e?.signal})}async queryExtent(t,e){if(null==this.layer.geometryEncoding)return r.getLogger(this).warn("Tried to queryExtent, but source does not have a geometry. Returning null extent."),{count:0,extent:null};const s=await this._proxy.queryExtent(t.toJSON(),{signal:e?.signal});return{count:s.count,extent:l.fromJSON(s.extent)}}async _initialize(t){const e=await u(this.layer.data,{signal:t});s(t),this._connection=await i("ParquetSourceWorker",{strategy:"dedicated",signal:t,registryTarget:this}),s(t),this._proxy=this._connection.createInvokeProxy();const{layerDefinition:r,capabilities:o}=await this._proxy.load({urls:e,fields:this.layer.fields?.map(t=>t.toJSON()),geometryType:this.layer.geometryType?y(this.layer.geometryType):null,spatialReference:this.layer.spatialReference?.toJSON(),geometryEncoding:this.layer.geometryEncoding?.toJSON(),displayOptimization:this.layer.displayOptimization,customParameters:this.layer.customParameters});s(t),this.sourceJSON=r,this.capabilities=o,this.resolvedUrls=e}};t([a()],p.prototype,"type",void 0),t([a({constructOnly:!0})],p.prototype,"layer",void 0),t([a()],p.prototype,"sourceJSON",void 0),t([a()],p.prototype,"capabilities",void 0),t([a()],p.prototype,"resolvedUrls",void 0),p=t([n("esri.layers.graphics.sources.ParquetSource")],p);export{p as ParquetSource};