@vertigis/arcgis-extensions 54.3.0 → 54.3.2

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 (119) hide show
  1. package/Entity.d.ts +1 -1
  2. package/Hyperlink.d.ts +6 -6
  3. package/Hyperlink.js +1 -1
  4. package/LanguageResources.d.ts +1 -1
  5. package/LanguageResources.js +1 -1
  6. package/PortalUri.d.ts +2 -2
  7. package/data/Attachment.d.ts +9 -9
  8. package/data/Feature.js +1 -1
  9. package/data/RelationshipBase.d.ts +3 -3
  10. package/data/Schema.js +1 -1
  11. package/data/_Relationship.d.ts +4 -4
  12. package/data/_Relationship.js +1 -1
  13. package/declarations/arcgis-js-api-extensions/index.d.ts +7 -7
  14. package/docs/html/classes/PortalUri.PortalUri.html +4 -4
  15. package/docs/html/classes/data_RelationshipBase.RelationshipBase.html +2 -2
  16. package/docs/html/classes/support_Cancellable.Cancellation.html +2 -2
  17. package/docs/html/classes/tasks_identify_ArcGISSublayerIdentifyProvider.ArcGISSublayerIdentifyProvider.html +2 -2
  18. package/docs/html/classes/tasks_identify_ArcGISSublayerQueryIdentifyProvider.ArcGISSublayerQueryIdentifyProvider.html +2 -2
  19. package/docs/html/classes/tasks_identify_BuildingComponentSublayerClientSideIdentifyProvider.BuildingComponentSublayerClientSideIdentifyProvider.html +2 -2
  20. package/docs/html/classes/tasks_identify_BuildingComponentSublayerHitTestIdentifyProvider.BuildingComponentSublayerHitTestIdentifyProvider.html +2 -2
  21. package/docs/html/classes/tasks_identify_CSVLayer3DHitTestIdentifyProvider.CSVLayer3DHitTestIdentifyProvider.html +2 -2
  22. package/docs/html/classes/tasks_identify_CSVLayerClientSideQueryIdentifyProvider.CSVLayerClientSideQueryIdentifyProvider.html +2 -2
  23. package/docs/html/classes/tasks_identify_ClientSideIdentifyProvider.ClientSideIdentifyProvider.html +2 -2
  24. package/docs/html/classes/tasks_identify_FeatureLayer3DHitTestIdentifyProvider.FeatureLayer3DHitTestIdentifyProvider.html +2 -2
  25. package/docs/html/classes/tasks_identify_FeatureLayerClientSideIdentifyProvider.FeatureLayerClientSideIdentifyProvider.html +2 -2
  26. package/docs/html/classes/tasks_identify_FeatureLayerQueryIdentifyProvider.FeatureLayerQueryIdentifyProvider.html +2 -2
  27. package/docs/html/classes/tasks_identify_GeoJSONLayer3DHitTestIdentifyProvider.GeoJSONLayer3DHitTestIdentifyProvider.html +2 -2
  28. package/docs/html/classes/tasks_identify_GeoJSONLayerClientSideQueryIdentifyProvider.GeoJSONLayerClientSideQueryIdentifyProvider.html +2 -2
  29. package/docs/html/classes/tasks_identify_GeoRSSLayerIdentifyProvider.GeoRSSLayerIdentifyProvider.html +2 -2
  30. package/docs/html/classes/tasks_identify_GraphicsLayerQueryIdentifyProvider.GraphicsLayerQueryIdentifyProvider.html +2 -2
  31. package/docs/html/classes/tasks_identify_HitTestIdentifyProvider.HitTestIdentifyProvider.html +2 -2
  32. package/docs/html/classes/tasks_identify_IdentifyProviderBase.IdentifyProviderBase.html +2 -2
  33. package/docs/html/classes/tasks_identify_ImageryLayerIdentifyProvider.ImageryLayerIdentifyProvider.html +2 -2
  34. package/docs/html/classes/tasks_identify_KMLLayerQueryIdentifyProvider.KMLLayerQueryIdentifyProvider.html +2 -2
  35. package/docs/html/classes/tasks_identify_MapNotesSublayerQueryIdentifyProvider.MapNotesSublayerQueryIdentifyProvider.html +2 -2
  36. package/docs/html/classes/tasks_identify_PointCloudLayerHitTestIdentifyProvider.PointCloudLayerHitTestIdentifyProvider.html +2 -2
  37. package/docs/html/classes/tasks_identify_RouteLayerQueryIdentifyProvider.RouteLayerQueryIdentifyProvider.html +2 -2
  38. package/docs/html/classes/tasks_identify_SceneLayerClientSideIdentifyProvider.SceneLayerClientSideIdentifyProvider.html +2 -2
  39. package/docs/html/classes/tasks_identify_SceneLayerHitTestIdentifyProvider.SceneLayerHitTestIdentifyProvider.html +2 -2
  40. package/docs/html/classes/tasks_identify_SceneLayerQueryIdentifyProvider.SceneLayerQueryIdentifyProvider.html +2 -2
  41. package/docs/html/classes/tasks_identify_StreamLayerClientSideQueryIdentifyProvider.StreamLayerClientSideQueryIdentifyProvider.html +2 -2
  42. package/docs/html/classes/tasks_identify_SubtypeSublayerClientSideIdentifyProvider.SubtypeSublayerClientSideIdentifyProvider.html +2 -2
  43. package/docs/html/classes/tasks_identify_WFSLayerClientSideIdentifyProvider.WFSLayerClientSideIdentifyProvider.html +2 -2
  44. package/docs/html/classes/tasks_identify_WFSLayerQueryIdentifyProvider.WFSLayerQueryIdentifyProvider.html +2 -2
  45. package/docs/html/classes/tasks_identify_WMSLayerFeatureInfoIdentifyProvider.WMSLayerFeatureInfoIdentifyProvider.html +2 -2
  46. package/docs/html/classes/tasks_identify_WMSSublayerIdentifyProvider.WMSSublayerIdentifyProvider.html +2 -2
  47. package/docs/html/classes/tasks_query_ArcGISRelationship.ArcGISRelationship.html +2 -2
  48. package/docs/html/classes/tasks_query_QueryBasedRelationship.QueryBasedRelationship.html +2 -2
  49. package/docs/html/classes/tasks_search_ArcGISGeocoderSearchProvider.ArcGISGeocoderSearchProvider.html +3 -3
  50. package/docs/html/classes/tasks_search_GeocoderSearchProvider.GeocoderSearchProvider.html +3 -3
  51. package/docs/html/classes/utilities_CaseInsensitiveObservableMap.CaseInsensitiveObservableMap.html +2 -2
  52. package/docs/html/functions/data__Relationship.fromEsriApiCardinality.html +1 -1
  53. package/docs/html/functions/data__Relationship.toEsriApiCardinality.html +1 -1
  54. package/docs/html/functions/support_InitializableBase.initializeCollection.html +1 -1
  55. package/docs/html/functions/support_Serializable.filterJSONProperties.html +1 -1
  56. package/docs/html/interfaces/data_Attachment.AttachmentInfo.html +8 -8
  57. package/docs/html/interfaces/data__Relationship.Relationship-1.html +5 -5
  58. package/docs/html/interfaces/support_InitializableBase.InitializeWarningEvent.html +3 -3
  59. package/docs/html/types/support_Serializable.SerializableClass.html +1 -1
  60. package/docs/html/variables/version.version.html +1 -1
  61. package/layer-preset/LayerPreset.d.ts +7 -7
  62. package/layer-preset/LayerPreset.js +1 -1
  63. package/locale/language.d.ts +4 -4
  64. package/locale/language.js +1 -1
  65. package/mapping/Bookmark.d.ts +3 -3
  66. package/mapping/support/featureService.js +1 -1
  67. package/menus/Menu.d.ts +1 -1
  68. package/menus/Menu.js +1 -1
  69. package/menus/MenuItem.d.ts +12 -12
  70. package/menus/MenuItem.js +1 -1
  71. package/package.json +2 -2
  72. package/support/Cancellable.d.ts +2 -2
  73. package/support/InitializableBase.d.ts +1 -1
  74. package/support/InitializableBase.js +1 -1
  75. package/support/Serializable.d.ts +3 -2
  76. package/support/Serializable.js +1 -1
  77. package/support/_ArcGISRelationshipCollection.js +1 -1
  78. package/support/_featureEdit.js +1 -1
  79. package/support/_graphicsQuery.js +1 -1
  80. package/support/_query.js +1 -1
  81. package/tasks/identify/ArcGISSublayerQueryIdentifyProvider.js +1 -1
  82. package/tasks/identify/CSVLayerClientSideQueryIdentifyProvider.js +1 -1
  83. package/tasks/identify/ClientSideIdentifyProvider.d.ts +1 -1
  84. package/tasks/identify/ClientSideIdentifyProvider.js +1 -1
  85. package/tasks/identify/FeatureLayerClientSideIdentifyProvider.js +1 -1
  86. package/tasks/identify/FeatureLayerQueryIdentifyProvider.js +1 -1
  87. package/tasks/identify/GeoJSONLayerClientSideQueryIdentifyProvider.js +1 -1
  88. package/tasks/identify/HitTestIdentifyProvider.d.ts +1 -1
  89. package/tasks/identify/HitTestIdentifyProvider.js +1 -1
  90. package/tasks/identify/IdentifyProviderBase.d.ts +1 -1
  91. package/tasks/identify/IdentifyService.js +1 -1
  92. package/tasks/identify/ImageryLayerIdentifyProvider.js +1 -1
  93. package/tasks/identify/SubtypeSublayerQueryIdentifyProvider.js +1 -1
  94. package/tasks/identify/WFSLayerQueryIdentifyProvider.js +1 -1
  95. package/tasks/identify/WMSLayerFeatureInfoIdentifyProvider.js +1 -1
  96. package/tasks/identify/WMSSublayerIdentifyProvider.js +1 -1
  97. package/tasks/query/ArcGISRelationship.js +1 -1
  98. package/tasks/query/ArcGISSublayerQueryProvider.js +1 -1
  99. package/tasks/query/CSVLayerClientSideQueryProvider.js +1 -1
  100. package/tasks/query/ClientSideQueryProvider.js +1 -1
  101. package/tasks/query/FeatureLayerQueryProvider.js +1 -1
  102. package/tasks/query/GeoJSONLayerClientSideQueryProvider.js +1 -1
  103. package/tasks/query/SceneLayerQueryProvider.js +1 -1
  104. package/tasks/query/SubtypeSublayerQueryProvider.js +1 -1
  105. package/tasks/query/WFSLayerQueryProvider.js +1 -1
  106. package/tasks/search/ArcGISGeocoderSearchProvider.d.ts +2 -1
  107. package/tasks/search/ArcGISGeocoderSearchProvider.js +1 -1
  108. package/tasks/search/GeocoderSearchProvider.d.ts +4 -3
  109. package/tasks/search/GeocoderSearchProvider.js +1 -1
  110. package/tasks/search/SearchProviderBase.js +1 -1
  111. package/tasks/search/SearchService.js +1 -1
  112. package/tasks/search/_utilities.js +1 -1
  113. package/utilities/CaseInsensitiveObservableMap.d.ts +2 -2
  114. package/utilities/CaseInsensitiveObservableMap.js +1 -1
  115. package/utilities/arcade.js +1 -1
  116. package/utilities/uri.d.ts +1 -1
  117. package/utilities/uri.js +1 -1
  118. package/version.d.ts +1 -1
  119. package/version.js +1 -1
@@ -1,2 +1,2 @@
1
- <!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SerializableClass | @vertigis/arcgis-extensions</title><meta name="description" content="Documentation for @vertigis/arcgis-extensions"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">@vertigis/arcgis-extensions</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">@vertigis/arcgis-extensions</a></li><li><a href="../modules/support_Serializable.html">support/Serializable</a></li><li><a href="support_Serializable.SerializableClass.html">SerializableClass</a></li></ul><h1>Type Alias SerializableClass&lt;P, T&gt;</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Serializable<wbr/>Class</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="support_Serializable.SerializableClass.html#P">P</a><span class="tsd-signature-symbol">, </span><a class="tsd-signature-type tsd-kind-type-parameter" href="support_Serializable.SerializableClass.html#T">T</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-signature-keyword">new </span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">properties</span><span class="tsd-signature-symbol">?: </span><a class="tsd-signature-type tsd-kind-type-parameter" href="support_Serializable.SerializableClass.html#P">P</a>, <span class="tsd-signature-symbol">...</span><span class="tsd-kind-parameter">other</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><a class="tsd-signature-type tsd-kind-type-parameter" href="support_Serializable.SerializableClass.html#T">T</a><span class="tsd-signature-symbol">)</span></div><div class="tsd-comment tsd-typography"><p>A class that can take in initial property values in its constructor.</p>
1
+ <!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SerializableClass | @vertigis/arcgis-extensions</title><meta name="description" content="Documentation for @vertigis/arcgis-extensions"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">@vertigis/arcgis-extensions</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">@vertigis/arcgis-extensions</a></li><li><a href="../modules/support_Serializable.html">support/Serializable</a></li><li><a href="support_Serializable.SerializableClass.html">SerializableClass</a></li></ul><h1>Type Alias SerializableClass&lt;P, T&gt;</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Serializable<wbr/>Class</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="support_Serializable.SerializableClass.html#P">P</a><span class="tsd-signature-symbol">, </span><a class="tsd-signature-type tsd-kind-type-parameter" href="support_Serializable.SerializableClass.html#T">T</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-signature-keyword">new </span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">properties</span><span class="tsd-signature-symbol">: </span><a class="tsd-signature-type tsd-kind-type-parameter" href="support_Serializable.SerializableClass.html#P">P</a>, <span class="tsd-signature-symbol">...</span><span class="tsd-kind-parameter">other</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><a class="tsd-signature-type tsd-kind-type-parameter" href="support_Serializable.SerializableClass.html#T">T</a><span class="tsd-signature-symbol">)</span></div><div class="tsd-comment tsd-typography"><p>A class that can take in initial property values in its constructor.</p>
2
2
  </div><section class="tsd-panel"><h4>Type Parameters</h4><ul class="tsd-type-parameter-list"><li><span><a id="P" class="tsd-anchor"></a><span class="tsd-kind-type-parameter">P</span></span></li><li><span><a id="T" class="tsd-anchor"></a><span class="tsd-kind-type-parameter">T</span><span class="tsd-signature-keyword"> extends </span><a href="../classes/support_Serializable.SerializableBase.html" class="tsd-signature-type tsd-kind-class">SerializableBase</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="support_Serializable.SerializableClass.html#P">P</a><span class="tsd-signature-symbol">&gt;</span></span></li></ul></section><div class="tsd-comment tsd-typography"></div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>@vertigis/arcgis-extensions</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer></footer><div class="overlay"></div></body></html>
