@vertigis/arcgis-extensions 52.2.0 → 53.1.0

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 (387) hide show
  1. package/AppConfig.schema.json +1969 -329
  2. package/data/Feature.d.ts +1 -1
  3. package/data/FeatureList.d.ts +1 -1
  4. package/data/FeatureList.js +1 -1
  5. package/data/FeatureSet.d.ts +27 -4
  6. package/data/FeatureSet.js +1 -1
  7. package/data/FeatureSettings.d.ts +6 -1
  8. package/data/FeatureSettings.js +1 -1
  9. package/data/Schema.d.ts +32 -2
  10. package/data/Schema.js +1 -1
  11. package/data/TaskSettings.d.ts +6 -1
  12. package/data/_TableExtension.d.ts +1 -1
  13. package/data/convert.d.ts +6 -2
  14. package/data/convert.js +1 -1
  15. package/data/support/_dxfConverters.d.ts +2 -1
  16. package/data/support/_dxfFunctions.d.ts +2 -1
  17. package/declarations/arcgis-js-api-extensions/index.d.ts +2 -217
  18. package/declarations/arcgis-js-api-extensions/modules.d.ts +99 -0
  19. package/docs/html/assets/highlight.css +16 -16
  20. package/docs/html/assets/navigation.js +1 -1
  21. package/docs/html/assets/search.js +1 -1
  22. package/docs/html/classes/Entity.EntityBase.html +7 -10
  23. package/docs/html/classes/data_ArcGISServiceTableExtension.ArcGISServiceTableExtension.html +7 -10
  24. package/docs/html/classes/data_Attachment.Attachment.html +7 -10
  25. package/docs/html/classes/data_Feature.Feature.html +7 -10
  26. package/docs/html/classes/data_FeatureList.FeatureList.html +56 -28
  27. package/docs/html/classes/data_FeatureSet.FeatureSet.html +6 -5
  28. package/docs/html/classes/data_FeatureSettings.FeatureSettings.html +6 -3
  29. package/docs/html/classes/data_FeatureSourceBase.FeatureSourceBase.html +7 -10
  30. package/docs/html/classes/data_FeatureSourceBase.RelationshipCollection.html +53 -25
  31. package/docs/html/classes/data_FeatureStream.FeatureStream.html +7 -10
  32. package/docs/html/classes/data_FieldExtension.FieldExtension.html +7 -10
  33. package/docs/html/classes/data_PopupContentExtension.PopupContentExtension.html +7 -10
  34. package/docs/html/classes/data_RelationshipBase.RelationshipBase.html +7 -10
  35. package/docs/html/classes/data_Schema.Schema.html +6 -3
  36. package/docs/html/classes/data_TaskSettings.TaskSettings.html +5 -2
  37. package/docs/html/classes/data__TableExtension.TableExtension.html +7 -10
  38. package/docs/html/classes/data__TableExtension.TableFeatureSettings.html +6 -3
  39. package/docs/html/classes/data__TableExtension.TableSchema.html +7 -4
  40. package/docs/html/classes/data_support__dxfConverters.DxfEntityProcessor.html +2 -2
  41. package/docs/html/classes/layer_preset_LayerPreset.LayerPreset.html +7 -10
  42. package/docs/html/classes/mapping_ArcGISSublayerExtension.ArcGISSublayerExtension.html +12 -15
  43. package/docs/html/classes/mapping_ArcGISSublayerExtension.ArcGISSublayerRelationshipCollection.html +54 -26
  44. package/docs/html/classes/mapping_BasemapExtension.BasemapExtension.html +8 -11
  45. package/docs/html/classes/mapping_Bookmark.Bookmark.html +7 -10
  46. package/docs/html/classes/mapping_BuildingComponentSublayerExtension.BuildingComponentSublayerExtension.html +12 -15
  47. package/docs/html/classes/mapping_BuildingComponentSublayerExtension.BuildingComponentSublayerSchema.html +5 -2
  48. package/docs/html/classes/mapping_BuildingGroupSublayerExtension.BuildingGroupSublayerExtension.html +12 -15
  49. package/docs/html/classes/mapping_BuildingGroupSublayerExtension.BuildingGroupSublayerSchema.html +5 -2
  50. package/docs/html/classes/mapping_BuildingSceneLayerExtension.BuildingSceneLayerExtension.html +14 -17
  51. package/docs/html/classes/mapping_BuildingSceneLayerExtension.BuildingSceneLayerReadOnlySchema.html +5 -2
  52. package/docs/html/classes/mapping_BuildingSublayerExtension.BuildingSublayerExtension.html +12 -15
  53. package/docs/html/classes/mapping_BuildingSublayerExtension.BuildingSublayerFeatureSettings.html +5 -2
  54. package/docs/html/classes/mapping_BuildingSublayerExtension.BuildingSublayerSchema.html +5 -2
  55. package/docs/html/classes/mapping_CSVLayerExtension.CSVLayerExtension.html +12 -15
  56. package/docs/html/classes/mapping_ElevationLayerExtension.ElevationLayerExtension.html +14 -17
  57. package/docs/html/classes/mapping_FeatureCollectionLayerExtension.FeatureCollectionLayerExtension.html +14 -17
  58. package/docs/html/classes/mapping_FeatureLayerExtension.FeatureLayerExtension.html +12 -15
  59. package/docs/html/classes/mapping_FeatureLayerExtensionBase.FeatureLayerExtensionBase.html +14 -17
  60. package/docs/html/classes/mapping_FeatureLayerExtensionBase.FeatureLayerReadOnlySchema.html +5 -2
  61. package/docs/html/classes/mapping_FeatureLayerExtensionBase.FeatureLayerSchema.html +5 -2
  62. package/docs/html/classes/mapping_GeoJSONLayerExtension.GeoJSONLayerExtension.html +12 -15
  63. package/docs/html/classes/mapping_GeoRSSLayerExtension.GeoRSSLayerExtension.html +14 -17
  64. package/docs/html/classes/mapping_GraphicsLayerExtension.GraphicsLayerExtension.html +14 -17
  65. package/docs/html/classes/mapping_GroundExtension.GroundExtension.html +8 -11
  66. package/docs/html/classes/mapping_GroupLayerExtension.GroupLayerExtension.html +15 -18
  67. package/docs/html/classes/mapping_GroupLayerExtension.GroupLayerExtensionCollection.html +76 -25
  68. package/docs/html/classes/mapping_ImageryLayerExtension.ImageryLayerExtension.html +14 -17
  69. package/docs/html/classes/mapping_ImageryTileLayerExtension.ImageryTileLayerExtension.html +14 -17
  70. package/docs/html/classes/mapping_IntegratedMeshLayerExtension.IntegratedMeshLayerExtension.html +14 -17
  71. package/docs/html/classes/mapping_KMLLayerExtension.KMLLayerExtension.html +14 -17
  72. package/docs/html/classes/mapping_KMLSublayerExtension.KMLSublayerExtension.html +12 -15
  73. package/docs/html/classes/mapping_MapConstraints.MapConstraints.html +5 -2
  74. package/docs/html/classes/mapping_MapExtension.MapExtension.html +7 -10
  75. package/docs/html/classes/mapping_MapImageLayerExtension.MapImageLayerExtension.html +14 -17
  76. package/docs/html/classes/mapping_MapImageSublayerExtension.MapImageSublayerExtension.html +12 -15
  77. package/docs/html/classes/mapping_MapNotesLayerExtension.MapNotesLayerExtension.html +14 -17
  78. package/docs/html/classes/mapping_MapNotesSublayerExtension.MapNotesSublayerExtension.html +12 -15
  79. package/docs/html/classes/mapping_MapNotesSublayerExtension.MapNotesSublayerExtensionSchema.html +5 -2
  80. package/docs/html/classes/mapping_MediaLayerExtension.MediaLayerExtension.html +14 -17
  81. package/docs/html/classes/mapping_OpenStreetMapLayerExtension.OpenStreetMapLayerExtension.html +14 -17
  82. package/docs/html/classes/mapping_PointCloudLayerExtension.PointCloudLayerExtension.html +14 -17
  83. package/docs/html/classes/mapping_RouteLayerExtension.RouteLayerExtension.html +14 -17
  84. package/docs/html/classes/mapping_RouteLayerExtension.RouteLayerExtensionSchema.html +5 -2
  85. package/docs/html/classes/mapping_SceneLayerExtension.SceneLayerExtension.html +14 -17
  86. package/docs/html/classes/mapping_StreamLayerExtension.StreamLayerExtension.html +14 -17
  87. package/docs/html/classes/mapping_StreamLayerExtension.StreamLayerSchema.html +5 -2
  88. package/docs/html/classes/mapping_SubtypeGroupLayerExtension.SubtypeGroupLayerExtension.html +14 -17
  89. package/docs/html/classes/mapping_SubtypeGroupLayerExtension.SubtypeGroupLayerRelationshipCollection.html +54 -26
  90. package/docs/html/classes/mapping_SubtypeGroupLayerExtension.SubtypeGroupLayerSchema.html +5 -2
  91. package/docs/html/classes/mapping_SubtypeSublayerExtension.SubtypeSublayerExtension.html +12 -15
  92. package/docs/html/classes/mapping_SubtypeSublayerExtension.SubtypeSublayerRelationshipCollection.html +54 -26
  93. package/docs/html/classes/mapping_SubtypeSublayerExtension.SubtypeSublayerSchema.html +5 -2
  94. package/docs/html/classes/mapping_TileLayerExtension.TileLayerExtension.html +14 -17
  95. package/docs/html/classes/mapping_TileSublayerExtension.TileSublayerExtension.html +12 -15
  96. package/docs/html/classes/mapping_UnsupportedLayerExtension.UnsupportedLayerExtension.html +14 -17
  97. package/docs/html/classes/mapping_VectorTileLayerExtension.VectorTileLayerExtension.html +14 -17
  98. package/docs/html/classes/mapping_WFSLayerExtension.WFSLayerExtension.html +14 -17
  99. package/docs/html/classes/mapping_WMSLayerExtension.WMSLayerExtension.html +14 -17
  100. package/docs/html/classes/mapping_WMSSublayerExtension.WMSSublayerExtension.html +12 -15
  101. package/docs/html/classes/mapping_WMTSLayerExtension.WMTSLayerExtension.html +14 -17
  102. package/docs/html/classes/mapping_WebTileLayerExtension.WebTileLayerExtension.html +14 -17
  103. package/docs/html/classes/mapping__LayerExtension.LayerExtension.html +14 -17
  104. package/docs/html/classes/mapping__LayerExtension.LayerExtensionReadOnlySchema.html +5 -2
  105. package/docs/html/classes/mapping__LayerExtension.LayerExtensionSchema.html +5 -2
  106. package/docs/html/classes/mapping__LayerExtensionCollectionImpl.LayerExtensionCollectionImpl.html +76 -25
  107. package/docs/html/classes/mapping__SublayerExtension.SubSublayerExtensionCollection.html +76 -25
  108. package/docs/html/classes/mapping__SublayerExtension.SublayerExtension.html +12 -15
  109. package/docs/html/classes/mapping__SublayerExtension.SublayerSchema.html +5 -2
  110. package/docs/html/classes/mapping_support_ArrayWrappedCollection.ArrayWrappedCollection.html +53 -25
  111. package/docs/html/classes/mapping_support__LayerExtensionCollection.LayerExtensionCollectionBase.html +76 -25
  112. package/docs/html/classes/mapping_support__SublayerExtensionCollection.SublayerExtensionCollectionBase.html +76 -25
  113. package/docs/html/classes/menus_Menu.Menu.html +7 -10
  114. package/docs/html/classes/menus_MenuItem.MenuItem.html +7 -10
  115. package/docs/html/classes/support_FormatSettings.FormatSettings.html +5 -2
  116. package/docs/html/classes/support_InitializableBase.InitializableBase.html +6 -9
  117. package/docs/html/classes/support_InitializableCollectionProxy.InitializableCollectionProxy.html +53 -25
  118. package/docs/html/classes/support_ReadOnlyInitializableCollection.ReadOnlyInitializableCollection.html +53 -25
  119. package/docs/html/classes/support_Settings.Settings.html +5 -2
  120. package/docs/html/classes/support__ArcGISRelationshipCollection.ArcGISRelationshipCollection.html +54 -26
  121. package/docs/html/classes/tasks_geocoding_ArcGISGeocoder.ArcGISGeocoder.html +7 -10
  122. package/docs/html/classes/tasks_geocoding_Geocoder.Geocoder.html +7 -10
  123. package/docs/html/classes/tasks_identify_IdentifyService.IdentifyService.html +7 -10
  124. package/docs/html/classes/tasks_identify_WMSLayerFeatureInfoIdentifyProvider.WMSLayerFeatureInfoIdentifyProvider.html +2 -2
  125. package/docs/html/classes/tasks_query_ArcGISRelationship.ArcGISRelationship.html +7 -10
  126. package/docs/html/classes/tasks_query_QueryBasedRelationship.QueryBasedRelationship.html +7 -10
  127. package/docs/html/classes/tasks_query_QueryService.QueryService.html +8 -11
  128. package/docs/html/classes/tasks_query_SubtypeSublayerQueryProvider.SubtypeSublayerQueryProvider.html +2 -2
  129. package/docs/html/classes/tasks_search_SearchService.SearchService.html +8 -11
  130. package/docs/html/classes/utilities_CaseInsensitiveObservableMap.CaseInsensitiveObservableMap.html +6 -5
  131. package/docs/html/classes/utilities_CollectionProxy.CollectionProxy.html +56 -29
  132. package/docs/html/classes/utilities_CopyOnWriteCollection.CopyOnWriteCollection.html +53 -25
  133. package/docs/html/classes/utilities_MapTransformCollection.MapTransformCollection.html +53 -25
  134. package/docs/html/classes/utilities_ObservableMap.ObservableMap.html +6 -5
  135. package/docs/html/classes/utilities_ObservableSet.ObservableSet.html +6 -5
  136. package/docs/html/classes/utilities_ReadOnlyCollection.ReadOnlyCollection.html +53 -25
  137. package/docs/html/classes/utilities_ReadOnlyMap.ReadOnlyMap.html +35 -9
  138. package/docs/html/classes/utilities__ReferenceCountedHandle.default.html +2 -2
  139. package/docs/html/functions/data_convert.getDefaultSymbol.html +2 -2
  140. package/docs/html/functions/data_convert.parseKMLSymbol.html +2 -2
  141. package/docs/html/functions/mapping_support_LayerListSettings.fromLayerListMode.html +1 -1
  142. package/docs/html/functions/support_observableUtils.observable-1.html +3 -3
  143. package/docs/html/functions/support_observableUtils.onWatch.html +1 -1
  144. package/docs/html/functions/support_observableUtils.watch.html +1 -1
  145. package/docs/html/functions/support_observableUtils.watchEach.html +1 -1
  146. package/docs/html/functions/support_observableUtils.watchEvent.html +3 -3
  147. package/docs/html/functions/utilities_checkArg.checkArg.html +1 -1
  148. package/docs/html/functions/utilities_renderers.isClassBreaksRenderer.html +1 -1
  149. package/docs/html/functions/utilities_renderers.isDictionaryRenderer.html +1 -1
  150. package/docs/html/functions/utilities_renderers.isDotDensityRenderer.html +1 -1
  151. package/docs/html/functions/utilities_renderers.isHeatMapRenderer.html +1 -1
  152. package/docs/html/functions/utilities_renderers.isRenderer.html +2 -2
  153. package/docs/html/functions/utilities_renderers.isSimpleRenderer.html +1 -1
  154. package/docs/html/functions/utilities_renderers.isUniqueValueRenderer.html +1 -1
  155. package/docs/html/functions/utilities_symbol.isPolygonGeometrySymbol.html +2 -2
  156. package/docs/html/functions/utilities_watch.onCollectionPropertyChange.html +3 -3
  157. package/docs/html/functions/utilities_watch.onEach.html +4 -4
  158. package/docs/html/functions/utilities_watch.onOnce.html +5 -5
  159. package/docs/html/hierarchy.html +1 -1
  160. package/docs/html/interfaces/data_Feature.PresentableAttributes.html +36 -10
  161. package/docs/html/interfaces/data_FeatureSet.FeatureSetEvents.html +12 -0
  162. package/docs/html/interfaces/data_PopupContentExtension.ContentProperties.html +2 -2
  163. package/docs/html/interfaces/data_Schema.FieldCollection.html +1 -1
  164. package/docs/html/interfaces/data_Schema.SchemaEvents.html +16 -0
  165. package/docs/html/interfaces/data_support__dxfInterfaces.IDxfJsonComponentContext.html +2 -2
  166. package/docs/html/interfaces/data_support_attachments.AttachmentEnabledLayer.html +19 -6
  167. package/docs/html/interfaces/json_AnnotationLayerJson.AnnotationLayerJson.html +2 -2
  168. package/docs/html/interfaces/json_BuildingSceneLayerJson.BuildingSceneLayerJson.html +2 -2
  169. package/docs/html/interfaces/json_BuildingSceneSublayerJson.BuildingSceneSublayerJson.html +2 -2
  170. package/docs/html/interfaces/json_CSVLayerJson.CSVLayerJson.html +2 -2
  171. package/docs/html/interfaces/json_EnvironmentJson.SnowyWeatherJson.html +2 -2
  172. package/docs/html/interfaces/json_FeatureLayerJson.FeatureLayerJson.html +2 -2
  173. package/docs/html/interfaces/json_GeoJSONLayerJson.GeoJSONLayerJson.html +2 -2
  174. package/docs/html/interfaces/json_GeoRSSLayerJson.GeoRSSLayerJson.html +2 -2
  175. package/docs/html/interfaces/json_GroupLayerJson.GroupLayerJson.html +2 -2
  176. package/docs/html/interfaces/json_ImageServiceLayerJson.ImageServiceLayerJson.html +2 -2
  177. package/docs/html/interfaces/json_ImageServiceVectorLayerJson.ImageServiceVectorLayerJson.html +2 -2
  178. package/docs/html/interfaces/json_IntegratedMeshLayerJson.IntegratedMeshLayerJson.html +2 -2
  179. package/docs/html/interfaces/json_KMLLayerJson.KMLLayerJson.html +2 -2
  180. package/docs/html/interfaces/json_MapServiceLayerJson.MapServiceLayerJson.html +2 -2
  181. package/docs/html/interfaces/json_MediaLayerJson.MediaLayerJson.html +2 -2
  182. package/docs/html/interfaces/json_OperationalLayerJson.OperationalLayerJsonBase.html +2 -2
  183. package/docs/html/interfaces/json_PointCloudLayerJson.PointCloudLayerJson.html +2 -2
  184. package/docs/html/interfaces/json_PopupInfoJson.PopupElementJson.html +2 -2
  185. package/docs/html/interfaces/json_RasterDataElevationLayerJson.RasterDataElevationLayerJson.html +2 -2
  186. package/docs/html/interfaces/json_RendererJson.SizeInfoJson.html +2 -2
  187. package/docs/html/interfaces/json_SceneLayerJson.SceneLayerJson.html +2 -2
  188. package/docs/html/interfaces/json_StreamLayerJson.StreamLayerJson.html +2 -2
  189. package/docs/html/interfaces/json_SubtypeGroupLayerJson.SubtypeGroupLayerJson.html +2 -2
  190. package/docs/html/interfaces/json_SubtypeGroupLayerJson.SubtypeSubtypeGroupLayerJson.html +2 -2
  191. package/docs/html/interfaces/json_SubtypeSublayerJson.SubtypeSublayerJson.html +2 -2
  192. package/docs/html/interfaces/json_TiledElevationServiceLayerJson.TiledElevationServiceLayerJson.html +2 -2
  193. package/docs/html/interfaces/json_TiledImageServiceLayerJson.TiledImageServiceLayerJson.html +2 -2
  194. package/docs/html/interfaces/json_TiledMapServiceLayerJson.TiledMapServiceLayerJson.html +2 -2
  195. package/docs/html/interfaces/json_VectorTileLayerJson.VectorTileLayerJson.html +2 -2
  196. package/docs/html/interfaces/json_WFSLayerJson.WFSLayerJson.html +2 -2
  197. package/docs/html/interfaces/json_WMSLayerJson.WMSLayerJson.html +2 -2
  198. package/docs/html/interfaces/json_WebSceneJson.HeightModelInfoJson.html +2 -2
  199. package/docs/html/interfaces/json_WebTileLayerJson.WebTileLayerJson.html +2 -2
  200. package/docs/html/interfaces/mapping_ArcGISSublayerExtension.ArcGISSublayerExtensionProperties.html +2 -2
  201. package/docs/html/interfaces/mapping_BuildingComponentSublayerExtension.BuildingComponentSublayerExtensionProperties.html +2 -2
  202. package/docs/html/interfaces/mapping_BuildingGroupSublayerExtension.BuildingGroupSublayerExtensionProperties.html +2 -2
  203. package/docs/html/interfaces/mapping_BuildingSceneLayerExtension.BuildingSceneLayerExtensionProperties.html +3 -3
  204. package/docs/html/interfaces/mapping_BuildingSceneLayerExtension.BuildingSceneLayerProperties.html +2 -2
  205. package/docs/html/interfaces/mapping_BuildingSublayerExtension.BuildingSublayerExtensionProperties.html +2 -2
  206. package/docs/html/interfaces/mapping_BuildingSublayerExtension.BuildingSublayerProperties.html +2 -2
  207. package/docs/html/interfaces/mapping_CSVLayerExtension.CSVLayerExtensionProperties.html +2 -2
  208. package/docs/html/interfaces/mapping_ElevationLayerExtension.ElevationLayerExtensionProperties.html +2 -2
  209. package/docs/html/interfaces/mapping_FeatureLayerExtension.FeatureLayerExtensionProperties.html +2 -2
  210. package/docs/html/interfaces/mapping_FeatureLayerExtension.FeatureLayerProperties.html +2 -2
  211. package/docs/html/interfaces/mapping_FeatureLayerExtensionBase.FeatureLayerBaseProperties.html +2 -2
  212. package/docs/html/interfaces/mapping_FeatureLayerExtensionBase.FeatureLayerExtensionBaseProperties.html +2 -2
  213. package/docs/html/interfaces/mapping_GeoJSONLayerExtension.GeoJSONLayerExtensionProperties.html +2 -2
  214. package/docs/html/interfaces/mapping_GeoRSSLayerExtension.GeoRSSLayerExtensionProperties.html +2 -2
  215. package/docs/html/interfaces/mapping_GraphicsLayerExtension.GraphicsLayerExtensionProperties.html +2 -2
  216. package/docs/html/interfaces/mapping_GroupLayerExtension.GroupLayerExtensionProperties.html +2 -2
  217. package/docs/html/interfaces/mapping_ImageryLayerExtension.ImageryLayerExtensionProperties.html +2 -2
  218. package/docs/html/interfaces/mapping_ImageryTileLayerExtension.ImageryTileLayerExtensionProperties.html +2 -2
  219. package/docs/html/interfaces/mapping_IntegratedMeshLayerExtension.IntegratedMeshLayerExtensionProperties.html +2 -2
  220. package/docs/html/interfaces/mapping_KMLLayerExtension.KMLLayerExtensionProperties.html +2 -2
  221. package/docs/html/interfaces/mapping_KMLSublayerExtension.KMLSublayerExtensionProperties.html +2 -2
  222. package/docs/html/interfaces/mapping_MapExtension.MapExtensionEvents.html +14 -0
  223. package/docs/html/interfaces/mapping_MapImageLayerExtension.MapImageLayerExtensionProperties.html +4 -4
  224. package/docs/html/interfaces/mapping_MapImageSublayerExtension.MapImageSublayerExtensionProperties.html +2 -2
  225. package/docs/html/interfaces/mapping_MapNotesLayerExtension.MapNotesLayerExtensionProperties.html +2 -2
  226. package/docs/html/interfaces/mapping_MapNotesSublayerExtension.MapNotesSublayerExtensionProperties.html +2 -2
  227. package/docs/html/interfaces/mapping_MediaLayerExtension.MediaLayerExtensionProperties.html +2 -2
  228. package/docs/html/interfaces/mapping_OpenStreetMapLayerExtension.OpenStreetMapLayerExtensionProperties.html +2 -2
  229. package/docs/html/interfaces/mapping_PointCloudLayerExtension.PointCloudLayerExtensionProperties.html +2 -2
  230. package/docs/html/interfaces/mapping_PointCloudLayerExtension.PointCloudLayerProperties.html +2 -2
  231. package/docs/html/interfaces/mapping_RouteLayerExtension.RouteLayerExtensionProperties.html +2 -2
  232. package/docs/html/interfaces/mapping_SceneLayerExtension.SceneLayerExtensionProperties.html +2 -2
  233. package/docs/html/interfaces/mapping_StreamLayerExtension.StreamLayerExtensionProperties.html +2 -2
  234. package/docs/html/interfaces/mapping_SubtypeGroupLayerExtension.SubtypeGroupLayerExtensionProperties.html +2 -2
  235. package/docs/html/interfaces/mapping_SubtypeSublayerExtension.SubtypeSublayerExtensionProperties.html +2 -2
  236. package/docs/html/interfaces/mapping_TileLayerExtension.TileLayerExtensionProperties.html +2 -2
  237. package/docs/html/interfaces/mapping_TileSublayerExtension.TileSublayerExtensionProperties.html +2 -2
  238. package/docs/html/interfaces/mapping_VectorTileLayerExtension.VectorTileLayerExtensionProperties.html +2 -2
  239. package/docs/html/interfaces/mapping_WFSLayerExtension.WFSLayerExtensionProperties.html +2 -2
  240. package/docs/html/interfaces/mapping_WMSLayerExtension.WMSLayerExtensionProperties.html +2 -2
  241. package/docs/html/interfaces/mapping_WMSSublayerExtension.WMSSublayerExtensionProperties.html +2 -2
  242. package/docs/html/interfaces/mapping_WMTSLayerExtension.WMTSLayerExtensionProperties.html +2 -2
  243. package/docs/html/interfaces/mapping_WebTileLayerExtension.WebTileLayerExtensionProperties.html +2 -2
  244. package/docs/html/interfaces/mapping__LayerExtension.LayerExtensionProperties.html +2 -2
  245. package/docs/html/interfaces/mapping__SublayerExtension.SublayerExtensionProperties.html +2 -2
  246. package/docs/html/interfaces/support_ArcGISRequestHelper.ArcGISRequestHelperResponse.html +1 -1
  247. package/docs/html/interfaces/support_ArcGISRequestHelper.ArcGISRequestOptions.html +2 -2
  248. package/docs/html/interfaces/support_InitializableBase.InitializableBaseEvents.html +7 -0
  249. package/docs/html/interfaces/support_InitializableCollectionProxy.InitializableCollection.html +1 -1
  250. package/docs/html/interfaces/support_Settings.SettingsEvents.html +7 -0
  251. package/docs/html/interfaces/support_esri.ChangeEvent.html +5 -5
  252. package/docs/html/interfaces/support_esri.LayerWithSublayers.html +1 -1
  253. package/docs/html/interfaces/support_esri.SublayerLike.html +2 -2
  254. package/docs/html/interfaces/support_observableUtils.WatchEachOptions.html +3 -3
  255. package/docs/html/interfaces/support_observableUtils.WatchOptions.html +3 -3
  256. package/docs/html/interfaces/utilities_ObservableMap.MapAfterItemEvent.html +4 -0
  257. package/docs/html/interfaces/utilities_ObservableMap.MapEvents.html +10 -0
  258. package/docs/html/interfaces/utilities_ObservableSet.SetAfterItemEvent.html +4 -0
  259. package/docs/html/interfaces/utilities_ObservableSet.SetChangeEvent.html +10 -0
  260. package/docs/html/interfaces/utilities_ObservableSet.SetEvents.html +10 -0
  261. package/docs/html/interfaces/utilities__layers.LayerWithLegendEnabledProperty.html +1 -1
  262. package/docs/html/interfaces/utilities__layers.TimeAwareLayer.html +1 -1
  263. package/docs/html/interfaces/utilities_collection.AfterItemChangeEvent.html +1 -1
  264. package/docs/html/modules/data_FeatureSet.html +2 -1
  265. package/docs/html/modules/data_Schema.html +1 -0
  266. package/docs/html/modules/data_convert.html +1 -0
  267. package/docs/html/modules/mapping_MapExtension.html +2 -1
  268. package/docs/html/modules/support_InitializableBase.html +1 -0
  269. package/docs/html/modules/support_Settings.html +1 -0
  270. package/docs/html/modules/support_esri.html +1 -6
  271. package/docs/html/modules/support_observableUtils.html +2 -1
  272. package/docs/html/modules/utilities_ObservableMap.html +3 -1
  273. package/docs/html/modules/utilities_ObservableSet.html +3 -0
  274. package/docs/html/types/data_convert.SimpleSymbol.html +2 -0
  275. package/docs/html/types/json_SymbolJson.ColorJson.html +1 -1
  276. package/docs/html/types/support_observableUtils.EventTarget.html +2 -0
  277. package/docs/html/types/support_observableUtils.WhenOptions.html +1 -1
  278. package/docs/html/variables/support_esri.Collection.html +1 -1
  279. package/docs/html/variables/version.version.html +1 -1
  280. package/json/SymbolJson.d.ts +1 -1
  281. package/mapping/ArcGISSublayerExtension.d.ts +2 -2
  282. package/mapping/BasemapExtension.d.ts +2 -1
  283. package/mapping/BuildingComponentSublayerExtension.d.ts +2 -2
  284. package/mapping/BuildingSceneLayerExtension.d.ts +2 -2
  285. package/mapping/CSVLayerExtension.d.ts +1 -1
  286. package/mapping/FeatureLayerExtension.d.ts +1 -1
  287. package/mapping/FeatureLayerExtensionBase.d.ts +2 -2
  288. package/mapping/GeoJSONLayerExtension.d.ts +1 -1
  289. package/mapping/GroundExtension.d.ts +2 -1
  290. package/mapping/MapExtension.d.ts +24 -4
  291. package/mapping/MapExtension.js +1 -1
  292. package/mapping/SceneLayerExtension.d.ts +2 -2
  293. package/mapping/StreamLayerExtension.d.ts +2 -2
  294. package/mapping/SubtypeSublayerExtension.d.ts +3 -3
  295. package/mapping/WFSLayerExtension.d.ts +2 -2
  296. package/mapping/_LayerExtension.d.ts +6 -5
  297. package/mapping/_LayerExtension.js +1 -1
  298. package/mapping/_SublayerExtension.d.ts +4 -2
  299. package/mapping/support/_LayerExtensionCollection.d.ts +3 -9
  300. package/mapping/support/_LayerExtensionCollection.js +1 -1
  301. package/mapping/support/_SublayerExtensionCollection.d.ts +4 -9
  302. package/mapping/support/_SublayerExtensionCollection.js +1 -1
  303. package/mapping/support/featureService.js +1 -1
  304. package/package.json +2 -2
  305. package/portal/CSVLayer.d.ts +1 -1
  306. package/portal/ElevationInfo.d.ts +4 -3
  307. package/portal/ElevationInfo.js +1 -1
  308. package/portal/LabelingInfo.js +1 -1
  309. package/portal/LayerDefinition.js +1 -1
  310. package/portal/MapServiceLayer.js +1 -1
  311. package/portal/Slide.js +1 -1
  312. package/portal/SubtypeGroupLayer.d.ts +2 -2
  313. package/portal/Symbol.d.ts +1 -1
  314. package/portal/Symbol.js +1 -1
  315. package/portal/TiledMapServiceLayer.d.ts +1 -1
  316. package/portal/TiledMapServiceLayer.js +1 -1
  317. package/portal/WMSLayer.d.ts +4 -3
  318. package/portal/WMTSInfo.d.ts +2 -2
  319. package/portal/WebMap.js +1 -1
  320. package/support/ArcGISRequestHelper.d.ts +2 -2
  321. package/support/FormatSettings.d.ts +6 -1
  322. package/support/InitializableBase.d.ts +17 -2
  323. package/support/InitializableBase.js +1 -1
  324. package/support/Serializable.d.ts +1 -1
  325. package/support/Serializable.js +1 -1
  326. package/support/Settings.d.ts +19 -0
  327. package/support/_esriInternal.d.ts +1 -3
  328. package/support/_esriInternal.js +1 -1
  329. package/support/esri.d.ts +2 -7
  330. package/support/observableUtils.d.ts +8 -8
  331. package/support/observableUtils.js +1 -1
  332. package/tasks/identify/ArcGISSublayerIdentifyProvider.d.ts +1 -1
  333. package/tasks/identify/BuildingComponentSublayerHitTestIdentifyProvider.d.ts +1 -1
  334. package/tasks/identify/CSVLayer3DHitTestIdentifyProvider.d.ts +1 -1
  335. package/tasks/identify/CSVLayerClientSideQueryIdentifyProvider.d.ts +1 -1
  336. package/tasks/identify/FeatureLayer3DHitTestIdentifyProvider.d.ts +1 -1
  337. package/tasks/identify/FeatureLayerClientSideIdentifyProvider.d.ts +1 -1
  338. package/tasks/identify/FeatureLayerQueryIdentifyProvider.d.ts +1 -1
  339. package/tasks/identify/GeoJSONLayer3DHitTestIdentifyProvider.d.ts +1 -1
  340. package/tasks/identify/GeoJSONLayerClientSideQueryIdentifyProvider.d.ts +1 -1
  341. package/tasks/identify/GeoRSSLayerIdentifyProvider.d.ts +1 -1
  342. package/tasks/identify/GraphicsLayerQueryIdentifyProvider.d.ts +1 -1
  343. package/tasks/identify/HitTestIdentifyProvider.d.ts +1 -1
  344. package/tasks/identify/IdentifyProviderBase.d.ts +1 -1
  345. package/tasks/identify/IdentifyService.d.ts +1 -1
  346. package/tasks/identify/ImageryLayerIdentifyProvider.d.ts +1 -1
  347. package/tasks/identify/KMLLayerQueryIdentifyProvider.d.ts +1 -1
  348. package/tasks/identify/MapNotesSublayerQueryIdentifyProvider.d.ts +1 -1
  349. package/tasks/identify/PointCloudLayerHitTestIdentifyProvider.d.ts +1 -1
  350. package/tasks/identify/RouteLayerQueryIdentifyProvider.d.ts +1 -1
  351. package/tasks/identify/SceneLayerHitTestIdentifyProvider.d.ts +1 -1
  352. package/tasks/identify/SceneLayerQueryIdentifyProvider.d.ts +1 -1
  353. package/tasks/identify/SubtypeSublayerQueryIdentifyProvider.d.ts +1 -1
  354. package/tasks/identify/WMSLayerFeatureInfoIdentifyProvider.d.ts +1 -1
  355. package/tasks/identify/WMSSublayerIdentifyProvider.d.ts +1 -1
  356. package/tasks/query/QueryOptions.d.ts +1 -1
  357. package/tasks/query/SubtypeSublayerQueryProvider.d.ts +3 -2
  358. package/tasks/search/SearchOptions.d.ts +1 -1
  359. package/tasks/search/support/_querySearchProviderUtils.d.ts +1 -1
  360. package/utilities/CollectionProxy.d.ts +30 -22
  361. package/utilities/CollectionProxy.js +1 -1
  362. package/utilities/MapTransformCollection.js +1 -1
  363. package/utilities/ObservableMap.d.ts +30 -6
  364. package/utilities/ObservableMap.js +1 -1
  365. package/utilities/ObservableSet.d.ts +52 -7
  366. package/utilities/ObservableSet.js +1 -1
  367. package/utilities/ReadOnlyMap.d.ts +10 -8
  368. package/utilities/_ReferenceCountedHandle.d.ts +3 -2
  369. package/utilities/_geoJson.d.ts +1 -1
  370. package/utilities/_gml.d.ts +1 -1
  371. package/utilities/_project.d.ts +1 -1
  372. package/utilities/_wkt.d.ts +1 -1
  373. package/utilities/collection.d.ts +2 -1
  374. package/utilities/esri.d.ts +1 -1
  375. package/utilities/geometry.d.ts +1 -1
  376. package/utilities/query.d.ts +1 -1
  377. package/utilities/renderers.d.ts +8 -8
  378. package/utilities/symbol.d.ts +2 -2
  379. package/utilities/watch.d.ts +6 -6
  380. package/utilities/watch.js +1 -1
  381. package/version.d.ts +1 -1
  382. package/version.js +1 -1
  383. package/docs/html/types/support_esri.BuildingComponentSublayerCapabilities.html +0 -1
  384. package/docs/html/types/support_esri.BuildingComponentSublayerCapabilitiesData.html +0 -1
  385. package/docs/html/types/support_esri.CollectionAfterChangesEventHandler.html +0 -1
  386. package/docs/html/types/support_esri.CollectionBeforeChangesEventHandler.html +0 -1
  387. package/docs/html/types/support_esri.FeatureLayerElevationInfo.html +0 -1
