@arcgis/core 4.24.0-next.20220331 → 4.24.0-next.20220401
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/WebScene.js +1 -1
- package/analysis/LineOfSightAnalysisObserver.js +1 -1
- package/analysis/LineOfSightAnalysisTarget.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/0eb9c9477d36cd212f8b.js +1 -0
- package/assets/esri/core/workers/chunks/10779a256841c37f2429.js +1 -0
- package/assets/esri/core/workers/chunks/125b14c2ccd96d7c20c2.js +1 -0
- package/assets/esri/core/workers/chunks/{19cb7315d403a4cd4f59.js → 2530e8ccf6e12787ce76.js} +1 -1
- package/assets/esri/core/workers/chunks/{302c68c5b91d1ab4fd47.js → 560234694f3e53802aff.js} +1 -1
- package/assets/esri/core/workers/chunks/5633710daeb3bbb79bcf.js +1 -0
- package/assets/esri/core/workers/chunks/6f7917da7166e8c6854b.js +1 -0
- package/assets/esri/core/workers/chunks/7388824eac8da01ea03d.js +1 -0
- package/assets/esri/core/workers/chunks/794b47764ebb0257ed41.js +1 -0
- package/assets/esri/core/workers/chunks/81e9d860a044acec74ce.js +1 -0
- package/assets/esri/core/workers/chunks/{9a32f129f0d67547e44c.js → 831dc0187f71e658550c.js} +1 -1
- package/assets/esri/core/workers/chunks/{d162d1b7b97a58e97d8c.js → 8958cd555f4887526e8b.js} +1 -1
- package/assets/esri/core/workers/chunks/{e57b71ba70f088a3a052.js → 90dcd86cdef90099abfa.js} +1 -1
- package/assets/esri/core/workers/chunks/{a5b54e134ae59629d6d1.js → 93067e27eea5844edc6c.js} +1 -1
- package/assets/esri/core/workers/chunks/{0b63c9d5d9c004923a97.js → b26bd8fde2fc65bb67fb.js} +1 -1
- package/assets/esri/core/workers/chunks/{b81e1df3a47b61421295.js → b34ba22c7a5adce8a7a2.js} +1 -1
- package/assets/esri/core/workers/chunks/c28f7ae4756ad1ba94bd.js +1 -0
- package/assets/esri/core/workers/chunks/{e1408ff1b8343674e6ef.js → c59b0b58e24e6a60cf3e.js} +1 -1
- package/assets/esri/core/workers/chunks/{f4e79769297ad9c1d508.js → c7cee13a962396b23a5e.js} +1 -1
- package/assets/esri/core/workers/chunks/{cb38754110b7a0e901f6.js → cd3679fa86129ebabfdf.js} +1 -1
- package/assets/esri/core/workers/chunks/{224c0e64160bdc170051.js → d076627bb7dadea89e89.js} +1 -1
- package/assets/esri/core/workers/chunks/e06ad3a3d71154fed654.js +1 -0
- package/assets/esri/core/workers/chunks/{7a77d4cd27c30f1a5cae.js → ee3387a43dfbb3df23e1.js} +1 -1
- package/assets/esri/core/workers/chunks/{fbb7a121a45f8ca7d89c.js → f4fc165420d449e442b8.js} +1 -1
- package/assets/esri/themes/base/widgets/_Widget.scss +2 -2
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/dark-blue/main.css +1 -1
- package/assets/esri/themes/dark-green/main.css +1 -1
- package/assets/esri/themes/dark-purple/main.css +1 -1
- package/assets/esri/themes/dark-red/main.css +1 -1
- package/assets/esri/themes/light/main.css +1 -1
- package/assets/esri/themes/light/view.css +1 -1
- package/assets/esri/themes/light-blue/main.css +1 -1
- package/assets/esri/themes/light-green/main.css +1 -1
- package/assets/esri/themes/light-purple/main.css +1 -1
- package/assets/esri/themes/light-red/main.css +1 -1
- package/core/AsyncUpdate.js +1 -1
- package/exports/csv.js +1 -1
- package/geometry/support/meshUtils/exporters/gltf/geometry.js +1 -1
- package/geometry/support/normalizeUtils.js +1 -1
- package/interfaces.d.ts +120 -0
- package/layers/MapImageLayer.js +1 -1
- package/layers/RouteLayer.js +1 -1
- package/layers/VectorTileLayer.js +1 -1
- package/layers/graphics/editingSupport.js +1 -1
- package/layers/mixins/ArcGISImageService.js +1 -1
- package/layers/support/RasterJobHandler.js +1 -1
- package/layers/support/SpriteSource.js +1 -1
- package/layers/support/Sublayer.js +1 -1
- package/layers/support/TilemapCache.js +1 -1
- package/layers/support/vectorTileLayerLoader.js +1 -1
- package/libs/i3s/I3SModule.js +1 -1
- package/libs/vxl/VxlModule.js +1 -1
- package/package.json +1 -1
- package/portal/support/layersLoader.js +1 -1
- package/portal/support/portalLayers.js +1 -1
- package/renderers/support/DictionaryLoader.js +1 -1
- package/rest/query/operations/query.js +1 -1
- package/rest/query/operations/queryTopFeatures.js +1 -1
- package/rest/support/DirectionLine.js +1 -1
- package/rest/support/DirectionPoint.js +1 -1
- package/rest/support/PointBarrier.js +1 -1
- package/rest/support/PolygonBarrier.js +1 -1
- package/rest/support/PolylineBarrier.js +1 -1
- package/rest/support/RouteInfo.js +1 -1
- package/rest/support/Stop.js +1 -1
- package/smartMapping/labels/clusters.js +1 -1
- package/smartMapping/renderers/color.js +1 -1
- package/smartMapping/support/adapters/SceneLayerAdapter.js +1 -1
- package/support/elevationInfoUtils.js +1 -1
- package/support/revision.js +1 -1
- package/symbols/support/previewSymbol3D.js +1 -1
- package/symbols/support/symbolLayerUtils.js +1 -1
- package/views/2d/engine/vectorTiles/TileParser.js +1 -1
- package/views/2d/engine/webgl/util/Lock.js +1 -1
- package/views/2d/layers/RouteLayerView2D.js +1 -1
- package/views/2d/layers/features/support/AttributeStore.js +1 -1
- package/views/2d/layers/features/support/FeatureSetReaderPBF.js +1 -1
- package/views/2d/layers/support/webStyleUtils.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightController.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightIntersectionResult.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightRayIntersector.js +1 -1
- package/views/3d/interactive/analysisTools/lineOfSight/LineOfSightTool.js +1 -1
- package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
- package/views/3d/layers/FeatureLikeLayerView3D.js +1 -1
- package/views/3d/layers/ImageryLayerView3D.js +1 -1
- package/views/3d/layers/RouteLayerView3D.js +1 -1
- package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
- package/views/3d/layers/i3s/I3SNodeLoader.js +1 -1
- package/views/3d/layers/support/PopupSceneLayerView.js +1 -1
- package/views/3d/support/debugFlags.js +1 -1
- package/views/3d/terrain/TerrainSurface.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/SceneView.js +1 -1
- package/views/layers/ImageryTileLayerView.js +1 -1
- package/views/layers/MapImageLayerView.js +1 -1
- package/views/layers/TileLayerView.js +1 -1
- package/views/support/DefaultsFromMap.js +1 -1
- package/widgets/Bookmarks/BookmarksViewModel.js +1 -1
- package/widgets/CoordinateConversion/CoordinateConversionViewModel.js +1 -1
- package/widgets/Directions/DirectionsViewModel.js +1 -1
- package/widgets/Directions.js +1 -1
- package/widgets/Editor.js +1 -1
- package/widgets/Feature/support/featureUtils.js +1 -1
- package/widgets/FeatureForm/InputField.js +1 -1
- package/widgets/FeatureTable/support/FeatureStore.js +1 -1
- package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
- package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
- package/widgets/Popup/actionUtils.js +1 -1
- package/widgets/Search/SearchViewModel.js +1 -1
- package/assets/esri/core/workers/chunks/113362697da1b69deaed.js +0 -1
- package/assets/esri/core/workers/chunks/1e590d63187ada4f5ff7.js +0 -1
- package/assets/esri/core/workers/chunks/391a330182c616cfffaf.js +0 -1
- package/assets/esri/core/workers/chunks/3a85312fd7d0cda9ce93.js +0 -1
- package/assets/esri/core/workers/chunks/3c00e38d3b16f4a53a4f.js +0 -1
- package/assets/esri/core/workers/chunks/4a82a6a473b3d540d0be.js +0 -1
- package/assets/esri/core/workers/chunks/5b4d9786c010d265346c.js +0 -1
- package/assets/esri/core/workers/chunks/bbfc98e33d4630eb9e5c.js +0 -1
- package/assets/esri/core/workers/chunks/bd725783b85f308e2c89.js +0 -1
- package/assets/esri/core/workers/chunks/d343f05a3366f95e0494.js +0 -1
package/core/AsyncUpdate.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as t}from"../chunks/tslib.es6.js";import e from"./Accessor.js";import s from"./Logger.js";import{runTracked as a}from"./accessorSupport/tracking.js";import{property as n}from"./accessorSupport/decorators/property.js";import{subclass as r}from"./accessorSupport/decorators/subclass.js";import{SimpleTrackingTarget as o}from"./accessorSupport/tracking/SimpleTrackingTarget.js";const
|
|
5
|
+
import{_ as t}from"../chunks/tslib.es6.js";import e from"./Accessor.js";import s from"./Logger.js";import{runTracked as a}from"./accessorSupport/tracking.js";import{property as n}from"./accessorSupport/decorators/property.js";import{subclass as r}from"./accessorSupport/decorators/subclass.js";import{SimpleTrackingTarget as o}from"./accessorSupport/tracking/SimpleTrackingTarget.js";const i=e=>{let a=class extends e{constructor(){super(...arguments),this._numUpdating=0,this.asyncUpdateState=new Map}get updating(){return this._numUpdating>0}autoUpdateAsync(t,e){return p((e=>this._updateAsync(t,e)),e)}async _updateAsync(t,e){if(!this._startAsyncUpdate(t)){try{const s=await e();this._set(t,s)}catch(a){s.getLogger(this.declaredClass).warn(`Async update of "${String(t)}" failed. Async update functions should not throw exceptions.`)}this._endAsyncUpdate(t)&&this._updateAsync(t,e)}}_startAsyncUpdate(t){var e;const s=null!=(e=this.asyncUpdateState.get(t))?e:c.None;return s&c.Updating?(this.asyncUpdateState.set(t,s|c.Invalidated),!0):(++this._numUpdating,this.asyncUpdateState.set(t,s|c.Updating),!1)}_endAsyncUpdate(t){var e;--this._numUpdating;const s=(null!=(e=this.asyncUpdateState.get(t))?e:c.None)&~c.Updating;return s&c.Invalidated?(this.asyncUpdateState.set(t,s&~c.Invalidated),!0):(this.asyncUpdateState.set(t,s),!1)}};return t([n({readOnly:!0})],a.prototype,"updating",null),t([n()],a.prototype,"_numUpdating",void 0),a=t([r("esri.core.AsyncUpdate")],a),a};var c;function p(t,e){const s=()=>{i&&!c&&t(n)},n=()=>{if(!i||c)return e();i.clear(),c=!0;const t=a(i,e);return c=!1,t},r=()=>{i&&(i.destroy(),i=null)};let i=new o(s),c=!1;return t(n),{remove:r}}!function(t){t[t.None=0]="None",t[t.Updating=1]="Updating",t[t.Invalidated=2]="Invalidated"}(c||(c={}));let d=class extends(i(e)){};d=t([r("esri.core.AsyncUpdate")],d);export{d as AsyncUpdate,i as AsyncUpdateMixin};
|
package/exports/csv.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../core/Error.js";import t from"../layers/support/Field.js";function n(e){return Object.keys(e.attributes).map((n=>{const r=e.attributes[n];return"objectid"===n.toLowerCase()||"fid"===n.toLowerCase()?new t({name:n,alias:n,type:"oid"}):new t("number"==typeof r?{name:n,alias:n,type:"double"}:{name:n,alias:n,type:"string"})}))}function r(e){if(!e.fields){const t=e.features[0];if(t.layer){e.fields=t.layer.fields;const n=Object.keys(t.attributes),r=e.fields.filter((e=>n.includes(e.name)));e.fields=r}else e.fields=n(t)}return e}function i(e){return e.map((({attributes:e})=>e))}function o(e){const{delimiter:t,fields:n=[],outFields:r=[]}=e,i=t||",",o=n.map((e=>e.name));return e=>{let t="";return o.filter((e=>r.includes(e))).forEach((r=>{const o=n.find((({name:e})=>e===r));let a=e[r]||"";if("date"===o.type&&(a=new Date(a).toString()),o.domain&&"coded-value"===o.domain.type){const e=o.domain.codedValues.find((e=>a===e.code));e&&(a=e.name)}"string"==typeof a&&a.includes(i)&&(a=`"${a}"`),t+=`${a}${i}`})),`${t}\r\n`}}async function a(n,{includeGeometry:a=!0,delimiter:s=",",outFields:l=["*"]}={}){if(n=r(n),a&&"point"!==n.geometryType)throw new e("export-csv:invalid-geometries",`the input geometry ${n.geometryType} is not supported, must be point`);const{features:u}=n;if(!u.length)return null;let d=n.fields;const[m]=l;"*"===m&&(l=d.map((e=>e.name))),a&&"point"===n.geometryType&&(d.some((e=>"x"===e.name||"y"===e.name))||(d=[...d,new t({name:"lon",alias:"Longitude",type:"double"}),new t({name:"lat",alias:"Latitude",type:"double"})],l=[...l,"lon","lat"]),u.forEach((e=>{e.attributes.lon=e.geometry.longitude,e.attributes.lat=e.geometry.latitude}))),d=d.filter((e=>l.includes(e.name)));const f=s||",",c=i(u),p=d.map((e=>e.name)).join(f),y=o({delimiter:f,outFields:l||d.map((e=>e.name)),fields:d});let g=`${p}${f}\r\n`;c.forEach((e=>{g+=y(e)}));const b=new RegExp(`${f}\r\ns*$`,"g");return g.replace(b,"")}async function s(t,n){
|
|
5
|
+
import e from"../core/Error.js";import t from"../layers/support/Field.js";function n(e){return Object.keys(e.attributes).map((n=>{const r=e.attributes[n];return"objectid"===n.toLowerCase()||"fid"===n.toLowerCase()?new t({name:n,alias:n,type:"oid"}):new t("number"==typeof r?{name:n,alias:n,type:"double"}:{name:n,alias:n,type:"string"})}))}function r(e){if(!e.fields){const t=e.features[0];if(t.layer){e.fields=t.layer.fields;const n=Object.keys(t.attributes),r=e.fields.filter((e=>n.includes(e.name)));e.fields=r}else e.fields=n(t)}return e}function i(e){return e.map((({attributes:e})=>e))}function o(e){const{delimiter:t,fields:n=[],outFields:r=[]}=e,i=t||",",o=n.map((e=>e.name));return e=>{let t="";return o.filter((e=>r.includes(e))).forEach((r=>{const o=n.find((({name:e})=>e===r));let a=e[r]||"";if("date"===o.type&&(a=new Date(a).toString()),o.domain&&"coded-value"===o.domain.type){const e=o.domain.codedValues.find((e=>a===e.code));e&&(a=e.name)}"string"==typeof a&&a.includes(i)&&(a=`"${a}"`),t+=`${a}${i}`})),`${t}\r\n`}}async function a(n,{includeGeometry:a=!0,delimiter:s=",",outFields:l=["*"]}={}){if(n=r(n),a&&"point"!==n.geometryType)throw new e("export-csv:invalid-geometries",`the input geometry ${n.geometryType} is not supported, must be point`);const{features:u}=n;if(!u.length)return null;let d=n.fields;const[m]=l;"*"===m&&(l=d.map((e=>e.name))),a&&"point"===n.geometryType&&(d.some((e=>"x"===e.name||"y"===e.name))||(d=[...d,new t({name:"lon",alias:"Longitude",type:"double"}),new t({name:"lat",alias:"Latitude",type:"double"})],l=[...l,"lon","lat"]),u.forEach((e=>{e.attributes.lon=e.geometry.longitude,e.attributes.lat=e.geometry.latitude}))),d=d.filter((e=>l.includes(e.name)));const f=s||",",c=i(u),p=d.map((e=>e.name)).join(f),y=o({delimiter:f,outFields:l||d.map((e=>e.name)),fields:d});let g=`${p}${f}\r\n`;c.forEach((e=>{g+=y(e)}));const b=new RegExp(`${f}\r\ns*$`,"g");return g.replace(b,"")}async function s(t,n){if(!t&&t.features&&!t.features.length)throw new e("csv-export:features-required","exportFeaturesToCSV requires features to export");return a(t,n)}export{o as attributeToString,a as convertFeaturesToCSV,s as exportFeaturesToCSV,i as extractAttributes,n as extractFieldsFromFeature,r as validateFeatureSetFields};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import
|
|
5
|
+
import{isNone as t,isSome as n}from"../../../../../core/maybe.js";import{s as e,b as o,f as r,n as s}from"../../../../../chunks/vec3.js";import{c as a}from"../../../../../chunks/vec3f64.js";import i from"../../../../Point.js";function f(t,n){if(t.components)for(const e of t.components)e.faces&&"smooth"===e.shading&&c(e,n)}function c(n,a){t(a.normal)&&(a.normal=new Float32Array(a.position.length));const i=n.faces,{position:f,normal:c}=a,m=i.length/3;for(let t=0;t<m;++t){const n=3*i[3*t+0],s=3*i[3*t+1],a=3*i[3*t+2],m=e(l,f[n+0],f[n+1],f[n+2]),h=e(p,f[s+0],f[s+1],f[s+2]),g=e(x,f[a+0],f[a+1],f[a+2]),u=o(h,h,m),j=o(g,g,m),y=r(u,u,j);c[n+0]+=y[0],c[n+1]+=y[1],c[n+2]+=y[2],c[s+0]+=y[0],c[s+1]+=y[1],c[s+2]+=y[2],c[a+0]+=y[0],c[a+1]+=y[1],c[a+2]+=y[2]}for(let t=0;t<c.length;t+=3)e(h,c[t],c[t+1],c[t+2]),s(h,h),c[t+0]=h[0],c[t+1]=h[1],c[t+2]=h[2]}function m(t){if(n(t.transform))return t.transform.getOriginPoint(t.spatialReference);const e=t.extent.xmax-t.extent.width/2,o=t.extent.ymax-t.extent.height/2,r=t.extent.zmin;return new i({x:e,y:o,z:r,spatialReference:t.extent.spatialReference})}const l=a(),p=a(),x=a(),h=a();export{m as computeOrigin,f as smoothNormals};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import t from"../../config.js";import e from"../../core/Error.js";import n from"../../core/Logger.js";import{isNone as o,isSome as s}from"../../core/maybe.js";import r from"../Polygon.js";import i from"../Polyline.js";import{getGeometryParts as l,cutParams as f,offsetMagnitude as c,updatePolyGeometry as p}from"./normalizeUtilsCommon.js";import{getInfo as u}from"./spatialReferenceUtils.js";import{geographicToWebMercator as a,webMercatorToGeographic as h}from"./webMercatorUtils.js";import{cut as m}from"../../rest/geometry/cut.js";import{simplify as g}from"../../rest/geometry/simplify.js";const y=n.getLogger("esri.geometry.support.normalizeUtils");function x(t){return"polygon"===t.type}function d(t){return"polygon"===t[0].type}function w(t){return"polyline"===t[0].type}function j(t){const e=[];let n=0,o=0;for(let s=0;s<t.length;s++){const r=t[s];let i=null;for(let t=0;t<r.length;t++)i=r[t],e.push(i),0===t?(n=i[0],o=n):(n=Math.min(n,i[0]),o=Math.max(o,i[0]));i&&e.push([(n+o)/2,0])}return e}function R(t,n){if(!(t instanceof i||t instanceof r)){const t="straightLineDensify: the input geometry is neither polyline nor polygon";throw y.error(t),new e(t)}const o=l(t),s=[];for(const e of o){const t=[];s.push(t),t.push([e[0][0],e[0][1]]);for(let o=0;o<e.length-1;o++){const s=e[o][0],r=e[o][1],i=e[o+1][0],l=e[o+1][1],f=Math.sqrt((i-s)*(i-s)+(l-r)*(l-r)),c=(l-r)/f,p=(i-s)/f,u=f/n;if(u>1){for(let l=1;l<=u-1;l++){const e=l*n,o=p*e+s,i=c*e+r;t.push([o,i])}const e=(f+Math.floor(u-1)*n)/2,o=p*e+s,i=c*e+r;t.push([o,i])}t.push([i,l])}}return x(t)?new r({rings:s,spatialReference:t.spatialReference}):new i({paths:s,spatialReference:t.spatialReference})}function M(t,e,n){if(e){const e=R(t,1e6);t=h(e,!0)}return n&&(t=p(t,n)),t}function
|
|
5
|
+
import t from"../../config.js";import e from"../../core/Error.js";import n from"../../core/Logger.js";import{isNone as o,isSome as s}from"../../core/maybe.js";import r from"../Polygon.js";import i from"../Polyline.js";import{getGeometryParts as l,cutParams as f,offsetMagnitude as c,updatePolyGeometry as p}from"./normalizeUtilsCommon.js";import{getInfo as u}from"./spatialReferenceUtils.js";import{geographicToWebMercator as a,webMercatorToGeographic as h}from"./webMercatorUtils.js";import{cut as m}from"../../rest/geometry/cut.js";import{simplify as g}from"../../rest/geometry/simplify.js";const y=n.getLogger("esri.geometry.support.normalizeUtils");function x(t){return"polygon"===t.type}function d(t){return"polygon"===t[0].type}function w(t){return"polyline"===t[0].type}function j(t){const e=[];let n=0,o=0;for(let s=0;s<t.length;s++){const r=t[s];let i=null;for(let t=0;t<r.length;t++)i=r[t],e.push(i),0===t?(n=i[0],o=n):(n=Math.min(n,i[0]),o=Math.max(o,i[0]));i&&e.push([(n+o)/2,0])}return e}function R(t,n){if(!(t instanceof i||t instanceof r)){const t="straightLineDensify: the input geometry is neither polyline nor polygon";throw y.error(t),new e(t)}const o=l(t),s=[];for(const e of o){const t=[];s.push(t),t.push([e[0][0],e[0][1]]);for(let o=0;o<e.length-1;o++){const s=e[o][0],r=e[o][1],i=e[o+1][0],l=e[o+1][1],f=Math.sqrt((i-s)*(i-s)+(l-r)*(l-r)),c=(l-r)/f,p=(i-s)/f,u=f/n;if(u>1){for(let l=1;l<=u-1;l++){const e=l*n,o=p*e+s,i=c*e+r;t.push([o,i])}const e=(f+Math.floor(u-1)*n)/2,o=p*e+s,i=c*e+r;t.push([o,i])}t.push([i,l])}}return x(t)?new r({rings:s,spatialReference:t.spatialReference}):new i({paths:s,spatialReference:t.spatialReference})}function M(t,e,n){if(e){const e=R(t,1e6);t=h(e,!0)}return n&&(t=p(t,n)),t}function b(t,e,n){if(Array.isArray(t)){const o=t[0];if(o>e){const n=c(o,e);t[0]=o+n*(-2*e)}else if(o<n){const e=c(o,n);t[0]=o+e*(-2*n)}}else{const o=t.x;if(o>e){const n=c(o,e);t=t.clone().offset(n*(-2*e),0)}else if(o<n){const e=c(o,n);t=t.clone().offset(e*(-2*n),0)}}return t}function P(t,e){let n=-1;for(let o=0;o<e.cutIndexes.length;o++){const s=e.cutIndexes[o],r=e.geometries[o],i=l(r);for(let t=0;t<i.length;t++){const e=i[t];e.some((n=>{if(n[0]<180)return!0;{let n=0;for(let t=0;t<e.length;t++){const o=e[t][0];n=o>n?o:n}n=Number(n.toFixed(9));const o=-360*c(n,180);for(let s=0;s<e.length;s++){const e=r.getPoint(t,s);r.setPoint(t,s,e.clone().offset(o,0))}return!0}}))}if(s===n){if(d(t))for(const e of l(r))t[s]=t[s].addRing(e);else if(w(t))for(const e of l(r))t[s]=t[s].addPath(e)}else n=s,t[s]=r}return t}async function v(e,n,l){var h;if(!Array.isArray(e))return v([e],n);const y=null!=(h=null==n?void 0:n.url)?h:t.geometryServiceUrl;let x,d,w,j,R,L,U,A,z=0;const k=[],I=[];for(const t of e)if(o(t))I.push(t);else if(x||(x=t.spatialReference,d=u(x),w=x.isWebMercator,L=w?102100:4326,j=f[L].maxX,R=f[L].minX,U=f[L].plus180Line,A=f[L].minus180Line),d)if("mesh"===t.type)I.push(t);else if("point"===t.type)I.push(b(t.clone(),j,R));else if("multipoint"===t.type){const e=t.clone();e.points=e.points.map((t=>b(t,j,R))),I.push(e)}else if("extent"===t.type){const e=t.clone()._normalize(!1,!1,d);I.push(e.rings?new r(e):e)}else if(t.extent){const e=t.extent,n=c(e.xmin,R)*(2*j);let o=0===n?t.clone():p(t.clone(),n);e.offset(n,0),e.intersects(U)&&e.xmax!==j?(z=e.xmax>z?e.xmax:z,o=M(o,w),k.push(o),I.push("cut")):e.intersects(A)&&e.xmin!==R?(z=e.xmax*(2*j)>z?e.xmax*(2*j):z,o=M(o,w,360),k.push(o),I.push("cut")):I.push(o)}else I.push(t.clone());else I.push(t);let X=c(z,j),q=-90;const C=X,D=new i;for(;X>0;){const t=360*X-180;D.addPath([[t,q],[t,-1*q]]),q*=-1,X--}if(k.length>0&&C>0){const t=P(k,await m(y,k,D,l)),n=[],o=[];for(let l=0;l<I.length;l++){const r=I[l];if("cut"!==r)o.push(r);else{const r=t.shift(),i=e[l];s(i)&&"polygon"===i.type&&i.rings&&i.rings.length>1&&r.rings.length>=i.rings.length?(n.push(r),o.push("simplify")):o.push(w?a(r):r)}}if(!n.length)return o;const r=await g(y,n,l),i=[];for(let e=0;e<o.length;e++){const t=o[e];"simplify"!==t?i.push(t):i.push(w?a(r.shift()):r.shift())}return i}const E=[];for(let t=0;t<I.length;t++){const e=I[t];if("cut"!==e)E.push(e);else{const t=k.shift();E.push(!0===w?a(t):t)}}return E}function L(t){if(!t)return null;const e=t.extent;if(!e)return null;const n=t.spatialReference&&u(t.spatialReference);if(!n)return e;const[o,s]=n.valid,r=2*s,{width:i}=e;let l,{xmin:f,xmax:c}=e;if([f,c]=[c,f],"extent"===t.type||0===i||i<=s||i>r||f<o||c>s)return e;switch(t.type){case"polygon":if(!(t.rings.length>1))return e;l=j(t.rings);break;case"polyline":if(!(t.paths.length>1))return e;l=j(t.paths);break;case"multipoint":l=t.points}const p=e.clone();for(let u=0;u<l.length;u++){let t=l[u][0];t<0?(t+=s,c=Math.max(t,c)):(t-=s,f=Math.min(t,f))}return p.xmin=f,p.xmax=c,p.width<i?(p.xmin-=s,p.xmax-=s,p):e}function U(t,e){const n=u(e);if(n){const[e,o]=n.valid,s=o-e;if(t<e)for(;t<e;)t+=s;if(t>o)for(;t>o;)t-=s}return t}export{L as getDenormalizedExtent,v as normalizeCentralMeridian,U as normalizeMapX,R as straightLineDensify};
|
package/interfaces.d.ts
CHANGED
|
@@ -362,6 +362,12 @@ declare namespace __esri {
|
|
|
362
362
|
export const LineOfSightAnalysis: LineOfSightAnalysisConstructor;
|
|
363
363
|
|
|
364
364
|
interface LineOfSightAnalysisObserver {
|
|
365
|
+
/**
|
|
366
|
+
* Specifies how the observer is placed on the vertical axis (z).
|
|
367
|
+
*
|
|
368
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-analysis-LineOfSightAnalysisObserver.html#elevationInfo)
|
|
369
|
+
*/
|
|
370
|
+
elevationInfo: LineOfSightAnalysisObserverElevationInfo;
|
|
365
371
|
/**
|
|
366
372
|
* A [Point](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Point.html) representing the position of the observer.
|
|
367
373
|
*
|
|
@@ -387,7 +393,28 @@ declare namespace __esri {
|
|
|
387
393
|
|
|
388
394
|
export const LineOfSightAnalysisObserver: LineOfSightAnalysisObserverConstructor;
|
|
389
395
|
|
|
396
|
+
export interface LineOfSightAnalysisObserverElevationInfo extends Object {
|
|
397
|
+
/**
|
|
398
|
+
* Defines how the observer is placed with respect to the terrain surface or 3D objects in the scene.
|
|
399
|
+
*
|
|
400
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-analysis-LineOfSightAnalysisObserver.html#elevationInfo)
|
|
401
|
+
*/
|
|
402
|
+
mode: "on-the-ground" | "relative-to-ground" | "absolute-height" | "relative-to-scene";
|
|
403
|
+
/**
|
|
404
|
+
* An elevation offset, which is added to the vertical position of the observer.
|
|
405
|
+
*
|
|
406
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-analysis-LineOfSightAnalysisObserver.html#elevationInfo)
|
|
407
|
+
*/
|
|
408
|
+
offset?: number;
|
|
409
|
+
}
|
|
410
|
+
|
|
390
411
|
interface LineOfSightAnalysisTarget {
|
|
412
|
+
/**
|
|
413
|
+
* Specifies how the observer is placed on the vertical axis (z).
|
|
414
|
+
*
|
|
415
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-analysis-LineOfSightAnalysisTarget.html#elevationInfo)
|
|
416
|
+
*/
|
|
417
|
+
elevationInfo: LineOfSightAnalysisTargetElevationInfo;
|
|
391
418
|
/**
|
|
392
419
|
* A [Point](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Point.html) representing the position of the target.
|
|
393
420
|
*
|
|
@@ -413,6 +440,15 @@ declare namespace __esri {
|
|
|
413
440
|
|
|
414
441
|
export const LineOfSightAnalysisTarget: LineOfSightAnalysisTargetConstructor;
|
|
415
442
|
|
|
443
|
+
export interface LineOfSightAnalysisTargetElevationInfo extends Object {
|
|
444
|
+
/**
|
|
445
|
+
* Defines how the observer is placed with respect to the terrain surface or 3D objects in the scene.
|
|
446
|
+
*
|
|
447
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-analysis-LineOfSightAnalysisTarget.html#elevationInfo)
|
|
448
|
+
*/
|
|
449
|
+
mode: "on-the-ground" | "relative-to-ground" | "absolute-height" | "relative-to-scene";
|
|
450
|
+
}
|
|
451
|
+
|
|
416
452
|
interface SliceAnalysis {
|
|
417
453
|
/**
|
|
418
454
|
* The shape used to slice elements in a 3D scene.
|
|
@@ -37963,6 +37999,12 @@ declare namespace __esri {
|
|
|
37963
37999
|
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-DirectionLine.html#geometry)
|
|
37964
38000
|
*/
|
|
37965
38001
|
geometry: Polyline;
|
|
38002
|
+
/**
|
|
38003
|
+
* Creates a [Graphic](https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html) from the [DirectionLine](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-DirectionLine.html) instance.
|
|
38004
|
+
*
|
|
38005
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-DirectionLine.html#toGraphic)
|
|
38006
|
+
*/
|
|
38007
|
+
toGraphic(): Graphic;
|
|
37966
38008
|
}
|
|
37967
38009
|
|
|
37968
38010
|
interface DirectionLineConstructor {
|
|
@@ -37972,6 +38014,12 @@ declare namespace __esri {
|
|
|
37972
38014
|
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-DirectionLine.html)
|
|
37973
38015
|
*/
|
|
37974
38016
|
new(properties?: DirectionLineProperties): DirectionLine;
|
|
38017
|
+
/**
|
|
38018
|
+
* Creates a [DirectionLine](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-DirectionLine.html) from the parsed [Graphic](https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html).
|
|
38019
|
+
*
|
|
38020
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-DirectionLine.html#fromGraphic)
|
|
38021
|
+
*/
|
|
38022
|
+
fromGraphic(graphic?: Graphic): DirectionLine;
|
|
37975
38023
|
fromJSON(json: any): DirectionLine;
|
|
37976
38024
|
}
|
|
37977
38025
|
|
|
@@ -38092,6 +38140,12 @@ declare namespace __esri {
|
|
|
38092
38140
|
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-DirectionPoint.html#sequence)
|
|
38093
38141
|
*/
|
|
38094
38142
|
sequence: number;
|
|
38143
|
+
/**
|
|
38144
|
+
* Creates a [Graphic](https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html) from the [DirectionPoint](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-DirectionPoint.html) instance.
|
|
38145
|
+
*
|
|
38146
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-DirectionPoint.html#toGraphic)
|
|
38147
|
+
*/
|
|
38148
|
+
toGraphic(): Graphic;
|
|
38095
38149
|
}
|
|
38096
38150
|
|
|
38097
38151
|
interface DirectionPointConstructor {
|
|
@@ -38101,6 +38155,12 @@ declare namespace __esri {
|
|
|
38101
38155
|
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-DirectionPoint.html)
|
|
38102
38156
|
*/
|
|
38103
38157
|
new(properties?: DirectionPointProperties): DirectionPoint;
|
|
38158
|
+
/**
|
|
38159
|
+
* Creates a [DirectionPoint](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-DirectionPoint.html) from the parsed [Graphic](https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html).
|
|
38160
|
+
*
|
|
38161
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-DirectionPoint.html#fromGraphic)
|
|
38162
|
+
*/
|
|
38163
|
+
fromGraphic(graphic?: Graphic): DirectionPoint;
|
|
38104
38164
|
fromJSON(json: any): DirectionPoint;
|
|
38105
38165
|
}
|
|
38106
38166
|
|
|
@@ -40706,6 +40766,12 @@ declare namespace __esri {
|
|
|
40706
40766
|
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-PointBarrier.html#name)
|
|
40707
40767
|
*/
|
|
40708
40768
|
name: string;
|
|
40769
|
+
/**
|
|
40770
|
+
* Creates a [Graphic](https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html) from the [PointBarrier](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-PointBarrier.html) instance.
|
|
40771
|
+
*
|
|
40772
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-PointBarrier.html#toGraphic)
|
|
40773
|
+
*/
|
|
40774
|
+
toGraphic(): Graphic;
|
|
40709
40775
|
}
|
|
40710
40776
|
|
|
40711
40777
|
interface PointBarrierConstructor {
|
|
@@ -40715,6 +40781,12 @@ declare namespace __esri {
|
|
|
40715
40781
|
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-PointBarrier.html)
|
|
40716
40782
|
*/
|
|
40717
40783
|
new(properties?: PointBarrierProperties): PointBarrier;
|
|
40784
|
+
/**
|
|
40785
|
+
* Creates a [PointBarrier](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-PointBarrier.html) from the parsed [Graphic](https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html).
|
|
40786
|
+
*
|
|
40787
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-PointBarrier.html#fromGraphic)
|
|
40788
|
+
*/
|
|
40789
|
+
fromGraphic(graphic?: Graphic): PointBarrier;
|
|
40718
40790
|
fromJSON(json: any): PointBarrier;
|
|
40719
40791
|
}
|
|
40720
40792
|
|
|
@@ -40772,6 +40844,12 @@ declare namespace __esri {
|
|
|
40772
40844
|
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-PolygonBarrier.html#name)
|
|
40773
40845
|
*/
|
|
40774
40846
|
name: string;
|
|
40847
|
+
/**
|
|
40848
|
+
* Creates a [Graphic](https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html) from the [PolygonBarrier](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-PolygonBarrier.html) instance.
|
|
40849
|
+
*
|
|
40850
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-PolygonBarrier.html#toGraphic)
|
|
40851
|
+
*/
|
|
40852
|
+
toGraphic(): Graphic;
|
|
40775
40853
|
}
|
|
40776
40854
|
|
|
40777
40855
|
interface PolygonBarrierConstructor {
|
|
@@ -40781,6 +40859,12 @@ declare namespace __esri {
|
|
|
40781
40859
|
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-PolygonBarrier.html)
|
|
40782
40860
|
*/
|
|
40783
40861
|
new(properties?: PolygonBarrierProperties): PolygonBarrier;
|
|
40862
|
+
/**
|
|
40863
|
+
* Creates a [PolygonBarrier](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-PolygonBarrier.html) from the parsed [Graphic](https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html).
|
|
40864
|
+
*
|
|
40865
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-PolygonBarrier.html#fromGraphic)
|
|
40866
|
+
*/
|
|
40867
|
+
fromGraphic(graphic?: Graphic): PolygonBarrier;
|
|
40784
40868
|
fromJSON(json: any): PolygonBarrier;
|
|
40785
40869
|
}
|
|
40786
40870
|
|
|
@@ -40826,6 +40910,12 @@ declare namespace __esri {
|
|
|
40826
40910
|
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-PolylineBarrier.html#name)
|
|
40827
40911
|
*/
|
|
40828
40912
|
name: string;
|
|
40913
|
+
/**
|
|
40914
|
+
* Creates a [Graphic](https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html) from the [PolylineBarrier](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-PolylineBarrier.html) instance.
|
|
40915
|
+
*
|
|
40916
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-PolylineBarrier.html#toGraphic)
|
|
40917
|
+
*/
|
|
40918
|
+
toGraphic(): Graphic;
|
|
40829
40919
|
}
|
|
40830
40920
|
|
|
40831
40921
|
interface PolylineBarrierConstructor {
|
|
@@ -40835,6 +40925,12 @@ declare namespace __esri {
|
|
|
40835
40925
|
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-PolylineBarrier.html)
|
|
40836
40926
|
*/
|
|
40837
40927
|
new(properties?: PolylineBarrierProperties): PolylineBarrier;
|
|
40928
|
+
/**
|
|
40929
|
+
* Creates a [PolylineBarrier](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-PolylineBarrier.html) from the parsed [Graphic](https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html).
|
|
40930
|
+
*
|
|
40931
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-PolylineBarrier.html#fromGraphic)
|
|
40932
|
+
*/
|
|
40933
|
+
fromGraphic(graphic?: Graphic): PolylineBarrier;
|
|
40838
40934
|
fromJSON(json: any): PolylineBarrier;
|
|
40839
40935
|
}
|
|
40840
40936
|
|
|
@@ -42249,6 +42345,12 @@ declare namespace __esri {
|
|
|
42249
42345
|
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-RouteInfo.html#totalDuration)
|
|
42250
42346
|
*/
|
|
42251
42347
|
totalDuration: number;
|
|
42348
|
+
/**
|
|
42349
|
+
* Creates a [Graphic](https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html) from the [RouteInfo](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-RouteInfo.html) instance.
|
|
42350
|
+
*
|
|
42351
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-RouteInfo.html#toGraphic)
|
|
42352
|
+
*/
|
|
42353
|
+
toGraphic(): Graphic;
|
|
42252
42354
|
}
|
|
42253
42355
|
|
|
42254
42356
|
interface RouteInfoConstructor {
|
|
@@ -42258,6 +42360,12 @@ declare namespace __esri {
|
|
|
42258
42360
|
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-RouteInfo.html)
|
|
42259
42361
|
*/
|
|
42260
42362
|
new(properties?: RouteInfoProperties): RouteInfo;
|
|
42363
|
+
/**
|
|
42364
|
+
* Creates a [RouteInfo](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-RouteInfo.html) from the parsed [Graphic](https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html).
|
|
42365
|
+
*
|
|
42366
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-RouteInfo.html#fromGraphic)
|
|
42367
|
+
*/
|
|
42368
|
+
fromGraphic(graphic?: Graphic): RouteInfo;
|
|
42261
42369
|
fromJSON(json: any): RouteInfo;
|
|
42262
42370
|
}
|
|
42263
42371
|
|
|
@@ -43866,6 +43974,12 @@ declare namespace __esri {
|
|
|
43866
43974
|
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-Stop.html#timeWindowStart)
|
|
43867
43975
|
*/
|
|
43868
43976
|
timeWindowStart: Date;
|
|
43977
|
+
/**
|
|
43978
|
+
* Creates a [Graphic](https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html) from the [Stop](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-Stop.html) instance.
|
|
43979
|
+
*
|
|
43980
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-Stop.html#toGraphic)
|
|
43981
|
+
*/
|
|
43982
|
+
toGraphic(): Graphic;
|
|
43869
43983
|
}
|
|
43870
43984
|
|
|
43871
43985
|
interface StopConstructor {
|
|
@@ -43875,6 +43989,12 @@ declare namespace __esri {
|
|
|
43875
43989
|
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-Stop.html)
|
|
43876
43990
|
*/
|
|
43877
43991
|
new(properties?: StopProperties): Stop;
|
|
43992
|
+
/**
|
|
43993
|
+
* Creates a [Stop](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-Stop.html) from the parsed [Graphic](https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html).
|
|
43994
|
+
*
|
|
43995
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-Stop.html#fromGraphic)
|
|
43996
|
+
*/
|
|
43997
|
+
fromGraphic(graphic?: Graphic): Stop;
|
|
43878
43998
|
fromJSON(json: any): Stop;
|
|
43879
43999
|
}
|
|
43880
44000
|
|
package/layers/MapImageLayer.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import r from"../request.js";import t from"../TimeExtent.js";import o from"../core/Error.js";import{HandleOwnerMixin as i}from"../core/HandleOwner.js";import{loadAll as s}from"../core/loadAll.js";import{isSome as a}from"../core/maybe.js";import{MultiOriginJSONMixin as p}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as n,isAbortError as
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import r from"../request.js";import t from"../TimeExtent.js";import o from"../core/Error.js";import{HandleOwnerMixin as i}from"../core/HandleOwner.js";import{loadAll as s}from"../core/loadAll.js";import{isSome as a}from"../core/maybe.js";import{MultiOriginJSONMixin as p}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as n,isAbortError as l}from"../core/promiseUtils.js";import{property as m}from"../core/accessorSupport/decorators/property.js";import"../core/arrayUtils.js";import"../core/has.js";import{Integer as c}from"../core/accessorSupport/ensureType.js";import{reader as u}from"../core/accessorSupport/decorators/reader.js";import{subclass as y}from"../core/accessorSupport/decorators/subclass.js";import{writer as d}from"../core/accessorSupport/decorators/writer.js";import{nameToId as h,OriginId as f}from"../core/accessorSupport/PropertyOrigin.js";import g from"../geometry/Extent.js";import{getScale as v}from"../geometry/support/scaleUtils.js";import b from"./Layer.js";import{APIKeyMixin as j}from"./mixins/APIKeyMixin.js";import{ArcGISMapService as x}from"./mixins/ArcGISMapService.js";import{ArcGISService as S}from"./mixins/ArcGISService.js";import{BlendLayer as w}from"./mixins/BlendLayer.js";import{CustomParametersMixin as O}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as I}from"./mixins/OperationalLayer.js";import{PortalLayer as E}from"./mixins/PortalLayer.js";import{RefreshableLayer as L}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as M}from"./mixins/ScaleRangeLayer.js";import{SublayersOwner as P}from"./mixins/SublayersOwner.js";import{TemporalLayer as T}from"./mixins/TemporalLayer.js";import{url as U}from"./support/commonProperties.js";import{ExportImageParameters as R}from"./support/ExportImageParameters.js";import N from"./support/Sublayer.js";import{shouldWriteSublayerStructure as A}from"./support/sublayerUtils.js";import{serviceSupportsSpatialReference as J}from"./support/versionUtils.js";let q=class extends(w(T(M(P(x(S(I(E(p(L(j(O(i(b)))))))))))))){constructor(...e){super(...e),this.datesInUnknownTimezone=!1,this.dpi=96,this.gdbVersion=null,this.imageFormat="png24",this.imageMaxHeight=2048,this.imageMaxWidth=2048,this.imageTransparency=!0,this.isReference=null,this.labelsVisible=!1,this.operationalLayerType="ArcGISMapServiceLayer",this.sourceJSON=null,this.sublayers=null,this.type="map-image",this.url=null}normalizeCtorArgs(e,r){return"string"==typeof e?{url:e,...r}:e}load(e){const r=a(e)?e.signal:null;return this.addResolvingPromise(this.loadFromPortal({supportedTypes:["Map Service"]},e).catch(n).then((()=>this._fetchService(r)))),Promise.resolve(this)}readImageFormat(e,r){const t=r.supportedImageFormatTypes;return t&&t.includes("PNG32")?"png32":"png24"}writeSublayers(e,r,t,o){if(!this.loaded||!e)return;const i=e.slice().reverse().flatten((({sublayers:e})=>e&&e.toArray().reverse())).toArray();let s=!1;if(this.capabilities&&this.capabilities.operations.supportsExportMap&&this.capabilities.exportMap.supportsDynamicLayers){const e=h(o.origin);if(e===f.PORTAL_ITEM){const e=this.createSublayersForOrigin("service").sublayers;s=A(i,e,f.SERVICE)}else if(e>f.PORTAL_ITEM){const e=this.createSublayersForOrigin("portal-item");s=A(i,e.sublayers,h(e.origin))}}const a=[],p={writeSublayerStructure:s,...o};let n=s;i.forEach((e=>{const r=e.write({},p);a.push(r),n=n||"user"===e.originOf("visible")}));a.some((e=>Object.keys(e).length>1))&&(r.layers=a),n&&(r.visibleLayers=i.filter((e=>e.visible)).map((e=>e.id)))}createExportImageParameters(e,r,t,o){const i=o&&o.pixelRatio||1;e&&this.version>=10&&(e=e.clone().shiftCentralMeridian());const s=new R({layer:this,floors:null==o?void 0:o.floors,scale:v({extent:e,width:r})*i}),a=s.toJSON();s.destroy();const p=!o||!o.rotation||this.version<10.3?{}:{rotation:-o.rotation},n=e&&e.spatialReference,l=n.wkid||JSON.stringify(n.toJSON());a.dpi*=i;const m={};if(null!=o&&o.timeExtent){const{start:e,end:r}=o.timeExtent.toJSON();m.time=e&&r&&e===r?""+e:`${null==e?"null":e},${null==r?"null":r}`}else this.timeInfo&&!this.timeInfo.hasLiveData&&(m.time="null,null");return{bbox:e&&e.xmin+","+e.ymin+","+e.xmax+","+e.ymax,bboxSR:l,imageSR:l,size:r+","+t,...a,...p,...m}}async fetchImage(e,t,i,s){var a;const p={responseType:"image",signal:null!=(a=null==s?void 0:s.signal)?a:null,query:{...this.parsedUrl.query,...this.createExportImageParameters(e,t,i,s),f:"image",...this.refreshParameters,...this.customParameters,token:this.apiKey}},n=this.parsedUrl.path+"/export";if(null!=p.query.dynamicLayers&&!this.capabilities.exportMap.supportsDynamicLayers)throw new o("mapimagelayer:dynamiclayer-not-supported",`service ${this.url} doesn't support dynamic layers, which is required to be able to change the sublayer's order, rendering, labeling or source.`,{query:p.query});return r(n,p).then((e=>e.data)).catch((e=>{if(l(e))throw e;throw new o("mapimagelayer:image-fetch-error",`Unable to load image: ${n}`,{error:e})}))}async fetchRecomputedExtents(e={}){const o={...e,query:{returnUpdates:!0,f:"json",...this.customParameters,token:this.apiKey}},{data:i}=await r(this.url,o),{extent:s,fullExtent:a,timeExtent:p}=i,n=s||a;return{fullExtent:n&&g.fromJSON(n),timeExtent:p&&t.fromJSON({start:p[0],end:p[1]})}}loadAll(){return s(this,(e=>{e(this.allSublayers)}))}serviceSupportsSpatialReference(e){return J(this,e)}async _fetchService(e){if(this.sourceJSON)return void this.read(this.sourceJSON,{origin:"service",url:this.parsedUrl});const{data:t,ssl:o}=await r(this.parsedUrl.path,{query:{f:"json",...this.parsedUrl.query,...this.customParameters,token:this.apiKey},signal:e});o&&(this.url=this.url.replace(/^http:/i,"https:")),this.sourceJSON=t,this.read(t,{origin:"service",url:this.parsedUrl})}};e([m({type:Boolean})],q.prototype,"datesInUnknownTimezone",void 0),e([m()],q.prototype,"dpi",void 0),e([m()],q.prototype,"gdbVersion",void 0),e([m()],q.prototype,"imageFormat",void 0),e([u("imageFormat",["supportedImageFormatTypes"])],q.prototype,"readImageFormat",null),e([m({json:{origins:{service:{read:{source:"maxImageHeight"}}}}})],q.prototype,"imageMaxHeight",void 0),e([m({json:{origins:{service:{read:{source:"maxImageWidth"}}}}})],q.prototype,"imageMaxWidth",void 0),e([m()],q.prototype,"imageTransparency",void 0),e([m({type:Boolean,json:{read:!1,write:{enabled:!0,overridePolicy:()=>({enabled:!1})}}})],q.prototype,"isReference",void 0),e([m({json:{read:!1,write:!1}})],q.prototype,"labelsVisible",void 0),e([m({type:["ArcGISMapServiceLayer"]})],q.prototype,"operationalLayerType",void 0),e([m({json:{read:!1,write:!1}})],q.prototype,"popupEnabled",void 0),e([m()],q.prototype,"sourceJSON",void 0),e([m({json:{write:{ignoreOrigin:!0}}})],q.prototype,"sublayers",void 0),e([d("sublayers",{layers:{type:[N]},visibleLayers:{type:[c]}})],q.prototype,"writeSublayers",null),e([m({type:["show","hide","hide-children"]})],q.prototype,"listMode",void 0),e([m({json:{read:!1},readOnly:!0,value:"map-image"})],q.prototype,"type",void 0),e([m(U)],q.prototype,"url",void 0),q=e([y("esri.layers.MapImageLayer")],q);const F=q;export{F as default};
|
package/layers/RouteLayer.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import t from"../config.js";import"../geometry.js";import r from"../Graphic.js";import o from"../PopupTemplate.js";import"../renderers/ClassBreaksRenderer.js";import"../renderers/DictionaryRenderer.js";import"../renderers/DotDensityRenderer.js";import"../renderers/HeatmapRenderer.js";import"../renderers/Renderer.js";import"../renderers/SimpleRenderer.js";import"../renderers/UniqueValueRenderer.js";import{read as i}from"../renderers/support/jsonUtils.js";import s from"../core/Collection.js";import n from"../core/Error.js";import{HandleOwnerMixin as l}from"../core/HandleOwner.js";import a from"../core/Logger.js";import{isSome as p,isNone as u,unwrapOrValue as m}from"../core/maybe.js";import{MultiOriginJSONMixin as y}from"../core/MultiOriginJSONSupport.js";import{setDeepValue as c}from"../core/object.js";import{watch as f}from"../core/reactiveUtils.js";import{convertUnit as d}from"../core/unitUtils.js";import{urlToObject as h}from"../core/urlUtils.js";import{property as S}from"../core/accessorSupport/decorators/property.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{reader as g}from"../core/accessorSupport/decorators/reader.js";import{subclass as w}from"../core/accessorSupport/decorators/subclass.js";import{writer as v}from"../core/accessorSupport/decorators/writer.js";import{updateOrigins as b}from"../core/accessorSupport/originUtils.js";import P from"../geometry/Extent.js";import{initializeProjection as B,project as I}from"../geometry/projection.js";import{WGS84 as N}from"../geometry/support/spatialReferenceUtils.js";import D from"./Layer.js";import{BlendLayer as j}from"./mixins/BlendLayer.js";import{OperationalLayer as _}from"./mixins/OperationalLayer.js";import{PortalLayer as O}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as L}from"./mixins/ScaleRangeLayer.js";import{sanitizeUrl as C}from"./support/arcgisLayerUrl.js";import T from"./support/DefaultSymbols.js";import R from"../portal/Portal.js";import J from"../portal/PortalItem.js";import{fetchServiceDescription as A}from"../rest/networkService.js";import{solve as x}from"../rest/route.js";import F from"../rest/support/DirectionLine.js";import k from"../rest/support/DirectionPoint.js";import{directionsTimeUnitJsonMap as G,directionsLengthUnitJsonMap as U}from"../rest/support/networkEnums.js";import M from"../rest/support/PointBarrier.js";import E from"../rest/support/PolygonBarrier.js";import q from"../rest/support/PolylineBarrier.js";import W from"../rest/support/RouteInfo.js";import V from"../rest/support/RouteParameters.js";import H from"../rest/support/RouteSettings.js";import K from"../rest/support/Stop.js";import Q from"../geometry/SpatialReference.js";import Y from"../geometry/Multipoint.js";function Z(e){return e.length?e:null}function $(e){const{defaultTravelMode:t,supportedTravelModes:r}=e;return r.find((e=>e.id===t))}function z(e){return"layers"in e}function X(e){return"esri.rest.support.FeatureSet"===e.declaredClass}function ee(e){return"esri.rest.support.NetworkFeatureSet"===e.declaredClass}function te(e,t,r){var o,i,s,l,a,m,y,c,f,d,h;const S=t.networkDataset.networkAttributes.filter((e=>"esriNAUTCost"===e.usageType)),g=$(t),w=null!=(o=r.travelMode)?o:g;if(u(w))return void me.warn("route-layer:missing-travel-mode","The routing service must have a default travel mode or one must be specified in the route parameter.");const{timeAttributeName:v,distanceAttributeName:b}=w,P=S.find((e=>e.name===v)),B=S.find((e=>e.name===b)),I=null!=(i=null!=(s=null==(l=r.travelMode)?void 0:l.impedanceAttributeName)?s:r.impedanceAttribute)?i:t.impedance,N=G.fromJSON(null==P?void 0:P.units),D=U.fromJSON(null==B?void 0:B.units);if(!N||!D)throw new n("routelayer:unknown-impedance-units","the units of either the distance or time impedance are unknown");const j=null!=(a=r.directionsLanguage)?a:t.directionsLanguage,_=null!=(m=null!=(y=r.accumulateAttributes)?y:t.accumulateAttributeNames)?m:[],O=new Set(S.filter((({name:e})=>e===v||e===b||e===I||_.includes(e))).map((({name:e})=>e))),L=e=>{for(const t in e)O.has(t)||delete e[t]};for(const n of e.pointBarriers){var C;if(p(n.costs))n.addedCost=null!=(C=n.costs[I])?C:0,L(n.costs)}for(const n of e.polygonBarriers){var T;if(p(n.costs))n.scaleFactor=null!=(T=n.costs[I])?T:1,L(n.costs)}for(const n of e.polylineBarriers){var R;if(p(n.costs))n.scaleFactor=null!=(R=n.costs[I])?R:1,L(n.costs)}const{routeInfo:J}=e,{findBestSequence:A,preserveFirstStop:x,preserveLastStop:F,startTimeIsUTC:k,timeWindowsAreUTC:M}=r;J.analysisSettings=new H({accumulateAttributes:_,directionsLanguage:j,findBestSequence:A,preserveFirstStop:x,preserveLastStop:F,startTimeIsUTC:k,timeWindowsAreUTC:M,travelMode:w}),J.totalDuration=oe(null!=(c=J.totalCosts[v])?c:0,N),J.totalDistance=ie(null!=(f=J.totalCosts[b])?f:0,D),J.totalLateDuration=oe(null!=(d=J.totalViolations[v])?d:0,N),J.totalWaitDuration=oe(null!=(h=J.totalWait[v])?h:0,N),p(J.totalCosts)&&L(J.totalCosts),p(J.totalViolations)&&L(J.totalViolations),p(J.totalWait)&&L(J.totalWait);for(const n of e.stops){var E,q,W,V,K,Q;if(p(n.serviceCosts))n.serviceDuration=oe(null!=(E=n.serviceCosts[v])?E:0,N),n.serviceDistance=ie(null!=(q=n.serviceCosts[b])?q:0,D),L(n.serviceCosts);if(p(n.cumulativeCosts))n.cumulativeDuration=oe(null!=(W=n.cumulativeCosts[v])?W:0,N),n.cumulativeDistance=ie(null!=(V=n.cumulativeCosts[b])?V:0,D),L(n.cumulativeCosts);if(p(n.violations))n.lateDuration=oe(null!=(K=n.violations[v])?K:0,N),L(n.violations);if(p(n.wait))n.waitDuration=oe(null!=(Q=n.wait[v])?Q:0,N),L(n.wait)}}async function re(e){const t=Q.WGS84;return await B(e.spatialReference,t),I(e,t)}function oe(e,t){switch(t){case"seconds":return e/60;case"hours":return 60*e;case"days":return 60*e*24;default:return e}}function ie(e,t){return"decimal-degrees"===t||"points"===t||"unknown"===t?e:d(e,t,"meters")}const se=s.ofType(F),ne=s.ofType(k),le=s.ofType(M),ae=s.ofType(E),pe=s.ofType(q),ue=s.ofType(K),me=a.getLogger("esri.layers.RouteLayer");let ye=class extends(j(L(_(O(y(l(D))))))){constructor(...e){super(...e),this._cachedServiceDescription=null,this._featureCollection=null,this._type="Feature Collection",this.defaultSymbols=new T,this.directionLines=null,this.directionPoints=null,this.featureCollectionType="route",this.legendEnabled=!1,this.maxScale=0,this.minScale=0,this.pointBarriers=new le,this.polygonBarriers=new ae,this.polylineBarriers=new pe,this.routeInfo=null,this.spatialReference=Q.WGS84,this.stops=new ue,this.type="route",this.handles.add(f((()=>this.stops.toArray()),(()=>{u(this.routeInfo)&&this._setStopSymbol(this.stops)}),{sync:!0}))}writeFeatureCollectionWebmap(e,t,r,o){const i=[this._writePolygonBarriers(),this._writePolylineBarriers(),this._writePointBarriers(),this._writeRouteInfo(),this._writeDirectionLines(),this._writeDirectionPoints(),this._writeStops()].filter((e=>!!e)),s=i.map(((e,t)=>t)),n="web-map"===o.origin?"featureCollection.layers":"layers";c(n,i,t),t.opacity=this.opacity,t.visibility=this.visible,t.visibleLayers=s}readDirectionLines(e,t){return this._getNetworkFeatures(t,"DirectionLines",(e=>F.fromPortalJSON(e)))}readDirectionPoints(e,t){return this._getNetworkFeatures(t,"DirectionPoints",(e=>k.fromPortalJSON(e)))}get fullExtent(){if(p(this.routeInfo)&&p(this.routeInfo.geometry))return this.routeInfo.geometry.extent;const e=new P({xmin:-180,ymin:-90,xmax:180,ymax:90,spatialReference:Q.WGS84}),t=this.stops.filter((e=>p(e.geometry)));if(t.length<2)return e;const{spatialReference:r}=t.getItemAt(0).geometry;if(u(r))return e;const o=t.toArray().map((e=>{const t=e.geometry;return[t.x,t.y]}));return new Y({points:o,spatialReference:r}).extent}readMaxScale(e,t){var r;const o=(z(t)?t.layers:t.featureCollection.layers).find((e=>p(e.layerDefinition.maxScale)));return null!=(r=null==o?void 0:o.layerDefinition.maxScale)?r:0}readMinScale(e,t){var r;const o=(z(t)?t.layers:t.featureCollection.layers).find((e=>p(e.layerDefinition.minScale)));return null!=(r=null==o?void 0:o.layerDefinition.minScale)?r:0}readPointBarriers(e,t){return this._getNetworkFeatures(t,"Barriers",(e=>M.fromPortalJSON(e)))}readPolygonBarriers(e,t){return this._getNetworkFeatures(t,"PolygonBarriers",(e=>E.fromPortalJSON(e)))}readPolylineBarriers(e,t){return this._getNetworkFeatures(t,"PolylineBarriers",(e=>q.fromPortalJSON(e)))}readRouteInfo(e,t){const r=this._getNetworkFeatures(t,"RouteInfo",(e=>W.fromPortalJSON(e)));return r.length>0?r.getItemAt(0):null}readSpatialReference(e,t){var r,o;const i=z(t)?t.layers:t.featureCollection.layers;if(!i.length)return Q.WGS84;const{layerDefinition:s}=i[0],n=null!=(r=null!=(o=s.spatialReference)?o:s.extent.spatialReference)?r:N;return Q.fromJSON(n)}readStops(e,t){return this._getNetworkFeatures(t,"Stops",(e=>K.fromPortalJSON(e)),(e=>this._setStopSymbol(e)))}get title(){return p(this.routeInfo)&&p(this.routeInfo.name)?this.routeInfo.name:"Route"}set title(e){e?this._override("title",e):this._clearOverride("title")}get url(){return t.routeServiceUrl}set url(e){null!=e?this._set("url",C(e,me)):this._set("url",t.routeServiceUrl)}load(e){return this.addResolvingPromise(this.loadFromPortal({supportedTypes:["Feature Collection"]},e)),Promise.resolve(this)}removeAll(){p(this.directionLines)&&(this.directionLines.removeAll(),this._set("directionLines",null)),p(this.directionPoints)&&(this.directionPoints.removeAll(),this._set("directionPoints",null)),p(this.routeInfo)&&this._set("routeInfo",null),this.pointBarriers.removeAll(),this.polygonBarriers.removeAll(),this.polylineBarriers.removeAll(),this.stops.removeAll()}async save(){await this.load();const{fullExtent:e,portalItem:t}=this;if(!t)throw new n("routelayer:portal-item-not-set","save() requires to the layer to have a portal item");if(!t.id)throw new n("routelayer:portal-item-not-saved","Please use saveAs() first to save the routelayer");if("Feature Collection"!==t.type)throw new n("routelayer:portal-item-wrong-type",'Portal item needs to have type "Feature Collection"');if(u(this.routeInfo))throw new n("routelayer:route-unsolved","save() requires a solved route");const{portal:r}=t;if(await r._signIn(),r.user||await t.reload(),r.user.username!==t.owner)throw new n("routelayer:not-portal-item-owner","You can only overwrite your portal items");const{itemUrl:o}=t,i={messages:[],origin:"portal-item",portal:r,url:o&&h(o),writtenProperties:[]},s=this.write(null,i);return t.extent=await re(e),t.title=this.title,await t.update({data:s}),t}async saveAs(e,t={}){if(await this.load(),u(this.routeInfo))throw new n("routelayer:route-unsolved","saveAs() requires a solved route");const r=J.from(e).clone();null!=r.extent||(r.extent=await re(this.fullExtent)),r.id=null,null!=r.portal||(r.portal=R.getDefault()),null!=r.title||(r.title=this.title),r.type="Feature Collection",r.typeKeywords=["Data","Feature Collection","Multilayer","Route Layer"];const{portal:o}=r,i={messages:[],origin:"portal-item",portal:o,url:null,writtenProperties:[]};await o._signIn();const s=null==t?void 0:t.folder,l=this.write(null,i);return await o.user.addItem({item:r,folder:s,data:l}),this.portalItem=r,b(i),i.portalItem=r,r}async solve(e,t){var r,o,i,l,a,y;const c=null!=(r=null==e?void 0:e.stops)?r:this.stops,f=null!=(o=null==e?void 0:e.pointBarriers)?o:Z(this.pointBarriers),d=null!=(i=null==e?void 0:e.polylineBarriers)?i:Z(this.polylineBarriers),h=null!=(l=null==e?void 0:e.polygonBarriers)?l:Z(this.polygonBarriers);if(u(c))throw new n("routelayer:undefined-stops","the route layer must have stops defined in the route parameters.");if((X(c)||ee(c))&&c.features.length<2||s.isCollection(c)&&c.length<2)throw new n("routelayer:insufficent-stops","the route layer must have two or more stops to solve a route.");const S=null==e?void 0:e.apiKey,g=this.url,w=await this._getServiceDescription(g,S,t),v=$(w),b=null!=(a=null==e?void 0:e.travelMode)?a:v,P=null!=(y=null==e?void 0:e.accumulateAttributes)?y:[];p(b)&&P.push(b.distanceAttributeName);const B={startTime:new Date},I={accumulateAttributes:P,directionsOutputType:"featuresets",ignoreInvalidLocations:!0,pointBarriers:f,polylineBarriers:d,polygonBarriers:h,preserveFirstStop:!0,preserveLastStop:!0,returnBarriers:!!f,returnDirections:!0,returnPolygonBarriers:!!h,returnPolylineBarriers:!!d,returnRoutes:!0,returnStops:!0,stops:c},N=e?V.from(e):new V;for(const s in B)null==N[s]&&(N[s]=B[s]);N.set(I);const D=await x(g,N,t),j=this._toRouteLayerSolution(D);return this._isOverridden("title")||(this.title=m(j.routeInfo.name,"Route")),te(j,w,N),j}update(e){const{stops:t,directionLines:r,directionPoints:o,pointBarriers:i,polylineBarriers:s,polygonBarriers:n,routeInfo:l}=e;this.set({stops:t,pointBarriers:i,polylineBarriers:s,polygonBarriers:n}),this._set("directionLines",r),this._set("directionPoints",o),this._set("routeInfo",l)}_getLayerDefinition(){return{capabilities:"Query,Update,Editing",extent:this.fullExtent.toJSON(),hasM:!1,hasZ:!1,maxScale:this.maxScale,minScale:this.minScale,objectIdField:"__OBJECTID",spatialReference:this.spatialReference.toJSON(),type:"Feature Layer",typeIdField:""}}_getNetworkFeatures(e,t,n,l){const a=(z(e)?e.layers:e.featureCollection.layers).find((e=>e.layerDefinition.name===t));if(u(a))return new s;const{layerDefinition:p,popupInfo:m,featureSet:y}=a,c=p.drawingInfo.renderer,{features:f}=y,d=c&&i(c),h=f.map((e=>{var i;const s=n(e),{attributes:l}=e,a=new r({attributes:l});return null!=s.symbol||(s.symbol=null!=(i=null==d?void 0:d.getSymbol(a))?i:this._getNetworkSymbol(t)),null!=s.popupTemplate||(s.popupTemplate=m&&o.fromJSON(m)),s}));return l&&h.some((e=>!e.symbol))&&l(h),new s(h)}_getNetworkSymbol(e){switch(e){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(e,t,r){if(p(this._cachedServiceDescription)&&this._cachedServiceDescription.url===e)return this._cachedServiceDescription.serviceDescription;const o=await A(e,t,r);return this._cachedServiceDescription={serviceDescription:o,url:e},o}_setStopSymbol(e){if(!e||0===e.length)return;if(u(this.routeInfo)||1===e.length)return void e.forEach(((t,r)=>{switch(r){case 0:t.symbol=this.defaultSymbols.firstStop;break;case e.length-1:t.symbol=this.defaultSymbols.lastStop;break;default:t.symbol=this.defaultSymbols.middleStop}}));const t=e.map((e=>e.sequence)).filter((e=>p(e))),r=Math.min(...t),o=Math.max(...t);for(const i of e)i.sequence!==r?i.sequence!==o?"ok"===i.status||"not-located-on-closest"===i.status?"waypoint"!==i.locationType?"break"!==i.locationType?i.symbol=this.defaultSymbols.middleStop:i.symbol=this.defaultSymbols.breakStop:i.symbol=this.defaultSymbols.waypointStop:i.symbol=this.defaultSymbols.invalidStop:i.symbol=this.defaultSymbols.lastStop:i.symbol=this.defaultSymbols.firstStop}_toRouteLayerSolution(e){var t,r,o,i,s;const n=e.routeResults[0].stops.map((e=>K.fromJSON(e.toJSON())));this._setStopSymbol(n);const l=new ue(n),a=new ae(null==(t=e.polygonBarriers)?void 0:t.map((e=>{const t=E.fromJSON(e.toJSON());return t.symbol=this.defaultSymbols.polygonBarriers,t}))),p=new pe(null==(r=e.polylineBarriers)?void 0:r.map((e=>{const t=q.fromJSON(e.toJSON());return t.symbol=this.defaultSymbols.polylineBarriers,t}))),u=new le(null==(o=e.pointBarriers)?void 0:o.map((e=>{const t=M.fromJSON(e.toJSON());return t.symbol=this.defaultSymbols.pointBarriers,t}))),m=W.fromJSON(e.routeResults[0].route.toJSON());m.symbol=this.defaultSymbols.routeInfo;const y=new ne(null==(i=e.routeResults[0].directionPoints)?void 0:i.features.map((e=>{const t=k.fromJSON(e.toJSON());return t.symbol=this.defaultSymbols.directionPoints,t})));return{directionLines:new se(null==(s=e.routeResults[0].directionLines)?void 0:s.features.map((e=>{const t=F.fromJSON(e.toJSON());return t.symbol=this.defaultSymbols.directionLines,t}))),directionPoints:y,pointBarriers:u,polygonBarriers:a,polylineBarriers:p,routeInfo:m,stops:l}}_writeDirectionLines(){return u(this.directionLines)||!this.directionLines.length?null:{featureSet:{features:this.directionLines.toArray().map((e=>e.toPortalJSON())),geometryType:"esriGeometryPolyline"},layerDefinition:{...this._getLayerDefinition(),drawingInfo:{renderer:{type:"simple",symbol:this.defaultSymbols.directionLines.toJSON()}},fields:F.fields,geometryType:"esriGeometryPolyline",name:"DirectionLines",title:"Direction Lines"},popupInfo:F.popupInfo}}_writeDirectionPoints(){return u(this.directionPoints)||!this.directionPoints.length?null:{featureSet:{features:this.directionPoints.toArray().map((e=>e.toPortalJSON())),geometryType:"esriGeometryPoint"},layerDefinition:{...this._getLayerDefinition(),drawingInfo:{renderer:{type:"simple",symbol:this.defaultSymbols.directionPoints.toJSON()}},fields:k.fields,geometryType:"esriGeometryPoint",name:"DirectionPoints",title:"Direction Points"},popupInfo:k.popupInfo}}_writePointBarriers(){return u(this.pointBarriers)||!this.pointBarriers.length?null:{featureSet:{features:this.pointBarriers.toArray().map((e=>e.toPortalJSON())),geometryType:"esriGeometryPoint"},layerDefinition:{...this._getLayerDefinition(),drawingInfo:{renderer:{type:"simple",symbol:this.defaultSymbols.pointBarriers.toJSON()}},fields:M.fields,geometryType:"esriGeometryPoint",name:"Barrier",title:"Point Barrier"},popupInfo:M.popupInfo}}_writePolygonBarriers(){return u(this.polygonBarriers)||!this.polygonBarriers.length?null:{featureSet:{features:this.polygonBarriers.toArray().map((e=>e.toPortalJSON())),geometryType:"esriGeometryPolygon"},layerDefinition:{...this._getLayerDefinition(),drawingInfo:{renderer:{type:"simple",symbol:this.defaultSymbols.polygonBarriers.toJSON()}},fields:E.fields,geometryType:"esriGeometryPolygon",name:"PolygonBarriers",title:"Polygon Barriers"},popupInfo:E.popupInfo}}_writePolylineBarriers(){return u(this.polylineBarriers)||!this.polylineBarriers.length?null:{featureSet:{features:this.polylineBarriers.toArray().map((e=>e.toPortalJSON())),geometryType:"esriGeometryPolyline"},layerDefinition:{...this._getLayerDefinition(),drawingInfo:{renderer:{type:"simple",symbol:this.defaultSymbols.polylineBarriers.toJSON()}},fields:q.fields,geometryType:"esriGeometryPolyline",name:"PolylineBarriers",title:"Line Barriers"},popupInfo:q.popupInfo}}_writeRouteInfo(){return u(this.routeInfo)?null:{featureSet:{features:[this.routeInfo.toPortalJSON()],geometryType:"esriGeometryPolyline"},layerDefinition:{...this._getLayerDefinition(),drawingInfo:{renderer:{type:"simple",symbol:this.defaultSymbols.routeInfo.toJSON()}},fields:W.fields,geometryType:"esriGeometryPolyline",name:"RouteInfo",title:"Route Details"},popupInfo:W.popupInfo}}_writeStops(){return u(this.stops)||!this.stops.length?null:{featureSet:{features:this.stops.toArray().map((e=>e.toPortalJSON())),geometryType:"esriGeometryPoint"},layerDefinition:{...this._getLayerDefinition(),drawingInfo:{renderer:{type:"uniqueValue",field1:"Sequence",defaultSymbol:this.defaultSymbols.middleStop.toJSON(),uniqueValueInfos:[{value:"1",symbol:this.defaultSymbols.firstStop.toJSON(),label:"First Stop"},{value:`${this.stops.length}`,symbol:this.defaultSymbols.lastStop.toJSON(),label:"Last Stop"}]}},fields:K.fields,geometryType:"esriGeometryPoint",name:"Stops",title:"Stops"},popupInfo:K.popupInfo}}};e([S({readOnly:!0,json:{read:!1,origins:{"portal-item":{write:{allowNull:!0,ignoreOrigin:!0}},"web-map":{write:{overridePolicy(){return{allowNull:!0,ignoreOrigin:null==this.portalItem}}}}}}})],ye.prototype,"_featureCollection",void 0),e([v(["web-map","portal-item"],"_featureCollection")],ye.prototype,"writeFeatureCollectionWebmap",null),e([S({readOnly:!0,json:{read:!1,origins:{"web-map":{write:{target:"type",overridePolicy(){return{ignoreOrigin:null!=this.portalItem}}}}}}})],ye.prototype,"_type",void 0),e([S({nonNullable:!0,type:T})],ye.prototype,"defaultSymbols",void 0),e([S({readOnly:!0})],ye.prototype,"directionLines",void 0),e([g(["web-map","portal-item"],"directionLines",["layers","featureCollection.layers"])],ye.prototype,"readDirectionLines",null),e([S({readOnly:!0})],ye.prototype,"directionPoints",void 0),e([g(["web-map","portal-item"],"directionPoints",["layers","featureCollection.layers"])],ye.prototype,"readDirectionPoints",null),e([S({readOnly:!0,json:{read:!1,origins:{"web-map":{write:{ignoreOrigin:!0}}}}})],ye.prototype,"featureCollectionType",void 0),e([S({readOnly:!0})],ye.prototype,"fullExtent",null),e([S({json:{origins:{"web-map":{name:"featureCollection.showLegend"}},write:!0}})],ye.prototype,"legendEnabled",void 0),e([S({type:["show","hide"]})],ye.prototype,"listMode",void 0),e([S({type:Number,nonNullable:!0,json:{write:!1}})],ye.prototype,"maxScale",void 0),e([g(["web-map","portal-item"],"maxScale",["layers","featureCollection.layers"])],ye.prototype,"readMaxScale",null),e([S({type:Number,nonNullable:!0,json:{write:!1}})],ye.prototype,"minScale",void 0),e([g(["web-map","portal-item"],"minScale",["layers","featureCollection.layers"])],ye.prototype,"readMinScale",null),e([S({type:["ArcGISFeatureLayer"],value:"ArcGISFeatureLayer"})],ye.prototype,"operationalLayerType",void 0),e([S({nonNullable:!0,type:s.ofType(M)})],ye.prototype,"pointBarriers",void 0),e([g(["web-map","portal-item"],"pointBarriers",["layers","featureCollection.layers"])],ye.prototype,"readPointBarriers",null),e([S({nonNullable:!0,type:s.ofType(E)})],ye.prototype,"polygonBarriers",void 0),e([g(["web-map","portal-item"],"polygonBarriers",["layers","featureCollection.layers"])],ye.prototype,"readPolygonBarriers",null),e([S({nonNullable:!0,type:s.ofType(q)})],ye.prototype,"polylineBarriers",void 0),e([g(["web-map","portal-item"],"polylineBarriers",["layers","featureCollection.layers"])],ye.prototype,"readPolylineBarriers",null),e([S({readOnly:!0})],ye.prototype,"routeInfo",void 0),e([g(["web-map","portal-item"],"routeInfo",["layers","featureCollection.layers"])],ye.prototype,"readRouteInfo",null),e([S({type:Q})],ye.prototype,"spatialReference",void 0),e([g(["web-map","portal-item"],"spatialReference",["layers","featureCollection.layers"])],ye.prototype,"readSpatialReference",null),e([S({nonNullable:!0,type:s.ofType(K)})],ye.prototype,"stops",void 0),e([g(["web-map","portal-item"],"stops",["layers","featureCollection.layers"])],ye.prototype,"readStops",null),e([S()],ye.prototype,"title",null),e([S({readOnly:!0,json:{read:!1}})],ye.prototype,"type",void 0),e([S()],ye.prototype,"url",null),ye=e([w("esri.layers.RouteLayer")],ye);const ce=ye;export{ce as default};
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import t from"../config.js";import"../geometry.js";import r from"../Graphic.js";import o from"../PopupTemplate.js";import"../renderers/ClassBreaksRenderer.js";import"../renderers/DictionaryRenderer.js";import"../renderers/DotDensityRenderer.js";import"../renderers/HeatmapRenderer.js";import"../renderers/Renderer.js";import"../renderers/SimpleRenderer.js";import"../renderers/UniqueValueRenderer.js";import{read as i}from"../renderers/support/jsonUtils.js";import s from"../core/Collection.js";import n from"../core/Error.js";import{HandleOwnerMixin as l}from"../core/HandleOwner.js";import a from"../core/Logger.js";import{isSome as p,isNone as u,unwrapOrValue as m}from"../core/maybe.js";import{MultiOriginJSONMixin as y}from"../core/MultiOriginJSONSupport.js";import{setDeepValue as c}from"../core/object.js";import{isAbortError as f}from"../core/promiseUtils.js";import{watch as d}from"../core/reactiveUtils.js";import{convertUnit as h}from"../core/unitUtils.js";import{urlToObject as S}from"../core/urlUtils.js";import{property as g}from"../core/accessorSupport/decorators/property.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{reader as w}from"../core/accessorSupport/decorators/reader.js";import{subclass as v}from"../core/accessorSupport/decorators/subclass.js";import{writer as b}from"../core/accessorSupport/decorators/writer.js";import{updateOrigins as B}from"../core/accessorSupport/originUtils.js";import P from"../geometry/Extent.js";import{initializeProjection as I,project as D}from"../geometry/projection.js";import{WGS84 as j}from"../geometry/support/spatialReferenceUtils.js";import _ from"./Layer.js";import{BlendLayer as L}from"./mixins/BlendLayer.js";import{OperationalLayer as N}from"./mixins/OperationalLayer.js";import{PortalLayer as C}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as O}from"./mixins/ScaleRangeLayer.js";import{sanitizeUrl as T}from"./support/arcgisLayerUrl.js";import R from"./support/DefaultSymbols.js";import A from"../portal/Portal.js";import x from"../portal/PortalItem.js";import{fetchServiceDescription as J}from"../rest/networkService.js";import{solve as F}from"../rest/route.js";import G from"../rest/support/DirectionLine.js";import k from"../rest/support/DirectionPoint.js";import{directionsTimeUnitJsonMap as U,directionsLengthUnitJsonMap as M}from"../rest/support/networkEnums.js";import q from"../rest/support/PointBarrier.js";import E from"../rest/support/PolygonBarrier.js";import W from"../rest/support/PolylineBarrier.js";import V from"../rest/support/RouteInfo.js";import H from"../rest/support/RouteParameters.js";import K from"../rest/support/RouteSettings.js";import Q from"../rest/support/Stop.js";import Y from"../geometry/SpatialReference.js";import Z from"../geometry/Multipoint.js";function $(e){return e.length?e:null}function z(e){const{defaultTravelMode:t,supportedTravelModes:r}=e;return r.find((e=>e.id===t))}function X(e){return"layers"in e}function ee(e){return"esri.rest.support.FeatureSet"===e.declaredClass}function te(e){return"esri.rest.support.NetworkFeatureSet"===e.declaredClass}function re(e,t,r){var o,i,s,l,a,m,y,c,f,d,h;const S=t.networkDataset.networkAttributes.filter((e=>"esriNAUTCost"===e.usageType)),g=z(t),w=null!=(o=r.travelMode)?o:g;if(u(w))return void ce.warn("route-layer:missing-travel-mode","The routing service must have a default travel mode or one must be specified in the route parameter.");const{timeAttributeName:v,distanceAttributeName:b}=w,B=S.find((e=>e.name===v)),P=S.find((e=>e.name===b)),I=null!=(i=null!=(s=null==(l=r.travelMode)?void 0:l.impedanceAttributeName)?s:r.impedanceAttribute)?i:t.impedance,D=U.fromJSON(null==B?void 0:B.units),j=M.fromJSON(null==P?void 0:P.units);if(!D||!j)throw new n("routelayer:unknown-impedance-units","the units of either the distance or time impedance are unknown");const _=null!=(a=r.directionsLanguage)?a:t.directionsLanguage,L=null!=(m=null!=(y=r.accumulateAttributes)?y:t.accumulateAttributeNames)?m:[],N=new Set(S.filter((({name:e})=>e===v||e===b||e===I||L.includes(e))).map((({name:e})=>e))),C=e=>{for(const t in e)N.has(t)||delete e[t]};for(const n of e.pointBarriers){var O;if(p(n.costs))n.addedCost=null!=(O=n.costs[I])?O:0,C(n.costs)}for(const n of e.polygonBarriers){var T;if(p(n.costs))n.scaleFactor=null!=(T=n.costs[I])?T:1,C(n.costs)}for(const n of e.polylineBarriers){var R;if(p(n.costs))n.scaleFactor=null!=(R=n.costs[I])?R:1,C(n.costs)}const{routeInfo:A}=e,{findBestSequence:x,preserveFirstStop:J,preserveLastStop:F,startTimeIsUTC:G,timeWindowsAreUTC:k}=r;A.analysisSettings=new K({accumulateAttributes:L,directionsLanguage:_,findBestSequence:x,preserveFirstStop:J,preserveLastStop:F,startTimeIsUTC:G,timeWindowsAreUTC:k,travelMode:w}),A.totalDuration=ie(null!=(c=A.totalCosts[v])?c:0,D),A.totalDistance=se(null!=(f=A.totalCosts[b])?f:0,j),A.totalLateDuration=ie(null!=(d=A.totalViolations[v])?d:0,D),A.totalWaitDuration=ie(null!=(h=A.totalWait[v])?h:0,D),p(A.totalCosts)&&C(A.totalCosts),p(A.totalViolations)&&C(A.totalViolations),p(A.totalWait)&&C(A.totalWait);for(const n of e.stops){var q,E,W,V,H,Q;if(p(n.serviceCosts))n.serviceDuration=ie(null!=(q=n.serviceCosts[v])?q:0,D),n.serviceDistance=se(null!=(E=n.serviceCosts[b])?E:0,j),C(n.serviceCosts);if(p(n.cumulativeCosts))n.cumulativeDuration=ie(null!=(W=n.cumulativeCosts[v])?W:0,D),n.cumulativeDistance=se(null!=(V=n.cumulativeCosts[b])?V:0,j),C(n.cumulativeCosts);if(p(n.violations))n.lateDuration=ie(null!=(H=n.violations[v])?H:0,D),C(n.violations);if(p(n.wait))n.waitDuration=ie(null!=(Q=n.wait[v])?Q:0,D),C(n.wait)}}async function oe(e){const t=Y.WGS84;return await I(e.spatialReference,t),D(e,t)}function ie(e,t){switch(t){case"seconds":return e/60;case"hours":return 60*e;case"days":return 60*e*24;default:return e}}function se(e,t){return"decimal-degrees"===t||"points"===t||"unknown"===t?e:h(e,t,"meters")}function ne(e){const{attributes:t,geometry:r,popupTemplate:o,symbol:i}=e.toGraphic().toJSON();return{attributes:t,geometry:r,popupInfo:o,symbol:i}}const le=s.ofType(G),ae=s.ofType(k),pe=s.ofType(q),ue=s.ofType(E),me=s.ofType(W),ye=s.ofType(Q),ce=a.getLogger("esri.layers.RouteLayer");let fe=class extends(L(O(N(C(y(l(_))))))){constructor(...e){super(...e),this._cachedServiceDescription=null,this._featureCollection=null,this._type="Feature Collection",this.defaultSymbols=new R,this.directionLines=null,this.directionPoints=null,this.featureCollectionType="route",this.legendEnabled=!1,this.maxScale=0,this.minScale=0,this.pointBarriers=new pe,this.polygonBarriers=new ue,this.polylineBarriers=new me,this.routeInfo=null,this.spatialReference=Y.WGS84,this.stops=new ye,this.type="route",this.handles.add(d((()=>this.stops.toArray()),(()=>{u(this.routeInfo)&&this._setStopSymbol(this.stops)}),{sync:!0}))}writeFeatureCollectionWebmap(e,t,r,o){const i=[this._writePolygonBarriers(),this._writePolylineBarriers(),this._writePointBarriers(),this._writeRouteInfo(),this._writeDirectionLines(),this._writeDirectionPoints(),this._writeStops()].filter((e=>!!e)),s=i.map(((e,t)=>t)),n="web-map"===o.origin?"featureCollection.layers":"layers";c(n,i,t),t.opacity=this.opacity,t.visibility=this.visible,t.visibleLayers=s}readDirectionLines(e,t){return this._getNetworkFeatures(t,"DirectionLines",(e=>G.fromGraphic(e)))}readDirectionPoints(e,t){return this._getNetworkFeatures(t,"DirectionPoints",(e=>k.fromGraphic(e)))}get fullExtent(){if(p(this.routeInfo)&&p(this.routeInfo.geometry))return this.routeInfo.geometry.extent;const e=new P({xmin:-180,ymin:-90,xmax:180,ymax:90,spatialReference:Y.WGS84}),t=this.stops.filter((e=>p(e.geometry)));if(t.length<2)return e;const{spatialReference:r}=t.getItemAt(0).geometry;if(u(r))return e;const o=t.toArray().map((e=>{const t=e.geometry;return[t.x,t.y]}));return new Z({points:o,spatialReference:r}).extent}readMaxScale(e,t){var r;const o=(X(t)?t.layers:t.featureCollection.layers).find((e=>p(e.layerDefinition.maxScale)));return null!=(r=null==o?void 0:o.layerDefinition.maxScale)?r:0}readMinScale(e,t){var r;const o=(X(t)?t.layers:t.featureCollection.layers).find((e=>p(e.layerDefinition.minScale)));return null!=(r=null==o?void 0:o.layerDefinition.minScale)?r:0}readPointBarriers(e,t){return this._getNetworkFeatures(t,"Barriers",(e=>q.fromGraphic(e)))}readPolygonBarriers(e,t){return this._getNetworkFeatures(t,"PolygonBarriers",(e=>E.fromGraphic(e)))}readPolylineBarriers(e,t){return this._getNetworkFeatures(t,"PolylineBarriers",(e=>W.fromGraphic(e)))}readRouteInfo(e,t){const r=this._getNetworkFeatures(t,"RouteInfo",(e=>V.fromGraphic(e)));return r.length>0?r.getItemAt(0):null}readSpatialReference(e,t){var r,o;const i=X(t)?t.layers:t.featureCollection.layers;if(!i.length)return Y.WGS84;const{layerDefinition:s}=i[0],n=null!=(r=null!=(o=s.spatialReference)?o:s.extent.spatialReference)?r:j;return Y.fromJSON(n)}readStops(e,t){return this._getNetworkFeatures(t,"Stops",(e=>Q.fromGraphic(e)),(e=>this._setStopSymbol(e)))}get title(){return p(this.routeInfo)&&p(this.routeInfo.name)?this.routeInfo.name:"Route"}set title(e){e?this._override("title",e):this._clearOverride("title")}get url(){return t.routeServiceUrl}set url(e){null!=e?this._set("url",T(e,ce)):this._set("url",t.routeServiceUrl)}load(e){return this.addResolvingPromise(this.loadFromPortal({supportedTypes:["Feature Collection"]},e)),Promise.resolve(this)}removeAll(){p(this.directionLines)&&(this.directionLines.removeAll(),this._set("directionLines",null)),p(this.directionPoints)&&(this.directionPoints.removeAll(),this._set("directionPoints",null)),p(this.routeInfo)&&this._set("routeInfo",null),this.pointBarriers.removeAll(),this.polygonBarriers.removeAll(),this.polylineBarriers.removeAll(),this.stops.removeAll()}async save(){await this.load();const{fullExtent:e,portalItem:t}=this;if(!t)throw new n("routelayer:portal-item-not-set","save() requires to the layer to have a portal item");if(!t.id)throw new n("routelayer:portal-item-not-saved","Please use saveAs() first to save the routelayer");if("Feature Collection"!==t.type)throw new n("routelayer:portal-item-wrong-type",'Portal item needs to have type "Feature Collection"');if(u(this.routeInfo))throw new n("routelayer:route-unsolved","save() requires a solved route");const{portal:r}=t;if(await r._signIn(),r.user||await t.reload(),r.user.username!==t.owner)throw new n("routelayer:not-portal-item-owner","You can only overwrite your portal items");const{itemUrl:o}=t,i={messages:[],origin:"portal-item",portal:r,url:o&&S(o),writtenProperties:[]},s=this.write(null,i);return t.extent=await oe(e),t.title=this.title,await t.update({data:s}),t}async saveAs(e,t={}){if(await this.load(),u(this.routeInfo))throw new n("routelayer:route-unsolved","saveAs() requires a solved route");const r=x.from(e).clone();null!=r.extent||(r.extent=await oe(this.fullExtent)),r.id=null,null!=r.portal||(r.portal=A.getDefault()),null!=r.title||(r.title=this.title),r.type="Feature Collection",r.typeKeywords=["Data","Feature Collection","Multilayer","Route Layer"];const{portal:o}=r,i={messages:[],origin:"portal-item",portal:o,url:null,writtenProperties:[]};await o._signIn();const s=null==t?void 0:t.folder,l=this.write(null,i);return await o.user.addItem({item:r,folder:s,data:l}),this.portalItem=r,B(i),i.portalItem=r,r}async solve(e,t){var r,o,i,l,a,y;const c=null!=(r=null==e?void 0:e.stops)?r:this.stops,d=null!=(o=null==e?void 0:e.pointBarriers)?o:$(this.pointBarriers),h=null!=(i=null==e?void 0:e.polylineBarriers)?i:$(this.polylineBarriers),S=null!=(l=null==e?void 0:e.polygonBarriers)?l:$(this.polygonBarriers);if(u(c))throw new n("routelayer:undefined-stops","the route layer must have stops defined in the route parameters.");if((ee(c)||te(c))&&c.features.length<2||s.isCollection(c)&&c.length<2)throw new n("routelayer:insufficent-stops","the route layer must have two or more stops to solve a route.");const g=null==e?void 0:e.apiKey,w=this.url,v=await this._getServiceDescription(w,g,t),b=z(v),B=null!=(a=null==e?void 0:e.travelMode)?a:b,P=null!=(y=null==e?void 0:e.accumulateAttributes)?y:[];p(B)&&P.push(B.distanceAttributeName);const I={startTime:new Date},D={accumulateAttributes:P,directionsOutputType:"featuresets",ignoreInvalidLocations:!0,pointBarriers:d,polylineBarriers:h,polygonBarriers:S,preserveFirstStop:!0,preserveLastStop:!0,returnBarriers:!!d,returnDirections:!0,returnPolygonBarriers:!!S,returnPolylineBarriers:!!h,returnRoutes:!0,returnStops:!0,stops:c},j=e?H.from(e):new H;for(const s in I)null==j[s]&&(j[s]=I[s]);let _;j.set(D);try{_=await F(w,j,t)}catch(N){throw f(N)?N:new n("routelayer:failed-route-request","the routing request failed",{error:N})}const L=this._toRouteLayerSolution(_);return this._isOverridden("title")||(this.title=m(L.routeInfo.name,"Route")),re(L,v,j),L}update(e){const{stops:t,directionLines:r,directionPoints:o,pointBarriers:i,polylineBarriers:s,polygonBarriers:n,routeInfo:l}=e;this.set({stops:t,pointBarriers:i,polylineBarriers:s,polygonBarriers:n}),this._set("directionLines",r),this._set("directionPoints",o),this._set("routeInfo",l)}_getLayerDefinition(){return{capabilities:"Query,Update,Editing",extent:this.fullExtent.toJSON(),hasM:!1,hasZ:!1,maxScale:this.maxScale,minScale:this.minScale,objectIdField:"__OBJECTID",spatialReference:this.spatialReference.toJSON(),type:"Feature Layer",typeIdField:""}}_getNetworkFeatures(e,t,n,l){const a=(X(e)?e.layers:e.featureCollection.layers).find((e=>e.layerDefinition.name===t));if(u(a))return new s;const{layerDefinition:p,popupInfo:m,featureSet:y}=a,c=p.drawingInfo.renderer,{features:f}=y,d=c&&i(c),h=f.map((e=>{var i;const s=r.fromJSON(e),l=n(s);return null!=l.symbol||(l.symbol=null!=(i=null==d?void 0:d.getSymbol(s))?i:this._getNetworkSymbol(t)),null!=l.popupTemplate||(l.popupTemplate=m&&o.fromJSON(m)),l}));return l&&h.some((e=>!e.symbol))&&l(h),new s(h)}_getNetworkSymbol(e){switch(e){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(e,t,r){if(p(this._cachedServiceDescription)&&this._cachedServiceDescription.url===e)return this._cachedServiceDescription.serviceDescription;const o=await J(e,t,r);return this._cachedServiceDescription={serviceDescription:o,url:e},o}_setStopSymbol(e){if(!e||0===e.length)return;if(u(this.routeInfo)||1===e.length)return void e.forEach(((t,r)=>{switch(r){case 0:t.symbol=this.defaultSymbols.firstStop;break;case e.length-1:t.symbol=this.defaultSymbols.lastStop;break;default:t.symbol=this.defaultSymbols.middleStop}}));const t=e.map((e=>e.sequence)).filter((e=>p(e))),r=Math.min(...t),o=Math.max(...t);for(const i of e)i.sequence!==r?i.sequence!==o?"ok"===i.status||"not-located-on-closest"===i.status?"waypoint"!==i.locationType?"break"!==i.locationType?i.symbol=this.defaultSymbols.middleStop:i.symbol=this.defaultSymbols.breakStop:i.symbol=this.defaultSymbols.waypointStop:i.symbol=this.defaultSymbols.invalidStop:i.symbol=this.defaultSymbols.lastStop:i.symbol=this.defaultSymbols.firstStop}_toRouteLayerSolution(e){var t,r,o,i,s;const n=e.routeResults[0].stops.map((e=>Q.fromJSON(e.toJSON())));this._setStopSymbol(n);const l=new ye(n),a=new ue(null==(t=e.polygonBarriers)?void 0:t.map((e=>{const t=E.fromJSON(e.toJSON());return t.symbol=this.defaultSymbols.polygonBarriers,t}))),p=new me(null==(r=e.polylineBarriers)?void 0:r.map((e=>{const t=W.fromJSON(e.toJSON());return t.symbol=this.defaultSymbols.polylineBarriers,t}))),u=new pe(null==(o=e.pointBarriers)?void 0:o.map((e=>{const t=q.fromJSON(e.toJSON());return t.symbol=this.defaultSymbols.pointBarriers,t}))),m=V.fromJSON(e.routeResults[0].route.toJSON());m.symbol=this.defaultSymbols.routeInfo;const y=new ae(null==(i=e.routeResults[0].directionPoints)?void 0:i.features.map((e=>{const t=k.fromJSON(e.toJSON());return t.symbol=this.defaultSymbols.directionPoints,t})));return{directionLines:new le(null==(s=e.routeResults[0].directionLines)?void 0:s.features.map((e=>{const t=G.fromJSON(e.toJSON());return t.symbol=this.defaultSymbols.directionLines,t}))),directionPoints:y,pointBarriers:u,polygonBarriers:a,polylineBarriers:p,routeInfo:m,stops:l}}_writeDirectionLines(){return u(this.directionLines)||!this.directionLines.length?null:{featureSet:{features:this.directionLines.toArray().map((e=>ne(e))),geometryType:"esriGeometryPolyline"},layerDefinition:{...this._getLayerDefinition(),drawingInfo:{renderer:{type:"simple",symbol:this.defaultSymbols.directionLines.toJSON()}},fields:G.fields,geometryType:"esriGeometryPolyline",name:"DirectionLines",title:"Direction Lines"},popupInfo:G.popupInfo}}_writeDirectionPoints(){return u(this.directionPoints)||!this.directionPoints.length?null:{featureSet:{features:this.directionPoints.toArray().map((e=>ne(e))),geometryType:"esriGeometryPoint"},layerDefinition:{...this._getLayerDefinition(),drawingInfo:{renderer:{type:"simple",symbol:this.defaultSymbols.directionPoints.toJSON()}},fields:k.fields,geometryType:"esriGeometryPoint",name:"DirectionPoints",title:"Direction Points"},popupInfo:k.popupInfo}}_writePointBarriers(){return u(this.pointBarriers)||!this.pointBarriers.length?null:{featureSet:{features:this.pointBarriers.toArray().map((e=>ne(e))),geometryType:"esriGeometryPoint"},layerDefinition:{...this._getLayerDefinition(),drawingInfo:{renderer:{type:"simple",symbol:this.defaultSymbols.pointBarriers.toJSON()}},fields:q.fields,geometryType:"esriGeometryPoint",name:"Barrier",title:"Point Barrier"},popupInfo:q.popupInfo}}_writePolygonBarriers(){return u(this.polygonBarriers)||!this.polygonBarriers.length?null:{featureSet:{features:this.polygonBarriers.toArray().map((e=>ne(e))),geometryType:"esriGeometryPolygon"},layerDefinition:{...this._getLayerDefinition(),drawingInfo:{renderer:{type:"simple",symbol:this.defaultSymbols.polygonBarriers.toJSON()}},fields:E.fields,geometryType:"esriGeometryPolygon",name:"PolygonBarriers",title:"Polygon Barriers"},popupInfo:E.popupInfo}}_writePolylineBarriers(){return u(this.polylineBarriers)||!this.polylineBarriers.length?null:{featureSet:{features:this.polylineBarriers.toArray().map((e=>ne(e))),geometryType:"esriGeometryPolyline"},layerDefinition:{...this._getLayerDefinition(),drawingInfo:{renderer:{type:"simple",symbol:this.defaultSymbols.polylineBarriers.toJSON()}},fields:W.fields,geometryType:"esriGeometryPolyline",name:"PolylineBarriers",title:"Line Barriers"},popupInfo:W.popupInfo}}_writeRouteInfo(){return u(this.routeInfo)?null:{featureSet:{features:[ne(this.routeInfo)],geometryType:"esriGeometryPolyline"},layerDefinition:{...this._getLayerDefinition(),drawingInfo:{renderer:{type:"simple",symbol:this.defaultSymbols.routeInfo.toJSON()}},fields:V.fields,geometryType:"esriGeometryPolyline",name:"RouteInfo",title:"Route Details"},popupInfo:V.popupInfo}}_writeStops(){return u(this.stops)||!this.stops.length?null:{featureSet:{features:this.stops.toArray().map((e=>ne(e))),geometryType:"esriGeometryPoint"},layerDefinition:{...this._getLayerDefinition(),drawingInfo:{renderer:{type:"uniqueValue",field1:"Sequence",defaultSymbol:this.defaultSymbols.middleStop.toJSON(),uniqueValueInfos:[{value:"1",symbol:this.defaultSymbols.firstStop.toJSON(),label:"First Stop"},{value:`${this.stops.length}`,symbol:this.defaultSymbols.lastStop.toJSON(),label:"Last Stop"}]}},fields:Q.fields,geometryType:"esriGeometryPoint",name:"Stops",title:"Stops"},popupInfo:Q.popupInfo}}};e([g({readOnly:!0,json:{read:!1,origins:{"portal-item":{write:{allowNull:!0,ignoreOrigin:!0}},"web-map":{write:{overridePolicy(){return{allowNull:!0,ignoreOrigin:null==this.portalItem}}}}}}})],fe.prototype,"_featureCollection",void 0),e([b(["web-map","portal-item"],"_featureCollection")],fe.prototype,"writeFeatureCollectionWebmap",null),e([g({readOnly:!0,json:{read:!1,origins:{"web-map":{write:{target:"type",overridePolicy(){return{ignoreOrigin:null!=this.portalItem}}}}}}})],fe.prototype,"_type",void 0),e([g({nonNullable:!0,type:R})],fe.prototype,"defaultSymbols",void 0),e([g({readOnly:!0})],fe.prototype,"directionLines",void 0),e([w(["web-map","portal-item"],"directionLines",["layers","featureCollection.layers"])],fe.prototype,"readDirectionLines",null),e([g({readOnly:!0})],fe.prototype,"directionPoints",void 0),e([w(["web-map","portal-item"],"directionPoints",["layers","featureCollection.layers"])],fe.prototype,"readDirectionPoints",null),e([g({readOnly:!0,json:{read:!1,origins:{"web-map":{write:{ignoreOrigin:!0}}}}})],fe.prototype,"featureCollectionType",void 0),e([g({readOnly:!0})],fe.prototype,"fullExtent",null),e([g({json:{origins:{"web-map":{name:"featureCollection.showLegend"}},write:!0}})],fe.prototype,"legendEnabled",void 0),e([g({type:["show","hide"]})],fe.prototype,"listMode",void 0),e([g({type:Number,nonNullable:!0,json:{write:!1}})],fe.prototype,"maxScale",void 0),e([w(["web-map","portal-item"],"maxScale",["layers","featureCollection.layers"])],fe.prototype,"readMaxScale",null),e([g({type:Number,nonNullable:!0,json:{write:!1}})],fe.prototype,"minScale",void 0),e([w(["web-map","portal-item"],"minScale",["layers","featureCollection.layers"])],fe.prototype,"readMinScale",null),e([g({type:["ArcGISFeatureLayer"],value:"ArcGISFeatureLayer"})],fe.prototype,"operationalLayerType",void 0),e([g({nonNullable:!0,type:s.ofType(q)})],fe.prototype,"pointBarriers",void 0),e([w(["web-map","portal-item"],"pointBarriers",["layers","featureCollection.layers"])],fe.prototype,"readPointBarriers",null),e([g({nonNullable:!0,type:s.ofType(E)})],fe.prototype,"polygonBarriers",void 0),e([w(["web-map","portal-item"],"polygonBarriers",["layers","featureCollection.layers"])],fe.prototype,"readPolygonBarriers",null),e([g({nonNullable:!0,type:s.ofType(W)})],fe.prototype,"polylineBarriers",void 0),e([w(["web-map","portal-item"],"polylineBarriers",["layers","featureCollection.layers"])],fe.prototype,"readPolylineBarriers",null),e([g({readOnly:!0})],fe.prototype,"routeInfo",void 0),e([w(["web-map","portal-item"],"routeInfo",["layers","featureCollection.layers"])],fe.prototype,"readRouteInfo",null),e([g({type:Y})],fe.prototype,"spatialReference",void 0),e([w(["web-map","portal-item"],"spatialReference",["layers","featureCollection.layers"])],fe.prototype,"readSpatialReference",null),e([g({nonNullable:!0,type:s.ofType(Q)})],fe.prototype,"stops",void 0),e([w(["web-map","portal-item"],"stops",["layers","featureCollection.layers"])],fe.prototype,"readStops",null),e([g()],fe.prototype,"title",null),e([g({readOnly:!0,json:{read:!1}})],fe.prototype,"type",void 0),e([g()],fe.prototype,"url",null),fe=e([v("esri.layers.RouteLayer")],fe);const de=fe;export{de as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import t from"../request.js";import r from"../core/Error.js";import{clone as o}from"../core/lang.js";import{MultiOriginJSONMixin as
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import t from"../request.js";import r from"../core/Error.js";import{clone as o}from"../core/lang.js";import{MultiOriginJSONMixin as i}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as s,createTask as l}from"../core/promiseUtils.js";import{urlToObject as a,addQueryParameters as n,isProtocolRelative as p,normalize as y}from"../core/urlUtils.js";import{property as u}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import{reader as c}from"../core/accessorSupport/decorators/reader.js";import{subclass as m}from"../core/accessorSupport/decorators/subclass.js";import{writer as h}from"../core/accessorSupport/decorators/writer.js";import d from"../geometry/Extent.js";import S from"../geometry/SpatialReference.js";import f from"./Layer.js";import{APIKeyMixin as g}from"./mixins/APIKeyMixin.js";import{ArcGISCachedService as v}from"./mixins/ArcGISCachedService.js";import{ArcGISService as _}from"./mixins/ArcGISService.js";import{BlendLayer as j}from"./mixins/BlendLayer.js";import{CustomParametersMixin as b}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as w}from"./mixins/OperationalLayer.js";import{PortalLayer as T}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as L}from"./mixins/ScaleRangeLayer.js";import{checkWebPSupport as I}from"./support/imageUtils.js";import x from"./support/SpriteSource.js";import U from"./support/TileInfo.js";import{loadMetadata as P}from"./support/vectorTileLayerLoader.js";import{createForItem as R}from"../portal/support/jsonContext.js";import{areSchemasOverlapping as O,unionTileInfos as M}from"../views/2d/engine/vectorTiles/tileInfoUtils.js";import V from"../views/2d/engine/vectorTiles/style/StyleRepository.js";import{getWebGLCapabilities as D}from"../views/webgl/capabilities.js";let k=class extends(j(L(v(_(w(T(b(g(i(f)))))))))){constructor(...e){super(...e),this._spriteSourceMap=new Map,this.currentStyleInfo=null,this.style=null,this.isReference=null,this.operationalLayerType="VectorTileLayer",this.type="vector-tile",this.url=null,this.symbolCollisionBoxesVisible=!1,this.path=null}normalizeCtorArgs(e,t){return"string"==typeof e?{url:e,...t}:e}destroy(){if(this.sourceNameToSource)for(const e of Object.values(this.sourceNameToSource))null==e||e.destroy();this._spriteSourceMap.clear()}async prefetchResources(e){await this.loadSpriteSource(globalThis.devicePixelRatio||1,e)}load(e){const r=this.loadFromPortal({supportedTypes:["Vector Tile Service"],supportsData:!1},e).catch(s).then((async()=>{if(!this.portalItem||!this.portalItem.id)return;const r=`${this.portalItem.itemUrl}/resources/styles/root.json`;(await t(r,{...e,query:{f:"json",...this.customParameters,token:this.apiKey}})).data&&this.read({url:r},R(this.portalItem))})).catch(s).then((()=>this._loadStyle(e)));return this.addResolvingPromise(r),Promise.resolve(this)}get attributionDataUrl(){const e=this.currentStyleInfo,t=e&&e.serviceUrl&&a(e.serviceUrl);if(!t)return null;const r=this._getDefaultAttribution(t.path);return r?n(r,{...this.customParameters,token:this.apiKey}):null}get capabilities(){const e=this.primarySource;return e?e.capabilities:{operations:{supportsExportTiles:!1,supportsTileMap:!1},exportTiles:null}}get fullExtent(){var e;return(null==(e=this.primarySource)?void 0:e.fullExtent)||null}get parsedUrl(){return this.serviceUrl?a(this.serviceUrl):null}get serviceUrl(){return this.currentStyleInfo&&this.currentStyleInfo.serviceUrl||null}get spatialReference(){return this.tileInfo&&this.tileInfo.spatialReference||null}get styleUrl(){return this.currentStyleInfo&&this.currentStyleInfo.styleUrl||null}writeStyleUrl(e,t){e&&p(e)&&(e=`https:${e}`),t.styleUrl=e}get tileInfo(){var e;const t=[];for(const o in this.sourceNameToSource)t.push(this.sourceNameToSource[o]);let r=(null==(e=this.primarySource)?void 0:e.tileInfo)||new U;if(t.length>1)for(let o=0;o<t.length;o++)O(r,t[o].tileInfo)&&(r=M(r,t[o].tileInfo));return r}readVersion(e,t){return t.version?parseFloat(t.version):parseFloat(t.currentVersion)}async loadSpriteSource(e=1,t){if(!this._spriteSourceMap.has(e)){var r;const o=D("2d").maxTextureSize,i=null!=(r=this.currentStyleInfo)&&r.spriteUrl?n(this.currentStyleInfo.spriteUrl,{...this.customParameters,token:this.apiKey}):null,s=new x(i,e,o,this.currentStyleInfo.spriteFormat);await s.load(t),this._spriteSourceMap.set(e,s)}return this._spriteSourceMap.get(e)}async setSpriteSource(e,t="png",r=1,o){const i=D("2d").maxTextureSize,l=e?n(e,{...this.customParameters,token:this.apiKey}):null;if(!l)return null;const a=new x(l,r,i,t);try{return await a.load(o),this._spriteSourceMap.clear(),this._spriteSourceMap.set(r,a),this.currentStyleInfo.spriteUrl=l,this.emit("spriteSource-change",{spriteSource:a}),a}catch(p){s(p)}return null}async loadStyle(e,t){var r;const o=e||this.style||this.url;return this._loadingTask&&"string"==typeof o&&this.url===o||(null==(r=this._loadingTask)||r.abort(),this._loadingTask=l((e=>(this._spriteSourceMap.clear(),this._getSourceAndStyle(o,{signal:e}))),t)),this._loadingTask.promise}getStyleLayerId(e){return this.styleRepository.getStyleLayerId(e)}getStyleLayerIndex(e){return this.styleRepository.getStyleLayerIndex(e)}getPaintProperties(e){return o(this.styleRepository.getPaintProperties(e))}setPaintProperties(e,t){const r=this.styleRepository.isPainterDataDriven(e);this.styleRepository.setPaintProperties(e,t);const o=this.styleRepository.isPainterDataDriven(e);this.emit("paint-change",{layer:e,paint:t,isDataDriven:r||o})}getStyleLayer(e){return o(this.styleRepository.getStyleLayer(e))}setStyleLayer(e,t){this.styleRepository.setStyleLayer(e,t),this.emit("style-layer-change",{layer:e,index:t})}deleteStyleLayer(e){this.styleRepository.deleteStyleLayer(e),this.emit("delete-style-layer",{layer:e})}getLayoutProperties(e){return o(this.styleRepository.getLayoutProperties(e))}setLayoutProperties(e,t){this.styleRepository.setLayoutProperties(e,t),this.emit("layout-change",{layer:e,layout:t})}setStyleLayerVisibility(e,t){this.styleRepository.setStyleLayerVisibility(e,t),this.emit("style-layer-visibility-change",{layer:e,visibility:t})}getStyleLayerVisibility(e){return this.styleRepository.getStyleLayerVisibility(e)}write(e,t){return null!=t&&t.origin&&!this.styleUrl?(t.messages&&t.messages.push(new r("vectortilelayer:unsupported",`VectorTileLayer (${this.title}, ${this.id}) with style defined by JSON only are not supported`,{layer:this})),null):super.write(e,t)}getTileUrl(e,t,r){return null}async _getSourceAndStyle(e,t){if(!e)throw new Error("invalid style!");const r=await P(e,{...t,query:{...this.customParameters,token:this.apiKey}});if("webp"===r.spriteFormat){await I("lossy")||(r.spriteFormat="png")}this._set("currentStyleInfo",{...r}),"string"==typeof e?(this.url=e,this.style=null):(this.url=null,this.style=e),this._set("sourceNameToSource",r.sourceNameToSource),this._set("primarySource",r.sourceNameToSource[r.primarySourceName]),this._set("styleRepository",new V(r.style)),this.read(r.layerDefinition,{origin:"service"}),this.emit("load-style")}_getDefaultAttribution(e){const t=e.match(/^https?:\/\/(?:basemaps|basemapsbeta|basemapsdev)(?:-api)?\.arcgis\.com(\/[^\/]+)?\/arcgis\/rest\/services\/([^\/]+(\/[^\/]+)*)\/vectortileserver/i),r=["OpenStreetMap_v2","OpenStreetMap_Daylight_v2","OpenStreetMap_Export_v2","OpenStreetMap_FTS_v2","OpenStreetMap_GCS_v2","World_Basemap","World_Basemap_v2","World_Basemap_Export_v2","World_Basemap_GCS_v2","World_Basemap_WGS84","World_Contours_v2"];if(!t)return;const o=t[2]&&t[2].toLowerCase();if(!o)return;const i=t[1]||"";for(const s of r)if(s.toLowerCase().includes(o))return y(`//static.arcgis.com/attribution/Vector${i}/${s}`)}async _loadStyle(e){var t,r;return null!=(t=null==(r=this._loadingTask)?void 0:r.promise)?t:this.loadStyle(null,e)}};e([u({readOnly:!0})],k.prototype,"attributionDataUrl",null),e([u({type:["show","hide"]})],k.prototype,"listMode",void 0),e([u({readOnly:!0,json:{read:!1}})],k.prototype,"capabilities",null),e([u({readOnly:!0})],k.prototype,"currentStyleInfo",void 0),e([u({json:{read:!1},readOnly:!0,type:d})],k.prototype,"fullExtent",null),e([u()],k.prototype,"style",void 0),e([u({type:Boolean,json:{read:!1,write:{enabled:!0,overridePolicy:()=>({enabled:!1})}}})],k.prototype,"isReference",void 0),e([u({type:["VectorTileLayer"]})],k.prototype,"operationalLayerType",void 0),e([u({readOnly:!0})],k.prototype,"parsedUrl",null),e([u({readOnly:!0})],k.prototype,"serviceUrl",null),e([u({type:S,readOnly:!0})],k.prototype,"spatialReference",null),e([u({readOnly:!0})],k.prototype,"styleRepository",void 0),e([u({readOnly:!0})],k.prototype,"sourceNameToSource",void 0),e([u({readOnly:!0})],k.prototype,"primarySource",void 0),e([u({type:String,readOnly:!0,json:{write:{ignoreOrigin:!0},origins:{"web-document":{write:{ignoreOrigin:!0,isRequired:!0}}}}})],k.prototype,"styleUrl",null),e([h(["portal-item","web-document"],"styleUrl")],k.prototype,"writeStyleUrl",null),e([u({json:{read:!1,origins:{service:{read:!1}}},readOnly:!0,type:U})],k.prototype,"tileInfo",null),e([u({json:{read:!1},readOnly:!0,value:"vector-tile"})],k.prototype,"type",void 0),e([u({json:{origins:{"web-document":{read:{source:"styleUrl"}},"portal-item":{read:{source:"url"}}},write:!1,read:!1}})],k.prototype,"url",void 0),e([u({readOnly:!0})],k.prototype,"version",void 0),e([c("version",["version","currentVersion"])],k.prototype,"readVersion",null),e([u({type:Boolean})],k.prototype,"symbolCollisionBoxesVisible",void 0),e([u({type:String,json:{origins:{"web-scene":{read:!0,write:!0}},read:!1}})],k.prototype,"path",void 0),k=e([m("esri.layers.VectorTileLayer")],k);const C=k;export{C as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../../Graphic.js";import t from"../../core/Collection.js";import a from"../../core/Error.js";import{clone as r}from"../../core/lang.js";import{isSome as i}from"../../core/maybe.js";import{dataComponents as s}from"../../core/urlUtils.js";import{normalizeCentralMeridian as d}from"../../geometry/support/normalizeUtils.js";function n(e){return e&&null!=e.applyEdits}async function l(e,t,a,i={}){let s,d;const n={edits:a,result:new Promise(((e,t)=>{s=e,d=t}))};e.emit("apply-edits",n);try{var l;const{results:d,edits:n}=await o(e,t,a,i),u=e=>e.filter((e=>!e.error)).map(r),p={edits:n,addedFeatures:u(d.addFeatureResults),updatedFeatures:u(d.updateFeatureResults),deletedFeatures:u(d.deleteFeatureResults),addedAttachments:u(d.addAttachmentResults),updatedAttachments:u(d.updateAttachmentResults),deletedAttachments:u(d.deleteAttachmentResults)};return null!=(l=d.editedFeatureResults)&&l.length&&(p.editedFeatures=d.editedFeatureResults),(p.addedFeatures.length||p.updatedFeatures.length||p.deletedFeatures.length||p.addedAttachments.length||p.updatedAttachments.length||p.deletedAttachments.length)&&e.emit("edits",p),s(p),d}catch(u){throw d(u),u}}async function o(e,t,r,i){if(await e.load(),!n(t))
|
|
5
|
+
import e from"../../Graphic.js";import t from"../../core/Collection.js";import a from"../../core/Error.js";import{clone as r}from"../../core/lang.js";import{isSome as i}from"../../core/maybe.js";import{dataComponents as s}from"../../core/urlUtils.js";import{normalizeCentralMeridian as d}from"../../geometry/support/normalizeUtils.js";function n(e){return e&&null!=e.applyEdits}async function l(e,t,a,i={}){let s,d;const n={edits:a,result:new Promise(((e,t)=>{s=e,d=t}))};e.emit("apply-edits",n);try{var l;const{results:d,edits:n}=await o(e,t,a,i),u=e=>e.filter((e=>!e.error)).map(r),p={edits:n,addedFeatures:u(d.addFeatureResults),updatedFeatures:u(d.updateFeatureResults),deletedFeatures:u(d.deleteFeatureResults),addedAttachments:u(d.addAttachmentResults),updatedAttachments:u(d.updateAttachmentResults),deletedAttachments:u(d.deleteAttachmentResults)};return null!=(l=d.editedFeatureResults)&&l.length&&(p.editedFeatures=d.editedFeatureResults),(p.addedFeatures.length||p.updatedFeatures.length||p.deletedFeatures.length||p.addedAttachments.length||p.updatedAttachments.length||p.deletedAttachments.length)&&e.emit("edits",p),s(p),d}catch(u){throw d(u),u}}async function o(e,t,r,i){if(await e.load(),!n(t))throw new a(`${e.type}-layer:no-editing-support`,"Layer source does not support applyEdits capability",{layer:e});if(!e.editingEnabled)throw new a(`${e.type}-layer:editing-disabled`,"Editing is disabled for layer",{layer:e});const{edits:s,options:d}=await u(e,r,i);return s.addFeatures.length||s.updateFeatures.length||s.deleteFeatures.length||s.addAttachments.length||s.updateAttachments.length||s.deleteAttachments.length?{edits:s,results:await t.applyEdits(s,d)}:{edits:s,results:{addFeatureResults:[],updateFeatureResults:[],deleteFeatureResults:[],addAttachmentResults:[],updateAttachmentResults:[],deleteAttachmentResults:[]}}}async function u(e,r,i){const s=r&&(r.addFeatures||r.updateFeatures||r.deleteFeatures),d=r&&(r.addAttachments||r.updateAttachments||r.deleteAttachments);if(!r||!s&&!d)throw new a(`${e.type}-layer:missing-parameters`,"'addFeatures', 'updateFeatures', 'deleteFeatures', 'addAttachments', 'updateAttachments' or 'deleteAttachments' parameter is required");if(!e.capabilities.data.isVersioned&&i&&i.gdbVersion)throw new a(`${e.type}-layer:invalid-parameter`,"'gdbVersion' is applicable only if the layer supports versioned data. See: 'capabilities.data.isVersioned'");if(!e.capabilities.editing.supportsRollbackOnFailure&&i&&i.rollbackOnFailureEnabled)throw new a(`${e.type}-layer:invalid-parameter`,"This layer does not support 'rollbackOnFailureEnabled' parameter. See: 'capabilities.editing.supportsRollbackOnFailure'");if(!e.capabilities.editing.supportsGlobalId&&i&&i.globalIdUsed)throw new a(`${e.type}-layer:invalid-parameter`,"This layer does not support 'globalIdUsed' parameter. See: 'capabilities.editing.supportsGlobalId'");if(!e.capabilities.editing.supportsGlobalId&&d)throw new a(`${e.type}-layer:invalid-parameter`,"'addAttachments', 'updateAttachments' and 'deleteAttachments' are applicable only if the layer supports global ids. See: 'capabilities.editing.supportsGlobalId'");if((!i||!i.globalIdUsed)&&d)throw new a(`${e.type}-layer:invalid-parameter`,"When 'addAttachments', 'updateAttachments' or 'deleteAttachments' is specified, globalIdUsed should be set to true");const n={...i};if(null!=n.rollbackOnFailureEnabled||e.capabilities.editing.supportsRollbackOnFailure||(n.rollbackOnFailureEnabled=!0),!1===n.rollbackOnFailureEnabled&&"original-and-current-features"===n.returnServiceEditsOption)throw new a(`${e.type}-layer:invalid-parameter`,"'original-and-current-features' is valid for 'returnServiceEditsOption' only when 'rollBackOnFailure' is true.");if(!e.capabilities.editing.supportsReturnServiceEditsInSourceSpatialReference&&n.returnServiceEditsInSourceSR)throw new a(`${e.type}-layer:invalid-parameter`,"This layer does not support 'returnServiceEditsInSourceSR' parameter. See: 'capabilities.editing.supportsReturnServiceEditsInSourceSpatialReference'");if(n.returnServiceEditsInSourceSR&&"original-and-current-features"!==n.returnServiceEditsOption)throw new a(`${e.type}-layer:invalid-parameter`,"'returnServiceEditsOption' is valid only when 'returnServiceEditsOption' is set to 'original-and-current-features'");const l={...r};if(l.addFeatures=r&&t.isCollection(r.addFeatures)?r.addFeatures.toArray():l.addFeatures||[],l.updateFeatures=r&&t.isCollection(r.updateFeatures)?r.updateFeatures.toArray():l.updateFeatures||[],l.deleteFeatures=r&&t.isCollection(r.deleteFeatures)?r.deleteFeatures.toArray():l.deleteFeatures||[],l.addFeatures.length&&!e.capabilities.operations.supportsAdd)throw new a(`${e.type}-layer:unsupported-operation`,"Layer does not support adding features.");if(l.updateFeatures.length&&!e.capabilities.operations.supportsUpdate)throw new a(`${e.type}-layer:unsupported-operation`,"Layer does not support updating features.");if(l.deleteFeatures.length&&!e.capabilities.operations.supportsDelete)throw new a(`${e.type}-layer:unsupported-operation`,"Layer does not support deleting features.");l.addAttachments=l.addAttachments||[],l.updateAttachments=l.updateAttachments||[],l.deleteAttachments=l.deleteAttachments||[],l.addFeatures=l.addFeatures.map(g),l.updateFeatures=l.updateFeatures.map(g);const o=i&&i.globalIdUsed;l.addFeatures.forEach((t=>c(t,e,o))),l.updateFeatures.forEach((t=>m(t,e,o))),l.deleteFeatures.forEach((t=>h(t,e,o))),l.addAttachments.forEach((t=>y(t,e))),l.updateAttachments.forEach((t=>y(t,e)));return{edits:await f(l),options:n}}function p(e,t,r){if(r){if("attributes"in e&&!e.attributes[t.globalIdField])throw new a(`${t.type}-layer:invalid-parameter`,"Feature should have 'globalId' when 'globalIdUsed' is true");if(!("attributes"in e)&&!e.globalId)throw new a(`${t.type}-layer:invalid-parameter`,"'globalId' of the feature should be passed when 'globalIdUsed' is true")}if("geometry"in e&&i(e.geometry)){if(e.geometry.hasZ&&!1===t.capabilities.data.supportsZ)throw new a(`${t.type}-layer:z-unsupported`,"Layer does not support z values while feature has z values.");if(e.geometry.hasM&&!1===t.capabilities.data.supportsM)throw new a(`${t.type}-layer:m-unsupported`,"Layer does not support m values while feature has m values.")}}function c(e,t,a){p(e,t,a)}function h(e,t,a){p(e,t,a)}function m(e,t,r){if(p(e,t,r),"geometry"in e&&i(e.geometry)&&!t.capabilities.editing.supportsGeometryUpdate)throw new a(`${t.type}-layer:unsupported-operation`,"Layer does not support geometry updates.")}function y(e,t){const{feature:r,attachment:i}=e;if(!r||"attributes"in r&&!r.attributes[t.globalIdField])throw new a(`${t.type}-layer:invalid-parameter`,"Attachment should have reference to a feature with 'globalId'");if(!("attributes"in r)&&!r.globalId)throw new a(`${t.type}-layer:invalid-parameter`,"Attachment should have reference to 'globalId' of the parent feature");if(!i.globalId)throw new a(`${t.type}-layer:invalid-parameter`,"Attachment should have 'globalId'");if(!i.data&&!i.uploadId)throw new a(`${t.type}-layer:invalid-parameter`,"Attachment should have 'data' or 'uploadId'");if(!(i.data instanceof File&&!!i.data.name)&&!i.name)throw new a(`${t.type}-layer:invalid-parameter`,"'name' is required when attachment is specified as Base64 encoded string using 'data'");if(!t.capabilities.editing.supportsUploadWithItemId&&i.uploadId)throw new a(`${t.type}-layer:invalid-parameter`,"This layer does not support 'uploadId' parameter. See: 'capabilities.editing.supportsUploadWithItemId'");if("string"==typeof i.data){const e=s(i.data);if(e&&!e.isBase64)throw new a(`${t.type}-layer:invalid-parameter`,"Attachment 'data' should be a Blob, File or Base64 encoded string")}}async function f(e){const t=e.addFeatures,a=e.updateFeatures,r=t.concat(a).map((e=>e.geometry)),i=await d(r),s=t.length,n=a.length;return i.slice(0,s).forEach(((t,a)=>e.addFeatures[a].geometry=t)),i.slice(s,s+n).forEach(((t,a)=>e.updateFeatures[a].geometry=t)),e}function g(t){const a=new e;return t.attributes||(t.attributes={}),a.geometry=t.geometry,a.attributes=t.attributes,a}export{l as applyEdits};
|