Custom Gis Application with Arcgis Javascript API with modern layouting
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

42 lines
20 KiB

// All material copyright Esri, All Rights Reserved, unless otherwise specified.
// See https://js.arcgis.com/4.30/esri/copyright.txt for details.
//>>built
define("../chunks/tslib.es6 ../config ../geometry ../Graphic ../PopupTemplate ../renderers/ClassBreaksRenderer ../renderers/DictionaryRenderer ../renderers/DotDensityRenderer ../renderers/HeatmapRenderer ../renderers/PieChartRenderer ../renderers/Renderer ../renderers/SimpleRenderer ../renderers/UniqueValueRenderer ../renderers/support/jsonUtils ../core/Logger ../core/Collection ../core/Error ../core/MultiOriginJSONSupport ../core/object ../core/promiseUtils ../core/reactiveUtils ../core/unitUtils ../core/urlUtils ../core/accessorSupport/decorators/property ../core/has ../core/RandomLCG ../core/accessorSupport/decorators/reader ../core/accessorSupport/decorators/subclass ../core/accessorSupport/decorators/writer ../core/accessorSupport/originUtils ../geometry/Extent ../geometry/projection ../geometry/support/spatialReferenceUtils ./Layer ./mixins/BlendLayer ./mixins/OperationalLayer ./mixins/PortalLayer ./mixins/ScaleRangeLayer ./support/arcgisLayerUrl ./support/RouteSymbols ../portal/Portal ../portal/PortalItem ../portal/support/portalItemUtils ../rest/networkService ../rest/route ../rest/support/DirectionLine ../rest/support/DirectionPoint ../rest/support/PointBarrier ../rest/support/PolygonBarrier ../rest/support/PolylineBarrier ../rest/support/RouteInfo ../rest/support/RouteParameters ../rest/support/RouteSettings ../rest/support/Stop ../geometry/SpatialReference ../geometry/Multipoint".split(" "),
function(h,M,g,X,Y,Ga,Ha,Ia,Ja,Ka,La,Ma,Na,Z,N,u,v,aa,ba,ca,da,ea,fa,r,Oa,Pa,w,ha,ia,ja,ka,O,P,la,ma,na,oa,pa,qa,Q,ra,sa,ta,ua,va,F,G,B,C,D,H,wa,xa,E,z,ya){function I(a){return a.length?a:null}function J(a){switch(a){case "esriGeometryPoint":return{type:"esriSMS",style:"esriSMSCircle",size:12,color:[0,0,0,0],outline:J("esriGeometryPolyline")};case "esriGeometryPolyline":return{type:"esriSLS",style:"esriSLSSolid",width:1,color:[0,0,0,0]};case "esriGeometryPolygon":return{type:"esriSFS",style:"esriSFSNull",
outline:J("esriGeometryPolyline")}}}function za(a,b,c){const f=b.networkDataset?.networkAttributes?.filter(({usageType:e})=>"cost"===e)??[],m=c.travelMode??b.defaultTravelMode;if(null==m)N.getLogger("esri.layers.RouteLayer").warn("route-layer:missing-travel-mode","The routing service must have a default travel mode or one must be specified in the route parameter.");else{var {timeAttributeName:k,distanceAttributeName:n}=m,d=f.find(({name:e})=>e===k),t=f.find(({name:e})=>e===n),l=c.travelMode?.impedanceAttributeName??
c.impedanceAttribute??b.impedance;d=d?.units;t=t?.units;if(!d||!t)throw new v("routelayer:unknown-impedance-units","the units of either the distance or time impedance are unknown");var x=c.directionsLanguage??b.directionsLanguage,p=c.accumulateAttributes??b.accumulateAttributeNames??[],y=new Set(f.filter(({name:e})=>e===k||e===n||e===l||null!=e&&p.includes(e)).map(({name:e})=>e));b=e=>{for(const R in e)y.has(R)||delete e[R]};for(var q of a.pointBarriers)null!=q.costs&&(q.addedCost=q.costs[l]??0,b(q.costs));
for(const e of a.polygonBarriers)null!=e.costs&&(e.scaleFactor=e.costs[l]??1,b(e.costs));for(const e of a.polylineBarriers)null!=e.costs&&(e.scaleFactor=e.costs[l]??1,b(e.costs));({routeInfo:q}=a);var {findBestSequence:K,preserveFirstStop:Aa,preserveLastStop:Ba,startTimeIsUTC:Ca,timeWindowsAreUTC:Da}=c;q.analysisSettings=new xa({accumulateAttributes:p,directionsLanguage:x,findBestSequence:K,preserveFirstStop:Aa,preserveLastStop:Ba,startTimeIsUTC:Ca,timeWindowsAreUTC:Da,travelMode:m});q.totalDuration=
A(q.totalCosts?.[k]??0,d);q.totalDistance=L(q.totalCosts?.[n]??0,t);q.totalLateDuration=A(q.totalViolations?.[k]??0,d);q.totalWaitDuration=A(q.totalWait?.[k]??0,d);null!=q.totalCosts&&b(q.totalCosts);null!=q.totalViolations&&b(q.totalViolations);null!=q.totalWait&&b(q.totalWait);for(const e of a.stops)null!=e.serviceCosts&&(e.serviceDuration=A(e.serviceCosts[k]??0,d),e.serviceDistance=L(e.serviceCosts[n]??0,t),b(e.serviceCosts)),null!=e.cumulativeCosts&&(e.cumulativeDuration=A(e.cumulativeCosts[k]??
0,d),e.cumulativeDistance=L(e.cumulativeCosts[n]??0,t),b(e.cumulativeCosts)),null!=e.violations&&(e.lateDuration=A(e.violations[k]??0,d),b(e.violations)),null!=e.wait&&(e.waitDuration=A(e.wait[k]??0,d),b(e.wait))}}async function S(a){const b=z.WGS84;await O.initializeProjection(a.spatialReference,b);return O.project(a,b)}function A(a,b){switch(b){case "seconds":return a/60;case "hours":return 60*a;case "days":return 1440*a;default:return a}}function L(a,b){return"decimal-degrees"===b||"points"===
b||"unknown"===b?a:ea.convertUnit(a,b,"meters")}const Ea=u.ofType(F),Fa=u.ofType(G),T=u.ofType(B),U=u.ofType(C),V=u.ofType(D),W=u.ofType(E);g=class extends ma.BlendLayer(pa.ScaleRangeLayer(na.OperationalLayer(oa.PortalLayer(aa.MultiOriginJSONMixin(la))))){constructor(a){super(a);this._featureCollection=this._cachedServiceDescription=null;this._type="Feature Collection";this.defaultSymbols=new Q;this.directionPoints=this.directionLines=null;this.featureCollectionType="route";this.legendEnabled=!1;
this.minScale=this.maxScale=0;this.pointBarriers=new T;this.polygonBarriers=new U;this.polylineBarriers=new V;this.routeInfo=null;this.spatialReference=z.WGS84;this.stops=new W;this.type="route";a=()=>{this._setStopSymbol(this.stops)};this.addHandles(da.on(()=>this.stops,"change",a,{sync:!0,onListenerAdd:a}))}writeFeatureCollectionWebmap(a,b,c,f){a=[this._writePolygonBarriers(),this._writePolylineBarriers(),this._writePointBarriers(),this._writeRouteInfo(),this._writeDirectionLines(),this._writeDirectionPoints(),
this._writeStops()].filter(m=>!!m);c=a.map((m,k)=>k);ba.setDeepValue("web-map"===f.origin?"featureCollection.layers":"layers",a,b);b.opacity=this.opacity;b.visibility=this.visible;b.visibleLayers=c}readDirectionLines(a,b){return this._getNetworkFeatures(b,"DirectionLines",c=>F.fromGraphic(c))}readDirectionPoints(a,b){return this._getNetworkFeatures(b,"DirectionPoints",c=>G.fromGraphic(c))}get fullExtent(){var a=new ka({xmin:-180,ymin:-90,xmax:180,ymax:90,spatialReference:z.WGS84});if(null!=this.routeInfo?.geometry)return this.routeInfo.geometry.extent??
a;if(null==this.stops)return a;const b=this.stops.filter(f=>null!=f.geometry);if(2>b.length)return a;const {spatialReference:c}=b.at(0).geometry;if(null==c)return a;a=b.toArray().map(f=>{f=f.geometry;return[f.x,f.y]});return(new ya({points:a,spatialReference:c})).extent}readMaxScale(a,b){return("layers"in b?b.layers:b.featureCollection?.layers)?.find(c=>null!=c.layerDefinition.maxScale)?.layerDefinition.maxScale??0}readMinScale(a,b){return("layers"in b?b.layers:b.featureCollection?.layers)?.find(c=>
null!=c.layerDefinition.minScale)?.layerDefinition.minScale??0}readPointBarriers(a,b){return this._getNetworkFeatures(b,"Barriers",c=>B.fromGraphic(c))}readPolygonBarriers(a,b){return this._getNetworkFeatures(b,"PolygonBarriers",c=>C.fromGraphic(c))}readPolylineBarriers(a,b){return this._getNetworkFeatures(b,"PolylineBarriers",c=>D.fromGraphic(c))}readRouteInfo(a,b){return this._getNetworkFeatures(b,"RouteInfo",c=>H.fromGraphic(c)).at(0)??null}readSpatialReference(a,b){a="layers"in b?b.layers:b.featureCollection?.layers;
if(!a?.length)return z.WGS84;const {layerDefinition:c,featureSet:f}=a[0];return z.fromJSON(f.features[0]?.geometry?.spatialReference??f.spatialReference??c.spatialReference??c.extent.spatialReference??P.wgs84)}readStops(a,b){return this._getNetworkFeatures(b,"Stops",c=>E.fromGraphic(c),c=>this._setStopSymbol(c))}get title(){return this.routeInfo?.name??"Route"}set title(a){this._overrideIfSome("title",a)}get url(){return M.routeServiceUrl}set url(a){null==a?this._set("url",M.routeServiceUrl):this._set("url",
qa.sanitizeUrl(a,N.getLogger("esri.layers.RouteLayer")))}load(a){this.addResolvingPromise(this.loadFromPortal({supportedTypes:["Feature Collection"]},a));return Promise.resolve(this)}removeAll(){this.removeResult();this.pointBarriers.removeAll();this.polygonBarriers.removeAll();this.polylineBarriers.removeAll();this.stops.removeAll()}removeResult(){null!=this.directionLines&&(this.directionLines.removeAll(),this._set("directionLines",null));null!=this.directionPoints&&(this.directionPoints.removeAll(),
this._set("directionPoints",null));null!=this.routeInfo&&this._set("routeInfo",null)}async save(){await this.load();const {fullExtent:a,portalItem:b}=this;if(!b)throw new v("routelayer:portal-item-not-set","save() requires to the layer to have a portal item");if(!b.id)throw new v("routelayer:portal-item-not-saved","Please use saveAs() first to save the routelayer");if("Feature Collection"!==b.type)throw new v("routelayer:portal-item-wrong-type",'Portal item needs to have type "Feature Collection"');
if(null==this.routeInfo)throw new v("routelayer:route-unsolved","save() requires a solved route");var {portal:c}=b;await c.signIn();c.user||await b.reload();const {itemUrl:f,itemControl:m}=b;if("admin"!==m&&"update"!==m)throw new v("routelayer:insufficient-permissions","To save this layer, you need to be the owner or an administrator of your organization");const k=f?fa.urlToObject(f):void 0;c=this.write(void 0,{messages:[],origin:"portal-item",portal:c,url:k,writtenProperties:[]});b.extent=await S(a);
b.title=this.title;await b.update({data:c});return b}async saveAs(a,b={}){await this.load();if(null==this.routeInfo)throw new v("routelayer:route-unsolved","saveAs() requires a solved route");a=sa.from(a).clone();a.extent??(a.extent=await S(this.fullExtent));a.id=null;a.portal??(a.portal=ra.getDefault());a.title??(a.title=this.title);a.type="Feature Collection";a.typeKeywords=["Data","Feature Collection",ta.typeKeyword.MULTI_LAYER,"Route Layer"];const {portal:c}=a,f={messages:[],origin:"portal-item",
portal:c,url:null,writtenProperties:[]};await c.signIn();b=b?.folder;const m=this.write(void 0,f);await c.user?.addItem({item:a,folder:b,data:m});this.portalItem=a;ja.updateOrigins(f);return f.portalItem=a}async solve(a,b){var c=a?.stops??this.stops;const f=a?.pointBarriers??I(this.pointBarriers),m=a?.polylineBarriers??I(this.polylineBarriers),k=a?.polygonBarriers??I(this.polygonBarriers);if(null==c)throw new v("routelayer:undefined-stops","the route layer must have stops defined in the route parameters.");
if(("esri.rest.support.FeatureSet"===c.declaredClass||"esri.rest.support.NetworkFeatureSet"===c.declaredClass)&&2>c.features.length||u.isCollection(c)&&2>c.length)throw new v("routelayer:insufficent-stops","the route layer must have two or more stops to solve a route.");if(u.isCollection(c))for(var n of c)n.routeName=null;const d=this.url;n=await this._getServiceDescription(d,a?.apiKey,b);const t=a?.travelMode??n.defaultTravelMode,l=a?.accumulateAttributes??[];null!=t&&(l.push(t.distanceAttributeName),
t.timeAttributeName&&l.push(t.timeAttributeName));c={accumulateAttributes:l,directionsOutputType:"featuresets",ignoreInvalidLocations:!0,pointBarriers:f,polylineBarriers:m,polygonBarriers:k,preserveFirstStop:!0,preserveLastStop:!0,returnBarriers:!!f,returnDirections:!0,returnPolygonBarriers:!!k,returnPolylineBarriers:!!m,returnRoutes:!0,returnStops:!0,stops:c};a=wa.from(a??{});a.set(c);let x;try{x=await va.solve(d,a,b)}catch(p){throw ca.isAbortError(p)?p:new v("routelayer:failed-route-request","the routing request failed",
{error:p});}b=this._toRouteLayerSolution(x);this._isOverridden("title")||(this.title=b.routeInfo.name??"Route");za(b,n,a);return b}update(a){const {stops:b,directionLines:c,directionPoints:f,pointBarriers:m,polylineBarriers:k,polygonBarriers:n,routeInfo:d}=a;this.set({stops:b,pointBarriers:m,polylineBarriers:k,polygonBarriers:n});this._set("directionLines",c);this._set("directionPoints",f);this._set("routeInfo",d);null!=d.geometry&&(this.spatialReference=d.geometry.spatialReference)}_getNetworkFeatures(a,
b,c,f){a=("layers"in a?a.layers:a.featureCollection?.layers)?.find(p=>p.layerDefinition.name===b);if(null==a)return new u;const {layerDefinition:m,popupInfo:k,featureSet:n}=a;a=m.drawingInfo.renderer;const {features:d}=n,t=n.spatialReference??m.spatialReference??m.extent.spatialReference??P.wgs84,l=a&&Z.read(a),x=z.fromJSON(t);a=d.map(p=>{const y=X.fromJSON(p);null!=y.geometry&&null!=p.geometry&&null==p.geometry.spatialReference&&(y.geometry.spatialReference=x);p=c(y);p.symbol??(p.symbol=l?.getSymbol(y)??
this._getNetworkSymbol(b));p.popupTemplate??(p.popupTemplate=k&&Y.fromJSON(k));return p});f&&a.some(({symbol:p})=>!p)&&f(a);return new u(a)}_getNetworkSymbol(a){switch(a){case "Barriers":return this.defaultSymbols.pointBarriers;case "DirectionPoints":return this.defaultSymbols.directionPoints;case "DirectionLines":return this.defaultSymbols.directionLines;case "PolylineBarriers":return this.defaultSymbols.polylineBarriers;case "PolygonBarriers":return this.defaultSymbols.polygonBarriers;case "RouteInfo":return this.defaultSymbols.routeInfo;
case "Stops":return null}}async _getServiceDescription(a,b,c){if(null!=this._cachedServiceDescription&&this._cachedServiceDescription.url===a)return this._cachedServiceDescription.serviceDescription;b=await ua.fetchServiceDescription(a,b,c);this._cachedServiceDescription={serviceDescription:b,url:a};return b}_setStopSymbol(a){if(a&&0!==a.length&&null!=this.defaultSymbols.stops&&!a.every(({symbol:l})=>null!=l)){var {first:b,last:c,middle:f,unlocated:m,waypoint:k,break:n}=this.defaultSymbols.stops;
if(null==this.routeInfo||1===a.length)a.forEach((l,x)=>{switch(x){case 0:l.symbol=b;break;case a.length-1:l.symbol=c;break;default:l.symbol=f}});else{var d=a.map(({sequence:l})=>l).filter(l=>null!=l),t=Math.min(...d);d=Math.max(...d);for(const l of a)l.symbol=l.sequence===t?b:l.sequence===d?c:"ok"!==l.status&&"not-located-on-closest"!==l.status?m:"waypoint"===l.locationType?k:"break"===l.locationType?n:f}}}_toRouteLayerSolution(a){var b=a.routeResults[0].stops?.map(d=>E.fromJSON(d.toJSON()));this._setStopSymbol(b);
b=new W(b);const c=new U(a.polygonBarriers?.map(d=>{d=C.fromJSON(d.toJSON());d.symbol=this.defaultSymbols.polygonBarriers;return d})),f=new V(a.polylineBarriers?.map(d=>{d=D.fromJSON(d.toJSON());d.symbol=this.defaultSymbols.polylineBarriers;return d})),m=new T(a.pointBarriers?.map(d=>{d=B.fromJSON(d.toJSON());d.symbol=this.defaultSymbols.pointBarriers;return d}));var k=a.routeResults[0].route?.toJSON();k=H.fromJSON(k);k.symbol=this.defaultSymbols.routeInfo;const n=new Fa(a.routeResults[0].directionPoints?.features.map(d=>
{d=G.fromJSON(d.toJSON());d.symbol=this.defaultSymbols.directionPoints;return d}));return{directionLines:new Ea(a.routeResults[0].directionLines?.features.map(d=>{d=F.fromJSON(d.toJSON());d.symbol=this.defaultSymbols.directionLines;return d})),directionPoints:n,pointBarriers:m,polygonBarriers:c,polylineBarriers:f,routeInfo:k,stops:b}}_writeDirectionLines(){return this._writeNetworkFeatures(this.directionLines,this.defaultSymbols.directionLines,"esriGeometryPolyline",F.fields,"DirectionLines","Direction Lines")}_writeDirectionPoints(){return this._writeNetworkFeatures(this.directionPoints,
this.defaultSymbols.directionPoints,"esriGeometryPoint",G.fields,"DirectionPoints","Direction Points")}_writeNetworkFeatures(a,b,c,f,m,k){if(!a?.length)return null;const n=this.spatialReference.toJSON(),{fullExtent:d,maxScale:t,minScale:l}=this;return{featureSet:{features:a.toArray().map(x=>{const {attributes:p,geometry:y,popupTemplate:q,symbol:K}=x.toGraphic().toJSON();return{attributes:p,geometry:y,popupInfo:q,symbol:K}}),geometryType:c,spatialReference:n},layerDefinition:{capabilities:"Query,Update,Editing",
drawingInfo:{renderer:{type:"simple",symbol:null!=b?b.toJSON():J(c)}},extent:d.toJSON(),fields:f,geometryType:c,hasM:!1,hasZ:!1,maxScale:t,minScale:l,name:m,objectIdField:"ObjectID",spatialReference:n,title:k,type:"Feature Layer",typeIdField:""}}}_writePointBarriers(){return this._writeNetworkFeatures(this.pointBarriers,this.defaultSymbols.pointBarriers,"esriGeometryPoint",B.fields,"Barriers","Point Barriers")}_writePolygonBarriers(){return this._writeNetworkFeatures(this.polygonBarriers,this.defaultSymbols.polygonBarriers,
"esriGeometryPolygon",C.fields,"PolygonBarriers","Polygon Barriers")}_writePolylineBarriers(){return this._writeNetworkFeatures(this.polylineBarriers,this.defaultSymbols.polylineBarriers,"esriGeometryPolyline",D.fields,"PolylineBarriers","Line Barriers")}_writeRouteInfo(){return this._writeNetworkFeatures(null!=this.routeInfo?new u([this.routeInfo]):null,this.defaultSymbols.routeInfo,"esriGeometryPolyline",H.fields,"RouteInfo","Route Details")}_writeStops(){const a=this._writeNetworkFeatures(this.stops,
null,"esriGeometryPoint",E.fields,"Stops","Stops");if(null==a)return null;var {stops:b}=this.defaultSymbols;const c=b?.first?.toJSON(),f=b?.middle?.toJSON();b=b?.last?.toJSON();a.layerDefinition.drawingInfo.renderer={type:"uniqueValue",field1:"Sequence",defaultSymbol:f,uniqueValueInfos:[{value:"1",symbol:c,label:"First Stop"},{value:`${this.stops.length}`,symbol:b,label:"Last Stop"}]};return a}};h.__decorate([r.property({readOnly:!0,json:{read:!1,origins:{"portal-item":{write:{allowNull:!0,ignoreOrigin:!0}},
"web-map":{write:{overridePolicy(){return{allowNull:!0,ignoreOrigin:null==this.portalItem}}}}}}})],g.prototype,"_featureCollection",void 0);h.__decorate([ia.writer(["web-map","portal-item"],"_featureCollection")],g.prototype,"writeFeatureCollectionWebmap",null);h.__decorate([r.property({readOnly:!0,json:{read:!1,origins:{"web-map":{write:{target:"type",overridePolicy(){return{ignoreOrigin:null!=this.portalItem}}}}}}})],g.prototype,"_type",void 0);h.__decorate([r.property({nonNullable:!0,type:Q})],
g.prototype,"defaultSymbols",void 0);h.__decorate([r.property({readOnly:!0})],g.prototype,"directionLines",void 0);h.__decorate([w.reader(["web-map","portal-item"],"directionLines",["layers","featureCollection.layers"])],g.prototype,"readDirectionLines",null);h.__decorate([r.property({readOnly:!0})],g.prototype,"directionPoints",void 0);h.__decorate([w.reader(["web-map","portal-item"],"directionPoints",["layers","featureCollection.layers"])],g.prototype,"readDirectionPoints",null);h.__decorate([r.property({readOnly:!0,
json:{read:!1,origins:{"web-map":{write:{ignoreOrigin:!0}}}}})],g.prototype,"featureCollectionType",void 0);h.__decorate([r.property({readOnly:!0})],g.prototype,"fullExtent",null);h.__decorate([r.property({json:{origins:{"web-map":{name:"featureCollection.showLegend"}},write:!0}})],g.prototype,"legendEnabled",void 0);h.__decorate([r.property({type:["show","hide"]})],g.prototype,"listMode",void 0);h.__decorate([r.property({type:Number,nonNullable:!0,json:{write:!1}})],g.prototype,"maxScale",void 0);
h.__decorate([w.reader(["web-map","portal-item"],"maxScale",["layers","featureCollection.layers"])],g.prototype,"readMaxScale",null);h.__decorate([r.property({type:Number,nonNullable:!0,json:{write:!1}})],g.prototype,"minScale",void 0);h.__decorate([w.reader(["web-map","portal-item"],"minScale",["layers","featureCollection.layers"])],g.prototype,"readMinScale",null);h.__decorate([r.property({type:["ArcGISFeatureLayer"],value:"ArcGISFeatureLayer"})],g.prototype,"operationalLayerType",void 0);h.__decorate([r.property({nonNullable:!0,
type:u.ofType(B)})],g.prototype,"pointBarriers",void 0);h.__decorate([w.reader(["web-map","portal-item"],"pointBarriers",["layers","featureCollection.layers"])],g.prototype,"readPointBarriers",null);h.__decorate([r.property({nonNullable:!0,type:u.ofType(C)})],g.prototype,"polygonBarriers",void 0);h.__decorate([w.reader(["web-map","portal-item"],"polygonBarriers",["layers","featureCollection.layers"])],g.prototype,"readPolygonBarriers",null);h.__decorate([r.property({nonNullable:!0,type:u.ofType(D)})],
g.prototype,"polylineBarriers",void 0);h.__decorate([w.reader(["web-map","portal-item"],"polylineBarriers",["layers","featureCollection.layers"])],g.prototype,"readPolylineBarriers",null);h.__decorate([r.property({readOnly:!0})],g.prototype,"routeInfo",void 0);h.__decorate([w.reader(["web-map","portal-item"],"routeInfo",["layers","featureCollection.layers"])],g.prototype,"readRouteInfo",null);h.__decorate([r.property({type:z})],g.prototype,"spatialReference",void 0);h.__decorate([w.reader(["web-map",
"portal-item"],"spatialReference",["layers","featureCollection.layers"])],g.prototype,"readSpatialReference",null);h.__decorate([r.property({nonNullable:!0,type:u.ofType(E)})],g.prototype,"stops",void 0);h.__decorate([w.reader(["web-map","portal-item"],"stops",["layers","featureCollection.layers"])],g.prototype,"readStops",null);h.__decorate([r.property()],g.prototype,"title",null);h.__decorate([r.property({readOnly:!0,json:{read:!1}})],g.prototype,"type",void 0);h.__decorate([r.property()],g.prototype,
"url",null);return g=h.__decorate([ha.subclass("esri.layers.RouteLayer")],g)});