@vertigis/arcgis-extensions 45.5.2 → 45.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/data/ArcGISServiceTableExtension.d.ts +3 -4
  2. package/data/ArcGISServiceTableExtension.js +1 -1
  3. package/data/FeatureSourceBase.js +1 -1
  4. package/docs/html/assets/navigation.js +1 -1
  5. package/docs/html/assets/search.js +1 -1
  6. package/docs/html/classes/data_ArcGISServiceTableExtension.ArcGISServiceTableExtension.html +6 -6
  7. package/docs/html/classes/data_FeatureList.FeatureList.html +2 -2
  8. package/docs/html/classes/mapping_support_DefaultSublayerExtensionFactory.DefaultSublayerExtensionFactory.html +3 -1
  9. package/docs/html/interfaces/mapping_support_SublayerExtensionFactory.SublayerExtensionFactory.html +4 -2
  10. package/docs/html/modules/support__featureEdit.html +1 -0
  11. package/docs/html/modules/support_esri.html +4 -0
  12. package/docs/html/types/support_esri.EditedFeatureResult.html +1 -0
  13. package/docs/html/types/support_esri.EditedFeatureResultEditedFeatures.html +1 -0
  14. package/docs/html/types/support_esri.FeatureLayerBase.html +1 -0
  15. package/docs/html/types/support_esri.FeatureLayerBaseApplyEditsEdits.html +1 -0
  16. package/docs/html/variables/version.version.html +1 -1
  17. package/mapping/BuildingComponentSublayerExtension.js +1 -1
  18. package/mapping/BuildingGroupSublayerExtension.js +1 -1
  19. package/mapping/FeatureLayerExtension.d.ts +0 -2
  20. package/mapping/FeatureLayerExtension.js +1 -1
  21. package/mapping/KMLLayerExtension.d.ts +1 -2
  22. package/mapping/KMLLayerExtension.js +1 -1
  23. package/mapping/KMLSublayerExtension.js +1 -1
  24. package/mapping/MapImageLayerExtension.d.ts +1 -2
  25. package/mapping/MapImageLayerExtension.js +1 -1
  26. package/mapping/MapImageSublayerExtension.js +1 -1
  27. package/mapping/MapNotesLayerExtension.d.ts +1 -2
  28. package/mapping/MapNotesLayerExtension.js +1 -1
  29. package/mapping/SubtypeGroupLayerExtension.d.ts +1 -3
  30. package/mapping/SubtypeGroupLayerExtension.js +1 -1
  31. package/mapping/SubtypeSublayerExtension.d.ts +0 -1
  32. package/mapping/SubtypeSublayerExtension.js +1 -1
  33. package/mapping/TileLayerExtension.d.ts +1 -2
  34. package/mapping/TileLayerExtension.js +1 -1
  35. package/mapping/TileSublayerExtension.js +1 -1
  36. package/mapping/WMSLayerExtension.d.ts +1 -2
  37. package/mapping/WMSLayerExtension.js +1 -1
  38. package/mapping/WMSSublayerExtension.js +1 -1
  39. package/mapping/support/DefaultSublayerExtensionFactory.d.ts +2 -2
  40. package/mapping/support/DefaultSublayerExtensionFactory.js +1 -1
  41. package/mapping/support/SublayerExtensionFactory.d.ts +4 -2
  42. package/mapping/support/featureService.js +1 -1
  43. package/package.json +1 -1
  44. package/support/Cancellable.d.ts +1 -1
  45. package/support/_featureEdit.d.ts +1 -0
  46. package/support/_featureEdit.js +1 -0
  47. package/support/esri.d.ts +4 -0
  48. package/version.d.ts +1 -1
  49. package/version.js +1 -1
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import t from"@arcgis/core/layers/support/FeatureTemplate.js";import r from"@arcgis/core/layers/support/FeatureType.js";import s from"@arcgis/core/rest/support/AttachmentQuery";import{toAttachment as a}from"../data/Attachment.js";import{FeatureSaveError as i}from"../data/FeatureSaveError.js";import{addAttachment as l,deleteAttachments as n,supportsAttachmentEditing as o}from"../data/support/attachments.js";import{applyJsonToLayer as u,layerToJson as p}from"../json/LayerJson.js";import{cancelify as y}from"../support/Cancellable.js";import{serializable as d}from"../support/Serializable.js";import{ArcGISRelationshipCollection as c}from"../support/_ArcGISRelationshipCollection.js";import{ReadOnlyCollection as h}from"../utilities/ReadOnlyCollection.js";import{isFeatureLayer as m,isSubtypeGroupLayer as f}from"../utilities/_layers.js";import{getGdbVersion as b}from"../utilities/_version.js";import{parse as _}from"../utilities/number.js";import{caseInsensitiveEquals as g}from"../utilities/string.js";import{onCollectionPropertyChange as w}from"../utilities/watch.js";import{SubtypeSublayerExtension as S}from"./SubtypeSublayerExtension.js";import{LayerExtension as F,LayerExtensionReadOnlySchema as E}from"./_LayerExtension.js";import{ArrayWrappedCollection as C}from"./support/ArrayWrappedCollection.js";import{addOutFields as j,getGlobalIdField as x,getReturnServiceEditsOption as I,isGlobalIdUsed as v}from"./support/layers.js";let R=class extends F{attachmentTypes;get enableClientSideData(){return this._enableClientSideData}set enableClientSideData(e){this._enableClientSideData=e,this._updateClientSideFields()}get layer(){return super.layer}get sublayerExtensions(){return super.sublayerExtensions}get supportsSublayers(){return!0}get sublayersAreReadOnly(){return!1}get hasFeatures(){return!0}get canChangeDefinitionExpression(){return!0}get _layerView(){return this.layer&&this.mapExtension?._allLayerViews.find((e=>e.layer===this.layer))}_subtypes;_enableClientSideData;constructor(e){super(e),w(this,"layer.sublayers",this._onSubtypeSublayersChange)}_getProjectWebmapJSON(){const e=super._getProjectWebmapJSON();if(!e||this.dynamicallyAddedLayer)return e;const t=p(this.layer);return e.layers&&(e.layers=t.layers.map((e=>{const{layerDefinition:t,visibility:r,subtypeCode:s,layerType:a}=e,i={layerType:a,visibility:r,subtypeCode:s};return t?.drawingInfo&&(i.layerDefinition={drawingInfo:t.drawingInfo}),i}))),e}_createRelationships(){return new SubtypeGroupLayerRelationshipCollection(this)}async _onInitialize(){await super._onInitialize(),await this.relationships.initialize(),this._updateSubtypes(),this._addTemplatesToSublayers(),this._addDomainsToFields()}async _postInitialize(){await super._postInitialize(),this._updateClientSideFields(),this._watchHandles.push(this.watch("layer",(()=>{this._updateClientSideFields()}),!0))}_capabilities(){const e=o(this.layer);return this.layer?.capabilities?.operations?{...this.layer.capabilities.operations,supportsAttachmentEditing:e,supportsStandardizedQueries:this.layer.capabilities?.query?.supportsStandardizedQueriesOnly}:{...super._capabilities(),supportsAttachmentEditing:e}}_createSublayerExtension(e){return new S(e)}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"SubtypeGroupLayer"}},enableClientSideData:{serializeModes:["initial"],default:!1},attachmentTypes:["initial"]}}_isSupportedLayer(e){return f(e)}_createSchema(){return new T(this)}async _getAttachments(e){if(!this.layer?.capabilities?.data?.supportsAttachment)return[];const t=+e.primaryKey,r=this.layer?.gdbVersion??b(this.layer?.customParameters),i=new s({objectIds:[t]}),l=await this.layer.queryAttachments(i);return l?.[t]?.length?l[t].map((e=>a(e,{gdbVersion:r}))):[]}async _addAttachment(e,t){return l(e,this.layer,t,{attachmentTypes:this.attachmentTypes})}async _deleteAttachments(e,t){return n(e,this.layer,t)}async _applyPortalItemProperties(e){if("Feature Service"!==e.type)throw new Error(`Cannot create SubtypeGroupLayer from Portal item that has type: ${e.type}`);let{url:t}=e;t.match(".*MapServer/\\d{1,}/?$")||t.match(".*FeatureServer/\\d{1,}/?$")||(t=`${t}/0`),this.layer.url=t||this.layer.url;const r=await e.fetchData();r&&await u(r,this.layer)}async*_getFeatures(e,t){this.layer||(yield*super._getFeatures(e,t));const r=this.layer.createQuery();r.objectIds=e.map((e=>_(e))),r.where=void 0,r.outFields=t.outFields,r.returnGeometry=t.returnGeometry,yield*(await import("../support/_query.js")).executeQuery(r,this,this.layer,t.cancelToken)}async _addFeatures(e,t){const r=Array.from(e);if(0===r.length||!this.layer)return;const s=await this._applyEdits({addFeatures:r.map((e=>e.toGraphic()))},t);if(!s.addFeatureResults||s.addFeatureResults.length!==r.length)throw new i("Received malformed response from server while saving feature(s).");let a;if(s.addFeatureResults.forEach(((e,t)=>{const{objectId:s,globalId:l,error:n}=e,o=r[t];if(n){a=a||new i("Errors encountered when adding features.");const{title:r}=o;a.errors.set(`${r}-${t}`,new Error(`Failed to add feature '${r}'. ${e.error.name} : ${e.error.message}`))}else{const{primaryKeyField:e}=o.schema;o.attributes.set(e,s);const t=x(this.layer);t&&l&&o.attributes.set(t,l)}})),a)throw a}async _updateFeatures(e,t){const r=Array.from(e);if(0===r.length)return;const s=await this._applyEdits({updateFeatures:Array.from(e).map((e=>e.toGraphic()))},t);if(!s.updateFeatureResults||s.updateFeatureResults.length!==r.length)throw new i("Received malformed response from server while saving feature(s).");let a;if(s.updateFeatureResults.forEach(((e,t)=>{if(e.error){a=a||new i("Errors encountered when updating features.");const{primaryKey:s}=r[t];a.errors.set(s,new Error(`Failed to update feature with id ${s}. ${e.error.name} : ${e.error.message}`))}})),a)throw a}async _deleteFeatures(e,t){if(0===e.length)return;const r=await this._applyEdits({deleteFeatures:e.map((e=>({objectId:e})))},t);if(!r.deleteFeatureResults)throw new i("Received malformed response from server while saving feature(s).");let s;if(r.deleteFeatureResults.forEach(((t,r)=>{if(t.error){s=s||new i("Errors encountered when deleting features.");const a=e[r];s.errors.set(a,new Error(`Failed to delete feature with id ${a}. ${t.error.name} : ${t.error.message}`))}})),s)throw s}_onSubtypeSublayersChange=e=>{e.removed?.length&&(this.sublayerExtensions.removeMany(this.sublayerExtensions.filter((e=>!e.sublayer))),this._updateSubtypes())};async _applyEdits(e,t={}){const r=v(this.layer,e),s=this.layer.applyEdits(e,{globalIdUsed:r,returnServiceEditsOption:I(this.layer)}),a=await y(s,t.cancelToken);if(!a)throw new i("Received malformed response from server while saving feature(s).");return a}_updateClientSideFields(){this.layer&&this._enableClientSideData&&(j(this.layer,this.featureSettings.outFields),this.allSublayerExtensions.forEach((e=>j(this.layer,e.featureSettings.outFields))))}_updateSubtypes(){if(!this.layer.subtypes)return;const e=[];for(const t of this.layer.sublayers){const s=this.layer.subtypes.find((e=>e.code===t.subtypeCode));s&&e.push(new r({id:s.code,name:s.name,domains:s.domains??{},templates:t.templates}))}this._subtypes=e}_addTemplatesToSublayers(){const e=this.layer.sourceJSON?.templates?.map((e=>t.fromJSON(e)));for(let r=0;r<this.sublayerExtensions.length;r++){const s=this.sublayerExtensions.getItemAt(r);if(null==s.sublayer)continue;const a=this.layer.sourceJSON?.types.filter((e=>e.name===s.title))[0]?.templates;(null==s.sublayer.templates||0===s.sublayer.templates.length||A(s))&&a?s.sublayer.templates=a.map((e=>t.fromJSON(e))):1!==e.length||1===this.sublayerExtensions.length||s.sublayer.templates?A(s)&&(s.sublayer.templates[0].name=s.sublayer.title):s.sublayer.templates=e.map((e=>{const r=t.fromJSON(e.toJSON());r.name=s.title;const a=r.prototype?.attributes;return"number"==typeof a?.[this.layer.subtypeField]&&(a[this.layer.subtypeField]=s.sublayer.subtypeCode),r}))}}_addDomainsToFields(){if(this._subtypes)for(const e of this._subtypes)for(const[t,r]of Object.entries(e.domains)){const e=this.layer.fields.find((e=>g(e.name,t)));e&&!e.domain&&(e.domain=r)}}};R=e([d],R);export{R as SubtypeGroupLayerExtension};let T=class extends E{_fieldCollection;_typesCollection;constructor(e){super(e),this._fieldCollection=this._createFieldCollection(),this._typesCollection=this._createTypesCollection(),this.notifyChange("_fields")}get types(){return this._typesCollection}get _fields(){return this._fieldCollection}_createFieldCollection(){return new h(new C({parent:this._layerExtension,targetProperty:"layer",arrayProperty:"fields"}))}_createTypesCollection(){return new h(new C({parent:this._layerExtension,arrayProperty:"_subtypes"}))}_getPropertyBindings(){return{primaryKeyField:"objectIdField",geometryType:"geometryType",spatialReference:"spatialReference",displayField:"displayField",typeIdField:"subtypeField"}}};T=e([d],T);export{T as SubtypeGroupLayerSchema};export class SubtypeGroupLayerRelationshipCollection extends c{get _sourceUrl(){const e=this._source.layer;if(e)return`${e.url}/${e.layerId}`}get _sourceLayerId(){const e=this._source.layer;return e?.layerId}_findRelatedSource(e){if(!this._source.mapExtension||!this._source.layer||!this._sourceUrl)return;const t=this._sourceUrl.slice(0,this._sourceUrl.length-`${this._sourceLayerId}`.length-1),r=this._source.mapExtension.allLayerExtensions.initializedItems.find((r=>(m(r.layer)||f(r.layer))&&r.layer.url===t&&r.layer.layerId===e));return r||this._source.mapExtension.tableExtensions.initializedItems.find((r=>m(r.table)&&r.table.url===t&&r.table.layerId===e))}}function A(e){return 1===e.sublayer?.templates?.length&&"New Feature"===e.sublayer.templates[0].name}
1
+ import{__decorate as e}from"tslib";import t from"@arcgis/core/layers/support/FeatureTemplate.js";import r from"@arcgis/core/layers/support/FeatureType.js";import s from"@arcgis/core/rest/support/AttachmentQuery";import{toAttachment as i}from"../data/Attachment.js";import{addAttachment as a,deleteAttachments as l,supportsAttachmentEditing as n}from"../data/support/attachments.js";import{applyJsonToLayer as o,layerToJson as y}from"../json/LayerJson.js";import{serializable as u}from"../support/Serializable.js";import{ArcGISRelationshipCollection as p}from"../support/_ArcGISRelationshipCollection.js";import{applyEdits as d}from"../support/_featureEdit.js";import{ReadOnlyCollection as c}from"../utilities/ReadOnlyCollection.js";import{isFeatureLayer as h,isSubtypeGroupLayer as m}from"../utilities/_layers.js";import{getGdbVersion as b}from"../utilities/_version.js";import{parse as _}from"../utilities/number.js";import{caseInsensitiveEquals as f}from"../utilities/string.js";import{onCollectionPropertyChange as g}from"../utilities/watch.js";import{LayerExtension as S,LayerExtensionReadOnlySchema as C}from"./_LayerExtension.js";import{SublayerExtension as F}from"./_SublayerExtension.js";import{ArrayWrappedCollection as w}from"./support/ArrayWrappedCollection.js";import{addOutFields as x}from"./support/layers.js";let j=class extends S{attachmentTypes;get enableClientSideData(){return this._enableClientSideData}set enableClientSideData(e){this._enableClientSideData=e,this._updateClientSideFields()}get layer(){return super.layer}get sublayerExtensions(){return super.sublayerExtensions}get supportsSublayers(){return!0}get sublayersAreReadOnly(){return!1}get hasFeatures(){return!0}get canChangeDefinitionExpression(){return!0}get _layerView(){return this.layer&&this.mapExtension?._allLayerViews.find((e=>e.layer===this.layer))}_subtypes;_enableClientSideData;constructor(e){super(e),g(this,"layer.sublayers",this._onSubtypeSublayersChange)}_getProjectWebmapJSON(){const e=super._getProjectWebmapJSON();if(!e||this.dynamicallyAddedLayer)return e;const t=y(this.layer);return e.layers&&(e.layers=t.layers.map((e=>{const{layerDefinition:t,visibility:r,subtypeCode:s,layerType:i}=e,a={layerType:i,visibility:r,subtypeCode:s};return t?.drawingInfo&&(a.layerDefinition={drawingInfo:t.drawingInfo}),a}))),e}_createRelationships(){return new SubtypeGroupLayerRelationshipCollection(this)}async _onInitialize(){await super._onInitialize(),await this.relationships.initialize(),this._updateSubtypes(),this._addTemplatesToSublayers(),this._addDomainsToFields()}async _postInitialize(){await super._postInitialize(),this._updateClientSideFields(),this._watchHandles.push(this.watch("layer",(()=>{this._updateClientSideFields()}),!0))}_capabilities(){const e=n(this.layer);return this.layer?.capabilities?.operations?{...this.layer.capabilities.operations,supportsAttachmentEditing:e,supportsStandardizedQueries:this.layer.capabilities?.query?.supportsStandardizedQueriesOnly}:{...super._capabilities(),supportsAttachmentEditing:e}}_createSublayerExtension(e){return F.factory.create(e,"SubtypeSublayer")}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"SubtypeGroupLayer"}},enableClientSideData:{serializeModes:["initial"],default:!1},attachmentTypes:["initial"]}}_isSupportedLayer(e){return m(e)}_createSchema(){return new E(this)}async _getAttachments(e){if(!this.layer?.capabilities?.data?.supportsAttachment)return[];const t=+e.primaryKey,r=this.layer?.gdbVersion??b(this.layer?.customParameters),a=new s({objectIds:[t]}),l=await this.layer.queryAttachments(a);return l?.[t]?.length?l[t].map((e=>i(e,{gdbVersion:r}))):[]}async _addAttachment(e,t){return a(e,this.layer,t,{attachmentTypes:this.attachmentTypes})}async _deleteAttachments(e,t){return l(e,this.layer,t)}async _applyPortalItemProperties(e){if("Feature Service"!==e.type)throw new Error(`Cannot create SubtypeGroupLayer from Portal item that has type: ${e.type}`);let{url:t}=e;t.match(".*MapServer/\\d{1,}/?$")||t.match(".*FeatureServer/\\d{1,}/?$")||(t=`${t}/0`),this.layer.url=t||this.layer.url;const r=await e.fetchData();r&&await o(r,this.layer)}async*_getFeatures(e,t){this.layer||(yield*super._getFeatures(e,t));const r=this.layer.createQuery();r.objectIds=e.map((e=>_(e))),r.where=void 0,r.outFields=t.outFields,r.returnGeometry=t.returnGeometry,yield*(await import("../support/_query.js")).executeQuery(r,this,this.layer,t.cancelToken)}async _addFeatures(e,t){await d({adds:e},this.layer,t)}async _updateFeatures(e,t){await d({updates:e},this.layer,t)}async _deleteFeatures(e,t){await d({deletes:e},this.layer,t)}_onSubtypeSublayersChange=e=>{e.removed?.length&&(this.sublayerExtensions.removeMany(this.sublayerExtensions.filter((e=>!e.sublayer))),this._updateSubtypes())};_updateClientSideFields(){this.layer&&this._enableClientSideData&&(x(this.layer,this.featureSettings.outFields),this.allSublayerExtensions.forEach((e=>x(this.layer,e.featureSettings.outFields))))}_updateSubtypes(){if(!this.layer.subtypes)return;const e=[];for(const t of this.layer.sublayers){const s=this.layer.subtypes.find((e=>e.code===t.subtypeCode));s&&e.push(new r({id:s.code,name:s.name,domains:s.domains??{},templates:t.templates}))}this._subtypes=e}_addTemplatesToSublayers(){const e=this.layer.sourceJSON?.templates?.map((e=>t.fromJSON(e)));for(let r=0;r<this.sublayerExtensions.length;r++){const s=this.sublayerExtensions.getItemAt(r);if(null==s.sublayer)continue;const i=this.layer.sourceJSON?.types.filter((e=>e.name===s.title))[0]?.templates;(null==s.sublayer.templates||0===s.sublayer.templates.length||I(s))&&i?s.sublayer.templates=i.map((e=>t.fromJSON(e))):1!==e.length||1===this.sublayerExtensions.length||s.sublayer.templates?I(s)&&(s.sublayer.templates[0].name=s.sublayer.title):s.sublayer.templates=e.map((e=>{const r=t.fromJSON(e.toJSON());r.name=s.title;const i=r.prototype?.attributes;return"number"==typeof i?.[this.layer.subtypeField]&&(i[this.layer.subtypeField]=s.sublayer.subtypeCode),r}))}}_addDomainsToFields(){if(this._subtypes)for(const e of this._subtypes)for(const[t,r]of Object.entries(e.domains)){const e=this.layer.fields.find((e=>f(e.name,t)));e&&!e.domain&&(e.domain=r)}}};j=e([u],j);export{j as SubtypeGroupLayerExtension};let E=class extends C{_fieldCollection;_typesCollection;constructor(e){super(e),this._fieldCollection=this._createFieldCollection(),this._typesCollection=this._createTypesCollection(),this.notifyChange("_fields")}get types(){return this._typesCollection}get _fields(){return this._fieldCollection}_createFieldCollection(){return new c(new w({parent:this._layerExtension,targetProperty:"layer",arrayProperty:"fields"}))}_createTypesCollection(){return new c(new w({parent:this._layerExtension,arrayProperty:"_subtypes"}))}_getPropertyBindings(){return{primaryKeyField:"objectIdField",geometryType:"geometryType",spatialReference:"spatialReference",displayField:"displayField",typeIdField:"subtypeField"}}};E=e([u],E);export{E as SubtypeGroupLayerSchema};export class SubtypeGroupLayerRelationshipCollection extends p{get _sourceUrl(){const e=this._source.layer;if(e)return`${e.url}/${e.layerId}`}get _sourceLayerId(){const e=this._source.layer;return e?.layerId}_findRelatedSource(e){if(!this._source.mapExtension||!this._source.layer||!this._sourceUrl)return;const t=this._sourceUrl.slice(0,this._sourceUrl.length-`${this._sourceLayerId}`.length-1),r=this._source.mapExtension.allLayerExtensions.initializedItems.find((r=>(h(r.layer)||m(r.layer))&&r.layer.url===t&&r.layer.layerId===e));return r||this._source.mapExtension.tableExtensions.initializedItems.find((r=>h(r.table)&&r.table.url===t&&r.table.layerId===e))}}function I(e){return 1===e.sublayer?.templates?.length&&"New Feature"===e.sublayer.templates[0].name}
@@ -109,7 +109,6 @@ export declare class SubtypeSublayerExtension<TProperties extends SubtypeSublaye
109
109
  * @inheritDoc