@@ -1,2 +1,2 @@
1
- <!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>version | @vertigis/arcgis-extensions</title><meta name="description" content="Documentation for @vertigis/arcgis-extensions"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">@vertigis/arcgis-extensions</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">@vertigis/arcgis-extensions</a></li><li><a href="../modules/version.html">version</a></li><li><a href="version.version.html">version</a></li></ul><h1>Variable version<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">version</span><span class="tsd-signature-symbol"> = &quot;54.3.0&quot;</span></div><div class="tsd-comment tsd-typography"><p>The current version of the Geocortex ArcGIS Extensions API.</p>
1
+ <!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>version | @vertigis/arcgis-extensions</title><meta name="description" content="Documentation for @vertigis/arcgis-extensions"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">@vertigis/arcgis-extensions</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">@vertigis/arcgis-extensions</a></li><li><a href="../modules/version.html">version</a></li><li><a href="version.version.html">version</a></li></ul><h1>Variable version<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">version</span><span class="tsd-signature-symbol"> = &quot;54.3.2&quot;</span></div><div class="tsd-comment tsd-typography"><p>The current version of the Geocortex ArcGIS Extensions API.</p>
2
2
  </div><div class="tsd-comment tsd-typography"></div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>@vertigis/arcgis-extensions</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer></footer><div class="overlay"></div></body></html>