package/data/convert.js CHANGED
@@ -1 +1 @@
1
- import e from"@arcgis/core/Color.js";import t from"@arcgis/core/Graphic.js";import r from"@arcgis/core/geometry/Point";import o from"@arcgis/core/geometry/Polygon.js";import n from"@arcgis/core/geometry/Polyline.js";import a from"@arcgis/core/geometry/SpatialReference";import i from"@arcgis/core/layers/FeatureLayer.js";import s from"@arcgis/core/layers/GroupLayer.js";import c from"@arcgis/core/layers/support/Field.js";import l from"@arcgis/core/renderers/SimpleRenderer.js";import m from"@arcgis/core/symbols/MeshSymbol3D.js";import u from"@arcgis/core/symbols/PictureMarkerSymbol.js";import f from"@arcgis/core/symbols/SimpleFillSymbol.js";import y from"@arcgis/core/symbols/SimpleLineSymbol.js";import p from"@arcgis/core/symbols/SimpleMarkerSymbol.js";import d from"dxf-parser";import{geometryTypeToJson as g}from"../json/GeometryJson.js";import{translate as w}from"../locale/language.js";import{INVARIANT as h}from"../locale.js";import{FeatureCollectionLayerExtension as F}from"../mapping/FeatureCollectionLayerExtension.js";import{GroupLayerExtension as S}from"../mapping/GroupLayerExtension.js";import{CaseInsensitiveObservableMap as T}from"../utilities/CaseInsensitiveObservableMap.js";import{Time as N}from"../utilities/Time.js";import{checkArg as O,assertNever as x}from"../utilities/checkArg.js";import{isPoint as M,isMultipoint as D,isPolyline as E,isPolygon as R,isExtent as b}from"../utilities/esri.js";import{parse as A,format as G,DEFAULT_PARSING_FORMATS as _,INVALID_DATE as I}from"../utilities/format/date.js";import{DateFormat as L,NumberFormat as C,TimeFormat as v}from"../utilities/format/formats.js";import{parse as P,format as j}from"../utilities/format/number.js";import{parse as U,format as $,DEFAULT_PARSING_FORMATS as H}from"../utilities/format/time.js";import{project as B,esriToWKT as k,wktToEsri as z,esriWkidToWkt as J,esriWktToWkid as W,esriToGeoJSON as X,geoJSONToEsri as Y}from"../utilities/geometry.js";import{getLogger as q}from"../utilities/log.js";import{isNumeric as Z}from"../utilities/number.js";import{delay as K}from"../utilities/promise.js";import{caseInsensitiveEquals as V}from"../utilities/string.js";import{Feature as Q}from"./Feature.js";import{FeatureSet as ee}from"./FeatureSet.js";import{DxfEntityProcessor as te}from"./support/_dxfConverters.js";const re=["=","-","+","@"],oe='"',ne="\r\n",ae="\n",ie=[..._.map(Ue),"M/d/yy"],se=[...H.map(He).map((e=>e.replace("AM/PM","tt")))],ce=/(\w+)_(point|multipoint|polyline|polygon)z?/;var le;function me(){return q("geocortex.api.data.convert")}!function(e){e.DATE="D",e.NUMBER="N",e.STRING="C",e.BOOLEAN="L"}(le||(le={}));export const FIELD_NAME_REGEX=/[^a-zA-Z\d_]/g;export var GeometryFormat;!function(e){e.NONE="NONE",e.WKT="WKT",e.XY="XY",e.XYZ="XYZ",e.LAT_LON="LAT_LONG",e.GEO_JSON="GEO_JSON",e.ARCGIS_JSON="ARCGIS_JSON"}(GeometryFormat||(GeometryFormat={}));export const geometryTypeHeaders={[GeometryFormat.XYZ]:[["x","y","z"]],[GeometryFormat.XY]:[["x","y"]],[GeometryFormat.LAT_LON]:[["latitude","longitude"],["lat","lon"],["lat","long"]],[GeometryFormat.ARCGIS_JSON]:[["geometry"]],[GeometryFormat.GEO_JSON]:[["geometry"]],[GeometryFormat.WKT]:[["geometry"]]};const ue=[[GeometryFormat.ARCGIS_JSON,be],[GeometryFormat.GEO_JSON,Ae],[GeometryFormat.WKT,Ge]],fe=new Map(ue);export async function uploadDataToFeatureSet(e){const t=await async function(e){const{data:t,includeHeaderRow:o,geometryFormat:n,geometryFields:a,locale:i,numberFormat:s,inSpatialReference:c}=e,l=o?t.slice(1):t;if(n===GeometryFormat.NONE)return{columnIndices:[]};const m=e=>Le(e,i,s),u=(e,t)=>{const o=t===GeometryFormat.XYZ,n=t===GeometryFormat.LAT_LON;return{columnIndices:e,geometries:l.map((t=>{if(t.length>=Math.max(...e)&&Z(t[e[0]]?.raw,i)&&Z(t[e[1]]?.raw,i)&&(!o||Z(t[e[2]]?.raw,i)))return new r({x:m(n?t[e[1]].raw:t[e[0]].raw),y:m(n?t[e[0]].raw:t[e[1]].raw),z:o?m(t[e[2]].raw):0,spatialReference:c})}))}},f=async(e,t)=>({columnIndices:[e],geometries:await Promise.all(l.map((t=>t[e])).map((e=>{if(e?.raw)return t(e.raw.toString(),c)})))}),y=async(e,t)=>{switch(t){case GeometryFormat.NONE:return{columnIndices:[0]};case GeometryFormat.LAT_LON:case GeometryFormat.XYZ:case GeometryFormat.XY:return u(e,t);case GeometryFormat.ARCGIS_JSON:return f(e[0],be);case GeometryFormat.GEO_JSON:return f(e[0],Ae);case GeometryFormat.WKT:return f(e[0],Ge);default:return x(t,new Error(`Unknown geometry format "${t}".`))}};if(n){const e=_e(o?t[0]:t[0].map(((e,t)=>({raw:t.toString()}))),n,o?a:a.map((e=>""+(parseInt(e.match(/\d+/g)[0])-1))));if(o&&void 0===e)throw new Error(`Error parsing file data: Expected geometry columns ${geometryTypeHeaders[n][0].join(",")} are missing for GeometryType.${n}`);return y(e??[0],n)}const[p,d]=await Ce(t,c,o);if(p===GeometryFormat.NONE)return{columnIndices:[]};return d.length>1?u(d,p):f(d[0],fe.get(p))}(e),o=function(e,t){const{data:r,displayField:o,includeHeaderRow:n,inSpatialReference:a,outSpatialReference:i,generatePrimaryKey:s}=e,c={fields:[]},l=e=>!(!t.columnIndices||0===t.columnIndices.length)&&t.columnIndices.includes(e);let{primaryKeyField:m}=e,u=0;for(let t=0;t<r[0].length;t++){if(l(t))continue;const o=Pe(e,t,!s&&!m&&!c.fields.find((e=>"esriFieldTypeOID"===e.type)));let a=r[0][t]?.raw?.toString(),i=a?.replace(FIELD_NAME_REGEX,"_");n&&i||(i="field"+ ++u,a=w("gcx.api.data.convert.import-field-alias",u)),c.fields.push({alias:a,name:i,type:o}),"esriFieldTypeOID"===o&&(m=i)}if(c.spatialReference=i??t.geometries?.[0]?.spatialReference??a,t.geometries?.length){const e=t.geometries.filter((e=>void 0!==e)).map((e=>e.type)),r=e[0];c.geometryType=e.every((e=>e===r))?g(r):void 0}if(!c.fields.find((e=>"esriFieldTypeOID"===e.type))){const e=c.fields.length+1,t=!!c.fields.find((e=>"objectid"===e.name.toLowerCase()));m=t?`OBJECTID_${e}`:"OBJECTID",c.fields.push({name:m,alias:m,type:"esriFieldTypeOID"})}return c.displayField=o??c.fields.find((e=>!V(e.name,m)&&"esriFieldTypeString"===e.type))?.name??c.fields.find((e=>!V(e.name,m)))?.name??m,c.primaryKeyField=m,c}(e,t),n=await async function(e,t,r){const{data:o,includeHeaderRow:n,outFields:a,escapeFormulaChars:i,locale:s,numberFormat:c,dateFormat:l,timeFormat:m}=e,{spatialReference:u}=r,f=[],y=n?o.slice(1):o,p=(e,r)=>!t.columnIndices||0===t.columnIndices.length||!t.columnIndices.includes(r);return await Promise.all(y.map((async(e,o)=>{const n=new Q;for(let t=0;t<r.fields.length;t++){const u=r.fields[t],f=e.filter(p);if(a.includes("*")||a.filter((e=>V(e,u.name))).length>0){let e=await je(f[t]?.raw,u,{escapeFormulaChars:i,dateFormat:l,numberFormat:c,timeFormat:m,locale:s});"esriFieldTypeOID"===u.type&&null===e&&(e=o),n.attributes.set(u.name,e)}}t.geometries&&(n.geometry=await Te(t.geometries[o],u)),f.push(n)}))),f}(e,t,o);return new ee({features:n,schema:o})}export async function toCsv(e,t){O("featureSet",e).isNotMissing();const r=Array.from(e),o={...{useFormattedValues:!1,alwaysQuote:!1,escapeFormulaChars:!0,delimiter:",",dateFormat:L.ROUND_TRIP,timeFormat:v.ROUND_TRIP,geometryFormat:r.some((e=>void 0!==e.geometry&&null!==e.geometry))?GeometryFormat.WKT:GeometryFormat.NONE,includeByteOrderMark:!0,outSpatialReference:a.WGS84,includeHeaderRow:!0,outFields:Fe(e.source),rowDelimiter:navigator.platform?.startsWith("Win")?ne:"\n"},...t},{includeByteOrderMark:n,includeHeaderRow:i,delimiter:s,outFields:c,rowDelimiter:l}=o,m=[];n&&m.push("\ufeff");const u=we(r,o),f=he(r,c,e.schema,!0),y=he(r,c,e.schema,!1);if(i){const e=[];for(const t of u)e.push(Ne(t,o));for(const t of f)e.push(Ne(t,o));for(const t of y)e.push(Ne(t,o));const t=e.join(s)+l;m.push(t)}await Promise.all(r.map((async e=>{const t=[],r=(t,r)=>{const o=xe(e,t,r),n=e.schema.findFieldByName(t)?.type;return Ne(Oe(o,{...r,isDateOnly:"date-only"===n}),r)};t.push(...await async function(e,t){let r=await Se(e,t);t.geometryFormat!==GeometryFormat.XYZ&&t.geometryFormat!==GeometryFormat.XY&&t.geometryFormat!==GeometryFormat.LAT_LON||(r=r.map((e=>void 0===e?"":Oe(e,t))));return r.map((e=>""===e?"":Ne(e,t)))}(e.geometry,o)),t.push(...f.map((e=>r(e,o)))),t.push(...y.map((e=>r(e,o))));const n=`${t.join(s)}${l}`;m.push(n)})));return new Blob(m,{type:"text/plain",endings:"\n"===l||l===ne?"transparent":"native"})}export async function csvToUploadData(e,t){let r;if(O("csvData",e).isNotMissing(),e instanceof Blob){const t=new Promise(((t,r)=>{const o=new FileReader;o.onload=()=>{t(o.result)},o.onerror=()=>{r(o.error)},o.readAsText(e)}));r=await t}else r=e;const o=pe(t),n=o.rowDelimiter||function(e){let t=ae;return Re(e,ne,((r,o)=>(0===r&&o===e.length||(t=ne),!1))),t}(r),a=o.delimiter??function(e,t,r){const o=",";if(0===e.length)return o;const n=[];if(Re(e,t,((t,r)=>(r!==e.length||t!==r)&&(n.push(e.substring(t,r)),n.length<3))),0===n.length)return o;let a=[{delimiter:",",rowsDelimiterOccurrences:[],rowsNumberAdjacentOccurrences:[]},{delimiter:";",rowsDelimiterOccurrences:[]},{delimiter:"|",rowsDelimiterOccurrences:[]},{delimiter:"\t",rowsDelimiterOccurrences:[]},{delimiter:" ",rowsDelimiterOccurrences:[]}].filter((e=>n[0].includes(e.delimiter)));if(0===a.length)return o;for(const e of n)for(const t of a){let o=0,n=0;Re(e,t.delimiter,((a,i)=>{if(i!==e.length&&o++,","===t.delimiter){const t=e.charAt(i-1),o=e.charAt(i+1);Z(t,r)&&Z(o,r)&&n++}return!0})),t.rowsDelimiterOccurrences.push(o),","===t.delimiter&&t.rowsNumberAdjacentOccurrences.push(n)}if(a=a.filter((e=>e.rowsDelimiterOccurrences.every((t=>e.rowsDelimiterOccurrences[0]===t)))).sort(((e,t)=>t.rowsDelimiterOccurrences[0]-e.rowsDelimiterOccurrences[0])),a.length>1&&","===a[0].delimiter&&null!=r&&r!==h){const e=a[0];if(null!=e&&","===e.delimiter&&","===Intl.NumberFormat(r).formatToParts(1.1).find((e=>"decimal"===e.type))?.value)for(let t=0;t<e.rowsDelimiterOccurrences.length;t++)if(e.rowsDelimiterOccurrences[t]<=e.rowsNumberAdjacentOccurrences[t]){a=a.filter((e=>","!==e.delimiter));break}}if(0===a.length)return o;return a[0].delimiter}(r,n,t.locale),i=function(e,t,r){const o=[],n=(e,t)=>{const o=[];return Re(e,r,((r,n)=>{const a=e.substring(r,n);return o.push({raw:Ee(a,t,o.length)}),!0})),o};if(Re(e,t,((t,r)=>{const a=e.substring(t,r);return a.length>0&&o.push(n(a,o.length)),!0})),o.length){const e=o[0].length;o.forEach(((t,r)=>{if(t.length!==e)throw new Error(`Detected invalid CSV: Row ${r} does not have expected number of columns: ${e}`)}))}return o}(r,n,a);let{geometryFormat:s,geometryFields:c}=t;if(!s){const[e,t]=await Ce(i,o.inSpatialReference,o.includeHeaderRow);s=e,c=t.map((e=>o.includeHeaderRow?i[0][e]?.raw??w("gcx.api.data.convert.import-field-alias",(e+1).toString()):w("gcx.api.data.convert.import-field-alias",(e+1).toString())))}return{data:i,...o,geometryFormat:s,geometryFields:c}}export async function csvToFeatureSet(e,t){const r=pe(t);return uploadDataToFeatureSet(await csvToUploadData(e,r))}export async function toXLSX(e,t){O("featureSet",e).isNotMissing();const r=Array.from(e),o={...{useFormattedValues:!1,includeHeaderRow:!0,escapeFormulaChars:!0,geometryFormat:r.some((e=>void 0!==e.geometry&&null!==e.geometry))?GeometryFormat.WKT:GeometryFormat.NONE,outFields:Fe(e.source),outSpatialReference:a.WGS84,dateFormat:L.DEFAULT,timeFormat:v.DEFAULT,numberFormat:C.DEFAULT,sheetName:"sheet1"},...t},{outFields:n,includeHeaderRow:i,dateFormat:s,timeFormat:c,numberFormat:l}=o,m=we(r,o),u=he(r,n,e.schema,!0),f=he(r,n,e.schema,!1),y=await import("xlsx"),p=y.utils.sheet_new();let d=!1;if(i){const t=m.concat(u).concat(function(e,t){const r=t?.schema?.fieldExtensions.initializedItems.map((e=>e.field));return e.map((e=>r?.find((t=>V(t.name,e)))?.alias??e))}(f,e.source));d=!0,y.utils.sheet_add_aoa(p,[t],{cellDates:!0})}await Promise.all(r.map((async e=>{const t=[],r=new Set,n=new Set;t.push(...await Se(e.geometry,o));for(const r of u){const n=ke(e.attributes.get(r),o);t.push(n)}for(const a of f){const i=xe(e,a,o);if(i instanceof N){const o=e.schema.findFieldByName(a);"time-only"===o?.type&&r.add(t.length)}else if(i instanceof Date){const r=e.schema.findFieldByName(a);"date-only"===r?.type&&n.add(t.length)}const s=ke(i,o);t.push(s)}if(!t.every((e=>"string"!=typeof e||e.length<=32767)))return void me().warn(`toXLSX cell limit exceeded, feature (${e.primaryKey??e.id}) omitted.`);y.utils.sheet_add_aoa(p,[t],{cellDates:!0,origin:d?-1:void 0}),d=!0;const a=y.utils.decode_range(p["!ref"]);for(let e=a.s.c;e<=a.e.c;e++){const t=p[y.utils.encode_cell({r:a.e.r,c:e})];"d"===t.t?r.has(e)?t.z=He(c??v.ROUND_TRIP):n.has(e)?t.z=$e(s??L.ROUND_TRIP):t.z=Ue(s??L.ROUND_TRIP):"n"===t.t&&(t.z=Be(l))}})));const g={SheetNames:[],Sheets:{}};g.SheetNames.push(o.sheetName),g.Sheets[o.sheetName]=p;const w=y.write(g,{type:"binary",bookType:"xlsx",compression:!0,bookSST:!0,cellDates:!0}),h=new Uint8Array(w.length);for(let e=0;e<w.length;e++)h[e]=w.charCodeAt(e);return new Blob([h.buffer],{type:"text/plain"})}export async function xlsxToUploadData(e,t){O("xlsxData",e).isNotMissing();const r=de(t),o=await async function(e,t){const r=await import("xlsx"),o=new Promise(((o,n)=>{const a=new FileReader;a.onload=()=>{const e=new Uint8Array(a.result);let n="";for(const t of e)n+=String.fromCharCode(t);const i=r.read(n,{type:"binary",cellDates:!0}),s=t.sheetName||i.SheetNames[0],c=i.Sheets[s];o(c)},a.onerror=()=>{n(a.error)},a.readAsArrayBuffer(e)})),n=await o,a=r.utils.decode_range(n["!ref"]),i=[];for(let e=a.s.r;e<=a.e.r;e++){const t=[];for(let o=a.s.c;o<=a.e.c;o++){const a=n[`${r.utils.encode_cell({r:e,c:o})}`];a&&"d"===a.t&&a.v instanceof Date&&(a.v=new Date(a.v.getTime()+6e4*a.v.getTimezoneOffset())),t.push(a?{raw:a.v,formatted:"s"===a.t?void 0:a.w}:{raw:""})}i.push(t)}return i}(e,r);let{geometryFormat:n,geometryFields:a}=t;if(!n){const[e,t]=await Ce(o,r.inSpatialReference,r.includeHeaderRow);n=e,a=t.map((e=>r.includeHeaderRow?o[0][e]?.raw.toString()??w("gcx.api.data.convert.import-field-alias",(e+1).toString()):w("gcx.api.data.convert.import-field-alias",(e+1).toString())))}return{data:o,...r,geometryFormat:n,geometryFields:a}}export async function xlsxToFeatureSet(e,t){O("xlsxData",e).isNotMissing();const r=de(t);return uploadDataToFeatureSet(await xlsxToUploadData(e,r))}export function kmlHexToEsriColor(t){return e.fromHex(`#${t.match(/.{2}/g).reverse().join("")}`)}export function parseKMLCoordinates(e){return e.trim().split(/\s+/).map((e=>{const[t,r,o]=e.split(",").map(Number);return{x:t,y:r,z:o}}))}export function parseKMLSymbol(t,r,o){if(t){const r=t.querySelector("IconStyle > Icon > href")?.textContent;if(r)return new u({url:r,width:32,height:32});const o=t.querySelector("PolyStyle");if(o){const t=o.querySelector("color")?.textContent,r=t?kmlHexToEsriColor(t):new e([0,0,0,1]);return new f({color:r,outline:{color:[0,0,0,.5],width:1}})}const n=t.querySelector("LineStyle");if(n){const t=n.querySelector("color")?.textContent,r=t?kmlHexToEsriColor(t):new e([0,0,0,1]),o=parseFloat(n.querySelector("width")?.textContent||"1");return new y({color:r,width:o})}}return getDefaultSymbol(o,"polygon"===r?"polygon":"point"===r?"point":"polyline")}export async function toShapefile(e,t){O("featureSet",e).isNotMissing();const[{default:r},o]=await Promise.all([import("jszip"),import("../forked-libs/shp-write/index.js")]),n=Array.from(e),i={...{useFormattedValues:!1,outFields:Fe(e.source),fileName:e.title||"export"},...t},{outFields:s,outSpatialReference:c,fileName:l}=i,m=e=>e.geometry.hasZ||e.geometry.hasM,u=new Map,f=n.filter((e=>M(e.geometry)));u.set("POINTZ",f.filter(m)),u.set("POINT",f.filter((e=>!m(e))));const y=n.filter((e=>D(e.geometry)));u.set("MULTIPOINTZ",y.filter(m)),u.set("MULTIPOINT",y.filter((e=>!m(e))));const p=n.filter((e=>E(e.geometry)));u.set("POLYLINEZ",p.filter(m)),u.set("POLYLINE",p.filter((e=>!m(e))));const d=n.filter((e=>R(e.geometry)||b(e.geometry)));u.set("POLYGONZ",d.filter(m)),u.set("POLYGON",d.filter((e=>!m(e))));const g=he(n,s,e.schema,!0);let w=he(n,s,e.schema,!1);w=g.concat(w);const h=new r,F=Array.from(u.keys()).filter((e=>u.get(e).length>0));await Promise.all(F.map((async t=>{const r=u.get(t),n=await Promise.all(r.map((e=>Te(e.geometry,c)))),s=await async function(e){const{wkid:t,wkt:r}=e[0].spatialReference;if(!e.every((e=>e.spatialReference.wkid===t&&e.spatialReference.wkt===r)))throw new Error("Cannot create shapefile that contains geometries with different spatial references.");return r??await J(t??a.WGS84.wkid)}(n),m=i.useFormattedValues?Object.assign({},...w.map((e=>({[e]:le.STRING})))):function(e,t,r,o){const n={};for(const a of t){if(e.some((e=>Me(e,a)))){n[a]=le.STRING;continue}const t=r?r.fields.find((e=>V(e.name,a))):void 0;if(t){switch(t.type){case"oid":case"double":case"integer":case"single":case"small-integer":case"big-integer":n[a]=le.NUMBER;break;case"date":case"timestamp-offset":n[a]=o?le.NUMBER:le.DATE;break;default:n[a]=le.STRING}continue}const i=(e,t)=>e.attributes.get(t)??e.presentableAttributes.get(t);e.every((e=>i(e,a)instanceof Date||void 0===i(e,a)))&&e.some((e=>i(e,a)instanceof Date))?n[a]=o?le.NUMBER:le.DATE:e.every((e=>"number"==typeof i(e,a)||void 0===i(e,a)))&&e.some((e=>"number"==typeof i(e,a)))?n[a]=le.NUMBER:e.every((e=>"boolean"==typeof i(e,a)||void 0===i(e,a)))&&e.some((e=>"boolean"==typeof i(e,a)))?n[a]=le.BOOLEAN:n[a]=le.STRING}return n}(r,w,e.schema,"timestamp"===i.dateFormat),f=function(e){return e.map((e=>{if(M(e)){const{x:t,y:r,z:o,m:n}=e,a=[t,r];return e.hasZ&&a.push(o),e.hasM&&a.push(n),ze(a,e)}if(D(e))return Je(e.points,e);if(E(e))return We(e.paths,e);if(R(e))return We(e.rings,e);if(b(e)){const t=[e.xmin,e.ymax];return[[t,[e.xmax,e.ymax],[e.xmax,e.ymin],[e.xmin,e.ymin],t]]}throw new Error("Unsupported geometry type.")}))}(n),y=function(e,t,r,o){const n=[];for(const a of e){const e={};for(const n of t){let t=xe(a,n,o);if(null==t&&(t=""),o.useFormattedValues)t=t.toString();else{t=Xe(t,r[n],{...o,isDateOnly:"date-only"===a.schema.findFieldByName(n)?.type})}e[n.replaceAll(".","_")]=t}n.push(e)}return n}(r,w,m,i);o.write(y,t,f,((e,r)=>{const o=F.length>1?`${l}_${t.toLowerCase()}`:l;h.file(`${o}.shp`,r.shp.buffer,{binary:!0}),h.file(`${o}.shx`,r.shx.buffer,{binary:!0}),h.file(`${o}.dbf`,r.dbf.buffer,{binary:!0}),h.file(`${o}.prj`,s)}))})));const S=await h.generateAsync({type:"uint8array"});return new Blob([S.buffer],{type:"text/plain"})}export async function kmlToLayerExtensions(e){O("blob",e).isNotMissing();const a=await e.text(),m=(new DOMParser).parseFromString(a,"application/xml"),u=function(e,a){const f={};m.querySelectorAll("Style").forEach((e=>{f[`#${e.id}`]=e}));const y=e.querySelector(":scope > name")?.textContent??"Unnamed Container",p=new S({layer:new s({title:y})});e.querySelectorAll(":scope > Placemark").forEach(((e,s)=>{const m=e.querySelector("name")?.textContent??"",u=e.querySelector("description")?.textContent??"",d=function(e){const t=e.querySelector("Point > coordinates"),a=e.querySelector("LineString > coordinates"),i=e.querySelector("Polygon");if(t?.textContent){const[e]=parseKMLCoordinates(t.textContent.replace(/ /g,""));return new r(e)}if(a?.textContent)return new n({paths:[parseKMLCoordinates(a.textContent).map((({x:e,y:t})=>[e,t]))]});if(i?.textContent){const e=i.querySelector("outerBoundaryIs > LinearRing > coordinates");if(e?.textContent){const t=[parseKMLCoordinates(e.textContent).map((({x:e,y:t})=>[e,t]))];return new o({rings:t})}}return}(e);if(d){const r=e.querySelector("styleUrl")?.textContent,o=parseKMLSymbol(r?f[r]:e.querySelector("Style"),d.type,a),n=new i({displayField:"name",title:m,source:[new t({geometry:d,attributes:{name:m,description:u,OBJECTID:y+s}})],renderer:new l({symbol:o}),fields:[new c({name:"OBJECTID",type:"oid",alias:"OBJECTID"}),new c({name:"name",type:"string",alias:"name"})]});u&&n.fields.push(new c({name:"description",type:"string",alias:"description",defaultValue:""}));const g=new F({layer:n});p.layerExtensions.add(g)}}));return e.querySelectorAll(":scope > Folder, :scope > Document").forEach(((e,t)=>{const r=u(e,t);p.layerExtensions.add(r)})),p},f=[];return m.querySelectorAll("kml > Document, kml > Folder").forEach(((e,t)=>{const r=u(e,t);r.layerExtensions.length&&f.push(r)})),f}export async function dxfToLayerExtensions(e,t,r){const{inputSpatialReference:o,outputSpatialReference:n}=t;O("options.dxfBlob",e).isNotMissing(),O("options.inputSpatialReference",o).isNotMissing(),O("options.outputSpatialReference",n).isNotMissing();const a=new te(o,n,r),i=a.getContext(),c=await e.text(),l=new d;await K();try{const e=l.parseSync(c);if(!e)throw new Error("DXF parsing failed: parser returned null");i.dxf=e}catch(e){throw e instanceof Error?e:new Error(String(e))}const m=e instanceof File?e.name:"dxf-layer",u=m.replace(/[^a-zA-Z0-9_.-]/g,"_");if(i.fileName=m,i.sanitizedFileName=u,i.subLayers=await a.processAll(),!i.subLayers||0===i.subLayers.length)return[];const f=new s({id:`dxf-group-${u}-${(new Date).getTime()}`,title:m,visible:!0}),y={layer:f,visibilityMode:"independent"};return f.layers.addMany(i.subLayers),[new S(y)]}export async function shapefileToUploadData(e,t){O("shapefileData",e).isNotMissing();const o=ge(t),n=new Promise(((t,r)=>{const o=new FileReader;o.onload=()=>{t(o.result)},o.onerror=()=>{r(o.error)},o.readAsArrayBuffer(e)})),[{default:i},{default:s}]=await Promise.all([import("jszip"),import("shpjs")]),c=await n,l=await i.loadAsync(new Uint8Array(c)),m=new T;l.forEach(((e,t)=>{t&&m.set(t.name,t)}));const u=l.filter((()=>!0)).map((e=>e.name));let f,y=u.filter((e=>e.endsWith(".shp"))).map((e=>e.substring(0,e.length-4)));if(y=function(e){if(!e.length)return[];let t=e[0];const r=t.match(ce);return r?(t=r[1],e.filter((e=>{const r=e.match(ce);return r&&r[1]===t}))):[t]}(y),u.some((e=>e.endsWith(".prj")))&&!y.every((e=>m.has(`${e}.prj`))))throw new Error("Shapefile zip must contain the same prj file for each separate shapefile");await Promise.all(u.filter((e=>e.endsWith(".prj"))).map((async e=>{const t=await l.file(e).async("string");if(f){if(t!==f)throw new Error("Shapefile zip must contain the same prj file for each separate shapefile")}else f=t})));let p=[],d=[];for(const e of y){if(!m.has(`${e}.shp`)||!m.has(`${e}.shx`)||!m.has(`${e}.dbf`))throw new Error("Shapefile must contain shp, shx, and dbf files.");const t=s.parseShp(await m.get(`${e}.shp`).async("uint8array")),r=s.parseDbf(await m.get(`${e}.dbf`).async("uint8array"));if(r.length!==t.length)throw new Error("Shapefile must contain shp, shx, and dbf files.");p=p.concat(r),d=d.concat(t)}const g=await Promise.all(d.map((e=>async function(e,t){const o=M(e)?function(e){O("geometry.coordinates",e.type).matches("Point"),O("geometry.coordinates",e.coordinates).satisfies((e=>"number"==typeof e||Array.isArray(e)));const[t,o,n]=e.coordinates,i=new r({x:t,y:o,spatialReference:a.WGS84});if(Array.isArray(n)){const[e,t]=n;!e&&!t||e?i.z=e:i.m=t}return i}(e):await Y(e);if(t){let e;try{const r=await W(t);e=new a({wkid:P(r)})}catch{}e||(e=new a({wkt:t})),o.spatialReference=e}return o}(e,f)))),w=geometryTypeHeaders[GeometryFormat.ARCGIS_JSON][0][0];p.forEach(((e,t)=>e[w]=JSON.stringify(g[t].toJSON())));return{data:function(e){const t=e.map((e=>Object.keys(e))).reduce(((e,t)=>e.concat(t.filter((t=>!e.includes(t))))),[]);return[t.map((e=>({raw:e}))),...e.map((e=>t.map((t=>({raw:e[t]})))))]}(p),...o,includeHeaderRow:!0,geometryFormat:GeometryFormat.ARCGIS_JSON,geometryFields:[w],inSpatialReference:g[0]?.spatialReference??a.fromJSON({wkid:4326})}}export async function shapefileToFeatureSet(e,t){O("shapefileData",e).isNotMissing();const r=ge(t);return uploadDataToFeatureSet(await shapefileToUploadData(e,r))}export function getDefaultSymbol(e,t){const r=e%8;let o=["#FFDBFF","#88D6FF","#7F9FC3","#FF8200","#F34A53","#76E3B9","#E7BFFF","#FFC467"][r],n=["#EF3786","#005A99","#2D5070","#790C00","#4C0000","#006543","#6244A9","#904200"][r];if(Math.floor(e/8)%2!=0){const e=o;o=n,n=e}switch(t){case"point":case"multipoint":return new p({color:o,outline:{color:n}});case"polyline":return new y({color:o,width:"2"});case"polygon":return new f({color:o,outline:{color:n}});case"mesh":return new m({symbolLayers:[{type:"fill",material:{color:o},outline:{color:n}}]})}}function ye(e){return{escapeFormulaChars:!0,outFields:["*"],generatePrimaryKey:!1,locale:h,detectOid:!e?.primaryKeyField}}function pe(e){return{...{includeHeaderRow:!0,inSpatialReference:a.WGS84,...ye(e)},...e}}function de(e){return{...{includeHeaderRow:!0,inSpatialReference:a.WGS84,...ye(e)},...e}}function ge(e){return{...{...ye(e)},...e}}function we(e,t){return t.geometryFormat===GeometryFormat.XYZ?["x","y","z"]:t.geometryFormat===GeometryFormat.XY?["x","y"]:t.geometryFormat===GeometryFormat.LAT_LON?["latitude","longitude"]:t.geometryFormat===GeometryFormat.NONE?[]:["geometry"]}function he(e,t,r,o){const n=r.fields.filter((e=>"oid"===e.type)).map((e=>e.name)).toArray();if(o)return n;if(t&&!t.includes("*"))return t.filter((e=>!n.includes(e)));{const t=r.fields.filter((e=>"oid"!==e.type)).map((e=>e.name)).toArray();let o=[];for(const r of e)for(const e of r.attributes.keys())t.includes(e)||n.includes(e)||o.includes(e)||o.push(e);return o=o.sort(),t.concat(o)}}function Fe(e){if(!e)return["*"];const t=e.featureSettings.popupTemplate?.content;return(Array.isArray(t)?t.find((e=>"fields"===e.type))?.fieldInfos?.filter((e=>e.visible))?.map((e=>e.fieldName)):void 0)??e.featureSettings.popupTemplate?.fieldInfos?.filter((e=>e.visible))?.map((e=>e.fieldName))??["*"]}async function Se(e,t){const r=await Te(e,t.outSpatialReference);if(t.geometryFormat===GeometryFormat.XYZ){if(!r)return["","",""];if(!M(r))throw new Error("Cannot use geometry format XYZ with non-point geometry");return[r.x,r.y,r.z]}if(t.geometryFormat===GeometryFormat.XY){if(!r)return["",""];if(!M(r))throw new Error("Cannot use geometry format XY with non-point geometry");return[r.x,r.y]}if(t.geometryFormat===GeometryFormat.LAT_LON){if(!r)return["",""];if(!M(r))throw new Error("Cannot use geometry format LAT_LONG with non-point geometry");return[r.y,r.x]}return t.geometryFormat===GeometryFormat.ARCGIS_JSON?r?[JSON.stringify(r.toJSON())]:[""]:t.geometryFormat===GeometryFormat.WKT?r?[await k(r)]:[""]:t.geometryFormat===GeometryFormat.GEO_JSON?r?[JSON.stringify(await X(r))]:[""]:[]}async function Te(e,t){return e?.spatialReference&&!e.spatialReference.equals(t)&&t?(await B([e],t))[0]:e}function Ne(e,t){const r=[t.delimiter,oe,"\r","\n",t.rowDelimiter];if(t.alwaysQuote||r.some((t=>e.includes(t)))){const t=e.replace(new RegExp(oe,"g"),`${oe}${oe}`);return`${oe}${t}${oe}`}return e}function Oe(e,t){if(null==e)return"";if(!t.useFormattedValues){if("number"==typeof e){const r=t.numberFormat||C.ROUND_TRIP;return j(r,e)}if(e instanceof Date)return"timestamp"===t.dateFormat?e.getTime().toString():G({format:t.dateFormat,timeZone:"UTC",isDateOnly:t.isDateOnly},e);if(e instanceof N)return $({format:t.timeFormat},e)}let r=e.toString();return t.escapeFormulaChars&&(r=De(r)),r}function xe(e,t,r){if(r.useFormattedValues||Me(e,t))return e.presentableAttributes.get(t)??e.attributes.get(t);const o=e.schema.findFieldByName(t)?.type;if(null!=o)switch(o){case"date":case"date-only":case"timestamp-offset":{const r=A(e.attributes.get(t));if(!isNaN(r.getTime()))return r;break}case"time-only":{const r=U(e.attributes.get(t));if(r.isValid)return r;break}}return e.attributes.get(t)??e.presentableAttributes.get(t)}function Me(e,t){return!!V(t,e.schema.typeIdField)||("coded-value"===e.type?.domains?.[t]?.type||"coded-value"===e.schema.findFieldByName(t)?.domain?.type)}function De(e){for(const t of re)if(e.startsWith(t))return`\t${e}`;return e}function Ee(e,t,r){const o=e.startsWith(oe),n=e.endsWith(oe);if(o&&!n||!o&&n)throw new Error(`Detected invalid CSV: Missing opening or closing quote for value at row:${t} column:${r}`);const a=o?e.substring(1,e.length-1):e;let i=-1;return Re(a,oe,((e,o)=>{if(o===a.length)return!0;if(i<0){if(o!==a.length)return i=o,!0}else if(o===i+1)return i=-1,!0;throw new Error(`Detected invalid CSV: Non-escaped quote for value at row:${t} column:${r}`)})),a.replace(new RegExp(`${oe}${oe}`,"g"),oe)}function Re(e,t,r){let o,n=!1,a=0,i=0;for(;o=e.indexOf(t,a),!(o<0);){for(let t=a;t<o;)e.substring(t).startsWith(oe)?(n=!n,t+=1):t++;const s=o+t.length;if(!n){const e=r(i,o);if(i=s,!e)return}a=s}r(i,e.length)}async function be(e,t){const r=JSON.parse(e),o=(await import("@arcgis/core/geometry/support/jsonUtils")).fromJSON(r);return r.spatialReference||(o.spatialReference=t),o}async function Ae(e,t){const r=await Y(JSON.parse(e));return r.spatialReference=t,r}async function Ge(e,t){const r=await z(e);return r.spatialReference=t,r}function _e(e,t,r){const o=r?[r]:geometryTypeHeaders[t];for(const t of o){const r=t.map((t=>e.map((e=>e?.raw?.toString().trim().toLowerCase())).indexOf(t.trim().toLowerCase())));if(r.every((e=>e>=0)))return r}}async function Ie(e,t){return(await Promise.all(e.map((async(e,r)=>{const o=e?.raw;if("string"==typeof o&&""!==o)try{return await t(o,void 0),r}catch{return}})))).find((e=>void 0!==e))}function Le(e,t,r){return"inv"===t?"string"==typeof e?parseFloat(e.replaceAll(",","")):e:P({locale:t,format:r},e)}async function Ce(e,t,r){const o=r?e.slice(1):e;if(r){const r=_e(e[0],GeometryFormat.ARCGIS_JSON);if(void 0!==r)for(const[e,n]of ue){try{await ve(r[0],n,t,o)}catch{continue}return[e,[r[0]]]}const n=[GeometryFormat.XYZ,GeometryFormat.XY,GeometryFormat.LAT_LON];for(const t of n){const r=_e(e[0],t);if(void 0!==r)return[t,r]}}for(const[e,r]of ue){const n=await Ie(o[0],r);if(void 0!==n){try{await ve(n,r,t,o)}catch{continue}return[e,[n]]}}return[GeometryFormat.NONE,[]]}async function ve(e,t,r,o){return{columnIndices:[e],geometries:await Promise.all(o.map((t=>t[e])).map((e=>{if(e?.raw)return t(e.raw.toString(),r)})))}}function Pe(e,t,r){let o=!1,n=!0,a=!0,i=!0,s=!0,c=!0;const l=new Set,{data:m,includeHeaderRow:u,dateFormat:f,timeFormat:y,primaryKeyField:p,locale:d}=e,g=u?m[0]:[],w=u?m.slice(1):m;for(const e of w){const r=e[t];r?.raw&&(l.add(r.raw),o=!0,n&&(n=Z(r.raw,d)||Number.isNaN(r.raw)),a&&(a=r.raw instanceof Date||A(f||_,r.raw)!==I),s&&(s=A(f||ie,r.formatted)!==I),i&&(i=r.raw instanceof N||U(y||H,r.raw).isValid),c&&(c=U({format:y||se,locale:"en"},r.formatted).isValid))}const h=l.size===w.length;return p&&g[t]?.raw===p||r&&o&&h&&n?"esriFieldTypeOID":o&&c?"esriFieldTypeTimeOnly":o&&s?"esriFieldTypeDate":o&&n?"esriFieldTypeDouble":o&&i?"esriFieldTypeTimeOnly":o&&a?"esriFieldTypeDate":"esriFieldTypeString"}async function je(e,t,r){const{escapeFormulaChars:o,locale:n,numberFormat:a,dateFormat:i,timeFormat:s}=r;if("esriFieldTypeDouble"===t.type||"esriFieldTypeOID"===t.type)return"number"==typeof e?e:e?Le(e,n,a):null;if("esriFieldTypeDate"===t.type){if(e instanceof Date)return e.getTime();if("number"==typeof e){const t=(await import("xlsx")).SSF.parse_date_code(e);return t?new Date(t.y,t.m-1,t.d,t.H,t.M,t.S).getTime():void 0}return""===e?null:A({locale:n,format:i},e).getTime()}if("esriFieldTypeTimeOnly"===t.type){if(e instanceof N)return e.toString();if(e instanceof Date)return new N(e).toString();if("number"==typeof e){const t=(await import("xlsx")).SSF.parse_date_code(e);return t?new N(`${t.H.toString().padStart(2,"0")}:${t.M.toString().padStart(2,"0")}:${t.S.toString().padStart(2,"0")}`).toString():void 0}return""===e?null:U({locale:n,format:s},e).toString()}const c=e?.toString()??"";if(o&&c.startsWith("\t"))for(const e of re)if(c.length>1&&c.charAt(1)===e)return c.substring(1);return c}function Ue(e){switch(e){case L.DATE_SHORT:return"dd/MM/yyyy";case L.DATE_LONG:return"MMMM d, yyyy";case L.TIME_SHORT:return"h:mm AM/PM";case L.TIME_LONG:return"h:mm:ss AM/PM";case L.DATE_TIME_SHORT:case L.DEFAULT:return"MMM d yyyy h:mm AM/PM";case L.DATE_TIME_LONG:return"MMMM d yyyy h:mm AM/PM";case L.FULL:return"dddd, MMMM d yyyy h:mm AM/PM";case L.ISO_8601:case L.ROUND_TRIP:return'yyyy-MM-dd"T"HH:mm:ss';default:{const t=e.replace(/tt/g,"AM/PM");return t.includes("z")&&me().warn("Warning: Excel will not recognize timezone format 'z', 'zz', or 'zzz'"),t.includes("h")&&!t.includes("AM/PM")&&me().warn("Warning: Excel will interpret 'h' as 'H' if the format does not have an AM/PM designator"),t}}}function $e(e){switch(e){case L.DATE_SHORT:return"dd/MM/yyyy";case L.DATE_LONG:return"MMMM d, yyyy";case L.DATE_TIME_SHORT:case L.DEFAULT:return"MMM d yyyy";case L.DATE_TIME_LONG:return"MMMM d yyyy";case L.FULL:return"dddd, MMMM d yyyy";case L.ISO_8601:case L.ROUND_TRIP:return"yyyy-MM-dd";default:return e.replace(/TtZzHhmSsUua/g,"")}}function He(e){switch(e){case v.TIME_SHORT:return"h:mm AM/PM";case v.TIME_LONG:return"h:mm:ss AM/PM";case v.ISO_8601:case v.ROUND_TRIP:return"HH:mm:ss";default:{const t=e.replace(/tt/g,"AM/PM");return t.includes("h")&&!t.includes("AM/PM")&&me().warn("Warning: Excel will interpret 'h' as 'H' if the format does not have an AM/PM designator"),t}}}function Be(e){switch(e){case C.ACCOUNTING:return'_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)';case C.CURRENCY:return'"$"#,##0.00';case C.FIXED_POINT:case C.DEFAULT:return"0.0000";case C.NUMBER:return"#,##0.0000";case C.PERCENT:return"0%";case C.ROUND_TRIP:return"0.00000";default:return e}}function ke(e,t){if(null==e)return"";if(!t.useFormattedValues){if("number"==typeof e)return e;if(e instanceof Date)return"timestamp"===t.dateFormat?e.getTime():e;if(e instanceof N)return e.toDate()}let r=e.toString();return t.escapeFormulaChars&&(r=De(r)),r}function ze(e,t){return 3===e.length&&!t.hasZ&&t.hasM?[e[0],e[1],void 0,e[2]]:e}function Je(e,t){return e.map((e=>ze(e,t)))}function We(e,t){return e.map((e=>Je(e,t)))}function Xe(e,t,r){switch(t){case le.NUMBER:return e instanceof Date?e.getTime():P(e);case le.STRING:return e instanceof Date?G({format:r.dateFormat??L.ROUND_TRIP,timeZone:"UTC",isDateOnly:r.isDateOnly},e):e instanceof N?$({format:r.timeFormat??v.ROUND_TRIP},e):"number"==typeof e?j(r.numberFormat??C.DEFAULT,e):e.toString();case le.BOOLEAN:return!!e;case le.DATE:return A(e);default:return e.toString()}}
1
+ import e from"@arcgis/core/Color.js";import t from"@arcgis/core/Graphic.js";import r from"@arcgis/core/geometry/Point";import o from"@arcgis/core/geometry/Polygon.js";import n from"@arcgis/core/geometry/Polyline.js";import a from"@arcgis/core/geometry/SpatialReference";import i from"@arcgis/core/layers/FeatureLayer.js";import s from"@arcgis/core/layers/GroupLayer.js";import l from"@arcgis/core/layers/support/Field.js";import c from"@arcgis/core/renderers/SimpleRenderer.js";import m from"@arcgis/core/renderers/UniqueValueRenderer.js";import u from"@arcgis/core/renderers/support/UniqueValueInfo.js";import f from"@arcgis/core/symbols/MeshSymbol3D.js";import y from"@arcgis/core/symbols/PictureMarkerSymbol.js";import p from"@arcgis/core/symbols/SimpleFillSymbol.js";import d from"@arcgis/core/symbols/SimpleLineSymbol.js";import g from"@arcgis/core/symbols/SimpleMarkerSymbol.js";import w from"dxf-parser";import{geometryTypeToJson as h}from"../json/GeometryJson.js";import{translate as F}from"../locale/language.js";import{INVARIANT as S}from"../locale.js";import{FeatureCollectionLayerExtension as T}from"../mapping/FeatureCollectionLayerExtension.js";import{GroupLayerExtension as N}from"../mapping/GroupLayerExtension.js";import{CaseInsensitiveObservableMap as O}from"../utilities/CaseInsensitiveObservableMap.js";import{Time as D}from"../utilities/Time.js";import{checkArg as b,assertNever as x}from"../utilities/checkArg.js";import{isPoint as M,isMultipoint as E,isPolyline as R,isPolygon as A,isExtent as I}from"../utilities/esri.js";import{parse as G,format as _,DEFAULT_PARSING_FORMATS as C,INVALID_DATE as L}from"../utilities/format/date.js";import{DateFormat as v,NumberFormat as P,TimeFormat as j}from"../utilities/format/formats.js";import{parse as U,format as $}from"../utilities/format/number.js";import{parse as H,format as B,DEFAULT_PARSING_FORMATS as J}from"../utilities/format/time.js";import{project as z,esriToWKT as k,wktToEsri as W,esriWkidToWkt as X,esriWktToWkid as q,esriToGeoJSON as Y,geoJSONToEsri as Z}from"../utilities/geometry.js";import{getLogger as K}from"../utilities/log.js";import{isNumeric as V}from"../utilities/number.js";import{delay as Q}from"../utilities/promise.js";import{caseInsensitiveEquals as ee}from"../utilities/string.js";import{Feature as te}from"./Feature.js";import{FeatureSet as re}from"./FeatureSet.js";import{DxfEntityProcessor as oe}from"./support/_dxfConverters.js";const ne=["=","-","+","@"],ae='"',ie="\r\n",se="\n",le=[...C.map(He),"M/d/yy"],ce=[...J.map(Je).map((e=>e.replace("AM/PM","tt")))],me=/(\w+)_(point|multipoint|polyline|polygon)z?/;var ue;function fe(){return K("geocortex.api.data.convert")}!function(e){e.DATE="D",e.NUMBER="N",e.STRING="C",e.BOOLEAN="L"}(ue||(ue={}));export const FIELD_NAME_REGEX=/[^a-zA-Z\d_]/g;export var GeometryFormat;!function(e){e.NONE="NONE",e.WKT="WKT",e.XY="XY",e.XYZ="XYZ",e.LAT_LON="LAT_LONG",e.GEO_JSON="GEO_JSON",e.ARCGIS_JSON="ARCGIS_JSON"}(GeometryFormat||(GeometryFormat={}));export const geometryTypeHeaders={[GeometryFormat.XYZ]:[["x","y","z"]],[GeometryFormat.XY]:[["x","y"]],[GeometryFormat.LAT_LON]:[["latitude","longitude"],["lat","lon"],["lat","long"]],[GeometryFormat.ARCGIS_JSON]:[["geometry"]],[GeometryFormat.GEO_JSON]:[["geometry"]],[GeometryFormat.WKT]:[["geometry"]]};const ye=[[GeometryFormat.ARCGIS_JSON,Ie],[GeometryFormat.GEO_JSON,Ge],[GeometryFormat.WKT,_e]],pe=new Map(ye);export async function uploadDataToFeatureSet(e){const t=await async function(e){const{data:t,includeHeaderRow:o,geometryFormat:n,geometryFields:a,locale:i,numberFormat:s,inSpatialReference:l}=e,c=o?t.slice(1):t;if(n===GeometryFormat.NONE)return{columnIndices:[]};const m=e=>ve(e,i,s),u=(e,t)=>{const o=t===GeometryFormat.XYZ,n=t===GeometryFormat.LAT_LON;return{columnIndices:e,geometries:c.map((t=>{if(t.length>=Math.max(...e)&&V(t[e[0]]?.raw,i)&&V(t[e[1]]?.raw,i)&&(!o||V(t[e[2]]?.raw,i)))return new r({x:m(n?t[e[1]].raw:t[e[0]].raw),y:m(n?t[e[0]].raw:t[e[1]].raw),z:o?m(t[e[2]].raw):0,spatialReference:l})}))}},f=async(e,t)=>({columnIndices:[e],geometries:await Promise.all(c.map((t=>t[e])).map((e=>{if(e?.raw)return t(e.raw.toString(),l)})))}),y=async(e,t)=>{switch(t){case GeometryFormat.NONE:return{columnIndices:[0]};case GeometryFormat.LAT_LON:case GeometryFormat.XYZ:case GeometryFormat.XY:return u(e,t);case GeometryFormat.ARCGIS_JSON:return f(e[0],Ie);case GeometryFormat.GEO_JSON:return f(e[0],Ge);case GeometryFormat.WKT:return f(e[0],_e);default:return x(t,new Error(`Unknown geometry format "${t}".`))}};if(n){const e=Ce(o?t[0]:t[0].map(((e,t)=>({raw:t.toString()}))),n,o?a:a.map((e=>""+(parseInt(e.match(/\d+/g)[0])-1))));if(o&&void 0===e)throw new Error(`Error parsing file data: Expected geometry columns ${geometryTypeHeaders[n][0].join(",")} are missing for GeometryType.${n}`);return y(e??[0],n)}const[p,d]=await Pe(t,l,o);if(p===GeometryFormat.NONE)return{columnIndices:[]};return d.length>1?u(d,p):f(d[0],pe.get(p))}(e),o=function(e,t){const{data:r,displayField:o,includeHeaderRow:n,inSpatialReference:a,outSpatialReference:i,generatePrimaryKey:s}=e,l={fields:[]},c=e=>!(!t.columnIndices||0===t.columnIndices.length)&&t.columnIndices.includes(e);let{primaryKeyField:m}=e,u=0;for(let t=0;t<r[0].length;t++){if(c(t))continue;const o=Ue(e,t,!s&&!m&&!l.fields.find((e=>"esriFieldTypeOID"===e.type)));let a=r[0][t]?.raw?.toString(),i=a?.replace(FIELD_NAME_REGEX,"_");n&&i||(i="field"+ ++u,a=F("gcx.api.data.convert.import-field-alias",u)),l.fields.push({alias:a,name:i,type:o}),"esriFieldTypeOID"===o&&(m=i)}if(l.spatialReference=i??t.geometries?.[0]?.spatialReference??a,t.geometries?.length){const e=t.geometries.filter((e=>void 0!==e)).map((e=>e.type)),r=e[0];l.geometryType=e.every((e=>e===r))?h(r):void 0}if(!l.fields.find((e=>"esriFieldTypeOID"===e.type))){const e=l.fields.length+1,t=!!l.fields.find((e=>"objectid"===e.name.toLowerCase()));m=t?`OBJECTID_${e}`:"OBJECTID",l.fields.push({name:m,alias:m,type:"esriFieldTypeOID"})}return l.displayField=o??l.fields.find((e=>!ee(e.name,m)&&"esriFieldTypeString"===e.type))?.name??l.fields.find((e=>!ee(e.name,m)))?.name??m,l.primaryKeyField=m,l}(e,t),n=await async function(e,t,r){const{data:o,includeHeaderRow:n,outFields:a,escapeFormulaChars:i,locale:s,numberFormat:l,dateFormat:c,timeFormat:m}=e,{spatialReference:u}=r,f=[],y=n?o.slice(1):o,p=(e,r)=>!t.columnIndices||0===t.columnIndices.length||!t.columnIndices.includes(r);return await Promise.all(y.map((async(e,o)=>{const n=new te;for(let t=0;t<r.fields.length;t++){const u=r.fields[t],f=e.filter(p);if(a.includes("*")||a.filter((e=>ee(e,u.name))).length>0){let e=await $e(f[t]?.raw,u,{escapeFormulaChars:i,dateFormat:c,numberFormat:l,timeFormat:m,locale:s});"esriFieldTypeOID"===u.type&&null===e&&(e=o),n.attributes.set(u.name,e)}}t.geometries&&(n.geometry=await Oe(t.geometries[o],u)),f.push(n)}))),f}(e,t,o);return new re({features:n,schema:o})}export async function toCsv(e,t){b("featureSet",e).isNotMissing();const r=Array.from(e),o={...{useFormattedValues:!1,alwaysQuote:!1,escapeFormulaChars:!0,delimiter:",",dateFormat:v.ROUND_TRIP,timeFormat:j.ROUND_TRIP,geometryFormat:r.some((e=>void 0!==e.geometry&&null!==e.geometry))?GeometryFormat.WKT:GeometryFormat.NONE,includeByteOrderMark:!0,outSpatialReference:a.WGS84,includeHeaderRow:!0,outFields:Te(e.source),rowDelimiter:navigator.platform?.startsWith("Win")?ie:"\n"},...t},{includeByteOrderMark:n,includeHeaderRow:i,delimiter:s,outFields:l,rowDelimiter:c}=o,m=[];n&&m.push("\ufeff");const u=Fe(r,o),f=Se(r,l,e.schema,!0),y=Se(r,l,e.schema,!1);if(i){const e=[];for(const t of u)e.push(De(t,o));for(const t of f)e.push(De(t,o));for(const t of y)e.push(De(t,o));const t=e.join(s)+c;m.push(t)}await Promise.all(r.map((async e=>{const t=[],r=(t,r)=>{const o=xe(e,t,r),n=e.schema.findFieldByName(t)?.type;return De(be(o,{...r,isDateOnly:"date-only"===n}),r)};t.push(...await async function(e,t){let r=await Ne(e,t);t.geometryFormat!==GeometryFormat.XYZ&&t.geometryFormat!==GeometryFormat.XY&&t.geometryFormat!==GeometryFormat.LAT_LON||(r=r.map((e=>void 0===e?"":be(e,t))));return r.map((e=>""===e?"":De(e,t)))}(e.geometry,o)),t.push(...f.map((e=>r(e,o)))),t.push(...y.map((e=>r(e,o))));const n=`${t.join(s)}${c}`;m.push(n)})));return new Blob(m,{type:"text/plain",endings:"\n"===c||c===ie?"transparent":"native"})}export async function csvToUploadData(e,t){let r;if(b("csvData",e).isNotMissing(),e instanceof Blob){const t=new Promise(((t,r)=>{const o=new FileReader;o.onload=()=>{t(o.result)},o.onerror=()=>{r(o.error)},o.readAsText(e)}));r=await t}else r=e;const o=ge(t),n=o.rowDelimiter||function(e){let t=se;return Ae(e,ie,((r,o)=>(0===r&&o===e.length||(t=ie),!1))),t}(r),a=o.delimiter??function(e,t,r){const o=",";if(0===e.length)return o;const n=[];if(Ae(e,t,((t,r)=>(r!==e.length||t!==r)&&(n.push(e.substring(t,r)),n.length<3))),0===n.length)return o;let a=[{delimiter:",",rowsDelimiterOccurrences:[],rowsNumberAdjacentOccurrences:[]},{delimiter:";",rowsDelimiterOccurrences:[]},{delimiter:"|",rowsDelimiterOccurrences:[]},{delimiter:"\t",rowsDelimiterOccurrences:[]},{delimiter:" ",rowsDelimiterOccurrences:[]}].filter((e=>n[0].includes(e.delimiter)));if(0===a.length)return o;for(const e of n)for(const t of a){let o=0,n=0;Ae(e,t.delimiter,((a,i)=>{if(i!==e.length&&o++,","===t.delimiter){const t=e.charAt(i-1),o=e.charAt(i+1);V(t,r)&&V(o,r)&&n++}return!0})),t.rowsDelimiterOccurrences.push(o),","===t.delimiter&&t.rowsNumberAdjacentOccurrences.push(n)}if(a=a.filter((e=>e.rowsDelimiterOccurrences.every((t=>e.rowsDelimiterOccurrences[0]===t)))).sort(((e,t)=>t.rowsDelimiterOccurrences[0]-e.rowsDelimiterOccurrences[0])),a.length>1&&","===a[0].delimiter&&null!=r&&r!==S){const e=a[0];if(null!=e&&","===e.delimiter&&","===Intl.NumberFormat(r).formatToParts(1.1).find((e=>"decimal"===e.type))?.value)for(let t=0;t<e.rowsDelimiterOccurrences.length;t++)if(e.rowsDelimiterOccurrences[t]<=e.rowsNumberAdjacentOccurrences[t]){a=a.filter((e=>","!==e.delimiter));break}}if(0===a.length)return o;return a[0].delimiter}(r,n,t.locale),i=function(e,t,r){const o=[],n=(e,t)=>{const o=[];return Ae(e,r,((r,n)=>{const a=e.substring(r,n);return o.push({raw:Re(a,t,o.length)}),!0})),o};if(Ae(e,t,((t,r)=>{const a=e.substring(t,r);return a.length>0&&o.push(n(a,o.length)),!0})),o.length){const e=o[0].length;o.forEach(((t,r)=>{if(t.length!==e)throw new Error(`Detected invalid CSV: Row ${r} does not have expected number of columns: ${e}`)}))}return o}(r,n,a);let{geometryFormat:s,geometryFields:l}=t;if(!s){const[e,t]=await Pe(i,o.inSpatialReference,o.includeHeaderRow);s=e,l=t.map((e=>o.includeHeaderRow?i[0][e]?.raw??F("gcx.api.data.convert.import-field-alias",(e+1).toString()):F("gcx.api.data.convert.import-field-alias",(e+1).toString())))}return{data:i,...o,geometryFormat:s,geometryFields:l}}export async function csvToFeatureSet(e,t){const r=ge(t);return uploadDataToFeatureSet(await csvToUploadData(e,r))}export async function toXLSX(e,t){b("featureSet",e).isNotMissing();const r=Array.from(e),o={...{useFormattedValues:!1,includeHeaderRow:!0,escapeFormulaChars:!0,geometryFormat:r.some((e=>void 0!==e.geometry&&null!==e.geometry))?GeometryFormat.WKT:GeometryFormat.NONE,outFields:Te(e.source),outSpatialReference:a.WGS84,dateFormat:v.DEFAULT,timeFormat:j.DEFAULT,numberFormat:P.DEFAULT,sheetName:"sheet1"},...t},{outFields:n,includeHeaderRow:i,dateFormat:s,timeFormat:l,numberFormat:c}=o,m=Fe(r,o),u=Se(r,n,e.schema,!0),f=Se(r,n,e.schema,!1),y=await import("xlsx"),p=y.utils.sheet_new();let d=!1;if(i){const t=m.concat(u).concat(function(e,t){const r=t?.schema?.fieldExtensions.initializedItems.map((e=>e.field));return e.map((e=>r?.find((t=>ee(t.name,e)))?.alias??e))}(f,e.source));d=!0,y.utils.sheet_add_aoa(p,[t],{cellDates:!0})}await Promise.all(r.map((async e=>{const t=[],r=new Set,n=new Set;t.push(...await Ne(e.geometry,o));for(const r of u){const n=ke(e.attributes.get(r),o);t.push(n)}for(const a of f){const i=xe(e,a,o);if(i instanceof D){const o=e.schema.findFieldByName(a);"time-only"===o?.type&&r.add(t.length)}else if(i instanceof Date){const r=e.schema.findFieldByName(a);"date-only"===r?.type&&n.add(t.length)}const s=ke(i,o);t.push(s)}if(!t.every((e=>"string"!=typeof e||e.length<=32767)))return void fe().warn(`toXLSX cell limit exceeded, feature (${e.primaryKey??e.id}) omitted.`);y.utils.sheet_add_aoa(p,[t],{cellDates:!0,origin:d?-1:void 0}),d=!0;const a=y.utils.decode_range(p["!ref"]);for(let e=a.s.c;e<=a.e.c;e++){const t=p[y.utils.encode_cell({r:a.e.r,c:e})];"d"===t.t?r.has(e)?t.z=Je(l??j.ROUND_TRIP):n.has(e)?t.z=Be(s??v.ROUND_TRIP):t.z=He(s??v.ROUND_TRIP):"n"===t.t&&(t.z=ze(c))}})));const g={SheetNames:[],Sheets:{}};g.SheetNames.push(o.sheetName),g.Sheets[o.sheetName]=p;const w=y.write(g,{type:"binary",bookType:"xlsx",compression:!0,bookSST:!0,cellDates:!0}),h=new Uint8Array(w.length);for(let e=0;e<w.length;e++)h[e]=w.charCodeAt(e);return new Blob([h.buffer],{type:"text/plain"})}export async function xlsxToUploadData(e,t){b("xlsxData",e).isNotMissing();const r=we(t),o=await async function(e,t){const r=await import("xlsx"),o=new Promise(((o,n)=>{const a=new FileReader;a.onload=()=>{const e=new Uint8Array(a.result);let n="";for(const t of e)n+=String.fromCharCode(t);const i=r.read(n,{type:"binary",cellDates:!0}),s=t.sheetName||i.SheetNames[0],l=i.Sheets[s];o(l)},a.onerror=()=>{n(a.error)},a.readAsArrayBuffer(e)})),n=await o,a=r.utils.decode_range(n["!ref"]),i=[];for(let e=a.s.r;e<=a.e.r;e++){const t=[];for(let o=a.s.c;o<=a.e.c;o++){const a=n[`${r.utils.encode_cell({r:e,c:o})}`];a&&"d"===a.t&&a.v instanceof Date&&(a.v=new Date(a.v.getTime()+6e4*a.v.getTimezoneOffset())),t.push(a?{raw:a.v,formatted:"s"===a.t?void 0:a.w}:{raw:""})}i.push(t)}return i}(e,r);let{geometryFormat:n,geometryFields:a}=t;if(!n){const[e,t]=await Pe(o,r.inSpatialReference,r.includeHeaderRow);n=e,a=t.map((e=>r.includeHeaderRow?o[0][e]?.raw.toString()??F("gcx.api.data.convert.import-field-alias",(e+1).toString()):F("gcx.api.data.convert.import-field-alias",(e+1).toString())))}return{data:o,...r,geometryFormat:n,geometryFields:a}}export async function xlsxToFeatureSet(e,t){b("xlsxData",e).isNotMissing();const r=we(t);return uploadDataToFeatureSet(await xlsxToUploadData(e,r))}export function kmlHexToEsriColor(t){return e.fromHex(`#${t.match(/.{2}/g).reverse().join("")}`)}export function parseKMLCoordinates(e){return e.trim().split(/\s+/).map((e=>{const[t,r,o]=e.split(",").map(Number);return{x:t,y:r,z:o}}))}export function parseKMLSymbol(t,r,o){if(t){const r=t.querySelector("IconStyle > Icon > href")?.textContent;if(r)return new y({url:r,width:32,height:32});const o=t.querySelector("PolyStyle");if(o){const t=o.querySelector("color")?.textContent,r=t?kmlHexToEsriColor(t):new e([0,0,0,1]);return new p({color:r,outline:{color:[0,0,0,.5],width:1}})}const n=t.querySelector("LineStyle");if(n){const t=n.querySelector("color")?.textContent,r=t?kmlHexToEsriColor(t):new e([0,0,0,1]),o=parseFloat(n.querySelector("width")?.textContent||"1");return new d({color:r,width:o})}}return getDefaultSymbol(o,"polygon"===r?"polygon":"point"===r?"point":"polyline")}export async function toShapefile(e,t){b("featureSet",e).isNotMissing();const[{default:r},o]=await Promise.all([import("jszip"),import("../forked-libs/shp-write/index.js")]),n=Array.from(e),i={...{useFormattedValues:!1,outFields:Te(e.source),fileName:e.title||"export"},...t},{outFields:s,outSpatialReference:l,fileName:c}=i,m=e=>e.geometry.hasZ||e.geometry.hasM,u=new Map,f=n.filter((e=>M(e.geometry)));u.set("POINTZ",f.filter(m)),u.set("POINT",f.filter((e=>!m(e))));const y=n.filter((e=>E(e.geometry)));u.set("MULTIPOINTZ",y.filter(m)),u.set("MULTIPOINT",y.filter((e=>!m(e))));const p=n.filter((e=>R(e.geometry)));u.set("POLYLINEZ",p.filter(m)),u.set("POLYLINE",p.filter((e=>!m(e))));const d=n.filter((e=>A(e.geometry)||I(e.geometry)));u.set("POLYGONZ",d.filter(m)),u.set("POLYGON",d.filter((e=>!m(e))));const g=Se(n,s,e.schema,!0);let w=Se(n,s,e.schema,!1);w=g.concat(w);const h=new r,F=Array.from(u.keys()).filter((e=>u.get(e).length>0));await Promise.all(F.map((async t=>{const r=u.get(t),n=await Promise.all(r.map((e=>Oe(e.geometry,l)))),s=await async function(e){const{wkid:t,wkt:r}=e[0].spatialReference;if(!e.every((e=>e.spatialReference.wkid===t&&e.spatialReference.wkt===r)))throw new Error("Cannot create shapefile that contains geometries with different spatial references.");return r??await X(t??a.WGS84.wkid)}(n),m=i.useFormattedValues?Object.assign({},...w.map((e=>({[e]:ue.STRING})))):function(e,t,r,o){const n={};for(const a of t){if(e.some((e=>Me(e,a)))){n[a]=ue.STRING;continue}const t=r?r.fields.find((e=>ee(e.name,a))):void 0;if(t){switch(t.type){case"oid":case"double":case"integer":case"single":case"small-integer":case"big-integer":n[a]=ue.NUMBER;break;case"date":case"timestamp-offset":n[a]=o?ue.NUMBER:ue.DATE;break;default:n[a]=ue.STRING}continue}const i=(e,t)=>e.attributes.get(t)??e.presentableAttributes.get(t);e.every((e=>i(e,a)instanceof Date||void 0===i(e,a)))&&e.some((e=>i(e,a)instanceof Date))?n[a]=o?ue.NUMBER:ue.DATE:e.every((e=>"number"==typeof i(e,a)||void 0===i(e,a)))&&e.some((e=>"number"==typeof i(e,a)))?n[a]=ue.NUMBER:e.every((e=>"boolean"==typeof i(e,a)||void 0===i(e,a)))&&e.some((e=>"boolean"==typeof i(e,a)))?n[a]=ue.BOOLEAN:n[a]=ue.STRING}return n}(r,w,e.schema,"timestamp"===i.dateFormat),f=function(e){return e.map((e=>{if(M(e)){const{x:t,y:r,z:o,m:n}=e,a=[t,r];return e.hasZ&&a.push(o),e.hasM&&a.push(n),We(a,e)}if(E(e))return Xe(e.points,e);if(R(e))return qe(e.paths,e);if(A(e))return qe(e.rings,e);if(I(e)){const t=[e.xmin,e.ymax];return[[t,[e.xmax,e.ymax],[e.xmax,e.ymin],[e.xmin,e.ymin],t]]}throw new Error("Unsupported geometry type.")}))}(n),y=function(e,t,r,o){const n=[];for(const a of e){const e={};for(const n of t){let t=xe(a,n,o);if(null==t&&(t=""),o.useFormattedValues)t=t.toString();else{t=Ye(t,r[n],{...o,isDateOnly:"date-only"===a.schema.findFieldByName(n)?.type})}e[n.replaceAll(".","_")]=t}n.push(e)}return n}(r,w,m,i);o.write(y,t,f,((e,r)=>{const o=F.length>1?`${c}_${t.toLowerCase()}`:c;h.file(`${o}.shp`,r.shp.buffer,{binary:!0}),h.file(`${o}.shx`,r.shx.buffer,{binary:!0}),h.file(`${o}.dbf`,r.dbf.buffer,{binary:!0}),h.file(`${o}.prj`,s)}))})));const S=await h.generateAsync({type:"uint8array"});return new Blob([S.buffer],{type:"text/plain"})}export async function kmlToLayerExtensions(e){b("blob",e).isNotMissing();const a=await e.text(),c=(new DOMParser).parseFromString(a,"application/xml"),m=function(e,a,u=!1){const f={};c.querySelectorAll("Style").forEach((e=>{f[`#${e.id}`]=e}));const y=e.querySelector(":scope > name")?.textContent??"Unnamed Container",p=new Map;e.querySelectorAll(":scope > Placemark").forEach(((e,i)=>{const s=e.querySelector("name")?.textContent??"",l=e.querySelector("description")?.textContent??"",c=function(e){const t=e.querySelector("Point > coordinates"),a=e.querySelector("LineString > coordinates"),i=e.querySelector("Polygon");if(t?.textContent){const[e]=parseKMLCoordinates(t.textContent.replace(/ /g,""));return new r(e)}if(a?.textContent)return new n({paths:[parseKMLCoordinates(a.textContent).map((({x:e,y:t})=>[e,t]))]});if(i?.textContent){const e=i.querySelector("outerBoundaryIs > LinearRing > coordinates");if(e?.textContent){const t=[parseKMLCoordinates(e.textContent).map((({x:e,y:t})=>[e,t]))];return new o({rings:t})}}return}(e);if(c?.type){const r=e.querySelector("styleUrl")?.textContent,o=parseKMLSymbol(r?f[r]:e.querySelector("Style"),c.type,a);p.has(c.type)||p.set(c.type,{graphics:[],symbols:[]});let n=function(e,t){for(let r=0;r<e.length;r++)if(Ze(e[r],t))return r;return-1}(p.get(c.type).symbols,o);-1===n&&(p.get(c.type).symbols.push(o),n=p.get(c.type).symbols.length-1),p.get(c.type).graphics.push(new t({geometry:c,attributes:{name:s,description:l,SymbolID:n,OBJECTID:y+i}}))}}));const d=e.querySelectorAll(":scope > Folder, :scope > Document");if(u||1!==p.size||0!==d.length){const e=new N({layer:new s({title:y})});return p.forEach(((t,r)=>{const o=new i({displayField:"name",title:`${r.slice(0,1).toUpperCase()+r.slice(1)}s`,source:t.graphics,renderer:Ke(t.symbols),fields:[new l({name:"OBJECTID",type:"oid",alias:"OBJECTID"}),new l({name:"SymbolID",type:"integer",alias:"SymbolID",editable:!1}),new l({name:"name",type:"string",alias:"name"}),new l({name:"description",type:"string",alias:"description",defaultValue:""})]}),n=new T({layer:o});e.layerExtensions.add(n)})),d.forEach(((t,r)=>{const o=m(t,r);e.layerExtensions.add(o)})),e}{const e=[...p.values()][0],t=new i({displayField:"name",title:y,source:e.graphics,renderer:Ke(e.symbols),fields:[new l({name:"OBJECTID",type:"oid",alias:"OBJECTID"}),new l({name:"SymbolID",type:"integer",alias:"SymbolID",editable:!1}),new l({name:"name",type:"string",alias:"name"}),new l({name:"description",type:"string",alias:"description",defaultValue:""})]});return new T({layer:t})}},u=[];return c.querySelectorAll("kml > Document, kml > Folder").forEach(((e,t)=>{const r=m(e,t,!0);r.layerExtensions.length&&u.push(r)})),u}export async function dxfToLayerExtensions(e,t,r){const{inputSpatialReference:o,outputSpatialReference:n}=t;b("options.dxfBlob",e).isNotMissing(),b("options.inputSpatialReference",o).isNotMissing(),b("options.outputSpatialReference",n).isNotMissing();const a=new oe(o,n,r),i=a.getContext(),l=await e.text(),c=new w;await Q();try{const e=c.parseSync(l);if(!e)throw new Error("DXF parsing failed: parser returned null");i.dxf=e}catch(e){throw e instanceof Error?e:new Error(String(e))}const m=e instanceof File?e.name:"dxf-layer",u=m.replace(/[^a-zA-Z0-9_.-]/g,"_");if(i.fileName=m,i.sanitizedFileName=u,i.subLayers=await a.processAll(),!i.subLayers||0===i.subLayers.length)return[];const f=new s({id:`dxf-group-${u}-${(new Date).getTime()}`,title:m,visible:!0}),y={layer:f,visibilityMode:"independent"};return f.layers.addMany(i.subLayers),[new N(y)]}export async function shapefileToUploadData(e,t){b("shapefileData",e).isNotMissing();const o=he(t),n=new Promise(((t,r)=>{const o=new FileReader;o.onload=()=>{t(o.result)},o.onerror=()=>{r(o.error)},o.readAsArrayBuffer(e)})),[{default:i},{default:s}]=await Promise.all([import("jszip"),import("shpjs")]),l=await n,c=await i.loadAsync(new Uint8Array(l)),m=new O;c.forEach(((e,t)=>{t&&m.set(t.name,t)}));const u=c.filter((()=>!0)).map((e=>e.name));let f,y=u.filter((e=>e.endsWith(".shp"))).map((e=>e.substring(0,e.length-4)));if(y=function(e){if(!e.length)return[];let t=e[0];const r=t.match(me);return r?(t=r[1],e.filter((e=>{const r=e.match(me);return r&&r[1]===t}))):[t]}(y),u.some((e=>e.endsWith(".prj")))&&!y.every((e=>m.has(`${e}.prj`))))throw new Error("Shapefile zip must contain the same prj file for each separate shapefile");await Promise.all(u.filter((e=>e.endsWith(".prj"))).map((async e=>{const t=await c.file(e).async("string");if(f){if(t!==f)throw new Error("Shapefile zip must contain the same prj file for each separate shapefile")}else f=t})));let p=[],d=[];for(const e of y){if(!m.has(`${e}.shp`)||!m.has(`${e}.shx`)||!m.has(`${e}.dbf`))throw new Error("Shapefile must contain shp, shx, and dbf files.");const t=s.parseShp(await m.get(`${e}.shp`).async("uint8array")),r=s.parseDbf(await m.get(`${e}.dbf`).async("uint8array"));if(r.length!==t.length)throw new Error("Shapefile must contain shp, shx, and dbf files.");p=p.concat(r),d=d.concat(t)}const g=await Promise.all(d.map((e=>async function(e,t){const o=M(e)?function(e){b("geometry.coordinates",e.type).matches("Point"),b("geometry.coordinates",e.coordinates).satisfies((e=>"number"==typeof e||Array.isArray(e)));const[t,o,n]=e.coordinates,i=new r({x:t,y:o,spatialReference:a.WGS84});if(Array.isArray(n)){const[e,t]=n;!e&&!t||e?i.z=e:i.m=t}return i}(e):await Z(e);if(t){let e;try{const r=await q(t);e=new a({wkid:U(r)})}catch{}e||(e=new a({wkt:t})),o.spatialReference=e}return o}(e,f)))),w=geometryTypeHeaders[GeometryFormat.ARCGIS_JSON][0][0];p.forEach(((e,t)=>e[w]=JSON.stringify(g[t].toJSON())));return{data:function(e){const t=e.map((e=>Object.keys(e))).reduce(((e,t)=>e.concat(t.filter((t=>!e.includes(t))))),[]);return[t.map((e=>({raw:e}))),...e.map((e=>t.map((t=>({raw:e[t]})))))]}(p),...o,includeHeaderRow:!0,geometryFormat:GeometryFormat.ARCGIS_JSON,geometryFields:[w],inSpatialReference:g[0]?.spatialReference??a.fromJSON({wkid:4326})}}export async function shapefileToFeatureSet(e,t){b("shapefileData",e).isNotMissing();const r=he(t);return uploadDataToFeatureSet(await shapefileToUploadData(e,r))}export function getDefaultSymbol(e,t){const r=e%8;let o=["#FFDBFF","#88D6FF","#7F9FC3","#FF8200","#F34A53","#76E3B9","#E7BFFF","#FFC467"][r],n=["#EF3786","#005A99","#2D5070","#790C00","#4C0000","#006543","#6244A9","#904200"][r];if(Math.floor(e/8)%2!=0){const e=o;o=n,n=e}switch(t){case"point":case"multipoint":return new g({color:o,outline:{color:n}});case"polyline":return new d({color:o,width:"2"});case"polygon":return new p({color:o,outline:{color:n}});case"mesh":return new f({symbolLayers:[{type:"fill",material:{color:o},outline:{color:n}}]})}}function de(e){return{escapeFormulaChars:!0,outFields:["*"],generatePrimaryKey:!1,locale:S,detectOid:!e?.primaryKeyField}}function ge(e){return{...{includeHeaderRow:!0,inSpatialReference:a.WGS84,...de(e)},...e}}function we(e){return{...{includeHeaderRow:!0,inSpatialReference:a.WGS84,...de(e)},...e}}function he(e){return{...{...de(e)},...e}}function Fe(e,t){return t.geometryFormat===GeometryFormat.XYZ?["x","y","z"]:t.geometryFormat===GeometryFormat.XY?["x","y"]:t.geometryFormat===GeometryFormat.LAT_LON?["latitude","longitude"]:t.geometryFormat===GeometryFormat.NONE?[]:["geometry"]}function Se(e,t,r,o){const n=r.fields.filter((e=>"oid"===e.type)).map((e=>e.name)).toArray();if(o)return n;if(t&&!t.includes("*"))return t.filter((e=>!n.includes(e)));{const t=r.fields.filter((e=>"oid"!==e.type)).map((e=>e.name)).toArray();let o=[];for(const r of e)for(const e of r.attributes.keys())t.includes(e)||n.includes(e)||o.includes(e)||o.push(e);return o=o.sort(),t.concat(o)}}function Te(e){if(!e)return["*"];const t=e.featureSettings.popupTemplate?.content;return(Array.isArray(t)?t.find((e=>"fields"===e.type))?.fieldInfos?.filter((e=>e.visible))?.map((e=>e.fieldName)):void 0)??e.featureSettings.popupTemplate?.fieldInfos?.filter((e=>e.visible))?.map((e=>e.fieldName))??["*"]}async function Ne(e,t){const r=await Oe(e,t.outSpatialReference);if(t.geometryFormat===GeometryFormat.XYZ){if(!r)return["","",""];if(!M(r))throw new Error("Cannot use geometry format XYZ with non-point geometry");return[r.x,r.y,r.z]}if(t.geometryFormat===GeometryFormat.XY){if(!r)return["",""];if(!M(r))throw new Error("Cannot use geometry format XY with non-point geometry");return[r.x,r.y]}if(t.geometryFormat===GeometryFormat.LAT_LON){if(!r)return["",""];if(!M(r))throw new Error("Cannot use geometry format LAT_LONG with non-point geometry");return[r.y,r.x]}return t.geometryFormat===GeometryFormat.ARCGIS_JSON?r?[JSON.stringify(r.toJSON())]:[""]:t.geometryFormat===GeometryFormat.WKT?r?[await k(r)]:[""]:t.geometryFormat===GeometryFormat.GEO_JSON?r?[JSON.stringify(await Y(r))]:[""]:[]}async function Oe(e,t){return e?.spatialReference&&!e.spatialReference.equals(t)&&t?(await z([e],t))[0]:e}function De(e,t){const r=[t.delimiter,ae,"\r","\n",t.rowDelimiter];if(t.alwaysQuote||r.some((t=>e.includes(t)))){const t=e.replace(new RegExp(ae,"g"),`${ae}${ae}`);return`${ae}${t}${ae}`}return e}function be(e,t){if(null==e)return"";if(!t.useFormattedValues){if("number"==typeof e){const r=t.numberFormat||P.ROUND_TRIP;return $(r,e)}if(e instanceof Date)return"timestamp"===t.dateFormat?e.getTime().toString():_({format:t.dateFormat,timeZone:"UTC",isDateOnly:t.isDateOnly},e);if(e instanceof D)return B({format:t.timeFormat},e)}let r=e.toString();return t.escapeFormulaChars&&(r=Ee(r)),r}function xe(e,t,r){if(r.useFormattedValues||Me(e,t))return e.presentableAttributes.get(t)??e.attributes.get(t);const o=e.schema.findFieldByName(t)?.type;if(null!=o)switch(o){case"date":case"date-only":case"timestamp-offset":{const r=G(e.attributes.get(t));if(!isNaN(r.getTime()))return r;break}case"time-only":{const r=H(e.attributes.get(t));if(r.isValid)return r;break}}return e.attributes.get(t)??e.presentableAttributes.get(t)}function Me(e,t){return!!ee(t,e.schema.typeIdField)||("coded-value"===e.type?.domains?.[t]?.type||"coded-value"===e.schema.findFieldByName(t)?.domain?.type)}function Ee(e){for(const t of ne)if(e.startsWith(t))return`\t${e}`;return e}function Re(e,t,r){const o=e.startsWith(ae),n=e.endsWith(ae);if(o&&!n||!o&&n)throw new Error(`Detected invalid CSV: Missing opening or closing quote for value at row:${t} column:${r}`);const a=o?e.substring(1,e.length-1):e;let i=-1;return Ae(a,ae,((e,o)=>{if(o===a.length)return!0;if(i<0){if(o!==a.length)return i=o,!0}else if(o===i+1)return i=-1,!0;throw new Error(`Detected invalid CSV: Non-escaped quote for value at row:${t} column:${r}`)})),a.replace(new RegExp(`${ae}${ae}`,"g"),ae)}function Ae(e,t,r){let o,n=!1,a=0,i=0;for(;o=e.indexOf(t,a),!(o<0);){for(let t=a;t<o;)e.substring(t).startsWith(ae)?(n=!n,t+=1):t++;const s=o+t.length;if(!n){const e=r(i,o);if(i=s,!e)return}a=s}r(i,e.length)}async function Ie(e,t){const r=JSON.parse(e),o=(await import("@arcgis/core/geometry/support/jsonUtils")).fromJSON(r);return r.spatialReference||(o.spatialReference=t),o}async function Ge(e,t){const r=await Z(JSON.parse(e));return r.spatialReference=t,r}async function _e(e,t){const r=await W(e);return r.spatialReference=t,r}function Ce(e,t,r){const o=r?[r]:geometryTypeHeaders[t];for(const t of o){const r=t.map((t=>e.map((e=>e?.raw?.toString().trim().toLowerCase())).indexOf(t.trim().toLowerCase())));if(r.every((e=>e>=0)))return r}}async function Le(e,t){return(await Promise.all(e.map((async(e,r)=>{const o=e?.raw;if("string"==typeof o&&""!==o)try{return await t(o,void 0),r}catch{return}})))).find((e=>void 0!==e))}function ve(e,t,r){return"inv"===t?"string"==typeof e?parseFloat(e.replaceAll(",","")):e:U({locale:t,format:r},e)}async function Pe(e,t,r){const o=r?e.slice(1):e;if(r){const r=Ce(e[0],GeometryFormat.ARCGIS_JSON);if(void 0!==r)for(const[e,n]of ye){try{await je(r[0],n,t,o)}catch{continue}return[e,[r[0]]]}const n=[GeometryFormat.XYZ,GeometryFormat.XY,GeometryFormat.LAT_LON];for(const t of n){const r=Ce(e[0],t);if(void 0!==r)return[t,r]}}for(const[e,r]of ye){const n=await Le(o[0],r);if(void 0!==n){try{await je(n,r,t,o)}catch{continue}return[e,[n]]}}return[GeometryFormat.NONE,[]]}async function je(e,t,r,o){return{columnIndices:[e],geometries:await Promise.all(o.map((t=>t[e])).map((e=>{if(e?.raw)return t(e.raw.toString(),r)})))}}function Ue(e,t,r){let o=!1,n=!0,a=!0,i=!0,s=!0,l=!0;const c=new Set,{data:m,includeHeaderRow:u,dateFormat:f,timeFormat:y,primaryKeyField:p,locale:d}=e,g=u?m[0]:[],w=u?m.slice(1):m;for(const e of w){const r=e[t];r?.raw&&(c.add(r.raw),o=!0,n&&(n=V(r.raw,d)||Number.isNaN(r.raw)),a&&(a=r.raw instanceof Date||G(f||C,r.raw)!==L),s&&(s=G(f||le,r.formatted)!==L),i&&(i=r.raw instanceof D||H(y||J,r.raw).isValid),l&&(l=H({format:y||ce,locale:"en"},r.formatted).isValid))}const h=c.size===w.length;return p&&g[t]?.raw===p||r&&o&&h&&n?"esriFieldTypeOID":o&&l?"esriFieldTypeTimeOnly":o&&s?"esriFieldTypeDate":o&&n?"esriFieldTypeDouble":o&&i?"esriFieldTypeTimeOnly":o&&a?"esriFieldTypeDate":"esriFieldTypeString"}async function $e(e,t,r){const{escapeFormulaChars:o,locale:n,numberFormat:a,dateFormat:i,timeFormat:s}=r;if("esriFieldTypeDouble"===t.type||"esriFieldTypeOID"===t.type)return"number"==typeof e?e:e?ve(e,n,a):null;if("esriFieldTypeDate"===t.type){if(e instanceof Date)return e.getTime();if("number"==typeof e){const t=(await import("xlsx")).SSF.parse_date_code(e);return t?new Date(t.y,t.m-1,t.d,t.H,t.M,t.S).getTime():void 0}return""===e?null:G({locale:n,format:i},e).getTime()}if("esriFieldTypeTimeOnly"===t.type){if(e instanceof D)return e.toString();if(e instanceof Date)return new D(e).toString();if("number"==typeof e){const t=(await import("xlsx")).SSF.parse_date_code(e);return t?new D(`${t.H.toString().padStart(2,"0")}:${t.M.toString().padStart(2,"0")}:${t.S.toString().padStart(2,"0")}`).toString():void 0}return""===e?null:H({locale:n,format:s},e).toString()}const l=e?.toString()??"";if(o&&l.startsWith("\t"))for(const e of ne)if(l.length>1&&l.charAt(1)===e)return l.substring(1);return l}function He(e){switch(e){case v.DATE_SHORT:return"dd/MM/yyyy";case v.DATE_LONG:return"MMMM d, yyyy";case v.TIME_SHORT:return"h:mm AM/PM";case v.TIME_LONG:return"h:mm:ss AM/PM";case v.DATE_TIME_SHORT:case v.DEFAULT:return"MMM d yyyy h:mm AM/PM";case v.DATE_TIME_LONG:return"MMMM d yyyy h:mm AM/PM";case v.FULL:return"dddd, MMMM d yyyy h:mm AM/PM";case v.ISO_8601:case v.ROUND_TRIP:return'yyyy-MM-dd"T"HH:mm:ss';default:{const t=e.replace(/tt/g,"AM/PM");return t.includes("z")&&fe().warn("Warning: Excel will not recognize timezone format 'z', 'zz', or 'zzz'"),t.includes("h")&&!t.includes("AM/PM")&&fe().warn("Warning: Excel will interpret 'h' as 'H' if the format does not have an AM/PM designator"),t}}}function Be(e){switch(e){case v.DATE_SHORT:return"dd/MM/yyyy";case v.DATE_LONG:return"MMMM d, yyyy";case v.DATE_TIME_SHORT:case v.DEFAULT:return"MMM d yyyy";case v.DATE_TIME_LONG:return"MMMM d yyyy";case v.FULL:return"dddd, MMMM d yyyy";case v.ISO_8601:case v.ROUND_TRIP:return"yyyy-MM-dd";default:return e.replace(/TtZzHhmSsUua/g,"")}}function Je(e){switch(e){case j.TIME_SHORT:return"h:mm AM/PM";case j.TIME_LONG:return"h:mm:ss AM/PM";case j.ISO_8601:case j.ROUND_TRIP:return"HH:mm:ss";default:{const t=e.replace(/tt/g,"AM/PM");return t.includes("h")&&!t.includes("AM/PM")&&fe().warn("Warning: Excel will interpret 'h' as 'H' if the format does not have an AM/PM designator"),t}}}function ze(e){switch(e){case P.ACCOUNTING:return'_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)';case P.CURRENCY:return'"$"#,##0.00';case P.FIXED_POINT:case P.DEFAULT:return"0.0000";case P.NUMBER:return"#,##0.0000";case P.PERCENT:return"0%";case P.ROUND_TRIP:return"0.00000";default:return e}}function ke(e,t){if(null==e)return"";if(!t.useFormattedValues){if("number"==typeof e)return e;if(e instanceof Date)return"timestamp"===t.dateFormat?e.getTime():e;if(e instanceof D)return e.toDate()}let r=e.toString();return t.escapeFormulaChars&&(r=Ee(r)),r}function We(e,t){return 3===e.length&&!t.hasZ&&t.hasM?[e[0],e[1],void 0,e[2]]:e}function Xe(e,t){return e.map((e=>We(e,t)))}function qe(e,t){return e.map((e=>Xe(e,t)))}function Ye(e,t,r){switch(t){case ue.NUMBER:return e instanceof Date?e.getTime():U(e);case ue.STRING:return e instanceof Date?_({format:r.dateFormat??v.ROUND_TRIP,timeZone:"UTC",isDateOnly:r.isDateOnly},e):e instanceof D?B({format:r.timeFormat??j.ROUND_TRIP},e):"number"==typeof e?$(r.numberFormat??P.DEFAULT,e):e.toString();case ue.BOOLEAN:return!!e;case ue.DATE:return G(e);default:return e.toString()}}function Ze(e,t){return JSON.stringify(e.toJSON())===JSON.stringify(t.toJSON())}function Ke(e){return 1===e.length?new c({symbol:e[0]}):new m({field:"SymbolID",uniqueValueInfos:[...e.map(((e,t)=>new u({label:t.toString(),symbol:e,value:t})))]})}
@@ -1,3 +1,4 @@
1
+ import Graphic from "@arcgis/core/Graphic";
1
2
  import Point from "@arcgis/core/geometry/Point";