110
110
  */
111
111
  protected _serializeSublayer(sublayer: SubtypeSublayer): SubtypeSublayerProperties;
112
- private _applyEdits;
113
112
  private _addDomainsToFields;
114
113
  }
115
114
  /**
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import t from"@arcgis/core/core/Collection";import r from"@arcgis/core/rest/support/AttachmentQuery";import{InvalidOperationError as s}from"../InvalidOperationError.js";import{toAttachment as a}from"../data/Attachment.js";import{FeatureSaveError as i}from"../data/FeatureSaveError.js";import{addAttachment as n,deleteAttachments as o}from"../data/support/attachments.js";import{applyJsonToSublayer as l,jsonToSublayer as u,sublayerToJson as y}from"../json/SublayerJson.js";import{cancelify as p}from"../support/Cancellable.js";import{serializable as d}from"../support/Serializable.js";import{ArcGISRelationshipCollection as c}from"../support/_ArcGISRelationshipCollection.js";import{ReadOnlyCollection as h}from"../utilities/ReadOnlyCollection.js";import{getGdbVersion as m}from"../utilities/_version.js";import{isFeatureLayer as b,isSubtypeGroupLayer as f,isSubtypeSublayer as _}from"../utilities/layers.js";import{parse as g}from"../utilities/number.js";import{caseInsensitiveEquals as w}from"../utilities/string.js";import{SublayerExtension as E,SublayerSchema as F}from"./_SublayerExtension.js";import{ArrayWrappedCollection as x}from"./support/ArrayWrappedCollection.js";import{ExtensionBaseLayerListSettings as S}from"./support/LayerListSettings.js";import{PopupTemplateFeatureSettings as j}from"./support/PopupTemplateFeatureSettings.js";import{getGlobalIdField as C,getReturnServiceEditsOption as I,isGlobalIdUsed as R}from"./support/layers.js";let T=class extends E{get supportsSublayers(){return!1}get layerExtension(){return super.layerExtension}get renderer(){return this.sublayer?.renderer}get hasFeatures(){return!0}get sublayer(){return super.sublayer}get sublayerExtensions(){return super.sublayerExtensions}get attachmentTypes(){return this.layerExtension?.attachmentTypes}get canChangeLabels(){return!0}get canChangeRenderer(){return!0}get canChangeOpacity(){return!1}async _addAttachment(e,t){return n(e,this.sublayer.layer,t,{attachmentTypes:this.layerExtension?.attachmentTypes})}async _deleteAttachments(e,t){return o(e,this.sublayer.layer,t)}_isSupportedSublayer(e){return _(e)}_createLayerListSettings(e){return new A(e,this)}_createFeatureSettings(){return new $(this)}_createSublayer(e){return u(e,"SubtypeGroupLayer")}_createSchema(){return new z(this)}_createRelationships(){return new SubtypeSublayerRelationshipCollection(this)}async _applySublayerProperties(e,t){return l(e,t)}_capabilities(){return this.layerExtension?.capabilities}async _onInitialize(){const e=(await import("@arcgis/core/layers/support/SubtypeSublayer.js")).default;"layer"in e.prototype||Object.defineProperty(e.prototype,"layer",{get:function(){return this.parent},set:function(e){this.parent=e}}),await super._onInitialize(),await this.relationships.initialize(),this._watchHandles.push(this.watch("layerExtension.attachmentTypes",(()=>this.notifyChange("attachmentTypes")))),this._addDomainsToFields()}async _postInitialize(){await super._postInitialize(),this.layerListSettings.onLayerExtensionInitialized()}_getFeatures(e,t){if(!this.sublayer?.layer)return super._getFeatures(e,t);const r=this.sublayer?.layer.createQuery();r.objectIds=e.map((e=>g(e))),r.where=void 0,r.outFields=t.outFields,r.returnGeometry=t.returnGeometry;const s=this;return{async*[Symbol.asyncIterator](){yield*(await import("../support/_query.js")).executeQuery(r,s,s.sublayer.layer,t.cancelToken)}}}async _getAttachments(e){if(!this.sublayer?.layer?.capabilities?.data?.supportsAttachment)return[];const t=+e.primaryKey,s=this.sublayer?.layer?.gdbVersion??m(this.sublayer?.layer?.customParameters),i=new r({objectIds:[t]}),n=await this.sublayer.layer.queryAttachments(i);return n?.[t]?.length?n[t].map((e=>a(e,{gdbVersion:s}))):[]}async _addFeatures(e,t){const r=Array.from(e);if(0===r.length||!this.sublayer?.layer)return;const s=await this._applyEdits({addFeatures:r.map((e=>e.toGraphic()))},t);if(!s.addFeatureResults||s.addFeatureResults.length!==r.length)throw new i("Received malformed response from server while saving feature(s).");let a;if(s.addFeatureResults.forEach(((e,t)=>{const{objectId:s,globalId:n,error:o}=e,l=r[t];if(o){a=a||new i("Errors encountered when adding features.");const{title:r}=l;a.errors.set(`${r}-${t}`,new Error(`Failed to add feature '${r}'. ${e.error.name} : ${e.error.message}`))}else{const{primaryKeyField:e}=l.schema;l.attributes.set(e,s);const t=C(this.sublayer.layer);t&&n&&l.attributes.set(t,n)}})),a)throw a}async _updateFeatures(e,t){const r=Array.from(e);if(0===r.length)return;const s=await this._applyEdits({updateFeatures:Array.from(e).map((e=>e.toGraphic()))},t);if(!s.updateFeatureResults||s.updateFeatureResults.length!==r.length)throw new i("Received malformed response from server while saving feature(s).");let a;if(s.updateFeatureResults.forEach(((e,t)=>{if(e.error){a=a||new i("Errors encountered when updating features.");const{primaryKey:s}=r[t];a.errors.set(s,new Error(`Failed to update feature with id ${s}. ${e.error.name} : ${e.error.message}`))}})),a)throw a}async _deleteFeatures(e,t){if(0===e.length)return;const r=await this._applyEdits({deleteFeatures:e.map((e=>({objectId:e})))},t);if(!r.deleteFeatureResults)throw new i("Received malformed response from server while saving feature(s).");let s;if(r.deleteFeatureResults.forEach(((t,r)=>{if(t.error){s=s||new i("Errors encountered when deleting features.");const a=e[r];s.errors.set(a,new Error(`Failed to delete feature with id ${a}. ${t.error.name} : ${t.error.message}`))}})),s)throw s}_serializeSublayer(e){return y(e)}async _applyEdits(e,t={}){const r=R(this.sublayer.layer,e),s=this.sublayer.layer.applyEdits(e,{globalIdUsed:r,returnServiceEditsOption:I(this.sublayer.layer)}),a=await p(s,t.cancelToken);if(!a)throw new i("Received malformed response from server while saving feature(s).");return a}_addDomainsToFields(){const e=this.sublayer.parent.subtypes.find((e=>e.code===this.sublayer.subtypeCode));if(e?.domains)for(const[t,r]of Object.entries(e.domains)){const e=this.sublayer.fields.find((e=>w(e.name,t)));e&&!e.domain&&(e.domain=r)}}};T=e([d],T);export{T as SubtypeSublayerExtension};const v="This schema property is read-only.";let z=class extends F{_fieldCollection;_readonlyTypesCollection;_typesCollection;get primaryKeyField(){return this._sublayerExtension.sublayer?.layer?.objectIdField}set primaryKeyField(e){throw new s(v)}get geometryType(){return this._sublayerExtension.sublayer?.layer?.geometryType}set geometryType(e){throw new s(v)}get displayField(){return this._sublayerExtension.sublayer?.layer?.displayField}set displayField(e){throw new s(v)}get typeIdField(){return this._sublayerExtension.sublayer?.layer?.subtypeField}set typeIdField(e){throw new s(v)}get types(){return this._readonlyTypesCollection}constructor(e){super(e),this._fieldCollection=this._createFieldCollection(),this._typesCollection=new t,this._readonlyTypesCollection=new h(this._typesCollection);const r=()=>this._sublayerExtension.sublayer?.subtypeCode,s=()=>{const e=this._sublayerExtension.layerExtension?._subtypes?.find((e=>e.id===r()));return!!e&&(this._typesCollection.add(e),!0)};if(this._sublayerExtension.layerExtension?._subtypes?.some((e=>e.id===r())))s();else{const e=this._sublayerExtension.watch("layerExtension._subtypes",(()=>{s()&&e.remove()}),!0)}this.notifyChange("_fields")}get _fields(){return this._fieldCollection}_createFieldCollection(){return new h(new x({parent:this._sublayerExtension,targetProperty:"sublayer",arrayProperty:"fields"}))}_getPropertyBindings(){return{primaryKeyField:"parent.objectIdField",geometryType:"parent.geometryType",spatialReference:"parent.spatialReference",displayField:"parent.displayField",typeIdField:"parent.typeIdField"}}};z=e([d],z);export{z as SubtypeSublayerSchema};let $=class extends j{get zoomScale(){const e="point"===this._layerExtension.schema.geometryType?this._layerExtension.sublayer.maxScale:void 0;return this._getSetting("zoomScale",e)}set zoomScale(e){this._setSetting("zoomScale",e)}};$=e([d],$);let A=class extends S{get _layerSupportsHideChildren(){return!1}get _esriLayer(){return this._extension.sublayer}get _listModePath(){return"sublayer.listMode"}get _supportsChildren(){return!1}};A=e([d],A);export class SubtypeSublayerRelationshipCollection extends c{get _sourceUrl(){const e=this._source.sublayer?.layer;if(e)return`${e.url}/${e.layerId}`}get _sourceLayerId(){const e=this._source.sublayer?.layer;return e?.layerId}_findRelatedSource(e){if(!this._source.layerExtension?.mapExtension||!this._source.sublayer||!this._sourceUrl)return;const t=this._sourceUrl.slice(0,this._sourceUrl.length-`${this._sourceLayerId}`.length-1),r=this._source.layerExtension.mapExtension.allLayerExtensions.initializedItems.find((r=>(b(r.layer)||f(r.layer))&&r.layer.url===t&&r.layer.layerId===e));return r||this._source.layerExtension.mapExtension.tableExtensions.initializedItems.find((r=>b(r.table)&&r.table.url===t&&r.table.layerId===e))}}
1
+ import{__decorate as e}from"tslib";import t from"@arcgis/core/core/Collection";import r from"@arcgis/core/rest/support/AttachmentQuery";import{InvalidOperationError as s}from"../InvalidOperationError.js";import{toAttachment as i}from"../data/Attachment.js";import{addAttachment as a,deleteAttachments as n}from"../data/support/attachments.js";import{applyJsonToSublayer as o,jsonToSublayer as l,sublayerToJson as y}from"../json/SublayerJson.js";import{serializable as u}from"../support/Serializable.js";import{ArcGISRelationshipCollection as p}from"../support/_ArcGISRelationshipCollection.js";import{applyEdits as c}from"../support/_featureEdit.js";import{ReadOnlyCollection as d}from"../utilities/ReadOnlyCollection.js";import{getGdbVersion as h}from"../utilities/_version.js";import{isFeatureLayer as m,isSubtypeGroupLayer as b,isSubtypeSublayer as _}from"../utilities/layers.js";import{parse as g}from"../utilities/number.js";import{caseInsensitiveEquals as f}from"../utilities/string.js";import{SublayerExtension as x,SublayerSchema as E}from"./_SublayerExtension.js";import{ArrayWrappedCollection as S}from"./support/ArrayWrappedCollection.js";import{ExtensionBaseLayerListSettings as w}from"./support/LayerListSettings.js";import{PopupTemplateFeatureSettings as F}from"./support/PopupTemplateFeatureSettings.js";let C=class extends x{get supportsSublayers(){return!1}get layerExtension(){return super.layerExtension}get renderer(){return this.sublayer?.renderer}get hasFeatures(){return!0}get sublayer(){return super.sublayer}get sublayerExtensions(){return super.sublayerExtensions}get attachmentTypes(){return this.layerExtension?.attachmentTypes}get canChangeLabels(){return!0}get canChangeRenderer(){return!0}get canChangeOpacity(){return!1}async _addAttachment(e,t){return a(e,this.sublayer.layer,t,{attachmentTypes:this.layerExtension?.attachmentTypes})}async _deleteAttachments(e,t){return n(e,this.sublayer.layer,t)}_isSupportedSublayer(e){return _(e)}_createLayerListSettings(e){return new z(e,this)}_createFeatureSettings(){return new T(this)}_createSublayer(e){return l(e,"SubtypeGroupLayer")}_createSchema(){return new I(this)}_createRelationships(){return new SubtypeSublayerRelationshipCollection(this)}async _applySublayerProperties(e,t){return o(e,t)}_capabilities(){return this.layerExtension?.capabilities}async _onInitialize(){const e=(await import("@arcgis/core/layers/support/SubtypeSublayer.js")).default;"layer"in e.prototype||Object.defineProperty(e.prototype,"layer",{get:function(){return this.parent},set:function(e){this.parent=e}}),await super._onInitialize(),await this.relationships.initialize(),this._watchHandles.push(this.watch("layerExtension.attachmentTypes",(()=>this.notifyChange("attachmentTypes")))),this._addDomainsToFields()}async _postInitialize(){await super._postInitialize(),this.layerListSettings.onLayerExtensionInitialized()}_getFeatures(e,t){if(!this.sublayer?.layer)return super._getFeatures(e,t);const r=this.sublayer?.layer.createQuery();r.objectIds=e.map((e=>g(e))),r.where=void 0,r.outFields=t.outFields,r.returnGeometry=t.returnGeometry;const s=this;return{async*[Symbol.asyncIterator](){yield*(await import("../support/_query.js")).executeQuery(r,s,s.sublayer.layer,t.cancelToken)}}}async _getAttachments(e){if(!this.sublayer?.layer?.capabilities?.data?.supportsAttachment)return[];const t=+e.primaryKey,s=this.sublayer?.layer?.gdbVersion??h(this.sublayer?.layer?.customParameters),a=new r({objectIds:[t]}),n=await this.sublayer.layer.queryAttachments(a);return n?.[t]?.length?n[t].map((e=>i(e,{gdbVersion:s}))):[]}async _addFeatures(e,t){await c({adds:e},this.sublayer.layer,t)}async _updateFeatures(e,t){await c({updates:e},this.sublayer.layer,t)}async _deleteFeatures(e,t){await c({deletes:e},this.sublayer.layer,t)}_serializeSublayer(e){return y(e)}_addDomainsToFields(){const e=this.sublayer.parent.subtypes.find((e=>e.code===this.sublayer.subtypeCode));if(e?.domains)for(const[t,r]of Object.entries(e.domains)){const e=this.sublayer.fields.find((e=>f(e.name,t)));e&&!e.domain&&(e.domain=r)}}};C=e([u],C);export{C as SubtypeSublayerExtension};const j="This schema property is read-only.";let I=class extends E{_fieldCollection;_readonlyTypesCollection;_typesCollection;get primaryKeyField(){return this._sublayerExtension.sublayer?.layer?.objectIdField}set primaryKeyField(e){throw new s(j)}get geometryType(){return this._sublayerExtension.sublayer?.layer?.geometryType}set geometryType(e){throw new s(j)}get displayField(){return this._sublayerExtension.sublayer?.layer?.displayField}set displayField(e){throw new s(j)}get typeIdField(){return this._sublayerExtension.sublayer?.layer?.subtypeField}set typeIdField(e){throw new s(j)}get types(){return this._readonlyTypesCollection}constructor(e){super(e),this._fieldCollection=this._createFieldCollection(),this._typesCollection=new t,this._readonlyTypesCollection=new d(this._typesCollection);const r=()=>this._sublayerExtension.sublayer?.subtypeCode,s=()=>{const e=this._sublayerExtension.layerExtension?._subtypes?.find((e=>e.id===r()));return!!e&&(this._typesCollection.add(e),!0)};if(this._sublayerExtension.layerExtension?._subtypes?.some((e=>e.id===r())))s();else{const e=this._sublayerExtension.watch("layerExtension._subtypes",(()=>{s()&&e.remove()}),!0)}this.notifyChange("_fields")}get _fields(){return this._fieldCollection}_createFieldCollection(){return new d(new S({parent:this._sublayerExtension,targetProperty:"sublayer",arrayProperty:"fields"}))}_getPropertyBindings(){return{primaryKeyField:"parent.objectIdField",geometryType:"parent.geometryType",spatialReference:"parent.spatialReference",displayField:"parent.displayField",typeIdField:"parent.typeIdField"}}};I=e([u],I);export{I as SubtypeSublayerSchema};let T=class extends F{get zoomScale(){const e="point"===this._layerExtension.schema.geometryType?this._layerExtension.sublayer.maxScale:void 0;return this._getSetting("zoomScale",e)}set zoomScale(e){this._setSetting("zoomScale",e)}};T=e([u],T);let z=class extends w{get _layerSupportsHideChildren(){return!1}get _esriLayer(){return this._extension.sublayer}get _listModePath(){return"sublayer.listMode"}get _supportsChildren(){return!1}};z=e([u],z);export class SubtypeSublayerRelationshipCollection extends p{get _sourceUrl(){const e=this._source.sublayer?.layer;if(e)return`${e.url}/${e.layerId}`}get _sourceLayerId(){const e=this._source.sublayer?.layer;return e?.layerId}_findRelatedSource(e){if(!this._source.layerExtension?.mapExtension||!this._source.sublayer||!this._sourceUrl)return;const t=this._sourceUrl.slice(0,this._sourceUrl.length-`${this._sourceLayerId}`.length-1),r=this._source.layerExtension.mapExtension.allLayerExtensions.initializedItems.find((r=>(m(r.layer)||b(r.layer))&&r.layer.url===t&&r.layer.layerId===e));return r||this._source.layerExtension.mapExtension.tableExtensions.initializedItems.find((r=>m(r.table)&&r.table.url===t&&r.table.layerId===e))}}
@@ -4,8 +4,7 @@ import type PortalItem from "@arcgis/core/portal/PortalItem";
4
4
  import type { Schema } from "../data/Schema.js";
5
5
  import type { TiledMapServiceLayerJson } from "../json/TiledMapServiceLayerJson.js";
6
6
  import type { PropertyDefs } from "../support/Serializable.js";
7
- import type { TileSublayerExtensionProperties } from "./TileSublayerExtension.js";
8
- import { TileSublayerExtension } from "./TileSublayerExtension.js";
7
+ import type { TileSublayerExtensionProperties, TileSublayerExtension } from "./TileSublayerExtension.js";
9
8
  import type { LayerExtensionProperties, LayerProperties } from "./_LayerExtension.js";
10
9
  import { LayerExtension } from "./_LayerExtension.js";
11
10
  import type { LayerListSettings, LayerListSettingsProperties } from "./support/LayerListSettings.js";
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import{InvalidOperationError as r}from"../InvalidOperationError.js";import{applyJsonToLayer as t}from"../json/LayerJson.js";import{DefaultArcGISRequestHelper as a}from"../support/ArcGISRequestHelper.js";import{serializable as i}from"../support/Serializable.js";import{isTileLayer as s}from"../utilities/_layers.js";import{checkArg as o}from"../utilities/checkArg.js";import{TileSublayerExtension as l}from"./TileSublayerExtension.js";import{LayerExtension as n,LayerExtensionLayerListSettings as y,LayerExtensionSchema as p}from"./_LayerExtension.js";let u=class extends n{get layer(){return super.layer}get supportsSublayers(){return!0}_createSublayerExtension(e){return new l(e)}_applyLayerProperties(e,r){o("layerJson",e).isNotMissing();const a=e.layerType||e.type;return o("layerJson.layerType",a).satisfies((e=>!e||"ArcGISTiledMapServiceLayer"===e)),o("layer",r).isNotMissing().satisfies((e=>this._isSupportedLayer(e))),t(e,r)}_createLayerListSettings(e){return new y(e,this,!1)}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"ArcGISTiledMapServiceLayer"}}}}_isSupportedLayer(e){return s(e)}_createSchema(){return new c(this)}async _initializeLayer(){if(await super._initializeLayer(),!this.layer.url)throw new r("Tile layer must have a URL.")}async _onInitialize(){if(await super._onInitialize(),!this.layer.tileInfo)throw new Error(`The layer at URL "${this.layer.url}" is not a tile layer or does not have a tiling scheme defined.`)}async _applyPortalItemProperties(e){if("Map Service"!==e.type)throw new Error(`Cannot create Tile Layer from Portal item that has type: ${e.type}`);const r=await n._getLayerData(e.url,new a);if("Elevation"===r.cacheType)throw new Error("Cannot create Tile Layer from Portal item that references an Elevation layer");if(!r.tileInfo)throw new Error("Cannot create Tile Layer from Portal item that does not reference a tiled map service");this.layer.url=e.url||this.layer.url}};u=e([i],u);export{u as TileLayerExtension};let c=class extends p{_getPropertyBindings(){return{spatialReference:{property:"spatialReference",readonly:!0}}}};c=e([i],c);
1
+ import{__decorate as e}from"tslib";import{InvalidOperationError as r}from"../InvalidOperationError.js";import{applyJsonToLayer as t}from"../json/LayerJson.js";import{DefaultArcGISRequestHelper as a}from"../support/ArcGISRequestHelper.js";import{serializable as i}from"../support/Serializable.js";import{isTileLayer as s}from"../utilities/_layers.js";import{checkArg as o}from"../utilities/checkArg.js";import{LayerExtension as l,LayerExtensionLayerListSettings as n,LayerExtensionSchema as y}from"./_LayerExtension.js";import{SublayerExtension as p}from"./_SublayerExtension.js";let c=class extends l{get layer(){return super.layer}get supportsSublayers(){return!0}_createSublayerExtension(e){return p.factory.create(e,"ArcGISTiledSublayer")}_applyLayerProperties(e,r){o("layerJson",e).isNotMissing();const a=e.layerType||e.type;return o("layerJson.layerType",a).satisfies((e=>!e||"ArcGISTiledMapServiceLayer"===e)),o("layer",r).isNotMissing().satisfies((e=>this._isSupportedLayer(e))),t(e,r)}_createLayerListSettings(e){return new n(e,this,!1)}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"ArcGISTiledMapServiceLayer"}}}}_isSupportedLayer(e){return s(e)}_createSchema(){return new u(this)}async _initializeLayer(){if(await super._initializeLayer(),!this.layer.url)throw new r("Tile layer must have a URL.")}async _onInitialize(){if(await super._onInitialize(),!this.layer.tileInfo)throw new Error(`The layer at URL "${this.layer.url}" is not a tile layer or does not have a tiling scheme defined.`)}async _applyPortalItemProperties(e){if("Map Service"!==e.type)throw new Error(`Cannot create Tile Layer from Portal item that has type: ${e.type}`);const r=await l._getLayerData(e.url,new a);if("Elevation"===r.cacheType)throw new Error("Cannot create Tile Layer from Portal item that references an Elevation layer");if(!r.tileInfo)throw new Error("Cannot create Tile Layer from Portal item that does not reference a tiled map service");this.layer.url=e.url||this.layer.url}};c=e([i],c);export{c as TileLayerExtension};let u=class extends y{_getPropertyBindings(){return{spatialReference:{property:"spatialReference",readonly:!0}}}};u=e([i],u);
@@ -1 +1 @@
1
- var e;import{__decorate as i}from"tslib";import{serializable as t}from"../support/Serializable.js";import{getLogger as r}from"../utilities/log.js";import{ArcGISSublayerExtension as s}from"./ArcGISSublayerExtension.js";const n=r("TileSublayerExtension");let o=e=class extends s{get layerExtension(){return super.layerExtension}get sublayerExtensions(){return super.sublayerExtensions}get canToggleVisibility(){return!1}get canChangeOpacity(){return!1}get canChangeScale(){return!1}_createSublayerExtension(i){return new e(i)}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,visibilityMode:{...this._toPropertyDef(e.visibilityMode),serialize:()=>"inherited",deserialize:e=>{"inherited"!==e&&n.error(`SublayerExtension (id: ${this.id}, title: ${this.title}) visibilityMode cannot be set to ${e}.`)},default:"inherited"}}}};o=e=i([t],o);export{o as TileSublayerExtension};
1
+ import{__decorate as e}from"tslib";import{serializable as t}from"../support/Serializable.js";import{getLogger as i}from"../utilities/log.js";import{ArcGISSublayerExtension as r}from"./ArcGISSublayerExtension.js";import{SublayerExtension as s}from"./_SublayerExtension.js";const n=i("TileSublayerExtension");let o=class extends r{get layerExtension(){return super.layerExtension}get sublayerExtensions(){return super.sublayerExtensions}get canToggleVisibility(){return!1}get canChangeOpacity(){return!1}get canChangeScale(){return!1}_createSublayerExtension(e){return s.factory.create(e,"ArcGISTiledSublayer")}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,visibilityMode:{...this._toPropertyDef(e.visibilityMode),serialize:()=>"inherited",deserialize:e=>{"inherited"!==e&&n.error(`SublayerExtension (id: ${this.id}, title: ${this.title}) visibilityMode cannot be set to ${e}.`)},default:"inherited"}}}};o=e([t],o);export{o as TileSublayerExtension};
@@ -4,8 +4,7 @@ import type PortalItem from "@arcgis/core/portal/PortalItem";
4
4
  import type { WMSLayerJson } from "../json/WMSLayerJson.js";
5
5
  import type { PropertyDefs } from "../support/Serializable.js";
6
6
  import type { WFSCapabilities } from "../support/esri.js";
7
- import type { WMSSublayerExtensionCollection, WMSSublayerExtensionProperties } from "./WMSSublayerExtension.js";
8
- import { WMSSublayerExtension } from "./WMSSublayerExtension.js";
7
+ import type { WMSSublayerExtensionCollection, WMSSublayerExtensionProperties, WMSSublayerExtension } from "./WMSSublayerExtension.js";
9
8
  import type { LayerExtensionProperties, LayerProperties } from "./_LayerExtension.js";
10
9
  import { LayerExtension } from "./_LayerExtension.js";
11
10
  import { SublayerExtensionCollectionBase } from "./support/_SublayerExtensionCollection.js";
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import{InvalidOperationError as r}from"../InvalidOperationError.js";import{applyJsonToLayer as t,layerToJson as i}from"../json/LayerJson.js";import{serializable as s}from"../support/Serializable.js";import{isWMSLayer as a}from"../utilities/_layers.js";import{checkArg as o}from"../utilities/checkArg.js";import{WMSSublayerExtension as l}from"./WMSSublayerExtension.js";import{LayerExtension as n}from"./_LayerExtension.js";import{SublayerExtensionCollectionBase as y}from"./support/_SublayerExtensionCollection.js";const p="SublayerExtension collection for WMSLayerExtension is readonly";let u=class extends n{get layer(){return super.layer}get sublayerExtensions(){return super.sublayerExtensions}get wfsCapabilities(){return this._wfsCapabilities}get supportsSublayers(){return!0}wfsUrl;_deferredSublayerProperties;_wfsCapabilities;_initializeWfsPromise;async initializeWfs(){return void 0===this._initializeWfsPromise&&(this._initializeWfsPromise=(async()=>{if(this.wfsUrl)try{this._wfsCapabilities||(this._wfsCapabilities=await(await import("@arcgis/core/layers/ogc/wfsUtils.js")).getCapabilities(this.wfsUrl))}catch(e){throw this._initializeWfsPromise=void 0,e}})()),this._initializeWfsPromise}_createSublayerExtension(e){return new l(e)}_getProjectWebmapJSON(){const e=super._getProjectWebmapJSON();if(!e||this.dynamicallyAddedLayer)return e;const{visibleLayers:r}=i(this.layer);return e.visibleLayers=r,e}async _onInitialize(){await super._onInitialize(),null==this.layer.imageFormat&&(this.layer.imageFormat="png"),this._deferredSublayerProperties&&(await this.assignPropertiesAsync({layer:{layerType:"WMS",layers:this._deferredSublayerProperties}}),this._deferredSublayerProperties=void 0)}_isSupportedLayer(e){return a(e)}_createSublayerExtensionCollection(){return new f(this)}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,wfsUrl:"initial",layer:{...this._toPropertyDef(e.layer),default:{layerType:"WMS"},deserialize:r=>{const t=this._toPropertyDef(e.layer).deserialize(r);if(r&&!a(r)&&r.layers&&!this.layer?.sublayers){this._deferredSublayerProperties=this._deferredSublayerProperties||[];for(const e of r.layers){const r=this._deferredSublayerProperties.findIndex((r=>r.name===e.name));r>=0?this._deferredSublayerProperties[r]={...this._deferredSublayerProperties[r],...e}:this._deferredSublayerProperties.push({...e})}}return t}}}}async _applyPortalItemProperties(e){if("WMS"!==e.type)throw new Error(`Cannot create WMS layer from Portal item that has type: ${e.type}`);const r={layerType:"WMS",...await e.fetchData()};return t(r,this.layer)}};u=e([s],u);export{u as WMSLayerExtension};class f extends y{constructor(e){super(e,"layer.sublayers"),this._layerExtension=e}add(e,t){if(o("sublayerX",e).isNotMissing(),e.sublayer&&this._parent.layer.sublayers&&!this._parent.layer.sublayers.includes(e.sublayer))throw new r(p);return super.add(e,t)}removeAt(e){throw new r(p)}reorder(e,t){throw new r(p)}reverse(){throw new r(p)}sort(e){throw new r(p)}splice(e,t,...i){throw new r(p)}_createSublayerExtension(e){return this._parent._createSublayerExtension(e)}}
1
+ import{__decorate as e}from"tslib";import{InvalidOperationError as r}from"../InvalidOperationError.js";import{applyJsonToLayer as t,layerToJson as i}from"../json/LayerJson.js";import{serializable as s}from"../support/Serializable.js";import{isWMSLayer as a}from"../utilities/_layers.js";import{checkArg as o}from"../utilities/checkArg.js";import{LayerExtension as l}from"./_LayerExtension.js";import{SublayerExtension as n}from"./_SublayerExtension.js";import{SublayerExtensionCollectionBase as y}from"./support/_SublayerExtensionCollection.js";const p="SublayerExtension collection for WMSLayerExtension is readonly";let u=class extends l{get layer(){return super.layer}get sublayerExtensions(){return super.sublayerExtensions}get wfsCapabilities(){return this._wfsCapabilities}get supportsSublayers(){return!0}wfsUrl;_deferredSublayerProperties;_wfsCapabilities;_initializeWfsPromise;async initializeWfs(){return void 0===this._initializeWfsPromise&&(this._initializeWfsPromise=(async()=>{if(this.wfsUrl)try{this._wfsCapabilities||(this._wfsCapabilities=await(await import("@arcgis/core/layers/ogc/wfsUtils.js")).getCapabilities(this.wfsUrl))}catch(e){throw this._initializeWfsPromise=void 0,e}})()),this._initializeWfsPromise}_createSublayerExtension(e){return n.factory.create(e,"WMSSublayer")}_getProjectWebmapJSON(){const e=super._getProjectWebmapJSON();if(!e||this.dynamicallyAddedLayer)return e;const{visibleLayers:r}=i(this.layer);return e.visibleLayers=r,e}async _onInitialize(){await super._onInitialize(),null==this.layer.imageFormat&&(this.layer.imageFormat="png"),this._deferredSublayerProperties&&(await this.assignPropertiesAsync({layer:{layerType:"WMS",layers:this._deferredSublayerProperties}}),this._deferredSublayerProperties=void 0)}_isSupportedLayer(e){return a(e)}_createSublayerExtensionCollection(){return new f(this)}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,wfsUrl:"initial",layer:{...this._toPropertyDef(e.layer),default:{layerType:"WMS"},deserialize:r=>{const t=this._toPropertyDef(e.layer).deserialize(r);if(r&&!a(r)&&r.layers&&!this.layer?.sublayers){this._deferredSublayerProperties=this._deferredSublayerProperties||[];for(const e of r.layers){const r=this._deferredSublayerProperties.findIndex((r=>r.name===e.name));r>=0?this._deferredSublayerProperties[r]={...this._deferredSublayerProperties[r],...e}:this._deferredSublayerProperties.push({...e})}}return t}}}}async _applyPortalItemProperties(e){if("WMS"!==e.type)throw new Error(`Cannot create WMS layer from Portal item that has type: ${e.type}`);const r={layerType:"WMS",...await e.fetchData()};return t(r,this.layer)}};u=e([s],u);export{u as WMSLayerExtension};class f extends y{constructor(e){super(e,"layer.sublayers"),this._layerExtension=e}add(e,t){if(o("sublayerX",e).isNotMissing(),e.sublayer&&this._parent.layer.sublayers&&!this._parent.layer.sublayers.includes(e.sublayer))throw new r(p);return super.add(e,t)}removeAt(e){throw new r(p)}reorder(e,t){throw new r(p)}reverse(){throw new r(p)}sort(e){throw new r(p)}splice(e,t,...i){throw new r(p)}_createSublayerExtension(e){return this._parent._createSublayerExtension(e)}}
@@ -1 +1 @@
1
- var e;import{__decorate as r}from"tslib";import{InvalidOperationError as t}from"../InvalidOperationError.js";import{applyJsonToSublayer as s,jsonToSublayer as i,sublayerToJson as n}from"../json/SublayerJson.js";import{serializable as a}from"../support/Serializable.js";import{isWMSSublayer as o}from"../utilities/_layers.js";import{checkArg as l}from"../utilities/checkArg.js";import{caseInsensitiveEquals as u}from"../utilities/string.js";import{SublayerExtension as y,SubSublayerExtensionCollection as f}from"./_SublayerExtension.js";const p="SublayerExtension collection for WMSLayerExtension is readonly";let h=e=class extends y{wfsLayerInfo;get wfsFeatureType(){return this.wfsLayerInfo?.wfsCapabilities.featureTypes.find((e=>e.namespaceUri===this.wfsLayerInfo.namespaceUri&&e.name===this.wfsLayerInfo.name))}get sublayer(){return super.sublayer}get sublayerExtensions(){return super.sublayerExtensions}get layerExtension(){return super.layerExtension}get supportsSublayers(){return!0}get effectiveFullExtent(){return this.sublayer?this.sublayer.fullExtent:this.parentSublayerExtension?this.parentSublayerExtension.effectiveFullExtent:this.layerExtension?this.layerExtension.effectiveFullExtent:void 0}get hasFeatures(){return!0}get canChangeOpacity(){return!1}_initializeWfsPromise;async initializeWfs(){return void 0===this._initializeWfsPromise&&(this._initializeWfsPromise=(async()=>{if(!this.wfsLayerInfo&&this.layerExtension?.wfsUrl)try{await this.layerExtension.initializeWfs();const e=this.layerExtension.wfsCapabilities,r=this.sublayer.name.split(":"),s=r[2===r.length?1:0],i=e.featureTypes.find((e=>u(s,e.name)));if(!i)throw new t(`Could not find a matching WFS feature type for layer "${this.sublayer?.name??""}".`);this.wfsLayerInfo=await(await import("@arcgis/core/layers/ogc/wfsUtils.js")).getWFSLayerInfo(e,i.name)}catch(e){throw this._initializeWfsPromise=void 0,e}})()),this._initializeWfsPromise}_createSublayerExtension(r){return new e(r)}_isSupportedSublayer(e){return o(e)}_createSublayer(e){return i({...e},"WMS")}async _applySublayerProperties(e,r){return s(e,r)}_serializeSublayer(e){return n(e)}_createSublayerExtensionCollection(){return new m(this)}};h=e=r([a],h);export{h as WMSSublayerExtension};class m extends f{add(e,r){if(l("sublayerX",e).isNotMissing(),e.sublayer&&this._parent.sublayer.sublayers&&!this._parent.sublayer.sublayers.includes(e.sublayer))throw new t(p);return super.add(e,r)}removeAt(e){throw new t(p)}reorder(e,r){throw new t(p)}}
1
+ import{__decorate as e}from"tslib";import{InvalidOperationError as r}from"../InvalidOperationError.js";import{applyJsonToSublayer as t,jsonToSublayer as s,sublayerToJson as i}from"../json/SublayerJson.js";import{serializable as a}from"../support/Serializable.js";import{isWMSSublayer as n}from"../utilities/_layers.js";import{checkArg as o}from"../utilities/checkArg.js";import{caseInsensitiveEquals as l}from"../utilities/string.js";import{SublayerExtension as u,SubSublayerExtensionCollection as y}from"./_SublayerExtension.js";const f="SublayerExtension collection for WMSLayerExtension is readonly";let p=class extends u{wfsLayerInfo;get wfsFeatureType(){return this.wfsLayerInfo?.wfsCapabilities.featureTypes.find((e=>e.namespaceUri===this.wfsLayerInfo.namespaceUri&&e.name===this.wfsLayerInfo.name))}get sublayer(){return super.sublayer}get sublayerExtensions(){return super.sublayerExtensions}get layerExtension(){return super.layerExtension}get supportsSublayers(){return!0}get effectiveFullExtent(){return this.sublayer?this.sublayer.fullExtent:this.parentSublayerExtension?this.parentSublayerExtension.effectiveFullExtent:this.layerExtension?this.layerExtension.effectiveFullExtent:void 0}get hasFeatures(){return!0}get canChangeOpacity(){return!1}_initializeWfsPromise;async initializeWfs(){return void 0===this._initializeWfsPromise&&(this._initializeWfsPromise=(async()=>{if(!this.wfsLayerInfo&&this.layerExtension?.wfsUrl)try{await this.layerExtension.initializeWfs();const e=this.layerExtension.wfsCapabilities,t=this.sublayer.name.split(":"),s=t[2===t.length?1:0],i=e.featureTypes.find((e=>l(s,e.name)));if(!i)throw new r(`Could not find a matching WFS feature type for layer "${this.sublayer?.name??""}".`);this.wfsLayerInfo=await(await import("@arcgis/core/layers/ogc/wfsUtils.js")).getWFSLayerInfo(e,i.name)}catch(e){throw this._initializeWfsPromise=void 0,e}})()),this._initializeWfsPromise}_createSublayerExtension(e){return u.factory.create(e,"WMSSublayer")}_isSupportedSublayer(e){return n(e)}_createSublayer(e){return s({...e},"WMS")}async _applySublayerProperties(e,r){return t(e,r)}_serializeSublayer(e){return i(e)}_createSublayerExtensionCollection(){return new h(this)}};p=e([a],p);export{p as WMSSublayerExtension};class h extends y{add(e,t){if(o("sublayerX",e).isNotMissing(),e.sublayer&&this._parent.sublayer.sublayers&&!this._parent.sublayer.sublayers.includes(e.sublayer))throw new r(f);return super.add(e,t)}removeAt(e){throw new r(f)}reorder(e,t){throw new r(f)}}
@@ -1,4 +1,4 @@
1
- import type { SublayerExtension, SublayerExtensionProperties } from "../_SublayerExtension.js";
1
+ import type { SublayerExtension, SublayerExtensionProperties, SublayerProperties } from "../_SublayerExtension.js";
2
2
  import type { SublayerExtensionFactory } from "./SublayerExtensionFactory.js";
3
3
  /**
4
4
  * Default implementation of
@@ -14,5 +14,5 @@ export declare class DefaultSublayerExtensionFactory implements SublayerExtensio
14
14
  /**
15
15
  * @inheritDoc
16
16
  */