@@ -56,32 +56,32 @@ export declare class LayerPreset extends EntityBase<LayerPresetProperties> {
56
56
  /**
57
57
  * An optional icon that can be displayed when listing the LayerPreset.
58
58
  */
59
- icon: string;
59
+ icon: string | undefined;
60
60
  /**
61
61
  * An optional url to an image that can be displayed when listing the
62
62
  * LayerPreset.
63
63
  */
64
- iconUrl: string;
64
+ iconUrl: string | undefined;
65
65
  /**
66
66
  * A human readable title for the LayerPreset.
67
67
  */
68
- title: string;
68
+ title: string | undefined;
69
69
  /**
70
70
  * A human readable description of the LayerPreset.
71
71
  */
72
- description: string;
72
+ description: string | undefined;
73
73
  /**
74
74
  * LayerPresetSettings that can be applied to the layers of a map.
75
75
  */
76
- layers: Map<string | LayerReference | SublayerReference, LayerPresetSetting>;
76
+ layers: Map<string | LayerReference | SublayerReference, LayerPresetSetting> | undefined;
77
77
  /**
78
78
  * Current basemap of a map.
79
79
  */
80
- basemap: WellKnownBasemap | BasemapProperties;
80
+ basemap: WellKnownBasemap | BasemapProperties | undefined;
81
81
  /**
82
82
  * Available basemap options of a map.
83
83
  */
84
- basemapOptions: (WellKnownBasemap | BasemapProperties)[];
84
+ basemapOptions: (WellKnownBasemap | BasemapProperties)[] | undefined;
85
85
  /**
86
86
  * @inheritDoc
87
87
  */
@@ -1 +1 @@
1
- var e;import{__decorate as i}from"tslib";import s from"@arcgis/core/core/Collection";import{EntityBase as t}from"../Entity.js";import{InvalidOperationError as a}from"../InvalidOperationError.js";import{ItemType as n}from"../ItemType.js";import{basemapToJson as r}from"../json/BasemapJson.js";import{serializable as o}from"../support/Serializable.js";import{watch as l}from"../support/observableUtils.js";import{ObservableMap as p}from"../utilities/ObservableMap.js";import{createFlattenedLayerXList as c,createRef as d,getBackingLayer as m,isIterable as y,isLayerRefEqual as f,isSublayerRefEqual as b,toMapExtension as u}from"../utilities/_layer-preset.js";import{basemapsAreEquivalent as x,createStandardBasemap as h}from"../utilities/basemaps.js";import{map as L}from"../utilities/iterable.js";import{getLogger as v}from"../utilities/log.js";import{LayerPresetSetting as E}from"./LayerPresetSettings.js";const S=v("layer-preset");let g=e=class extends t{icon;iconUrl;title;description;layers;basemap;basemapOptions;_itemType=n.LAYER_PRESET;static createFrom(i){const s=new e,t=u(i);t.basemapExtension?.basemap&&(s.basemap=r(t.basemapExtension.basemap));for(const e of t.basemapOptions.toArray())e.included&&e.basemap&&(s.basemapOptions=s.basemapOptions||[],s.basemapOptions.push(r(e.basemap)));const a=c(t);for(const e of a.toArray()){const i=w(e);if(i){const t=e.allSublayerExtensions;if(t.length>0){i.sublayers=new p;for(const e of t.toArray().filter((e=>!!e.sublayer))){const s=w(e);s&&i.sublayers.set(d(e.sublayer),s)}}s.layers=s.layers??new Map,s.layers.set(d(e.layer),i)}}return s}async applyTo(e){if(y(e)){for(const i of e)await this.applyTo(i);return}const i=u(e);if(this.basemap){const e="string"==typeof this.basemap?await h(this.basemap):this.basemap,s=i.basemapOptions.find((i=>x(i.basemap,e)));s&&(i.basemapExtension=s,s.included=!0)}if(this.basemapOptions){const e=new s;for(const s of await Promise.all(this.basemapOptions.map((async e=>"string"==typeof e?h(e):e)))){const t=i.basemapOptions.find((e=>x(e.basemap,s)));t&&(t.included=!0,e.add(t))}for(const s of i.basemapOptions.toArray())e.includes(s)||i.basemapExtension===s||(s.included=!1)}if(this.layers){const e=c(i);e.forEach((e=>e._resolveLayer()));for(const i of this.layers.keys()){const t=d(i),a=e.find((i=>{const s=d(i);return"string"==typeof s.id&&f(s,t,e.toArray())}));if(a){const t=this.layers.get(i);O(t,a),e.remove(a);const n=()=>{const e=new s(a.allSublayerExtensions.toArray());for(const i of t.sublayers.keys()){const s=d(i),a=e.find((e=>b(d(e),s)));a&&(O(t.sublayers.get(i),a),e.remove(a))}};a.layer.loaded?n():l(a.layer,"loaded",(()=>{try{n()}catch(e){S.error({message:`Error applying LayerPreset to sublayers of LayerExtension with ID '${a.id}' and title '${a.title}'.`,error:e})}}),{once:!0})}}}}_getSerializableProperties(){return{...super._getSerializableProperties(),title:"initial",iconUrl:"initial",description:"initial",layers:{serializeModes:["initial"],serialize:e=>{if(this.layers)return Array.from(L(this.layers.entries(),(i=>{let s={layer:i[0]};const t=i[1].toJSON(e);return s={...s,...t,sublayers:t?.sublayers},s})))},deserialize:e=>{this.layers=new Map;for(const i of e){if(!i.layer)throw new a("Cannot define a LayerPresetSetting that does not have layer reference.");this.layers.set(i.layer,new E(i))}},isDefault:e=>!e},icon:"initial",basemap:"initial",basemapOptions:{serializeModes:["initial"]}}}};g=e=i([o],g);export{g as LayerPreset};function w(e){const i=new E,s=m(e);if(i.visible=s.visible,i.opacity=s.opacity,"definitionExpression"in s&&(i.definitionExpression=s.definitionExpression),e.layerListSettings.included)return i.expanded=e.layerListSettings.expanded,i}function O(e,i){const s=m(i);void 0!==e.definitionExpression&&null!==e.definitionExpression&&"definitionExpression"in s&&(s.definitionExpression=e.definitionExpression),void 0!==e.visible&&null!==e.visible&&(s.visible=e.visible),void 0!==e.opacity&&null!==e.opacity&&(s.opacity=e.opacity),void 0!==e.maxScale&&null!==e.maxScale&&(s.maxScale=e.maxScale),void 0!==e.minScale&&null!==e.minScale&&(s.minScale=e.minScale),void 0!==e.includedInLayerList&&null!==e.includedInLayerList&&(i.layerListSettings.included=e.includedInLayerList),void 0!==e.expanded&&null!==e.expanded&&(i.layerListSettings.expanded=e.expanded),void 0!==e.childrenIncludedInLayerList&&null!==e.childrenIncludedInLayerList&&(i.layerListSettings.childrenIncluded=e.childrenIncludedInLayerList)}
1
+ var e;import{__decorate as i}from"tslib";import s from"@arcgis/core/core/Collection";import{EntityBase as t}from"../Entity.js";import{InvalidOperationError as n}from"../InvalidOperationError.js";import{ItemType as a}from"../ItemType.js";import{basemapToJson as o}from"../json/BasemapJson.js";import{serializable as r}from"../support/Serializable.js";import{watch as l}from"../support/observableUtils.js";import{ObservableMap as p}from"../utilities/ObservableMap.js";import{createFlattenedLayerXList as c,createRef as d,getBackingLayer as m,isIterable as f,isLayerRefEqual as y,isSublayerRefEqual as u,toMapExtension as b}from"../utilities/_layer-preset.js";import{basemapsAreEquivalent as x,createStandardBasemap as h}from"../utilities/basemaps.js";import{map as L}from"../utilities/iterable.js";import{getLogger as E}from"../utilities/log.js";import{LayerPresetSetting as S}from"./LayerPresetSettings.js";const v=E("layer-preset");let g=e=class extends t{icon;iconUrl;title;description;layers;basemap;basemapOptions;_itemType=a.LAYER_PRESET;static createFrom(i){const s=new e,t=b(i);t.basemapExtension?.basemap&&(s.basemap=o(t.basemapExtension.basemap));for(const e of t.basemapOptions)e.included&&e.basemap&&(s.basemapOptions=s.basemapOptions||[],s.basemapOptions.push(o(e.basemap)));const n=c(t);for(const e of n){const i=O(e);if(null==i)continue;const t=e.allSublayerExtensions;if(t.length>0){i.sublayers=new p;for(const e of t){if(null==e.sublayer)continue;const s=O(e);if(null==s)continue;const t=d(e.sublayer);null!=t&&i.sublayers.set(t,s)}}s.layers=s.layers??new Map;const n=d(e.layer);null!=n&&s.layers.set(n,i)}return s}async applyTo(e){if(f(e)){for(const i of e)await this.applyTo(i);return}const i=b(e);if(this.basemap){const e="string"==typeof this.basemap?await h(this.basemap):this.basemap,s=i.basemapOptions.find((i=>x(i.basemap,e)));s&&(i.basemapExtension=s,s.included=!0)}if(this.basemapOptions){const e=new s;for(const s of await Promise.all(this.basemapOptions.map((async e=>"string"==typeof e?h(e):e)))){const t=i.basemapOptions.find((e=>x(e.basemap,s)));t&&(t.included=!0,e.add(t))}for(const s of i.basemapOptions.toArray())e.includes(s)||i.basemapExtension===s||(s.included=!1)}if(this.layers){const e=c(i);e.forEach((e=>e._resolveLayer()));for(const[i,s]of this.layers.entries()){const t=d(i),n=e.find((i=>{const s=d(i);return"string"==typeof s?.id&&y(s,t,e.toArray())}));if(n){j(s,n),e.remove(n);const i=()=>{const e=n.allSublayerExtensions.toArray();for(const[i,t]of s.sublayers.entries()){const s=d(i),n=e.find((e=>{const i=d(e);return null!=i&&u(i,s)}));n&&(j(t,n),e.splice(e.indexOf(n),1))}};n.layer.loaded?i():l(n.layer,"loaded",(()=>{try{i()}catch(e){v.error({message:`Error applying LayerPreset to sublayers of LayerExtension with ID '${n.id}' and title '${n.title}'.`,error:e})}}),{once:!0})}}}}_getSerializableProperties(){return{...super._getSerializableProperties(),title:"initial",iconUrl:"initial",description:"initial",layers:{serializeModes:["initial"],serialize:e=>{if(this.layers)return Array.from(L(this.layers.entries(),(i=>{let s={layer:i[0]};const t=i[1].toJSON(e);return s={...s,...t,sublayers:t?.sublayers},s})))},deserialize:e=>{if(this.layers=new Map,null!=e)for(const i of e){if(!i.layer)throw new n("Cannot define a LayerPresetSetting that does not have layer reference.");this.layers.set(i.layer,new S(i))}},isDefault:e=>!e},icon:"initial",basemap:"initial",basemapOptions:{serializeModes:["initial"]}}}};g=e=i([r],g);export{g as LayerPreset};function O(e){const i=new S,s=m(e);if(i.visible=s.visible,i.opacity=s.opacity,"definitionExpression"in s&&(i.definitionExpression=s.definitionExpression),e.layerListSettings.included)return i.expanded=e.layerListSettings.expanded,i}function j(e,i){const s=m(i);void 0!==e.definitionExpression&&null!==e.definitionExpression&&"definitionExpression"in s&&(s.definitionExpression=e.definitionExpression),void 0!==e.visible&&null!==e.visible&&(s.visible=e.visible),void 0!==e.opacity&&null!==e.opacity&&(s.opacity=e.opacity),void 0!==e.maxScale&&null!==e.maxScale&&(s.maxScale=e.maxScale),void 0!==e.minScale&&null!==e.minScale&&(s.minScale=e.minScale),void 0!==e.includedInLayerList&&null!==e.includedInLayerList&&(i.layerListSettings.included=e.includedInLayerList),void 0!==e.expanded&&null!==e.expanded&&(i.layerListSettings.expanded=e.expanded),void 0!==e.childrenIncludedInLayerList&&null!==e.childrenIncludedInLayerList&&(i.layerListSettings.childrenIncluded=e.childrenIncludedInLayerList)}
@@ -37,7 +37,7 @@ export declare class LanguageRegistry {
37
37
  * @param key The unique key of the registered string.
38
38
  * @param args The values to substitute into the format string.
39
39
  */
40
- get(key: string, ...args: unknown[]): string;
40
+ get(key: string, ...args: unknown[]): string | undefined;
41
41
  /**
42
42
  * Gets a string with a unique key and locale. The current locale is used if
43
43
  * no locale is provided. Uses default locale (inv) to look up string if it
@@ -46,8 +46,8 @@ export declare class LanguageRegistry {
46
46
  * @param options The options object that contains the key and locale.
47
47
  * @param args The values to substitute into the format string.
48
48
  */
49
- get(options: LanguageResource, ...args: unknown[]): string;
50
- get(options: string | LanguageResource, ...args: unknown[]): string;
49
+ get(options: LanguageResource, ...args: unknown[]): string | undefined;
50
+ get(options: string | LanguageResource, ...args: unknown[]): string | undefined;
51
51
  /**
52
52
  * Whether a string is registered with the unique key and locale. The
53
53
  * current locale is used if no locale is provided. Uses default locale
@@ -78,7 +78,7 @@ export declare function setDefaultLocale(locale: string): void;
78
78
  * @param key The unique key of the registered string.
79
79
  * @param args The values to substitute into the format string.
80
80
  */
81
- export declare function translate(key: string | LanguageResource, ...args: unknown[]): string;
81
+ export declare function translate(key: string | LanguageResource, ...args: unknown[]): string | undefined;
82
82
  /**
83
83
  * Whether a string is registered with the unique key and locale. The current
84
84
  * locale is used if no locale is provided.
@@ -1 +1 @@
1
- import{INVARIANT as e,get as t,getMatchingLocales as s}from"../locale.js";import{checkArg as i}from"../utilities/checkArg.js";import{format as n}from"../utilities/format/string.js";const a=new Map;a.set("inv",{"gcx.api.data.convert.import-field-alias":"field{0}","gcx.api.mapping.kml-sublayer-extension.schema.id":"ID","gcx.api.mapping.kml-sublayer-extension.schema.name":"Name","gcx.api.mapping.kml-sublayer-extension.schema.description":"Description","gcx.api.mapping.kml-sublayer-extension.schema.visibility":"Visibility","gcx.api.mapping.kml-sublayer-extension.schema.balloonStyleText":"Popup Description","gcx.api.mapping.kml-sublayer-extension.schema.styleUrl":"Style Url"});export class LanguageRegistry{defaultLocale=e;_registeredStrings=new Map;localeKeyJoin="\0KEY\0";add(e){i("resources",e).isNotMissing();for(const t of e.values.keys()){const s=this._createUniqueKey(t,e.locale);this._registeredStrings.set(s,e.values.get(t))}}get(e,...t){let s;i("options",e).isNotMissing(),s="string"==typeof e?{key:e}:{...e};const o=this._getLocales(s.locale);let r;for(const e of o){const i=this._createUniqueKey(s.key,e);if(r=this._registeredStrings.get(i)??a.get(e)?.[s.key],"string"==typeof r){const e={...s,format:r,locale:s.locale};return n(e,...t)}}}has(e){let t;t="string"==typeof e?{key:e}:{...e};const s=this._getLocales(t.locale);for(const e of s){const s=this._createUniqueKey(t.key,e);if(this._registeredStrings.has(s)||void 0!==a.get(e)?.[t.key])return!0}return!1}_createUniqueKey(e,t){return`${t}${this.localeKeyJoin}${e}`}_getLocales(i){const n=s(i??t());if(!n.includes(this.defaultLocale)){const t=n.indexOf(e),i=s(this.defaultLocale);t<0?n.push(...i):n.splice(t,0,...i)}return n.includes(e)||n.push(e),n}}const o=new LanguageRegistry;export function registerLanguageResources(e){o.add(e)}export function setDefaultLocale(e){o.defaultLocale=e}export function translate(e,...t){return o.get(e,...t)}export function isRegisteredLanguageResource(e,t){return o.has({key:e,locale:t})}
1
+ import{INVARIANT as e,get as t,getMatchingLocales as i}from"../locale.js";import{checkArg as s}from"../utilities/checkArg.js";import{format as n}from"../utilities/format/string.js";const o=new Map;o.set("inv",{"gcx.api.data.convert.import-field-alias":"field{0}","gcx.api.mapping.kml-sublayer-extension.schema.id":"ID","gcx.api.mapping.kml-sublayer-extension.schema.name":"Name","gcx.api.mapping.kml-sublayer-extension.schema.description":"Description","gcx.api.mapping.kml-sublayer-extension.schema.visibility":"Visibility","gcx.api.mapping.kml-sublayer-extension.schema.balloonStyleText":"Popup Description","gcx.api.mapping.kml-sublayer-extension.schema.styleUrl":"Style Url"});export class LanguageRegistry{defaultLocale=e;_registeredStrings=new Map;localeKeyJoin="\0KEY\0";add(e){s("resources",e).isNotMissing();for(const[t,i]of e.values.entries()){const s=this._createUniqueKey(t,e.locale);this._registeredStrings.set(s,i)}}get(e,...t){let i;s("options",e).isNotMissing(),i="string"==typeof e?{key:e}:{...e};const a=this._getLocales(i.locale);let r;for(const e of a){const s=this._createUniqueKey(i.key,e);if(r=this._registeredStrings.get(s)??o.get(e)?.[i.key],"string"==typeof r){const e={...i,format:r,locale:i.locale};return n(e,...t)}}}has(e){let t;t="string"==typeof e?{key:e}:{...e};const i=this._getLocales(t.locale);for(const e of i){const i=this._createUniqueKey(t.key,e);if(this._registeredStrings.has(i)||void 0!==o.get(e)?.[t.key])return!0}return!1}_createUniqueKey(e,t){return`${t}${this.localeKeyJoin}${e}`}_getLocales(s){const n=i(s??t());if(!n.includes(this.defaultLocale)){const t=n.indexOf(e),s=i(this.defaultLocale);t<0?n.push(...s):n.splice(t,0,...s)}return n.includes(e)||n.push(e),n}}const a=new LanguageRegistry;export function registerLanguageResources(e){a.add(e)}export function setDefaultLocale(e){a.defaultLocale=e}export function translate(e,...t){return a.get(e,...t)}export function isRegisteredLanguageResource(e,t){return a.has({key:e,locale:t})}
@@ -42,15 +42,15 @@ export declare class Bookmark extends EntityBase<BookmarkProperties> {
42
42
  /**
43
43
  * The source the bookmark came from.
44
44
  */
45
- source: BookmarkSource;
45
+ source: BookmarkSource | undefined;
46
46
  /**
47
47
  * A human-readable title for the bookmark.
48
48
  */
49
- title: string;
49
+ title: string | undefined;
50
50
  /**
51
51
  * The saved viewpoint to navigate to.
52
52
  */
53
- viewpoint: Viewpoint;
53
+ viewpoint: Viewpoint | undefined;
54
54
  /**
55
55
  * @inheritDoc
56
56
  */
@@ -1 +1 @@
1
- import{createFeatureServices as e}from"@arcgis/core/rest/featureService/utils";import{FeatureSaveError as t}from"../../data/FeatureSaveError.js";import{applyEditsProcessEditedFeatures as a,applyEditsProcessResults as s}from"../../support/_featureEdit.js";import{getGdbVersion as r}from"../../utilities/_version.js";import{isFeatureLayerExtension as d,isSubtypeGroupLayerExtension as u,isSubtypeSublayerExtension as i}from"../../utilities/extensions.js";import{map as o}from"../../utilities/iterable.js";import{getGlobalIdField as l,isGlobalIdUsed as n}from"./layers.js";export async function applyEdits(c){const{addFeatures:p=[],updateFeatures:m=[],deleteFeatures:F=[]}=c,f=new Map,h=new WeakMap,g=new WeakMap,y=new WeakMap,E=(e,t)=>{const a=(e=>d(e.source)||u(e.source)?e.source.layer:i(e.source)?e.source.layerExtension.layer:e.source.table)(e),s=l(a),{objectIdField:r}=a;f.has(a)||f.set(a,{id:a.layerId,identifierFields:{globalIdField:s,objectIdField:r},addFeatures:[],updateFeatures:[],deleteFeatures:[],addAttachments:void 0,updateAttachments:void 0,deleteAttachments:void 0});const o=f.get(a),n=e.toGraphic();"updateFeatures"===t&&e.source?.schema.fieldExtensions.forEach((e=>{e.field.editable||e.field.name===r||e.field.name===s||delete n.attributes[e.field.name]})),o[t].push(n);let c=h;"updateFeatures"===t?c=g:"deleteFeatures"===t&&(c=y),c.has(a)||c.set(a,[]),c.get(a).push(e)};p.forEach((e=>E(e,"addFeatures"))),m.forEach((e=>E(e,"updateFeatures"))),F.forEach((e=>E(e,"deleteFeatures")));const b=e([...f.keys()]),w=new t("Errors encountered when applying edits."),v=await Promise.all(o(b.values(),(async({featureService:e,layers:t})=>{await e.load();const d=[];t.forEach((e=>{d.push(f.get(e))}));try{const u=await e.applyEdits(d,{globalIdUsed:t.every((e=>n(e,f.get(e)))),gdbVersion:t[0].gdbVersion??r(t[0].customParameters)});for(const e of u){const r=t.find((t=>t.layerId===e.id));null!=r&&(s(r,h.get(r),e.addFeatureResults,"add",w),s(r,g.get(r),e.updateFeatureResults,"update",w),s(r,y.get(r),e.deleteFeatureResults,"delete",w),null!=e.editedFeatures&&a(r,{adds:h.get(r),updates:g.get(r)},e.editedFeatures),r.emit("edits",{deletedFeatures:e.deleteFeatureResults??[],updatedFeatures:e.updateFeatureResults??[],addedFeatures:e.addFeatureResults??[],deletedAttachments:[],updatedAttachments:[],addedAttachments:[],exceededTransferLimit:!1}))}return u}catch(e){return w.errors.set("",e),[]}})));if(w.errors.size>0)throw w;return v}
1
+ import{createFeatureServices as e}from"@arcgis/core/rest/featureService/utils";import{FeatureSaveError as t}from"../../data/FeatureSaveError.js";import{applyEditsProcessEditedFeatures as a,applyEditsProcessResults as s}from"../../support/_featureEdit.js";import{getGdbVersion as r}from"../../utilities/_version.js";import{isFeatureLayerExtension as d,isSubtypeGroupLayerExtension as u,isSubtypeSublayerExtension as i}from"../../utilities/extensions.js";import{map as o}from"../../utilities/iterable.js";import{getGlobalIdField as l,isGlobalIdUsed as n}from"./layers.js";export async function applyEdits(c){const{addFeatures:p=[],updateFeatures:m=[],deleteFeatures:F=[]}=c,f=new Map,h=new WeakMap,g=new WeakMap,y=new WeakMap,E=(e,t)=>{const a=(e=>d(e.source)||u(e.source)?e.source.layer:i(e.source)?e.source.layerExtension.layer:e.source.table)(e),s=l(a),{objectIdField:r}=a;f.has(a)||f.set(a,{id:a.layerId,identifierFields:{globalIdField:s,objectIdField:r},addFeatures:[],updateFeatures:[],deleteFeatures:[],addAttachments:void 0,updateAttachments:void 0,deleteAttachments:void 0});const o=f.get(a),n=e.toGraphic();"updateFeatures"===t&&e.source?.schema.fieldExtensions.forEach((e=>{e.field.editable||e.field.name===r||e.field.name===s||delete n.attributes[e.field.name]})),o[t].push(n);let c=h;"updateFeatures"===t?c=g:"deleteFeatures"===t&&(c=y),c.has(a)||c.set(a,[]),c.get(a).push(e)};p.forEach((e=>E(e,"addFeatures"))),m.forEach((e=>E(e,"updateFeatures"))),F.forEach((e=>E(e,"deleteFeatures")));const b=e([...f.keys()]),w=new t("Errors encountered when applying edits."),v=await Promise.all(o(b.values(),(async({featureService:e,layers:t})=>{await e.load();const d=[];t.forEach((e=>{d.push(f.get(e))}));try{const u=await e.applyEdits(d,{globalIdUsed:t.every((e=>n(e,f.get(e)))),gdbVersion:t[0]?.gdbVersion??r(t[0]?.customParameters)});for(const e of u){const r=t.find((t=>t.layerId===e.id));null!=r&&(s(r,h.get(r),e.addFeatureResults,"add",w),s(r,g.get(r),e.updateFeatureResults,"update",w),s(r,y.get(r),e.deleteFeatureResults,"delete",w),null!=e.editedFeatures&&a(r,{adds:h.get(r),updates:g.get(r)},e.editedFeatures),r.emit("edits",{deletedFeatures:e.deleteFeatureResults??[],updatedFeatures:e.updateFeatureResults??[],addedFeatures:e.addFeatureResults??[],deletedAttachments:[],updatedAttachments:[],addedAttachments:[],exceededTransferLimit:!1}))}return u}catch(e){return w.errors.set("",e),[]}})));if(w.errors.size>0)throw w;return v}
package/menus/Menu.d.ts CHANGED
@@ -27,7 +27,7 @@ export declare class Menu<TMenuItemProps extends MenuItemProperties = MenuItemPr
27
27
  /**
28
28
  * The parent menu item of this menu.
29
29
  */
30
- get parentItem(): TMenuItem;
30
+ get parentItem(): TMenuItem | undefined;
31
31
  /**
32
32
  * The factory that will be used whenever a new menu needs to be created.
33
33
  * Applications can supply their own factory to customize menu creation.
package/menus/Menu.js CHANGED
@@ -1 +1 @@
1
- var e;import{__decorate as t}from"tslib";import i from"@arcgis/core/core/Collection";import{EntityBase as r}from"../Entity.js";import{InvalidOperationError as s}from"../InvalidOperationError.js";import{isMenuItem as n,ItemType as o}from"../ItemType.js";import{serializable as m}from"../support/Serializable.js";import{CollectionProxy as a}from"../utilities/CollectionProxy.js";import{checkArg as u}from"../utilities/checkArg.js";import{compare as l}from"../utilities/collection.js";import{getLogger as c}from"../utilities/log.js";import{MenuItem as p}from"./MenuItem.js";const d=c("geocortex.api.menus.Menu");let h=class extends r{static{e=this}get parentItem(){return this._parentItem}static factory;get title(){return this._title}set title(e){this._title=e}get items(){return this._items}_parentItem;_itemType=o.MENU;_title;_items;constructor(e){super(e),this._items=new f(this)}static create(t){if(!e.factory)throw new s("Cannot create menu: no menu factory has been registered.");return e.factory.create(t)}*_initializableChildCollections(){yield*super._initializableChildCollections(),yield this.items}_getSerializableProperties(){return{...super._getSerializableProperties(),items:{serializeModes:["initial"],default:[],deserialize:e=>{const t=new Map;for(const i of e)n(i)?t.set(i.toJSON(),i):t.set(i,void 0);l(this.items,t.keys(),{onNew:e=>{this.items.add(t.get(e)||p.create(e))},onMissing:e=>{this.items.remove(e)},onMatch:(e,i,r,s)=>{r!==s&&this.items.reorder(e,s),t.get(i)!==e&&e.assignProperties(i)},equals:(e,t)=>e.id===t.id})}},title:"initial"}}};h=e=t([m],h);export{h as Menu};class f extends a{_menu;constructor(e){super(new i),this._menu=e}add(e,t){if(u("menuItem",e).isNotMissing(),this._createsCircularReference(this._allSubmenus(e)))throw new s("Adding menu item would create circular menu dependency.");return e.menu&&(e.menu!==this._menu&&d.debug("A MenuItem can only have one parent. The MenuItem has been removed from its original Menu."),e.menu.items.remove(e)),e._menu=this._menu,super.add(e,t)}removeAt(e){const t=super.removeAt(e);return t&&delete t._menu,t}_createsCircularReference(e,t,i){const r=t??this._menu,s=i??(this._menu.parentItem?.root?this._menu.parentItem.root:this._menu);if(e.includes(r))return!0;if(r===s)return!1;const n=r.parentItem.menu;return this._createsCircularReference(e,n,s)}_allSubmenus(e){const t=new i;if(e.submenu){t.add(e.submenu);for(const i of e.submenu.items.toArray())t.addMany(this._allSubmenus(i))}return t}}h.factory={create:e=>new h(e)};
1
+ var e;import{__decorate as t}from"tslib";import i from"@arcgis/core/core/Collection";import{EntityBase as r}from"../Entity.js";import{InvalidOperationError as s}from"../InvalidOperationError.js";import{isMenuItem as n,ItemType as o}from"../ItemType.js";import{serializable as m}from"../support/Serializable.js";import{CollectionProxy as a}from"../utilities/CollectionProxy.js";import{checkArg as u}from"../utilities/checkArg.js";import{compare as l}from"../utilities/collection.js";import{getLogger as c}from"../utilities/log.js";import{MenuItem as p}from"./MenuItem.js";const d=c("geocortex.api.menus.Menu");let h=class extends r{static{e=this}get parentItem(){return this._parentItem}static factory;get title(){return this._title}set title(e){this._title=e}get items(){return this._items}_parentItem;_itemType=o.MENU;_title;_items;constructor(e){super(e),this._items=new f(this)}static create(t){if(!e.factory)throw new s("Cannot create menu: no menu factory has been registered.");return e.factory.create(t)}*_initializableChildCollections(){yield*super._initializableChildCollections(),yield this.items}_getSerializableProperties(){return{...super._getSerializableProperties(),items:{serializeModes:["initial"],default:[],deserialize:e=>{const t=new Map;if(e)for(const i of e)n(i)?t.set(i.toJSON(),i):t.set(i,void 0);l(this.items,t.keys(),{onNew:e=>{this.items.add(t.get(e)||p.create(e))},onMissing:e=>{this.items.remove(e)},onMatch:(e,i,r,s)=>{r!==s&&this.items.reorder(e,s),t.get(i)!==e&&e.assignProperties(i)},equals:(e,t)=>e.id===t.id})}},title:"initial"}}};h=e=t([m],h);export{h as Menu};class f extends a{_menu;constructor(e){super(new i),this._menu=e}add(e,t){if(u("menuItem",e).isNotMissing(),this._createsCircularReference(this._allSubmenus(e)))throw new s("Adding menu item would create circular menu dependency.");return e.menu&&(e.menu!==this._menu&&d.debug("A MenuItem can only have one parent. The MenuItem has been removed from its original Menu."),e.menu.items.remove(e)),e._menu=this._menu,super.add(e,t)}removeAt(e){const t=super.removeAt(e);return t&&(t._menu=void 0),t}_createsCircularReference(e,t,i){const r=t??this._menu,s=i??(this._menu.parentItem?.root?this._menu.parentItem.root:this._menu);if(e.includes(r))return!0;if(r===s)return!1;const n=r.parentItem?.menu;return this._createsCircularReference(e,n,s)}_allSubmenus(e){const t=new i;if(e.submenu){t.add(e.submenu);for(const i of e.submenu.items.toArray())t.addMany(this._allSubmenus(i))}return t}}h.factory={create:e=>new h(e)};
@@ -88,32 +88,32 @@ export declare class MenuItem<TMenuItemProps extends MenuItemProperties = MenuIt
88
88
  /**
89
89
  * A submenu associated with this item.
90
90
  */
91
- get submenu(): Menu<TMenuItemProps, TMenuProps, this>;
92
- set submenu(value: Menu<TMenuItemProps, TMenuProps, this>);
91
+ get submenu(): Menu<TMenuItemProps, TMenuProps, this> | undefined;
92
+ set submenu(value: Menu<TMenuItemProps, TMenuProps, this> | undefined);
93
93
  /**
94
94
  * The parent menu that this item belongs to.
95
95
  */
96
- get menu(): Menu<TMenuItemProps, TMenuProps, this>;
96
+ get menu(): Menu<TMenuItemProps, TMenuProps, this> | undefined;
97
97
  /**
98
98
  * The root menu in the menu hierarchy.
99
99
  */
100
- get root(): Menu<TMenuItemProps, TMenuProps, this>;
100
+ get root(): Menu<TMenuItemProps, TMenuProps, this> | undefined;
101
101
  /**
102
102
  * The ID of the icon to show for this item, e.g. "gcx-icon-zoom-in".
103
103
  */
104
- get iconId(): string;
105
- set iconId(value: string);
104
+ get iconId(): string | undefined;
105
+ set iconId(value: string | undefined);
106
106
  /**
107
107
  * The human-readable caption for the item.
108
108
  */
109
- get title(): string;
110
- set title(value: string);
109
+ get title(): string | undefined;
110
+ set title(value: string | undefined);
111
111
  /**
112
112
  * A longer description explaining what the item does, typically displayed
113
113
  * in a tooltip.
114
114
  */
115
- get description(): string;
116
- set description(value: string);
115
+ get description(): string | undefined;
116
+ set description(value: string | undefined);
117
117
  /**
118
118
  * Determines whether the user is able to select this item.
119
119
  */
@@ -129,8 +129,8 @@ export declare class MenuItem<TMenuItemProps extends MenuItemProperties = MenuIt
129
129
  /**
130
130
  * Indicates which action to perform when this item is selected.
131
131
  */
132
- get action(): Action;
133
- set action(value: Action);
132
+ get action(): Action | undefined;
133
+ set action(value: Action | undefined);
134
134
  /**
135
135
  * The alternate state to set when the menu item is toggled.
136
136
  */
package/menus/MenuItem.js CHANGED
@@ -1 +1 @@
1
- var e;import{__decorate as t}from"tslib";import i from"@arcgis/core/core/Collection";import{EntityBase as s}from"../Entity.js";import{InvalidOperationError as n}from"../InvalidOperationError.js";import{isMenu as r,ItemType as a}from"../ItemType.js";import{serializable as o}from"../support/Serializable.js";import{objectKeys as u}from"../utilities/object.js";import{Menu as l}from"./Menu.js";let h=class extends s{static{e=this}static factory;_menu;_itemType=a.MENU_ITEM;_isToggled=!1;_submenu;_iconId;_isEnabled=!0;_description;_title;_hideOnDisable=!1;_action;_alternate;constructor(e){super(e),this._isToggled=e?.isToggled??!1}get canBeToggled(){return!!this.alternate}get isToggled(){return this._isToggled}get submenu(){return this._submenu}set submenu(e){if(e&&this._createsCircularReference(this._allSubmenus(e)))throw new n("Menu is already part of the menu hierarchy.");this._submenu&&delete this._submenu._parentItem,this._submenu=e,this._submenu&&(this._submenu._parentItem=this)}get menu(){return this._menu}get root(){return this.menu?.parentItem?.root?this.menu.parentItem.root:this.menu}get iconId(){return this._iconId}set iconId(e){this._iconId=e}get title(){return this._title}set title(e){this._title=e}get description(){return this._description}set description(e){this._description=e}get isEnabled(){return this._isEnabled}set isEnabled(e){this._isEnabled=e}get hideOnDisable(){return this._hideOnDisable}set hideOnDisable(e){this._hideOnDisable=e}get action(){return this._action}set action(e){this._action=e}get alternate(){return this._alternate}set alternate(e){this._alternate=e}static create(t){if(!e.factory)throw new n("Cannot create menu item: no menu item factory has been registered.");return e.factory.create(t)}toggle(){if(!this.canBeToggled)throw new n("This menu item cannot be toggled. Set `alternate` to enable toggling.");this._isToggled=!this._isToggled;for(const e of u(this.alternate)){const t=this.alternate[e];this.alternate[e]=this[e],this[e]=t}}async _onInitialize(){await super._onInitialize(),this.submenu&&await this.submenu.initialize()}_getSerializableProperties(){return{...super._getSerializableProperties(),iconId:"initial",title:"initial",description:"initial",isEnabled:{serializeModes:["initial"],default:!0},hideOnDisable:{serializeModes:["initial"],default:!1},isToggled:{serializeModes:["initial"],deserialize:!1,default:!1},action:"initial",alternate:{serializeModes:["initial"],deserialize:e=>{this.alternate=e?{...e}:void 0}},submenu:{serializeModes:["initial"],deserialize:e=>{e?r(e)?this.submenu=e:this.submenu?this.submenu.assignProperties(e):this.submenu=l.create(e):this.submenu=void 0}}}}_createsCircularReference(e,t,i){if(!t&&!this.menu)return!1;const s=t??this.menu,n=i??(this.menu.parentItem?.root?this.menu.parentItem.root:this.menu);if(e.includes(s))return!0;if(s===n)return!1;const r=s.parentItem.menu;return this._createsCircularReference(e,r,n)}_allSubmenus(e){const t=new i;t.add(e);for(const i of e.items.toArray())i.submenu&&t.addMany(this._allSubmenus(i.submenu));return t}};h=e=t([o],h);export{h as MenuItem};h.factory={create:e=>new h(e)};
1
+ var e;import{__decorate as t}from"tslib";import i from"@arcgis/core/core/Collection";import{EntityBase as s}from"../Entity.js";import{InvalidOperationError as n}from"../InvalidOperationError.js";import{isMenu as r,ItemType as a}from"../ItemType.js";import{serializable as o}from"../support/Serializable.js";import{objectKeys as u}from"../utilities/object.js";import{Menu as l}from"./Menu.js";let h=class extends s{static{e=this}static factory;_menu;_itemType=a.MENU_ITEM;_isToggled=!1;_submenu;_iconId;_isEnabled=!0;_description;_title;_hideOnDisable=!1;_action;_alternate;constructor(e){super(e),this._isToggled=e?.isToggled??!1}get canBeToggled(){return!!this.alternate}get isToggled(){return this._isToggled}get submenu(){return this._submenu}set submenu(e){if(e&&this._createsCircularReference(this._allSubmenus(e)))throw new n("Menu is already part of the menu hierarchy.");this._submenu&&(this._submenu._parentItem=void 0),this._submenu=e,this._submenu&&(this._submenu._parentItem=this)}get menu(){return this._menu}get root(){return this.menu?.parentItem?.root?this.menu.parentItem.root:this.menu}get iconId(){return this._iconId}set iconId(e){this._iconId=e}get title(){return this._title}set title(e){this._title=e}get description(){return this._description}set description(e){this._description=e}get isEnabled(){return this._isEnabled}set isEnabled(e){this._isEnabled=e}get hideOnDisable(){return this._hideOnDisable}set hideOnDisable(e){this._hideOnDisable=e}get action(){return this._action}set action(e){this._action=e}get alternate(){return this._alternate}set alternate(e){this._alternate=e}static create(t){if(!e.factory)throw new n("Cannot create menu item: no menu item factory has been registered.");return e.factory.create(t)}toggle(){if(!this.canBeToggled)throw new n("This menu item cannot be toggled. Set `alternate` to enable toggling.");this._isToggled=!this._isToggled;for(const e of u(this.alternate)){const t=this.alternate[e];this.alternate[e]=this[e],this[e]=t}}async _onInitialize(){await super._onInitialize(),this.submenu&&await this.submenu.initialize()}_getSerializableProperties(){return{...super._getSerializableProperties(),iconId:"initial",title:"initial",description:"initial",isEnabled:{serializeModes:["initial"],default:!0},hideOnDisable:{serializeModes:["initial"],default:!1},isToggled:{serializeModes:["initial"],deserialize:!1,default:!1},action:"initial",alternate:{serializeModes:["initial"],deserialize:e=>{this.alternate=e?{...e}:void 0}},submenu:{serializeModes:["initial"],deserialize:e=>{e?r(e)?this.submenu=e:this.submenu?this.submenu.assignProperties(e):this.submenu=l.create(e):this.submenu=void 0}}}}_createsCircularReference(e,t,i){if(!t&&!this.menu)return!1;const s=t??this.menu,n=i??(this.menu?.parentItem?.root?this.menu.parentItem.root:this.menu);if(s&&e.includes(s))return!0;if(s===n)return!1;const r=s?.parentItem?.menu;return this._createsCircularReference(e,r,n)}_allSubmenus(e){const t=new i;t.add(e);for(const i of e.items.toArray())i.submenu&&t.addMany(this._allSubmenus(i.submenu));return t}};h=e=t([o],h);export{h as MenuItem};h.factory={create:e=>new h(e)};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vertigis/arcgis-extensions",
3
3
  "license": "SEE LICENSE IN LICENSE",
4
- "version": "54.3.0",
4
+ "version": "54.3.2",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://dev.azure.com/vertigis/Studio/_git/arcgis-extensions-ts"
@@ -95,7 +95,7 @@
95
95
  "jest-util": "30.0.5",
96
96
  "jest-watch-typeahead": "3.0.1",
97
97
  "jsdom": "26.1.0",
98
- "lint-staged": "15.2.10",
98
+ "lint-staged": "17.0.8",
99
99
  "nock": "13.5.5",
100
100
  "node-fetch": "3.3.2",
101
101
  "path-equal": "1.2.5",
@@ -30,11 +30,11 @@ export declare class Cancellation {
30
30
  /**
31
31
  * The reason for cancellation.
32
32
  */
33
- reason: unknown;
33
+ readonly reason: unknown;
34
34
  /**
35
35
  * The cancel token that triggered the cancellation.
36
36
  */
37
- token: CancelToken;
37
+ readonly token: CancelToken | undefined;
38
38
  constructor(reason?: unknown, token?: CancelToken);
39
39
  }
40
40
  /**
@@ -41,7 +41,7 @@ export interface InitializeWarningEvent {
41
41
  * The {@link support/InitializableBase!InitializableBase} that raised the
42
42
  * event.
43
43
  */
44
- target: InitializableBase;
44
+ target?: InitializableBase;
45
45
  }
46
46
  /**
47
47
  * A callback that is invoked when
@@ -1 +1 @@
1
- import{getLogger as i}from"../utilities/log.js";import{parallelEach as e}from"../utilities/promise.js";import{handles as t}from"./HandlesMixin.js";import{InitializeError as r}from"./InitializeError.js";import{SerializableBase as s}from"./Serializable.js";import{notifyChange as a,observable as o}from"./observableUtils.js";export class InitializableBase extends(t(o(s))){get isInitialized(){return this._isInitialized}get isDestroyed(){return this._isDestroyed}get failureMode(){return this._failureMode}set failureMode(i){this._failureMode=i}_isInitialized=!1;_isDestroyed=!1;_initializePromise;_destroyPromise;_failureMode="warn";async initialize(){return void 0===this._initializePromise&&(this._initializePromise=(async()=>{try{await this.finishAssignProperties(),await this._onInitialize(),await this._initializeChildren(),await this._postInitialize()}catch(i){throw i instanceof Error?(this._initializePromise=void 0,new r(this.failureMode,i,this)):i}this._isInitialized=!0,a(this,"isInitialized")})()),this._initializePromise}async destroy(){return void 0===this._destroyPromise&&(this._destroyPromise=(async()=>{try{await this._onDestroy(),super.destroy()}catch(i){throw this._destroyPromise=void 0,i}this._isDestroyed=!0,a(this,"isDestroyed")})()),this._destroyPromise}toJSON(i="all"){return super.toJSON(i)}assignProperties(i){super.assignProperties(i)}assignPropertiesAsync(i){return super.assignPropertiesAsync(i)}getDefaults(){return super.getDefaults()}getDefault(i){return super.getDefault(i)}getSerializableProperties(i){return super.getSerializableProperties(i)}_getSerializableProperties(){return{...super._getSerializableProperties(),failureMode:{serializeModes:["initial"],default:"warn"}}}async _onInitialize(){}async _postInitialize(){}async _onDestroy(){}async _initializeChildren(){await e(this._initializableChildCollections(),(i=>initializeCollection(i,{target:this,onInitializeWarning:i=>this.emit("initializeWarning",i)})))}*_initializableChildCollections(){}}const n={onInitializeWarning:()=>{}};export async function initializeCollection(t,s=n){const{onInitializeWarning:a,target:o}=s;await e(t.toArray(),(async e=>{const t=e.on("initializeWarning",a);try{await e.initialize()}catch(t){const s=t instanceof r?t:new r(e.failureMode,t,e);if("error"===s.failureMode)throw s;"warn"===s.failureMode&&i("geocortex.api.support.InitializeBase").warn({message:"Error attempting to initialize child item: {0}.",error:s},s.error.message);a({error:s,target:o})}finally{t.remove()}}))}
1
+ import{getLogger as i}from"../utilities/log.js";import{parallelEach as e}from"../utilities/promise.js";import{handles as t}from"./HandlesMixin.js";import{InitializeError as r}from"./InitializeError.js";import{SerializableBase as s}from"./Serializable.js";import{notifyChange as a,observable as o}from"./observableUtils.js";export class InitializableBase extends(t(o(s))){get isInitialized(){return this._isInitialized}get isDestroyed(){return this._isDestroyed}get failureMode(){return this._failureMode}set failureMode(i){this._failureMode=i}_isInitialized=!1;_isDestroyed=!1;_initializePromise;_destroyPromise;_failureMode="warn";async initialize(){return void 0===this._initializePromise&&(this._initializePromise=(async()=>{try{await this.finishAssignProperties(),await this._onInitialize(),await this._initializeChildren(),await this._postInitialize()}catch(i){throw i instanceof Error?(this._initializePromise=void 0,new r(this.failureMode,i,this)):i}this._isInitialized=!0,a(this,"isInitialized")})()),this._initializePromise}async destroy(){return void 0===this._destroyPromise&&(this._destroyPromise=(async()=>{try{await this._onDestroy(),super.destroy()}catch(i){throw this._destroyPromise=void 0,i}this._isDestroyed=!0,a(this,"isDestroyed")})()),this._destroyPromise}toJSON(i="all"){return super.toJSON(i)}assignProperties(i){super.assignProperties(i)}assignPropertiesAsync(i){return super.assignPropertiesAsync(i)}getDefaults(){return super.getDefaults()}getDefault(i){return super.getDefault(i)}getSerializableProperties(i){return super.getSerializableProperties(i)}_getSerializableProperties(){return{...super._getSerializableProperties(),failureMode:{serializeModes:["initial"],default:"warn"}}}async _onInitialize(){}async _postInitialize(){}async _onDestroy(){}async _initializeChildren(){await e(this._initializableChildCollections(),(i=>initializeCollection(i,{target:this,onInitializeWarning:i=>this.emit("initializeWarning",i)})))}*_initializableChildCollections(){}}const n=()=>{};export async function initializeCollection(t,s){const{onInitializeWarning:a=n,target:o}=s??{};await e(t.toArray(),(async e=>{const t=e.on("initializeWarning",a);try{await e.initialize()}catch(t){const s=t instanceof r?t:new r(e.failureMode,t,e);if("error"===s.failureMode)throw s;"warn"===s.failureMode&&i("geocortex.api.support.InitializeBase").warn({message:"Error attempting to initialize child item: {0}.",error:s},s.error.message);const n={error:s,target:o};a?.(n)}finally{t.remove()}}))}
@@ -2,7 +2,7 @@ import { Evented } from "@arcgis/core/core/Evented.js";
2
2
  /**
3
3
  * A class that can take in initial property values in its constructor.
4
4
  */
5
- export type SerializableClass<P, T extends SerializableBase<P>> = new (properties?: P, ...other: any[]) => T;
5
+ export type SerializableClass<P, T extends SerializableBase<P>> = new (properties: P, ...other: any[]) => T;
6
6
  /**
7
7
  * An object that can be serialized to/from plain JSON.
8
8
  */
@@ -178,6 +178,7 @@ export declare function shouldExcludeDefaults(mode: SerializeMode): boolean;
178
178
  * serialized.
179
179
  */
180
180
  export declare function filterJSONProperties<T, TContext extends object = object>(defs: PropertyDefs<T>, context: TContext, serializeMode: SerializeMode): T;
181
+ export declare function filterJSONProperties<T, TContext extends object = object>(defs: PropertyDefs<T>, context: TContext, serializeMode: "preferences"): T | undefined;
181
182
  /**
182
183
  * Sets properties on an object based on deserialization rules defined in
183
184
  * property metadata.
@@ -223,7 +224,7 @@ export declare function isDefault(value: unknown): boolean;
223
224
  *
224
225
  * @param def The value to convert.
225
226
  */
226
- export declare function toPropertyDef<T>(def: PropertyDef<T> | PropertyDefSerializeMode[] | PropertyDefSerializeMode): PropertyDef<T>;
227
+ export declare function toPropertyDef<T>(def: PropertyDef<T> | PropertyDefSerializeMode[] | PropertyDefSerializeMode | undefined): PropertyDef<T>;
227
228
  /**
228
229
  * Returns whether or not an object is serializable.
229
230
  *
@@ -1 +1 @@
1
- import{Evented as e}from"@arcgis/core/core/Evented.js";import t from"safe-stable-stringify";import{filter as r,isPlainObject as i,map as s,objectKeys as o}from"../utilities/object.js";const n=new WeakSet;export class SerializableBase extends e{_assignPropertiesPromises=[];constructor(e){if(super(),!n.has(this.constructor))throw new Error(`Class "${this.constructor.name}" must be marked as "@serializable" since it extends ${SerializableBase.name} (make sure it is the _last_ decorator on the class).`)}toJSON(e="all"){return filterJSONProperties(this._getSerializableProperties(),this,e)}assignProperties(e){const t=a(this._getSerializableProperties(),this,e,!0);this._assignPropertiesPromises.push(t),(async()=>{try{await t}finally{this._assignPropertiesPromises.splice(this._assignPropertiesPromises.indexOf(t),1)}})()}async assignPropertiesAsync(e){await this.finishAssignProperties();const t=assignPropertiesAsync(this._getSerializableProperties(),this,e);this._assignPropertiesPromises.push(t);try{await t}finally{this._assignPropertiesPromises.splice(this._assignPropertiesPromises.indexOf(t),1)}}async finishAssignProperties(){await Promise.all(this._assignPropertiesPromises)}getSerializableProperties(e="all"){return getSerializableProperties(this._getSerializableProperties(),e)}getDefaults(){return getDefaults(this._getSerializableProperties())}getDefault(e){return this.getDefaults()[e]}_getSerializableProperties(){return{}}_toPropertyDef(e){return toPropertyDef(e)}}export function serializable(e){if(!isSerializable(e.prototype))throw new Error(`Class "${e.name}" is marked as @serializable but does not implement 'Serializable'.`);class t extends e{constructor(e,...r){super(e,...r),this.constructor===t&&this.assignProperties({...this.getDefaults(),...e})}}return n.add(t),t}export function shouldExcludeDefaults(e){return"initial"===e||"project"===e}export function filterJSONProperties(e,r,i){let s=i;"initial"!==s&&"initial-with-defaults"!==s&&"preferences"!==s&&"project"!==s&&(s="all");const n={},a=getSerializableProperties(e,s);for(const e of o(a)){const i=a[e],o=l(e,i,r,s);if(shouldExcludeDefaults(s)){let r=!1;r=i.hasOwnProperty("default")?t(o)===t(i.default):i.isDefault?i.isDefault(o,s):isDefault(o),r||(n[e]=o)}else n[e]=o}if(!shouldExcludeDefaults(s)&&"preferences"!==s||!isDefault(n))return n}export function assignProperties(e,t,r){r&&a(e,t,r,!0)}export function assignPropertiesAsync(e,t,r){return a(e,t,r)}function a(e,t,r,s=!1){if(!r)return Promise.resolve();const o=[];return Object.keys(e).forEach((n=>{const a=e[n];if(r.hasOwnProperty(n)&&(Array.isArray(e[n])||!1!==a.deserialize))try{const e=r[n]??void 0;if(a?.deserialize){const t=a.deserialize(e);t&&o.push(t)}else"object"!=typeof t[n]||!t[n]||!i(e)&&void 0!==e||s||"function"!=typeof t[n].assignPropertiesAsync?"object"==typeof t[n]&&t[n]&&(i(e)||void 0===e)&&"function"==typeof t[n].assignProperties?t[n].assignProperties(e):t[n]=e:o.push(t[n].assignPropertiesAsync(e))}catch(e){if(s)throw e;o.push(Promise.reject(e))}})),Promise.all(o).then()}export function getDefaults(e){const t={},r=o(e).filter((t=>"object"==typeof e[t]));for(const i of r){const r=e[i];r.hasOwnProperty("default")&&(t[i]=r.default)}return t}export function getDefault(e,t){return getDefaults(e)[t]}export function isDefault(e){if(null==e)return!0;if(e.constructor===Object){if(!Object.keys(e).length)return!0}return!(!Array.isArray(e)||e.length)}function l(e,t,r,i){const s=t?.serialize?t.serialize(i):r[e];if(s&&"function"==typeof s.toItemUri)return s.toItemUri();if(s&&"function"==typeof s.toJSON)return s.toJSON(i);if(Array.isArray(s))return s.map(((e,t)=>l(t,void 0,s,i)));if(s&&"function"==typeof s.toArray){const e=s.toArray();return e.map(((t,r)=>l(r,void 0,e,i)))}if(s&&"object"==typeof s){const e={};for(const t of Object.keys(s))e[t]=l(t,void 0,s,i);return e}return t?.serialize?s:r[e]}export function toPropertyDef(e){const t={serializeModes:[]};return"string"==typeof e?{...t,serializeModes:[e]}:Array.isArray(e)?{...t,serializeModes:e}:{...t,...e}}export function isSerializable(e){return["assignProperties","getDefaults","getSerializableProperties","toJSON"].every((t=>"function"==typeof e[t]))}export function getSerializableProperties(e,t="all"){const i=s(e,(e=>toPropertyDef(e))),o=r(i,(e=>function(e,t){if(!1===t.serialize)return!1;const r="initial-with-defaults"===e?"initial":e;return"all"===e||t.serializeModes?.includes(r)}(t,e)));return o}
1
+ import{Evented as e}from"@arcgis/core/core/Evented.js";import t from"safe-stable-stringify";import{filter as r,isPlainObject as i,map as s,objectKeys as o}from"../utilities/object.js";const n=new WeakSet;export class SerializableBase extends e{_assignPropertiesPromises=[];constructor(e){if(super(),!n.has(this.constructor))throw new Error(`Class "${this.constructor.name}" must be marked as "@serializable" since it extends ${SerializableBase.name} (make sure it is the _last_ decorator on the class).`)}toJSON(e="all"){return filterJSONProperties(this._getSerializableProperties(),this,e)}assignProperties(e){const t=a(this._getSerializableProperties(),this,e,!0);this._assignPropertiesPromises.push(t),(async()=>{try{await t}finally{this._assignPropertiesPromises.splice(this._assignPropertiesPromises.indexOf(t),1)}})()}async assignPropertiesAsync(e){await this.finishAssignProperties();const t=assignPropertiesAsync(this._getSerializableProperties(),this,e);this._assignPropertiesPromises.push(t);try{await t}finally{this._assignPropertiesPromises.splice(this._assignPropertiesPromises.indexOf(t),1)}}async finishAssignProperties(){await Promise.all(this._assignPropertiesPromises)}getSerializableProperties(e="all"){return getSerializableProperties(this._getSerializableProperties(),e)}getDefaults(){return getDefaults(this._getSerializableProperties())}getDefault(e){return this.getDefaults()[e]}_getSerializableProperties(){return{}}_toPropertyDef(e){return toPropertyDef(e)}}export function serializable(e){if(!isSerializable(e.prototype))throw new Error(`Class "${e.name}" is marked as @serializable but does not implement 'Serializable'.`);class t extends e{constructor(e,...r){super(e,...r),this.constructor===t&&this.assignProperties({...this.getDefaults(),...e})}}return n.add(t),t}export function shouldExcludeDefaults(e){return"initial"===e||"project"===e}export function filterJSONProperties(e,r,i){let s=i;"initial"!==s&&"initial-with-defaults"!==s&&"preferences"!==s&&"project"!==s&&(s="all");const n={},a=getSerializableProperties(e,s);for(const e of o(a)){const i=a[e],o=l(e,i,r,s);if(shouldExcludeDefaults(s)){let r=!1;r=i.hasOwnProperty("default")?t(o)===t(i.default):i.isDefault?i.isDefault(o,s):isDefault(o),r||(n[e]=o)}else n[e]=o}if(!shouldExcludeDefaults(s)&&"preferences"!==s||!isDefault(n))return n}export function assignProperties(e,t,r){r&&a(e,t,r,!0)}export function assignPropertiesAsync(e,t,r){return a(e,t,r)}function a(e,t,r,s=!1){if(!r)return Promise.resolve();const o=[];return Object.keys(e).forEach((n=>{const a=e[n];if(r.hasOwnProperty(n)&&(Array.isArray(e[n])||!1!==a.deserialize))try{const e=r[n]??void 0;if(a?.deserialize){const t=a.deserialize(e);t&&o.push(t)}else"object"!=typeof t[n]||!t[n]||!i(e)&&void 0!==e||s||"function"!=typeof t[n].assignPropertiesAsync?"object"==typeof t[n]&&t[n]&&(i(e)||void 0===e)&&"function"==typeof t[n].assignProperties?t[n].assignProperties(e):t[n]=e:o.push(t[n].assignPropertiesAsync(e))}catch(e){if(s)throw e;o.push(Promise.reject(e))}})),Promise.all(o).then()}export function getDefaults(e){const t={},r=o(e).filter((t=>"object"==typeof e[t]));for(const i of r){const r=e[i];r.hasOwnProperty("default")&&(t[i]=r.default)}return t}export function getDefault(e,t){return getDefaults(e)[t]}export function isDefault(e){if(null==e)return!0;if(e.constructor===Object){if(!Object.keys(e).length)return!0}return!(!Array.isArray(e)||e.length)}function l(e,t,r,i){const s=t?.serialize?t.serialize(i):r[e];if(s&&"function"==typeof s.toItemUri)return s.toItemUri();if(s&&"function"==typeof s.toJSON)return s.toJSON(i);if(Array.isArray(s))return s.map(((e,t)=>l(t,void 0,s,i)));if(s&&"function"==typeof s.toArray){const e=s.toArray();return e.map(((t,r)=>l(r,void 0,e,i)))}if(s&&"object"==typeof s){const e={};for(const t of Object.keys(s))e[t]=l(t,void 0,s,i);return e}return t?.serialize?s:r[e]}export function toPropertyDef(e){const t={serializeModes:[]};return"string"==typeof e?{...t,serializeModes:[e]}:Array.isArray(e)?{...t,serializeModes:e}:{...t,...e}}export function isSerializable(e){return["assignProperties","getDefaults","getSerializableProperties","toJSON"].every((t=>"function"==typeof e[t]))}export function getSerializableProperties(e,t="all"){const i=s(e,(e=>toPropertyDef(e))),o=r(i,(e=>!!e&&function(e,t){if(!1===t.serialize)return!1;const r="initial-with-defaults"===e?"initial":e;return"all"===e||!0===t.serializeModes?.includes(r)}(t,e)));return o}
@@ -1 +1 @@
1
- import e from"@arcgis/core/core/Collection";import{RelationshipCollection as i}from"../data/FeatureSourceBase.js";import{ArcGISRelationship as r}from"../tasks/query/ArcGISRelationship.js";import{map as t}from"../utilities/promise.js";import{DefaultArcGISRequestHelper as s}from"./ArcGISRequestHelper.js";export class ArcGISRelationshipCollection extends i{_unresolvedRelationships=new e;_requestHelper;_initializePromise;get requestHelper(){return this._requestHelper||(this._requestHelper=this._source.requestHelper??new s),this._requestHelper}set requestHelper(e){this._requestHelper=e}async initialize(){return void 0===this._initializePromise&&(this._initializePromise=(async()=>{if(!this._sourceUrl)return;const e=await this.requestHelper.request(this._sourceUrl,{query:{f:"json"}});e?.data?.relationships&&await t(e.data.relationships,(async e=>{const i=`${this._sourceUrl.slice(0,this._sourceUrl.length-`${this._sourceLayerId}`.length-1)}/${e.relatedTableId}`,r=await this.requestHelper.request(i,{query:{f:"json"}});if(!r?.data||!Array.isArray(r?.data.relationships))return;const t=r.data.relationships.find((e=>e.relatedTableId===this._sourceLayerId));let s="many-to-many";switch(e.cardinality){case"esriRelCardinalityOneToOne":s="one-to-one";break;case"esriRelCardinalityOneToMany":s="esriRelRoleOrigin"===e.role?"one-to-many":"many-to-one";break;case"esriRelCardinalityManyToMany":s="many-to-many";break;default:throw new Error(`Unknown cardinality value "${e.cardinality}".`)}this._unresolvedRelationships.add({$relationshipType:"ArcGISRelationship",id:`${e.id}`,title:e.name,keyField:e.keyField,relatedKeyField:t?.keyField,relatedSource:void 0,relatedLayerId:e.relatedTableId,cardinality:s,relationshipTableId:e.relationshipTableId,originForeignKey:e.keyFieldInRelationshipTable,destinationForeignKey:t?.keyFieldInRelationshipTable})}))})()),this._initializePromise}get _collection(){const e=this._unresolvedRelationships.toArray();this._unresolvedRelationships.removeAll();for(const i of e)this._resolveRelationship(i)||this._unresolvedRelationships.add(i);return this._collectionField}_resolveRelationship(e){const i=this._findRelatedSource(e.relatedLayerId);return!!i&&(e.relatedSource=i,this.add(new r(e)),!0)}}
1
+ import e from"@arcgis/core/core/Collection";import{RelationshipCollection as i}from"../data/FeatureSourceBase.js";import{ArcGISRelationship as r}from"../tasks/query/ArcGISRelationship.js";import{map as t}from"../utilities/promise.js";import{DefaultArcGISRequestHelper as s}from"./ArcGISRequestHelper.js";export class ArcGISRelationshipCollection extends i{_unresolvedRelationships=new e;_requestHelper;_initializePromise;get requestHelper(){return this._requestHelper||(this._requestHelper=this._source.requestHelper??new s),this._requestHelper}set requestHelper(e){this._requestHelper=e}async initialize(){return void 0===this._initializePromise&&(this._initializePromise=(async()=>{if(!this._sourceUrl)return;const e=await this.requestHelper.request(this._sourceUrl,{query:{f:"json"}});e?.data?.relationships&&await t(e.data.relationships,(async e=>{const i=`${this._sourceUrl.slice(0,this._sourceUrl.length-`${this._sourceLayerId}`.length-1)}/${e.relatedTableId}`,r=await this.requestHelper.request(i,{query:{f:"json"}});if(!r?.data||!Array.isArray(r?.data.relationships))return;const t=r.data.relationships.find((e=>e.relatedTableId===this._sourceLayerId));let s="many-to-many";switch(e.cardinality){case"esriRelCardinalityOneToOne":s="one-to-one";break;case"esriRelCardinalityOneToMany":s="esriRelRoleOrigin"===e.role?"one-to-many":"many-to-one";break;case"esriRelCardinalityManyToMany":s="many-to-many";break;default:throw new Error(`Unknown cardinality value "${e.cardinality}".`)}this._unresolvedRelationships.add({$relationshipType:"ArcGISRelationship",id:`${e.id}`,title:e.name,keyField:e.keyField,relatedKeyField:t?.keyField,relatedLayerId:e.relatedTableId,cardinality:s,relationshipTableId:e.relationshipTableId,originForeignKey:e.keyFieldInRelationshipTable,destinationForeignKey:t?.keyFieldInRelationshipTable})}))})()),this._initializePromise}get _collection(){const e=this._unresolvedRelationships.toArray();this._unresolvedRelationships.removeAll();for(const i of e)this._resolveRelationship(i)||this._unresolvedRelationships.add(i);return this._collectionField}_resolveRelationship(e){const i=this._findRelatedSource(e.relatedLayerId);return!!i&&(this.add(new r({...e,relatedSource:i})),!0)}}
@@ -1 +1 @@
1
- import{FeatureSaveError as e}from"../data/FeatureSaveError.js";import{getGlobalIdField as t,getReturnServiceEditsOption as s,isGlobalIdUsed as r}from"../mapping/support/layers.js";import{isFeatureLayer as l,isSubtypeGroupLayer as n}from"../utilities/_layers.js";import{cancelify as o}from"./Cancellable.js";export async function applyEdits(a,u,i){const d={addFeatures:[],updateFeatures:[],deleteFeatures:[]},{adds:c=[],updates:p=[],deletes:f=[]}=a,y=[],m=[],h=[],g=l(u)||n(u)?t(u):void 0,{objectIdField:F}=u;for(const e of c)d.addFeatures.push(e.toGraphic()),y.push(e);for(const e of p){const t=e.toGraphic();e.source?.schema.fieldExtensions.forEach((e=>{e.field.editable||e.field.name===F||e.field.name===g||delete t.attributes[e.field.name]})),d.updateFeatures.push(t),m.push(e)}for(const e of f)"string"==typeof e?(d.deleteFeatures.push({objectId:e}),h.push({primaryKey:e})):(d.deleteFeatures.push(e.toGraphic()),h.push(e));if(0===y.length&&0===m.length&&0===h.length)return;const b=l(u)||n(u)?r(u,d):void 0,E=u.applyEdits(d,{globalIdUsed:b,returnServiceEditsOption:s(u)}),R=await o(E,i?.cancelToken);if(null==R||(R.addFeatureResults?.length??0)!==y.length||(R.updateFeatureResults?.length??0)!==m.length||(R.deleteFeatureResults?.length??0)!==h.length)throw new e("Received malformed response from server while saving feature(s).");const w=new e("Errors encountered when editing features.");if(applyEditsProcessResults(u,y,R.addFeatureResults,"add",w),applyEditsProcessResults(u,m,R.updateFeatureResults,"update",w),applyEditsProcessResults(u,h,R.deleteFeatureResults,"delete",w),null!=R.editedFeatureResults&&function(e,t,s){if(null==t.adds&&null==t.updates)return;for(const r of s)r.layerId===e.layerId&&applyEditsProcessEditedFeatures(e,t,r.editedFeatures)}(u,{adds:y,updates:m},R.editedFeatureResults),w.errors.size>0)throw w}export function applyEditsProcessResults(e,s,r,o,a){if(null!=r&&null!=s)for(const[u,i]of r.entries()){const r=s[u];if(null!=r)if(null==i.error){if("add"===o&&"schema"in r){const{primaryKeyField:s}=r.schema;if(r.attributes.set(s,i.objectId),l(e)||n(e)){const{globalId:s}=i;if(null!=s){const l=t(e);null!=l&&r.attributes.set(l,s)}}}}else{const{primaryKey:e}=r,t="title"in r?r.title:"";a.errors.set(e??`${t}-${u}`,new Error(`Failed to ${o} feature '${t}' with id ${e}. ${i.error.name} : ${i.error.message}`))}}}export function applyEditsProcessEditedFeatures(e,t,s){const r=(t,s)=>{const r=t.getAttribute(e.objectIdField);null!=r&&s.set(r.toString(),t)};if(null!=s.adds&&null!=t.adds){const e=s.adds.reduce(((e,t)=>(r(t,e),e)),new Map);for(const s of t.adds){if(null==s.primaryKey)continue;const t=e.get(s.primaryKey);null!=t&&a(s,t)}}if(null!=s.updates&&null!=t.updates){const e=s.updates.reduce(((e,t)=>{if(null==t.current)return e;if(Array.isArray(t.current))for(const s of t.current)r(s,e);else{const s=t.current;r(s,e)}return e}),new Map);for(const s of t.updates){if(null==s.primaryKey)continue;const t=e.get(s.primaryKey);null!=t&&a(s,t)}}}function a(e,t){for(const[s,r]of Object.entries(t.attributes))e.attributes.get(s)!==r&&e.attributes.set(s,r);null!=t.geometry&&(e.geometry=t.geometry.clone())}
1
+ import{FeatureSaveError as e}from"../data/FeatureSaveError.js";import{getGlobalIdField as t,getReturnServiceEditsOption as s,isGlobalIdUsed as r}from"../mapping/support/layers.js";import{isFeatureLayer as l,isSubtypeGroupLayer as n}from"../utilities/_layers.js";import{cancelify as o}from"./Cancellable.js";export async function applyEdits(u,a,i){const d={addFeatures:[],updateFeatures:[],deleteFeatures:[]},{adds:c=[],updates:p=[],deletes:f=[]}=u,y=[],m=[],h=[],g=l(a)||n(a)?t(a):void 0,{objectIdField:F}=a;for(const e of c)d.addFeatures.push(e.toGraphic()),y.push(e);for(const e of p){const t=e.toGraphic();e.source?.schema.fieldExtensions.forEach((e=>{e.field.editable||e.field.name===F||e.field.name===g||delete t.attributes[e.field.name]})),d.updateFeatures.push(t),m.push(e)}for(const e of f)"string"==typeof e?(d.deleteFeatures.push({objectId:e}),h.push({primaryKey:e})):(d.deleteFeatures.push(e.toGraphic()),h.push(e));if(0===y.length&&0===m.length&&0===h.length)return;const b=l(a)||n(a)?r(a,d):void 0,E=a.applyEdits(d,{globalIdUsed:b,returnServiceEditsOption:s(a)}),R=await o(E,i?.cancelToken);if(null==R||(R.addFeatureResults?.length??0)!==y.length||(R.updateFeatureResults?.length??0)!==m.length||(R.deleteFeatureResults?.length??0)!==h.length)throw new e("Received malformed response from server while saving feature(s).");const w=new e("Errors encountered when editing features.");if(applyEditsProcessResults(a,y,R.addFeatureResults,"add",w),applyEditsProcessResults(a,m,R.updateFeatureResults,"update",w),applyEditsProcessResults(a,h,R.deleteFeatureResults,"delete",w),null!=R.editedFeatureResults&&function(e,t,s){if(null==t.adds&&null==t.updates)return;for(const r of s)r.layerId===e.layerId&&applyEditsProcessEditedFeatures(e,t,r.editedFeatures)}(a,{adds:y,updates:m},R.editedFeatureResults),w.errors.size>0)throw w}export function applyEditsProcessResults(e,s,r,o,u){if(null!=r&&null!=s)for(const[a,i]of r.entries()){const r=s[a];if(null!=r)if(null==i.error){if("add"===o&&"schema"in r){const{primaryKeyField:s}=r.schema;if(null!=s&&r.attributes.set(s,i.objectId),l(e)||n(e)){const{globalId:s}=i;if(null!=s){const l=t(e);null!=l&&r.attributes.set(l,s)}}}}else{const{primaryKey:e}=r,t="title"in r?r.title:"";u.errors.set(e??`${t}-${a}`,new Error(`Failed to ${o} feature '${t}' with id ${e}. ${i.error.name} : ${i.error.message}`))}}}export function applyEditsProcessEditedFeatures(e,t,s){const r=(t,s)=>{const r=t.getAttribute(e.objectIdField);null!=r&&s.set(r.toString(),t)};if(null!=s.adds&&null!=t.adds){const e=s.adds.reduce(((e,t)=>(r(t,e),e)),new Map);for(const s of t.adds){if(null==s.primaryKey)continue;const t=e.get(s.primaryKey);null!=t&&u(s,t)}}if(null!=s.updates&&null!=t.updates){const e=s.updates.reduce(((e,t)=>{if(null==t.current)return e;if(Array.isArray(t.current))for(const s of t.current)r(s,e);else{const s=t.current;r(s,e)}return e}),new Map);for(const s of t.updates){if(null==s.primaryKey)continue;const t=e.get(s.primaryKey);null!=t&&u(s,t)}}}function u(e,t){for(const[s,r]of Object.entries(t.attributes))e.attributes.get(s)!==r&&e.attributes.set(s,r);null!=t.geometry&&(e.geometry=t.geometry.clone())}
@@ -1 +1 @@
1
- import e from"@arcgis/core/core/Collection";import{QueryOptions as s}from"../tasks/query/QueryOptions.js";import{checkArg as i}from"../utilities/checkArg.js";import{count as t,query as o}from"../utilities/query.js";import{cancelify as r}from"./Cancellable.js";export function executeQuery(t,l,a,c){i("where",t).isNotMissing(),i("source",l).isNotMissing(),i("queryable",a).isNotMissing();const n={...s.DEFAULTS,...s.fromFeatureSource(l),...c};return i("options.maxResults",n.maxResults).satisfies((e=>null==e||e>0)),async function*(){let s;if(e.isCollection(a)||Array.isArray(a))s=e.isCollection(a)?a.toArray():a.slice();else{s=(await a).features,s.forEach((e=>e.popupTemplate=e.getEffectivePopupTemplate())),s=s.slice()}const i=r(o(t,l,s,n),n.cancelToken);let c=await i;c=c.slice(0,n.maxResults||c.length),yield*c}()}export async function executeCount(o,l,a,c){i("where",o).isNotMissing(),i("source",l).isNotMissing(),i("queryable",a).isNotMissing();const n={...s.DEFAULTS,...s.fromFeatureSource(l),...c},{maxResults:u,cancelToken:f}=n;let m;if(i("options.maxResults",u).satisfies((e=>null==e||e>0)),e.isCollection(a)||Array.isArray(a))m=e.isCollection(a)?a.toArray():a.slice();else{m=(await a).features.slice()}let p=await r(t(o,m,n),f);return u>0&&p>u&&(p=u),{source:l,count:p}}
1
+ import e from"@arcgis/core/core/Collection";import{QueryOptions as s}from"../tasks/query/QueryOptions.js";import{checkArg as i}from"../utilities/checkArg.js";import{count as t,query as o}from"../utilities/query.js";import{cancelify as r}from"./Cancellable.js";export function executeQuery(t,l,a,c){i("where",t).isNotMissing(),i("source",l).isNotMissing(),i("queryable",a).isNotMissing();const n={...s.DEFAULTS,...s.fromFeatureSource(l),...c};return i("options.maxResults",n.maxResults).satisfies((e=>null==e||e>0)),async function*(){let s;if(e.isCollection(a)||Array.isArray(a))s=e.isCollection(a)?a.toArray():a.slice();else{s=(await a).features,s.forEach((e=>e.popupTemplate=e.getEffectivePopupTemplate())),s=s.slice()}const i=r(o(t,l,s,n),n.cancelToken);let c=await i;c=c.slice(0,n.maxResults||c.length),yield*c}()}export async function executeCount(o,l,a,c){i("where",o).isNotMissing(),i("source",l).isNotMissing(),i("queryable",a).isNotMissing();const n={...s.DEFAULTS,...s.fromFeatureSource(l),...c},{maxResults:u,cancelToken:f}=n;let m;if(i("options.maxResults",u).satisfies((e=>null==e||e>0)),e.isCollection(a)||Array.isArray(a))m=e.isCollection(a)?a.toArray():a.slice();else{m=(await a).features.slice()}let p=await r(t(o,m,n),f);return u&&p>u&&(p=u),{source:l,count:p}}
package/support/_query.js CHANGED
@@ -1 +1 @@
1
- import{isLayerExtension as e,isSublayerExtension as t}from"../ItemType.js";import{toFeature as n}from"../data/Feature.js";import{isTimeAwareLayer as i}from"../utilities/_layers.js";import{checkArg as s}from"../utilities/checkArg.js";import{cancelifyWithAbortSignal as r}from"./Cancellable.js";export function concatenateWhereClauses(e,t){return e?.length>0&&t?.length>0?`(${e}) and (${t})`:e||t}export function executeQuery(e,t,i,o){return s("query",e).isNotMissing(),s("source",t).isNotMissing(),s("queryable",i).isNotMissing(),e.where=concatenateWhereClauses(i.definitionExpression,e.where),"function"!=typeof t&&constrainQueryTimeExtentToView(e,t),async function*(){const s=e.num;let a=(await r((async t=>i.queryFeatures(e,{signal:t})),o)).features;s>0&&a.length>s&&(a=a.slice(0,s)),yield*a.map((e=>n(e,{source:"function"==typeof t?t(e):t})))}()}export async function executeCount(e,t,n,i){s("query",e).isNotMissing(),s("source",t).isNotMissing(),s("queryable",n).isNotMissing(),e.where=concatenateWhereClauses(n.definitionExpression,e.where),constrainQueryTimeExtentToView(e,t);const o=e.num;e.num=void 0;let a=await r((async t=>n.queryFeatureCount(e,{signal:t})),i);return o>0&&a>o&&(a=o),{source:t,count:a}}export async function executeCountByQuery(e,t,n,i){s("query",e).isNotMissing(),s("source",t).isNotMissing(),s("queryable",n).isNotMissing(),e.where=concatenateWhereClauses(n.definitionExpression,e.where),constrainQueryTimeExtentToView(e,t);const o=e.num;let a=(await r((async t=>n.queryFeatures(e,{signal:t})),i)).features.length;return o>0&&a>o&&(a=o),{source:t,count:a}}export function constrainQueryTimeExtentToView(n,s){let r;if(e(s)?r=s:t(s)&&(r=s.layerExtension),!i(r?.layer))return;const{layer:o,mapExtension:a}=r,u=a?._allLayerViews.find((e=>e.layer===o))?.view?.timeExtent;if(n.timeExtent||(n.timeExtent=o.timeExtent?.clone()),o.useViewTime&&u)if(n.timeExtent){const e=[n.timeExtent.start?.valueOf(),u.start?.valueOf()].filter((e=>!!e)),t=[n.timeExtent.end?.valueOf(),u.end?.valueOf()].filter((e=>!!e));n.timeExtent.start=e.length?new Date(Math.max(...e)):void 0,n.timeExtent.end=t.length?new Date(Math.min(...t)):void 0}else n.timeExtent=u?.clone()}
1
+ import{isLayerExtension as e,isSublayerExtension as t}from"../ItemType.js";import{toFeature as n}from"../data/Feature.js";import{isTimeAwareLayer as i}from"../utilities/_layers.js";import{checkArg as s}from"../utilities/checkArg.js";import{cancelifyWithAbortSignal as r}from"./Cancellable.js";export function concatenateWhereClauses(e,t){return(e?.length&&t?.length?`(${e}) and (${t})`:e||t)??void 0}export function executeQuery(e,t,i,o){return s("query",e).isNotMissing(),s("source",t).isNotMissing(),s("queryable",i).isNotMissing(),e.where=concatenateWhereClauses(i.definitionExpression,e.where),"function"!=typeof t&&constrainQueryTimeExtentToView(e,t),async function*(){const s=e.num;let a=(await r((async t=>i.queryFeatures(e,{signal:t})),o)).features;s&&a.length>s&&(a=a.slice(0,s)),yield*a.map((e=>n(e,{source:"function"==typeof t?t(e):t})))}()}export async function executeCount(e,t,n,i){s("query",e).isNotMissing(),s("source",t).isNotMissing(),s("queryable",n).isNotMissing(),e.where=concatenateWhereClauses(n.definitionExpression,e.where),constrainQueryTimeExtentToView(e,t);const o=e.num;e.num=void 0;let a=await r((async t=>n.queryFeatureCount(e,{signal:t})),i);return o&&a>o&&(a=o),{source:t,count:a}}export async function executeCountByQuery(e,t,n,i){s("query",e).isNotMissing(),s("source",t).isNotMissing(),s("queryable",n).isNotMissing(),e.where=concatenateWhereClauses(n.definitionExpression,e.where),constrainQueryTimeExtentToView(e,t);const o=e.num;let a=(await r((async t=>n.queryFeatures(e,{signal:t})),i)).features.length;return o&&a>o&&(a=o),{source:t,count:a}}export function constrainQueryTimeExtentToView(n,s){let r;if(e(s)?r=s:t(s)&&(r=s.layerExtension),!i(r?.layer))return;const{layer:o,mapExtension:a}=r,u=a?._allLayerViews.find((e=>e.layer===o))?.view?.timeExtent;if(n.timeExtent||(n.timeExtent=o.timeExtent?.clone()),o.useViewTime&&u)if(n.timeExtent){const e=[];n.timeExtent.start&&e.push(n.timeExtent.start.valueOf()),u.start&&e.push(u.start.valueOf());const t=[];n.timeExtent.end&&t.push(n.timeExtent.end.valueOf()),u.end&&t.push(u.end.valueOf()),n.timeExtent.start=e.length?new Date(Math.max(...e)):void 0,n.timeExtent.end=t.length?new Date(Math.min(...t)):void 0}else n.timeExtent=u?.clone()}
@@ -1 +1 @@
1
- import{executeQuery as e,executeCountByQuery as r}from"../../support/_query.js";import{empty as t}from"../../utilities/asyncIterable.js";import{isMapImageSublayer as s}from"../../utilities/layers.js";import{IdentifyProviderBase as u}from"./IdentifyProviderBase.js";export class ArcGISSublayerQueryIdentifyProvider extends u{isSupported(e,r,t){return s(e.sublayer)&&e.capabilities.supportsQuery}_identify(r,s,u){const o=r,a=o.sublayer.createQuery();return o.capabilities.supportsQuery?(a.geometry=s,a.outFields=u.outFields??r.featureSettings.outFields,a.returnGeometry=u.returnGeometry,a.outSpatialReference=u.outSpatialReference,a.maxAllowableOffset=u.maxAllowableOffset,a.returnZ=o.sublayer.layer.sourceJSON?.hasZ,r.supportsPagination&&(a.num=u.maxResults),e(a,o,o.sublayer,u.cancelToken)):t()}async _count(e,t,s){const u=e;if(!u.capabilities.supportsQuery)return{source:e,count:0};const o=u.sublayer.createQuery();return o.geometry=t,o.num=s.maxResults,o.returnGeometry=s.returnGeometry,o.outFields=s.outFields??e.featureSettings.outFields,r(o,u,u.sublayer,s.cancelToken)}}
1
+ import{executeQuery as e,executeCountByQuery as r}from"../../support/_query.js";import{empty as t}from"../../utilities/asyncIterable.js";import{isMapImageSublayer as s}from"../../utilities/layers.js";import{IdentifyProviderBase as u}from"./IdentifyProviderBase.js";export class ArcGISSublayerQueryIdentifyProvider extends u{isSupported(e,r,t){return s(e.sublayer)&&e.capabilities.supportsQuery}_identify(r,s,u){const o=r,a=o.sublayer.createQuery();return o.capabilities.supportsQuery?(a.geometry=s,a.outFields=u.outFields??r.featureSettings.outFields,a.returnGeometry=u.returnGeometry??a.returnGeometry,a.outSpatialReference=u.outSpatialReference,a.maxAllowableOffset=u.maxAllowableOffset,a.returnZ=o.sublayer.layer?.sourceJSON?.hasZ,r.supportsPagination&&(a.num=u.maxResults),e(a,o,o.sublayer,u.cancelToken)):t()}async _count(e,t,s){const u=e;if(!u.capabilities.supportsQuery)return{source:e,count:0};const o=u.sublayer.createQuery();return o.geometry=t,o.num=s.maxResults,o.returnGeometry=s.returnGeometry??o.returnGeometry,o.outFields=s.outFields??e.featureSettings.outFields,r(o,u,u.sublayer,s.cancelToken)}}
@@ -1 +1 @@
1
- import{toFeature as e}from"../../data/Feature.js";import{cancelifyWithAbortSignal as t}from"../../support/Cancellable.js";import{executeQuery as r,executeCount as a}from"../../support/_query.js";import{isCSVLayerExtension as i}from"../../utilities/extensions.js";import{removeZValues as o}from"../../utilities/geometry.js";import{IdentifyProviderBase as n}from"./IdentifyProviderBase.js";import{hitTestForClusterFeatures as s}from"./_utilities.js";async function u(e,r,a,i){const o=await s(e,r);if(0===o.length)return[];i.aggregateIds=o.map((e=>e.getObjectId()));const n=await t((t=>e._layerView.queryFeatures(i,{signal:t})),a.cancelToken);return n?.features}export class CSVLayerClientSideQueryIdentifyProvider extends n{isSupported(e,t,r){return i(e)&&!!e.layer}_identify(t,a,i,n){return async function*(){const s=t,l=s.layer.createQuery();if(l.outFields=i.outFields??t.featureSettings.outFields,l.returnGeometry=i.returnGeometry,l.outSpatialReference=i.outSpatialReference,l.maxAllowableOffset=i.maxAllowableOffset,l.num=i.maxResults,l.returnZ="scene"===s.mapExtension?.viewMode,"cluster"===s?.layer?.featureReduction?.type&&"point"===n){const r=await u(s,a,i,l);if(r?.length>0)return void(yield*r.map((r=>e(r,{source:t}))))}let c=a;c&&!s.layer.capabilities?.data?.supportsZ&&(c=o(c.clone())),l.geometry=c,yield*r(l,s,s.layer,i.cancelToken)}()}async _count(e,t,r,i){const n=e,s=n.layer.createQuery();if(s.num=r.maxResults,s.returnGeometry=r.returnGeometry,s.outFields=r.outFields??e.featureSettings.outFields,"cluster"===n?.layer?.featureReduction?.type&&"point"===i){const e=await u(n,t,r,s);if(e?.length>0)return{source:n,count:e.length}}if(!s.aggregateIds){let e=t;e&&!n.layer.capabilities?.data?.supportsZ&&(e=o(e.clone())),s.geometry=e}return a(s,n,n.layer,r.cancelToken)}}
1
+ import{toFeature as e}from"../../data/Feature.js";import{cancelifyWithAbortSignal as t}from"../../support/Cancellable.js";import{executeQuery as r,executeCount as o}from"../../support/_query.js";import{isCSVLayerExtension as n}from"../../utilities/extensions.js";import{removeZValues as a}from"../../utilities/geometry.js";import{IdentifyProviderBase as i}from"./IdentifyProviderBase.js";import{hitTestForClusterFeatures as s}from"./_utilities.js";async function u(e,r,o,n){const a=await s(e,r);if(0===a.length)return[];const i=[];for(const e of a){const t=e.getObjectId();null!=t&&i.push(t)}n.aggregateIds=i;const u=await t((t=>e._layerView.queryFeatures(n,{signal:t})),o.cancelToken);return u?.features}export class CSVLayerClientSideQueryIdentifyProvider extends i{isSupported(e,t,r){return n(e)&&!!e.layer}_identify(t,o,n,i){return async function*(){const s=t,l=s.layer.createQuery();if(l.outFields=n.outFields??t.featureSettings.outFields,l.returnGeometry=n.returnGeometry??l.returnGeometry,l.outSpatialReference=n.outSpatialReference,l.maxAllowableOffset=n.maxAllowableOffset,l.num=n.maxResults,l.returnZ="scene"===s.mapExtension?.viewMode,"cluster"===s?.layer?.featureReduction?.type&&"point"===i){const r=await u(s,o,n,l);if(r?.length>0)return void(yield*r.map((r=>e(r,{source:t}))))}let c=o;c&&!s.layer.capabilities?.data?.supportsZ&&(c=a(c.clone())),l.geometry=c,yield*r(l,s,s.layer,n.cancelToken)}()}async _count(e,t,r,n){const i=e,s=i.layer.createQuery();if(s.num=r.maxResults,s.returnGeometry=r.returnGeometry??s.returnGeometry,s.outFields=r.outFields??e.featureSettings.outFields,"cluster"===i?.layer?.featureReduction?.type&&"point"===n){const e=await u(i,t,r,s);if(e?.length>0)return{source:i,count:e.length}}if(!s.aggregateIds){let e=t;e&&!i.layer.capabilities?.data?.supportsZ&&(e=a(e.clone())),s.geometry=e}return o(s,i,i.layer,r.cancelToken)}}
@@ -44,6 +44,6 @@ export declare abstract class ClientSideIdentifyProvider extends IdentifyProvide
44
44
  * @param options Options for the query.
45
45
  * @param aggregateIds The ObjectIds of cluster features to query with.
46
46
  */
47
- protected _createQuery(source: ClientSideIdentifiableLayerExtension | ClientSideQueryableSublayerExtension, geometry: Geometry | undefined, options: IdentifyOptions, aggregateIds?: (string | number | undefined)[]): Query;
47
+ protected _createQuery(source: ClientSideIdentifiableLayerExtension | ClientSideQueryableSublayerExtension, geometry: Geometry | undefined, options: IdentifyOptions, aggregateIds?: (string | number)[]): Query;
48
48
  protected _getClientSideLayerGraphics(source: ClientSideIdentifiableLayerExtension | ClientSideQueryableSublayerExtension, geometry: Geometry, options: IdentifyOptions, geometryType?: string): Promise<Graphic[] | undefined>;
49
49
  }