2
3
  import type SpatialReference from "@arcgis/core/geometry/SpatialReference";
3
4
  import type FeatureLayer from "@arcgis/core/layers/FeatureLayer.js";
@@ -231,7 +232,7 @@ export declare class DxfToGeoJsonTextMapper {
231
232
  * GraphicsLayer for map annotation visualization.
232
233
  */
233
234
  AnnotationToGeoJSON(): void;
234
- getMaximumFontSize(graphics: (__esri.Graphic | undefined)[]): number;
235
+ getMaximumFontSize(graphics: (Graphic | undefined)[]): number;
235
236
  /**
236
237
  * Creates a graphic representation for a DXF text-based feature.
237
238
  *
@@ -1,3 +1,4 @@
1
+ import type Extent from "@arcgis/core/geometry/Extent";
1
2
  import type SimpleFillSymbol from "@arcgis/core/symbols/SimpleFillSymbol";
2
3
  import type { ILineType } from "dxf-parser";
3
4
  /**
@@ -79,7 +80,7 @@ export declare function normalizeLineOutline(outline?: {
79
80
  * @param maxFontSize The maximum font size used in the annotations.
80
81
  * @returns The calculated minimum scale.
81
82
  */
82
- export declare function deriveAnnotationMinScale(extent: __esri.Extent | undefined, textCount: number, maxFontSize: number): number;
83
+ export declare function deriveAnnotationMinScale(extent: Extent | undefined, textCount: number, maxFontSize: number): number;
83
84
  /**
84
85
  * Sanitizes the symbol width.
85
86
  *
@@ -1,19 +1,5 @@
1
- declare module "@arcgis/core/core/accessorSupport/tracking" {
2
- export function trackAccess(accessorProp: unknown): void;
3
- }
4
-
5
- declare module "@arcgis/core/core/accessorSupport/Property" {
6
- export class Property {
7
- constructor(propertyName: string, metadata: unknown);
8
- propertyName: string;
9
- observe(observer: unknown): IHandle;
10
- invalidate(): void;
11
- commit(): void;
12
- onInvalidated(): void;
13
- }
14
- }
1
+ /// <reference path="modules.d.ts" />
15
2
 
16
- declare module "@arcgis/core/core/workers/utils";
17
3
  declare module "@arcgis/core/core/Warning" {
18
4
  interface Warning {}
19
5
 
@@ -25,34 +11,6 @@ declare module "@arcgis/core/core/Warning" {
25
11
  export default Warning;
26
12
  }
27
13
 
28
- declare module "@arcgis/core/networks/UtilityNetwork" {
29
- interface UtilityNetwork extends __esri.JSONSupport, __esri.UtilityNetwork, __esri.Network {}
30
- interface UtilityNetworkConstructor {
31
- new (properties?: any): UtilityNetwork;
32
- fromJSON(json: any): UtilityNetwork;
33
- }
34
-
35
- const UtilityNetwork: UtilityNetworkConstructor;
36
- export default UtilityNetwork;
37
- }
38
-
39
- declare module "@arcgis/core/layers/support/source/DataLayerSource" {
40
- export interface DataLayerSource extends __esri.JSONSupport, __esri.DynamicDataLayer {}
41
- export interface DataLayerSourceConstructor {
42
- new (properties?: any): DataLayerSource;
43
- }
44
-
45
- export const DataLayerSource: DataLayerSourceConstructor;
46
- }
47
- declare module "@arcgis/core/layers/support/source/MapLayerSource" {
48
- export interface MapLayerSource extends __esri.JSONSupport, __esri.DynamicMapLayer {}
49
- export interface MapLayerSourceConstructor {
50
- new (properties?: any): MapLayerSource;
51
- }
52
-
53
- export const MapLayerSource: MapLayerSourceConstructor;
54
- }
55
-
56
14
  declare module "@arcgis/core/arcade/arcade" {
57
15
  export function parseAndExecuteScript(
58
16
  script: string,
@@ -149,7 +107,7 @@ declare module "@arcgis/core/arcade/Feature" {
149
107
  }
150
108
 
151
109
  const Feature: FeatureConstructor;
152
- export default Feature;
110
+ export { Feature };
153
111
  }
154
112
 
155
113
  declare module "@arcgis/core/arcade/Dictionary" {
@@ -173,38 +131,12 @@ declare module "@arcgis/core/arcade/Dictionary" {
173
131
  export default Dictionary;
174
132
  }
175
133
 
176
- declare module "@arcgis/core/views/2d/layers/KMLLayerView2D" {
177
- interface KMLLayerView2D extends __esri.LayerView {
178
- _featuresMap: Map<
179
- __esri.KMLSublayer,
180
- { points: __esri.Graphic[]; polylines: __esri.Graphic[]; polygons: __esri.Graphic[] }
181
- >;
182
- }
183
-
184
- interface KMLLayerView2DProperties {
185
- layer?: __esri.KMLLayer;
186
- }
187
-
188
- interface KMLLayerView2DConstructor {
189
- new (properties?: KMLLayerView2DProperties): KMLLayerView2D;
190
- }
191
-
192
- const KMLLayerView2D: KMLLayerView2DConstructor;
193
- export default KMLLayerView2D;
194
- }
195
-
196
134
  declare module "@arcgis/core/views/draw/support/drawUtils" {
197
135
  export function cloneMove(geometry: Geometry, newX: number, newY: number, view: MapView): Geometry;
198
136
 
199
137
  export function scale(geometry: Geometry, scaleX: number, scaleY: number);
200
138
  }
201
139
 
202
- declare module "esri/views/draw/support/drawUtils" {
203
- export function cloneMove(geometry: Geometry, newX: number, newY: number, view: MapView): Geometry;
204
-
205
- export function scale(geometry: Geometry, scaleX: number, scaleY: number);
206
- }
207
-
208
140
  declare namespace __esri {
209
141
  export interface ArcadeScript {
210
142
  // Enable async Arcade within the script.
@@ -215,154 +147,7 @@ declare namespace __esri {
215
147
  usesGeometry: boolean | number;
216
148
  }
217
149
 
218
- export interface FieldsContent {
219
- /**
220
- * Property will be populated when used for Arcade popup elements of
221
- * type "fields", otherwise it will be null.
222
- */
223
- attributes: Record<string, unknown>;
224
- }
225
-
226
- export interface MediaContent {
227
- /**
228
- * Property will be populated when used for Arcade popup elements of
229
- * type "media", otherwise it will be null.
230
- */
231
- attributes: Record<string, unknown>;
232
- }
233
-
234
- // ESRI429 - Check if the extended interfaces below are still necessary.
235
-
236
- export interface SceneLayer {
237
- associatedLayer: __esri.FeatureLayer;
238
- }
239
-
240
- export interface WFSLayerInfo {
241
- geometryField: string;
242
- }
243
-
244
- export interface WMSLayer {
245
- mapUrl: string;
246
- resourceInfo:
247
- | {
248
- supportedImageFormatTypes: string[] | undefined;
249
- }
250
- | undefined;
251
- }
252
-
253
- export interface WMSLayerProperties {
254
- mapUrl?: string;
255
- }
256
-
257
- export interface FeatureLayer {
258
- mode: number;
259
- }
260
-
261
150
  export interface MapNotesSublayer extends __esri.GraphicsLayer {
262
151
  layer: MapNotesLayer;
263
152
  }