17
- create(properties: SublayerExtensionProperties): SublayerExtension;
17
+ create(properties: SublayerExtensionProperties, defaultSublayerType?: SublayerProperties["$sublayerType"]): SublayerExtension;
18
18
  }
@@ -1 +1 @@
1
- import{ArgumentError as e}from"../../ArgumentError.js";import{isBuildingComponentSublayer as r,isBuildingGroupSublayer as t,isKMLSublayer as n,isMapImageSublayer as s,isMapNotesSublayer as i,isSubtypeSublayer as o,isTileLayer as u,isWMSSublayer as a}from"../../utilities/_layers.js";import{checkArg as l}from"../../utilities/checkArg.js";import{BuildingComponentSublayerExtension as y}from"../BuildingComponentSublayerExtension.js";import{BuildingGroupSublayerExtension as b}from"../BuildingGroupSublayerExtension.js";import{KMLSublayerExtension as p}from"../KMLSublayerExtension.js";import{MapImageSublayerExtension as c}from"../MapImageSublayerExtension.js";import{MapNotesSublayerExtension as m}from"../MapNotesSublayerExtension.js";import{SubtypeSublayerExtension as S}from"../SubtypeSublayerExtension.js";import{TileSublayerExtension as f}from"../TileSublayerExtension.js";import{WMSSublayerExtension as w}from"../WMSSublayerExtension.js";export class DefaultSublayerExtensionFactory{static instance=new DefaultSublayerExtensionFactory;constructor(){}create(x){l("properties",x).isNotMissing(),l("properties.sublayer",x.sublayer).isNotMissing();const j=x.sublayer;if(s(j))return u(j.layer)?new f(x):new c(x);if(i(j))return new m(x);if(n(j))return new p(x);if(a(j))return new w(x);if(r(j))return new y(x);if(t(j))return new b(x);if(o(j))return new S(x);if(x.sublayer.$sublayerType)switch(x.sublayer.$sublayerType){case"ArcGISMapServiceSublayer":return new c(x);case"ArcGISTiledSublayer":return new f(x);case"WMSSublayer":return new w(x);case"KMLSublayer":return new p(x);case"BuildingComponentSublayer":return new y(x);case"BuildingGroupSublayer":return new b(x);case"SubtypeSublayer":return new S(x);case"MapNotesSublayer":return new m(x);case"WMTSSublayer":return{}}throw new e("properties.sublayer","Unable to determine correct type of sublayer extension to create.")}}
1
+ import{ArgumentError as e}from"../../ArgumentError.js";import{isBuildingComponentSublayer as r,isBuildingGroupSublayer as t,isKMLSublayer as n,isMapImageSublayer as i,isMapNotesSublayer as s,isSubtypeSublayer as o,isTileLayer as u,isWMSSublayer as a}from"../../utilities/_layers.js";import{checkArg as l}from"../../utilities/checkArg.js";import{BuildingComponentSublayerExtension as y}from"../BuildingComponentSublayerExtension.js";import{BuildingGroupSublayerExtension as p}from"../BuildingGroupSublayerExtension.js";import{KMLSublayerExtension as b}from"../KMLSublayerExtension.js";import{MapImageSublayerExtension as c}from"../MapImageSublayerExtension.js";import{MapNotesSublayerExtension as m}from"../MapNotesSublayerExtension.js";import{SubtypeSublayerExtension as S}from"../SubtypeSublayerExtension.js";import{TileSublayerExtension as f}from"../TileSublayerExtension.js";import{WMSSublayerExtension as w}from"../WMSSublayerExtension.js";export class DefaultSublayerExtensionFactory{static instance=new DefaultSublayerExtensionFactory;constructor(){}create(x,j){l("properties",x).isNotMissing(),l("properties.sublayer",x.sublayer??j).isNotMissing();const E=x.sublayer,M=x.sublayer?.$sublayerType??j;if(i(E))return u(E.layer)?new f(x):new c(x);if(s(E))return new m(x);if(n(E))return new b(x);if(a(E))return new w(x);if(r(E))return new y(x);if(t(E))return new p(x);if(o(E))return new S(x);if(M)switch(M){case"ArcGISMapServiceSublayer":return new c(x);case"ArcGISTiledSublayer":return new f(x);case"WMSSublayer":return new w(x);case"KMLSublayer":return new b(x);case"BuildingComponentSublayer":return new y(x);case"BuildingGroupSublayer":return new p(x);case"SubtypeSublayer":return new S(x);case"MapNotesSublayer":return new m(x);case"WMTSSublayer":return{}}throw new e("properties.sublayer","Unable to determine correct type of sublayer extension to create.")}}
@@ -1,4 +1,4 @@
1
- import type { SublayerExtension, SublayerExtensionProperties } from "../_SublayerExtension.js";
1
+ import type { SublayerExtension, SublayerExtensionProperties, SublayerProperties } from "../_SublayerExtension.js";
2
2
  /**
3
3
  * Creates new instances of
4
4
  * {@link mapping/support/SublayerExtensionFactory!SublayerExtensionFactory}.
@@ -9,6 +9,8 @@ export interface SublayerExtensionFactory {
9
9
  * given properties.
10
10
  *
11
11
  * @param properties The SublayerExtension properties.
12
+ * @param defaultSublayerType Optionally specify the sublayerType to be
13
+ * created. (i.e. we are creating a child sublayer from a parent).
12
14
  */