@@ -1 +1 @@
1
- import{toFeature as e}from"../../data/Feature.js";import{cancelifyWithAbortSignal as t}from"../../support/Cancellable.js";import*as r from"../../utilities/asyncIterable.js";import{isSubtypeSublayerExtension as i}from"../../utilities/extensions.js";import{isBuildingComponentSublayer as s}from"../../utilities/layers.js";import{IdentifyProviderBase as a}from"./IdentifyProviderBase.js";export class ClientSideIdentifyProvider extends a{_identify(t,i,s,a){const n=this;return async function*(){const o=await n._getClientSideLayerGraphics(t,i,s,a);o?.length?yield*o.map((r=>e(r,{source:t}))):yield*r.empty()}()}async _count(e,t,r,i){const s=await this._getClientSideLayerGraphics(e,t,r,i);return{source:e,count:s?s.length:0}}_createQuery(e,t,r,a){const n=i(e)?e.layerExtension:e,{_layerView:o,featureSettings:l}=n,u=s(n.sublayer)?e.layerExtension?.mapExtension:e.mapExtension,c=o.createQuery();return c.geometry=t,c.outFields=r.outFields||l.outFields,c.returnGeometry=r.returnGeometry,c.outSpatialReference=r.outSpatialReference,c.maxAllowableOffset=r.maxAllowableOffset,c.num=r.maxResults,c.returnZ="scene"===u?.viewMode,c.aggregateIds=a,c}async _getClientSideLayerGraphics(e,r,s,a){const n=i(e)?e.layerExtension:e,{_layerView:o}=n;if(!o)return;const l=await t((async t=>o.queryFeatures(this._createQuery(e,r,s),{signal:t})),s.cancelToken);return l?.features}}
1
+ import{toFeature as e}from"../../data/Feature.js";import{cancelifyWithAbortSignal as t}from"../../support/Cancellable.js";import*as r from"../../utilities/asyncIterable.js";import{isSubtypeSublayerExtension as i}from"../../utilities/extensions.js";import{isBuildingComponentSublayer as s}from"../../utilities/layers.js";import{IdentifyProviderBase as a}from"./IdentifyProviderBase.js";export class ClientSideIdentifyProvider extends a{_identify(t,i,s,a){const n=this;return async function*(){const o=await n._getClientSideLayerGraphics(t,i,s,a);o?.length?yield*o.map((r=>e(r,{source:t}))):yield*r.empty()}()}async _count(e,t,r,i){const s=await this._getClientSideLayerGraphics(e,t,r,i);return{source:e,count:s?s.length:0}}_createQuery(e,t,r,a){const n=i(e)?e.layerExtension:e,{_layerView:o,featureSettings:l}=n,u=s(n.sublayer)?e.layerExtension?.mapExtension:e.mapExtension,c=o.createQuery();return c.geometry=t,c.outFields=r.outFields||l.outFields,c.returnGeometry=r.returnGeometry??c.returnGeometry,c.outSpatialReference=r.outSpatialReference,c.maxAllowableOffset=r.maxAllowableOffset,c.num=r.maxResults,c.returnZ="scene"===u?.viewMode,c.aggregateIds=a,c}async _getClientSideLayerGraphics(e,r,s,a){const n=i(e)?e.layerExtension:e,{_layerView:o}=n;if(!o)return;const l=await t((async t=>o.queryFeatures(this._createQuery(e,r,s),{signal:t})),s.cancelToken);return l?.features}}
@@ -1 +1 @@
1
- import{cancelifyWithAbortSignal as e}from"../../support/Cancellable.js";import{isPoint as t}from"../../utilities/esri.js";import{isFeatureLayer as i}from"../../utilities/layers.js";import{ClientSideIdentifyProvider as r}from"./ClientSideIdentifyProvider.js";import{hitTestForClusterFeatures as a}from"./_utilities.js";export class FeatureLayerClientSideIdentifyProvider extends r{isSupported(e,r,a){return i(e.layer)&&e.enableClientSideData&&r&&!!e._layerView?.view?.extent?.intersects(t(r)?r:r.extent)&&0!==e._layerView.availableFields.length&&(a?.outFields??e.featureSettings.outFields).every((t=>e._layerView.availableFields.includes(t)))}async _getClientSideLayerGraphics(t,i,r,l){let s=[];if("cluster"===t.layer?.featureReduction?.type&&"point"===l&&(s=await a(t,i)),s.length>0){const{_layerView:i}=t,a=await e((async e=>i.queryFeatures(super._createQuery(t,void 0,r,s.map((e=>e.getObjectId()??void 0))))),r.cancelToken);if(a?.features.length>0)return a.features}return super._getClientSideLayerGraphics(t,i,r)}}
1
+ import{cancelifyWithAbortSignal as e}from"../../support/Cancellable.js";import{isPoint as t}from"../../utilities/esri.js";import{isFeatureLayer as i}from"../../utilities/layers.js";import{ClientSideIdentifyProvider as r}from"./ClientSideIdentifyProvider.js";import{hitTestForClusterFeatures as a}from"./_utilities.js";export class FeatureLayerClientSideIdentifyProvider extends r{isSupported(e,r,a){return i(e.layer)&&e.enableClientSideData&&r&&!!e._layerView?.view?.extent?.intersects(t(r)?r:r.extent)&&0!==e._layerView.availableFields.length&&(a?.outFields??e.featureSettings.outFields).every((t=>e._layerView.availableFields.includes(t)))}async _getClientSideLayerGraphics(t,i,r,s){let l=[];if("cluster"===t.layer?.featureReduction?.type&&"point"===s&&(l=await a(t,i)),l.length>0){const{_layerView:i}=t,a=await e((async e=>{const a=[];for(const e of l){const t=e.getObjectId();null!=t&&a.push(t)}return i.queryFeatures(super._createQuery(t,void 0,r,a))}),r.cancelToken);if(a?.features.length>0)return a.features}return super._getClientSideLayerGraphics(t,i,r)}}
@@ -1 +1 @@
1
- import{executeQuery as e,executeCount as t}from"../../support/_query.js";import{isFeatureCollectionLayerExtension as r,isFeatureLayerExtension as o}from"../../utilities/extensions.js";import{removeZValues as s}from"../../utilities/geometry.js";import{isFeatureLayer as a}from"../../utilities/layers.js";import{IdentifyProviderBase as i}from"./IdentifyProviderBase.js";export class FeatureLayerQueryIdentifyProvider extends i{isSupported(e,t,s){return(o(e)||r(e))&&a(e.layer)}_identify(t,r,o){const s=t,a=s.layer.createQuery(),i=r;return a.geometry=i,a.outFields=o.outFields??t.featureSettings.outFields,a.returnGeometry=o.returnGeometry,a.outSpatialReference=o.outSpatialReference,a.maxAllowableOffset=o.maxAllowableOffset,s.layer.capabilities.query.supportsPagination&&(a.num=o.maxResults),a.returnZ=s.layer.hasZ,e(a,s,s.layer,o.cancelToken)}_count(e,r,o){const a=e,i=a.layer.createQuery();let l=r;return!l||a.layer.hasZ&&a.layer.capabilities?.data?.supportsZ||(l=s(l.clone())),i.geometry=l,i.num=o.maxResults,i.returnGeometry=o.returnGeometry,i.outFields=o.outFields??e.featureSettings.outFields,t(i,a,a.layer,o.cancelToken)}}
1
+ import{executeQuery as e,executeCount as r}from"../../support/_query.js";import{isFeatureCollectionLayerExtension as t,isFeatureLayerExtension as o}from"../../utilities/extensions.js";import{removeZValues as s}from"../../utilities/geometry.js";import{isFeatureLayer as a}from"../../utilities/layers.js";import{IdentifyProviderBase as i}from"./IdentifyProviderBase.js";export class FeatureLayerQueryIdentifyProvider extends i{isSupported(e,r,s){return(o(e)||t(e))&&a(e.layer)}_identify(r,t,o){const s=r,a=s.layer.createQuery(),i=t;return a.geometry=i,a.outFields=o.outFields??r.featureSettings.outFields,a.returnGeometry=o.returnGeometry??a.returnGeometry,a.outSpatialReference=o.outSpatialReference,a.maxAllowableOffset=o.maxAllowableOffset,s.layer.capabilities.query.supportsPagination&&(a.num=o.maxResults),a.returnZ=s.layer.hasZ,e(a,s,s.layer,o.cancelToken)}_count(e,t,o){const a=e,i=a.layer.createQuery();let u=t;return!u||a.layer.hasZ&&a.layer.capabilities?.data?.supportsZ||(u=s(u.clone())),i.geometry=u,i.num=o.maxResults,i.returnGeometry=o.returnGeometry??i.returnGeometry,i.outFields=o.outFields??e.featureSettings.outFields,r(i,a,a.layer,o.cancelToken)}}
@@ -1 +1 @@
1
- import{toFeature as e}from"../../data/Feature.js";import{cancelifyWithAbortSignal as t}from"../../support/Cancellable.js";import{executeQuery as r,executeCount as a}from"../../support/_query.js";import{isGeoJSONLayerExtension as i}from"../../utilities/extensions.js";import{removeZValues as o}from"../../utilities/geometry.js";import{IdentifyProviderBase as n}from"./IdentifyProviderBase.js";import{hitTestForClusterFeatures as s}from"./_utilities.js";async function u(e,r,a,i){const o=await s(e,r);if(0===o.length)return[];i.aggregateIds=o.map((e=>e.getObjectId()));const n=await t((t=>e._layerView.queryFeatures(i,{signal:t})),a.cancelToken);return n?.features}export class GeoJSONLayerClientSideQueryIdentifyProvider extends n{isSupported(e,t,r){return i(e)&&!!e.layer}_identify(t,a,i,n){return async function*(){const s=t,l=s.layer.createQuery();if(l.outFields=i.outFields??t.featureSettings.outFields,l.returnGeometry=i.returnGeometry,l.outSpatialReference=i.outSpatialReference,l.maxAllowableOffset=i.maxAllowableOffset,l.num=i.maxResults,l.returnZ=s.layer.hasZ,"cluster"===s?.layer?.featureReduction?.type&&"point"===n){const r=await u(s,a,i,l);if(r?.length>0)return void(yield*r.map((r=>e(r,{source:t}))))}let c=a;c&&!s.layer.capabilities?.data?.supportsZ&&(c=o(c.clone())),l.geometry=c,yield*r(l,s,s.layer,i.cancelToken)}()}async _count(e,t,r,i){const n=e,s=n.layer.createQuery();if(s.num=r.maxResults,s.returnGeometry=r.returnGeometry,s.outFields=r.outFields??e.featureSettings.outFields,"cluster"===n?.layer?.featureReduction?.type&&"point"===i){const e=await u(n,t,r,s);if(e?.length>0)return{source:n,count:e.length}}if(!s.aggregateIds){let e=t;e&&!n.layer.capabilities?.data?.supportsZ&&(e=o(e.clone())),s.geometry=e}return a(s,n,n.layer,r.cancelToken)}}
1
+ import{toFeature as e}from"../../data/Feature.js";import{cancelifyWithAbortSignal as t}from"../../support/Cancellable.js";import{executeQuery as r,executeCount as o}from"../../support/_query.js";import{isGeoJSONLayerExtension as a}from"../../utilities/extensions.js";import{removeZValues as n}from"../../utilities/geometry.js";import{IdentifyProviderBase as i}from"./IdentifyProviderBase.js";import{hitTestForClusterFeatures as s}from"./_utilities.js";async function u(e,r,o,a){const n=await s(e,r);if(0===n.length)return[];const i=[];for(const e of n){const t=e.getObjectId();null!=t&&i.push(t)}a.aggregateIds=i;const u=await t((t=>e._layerView.queryFeatures(a,{signal:t})),o.cancelToken);return u?.features}export class GeoJSONLayerClientSideQueryIdentifyProvider extends i{isSupported(e,t,r){return a(e)&&!!e.layer}_identify(t,o,a,i){return async function*(){const s=t,l=s.layer.createQuery();if(l.outFields=a.outFields??t.featureSettings.outFields,l.returnGeometry=a.returnGeometry??l.returnGeometry,l.outSpatialReference=a.outSpatialReference,l.maxAllowableOffset=a.maxAllowableOffset,l.num=a.maxResults,l.returnZ=s.layer.hasZ,"cluster"===s?.layer?.featureReduction?.type&&"point"===i){const r=await u(s,o,a,l);if(r?.length>0)return void(yield*r.map((r=>e(r,{source:t}))))}let c=o;c&&!s.layer.capabilities?.data?.supportsZ&&(c=n(c.clone())),l.geometry=c,yield*r(l,s,s.layer,a.cancelToken)}()}async _count(e,t,r,a){const i=e,s=i.layer.createQuery();if(s.num=r.maxResults,s.returnGeometry=r.returnGeometry??s.returnGeometry,s.outFields=r.outFields??e.featureSettings.outFields,"cluster"===i?.layer?.featureReduction?.type&&"point"===a){const e=await u(i,t,r,s);if(e?.length>0)return{source:i,count:e.length}}if(!s.aggregateIds){let e=t;e&&!i.layer.capabilities?.data?.supportsZ&&(e=n(e.clone())),s.geometry=e}return o(s,i,i.layer,r.cancelToken)}}
@@ -26,7 +26,7 @@ export declare abstract class HitTestIdentifyProvider extends IdentifyProviderBa
26
26
  * The query provider to fall back on, used to fetch attribute data that is
27
27
  * not included within the map's graphics.
28
28
  */
29
- queryProvider: QueryProvider;
29
+ queryProvider: QueryProvider | undefined;
30
30
  /**
31
31
  * @inheritDoc
32
32
  */