264
-
265
- export interface MapNotesLayer {
266
- multipointLayer: MapNotesSublayer;
267
- pointLayer: MapNotesSublayer;
268
- polygonLayer: MapNotesSublayer;
269
- polylineLayer: MapNotesSublayer;
270
- textLayer: MapNotesSublayer;
271
- sublayers: Collection<MapNotesSublayer>;
272
- }
273
-
274
- export interface SubtypeSublayer extends Accessor {
275
- listMode: "show" | "hide" | "hide-children";
276
- parent: __esri.SubtypeGroupLayer;
277
- layer: __esri.SubtypeGroupLayer;
278
- }
279
-
280
- export interface Renderer {
281
- clone(): this;
282
- }
283
-
284
- // Check if VectorFieldRenderer extends Renderer.
285
- export interface VectorFieldRenderer extends Renderer {}
286
-
287
- export interface locatorSuggestLocationsParams {
288
- searchExtent: Extent;
289
- maxSuggestions: number;
290
- countryCode: string;
291
- }
292
-
293
- export interface BuildingSublayer {
294
- layer: __esri.BuildingSceneLayer;
295
- }
296
-
297
- export interface BuildingComponentSublayer {
298
- fields: __esri.Field[];
299
- objectIdField: string;
300
- geometryType: __esri.Geometry["type"];
301
- capabilities: BuildingComponentSublayerCapabilities;
302
- loaded: boolean;
303
- }
304
-
305
- export interface BuildingComponentSublayerCapabilitiesData {
306
- isVersioned: boolean;
307
- supportsM: boolean;
308
- supportsZ: boolean;
309
- }
310
-
311
- export interface BuildingComponentSublayerCapabilities {
312
- /**
313
- * Describes characteristics of the data in the layer.
314
- *
315
- * [Read
316
- * more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-CSVLayer.html#capabilities)
317
- */
318
- data: BuildingComponentSublayerCapabilitiesData;
319
- }
320
-
321
- export interface StreamLayerView {
322
- createQuery(): __esri.supportQuery;
323
- view: __esri.MapView | __esri.SceneView;
324
- }
325
-
326
- export interface SceneLayerView {
327
- view: __esri.MapView | __esri.SceneView;
328
- }
329
-
330
- export interface CSVLayerView {
331
- view: __esri.MapView | __esri.SceneView;
332
- }
333
-
334
- export interface FeatureLayerView {
335
- view: __esri.MapView | __esri.SceneView;
336
- }
337
-
338
- export interface PointCloudLayerView {
339
- view: __esri.MapView | __esri.SceneView;
340
- }
341
-
342
- export interface BuildingComponentSublayerView {
343
- view: __esri.MapView | __esri.SceneView;
344
- }
345
-
346
- export interface FeatureLayerView {
347
- view: __esri.MapView | __esri.SceneView;
348
- }
349
-
350
- export interface GeoJSONLayerView {
351
- view: __esri.MapView | __esri.SceneView;
352
- }
353
-
354
- export interface EditsResult {
355
- addFeatureResults: __esri.FeatureEditResult[];
356
- deleteFeatureResults: __esri.FeatureEditResult[];
357
- updateFeatureResults: __esri.FeatureEditResult[];
358
- }
359
-
360
- export interface Symbol3DLayerProperties {
361
- // The type property is required for autocasting to work.
362
- type: Symbol3DLayer["type"];
363
- }
364
-
365
- export interface Accessor {
366
- get<T = unknown>(propertyPath: string): T;
367
- }
368
153
  }
