@vertigis/arcgis-extensions 48.3.4 → 48.4.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.
- package/data/FeatureSettings.d.ts +2 -2
- package/data/FeatureSettings.js +1 -1
- package/data/FeatureSourceBase.js +1 -1
- package/data/FieldExtension.d.ts +1 -1
- package/data/PopupContentExtension.d.ts +1 -1
- package/data/Schema.js +1 -1
- package/docs/html/assets/navigation.js +1 -1
- package/docs/html/assets/search.js +1 -1
- package/docs/html/classes/data_FeatureList.FeatureList.html +1 -1
- package/docs/html/classes/data_FeatureSourceBase.RelationshipCollection.html +1 -1
- package/docs/html/classes/mapping_ArcGISSublayerExtension.ArcGISSublayerRelationshipCollection.html +1 -1
- package/docs/html/classes/mapping_GroupLayerExtension.GroupLayerExtensionCollection.html +1 -1
- package/docs/html/classes/mapping_SubtypeGroupLayerExtension.SubtypeGroupLayerRelationshipCollection.html +1 -1
- package/docs/html/classes/mapping_SubtypeSublayerExtension.SubtypeSublayerRelationshipCollection.html +1 -1
- package/docs/html/classes/mapping_WMSLayerExtension.WMSLayerExtension.html +4 -4
- package/docs/html/classes/mapping__LayerExtensionCollectionImpl.LayerExtensionCollectionImpl.html +1 -1
- package/docs/html/classes/mapping__SublayerExtension.SubSublayerExtensionCollection.html +1 -1
- package/docs/html/classes/mapping_support_ArrayWrappedCollection.ArrayWrappedCollection.html +1 -1
- package/docs/html/classes/mapping_support__LayerExtensionCollection.LayerExtensionCollectionBase.html +1 -1
- package/docs/html/classes/mapping_support__SublayerExtensionCollection.SublayerExtensionCollectionBase.html +1 -1
- package/docs/html/classes/support_InitializableCollectionProxy.InitializableCollectionProxy.html +1 -1
- package/docs/html/classes/support_ReadOnlyInitializableCollection.ReadOnlyInitializableCollection.html +1 -1
- package/docs/html/classes/support__ArcGISRelationshipCollection.ArcGISRelationshipCollection.html +1 -1
- package/docs/html/classes/tasks_identify_IdentifyProviderBase.IdentifyProviderBase.html +1 -1
- package/docs/html/classes/tasks_identify_WMSLayerFeatureInfoIdentifyProvider.WMSLayerFeatureInfoIdentifyProvider.html +62 -0
- package/docs/html/classes/utilities_CollectionProxy.CollectionProxy.html +1 -1
- package/docs/html/classes/utilities_CopyOnWriteCollection.CopyOnWriteCollection.html +1 -1
- package/docs/html/classes/utilities_MapTransformCollection.MapTransformCollection.html +1 -1
- package/docs/html/classes/utilities_ReadOnlyCollection.ReadOnlyCollection.html +1 -1
- package/docs/html/functions/mapping_support_ogc.wfsFeatureCollectionToFeatures.html +2 -2
- package/docs/html/functions/utilities_array.groupBy.html +2 -2
- package/docs/html/functions/utilities_asyncIterable.find.html +2 -2
- package/docs/html/functions/utilities_iterable.map.html +2 -2
- package/docs/html/functions/utilities_object.filter.html +2 -2
- package/docs/html/functions/utilities_promise.each.html +3 -33
- package/docs/html/functions/utilities_promise.map.html +3 -51
- package/docs/html/functions/utilities_promise.parallelEach.html +3 -14
- package/docs/html/functions/utilities_promise.reduce.html +4 -60
- package/docs/html/functions/utilities_uri.isRelativeUri.html +3 -1
- package/docs/html/hierarchy.html +1 -1
- package/docs/html/modules/support_esri.html +2 -0
- package/docs/html/modules/tasks_identify_WMSLayerFeatureInfoIdentifyProvider.html +2 -0
- package/docs/html/modules/tasks_identify_defaultProviders.html +2 -1
- package/docs/html/modules.html +1 -0
- package/docs/html/types/support_esri.FeatureEditResultError.html +1 -0
- package/docs/html/types/support_esri.RequestResponse.html +1 -0
- package/docs/html/variables/utilities_scaleRanges.wellKnownScaleRanges.html +1 -1
- package/docs/html/variables/version.version.html +1 -1
- package/json/WMSLayerJson.d.ts +1 -1
- package/mapping/WMSLayerExtension.d.ts +1 -0
- package/mapping/WMSLayerExtension.js +1 -1
- package/mapping/support/ogc.d.ts +1 -1
- package/mapping/support/ogc.js +1 -1
- package/package.json +1 -1
- package/support/Settings.d.ts +2 -2
- package/support/esri.d.ts +2 -0
- package/tasks/geocoding/Geocoder.d.ts +1 -1
- package/tasks/identify/IdentifyService.js +1 -1
- package/tasks/identify/WMSLayerFeatureInfoIdentifyProvider.d.ts +38 -0
- package/tasks/identify/WMSLayerFeatureInfoIdentifyProvider.js +1 -0
- package/tasks/identify/defaultProviders.d.ts +1 -0
- package/tasks/identify/defaultProviders.js +1 -1
- package/utilities/CollectionProxy.d.ts +7 -1
- package/utilities/CollectionProxy.js +1 -1
- package/utilities/_gml.js +1 -1
- package/utilities/_ogc.d.ts +1 -1
- package/utilities/array.d.ts +1 -1
- package/utilities/asyncIterable.d.ts +1 -1
- package/utilities/iterable.d.ts +1 -1
- package/utilities/object.d.ts +1 -1
- package/utilities/promise.d.ts +5 -194
- package/utilities/promise.js +1 -1
- package/utilities/scaleRanges.d.ts +2 -2
- package/utilities/scaleRanges.js +1 -1
- package/utilities/uri.d.ts +3 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
|
@@ -90,8 +90,8 @@ export declare class FeatureSettings extends Settings<FeatureSettingsProperties>
|
|
|
90
90
|
* The template for displaying content in a pop-up when the feature is
|
|
91
91
|
* selected.
|
|
92
92
|
*/
|
|
93
|
-
get popupTemplate(): PopupTemplate;
|
|
94
|
-
set popupTemplate(value: PopupTemplate);
|
|
93
|
+
get popupTemplate(): PopupTemplate | undefined;
|
|
94
|
+
set popupTemplate(value: PopupTemplate | undefined);
|
|
95
95
|
/**
|
|
96
96
|
* Whether all related records should be shown, even if not found configured
|
|
97
97
|
* in the web map popup.
|
package/data/FeatureSettings.js
CHANGED
|
@@ -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
|
|
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(){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/FieldExtension.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ export interface FieldExtensionProperties extends EntityBaseProperties {
|
|
|
25
25
|
/**
|
|
26
26
|
* The Esri Field object being extended.
|
|
27
27
|
*/
|
|
28
|
-
field?: Field | FieldProperties | string;
|
|
28
|
+
field?: Field | FieldProperties | string | null;
|
|
29
29
|
/**
|
|
30
30
|
* Whether the field is searchable or not.
|
|
31
31
|
*/
|
|
@@ -13,7 +13,7 @@ export interface PopupContentExtensionProperties extends EntityBaseProperties {
|
|
|
13
13
|
/**
|
|
14
14
|
* The ESRI Content instance to be extended.
|
|
15
15
|
*/
|
|
16
|
-
content?: Content | ContentProperties;
|
|
16
|
+
content?: Content | ContentProperties | null;
|
|
17
17
|
/**
|
|
18
18
|
* Whether the Content is visible when being displayed in a summary view.
|
|
19
19
|
*/
|
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)}}
|
|
@@ -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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"
|