@vertigis/arcgis-extensions 48.3.5 → 48.4.1

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 (198) hide show
  1. package/AppConfig.schema.json +29 -21
  2. package/data/FeatureSettings.js +1 -1
  3. package/data/FeatureSourceBase.js +1 -1
  4. package/data/Schema.js +1 -1
  5. package/data/_TableExtension.d.ts +1 -1
  6. package/docs/html/assets/navigation.js +1 -1
  7. package/docs/html/assets/search.js +1 -1
  8. package/docs/html/classes/data__TableExtension.TableSchema.html +2 -2
  9. package/docs/html/classes/mapping_WMSLayerExtension.WMSLayerExtension.html +4 -4
  10. package/docs/html/classes/tasks_identify_IdentifyProviderBase.IdentifyProviderBase.html +1 -1
  11. package/docs/html/classes/tasks_identify_WMSLayerFeatureInfoIdentifyProvider.WMSLayerFeatureInfoIdentifyProvider.html +62 -0
  12. package/docs/html/classes/utilities_ObservableSet.ObservableSet.html +1 -1
  13. package/docs/html/classes/utilities_ObservableWeakSet.ObservableWeakSet.html +1 -1
  14. package/docs/html/classes/utilities_log.ConsoleLogger.html +7 -7
  15. package/docs/html/classes/utilities_log.LoggerBase.html +7 -7
  16. package/docs/html/functions/utilities__gml.esriToGml.html +2 -2
  17. package/docs/html/functions/utilities__layers.getEquivalencyTypeForLayers.html +1 -0
  18. package/docs/html/functions/utilities__layers.getLayerUrl.html +2 -2
  19. package/docs/html/functions/utilities_geometry.buffer.html +5 -5
  20. package/docs/html/functions/utilities_geometry.esriToGml.html +2 -2
  21. package/docs/html/functions/utilities_iterable.find.html +2 -2
  22. package/docs/html/functions/utilities_iterable.first.html +2 -2
  23. package/docs/html/functions/utilities_mapping.getMapSpatialReference.html +2 -2
  24. package/docs/html/functions/utilities_object.deepSearchAndTransform.html +6 -4
  25. package/docs/html/functions/utilities_object.deepSearchAndTransformAsync.html +6 -4
  26. package/docs/html/functions/utilities_object.getPropertyDescriptor.html +2 -2
  27. package/docs/html/functions/utilities_object.isEmpty.html +1 -1
  28. package/docs/html/functions/utilities_object.map.html +1 -1
  29. package/docs/html/functions/utilities_object.toJSON.html +1 -1
  30. package/docs/html/functions/utilities_portal.getPortalItemHtmlUrl.html +2 -2
  31. package/docs/html/functions/utilities_portal.toPortalItem.html +4 -1
  32. package/docs/html/functions/utilities_set.find.html +2 -2
  33. package/docs/html/hierarchy.html +1 -1
  34. package/docs/html/interfaces/data_FieldExtension.FieldProperties.html +4 -2
  35. package/docs/html/interfaces/json_AnnotationLayerJson.AnnotationLayerJson.html +2 -2
  36. package/docs/html/interfaces/json_BasemapLayerJson.BasemapLayerJsonBase.html +2 -2
  37. package/docs/html/interfaces/json_BingLayerJson.BingLayerJson.html +2 -2
  38. package/docs/html/interfaces/json_BuildingSceneLayerJson.BuildingSceneLayerJson.html +2 -2
  39. package/docs/html/interfaces/json_CSVLayerJson.CSVLayerJson.html +2 -2
  40. package/docs/html/interfaces/json_FeatureLayerJson.FeatureLayerJson.html +5 -3
  41. package/docs/html/interfaces/json_FeatureSetJson.FeatureSetJson.html +4 -2
  42. package/docs/html/interfaces/json_FieldJson.FieldJson.html +4 -2
  43. package/docs/html/interfaces/json_GeoJSONLayerJson.GeoJSONLayerJson.html +2 -2
  44. package/docs/html/interfaces/json_GeoRSSLayerJson.GeoRSSLayerJson.html +2 -2
  45. package/docs/html/interfaces/json_GroupLayerJson.GroupLayerJson.html +2 -2
  46. package/docs/html/interfaces/json_ImageServiceLayerJson.ImageServiceLayerJson.html +2 -2
  47. package/docs/html/interfaces/json_ImageServiceVectorLayerJson.ImageServiceVectorLayerJson.html +2 -2
  48. package/docs/html/interfaces/json_IntegratedMeshLayerJson.IntegratedMeshLayerJson.html +2 -2
  49. package/docs/html/interfaces/json_ItemJson.ItemJson.html +5 -2
  50. package/docs/html/interfaces/json_KMLLayerJson.KMLLayerJson.html +2 -2
  51. package/docs/html/interfaces/json_LayerDefinitionJson.LayerDefinitionJson.html +2 -2
  52. package/docs/html/interfaces/json_LayerJson.LayerJsonBase.html +2 -2
  53. package/docs/html/interfaces/json_MapServiceLayerJson.MapServiceLayerJson.html +2 -2
  54. package/docs/html/interfaces/json_OpenStreetMapLayerJson.OpenStreetMapLayerJson.html +2 -2
  55. package/docs/html/interfaces/json_OperationalLayerJson.OperationalLayerJsonBase.html +2 -2
  56. package/docs/html/interfaces/json_PointCloudLayerJson.PointCloudLayerJson.html +2 -2
  57. package/docs/html/interfaces/json_RasterDataElevationLayerJson.RasterDataElevationLayerJson.html +2 -2
  58. package/docs/html/interfaces/json_SceneLayerJson.SceneLayerJson.html +2 -2
  59. package/docs/html/interfaces/json_StreamLayerJson.StreamLayerJson.html +6 -4
  60. package/docs/html/interfaces/json_SubtypeGroupLayerJson.SubtypeGroupLayerJson.html +10 -5
  61. package/docs/html/interfaces/json_SubtypeGroupLayerJson.SubtypeSubtypeGroupLayerJson.html +10 -5
  62. package/docs/html/interfaces/json_SubtypeSublayerJson.SubtypeSublayerJson.html +9 -6
  63. package/docs/html/interfaces/json_SymbolJson.TextSymbolJson.html +2 -2
  64. package/docs/html/interfaces/json_TiledElevationServiceLayerJson.TiledElevationServiceLayerJson.html +2 -2
  65. package/docs/html/interfaces/json_TiledImageServiceLayerJson.TiledImageServiceLayerJson.html +2 -2
  66. package/docs/html/interfaces/json_TiledMapServiceLayerJson.TiledMapServiceLayerJson.html +2 -2
  67. package/docs/html/interfaces/json_VectorTileLayerJson.VectorTileLayerJson.html +2 -2
  68. package/docs/html/interfaces/json_WFSLayerJson.WFSLayerJson.html +2 -2
  69. package/docs/html/interfaces/json_WMSLayerJson.WMSLayerJson.html +2 -2
  70. package/docs/html/interfaces/json_WebTileLayerJson.TileInfoJson.html +2 -2
  71. package/docs/html/interfaces/json_WebTileLayerJson.WebTileLayerJson.html +2 -2
  72. package/docs/html/interfaces/mapping_BuildingSceneLayerExtension.BuildingSceneLayerProperties.html +2 -2
  73. package/docs/html/interfaces/mapping_FeatureLayerExtension.FeatureLayerProperties.html +6 -4
  74. package/docs/html/interfaces/mapping_FeatureLayerExtensionBase.FeatureLayerBaseProperties.html +6 -4
  75. package/docs/html/interfaces/mapping_MapImageLayerExtension.MapImageLayerExtensionProperties.html +3 -3
  76. package/docs/html/interfaces/mapping_PointCloudLayerExtension.PointCloudLayerProperties.html +2 -2
  77. package/docs/html/interfaces/utilities_format_FormatSettings.FormatSettings.html +1 -1
  78. package/docs/html/interfaces/utilities_log.LogMessageOptions.html +30 -0
  79. package/docs/html/interfaces/utilities_log.LogMessageResourceOptions.html +33 -0
  80. package/docs/html/interfaces/utilities_log.Logger.html +8 -8
  81. package/docs/html/modules/support_esri.html +1 -0
  82. package/docs/html/modules/tasks_identify_WMSLayerFeatureInfoIdentifyProvider.html +2 -0
  83. package/docs/html/modules/tasks_identify_defaultProviders.html +2 -1
  84. package/docs/html/modules/utilities_log.html +3 -1
  85. package/docs/html/modules.html +1 -0
  86. package/docs/html/types/support_esri.RequestResponse.html +1 -0
  87. package/docs/html/types/utilities_log.LogOptions.html +2 -0
  88. package/docs/html/variables/version.version.html +1 -1
  89. package/json/AnnotationLayerJson.d.ts +7 -7
  90. package/json/BasemapJson.d.ts +4 -4
  91. package/json/BasemapJson.js +1 -1
  92. package/json/BasemapLayerJson.d.ts +1 -1
  93. package/json/BingLayerJson.d.ts +1 -1
  94. package/json/BuildingSceneLayerJson.d.ts +18 -18
  95. package/json/BuildingSceneSublayerJson.d.ts +8 -8
  96. package/json/CSVLayerJson.d.ts +12 -12
  97. package/json/DefinitionEditorJson.d.ts +9 -9
  98. package/json/DrawingInfoJson.d.ts +29 -29
  99. package/json/EnvironmentJson.d.ts +19 -19
  100. package/json/FeatureCollectionJson.d.ts +1 -1
  101. package/json/FeatureJson.d.ts +4 -4
  102. package/json/FeatureJson.js +1 -1
  103. package/json/FeatureLayerJson.d.ts +20 -16
  104. package/json/FeatureLayerJson.js +1 -1
  105. package/json/FeatureSetJson.d.ts +5 -0
  106. package/json/FieldJson.d.ts +11 -7
  107. package/json/FormInfoJson.d.ts +48 -48
  108. package/json/GeoJSONLayerJson.d.ts +6 -6
  109. package/json/GeoRSSLayerJson.d.ts +4 -4
  110. package/json/GeometryJson.d.ts +12 -12
  111. package/json/GroundJson.d.ts +4 -4
  112. package/json/GroupLayerJson.d.ts +3 -3
  113. package/json/ImageServiceLayerJson.d.ts +20 -20
  114. package/json/ImageServiceVectorLayerJson.d.ts +6 -6
  115. package/json/IntegratedMeshLayerJson.d.ts +2 -2
  116. package/json/ItemJson.d.ts +51 -46
  117. package/json/KMLLayerJson.d.ts +3 -3
  118. package/json/LayerDefinitionJson.d.ts +102 -102
  119. package/json/LayerJson.d.ts +21 -21
  120. package/json/LayerJson.js +1 -1
  121. package/json/MapServiceLayerJson.d.ts +6 -6
  122. package/json/MosaicRuleJson.d.ts +14 -14
  123. package/json/OpenStreetMapLayerJson.d.ts +1 -1
  124. package/json/OperationalLayerJson.d.ts +2 -2
  125. package/json/PointCloudLayerJson.d.ts +4 -4
  126. package/json/PopupInfoJson.d.ts +47 -47
  127. package/json/RasterDataElevationLayerJson.d.ts +1 -1
  128. package/json/RendererJson.d.ts +113 -113
  129. package/json/SceneLayerJson.d.ts +7 -7
  130. package/json/SpatialReferenceJson.d.ts +5 -5
  131. package/json/SublayerJson.d.ts +17 -17
  132. package/json/SublayerJson.js +1 -1
  133. package/json/SubtypeGroupLayerJson.d.ts +14 -5
  134. package/json/SubtypeSublayerJson.d.ts +13 -8
  135. package/json/SymbolJson.d.ts +122 -122
  136. package/json/TableJson.d.ts +10 -10
  137. package/json/TableJson.js +1 -1
  138. package/json/TemplateJson.d.ts +4 -4
  139. package/json/TiledElevationServiceLayerJson.d.ts +3 -3
  140. package/json/TiledImageServiceLayerJson.d.ts +3 -3
  141. package/json/TiledMapServiceLayerJson.d.ts +12 -12
  142. package/json/TypeJson.d.ts +4 -4
  143. package/json/VectorTileLayerJson.d.ts +4 -4
  144. package/json/ViewpointJson.d.ts +6 -6
  145. package/json/WFSLayerJson.d.ts +16 -16
  146. package/json/WMSLayerJson.d.ts +16 -16
  147. package/json/WMSSublayerJson.d.ts +5 -5
  148. package/json/WebMapJson.d.ts +134 -133
  149. package/json/WebMapJson.js +1 -1
  150. package/json/WebSceneJson.d.ts +6 -6
  151. package/json/WebTileLayerJson.d.ts +26 -26
  152. package/mapping/ImageryLayerExtension.js +1 -1
  153. package/mapping/MapExtension.js +1 -1
  154. package/mapping/WMSLayerExtension.d.ts +1 -0
  155. package/mapping/WMSLayerExtension.js +1 -1
  156. package/mapping/support/ogc.js +1 -1
  157. package/package.json +1 -1
  158. package/support/esri.d.ts +1 -0
  159. package/tasks/identify/IdentifyService.js +1 -1
  160. package/tasks/identify/WMSLayerFeatureInfoIdentifyProvider.d.ts +38 -0
  161. package/tasks/identify/WMSLayerFeatureInfoIdentifyProvider.js +1 -0
  162. package/tasks/identify/defaultProviders.d.ts +1 -0
  163. package/tasks/identify/defaultProviders.js +1 -1
  164. package/utilities/ObservableSet.d.ts +1 -1
  165. package/utilities/ObservableSet.js +1 -1
  166. package/utilities/ObservableWeakSet.d.ts +1 -1
  167. package/utilities/ObservableWeakSet.js +1 -1
  168. package/utilities/_gml.d.ts +1 -1
  169. package/utilities/_gml.js +1 -1
  170. package/utilities/_layers.d.ts +5 -3
  171. package/utilities/_layers.js +1 -1
  172. package/utilities/_wkt.js +1 -1
  173. package/utilities/array.js +1 -1
  174. package/utilities/asyncIterable.js +1 -1
  175. package/utilities/checkArg.js +1 -1
  176. package/utilities/esri.js +1 -1
  177. package/utilities/format/date.d.ts +8 -8
  178. package/utilities/format/date.js +1 -1
  179. package/utilities/format/number.d.ts +9 -9
  180. package/utilities/format/number.js +1 -1
  181. package/utilities/format/string.d.ts +12 -12
  182. package/utilities/format/string.js +1 -1
  183. package/utilities/geometry.d.ts +4 -3
  184. package/utilities/geometry.js +1 -1
  185. package/utilities/iterable.d.ts +2 -2
  186. package/utilities/log.d.ts +26 -7
  187. package/utilities/log.js +1 -1
  188. package/utilities/mapping.d.ts +1 -1
  189. package/utilities/mapping.js +1 -1
  190. package/utilities/object.d.ts +10 -6
  191. package/utilities/object.js +1 -1
  192. package/utilities/portal.d.ts +4 -1
  193. package/utilities/portal.js +1 -1
  194. package/utilities/query.js +1 -1
  195. package/utilities/set.d.ts +1 -1
  196. package/version.d.ts +1 -1
  197. package/version.js +1 -1
  198. package/docs/html/interfaces/utilities_log.LogOptions.html +0 -33
