@arcgis/core 5.2.0-next.28 → 5.2.0-next.29

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 (206) hide show
  1. package/WebMap.js +1 -1
  2. package/applications/KnowledgeStudio/generalSharedKgUtils.d.ts +40 -2
  3. package/applications/KnowledgeStudio/generalSharedKgUtils.js +1 -1
  4. package/assets/esri/core/workers/RemoteClient.js +1 -1
  5. package/assets/esri/core/workers/chunks/0197e459fdb04dfb28ef.js +1 -0
  6. package/assets/esri/core/workers/chunks/{f7344d855f1092383abe.js → 15aa9b85976069acf4f3.js} +1 -1
  7. package/assets/esri/core/workers/chunks/17b98787a0698f584882.js +1 -0
  8. package/assets/esri/core/workers/chunks/1b9c68e8431bb4608209.js +1 -0
  9. package/assets/esri/core/workers/chunks/1bbf5f5da5842b93f638.js +1 -0
  10. package/assets/esri/core/workers/chunks/1bd7b7f4ee7ea6cb7ef9.js +1 -0
  11. package/assets/esri/core/workers/chunks/1e386475937e02b3f523.js +1 -0
  12. package/assets/esri/core/workers/chunks/{24704e70d1ce01ca4081.js → 20ffeb09bb30400de110.js} +1 -1
  13. package/assets/esri/core/workers/chunks/21122f3f3e19a7fd7d33.js +1 -0
  14. package/assets/esri/core/workers/chunks/{25fd4d5d3af887536b3b.js → 2628136bf9f47d238a24.js} +1 -1
  15. package/assets/esri/core/workers/chunks/2b044c8fab2055a8818d.js +1 -0
  16. package/assets/esri/core/workers/chunks/2b2b042a6d6949b06127.js +1 -0
  17. package/assets/esri/core/workers/chunks/2c15c227d057292d4fa8.js +1 -0
  18. package/assets/esri/core/workers/chunks/2f02880a7f081eb210cd.js +1 -0
  19. package/assets/esri/core/workers/chunks/2fc3e43b64300014dddc.js +1 -0
  20. package/assets/esri/core/workers/chunks/{5363c622a0571134cadd.js → 32740b075d7a890d7888.js} +1 -1
  21. package/assets/esri/core/workers/chunks/38b69fba9ae4ccbae6b7.js +1 -0
  22. package/assets/esri/core/workers/chunks/3c342e662c13a05f4caf.js +1 -0
  23. package/assets/esri/core/workers/chunks/{8b452383ba972b638a0c.js → 3d1e5bfd88771d4a0bf6.js} +1 -1
  24. package/assets/esri/core/workers/chunks/43847d66726fd0bcbbb7.js +1 -0
  25. package/assets/esri/core/workers/chunks/4545cf12ad0824ce6b41.js +1 -0
  26. package/assets/esri/core/workers/chunks/45e4b9069263adeae394.js +1 -0
  27. package/assets/esri/core/workers/chunks/47290f27375c76bcc9c7.js +1 -0
  28. package/assets/esri/core/workers/chunks/{8aba35305368234c94f8.js → 5115059b012ef84407cf.js} +1 -1
  29. package/assets/esri/core/workers/chunks/5cccb8b06014ccef30f8.js +1 -0
  30. package/assets/esri/core/workers/chunks/{7f1babbb7ead78201ab3.js → 689673173ca1c0e098fe.js} +1 -1
  31. package/assets/esri/core/workers/chunks/6991ba1b204668e7d4da.js +1 -0
  32. package/assets/esri/core/workers/chunks/{ccffaba50674adba7a0f.js → 6b56971783bf4c31a563.js} +1 -1
  33. package/assets/esri/core/workers/chunks/70c94bcfa20453134037.js +1 -0
  34. package/assets/esri/core/workers/chunks/759686b896f51f0fe6a9.js +1 -0
  35. package/assets/esri/core/workers/chunks/7656900713e55036c3c1.js +1 -0
  36. package/assets/esri/core/workers/chunks/774615303c1cc9a77e20.js +1 -0
  37. package/assets/esri/core/workers/chunks/{6183a26837dc087663ad.js → 7ff37a4f315f7621462b.js} +1 -1
  38. package/assets/esri/core/workers/chunks/8ad5e80e911419c1685a.js +1 -0
  39. package/assets/esri/core/workers/chunks/{87011d2fe14c54e296af.js → 9fe71d49c888fd871312.js} +1 -1
  40. package/assets/esri/core/workers/chunks/a14e5607c5c091c77e3d.js +1 -0
  41. package/assets/esri/core/workers/chunks/{7c344c339743295d11d7.js → a2be8784f2cfdbb42681.js} +1 -1
  42. package/assets/esri/core/workers/chunks/a6379a8df8c08b729b9c.js +1 -0
  43. package/assets/esri/core/workers/chunks/a988fd54912969b812ce.js +1 -0
  44. package/assets/esri/core/workers/chunks/{11d1af758e2140095b10.js → aec82b94787821153d2b.js} +1 -1
  45. package/assets/esri/core/workers/chunks/b624796ff4a9d4c406bf.js +1 -0
  46. package/assets/esri/core/workers/chunks/bb1fad01d9f070e7d795.js +1 -0
  47. package/assets/esri/core/workers/chunks/{654a6dc13ff5be88c8b9.js → bcb2092c87d8d21c6458.js} +1 -1
  48. package/assets/esri/core/workers/chunks/{3e94ed4d57ee7d870cba.js → c6f5688074ae89c37add.js} +1 -1
  49. package/assets/esri/core/workers/chunks/caf150028aeac91b8d80.js +1 -0
  50. package/assets/esri/core/workers/chunks/{a3ca0649edb646da0918.js → cb30e8a66d6dcfebd439.js} +1 -1
  51. package/assets/esri/core/workers/chunks/d7c0ab622caf495dbcef.js +1 -0
  52. package/assets/esri/core/workers/chunks/{fd629872b5c07853f695.js → e4015870412edd69453c.js} +1 -1
  53. package/assets/esri/core/workers/chunks/e774303efefee31952d0.js +1 -0
  54. package/assets/esri/core/workers/chunks/e98a8f80023c6023e72c.js +1 -0
  55. package/assets/esri/core/workers/chunks/f10a339b16d84b650012.js +2 -0
  56. package/assets/esri/core/workers/chunks/fe42fa2144691b9186fd.js +1 -0
  57. package/chunks/GlowComposition.glsl.js +5 -5
  58. package/config.js +1 -1
  59. package/core/AsyncUpdate.js +1 -1
  60. package/core/date.js +1 -1
  61. package/core/workers/workerFactory.js +1 -1
  62. package/form/elements/AttachmentElement.d.ts +4 -1
  63. package/form/elements/inputs/attachments/AttachmentInput.d.ts +1 -0
  64. package/form/elements/inputs/attachments/AudioInput.d.ts +1 -0
  65. package/form/elements/inputs/attachments/DocumentInput.d.ts +3 -0
  66. package/form/elements/inputs/attachments/ImageInput.d.ts +1 -0
  67. package/form/elements/inputs/attachments/VideoInput.d.ts +1 -0
  68. package/kernel.js +1 -1
  69. package/layers/AnnotationFeatureLayer.d.ts +0 -2
  70. package/layers/AnnotationFeatureLayer.js +1 -1
  71. package/layers/DimensionFeatureLayer.d.ts +0 -2
  72. package/layers/DimensionFeatureLayer.js +1 -1
  73. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  74. package/layers/support/featureLayerUtils.js +1 -1
  75. package/layers/support/parquetUtils.js +1 -1
  76. package/linkChart/guards.js +2 -0
  77. package/linkChart/utils.js +1 -1
  78. package/networks/CircuitManager.d.ts +44 -0
  79. package/networks/support/CircuitExportJobInfo.d.ts +1 -1
  80. package/networks/support/CircuitVerifyJobInfo.d.ts +1 -1
  81. package/networks/support/jsonTypes.d.ts +2 -0
  82. package/package.json +3 -3
  83. package/rest/featureService/types.d.ts +4 -7
  84. package/rest/networks/circuits/support/CircuitVerifyResult.d.ts +1 -1
  85. package/rest/networks/circuits/support/ExportCircuitsParameters.d.ts +1 -1
  86. package/rest/networks/circuits/support/VerifyCircuitsParameters.d.ts +17 -3
  87. package/rest/networks/unitIdentifiers/support/UnitQueryResult.d.ts +1 -1
  88. package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
  89. package/support/revision.js +1 -1
  90. package/symbols/cim/CIMOperators.js +1 -1
  91. package/symbols/cim/utils.js +1 -1
  92. package/symbols/support/cimSymbolUtils.js +1 -1
  93. package/views/2d/engine/webgl/mesh/factories/FeatureMeshFactory.js +1 -1
  94. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js +1 -1
  95. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  96. package/views/2d/engine/webgl/util/AnnotationMatcher.js +1 -1
  97. package/views/2d/engine/webgl/util/DictionaryMatcher.js +1 -1
  98. package/views/2d/engine/webgl/util/DimensionMatcher.js +1 -1
  99. package/views/2d/engine/webgl/util/IntervalMatcher.js +1 -1
  100. package/views/2d/engine/webgl/util/LabelMatcher.js +1 -1
  101. package/views/2d/engine/webgl/util/MapMatcher.js +1 -1
  102. package/views/2d/engine/webgl/util/Matcher.js +1 -1
  103. package/views/2d/engine/webgl/util/createMatcher.js +1 -1
  104. package/views/2d/layers/LayerView2D.js +1 -1
  105. package/views/2d/layers/features/Processor.js +1 -1
  106. package/views/2d/layers/features/layerAdapters/AnnotationLayerAdapter.js +1 -1
  107. package/views/2d/layers/features/layerAdapters/CatalogFootprintLayerAdapter.js +1 -1
  108. package/views/2d/layers/features/layerAdapters/DimensionLayerAdapter.js +1 -1
  109. package/views/2d/layers/features/layerAdapters/FeatureLayerAdapter.js +1 -1
  110. package/views/2d/layers/features/layerAdapters/InMemoryLayerAdapter.js +1 -1
  111. package/views/2d/layers/features/layerAdapters/KnowledgeGraphSublayerAdapter.js +1 -1
  112. package/views/2d/layers/features/layerAdapters/OGCFeatureLayerAdapter.js +1 -1
  113. package/views/2d/layers/features/layerAdapters/OrientedImageryLayerAdapter.js +1 -1
  114. package/views/2d/layers/features/layerAdapters/ParquetLayerAdapter.js +1 -1
  115. package/views/2d/layers/features/layerAdapters/StreamLayerAdapter.js +1 -1
  116. package/views/2d/layers/features/layerAdapters/SubtypeGroupLayerAdapter.js +1 -1
  117. package/views/2d/layers/features/processor/BinningStrategy.js +1 -1
  118. package/views/2d/layers/features/processor/ClusterStrategy.js +1 -1
  119. package/views/2d/layers/features/processor/TrackStrategy.js +1 -1
  120. package/views/2d/layers/features/sources/strategies/support/queryAdapters.js +1 -1
  121. package/views/2d/layers/features/support/FeatureMetadata.js +1 -1
  122. package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
  123. package/views/2d/layers/features/support/FeatureSetReaderIndirect.js +1 -1
  124. package/views/2d/layers/support/annodime/DimensionInfo.js +1 -1
  125. package/views/2d/layers/support/annodime/MatcherGeometryOverride.js +2 -0
  126. package/views/2d/layers/support/annodime/PrivateDimensionEffect.js +1 -1
  127. package/views/2d/layers/support/annodime/PrivateMatcherGeometryOverrideEffect.js +2 -0
  128. package/views/2d/layers/support/annodime/TileObjectId.js +2 -0
  129. package/views/2d/layers/support/annodime/annotationGraphic.js +1 -1
  130. package/views/2d/layers/support/annodime/debugUtils.js +2 -0
  131. package/views/2d/layers/support/annodime/dimensionStyleDefaults.js +2 -0
  132. package/views/2d/layers/support/annodime/dimensionSymbols.js +1 -1
  133. package/views/2d/layers/support/annodime/dimensionUtils.js +1 -1
  134. package/views/2d/layers/support/annodime/utils.js +1 -1
  135. package/views/3d/analysis/Viewshed/ViewshedPlacementController.js +1 -1
  136. package/views/3d/analysis/Viewshed/ViewshedPlacementPointPlugin.js +1 -1
  137. package/views/3d/layers/SceneLayerWorkerHandle.js +1 -1
  138. package/views/3d/layers/i3s/I3SOverrides.js +1 -1
  139. package/views/3d/webgl-engine/lib/CutFillVisualizationRenderNode.js +1 -1
  140. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  141. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  142. package/views/3d/webgl-engine/materials/renderers/MergedRenderer.js +1 -1
  143. package/views/3d/webgl-engine/materials/renderers/VaoWriter.js +1 -1
  144. package/views/draw/DrawTool.js +1 -1
  145. package/views/interactive/sketch/SketchLabelOptions.d.ts +0 -6
  146. package/views/layers/AnnotationFeatureLayerView.d.ts +0 -7
  147. package/views/layers/DimensionFeatureLayerView.d.ts +0 -7
  148. package/views/support/LayerViewManager.js +1 -1
  149. package/webdoc/support/webdocSaveUtils.js +1 -1
  150. package/widgets/BasemapGallery/BasemapGalleryViewModel.js +1 -1
  151. package/widgets/BatchAttributeForm/inputs/AttachmentElementInput.js +1 -1
  152. package/widgets/Editor/EditorViewModel.d.ts +0 -12
  153. package/widgets/Editor.d.ts +0 -12
  154. package/widgets/Feature/FeatureViewModel.js +1 -1
  155. package/widgets/Feature.js +1 -1
  156. package/widgets/Features/FeaturesViewModel.js +1 -1
  157. package/widgets/Features.js +1 -1
  158. package/widgets/LayerList/LayerListViewModel.js +1 -1
  159. package/widgets/Popup/PopupViewModel.d.ts +0 -1
  160. package/widgets/Popup/PopupViewModel.js +1 -1
  161. package/widgets/Popup.js +1 -1
  162. package/widgets/ScaleBar/ScaleBarViewModel.js +1 -1
  163. package/widgets/Sketch/SketchViewModel.d.ts +0 -12
  164. package/widgets/Sketch.d.ts +0 -12
  165. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceFeature.js +1 -1
  166. package/assets/esri/core/workers/chunks/1893a4b344aa9b57aa8d.js +0 -1
  167. package/assets/esri/core/workers/chunks/1a7c0a1dc6ecc93ea03a.js +0 -1
  168. package/assets/esri/core/workers/chunks/29a7321fd069253c2521.js +0 -1
  169. package/assets/esri/core/workers/chunks/3b7060d264888bf298b1.js +0 -1
  170. package/assets/esri/core/workers/chunks/409bc7d69b95f7a1634c.js +0 -1
  171. package/assets/esri/core/workers/chunks/4fc32e60e63a9c8429b9.js +0 -1
  172. package/assets/esri/core/workers/chunks/548842f8ba9224b15ee4.js +0 -1
  173. package/assets/esri/core/workers/chunks/5728d8440aca205e4f53.js +0 -1
  174. package/assets/esri/core/workers/chunks/668d84dc512b3085a960.js +0 -1
  175. package/assets/esri/core/workers/chunks/67f44cab103d4411dcc5.js +0 -1
  176. package/assets/esri/core/workers/chunks/6db5ee9c589265b23b60.js +0 -1
  177. package/assets/esri/core/workers/chunks/78f68f7534716956f5bc.js +0 -1
  178. package/assets/esri/core/workers/chunks/7c34eb94e2c74602aeab.js +0 -1
  179. package/assets/esri/core/workers/chunks/7fcf4f3b9131c7516524.js +0 -1
  180. package/assets/esri/core/workers/chunks/86e61841df12dbe20a19.js +0 -1
  181. package/assets/esri/core/workers/chunks/8dbf9b1d8bb6817b19c1.js +0 -1
  182. package/assets/esri/core/workers/chunks/937e347d130d469518ce.js +0 -1
  183. package/assets/esri/core/workers/chunks/a195f569eada3a8736be.js +0 -1
  184. package/assets/esri/core/workers/chunks/a2357aae79bfbb91f125.js +0 -1
  185. package/assets/esri/core/workers/chunks/a8167ab9fd846d699be5.js +0 -1
  186. package/assets/esri/core/workers/chunks/b10f36658aa77bc3a6cf.js +0 -1
  187. package/assets/esri/core/workers/chunks/b87aca8ad281870ae970.js +0 -1
  188. package/assets/esri/core/workers/chunks/c46500cc95a84e2a5f7a.js +0 -1
  189. package/assets/esri/core/workers/chunks/cc46261e01a985df5aab.js +0 -1
  190. package/assets/esri/core/workers/chunks/ceb5bd9f2afaa2ea0808.js +0 -1
  191. package/assets/esri/core/workers/chunks/d07261f3fb67b9a99369.js +0 -1
  192. package/assets/esri/core/workers/chunks/d25c37f169577a33db46.js +0 -1
  193. package/assets/esri/core/workers/chunks/d61294dcc3ba41060d44.js +0 -1
  194. package/assets/esri/core/workers/chunks/d8ae5b61b5ae71f4796c.js +0 -1
  195. package/assets/esri/core/workers/chunks/db279d5d9c7deec554bb.js +0 -1
  196. package/assets/esri/core/workers/chunks/e1340232962cf576d37e.js +0 -1
  197. package/assets/esri/core/workers/chunks/e38d1ba15babc238b151.js +0 -1
  198. package/assets/esri/core/workers/chunks/f5125925f83c979edde7.js +0 -2
  199. package/assets/esri/core/workers/chunks/f68b84df093f2894210b.js +0 -1
  200. package/assets/esri/core/workers/chunks/f74b6952c888d92e479e.js +0 -1
  201. package/assets/esri/core/workers/chunks/fe20683f442294eb111b.js +0 -1
  202. package/views/2d/layers/features/layerAdapters/featureLayerAdapterUtils.js +0 -2
  203. package/views/2d/layers/features/support/FeatureSetReaderAnnotationJSON.js +0 -2
  204. package/views/2d/layers/features/support/FeatureSetReaderDimensionJSON.js +0 -2
  205. package/views/2d/layers/support/annodime/annotationUtils.js +0 -2
  206. /package/assets/esri/core/workers/chunks/{f5125925f83c979edde7.js.LICENSE.txt → f10a339b16d84b650012.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__addDisposableResource as e,__disposeResources as r,__decorate as t}from"tslib";import i from"../PopupTemplate.js";import o from"../request.js";import{ClonableMixin as s}from"../core/Clonable.js";import a from"../core/Error.js";import{disposable as n,makeHandle as l}from"../core/handleUtils.js";import{MultiOriginJSONSupportMixin as p}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as u,whenOrAbort as m,onAbort as d}from"../core/promiseUtils.js";import{join as c}from"../core/urlUtils.js";import{property as h,subclass as y}from"../core/accessorSupport/decorators.js";import f from"../graphic/DimensionFeatureGraphicOrigin.js";import v from"./Layer.js";import{APIKeyMixin as g}from"./mixins/APIKeyMixin.js";import{ArcGISService as j}from"./mixins/ArcGISService.js";import{BlendLayer as b}from"./mixins/BlendLayer.js";import{CustomParametersMixin as E}from"./mixins/CustomParametersMixin.js";import{FeatureLayerBase as S}from"./mixins/FeatureLayerBase.js";import{OperationalLayer as I}from"./mixins/OperationalLayer.js";import{PortalLayer as T}from"./mixins/PortalLayer.js";import{RefreshableLayer as w}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as L}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as P}from"./mixins/TemporalLayer.js";import{parse as F,cleanTitle as x,titleFromUrlAndName as O}from"./support/arcgisLayerUrl.js";import{barrierWeight as q,id as _,popupEnabled as D}from"./support/commonProperties.js";import{ensureLayerCredential as U,createQuery as M,getFieldDomain as A,hasDataChanged as G}from"./support/featureLayerUtils.js";import{defineFieldProperties as Q}from"./support/fieldProperties.js";import{fixTimeInfoFields as C}from"./support/fieldUtils.js";import{serviceSupportsSpatialReference as J}from"./support/versionUtils.js";import N from"../rest/support/Query.js";import{createPopupTemplate as R}from"../support/popupUtils.js";import{reader as k}from"../core/accessorSupport/decorators/reader.js";const $="dimension-feature-layer",B=Q();let H=class extends(S(b(P(L(w(j(I(T(p(E(g(s(v))))))))))))){constructor(e){super(e),this.barrierWeight="high",this.fields=null,this.fieldsIndex=null,this.graphicOrigin=new f(this),this.operationalLayerType="ArcGISDimensionLayer",this.outFields=null,this.popupEnabled=!0,this.popupTemplate=null,this.source=null,this.sublayerTitleMode="item-title",this.supportedSourceTypes=new Set(["Dimension Layer"]),this.type="dimension-feature",this._dataElementPromise=null}destroy(){this.source?.destroy()}load(e){const r=e?.signal,t=this.loadFromPortal({supportedTypes:["Feature Service"]},e).catch(u).then(async()=>{if(this.url&&null==this.layerId&&/FeatureServer|MapServer\/*$/i.test(this.url)){const e=await this._fetchFirstValidLayerId(r);null!=e&&(this.layerId=e)}if(!this.url)throw new a(`${$}:missing-url`,"DimensionFeatureLayer must be created with a url");return this.initLayerProperties(await this.createGraphicsSource(r))}).then(()=>U(this,"load",e));return this.addResolvingPromise(t),Promise.resolve(this)}get editingEnabled(){return this._isOverridden("editingEnabled")?this._get("editingEnabled"):this.loaded&&null!=this.capabilities&&this.capabilities.operations.supportsEditing&&this.userHasEditingPrivileges}set editingEnabled(e){this._overrideIfSome("editingEnabled",e)}get effectiveEditingEnabled(){return!1}get defaultPopupTemplate(){return this.createPopupTemplate()}readTitleFromService(e,r){const{url:t}=this,i=r.name||F(t)?.title;switch(this.sublayerTitleMode){case"item-title":if(t)return O(t,i);break;case"item-title-and-service-name":{let e=this.portalItem?.title;if(e&&e!==i)return e=x(e),i?`${e} - ${x(i)}`:e;break}}return i?x(i):void 0}readTitleFromPortalItem(e){return"item-title"===this.sublayerTitleMode?e:void 0}createPopupTemplate(e){return R(this,e)}async createGraphicsSource(t){const i={stack:[],error:void 0,hasError:!1};try{const{default:r}=await m(import("./graphics/sources/FeatureLayerSource.js"),t),o=new r({layer:this,supportedSourceTypes:this.supportedSourceTypes});e(i,n(d(t,()=>o.cancelLoad())??l()),!1);return await o.load({signal:t}),o}catch(o){i.error=o,i.hasError=!0}finally{r(i)}}createQuery(){const e=M(this);return e.where=this.definitionExpression||"1=1",e}async fetchDataElement(e){if(this._dataElementPromise)return this._dataElementPromise;if(!this.url)throw new Error("InternalError: A URL is required to retrieve the data element for this layer.");const r=c(this.url,"queryDataElements"),t={f:"json",layers:this.layerId};return this._dataElementPromise=o(r,{...e,responseType:"json",query:t}).then(e=>{const r=e.data.layerDataElements,t=this.layerId,i=r.find(e=>e.layerId===t);if(!i)throw new a("fetchDataElement:not-available","A data element for this layer could not be retrieved.");return i.dataElement}),this._dataElementPromise}getFieldDomain(e,r){return A(this,e,r,this.getField(e)?.domain??null)}async queryFeatures(e,r){const t=await this.load(),i=await t.source.queryFeatures(N.from(e)??t.createQuery(),r),o=this.graphicOrigin;if(i?.features)for(const s of i.features)s.layer=s.sourceLayer=t,s.origin=o;return i}async queryObjectIds(e,r){const t=await this.load();return t.source.queryObjectIds(N.from(e)??t.createQuery(),r)}async queryFeatureCount(e,r){const t=await this.load();return t.source.queryFeatureCount(N.from(e)??t.createQuery(),r)}async queryExtent(e,r){const t=await this.load();return t.source.queryExtent(N.from(e)??t.createQuery(),r)}serviceSupportsSpatialReference(e){return this.loaded&&J(this,e)}async initLayerProperties(e){this._set("source",e),e.sourceJSON&&(this.sourceJSON=e.sourceJSON,this.read(e.sourceJSON,{origin:"service",portalItem:this.portalItem,portal:this.portalItem?.portal,url:this.parsedUrl})),this._verifySource(),C(this.timeInfo,this.fieldsIndex)}async hasDataChanged(){return G(this)}_verifySource(){if(this.version&&this.version<10.8)throw new a($+":unsupported-version","The feature service must be version 10.8 or above.")}_fetchFirstValidLayerId(e){return o(this.url??"",{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e}).then(e=>{const r=e.data;if(!r)return;this.applyPreferredHost(r);const t=[...r.layers||[],...r.tables||[]];return t.find(({type:e})=>!e||this.supportedSourceTypes.has(e))?.id})}};t([h(q)],H.prototype,"barrierWeight",void 0),t([h({json:{write:!0}})],H.prototype,"editingEnabled",null),t([h({readOnly:!0})],H.prototype,"effectiveEditingEnabled",null),t([h({...B.fields,readOnly:!0,json:{read:!1,origins:{service:{read:!0}}}})],H.prototype,"fields",void 0),t([h(B.fieldsIndex)],H.prototype,"fieldsIndex",void 0),t([h({readOnly:!0,clonable:!1})],H.prototype,"graphicOrigin",void 0),t([h(_)],H.prototype,"id",void 0),t([h({type:["ArcGISDimensionLayer"]})],H.prototype,"operationalLayerType",void 0),t([h(B.outFields)],H.prototype,"outFields",void 0),t([h(D)],H.prototype,"popupEnabled",void 0),t([h({type:i,json:{name:"popupInfo",write:!0}})],H.prototype,"popupTemplate",void 0),t([h({readOnly:!0})],H.prototype,"defaultPopupTemplate",null),t([h({clonable:!1,readOnly:!0})],H.prototype,"source",void 0),t([h({type:String})],H.prototype,"sublayerTitleMode",void 0),t([k("service","title",["name"])],H.prototype,"readTitleFromService",null),t([k("portal-item","title")],H.prototype,"readTitleFromPortalItem",null),t([h({json:{read:!1},value:"dimension-feature",readOnly:!0})],H.prototype,"type",void 0),H=t([y("esri.layers.DimensionFeatureLayer")],H);const K=H;export{K as default};
2
+ import{__addDisposableResource as e,__disposeResources as r,__decorate as t}from"tslib";import i from"../PopupTemplate.js";import s from"../request.js";import{ClonableMixin as o}from"../core/Clonable.js";import a from"../core/Error.js";import{disposable as n,makeHandle as l}from"../core/handleUtils.js";import{MultiOriginJSONSupportMixin as p}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as u,whenOrAbort as d,onAbort as m}from"../core/promiseUtils.js";import{join as c}from"../core/urlUtils.js";import{property as h,subclass as y}from"../core/accessorSupport/decorators.js";import f from"../geometry/SpatialReference.js";import E from"../graphic/DimensionFeatureGraphicOrigin.js";import g from"./Layer.js";import{APIKeyMixin as v}from"./mixins/APIKeyMixin.js";import{ArcGISService as j}from"./mixins/ArcGISService.js";import{BlendLayer as S}from"./mixins/BlendLayer.js";import{CustomParametersMixin as T}from"./mixins/CustomParametersMixin.js";import{FeatureLayerBase as I}from"./mixins/FeatureLayerBase.js";import{OperationalLayer as b}from"./mixins/OperationalLayer.js";import{PortalLayer as L}from"./mixins/PortalLayer.js";import{RefreshableLayer as P}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as w}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as F}from"./mixins/TemporalLayer.js";import{parse as D,cleanTitle as x,titleFromUrlAndName as O}from"./support/arcgisLayerUrl.js";import{barrierWeight as M,id as q,popupEnabled as N}from"./support/commonProperties.js";import{ensureLayerCredential as G,createQuery as U,getFieldDomain as _,hasDataChanged as A}from"./support/featureLayerUtils.js";import{defineFieldProperties as R}from"./support/fieldProperties.js";import{fixTimeInfoFields as X}from"./support/fieldUtils.js";import{serviceSupportsSpatialReference as Y}from"./support/versionUtils.js";import C from"../rest/support/Query.js";import{createPopupTemplate as Q}from"../support/popupUtils.js";import{reader as H}from"../core/accessorSupport/decorators/reader.js";const J="dimension-feature-layer",k=R();let B=class extends(I(S(F(w(P(j(b(L(p(T(v(o(g))))))))))))){constructor(e){super(e),this.barrierWeight="high",this.fields=null,this.fieldsIndex=null,this.graphicOrigin=new E(this),this.operationalLayerType="ArcGISDimensionLayer",this.outFields=null,this.popupEnabled=!0,this.popupTemplate=null,this.source=null,this.sublayerTitleMode="item-title",this.supportedSourceTypes=new Set(["Dimension Layer"]),this.type="dimension-feature",this._dataElementPromise=null}destroy(){this.source?.destroy()}load(e){const r=e?.signal,t=this.loadFromPortal({supportedTypes:["Feature Service"]},e).catch(u).then(async()=>{if(this.url&&null==this.layerId&&/FeatureServer|MapServer\/*$/i.test(this.url)){const e=await this._fetchFirstValidLayerId(r);null!=e&&(this.layerId=e)}if(!this.url)throw new a(`${J}:missing-url`,"DimensionFeatureLayer must be created with a url");return this.initLayerProperties(await this.createGraphicsSource(r))}).then(()=>G(this,"load",e));return this.addResolvingPromise(t),Promise.resolve(this)}get editingEnabled(){return this._isOverridden("editingEnabled")?this._get("editingEnabled"):this.loaded&&null!=this.capabilities&&this.capabilities.operations.supportsEditing&&this.userHasEditingPrivileges}set editingEnabled(e){this._overrideIfSome("editingEnabled",e)}get effectiveEditingEnabled(){return!1}get defaultPopupTemplate(){return this.createPopupTemplate()}readTitleFromService(e,r){const{url:t}=this,i=r.name||D(t)?.title;switch(this.sublayerTitleMode){case"item-title":if(t)return O(t,i);break;case"item-title-and-service-name":{let e=this.portalItem?.title;if(e&&e!==i)return e=x(e),i?`${e} - ${x(i)}`:e;break}}return i?x(i):void 0}readTitleFromPortalItem(e){return"item-title"===this.sublayerTitleMode?e:void 0}createPopupTemplate(e){return Q(this,e)}async createGraphicsSource(t){const i={stack:[],error:void 0,hasError:!1};try{const{default:r}=await d(import("./graphics/sources/FeatureLayerSource.js"),t),s=new r({layer:this,supportedSourceTypes:this.supportedSourceTypes});e(i,n(m(t,()=>s.cancelLoad())??l()),!1);return await s.load({signal:t}),s}catch(s){i.error=s,i.hasError=!0}finally{r(i)}}createQuery(){const e=U(this);return e.where=this.definitionExpression||"1=1",e}async fetchDataElement(e){if(this._dataElementPromise)return this._dataElementPromise;if(!this.url)throw new Error("InternalError: A URL is required to retrieve the data element for this layer.");const r=c(this.url,"queryDataElements"),t={f:"json",layers:this.layerId};return this._dataElementPromise=s(r,{...e,responseType:"json",query:t}).then(e=>{const r=e.data.layerDataElements,t=this.layerId,i=r.find(e=>e.layerId===t);if(!i)throw new a("fetchDataElement:not-available","A data element for this layer could not be retrieved.");return i.dataElement}),this._dataElementPromise}getFieldDomain(e,r){return _(this,e,r,this.getField(e)?.domain??null)}async queryFeatures(e,r){const t=await this.load(),i=await t.source.queryFeatures(C.from(e)??t.createQuery(),r),s=this.graphicOrigin;if(i?.features)for(const o of i.features)o.layer=o.sourceLayer=t,o.origin=s;return i}async queryObjectIds(e,r){const t=await this.load();return t.source.queryObjectIds(C.from(e)??t.createQuery(),r)}async queryFeatureCount(e,r){const t=await this.load();return t.source.queryFeatureCount(C.from(e)??t.createQuery(),r)}async queryExtent(e,r){const t=await this.load();return t.source.queryExtent(C.from(e)??t.createQuery(),r)}serviceSupportsSpatialReference(e){return this.loaded&&Y(this,e)}async initLayerProperties(e){this._set("source",e),e.sourceJSON&&(this.sourceJSON=e.sourceJSON,this.read(e.sourceJSON,{origin:"service",portalItem:this.portalItem,portal:this.portalItem?.portal,url:this.parsedUrl})),this._verifySource(),X(this.timeInfo,this.fieldsIndex)}async hasDataChanged(){return A(this)}_verifySource(){if(this.version&&this.version<10.8)throw new a(J+":unsupported-version","The feature service must be version 10.8 or above.");const e=["DIMLENGTH","BEGINX","BEGINY","ENDX","ENDY","DIMX","DIMY","TEXTX","TEXTY","DIMTYPE","EXTANGLE","STYLEID","USECUSTOMLENGTH","CUSTOMLENGTH","DIMDISPLAY","EXTDISPLAY","MARKERDISPLAY","TEXTANGLE"],r=e.filter(e=>!this.fieldsIndex.has(e));if(r.length)throw new a(J+":missing-fields","There are missing fields to operate properly",{requiredFields:e,missingFields:r})}_fetchFirstValidLayerId(e){return s(this.url??"",{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e}).then(e=>{const r=e.data;if(!r)return;this.applyPreferredHost(r);const t=[...r.layers||[],...r.tables||[]];return t.find(({type:e})=>!e||this.supportedSourceTypes.has(e))?.id})}};t([h({type:f,json:{origins:{service:{read:{source:"sourceSpatialReference"}}}}})],B.prototype,"attributeSpatialReference",void 0),t([h(M)],B.prototype,"barrierWeight",void 0),t([h({json:{write:!0}})],B.prototype,"editingEnabled",null),t([h({readOnly:!0})],B.prototype,"effectiveEditingEnabled",null),t([h({...k.fields,readOnly:!0,json:{read:!1,origins:{service:{read:!0}}}})],B.prototype,"fields",void 0),t([h(k.fieldsIndex)],B.prototype,"fieldsIndex",void 0),t([h({readOnly:!0,clonable:!1})],B.prototype,"graphicOrigin",void 0),t([h(q)],B.prototype,"id",void 0),t([h({type:["ArcGISDimensionLayer"]})],B.prototype,"operationalLayerType",void 0),t([h(k.outFields)],B.prototype,"outFields",void 0),t([h(N)],B.prototype,"popupEnabled",void 0),t([h({type:i,json:{name:"popupInfo",write:!0}})],B.prototype,"popupTemplate",void 0),t([h({readOnly:!0})],B.prototype,"defaultPopupTemplate",null),t([h({clonable:!1,readOnly:!0})],B.prototype,"source",void 0),t([h({type:String})],B.prototype,"sublayerTitleMode",void 0),t([H("service","title",["name"])],B.prototype,"readTitleFromService",null),t([H("portal-item","title")],B.prototype,"readTitleFromPortalItem",null),t([h({json:{read:!1},value:"dimension-feature",readOnly:!0})],B.prototype,"type",void 0),B=t([y("esri.layers.DimensionFeatureLayer")],B);const $=B;export{$ as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__addDisposableResource as e,__disposeResources as t}from"tslib";import{toConst as r}from"../../../../core/compilerUtils.js";import s from"../../../../core/Error.js";import i from"../../../../core/Handles.js";import has from"../../../../core/has.js";import a from"../../../../core/Logger.js";import{onAbortOrThrow as n,throwIfAborted as u}from"../../../../core/promiseUtils.js";import{QueueProcessor as o}from"../../../../core/QueueProcessor.js";import{parseWhereClause as l}from"../../../../core/sql.js";import c from"../../../../geometry/SpatialReference.js";import{set as p,create as d,expandWithAABB as f,expandWithRect as m,negativeInfinity as y}from"../../../../geometry/support/aaBoundingBox.js";import{copy as h,negativeInfinity as g,create as _,expandWithRect as w}from"../../../../geometry/support/aaBoundingRect.js";import{getScaleForResolution as x}from"../../../../geometry/support/scaleUtils.js";import{isWebMercator as F,isWGS84 as S}from"../../../../geometry/support/spatialReferenceUtils.js";import{convertToGeometry as I}from"../../featureConversionUtils.js";import{getFieldNamesFromStatistics as v}from"../../data/attributeSupport.js";import{getQueryResultExtent as q,getQueryBoundingRects as R,QueryEngine as C}from"../../data/QueryEngine.js";import{queryCapabilities as b}from"../../data/QueryEngineCapabilities.js";import{QueryEngineResult as E}from"../../data/QueryEngineResult.js";import{normalizeQueryLike as O}from"../../data/queryUtils.js";import{createFileProvider as P}from"../parquet/createFileProvider.js";import{createDrawingInfo as T}from"./clientSideDefaults.js";import{getParquetFileId as j,getParquetRowId as Q,getParquetObjectId as M}from"./parquetIdUtils.js";import N from"../../../support/Field.js";import A from"../../../support/FieldsIndex.js";import{isNumericField as B}from"../../../support/fieldUtils.js";import{fromParquetGeometryEncodingJSON as G}from"../../../support/parquetEncodingUtils.js";import{completeParquetLayerInfo as D,fromParquetJSONGeometryType as z,toParquetJSONGeometryType as V}from"../../../support/parquetUtils.js";import{loadParquetModule as W}from"../../../../libs/parquet/loadParquetModule.js";import{FeatureStoreQueryAdapter as U}from"../../../../views/2d/layers/features/FeatureStoreQueryAdapter.js";import{FeatureSnapshotSourceChunk as k}from"../../../../views/2d/layers/features/sources/strategies/chunks/FeatureSnapshotSourceChunk.js";import{FeatureSourceChunkStore as J}from"../../../../views/2d/layers/features/sources/strategies/chunks/SourceChunkStore.js";import{FeatureMetadata as Z}from"../../../../views/2d/layers/features/support/FeatureMetadata.js";import{FeatureSetReaderParquet as L}from"../../../../views/2d/layers/features/support/FeatureSetReaderParquet.js";const H=new U,Y=4,X="__OBJECTID",$=new TextDecoder,K=8e3,ee=2e7,te=8,re=2,se=20;class ie{constructor(e,t){this._files=e,this._createFileStream=t,this._fileIndex=0,this._streamIndex=0,this._streams=[],this._pending=new Set,this._resolvedCount=0}async next(e){for(await this._fill(e);this._pending.size>0;){u(e),await this._fill(e);const t=await ae(this._pending);if(this._pending.delete(t.read),this._resolvedCount++,null!=t.chunk)return t.chunk}return null}async _fill(e){for(this._removeDone();this._pending.size<te;){const t=this._getOrCreateNextStream(e);if(null==t)return;this._pending.add(t.read(e))}}_getOrCreateNextStream(e){const t=this._resolvedCount>=te?te:re;if(this._fileIndex<this._files.length&&this._streams.length<t){const t=this._files[this._fileIndex++],r=new ne(t.id,this._createFileStream(t,e));return this._streams.push(r),r}return this._getNextStream()}_getNextStream(){const e=this._streams.length;for(let t=0;t<e;t++){const r=(this._streamIndex+t)%e,s=this._streams[r];if(s.canRead)return this._streamIndex=(r+1)%e,s}return null}_removeDone(){let e=this._streamIndex;for(let t=this._streams.length-1;t>=0;t--)this._streams[t].done&&(this._streams.splice(t,1),t<e&&e--);this._streamIndex=this._streams.length>0?e%this._streams.length:0}}function ae(e){return Promise.race(Array.from(e,async e=>({read:e,chunk:await e})))}class ne{constructor(e,t){this._fileId=e,this._stream=t,this._readCount=0,this._reachedEnd=!1}get canRead(){return!this._reachedEnd}get done(){return this._reachedEnd&&0===this._readCount}async read(e){this._readCount++;try{const t=await this._stream,r=await t.next(e);return null==r?(this._reachedEnd=!0,null):{fileId:this._fileId,chunk:r}}finally{this._readCount--}}}class ue{constructor(){this._queue=new o({concurrency:Y,process:(e,t)=>this._executeQuery(e,t)}),this._streams=new Map,this._streamIdCounter=0,this._indexMap={},this._handles=new i}async load(e){const t=e.spatialReference?c.fromJSON(e.spatialReference):void 0;if(t&&!t.isWGS84&&!t.isWebMercator)throw new s("parquet:unsupported-projection","Only WGS84 and Web Mercator are supported");this._customParameters=e.customParameters,this._provider=P(e.provider,null,()=>this._customParameters),this._handles.add(this._provider.events.on("sourceChanged",async()=>{await this.reload(e),await this._source.onSourceChange()}));const r=await this._provider.getMetadata(),i=await D(r,{fields:e.fields?.map(e=>N.fromJSON(e)),geometryEncoding:e.geometryEncoding?G(e.geometryEncoding):null,geometryType:e.geometryType?z(e.geometryType):null,displayOptimization:e.displayOptimization,spatialReference:t});if(!i.fields)throw new s("parquet:unsupported","Fields must be defined");let n;if(i.spatialReference&&i.geometryType){if(!i.spatialReference)throw new s("parquet:unsupported","SpatialReference must be defined");if(!i.spatialReference.isGeographic&&!i.spatialReference.isWebMercator)throw new s("parquet:unsupported-projection","Only WGS84 and Web Mercator are supported");i.spatialReference.isGeographic&&!i.spatialReference.isWGS84&&(a.getLogger("parquet:unsupported-projection").warn("Found a geographic projection that is not WGS84. Handling as WGS84.",{spatialReference:i.spatialReference}),i.spatialReference=c.WGS84),n={geometry:i.geometryEncoding?{geometryType:V(i.geometryType),spatialReference:i.spatialReference.toJSON(),encoding:i.geometryEncoding.toJSON()}:null,displayOptimization:i.displayOptimization}}this.setCustomParameters(e.customParameters),this._displayOptimization=i.displayOptimization,await this._provider.updateGeometryInfo(n),this._capabilities=Ee(await this._getFileStatistics());const u=await this._provider.getFiles();if(!u.length)return{layerDefinition:{},capabilities:Ee(null)};const o=await u[0].file;i.file=o;const{fields:l}=i;if(null==l)throw new s("parquet-layer:missing-metadata","Unable to create parquet source: cannot infer fields",l);l.push(new N({name:X,type:"oid",alias:X}));for(const s of l){const e=o.getColumnId(s.name);null!=e&&(this._indexMap[s.name]=e)}const p=new A(l.map(e=>e.toJSON()));this._fieldsIndex=p;const d=V(i.geometryType??"point");return this._metadata=Z.createFeature({fieldsIndex:p.toJSON(),geometryType:d,hasZ:!1,hasM:!1,featureIdInfo:{type:"object-id",fieldName:X},subtypes:null,subtypeField:null,types:null,typeIdField:null,globalIdField:null,spatialReference:i.spatialReference,outSpatialReference:null,timeInfo:null,timeReferenceUnknownClient:null,dateFieldsTimeZone:null}),this._queryEngineParams={fieldsIndex:this._metadata.fieldsIndex,geometryType:d,featureIdInfo:{type:"object-id",fieldName:X},hasM:!1,hasZ:!1,spatialReference:i.spatialReference?.toJSON()??{wkid:4326},aggregateAdapter:null,timeInfo:null,definitionExpression:null},this._fullExtent=r?.extent?r.extent:await this._tryDeriveParquetFullExtent(i),{capabilities:this._capabilities,layerDefinition:{fields:i.fields?.map(e=>e.toJSON()),drawingInfo:T(d),extent:this._fullExtent??void 0,geometryType:d,geometryEncoding:i.geometryEncoding?.toJSON(),displayOptimization:i.displayOptimization}}}destroy(){this._provider.destroy(),this._queue.destroy();for(const{handle:e}of this._streams.values())e.remove();this._streams.clear(),this._indexMap={},this._handles.removeAll()}async reload(e){this.destroy(),await this.load(e)}set remoteClient(e){this._source=e.createInvokeProxy("")}setCustomParameters(e){this._customParameters=e}getIndexMap(){return this._indexMap}async updateFileProvider(e){this._provider=P(e,this._provider.getGeometryInfo(),()=>this._customParameters)}async queryFeatures(e,t){const r=await O(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(r),Oe(r)||(r.resultRecordCount=r.resultRecordCount?Math.min(r.resultRecordCount,K):K,r.resultOffset=r.resultOffset??0),r.outStatistics)return this._queryStatistics(r,t);r.returnDistinctValues&&(r.returnGeometry=void 0);return(await this._enqueueQuery(r,t)).createQueryResponse()}async queryFeatureCount(e,t){const r=await O(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(r),!pe(r))return this._getFeatureCount();r.outFields=void 0,r.returnGeometry=void 0;return(await this._enqueueQuery(r,t)).createQueryResponseForCount()}async queryObjectIds(e,t){const r=await O(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(r),!pe(r))return Array.from({length:await this._getFeatureCount()},(e,t)=>t);r.resultRecordCount=r.resultRecordCount?Math.min(r.resultRecordCount,8e3):8e3,r.resultOffset=r.resultOffset??0,r.returnGeometry=void 0,r.outFields=void 0;return(await this._enqueueQuery(r,t)).items.map(e=>e.getObjectId())}async queryAttributeBins(e,t={}){throw new s("parquet:unsupported","queryAttributeBins not supported.")}async queryExtent(e,t){const s=await O(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(s),this._fullExtent&&!pe(s))return{count:await this._getFeatureCount(),extent:this._fullExtent};const i=r(this._metadata.spatialReference);s.returnGeometry=!0,s.outFields=void 0;const a=p(d(),y),n=d(),u=await this._enqueueQuery(s,t);let o=0;for(const r of u.items)r.getBounds(n)&&(f(a,n),o+=1);return{count:o,extent:q(a,i,s.outSR?r(s.outSR):i.toJSON(),i,!1)}}async queryStream(e,t){if(!t.signal)throw new Error("InternalError: AbortSignal must be passed");const r=await this._getCandidateFiles(e),s=new ie(r,async(t,r)=>{const s=await t.file,i=await this._createParquetDisplayQuery(s,t.id,e);return s.executeQuery(i,K,r)}),i=this._streamIdCounter++,a=n(t.signal,e=>{const t=this._streams.get(i);null!=t&&(t.handle.remove(),this._streams.delete(i))});return this._streams.set(i,{stream:s,handle:a}),i}async getStreamNext(e,t){if(!t.signal)throw new Error("InternalError: AbortSignal must be passed");const r=this._streams.get(e);if(!r)return{result:null};const s=await r.stream.next(t.signal);if(null==s)return r.handle.remove(),this._streams.delete(e),{result:null};const i=s.chunk.serialize().buffer,a={fileId:s.fileId,buffer:i};return i instanceof ArrayBuffer?{result:a,transferList:[i]}:{result:a}}async getStreamNextFeatures(e,t){const{result:r}=await this.getStreamNext(e,t);if(null==r)return null;const s=(await W()).ParquetChunk.deserialize(new Uint8Array(r.buffer)),i=new L(this._metadata,this._indexMap,s,r.fileId),a=[];for(;i.next();){const e=I(i.readGeometryWorldSpace(),i.geometryType,i.hasZ,i.hasM),t=i.readAttributes();a.push({attributes:t,geometry:e})}return{features:a}}async createPatch(e,t,r,s,i){if(!i.signal)throw new Error("InternalError: AbortSignal must be passed");const a=await this._getFileInfoById(e),n=await a.file;return(await n.createChunkPatch(t,r,s,i.signal)).serialize().buffer}async _getCandidateFiles(e){const t=await this._provider.getFiles(),r=await this._getSpatialFilePruning(e);if(null==r)return t;const s=t.filter(e=>this._mayIncludeFileForSpatialPruning(e,r));return"xz"===r.type?Ie(s,r):s}async _queryStatistics(e,t){const r=await O({...e},null,this._queryEngineParams.spatialReference);if(r.returnGeometry=void 0,me(r,this._fieldsIndex)){const e=await this._getStatisticsFromFiles(r);if(e)return e}return(await this._enqueueQuery(r,t)).createQueryResponse()}async _getStatisticsFromFiles(e){const t=await this._provider.getFiles(),r={},s=[];for(const i of e.outStatistics??[]){const e=ge(i,t);if(!e.available)return null;r[i.outStatisticFieldName]=e.value,s.push(he(i,this._fieldsIndex))}return{fields:s,features:[{attributes:r}]}}async _getSpatialFilePruning(e){if("tile"!==e.type&&("arcade"!==e.type||null==e.extent))return null;const t=this._displayOptimization,r=t?.index;if(null==r)return null;const s=e.outSpatialReference.wkid;if(null==r.wkid||null==s)return null;const i=r.wkid,a=await W();switch(r.type){case"xz":return{type:"xz",fieldName:r.code,intersects:(t,n)=>a.queryIntersectsXZStatistics(r.fullExtent,e.extent,s,i,se,t,n)};case"z":return{type:"xy",xFieldName:r.xColumn,yFieldName:r.yColumn,intersects:(t,r,n,u)=>a.queryIntersectsXYStatistics(e.extent,s,i,t,r,n,u)}}}_mayIncludeFileForSpatialPruning(e,t){switch(t.type){case"xz":{const r=Se(e,t);return null==r||Re(r,t)}case"xy":{const{xStatistics:r,yStatistics:s}=qe(e,t);return null==r||null==s||Ce(r,s,t)}}}async _tryDeriveParquetFullExtent(r){if(!r.spatialReference)return null;if(null==this._fullExtent&&"location"===r.geometryEncoding?.type){const i=await this._provider.getFiles(),{xField:a,yField:n}=r.geometryEncoding,u=p(d(),y);for(const r of i){const i=await r.file;for(const r of i.rowGroups()){const i={stack:[],error:void 0,hasError:!1};try{const t=e(i,r.columnDescriptorForAttribute(a),!1),s=e(i,r.columnDescriptorForAttribute(n),!1),o=[t.minValue(),s.minValue(),t.maxValue(),s.maxValue()];m(u,o),r.free()}catch(s){i.error=s,i.hasError=!0}finally{t(i)}}}return{xmin:u[0],ymin:u[1],xmax:u[3],ymax:u[4],spatialReference:r.spatialReference?.toJSON()}}return null}async _getFileInfoById(e){const t=await this._provider.getFiles();for(const r of t)if(r.id===e)return r;throw new Error(`InternalError: File ${e} does not exist`)}async _getFileStatistics(){return{featureCount:await this._getFeatureCount(),byteLength:await this._getByteLength()}}async _getFile(e){return(await this._getFileInfoById(e)).file}async _createParquetQuery(e,t,r,s,i){const a=(await W()).Query.new();null!=r&&a.setPreFilterStart(r),null!=s&&a.setPreFilterCount(s),null!=i&&a.setPostFilterCount(i);const n=await this._getRequiredFields(e);a.setOutFields(n),(e.geometry||e.returnGeometry)&&a.setReturnGeometry(!0);const u=this._tryGetGeneralizedGeometryScale(e);null!=u&&a.setScale(u);const o=e.geometry?.spatialReference??this._queryEngineParams.spatialReference,l=o.wkid;if(e.geometry&&(F(o)||S(o))){const t=h(_(),g);for(const r of R(e.geometry))w(t,r);a.setOutSpatialReference(l),a.setExtent({xmin:t[0],ymin:t[1],xmax:t[2],ymax:t[3]})}if(e.where){const{id:r,file:s}=t;await this._setWhereClause(a,await s,r,e.where)}return a}async _createParquetDisplayQuery(e,t,r){const s=(await W()).Query.new();return"tile"===r.type?(s.setExtent(r.extent),s.setQuantizationTransform(r.transform),s.setScale(r.scale)):"arcade"===r.type&&null!=r.extent&&s.setExtent(r.extent),s.setOutFields(r.outFields.filter(e=>null!=this._indexMap[e])),s.setOutSpatialReference(r.outSpatialReference.wkid),s.setReturnGeometry(r.returnGeometry),r.where&&await this._setWhereClause(s,e,t,r.where),s}async _getFeatureCount(){return(await this._provider.getFiles()).map(e=>e.statistics.rowCount).reduce((e,t)=>e+t,0)}async _getByteLength(){return(await this._provider.getFiles()).map(e=>e.statistics.byteSize).reduce((e,t)=>e+t,0)}_validateQuery(e){if(!this._capabilities.query.supportsStatistics&&e.outStatistics)throw new s("parquet:unsupported","Statistics queries are not supported",{query:e});if(!this._capabilities.query.supportsOrderBy&&e.orderByFields?.length)throw new s("parquet:unsupported","Queries using orderBy are not supported",{query:e});if(!this._capabilities.query.supportsDistinct&&e.returnDistinctValues)throw new s("parquet:unsupported","Queries using returnDistinctValues are not supported",{query:e})}async _setWhereClause(e,t,r,i){const a=this._indexMap,n=this._fieldsIndex,u={getAttribute(e,s){const i=a[s];if(null==i){const t=n.get(s);if("__OBJECTID"===t?.name){const t=e.row+e.rowGroupStart;return M(r,t)}return null}const u=t.readAttribute(e.rowGroup,e.row,i);if(null==u)return null;const o=n.get(s);return"esriFieldTypeString"===o.type||"esriFieldTypeDateOnly"===o.type||"esriFieldTypeTimeOnly"===o.type||"esriFieldTypeTimestampOffset"===o.type?$.decode(u):u}},o=await l(i,this._fieldsIndex);if(!o.isStandardized)throw new s("sql-parse-error","expression is not standardized");const c=(e,t,r)=>o.testFeatureCompiled({rowGroup:e,row:t,rowGroupStart:r},u,null),p=o.fieldNames.map(e=>n.get(e)).filter(e=>e&&null!=this._indexMap[e?.name]);e.setWhere(i),e.setWhereEvaluator(c),e.setWhereFields(p.map(e=>e.name))}async*_streamFeatures(e,t,r,s,i){const a=await this._provider.getFiles();let n=0;for(const u of a){const a=n,o=n+u.statistics.rowCount;if(n+=u.statistics.rowCount,null!=t&&t>=o)continue;const l=null!=t?Math.max(t-a,0):null;let c=r;if(null!=r){const e=t??0,s=e+r,i=Math.max(e,a),n=Math.min(s,o);c=Math.max(n-i,0)}if(0===c)continue;const p=await this._createParquetQuery(e,u,l,c,s),d=await u.file,f=await d.executeQuery(p,K),m=async()=>{const e=await f.next(i);if(!e)return null;const t=new L(this._metadata,this._indexMap,e,u.id);return Fe([new k(t,null,0,!1)],this._queryEngineParams)};let y=await m();for(;null!=y;)yield y,y=await m()}}async _queryFeaturesWithQueryEnginePagination(e,t){const r=[],s=this._streamFeatures(e,null,null,null,t);let i=await s.next();for(;!i.done;){const a=await i.value.executeQueryForOpaqueFeatures({...e,where:void 0},t);for(const e of a)r.push(e);i=await s.next()}return r}async _queryFeaturesWithUpfrontPagination(e,t){let r,s,i,a=e.resultOffset??0,n=e.resultRecordCount??K;de(e)?fe(e)||(i=a+n):(a&&(r=a,a=0),s=e.resultRecordCount);const u=[],o=this._streamFeatures(e,r,s,i,t);let l=await o.next();for(;!l.done&&n>0;){const r=await l.value.executeQueryForOpaqueFeatures({...e,where:void 0},t);for(const e of r)if(a>0)a--;else if(u.push(e),--n<=0)return u;l=await o.next()}return u}_enqueueQuery(e,t){return this._queue.push(e,t)}async _executeQuery(e,t){if(e.objectIds?.length){const r=new Map;for(const t of e.objectIds){const e=j(t),s=Q(t);let i=r.get(e);i||(i=[],r.set(e,i)),i.push(s)}const s=[];for(const[i,a]of r.entries()){const r=await this._executeFileIdQuery(e,i,a,t);for(const e of r)s.push(e)}return new E(s,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,hasM:!1,hasZ:!1,featureAdapter:H,featureIdInfo:this._queryEngineParams.featureIdInfo})}if("1=1"===e.where&&(e.where=null),e.resultOffset??=0,e.resultRecordCount??=await this._getFeatureCount(),e.resultRecordCount>ee){if(!(this._displayOptimization&&e.geometry))throw new s("parquet:cannot-execute-query","Unable to execute query, dataset is too large.")}const r=!!e.orderByFields?.length||!!e.outStatistics?.length||!!e.returnDistinctValues,i=r?await this._queryFeaturesWithQueryEnginePagination(e,t):await this._queryFeaturesWithUpfrontPagination(e,t);return r||(e.resultOffset=0),new E(i,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,hasM:!1,hasZ:!1,featureAdapter:H,featureIdInfo:this._queryEngineParams.featureIdInfo})}async _executeFileIdQuery(e,t,r,s){const i=await this._getRequiredFields(e),a=(await W()).Query.new();a.setOutFields(i),a.setReturnGeometry(!!e.returnGeometry),a.setIds(new Uint32Array(r));const n=await this._getFile(t),u=await n.executeQuery(a,K,s);let o=await u.next(s),l=0;const c=[];for(;null!=o;){const e=new L(this._metadata,this._indexMap,o,t),r=new k(e,null,l++,!1);c.push(r),o=await u.next(s)}return Fe(c,this._queryEngineParams).executeQueryForOpaqueFeatures(e,s)}async _getRequiredFields(e){const t=new Set;if(e.outStatistics)for(const r of v(this._fieldsIndex,e.outStatistics,e.groupByFieldsForStatistics))t.add(r);else if(e.outFields)for(const r of e.outFields)t.add(r);return(t.has("*")?this._fieldsIndex.fields.map(e=>e.name):Array.from(t)).filter(e=>null!=this._indexMap[e])}_tryGetGeneralizedGeometryScale(e){if(!this._displayOptimization)return null;const t=e.outSR??this._queryEngineParams.spatialReference;if(!F(t)&&!S(t))return null;const r=e.quantizationParameters?.tolerance??e.maxAllowableOffset;return r?x(r,t):null}}function oe(e){switch(e){case"fullText":case"having":case"timeExtent":case"historicMoment":case"aggregateIds":case"uniqueIds":case"gdbVersion":case"objectIds":case"where":case"geometry":case"resultOffset":case"resultRecordCount":return!0;default:return!1}}function le(e){switch(e){case"fullText":case"having":case"timeExtent":case"historicMoment":case"aggregateIds":case"uniqueIds":case"gdbVersion":case"objectIds":case"where":case"geometry":return!0;default:return!1}}function ce(e){switch(e){case"fullText":case"having":case"timeExtent":return!0;case"historicMoment":case"aggregateIds":case"uniqueIds":case"gdbVersion":case"objectIds":case"where":case"resultOffset":case"geometry":case"resultRecordCount":return!1}return!1}function pe(e){for(const t in e){const r=t;if(oe(r)&&null!==e[r])return!0}return!1}function de(e){for(const t in e){const r=t;if(le(r)&&null!==e[r])return!0}return!1}function fe(e){for(const t in e){const r=t;if(ce(r)&&null!==e[r])return!0}return!1}function me(e,t){return!!e.outStatistics?.length&&!pe(e)&&!e.groupByFieldsForStatistics?.length&&!e.orderByFields?.length&&!e.returnDistinctValues&&!e.returnAggIds&&e.outStatistics.every(e=>ye(e,t))}function ye(e,t){switch(e.statisticType){case"count":return"1"===e.onStatisticField||null!=t.get(e.onStatisticField);case"min":case"max":{const r=t.get(e.onStatisticField);return null!=r&&B(r)}default:return!1}}function he(e,t){const r="exceedslimit"!==e.statisticType?t.get(e.onStatisticField):null,s="min"!==e.statisticType&&"max"!==e.statisticType||"esriFieldTypeDate"!==r?.type?"esriFieldTypeDouble":r.type;return{name:e.outStatisticFieldName,alias:e.outStatisticFieldName,type:s}}function ge(e,t){switch(e.statisticType){case"count":return _e(e,t);case"min":return we(e,t,Math.min);case"max":return we(e,t,Math.max);default:return{available:!1,value:null}}}function _e(e,t){if("count"!==e.statisticType)return{available:!1,value:null};if("1"===e.onStatisticField)return{available:!0,value:t.reduce((e,t)=>e+t.statistics.rowCount,0)};let r=0;for(const s of t){const t=s.statistics.statistics.get(e.onStatisticField);if(null==t||null==t.nullCount)return{available:!1,value:null};r+=s.statistics.rowCount-t.nullCount}return{available:!0,value:r}}function we(e,t,r){if("min"!==e.statisticType&&"max"!==e.statisticType)return{available:!1,value:null};let s=null;const i="min"===e.statisticType?"minValue":"maxValue";for(const a of t){const t=a.statistics.statistics.get(e.onStatisticField);if(null==t)return{available:!1,value:null};const n=xe(t[i]);null!=n&&(s=null==s?n:r(s,n))}return{available:!0,value:s}}function xe(e){return"number"==typeof e&&Number.isFinite(e)?e:null}function Fe(e,t){const r=new J;for(const s of e)r.insert(s);return new C({...t,featureStore:r})}function Se(e,t){return e.statistics.statistics.get(t.fieldName)??null}function Ie(e,t){return e.slice().sort((e,r)=>{const s=ve(e,t),i=ve(r,t);return s===i?0:s<i?-1:1})}function ve(e,t){const r=Se(e,t);if(null==r)return Number.POSITIVE_INFINITY;const s=be(r.minValue),i=be(r.maxValue);return null==s||null==i||i<s?Number.POSITIVE_INFINITY:i-s}function qe(e,t){return{xStatistics:e.statistics.statistics.get(t.xFieldName)??null,yStatistics:e.statistics.statistics.get(t.yFieldName)??null}}function Re(e,t){const r=be(e.minValue),s=be(e.maxValue);return null==r||null==s||t.intersects(r,s)}function Ce(e,t,r){const s=be(e.minValue),i=be(e.maxValue),a=be(t.minValue),n=be(t.maxValue);return null==s||null==i||null==a||null==n||r.intersects(s,i,a,n)}function be(e){return"number"==typeof e&&Number.isFinite(e)?e:null}function Ee(e){const t=e?.featureCount;let r=!1;return null!=t&&t<has("parquetlayer-full-query-feature-count")&&(r=!0),{analytics:{supportsCacheHint:!1},attachment:null,data:{isVersioned:!1,isBranchVersioned:!1,supportedCurveTypes:[],supportsAttachment:!1,supportsM:!1,supportsTrueCurve:!1,supportsZ:!1},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:!1,supportsDelete:!1,supportsEditing:!1,supportsChangeTracking:!1,supportsQuery:!0,supportsQueryBins:!1,supportsQueryPivot:!1,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:!1,supportsExceedsLimitStatistics:!1,supportsAsyncConvert3D:!1},query:{...b,maxRecordCount:K,supportsOrderBy:r,supportsDistinct:!0,supportsStatistics:!0,supportsSpatialAggregationStatistics:!1,supportedSpatialAggregationStatistics:{envelope:!1,centroid:!1,convexHull:!1}},queryAttributeBins:{supportsDate:!1,supportsFixedInterval:!1,supportsAutoInterval:!1,supportsFixedBoundaries:!1,supportsStackBy:!1,supportsSplitBy:!1,supportsSnapToData:!1,supportsReturnFullIntervalBin:!1,supportsFirstDayOfWeek:!1,supportsNormalization:!1},queryRelated:{supportsCount:!1,supportsOrderBy:!1,supportsPagination:!1,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},editing:{supportsDeleteByAnonymous:!1,supportsDeleteByOthers:!1,supportsGeometryUpdate:!1,supportsGlobalId:!1,supportsTrueCurveUpdate:!1,supportsTrueCurveUpdateByTrueCurveClientsOnly:!0,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsUpdateByAnonymous:!1,supportsUpdateByOthers:!1,supportsUploadWithItemId:!1,supportsUpdateWithoutM:!1,supportsAsyncApplyEdits:!1,zDefault:void 0}}}function Oe(e){return!!(e.objectIds?.length||e.outStatistics||e.orderByFields?.length||e.returnDistinctValues)}export{ue as default};
2
+ import{__addDisposableResource as e,__disposeResources as t}from"tslib";import{toConst as r}from"../../../../core/compilerUtils.js";import s from"../../../../core/Error.js";import i from"../../../../core/Handles.js";import has from"../../../../core/has.js";import a from"../../../../core/Logger.js";import{onAbortOrThrow as n,throwIfAborted as u}from"../../../../core/promiseUtils.js";import{QueueProcessor as o}from"../../../../core/QueueProcessor.js";import{parseWhereClause as l}from"../../../../core/sql.js";import c from"../../../../geometry/SpatialReference.js";import{set as p,create as d,expandWithAABB as f,expandWithRect as m,negativeInfinity as y}from"../../../../geometry/support/aaBoundingBox.js";import{copy as h,negativeInfinity as g,create as _,expandWithRect as w}from"../../../../geometry/support/aaBoundingRect.js";import{getScaleForResolution as x}from"../../../../geometry/support/scaleUtils.js";import{isWebMercator as F,isWGS84 as S}from"../../../../geometry/support/spatialReferenceUtils.js";import{convertToGeometry as I}from"../../featureConversionUtils.js";import{getFieldNamesFromStatistics as v}from"../../data/attributeSupport.js";import{getQueryResultExtent as q,getQueryBoundingRects as R,QueryEngine as C}from"../../data/QueryEngine.js";import{queryCapabilities as b}from"../../data/QueryEngineCapabilities.js";import{QueryEngineResult as E}from"../../data/QueryEngineResult.js";import{normalizeQueryLike as O}from"../../data/queryUtils.js";import{createFileProvider as P}from"../parquet/createFileProvider.js";import{createDrawingInfo as T}from"./clientSideDefaults.js";import{getParquetFileId as j,getParquetRowId as Q,getParquetObjectId as M}from"./parquetIdUtils.js";import N from"../../../support/Field.js";import A from"../../../support/FieldsIndex.js";import{isNumericField as B}from"../../../support/fieldUtils.js";import{fromParquetGeometryEncodingJSON as G}from"../../../support/parquetEncodingUtils.js";import{completeParquetLayerInfo as D,fromParquetJSONGeometryType as z,toParquetJSONGeometryType as V}from"../../../support/parquetUtils.js";import{loadParquetModule as W}from"../../../../libs/parquet/loadParquetModule.js";import{FeatureStoreQueryAdapter as U}from"../../../../views/2d/layers/features/FeatureStoreQueryAdapter.js";import{FeatureSnapshotSourceChunk as k}from"../../../../views/2d/layers/features/sources/strategies/chunks/FeatureSnapshotSourceChunk.js";import{FeatureSourceChunkStore as J}from"../../../../views/2d/layers/features/sources/strategies/chunks/SourceChunkStore.js";import{FeatureMetadata as Z}from"../../../../views/2d/layers/features/support/FeatureMetadata.js";import{FeatureSetReaderParquet as L}from"../../../../views/2d/layers/features/support/FeatureSetReaderParquet.js";const H=new U,Y=4,X="__OBJECTID",$=new TextDecoder,K=8e3,ee=2e7,te=8,re=2,se=20;class ie{constructor(e,t){this._files=e,this._createFileStream=t,this._fileIndex=0,this._streamIndex=0,this._streams=[],this._pending=new Set,this._resolvedCount=0}async next(e){for(await this._fill(e);this._pending.size>0;){u(e),await this._fill(e);const t=await ae(this._pending);if(this._pending.delete(t.read),this._resolvedCount++,null!=t.chunk)return t.chunk}return null}async _fill(e){for(this._removeDone();this._pending.size<te;){const t=this._getOrCreateNextStream(e);if(null==t)return;this._pending.add(t.read(e))}}_getOrCreateNextStream(e){const t=this._resolvedCount>=te?te:re;if(this._fileIndex<this._files.length&&this._streams.length<t){const t=this._files[this._fileIndex++],r=new ne(t.id,this._createFileStream(t,e));return this._streams.push(r),r}return this._getNextStream()}_getNextStream(){const e=this._streams.length;for(let t=0;t<e;t++){const r=(this._streamIndex+t)%e,s=this._streams[r];if(s.canRead)return this._streamIndex=(r+1)%e,s}return null}_removeDone(){let e=this._streamIndex;for(let t=this._streams.length-1;t>=0;t--)this._streams[t].done&&(this._streams.splice(t,1),t<e&&e--);this._streamIndex=this._streams.length>0?e%this._streams.length:0}}function ae(e){return Promise.race(Array.from(e,async e=>({read:e,chunk:await e})))}class ne{constructor(e,t){this._fileId=e,this._stream=t,this._readCount=0,this._reachedEnd=!1}get canRead(){return!this._reachedEnd}get done(){return this._reachedEnd&&0===this._readCount}async read(e){this._readCount++;try{const t=await this._stream,r=await t.next(e);return null==r?(this._reachedEnd=!0,null):{fileId:this._fileId,chunk:r}}finally{this._readCount--}}}class ue{constructor(){this._queue=new o({concurrency:Y,process:(e,t)=>this._executeQuery(e,t)}),this._streams=new Map,this._streamIdCounter=0,this._indexMap={},this._handles=new i}async load(e){const t=e.spatialReference?c.fromJSON(e.spatialReference):void 0;if(t&&!t.isWGS84&&!t.isWebMercator)throw new s("parquet:unsupported-projection","Only WGS84 and Web Mercator are supported");this._customParameters=e.customParameters,this._provider=P(e.provider,null,()=>this._customParameters),this._handles.add(this._provider.events.on("sourceChanged",async()=>{await this.reload(e),await this._source.onSourceChange()}));const r=await this._provider.getMetadata(),i=await D(r,{fields:e.fields?.map(e=>N.fromJSON(e)),geometryEncoding:e.geometryEncoding?G(e.geometryEncoding):null,geometryType:e.geometryType?z(e.geometryType):null,displayOptimization:e.displayOptimization,spatialReference:t});if(!i.fields)throw new s("parquet:unsupported","Fields must be defined");let n;if(i.spatialReference&&i.geometryType){if(!i.spatialReference)throw new s("parquet:unsupported","SpatialReference must be defined");if(!i.spatialReference.isGeographic&&!i.spatialReference.isWebMercator)throw new s("parquet:unsupported-projection","Only WGS84 and Web Mercator are supported");i.spatialReference.isGeographic&&!i.spatialReference.isWGS84&&(a.getLogger("parquet:unsupported-projection").warn("Found a geographic projection that is not WGS84. Handling as WGS84.",{spatialReference:i.spatialReference}),i.spatialReference=c.WGS84),n={geometry:i.geometryEncoding?{geometryType:V(i.geometryType),spatialReference:i.spatialReference.toJSON(),encoding:i.geometryEncoding.toJSON()}:null,displayOptimization:i.displayOptimization}}this.setCustomParameters(e.customParameters),this._displayOptimization=i.displayOptimization,await this._provider.updateGeometryInfo(n),this._capabilities=Ee(await this._getFileStatistics());const u=await this._provider.getFiles();if(!u.length)return{layerDefinition:{},capabilities:Ee(null)};const o=await u[0].file;i.file=o;const{fields:l}=i;if(null==l)throw new s("parquet-layer:missing-metadata","Unable to create parquet source: cannot infer fields",l);l.push(new N({name:X,type:"oid",alias:X}));for(const s of l){const e=o.getColumnId(s.name);null!=e&&(this._indexMap[s.name]=e)}const p=new A(l.map(e=>e.toJSON()));this._fieldsIndex=p;const d=V(i.geometryType??"point");return this._metadata=Z.createFeature({fieldsIndex:p.toJSON(),geometryType:d,hasZ:!1,hasM:!1,featureIdInfo:{type:"object-id",fieldName:X},subtypes:null,subtypeField:null,types:null,typeIdField:null,globalIdField:null,spatialReference:i.spatialReference,outSpatialReference:null,attributeSpatialReference:null,timeInfo:null,timeReferenceUnknownClient:null,dateFieldsTimeZone:null}),this._queryEngineParams={fieldsIndex:this._metadata.fieldsIndex,geometryType:d,featureIdInfo:{type:"object-id",fieldName:X},hasM:!1,hasZ:!1,spatialReference:i.spatialReference?.toJSON()??{wkid:4326},aggregateAdapter:null,timeInfo:null,definitionExpression:null},this._fullExtent=r?.extent?r.extent:await this._tryDeriveParquetFullExtent(i),{capabilities:this._capabilities,layerDefinition:{fields:i.fields?.map(e=>e.toJSON()),drawingInfo:T(d),extent:this._fullExtent??void 0,geometryType:d,geometryEncoding:i.geometryEncoding?.toJSON(),displayOptimization:i.displayOptimization}}}destroy(){this._provider.destroy(),this._queue.destroy();for(const{handle:e}of this._streams.values())e.remove();this._streams.clear(),this._indexMap={},this._handles.removeAll()}async reload(e){this.destroy(),await this.load(e)}set remoteClient(e){this._source=e.createInvokeProxy("")}setCustomParameters(e){this._customParameters=e}getIndexMap(){return this._indexMap}async updateFileProvider(e){this._provider=P(e,this._provider.getGeometryInfo(),()=>this._customParameters)}async queryFeatures(e,t){const r=await O(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(r),Oe(r)||(r.resultRecordCount=r.resultRecordCount?Math.min(r.resultRecordCount,K):K,r.resultOffset=r.resultOffset??0),r.outStatistics)return this._queryStatistics(r,t);r.returnDistinctValues&&(r.returnGeometry=void 0);return(await this._enqueueQuery(r,t)).createQueryResponse()}async queryFeatureCount(e,t){const r=await O(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(r),!pe(r))return this._getFeatureCount();r.outFields=void 0,r.returnGeometry=void 0;return(await this._enqueueQuery(r,t)).createQueryResponseForCount()}async queryObjectIds(e,t){const r=await O(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(r),!pe(r))return Array.from({length:await this._getFeatureCount()},(e,t)=>t);r.resultRecordCount=r.resultRecordCount?Math.min(r.resultRecordCount,8e3):8e3,r.resultOffset=r.resultOffset??0,r.returnGeometry=void 0,r.outFields=void 0;return(await this._enqueueQuery(r,t)).items.map(e=>e.getObjectId())}async queryAttributeBins(e,t={}){throw new s("parquet:unsupported","queryAttributeBins not supported.")}async queryExtent(e,t){const s=await O(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(s),this._fullExtent&&!pe(s))return{count:await this._getFeatureCount(),extent:this._fullExtent};const i=r(this._metadata.spatialReference);s.returnGeometry=!0,s.outFields=void 0;const a=p(d(),y),n=d(),u=await this._enqueueQuery(s,t);let o=0;for(const r of u.items)r.getBounds(n)&&(f(a,n),o+=1);return{count:o,extent:q(a,i,s.outSR?r(s.outSR):i.toJSON(),i,!1)}}async queryStream(e,t){if(!t.signal)throw new Error("InternalError: AbortSignal must be passed");const r=await this._getCandidateFiles(e),s=new ie(r,async(t,r)=>{const s=await t.file,i=await this._createParquetDisplayQuery(s,t.id,e);return s.executeQuery(i,K,r)}),i=this._streamIdCounter++,a=n(t.signal,e=>{const t=this._streams.get(i);null!=t&&(t.handle.remove(),this._streams.delete(i))});return this._streams.set(i,{stream:s,handle:a}),i}async getStreamNext(e,t){if(!t.signal)throw new Error("InternalError: AbortSignal must be passed");const r=this._streams.get(e);if(!r)return{result:null};const s=await r.stream.next(t.signal);if(null==s)return r.handle.remove(),this._streams.delete(e),{result:null};const i=s.chunk.serialize().buffer,a={fileId:s.fileId,buffer:i};return i instanceof ArrayBuffer?{result:a,transferList:[i]}:{result:a}}async getStreamNextFeatures(e,t){const{result:r}=await this.getStreamNext(e,t);if(null==r)return null;const s=(await W()).ParquetChunk.deserialize(new Uint8Array(r.buffer)),i=new L(this._metadata,this._indexMap,s,r.fileId),a=[];for(;i.next();){const e=I(i.readGeometryWorldSpace(),i.geometryType,i.hasZ,i.hasM),t=i.readAttributes();a.push({attributes:t,geometry:e})}return{features:a}}async createPatch(e,t,r,s,i){if(!i.signal)throw new Error("InternalError: AbortSignal must be passed");const a=await this._getFileInfoById(e),n=await a.file;return(await n.createChunkPatch(t,r,s,i.signal)).serialize().buffer}async _getCandidateFiles(e){const t=await this._provider.getFiles(),r=await this._getSpatialFilePruning(e);if(null==r)return t;const s=t.filter(e=>this._mayIncludeFileForSpatialPruning(e,r));return"xz"===r.type?Ie(s,r):s}async _queryStatistics(e,t){const r=await O({...e},null,this._queryEngineParams.spatialReference);if(r.returnGeometry=void 0,me(r,this._fieldsIndex)){const e=await this._getStatisticsFromFiles(r);if(e)return e}return(await this._enqueueQuery(r,t)).createQueryResponse()}async _getStatisticsFromFiles(e){const t=await this._provider.getFiles(),r={},s=[];for(const i of e.outStatistics??[]){const e=ge(i,t);if(!e.available)return null;r[i.outStatisticFieldName]=e.value,s.push(he(i,this._fieldsIndex))}return{fields:s,features:[{attributes:r}]}}async _getSpatialFilePruning(e){if("tile"!==e.type&&("arcade"!==e.type||null==e.extent))return null;const t=this._displayOptimization,r=t?.index;if(null==r)return null;const s=e.outSpatialReference.wkid;if(null==r.wkid||null==s)return null;const i=r.wkid,a=await W();switch(r.type){case"xz":return{type:"xz",fieldName:r.code,intersects:(t,n)=>a.queryIntersectsXZStatistics(r.fullExtent,e.extent,s,i,se,t,n)};case"z":return{type:"xy",xFieldName:r.xColumn,yFieldName:r.yColumn,intersects:(t,r,n,u)=>a.queryIntersectsXYStatistics(e.extent,s,i,t,r,n,u)}}}_mayIncludeFileForSpatialPruning(e,t){switch(t.type){case"xz":{const r=Se(e,t);return null==r||Re(r,t)}case"xy":{const{xStatistics:r,yStatistics:s}=qe(e,t);return null==r||null==s||Ce(r,s,t)}}}async _tryDeriveParquetFullExtent(r){if(!r.spatialReference)return null;if(null==this._fullExtent&&"location"===r.geometryEncoding?.type){const i=await this._provider.getFiles(),{xField:a,yField:n}=r.geometryEncoding,u=p(d(),y);for(const r of i){const i=await r.file;for(const r of i.rowGroups()){const i={stack:[],error:void 0,hasError:!1};try{const t=e(i,r.columnDescriptorForAttribute(a),!1),s=e(i,r.columnDescriptorForAttribute(n),!1),o=[t.minValue(),s.minValue(),t.maxValue(),s.maxValue()];m(u,o),r.free()}catch(s){i.error=s,i.hasError=!0}finally{t(i)}}}return{xmin:u[0],ymin:u[1],xmax:u[3],ymax:u[4],spatialReference:r.spatialReference?.toJSON()}}return null}async _getFileInfoById(e){const t=await this._provider.getFiles();for(const r of t)if(r.id===e)return r;throw new Error(`InternalError: File ${e} does not exist`)}async _getFileStatistics(){return{featureCount:await this._getFeatureCount(),byteLength:await this._getByteLength()}}async _getFile(e){return(await this._getFileInfoById(e)).file}async _createParquetQuery(e,t,r,s,i){const a=(await W()).Query.new();null!=r&&a.setPreFilterStart(r),null!=s&&a.setPreFilterCount(s),null!=i&&a.setPostFilterCount(i);const n=await this._getRequiredFields(e);a.setOutFields(n),(e.geometry||e.returnGeometry)&&a.setReturnGeometry(!0);const u=this._tryGetGeneralizedGeometryScale(e);null!=u&&a.setScale(u);const o=e.geometry?.spatialReference??this._queryEngineParams.spatialReference,l=o.wkid;if(e.geometry&&(F(o)||S(o))){const t=h(_(),g);for(const r of R(e.geometry))w(t,r);a.setOutSpatialReference(l),a.setExtent({xmin:t[0],ymin:t[1],xmax:t[2],ymax:t[3]})}if(e.where){const{id:r,file:s}=t;await this._setWhereClause(a,await s,r,e.where)}return a}async _createParquetDisplayQuery(e,t,r){const s=(await W()).Query.new();return"tile"===r.type?(s.setExtent(r.extent),s.setQuantizationTransform(r.transform),s.setScale(r.scale)):"arcade"===r.type&&null!=r.extent&&s.setExtent(r.extent),s.setOutFields(r.outFields.filter(e=>null!=this._indexMap[e])),s.setOutSpatialReference(r.outSpatialReference.wkid),s.setReturnGeometry(r.returnGeometry),r.where&&await this._setWhereClause(s,e,t,r.where),s}async _getFeatureCount(){return(await this._provider.getFiles()).map(e=>e.statistics.rowCount).reduce((e,t)=>e+t,0)}async _getByteLength(){return(await this._provider.getFiles()).map(e=>e.statistics.byteSize).reduce((e,t)=>e+t,0)}_validateQuery(e){if(!this._capabilities.query.supportsStatistics&&e.outStatistics)throw new s("parquet:unsupported","Statistics queries are not supported",{query:e});if(!this._capabilities.query.supportsOrderBy&&e.orderByFields?.length)throw new s("parquet:unsupported","Queries using orderBy are not supported",{query:e});if(!this._capabilities.query.supportsDistinct&&e.returnDistinctValues)throw new s("parquet:unsupported","Queries using returnDistinctValues are not supported",{query:e})}async _setWhereClause(e,t,r,i){const a=this._indexMap,n=this._fieldsIndex,u={getAttribute(e,s){const i=a[s];if(null==i){const t=n.get(s);if("__OBJECTID"===t?.name){const t=e.row+e.rowGroupStart;return M(r,t)}return null}const u=t.readAttribute(e.rowGroup,e.row,i);if(null==u)return null;const o=n.get(s);return"esriFieldTypeString"===o.type||"esriFieldTypeDateOnly"===o.type||"esriFieldTypeTimeOnly"===o.type||"esriFieldTypeTimestampOffset"===o.type?$.decode(u):u}},o=await l(i,this._fieldsIndex);if(!o.isStandardized)throw new s("sql-parse-error","expression is not standardized");const c=(e,t,r)=>o.testFeatureCompiled({rowGroup:e,row:t,rowGroupStart:r},u,null),p=o.fieldNames.map(e=>n.get(e)).filter(e=>e&&null!=this._indexMap[e?.name]);e.setWhere(i),e.setWhereEvaluator(c),e.setWhereFields(p.map(e=>e.name))}async*_streamFeatures(e,t,r,s,i){const a=await this._provider.getFiles();let n=0;for(const u of a){const a=n,o=n+u.statistics.rowCount;if(n+=u.statistics.rowCount,null!=t&&t>=o)continue;const l=null!=t?Math.max(t-a,0):null;let c=r;if(null!=r){const e=t??0,s=e+r,i=Math.max(e,a),n=Math.min(s,o);c=Math.max(n-i,0)}if(0===c)continue;const p=await this._createParquetQuery(e,u,l,c,s),d=await u.file,f=await d.executeQuery(p,K),m=async()=>{const e=await f.next(i);if(!e)return null;const t=new L(this._metadata,this._indexMap,e,u.id);return Fe([new k(t,null,0,!1)],this._queryEngineParams)};let y=await m();for(;null!=y;)yield y,y=await m()}}async _queryFeaturesWithQueryEnginePagination(e,t){const r=[],s=this._streamFeatures(e,null,null,null,t);let i=await s.next();for(;!i.done;){const a=await i.value.executeQueryForOpaqueFeatures({...e,where:void 0},t);for(const e of a)r.push(e);i=await s.next()}return r}async _queryFeaturesWithUpfrontPagination(e,t){let r,s,i,a=e.resultOffset??0,n=e.resultRecordCount??K;de(e)?fe(e)||(i=a+n):(a&&(r=a,a=0),s=e.resultRecordCount);const u=[],o=this._streamFeatures(e,r,s,i,t);let l=await o.next();for(;!l.done&&n>0;){const r=await l.value.executeQueryForOpaqueFeatures({...e,where:void 0},t);for(const e of r)if(a>0)a--;else if(u.push(e),--n<=0)return u;l=await o.next()}return u}_enqueueQuery(e,t){return this._queue.push(e,t)}async _executeQuery(e,t){if(e.objectIds?.length){const r=new Map;for(const t of e.objectIds){const e=j(t),s=Q(t);let i=r.get(e);i||(i=[],r.set(e,i)),i.push(s)}const s=[];for(const[i,a]of r.entries()){const r=await this._executeFileIdQuery(e,i,a,t);for(const e of r)s.push(e)}return new E(s,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,hasM:!1,hasZ:!1,featureAdapter:H,featureIdInfo:this._queryEngineParams.featureIdInfo})}if("1=1"===e.where&&(e.where=null),e.resultOffset??=0,e.resultRecordCount??=await this._getFeatureCount(),e.resultRecordCount>ee){if(!(this._displayOptimization&&e.geometry))throw new s("parquet:cannot-execute-query","Unable to execute query, dataset is too large.")}const r=!!e.orderByFields?.length||!!e.outStatistics?.length||!!e.returnDistinctValues,i=r?await this._queryFeaturesWithQueryEnginePagination(e,t):await this._queryFeaturesWithUpfrontPagination(e,t);return r||(e.resultOffset=0),new E(i,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,hasM:!1,hasZ:!1,featureAdapter:H,featureIdInfo:this._queryEngineParams.featureIdInfo})}async _executeFileIdQuery(e,t,r,s){const i=await this._getRequiredFields(e),a=(await W()).Query.new();a.setOutFields(i),a.setReturnGeometry(!!e.returnGeometry),a.setIds(new Uint32Array(r));const n=await this._getFile(t),u=await n.executeQuery(a,K,s);let o=await u.next(s),l=0;const c=[];for(;null!=o;){const e=new L(this._metadata,this._indexMap,o,t),r=new k(e,null,l++,!1);c.push(r),o=await u.next(s)}return Fe(c,this._queryEngineParams).executeQueryForOpaqueFeatures(e,s)}async _getRequiredFields(e){const t=new Set;if(e.outStatistics)for(const r of v(this._fieldsIndex,e.outStatistics,e.groupByFieldsForStatistics))t.add(r);else if(e.outFields)for(const r of e.outFields)t.add(r);return(t.has("*")?this._fieldsIndex.fields.map(e=>e.name):Array.from(t)).filter(e=>null!=this._indexMap[e])}_tryGetGeneralizedGeometryScale(e){if(!this._displayOptimization)return null;const t=e.outSR??this._queryEngineParams.spatialReference;if(!F(t)&&!S(t))return null;const r=e.quantizationParameters?.tolerance??e.maxAllowableOffset;return r?x(r,t):null}}function oe(e){switch(e){case"fullText":case"having":case"timeExtent":case"historicMoment":case"aggregateIds":case"uniqueIds":case"gdbVersion":case"objectIds":case"where":case"geometry":case"resultOffset":case"resultRecordCount":return!0;default:return!1}}function le(e){switch(e){case"fullText":case"having":case"timeExtent":case"historicMoment":case"aggregateIds":case"uniqueIds":case"gdbVersion":case"objectIds":case"where":case"geometry":return!0;default:return!1}}function ce(e){switch(e){case"fullText":case"having":case"timeExtent":return!0;case"historicMoment":case"aggregateIds":case"uniqueIds":case"gdbVersion":case"objectIds":case"where":case"resultOffset":case"geometry":case"resultRecordCount":return!1}return!1}function pe(e){for(const t in e){const r=t;if(oe(r)&&null!==e[r])return!0}return!1}function de(e){for(const t in e){const r=t;if(le(r)&&null!==e[r])return!0}return!1}function fe(e){for(const t in e){const r=t;if(ce(r)&&null!==e[r])return!0}return!1}function me(e,t){return!!e.outStatistics?.length&&!pe(e)&&!e.groupByFieldsForStatistics?.length&&!e.orderByFields?.length&&!e.returnDistinctValues&&!e.returnAggIds&&e.outStatistics.every(e=>ye(e,t))}function ye(e,t){switch(e.statisticType){case"count":return"1"===e.onStatisticField||null!=t.get(e.onStatisticField);case"min":case"max":{const r=t.get(e.onStatisticField);return null!=r&&B(r)}default:return!1}}function he(e,t){const r="exceedslimit"!==e.statisticType?t.get(e.onStatisticField):null,s="min"!==e.statisticType&&"max"!==e.statisticType||"esriFieldTypeDate"!==r?.type?"esriFieldTypeDouble":r.type;return{name:e.outStatisticFieldName,alias:e.outStatisticFieldName,type:s}}function ge(e,t){switch(e.statisticType){case"count":return _e(e,t);case"min":return we(e,t,Math.min);case"max":return we(e,t,Math.max);default:return{available:!1,value:null}}}function _e(e,t){if("count"!==e.statisticType)return{available:!1,value:null};if("1"===e.onStatisticField)return{available:!0,value:t.reduce((e,t)=>e+t.statistics.rowCount,0)};let r=0;for(const s of t){const t=s.statistics.statistics.get(e.onStatisticField);if(null==t||null==t.nullCount)return{available:!1,value:null};r+=s.statistics.rowCount-t.nullCount}return{available:!0,value:r}}function we(e,t,r){if("min"!==e.statisticType&&"max"!==e.statisticType)return{available:!1,value:null};let s=null;const i="min"===e.statisticType?"minValue":"maxValue";for(const a of t){const t=a.statistics.statistics.get(e.onStatisticField);if(null==t)return{available:!1,value:null};const n=xe(t[i]);null!=n&&(s=null==s?n:r(s,n))}return{available:!0,value:s}}function xe(e){return"number"==typeof e&&Number.isFinite(e)?e:null}function Fe(e,t){const r=new J;for(const s of e)r.insert(s);return new C({...t,featureStore:r})}function Se(e,t){return e.statistics.statistics.get(t.fieldName)??null}function Ie(e,t){return e.slice().sort((e,r)=>{const s=ve(e,t),i=ve(r,t);return s===i?0:s<i?-1:1})}function ve(e,t){const r=Se(e,t);if(null==r)return Number.POSITIVE_INFINITY;const s=be(r.minValue),i=be(r.maxValue);return null==s||null==i||i<s?Number.POSITIVE_INFINITY:i-s}function qe(e,t){return{xStatistics:e.statistics.statistics.get(t.xFieldName)??null,yStatistics:e.statistics.statistics.get(t.yFieldName)??null}}function Re(e,t){const r=be(e.minValue),s=be(e.maxValue);return null==r||null==s||t.intersects(r,s)}function Ce(e,t,r){const s=be(e.minValue),i=be(e.maxValue),a=be(t.minValue),n=be(t.maxValue);return null==s||null==i||null==a||null==n||r.intersects(s,i,a,n)}function be(e){return"number"==typeof e&&Number.isFinite(e)?e:null}function Ee(e){const t=e?.featureCount;let r=!1;return null!=t&&t<has("parquetlayer-full-query-feature-count")&&(r=!0),{analytics:{supportsCacheHint:!1},attachment:null,data:{isVersioned:!1,isBranchVersioned:!1,supportedCurveTypes:[],supportsAttachment:!1,supportsM:!1,supportsTrueCurve:!1,supportsZ:!1},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:!1,supportsDelete:!1,supportsEditing:!1,supportsChangeTracking:!1,supportsQuery:!0,supportsQueryBins:!1,supportsQueryPivot:!1,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:!1,supportsExceedsLimitStatistics:!1,supportsAsyncConvert3D:!1},query:{...b,maxRecordCount:K,supportsOrderBy:r,supportsDistinct:!0,supportsStatistics:!0,supportsSpatialAggregationStatistics:!1,supportedSpatialAggregationStatistics:{envelope:!1,centroid:!1,convexHull:!1}},queryAttributeBins:{supportsDate:!1,supportsFixedInterval:!1,supportsAutoInterval:!1,supportsFixedBoundaries:!1,supportsStackBy:!1,supportsSplitBy:!1,supportsSnapToData:!1,supportsReturnFullIntervalBin:!1,supportsFirstDayOfWeek:!1,supportsNormalization:!1},queryRelated:{supportsCount:!1,supportsOrderBy:!1,supportsPagination:!1,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},editing:{supportsDeleteByAnonymous:!1,supportsDeleteByOthers:!1,supportsGeometryUpdate:!1,supportsGlobalId:!1,supportsTrueCurveUpdate:!1,supportsTrueCurveUpdateByTrueCurveClientsOnly:!0,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsUpdateByAnonymous:!1,supportsUpdateByOthers:!1,supportsUploadWithItemId:!1,supportsUpdateWithoutM:!1,supportsAsyncApplyEdits:!1,zDefault:void 0}}}function Oe(e){return!!(e.objectIds?.length||e.outStatistics||e.orderByFields?.length||e.returnDistinctValues)}export{ue as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{id as e}from"../../kernel.js";import{isPopupTemplate as t}from"../../popupTemplateUtils.js";import{resultOrAbort as r}from"../../core/asyncUtils.js";import n from"../../core/Error.js";import{JSONMap as o}from"../../core/jsonMap.js";import i from"../../core/Logger.js";import{parseWhereClause as s}from"../../core/sql.js";import{normalizeGlobalID as a}from"../../core/uuid.js";import{createTypeReader as u}from"../../core/accessorSupport/extensions/serializableProperty/reader.js";import{isHostedAgolService as l}from"./arcgisLayerUrl.js";import c from"./CodedValue.js";import p from"./CodedValueDomain.js";import{queryAllJSON as d}from"./featureQueryAll.js";import{isStringField as f,isIntegerField as y}from"./fieldUtils.js";import{isLabelClass as m}from"./labelUtils.js";import{isLayerWithFeatureCapabilities as b,getOwningPortalUrl as h}from"./layerUtils.js";import w from"../../renderers/SimpleRenderer.js";import g from"../../renderers/UniqueValueRenderer.js";import{isSizeVariable as I}from"../../renderers/visualVariables/support/sizeVariableUtils.js";import j from"../../rest/support/AttachmentQuery.js";import{normalizationTypeJsonMap as x}from"../../rest/support/NormalizationBinParametersMixin.js";import v from"../../rest/support/Query.js";import F from"../../rest/support/RelationshipQuery.js";import{loadArcade as S}from"../../support/loadArcade.js";import{symbolTypesRenderer as P}from"../../symbols/support/typeUtils.js";const L=()=>i.getLogger("esri.layers.support.featureLayerUtils"),q=new o({esriGeometryPoint:"point",esriGeometryMultipoint:"multipoint",esriGeometryPolyline:"polyline",esriGeometryPolygon:"polygon",esriGeometryMultiPatch:"multipatch"});async function A(e,t,r,o,i){const s=await Y(e);if(await E(e,t,o),!s.addAttachment)throw new n(o,"Layer source does not support addAttachment capability");return s.addAttachment(t,r,i)}function E(e,t,r){const{attributes:o}=t,{objectIdField:i}=e;return e.capabilities?.data?.supportsAttachment?t?o?i&&null!=o[i]?Promise.resolve():Promise.reject(new n(r,`feature is missing the identifying attribute ${i}`)):Promise.reject(new n(r,"'attributes' are required on a feature to query attachments")):Promise.reject(new n(r,"A feature is required to add/delete/update attachments")):Promise.reject(new n(r,"this layer doesn't support attachments"))}async function M(e,t,r,o,i,s){const a=await Y(e);if(await E(e,t,i),!a.updateAttachment)throw new n(i,"Layer source does not support updateAttachment capability");return a.updateAttachment(t,r,o,s)}async function O(e,t,r){const{applyEdits:n}=await import("../graphics/editingSupport.js"),o=await e.load();let i=r;const{url:s,type:a,globalIdField:u}=o;return"feature"===a&&l(s)&&o.infoFor3D&&null!=t.deleteFeatures&&null!=u&&(i={...i,globalIdToObjectId:await pe(o,t.deleteFeatures,u)}),n(o,o.source,t,i)}async function C(e,t,r){const{uploadAssets:n}=await import("../graphics/editingSupport.js"),o=await e.load();return n(o,o.source,t,r)}async function D(e,t,r,o,i){const s=await Y(e);if(await E(e,t,o),!s.deleteAttachments)throw new n(o,"Layer source does not support deleteAttachments capability");return s.deleteAttachments(t,r,i)}async function T(e,t,r){const o=(await e.load({signal:t?.signal})).source;if(!o.fetchRecomputedExtents)throw new n(r,"Layer source does not support fetchUpdates capability");return o.fetchRecomputedExtents(t)}async function z(e,t,r,o){let i=j.from(t);const s=await e.load(),a=s.source,u=s.capabilities;if(!u?.data?.supportsAttachment)throw new n(o,"this layer doesn't support attachments");const{attachmentTypes:l,objectIds:c,globalIds:p,num:d,size:f,start:y,where:m}=i;if(!u?.operations?.supportsQueryAttachments){if(l?.length>0||p?.length>0||f?.length>0||d||y||m)throw new n(o,"when 'capabilities.operations.supportsQueryAttachments' is false, only objectIds is supported",i)}if(!(c?.length||p?.length||m))throw new n(o,"'objectIds', 'globalIds', or 'where' are required to perform attachment query",i);if(!a.queryAttachments)throw new n(o,"Layer source does not support queryAttachments capability",i);return!u?.attachment?.supportsOrderByFields&&i.orderByFields?.length&&(i=i.clone(),i.orderByFields=null),a.queryAttachments(i)}async function U(e,t,r,o){const i=await Y(e);if(!i.queryObjectIds)throw new n(o,"Layer source does not support queryObjectIds capability");return i.queryObjectIds(v.from(t)??e.createQuery(),r)}async function k(e,t,r,o){const i=await Y(e);if(!i.queryFeatureCount)throw new n(o,"Layer source does not support queryFeatureCount capability");return i.queryFeatureCount(v.from(t)??e.createQuery(),r)}async function B(e,t,r,o){const i=await Y(e);if(!i.queryExtent)throw new n(o,"Layer source does not support queryExtent capability");return i.queryExtent(v.from(t)??e.createQuery(),r)}async function V(e,t,r,o){const i=await Y(e);if(!i.queryRelatedFeatures)throw new n(o,"Layer source does not support queryRelatedFeatures capability");return i.queryRelatedFeatures(F.from(t),r)}async function R(e,t,r,o){const i=await Y(e);if(!i.queryRelatedFeaturesCount)throw new n(o,"Layer source does not support queryRelatedFeaturesCount capability");return i.queryRelatedFeaturesCount(F.from(t),r)}async function N(e){const t=e.source;if(t?.refresh)try{const{dataChanged:r,updates:n}=await t.refresh();if(null!=n&&(e.sourceJSON={...e.sourceJSON,...n},e.read(n,{origin:"service",url:e.parsedUrl})),r)return!0}catch{}if(e.definitionExpression)try{return(await s(e.definitionExpression,e.fieldsIndex)).hasDateFunctions}catch{}return!1}function G(e){const t=new v;t.historicMoment=e.historicMoment,t.gdbVersion=e.gdbVersion,t.returnGeometry=!0,t.outFields=["*"],t.multipatchOption="multipatch"===e.geometryType?"xyFootprint":null;const r=e.capabilities?.query;r&&(t.compactGeometryEnabled=r.supportsCompactGeometry,t.defaultSpatialReferenceEnabled=r.supportsDefaultSpatialReference);const n=e.capabilities?.data;n?.supportsZ&&null!=e.returnZ&&(t.returnZ=e.returnZ),n?.supportsM&&null!=e.returnM&&(t.returnM=e.returnM);const{timeOffset:o,timeExtent:i}=e;return t.timeExtent=null!=o&&null!=i?i.offset(-o.value,o.unit):i||null,t}function Q(e){const{globalIdField:t,fields:r}=e;if(t)return t;if(r)for(const n of r)if("esriFieldTypeGlobalID"===n.type)return n.name}function Z(e){const{objectIdField:t,fields:r}=e;if(t)return t;if(r)for(const n of r)if("esriFieldTypeOID"===n.type)return n.name}function $(e){return e.currentVersion?e.currentVersion:e.hasOwnProperty("capabilities")||e.hasOwnProperty("drawingInfo")||e.hasOwnProperty("hasAttachments")||e.hasOwnProperty("htmlPopupType")||e.hasOwnProperty("relationships")||e.hasOwnProperty("timeInfo")||e.hasOwnProperty("typeIdField")||e.hasOwnProperty("types")?10:9.3}function J(e,t,r,n){const o=r?.feature,i=!!e.subtypes?.length;if(i&&!r?.excludeImpliedDomains){const r=W(e,t);if(r)return r}const s=i&&H(e,o);if(s){const e=s?.domains?.[t];return"inherited"===e?.type?n:e}const a=de(e.types,e.typeIdField,o);if(a){const e=a.domains&&a.domains[t];if(e&&"inherited"!==e?.type)return e}if(n)return n;if(!r?.excludeImpliedDomains){const r=_(e,t);if(r)return r}return null}function H(e,t){const{subtypes:r,subtypeField:n}=e;if(!t?.attributes||!r?.length||!n)return null;const o=t.attributes[n];return null==o?null:r.find(e=>e.code===o)}function W(e,t){const{fieldsIndex:r,subtypeField:n}=e,{name:o,type:i}=r.get(t)??{};if(!o)return null;if((n&&r.get(n)?.name)===o&&e.subtypes?.length){const t=e.subtypes.map(e=>new c({code:X(e.code,i),name:e.name}));if(t?.length)return new p({codedValues:t})}return null}function _(e,t){const{fieldsIndex:r}=e,{name:n,type:o}=r.get(t)??{};if(!n)return null;if(("typeIdField"in e?r.get(e.typeIdField)?.name:null)===n&&"types"in e&&e.types?.length&&K(e.types)){const t=e.types?.map(e=>new c({code:X(e.id,o),name:e.name}));return new p({codedValues:t})}return null}function K(e){const t=new Set,r=new Set;for(const n of e){if(t.has(n.id)||r.has(n.name))return!1;t.add(n.id),r.add(n.name)}return!0}function X(e,t){return t?f({type:t})&&"number"==typeof e?`${e}`:y({type:t})&&"string"==typeof e?Number.parseInt(e,10):e:e}async function Y(e){return(await e.load()).source}async function ee(t,r){if(!e)return;const n=e.findCredential(t);if(n)return n.userId;let o;try{const n=await h(t,r);n&&(o=await e.checkSignInStatus(`${n}/sharing`))}catch(i){}return o?o.userId:null}async function te(t,r){if(!e)return;if(e.findCredential(t))return;let n;try{const o=await h(t,r);o&&(n=await e.checkSignInStatus(`${o}/sharing`))}catch(o){}if(n)try{const n=null!=r?r.signal:null;await e.getCredential(t,{signal:n})}catch(o){}}async function re(e,t,r){const n=e.parsedUrl?.path;n&&e.authenticationTriggerEvent===t&&await te(n,r)}async function ne(e){const t=e.parsedUrl?.path;t&&oe(e)&&await te(t)}function oe(e){return ie(e)&&("serviceDefinitionExpression"in e&&se(e.serviceDefinitionExpression)||"definitionExpression"in e&&se(e.definitionExpression))}function ie(e){return!(!b(e)||!e.capabilities?.query.supportsCurrentUser)}function se(e){return!!e?.toLowerCase().includes("current_user")}function ae(e){return!fe(e)&&(e.userHasUpdateItemPrivileges||e.editingEnabled)}const ue=u({types:P});function le(e,t){if(e.defaultSymbol)return e.types?.length?new g({defaultSymbol:ue(e.defaultSymbol,e,t),field:e.typeIdField,uniqueValueInfos:e.types.map(e=>({id:e.id,symbol:ue(e.symbol,e,t)}))}):new w({symbol:ue(e.defaultSymbol,e,t)})}function ce(e){let t=e.sourceJSON?.cacheMaxAge;if(!t)return!1;const r=e.editingInfo?.lastEditDate?.getTime();return null==r||(t*=1e3,Date.now()-r<t)}async function pe(e,t,n){if(null==t)return null;const o=[],{objectIdField:i}=e;if(t.forEach(e=>{let t=null;if("attributes"in e){const{attributes:r}=e;t={globalId:r[n],objectId:null!=r[i]&&-1!==r[i]?r[i]:null}}else t={globalId:e.globalId,objectId:null!=e.objectId&&-1!==e.objectId?e.objectId:null};null!=t.globalId&&(null!=t.objectId&&-1!==t.objectId||o.push(t.globalId))}),0===o.length)return null;const s=e.createQuery();s.where=o.map(e=>`${n}='${e}'`).join(" OR "),s.returnGeometry=!1,s.outFields=[i,n],s.cacheHint=!1;const u=await r(d(e,s));if(!u.ok)return null;const l=new Map,c=u.value.features;for(const r of c){const e=r.attributes[n],t=r.attributes[i];null!=e&&null!=t&&-1!==t&&l.set(a(e),t)}return l}function de(e,t,r){if(!t||!r||!e)return null;const n=r.getAttribute(t);if(null==n)return null;const o=e.filter(e=>{const{id:t}=e;return null!=t&&t.toString()===n.toString()});return o.length>1&&L().warn("getFeatureType",`Cannot unambiguously determine feature type because multiple types have the id ${n}.`),o[0]??null}function fe(e){return e.sourceJSON?.isMultiServicesView||ye(e)}function ye(e){return!!e.sourceJSON?.capabilities?.toLowerCase().split(",").map(e=>e.trim()).includes("map")}function me(e,t,r){const o=t?.queryAttributeBins;if(!t?.operations?.supportsQueryBins||!o)throw new n(r,"Layer source does not support binning");switch(e.binParameters?.type){case"auto-interval":if(!o.supportsAutoInterval)throw new n(r,"Layer source does not support auto-interval binning");if(e.binParameters.normalizationType&&(!o.supportsNormalization||!be(e.binParameters.normalizationType,o.supportedNormalizationTypes)))throw new n(r,"Layer source does not support normalization binning");break;case"date":if(!o.supportsDate)throw new n(r,"Layer source does not support date binning");if(e.binParameters.snapToData&&!o.supportsSnapToData)throw new n(r,"Layer source does not support snapToData binning");if(e.binParameters.returnFullIntervalBin&&!o.supportsReturnFullIntervalBin)throw new n(r,"Layer source does not support returnFullIntervalBin binning");break;case"fixed-boundaries":if(!o.supportsFixedBoundaries)throw new n(r,"Layer source does not support fixed-boundaries binning");break;case"fixed-interval":if(!o.supportsFixedInterval)throw new n(r,"Layer source does not support fixed-interval binning");if(e.binParameters.normalizationType&&(!o.supportsNormalization||!be(e.binParameters.normalizationType,o.supportedNormalizationTypes)))throw new n(r,"Layer source does not support normalization binning")}if(e.binParameters?.stackBy&&!o.supportsStackBy)throw new n(r,"Layer source does not support stackBy binning");if(e.binParameters?.splitBy&&!o.supportsSplitBy)throw new n(r,"Layer source does not support splitBy binning");if(e.binParameters?.firstDayOfWeek&&!o.supportsFirstDayOfWeek)throw new n(r,"Layer source does not support firstDayOfWeek binning");const i=o?.supportedStatistics;if(e.outStatistics&&i){const t=new Map([["count","count"],["sum","sum"],["min","min"],["max","max"],["avg","avg"],["stddev","stddev"],["var","var"],["percentile-continuous","percentileContinuous"],["percentile-discrete","percentileDiscrete"],["centroid-aggregate","centroid"],["convex-hull-aggregate","convexHull"],["envelope-aggregate","envelope"]]);for(const{statisticType:o}of e.outStatistics){const e=t.get(o);if(e&&!i[e])throw new n(r,`Layer source does not support ${o} statistic type`)}}}function be(e,t){return null!=e&&!!t?.[x.toJSON(e)]}function he(e){return m(e)?Boolean(e.labelExpressionInfo?.expression):t(e)?!!e.expressionInfos?.some(e=>e.expression)||!!Array.isArray(e.content)&&e.content.some(e=>"expression"===e.type&&e.expressionInfo?.expression):!("dot-density"!==e.type||!e.attributes?.some(e=>e.valueExpression))||(!(!("valueExpression"in e)||!e.valueExpression)||"visualVariables"in e&&null!=e.visualVariables&&e.visualVariables.some(e=>!!e.valueExpression||"size"===e.type&&(I(e.minSize)&&e.minSize.valueExpression||I(e.maxSize)&&e.maxSize.valueExpression)))}function we(e){if("renderer"in e&&e.renderer&&he(e.renderer))return!0;if("labelingInfo"in e&&e.labelingInfo)for(const t of e.labelingInfo)if(m(t)&&he(t))return!0;return!1}async function ge(e){let t="returnZ"in e?e.returnZ:void 0,r="returnM"in e?e.returnM:void 0;if(null!=t&&null!=r)return{returnZ:t,returnM:r};if(we(e)){const{arcadeUtils:n}=await S();n.layerHasGeometryFunctions(e)&&(t??=!0,r??=!0)}if("renderer"in e&&e.renderer?.symbols)for(const n of e.renderer.symbols)"cim"===n.type&&(Ie??=(await import("../../symbols/cim/CIMSymbolHelper.js")).forEachSymbolLayer,Ie(n.data.symbol,e=>{switch(e.type){case"CIMPictureMarker":case"CIMVectorMarker":if("CIMMarkerPlacementAtMeasuredUnits"===e.markerPlacement?.type)r??=!0}}));return{returnZ:t,returnM:r}}let Ie;export{A as addAttachment,O as applyEdits,ne as checkServiceCurrentUserSupport,W as computeDomainFromSubtypes,_ as computeDomainFromTypes,ae as computeEffectiveEditingEnabled,le as createDefaultRenderer,G as createQuery,D as deleteAttachments,te as ensureCredentialIfSignedIn,re as ensureLayerCredential,T as fetchRecomputedExtents,q as geometryTypeKebabDict,H as getFeatureSubtype,de as getFeatureType,J as getFieldDomain,pe as getGlobalIdToObjectIdMap,ee as getSignedInUser,se as hasCurrentUser,N as hasDataChanged,ce as isLayerCacheStale,ge as layerRequiresGeometryZM,z as queryAttachments,B as queryExtent,k as queryFeatureCount,U as queryObjectIds,V as queryRelatedFeatures,R as queryRelatedFeaturesCount,Q as readGlobalIdField,Z as readObjectIdField,$ as readVersion,fe as supportsQueryOnly,K as typesHaveUniqueIdsAndNames,M as updateAttachment,C as uploadAssets,me as validateBinsQuery};
2
+ import{id as e}from"../../kernel.js";import{isPopupTemplate as t}from"../../popupTemplateUtils.js";import{resultOrAbort as r}from"../../core/asyncUtils.js";import n from"../../core/Error.js";import{JSONMap as o}from"../../core/jsonMap.js";import i from"../../core/Logger.js";import{parseWhereClause as s}from"../../core/sql.js";import{normalizeGlobalID as a}from"../../core/uuid.js";import{createTypeReader as u}from"../../core/accessorSupport/extensions/serializableProperty/reader.js";import{isHostedAgolService as l}from"./arcgisLayerUrl.js";import c from"./CodedValue.js";import p from"./CodedValueDomain.js";import{queryAllJSON as d}from"./featureQueryAll.js";import{isStringField as f,isIntegerField as y}from"./fieldUtils.js";import{isLabelClass as m}from"./labelUtils.js";import{isLayerWithFeatureCapabilities as b,getOwningPortalUrl as h}from"./layerUtils.js";import w from"../../renderers/SimpleRenderer.js";import g from"../../renderers/UniqueValueRenderer.js";import{isSizeVariable as I}from"../../renderers/visualVariables/support/sizeVariableUtils.js";import j from"../../rest/support/AttachmentQuery.js";import{normalizationTypeJsonMap as x}from"../../rest/support/NormalizationBinParametersMixin.js";import v from"../../rest/support/Query.js";import F from"../../rest/support/RelationshipQuery.js";import{loadArcade as S}from"../../support/loadArcade.js";import{symbolTypesRenderer as P}from"../../symbols/support/typeUtils.js";const L=()=>i.getLogger("esri.layers.support.featureLayerUtils"),q=new o({esriGeometryPoint:"point",esriGeometryMultipoint:"multipoint",esriGeometryPolyline:"polyline",esriGeometryPolygon:"polygon",esriGeometryMultiPatch:"multipatch"});async function A(e,t,r,o,i){const s=await Y(e);if(await E(e,t,o),!s.addAttachment)throw new n(o,"Layer source does not support addAttachment capability");return s.addAttachment(t,r,i)}function E(e,t,r){const{attributes:o}=t,{objectIdField:i}=e;return e.capabilities?.data?.supportsAttachment?t?o?i&&null!=o[i]?Promise.resolve():Promise.reject(new n(r,`feature is missing the identifying attribute ${i}`)):Promise.reject(new n(r,"'attributes' are required on a feature to query attachments")):Promise.reject(new n(r,"A feature is required to add/delete/update attachments")):Promise.reject(new n(r,"this layer doesn't support attachments"))}async function O(e,t,r,o,i,s){const a=await Y(e);if(await E(e,t,i),!a.updateAttachment)throw new n(i,"Layer source does not support updateAttachment capability");return a.updateAttachment(t,r,o,s)}async function M(e,t,r){const{applyEdits:n}=await import("../graphics/editingSupport.js"),o=await e.load();let i=r;const{url:s,type:a,globalIdField:u}=o;return"feature"===a&&l(s)&&o.infoFor3D&&null!=t.deleteFeatures&&null!=u&&(i={...i,globalIdToObjectId:await pe(o,t.deleteFeatures,u)}),n(o,o.source,t,i)}async function C(e,t,r){const{uploadAssets:n}=await import("../graphics/editingSupport.js"),o=await e.load();return n(o,o.source,t,r)}async function D(e,t,r,o,i){const s=await Y(e);if(await E(e,t,o),!s.deleteAttachments)throw new n(o,"Layer source does not support deleteAttachments capability");return s.deleteAttachments(t,r,i)}async function T(e,t,r){const o=(await e.load({signal:t?.signal})).source;if(!o.fetchRecomputedExtents)throw new n(r,"Layer source does not support fetchUpdates capability");return o.fetchRecomputedExtents(t)}async function z(e,t,r,o){let i=j.from(t);const s=await e.load(),a=s.source,u=s.capabilities;if(!u?.data?.supportsAttachment)throw new n(o,"this layer doesn't support attachments");const{attachmentTypes:l,objectIds:c,globalIds:p,num:d,size:f,start:y,where:m}=i;if(!u?.operations?.supportsQueryAttachments){if(l?.length>0||p?.length>0||f?.length>0||d||y||m)throw new n(o,"when 'capabilities.operations.supportsQueryAttachments' is false, only objectIds is supported",i)}if(!(c?.length||p?.length||m))throw new n(o,"'objectIds', 'globalIds', or 'where' are required to perform attachment query",i);if(!a.queryAttachments)throw new n(o,"Layer source does not support queryAttachments capability",i);return!u?.attachment?.supportsOrderByFields&&i.orderByFields?.length&&(i=i.clone(),i.orderByFields=null),a.queryAttachments(i)}async function U(e,t,r,o){const i=await Y(e);if(!i.queryObjectIds)throw new n(o,"Layer source does not support queryObjectIds capability");return i.queryObjectIds(v.from(t)??e.createQuery(),r)}async function k(e,t,r,o){const i=await Y(e);if(!i.queryFeatureCount)throw new n(o,"Layer source does not support queryFeatureCount capability");return i.queryFeatureCount(v.from(t)??e.createQuery(),r)}async function B(e,t,r,o){const i=await Y(e);if(!i.queryExtent)throw new n(o,"Layer source does not support queryExtent capability");return i.queryExtent(v.from(t)??e.createQuery(),r)}async function V(e,t,r,o){const i=await Y(e);if(!i.queryRelatedFeatures)throw new n(o,"Layer source does not support queryRelatedFeatures capability");return i.queryRelatedFeatures(F.from(t),r)}async function R(e,t,r,o){const i=await Y(e);if(!i.queryRelatedFeaturesCount)throw new n(o,"Layer source does not support queryRelatedFeaturesCount capability");return i.queryRelatedFeaturesCount(F.from(t),r)}async function N(e){const t=e.source;if(t?.refresh)try{const{dataChanged:r,updates:n}=await t.refresh();if(null!=n&&(e.sourceJSON={...e.sourceJSON,...n},e.read(n,{origin:"service",url:e.parsedUrl})),r)return!0}catch{}if(e.definitionExpression)try{return(await s(e.definitionExpression,e.fieldsIndex)).hasDateFunctions}catch{}return!1}function G(e){const t=new v;t.historicMoment=e.historicMoment,t.gdbVersion=e.gdbVersion,t.returnGeometry=!0,t.outFields=["*"],t.multipatchOption="multipatch"===e.geometryType?"xyFootprint":null;const r=e.capabilities?.query;r&&(t.compactGeometryEnabled=r.supportsCompactGeometry,t.defaultSpatialReferenceEnabled=r.supportsDefaultSpatialReference);const n=e.capabilities?.data;n?.supportsZ&&null!=e.returnZ&&(t.returnZ=e.returnZ),n?.supportsM&&null!=e.returnM&&(t.returnM=e.returnM);const{timeOffset:o,timeExtent:i}=e;return t.timeExtent=null!=o&&null!=i?i.offset(-o.value,o.unit):i||null,t}function Q(e){const{globalIdField:t,fields:r}=e;if(t)return t;if(r)for(const n of r)if("esriFieldTypeGlobalID"===n.type)return n.name}function Z(e){const{objectIdField:t,fields:r}=e;if(t)return t;if(r)for(const n of r)if("esriFieldTypeOID"===n.type)return n.name}function $(e){return e.currentVersion?e.currentVersion:e.hasOwnProperty("capabilities")||e.hasOwnProperty("drawingInfo")||e.hasOwnProperty("hasAttachments")||e.hasOwnProperty("htmlPopupType")||e.hasOwnProperty("relationships")||e.hasOwnProperty("timeInfo")||e.hasOwnProperty("typeIdField")||e.hasOwnProperty("types")?10:9.3}function J(e,t,r,n){const o=r?.feature,i=!!e.subtypes?.length;if(i&&!r?.excludeImpliedDomains){const r=W(e,t);if(r)return r}const s=i&&H(e,o);if(s){const e=s?.domains?.[t];return"inherited"===e?.type?n:e}const a=de(e.types,e.typeIdField,o);if(a){const e=a.domains&&a.domains[t];if(e&&"inherited"!==e?.type)return e}if(n)return n;if(!r?.excludeImpliedDomains){const r=_(e,t);if(r)return r}return null}function H(e,t){const{subtypes:r,subtypeField:n}=e;if(!t?.attributes||!r?.length||!n)return null;const o=t.attributes[n];return null==o?null:r.find(e=>e.code===o)}function W(e,t){const{fieldsIndex:r,subtypeField:n}=e,{name:o,type:i}=r.get(t)??{};if(!o)return null;if((n&&r.get(n)?.name)===o&&e.subtypes?.length){const t=e.subtypes.map(e=>new c({code:X(e.code,i),name:e.name}));if(t?.length)return new p({codedValues:t})}return null}function _(e,t){const{fieldsIndex:r}=e,{name:n,type:o}=r.get(t)??{};if(!n)return null;if(("typeIdField"in e?r.get(e.typeIdField)?.name:null)===n&&"types"in e&&e.types?.length&&K(e.types)){const t=e.types?.map(e=>new c({code:X(e.id,o),name:e.name}));return new p({codedValues:t})}return null}function K(e){const t=new Set,r=new Set;for(const n of e){if(t.has(n.id)||r.has(n.name))return!1;t.add(n.id),r.add(n.name)}return!0}function X(e,t){return t?f({type:t})&&"number"==typeof e?`${e}`:y({type:t})&&"string"==typeof e?Number.parseInt(e,10):e:e}async function Y(e){return(await e.load()).source}async function ee(t,r){if(!e)return;const n=e.findCredential(t);if(n)return n.userId;let o;try{const n=await h(t,r);n&&(o=await e.checkSignInStatus(`${n}/sharing`))}catch(i){}return o?o.userId:null}async function te(t,r){if(!e)return;if(e.findCredential(t))return;let n;try{const o=await h(t,r);o&&(n=await e.checkSignInStatus(`${o}/sharing`))}catch(o){}if(n)try{const n=null!=r?r.signal:null;await e.getCredential(t,{signal:n})}catch(o){}}async function re(e,t,r){const n=e.parsedUrl?.path;n&&e.authenticationTriggerEvent===t&&await te(n,r)}async function ne(e){const t=e.parsedUrl?.path;t&&oe(e)&&await te(t)}function oe(e){return ie(e)&&("serviceDefinitionExpression"in e&&se(e.serviceDefinitionExpression)||"definitionExpression"in e&&se(e.definitionExpression))}function ie(e){return!(!b(e)||!e.capabilities?.query.supportsCurrentUser)}function se(e){return!!e?.toLowerCase().includes("current_user")}function ae(e){return!fe(e)&&(e.userHasUpdateItemPrivileges||e.editingEnabled)}const ue=u({types:P});function le(e,t){if(e.defaultSymbol)return e.types?.length?new g({defaultSymbol:ue(e.defaultSymbol,e,t),field:e.typeIdField,uniqueValueInfos:e.types.map(e=>({id:e.id,symbol:ue(e.symbol,e,t)}))}):new w({symbol:ue(e.defaultSymbol,e,t)})}function ce(e){let t=e.sourceJSON?.cacheMaxAge;if(!t)return!1;const r=e.editingInfo?.lastEditDate?.getTime();return null==r||(t*=1e3,Date.now()-r<t)}async function pe(e,t,n){if(null==t)return null;const o=[],{objectIdField:i}=e;if(t.forEach(e=>{let t=null;if("attributes"in e){const{attributes:r}=e;t={globalId:r[n],objectId:null!=r[i]&&-1!==r[i]?r[i]:null}}else t={globalId:e.globalId,objectId:null!=e.objectId&&-1!==e.objectId?e.objectId:null};null!=t.globalId&&(null!=t.objectId&&-1!==t.objectId||o.push(t.globalId))}),0===o.length)return null;const s=e.createQuery();s.where=o.map(e=>`${n}='${e}'`).join(" OR "),s.returnGeometry=!1,s.outFields=[i,n],s.cacheHint=!1;const u=await r(d(e,s));if(!u.ok)return null;const l=new Map,c=u.value.features;for(const r of c){const e=r.attributes[n],t=r.attributes[i];null!=e&&null!=t&&-1!==t&&l.set(a(e),t)}return l}function de(e,t,r){if(!t||!r||!e)return null;const n=r.getAttribute(t);if(null==n)return null;const o=e.filter(e=>{const{id:t}=e;return null!=t&&t.toString()===n.toString()});return o.length>1&&L().warn("getFeatureType",`Cannot unambiguously determine feature type because multiple types have the id ${n}.`),o[0]??null}function fe(e){const t=e.sourceJSON;return t?.isMultiServicesView||t?.isReadOnly||ye(e)}function ye(e){return!!e.sourceJSON?.capabilities?.toLowerCase().split(",").map(e=>e.trim()).includes("map")}function me(e,t,r){const o=t?.queryAttributeBins;if(!t?.operations?.supportsQueryBins||!o)throw new n(r,"Layer source does not support binning");switch(e.binParameters?.type){case"auto-interval":if(!o.supportsAutoInterval)throw new n(r,"Layer source does not support auto-interval binning");if(e.binParameters.normalizationType&&(!o.supportsNormalization||!be(e.binParameters.normalizationType,o.supportedNormalizationTypes)))throw new n(r,"Layer source does not support normalization binning");break;case"date":if(!o.supportsDate)throw new n(r,"Layer source does not support date binning");if(e.binParameters.snapToData&&!o.supportsSnapToData)throw new n(r,"Layer source does not support snapToData binning");if(e.binParameters.returnFullIntervalBin&&!o.supportsReturnFullIntervalBin)throw new n(r,"Layer source does not support returnFullIntervalBin binning");break;case"fixed-boundaries":if(!o.supportsFixedBoundaries)throw new n(r,"Layer source does not support fixed-boundaries binning");break;case"fixed-interval":if(!o.supportsFixedInterval)throw new n(r,"Layer source does not support fixed-interval binning");if(e.binParameters.normalizationType&&(!o.supportsNormalization||!be(e.binParameters.normalizationType,o.supportedNormalizationTypes)))throw new n(r,"Layer source does not support normalization binning")}if(e.binParameters?.stackBy&&!o.supportsStackBy)throw new n(r,"Layer source does not support stackBy binning");if(e.binParameters?.splitBy&&!o.supportsSplitBy)throw new n(r,"Layer source does not support splitBy binning");if(e.binParameters?.firstDayOfWeek&&!o.supportsFirstDayOfWeek)throw new n(r,"Layer source does not support firstDayOfWeek binning");const i=o?.supportedStatistics;if(e.outStatistics&&i){const t=new Map([["count","count"],["sum","sum"],["min","min"],["max","max"],["avg","avg"],["stddev","stddev"],["var","var"],["percentile-continuous","percentileContinuous"],["percentile-discrete","percentileDiscrete"],["centroid-aggregate","centroid"],["convex-hull-aggregate","convexHull"],["envelope-aggregate","envelope"]]);for(const{statisticType:o}of e.outStatistics){const e=t.get(o);if(e&&!i[e])throw new n(r,`Layer source does not support ${o} statistic type`)}}}function be(e,t){return null!=e&&!!t?.[x.toJSON(e)]}function he(e){return m(e)?Boolean(e.labelExpressionInfo?.expression):t(e)?!!e.expressionInfos?.some(e=>e.expression)||!!Array.isArray(e.content)&&e.content.some(e=>"expression"===e.type&&e.expressionInfo?.expression):!("dot-density"!==e.type||!e.attributes?.some(e=>e.valueExpression))||(!(!("valueExpression"in e)||!e.valueExpression)||"visualVariables"in e&&null!=e.visualVariables&&e.visualVariables.some(e=>!!e.valueExpression||"size"===e.type&&(I(e.minSize)&&e.minSize.valueExpression||I(e.maxSize)&&e.maxSize.valueExpression)))}function we(e){if("renderer"in e&&e.renderer&&he(e.renderer))return!0;if("labelingInfo"in e&&e.labelingInfo)for(const t of e.labelingInfo)if(m(t)&&he(t))return!0;return!1}async function ge(e){let t="returnZ"in e?e.returnZ:void 0,r="returnM"in e?e.returnM:void 0;if(null!=t&&null!=r)return{returnZ:t,returnM:r};if(we(e)){const{arcadeUtils:n}=await S();n.layerHasGeometryFunctions(e)&&(t??=!0,r??=!0)}if("renderer"in e&&e.renderer?.symbols)for(const n of e.renderer.symbols)"cim"===n.type&&(Ie??=(await import("../../symbols/cim/CIMSymbolHelper.js")).forEachSymbolLayer,Ie(n.data.symbol,e=>{switch(e.type){case"CIMPictureMarker":case"CIMVectorMarker":if("CIMMarkerPlacementAtMeasuredUnits"===e.markerPlacement?.type)r??=!0}}));return{returnZ:t,returnM:r}}let Ie;export{A as addAttachment,M as applyEdits,ne as checkServiceCurrentUserSupport,W as computeDomainFromSubtypes,_ as computeDomainFromTypes,ae as computeEffectiveEditingEnabled,le as createDefaultRenderer,G as createQuery,D as deleteAttachments,te as ensureCredentialIfSignedIn,re as ensureLayerCredential,T as fetchRecomputedExtents,q as geometryTypeKebabDict,H as getFeatureSubtype,de as getFeatureType,J as getFieldDomain,pe as getGlobalIdToObjectIdMap,ee as getSignedInUser,se as hasCurrentUser,N as hasDataChanged,ce as isLayerCacheStale,ge as layerRequiresGeometryZM,z as queryAttachments,B as queryExtent,k as queryFeatureCount,U as queryObjectIds,V as queryRelatedFeatures,R as queryRelatedFeaturesCount,Q as readGlobalIdField,Z as readObjectIdField,$ as readVersion,fe as supportsQueryOnly,K as typesHaveUniqueIdsAndNames,O as updateAttachment,C as uploadAssets,me as validateBinsQuery};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import e from"../../core/Collection.js";import t from"../../core/Error.js";import{JSONMap as r}from"../../core/jsonMap.js";import i from"../../geometry/SpatialReference.js";import{createFileProvider as o}from"../graphics/sources/parquet/createFileProvider.js";import n from"./Field.js";import{isNumericField as a}from"./fieldUtils.js";import{fromParquetGeometryEncodingJSON as l}from"./parquetEncodingUtils.js";import s from"./ParquetFilesData.js";const p=new r({esriGeometryPoint:"point",esriGeometryPolygon:"polygon",esriGeometryPolyline:"polyline",esriGeometryMultipoint:"multipoint"});function m(e){return p.toJSON(e)}function d(e){return p.fromJSON(e)}async function u(t,r={}){const i=Array.isArray(t)?new s({urls:new e(t)}):t,n=await y(i,r),a=o(n,null,()=>r.customParameters);return f(await a.getMetadata(),{data:i})}async function f(e,r){if(r.geometryType&&r.spatialReference&&r.geometryEncoding&&r.fields)return r;if(!e)throw new t("parquet:bad-input","No metadata found");const o={...r};if(null==o.fields&&(o.fields=e.fields.map(e=>n.fromJSON(e))),null!=o.geometryEncoding){const e=o.geometryEncoding;switch(e.type){case"wkb":{const r=o.fields.find(t=>t.name===e.field);if(!r)throw new t("parquet:unsupported",`Geometry encoding references field ${e.field} which does not exist`);if("blob"!==r.type)throw new t("parquet:unsupported",`Invalid field type for geometry encoding. Found ${r.type} but expected 'blob'`);break}case"location":for(const r of[e.xField,e.yField])if(null!=r){const e=o.fields.find(e=>e.name===r);if(!e)throw new t("parquet:unsupported",`Geometry encoding references field ${r} which does not exist`);if(!a(e))throw new t("parquet:unsupported",`Invalid field type for location geometry encoding. Found ${e.type} but expected a numeric`)}}}return null==o.geometryEncoding&&(o.geometryEncoding=e.geometryEncoding?l(e.geometryEncoding):null),o.fields=c(o.fields,e),!o.displayOptimization&&e.displayOptimization&&(o.displayOptimization=e.displayOptimization),!o.geometryType&&e.geometryType&&(o.geometryType=d(e.geometryType)),!o.spatialReference&&e.spatialReference&&(o.spatialReference=i.fromJSON(e.spatialReference)),o}function c(e,t){const r=t.geoMetadata;if(null==r)return e;const i=new Set(Object.keys(r.columns));return e.filter(e=>!i.has(e.name))}async function y(e,r){switch(e.type){case"files":return{type:"urls",urls:e.urls.toArray()};case"portal-item":{const i=await e.portalItem.load(r);switch(i.type){case"Apache Parquet":return{type:"portal-parquet-file",itemUrl:i.itemUrl,itemCdnUrl:i.itemCdnUrl,modified:i.modified,size:i.size};case"Parquet layer":case"Parquet Layer":case"Parquet feature layer":case"Parquet Feature Layer":if(!i.url)throw new t("parquet:bad-item",`Item of type ${i.type} must have a url defined`,i);return{type:"portal-parquet-layer",itemUrl:i.itemUrl,itemCdnUrl:i.itemCdnUrl,itemMetadata:{modified:i.modified,url:i.url}};default:throw new t("parquet:bad-item",`Item of type ${i.type} is not supported`,i)}}}}export{f as completeParquetLayerInfo,y as createFileProviderSchema,d as fromParquetJSONGeometryType,u as getParquetLayerInfo,p as parquetGeometryTypeKebabDict,m as toParquetJSONGeometryType};
2
+ import e from"../../core/Collection.js";import t from"../../core/Error.js";import{JSONMap as r}from"../../core/jsonMap.js";import i from"../../geometry/SpatialReference.js";import{createFileProvider as o}from"../graphics/sources/parquet/createFileProvider.js";import n from"./Field.js";import{isNumericField as a}from"./fieldUtils.js";import{fromParquetGeometryEncodingJSON as s}from"./parquetEncodingUtils.js";import l from"./ParquetFilesData.js";const p=new r({esriGeometryPoint:"point",esriGeometryPolygon:"polygon",esriGeometryPolyline:"polyline",esriGeometryMultipoint:"multipoint"});function m(e){return p.toJSON(e)}function d(e){return p.fromJSON(e)}async function f(t,r={}){const i=Array.isArray(t)?new l({urls:new e(t)}):t,n=await y(i,r),a=o(n,null,()=>r.customParameters);return u(await a.getMetadata(),{data:i})}async function u(e,r){if(r.geometryType&&r.spatialReference&&r.geometryEncoding&&r.fields&&r.displayOptimization)return r;if(!e)throw new t("parquet:bad-input","No metadata found");const o={...r};if(null==o.fields)o.fields=e.fields.map(e=>n.fromJSON(e));else{const t=new Set(o.fields.map(e=>e.name)),r=e.fields.map(e=>n.fromJSON(e));for(const e of r)t.has(e.name)||o.fields.push(e)}if(null!=o.geometryEncoding){const e=o.geometryEncoding;switch(e.type){case"wkb":{const r=o.fields.find(t=>t.name===e.field);if(!r)throw new t("parquet:unsupported",`Geometry encoding references field ${e.field} which does not exist`);if("blob"!==r.type)throw new t("parquet:unsupported",`Invalid field type for geometry encoding. Found ${r.type} but expected 'blob'`);break}case"location":for(const r of[e.xField,e.yField])if(null!=r){const e=o.fields.find(e=>e.name===r);if(!e)throw new t("parquet:unsupported",`Geometry encoding references field ${r} which does not exist`);if(!a(e))throw new t("parquet:unsupported",`Invalid field type for location geometry encoding. Found ${e.type} but expected a numeric`)}}}return null==o.geometryEncoding&&(o.geometryEncoding=e.geometryEncoding?s(e.geometryEncoding):null),o.fields=c(o.fields,e),!o.displayOptimization&&e.displayOptimization&&(o.displayOptimization=e.displayOptimization),!o.geometryType&&e.geometryType&&(o.geometryType=d(e.geometryType)),!o.spatialReference&&e.spatialReference&&(o.spatialReference=i.fromJSON(e.spatialReference)),o}function c(e,t){const r=t.geoMetadata;if(null==r)return e;const i=new Set(Object.keys(r.columns));return e.filter(e=>!i.has(e.name))}async function y(e,r){switch(e.type){case"files":return{type:"urls",urls:e.urls.toArray()};case"portal-item":{const i=await e.portalItem.load(r);switch(i.type){case"Apache Parquet":return{type:"portal-parquet-file",itemUrl:i.itemUrl,itemCdnUrl:i.itemCdnUrl,modified:i.modified,size:i.size};case"Parquet layer":case"Parquet Layer":case"Parquet feature layer":case"Parquet Feature Layer":if(!i.url)throw new t("parquet:bad-item",`Item of type ${i.type} must have a url defined`,i);return{type:"portal-parquet-layer",itemUrl:i.itemUrl,itemCdnUrl:i.itemCdnUrl,itemMetadata:{modified:i.modified,url:i.url}};default:throw new t("parquet:bad-item",`Item of type ${i.type} is not supported`,i)}}}}export{u as completeParquetLayerInfo,y as createFileProviderSchema,d as fromParquetJSONGeometryType,f as getParquetLayerInfo,p as parquetGeometryTypeKebabDict,m as toParquetJSONGeometryType};
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
+ function e(e){return null!=e&&"object"==typeof e&&"2d"===e.type&&"linkchart"===e.view2dType}export{e as isLinkChartView};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import e from"../request.js";function t(e){return null!=e&&"object"==typeof e&&"2d"===e.type&&"linkchart"===e.view2dType}async function r(t,r,n){if(!t||!r||!t.includes("/resources"))return!1;const s=r+"/resources",o=t.includes("/resources/")?t.split("/resources/")[1]:t;if(!o)return!1;const c=100;let u=1;for(;-1!==u;){const t=(await e(s,{query:{f:"json",start:u,num:c}})).data,r=t?.resources??[];for(const e of r)if(e.resource===o)return"number"==typeof n&&e.created===n;if(null==t.nextStart||!r.length)break;u=t.nextStart}return!1}async function n(t,r){if(!t.length||!r)return new Map;const n=r+"/resources",s=100;let o=1;const c=new Map;for(;-1!==o;){const t=(await e(n,{query:{f:"json",start:o,num:s}})).data,r=t?.resources??[];for(const e of r)"number"==typeof e.created&&c.set(e.resource,e.created);if(null==t.nextStart||!r.length)break;o=t.nextStart}const u=new Map;for(const e of t){const t=e.includes("/resources/")?e.split("/resources/")[1]:e,r=c.get(t);null!=r&&u.set(e,r)}return u}export{r as areResourcesSafe,n as getCreationDatesForResources,t as isLinkChartView};
2
+ import e from"../request.js";import t from"../core/Error.js";import a from"../core/Logger.js";import{throwIfAborted as i,createAbortError as n}from"../core/promiseUtils.js";import r from"../geometry/Point.js";import{IdealEdgeLengthTypeOptions as o}from"../layers/knowledgeGraph/IdealEdgeLengthTypeOptions.js";import{load as l,LCChronologicalLayout as s,LCForceDirectedLayout as u,LCCommunityLayout as g,LCHierarchicalLayout as d,LCRadialTreeLayout as c,LCSmartTreeLayout as m,LCSimpleLayout as p}from"../libs/linkchartlayout/LinkChartLayout.js";async function y(t,a,i){if(!t||!a||!t.includes("/resources"))return!1;const n=a+"/resources",r=t.includes("/resources/")?t.split("/resources/")[1]:t;if(!r)return!1;const o=100;let l=1;for(;-1!==l;){const t=(await e(n,{query:{f:"json",start:l,num:o}})).data,a=t?.resources??[];for(const e of a)if(e.resource===r)return"number"==typeof i&&e.created===i;if(null==t.nextStart||!a.length)break;l=t.nextStart}return!1}async function h(t,a){if(!t.length||!a)return new Map;const i=a+"/resources",n=100;let r=1;const o=new Map;for(;-1!==r;){const t=(await e(i,{query:{f:"json",start:r,num:n}})).data,a=t?.resources??[];for(const e of a)"number"==typeof e.created&&o.set(e.resource,e.created);if(null==t.nextStart||!a.length)break;r=t.nextStart}const l=new Map;for(const e of t){const t=e.includes("/resources/")?e.split("/resources/")[1]:e,a=o.get(t);null!=a&&l.set(e,a)}return l}const f=1e-7,L=()=>a.getLogger("esri.linkChart.utils");function w(e){return"chronological-mono-timeline"===e||"chronological-multi-timeline"===e}function b(e,t){if("organic-standard"!==e&&"organic-community"!==e&&"geographic-organic-standard"!==e)return{};const a=t?.organicLayoutSettings;if(!a)return{};let i,n,r,l,s,u=a.autoRepulsionRadius;null!=a.computationBudgetTime&&a.computationBudgetTime>=1?i=a.computationBudgetTime:a.computationBudgetTime&&L().warn("Invalid layout computationBudgetTime setting, will revert to default setting"),!u&&null!=a.repulsionRadiusMultiplier&&a.repulsionRadiusMultiplier>=1?n=a.repulsionRadiusMultiplier:u||(u=!0,L().warn("Invalid layout repulsionRadiusMultiplier setting, will revert to default setting")),"geographic-organic-standard"===e&&(a.idealEdgeLengthType===o.ABSOLUTE||a.idealEdgeLengthType===o.MULTIPLIER?r=a.idealEdgeLengthType:void 0!==a.idealEdgeLengthType&&L().warn('Invalid layout idealEdgeLengthType setting, will revert to "multiplier" setting'),r===o.ABSOLUTE?null!=a.absoluteIdealEdgeLength&&a.absoluteIdealEdgeLength>=0?l=a.absoluteIdealEdgeLength:void 0!==a.absoluteIdealEdgeLength&&L().warn("Invalid layout idealEdgeLength setting, will revert to default setting"):r===o.MULTIPLIER&&(null!=a.multiplicativeIdealEdgeLength&&a.multiplicativeIdealEdgeLength>=0?s=a.multiplicativeIdealEdgeLength:void 0!==a.multiplicativeIdealEdgeLength&&L().warn("Invalid layout idealEdgeLength setting, will revert to default setting")));let g=r===o.ABSOLUTE?l:s;return r===o.ABSOLUTE&&(void 0===g?g=-1:g*=-1),{computationBudgetTime:i,repulsionRadiusMultiplier:null==n||u?void 0:n,idealEdgeLengthMultiplier:g}}const T=async(e="organic-standard",a,o,y)=>{i(y?.signal);const h=new Map,T={xmin:-f,ymin:-f,xmax:f,ymax:f},x=new Set(y?.layoutSettings?.rootedLayoutSettings?.rootEntities?.map(({id:e})=>e)),E=new Map,M=new Uint8Array(a.length),I=new Float64Array(a.length),v=new Float64Array(a.length),S=new Float64Array(a.length),k=new Float64Array(a.length),A=new Uint32Array(o.length),B=new Uint32Array(o.length),R=new Float64Array(o.length),N=new Float64Array(o.length);let U=!1,j=0,F=!1;for(let i=0;i<a.length;i++){const n=a[i];if(E.has(n.id))throw new t("knowledge-graph:duplicate-node-id",`Duplicate node id '${n.id}' detected. Node ids must be unique across all type names.`);E.set(n.id,i);const r=!!n.geographicLocation;!w(e)&&n.lockedLocation?(M[i]="geographic-organic-standard"===e&&r?2:0,I[i]=n.lockedLocation.x,v[i]=n.lockedLocation.y):"geographic-organic-standard"===e&&r?(M[i]=2,I[i]=n.geographicLocation.x,v[i]=n.geographicLocation.y):(M[i]=1,I[i]=0,v[i]=0,w(e)&&n.lockedLocation&&(U=!0)),w(e)&&(S[i]=n.startTime?n.startTime.getTime():NaN,k[i]=n.endTime?n.endTime.getTime():NaN),x.has(n.id)&&(M[i]|=4)}U&&L().warn("Locked node locations are not supported for chronological layout at this time. Requested node locations were ignored");for(const t of o){const a=E.get(t.originId),i=E.get(t.destinationId);null!=a&&null!=i?(A[j]=a,B[j]=i,w(e)&&(R[j]=t.startTime?t.startTime.getTime():NaN,N[j]=t.endTime?t.endTime.getTime():NaN),j++):L().warn(`Link '${t.id}' was ignored because it references missing origin or destination node(s).`)}await l();const q=b(e,y?.layoutSettings);let O=1;if(({status:O}="chronological-mono-timeline"===e||"chronological-multi-timeline"===e?s.apply(()=>y?.signal?.aborted??!1,M,I,v,S,k,A.subarray(0,j),B.subarray(0,j),R.subarray(0,j),N.subarray(0,j),"chronological-multi-timeline"===e,y?.layoutSettings?.chronologicalLayoutSettings):"organic-standard"===e||"geographic-organic-standard"===e?u.apply(()=>y?.signal?.aborted??!1,M,I,v,A.subarray(0,j),B.subarray(0,j),q.computationBudgetTime,q.idealEdgeLengthMultiplier,q.repulsionRadiusMultiplier):"organic-community"===e?g.apply(()=>y?.signal?.aborted??!1,M,I,v,A.subarray(0,j),B.subarray(0,j),q.computationBudgetTime,q.idealEdgeLengthMultiplier,q.repulsionRadiusMultiplier):"hierarchical-bottom-to-top"===e?d.apply(()=>y?.signal?.aborted??!1,M,I,v,A.subarray(0,j),B.subarray(0,j)):"radial-root-centric"===e?c.apply(()=>y?.signal?.aborted??!1,M,I,v,A.subarray(0,j),B.subarray(0,j)):"tree-left-to-right"===e?m.apply(()=>y?.signal?.aborted??!1,M,I,v,A.subarray(0,j),B.subarray(0,j)):p.apply(()=>y?.signal?.aborted??!1,M,I,v,A.subarray(0,j),B.subarray(0,j))),i(y?.signal),1===O)throw new t("knowledge-graph:layout-failed","Attempting to arrange the records in the specified layout failed");if(2===O)throw n();for(let t=0;t<a.length;t++){const e=a[t],i=new r({x:I[t],y:v[t]});let n=h.get(e.typeName);n||(n=new Map,h.set(e.typeName,n)),n.set(e.id,i),F?(T.xmin=Math.min(T.xmin,i.x),T.xmax=Math.max(T.xmax,i.x),T.ymin=Math.min(T.ymin,i.y),T.ymax=Math.max(T.ymax,i.y)):(T.xmin=i.x-f,T.xmax=i.x+f,T.ymin=i.y-f,T.ymax=i.y+f,F=!0)}return{extent:T,locations:h}};export{y as areResourcesSafe,T as calculateGraphLayout,h as getCreationDatesForResources};
@@ -24,33 +24,77 @@ export interface CircuitManagerProperties {
24
24
  }
25
25
 
26
26
  export interface CommonCircuitQueryProperties {
27
+ /**
28
+ * Specifies whether to return the associated consumer and provider circuits with the queried circuit.
29
+ * The default is `none`.
30
+ */
27
31
  hierarchy?: CircuitHierarchy;
32
+ /**
33
+ * Specifies whether to filter the result of the query to return only circuits of a certain status.
34
+ * This filter also applies to any circuits returned using the `hierarchy` parameter.
35
+ * `status` is empty by default with no filter applied.
36
+ */
28
37
  status?: CircuitStatus;
29
38
  }
30
39
 
40
+ /** Parameters for querying circuits by name. */
31
41
  export interface QueryCircuitByNamesProperties extends CommonCircuitQueryProperties {
42
+ /** The names of the circuit or circuits to be returned. */
32
43
  names: string[];
44
+ /** The global ID of the circuit or circuits to be returned. */
33
45
  globalIds?: null;
46
+ /**
47
+ * Specifies the location information for the feature associated with a circuit's starting or stopping point.
48
+ * The results can be filtered further when used with the `locationType` parameter.
49
+ */
34
50
  locations?: null;
51
+ /**
52
+ * The type of trace location in the circuit to query (start location, stop location, or both).
53
+ * The default is `all`. This can be used to filter the results when using `locations` to return circuit information.
54
+ */
35
55
  locationType?: null;
36
56
  }
37
57
 
58
+ /** Parameters for querying circuits by global IDs. */
38
59
  export interface QueryCircuitByIdsProperties extends CommonCircuitQueryProperties {
60
+ /** The names of the circuit or circuits to be returned. */
39
61
  names?: null;
62
+ /** The global ID of the circuit or circuits to be returned. */
40
63
  globalIds: string[];
64
+ /**
65
+ * Specifies the location information for the feature associated with a circuit's starting or stopping point.
66
+ * The results can be filtered further when used with the `locationType` parameter.
67
+ */
41
68
  locations?: null;
69
+ /**
70
+ * The type of trace location in the circuit to query (start location, stop location, or both).
71
+ * The default is `all`. This can be used to filter the results when using `locations` to return circuit information.
72
+ */
42
73
  locationType?: null;
43
74
  }
44
75
 
76
+ /** Parameters for querying circuits by circuit start or stop locations. */
45
77
  export interface QueryCircuitByLocationsProperties extends CommonCircuitQueryProperties {
78
+ /** The names of the circuit or circuits to be returned. */
46
79
  names?: null;
80
+ /** The global ID of the circuit or circuits to be returned. */
47
81
  globalIds?: null;
82
+ /**
83
+ * Specifies the location information for the feature associated with a circuit's starting or stopping point.
84
+ * The results can be filtered further when used with the `locationType` parameter.
85
+ */
48
86
  locations: CircuitLocation[];
87
+ /**
88
+ * The type of trace location in the circuit to query (start location, stop location, or both).
89
+ * The default is `all`. This can be used to filter the results when using `locations` to return circuit information.
90
+ */
49
91
  locationType?: "start" | "stop" | "all" | null;
50
92
  }
51
93
 
94
+ /** Parameters for exporting circuits with [export()](https://developers.arcgis.com/javascript/latest/references/core/networks/CircuitManager/#export) or [submitExportJob()](https://developers.arcgis.com/javascript/latest/references/core/networks/CircuitManager/#submitExportJob). */
52
95
  export type CircuitExportProperties = Pick<ExportCircuitsParametersProperties, "circuitNames" | "exportAcknowledgement" | "resultTypes" | "outSpatialReference">;
53
96
 
97
+ /** Parameters for verifying circuits with [verify()](https://developers.arcgis.com/javascript/latest/references/core/networks/CircuitManager/#verify) or [submitVerifyJob()](https://developers.arcgis.com/javascript/latest/references/core/networks/CircuitManager/#submitVerifyJob). */
54
98
  export type CircuitVerifyProperties = Pick<VerifyCircuitsParametersProperties, "circuitNames" | "forceVerify" | "synthesizeGeometries" | "outSpatialReference">;
55
99
 
56
100
  /**
@@ -18,7 +18,7 @@ export interface WaitForExportOptions extends WaitOptions<CircuitExportJobInfo>
18
18
  *
19
19
  * @since 5.1
20
20
  * @see [ExportCircuitsParameters](https://developers.arcgis.com/javascript/latest/references/core/rest/networks/circuits/support/ExportCircuitsParameters/)
21
- * @see [CircuitManager](https://developers.arcgis.com/javascript/latest/references/core/networks/CircuitManager/)
21
+ * @see [CircuitManager.submitExportJob()](https://developers.arcgis.com/javascript/latest/references/core/networks/CircuitManager/#submitExportJob)
22
22
  */
23
23
  export default class CircuitExportJobInfo extends ExportCircuitsResult {
24
24
  constructor(properties?: CircuitExportJobInfoProperties);
@@ -18,7 +18,7 @@ export interface WaitForVerifyOptions extends WaitOptions<CircuitVerifyJobInfo>
18
18
  *
19
19
  * @since 5.1
20
20
  * @see [VerifyCircuitsParameters](https://developers.arcgis.com/javascript/latest/references/core/rest/networks/circuits/support/VerifyCircuitsParameters/)
21
- * @see [CircuitManager](https://developers.arcgis.com/javascript/latest/references/core/networks/CircuitManager/)
21
+ * @see [CircuitManager.submitVerifyJob()](https://developers.arcgis.com/javascript/latest/references/core/networks/CircuitManager/#submitVerifyJob)
22
22
  */
23
23
  export default class CircuitVerifyJobInfo extends VerifyCircuitsResult {
24
24
  constructor(properties?: CircuitVerifyJobInfoProperties);
@@ -66,6 +66,8 @@ export interface UnitRange {
66
66
  * Results returned from the [CircuitManager.export()](https://developers.arcgis.com/javascript/latest/references/core/networks/CircuitManager/#export) method.
67
67
  *
68
68
  * @since 4.34
69
+ * @see [UtilityNetwork](https://developers.arcgis.com/javascript/latest/references/core/networks/UtilityNetwork/)
70
+ * @see [CircuitManager.export()](https://developers.arcgis.com/javascript/latest/references/core/networks/CircuitManager/#export)
69
71
  */
70
72
  export interface CircuitExportResult {
71
73
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arcgis/core",
3
- "version": "5.2.0-next.28",
3
+ "version": "5.2.0-next.29",
4
4
  "type": "module",
5
5
  "homepage": "https://js.arcgis.com",
6
6
  "description": "ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API",
@@ -20,10 +20,10 @@
20
20
  "license": "SEE LICENSE IN LICENSE.md",
21
21
  "dependencies": {
22
22
  "@amcharts/amcharts5": "~5.19.1",
23
- "@arcgis/toolkit": "^5.2.0-next.22",
23
+ "@arcgis/toolkit": "^5.2.0-next.24",
24
24
  "@esri/arcgis-html-sanitizer": "~4.1.0",
25
25
  "@esri/calcite-components": "^5.1.1",
26
- "@vaadin/grid": "~25.1.4",
26
+ "@vaadin/grid": "~25.2.0",
27
27
  "@zip.js/zip.js": "~2.8.26",
28
28
  "luxon": "~3.7.2",
29
29
  "marked": "~18.0.5",
@@ -493,8 +493,7 @@ export type DeleteAssociationEditOmitGlobalId = Omit<DeleteAssociationEditAllFie
493
493
  export interface CombineGroupedObjectsEdit {
494
494
  /**
495
495
  * The global IDs of the grouped features to combine.
496
- * The objects being combined must have consecutive unit IDs, exist in the same table and unit container,
497
- * and have the same attribute values.
496
+ * The objects being combined must have consecutive unit IDs, exist in the same table and unit container, and have the same attribute values.
498
497
  *
499
498
  * @since 5.0
500
499
  */
@@ -548,16 +547,14 @@ export interface ServiceEdits extends Edits {
548
547
  */
549
548
  deleteAssociations?: DeleteAssociationEdit[];
550
549
  /**
551
- * An array of objects specifying
552
- * grouped objects to combine in a telecom domain network. The objects being combined must have consecutive unit IDs, exist in the same table and unit container,
553
- * and have the same attribute values.
550
+ * An array of objects specifying grouped objects to combine in a telecom domain network.
551
+ * The objects being combined must have consecutive unit IDs, exist in the same table and unit container, and have the same attribute values.
554
552
  *
555
553
  * @since 5.0
556
554
  */
557
555
  combineGroupedObjects?: CombineGroupedObjectsEdit[];
558
556
  /**
559
- * An array of objects specifying
560
- * a grouped objects to divide, and the units to divide the objects into, in a telecom domain network.
557
+ * An array of objects specifying a grouped objects to divide, and the units to divide the objects into, in a telecom domain network.
561
558
  *
562
559
  * @since 5.0
563
560
  */
@@ -14,7 +14,7 @@ export interface CircuitVerifyResultProperties extends Partial<Pick<CircuitVerif
14
14
  *
15
15
  * @since 4.34
16
16
  * @see [UtilityNetwork](https://developers.arcgis.com/javascript/latest/references/core/networks/UtilityNetwork/)
17
- * @see [CircuitManager](https://developers.arcgis.com/javascript/latest/references/core/networks/CircuitManager/)
17
+ * @see [CircuitManager.verify()](https://developers.arcgis.com/javascript/latest/references/core/networks/CircuitManager/#verify)
18
18
  */
19
19
  export default class CircuitVerifyResult extends JSONSupport {
20
20
  constructor(properties?: CircuitVerifyResultProperties);
@@ -25,7 +25,7 @@ export default class ExportCircuitsParameters extends JSONSupport {
25
25
  accessor circuitNames: string[];
26
26
  /**
27
27
  * Specifies whether the export is acknowledged.
28
- * If true, the default version is required for the utility network's `gdbVersion`.
28
+ * If true, the default version is required for the utility network's `gdbVersion`.
29
29
  *
30
30
  * @default false
31
31
  * @since 5.0
@@ -5,7 +5,8 @@ import type { SpatialReferenceProperties } from "../../../../geometry/SpatialRef
5
5
  /** @since 5.0 */
6
6
  export interface VerifyCircuitsParametersProperties extends Partial<Pick<VerifyCircuitsParameters, "circuitNames" | "forceVerify" | "synthesizeGeometries">> {
7
7
  /**
8
- * The spatial reference of the returned geometry. If not specified, the geometry is returned in the spatial reference of the feature service.
8
+ * The spatial reference of the returned geometry.
9
+ * If not specified, the geometry is returned in the spatial reference of the feature service.
9
10
  *
10
11
  * @since 5.1
11
12
  * @autocast
@@ -16,15 +17,25 @@ export interface VerifyCircuitsParametersProperties extends Partial<Pick<VerifyC
16
17
  /** @since 5.0 */
17
18
  export default class VerifyCircuitsParameters extends JSONSupport {
18
19
  constructor(properties?: VerifyCircuitsParametersProperties);
19
- /** @since 5.0 */
20
+ /**
21
+ * The names of the circuit or circuits to be verified.
22
+ *
23
+ * @since 5.0
24
+ */
20
25
  accessor circuitNames: string[];
21
26
  /**
27
+ * Enables circuits to be verified regardless of their status.
28
+ * When `false`, the verify operation returns an error ​if the circuit status is clean​.
29
+ * When `true`, the verify operation will run against clean, dirty, and invalid circuits​.
30
+ * The default is `false`.
31
+ *
22
32
  * @default false
23
33
  * @since 5.0
24
34
  */
25
35
  accessor forceVerify: boolean;
26
36
  /**
27
- * The spatial reference of the returned geometry. If not specified, the geometry is returned in the spatial reference of the feature service.
37
+ * The spatial reference of the returned geometry.
38
+ * If not specified, the geometry is returned in the spatial reference of the feature service.
28
39
  *
29
40
  * @since 5.1
30
41
  * @autocast
@@ -32,6 +43,9 @@ export default class VerifyCircuitsParameters extends JSONSupport {
32
43
  get outSpatialReference(): SpatialReference | null | undefined;
33
44
  set outSpatialReference(value: SpatialReferenceProperties | null | undefined);
34
45
  /**
46
+ * Specifies whether geometries will be inferred and created (synthesized) for the circuits.
47
+ * The default is `false`.
48
+ *
35
49
  * @default false
36
50
  * @since 5.0
37
51
  */
@@ -9,7 +9,7 @@ export interface UnitQueryResultProperties extends Partial<Pick<UnitQueryResult,
9
9
  *
10
10
  * @since 4.34
11
11
  * @see [UtilityNetwork](https://developers.arcgis.com/javascript/latest/references/core/networks/UtilityNetwork/)
12
- * @see [UnitIdentifierManager](https://developers.arcgis.com/javascript/latest/references/core/networks/UnitIdentifierManager/)
12
+ * @see [UnitIdentifierManager.query()](https://developers.arcgis.com/javascript/latest/references/core/networks/UnitIdentifierManager/#query)
13
13
  */
14
14
  export default class UnitQueryResult extends JSONSupport {
15
15
  constructor(properties?: UnitQueryResultProperties);