@vertigis/arcgis-extensions 51.5.0 → 51.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- import{__decorate as t}from"tslib";import e from"@arcgis/core/PopupTemplate";import{Hyperlink as n}from"../Hyperlink.js";import{isPopupContentExtension as i}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 h}from"../support/Serializable.js";import{Settings as l}from"../support/Settings.js";import{createIHandle as f,notifyChange as d,onWatch as m,watch as c}from"../support/observableUtils.js";import _ from"../utilities/_ReferenceCountedHandle.js";import{compare as g}from"../utilities/array.js";import{checkArg as C}from"../utilities/checkArg.js";import{getAllFieldInfos as S,getAllReferencedFieldNames as y,isPopupTemplate as v}from"../utilities/esri.js";import{isArcadeExpressionField as T,isRelationshipField as x}from"../utilities/field.js";import{objectKeys as A}from"../utilities/object.js";import{isQueryBasedRelationship as P}from"../utilities/relationships.js";import{caseInsensitiveEquals as z}from"../utilities/string.js";import{PopupContentExtension as E,_popupContentExtensionMap as w}from"./PopupContentExtension.js";let b=class extends l{popupContentExtensions;_isDefaultPopupTemplate=!1;_popupContentCollection;get _popupContent(){return null==this._popupContentCollection&&(this._popupContentCollection=this._createPopupContentCollection()),this._popupContentCollection}get hyperlinkTemplates(){return this._getCollectionSetting("hyperlinkTemplates")}get popupTemplate(){return this._getSetting("popupTemplate")}set popupTemplate(t){let n;n=t instanceof Object&&!v(t)?e.fromJSON(t):t;const i=this?._feature?.schema?.createPopupTemplate()??this?._featureSource?.schema?.createPopupTemplate();n&&i&&(n.content=n.content??i.content,n.fieldInfos=n.fieldInfos??i.fieldInfos),this._setSetting("popupTemplate",n),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.popupContentExtensions=new R(this)}get _defaultOutFields(){if(null==this.popupTemplate)return["*"];const t=S(this.popupTemplate),e=this.featureSource?.schema?.primaryKeyField;if(t&&e){const n=new Set;n.add(e);const i=this.featureSource.schema.fields.toArray().map((t=>t.name)),o=new Set([...y(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=>i.some((e=>z(e,t)))));this._featureSource.relationships.forEach((t=>{P(t)&&s.push(t.keyField)}));const r=this.featureSource?.schema?.typeIdField;return r&&!s.some((t=>z(t,r)))&&s.push(r),s.filter((t=>!(T(t)||x(t)))).forEach((t=>n.add(t))),Array.from(n.values())}return["*"]}_setFeatureSource(t){this._featureSource=t,d(this,"featureSource")}_setFeature(t){this._feature=t,d(this,"feature")}toJSON(t="all"){const e=p(this._getSerializableProperties(),this,t)||{},n=e.popupContentExtensions?.filter((t=>{const e=this.parent;return!e?.popupContentExtensions?.some((e=>e.id===t.id))}));if(e)for(const t of A(e))this.isModified(t)||delete e[t];if(n?.length&&(e.popupContentExtensions=n),!h(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 n?t:new n(t))})),this.hyperlinkTemplates.toArray().forEach((e=>{const n=this.hyperlinkTemplates.indexOf(e),i=t.findIndex((t=>this._hyperlinksAreEquivalent(t,e)));i<0?this.hyperlinkTemplates.removeAt(n):i!==n&&this.hyperlinkTemplates.reorder(e,i)}))}},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&&g(this.popupContentExtensions,t,{onNew:(t,e)=>{this.popupContentExtensions.add(i(t)?t:new E(t),e)},onMatch:(t,e,n,o)=>{i(e)||t.assignProperties(e),n!==o&&this.popupContentExtensions.reorder(t,o)},onMissing:t=>{this.popupContentExtensions.remove(t)},equals:(t,e)=>{if(!e)return!1;if(i(e))return e===t||e.id===t.id;const n=this.popupContentExtensions.indexOf(t);if(e.content&&n>-1){const t=this.popupContentExtensions.toArray();return E.matchesRef(t,n,e.content)}return t.id===e.id}})}}}}_hyperlinksAreEquivalent(t,e){if(t===e)return!0;const n=t=>t||"";return n(t.text)===n(e.text)&&n(t.url)===n(e.url)&&n(t.iconUrl)===n(e.iconUrl)&&n(t.target)===n(e.target)&&n(t.tooltip)===n(e.tooltip)}};b=t([u],b);export{b as FeatureSettings};class R 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;_onChangePopupContentHandle=new _((()=>this._featureSettings._popupContent.on("change",(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)}))));_onBeforeAddPopupContentHandle=new _((()=>this._featureSettings._popupContent.on("before-add",(t=>{this.emit("before-add",{...t,item:this._forContent(t.item),target:this})}))));_onBeforeRemovePopupContentHandle=new _((()=>this._featureSettings._popupContent.on("before-remove",(t=>{this.emit("before-remove",{...t,item:this._forContent(t.item),target:this})}))));_onBeforeChangesPopupContentHandle=new _((()=>this._featureSettings._popupContent.on("before-changes",(t=>{this.emit("before-changes",{...t,target:this})}))));_onAfterAddPopupContentHandle=new _((()=>this._featureSettings._popupContent.on("after-add",(t=>{this.emit("after-add",{...t,item:this._forContent(t.item),target:this})}))));_onAfterRemovePopupContentHandle=new _((()=>this._featureSettings._popupContent.on("after-remove",(t=>{this.emit("after-remove",{...t,item:this._forContent(t.item),target:this})}))));_onAfterChangesPopupContentHandle=new _((()=>this._featureSettings._popupContent.on("after-changes",(t=>{this.emit("after-changes",{...t,target:this})}))));constructor(t){super(),this._featureSettings=t,m(this,"length",(()=>c(this._featureSettings,"_popupContent.length",(()=>d(this,"length")),{sync:!0})))}forContent(t){if(C("content",t).isNotMissing(),this._featureSettings._popupContent.includes(t))return this._forContent(t)}add(t,n){if(C("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=w.get(t.content);if(w.set(t.content,t),e&&e!==t&&this._onRemoved(e),this._featureSettings._popupContent.includes(t.content))if(void 0===n){const n={added:[t],moved:[],removed:e?[e]:[],target:this};this.emit("change",n),this.emit("after-add",{item:t,target:this}),this.emit("after-changes",{target:this}),d(this,"length")}else this._featureSettings._popupContent.reorder(t.content,n);else this._featureSettings._popupContent.add(t.content,n)}else{this._uninitializedPopupContentExtensions.add(t);const e={added:[t],moved:[],removed:[],target:this};this.emit("change",e),this.emit("after-add",{item:t,target:this}),this.emit("after-changes",{target:this}),d(this,"length")}return this._onAdded(t),this}removeAt(t){const n=this.getItemAt(t);if(void 0!==n){if(this._popupTemplateIsInherited&&(this._featureSettings.popupTemplate=new e({content:this._featureSettings._popupContent.toArray()})),this._uninitializedPopupContentExtensions.has(n)){this._uninitializedPopupContentExtensions.delete(n);const t={added:[],moved:[],removed:[n],target:this};this.emit("change",t),this.emit("after-remove",{item:n,target:this}),this.emit("after-changes",{target:this}),d(this,"length")}else this._featureSettings._popupContent.remove(n.content);return this._onRemoved(n),n}}reorder(t,n){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,n),t}sort(t){return this._popupTemplateIsInherited&&(this._featureSettings.popupTemplate=new e({content:this._featureSettings._popupContent.toArray()})),this._featureSettings._popupContent.sort(((e,n)=>t(this._forContent(e),this._forContent(n)))),this}on(t,e){const n=[];return"change"===t?n.push(this._onChangePopupContentHandle.add()):"before-add"===t?n.push(this._onBeforeAddPopupContentHandle.add()):"before-remove"===t?n.push(this._onBeforeRemovePopupContentHandle.add()):"before-changes"===t?n.push(this._onBeforeChangesPopupContentHandle.add()):"after-add"===t?n.push(this._onAfterAddPopupContentHandle.add()):"after-remove"===t?n.push(this._onAfterRemovePopupContentHandle.add()):"after-changes"===t&&n.push(this._onAfterChangesPopupContentHandle.add()),n.push(super.on(t,e)),f(n)}_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&&(w.set(t.content,t),this._uninitializedPopupContentExtensions.delete(t));if(!w.has(t)){const e=new E({content:t});w.set(t,e),e._setFeatureSettings(this._featureSettings),this._onAdded(e)}return w.get(t)}}
1
+ import{__decorate as t}from"tslib";import e from"@arcgis/core/PopupTemplate";import{Hyperlink as n}from"../Hyperlink.js";import{isPopupContentExtension as i}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 h}from"../support/Serializable.js";import{Settings as l}from"../support/Settings.js";import{createIHandle as f,notifyChange as d,onWatch as m,watch as c}from"../support/observableUtils.js";import _ from"../utilities/_ReferenceCountedHandle.js";import{compare as g}from"../utilities/array.js";import{checkArg as C}from"../utilities/checkArg.js";import{getAllFieldInfos as S,getAllReferencedFieldNames as y,isPopupTemplate as v}from"../utilities/esri.js";import{isArcadeExpressionField as T,isRelationshipField as x}from"../utilities/field.js";import{objectKeys as A}from"../utilities/object.js";import{isQueryBasedRelationship as P}from"../utilities/relationships.js";import{caseInsensitiveEquals as z}from"../utilities/string.js";import{PopupContentExtension as E,_popupContentExtensionMap as w}from"./PopupContentExtension.js";let b=class extends l{popupContentExtensions;_isDefaultPopupTemplate=!1;_popupContentCollection;get _popupContent(){return null==this._popupContentCollection&&(this._popupContentCollection=this._createPopupContentCollection()),this._popupContentCollection}get hyperlinkTemplates(){return this._getCollectionSetting("hyperlinkTemplates")}get popupTemplate(){return this._getSetting("popupTemplate")}set popupTemplate(t){let n;n=t instanceof Object&&!v(t)?e.fromJSON(t):t;const i=this?._feature?.schema?.createPopupTemplate()??this?._featureSource?.schema?.createPopupTemplate();n&&i&&(n.content=n.content??i.content,n.fieldInfos=n.fieldInfos??i.fieldInfos),this._setSetting("popupTemplate",n),this._isDefaultPopupTemplate=!1,this.featureSource?.schema?.fieldExtensions.toArray().forEach((t=>{t._clearFieldInfoCache()}))}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.popupContentExtensions=new F(this)}get _defaultOutFields(){if(null==this.popupTemplate)return["*"];const t=S(this.popupTemplate),e=this.featureSource?.schema?.primaryKeyField;if(t&&e){const n=new Set;n.add(e);const i=this.featureSource.schema.fields.toArray().map((t=>t.name)),o=new Set([...y(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=>i.some((e=>z(e,t)))));this._featureSource.relationships.forEach((t=>{P(t)&&s.push(t.keyField)}));const r=this.featureSource?.schema?.typeIdField;return r&&!s.some((t=>z(t,r)))&&s.push(r),s.filter((t=>!(T(t)||x(t)))).forEach((t=>n.add(t))),Array.from(n.values())}return["*"]}_setFeatureSource(t){this._featureSource=t,d(this,"featureSource")}_setFeature(t){this._feature=t,d(this,"feature")}toJSON(t="all"){const e=p(this._getSerializableProperties(),this,t)||{},n=e.popupContentExtensions?.filter((t=>{const e=this.parent;return!e?.popupContentExtensions?.some((e=>e.id===t.id))}));if(e)for(const t of A(e))this.isModified(t)||delete e[t];if(n?.length&&(e.popupContentExtensions=n),!h(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 n?t:new n(t))})),this.hyperlinkTemplates.toArray().forEach((e=>{const n=this.hyperlinkTemplates.indexOf(e),i=t.findIndex((t=>this._hyperlinksAreEquivalent(t,e)));i<0?this.hyperlinkTemplates.removeAt(n):i!==n&&this.hyperlinkTemplates.reorder(e,i)}))}},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&&g(this.popupContentExtensions,t,{onNew:(t,e)=>{this.popupContentExtensions.add(i(t)?t:new E(t),e)},onMatch:(t,e,n,o)=>{i(e)||t.assignProperties(e),n!==o&&this.popupContentExtensions.reorder(t,o)},onMissing:t=>{this.popupContentExtensions.remove(t)},equals:(t,e)=>{if(!e)return!1;if(i(e))return e===t||e.id===t.id;const n=this.popupContentExtensions.indexOf(t);if(e.content&&n>-1){const t=this.popupContentExtensions.toArray();return E.matchesRef(t,n,e.content)}return t.id===e.id}})}}}}_hyperlinksAreEquivalent(t,e){if(t===e)return!0;const n=t=>t||"";return n(t.text)===n(e.text)&&n(t.url)===n(e.url)&&n(t.iconUrl)===n(e.iconUrl)&&n(t.target)===n(e.target)&&n(t.tooltip)===n(e.tooltip)}};b=t([u],b);export{b as FeatureSettings};class F 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;_onChangePopupContentHandle=new _((()=>this._featureSettings._popupContent.on("change",(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)}))));_onBeforeAddPopupContentHandle=new _((()=>this._featureSettings._popupContent.on("before-add",(t=>{this.emit("before-add",{...t,item:this._forContent(t.item),target:this})}))));_onBeforeRemovePopupContentHandle=new _((()=>this._featureSettings._popupContent.on("before-remove",(t=>{this.emit("before-remove",{...t,item:this._forContent(t.item),target:this})}))));_onBeforeChangesPopupContentHandle=new _((()=>this._featureSettings._popupContent.on("before-changes",(t=>{this.emit("before-changes",{...t,target:this})}))));_onAfterAddPopupContentHandle=new _((()=>this._featureSettings._popupContent.on("after-add",(t=>{this.emit("after-add",{...t,item:this._forContent(t.item),target:this})}))));_onAfterRemovePopupContentHandle=new _((()=>this._featureSettings._popupContent.on("after-remove",(t=>{this.emit("after-remove",{...t,item:this._forContent(t.item),target:this})}))));_onAfterChangesPopupContentHandle=new _((()=>this._featureSettings._popupContent.on("after-changes",(t=>{this.emit("after-changes",{...t,target:this})}))));constructor(t){super(),this._featureSettings=t,m(this,"length",(()=>c(this._featureSettings,"_popupContent.length",(()=>d(this,"length")),{sync:!0})))}forContent(t){if(C("content",t).isNotMissing(),this._featureSettings._popupContent.includes(t))return this._forContent(t)}add(t,n){if(C("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=w.get(t.content);if(w.set(t.content,t),e&&e!==t&&this._onRemoved(e),this._featureSettings._popupContent.includes(t.content))if(void 0===n){const n={added:[t],moved:[],removed:e?[e]:[],target:this};this.emit("change",n),this.emit("after-add",{item:t,target:this}),this.emit("after-changes",{target:this}),d(this,"length")}else this._featureSettings._popupContent.reorder(t.content,n);else this._featureSettings._popupContent.add(t.content,n)}else{this._uninitializedPopupContentExtensions.add(t);const e={added:[t],moved:[],removed:[],target:this};this.emit("change",e),this.emit("after-add",{item:t,target:this}),this.emit("after-changes",{target:this}),d(this,"length")}return this._onAdded(t),this}removeAt(t){const n=this.getItemAt(t);if(void 0!==n){if(this._popupTemplateIsInherited&&(this._featureSettings.popupTemplate=new e({content:this._featureSettings._popupContent.toArray()})),this._uninitializedPopupContentExtensions.has(n)){this._uninitializedPopupContentExtensions.delete(n);const t={added:[],moved:[],removed:[n],target:this};this.emit("change",t),this.emit("after-remove",{item:n,target:this}),this.emit("after-changes",{target:this}),d(this,"length")}else this._featureSettings._popupContent.remove(n.content);return this._onRemoved(n),n}}reorder(t,n){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,n),t}sort(t){return this._popupTemplateIsInherited&&(this._featureSettings.popupTemplate=new e({content:this._featureSettings._popupContent.toArray()})),this._featureSettings._popupContent.sort(((e,n)=>t(this._forContent(e),this._forContent(n)))),this}on(t,e){const n=[];return"change"===t?n.push(this._onChangePopupContentHandle.add()):"before-add"===t?n.push(this._onBeforeAddPopupContentHandle.add()):"before-remove"===t?n.push(this._onBeforeRemovePopupContentHandle.add()):"before-changes"===t?n.push(this._onBeforeChangesPopupContentHandle.add()):"after-add"===t?n.push(this._onAfterAddPopupContentHandle.add()):"after-remove"===t?n.push(this._onAfterRemovePopupContentHandle.add()):"after-changes"===t&&n.push(this._onAfterChangesPopupContentHandle.add()),n.push(super.on(t,e)),f(n)}_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&&(w.set(t.content,t),this._uninitializedPopupContentExtensions.delete(t));if(!w.has(t)){const e=new E({content:t});w.set(t,e),e._setFeatureSettings(this._featureSettings),this._onAdded(e)}return w.get(t)}}
@@ -1 +1 @@
1
- var e;import{__decorate as i}from"tslib";import t from"@arcgis/core/layers/support/Field";import{EntityBase as s}from"../Entity.js";import{InvalidOperationError as r}from"../InvalidOperationError.js";import{isFieldExtension as o,ItemType as f}from"../ItemType.js";import{FormatSettings as a}from"../support/FormatSettings.js";import{serializable as n}from"../support/Serializable.js";import{notifyChange as d,onWatch as l,watch as m}from"../support/observableUtils.js";import{isField as h}from"../utilities/esri.js";import{isArcadeExpressionField as _}from"../utilities/field.js";import{esriFormatToGeocortexFormat as p}from"../utilities/format/date.js";import{NumberFormat as F}from"../utilities/format/formats.js";import{esriFormatToGeocortexFormat as c}from"../utilities/format/time.js";import{deepClone as u}from"../utilities/object.js";import{caseInsensitiveEquals as g}from"../utilities/string.js";export const _fieldExtensionMap=new WeakMap;let I=e=class extends s{get field(){return this._field}get schema(){return this._schema}get fieldInfo(){if(this._fieldInfo)return this._fieldInfo;if(!this.field?.name)return;const e=this._schema?._featureSettings?.popupTemplate,i=e?.fieldInfos||[];return this._fieldInfo=i.find((e=>g(e.fieldName,this.field.name))),this._fieldInfo}format="{0}";formatSettings=new S(this);searchable=!0;_itemType=f.FIELD_EXTENSION;_field;_fieldInfo;_schema;_deferredFieldProperties;_originalRef;constructor(e){super(e);const{field:i}=e??{};h(i)?this._setField(i):"string"==typeof i?this._deferredFieldProperties={$ref:i}:i?i.$ref?this._deferredFieldProperties=i:this._setField(t.fromJSON(i)):this._setField(new t),l(this,"fieldInfo",(()=>m(this,"schema._featureSettings.featureSource",(()=>d(this,"fieldInfo")),{sync:!0}))),m(this,"schema._featureSettings",(e=>{this.formatSettings.parent=e?e.formatSettings:void 0}),{sync:!0})}static matchesRef(e,i){return o(e)?g(e.field?.name??e._deferredFieldProperties?.$ref,i.$ref??i.name):g(e.name,i.$ref??i.name)}_switchField(e){e&&this._field!==e&&(this._field=e,_fieldExtensionMap.set(e,this))}_setSchema(e){this._schema=e,this._resolveField(),d(this,"schema"),d(this,"fieldInfo")}_resolveField(){if(this._field||!this._deferredFieldProperties||!this._schema)return;const i=this._schema.fields.find((i=>e.matchesRef(i,this._deferredFieldProperties)));i&&(this._setField(i),this.assignProperties({field:this._deferredFieldProperties}),this._originalRef=this._deferredFieldProperties.$ref,delete this._deferredFieldProperties,_fieldExtensionMap.set(i,this))}_getSerializableProperties(){return{...super._getSerializableProperties(),field:{serializeModes:["initial"],serialize:()=>this.field?this._originalRef?{$ref:this._originalRef}:this._schema?.fields.includes(this._field)&&this.field.name?{$ref:this.field.name}:this.field.toJSON():this._deferredFieldProperties?u(this._deferredFieldProperties):void 0,deserialize:e=>{if(h(e)&&e!==this.field)throw new Error("Property 'field' is read-only.")}},searchable:{serializeModes:["initial"],isDefault:e=>e!==_(this._field?.name)},format:{serializeModes:["initial"],default:"{0}"},formatSettings:"initial"}}async _onInitialize(){if(this._resolveField(),!this._field){const e=this._deferredFieldProperties.$ref;throw this._schema?new r(`Field not found with name: ${e}. Field does not exist.`):new r(`Field not found with name: ${e}. Field does not have a parent schema.`)}}_setField(e){this._field=e,_(this._field?.name)&&(this.searchable=!1),d(this,"field"),d(this,"fieldInfo")}};I=e=i([n],I);export{I as FieldExtension};let S=class extends a{fieldExtension;constructor(e,i){super(i),this.fieldExtension=e,l(this,"dateFormat",(()=>m(this.fieldExtension,"fieldInfo.format.dateFormat",(()=>d(this,"dateFormat")),{sync:!0}))),l(this,"timeFormat",(()=>m(this.fieldExtension,"fieldInfo.format.dateFormat",(()=>d(this,"timeFormat")),{sync:!0}))),l(this,"fractionalDigits",(()=>m(this.fieldExtension,"fieldInfo.format.places",(()=>d(this,"fractionalDigits")),{sync:!0}))),l(this,"numberFormat",(()=>m(this.fieldExtension,"fieldInfo.format.digitSeparator",(()=>d(this,"numberFormat")),{sync:!0})))}get fractionalDigits(){const e=this.fieldExtension.fieldInfo?.format?.places;return!this.isModified("fractionalDigits")&&this.useFieldInfo&&e?e:this._getSetting("fractionalDigits")}set fractionalDigits(e){this._setSetting("fractionalDigits",e)}get numberFormat(){const e=this.fieldExtension.fieldInfo?.format?.digitSeparator;return!this.isModified("numberFormat")&&this.useFieldInfo&&e?e?F.NUMBER:F.FIXED_POINT:this._getSetting("numberFormat")}set numberFormat(e){this._setSetting("numberFormat",e)}get dateFormat(){const e=this.fieldExtension.fieldInfo?.format?.dateFormat;return!this.isModified("dateFormat")&&this.useFieldInfo&&e?p(e):this._getSetting("dateFormat")}set dateFormat(e){this._setSetting("dateFormat",e)}get timeFormat(){const e=this.fieldExtension.fieldInfo?.format?.dateFormat;return!this.isModified("timeFormat")&&this.useFieldInfo&&e&&"time-only"===this.fieldExtension.field.type?c(e):this._getSetting("timeFormat")}set timeFormat(e){this._setSetting("timeFormat",e)}};S=i([n],S);
1
+ var e;import{__decorate as i}from"tslib";import t from"@arcgis/core/layers/support/Field";import{EntityBase as s}from"../Entity.js";import{InvalidOperationError as r}from"../InvalidOperationError.js";import{isFieldExtension as o,ItemType as f}from"../ItemType.js";import{FormatSettings as a}from"../support/FormatSettings.js";import{serializable as n}from"../support/Serializable.js";import{notifyChange as d,onWatch as l,watch as m}from"../support/observableUtils.js";import{isField as h}from"../utilities/esri.js";import{isArcadeExpressionField as _}from"../utilities/field.js";import{esriFormatToGeocortexFormat as p}from"../utilities/format/date.js";import{NumberFormat as F}from"../utilities/format/formats.js";import{esriFormatToGeocortexFormat as c}from"../utilities/format/time.js";import{deepClone as u}from"../utilities/object.js";import{caseInsensitiveEquals as g}from"../utilities/string.js";export const _fieldExtensionMap=new WeakMap;let I=e=class extends s{get field(){return this._field}get schema(){return this._schema}get fieldInfo(){if(this._fieldInfo)return this._fieldInfo;if(!this.field?.name)return;const e=this._schema?._featureSettings?.popupTemplate,i=e?.fieldInfos||[];return this._fieldInfo=i.find((e=>g(e.fieldName,this.field.name))),this._fieldInfo}format="{0}";formatSettings=new S(this);searchable=!0;_itemType=f.FIELD_EXTENSION;_field;_fieldInfo;_schema;_deferredFieldProperties;_originalRef;constructor(e){super(e);const{field:i}=e??{};h(i)?this._setField(i):"string"==typeof i?this._deferredFieldProperties={$ref:i}:i?i.$ref?this._deferredFieldProperties=i:this._setField(t.fromJSON(i)):this._setField(new t),l(this,"fieldInfo",(()=>m(this,"schema._featureSettings.featureSource",(()=>d(this,"fieldInfo")),{sync:!0}))),m(this,"schema._featureSettings",(e=>{this.formatSettings.parent=e?e.formatSettings:void 0}),{sync:!0})}static matchesRef(e,i){return o(e)?g(e.field?.name??e._deferredFieldProperties?.$ref,i.$ref??i.name):g(e.name,i.$ref??i.name)}_clearFieldInfoCache(){this._fieldInfo=void 0}_switchField(e){e&&this._field!==e&&(this._field=e,_fieldExtensionMap.set(e,this))}_setSchema(e){this._schema=e,this._resolveField(),d(this,"schema"),d(this,"fieldInfo")}_resolveField(){if(this._field||!this._deferredFieldProperties||!this._schema)return;const i=this._schema.fields.find((i=>e.matchesRef(i,this._deferredFieldProperties)));i&&(this._setField(i),this.assignProperties({field:this._deferredFieldProperties}),this._originalRef=this._deferredFieldProperties.$ref,delete this._deferredFieldProperties,_fieldExtensionMap.set(i,this))}_getSerializableProperties(){return{...super._getSerializableProperties(),field:{serializeModes:["initial"],serialize:()=>this.field?this._originalRef?{$ref:this._originalRef}:this._schema?.fields.includes(this._field)&&this.field.name?{$ref:this.field.name}:this.field.toJSON():this._deferredFieldProperties?u(this._deferredFieldProperties):void 0,deserialize:e=>{if(h(e)&&e!==this.field)throw new Error("Property 'field' is read-only.")}},searchable:{serializeModes:["initial"],isDefault:e=>e!==_(this._field?.name)},format:{serializeModes:["initial"],default:"{0}"},formatSettings:"initial"}}async _onInitialize(){if(this._resolveField(),!this._field){const e=this._deferredFieldProperties.$ref;throw this._schema?new r(`Field not found with name: ${e}. Field does not exist.`):new r(`Field not found with name: ${e}. Field does not have a parent schema.`)}}_setField(e){this._field=e,_(this._field?.name)&&(this.searchable=!1),d(this,"field"),d(this,"fieldInfo")}};I=e=i([n],I);export{I as FieldExtension};let S=class extends a{fieldExtension;constructor(e,i){super(i),this.fieldExtension=e,l(this,"dateFormat",(()=>m(this.fieldExtension,"fieldInfo.format.dateFormat",(()=>d(this,"dateFormat")),{sync:!0}))),l(this,"timeFormat",(()=>m(this.fieldExtension,"fieldInfo.format.dateFormat",(()=>d(this,"timeFormat")),{sync:!0}))),l(this,"fractionalDigits",(()=>m(this.fieldExtension,"fieldInfo.format.places",(()=>d(this,"fractionalDigits")),{sync:!0}))),l(this,"numberFormat",(()=>m(this.fieldExtension,"fieldInfo.format.digitSeparator",(()=>d(this,"numberFormat")),{sync:!0})))}get fractionalDigits(){const e=this.fieldExtension.fieldInfo?.format?.places;return!this.isModified("fractionalDigits")&&this.useFieldInfo&&e?e:this._getSetting("fractionalDigits")}set fractionalDigits(e){this._setSetting("fractionalDigits",e)}get numberFormat(){const e=this.fieldExtension.fieldInfo?.format?.digitSeparator;return!this.isModified("numberFormat")&&this.useFieldInfo&&e?e?F.NUMBER:F.FIXED_POINT:this._getSetting("numberFormat")}set numberFormat(e){this._setSetting("numberFormat",e)}get dateFormat(){const e=this.fieldExtension.fieldInfo?.format?.dateFormat;return!this.isModified("dateFormat")&&this.useFieldInfo&&e?p(e):this._getSetting("dateFormat")}set dateFormat(e){this._setSetting("dateFormat",e)}get timeFormat(){const e=this.fieldExtension.fieldInfo?.format?.dateFormat;return!this.isModified("timeFormat")&&this.useFieldInfo&&e&&"time-only"===this.fieldExtension.field.type?c(e):this._getSetting("timeFormat")}set timeFormat(e){this._setSetting("timeFormat",e)}};S=i([n],S);
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 m,isDefault as f,serializable as p,shouldExcludeDefaults as c}from"../support/Serializable.js";import{Settings as _}from"../support/Settings.js";import{createIHandle as u,notifyChange as g,onWatch as F,watch as y}from"../support/observableUtils.js";import{CaseInsensitiveObservableMap as x}from"../utilities/CaseInsensitiveObservableMap.js";import{CollectionProxy as v}from"../utilities/CollectionProxy.js";import{ReadOnlyCollection as b}from"../utilities/ReadOnlyCollection.js";import S from"../utilities/_ReferenceCountedHandle.js";import{checkArg as T}from"../utilities/checkArg.js";import{compare as I}from"../utilities/collection.js";import{isFeatureType as w,isField as z}from"../utilities/esri.js";import{fieldWithArcadeXRegex as N,fieldWithRelationshipRegex as E,getArcadeExpressionFromField as A}from"../utilities/field.js";import{isValidTimeZone as j,ERR_TIME_ZONE_INVALID as C}from"../utilities/format/date.js";import{objectKeys as M}from"../utilities/object.js";import{caseInsensitiveEquals as R}from"../utilities/string.js";import{_fieldExtensionMap as H,FieldExtension as O}from"./FieldExtension.js";const B=new Map;B.set("objectid","oid"),B.set("oid","oid"),B.set("fid","oid"),B.set("shape","geometry"),B.set("shape__length","double"),B.set("shape_length","double"),B.set("shape__area","double"),B.set("shape_area","double"),B.set("area","double"),B.set("perimeter","double"),B.set("length","double"),B.set("fnode_","double"),B.set("tnode_","double"),B.set("lpoly_","double"),B.set("rpoly_","double"),B.set("cover_","integer"),B.set("cover_id","integer"),B.set("idtic","integer"),B.set("xtic","double"),B.set("ytic","double"),B.set("xmin","double"),B.set("ymin","double"),B.set("xmax","double"),B.set("ymax","double"),B.set("arc_","double"),B.set("subclass_","integer"),B.set("subclass_id","integer"),B.set("routelink","integer"),B.set("arclink","integer"),B.set("f_meas","double"),B.set("t_meas","double"),B.set("f_pos","double"),B.set("t_pos","double"),B.set("f_meas","double"),B.set("globalid","global-id"),B.set("guid","guid");export{N as fieldWithArcadeXRegex,E as fieldWithRelationshipRegex};const P=new WeakMap;let Z=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){T("timeZone",e).satisfies((e=>j(e)),C(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 K(this),this.fields=new J(this)}static createFieldInfoFromField(e){let i=!0;const t=e.name.toLowerCase();return("oid"===e.type||"geometry"===e.type||B.has(t)&&B.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=m(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 M(i))this.isModified(e)||delete i[e];if(s&&(i.fields=s),t?.length&&(i.fieldExtensions=t),!c(e)||!f(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=>z(e)?e:l.fromJSON(e)));I(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)=>R(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&&I(this.fieldExtensions,e,{onNew:(e,i)=>{this.fieldExtensions.add(d(e)?e:new O(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||!O.matchesRef(e,i.field))||e.id===i.id})}},types:{serialize:!1,deserialize:e=>{if(!e)return;const i=e.map((e=>w(e)||!e?e:o.fromJSON(e)));I(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)}}}}};Z=e=i([p],Z);export{Z as Schema};class J extends v{_schema;_fieldNameToField=new x;_expressionFields=new s;_expressionFieldsReadOnly=new b(this._expressionFields);get _expressionFieldsLength(){return this.expressionFields.length}get expressionFields(){return this._expressionFieldsReadOnly}get _popupTemplate(){return this._schema._featureSettings?this._schema._featureSettings.popupTemplate:void 0}constructor(e){super(new s),this._schema=e,F(this,"length",(()=>y(this._schema,"_fields.length",(()=>g(this,"length")),{sync:!0})));const i=[];y(this._schema,"_fields",(e=>{for(const e of i)e.remove();if(null!=e){i.push(e.on("after-add",(i=>{this._collection.add(i.item,e.indexOf(i.item)),this._fieldNameToField.set(i.item.name,i.item)})),e.on("after-remove",(e=>{this._collection.remove(e.item),this._fieldNameToField.delete(e.item.name)})));for(const i of this._collection)e.includes(i)||(this._collection.remove(i),this._fieldNameToField.delete(i.name));for(const i of e)this._collection.includes(i)||(this._collection.add(i),this._fieldNameToField.set(i.name,i))}else for(const e of this._collection.filter((e=>!this._expressionFields.includes(e))))this._collection.remove(e),this._fieldNameToField.delete(e.name)}),{sync:!0,initial:!0}),this._generateExpressionFields(),y(this._schema,"_featureSettings.popupTemplate.fieldInfos",(()=>{this._generateExpressionFields()}),{sync:!0}),y(this._schema,"_featureSettings.popupTemplate.expressionInfos",(()=>{this._generateExpressionFields()}),{sync:!0})}clone(){return new J(this._schema)}add(e,i){T("field",e).isNotMissing();const t=A(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=>R(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=>R(i.fieldName,e.name)));s||(s=new n({fieldName:e.name,label:i.title}),this._popupTemplate.fieldInfos.push(s));const o=P.get(s);P.set(s,e),null!=this._expressionFields&&(this._expressionFields.remove(o),this._expressionFields.includes(e)||(this._expressionFields.add(e),this._collection.add(e),this._fieldNameToField.set(e.name,e))),g(this,"_expressionFieldsLength")}else this._schema._fields.add(e,i);return this}removeAt(e){T("index",e).isNotMissing();const i=this.getItemAt(e);if(!i)return;if(A(i.name)){const e=this._popupTemplate.fieldInfos.findIndex((e=>R(e.fieldName,i.name)));this._popupTemplate.fieldInfos.splice(e,1),this._expressionFields.remove(i),this._collection.remove(i),this._fieldNameToField.delete(i.name),g(this,"_expressionFieldsLength")}else this._schema._fields.remove(i);return i}reorder(e,i){if(e&&this._schema._fields.includes(e))return this._schema._fields.reorder(e,i),this._collection.reorder(e,i),e}sort(e){return this._schema._fields.sort(e),this._collection.sort(((i,t)=>this._expressionFields.includes(i)&&this._expressionFields.includes(t)?0:this._expressionFields.includes(i)?1:this._expressionFields.includes(t)?-1:e(i,t))),this}findFieldByName(e){return this._fieldNameToField.get(e)}_generateExpressionFields(){if(!this._popupTemplate?.fieldInfos||!this._popupTemplate?.expressionInfos){for(const e of this._expressionFields)this._collection.remove(e),this._fieldNameToField.delete(e.name);return void this._expressionFields.removeAll()}const e=this._expressionFields.slice();for(const i of this._popupTemplate.fieldInfos){const t=A(i.fieldName);if(null==t)continue;const s=this._popupTemplate.expressionInfos.find((e=>R(e.name,t)));if(null==s)continue;let o=P.get(i);null==o&&(o=new l({name:i.fieldName,alias:i.label||s.title||i.fieldName,type:"number"===s.returnType?"double":"string",editable:!1})),this._expressionFields.includes(o)?e.remove(o):(P.set(i,o),this._expressionFields.add(o),this._collection.add(o),this._fieldNameToField.set(o.name,o),e.remove(o))}for(const i of e)this._expressionFields.remove(i),this._collection.remove(i),this._fieldNameToField.delete(i.name)}}class K extends h{get _collection(){return this._schema.fields.map((e=>this._forField(e))).concat(Array.from(this._uninitializedFieldExtensions))}_schema;_uninitializedFieldExtensions=new Set;_onChangeSchemaFieldsHandle=new S((()=>this._schema.fields.on("change",(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)}))));_onBeforeAddSchemaFieldsHandle=new S((()=>this._schema.fields.on("before-add",(e=>{this.emit("before-add",{...e,item:this._forField(e.item),target:this})}))));_onBeforeRemoveSchemaFieldsHandle=new S((()=>this._schema.fields.on("before-remove",(e=>{this.emit("before-remove",{...e,item:this._forField(e.item),target:this})}))));_onBeforeChangesSchemaFieldsHandle=new S((()=>this._schema.fields.on("before-changes",(e=>{this.emit("before-changes",{...e,target:this})}))));_onAfterAddSchemaFieldsHandle=new S((()=>this._schema.fields.on("after-add",(e=>{this.emit("after-add",{...e,item:this._forField(e.item),target:this})}))));_onAfterRemoveSchemaFieldsHandle=new S((()=>this._schema.fields.on("after-remove",(e=>{this.emit("after-remove",{...e,item:this._forField(e.item),target:this})}))));_onAfterChangesSchemaFieldsHandle=new S((()=>this._schema.fields.on("after-changes",(e=>{this.emit("after-changes",{...e,target:this})}))));constructor(e){super(),this._schema=e,F(this,"length",(()=>y(this._schema.fields,"length",(()=>g(this,"length")),{sync:!0})))}forField(e){if(T("field",e).isNotMissing(),this._schema.fields.includes(e))return this._forField(e)}add(e,i){if(T("fieldX",e).isNotMissing(),e.schema&&e.schema.fieldExtensions.remove(e),e._setSchema(this._schema),e.field){const t=H.get(e.field);if(H.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),this.emit("after-add",{item:e,target:this}),this.emit("after-changes",{target:this})}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),this.emit("after-add",{item:e,target:this}),this.emit("after-changes",{target:this})}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),this.emit("after-remove",{item:i,target:this}),this.emit("after-changes",{target:this})}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}on(e,i){const t=[];return"change"===e?t.push(this._onChangeSchemaFieldsHandle.add()):"before-add"===e?t.push(this._onBeforeAddSchemaFieldsHandle.add()):"before-remove"===e?t.push(this._onBeforeRemoveSchemaFieldsHandle.add()):"before-changes"===e?t.push(this._onBeforeChangesSchemaFieldsHandle.add()):"after-add"===e?t.push(this._onAfterAddSchemaFieldsHandle.add()):"after-remove"===e?t.push(this._onAfterRemoveSchemaFieldsHandle.add()):"after-changes"===e&&t.push(this._onAfterChangesSchemaFieldsHandle.add()),t.push(super.on(e,i)),u(t)}_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&&(H.set(e.field,e),this._uninitializedFieldExtensions.delete(e));if(!H.has(e)){const i=new O({field:e});H.set(e,i),i._setSchema(this._schema),this._onAdded(i)}return H.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 m,isDefault as f,serializable as p,shouldExcludeDefaults as c}from"../support/Serializable.js";import{Settings as _}from"../support/Settings.js";import{createIHandle as u,notifyChange as g,onWatch as F,watch as y}from"../support/observableUtils.js";import{CaseInsensitiveObservableMap as x}from"../utilities/CaseInsensitiveObservableMap.js";import{CollectionProxy as v}from"../utilities/CollectionProxy.js";import{ReadOnlyCollection as b}from"../utilities/ReadOnlyCollection.js";import S from"../utilities/_ReferenceCountedHandle.js";import{checkArg as T}from"../utilities/checkArg.js";import{compare as I}from"../utilities/collection.js";import{isFeatureType as w,isField as z}from"../utilities/esri.js";import{fieldWithArcadeXRegex as N,fieldWithRelationshipRegex as E,getArcadeExpressionFromField as A}from"../utilities/field.js";import{isValidTimeZone as j,ERR_TIME_ZONE_INVALID as C}from"../utilities/format/date.js";import{objectKeys as M}from"../utilities/object.js";import{caseInsensitiveEquals as R}from"../utilities/string.js";import{_fieldExtensionMap as H,FieldExtension as O}from"./FieldExtension.js";const B=new Map;B.set("objectid","oid"),B.set("oid","oid"),B.set("fid","oid"),B.set("shape","geometry"),B.set("shape__length","double"),B.set("shape_length","double"),B.set("shape__area","double"),B.set("shape_area","double"),B.set("area","double"),B.set("perimeter","double"),B.set("length","double"),B.set("fnode_","double"),B.set("tnode_","double"),B.set("lpoly_","double"),B.set("rpoly_","double"),B.set("cover_","integer"),B.set("cover_id","integer"),B.set("idtic","integer"),B.set("xtic","double"),B.set("ytic","double"),B.set("xmin","double"),B.set("ymin","double"),B.set("xmax","double"),B.set("ymax","double"),B.set("arc_","double"),B.set("subclass_","integer"),B.set("subclass_id","integer"),B.set("routelink","integer"),B.set("arclink","integer"),B.set("f_meas","double"),B.set("t_meas","double"),B.set("f_pos","double"),B.set("t_pos","double"),B.set("f_meas","double"),B.set("globalid","global-id"),B.set("guid","guid");export{N as fieldWithArcadeXRegex,E as fieldWithRelationshipRegex};const P=new WeakMap;let Z=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){T("timeZone",e).satisfies((e=>j(e)),C(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 K(this),this.fields=new J(this)}static createFieldInfoFromField(e){let i=!0;const t=e.name.toLowerCase();return("oid"===e.type||"geometry"===e.type||B.has(t)&&B.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=m(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 M(i))this.isModified(e)||delete i[e];if(s&&(i.fields=s),t?.length&&(i.fieldExtensions=t),!c(e)||!f(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=>z(e)?e:l.fromJSON(e)));I(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)=>R(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&&I(this.fieldExtensions,e,{onNew:(e,i)=>{this.fieldExtensions.add(d(e)?e:new O(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||!O.matchesRef(e,i.field))||e.id===i.id})}},types:{serialize:!1,deserialize:e=>{if(!e)return;const i=e.map((e=>w(e)||!e?e:o.fromJSON(e)));I(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)}}}}};Z=e=i([p],Z);export{Z as Schema};class J extends v{_schema;_fieldNameToField=new x;_expressionFields=new s;_expressionFieldsReadOnly=new b(this._expressionFields);get _expressionFieldsLength(){return this.expressionFields.length}get expressionFields(){return this._expressionFieldsReadOnly}get _popupTemplate(){return this._schema._featureSettings?this._schema._featureSettings.popupTemplate:void 0}constructor(e){super(new s),this._schema=e,F(this,"length",(()=>y(this._schema,"_fields.length",(()=>g(this,"length")),{sync:!0})));const i=[];y(this._schema,"_fields",(e=>{for(const e of i)e.remove();if(null!=e){i.push(e.on("after-add",(i=>{this._collection.add(i.item,e.indexOf(i.item)),this._fieldNameToField.set(i.item.name,i.item)})),e.on("after-remove",(e=>{this._collection.remove(e.item),this._fieldNameToField.delete(e.item.name)})));for(const i of this._collection)e.includes(i)||(this._collection.remove(i),this._fieldNameToField.delete(i.name));for(const i of e)this._collection.includes(i)||(this._collection.add(i),this._fieldNameToField.set(i.name,i))}else for(const e of this._collection.filter((e=>!this._expressionFields.includes(e))))this._collection.remove(e),this._fieldNameToField.delete(e.name)}),{sync:!0,initial:!0}),this._generateExpressionFields(),y(this._schema,"_featureSettings.popupTemplate.fieldInfos",(()=>{this._generateExpressionFields()}),{sync:!0}),y(this._schema,"_featureSettings.popupTemplate.expressionInfos",(()=>{this._generateExpressionFields()}),{sync:!0})}clone(){return new J(this._schema)}add(e,i){T("field",e).isNotMissing();const t=A(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=>R(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=>R(i.fieldName,e.name)));s||(s=new n({fieldName:e.name,label:i.title}),this._popupTemplate.fieldInfos.push(s));const o=P.get(s);P.set(s,e),null!=this._expressionFields&&(this._expressionFields.remove(o),this._expressionFields.includes(e)||(this._expressionFields.add(e),this._collection.add(e),this._fieldNameToField.set(e.name,e))),g(this,"_expressionFieldsLength")}else this._schema._fields.add(e,i);return this}removeAt(e){T("index",e).isNotMissing();const i=this.getItemAt(e);if(!i)return;if(A(i.name)){const e=this._popupTemplate.fieldInfos.findIndex((e=>R(e.fieldName,i.name)));this._popupTemplate.fieldInfos.splice(e,1),this._expressionFields.remove(i),this._collection.remove(i),this._fieldNameToField.delete(i.name),g(this,"_expressionFieldsLength")}else this._schema._fields.remove(i);return i}reorder(e,i){if(e&&this._schema._fields.includes(e))return this._schema._fields.reorder(e,i),this._collection.reorder(e,i),e}sort(e){return this._schema._fields.sort(e),this._collection.sort(((i,t)=>this._expressionFields.includes(i)&&this._expressionFields.includes(t)?0:this._expressionFields.includes(i)?1:this._expressionFields.includes(t)?-1:e(i,t))),this}findFieldByName(e){return this._fieldNameToField.get(e)}_generateExpressionFields(){if(!this._popupTemplate?.fieldInfos||!this._popupTemplate?.expressionInfos){for(const e of this._expressionFields)this._collection.remove(e),this._fieldNameToField.delete(e.name);return void this._expressionFields.removeAll()}const e=this._expressionFields.slice();for(const i of this._popupTemplate.fieldInfos){const t=A(i.fieldName);if(null==t)continue;const s=this._popupTemplate.expressionInfos.find((e=>R(e.name,t)));if(null==s)continue;let o=P.get(i);null==o&&(o=new l({name:i.fieldName,alias:i.label||s.title||i.fieldName,type:"number"===s.returnType?"double":"string",editable:!1})),this._expressionFields.includes(o)?e.remove(o):(P.set(i,o),this._expressionFields.add(o),this._collection.add(o),this._fieldNameToField.set(o.name,o),e.remove(o))}for(const i of e)this._expressionFields.remove(i),this._collection.remove(i),this._fieldNameToField.delete(i.name)}}class K extends h{get _collection(){return this._schema.fields.map((e=>this._forField(e))).concat(Array.from(this._uninitializedFieldExtensions))}_schema;_uninitializedFieldExtensions=new Set;_onChangeSchemaFieldsHandle=new S((()=>this._schema.fields.on("change",(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)}))));_onBeforeAddSchemaFieldsHandle=new S((()=>this._schema.fields.on("before-add",(e=>{this.emit("before-add",{...e,item:this._forField(e.item),target:this})}))));_onBeforeRemoveSchemaFieldsHandle=new S((()=>this._schema.fields.on("before-remove",(e=>{this.emit("before-remove",{...e,item:this._forField(e.item),target:this})}))));_onBeforeChangesSchemaFieldsHandle=new S((()=>this._schema.fields.on("before-changes",(e=>{this.emit("before-changes",{...e,target:this})}))));_onAfterAddSchemaFieldsHandle=new S((()=>this._schema.fields.on("after-add",(e=>{this.emit("after-add",{...e,item:this._forField(e.item),target:this})}))));_onAfterRemoveSchemaFieldsHandle=new S((()=>this._schema.fields.on("after-remove",(e=>{this.emit("after-remove",{...e,item:this._forField(e.item),target:this})}))));_onAfterChangesSchemaFieldsHandle=new S((()=>this._schema.fields.on("after-changes",(e=>{this.emit("after-changes",{...e,target:this})}))));constructor(e){super(),this._schema=e,F(this,"length",(()=>y(this._schema.fields,"length",(()=>g(this,"length")),{sync:!0})))}forField(e){if(T("field",e).isNotMissing(),this._schema.fields.includes(e))return this._forField(e)}add(e,i){if(T("fieldX",e).isNotMissing(),e.schema&&e.schema.fieldExtensions.remove(e),e._setSchema(this._schema),e.field){const t=H.get(e.field);if(H.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),this.emit("after-add",{item:e,target:this}),this.emit("after-changes",{target:this})}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),this.emit("after-add",{item:e,target:this}),this.emit("after-changes",{target:this})}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),this.emit("after-remove",{item:i,target:this}),this.emit("after-changes",{target:this})}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}on(e,i){const t=[];return"change"===e?t.push(this._onChangeSchemaFieldsHandle.add()):"before-add"===e?t.push(this._onBeforeAddSchemaFieldsHandle.add()):"before-remove"===e?t.push(this._onBeforeRemoveSchemaFieldsHandle.add()):"before-changes"===e?t.push(this._onBeforeChangesSchemaFieldsHandle.add()):"after-add"===e?t.push(this._onAfterAddSchemaFieldsHandle.add()):"after-remove"===e?t.push(this._onAfterRemoveSchemaFieldsHandle.add()):"after-changes"===e&&t.push(this._onAfterChangesSchemaFieldsHandle.add()),t.push(super.on(e,i)),u(t)}_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&&(H.set(e.field,e),this._uninitializedFieldExtensions.delete(e));if(!H.has(e)){const i=new O({field:e});H.set(e,i),i._setSchema(this._schema),this._onAdded(i),i.initialize()}return H.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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"