@@ -827,6 +827,10 @@
827
827
  "type": {
828
828
  "$ref": "#/definitions/FieldJsonType",
829
829
  "description": "Type of the Field. See {@link FieldJsonType}."
830
+ },
831
+ "visible": {
832
+ "description": "<not in spec>.",
833
+ "type": "boolean"
830
834
  }
831
835
  },
832
836
  "type": "object"
@@ -1234,6 +1238,10 @@
1234
1238
  "description": "Primarily applies to thumbnails associated with an application. The URL\nto the thumbnail used for the application.",
1235
1239
  "type": "string"
1236
1240
  },
1241
+ "lastViewed": {
1242
+ "description": "The date/time the item was last accessed in UNIX format (in\nmilliseconds).",
1243
+ "type": "number"
1244
+ },
1237
1245
  "licenseInfo": {
1238
1246
  "description": "Any license information or restrictions.",
1239
1247
  "type": "string"
@@ -1511,7 +1519,17 @@
1511
1519
  {
1512
1520
  "allOf": [
1513
1521
  {
1514
- "$ref": "#/definitions/GroupLayerJson"
1522
+ "$ref": "#/definitions/RasterDataElevationLayerJson"
1523
+ },
1524
+ {
1525
+ "$ref": "#/definitions/__type"
1526
+ }
1527
+ ]
1528
+ },
1529
+ {
1530
+ "allOf": [
1531
+ {
1532
+ "$ref": "#/definitions/TiledElevationServiceLayerJson"
1515
1533
  },
1516
1534
  {
1517
1535
  "$ref": "#/definitions/__type"
@@ -1548,6 +1566,16 @@
1548
1566
  }
1549
1567
  ]
1550
1568
  },
1569
+ {
1570
+ "allOf": [
1571
+ {
1572
+ "$ref": "#/definitions/GroupLayerJson"
1573
+ },
1574
+ {
1575
+ "$ref": "#/definitions/__type"
1576
+ }
1577
+ ]
1578
+ },
1551
1579
  {
1552
1580
  "allOf": [
1553
1581
  {
@@ -1707,26 +1735,6 @@
1707
1735
  "$ref": "#/definitions/__type"
1708
1736
  }
1709
1737
  ]
1710
- },
1711
- {
1712
- "allOf": [
1713
- {
1714
- "$ref": "#/definitions/TiledElevationServiceLayerJson"
1715
- },
1716
- {
1717
- "$ref": "#/definitions/__type"
1718
- }
1719
- ]
1720
- },
1721
- {
1722
- "allOf": [
1723
- {
1724
- "$ref": "#/definitions/RasterDataElevationLayerJson"
1725
- },
1726
- {
1727
- "$ref": "#/definitions/__type"
1728
- }
1729
- ]
1730
1738
  }
1731
1739
  ],
1732
1740
  "description": "See {@link mapping /_LayerExtension!LayerExtension.layer}."