@@ -0,0 +1,99 @@
1
+ import Collection from "@arcgis/core/core/Collection";
2
+ import type { SuggestLocationsParametersProperties as SuggestLocationsParametersPropertiesBase } from "@arcgis/core/rest/support/SuggestLocationsParameters.js";
3
+ import type { JSONSupport } from "@arcgis/core/core/JSONSupport";
4
+ import type Extent from "@arcgis/core/geometry/Extent.js";
5
+
6
+ declare module "@arcgis/core/layers/support/SubtypeSublayer.js" {
7
+ export default interface SubtypeSublayer {
8
+ layer: import("@arcgis/core/layers/SubtypeGroupLayer.js").default;
9
+ }
10
+ }
11
+
12
+ declare module "@arcgis/core/layers/SceneLayer.js" {
13
+ export default interface SceneLayer {
14
+ associatedLayer: import("@arcgis/core/layers/FeatureLayer.js").default;
15
+ }
16
+ }
17
+
18
+ declare module "@arcgis/core/layers/MapNotesLayer.js" {
19
+ export default interface MapNotesLayer {
20
+ associatedLayer: import("@arcgis/core/layers/FeatureLayer.js").default;
21
+ sublayers: Collection<import("@arcgis/core/layers/GraphicsLayer.js").default>;
22
+
23
+ add(graphic: import("@arcgis/core/Graphic.js").default): void;
24
+ remove(graphic: import("@arcgis/core/Graphic.js").default): void;
25
+ addMany(graphics: import("@arcgis/core/Graphic.js").default[]): void;
26
+ removeMany(graphics: import("@arcgis/core/Graphic.js").default[]): void;
27
+ }
28
+ }
29
+
30
+ declare module "@arcgis/core/layers/ogc/wfsUtils.js" {
31
+ export interface WFSLayerInfo extends WFSLayerInfo {
32
+ geometryField: string;
33
+ }
34
+ }
35
+
36
+ declare module "@arcgis/core/views/layers/BuildingComponentSublayerView.js" {
37
+ export default interface BuildingComponentSublayerView {
38
+ view: import("@arcgis/core/views/MapView.js").default | import("@arcgis/core/views/SceneView.js").default;
39
+ }
40
+ }
41
+
42
+ declare module "@arcgis/core/rest/support/SuggestLocationsParameters.js" {
43
+ export interface SuggestLocationsParametersProperties extends SuggestLocationsParametersPropertiesBase {
44
+ searchExtent: Extent;
45
+ maxSuggestions: number;
46
+ countryCode: string;
47
+ }
48
+ }
49
+
50
+ declare module "@arcgis/core/layers/FeatureLayer.js" {
51
+ export default interface FeatureLayer {
52
+ mode: number;
53
+ }
54
+ }
55
+
56
+ declare module "@arcgis/core/layers/WMSLayer.js" {
57
+ export default interface WMSLayer {
58
+ mapUrl?: string;
59
+ resourceInfo?:
60
+ | {
61
+ supportedImageFormatTypes: string[] | undefined;
62
+ }
63
+ | undefined;
64
+ }
65
+ }
66
+
67
+ declare module "@arcgis/core/layers/buildingSublayers/BuildingComponentSublayer.js" {
68
+ export interface BuildingComponentSublayerCapabilitiesData {
69
+ isVersioned: boolean;
70
+ supportsM: boolean;
71
+ supportsZ: boolean;
72
+ }
73
+
74
+ export interface BuildingComponentSublayerCapabilities {
75
+ /**
76
+ * Describes characteristics of the data in the layer.
77
+ *
78
+ * [Read
79
+ * more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-CSVLayer.html#capabilities)
80
+ */
81
+ data: BuildingComponentSublayerCapabilitiesData;
82
+ }
83
+
84
+ export default interface BuildingComponentSublayer {
85
+ layer: import("@arcgis/core/layers/BuildingSceneLayer.js").default;
86
+ geometryType: import("@arcgis/core/geometry/Geometry.js").default["type"];
87
+ capabilities: BuildingComponentSublayerCapabilities;
88
+ }
89
+ }
90
+
91
+ declare module "@arcgis/core/layers/buildingSublayers/BuildingSublayer.js" {
92
+ export default interface BuildingSublayer {
93
+ layer: import("@arcgis/core/layers/BuildingSceneLayer.js").default;
94
+ }
95
+ }
96
+
97
+ declare module "@arcgis/core/networks/UtilityNetwork.js" {
98
+ export default interface UtilityNetwork extends JSONSupport {}
99
+ }
@@ -1,26 +1,26 @@
1
1
  :root {
2
- --light-hl-0: #0000FF;
3
- --dark-hl-0: #569CD6;
2
+ --light-hl-0: #001080;
3
+ --dark-hl-0: #9CDCFE;
4
4
  --light-hl-1: #000000;
5
5
  --dark-hl-1: #D4D4D4;
6
- --light-hl-2: #267F99;
7
- --dark-hl-2: #4EC9B0;
8
- --light-hl-3: #795E26;
9
- --dark-hl-3: #DCDCAA;
10
- --light-hl-4: #001080;
11
- --dark-hl-4: #9CDCFE;
12
- --light-hl-5: #A31515;
13
- --dark-hl-5: #CE9178;
6
+ --light-hl-2: #795E26;
7
+ --dark-hl-2: #DCDCAA;
8
+ --light-hl-3: #A31515;
9
+ --dark-hl-3: #CE9178;
10
+ --light-hl-4: #0000FF;
11
+ --dark-hl-4: #569CD6;
12
+ --light-hl-5: #008000;
13
+ --dark-hl-5: #6A9955;
14
14
  --light-hl-6: #0070C1;
15
15
  --dark-hl-6: #4FC1FF;
16
16
  --light-hl-7: #AF00DB;
17
17
  --dark-hl-7: #C586C0;
18
- --light-hl-8: #000000FF;
19
- --dark-hl-8: #D4D4D4;
20
- --light-hl-9: #098658;
21
- --dark-hl-9: #B5CEA8;
22
- --light-hl-10: #008000;
23
- --dark-hl-10: #6A9955;
18
+ --light-hl-8: #098658;
19
+ --dark-hl-8: #B5CEA8;
20
+ --light-hl-9: #267F99;
21
+ --dark-hl-9: #4EC9B0;
22
+ --light-hl-10: #000000FF;
23
+ --dark-hl-10: #D4D4D4;
24
24
  --light-code-background: #FFFFFF;
25
25
  --dark-code-background: #1E1E1E;
26
26
  }