13
- create(properties: SublayerExtensionProperties): SublayerExtension;
15
+ create(properties: SublayerExtensionProperties, defaultSublayerType?: SublayerProperties["$sublayerType"]): SublayerExtension;
14
16
  }
@@ -1 +1 @@
1
- import{createFeatureServices as e}from"@arcgis/core/rest/featureService/utils";import{FeatureSaveError as t}from"../../data/FeatureSaveError.js";import{getGdbVersion as r}from"../../utilities/_version.js";import{isFeatureLayerExtension as s,isSubtypeGroupLayerExtension as a,isSubtypeSublayerExtension as u}from"../../utilities/extensions.js";import{map as d}from"../../utilities/iterable.js";import{getGlobalIdField as o,isGlobalIdUsed as i}from"./layers.js";export async function applyEdits(l){const{addFeatures:c=[],updateFeatures:n=[],deleteFeatures:p=[]}=l,F=new Map,f=[],h=new WeakMap,m=(e,t)=>{const r=(e=>s(e.source)||a(e.source)?e.source.layer:u(e.source)?e.source.layerExtension.layer:e.source.table)(e);F.has(r)||F.set(r,{id:r.layerId,identifierFields:{globalIdField:o(r),objectIdField:r.objectIdField},addFeatures:[],updateFeatures:[],deleteFeatures:[]});const d=F.get(r),i=e.toGraphic();d[t].push(i),"addFeatures"===t&&(h.has(r)||h.set(r,[]),h.get(r).push(e))};c.forEach((e=>m(e,"addFeatures"))),n.forEach((e=>m(e,"updateFeatures"))),p.forEach((e=>m(e,"deleteFeatures")));const y=await e([...F.keys()]),g=await Promise.all(d(y.values(),(async({featureService:e,layers:t})=>{await e.load();const s=[];t.forEach((e=>{s.push(F.get(e))}));const a=e.applyEdits(s,{globalIdUsed:t.every((e=>i(e,F.get(e)))),gdbVersion:t[0].gdbVersion??r(t[0].customParameters)});return f.push((async()=>{const e=await a;for(const r of e){const e=t.find((e=>e.layerId===r.id));e&&(e.emit("edits",{deletedFeatures:r.deleteFeatureResults??[],updatedFeatures:r.updateFeatureResults??[],addedFeatures:r.addFeatureResults??[],deletedAttachments:[],updatedAttachments:[]}),(r.addFeatureResults??[]).forEach((({objectId:t,globalId:r,error:s},a)=>{if(s)return;const u=h.get(e)?.[a];if(u){const{primaryKeyField:s}=u.schema;u.attributes.set(s,t);const a=o(e);a&&r&&u.attributes.set(a,r)}})))}})),a}))),b=g?.flat().flatMap((e=>{const t=[];return e.addFeatureResults&&t.push(...e.addFeatureResults),e.deleteFeatureResults&&t.push(...e.deleteFeatureResults),e.updateFeatureResults&&t.push(...e.updateFeatureResults),t}))?.filter((e=>!!e?.error));if(b?.length){const e=new t("Errors encountered when applying edits.");throw b.forEach((t=>e.errors.set(t.id,t.error))),e}return await Promise.all(f.map((e=>e()))),g}
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 o}from"../../utilities/extensions.js";import{map as i}from"../../utilities/iterable.js";import{getGlobalIdField as l,isGlobalIdUsed as n}from"./layers.js";export async function applyEdits(p){const{addFeatures:c=[],updateFeatures:F=[],deleteFeatures:m=[]}=p,f=new Map,g=[],h=new WeakMap,y=new WeakMap,w=new WeakMap,E=(e,t)=>{const a=(e=>d(e.source)||u(e.source)?e.source.layer:o(e.source)?e.source.layerExtension.layer:e.source.table)(e);f.has(a)||f.set(a,{id:a.layerId,identifierFields:{globalIdField:l(a),objectIdField:a.objectIdField},addFeatures:[],updateFeatures:[],deleteFeatures:[]});const s=f.get(a),r=e.toGraphic();s[t].push(r);let i=h;"updateFeatures"===t?i=y:"deleteFeatures"===t&&(i=w),i.has(a)||i.set(a,[]),i.get(a).push(e)};c.forEach((e=>E(e,"addFeatures"))),F.forEach((e=>E(e,"updateFeatures"))),m.forEach((e=>E(e,"deleteFeatures")));const b=await e([...f.keys()]),j=new t("Errors encountered when applying edits."),v=await Promise.all(i(b.values(),(async({featureService:e,layers:t})=>{await e.load();const d=[];t.forEach((e=>{d.push(f.get(e))}));const u=e.applyEdits(d,{globalIdUsed:t.every((e=>n(e,f.get(e)))),gdbVersion:t[0].gdbVersion??r(t[0].customParameters)});return g.push((async()=>{const e=await u;for(const r of e){const e=t.find((e=>e.layerId===r.id));null!=e&&(s(e,h.get(e),r.addFeatureResults,"add",j),s(e,y.get(e),r.updateFeatureResults,"update",j),s(e,w.get(e),r.deleteFeatureResults,"delete",j),null!=r.editedFeatures&&a(e,{adds:h.get(e),updates:y.get(e)},r.editedFeatures),e.emit("edits",{deletedFeatures:r.deleteFeatureResults??[],updatedFeatures:r.updateFeatureResults??[],addedFeatures:r.addFeatureResults??[],deletedAttachments:[],updatedAttachments:[]}))}})),u})));if(await Promise.all(g.map((e=>e()))),j.errors.size>0)throw j;return v}
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": "45.5.2",
4
+ "version": "45.7.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://dev.azure.com/vertigis/Studio/_git/arcgis-extensions-ts"
@@ -51,7 +51,7 @@ export declare class Cancellation {
51
51
  * @returns A new promise that adds cancellation semantics to the original
52
52
  * promise.
53
53
  */
54
- export declare function cancelify<T>(promise: PromiseLike<T>, cancelToken: CancelToken, onCancel?: (reason: unknown) => void): Promise<T>;
54
+ export declare function cancelify<T>(promise: PromiseLike<T>, cancelToken: CancelToken | undefined, onCancel?: (reason: unknown) => void): Promise<T>;
55
55
  /**
56
56
  * Executes an asynchronous callback that takes an `AbortSignal` and makes it
57
57
  * cancellable via the given cancel token. If the cancel token is never
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +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 n,isSubtypeGroupLayer as u}from"../utilities/_layers.js";import{cancelify as l}from"./Cancellable.js";export async function applyEdits(t,o,a){const i={addFeatures:[],updateFeatures:[],deleteFeatures:[]},{adds:d=[],updates:p=[],deletes:c=[]}=t,f=[],y=[],h=[];for(const e of d)i.addFeatures.push(e.toGraphic()),f.push(e);for(const e of p)i.updateFeatures.push(e.toGraphic()),y.push(e);for(const e of c)"string"==typeof e?(i.deleteFeatures.push({objectId:e}),h.push({primaryKey:e})):(i.deleteFeatures.push(e.toGraphic()),h.push(e));if(0===f.length&&0===y.length&&0===h.length)return;const m=n(o)||u(o)?r(o,i):void 0,g=o.applyEdits(i,{globalIdUsed:m,returnServiceEditsOption:s(o)}),F=await l(g,a?.cancelToken);if(null==F||(F.addFeatureResults?.length??0)!==f.length||(F.updateFeatureResults?.length??0)!==y.length||(F.deleteFeatureResults?.length??0)!==h.length)throw new e("Received malformed response from server while saving feature(s).");const E=new e("Errors encountered when editing features.");if(applyEditsProcessResults(o,f,F.addFeatureResults,"add",E),applyEditsProcessResults(o,y,F.updateFeatureResults,"update",E),applyEditsProcessResults(o,h,F.deleteFeatureResults,"delete",E),null!=F.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)}(o,{adds:f,updates:y},F.editedFeatureResults),E.errors.size>0)throw E}export function applyEditsProcessResults(e,s,r,l,o){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"===l&&"schema"in r){const{primaryKeyField:s}=r.schema;if(r.attributes.set(s,i.objectId),n(e)||u(e)){const{globalId:s}=i;if(null!=s){const n=t(e);null!=n&&r.attributes.set(n,s)}}}}else{const{primaryKey:e}=r,t="title"in r?r.title:"";o.errors.set(e??`${t}-${a}`,new Error(`Failed to ${l} 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&&o(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&&o(s,t)}}}function o(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())}
package/support/esri.d.ts CHANGED
@@ -57,6 +57,10 @@ export type BuildingComponentSublayerCapabilities = __esri.BuildingComponentSubl
57
57
  export type BuildingComponentSublayerCapabilitiesData = __esri.BuildingComponentSublayerCapabilitiesData;
58
58
  export type RelationshipQueryProperties = __esri.RelationshipQueryProperties;
59
59
  export type MapNotesSublayer = __esri.MapNotesSublayer;
60
+ export type FeatureLayerBase = __esri.FeatureLayerBase;
61
+ export type EditedFeatureResult = __esri.EditedFeatureResult;
62
+ export type EditedFeatureResultEditedFeatures = __esri.EditedFeatureResultEditedFeatures;
63
+ export type FeatureLayerBaseApplyEditsEdits = __esri.FeatureLayerBaseApplyEditsEdits;
60
64
  export type locatorAddressToLocationsParams = __esri.locatorAddressToLocationsParams;
61
65
  export type locatorAddressesToLocationsParams = __esri.locatorAddressesToLocationsParams;
62
66
  export type locatorSuggestLocationsParams = __esri.locatorSuggestLocationsParams;
package/version.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * The current version of the Geocortex ArcGIS Extensions API.
3
3
  */
4
- export declare const version = "45.5.2";
4
+ export declare const version = "45.7.0";
package/version.js CHANGED
@@ -1 +1 @@
1
- export const version="45.5.2";
1
+ export const version="45.7.0";