@@ -1 +1 @@
1
- import{__decorate as t}from"tslib";import e from"@arcgis/core/PopupTemplate";import{Hyperlink as i}from"../Hyperlink.js";import{isPopupContentExtension as n}from"../ItemType.js";import{ArrayWrappedCollection as o}from"../mapping/support/ArrayWrappedCollection.js";import{FormatSettings as s}from"../support/FormatSettings.js";import{InitializableCollectionProxy as r}from"../support/InitializableCollectionProxy.js";import{filterJSONProperties as p,isDefault as a,serializable as u,shouldExcludeDefaults as l}from"../support/Serializable.js";import{Settings as h}from"../support/Settings.js";import{compare as f}from"../utilities/array.js";import{checkArg as d}from"../utilities/checkArg.js";import{getAllFieldInfos as m,getAllReferencedFieldNames as c,isPopupTemplate as _}from"../utilities/esri.js";import{isArcadeExpressionField as g,isRelationshipField as S}from"../utilities/field.js";import{objectKeys as C}from"../utilities/object.js";import{isQueryBasedRelationship as y}from"../utilities/relationships.js";import{caseInsensitiveEquals as x}from"../utilities/string.js";import{onCollectionPropertyChange as T}from"../utilities/watch.js";import{PopupContentExtension as z,_popupContentExtensionMap as E}from"./PopupContentExtension.js";let v=class extends h{popupContentExtensions;_isDefaultPopupTemplate=!1;_popupContentCollection;get _popupContent(){return this._popupContentCollection}get hyperlinkTemplates(){return this._getCollectionSetting("hyperlinkTemplates")}get popupTemplate(){return this._getSetting("popupTemplate")}set popupTemplate(t){let i;i=t instanceof Object&&!_(t)?e.fromJSON(t):t;const n=this?._feature?.schema?.createPopupTemplate()??this?._featureSource?.schema?.createPopupTemplate();i&&n&&(i.content=i.content??n.content,i.fieldInfos=i.fieldInfos??n.fieldInfos),this._setSetting("popupTemplate",i),this._isDefaultPopupTemplate=!1}get showRelatedRecordsWhenUnconfigured(){return this._getSetting("showRelatedRecordsWhenUnconfigured",!0)}set showRelatedRecordsWhenUnconfigured(t){this._setSetting("showRelatedRecordsWhenUnconfigured",t)}get formatSettings(){return this._getNestedSettings("formatSettings",(()=>new s))}get returnGeometry(){return this._getSetting("returnGeometry",!0)}set returnGeometry(t){this._setSetting("returnGeometry",t)}get outFields(){return this._getSetting("outFields",this._defaultOutFields)}set outFields(t){this._setSetting("outFields",t)}get outSpatialReference(){return this._getSetting("outSpatialReference")}set outSpatialReference(t){this._setSetting("outSpatialReference",t)}get maxAllowableOffset(){return this._getSetting("maxAllowableOffset")}set maxAllowableOffset(t){this._setSetting("maxAllowableOffset",t)}get zoomScale(){return this._getSetting("zoomScale")}set zoomScale(t){this._setSetting("zoomScale",t)}get zoomFactor(){const t=this._feature?this._feature.schema:this._featureSource?.schema,e=t&&"point"===t.geometryType?void 0:1.5;return this._getSetting("zoomFactor",e)}set zoomFactor(t){this._setSetting("zoomFactor",t)}get featureSource(){return this._featureSource}get feature(){return this._feature}_featureSource;_feature;constructor(t){super(t),this._popupContentCollection=this._createPopupContentCollection(),this.popupContentExtensions=new A(this)}get _defaultOutFields(){const t=m(this.popupTemplate),e=this.featureSource?.schema?.primaryKeyField;if(t&&e){const i=new Set;i.add(e);const n=this.featureSource.schema.fields.toArray().map((t=>t.name)),o=new Set([...c(this.popupTemplate),...this.hyperlinkTemplates.toArray().flatMap((t=>t.getReferencedFields()))]),s=t.filter((t=>t.visible||t.isEditable&&this.featureSource.capabilities.supportsEditing)).map((t=>t.fieldName)).concat(...o).filter((t=>n.some((e=>x(e,t)))));return this._featureSource.relationships.forEach((t=>{y(t)&&s.push(t.keyField)})),s.filter((t=>!(g(t)||S(t)))).forEach((t=>i.add(t))),Array.from(i.values())}return["*"]}_setFeatureSource(t){this._featureSource=t,this.notifyChange("featureSource")}_setFeature(t){this._feature=t,this.notifyChange("feature")}toJSON(t="all"){const e=p(this._getSerializableProperties(),this,t)||{},i=e.popupContentExtensions?.filter((t=>{const e=this.parent;return!e?.popupContentExtensions?.some((e=>e.id===t.id))}));if(e)for(const t of C(e))this.isModified(t)||delete e[t];if(i?.length&&(e.popupContentExtensions=i),!l(t)||!a(e))return e}_createPopupContentCollection(){return new o({parent:this,targetProperty:"popupTemplate",arrayProperty:"content"})}_getSerializableProperties(){return{hyperlinkTemplates:{serializeModes:["initial"],deserialize:t=>{t.forEach((t=>{this.hyperlinkTemplates.find((e=>this._hyperlinksAreEquivalent(e,t)))||this.hyperlinkTemplates.add(t instanceof i?t:new i(t))})),this.hyperlinkTemplates.toArray().forEach((e=>{const i=this.hyperlinkTemplates.indexOf(e),n=t.findIndex((t=>this._hyperlinksAreEquivalent(t,e)));n<0?this.hyperlinkTemplates.removeAt(i):n!==i&&this.hyperlinkTemplates.reorder(e,n)}))}},popupTemplate:{serialize:!1},showRelatedRecordsWhenUnconfigured:{serializeModes:["initial"],default:!0},formatSettings:"initial",outFields:{serializeModes:["initial"],serialize:()=>this.isModified("outFields")?this.outFields:void 0},returnGeometry:{serializeModes:["initial"],default:!0},outSpatialReference:"initial",maxAllowableOffset:"initial",zoomScale:"initial",zoomFactor:{serializeModes:["initial"],isDefault:t=>{const e=this._feature?this._feature.schema:this._featureSource?.schema;return t===(e&&"point"===e.geometryType?void 0:1.5)}},popupContentExtensions:{serializeModes:["initial"],serialize:t=>this.popupContentExtensions.map((e=>e.toJSON(t))).filter((t=>!(t&&2===Object.keys(t).length&&t.id&&t.content))).toArray(),deserialize:t=>{t&&f(this.popupContentExtensions,t,{onNew:(t,e)=>{this.popupContentExtensions.add(n(t)?t:new z(t),e)},onMatch:(t,e,i,o)=>{n(e)||t.assignProperties(e),i!==o&&this.popupContentExtensions.reorder(t,o)},onMissing:t=>{this.popupContentExtensions.remove(t)},equals:(t,e)=>n(e)?e===t||e.id===t.id:!(!e?.content||!z.matchesRef(this.popupContentExtensions.toArray(),this.popupContentExtensions.indexOf(t),e.content))||t.id===e.id})}}}}_hyperlinksAreEquivalent(t,e){if(t===e)return!0;const i=t=>t||"";return i(t.text)===i(e.text)&&i(t.url)===i(e.url)&&i(t.iconUrl)===i(e.iconUrl)&&i(t.target)===i(e.target)&&i(t.tooltip)===i(e.tooltip)}};v=t([u],v);export{v as FeatureSettings};class A extends r{get _collection(){return this._featureSettings._popupContent.map((t=>this._forContent(t))).concat(Array.from(this._uninitializedPopupContentExtensions))}get _popupTemplateIsInherited(){return this._featureSettings.parent&&this._featureSettings.popupTemplate===this._featureSettings.parent.popupTemplate}_featureSettings;_uninitializedPopupContentExtensions=new Set;constructor(t){super(),this._featureSettings=t,T(this._featureSettings,"_popupContent",(t=>{const e={added:(t.added||[]).map((t=>this._forContent(t))),moved:(t.moved||[]).map((t=>this._forContent(t))),removed:(t.removed||[]).map((t=>this._forContent(t))),target:this};this.emit("change",e)})),t.watch("_popupContent.length",(()=>this.notifyChange("length")))}forContent(t){if(d("content",t).isNotMissing(),this._featureSettings._popupContent.includes(t))return this._forContent(t)}add(t,i){if(d("contentX",t).isNotMissing(),this._popupTemplateIsInherited&&(this._featureSettings.popupTemplate=new e({content:this._featureSettings._popupContent.toArray()})),t.featureSettings&&t.featureSettings.popupContentExtensions.remove(t),t._setFeatureSettings(this._featureSettings),t.content){const e=E.get(t.content);if(E.set(t.content,t),e&&e!==t&&this._onRemoved(e),this._featureSettings._popupContent.includes(t.content))if(void 0===i){const i={added:[t],moved:[],removed:e?[e]:[],target:this};this.emit("change",i)}else this._featureSettings._popupContent.reorder(t.content,i);else this._featureSettings._popupContent.add(t.content,i)}else{this._uninitializedPopupContentExtensions.add(t);const e={added:[t],moved:[],removed:[],target:this};this.emit("change",e)}return this._onAdded(t),this}removeAt(t){const i=this.getItemAt(t);if(void 0!==i){if(this._popupTemplateIsInherited&&(this._featureSettings.popupTemplate=new e({content:this._featureSettings._popupContent.toArray()})),this._uninitializedPopupContentExtensions.has(i)){this._uninitializedPopupContentExtensions.delete(i);const t={added:[],moved:[],removed:[i],target:this};this.emit("change",t)}else this._featureSettings._popupContent.remove(i.content);return this._onRemoved(i),i}}reorder(t,i){if(t&&this._featureSettings._popupContent.includes(t.content))return this._popupTemplateIsInherited&&(this._featureSettings.popupTemplate=new e({content:this._featureSettings._popupContent.toArray()})),this._featureSettings._popupContent.reorder(t.content,i),t}sort(t){return this._popupTemplateIsInherited&&(this._featureSettings.popupTemplate=new e({content:this._featureSettings._popupContent.toArray()})),this._featureSettings._popupContent.sort(((e,i)=>t(this._forContent(e),this._forContent(i)))),this}_itemIsInitialized(t){return super._itemIsInitialized(t)&&!!t.content}_onAdded(t){}_onRemoved(t){t.featureSettings===this._featureSettings&&t._setFeatureSettings(void 0)}_forContent(t){if(this._uninitializedPopupContentExtensions.size)for(const t of this._uninitializedPopupContentExtensions)t._resolveContent(),t.content&&(E.set(t.content,t),this._uninitializedPopupContentExtensions.delete(t));if(!E.has(t)){const e=new z({content:t});E.set(t,e),e._setFeatureSettings(this._featureSettings),this._onAdded(e)}return E.get(t)}}
1
+ import{__decorate as t}from"tslib";import e from"@arcgis/core/PopupTemplate";import{Hyperlink as i}from"../Hyperlink.js";import{isPopupContentExtension as n}from"../ItemType.js";import{ArrayWrappedCollection as o}from"../mapping/support/ArrayWrappedCollection.js";import{FormatSettings as s}from"../support/FormatSettings.js";import{InitializableCollectionProxy as r}from"../support/InitializableCollectionProxy.js";import{filterJSONProperties as p,isDefault as a,serializable as u,shouldExcludeDefaults as l}from"../support/Serializable.js";import{Settings as h}from"../support/Settings.js";import{compare as f}from"../utilities/array.js";import{checkArg as d}from"../utilities/checkArg.js";import{getAllFieldInfos as m,getAllReferencedFieldNames as c,isPopupTemplate as _}from"../utilities/esri.js";import{isArcadeExpressionField as g,isRelationshipField as S}from"../utilities/field.js";import{objectKeys as C}from"../utilities/object.js";import{isQueryBasedRelationship as y}from"../utilities/relationships.js";import{caseInsensitiveEquals as T}from"../utilities/string.js";import{onCollectionPropertyChange as x}from"../utilities/watch.js";import{PopupContentExtension as z,_popupContentExtensionMap as E}from"./PopupContentExtension.js";let v=class extends h{popupContentExtensions;_isDefaultPopupTemplate=!1;_popupContentCollection;get _popupContent(){return this._popupContentCollection}get hyperlinkTemplates(){return this._getCollectionSetting("hyperlinkTemplates")}get popupTemplate(){return this._getSetting("popupTemplate")}set popupTemplate(t){let i;i=t instanceof Object&&!_(t)?e.fromJSON(t):t;const n=this?._feature?.schema?.createPopupTemplate()??this?._featureSource?.schema?.createPopupTemplate();i&&n&&(i.content=i.content??n.content,i.fieldInfos=i.fieldInfos??n.fieldInfos),this._setSetting("popupTemplate",i),this._isDefaultPopupTemplate=!1}get showRelatedRecordsWhenUnconfigured(){return this._getSetting("showRelatedRecordsWhenUnconfigured",!0)}set showRelatedRecordsWhenUnconfigured(t){this._setSetting("showRelatedRecordsWhenUnconfigured",t)}get formatSettings(){return this._getNestedSettings("formatSettings",(()=>new s))}get returnGeometry(){return this._getSetting("returnGeometry",!0)}set returnGeometry(t){this._setSetting("returnGeometry",t)}get outFields(){return this._getSetting("outFields",this._defaultOutFields)}set outFields(t){this._setSetting("outFields",t)}get outSpatialReference(){return this._getSetting("outSpatialReference")}set outSpatialReference(t){this._setSetting("outSpatialReference",t)}get maxAllowableOffset(){return this._getSetting("maxAllowableOffset")}set maxAllowableOffset(t){this._setSetting("maxAllowableOffset",t)}get zoomScale(){return this._getSetting("zoomScale")}set zoomScale(t){this._setSetting("zoomScale",t)}get zoomFactor(){const t=this._feature?this._feature.schema:this._featureSource?.schema,e=t&&"point"===t.geometryType?void 0:1.5;return this._getSetting("zoomFactor",e)}set zoomFactor(t){this._setSetting("zoomFactor",t)}get featureSource(){return this._featureSource}get feature(){return this._feature}_featureSource;_feature;constructor(t){super(t),this._popupContentCollection=this._createPopupContentCollection(),this.popupContentExtensions=new A(this)}get _defaultOutFields(){if(null==this.popupTemplate)return["*"];const t=m(this.popupTemplate),e=this.featureSource?.schema?.primaryKeyField;if(t&&e){const i=new Set;i.add(e);const n=this.featureSource.schema.fields.toArray().map((t=>t.name)),o=new Set([...c(this.popupTemplate),...this.hyperlinkTemplates.toArray().flatMap((t=>t.getReferencedFields()))]),s=t.filter((t=>t.visible||t.isEditable&&this.featureSource.capabilities.supportsEditing)).map((t=>t.fieldName)).concat(...o).filter((t=>n.some((e=>T(e,t)))));return this._featureSource.relationships.forEach((t=>{y(t)&&s.push(t.keyField)})),s.filter((t=>!(g(t)||S(t)))).forEach((t=>i.add(t))),Array.from(i.values())}return["*"]}_setFeatureSource(t){this._featureSource=t,this.notifyChange("featureSource")}_setFeature(t){this._feature=t,this.notifyChange("feature")}toJSON(t="all"){const e=p(this._getSerializableProperties(),this,t)||{},i=e.popupContentExtensions?.filter((t=>{const e=this.parent;return!e?.popupContentExtensions?.some((e=>e.id===t.id))}));if(e)for(const t of C(e))this.isModified(t)||delete e[t];if(i?.length&&(e.popupContentExtensions=i),!l(t)||!a(e))return e}_createPopupContentCollection(){return new o({parent:this,targetProperty:"popupTemplate",arrayProperty:"content"})}_getSerializableProperties(){return{hyperlinkTemplates:{serializeModes:["initial"],deserialize:t=>{t.forEach((t=>{this.hyperlinkTemplates.find((e=>this._hyperlinksAreEquivalent(e,t)))||this.hyperlinkTemplates.add(t instanceof i?t:new i(t))})),this.hyperlinkTemplates.toArray().forEach((e=>{const i=this.hyperlinkTemplates.indexOf(e),n=t.findIndex((t=>this._hyperlinksAreEquivalent(t,e)));n<0?this.hyperlinkTemplates.removeAt(i):n!==i&&this.hyperlinkTemplates.reorder(e,n)}))}},popupTemplate:{serializeModes:["project"],isDefault:()=>!this._isDefaultPopupTemplate},showRelatedRecordsWhenUnconfigured:{serializeModes:["initial"],default:!0},formatSettings:"initial",outFields:{serializeModes:["initial"],serialize:()=>this.isModified("outFields")?this.outFields:void 0},returnGeometry:{serializeModes:["initial"],default:!0},outSpatialReference:"initial",maxAllowableOffset:"initial",zoomScale:"initial",zoomFactor:{serializeModes:["initial"],isDefault:t=>{const e=this._feature?this._feature.schema:this._featureSource?.schema;return t===(e&&"point"===e.geometryType?void 0:1.5)}},popupContentExtensions:{serializeModes:["initial"],serialize:t=>this.popupContentExtensions.map((e=>e.toJSON(t))).filter((t=>!(t&&2===Object.keys(t).length&&t.id&&t.content))).toArray(),deserialize:t=>{t&&f(this.popupContentExtensions,t,{onNew:(t,e)=>{this.popupContentExtensions.add(n(t)?t:new z(t),e)},onMatch:(t,e,i,o)=>{n(e)||t.assignProperties(e),i!==o&&this.popupContentExtensions.reorder(t,o)},onMissing:t=>{this.popupContentExtensions.remove(t)},equals:(t,e)=>n(e)?e===t||e.id===t.id:!(!e?.content||!z.matchesRef(this.popupContentExtensions.toArray(),this.popupContentExtensions.indexOf(t),e.content))||t.id===e.id})}}}}_hyperlinksAreEquivalent(t,e){if(t===e)return!0;const i=t=>t||"";return i(t.text)===i(e.text)&&i(t.url)===i(e.url)&&i(t.iconUrl)===i(e.iconUrl)&&i(t.target)===i(e.target)&&i(t.tooltip)===i(e.tooltip)}};v=t([u],v);export{v as FeatureSettings};class A extends r{get _collection(){return this._featureSettings._popupContent.map((t=>this._forContent(t))).concat(Array.from(this._uninitializedPopupContentExtensions))}get _popupTemplateIsInherited(){return this._featureSettings.parent&&this._featureSettings.popupTemplate===this._featureSettings.parent.popupTemplate}_featureSettings;_uninitializedPopupContentExtensions=new Set;constructor(t){super(),this._featureSettings=t,x(this._featureSettings,"_popupContent",(t=>{const e={added:(t.added||[]).map((t=>this._forContent(t))),moved:(t.moved||[]).map((t=>this._forContent(t))),removed:(t.removed||[]).map((t=>this._forContent(t))),target:this};this.emit("change",e)})),t.watch("_popupContent.length",(()=>this.notifyChange("length")))}forContent(t){if(d("content",t).isNotMissing(),this._featureSettings._popupContent.includes(t))return this._forContent(t)}add(t,i){if(d("contentX",t).isNotMissing(),this._popupTemplateIsInherited&&(this._featureSettings.popupTemplate=new e({content:this._featureSettings._popupContent.toArray()})),t.featureSettings&&t.featureSettings.popupContentExtensions.remove(t),t._setFeatureSettings(this._featureSettings),t.content){const e=E.get(t.content);if(E.set(t.content,t),e&&e!==t&&this._onRemoved(e),this._featureSettings._popupContent.includes(t.content))if(void 0===i){const i={added:[t],moved:[],removed:e?[e]:[],target:this};this.emit("change",i)}else this._featureSettings._popupContent.reorder(t.content,i);else this._featureSettings._popupContent.add(t.content,i)}else{this._uninitializedPopupContentExtensions.add(t);const e={added:[t],moved:[],removed:[],target:this};this.emit("change",e)}return this._onAdded(t),this}removeAt(t){const i=this.getItemAt(t);if(void 0!==i){if(this._popupTemplateIsInherited&&(this._featureSettings.popupTemplate=new e({content:this._featureSettings._popupContent.toArray()})),this._uninitializedPopupContentExtensions.has(i)){this._uninitializedPopupContentExtensions.delete(i);const t={added:[],moved:[],removed:[i],target:this};this.emit("change",t)}else this._featureSettings._popupContent.remove(i.content);return this._onRemoved(i),i}}reorder(t,i){if(t&&this._featureSettings._popupContent.includes(t.content))return this._popupTemplateIsInherited&&(this._featureSettings.popupTemplate=new e({content:this._featureSettings._popupContent.toArray()})),this._featureSettings._popupContent.reorder(t.content,i),t}sort(t){return this._popupTemplateIsInherited&&(this._featureSettings.popupTemplate=new e({content:this._featureSettings._popupContent.toArray()})),this._featureSettings._popupContent.sort(((e,i)=>t(this._forContent(e),this._forContent(i)))),this}_itemIsInitialized(t){return super._itemIsInitialized(t)&&!!t.content}_onAdded(t){}_onRemoved(t){t.featureSettings===this._featureSettings&&t._setFeatureSettings(void 0)}_forContent(t){if(this._uninitializedPopupContentExtensions.size)for(const t of this._uninitializedPopupContentExtensions)t._resolveContent(),t.content&&(E.set(t.content,t),this._uninitializedPopupContentExtensions.delete(t));if(!E.has(t)){const e=new z({content:t});E.set(t,e),e._setFeatureSettings(this._featureSettings),this._onAdded(e)}return E.get(t)}}
@@ -1 +1 @@
1
- import t from"@arcgis/core/core/Collection";import e from"@arcgis/core/popup/content/TextContent.js";import{ArgumentError as i}from"../ArgumentError.js";import{EntityBase as s}from"../Entity.js";import{Hyperlink as r}from"../Hyperlink.js";import{InvalidOperationError as a}from"../InvalidOperationError.js";import{isMenu as n,isRelationship as o}from"../ItemType.js";import{NotFoundError as u}from"../NotFoundError.js";import{FeatureReadOptions as c}from"../data/FeatureSource.js";import{Menu as l}from"../menus/Menu.js";import{initializeCollection as h}from"../support/InitializableBase.js";import{CollectionProxy as p}from"../utilities/CollectionProxy.js";import{first as d}from"../utilities/asyncIterable.js";import{checkArg as f}from"../utilities/checkArg.js";import{compare as m}from"../utilities/collection.js";import{every as g}from"../utilities/iterable.js";import{getLogger as w}from"../utilities/log.js";import{FeatureSettings as y}from"./FeatureSettings.js";import{Schema as S}from"./Schema.js";import{TaskSettings as A}from"./TaskSettings.js";import{Relationship as _}from"./_Relationship.js";const F="Adding features is not supported.",z="Updating features is not supported.",j="Deleting features is not supported.",M=Object.freeze({supportsAdd:!1,supportsUpdate:!1,supportsDelete:!1,supportsEditing:!1,supportsAttachmentEditing:!1}),b=w("FeatureSourceBase");export class FeatureSourceBase extends s{featureSettings;taskSettings;schema;relationships;hyperlinks;iconUrl;onAddFeature;onEditFeature;get featureActions(){return this._featureActions}set featureActions(t){this._featureActions=t,t&&this.isInitialized&&!t.isInitialized&&(async()=>{try{await t.initialize()}catch(t){t instanceof Error&&b.error({message:"An error occurred while initializing feature action menu.",error:t})}})()}get featureSourceActions(){return this._featureSourceActions}set featureSourceActions(t){this._featureSourceActions=t,t&&this.isInitialized&&!t.isInitialized&&(async()=>{try{await t.initialize()}catch(t){t instanceof Error&&b.error({message:"An error occurred while initializing feature source action menu.",error:t})}})()}queryService;get capabilities(){return this._capabilities()}_featureActions;_featureSourceActions;constructor(t){super(t),this.featureSettings=this._createAndSetupFeatureSettings(),this.taskSettings=this._createTaskSettings(),this.schema=this._createAndSetupSchema(),this.relationships=this._createRelationships(),this.hyperlinks=this._createHyperlinks()}getFullExtent(){}async getAttachments(t){return f("feature",t).isNotMissing(),await this.initialize(),this._getAttachments(t)}async addAttachment(t,e){if(f("feature",t).isNotMissing(),f("attachment",e).isNotMissing(),t.source&&t.source!==this)throw new i("feature",`Cannot add an attachment to a feature not of this source (${this.title??this.id})`);return await this.initialize(),this._addAttachment(t,e)}async deleteAttachments(t,e){if(f("feature",t).isNotMissing(),f("attachmentIds",e).isNotMissing(),t.source&&t.source!==this)throw new i("feature",`Cannot delete attachments from a feature not of this source (${this.title??this.id})`);await this.initialize(),await this._deleteAttachments(t,e)}async getFeature(t,e){f("id",t).isNotMissing();const i=this.getFeatures([t],e),s=await d(i);if(!s)throw new u("No feature exists with ID '{0}'.",t);return s}getFeatures(t,e){f("ids",t).isNotMissing();const i=this;return async function*(){await i.initialize(),yield*i._getFeatures(t,{...c.DEFAULTS,...c.fromFeatureSource(i),...e})}()}async addFeature(t,e){f("feature",t).isNotMissing(),await this.addFeatures([t])}async addFeatures(t,e){if(f("features",t).isNotMissing(),await this.initialize(),!this.capabilities.supportsAdd)throw new a(F);await this._addFeatures(t,e)}async updateFeature(t,e){f("feature",t).isNotMissing(),await this.updateFeatures([t])}async updateFeatures(t,e){if(f("features",t).isNotMissing(),await this.initialize(),!this.capabilities.supportsUpdate)throw new a(z);await this._updateFeatures(t,e)}async deleteFeature(t,e){f("feature",t).isNotMissing(),await this.deleteFeatures([t])}async deleteFeatures(t,e){if(f("features",t).isNotMissing(),f("features",t).satisfies((t=>g(t,(t=>"string"==typeof t?null!=t:null!=t.primaryKey))),"Features must have an object id to be deleted."),await this.initialize(),!this.capabilities.supportsDelete)throw new a(j);const i=[];for(const e of t)i.push("string"==typeof e?e:e.primaryKey);await this._deleteFeatures(i,e)}_getSerializableProperties(){return{...super._getSerializableProperties(),featureSettings:{serializeModes:["initial"],isDefault:t=>{if(!t)return!0;if(t.constructor===Object){if(!Object.keys(t).length)return!0}return!1}},taskSettings:"initial",onAddFeature:"initial",onEditFeature:"initial",schema:"initial",relationships:{serializeModes:["initial"],serialize:t=>this.relationships?this.relationships.filter((t=>"ArcGISRelationship"!==t.relationshipType)).toArray():[],deserialize:t=>{m(this.relationships,t,{onNew:t=>{o(t)?this.relationships.add(t):this.relationships.add(_.create(t))},onMatch:(t,e)=>{o(t)&&t.assignProperties({title:e.title})},onMissing:t=>{"ArcGISRelationship"!==t.relationshipType&&this.relationships.remove(t)},equals:(t,e)=>t.id===e.id})},default:[]},hyperlinks:{serialize:!1,deserialize:t=>{this.hyperlinks.removeAll(),this.hyperlinks.addMany(t.map((t=>t instanceof r?t:new r(t))))}},iconUrl:"initial",featureActions:{serializeModes:["initial"],deserialize:t=>{t?n(t)?this.featureActions=t:this.featureActions?this.featureActions.assignProperties(t):this.featureActions=l.create(t):this.featureActions=void 0}},featureSourceActions:{serializeModes:["initial"],deserialize:t=>{t?n(t)?this.featureSourceActions=t:this.featureSourceActions?this.featureSourceActions.assignProperties(t):this.featureSourceActions=l.create(t):this.featureSourceActions=void 0}}}}*_initializableChildCollections(){yield*super._initializableChildCollections(),yield this.schema.fieldExtensions}async _onInitialize(){await super._onInitialize(),this.featureActions&&await this.featureActions.initialize(),this.featureSourceActions&&await this.featureSourceActions.initialize()}async _postInitialize(){await super._postInitialize(),this.featureSettings.popupTemplate||(this.featureSettings.popupTemplate=this.schema.createPopupTemplate(),this.featureSettings._isDefaultPopupTemplate=!0);const{popupTemplate:t}=this.featureSettings;"function"==typeof t.content&&(t.content=t.content()),t.content=await t.content,"string"==typeof t.content&&(t.content=[new e({text:t.content})]),!t.title&&this.schema.displayField&&(t.title=`{${this.schema.displayField}}`),await h(this.featureSettings.popupContentExtensions,{target:this,onInitializeWarning:t=>this.emit("initializeWarning",t)}),await Promise.all(this.relationships.toArray().map((t=>t.relatedSource?.initialize())))}_createSchema(){return new S}_createFeatureSettings(){return new y}_createTaskSettings(){return new A}_createRelationships(){return new RelationshipCollection(this)}_createHyperlinks(){return new t}async _getAttachments(t){return[]}async _addAttachment(t,e){throw new a("Adding attachments is not supported.")}async _deleteAttachments(t,e){throw new a("Deleting attachments is not supported.")}_getFeatures(t,e){const{primaryKeyField:i}=this.schema;if(this.queryService&&i){const s=t.map((t=>`${i} = ${t}`)).join(" OR ");return this.queryService.query(this,s,e)}throw new a("Querying features is not supported.")}_addFeatures(t,e){throw new a(F)}_updateFeatures(t,e){throw new a(z)}_deleteFeatures(t,e){throw new a(j)}_capabilities(){return M}_isRelationship(t){return"function"==typeof t.getRelatedFeatures}_createAndSetupSchema(){const t=this._createSchema();return t._featureSettings=this.featureSettings,t}_createAndSetupFeatureSettings(){const t=this._createFeatureSettings();return t._setFeatureSource(this),t}}export class RelationshipCollection extends p{_source;constructor(e){super(new t),this._source=e}add(t,e){return f("relationship",t).isNotMissing(),t.source&&t.source.relationships.remove(t),o(t)&&t._setSource(this._source),super.add(t,e)}removeAt(t){const e=super.removeAt(t);return o(e)&&e._setSource(void 0),e}}
1
+ import t from"@arcgis/core/core/Collection";import e from"@arcgis/core/popup/content/TextContent.js";import{ArgumentError as i}from"../ArgumentError.js";import{EntityBase as s}from"../Entity.js";import{Hyperlink as r}from"../Hyperlink.js";import{InvalidOperationError as a}from"../InvalidOperationError.js";import{isMenu as n,isRelationship as o}from"../ItemType.js";import{NotFoundError as u}from"../NotFoundError.js";import{FeatureReadOptions as c}from"../data/FeatureSource.js";import{Menu as l}from"../menus/Menu.js";import{initializeCollection as h}from"../support/InitializableBase.js";import{CollectionProxy as p}from"../utilities/CollectionProxy.js";import{first as d}from"../utilities/asyncIterable.js";import{checkArg as f}from"../utilities/checkArg.js";import{compare as m}from"../utilities/collection.js";import{every as g}from"../utilities/iterable.js";import{getLogger as w}from"../utilities/log.js";import{FeatureSettings as y}from"./FeatureSettings.js";import{Schema as S}from"./Schema.js";import{TaskSettings as A}from"./TaskSettings.js";import{Relationship as _}from"./_Relationship.js";const F="Adding features is not supported.",z="Updating features is not supported.",j="Deleting features is not supported.",M=Object.freeze({supportsAdd:!1,supportsUpdate:!1,supportsDelete:!1,supportsEditing:!1,supportsAttachmentEditing:!1}),b=w("FeatureSourceBase");export class FeatureSourceBase extends s{featureSettings;taskSettings;schema;relationships;hyperlinks;iconUrl;onAddFeature;onEditFeature;get featureActions(){return this._featureActions}set featureActions(t){this._featureActions=t,t&&this.isInitialized&&!t.isInitialized&&(async()=>{try{await t.initialize()}catch(t){t instanceof Error&&b.error({message:"An error occurred while initializing feature action menu.",error:t})}})()}get featureSourceActions(){return this._featureSourceActions}set featureSourceActions(t){this._featureSourceActions=t,t&&this.isInitialized&&!t.isInitialized&&(async()=>{try{await t.initialize()}catch(t){t instanceof Error&&b.error({message:"An error occurred while initializing feature source action menu.",error:t})}})()}queryService;get capabilities(){return this._capabilities()}_featureActions;_featureSourceActions;constructor(t){super(t),this.featureSettings=this._createAndSetupFeatureSettings(),this.taskSettings=this._createTaskSettings(),this.schema=this._createAndSetupSchema(),this.relationships=this._createRelationships(),this.hyperlinks=this._createHyperlinks()}getFullExtent(){}async getAttachments(t){return f("feature",t).isNotMissing(),await this.initialize(),this._getAttachments(t)}async addAttachment(t,e){if(f("feature",t).isNotMissing(),f("attachment",e).isNotMissing(),t.source&&t.source!==this)throw new i("feature",`Cannot add an attachment to a feature not of this source (${this.title??this.id})`);return await this.initialize(),this._addAttachment(t,e)}async deleteAttachments(t,e){if(f("feature",t).isNotMissing(),f("attachmentIds",e).isNotMissing(),t.source&&t.source!==this)throw new i("feature",`Cannot delete attachments from a feature not of this source (${this.title??this.id})`);await this.initialize(),await this._deleteAttachments(t,e)}async getFeature(t,e){f("id",t).isNotMissing();const i=this.getFeatures([t],e),s=await d(i);if(!s)throw new u("No feature exists with ID '{0}'.",t);return s}getFeatures(t,e){f("ids",t).isNotMissing();const i=this;return async function*(){await i.initialize(),yield*i._getFeatures(t,{...c.DEFAULTS,...c.fromFeatureSource(i),...e})}()}async addFeature(t,e){f("feature",t).isNotMissing(),await this.addFeatures([t])}async addFeatures(t,e){if(f("features",t).isNotMissing(),await this.initialize(),!this.capabilities.supportsAdd)throw new a(F);await this._addFeatures(t,e)}async updateFeature(t,e){f("feature",t).isNotMissing(),await this.updateFeatures([t])}async updateFeatures(t,e){if(f("features",t).isNotMissing(),await this.initialize(),!this.capabilities.supportsUpdate)throw new a(z);await this._updateFeatures(t,e)}async deleteFeature(t,e){f("feature",t).isNotMissing(),await this.deleteFeatures([t])}async deleteFeatures(t,e){if(f("features",t).isNotMissing(),f("features",t).satisfies((t=>g(t,(t=>"string"==typeof t?null!=t:null!=t.primaryKey))),"Features must have an object id to be deleted."),await this.initialize(),!this.capabilities.supportsDelete)throw new a(j);const i=[];for(const e of t)i.push("string"==typeof e?e:e.primaryKey);await this._deleteFeatures(i,e)}_getSerializableProperties(){return{...super._getSerializableProperties(),featureSettings:{serializeModes:["initial","project"],isDefault:t=>{if(!t)return!0;if(t.constructor===Object){if(!Object.keys(t).length)return!0}return!1}},taskSettings:"initial",onAddFeature:"initial",onEditFeature:"initial",schema:["initial","project"],relationships:{serializeModes:["initial"],serialize:t=>this.relationships?this.relationships.filter((t=>"ArcGISRelationship"!==t.relationshipType)).toArray():[],deserialize:t=>{m(this.relationships,t,{onNew:t=>{o(t)?this.relationships.add(t):this.relationships.add(_.create(t))},onMatch:(t,e)=>{o(t)&&t.assignProperties({title:e.title})},onMissing:t=>{"ArcGISRelationship"!==t.relationshipType&&this.relationships.remove(t)},equals:(t,e)=>t.id===e.id})},default:[]},hyperlinks:{serialize:!1,deserialize:t=>{this.hyperlinks.removeAll(),this.hyperlinks.addMany(t.map((t=>t instanceof r?t:new r(t))))}},iconUrl:"initial",featureActions:{serializeModes:["initial"],deserialize:t=>{t?n(t)?this.featureActions=t:this.featureActions?this.featureActions.assignProperties(t):this.featureActions=l.create(t):this.featureActions=void 0}},featureSourceActions:{serializeModes:["initial"],deserialize:t=>{t?n(t)?this.featureSourceActions=t:this.featureSourceActions?this.featureSourceActions.assignProperties(t):this.featureSourceActions=l.create(t):this.featureSourceActions=void 0}}}}*_initializableChildCollections(){yield*super._initializableChildCollections(),yield this.schema.fieldExtensions}async _onInitialize(){await super._onInitialize(),this.featureActions&&await this.featureActions.initialize(),this.featureSourceActions&&await this.featureSourceActions.initialize()}async _postInitialize(){await super._postInitialize(),this.featureSettings.popupTemplate||(this.featureSettings.popupTemplate=this.schema.createPopupTemplate(),this.featureSettings._isDefaultPopupTemplate=!0);const{popupTemplate:t}=this.featureSettings;"function"==typeof t.content&&(t.content=t.content()),t.content=await t.content,"string"==typeof t.content&&(t.content=[new e({text:t.content})]),!t.title&&this.schema.displayField&&(t.title=`{${this.schema.displayField}}`),await h(this.featureSettings.popupContentExtensions,{target:this,onInitializeWarning:t=>this.emit("initializeWarning",t)}),await Promise.all(this.relationships.toArray().map((t=>t.relatedSource?.initialize())))}_createSchema(){return new S}_createFeatureSettings(){return new y}_createTaskSettings(){return new A}_createRelationships(){return new RelationshipCollection(this)}_createHyperlinks(){return new t}async _getAttachments(t){return[]}async _addAttachment(t,e){throw new a("Adding attachments is not supported.")}async _deleteAttachments(t,e){throw new a("Deleting attachments is not supported.")}_getFeatures(t,e){const{primaryKeyField:i}=this.schema;if(this.queryService&&i){const s=t.map((t=>`${i} = ${t}`)).join(" OR ");return this.queryService.query(this,s,e)}throw new a("Querying features is not supported.")}_addFeatures(t,e){throw new a(F)}_updateFeatures(t,e){throw new a(z)}_deleteFeatures(t,e){throw new a(j)}_capabilities(){return M}_isRelationship(t){return"function"==typeof t.getRelatedFeatures}_createAndSetupSchema(){const t=this._createSchema();return t._featureSettings=this.featureSettings,t}_createAndSetupFeatureSettings(){const t=this._createFeatureSettings();return t._setFeatureSource(this),t}}export class RelationshipCollection extends p{_source;constructor(e){super(new t),this._source=e}add(t,e){return f("relationship",t).isNotMissing(),t.source&&t.source.relationships.remove(t),o(t)&&t._setSource(this._source),super.add(t,e)}removeAt(t){const e=super.removeAt(t);return o(e)&&e._setSource(void 0),e}}
package/data/Schema.js CHANGED
@@ -1 +1 @@
1
- var e;import{__decorate as i}from"tslib";import t from"@arcgis/core/PopupTemplate";import s from"@arcgis/core/core/Collection";import o from"@arcgis/core/layers/support/FeatureType";import l from"@arcgis/core/layers/support/Field";import n from"@arcgis/core/popup/FieldInfo";import{InvalidOperationError as r}from"../InvalidOperationError.js";import{isFieldExtension as d}from"../ItemType.js";import{jsonToGeometryType as a}from"../json/GeometryJson.js";import{InitializableCollectionProxy as h}from"../support/InitializableCollectionProxy.js";import{filterJSONProperties as p,isDefault as m,serializable as f,shouldExcludeDefaults as c}from"../support/Serializable.js";import{Settings as _}from"../support/Settings.js";import{CaseInsensitiveObservableMap as u}from"../utilities/CaseInsensitiveObservableMap.js";import{CollectionProxy as g}from"../utilities/CollectionProxy.js";import{checkArg as y}from"../utilities/checkArg.js";import{compare as F}from"../utilities/collection.js";import{isFeatureType as x,isField as b}from"../utilities/esri.js";import{fieldWithArcadeXRegex as v,fieldWithRelationshipRegex as T,getArcadeExpressionFromField as S}from"../utilities/field.js";import{isValidTimeZone as I,ERR_TIME_ZONE_INVALID as z}from"../utilities/format/date.js";import{objectKeys as w}from"../utilities/object.js";import{caseInsensitiveEquals as N}from"../utilities/string.js";import{onCollectionPropertyChange as E}from"../utilities/watch.js";import{_fieldExtensionMap as C,FieldExtension as j}from"./FieldExtension.js";const k=new Map;k.set("objectid","oid"),k.set("oid","oid"),k.set("fid","oid"),k.set("shape","geometry"),k.set("shape__length","double"),k.set("shape_length","double"),k.set("shape__area","double"),k.set("shape_area","double"),k.set("area","double"),k.set("perimeter","double"),k.set("length","double"),k.set("fnode_","double"),k.set("tnode_","double"),k.set("lpoly_","double"),k.set("rpoly_","double"),k.set("cover_","integer"),k.set("cover_id","integer"),k.set("idtic","integer"),k.set("xtic","double"),k.set("ytic","double"),k.set("xmin","double"),k.set("ymin","double"),k.set("xmax","double"),k.set("ymax","double"),k.set("arc_","double"),k.set("subclass_","integer"),k.set("subclass_id","integer"),k.set("routelink","integer"),k.set("arclink","integer"),k.set("f_meas","double"),k.set("t_meas","double"),k.set("f_pos","double"),k.set("t_pos","double"),k.set("f_meas","double"),k.set("globalid","global-id"),k.set("guid","guid");export{v as fieldWithArcadeXRegex,T as fieldWithRelationshipRegex};const M=new WeakMap;let A=e=class extends _{fieldExtensions;fields;get spatialReference(){return this._getSetting("spatialReference")}set spatialReference(e){this._setSetting("spatialReference",e)}get primaryKeyField(){const e=this._getSetting("primaryKeyField");if(!e){const e=this.fields.filter((e=>"oid"===e.type));if(1===e.length)return e.getItemAt(0).name}return e}set primaryKeyField(e){this._setSetting("primaryKeyField",e)}get displayField(){return this._getSetting("displayField",this.primaryKeyField)}set displayField(e){!this._featureSettings?.popupTemplate||this._featureSettings.popupTemplate.title&&this._featureSettings.popupTemplate.title!==`{${this.displayField}}`||(this._featureSettings.popupTemplate.title=`{${e}}`),this._setSetting("displayField",e)}get geometryType(){return this._getSetting("geometryType")}set geometryType(e){this._setSetting("geometryType",e)}get hasGeometry(){return void 0!==this.geometryType&&null!==this.geometryType}get timeZone(){return this._getSetting("timeZone","UTC")}set timeZone(e){y("timeZone",e).satisfies((e=>I(e)),z(e)),this._setSetting("timeZone",e)}get typeIdField(){return this._getSetting("typeIdField")}set typeIdField(e){this._setSetting("typeIdField",e)}get types(){return this._getCollectionSetting("types")}get _fields(){return this._getCollectionSetting("_fields")}_featureSettings;_alwaysSerializeFieldExtensions;constructor(e){super(e),this.fieldExtensions=new O(this),this.fields=new L(this)}static createFieldInfoFromField(e){let i=!0;const t=e.name.toLowerCase();return("oid"===e.type||"geometry"===e.type||k.has(t)&&k.get(t)===e.type)&&(i=!1),new n({visible:i,fieldName:e.name,format:void 0,label:e.alias,stringFieldOption:void 0,tooltip:void 0,isEditable:e.editable})}findFieldByName(e){return this.fields.findFieldByName(e)}toJSON(e="all"){const i=p(this._getSerializableProperties(),this,e)||{};let t=i.fieldExtensions;this.parent&&(t=t?.filter((e=>{const i=this.parent;return!i?.fieldExtensions?.some((i=>i.id===e.id))})));const{fields:s}=i;if(i)for(const e of w(i))this.isModified(e)||delete i[e];if(s&&(i.fields=s),t?.length&&(i.fieldExtensions=t),!c(e)||!m(i))return i}createPopupTemplate(){const e=this.createAllFieldInfos();return new t({fieldInfos:e,content:[{type:"fields"},{type:"attachments"}]})}createAllFieldInfos(){return this.fields.toArray().filter((e=>!!e.name)).map((i=>e.createFieldInfoFromField(i)))}_getSerializableProperties(){return{geometryType:{serialize:!1,deserialize:e=>{this.geometryType=e?a(e):void 0}},spatialReference:{serialize:!1},primaryKeyField:{serialize:!1},displayField:{serialize:!1},typeIdField:{serialize:!1},fields:{serializeModes:["initial"],serialize:()=>this.isModified("_fields")?this.fields.toArray().map((e=>e.toJSON())):void 0,deserialize:e=>{if(!e)return;const i=e.map((e=>b(e)?e:l.fromJSON(e)));F(this.fields,i,{onNew:(e,i)=>{this.fields.add(e,i)},onMatch:(e,i,t,s)=>{e!==i&&(e.alias=i.alias,e.editable=i.editable,e.length=i.length,e.nullable=i.nullable,e.type=i.type),t!==s&&this.fields.reorder(e,s)},onMissing:e=>{this.fields.remove(e)},equals:(e,i)=>N(e.name,i.name)})}},fieldExtensions:{serializeModes:["initial"],serialize:e=>this.fieldExtensions.toArray().map((i=>i.toJSON(e))).filter((e=>this._alwaysSerializeFieldExtensions||!(e&&2===Object.keys(e).length&&e.id&&e.field))),deserialize:e=>{e&&F(this.fieldExtensions,e,{onNew:(e,i)=>{this.fieldExtensions.add(d(e)?e:new j(e),i)},onMatch:(e,i,t,s)=>{d(i)||e.assignProperties(i),t!==s&&this.fieldExtensions.reorder(e,s)},onMissing:e=>{this._alwaysSerializeFieldExtensions&&this.fieldExtensions.remove(e)},equals:(e,i)=>d(i)?i===e:!(!i?.field||!j.matchesRef(e,i.field))||e.id===i.id})}},types:{serialize:!1,deserialize:e=>{if(!e)return;const i=e.map((e=>x(e)||!e?e:o.fromJSON(e)));F(this.types,i,{onNew:(e,i)=>{this.types.add(e,i)},onMatch:(e,i,t,s)=>{e!==i&&(e.name=i.name,e.templates=i.templates?[...i.templates]:[],e.domains=i.domains),t!==s&&this.types.reorder(e,s)},onMissing:e=>{this.types.remove(e)},equals:(e,i)=>e.id===i.id})}},timeZone:{serialize:!1,deserialize:e=>{e&&(this.timeZone=e)}}}}};A=e=i([f],A);export{A as Schema};class L extends g{_schema;_schemaFieldsHandle;_fieldNameToField;_backingCollection;_expressionFields;get _expressionFieldsLength(){return this.expressionFields.length}get expressionFields(){return null==this._expressionFields&&this._generateExpressionFields(),this._expressionFields}get _collection(){return null==this._backingCollection&&this._generateCollection(),this._backingCollection}get _popupTemplate(){return this._schema._featureSettings?this._schema._featureSettings.popupTemplate:void 0}constructor(e){super(),this._schema=e,E(this._schema,"_fields",(e=>{this.emit("change",e)})),e.watch("_fields.length",(()=>{this.notifyChange("length")})),e.watch(["_featureSettings.popupTemplate.fieldInfos","_featureSettings.popupTemplate.expressionInfos"],(()=>{this._resetLookups()}),!0),null!=e._fields&&(this._schemaFieldsHandle=e._fields.on("after-changes",(()=>{this._resetLookups()}))),e.watch("_fields",(e=>{this._schemaFieldsHandle?.remove(),this._schemaFieldsHandle=e?.on("after-changes",(()=>{this._resetLookups()})),this._resetLookups()}),!0)}clone(){return new L(this._schema)}add(e,i){y("field",e).isNotMissing(),this._backingCollection=void 0,this._fieldNameToField=void 0;const t=S(e.name);if(t){if(!this._popupTemplate)throw new r("Cannot create a field that references an arcade expression without a feature source and popup template.");const i=this._popupTemplate.expressionInfos.find((e=>N(e.name,t)));if(!i)throw new r("Cannot create a field that references a non-existent arcade expression.");this._popupTemplate.fieldInfos||(this._popupTemplate.fieldInfos=[]);let s=this._popupTemplate.fieldInfos.find((i=>N(i.fieldName,e.name)));s||(s=new n({fieldName:e.name,label:i.title}),this._popupTemplate.fieldInfos.push(s));const o=M.get(s);M.set(s,e),null!=this._expressionFields&&(this._expressionFields.remove(o),this._expressionFields.includes(e)||this._expressionFields.add(e));const l={added:[e],moved:[],removed:o?[o]:[],target:this};this.emit("change",l),this.notifyChange("length"),this.notifyChange("_expressionFieldsLength")}else this._schema._fields.add(e,i);return this}removeAt(e){y("index",e).isNotMissing();const i=this.getItemAt(e);if(!i)return;this._backingCollection=void 0,this._fieldNameToField=void 0;if(S(i.name)){const e=this._popupTemplate.fieldInfos.findIndex((e=>N(e.fieldName,i.name)));this._popupTemplate.fieldInfos.splice(e,1),this._expressionFields?.remove(i);const t={added:[],moved:[],removed:[i],target:this};this.emit("change",t),this.notifyChange("length"),this.notifyChange("_expressionFieldsLength")}else this._schema._fields.remove(i);return i}reorder(e,i){if(e&&this._schema._fields.includes(e))return this._backingCollection=void 0,this._schema._fields.reorder(e,i),e}sort(e){return this._backingCollection=void 0,this._schema._fields.sort(e),this}findFieldByName(e){return null==this._fieldNameToField&&this._generateNameLookup(),this._fieldNameToField.get(e)}_generateExpressionFields(){if(this._expressionFields=new s,this._popupTemplate?.fieldInfos&&this._popupTemplate?.expressionInfos)for(const e of this._popupTemplate.fieldInfos){const i=S(e.fieldName);if(null==i)continue;const t=this._popupTemplate.expressionInfos.find((e=>N(e.name,i)));if(null==t)continue;if(M.has(e)){this._expressionFields.add(M.get(e));continue}const s=new l({name:e.fieldName,alias:e.label||t.title||e.fieldName,type:"number"===t.returnType?"double":"string",editable:!1});M.set(e,s),this._expressionFields.add(M.get(e))}}_generateCollection(){this._backingCollection=this._schema._fields.concat(this.expressionFields)}_generateNameLookup(){const e=new u;for(const i of this._collection)e.set(i.name,i);this._fieldNameToField=e}_resetLookups(){this._backingCollection=void 0,this._expressionFields=void 0,this._fieldNameToField=void 0}}class O extends h{get _collection(){return this._schema.fields.map((e=>this._forField(e))).concat(Array.from(this._uninitializedFieldExtensions))}_schema;_uninitializedFieldExtensions=new Set;constructor(e){super(),this._schema=e,E(this._schema,"fields",(e=>{const i={added:(e.added||[]).map((e=>this._forField(e))),moved:(e.moved||[]).map((e=>this._forField(e))),removed:(e.removed||[]).map((e=>this._forField(e))),target:this};this.emit("change",i)})),e.watch("fields.length",(()=>this.notifyChange("length")))}forField(e){if(y("field",e).isNotMissing(),this._schema.fields.includes(e))return this._forField(e)}add(e,i){if(y("fieldX",e).isNotMissing(),e.schema&&e.schema.fieldExtensions.remove(e),e._setSchema(this._schema),e.field){const t=C.get(e.field);if(C.set(e.field,e),t&&t!==e&&this._onRemoved(t),this._schema.fields.includes(e.field))if(void 0===i){const i={added:[e],moved:[],removed:t?[t]:[],target:this};this.emit("change",i)}else this._schema.fields.reorder(e.field,i);else this._schema.fields.add(e.field,i)}else{this._uninitializedFieldExtensions.add(e);const i={added:[e],moved:[],removed:[],target:this};this.emit("change",i)}return this._onAdded(e),this}removeAt(e){const i=this.getItemAt(e);if(void 0!==i){if(this._uninitializedFieldExtensions.has(i)){this._uninitializedFieldExtensions.delete(i);const e={added:[],moved:[],removed:[i],target:this};this.emit("change",e)}else this._schema.fields.remove(i.field);return this._onRemoved(i),i}}reorder(e,i){if(e&&this._schema.fields.includes(e.field))return this._schema.fields.reorder(e.field,i),e}sort(e){return this._schema.fields.sort(((i,t)=>e(this._forField(i),this._forField(t)))),this}_itemIsInitialized(e){return super._itemIsInitialized(e)&&!!e.field}_onAdded(e){}_onRemoved(e){e.schema===this._schema&&e._setSchema(void 0)}_forField(e){if(this._uninitializedFieldExtensions.size)for(const e of this._uninitializedFieldExtensions)e._resolveField(),e.field&&(C.set(e.field,e),this._uninitializedFieldExtensions.delete(e));if(!C.has(e)){const i=new j({field:e});C.set(e,i),i._setSchema(this._schema),this._onAdded(i)}return C.get(e)}}
1
+ var e;import{__decorate as i}from"tslib";import t from"@arcgis/core/PopupTemplate";import s from"@arcgis/core/core/Collection";import o from"@arcgis/core/layers/support/FeatureType";import l from"@arcgis/core/layers/support/Field";import n from"@arcgis/core/popup/FieldInfo";import{InvalidOperationError as r}from"../InvalidOperationError.js";import{isFieldExtension as d}from"../ItemType.js";import{jsonToGeometryType as a}from"../json/GeometryJson.js";import{InitializableCollectionProxy as h}from"../support/InitializableCollectionProxy.js";import{filterJSONProperties as p,isDefault as m,serializable as f,shouldExcludeDefaults as c}from"../support/Serializable.js";import{Settings as _}from"../support/Settings.js";import{CaseInsensitiveObservableMap as u}from"../utilities/CaseInsensitiveObservableMap.js";import{CollectionProxy as g}from"../utilities/CollectionProxy.js";import{checkArg as y}from"../utilities/checkArg.js";import{compare as F}from"../utilities/collection.js";import{isFeatureType as x,isField as b}from"../utilities/esri.js";import{fieldWithArcadeXRegex as v,fieldWithRelationshipRegex as T,getArcadeExpressionFromField as S}from"../utilities/field.js";import{isValidTimeZone as I,ERR_TIME_ZONE_INVALID as z}from"../utilities/format/date.js";import{objectKeys as w}from"../utilities/object.js";import{caseInsensitiveEquals as N}from"../utilities/string.js";import{onCollectionPropertyChange as E}from"../utilities/watch.js";import{_fieldExtensionMap as C,FieldExtension as j}from"./FieldExtension.js";const k=new Map;k.set("objectid","oid"),k.set("oid","oid"),k.set("fid","oid"),k.set("shape","geometry"),k.set("shape__length","double"),k.set("shape_length","double"),k.set("shape__area","double"),k.set("shape_area","double"),k.set("area","double"),k.set("perimeter","double"),k.set("length","double"),k.set("fnode_","double"),k.set("tnode_","double"),k.set("lpoly_","double"),k.set("rpoly_","double"),k.set("cover_","integer"),k.set("cover_id","integer"),k.set("idtic","integer"),k.set("xtic","double"),k.set("ytic","double"),k.set("xmin","double"),k.set("ymin","double"),k.set("xmax","double"),k.set("ymax","double"),k.set("arc_","double"),k.set("subclass_","integer"),k.set("subclass_id","integer"),k.set("routelink","integer"),k.set("arclink","integer"),k.set("f_meas","double"),k.set("t_meas","double"),k.set("f_pos","double"),k.set("t_pos","double"),k.set("f_meas","double"),k.set("globalid","global-id"),k.set("guid","guid");export{v as fieldWithArcadeXRegex,T as fieldWithRelationshipRegex};const M=new WeakMap;let A=e=class extends _{fieldExtensions;fields;get spatialReference(){return this._getSetting("spatialReference")}set spatialReference(e){this._setSetting("spatialReference",e)}get primaryKeyField(){const e=this._getSetting("primaryKeyField");if(!e){const e=this.fields.filter((e=>"oid"===e.type));if(1===e.length)return e.getItemAt(0).name}return e}set primaryKeyField(e){this._setSetting("primaryKeyField",e)}get displayField(){return this._getSetting("displayField",this.primaryKeyField)}set displayField(e){!this._featureSettings?.popupTemplate||this._featureSettings.popupTemplate.title&&this._featureSettings.popupTemplate.title!==`{${this.displayField}}`||(this._featureSettings.popupTemplate.title=`{${e}}`),this._setSetting("displayField",e)}get geometryType(){return this._getSetting("geometryType")}set geometryType(e){this._setSetting("geometryType",e)}get hasGeometry(){return void 0!==this.geometryType&&null!==this.geometryType}get timeZone(){return this._getSetting("timeZone","UTC")}set timeZone(e){y("timeZone",e).satisfies((e=>I(e)),z(e)),this._setSetting("timeZone",e)}get typeIdField(){return this._getSetting("typeIdField")}set typeIdField(e){this._setSetting("typeIdField",e)}get types(){return this._getCollectionSetting("types")}get _fields(){return this._getCollectionSetting("_fields")}_featureSettings;_alwaysSerializeFieldExtensions;constructor(e){super(e),this.fieldExtensions=new O(this),this.fields=new L(this)}static createFieldInfoFromField(e){let i=!0;const t=e.name.toLowerCase();return("oid"===e.type||"geometry"===e.type||k.has(t)&&k.get(t)===e.type)&&(i=!1),new n({visible:i,fieldName:e.name,format:void 0,label:e.alias,stringFieldOption:void 0,tooltip:void 0,isEditable:e.editable})}findFieldByName(e){return this.fields.findFieldByName(e)}toJSON(e="all"){const i=p(this._getSerializableProperties(),this,e)||{};let t=i.fieldExtensions;this.parent&&(t=t?.filter((e=>{const i=this.parent;return!i?.fieldExtensions?.some((i=>i.id===e.id))})));const{fields:s}=i;if(i)for(const e of w(i))this.isModified(e)||delete i[e];if(s&&(i.fields=s),t?.length&&(i.fieldExtensions=t),!c(e)||!m(i))return i}createPopupTemplate(){const e=this.createAllFieldInfos();return new t({fieldInfos:e,content:[{type:"fields"},{type:"attachments"}]})}createAllFieldInfos(){return this.fields.toArray().filter((e=>!!e.name)).map((i=>e.createFieldInfoFromField(i)))}_getSerializableProperties(){return{geometryType:{serialize:!1,deserialize:e=>{this.geometryType=e?a(e):void 0}},spatialReference:{serialize:!1},primaryKeyField:{serialize:!1},displayField:{serialize:!1},typeIdField:{serialize:!1},fields:{serializeModes:["initial","project"],serialize:()=>this.isModified("_fields")?this.fields.toArray().map((e=>e.toJSON())):void 0,deserialize:e=>{if(!e)return;const i=e.map((e=>b(e)?e:l.fromJSON(e)));F(this.fields,i,{onNew:(e,i)=>{this.fields.add(e,i)},onMatch:(e,i,t,s)=>{e!==i&&(e.alias=i.alias,e.editable=i.editable,e.length=i.length,e.nullable=i.nullable,e.type=i.type),t!==s&&this.fields.reorder(e,s)},onMissing:e=>{this.fields.remove(e)},equals:(e,i)=>N(e.name,i.name)})}},fieldExtensions:{serializeModes:["initial"],serialize:e=>this.fieldExtensions.toArray().map((i=>i.toJSON(e))).filter((e=>this._alwaysSerializeFieldExtensions||!(e&&2===Object.keys(e).length&&e.id&&e.field))),deserialize:e=>{e&&F(this.fieldExtensions,e,{onNew:(e,i)=>{this.fieldExtensions.add(d(e)?e:new j(e),i)},onMatch:(e,i,t,s)=>{d(i)||e.assignProperties(i),t!==s&&this.fieldExtensions.reorder(e,s)},onMissing:e=>{this._alwaysSerializeFieldExtensions&&this.fieldExtensions.remove(e)},equals:(e,i)=>d(i)?i===e:!(!i?.field||!j.matchesRef(e,i.field))||e.id===i.id})}},types:{serialize:!1,deserialize:e=>{if(!e)return;const i=e.map((e=>x(e)||!e?e:o.fromJSON(e)));F(this.types,i,{onNew:(e,i)=>{this.types.add(e,i)},onMatch:(e,i,t,s)=>{e!==i&&(e.name=i.name,e.templates=i.templates?[...i.templates]:[],e.domains=i.domains),t!==s&&this.types.reorder(e,s)},onMissing:e=>{this.types.remove(e)},equals:(e,i)=>e.id===i.id})}},timeZone:{serialize:!1,deserialize:e=>{e&&(this.timeZone=e)}}}}};A=e=i([f],A);export{A as Schema};class L extends g{_schema;_schemaFieldsHandle;_fieldNameToField;_backingCollection;_expressionFields;get _expressionFieldsLength(){return this.expressionFields.length}get expressionFields(){return null==this._expressionFields&&this._generateExpressionFields(),this._expressionFields}get _collection(){return null==this._backingCollection&&this._generateCollection(),this._backingCollection}get _popupTemplate(){return this._schema._featureSettings?this._schema._featureSettings.popupTemplate:void 0}constructor(e){super(),this._schema=e,E(this._schema,"_fields",(e=>{this.emit("change",e)})),e.watch("_fields.length",(()=>{this.notifyChange("length")})),e.watch(["_featureSettings.popupTemplate.fieldInfos","_featureSettings.popupTemplate.expressionInfos"],(()=>{this._resetLookups()}),!0),null!=e._fields&&(this._schemaFieldsHandle=e._fields.on("after-changes",(()=>{this._resetLookups()}))),e.watch("_fields",(e=>{this._schemaFieldsHandle?.remove(),this._schemaFieldsHandle=e?.on("after-changes",(()=>{this._resetLookups()})),this._resetLookups()}),!0)}clone(){return new L(this._schema)}add(e,i){y("field",e).isNotMissing(),this._backingCollection=void 0,this._fieldNameToField=void 0;const t=S(e.name);if(t){if(!this._popupTemplate)throw new r("Cannot create a field that references an arcade expression without a feature source and popup template.");const i=this._popupTemplate.expressionInfos.find((e=>N(e.name,t)));if(!i)throw new r("Cannot create a field that references a non-existent arcade expression.");this._popupTemplate.fieldInfos||(this._popupTemplate.fieldInfos=[]);let s=this._popupTemplate.fieldInfos.find((i=>N(i.fieldName,e.name)));s||(s=new n({fieldName:e.name,label:i.title}),this._popupTemplate.fieldInfos.push(s));const o=M.get(s);M.set(s,e),null!=this._expressionFields&&(this._expressionFields.remove(o),this._expressionFields.includes(e)||this._expressionFields.add(e));const l={added:[e],moved:[],removed:o?[o]:[],target:this};this.emit("change",l),this.notifyChange("length"),this.notifyChange("_expressionFieldsLength")}else this._schema._fields.add(e,i);return this}removeAt(e){y("index",e).isNotMissing();const i=this.getItemAt(e);if(!i)return;this._backingCollection=void 0,this._fieldNameToField=void 0;if(S(i.name)){const e=this._popupTemplate.fieldInfos.findIndex((e=>N(e.fieldName,i.name)));this._popupTemplate.fieldInfos.splice(e,1),this._expressionFields?.remove(i);const t={added:[],moved:[],removed:[i],target:this};this.emit("change",t),this.notifyChange("length"),this.notifyChange("_expressionFieldsLength")}else this._schema._fields.remove(i);return i}reorder(e,i){if(e&&this._schema._fields.includes(e))return this._backingCollection=void 0,this._schema._fields.reorder(e,i),e}sort(e){return this._backingCollection=void 0,this._schema._fields.sort(e),this}findFieldByName(e){return null==this._fieldNameToField&&this._generateNameLookup(),this._fieldNameToField.get(e)}_generateExpressionFields(){if(this._expressionFields=new s,this._popupTemplate?.fieldInfos&&this._popupTemplate?.expressionInfos)for(const e of this._popupTemplate.fieldInfos){const i=S(e.fieldName);if(null==i)continue;const t=this._popupTemplate.expressionInfos.find((e=>N(e.name,i)));if(null==t)continue;if(M.has(e)){this._expressionFields.add(M.get(e));continue}const s=new l({name:e.fieldName,alias:e.label||t.title||e.fieldName,type:"number"===t.returnType?"double":"string",editable:!1});M.set(e,s),this._expressionFields.add(M.get(e))}}_generateCollection(){this._backingCollection=this._schema._fields.concat(this.expressionFields)}_generateNameLookup(){const e=new u;for(const i of this._collection)e.set(i.name,i);this._fieldNameToField=e}_resetLookups(){this._backingCollection=void 0,this._expressionFields=void 0,this._fieldNameToField=void 0}}class O extends h{get _collection(){return this._schema.fields.map((e=>this._forField(e))).concat(Array.from(this._uninitializedFieldExtensions))}_schema;_uninitializedFieldExtensions=new Set;constructor(e){super(),this._schema=e,E(this._schema,"fields",(e=>{const i={added:(e.added||[]).map((e=>this._forField(e))),moved:(e.moved||[]).map((e=>this._forField(e))),removed:(e.removed||[]).map((e=>this._forField(e))),target:this};this.emit("change",i)})),e.watch("fields.length",(()=>this.notifyChange("length")))}forField(e){if(y("field",e).isNotMissing(),this._schema.fields.includes(e))return this._forField(e)}add(e,i){if(y("fieldX",e).isNotMissing(),e.schema&&e.schema.fieldExtensions.remove(e),e._setSchema(this._schema),e.field){const t=C.get(e.field);if(C.set(e.field,e),t&&t!==e&&this._onRemoved(t),this._schema.fields.includes(e.field))if(void 0===i){const i={added:[e],moved:[],removed:t?[t]:[],target:this};this.emit("change",i)}else this._schema.fields.reorder(e.field,i);else this._schema.fields.add(e.field,i)}else{this._uninitializedFieldExtensions.add(e);const i={added:[e],moved:[],removed:[],target:this};this.emit("change",i)}return this._onAdded(e),this}removeAt(e){const i=this.getItemAt(e);if(void 0!==i){if(this._uninitializedFieldExtensions.has(i)){this._uninitializedFieldExtensions.delete(i);const e={added:[],moved:[],removed:[i],target:this};this.emit("change",e)}else this._schema.fields.remove(i.field);return this._onRemoved(i),i}}reorder(e,i){if(e&&this._schema.fields.includes(e.field))return this._schema.fields.reorder(e.field,i),e}sort(e){return this._schema.fields.sort(((i,t)=>e(this._forField(i),this._forField(t)))),this}_itemIsInitialized(e){return super._itemIsInitialized(e)&&!!e.field}_onAdded(e){}_onRemoved(e){e.schema===this._schema&&e._setSchema(void 0)}_forField(e){if(this._uninitializedFieldExtensions.size)for(const e of this._uninitializedFieldExtensions)e._resolveField(),e.field&&(C.set(e.field,e),this._uninitializedFieldExtensions.delete(e));if(!C.has(e)){const i=new j({field:e});C.set(e,i),i._setSchema(this._schema),this._onAdded(i)}return C.get(e)}}
@@ -125,7 +125,7 @@ export declare class TableSchema extends Schema {
125
125
  /**
126
126
  * Maps schema properties to equivalent properties on the table.
127
127
  */
128
- protected readonly _tableBindings: Map<keyof this, "listMode" | "title" | "url" | "id" | "gdbVersion" | "fields" | "hasM" | "hasZ" | "watch" | "get" | "set" | "emit" | "hasEventListener" | "on" | "destroy" | "spatialReference" | "popupTemplate" | "destroyed" | "initialized" | "declaredClass" | "addHandles" | "removeHandles" | "hasHandles" | "labelingInfo" | "renderer" | "refresh" | "mode" | "elevationInfo" | "clone" | "floorInfo" | "opacity" | "visible" | "definitionExpression" | "outFields" | "popupEnabled" | "createPopupTemplate" | "createQuery" | "getField" | "getFieldDomain" | "queryExtent" | "queryFeatureCount" | "queryFeatures" | "queryObjectIds" | "objectIdField" | "geometryType" | "cancelLoad" | "isFulfilled" | "isRejected" | "isResolved" | "load" | "when" | "labelsVisible" | "customParameters" | "maxScale" | "minScale" | "save" | "saveAs" | "fullExtent" | "parent" | "persistenceEnabled" | "visibilityTimeExtent" | "createLayerView" | "fetchAttributionData" | "portalItem" | "sourceJSON" | "legendEnabled" | "formTemplate" | "refreshInterval" | "blendMode" | "effect" | "copyright" | "addAttachment" | "deleteAttachments" | "attributeTableTemplate" | "charts" | "dynamicDataSource" | "editingEnabled" | "displayField" | "typeIdField" | "types" | "layerId" | "apiKey" | "dateFieldsTimeZone" | "screenSizePerspectiveEnabled" | "orderBy" | "timeExtent" | "timeInfo" | "timeOffset" | "useViewTime" | "featureEffect" | "featureReduction" | "source" | "historicMoment" | "returnM" | "returnZ" | "templates" | "getFeatureType" | "queryTopFeatureCount" | "queryTopFeatures" | "queryTopFeaturesExtent" | "queryTopObjectIds" | "applyEdits" | "queryAttachments" | "queryRelatedFeatures" | "queryRelatedFeaturesCount" | "updateAttachment">;
128
+ protected readonly _tableBindings: Map<keyof this, "listMode" | "title" | "url" | "id" | "gdbVersion" | "fields" | "hasM" | "hasZ" | "watch" | "get" | "set" | "emit" | "hasEventListener" | "on" | "destroy" | "destroyed" | "initialized" | "declaredClass" | "addHandles" | "removeHandles" | "hasHandles" | "labelingInfo" | "renderer" | "refresh" | "spatialReference" | "mode" | "elevationInfo" | "clone" | "floorInfo" | "opacity" | "visible" | "definitionExpression" | "outFields" | "popupEnabled" | "popupTemplate" | "createPopupTemplate" | "createQuery" | "getField" | "getFieldDomain" | "queryExtent" | "queryFeatureCount" | "queryFeatures" | "queryObjectIds" | "objectIdField" | "geometryType" | "cancelLoad" | "isFulfilled" | "isRejected" | "isResolved" | "load" | "when" | "labelsVisible" | "customParameters" | "maxScale" | "minScale" | "save" | "saveAs" | "fullExtent" | "parent" | "persistenceEnabled" | "visibilityTimeExtent" | "createLayerView" | "fetchAttributionData" | "portalItem" | "sourceJSON" | "legendEnabled" | "formTemplate" | "refreshInterval" | "blendMode" | "effect" | "copyright" | "addAttachment" | "deleteAttachments" | "attributeTableTemplate" | "charts" | "dynamicDataSource" | "editingEnabled" | "displayField" | "typeIdField" | "types" | "layerId" | "apiKey" | "dateFieldsTimeZone" | "screenSizePerspectiveEnabled" | "orderBy" | "timeExtent" | "timeInfo" | "timeOffset" | "useViewTime" | "featureEffect" | "featureReduction" | "source" | "historicMoment" | "returnM" | "returnZ" | "templates" | "getFeatureType" | "queryTopFeatureCount" | "queryTopFeatures" | "queryTopFeaturesExtent" | "queryTopObjectIds" | "applyEdits" | "queryAttachments" | "queryRelatedFeatures" | "queryRelatedFeaturesCount" | "updateAttachment">;
129
129
  /**
130
130
  * The collection of fields.
131
131
  */
@@ -1 +1 @@
1
- window.navigationData = "data:application/octet-stream;base64,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"
1
+ window.navigationData = "data:application/octet-stream;base64,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"