FeatureLayer.js 23 KB

12345
  1. /*
  2. All material copyright ESRI, All Rights Reserved, unless otherwise specified.
  3. See https://js.arcgis.com/4.25/esri/copyright.txt for details.
  4. */
  5. import{_ as e}from"../chunks/tslib.es6.js";import r from"../PopupTemplate.js";import"../renderers/ClassBreaksRenderer.js";import"../renderers/DictionaryRenderer.js";import"../renderers/DotDensityRenderer.js";import"../renderers/HeatmapRenderer.js";import"../renderers/PieChartRenderer.js";import"../renderers/Renderer.js";import t from"../renderers/SimpleRenderer.js";import i from"../renderers/UniqueValueRenderer.js";import{read as o}from"../renderers/support/jsonUtils.js";import{rendererTypes as s,webSceneRendererTypes as a}from"../renderers/support/types.js";import n from"../request.js";import{symbolTypes as l,symbolTypesRenderer as p}from"../symbols.js";import{ClonableMixin as u}from"../core/Clonable.js";import d from"../core/Collection.js";import y from"../core/Error.js";import c from"../core/Handles.js";import{clone as m}from"../core/lang.js";import f from"../core/Logger.js";import{destroyMaybe as h,isSome as b}from"../core/maybe.js";import{MultiOriginJSONMixin as g}from"../core/MultiOriginJSONSupport.js";import{setDeepValue as w}from"../core/object.js";import{throwIfAbortError as j,whenOrAbort as v}from"../core/promiseUtils.js";import{sqlAnd as S}from"../core/sql.js";import{urlToObject as F,join as I}from"../core/urlUtils.js";import{property as T}from"../core/accessorSupport/decorators/property.js";import{cast as D}from"../core/accessorSupport/decorators/cast.js";import{reader as E}from"../core/accessorSupport/decorators/reader.js";import{subclass as L}from"../core/accessorSupport/decorators/subclass.js";import{writer as _}from"../core/accessorSupport/decorators/writer.js";import{createTypeReader as x}from"../core/accessorSupport/extensions/serializableProperty/reader.js";import P from"../form/FormTemplate.js";import M from"../geometry/SpatialReference.js";import q from"./Layer.js";import{MemorySource as C}from"./graphics/sources/MemorySource.js";import{APIKeyMixin as O}from"./mixins/APIKeyMixin.js";import{ArcGISService as R}from"./mixins/ArcGISService.js";import{BlendLayer as A}from"./mixins/BlendLayer.js";import{CustomParametersMixin as U}from"./mixins/CustomParametersMixin.js";import{EditBusLayer as V}from"./mixins/EditBusLayer.js";import{FeatureEffectLayer as Q}from"./mixins/FeatureEffectLayer.js";import{FeatureLayerBase as N}from"./mixins/FeatureLayerBase.js";import{FeatureReductionLayer as G}from"./mixins/FeatureReductionLayer.js";import{OperationalLayer as J}from"./mixins/OperationalLayer.js";import{OrderedLayer as $}from"./mixins/OrderedLayer.js";import{PortalLayer as W}from"./mixins/PortalLayer.js";import{PublishableLayer as B}from"./mixins/PublishableLayer.js";import{RefreshableLayer as z}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as Z}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as k}from"./mixins/TemporalLayer.js";import{titleFromUrlAndName as H,parse as K,cleanTitle as X}from"./support/arcgisLayerUrl.js";import{id as Y,labelsVisible as ee,opacityDrawingInfo as re,legendEnabled as te,listMode as ie,popupEnabled as oe,screenSizePerspectiveEnabled as se}from"./support/commonProperties.js";import{getFeatureLayerCapabilities as ae,readGlobalIdField as ne,readObjectIdField as le,addAttachment as pe,updateAttachment as ue,applyEdits as de,createQuery as ye,deleteAttachments as ce,fetchRecomputedExtents as me,queryAttachments as fe,queryObjectIds as he,queryFeatureCount as be,queryExtent as ge,queryRelatedFeatures as we,queryRelatedFeaturesCount as je,hasDataChanged as ve,geometryTypeKebabDict as Se}from"./support/featureLayerUtils.js";import Fe from"./support/FeatureTemplate.js";import Ie from"./support/FeatureType.js";import{defineFieldProperties as Te}from"./support/fieldProperties.js";import{fixRendererFields as De,fixTimeInfoFields as Ee}from"./support/fieldUtils.js";import Le from"./support/LabelClass.js";import{reader as _e}from"./support/labelingInfo.js";import xe from"./support/TimeInfo.js";import{serviceSupportsSpatialReference as Pe}from"./support/versionUtils.js";import{DataLayerSource as Me}from"./support/source/DataLayerSource.js";import{loadStyleRenderer as qe}from"../renderers/support/styleUtils.js";import Ce from"../rest/support/FeatureSet.js";import Oe from"../rest/support/Query.js";import Re from"../rest/support/TopFeaturesQuery.js";import{createPopupTemplate as Ae}from"../support/popupUtils.js";import{opacityToTransparency as Ue}from"../webdoc/support/opacityUtils.js";const Ve="FeatureLayer",Qe="esri.layers.FeatureLayer",Ne=f.getLogger(Qe);function Ge(e,r){return new y("layer:unsupported",`Layer (${e.title}, ${e.id}) of type '${e.declaredClass}' ${r}`,{layer:e})}function Je(e){return e&&e instanceof d}const $e=Te();function We(e,r,t){const i=!!t?.writeLayerSchema;return{enabled:i,ignoreOrigin:i}}let Be=class extends(N(G(Q(B(V(A($(k(Z(z(R(J(W(g(U(O(u(q)))))))))))))))))){constructor(...e){super(...e),this._handles=new c,this.charts=null,this.copyright=null,this.displayField=null,this.dynamicDataSource=null,this.fields=null,this.fieldsIndex=null,this.formTemplate=null,this.fullExtent=null,this.geometryType=null,this.hasM=void 0,this.hasZ=void 0,this.infoFor3D=null,this.isTable=!1,this.labelsVisible=!0,this.labelingInfo=null,this.legendEnabled=!0,this.objectIdField=null,this.outFields=null,this.path=null,this.popupEnabled=!0,this.popupTemplate=null,this.screenSizePerspectiveEnabled=!0,this.spatialReference=M.WGS84,this.subtypeCode=null,this.templates=null,this.timeInfo=null,this.title=null,this.sublayerTitleMode="item-title",this.type="feature",this.typeIdField=null,this.types=null,this.visible=!0}destroy(){this.source?.destroy(),this._handles=h(this._handles)}normalizeCtorArgs(e,r){return"string"==typeof e?{url:e,...r}:e}load(e){const r=b(e)?e.signal:null;if(this.portalItem?.loaded&&this.source)return this.addResolvingPromise(this.createGraphicsSource(r).then((e=>this.initLayerProperties(e)))),Promise.resolve(this);const t=this.loadFromPortal({supportedTypes:["Feature Service","Feature Collection"]},e).catch(j).then((async()=>{if(this.url&&null==this.layerId&&/FeatureServer|MapServer\/*$/i.test(this.url)){const e=await this._fetchFirstLayerId(r);null!=e&&(this.layerId=e)}if(!this.url&&!this._hasMemorySource())throw new y("feature-layer:missing-url-or-source","Feature layer must be created with either a url or a source");return this.initLayerProperties(await this.createGraphicsSource(r))})).then((()=>this.finishLoadEditablePortalLayer(e)));return this.addResolvingPromise(t),Promise.resolve(this)}readCapabilities(e,r){return r=r.layerDefinition||r,ae(e,r,this.url)}get createQueryVersion(){return this.commitProperty("definitionExpression"),this.commitProperty("dynamicDataSource"),this.commitProperty("timeExtent"),this.commitProperty("timeOffset"),this.commitProperty("geometryType"),this.commitProperty("gdbVersion"),this.commitProperty("historicMoment"),this.commitProperty("returnZ"),this.commitProperty("capabilities"),this.commitProperty("returnM"),(this._get("createQueryVersion")??0)+1}get editingEnabled(){return!(this.loaded&&!this.capabilities?.operations.supportsEditing)&&(this._isOverridden("editingEnabled")?this._get("editingEnabled"):this._hasMemorySource()||this.userHasEditingPrivileges)}set editingEnabled(e){this._overrideIfSome("editingEnabled",e)}readEditingEnabled(e,r){return this._readEditingEnabled(r,!1)}readEditingEnabledFromWebMap(e,r,t){return this._readEditingEnabled(r,!0,t)}writeEditingEnabled(e,r){this._writeEditingEnabled(e,r,!1)}writeEditingEnabledToWebMap(e,r,t,i){this._writeEditingEnabled(e,r,!0,i)}readIsTable(e,r){return"Table"===(r=r?.layerDefinition??r).type||!r.geometryType}writeIsTable(e,r,t,i){i?.writeLayerSchema&&w(t,e?"Table":"Feature Layer",r)}readGlobalIdField(e,r){return ne(r.layerDefinition||r)}readObjectIdField(e,r){return le(r.layerDefinition||r)}get parsedUrl(){const e=F(this.url);return null!=e&&(null!=this.dynamicDataSource?e.path=I(e.path,"dynamicLayer"):null!=this.layerId&&(e.path=I(e.path,this.layerId.toString()))),e}get defaultPopupTemplate(){return this.createPopupTemplate()}set renderer(e){De(e,this.fieldsIndex),this._set("renderer",e)}readRenderer(e,r,s){const a=(r=r.layerDefinition||r).drawingInfo?.renderer;if(a){const e=o(a,r,s)??void 0;return e||Ne.error("Failed to create renderer",{rendererDefinition:r.drawingInfo.renderer,layer:this,context:s}),e}if(r.defaultSymbol)return r.types&&r.types.length?new i({defaultSymbol:ze(r.defaultSymbol,r,s),field:r.typeIdField,uniqueValueInfos:r.types.map((e=>({id:e.id,symbol:ze(e.symbol,e,s)})))}):new t({symbol:ze(r.defaultSymbol,r,s)})}set source(e){const r=this._get("source");r!==e&&(Je(r)&&this._resetMemorySource(r),Je(e)&&this._initMemorySource(e),this._set("source",e))}castSource(e){return e?Array.isArray(e)||e instanceof d?new C({layer:this,items:e}):e:null}readSource(e,r){const t=Ce.fromJSON(r.featureSet);return new C({layer:this,items:t?.features??[]})}readTemplates(e,r){const t=r.editFieldsInfo,i=t&&t.creatorField,o=t&&t.editorField;return e=e&&e.map((e=>Fe.fromJSON(e))),this._fixTemplates(e,i),this._fixTemplates(e,o),e}readTitle(e,r){const t=r.layerDefinition?.name??r.name,i=r.title||r.layerDefinition&&r.layerDefinition.title;if(t){const e=this.portalItem&&this.portalItem.title;if("item-title"===this.sublayerTitleMode)return this.url?H(this.url,t):t;let r=t;if(!r&&this.url){const e=K(this.url);b(e)&&(r=e.title)}if(!r)return;return"item-title-and-service-name"===this.sublayerTitleMode&&e&&e!==r&&(r=e+" - "+r),X(r)}if("item-title"===this.sublayerTitleMode&&i)return i}readTitleFromWebMap(e,r){return r.title||r.layerDefinition&&r.layerDefinition.name}readTypeIdField(e,r){let t=(r=r.layerDefinition||r).typeIdField;if(t&&r.fields){t=t.toLowerCase();const e=r.fields.find((e=>e.name.toLowerCase()===t));e&&(t=e.name)}return t}readTypes(e,r){e=(r=r.layerDefinition||r).types;const t=r.editFieldsInfo,i=t&&t.creatorField,o=t&&t.editorField;return e&&e.map((e=>(e=Ie.fromJSON(e),this._fixTemplates(e.templates,i),this._fixTemplates(e.templates,o),e)))}readVisible(e,r){return r.layerDefinition&&null!=r.layerDefinition.defaultVisibility?!!r.layerDefinition.defaultVisibility:null!=r.visibility?!!r.visibility:void 0}async addAttachment(e,r){return pe(this,e,r,Ve)}async updateAttachment(e,r,t){return ue(this,e,r,t,Ve)}async applyEdits(e,r){return de(this,e,r)}on(e,r){return super.on(e,r)}createPopupTemplate(e){return Ae(this,e)}async createGraphicsSource(e){if(this._hasMemorySource()&&this.source)return this.source.load({signal:e});const{default:r}=await v(import("./graphics/sources/FeatureLayerSource.js"),e);return new r({layer:this}).load({signal:e})}createQuery(){const e=ye(this);e.dynamicDataSource=this.dynamicDataSource;const r=b(this.subtypeCode)?`${this.subtypeField} = ${this.subtypeCode}`:null,t=S(this.definitionExpression,r);return e.where=t||"1=1",e}async deleteAttachments(e,r){return ce(this,e,r,Ve)}async fetchRecomputedExtents(e){return me(this,e,Ve)}getFeatureType(e){const{typeIdField:r,types:t}=this;if(!r||!e)return null;const i=e.attributes?e.attributes[r]:void 0;if(null==i)return null;let o=null;return t?.some((e=>{const{id:r}=e;return null!=r&&(r.toString()===i.toString()&&(o=e),!!o)})),o}getFieldDomain(e,r){const t=r&&r.feature,i=this.getFeatureType(t);if(i){const r=i.domains&&i.domains[e];if(r&&"inherited"!==r.type)return r}return this._getLayerDomain(e)}getField(e){return this.fieldsIndex.get(e)}async queryAttachments(e,r){return fe(this,e,r,Ve)}async queryFeatures(e,r){const t=await this.load(),i=await t.source.queryFeatures(Oe.from(e)??t.createQuery(),r);if(i?.features)for(const o of i.features)o.layer=o.sourceLayer=t;return i}async queryObjectIds(e,r){return he(this,e,r,Ve)}async queryFeatureCount(e,r){return be(this,e,r,Ve)}async queryExtent(e,r){return ge(this,e,r,Ve)}async queryRelatedFeatures(e,r){return we(this,e,r,Ve)}async queryRelatedFeaturesCount(e,r){return je(this,e,r,Ve)}async queryTopFeatures(e,r){const{source:t,capabilities:i}=await this.load();if(!t.queryTopFeatures||!i?.query?.supportsTopFeaturesQuery)throw new y(Ve,"Layer source does not support queryTopFeatures capability");const o=await t.queryTopFeatures(Re.from(e),r);if(o?.features)for(const s of o.features)s.layer=s.sourceLayer=this;return o}async queryTopObjectIds(e,r){const{source:t,capabilities:i}=await this.load();if(!t.queryTopObjectIds||!i?.query.supportsTopFeaturesQuery)throw new y(Ve,"Layer source does not support queryTopObjectIds capability");return t.queryTopObjectIds(Re.from(e),r)}async queryTopFeaturesExtent(e,r){const{source:t,capabilities:i}=await this.load();if(!t.queryTopExtents||!i?.query?.supportsTopFeaturesQuery)throw new y(Ve,"Layer source does not support queryTopExtents capability");return t.queryTopExtents(Re.from(e),r)}async queryTopFeatureCount(e,r){const{source:t,capabilities:i}=await this.load();if(!t.queryTopCount||!i?.query?.supportsTopFeaturesQuery)throw new y(Ve,"Layer source does not support queryFeatureCount capability");return t.queryTopCount(Re.from(e),r)}read(e,r){const t=e.featureCollection;if(t){const e=t.layers;e&&1===e.length&&(super.read(e[0],r),null!=t.showLegend&&super.read({showLegend:t.showLegend},r))}super.read(e,r),r&&"service"===r.origin&&this.revert(["objectIdField","fields","timeInfo","spatialReference"],"service")}write(e,r){r={...r,origin:r?.origin??void 0,writeLayerSchema:r?.writeLayerSchema??this._hasMemorySource()};const{origin:t,layerContainerType:i,messages:o}=r;if(this.dynamicDataSource)return o?.push(Ge(this,"using a dynamic data source cannot be written to web scenes, web maps and feature service items")),null;if(this.isTable){if("web-scene"===t||"web-map"===t&&"tables"!==i)return o?.push(Ge(this,"using a table source cannot be written to web scenes and web maps")),null;if(this._hasMemorySource())return o?.push(Ge(this,"using an in-memory table source cannot be written to web scenes and web maps")),null}else if(this.loaded&&"web-map"===t&&"tables"===i)return o?.push(Ge(this,"using a non-table source cannot be written to tables in web maps")),null;return super.write(e,r)}clone(){if(this._hasMemorySource())throw new y(Ve,`FeatureLayer (title: ${this.title}, id: ${this.id}) created using in-memory source cannot be cloned`);return super.clone()}serviceSupportsSpatialReference(e){return!!this.loaded&&("memory"===this.source?.type||Pe(this,e))}async save(e){return(await import("./save/featureLayerUtils.js")).save(this,e)}async saveAs(e,r){return(await import("./save/featureLayerUtils.js")).saveAs(this,e,r)}_readEditingEnabled(e,r,t){let i=e.layerDefinition?.capabilities;return i?this._hasEditingCapability(i):(i=e.capabilities,r&&"web-map"===t?.origin&&!this._hasMemorySource()&&i?this._hasEditingCapability(i):void 0)}_hasEditingCapability(e){return e.toLowerCase().split(",").map((e=>e.trim())).includes("editing")}_writeEditingEnabled(e,r,t,i){if(!e){const e=this.capabilities?.operations?.supportsSync?"Query,Sync":"Query";w("layerDefinition.capabilities",e,r),t&&!i?.writeLayerSchema&&(r.capabilities=e)}}_getLayerDomain(e){const r=this.fieldsIndex.get(e);return r?r.domain:null}_fetchFirstLayerId(e){return n(this.url,{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e}).then((e=>{const r=e.data;if(r)return Array.isArray(r.layers)&&r.layers.length>0?r.layers[0].id:Array.isArray(r.tables)&&r.tables.length>0?r.tables[0].id:void 0}))}async initLayerProperties(e){return this._set("source",e),e.sourceJSON&&(this.sourceJSON=e.sourceJSON,this.read(e.sourceJSON,{origin:"service",url:this.parsedUrl})),this._verifySource(),this._verifyFields(),De(this.renderer,this.fieldsIndex),Ee(this.timeInfo,this.fieldsIndex),qe(this,{origin:"service"})}async hasDataChanged(){return ve(this)}async fetchPublishingStatus(){const e=this.source;return e?.fetchPublishingStatus?e.fetchPublishingStatus():"unavailable"}_verifyFields(){const e=this.parsedUrl?.path??"undefined";this.objectIdField||console.log("FeatureLayer: 'objectIdField' property is not defined (url: "+e+")"),this.isTable||this._hasMemorySource()||-1!==e.search(/\/FeatureServer\//i)||this.fields?.some((e=>"geometry"===e.type))||console.log("FeatureLayer: 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+")")}_fixTemplates(e,r){e&&e.forEach((e=>{const t=e.prototype&&e.prototype.attributes;t&&r&&delete t[r]}))}_verifySource(){if(this._hasMemorySource()){if(this.url)throw new y("feature-layer:mixed-source-and-url","FeatureLayer cannot be created with both an in-memory source and a url")}else if(!this.url)throw new y("feature-layer:source-or-url-required","FeatureLayer requires either a url, a valid portal item or a source")}_initMemorySource(e){e.forEach((e=>{e.layer=this,e.sourceLayer=this})),this._handles.add([e.on("after-add",(e=>{e.item.layer=this,e.item.sourceLayer=this})),e.on("after-remove",(e=>{e.item.layer=null,e.item.sourceLayer=null}))],"fl-source")}_resetMemorySource(e){e.forEach((e=>{e.layer=null,e.sourceLayer=null})),this._handles.remove("fl-source")}_hasMemorySource(){return!(this.url||!this.source)}};e([E("service","capabilities")],Be.prototype,"readCapabilities",null),e([T({json:{origins:{"portal-item":{write:!0},"web-map":{write:!0}}}})],Be.prototype,"charts",void 0),e([T({readOnly:!0})],Be.prototype,"createQueryVersion",null),e([T({json:{read:{source:"layerDefinition.copyrightText"}}})],Be.prototype,"copyright",void 0),e([T({json:{read:{source:"layerDefinition.displayField"}}})],Be.prototype,"displayField",void 0),e([T({types:l,readOnly:!0})],Be.prototype,"defaultSymbol",void 0),e([T({type:Me})],Be.prototype,"dynamicDataSource",void 0),e([T({type:Boolean})],Be.prototype,"editingEnabled",null),e([E(["portal-item","web-scene"],"editingEnabled",["layerDefinition.capabilities"])],Be.prototype,"readEditingEnabled",null),e([E("web-map","editingEnabled",["capabilities","layerDefinition.capabilities"])],Be.prototype,"readEditingEnabledFromWebMap",null),e([_(["portal-item","web-scene"],"editingEnabled",{"layerDefinition.capabilities":{type:String}})],Be.prototype,"writeEditingEnabled",null),e([_("web-map","editingEnabled",{capabilities:{type:String},"layerDefinition.capabilities":{type:String}})],Be.prototype,"writeEditingEnabledToWebMap",null),e([T({...$e.fields,json:{read:{source:"layerDefinition.fields"},origins:{service:{name:"fields"},"web-map":{write:{target:"layerDefinition.fields",overridePolicy:We}}}}})],Be.prototype,"fields",void 0),e([T($e.fieldsIndex)],Be.prototype,"fieldsIndex",void 0),e([T({type:P,json:{name:"formInfo",write:!0,origins:{"web-scene":{read:!1,write:!1}}}})],Be.prototype,"formTemplate",void 0),e([T({json:{read:{source:"layerDefinition.extent"}}})],Be.prototype,"fullExtent",void 0),e([T({json:{origins:{"web-map":{write:{target:"layerDefinition.geometryType",overridePolicy:We,writer(e,r,t){const i=e?Se.toJSON(e):null;i&&w(t,i,r)}}}},read:{source:"layerDefinition.geometryType",reader:Se.read}}})],Be.prototype,"geometryType",void 0),e([T({json:{read:{source:"layerDefinition.hasM"}}})],Be.prototype,"hasM",void 0),e([T({json:{read:{source:"layerDefinition.hasZ"}}})],Be.prototype,"hasZ",void 0),e([T(Y)],Be.prototype,"id",void 0),e([T({readOnly:!0,json:{origins:{service:{read:!0}},read:!1}})],Be.prototype,"infoFor3D",void 0),e([T({json:{origins:{"web-map":{write:{target:"layerDefinition.type"}}}}})],Be.prototype,"isTable",void 0),e([E("service","isTable",["type","geometryType"]),E("isTable",["layerDefinition.type","layerDefinition.geometryType"])],Be.prototype,"readIsTable",null),e([_("web-map","isTable")],Be.prototype,"writeIsTable",null),e([T(ee)],Be.prototype,"labelsVisible",void 0),e([T({type:[Le],json:{origins:{service:{read:{source:"drawingInfo.labelingInfo",reader:_e},write:{target:"drawingInfo.labelingInfo",enabled:!1}}},read:{source:"layerDefinition.drawingInfo.labelingInfo",reader:_e},write:{target:"layerDefinition.drawingInfo.labelingInfo"}}})],Be.prototype,"labelingInfo",void 0),e([T((()=>{const e=m(re);return e.json.origins["portal-item"]={write:{target:"layerDefinition.drawingInfo.transparency",writer(e,r,t){w(t,Ue(e),r)}}},e})())],Be.prototype,"opacity",void 0),e([T(te)],Be.prototype,"legendEnabled",void 0),e([T({type:["show","hide"],json:(()=>{const e=m(ie.json);return e.origins["portal-item"]={read:!1,write:!1},e})()})],Be.prototype,"listMode",void 0),e([E("globalIdField",["layerDefinition.globalIdField","layerDefinition.fields"])],Be.prototype,"readGlobalIdField",null),e([T({json:{origins:{"web-map":{write:{target:"layerDefinition.objectIdField",overridePolicy:We}}}}})],Be.prototype,"objectIdField",void 0),e([E("objectIdField",["layerDefinition.objectIdField","layerDefinition.fields"])],Be.prototype,"readObjectIdField",null),e([T({value:"ArcGISFeatureLayer",type:["ArcGISFeatureLayer"]})],Be.prototype,"operationalLayerType",void 0),e([T($e.outFields)],Be.prototype,"outFields",void 0),e([T({readOnly:!0})],Be.prototype,"parsedUrl",null),e([T({type:String,json:{origins:{"web-scene":{read:!0,write:!0}},read:!1}})],Be.prototype,"path",void 0),e([T(oe)],Be.prototype,"popupEnabled",void 0),e([T({type:r,json:{name:"popupInfo",write:!0}})],Be.prototype,"popupTemplate",void 0),e([T({readOnly:!0})],Be.prototype,"defaultPopupTemplate",null),e([T({types:s,json:{origins:{service:{write:{target:"drawingInfo.renderer",enabled:!1}},"web-scene":{types:a,name:"layerDefinition.drawingInfo.renderer",write:{overridePolicy:(e,r,t)=>({ignoreOrigin:t?.writeLayerSchema})}}},write:{target:"layerDefinition.drawingInfo.renderer",overridePolicy:(e,r,t)=>({ignoreOrigin:t?.writeLayerSchema})}}})],Be.prototype,"renderer",null),e([E("service","renderer",["drawingInfo.renderer","defaultSymbol"]),E("renderer",["layerDefinition.drawingInfo.renderer","layerDefinition.defaultSymbol"])],Be.prototype,"readRenderer",null),e([T((()=>{const e=m(se);return e.json.origins["portal-item"]={read:!1,write:!1},e})())],Be.prototype,"screenSizePerspectiveEnabled",void 0),e([T({clonable:!1})],Be.prototype,"source",null),e([D("source")],Be.prototype,"castSource",null),e([E("portal-item","source",["featureSet"]),E("web-map","source",["featureSet"])],Be.prototype,"readSource",null),e([T({json:{read:{source:"layerDefinition.extent.spatialReference"}}})],Be.prototype,"spatialReference",void 0),e([T({type:Number})],Be.prototype,"subtypeCode",void 0),e([T({type:[Fe]})],Be.prototype,"templates",void 0),e([E("templates",["editFieldsInfo","creatorField","editorField","templates"])],Be.prototype,"readTemplates",null),e([T({type:xe})],Be.prototype,"timeInfo",void 0),e([T()],Be.prototype,"title",void 0),e([E("service","title",["name"]),E("portal-item","title",["layerDefinition.title","layerDefinition.name","title"])],Be.prototype,"readTitle",null),e([E("web-map","title",["layerDefinition.name","title"])],Be.prototype,"readTitleFromWebMap",null),e([T({type:String})],Be.prototype,"sublayerTitleMode",void 0),e([T({json:{read:!1}})],Be.prototype,"type",void 0),e([T({type:String})],Be.prototype,"typeIdField",void 0),e([E("service","typeIdField"),E("typeIdField",["layerDefinition.typeIdField"])],Be.prototype,"readTypeIdField",null),e([T({type:[Ie]})],Be.prototype,"types",void 0),e([E("service","types",["types"]),E("types",["layerDefinition.types"])],Be.prototype,"readTypes",null),e([T({type:Boolean,json:{origins:{"portal-item":{write:{target:"layerDefinition.defaultVisibility"}}}}})],Be.prototype,"visible",void 0),e([E("portal-item","visible",["visibility","layerDefinition.defaultVisibility"])],Be.prototype,"readVisible",null),Be=e([L(Qe)],Be);const ze=x({types:p}),Ze=Be;export{Ze as default};