SubtypeGroupLayer.896f0295.js 16 KB

1
  1. import{_ as i,$ as n,cK as S,dN as N,a0 as E,cp as H,jU as Z,jS as z,Y as R,eE as q,aH as W,aY as $,hY as K,iR as X,de as L,a as P,i9 as ee,jL as M,jV as te,iT as re,iU as ie,iV as se,iI as ne,jR as oe,jQ as ae,ib as le,dc as ue,iZ as U,jW as de,jc as pe,ja as ye,ic as A,jX as ce,jY as he,jZ as me,hW as be,j_ as fe,jJ as ge,i5 as ve,iQ as we,ih as $e,iG as je,eB as Se,eC as Fe,eD as Oe,iN as Ie,ii as Te,am as _e,ct as C,R as xe,dg as Ce,e_ as Ee,aM as Le,g as j,bP as Pe,eI as Ge,io as ke,j$ as De,k0 as Ve,k1 as Ne,eb as Re,al as qe,k2 as Me,bY as Ue,k3 as Ae,k4 as Qe,k5 as Be,cV as Je,b5 as Ye,k6 as He,k7 as Ze,k8 as ze,k9 as We,ka as Ke,j2 as Xe,iS as et,kb as tt,im as rt,jn as G,gq as it,cu as st}from"./index.6c049565.js";let b=class extends H{constructor(){super(...arguments),this.code=null,this.defaultValues={},this.domains=null,this.name=null}readDomains(e){if(!e)return null;const t={};for(const r of Object.keys(e))t[r]=Z(e[r]);return t}writeDomains(e,t){var o;if(!e)return;const r={};for(const s of Object.keys(e))e[s]&&(r[s]=(o=e[s])==null?void 0:o.toJSON());t.domains=r}};i([n({type:Number,json:{write:!0}})],b.prototype,"code",void 0),i([n({type:Object,json:{write:!0}})],b.prototype,"defaultValues",void 0),i([n({json:{write:!0}})],b.prototype,"domains",void 0),i([S("domains")],b.prototype,"readDomains",null),i([N("domains")],b.prototype,"writeDomains",null),i([n({type:String,json:{write:!0}})],b.prototype,"name",void 0),b=i([E("esri.layers.support.Subtype")],b);const nt=b,ot=["charts","editingEnabled","formTemplate","labelsVisible","labelingInfo","legendEnabled","minScale","maxScale","opacity","popupEnabled","popupTemplate","renderer","subtypeCode","templates","title","visible"],Q={key:"type",base:de,errorContext:"renderer",typeMap:{simple:L,"unique-value":pe,"class-breaks":ye}},k=A(),D=z({types:Q});let at=0;function O(e){const t=e.json.write;return typeof t=="object"?t.ignoreOrigin=!0:e.json.write={ignoreOrigin:!0},e}function lt(e){return new L({symbol:ut(e)})}function ut(e){switch(e){case"point":case"multipoint":return me.clone();case"polyline":return he.clone();case"polygon":case"multipatch":return ce.clone();default:return null}}function dt(e,t){return!!t&&(e==null?void 0:e.type)==="unique-value"&&typeof e.field=="string"&&e.field.toLowerCase()===t.toLowerCase()&&!e.field2&&!e.field3&&!e.valueExpression}function B(e,t){var r;return e==null?null:(r=t.subtypes)==null?void 0:r.find(o=>o.code===e)}function pt(e,t){let r=null;switch(t.geometryType){case"esriGeometryPoint":case"esriGeometryMultipoint":r="point";break;case"esriGeometryPolyline":r="line";break;case"esriGeometryPolygon":case"esriGeometryMultiPatch":r="polygon";break;default:t.type,r=null}const o={},s=B(e,t);if(P(s)){const{defaultValues:a}=s;for(const u in a)o[u]=a[u]}return o[t.subtypeField]=e,new U({name:"New Feature",drawingTool:r,prototype:{attributes:o}})}const yt="esri.layers.support.SubtypeSublayer";let l=class extends R(q(W(be))){constructor(e){super(e),this.charts=null,this.editingEnabled=!0,this.fieldOverrides=null,this.fieldsIndex=null,this.formTemplate=null,this.id=`${Date.now().toString(16)}-subtype-sublayer-${at++}`,this.type="subtype-sublayer",this.labelsVisible=!0,this.labelingInfo=null,this.layerType="ArcGISFeatureLayer",this.legendEnabled=!0,this.listMode="show",this.minScale=0,this.maxScale=0,this.opacity=1,this.popupEnabled=!0,this.popupTemplate=null,this.subtypeCode=null,this.templates=null,this.title=null,this.visible=!0}writeFieldOverrides(e,t,r){const{fields:o,parent:s}=this;let a;if(o){a=[];let u=0;o.forEach(({name:p,alias:m,editable:f,visible:v})=>{var g;if(!v)return;const c=(g=s==null?void 0:s.fields)==null?void 0:g.find(F=>F.name===p);if(!c)return;const w={name:p};let y=!1;m!==c.alias&&(w.alias=m,y=!0),f!==c.editable&&(w.editable=f,y=!0),a.push(w),y&&u++}),u===0&&a.length===o.length&&(a=null)}else a=$(e);a!=null&&a.length&&K(r,a,t)}get fields(){var v,c;const{parent:e,fieldOverrides:t,subtypeCode:r}=this,o=e==null?void 0:e.fields;if(!(o!=null&&o.length))return null;const{subtypes:s,subtypeField:a}=e,u=s.find(w=>w.code===r),p=u==null?void 0:u.defaultValues,m=u==null?void 0:u.domains,f=[];for(const w of o){const y=w.clone(),{name:g}=y,F=t==null?void 0:t.find(I=>I.name===g);if(y.visible=!t||!!F,F){const{alias:I,editable:Y}=F;I&&(y.alias=I),Y===!1&&(y.editable=!1)}const J=(v=p==null?void 0:p[g])!=null?v:null;y.defaultValue=g===a?r:J;const _=(c=m==null?void 0:m[g])!=null?c:null;y.domain=g===a?null:_?_.type==="inherited"?y.domain:_.clone():null,f.push(y)}return f}get effectiveScaleRange(){const{minScale:e,maxScale:t}=this;return{minScale:e,maxScale:t}}get defaultPopupTemplate(){return this.createPopupTemplate()}set renderer(e){X(e,this.fieldsIndex),this._override("renderer",e)}get renderer(){if(this._isOverridden("renderer"))return this._get("renderer");const{parent:e}=this;return e&&!e.isTable&&e.geometryType!=="mesh"?lt(e.geometryType):null}readRendererFromService(e,t,r){var p,m,f;if(t.type==="Table")return null;const o=(p=t.drawingInfo)==null?void 0:p.renderer,s=D(o,t,r);let a;const{subtypeCode:u}=this;if(u!=null&&dt(s,t.subtypeField)){const v=(m=s.uniqueValueInfos)==null?void 0:m.find(({value:c})=>(c=typeof c=="number"?String(c):c)===String(u));v&&(a=new L({symbol:v.symbol}))}else(s==null?void 0:s.type)!=="simple"||((f=s.visualVariables)==null?void 0:f.length)||(a=s);return a}readRenderer(e,t,r){var s,a,u;const o=(a=(s=t==null?void 0:t.layerDefinition)==null?void 0:s.drawingInfo)==null?void 0:a.renderer;if(o&&!((u=o.visualVariables)!=null&&u.length))return D(o,t,r)||void 0}readTemplatesFromService(e,t){return[pt(this.subtypeCode,t)]}readTitleFromService(e,t){const r=B(this.subtypeCode,t);return P(r)?r.name:null}createPopupTemplate(e){let t=this;const{parent:r,fields:o,title:s}=this;if(r){const{displayField:a,editFieldsInfo:u,objectIdField:p}=r;t={displayField:a,editFieldsInfo:u,fields:o,objectIdField:p,title:s}}return ee(t,e)}getField(e){return this.fieldsIndex.get(e)}getFieldDomain(e){return this._getLayerDomain(e)}hasUserOverrides(){return ot.some(e=>this.originIdOf(e)===M.USER)}_getLayerDomain(e){const t=this.fieldsIndex.get(e);return t?t.domain:null}};i([n({json:{write:{ignoreOrigin:!0}}})],l.prototype,"charts",void 0),i([n({type:Boolean,nonNullable:!0,json:{name:"enableEditing",write:{ignoreOrigin:!0}}})],l.prototype,"editingEnabled",void 0),i([n({readOnly:!0,json:{name:"layerDefinition.fieldOverrides",origins:{service:{read:!1}},write:{ignoreOrigin:!0,allowNull:!0}}})],l.prototype,"fieldOverrides",void 0),i([N("fieldOverrides")],l.prototype,"writeFieldOverrides",null),i([n({...k.fields,readOnly:!0,json:{read:!1}})],l.prototype,"fields",null),i([n(k.fieldsIndex)],l.prototype,"fieldsIndex",void 0),i([n({type:te,json:{name:"formInfo",write:{ignoreOrigin:!0}}})],l.prototype,"formTemplate",void 0),i([n({type:String,readOnly:!0,json:{origins:{service:{read:!1}},write:{ignoreOrigin:!0}}})],l.prototype,"id",void 0),i([n({readOnly:!0,json:{read:!1}})],l.prototype,"type",void 0),i([n(O($(re)))],l.prototype,"labelsVisible",void 0),i([n({type:[ie],json:{name:"layerDefinition.drawingInfo.labelingInfo",origins:{service:{read:!1}},read:{reader:se},write:{ignoreOrigin:!0}}})],l.prototype,"labelingInfo",void 0),i([n({type:["ArcGISFeatureLayer"],readOnly:!0,json:{read:!1,write:{ignoreOrigin:!0}}})],l.prototype,"layerType",void 0),i([n(O($(ne)))],l.prototype,"legendEnabled",void 0),i([n({type:["show","hide"]})],l.prototype,"listMode",void 0),i([n((()=>{const e=$(oe);return e.json.origins.service.read=!1,O(e)})())],l.prototype,"minScale",void 0),i([n((()=>{const e=$(ae);return e.json.origins.service.read=!1,O(e)})())],l.prototype,"maxScale",void 0),i([n({readOnly:!0})],l.prototype,"effectiveScaleRange",null),i([n({type:Number,range:{min:0,max:1},nonNullable:!0,json:{write:{ignoreOrigin:!0}}})],l.prototype,"opacity",void 0),i([n()],l.prototype,"parent",void 0),i([n(O($(le)))],l.prototype,"popupEnabled",void 0),i([n({type:ue,json:{name:"popupInfo",write:{ignoreOrigin:!0}}})],l.prototype,"popupTemplate",void 0),i([n({readOnly:!0})],l.prototype,"defaultPopupTemplate",null),i([n({types:Q,json:{write:{target:"layerDefinition.drawingInfo.renderer",ignoreOrigin:!0}}})],l.prototype,"renderer",null),i([S("service","renderer",["drawingInfo.renderer","subtypeField","type"])],l.prototype,"readRendererFromService",null),i([S("renderer",["layerDefinition.drawingInfo.renderer"])],l.prototype,"readRenderer",null),i([n({type:Number,json:{origins:{service:{read:!1}},write:{ignoreOrigin:!0}}})],l.prototype,"subtypeCode",void 0),i([n({type:[U],json:{name:"layerDefinition.templates",write:{ignoreOrigin:!0}}})],l.prototype,"templates",void 0),i([S("service","templates",["geometryType","subtypeField","subtypes","type"])],l.prototype,"readTemplatesFromService",null),i([n({type:String,json:{write:{ignoreOrigin:!0}}})],l.prototype,"title",void 0),i([S("service","title",["subtypes"])],l.prototype,"readTitleFromService",null),i([n({type:Boolean,nonNullable:!0,json:{name:"visibility",write:{ignoreOrigin:!0}}})],l.prototype,"visible",void 0),l=i([E(yt)],l);const T=l,h="SubtypeGroupLayer",ct="esri.layers.SubtypeGroupLayer";function V(e,t){return new j("layer:unsupported",`Layer (${e.title}, ${e.id}) of type '${e.declaredClass}' ${t}`,{layer:e})}const x=A();let d=class extends fe(ge(ve(we($e(je(Se(Fe(Oe(q(Ie(Te(R(st))))))))))))){constructor(...e){super(...e),this._handles=new _e,this._sublayersCollectionChanged=!1,this.fields=null,this.fieldsIndex=null,this.outFields=null,this.subtypes=null,this.sublayers=new(C.ofType(T)),this.timeInfo=null,this.title="Layer",this.type="subtype-group",this.addHandles(xe(()=>this.sublayers,(t,r)=>this._handleSublayersChange(t,r),Ce))}destroy(){var e;(e=this.source)==null||e.destroy(),this._handles=Ee(this._handles)}normalizeCtorArgs(e,t){return typeof e=="string"?{url:e,...t}:e}load(e){const t=P(e)?e.signal:null,r=this.loadFromPortal({supportedTypes:["Feature Service"]},e).catch(Le).then(async()=>{if(!this.url)throw new j("subtype-grouplayer:missing-url-or-source","SubtypeGroupLayer must be created with either a url or a portal item");if(this.layerId==null)throw new j("subtype-grouplayer:missing-layerid","layerId is required for a SubtypeGroupLayer created with url");return this._initLayerProperties(await this.createGraphicsSource(t))}).then(()=>this.finishLoadEditablePortalLayer(e));return this.addResolvingPromise(r),Promise.resolve(this)}get createQueryVersion(){var e;return this.commitProperty("definitionExpression"),this.commitProperty("timeExtent"),this.commitProperty("timeOffset"),this.commitProperty("geometryType"),this.commitProperty("gdbVersion"),this.commitProperty("historicMoment"),this.commitProperty("returnZ"),this.commitProperty("capabilities"),this.commitProperty("returnM"),((e=this._get("createQueryVersion"))!=null?e:0)+1}get editingEnabled(){return this.loaded&&this.capabilities.operations.supportsEditing&&this.userHasEditingPrivileges}get parsedUrl(){const e=Pe(this.url);return e!=null&&this.layerId!=null&&(e.path=Ge(e.path,this.layerId.toString())),e}set source(e){this._get("source")!==e&&this._set("source",e)}readTitleFromService(e,{name:t}){return this.url?ke(this.url,t):t}async addAttachment(e,t){return De(this,e,t,h)}async updateAttachment(e,t,r){return Ve(this,e,t,r,h)}async applyEdits(e,t){return Ne(this,e,t)}on(e,t){return super.on(e,t)}async createGraphicsSource(e){const{default:t}=await Re(qe(()=>import("./FeatureLayerSource.58a80700.js"),["assets/FeatureLayerSource.58a80700.js","assets/index.6c049565.js","assets/index.cf071e35.css","assets/clientSideDefaults.e21714f1.js","assets/QueryEngineCapabilities.78217f95.js","assets/executeForIds.4e97b9d4.js"]),e);return new t({layer:this}).load({signal:e})}createQuery(){const e=Me(this),t=this.sublayers.map(r=>r.subtypeCode);return e.where=Ue(`${this.subtypeField} IN (${t.join(",")})`,this.definitionExpression),e}async deleteAttachments(e,t){return Ae(this,e,t,h)}async fetchRecomputedExtents(e){return Qe(this,e,h)}getFieldDomain(e,t){return this._getLayerDomain(e)}getField(e){return this.fieldsIndex.get(e)}async queryAttachments(e,t){return Be(this,e,t,h)}async queryFeatures(e,t){var u;const r=await this.load(),o=(u=Je.from(e))!=null?u:r.createQuery(),s=Ye(o.outFields,[]);s.includes(this.subtypeField)||(s.push(this.subtypeField),o.outFields=s);const a=await r.source.queryFeatures(o,t);if(a!=null&&a.features)for(const p of a.features)p.layer=this._findSublayerForFeature(p),p.sourceLayer=this;return a}async queryObjectIds(e,t){return He(this,e,t,h)}async queryFeatureCount(e,t){return Ze(this,e,t,h)}async queryExtent(e,t){return ze(this,e,t,h)}async queryRelatedFeatures(e,t){return We(this,e,t,h)}async queryRelatedFeaturesCount(e,t){return Ke(this,e,t,h)}write(e,t){var a;const{origin:r,layerContainerType:o,messages:s}=t;if(this.isTable){if(r==="web-scene"||r==="web-map"&&o!=="tables")return s==null||s.push(V(this,"using a table source cannot be written to web scenes and web maps")),null}else if(this.loaded&&r==="web-map"&&o==="tables")return s==null||s.push(V(this,"using a non-table source cannot be written to tables in web maps")),null;return(a=this.sublayers)!=null&&a.length?super.write(e,t):(s==null||s.push(new j("web-document-write:invalid-property",`Layer (${this.title}, ${this.id}) of type '${this.declaredClass}' has invalid value for 'sublayers' property. 'sublayers' collection should contain at least one sublayer`,{layer:this})),null)}serviceSupportsSpatialReference(e){return!!this.loaded&&Xe(this,e)}_findSublayerForFeature(e){const t=this.fieldsIndex.get(this.subtypeField),r=e.attributes[t.name];return this.sublayers.find(o=>o.subtypeCode===r)}_getLayerDomain(e){const t=this.fieldsIndex.get(e);return t?t.domain:null}async _initLayerProperties(e){var r;this._set("source",e);const{sourceJSON:t}=e;if(t&&(this.sourceJSON=t,this.read(t,{origin:"service",url:this.parsedUrl})),this.isTable)throw new j("subtype-grouplayer:unsupported-source","SubtypeGroupLayer cannot be created using a layer with table source");if(!((r=this.subtypes)!=null&&r.length))throw new j("subtype-grouplayer:missing-subtypes","SubtypeGroupLayer must be created using a layer with subtypes");this._verifyFields(),et(this.timeInfo,this.fieldsIndex)}async hasDataChanged(){return tt(this)}_verifyFields(){var t,r,o;const e=(r=(t=this.parsedUrl)==null?void 0:t.path)!=null?r:"undefined";this.objectIdField||console.log("SubtypeGroupLayer: 'objectIdField' property is not defined (url: "+e+")"),this.isTable||e.search(/\/FeatureServer\//i)!==-1||((o=this.fields)==null?void 0:o.some(s=>s.type==="geometry"))||console.log("SubtypeGroupLayer: unable to find field of type 'geometry' in the layer 'fields' list. If you are using a map service layer, features will not have geometry (url: "+e+")")}_handleSublayersChange(e,t){t&&(t.forEach(r=>{r.parent=null}),this.handles.remove("sublayers-owner")),e&&(e.forEach(r=>{r.parent=this}),this._sublayersCollectionChanged=!1,this.handles.add([e.on("after-add",({item:r})=>{r.parent=this}),e.on("after-remove",({item:r})=>{r.parent=null}),e.on("after-changes",()=>{this._sublayersCollectionChanged=!0})],"sublayers-owner"))}};i([n({readOnly:!0})],d.prototype,"createQueryVersion",null),i([n({type:Boolean,readOnly:!0})],d.prototype,"editingEnabled",null),i([n({...x.fields,readOnly:!0,json:{origins:{service:{read:!0}},read:!1}})],d.prototype,"fields",void 0),i([n(x.fieldsIndex)],d.prototype,"fieldsIndex",void 0),i([n(rt)],d.prototype,"id",void 0),i([n({type:["show","hide","hide-children"]})],d.prototype,"listMode",void 0),i([n({value:"SubtypeGroupLayer",type:["SubtypeGroupLayer"]})],d.prototype,"operationalLayerType",void 0),i([n(x.outFields)],d.prototype,"outFields",void 0),i([n({readOnly:!0})],d.prototype,"parsedUrl",null),i([n()],d.prototype,"source",null),i([n({type:[nt],readOnly:!0,json:{read:!1,origins:{service:{read:!0}}}})],d.prototype,"subtypes",void 0),i([n({type:C.ofType(T),json:{origins:{service:{read:{source:"subtypes",reader:(e,t,r)=>{const o=e.map(({code:s})=>{const a=new T({subtypeCode:s});return a.read(t,r),a});return new(C.ofType(T))(o)}}}},name:"layers",write:{overridePolicy(e,t,r){const o=this.originOf("sublayers"),s=M.PORTAL_ITEM;let a=!0;if(G(o)===s&&G(r.origin)>s){const u=e.some(p=>p.hasUserOverrides());a=this._sublayersCollectionChanged||u}return{enabled:a,ignoreOrigin:!0}}}}})],d.prototype,"sublayers",void 0),i([n({type:it})],d.prototype,"timeInfo",void 0),i([n({json:{origins:{"portal-item":{write:{ignoreOrigin:!0,writerEnsuresNonNull:!0}}}}})],d.prototype,"title",void 0),i([S("service","title",["name"])],d.prototype,"readTitleFromService",null),i([n({json:{read:!1}})],d.prototype,"type",void 0),d=i([E(ct)],d);const mt=d;export{mt as default};