@arcgis/core 5.2.0-next.19 → 5.2.0-next.20
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/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/0a259137932211b80f0e.js +1 -0
- package/assets/esri/core/workers/chunks/{c318e6dbb8651433038f.js → 2dbd88566abac030e965.js} +2 -2
- package/assets/esri/core/workers/chunks/2ed81f1e490cb7e73405.js +1 -0
- package/assets/esri/core/workers/chunks/{aeeee92b86554962711e.js → 4104a0585969f8cd524c.js} +1 -1
- package/assets/esri/core/workers/chunks/{99c002015c2127e6cbfc.js → 44b30bce8e9a75b9e1b3.js} +2 -2
- package/assets/esri/core/workers/chunks/{c0b7b9d115dccb2924ff.js → 4fdd38d7362bf09a994b.js} +1 -1
- package/assets/esri/core/workers/chunks/{0d42322362e76f674d94.js → 501fa9b029df2e7b73c3.js} +2 -2
- package/assets/esri/core/workers/chunks/{fb81705cec1be2431876.js → 5216dd0544e901039c84.js} +1 -1
- package/assets/esri/core/workers/chunks/5d710b3e50f2211a765d.js +1 -0
- package/assets/esri/core/workers/chunks/5f0bc019add4aff3130c.js +1 -0
- package/assets/esri/core/workers/chunks/{2d7a4b669804d0c5029b.js → 5f63077ec5ba3560491b.js} +1 -1
- package/assets/esri/core/workers/chunks/6121cd0264b6841a5bac.js +1 -0
- package/assets/esri/core/workers/chunks/{dd3b0070081eaf805d95.js → 6ac09f4e85c664a17365.js} +1 -1
- package/assets/esri/core/workers/chunks/{5ea1113b7bdcf94b2822.js → 6e8b9c03240ec372b587.js} +1 -1
- package/assets/esri/core/workers/chunks/{29e6f4b19c3da9129439.js → 72edd08a2ff08970ba38.js} +1 -1
- package/assets/esri/core/workers/chunks/74922daaedb479ec6f03.js +1 -0
- package/assets/esri/core/workers/chunks/{169bfafec4d59be2beb0.js → 790462ab5f21491a4f75.js} +1 -1
- package/assets/esri/core/workers/chunks/{c8672a54c98d472aa24d.js → 82adfa2dbd40e1becaf4.js} +1 -1
- package/assets/esri/core/workers/chunks/{851fc5290497991ba001.js → 88df19742edb0cdc3e67.js} +1 -1
- package/assets/esri/core/workers/chunks/{1ea840b7ac1ffaa0c389.js → 8ce4fe00328173224ed2.js} +1 -1
- package/assets/esri/core/workers/chunks/912a8743a02f467b63b0.js +2 -0
- package/assets/esri/core/workers/chunks/9ad36947bb42ed7f97d3.js +1 -0
- package/assets/esri/core/workers/chunks/9def4619d102f1d41578.js +1 -0
- package/assets/esri/core/workers/chunks/9e0ea6c34940b1acf3c6.js +1 -0
- package/assets/esri/core/workers/chunks/{4e59e5a5d0ff887ff899.js → a856ae928273f9d6792f.js} +1 -1
- package/assets/esri/core/workers/chunks/aec46ec486912dca549d.js +1 -0
- package/assets/esri/core/workers/chunks/{f0924613f818dd165ad9.js → b375abfb2a2d9c63e20a.js} +1 -1
- package/assets/esri/core/workers/chunks/{888af532ad48fd86f285.js → c9e5d3f496cefb8e3934.js} +1 -1
- package/assets/esri/core/workers/chunks/cd892f429d5ffe8de99e.js +1 -0
- package/assets/esri/core/workers/chunks/d2387906b52624b4f7f1.js +1 -0
- package/assets/esri/core/workers/chunks/d34d41a350facfa9b7c0.js +1 -0
- package/assets/esri/core/workers/chunks/d8329c2000c0cc597adc.js +1 -0
- package/assets/esri/core/workers/chunks/{dfb19701b488089874fd.js → db26cf2c2735183294b8.js} +1 -1
- package/assets/esri/core/workers/chunks/dee339774131d7274137.js +1 -0
- package/assets/esri/core/workers/chunks/{05016e5a1de384994001.js → eccbddaec4be44c86f79.js} +2 -2
- package/assets/esri/core/workers/chunks/fee50ab6c92ef0327255.js +1 -0
- package/assets/esri/themes/base/widgets/_BatchAttributeForm.scss +1 -1
- package/assets/esri/themes/base/widgets/_OrientedImageryViewer.scss +4 -0
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/light/main.css +1 -1
- package/assets/esri/themes/light/view.css +1 -1
- package/chunks/OITBlendEmission.glsl.js +2 -21
- package/config.js +1 -1
- package/kernel.js +1 -1
- package/layers/AnnotationFeatureLayer.d.ts +3 -3
- package/layers/AnnotationFeatureLayer.js +1 -1
- package/layers/DimensionFeatureLayer.js +1 -1
- package/layers/GaussianSplatLayer.d.ts +1 -2
- package/layers/VideoLayer.js +1 -1
- package/layers/mixins/SceneService.js +1 -1
- package/layers/support/arcgisLayers.js +1 -1
- package/layers/support/fetchService.js +1 -1
- package/libs/parquet/parquet.js +1 -1
- package/package.json +2 -2
- package/portal/support/layersLoader.js +1 -1
- package/portal/support/loadUtils.js +1 -1
- package/portal/support/portalLayers.js +1 -1
- package/portal/support/resourceUtils.js +1 -1
- package/support/revision.js +1 -1
- package/symbols/WebStyleSymbol.js +1 -1
- package/undoredo/support/ApplySetItem.js +1 -1
- package/views/2d/engine/webgl/TextureManager.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerMeshWriter.js +1 -1
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/2d/layers/features/support/FeatureSetReaderParquet.js +1 -1
- package/views/2d/layers/support/annodime/virtualFields.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedConfiguration.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedDrawToolRenderer.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedPlacementController.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedSubVisualization.js +1 -1
- package/views/3d/analysis/Viewshed/placementUtils.js +1 -1
- package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
- package/views/3d/layers/graphics/Graphics3DWebStyleSymbol.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianSplatDataStore.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianSplatTextureAtlas.js +1 -1
- package/views/3d/webgl-engine/effects/glow/Glow.js +1 -1
- package/views/3d/webgl-engine/effects/transparency/OITBlendEmission.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/transparency/oitBlendFragment.glsl.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.d.ts +6 -6
- package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
- package/widgets/BatchAttributeForm.js +1 -1
- package/widgets/Editor/MergeFeaturesWorkflow.js +1 -1
- package/widgets/Editor/support/attachmentUtils.js +1 -1
- package/widgets/OrientedImageryViewer/css.js +1 -1
- package/widgets/OrientedImageryViewer.js +1 -1
- package/widgets/Print/PrintViewModel.js +1 -1
- package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.js +1 -1
- package/widgets/UtilityNetworkTrace.js +1 -1
- package/assets/esri/core/workers/chunks/00bcb04934972179b9ca.js +0 -1
- package/assets/esri/core/workers/chunks/0c13591347d51d684561.js +0 -1
- package/assets/esri/core/workers/chunks/35533c8ef541f7643497.js +0 -2
- package/assets/esri/core/workers/chunks/3d4ad7c728e02aa90551.js +0 -1
- package/assets/esri/core/workers/chunks/50c88e2545380800381f.js +0 -1
- package/assets/esri/core/workers/chunks/57a6572d440d2c62432b.js +0 -1
- package/assets/esri/core/workers/chunks/6a21a22b08f968fa8d60.js +0 -1
- package/assets/esri/core/workers/chunks/753e0b21e57c12c742ee.js +0 -1
- package/assets/esri/core/workers/chunks/85505a8b8b0794656d06.js +0 -1
- package/assets/esri/core/workers/chunks/93d08d82ceab19e314f8.js +0 -1
- package/assets/esri/core/workers/chunks/9802770413ad814dab29.js +0 -1
- package/assets/esri/core/workers/chunks/9d59cc5c0a63a4e41d99.js +0 -1
- package/assets/esri/core/workers/chunks/a32651777e4f07df5b6a.js +0 -1
- package/assets/esri/core/workers/chunks/a59a1fdcd37a875f179b.js +0 -1
- package/assets/esri/core/workers/chunks/aa5f36d7ed59c625ba78.js +0 -1
- package/assets/esri/core/workers/chunks/bb9232d9f63ec0c32447.js +0 -1
- package/assets/esri/core/workers/chunks/e3ea4b7217df16592def.js +0 -1
- /package/assets/esri/core/workers/chunks/{c318e6dbb8651433038f.js.LICENSE.txt → 2dbd88566abac030e965.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{0d42322362e76f674d94.js.LICENSE.txt → 44b30bce8e9a75b9e1b3.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{99c002015c2127e6cbfc.js.LICENSE.txt → 501fa9b029df2e7b73c3.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{35533c8ef541f7643497.js.LICENSE.txt → 912a8743a02f467b63b0.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{05016e5a1de384994001.js.LICENSE.txt → eccbddaec4be44c86f79.js.LICENSE.txt} +0 -0
|
@@ -1,22 +1,3 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{
|
|
3
|
-
|
|
4
|
-
if(srcAlpha < alphaCutoff) {
|
|
5
|
-
fragEmission = vec4(0.0);
|
|
6
|
-
return;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
vec4 frontFace = texture(frontFaceTexture, uv);
|
|
10
|
-
${t(!s.useFloatBlend,"float frontWeight = srcAlpha * floatBlendOutputScale;\n frontWeight = clamp((frontWeight - 0.9) * 10.0, 0.0, 1.0);\n\n float toAlpha = (1.0 + frontFace.a) * 0.5;\n frontFace.a = mix(frontFace.a, toAlpha, frontWeight);")}
|
|
11
|
-
|
|
12
|
-
float srcColorAlpha = texture(colorTexture, uv).a;
|
|
13
|
-
vec3 emission = texture(emissionTexture, uv).rgb * floatBlendInputScale;
|
|
14
|
-
vec4 emissionFrontFace = texture(frontFaceEmissionTexture, uv);
|
|
15
|
-
emissionFrontFace.rgb *= floatBlendInputScale;
|
|
16
|
-
|
|
17
|
-
// Modulate transparent emitter by front faces. This case is important for surfaces which contain emitter and
|
|
18
|
-
// non-emitter at the same time. Non-emitter surface parts need to modulate emissions as well.
|
|
19
|
-
emission = emission * (1.0 - frontFace.a);
|
|
20
|
-
emission = mix(emission / srcAlpha, emissionFrontFace.rgb, emissionFrontFace.a) * (1.0 - srcColorAlpha);
|
|
21
|
-
fragEmission = vec4(emission * floatBlendOutputScale, 1.0 - srcColorAlpha);
|
|
22
|
-
`),l}const u=Object.freeze(Object.defineProperty({__proto__:null,OITBlendEmissionPassParameters:l,build:c},Symbol.toStringTag,{value:"Module"}));export{l as O,u as a,c as b};
|
|
2
|
+
import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ColorConversion as s}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{emissionDimming as i}from"../views/3d/webgl-engine/core/shaderLibrary/util/EmissionDimming.glsl.js";import{glsl as n}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as r}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{OITBlendFragmentPassParameters as o,oitBlendFragment as l}from"../views/3d/webgl-engine/effects/transparency/oitBlendFragment.glsl.js";import{oitResolution as t}from"../views/3d/webgl-engine/shaders/oitResolution.glsl.js";import{ToneMapping as a}from"../views/3d/webgl-engine/shaders/ToneMapping.glsl.js";import{ShaderBuilder as m}from"../views/webgl/ShaderBuilder.js";class d extends o{}function g(o){const d=new m;d.include(e);const{fragment:g,outputs:u}=d;return u.add("fragEmission","vec4",1),g.include(t,o),g.include(l,o),g.include(i,o),g.include(a),g.include(s),g.uniforms.add(new r("emissionTexture",e=>e.emissionTexture),new r("frontFaceEmissionTexture",e=>e.frontFaceEmissionTexture)),g.main.add(n`vec4 emission = oitBlendFragment(emissionTexture, frontFaceEmissionTexture, floatBlendInputScale);
|
|
3
|
+
fragEmission = vec4(emission.rgb * pow(emission.a, 0.5) * floatBlendOutputScale, 0.0);`),d}const u=Object.freeze(Object.defineProperty({__proto__:null,OITBlendEmissionPassParameters:d,build:g},Symbol.toStringTag,{value:"Module"}));export{d as O,u as a,g as b};
|
package/config.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import"./core/has.js";import{deepMerge as e}from"./core/object.js";const s={apiKey:void 0,apiKeys:{scopes:[]},applicationName:"",applicationUrl:globalThis.location?.href,assetsPath:"",fontsUrl:"https://static.arcgis.com/fonts",geometryServiceUrl:"https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer",geoRSSServiceUrl:"https://utility.arcgis.com/sharing/rss",kmlServiceUrl:"https://utility.arcgis.com/sharing/kml",userPrivilegesApplied:!0,portalUrl:"https://www.arcgis.com",respectPrefersReducedMotion:!0,routeServiceUrl:"https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World",workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:["arcgis.com","arcgisonline.com","esrikr.com","premiumservices.blackbridge.com","esripremium.accuweather.com","gbm.digitalglobe.com","firstlook.digitalglobe.com","msi.digitalglobe.com"],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:"high",proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};if(globalThis.esriConfig&&(e(s,globalThis.esriConfig,!0),delete s.has),!s.assetsPath){{const e="5.2.0-next.
|
|
2
|
+
import"./core/has.js";import{deepMerge as e}from"./core/object.js";const s={apiKey:void 0,apiKeys:{scopes:[]},applicationName:"",applicationUrl:globalThis.location?.href,assetsPath:"",fontsUrl:"https://static.arcgis.com/fonts",geometryServiceUrl:"https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer",geoRSSServiceUrl:"https://utility.arcgis.com/sharing/rss",kmlServiceUrl:"https://utility.arcgis.com/sharing/kml",userPrivilegesApplied:!0,portalUrl:"https://www.arcgis.com",respectPrefersReducedMotion:!0,routeServiceUrl:"https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World",workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:["arcgis.com","arcgisonline.com","esrikr.com","premiumservices.blackbridge.com","esripremium.accuweather.com","gbm.digitalglobe.com","firstlook.digitalglobe.com","msi.digitalglobe.com"],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:"high",proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};if(globalThis.esriConfig&&(e(s,globalThis.esriConfig,!0),delete s.has),!s.assetsPath){{const e="5.2.0-next.20";s.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@${e}/assets`}s.defaultAssetsPath=s.assetsPath}export{s as default};
|
package/kernel.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import has from"./core/has.js";import{addQueryParameter as o}from"./core/urlUtils.js";export{buildDate,commitHash as revision}from"./support/revision.js";Symbol.dispose??=Symbol("Symbol.dispose"),Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");const e="5.2";let s,r=e;function i(o){s=o}function t(e){const r=s?.findCredential(e);return r?.token?o(e,"token",r.token):e}r="5.2.0-next.
|
|
2
|
+
import has from"./core/has.js";import{addQueryParameter as o}from"./core/urlUtils.js";export{buildDate,commitHash as revision}from"./support/revision.js";Symbol.dispose??=Symbol("Symbol.dispose"),Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");const e="5.2";let s,r=e;function i(o){s=o}function t(e){const r=s?.findCredential(e);return r?.token?o(e,"token",r.token):e}r="5.2.0-next.20",has("host-webworker")||globalThis.$arcgis||Object.defineProperty(globalThis,"$arcgis",{configurable:!1,enumerable:!0,writable:!1,value:{}}),has("host-webworker");export{t as addTokenParameter,r as fullVersion,s as id,i as setId,e as version};
|
|
@@ -68,7 +68,7 @@ export interface AnnotationFeatureLayerProperties extends LayerProperties, APIKe
|
|
|
68
68
|
* }]
|
|
69
69
|
* });
|
|
70
70
|
*/
|
|
71
|
-
sublayers?: ReadonlyArrayOrCollection<AnnotationFeatureSublayerProperties
|
|
71
|
+
sublayers?: ReadonlyArrayOrCollection<AnnotationFeatureSublayerProperties>;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
export interface AnnotationFeatureLayerEvents extends EditBusLayerEvents, RefreshableLayerEvents, LayerEvents {}
|
|
@@ -166,8 +166,8 @@ export default class AnnotationFeatureLayer extends AnnotationFeatureLayerSuperc
|
|
|
166
166
|
* }]
|
|
167
167
|
* });
|
|
168
168
|
*/
|
|
169
|
-
get sublayers(): Collection<AnnotationFeatureSublayer
|
|
170
|
-
set sublayers(value: ReadonlyArrayOrCollection<AnnotationFeatureSublayerProperties>
|
|
169
|
+
get sublayers(): Collection<AnnotationFeatureSublayer>;
|
|
170
|
+
set sublayers(value: ReadonlyArrayOrCollection<AnnotationFeatureSublayerProperties>);
|
|
171
171
|
/** The layer type provides a convenient way to check the type of the layer without the need to import specific layer modules. */
|
|
172
172
|
get type(): "annotation-feature";
|
|
173
173
|
/**
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__addDisposableResource as e,__disposeResources as
|
|
2
|
+
import{__addDisposableResource as e,__disposeResources as t,__decorate as r}from"tslib";import s from"../PopupTemplate.js";import i from"../request.js";import{ClonableMixin as o}from"../core/Clonable.js";import a from"../core/Collection.js";import n from"../core/Error.js";import{disposable as l,makeHandle as p}from"../core/handleUtils.js";import{MultiOriginJSONSupportMixin as u}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as d,whenOrAbort as y,onAbort as m}from"../core/promiseUtils.js";import{watch as h,sync as c}from"../core/reactiveUtils.js";import{join as f}from"../core/urlUtils.js";import{property as b,subclass as v}from"../core/accessorSupport/decorators.js";import g from"./Layer.js";import{APIKeyMixin as j}from"./mixins/APIKeyMixin.js";import{ArcGISService as S}from"./mixins/ArcGISService.js";import{BlendLayer as L}from"./mixins/BlendLayer.js";import{CustomParametersMixin as E}from"./mixins/CustomParametersMixin.js";import{FeatureLayerBase as w}from"./mixins/FeatureLayerBase.js";import{OperationalLayer as F}from"./mixins/OperationalLayer.js";import{PortalLayer as I}from"./mixins/PortalLayer.js";import{RefreshableLayer as T}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as P}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as x}from"./mixins/TemporalLayer.js";import _ from"./support/AnnotationFeatureSublayer.js";import{parse as O,cleanTitle as C,titleFromUrlAndName as A}from"./support/arcgisLayerUrl.js";import{barrierWeight as q,id as U,popupEnabled as k}from"./support/commonProperties.js";import{ensureLayerCredential as M,createQuery as D,getFieldDomain as N,hasDataChanged as Q}from"./support/featureLayerUtils.js";import{defineFieldProperties as G}from"./support/fieldProperties.js";import{fixTimeInfoFields as H}from"./support/fieldUtils.js";import{serviceSupportsSpatialReference as J}from"./support/versionUtils.js";import R from"../rest/support/Query.js";import{createPopupTemplate as $}from"../support/popupUtils.js";import{reader as B}from"../core/accessorSupport/decorators/reader.js";const K="annotation-feature-layer",V=G(),W=a.ofType(_);let z=class extends(w(L(x(P(T(S(F(I(u(E(j(o(g))))))))))))){constructor(e){super(e),this._sublayerLookup=new Map,this.barrierWeight="high",this.fields=null,this.fieldsIndex=null,this.operationalLayerType="ArcGISAnnotationLayer",this.outFields=null,this.popupEnabled=!0,this.popupTemplate=null,this.source=null,this.sublayers=new W,this.sublayerTitleMode="item-title",this.supportedSourceTypes=new Set(["Annotation Layer"]),this.type="annotation-feature",this._dataElementPromise=null,this.addHandles(h(()=>this.sublayers,(e,t)=>this._handleSublayersChange(e,t),c))}destroy(){this.source?.destroy()}load(e){const t=e?.signal,r=this.loadFromPortal({supportedTypes:["Feature Service"]},e).catch(d).then(async()=>{if(this.url&&null==this.layerId&&/FeatureServer|MapServer\/*$/i.test(this.url)){const e=await this._fetchFirstValidLayerId(t);null!=e&&(this.layerId=e)}if(!this.url)throw new n(`${K}:missing-url`,"AnnotationFeatureLayer must be created with a url");return this.initLayerProperties(await this.createGraphicsSource(t))}).then(()=>M(this,"load",e));return this.addResolvingPromise(r),Promise.resolve(this)}get editingEnabled(){return this._isOverridden("editingEnabled")?this._get("editingEnabled"):this.loaded&&null!=this.capabilities&&this.capabilities.operations.supportsEditing&&this.userHasEditingPrivileges}set editingEnabled(e){this._overrideIfSome("editingEnabled",e)}get effectiveEditingEnabled(){return!1}get defaultPopupTemplate(){return this.createPopupTemplate()}readSublayers(e,t){const r=new W(t.subtypes.map(({code:e})=>new _({subtypeCode:e})).reverse());if(this.visibleLayers){const e=new Set(this.visibleLayers);r.forEach(t=>{t.visible=e.has(t.subtypeCode)})}return r}readTitleFromService(e,t){const{url:r}=this,s=t.name||O(r)?.title;switch(this.sublayerTitleMode){case"item-title":if(r)return A(r,s);break;case"item-title-and-service-name":{let e=this.portalItem?.title;if(e&&e!==s)return e=C(e),s?`${e} - ${C(s)}`:e;break}}return s?C(s):void 0}readTitleFromPortalItem(e){return"item-title"===this.sublayerTitleMode?e:void 0}get visibleLayers(){return 0===this.sublayers.length?this._get("visibleLayers")??null:Array.from(new Set(this.sublayers?.toArray().filter(e=>e.visible).map(e=>e.subtypeCode).sort((e,t)=>e-t)??null))}set visibleLayers(e){this._set("visibleLayers",e)}createPopupTemplate(e){return $(this,e)}async createGraphicsSource(r){const s={stack:[],error:void 0,hasError:!1};try{const{default:t}=await y(import("./graphics/sources/FeatureLayerSource.js"),r),i=new t({layer:this,supportedSourceTypes:this.supportedSourceTypes});e(s,l(m(r,()=>i.cancelLoad())??p()),!1);return await i.load({signal:r}),i}catch(i){s.error=i,s.hasError=!0}finally{t(s)}}createQuery(){const e=D(this);return e.where=this.definitionExpression||"1=1",e}async fetchDataElement(e){if(this._dataElementPromise)return this._dataElementPromise;if(!this.url)throw new Error("InternalError: A URL is required to retrieve the data element for this layer.");const t=f(this.url,"queryDataElements"),r={f:"json",layers:this.layerId};return this._dataElementPromise=i(t,{...e,responseType:"json",query:r}).then(e=>{const t=e.data.layerDataElements,r=this.layerId,s=t.find(e=>e.layerId===r);if(!s)throw new n("fetchDataElement:not-available","A data element for this layer could not be retrieved.");return s.dataElement}),this._dataElementPromise}findSublayerForFeature(e){const t=this.fieldsIndex.get(this.subtypeField),r=e.attributes[t.name];return this.findSublayerForSubtypeCode(r)}findSublayerForSubtypeCode(e){return this._sublayerLookup.get(e)}getFieldDomain(e,t){return N(this,e,t,this.getField(e)?.domain??null)}async queryFeatures(e,t){const r=await this.load(),s=await r.source.queryFeatures(R.from(e)??r.createQuery(),t);if(s?.features)for(const i of s.features){const e=this.findSublayerForFeature(i);i.origin=e?.graphicOrigin,i.layer=i.sourceLayer=this}return s}async queryObjectIds(e,t){const r=await this.load();return r.source.queryObjectIds(R.from(e)??r.createQuery(),t)}async queryFeatureCount(e,t){const r=await this.load();return r.source.queryFeatureCount(R.from(e)??r.createQuery(),t)}async queryExtent(e,t){const r=await this.load();return r.source.queryExtent(R.from(e)??r.createQuery(),t)}serviceSupportsSpatialReference(e){return this.loaded&&J(this,e)}async initLayerProperties(e){this._set("source",e),e.sourceJSON&&(this.sourceJSON=e.sourceJSON,this.read(e.sourceJSON,{origin:"service",portalItem:this.portalItem,portal:this.portalItem?.portal,url:this.parsedUrl})),H(this.timeInfo,this.fieldsIndex)}async hasDataChanged(){return Q(this)}_fetchFirstValidLayerId(e){return i(this.url??"",{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e}).then(e=>{const t=e.data;if(!t)return;this.applyPreferredHost(t);const r=[...t.layers||[],...t.tables||[]];return r.find(({type:e})=>!e||this.supportedSourceTypes.has(e))?.id})}_handleSublayersChange(e,t){t&&(t.forEach(e=>{e.parent=null}),this.removeHandles("sublayers-owner"),this._sublayerLookup.clear()),e&&(e.forEach(e=>{e.parent=this,this._sublayerLookup.set(e.subtypeCode,e)}),this.addHandles([e.on("after-add",({item:e})=>{e.parent=this,this._sublayerLookup.set(e.subtypeCode,e)}),e.on("after-remove",({item:e})=>{e.parent=null,this._sublayerLookup.delete(e.subtypeCode)})],"sublayers-owner"))}};r([b(q)],z.prototype,"barrierWeight",void 0),r([b({json:{write:!0}})],z.prototype,"editingEnabled",null),r([b({readOnly:!0})],z.prototype,"effectiveEditingEnabled",null),r([b({...V.fields,readOnly:!0,json:{read:!1,origins:{service:{read:!0}}}})],z.prototype,"fields",void 0),r([b(V.fieldsIndex)],z.prototype,"fieldsIndex",void 0),r([b(U)],z.prototype,"id",void 0),r([b({type:["ArcGISAnnotationLayer"]})],z.prototype,"operationalLayerType",void 0),r([b(V.outFields)],z.prototype,"outFields",void 0),r([b(k)],z.prototype,"popupEnabled",void 0),r([b({type:s,json:{name:"popupInfo",write:!0}})],z.prototype,"popupTemplate",void 0),r([b({readOnly:!0})],z.prototype,"defaultPopupTemplate",null),r([b({clonable:!1,readOnly:!0})],z.prototype,"source",void 0),r([b({type:W})],z.prototype,"sublayers",void 0),r([B("service","sublayers",["subtypes"])],z.prototype,"readSublayers",null),r([b({type:String})],z.prototype,"sublayerTitleMode",void 0),r([B("service","title",["name"])],z.prototype,"readTitleFromService",null),r([B("portal-item","title")],z.prototype,"readTitleFromPortalItem",null),r([b({json:{read:!1},value:"annotation-feature",readOnly:!0})],z.prototype,"type",void 0),r([b({type:[Number],json:{write:{ignoreOrigin:!0}}})],z.prototype,"visibleLayers",null),z=r([v("esri.layers.AnnotationFeatureLayer")],z);const X=z;export{X as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__addDisposableResource as e,__disposeResources as r,__decorate as t}from"tslib";import i from"../PopupTemplate.js";import
|
|
2
|
+
import{__addDisposableResource as e,__disposeResources as r,__decorate as t}from"tslib";import i from"../PopupTemplate.js";import o from"../request.js";import{ClonableMixin as s}from"../core/Clonable.js";import a from"../core/Error.js";import{disposable as n,makeHandle as l}from"../core/handleUtils.js";import{MultiOriginJSONSupportMixin as p}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as u,whenOrAbort as m,onAbort as d}from"../core/promiseUtils.js";import{join as c}from"../core/urlUtils.js";import{property as h,subclass as y}from"../core/accessorSupport/decorators.js";import f from"../graphic/DimensionFeatureGraphicOrigin.js";import g from"./Layer.js";import{APIKeyMixin as j}from"./mixins/APIKeyMixin.js";import{ArcGISService as v}from"./mixins/ArcGISService.js";import{BlendLayer as E}from"./mixins/BlendLayer.js";import{CustomParametersMixin as b}from"./mixins/CustomParametersMixin.js";import{FeatureLayerBase as S}from"./mixins/FeatureLayerBase.js";import{OperationalLayer as I}from"./mixins/OperationalLayer.js";import{PortalLayer as L}from"./mixins/PortalLayer.js";import{RefreshableLayer as P}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as T}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as w}from"./mixins/TemporalLayer.js";import{parse as F,cleanTitle as x,titleFromUrlAndName as O}from"./support/arcgisLayerUrl.js";import{barrierWeight as q,id as D,popupEnabled as _}from"./support/commonProperties.js";import{ensureLayerCredential as U,createQuery as M,getFieldDomain as A,hasDataChanged as G}from"./support/featureLayerUtils.js";import{defineFieldProperties as Q}from"./support/fieldProperties.js";import{fixTimeInfoFields as C}from"./support/fieldUtils.js";import{serviceSupportsSpatialReference as J}from"./support/versionUtils.js";import N from"../rest/support/Query.js";import{createPopupTemplate as R}from"../support/popupUtils.js";import{reader as k}from"../core/accessorSupport/decorators/reader.js";const $="dimension-feature-layer",B=Q();let H=class extends(S(E(w(T(P(v(I(L(p(b(j(s(g))))))))))))){constructor(e){super(e),this.barrierWeight="high",this.fields=null,this.fieldsIndex=null,this.graphicOrigin=new f(this),this.operationalLayerType="ArcGISDimensionLayer",this.outFields=null,this.popupEnabled=!0,this.popupTemplate=null,this.source=null,this.sublayerTitleMode="item-title",this.supportedSourceTypes=new Set(["Dimension Layer"]),this.type="dimension-feature",this._dataElementPromise=null}destroy(){this.source?.destroy()}load(e){const r=e?.signal,t=this.loadFromPortal({supportedTypes:["Feature Service"]},e).catch(u).then(async()=>{if(this.url&&null==this.layerId&&/FeatureServer|MapServer\/*$/i.test(this.url)){const e=await this._fetchFirstValidLayerId(r);null!=e&&(this.layerId=e)}if(!this.url)throw new a(`${$}:missing-url`,"DimensionFeatureLayer must be created with a url");return this.initLayerProperties(await this.createGraphicsSource(r))}).then(()=>U(this,"load",e));return this.addResolvingPromise(t),Promise.resolve(this)}get editingEnabled(){return this._isOverridden("editingEnabled")?this._get("editingEnabled"):this.loaded&&null!=this.capabilities&&this.capabilities.operations.supportsEditing&&this.userHasEditingPrivileges}set editingEnabled(e){this._overrideIfSome("editingEnabled",e)}get effectiveEditingEnabled(){return!1}get defaultPopupTemplate(){return this.createPopupTemplate()}readTitleFromService(e,r){const{url:t}=this,i=r.name||F(t)?.title;switch(this.sublayerTitleMode){case"item-title":if(t)return O(t,i);break;case"item-title-and-service-name":{let e=this.portalItem?.title;if(e&&e!==i)return e=x(e),i?`${e} - ${x(i)}`:e;break}}return i?x(i):void 0}readTitleFromPortalItem(e){return"item-title"===this.sublayerTitleMode?e:void 0}createPopupTemplate(e){return R(this,e)}async createGraphicsSource(t){const i={stack:[],error:void 0,hasError:!1};try{const{default:r}=await m(import("./graphics/sources/FeatureLayerSource.js"),t),o=new r({layer:this,supportedSourceTypes:this.supportedSourceTypes});e(i,n(d(t,()=>o.cancelLoad())??l()),!1);return await o.load({signal:t}),o}catch(o){i.error=o,i.hasError=!0}finally{r(i)}}createQuery(){const e=M(this);return e.where=this.definitionExpression||"1=1",e}async fetchDataElement(e){if(this._dataElementPromise)return this._dataElementPromise;if(!this.url)throw new Error("InternalError: A URL is required to retrieve the data element for this layer.");const r=c(this.url,"queryDataElements"),t={f:"json",layers:this.layerId};return this._dataElementPromise=o(r,{...e,responseType:"json",query:t}).then(e=>{const r=e.data.layerDataElements,t=this.layerId,i=r.find(e=>e.layerId===t);if(!i)throw new a("fetchDataElement:not-available","A data element for this layer could not be retrieved.");return i.dataElement}),this._dataElementPromise}getFieldDomain(e,r){return A(this,e,r,this.getField(e)?.domain??null)}async queryFeatures(e,r){const t=await this.load(),i=await t.source.queryFeatures(N.from(e)??t.createQuery(),r),o=this.graphicOrigin;if(i?.features)for(const s of i.features)s.layer=s.sourceLayer=t,s.origin=o;return i}async queryObjectIds(e,r){const t=await this.load();return t.source.queryObjectIds(N.from(e)??t.createQuery(),r)}async queryFeatureCount(e,r){const t=await this.load();return t.source.queryFeatureCount(N.from(e)??t.createQuery(),r)}async queryExtent(e,r){const t=await this.load();return t.source.queryExtent(N.from(e)??t.createQuery(),r)}serviceSupportsSpatialReference(e){return this.loaded&&J(this,e)}async initLayerProperties(e){this._set("source",e),e.sourceJSON&&(this.sourceJSON=e.sourceJSON,this.read(e.sourceJSON,{origin:"service",portalItem:this.portalItem,portal:this.portalItem?.portal,url:this.parsedUrl})),C(this.timeInfo,this.fieldsIndex)}async hasDataChanged(){return G(this)}_fetchFirstValidLayerId(e){return o(this.url??"",{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e}).then(e=>{const r=e.data;if(!r)return;this.applyPreferredHost(r);const t=[...r.layers||[],...r.tables||[]];return t.find(({type:e})=>!e||this.supportedSourceTypes.has(e))?.id})}};t([h(q)],H.prototype,"barrierWeight",void 0),t([h({json:{write:!0}})],H.prototype,"editingEnabled",null),t([h({readOnly:!0})],H.prototype,"effectiveEditingEnabled",null),t([h({...B.fields,readOnly:!0,json:{read:!1,origins:{service:{read:!0}}}})],H.prototype,"fields",void 0),t([h(B.fieldsIndex)],H.prototype,"fieldsIndex",void 0),t([h({readOnly:!0,clonable:!1})],H.prototype,"graphicOrigin",void 0),t([h(D)],H.prototype,"id",void 0),t([h({type:["ArcGISDimensionLayer"]})],H.prototype,"operationalLayerType",void 0),t([h(B.outFields)],H.prototype,"outFields",void 0),t([h(_)],H.prototype,"popupEnabled",void 0),t([h({type:i,json:{name:"popupInfo",write:!0}})],H.prototype,"popupTemplate",void 0),t([h({readOnly:!0})],H.prototype,"defaultPopupTemplate",null),t([h({clonable:!1,readOnly:!0})],H.prototype,"source",void 0),t([h({type:String})],H.prototype,"sublayerTitleMode",void 0),t([k("service","title",["name"])],H.prototype,"readTitleFromService",null),t([k("portal-item","title")],H.prototype,"readTitleFromPortalItem",null),t([h({json:{read:!1},value:"dimension-feature",readOnly:!0})],H.prototype,"type",void 0),H=t([y("esri.layers.DimensionFeatureLayer")],H);const K=H;export{K as default};
|
|
@@ -69,9 +69,8 @@ export interface GaussianSplatLayerProperties extends LayerProperties, APIKeyMix
|
|
|
69
69
|
* >
|
|
70
70
|
* > **Known Limitations**
|
|
71
71
|
* >
|
|
72
|
-
* > * Currently,
|
|
72
|
+
* > * Currently, Shadow Cast analysis, Viewshed and Volume Measurement are not supported.
|
|
73
73
|
* > * When using the [Slice component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-slice/), the slice plane will, contrary to the behavior described in [`tiltEnabled`](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-slice/#tiltEnabled), not automatically align to the underlying surface of a Gaussian Splat layer due to the absence of surface normals.
|
|
74
|
-
* > * Gaussian splat layers do not cast or receive shadows.
|
|
75
74
|
* > * Gaussian splat layers are not guaranteed to always draw correctly in a local scene using WGS84 as spatial reference
|
|
76
75
|
* > (WKID 4326).
|
|
77
76
|
*
|
package/layers/VideoLayer.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../Color.js";import r from"../request.js";import{deprecatedProperty as o}from"../core/deprecate.js";import i from"../core/Error.js";import s from"../core/Logger.js";import{clamp as n}from"../core/mathUtils.js";import{MultiOriginJSONSupportMixin as l}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as a}from"../core/promiseUtils.js";import{watch as p,initial as m,whenOnce as y}from"../core/reactiveUtils.js";import{property as u,subclass as h}from"../core/accessorSupport/decorators.js";import{Integer as d}from"../core/accessorSupport/ensureType.js";import c from"../geometry/Extent.js";import f from"../geometry/Point.js";import v from"../geometry/Polygon.js";import g from"../geometry/Polyline.js";import S from"../geometry/SpatialReference.js";import b from"./Layer.js";import{ArcGISService as O}from"./mixins/ArcGISService.js";import{BlendLayer as j,effectProperty as w}from"./mixins/BlendLayer.js";import{CustomParametersMixin as T}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as I}from"./mixins/OperationalLayer.js";import{PortalLayer as P}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as C}from"./mixins/ScaleRangeLayer.js";import{parse as L,cleanTitle as U,titleFromUrlAndName as x}from"./support/arcgisLayerUrl.js";import{opacity as E,id as M}from"./support/commonProperties.js";import{normalizeParsedUrlObject as N,urlProperty as _}from"./support/multiLayerServiceUtils.js";import k from"./support/PlaybackInfo.js";import{getVideoLayerCapabilities as F}from"./support/serviceCapabilitiesUtils.js";import J from"./support/TelemetryData.js";import R from"./support/TelemetryDisplay.js";import V from"./support/VideoFrame.js";import H from"./support/VideoTimeExtent.js";import q from"./video/VideoController.js";import{getFrameHorizonPoints as G,getGroundControlPoints as z,getTelemetryData as A,getServiceLayersInfo as D,getStyledTelemetrySymbol as Z,getLineOfSight as B,getSensorTrailPoints as Q,readVideoTimeExtent as W}from"./video/videoUtils.js";import $ from"../symbols/CIMSymbol.js";import K from"../symbols/PictureMarkerSymbol.js";import X from"../symbols/SimpleFillSymbol.js";import Y from"../symbols/SimpleLineSymbol.js";import ee from"../symbols/SimpleMarkerSymbol.js";import te from"../symbols/Symbol.js";import{write as re}from"../symbols/support/jsonUtils.js";import{addLayerUnsupportedError as oe}from"../webdoc/support/unsupportedErrors.js";import{reader as ie}from"../core/accessorSupport/decorators/reader.js";function se(e,t){return{ignoreOrigin:this.originIdOf(t)<3}}const ne=new t([255,127,0]),le=new t([0,0,0,.05]),ae=new ee({angle:0,color:ne,size:10,style:"cross"}),pe=new X({color:le,outline:new Y({color:ne,width:2})}),me=new Y({color:ne,style:"dash",width:1}),ye=new Y({color:ne,width:1}),ue=new ee({angle:0,color:ne,outline:{color:[255,255,255],width:1.33},size:10,style:"circle"}),he=new Y({color:ne,width:1}),de={types:{base:te,key:"type",typeMap:{"simple-marker":ee,"picture-marker":K,cim:$}},json:{name:"drawingInfo.sensorSymbol",write:{writer:re,overridePolicy:se}}};function ce(e,t){return{type:t,json:{name:e,write:{overridePolicy:se}}}}let fe=class extends(j(C(O(I(P(l(T(b)))))))){constructor(e){super(e),this._trailPoints=[],this.cameraInfo=null,this.capabilities=null,this.codecs=null,this.connectionInfo=null,this.controller=new q,this.copyright=null,this.coverage=null,this.created=null,this.customParameters=null,this.description=null,this.elevationSource=null,this.frame=null,this.frameCenterSymbol=ae.clone(),this.frameCount=null,this.frameEffect=null,this.frameOpacity=1,this.frameOutlineSymbol=pe.clone(),this.fullExtent=null,this.fullTimeExtent=null,this.initialExtent=null,this.layerId=null,this.previewsInfo=null,this.operationalLayerType="ArcGISVideoLayer",this.playbackInfo=null,this.posterUrl=null,this.qualities=null,this.sensorSymbolOrientation={source:"platformHeading",symbolOffset:0},this.sensorPathSymbol=me.clone(),this.sensorSymbol=ue.clone(),this.sensorSightLineSymbol=ye.clone(),this.sensorTrailSymbol=he.clone(),this.serviceItemId=null,this.sourceJSON=null,this.sourceQuality=null,this.sourceType=null,this.spatialReference=S.WGS84,this.start=0,this.telemetryDisplay=new R,this.sublayerTitleMode="item-title",this.type="video",this.url=null,this.version=null,this.videoLayersInfo=null}initialize(){this.addHandles([p(()=>this.metadata,()=>{this.notifyChange("telemetry"),this.notifyChange("groundControlPoints"),this.notifyChange("frameHorizonPoints")}),p(()=>this.telemetry?.sensorLocation,e=>{this._setSensorPath(e),this._setSensorTrail(e)},m)]),y(()=>this.loaded&&"can-play"===this.state&&this.duration>0).then(()=>{this.start>=0&&this.start<=this.duration&&this.setCurrentTime(this.start)})}destroy(){this.removeAllHandles(),this.controller&&this.controller.destroy()}load(e){const t=null!=e?e.signal:null,r=this.loadFromPortal({supportedTypes:["Video Service"],supportsData:!0},e).catch(a).then(()=>this._fetchService(t)).then(()=>this._fetchCoverage(t)).then(()=>this._fetchPreviewsInfo(t));return this.addResolvingPromise(r),Promise.resolve(this)}get autoplay(){return this.controller?.autoplay??!1}set autoplay(e){this.controller.autoplay=e}get buffered(){return this.controller.buffered}readCapabilitiesFromService(e,t){return F(t)}readConnectionInfo(e,t){const r=Object.values(t.connectionUrl);return r?.length&&(this.controller.startMode="ondemand"===t.serviceType?"auto":"metadata",this.controller.playerUrl=r[0]),t.connectionUrl}get currentTime(){return this.controller.currentTime}get duration(){return this.controller.duration}get ended(){return this.controller.ended}get frameHorizonPoints(){return G(this.metadata)}get groundControlPoints(){return z(this.metadata)}get isLive(){return this.controller?.isLive??!1}get livestreamStatus(){return this.controller?.livestreamStatus}get loop(){return this.controller.loop}set loop(e){this.controller.loop=e}get metadata(){return this.controller?.currentMetadata}get mimeType(){return this.controller?.mimeType}get muted(){return this.controller.muted}set muted(e){this.controller.muted=e}get parsedUrl(){return N(this)}get playbackRate(){return this.controller.rate}set playbackRate(e){this.controller.rate=e}get playerUrl(){return this.controller.playerUrl}get playing(){return this.controller.playing}get started(){return this.controller?.started??!1}get state(){return this.controller.state}get telemetry(){return A(this.metadata)}readTitleFromService(e,t){const{url:r}=this,o=t.name||(r?L(r)?.title:void 0);switch(this.sublayerTitleMode){case"item-title":if(r)return x(r,o);break;case"item-title-and-service-name":{const e=this.portalItem?.title;if(e&&e!==o)return U(e)+(o?" - "+U(o):"");break}}return o?U(o):void 0}readTitleFromPortalItem(e){return"item-title"===this.sublayerTitleMode?e:void 0}get videoElement(){return this.controller?.element}get videoHeight(){return this.controller?.videoHeight}readLayerInfosFromService(e,t){return D(t)}get videoTimeExtent(){return o(s.getLogger(this),"videoTimeExtent",{replacement:"fullTimeExtent",version:"4.33",warnOnce:!0}),this.fullTimeExtent}get videoWidth(){return this.controller?.videoWidth}get volume(){return this.controller?.volume??0}set volume(e){this.controller.volume=e}get waiting(){return this.controller.waiting}play(){this.controller.play()}pause(){this.controller.pause()}reset(){this._trailPoints=[],this.controller.reset()}setCurrentTime(e){if(this.duration<0)return;const t=n(e,0,this.duration);this.controller.setCurrentTime(t)}toGround(e,t){return this.controller?.sensorModel?.metadataSupportsTransforms?this.controller.sensorModel.transformImageToGeo(e,t):null}toVideo(e){if(!this.controller?.sensorModel?.metadataSupportsTransforms)return null;const t=this.controller.sensorModel.transformGeoToImage(e.x,e.y,e.z);return{x:t[0],y:t[1]}}updateTelemetryColor(e,r){if(!e)return;const o=new t(e);r&&!r?.frameCenter||(this.frameCenterSymbol=Z(this.frameCenterSymbol,o)??ae),r&&!r?.frameOutline||(this.frameOutlineSymbol=Z(this.frameOutlineSymbol,o,le)??pe),r&&!r?.lineOfSight||(this.sensorSightLineSymbol=Z(this.sensorSightLineSymbol,o)??ye),r&&!r?.sensorLocation||(this.sensorSymbol=Z(this.sensorSymbol,o)??ue),r&&!r?.sensorPath||(this.sensorPathSymbol=Z(this.sensorPathSymbol,o)??me),r&&!r?.sensorTrail||(this.sensorTrailSymbol=Z(this.sensorTrailSymbol,o)??he)}write(e,t){return null==this.layerId?(oe(t,this,"the ArcGIS server version must be greater than 11.2."),null):super.write(e,t)}async _fetchCoverage(e){if(!this.capabilities?.operations?.supportsCoverageQuery||"number"!=typeof this.layerId)return;const t=`${this.parsedUrl.path}/coverage`,{data:o}=await r(t,{query:{f:"json",...this.customParameters},signal:e}),{area:i=null,sensorPoints:s=null,telemetry:n=null}=o,l={area:null,path:null};if(i?.rings?.length&&(l.area=v.fromJSON(i)),s?.points?.length){const e=s.points;l.path=new g({hasM:!0,hasZ:!0,paths:[e]})}if(n?.start){const{frameCenter:e=null,frameOutline:t=null,sensor:r=null}=n?.start||{};if(t&&(this.telemetry.frameOutline=v.fromJSON(t)),r&&(this.telemetry.sensorLocation=f.fromJSON(r)),e&&(this.telemetry.frameCenter=f.fromJSON(e)),r&&e){const{sensorLocation:e,frameCenter:t}=this.telemetry;this.telemetry.lineOfSight=B(e,t)}}this._set("coverage",l)}async _fetchPreviewsInfo(e){if("number"!=typeof this.layerId||!this.capabilities?.operations?.supportsPreviews)return;const t=`${this.parsedUrl.path}/content/preview/preview.json`,{data:o}=await r(t,{query:{f:"json"},signal:e});if(!o?.preview)return;const{frameCount:i=0,frameInterval:s=0,frames:n=[],height:l,nCol:a,nRow:p,preview:m,width:y}=o||{},u={count:i,height:l,interval:s,numCols:a,numRows:p,thumbnailInfo:n,urlFragment:m,width:y};this.read({previewsInfo:u},{origin:"service"})}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.url,{query:{f:"json",...this.parsedUrl.query,...this.customParameters},signal:e});if(o&&(this.url=this.url.replace(/^http:/i,"https:")),!t?.currentVersion)return t.currentVersion="11.2",this.sourceJSON=t,void this.read(this.sourceJSON,{origin:"service",url:this.parsedUrl});if(this.layerId??=t.layers?.[0]?.id??null,null==this.layerId)throw new i("arcgis-layers:url-mismatch","The url is not a valid arcgis resource");const{data:s}=await r(this.parsedUrl.path,{query:{f:"json",...this.customParameters},signal:e});this.sourceJSON={...t,...s},this.read(this.sourceJSON,{origin:"service",url:this.parsedUrl})}_setSensorTrail(e){if(!e)return;const t=Q(e,this._trailPoints);this._trailPoints=[...t];const r=this._trailPoints.map(e=>e.toArray()),o=new g({hasZ:e.hasZ,paths:[r]});this.telemetry.sensorTrail=o.clone()}_setSensorPath(e){if(!e||"polyline"!==this.coverage?.path?.type)return;const t=this.telemetry?.sensorPath??this.coverage.path.clone(),{spatialReference:r,hasZ:o,hasM:i,paths:s}=t;if(!i)return;const n=t.hasZ?3:2,l=1e3*this.currentTime,a=[];for(const p of s){let e=0;const t=p.length,r=l>500?l+1500:l;for(;e<t&&p[e][n]<=r;)e++;e<p.length&&a.push(...p.slice(e))}this.telemetry.sensorPath=new g({hasZ:o,hasM:i,paths:[a],spatialReference:r})}};e([u({type:Boolean,json:{write:{ignoreOrigin:!0}}})],fe.prototype,"autoplay",null),e([u({readOnly:!0})],fe.prototype,"buffered",null),e([u({readOnly:!0})],fe.prototype,"cameraInfo",void 0),e([u({readOnly:!0,json:{read:!1}})],fe.prototype,"capabilities",void 0),e([ie("service","capabilities",["supportsAppend","supportsCoverageQuery","supportsExportClip","supportsExportFrameset","supportsMensuration","supportsPreviews","supportsUpdate"])],fe.prototype,"readCapabilitiesFromService",null),e([u({readOnly:!0})],fe.prototype,"codecs",void 0),e([u({readOnly:!0})],fe.prototype,"connectionInfo",void 0),e([ie("connectionInfo",["connectionUrl"])],fe.prototype,"readConnectionInfo",null),e([u()],fe.prototype,"controller",void 0),e([u({type:String})],fe.prototype,"copyright",void 0),e([u({readOnly:!0})],fe.prototype,"coverage",void 0),e([u({readOnly:!0,type:Date})],fe.prototype,"created",void 0),e([u({type:Number})],fe.prototype,"currentTime",null),e([u({json:{write:!1}})],fe.prototype,"customParameters",void 0),e([u({type:String})],fe.prototype,"description",void 0),e([u({type:Number})],fe.prototype,"duration",null),e([u({readOnly:!0})],fe.prototype,"elevationSource",void 0),e([u({type:Boolean})],fe.prototype,"ended",null),e([u({type:V})],fe.prototype,"frame",void 0),e([u(ce("drawingInfo.frameCenterSymbol",ee))],fe.prototype,"frameCenterSymbol",void 0),e([u({readOnly:!0,type:d})],fe.prototype,"frameCount",void 0),e([u(w)],fe.prototype,"frameEffect",void 0),e([u(E)],fe.prototype,"frameOpacity",void 0),e([u(ce("drawingInfo.frameOutlineSymbol",X))],fe.prototype,"frameOutlineSymbol",void 0),e([u({type:c})],fe.prototype,"fullExtent",void 0),e([u({readOnly:!0})],fe.prototype,"frameHorizonPoints",null),e([u({readOnly:!0,json:{read:{reader:W,source:"time"}},type:H})],fe.prototype,"fullTimeExtent",void 0),e([u({readOnly:!0})],fe.prototype,"groundControlPoints",null),e([u(M)],fe.prototype,"id",void 0),e([u({type:c})],fe.prototype,"initialExtent",void 0),e([u({readOnly:!0})],fe.prototype,"isLive",null),e([u({type:d,json:{read:!1,origins:{service:{read:{source:"id"}}}}})],fe.prototype,"layerId",void 0),e([u({readOnly:!0})],fe.prototype,"livestreamStatus",null),e([u({type:Boolean,json:{write:{ignoreOrigin:!0}}})],fe.prototype,"loop",null),e([u({readOnly:!0})],fe.prototype,"metadata",null),e([u({readOnly:!0})],fe.prototype,"mimeType",null),e([u({type:Boolean,json:{write:{ignoreOrigin:!0}}})],fe.prototype,"muted",null),e([u({readOnly:!0})],fe.prototype,"previewsInfo",void 0),e([u({type:["ArcGISVideoLayer"]})],fe.prototype,"operationalLayerType",void 0),e([u({readOnly:!0})],fe.prototype,"parsedUrl",null),e([u({type:k})],fe.prototype,"playbackInfo",void 0),e([u({type:Number,json:{write:{ignoreOrigin:!0}}})],fe.prototype,"playbackRate",null),e([u({readOnly:!0,type:String})],fe.prototype,"playerUrl",null),e([u({readOnly:!0})],fe.prototype,"playing",null),e([u({readOnly:!0,json:{read:{source:"poster"}}})],fe.prototype,"posterUrl",void 0),e([u({readOnly:!0})],fe.prototype,"qualities",void 0),e([u()],fe.prototype,"sensorSymbolOrientation",void 0),e([u(ce("drawingInfo.sensorPathSymbol",Y))],fe.prototype,"sensorPathSymbol",void 0),e([u(de)],fe.prototype,"sensorSymbol",void 0),e([u(ce("drawingInfo.sensorSightLineSymbol",Y))],fe.prototype,"sensorSightLineSymbol",void 0),e([u(ce("drawingInfo.sensorTrailSymbol",Y))],fe.prototype,"sensorTrailSymbol",void 0),e([u({readOnly:!0})],fe.prototype,"serviceItemId",void 0),e([u()],fe.prototype,"sourceJSON",void 0),e([u({readOnly:!0})],fe.prototype,"sourceQuality",void 0),e([u({readOnly:!0,json:{name:"serviceType"}})],fe.prototype,"sourceType",void 0),e([u({type:S})],fe.prototype,"spatialReference",void 0),e([u({json:{write:!0}})],fe.prototype,"start",void 0),e([u({readOnly:!0})],fe.prototype,"started",null),e([u({readOnly:!0,type:String})],fe.prototype,"state",null),e([u({readOnly:!0,type:J})],fe.prototype,"telemetry",null),e([u({type:R,nonNullable:!0,json:{write:{ignoreOrigin:!0}}})],fe.prototype,"telemetryDisplay",void 0),e([ie("service","title",["name"])],fe.prototype,"readTitleFromService",null),e([ie("portal-item","title")],fe.prototype,"readTitleFromPortalItem",null),e([u({type:String})],fe.prototype,"sublayerTitleMode",void 0),e([u({readOnly:!0})],fe.prototype,"type",void 0),e([u(_())],fe.prototype,"url",void 0),e([u({readOnly:!0,type:Number,json:{read:{source:"currentVersion"}}})],fe.prototype,"version",void 0),e([u({readOnly:!0})],fe.prototype,"videoElement",null),e([u({readOnly:!0})],fe.prototype,"videoHeight",null),e([u({readOnly:!0,json:{read:!1}})],fe.prototype,"videoLayersInfo",void 0),e([ie("service","videoLayersInfo",["id","name","poster","serviceType","type"])],fe.prototype,"readLayerInfosFromService",null),e([u({type:H,readOnly:!0})],fe.prototype,"videoTimeExtent",null),e([u({readOnly:!0})],fe.prototype,"videoWidth",null),e([u()],fe.prototype,"volume",null),e([u({readOnly:!0})],fe.prototype,"waiting",null),fe=e([h("esri.layers.VideoLayer")],fe);const ve=fe;export{ve as default};
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../Color.js";import r from"../request.js";import{deprecatedProperty as o}from"../core/deprecate.js";import i from"../core/Error.js";import s from"../core/Logger.js";import{clamp as n}from"../core/mathUtils.js";import{MultiOriginJSONSupportMixin as l}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as a}from"../core/promiseUtils.js";import{watch as p,initial as m,whenOnce as y}from"../core/reactiveUtils.js";import{property as u,subclass as h}from"../core/accessorSupport/decorators.js";import{Integer as d}from"../core/accessorSupport/ensureType.js";import c from"../geometry/Extent.js";import f from"../geometry/Point.js";import v from"../geometry/Polygon.js";import g from"../geometry/Polyline.js";import S from"../geometry/SpatialReference.js";import b from"./Layer.js";import{ArcGISService as O}from"./mixins/ArcGISService.js";import{BlendLayer as j,effectProperty as w}from"./mixins/BlendLayer.js";import{CustomParametersMixin as T}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as I}from"./mixins/OperationalLayer.js";import{PortalLayer as P}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as C}from"./mixins/ScaleRangeLayer.js";import{parse as L,cleanTitle as U,titleFromUrlAndName as x}from"./support/arcgisLayerUrl.js";import{opacity as E,id as M}from"./support/commonProperties.js";import{normalizeParsedUrlObject as N,urlProperty as _}from"./support/multiLayerServiceUtils.js";import k from"./support/PlaybackInfo.js";import{getVideoLayerCapabilities as F}from"./support/serviceCapabilitiesUtils.js";import J from"./support/TelemetryData.js";import R from"./support/TelemetryDisplay.js";import V from"./support/VideoFrame.js";import H from"./support/VideoTimeExtent.js";import q from"./video/VideoController.js";import{getFrameHorizonPoints as G,getGroundControlPoints as z,getTelemetryData as A,getServiceLayersInfo as D,getStyledTelemetrySymbol as Z,getLineOfSight as B,getSensorTrailPoints as Q,readVideoTimeExtent as W}from"./video/videoUtils.js";import $ from"../symbols/CIMSymbol.js";import K from"../symbols/PictureMarkerSymbol.js";import X from"../symbols/SimpleFillSymbol.js";import Y from"../symbols/SimpleLineSymbol.js";import ee from"../symbols/SimpleMarkerSymbol.js";import te from"../symbols/Symbol.js";import{write as re}from"../symbols/support/jsonUtils.js";import{addLayerUnsupportedError as oe}from"../webdoc/support/unsupportedErrors.js";import{reader as ie}from"../core/accessorSupport/decorators/reader.js";function se(e,t){return{ignoreOrigin:this.originIdOf(t)<3}}const ne=new t([255,127,0]),le=new t([0,0,0,.05]),ae=new ee({angle:0,color:ne,size:10,style:"cross"}),pe=new X({color:le,outline:new Y({color:ne,width:2})}),me=new Y({color:ne,style:"dash",width:1}),ye=new Y({color:ne,width:1}),ue=new ee({angle:0,color:ne,outline:{color:[255,255,255],width:1.33},size:10,style:"circle"}),he=new Y({color:ne,width:1}),de={types:{base:te,key:"type",typeMap:{"simple-marker":ee,"picture-marker":K,cim:$}},json:{name:"drawingInfo.sensorSymbol",write:{writer:re,overridePolicy:se}}};function ce(e,t){return{type:t,json:{name:e,write:{overridePolicy:se}}}}let fe=class extends(j(C(O(I(P(l(T(b)))))))){constructor(e){super(e),this._trailPoints=[],this.cameraInfo=null,this.capabilities=null,this.codecs=null,this.connectionInfo=null,this.controller=new q,this.copyright=null,this.coverage=null,this.created=null,this.customParameters=null,this.description=null,this.elevationSource=null,this.frame=null,this.frameCenterSymbol=ae.clone(),this.frameCount=null,this.frameEffect=null,this.frameOpacity=1,this.frameOutlineSymbol=pe.clone(),this.fullExtent=null,this.fullTimeExtent=null,this.initialExtent=null,this.layerId=null,this.previewsInfo=null,this.operationalLayerType="ArcGISVideoLayer",this.playbackInfo=null,this.posterUrl=null,this.qualities=null,this.sensorSymbolOrientation={source:"platformHeading",symbolOffset:0},this.sensorPathSymbol=me.clone(),this.sensorSymbol=ue.clone(),this.sensorSightLineSymbol=ye.clone(),this.sensorTrailSymbol=he.clone(),this.serviceItemId=null,this.sourceJSON=null,this.sourceQuality=null,this.sourceType=null,this.spatialReference=S.WGS84,this.start=0,this.telemetryDisplay=new R,this.sublayerTitleMode="item-title",this.type="video",this.url=null,this.version=null,this.videoLayersInfo=null}initialize(){this.addHandles([p(()=>this.metadata,()=>{this.notifyChange("telemetry"),this.notifyChange("groundControlPoints"),this.notifyChange("frameHorizonPoints")}),p(()=>this.telemetry?.sensorLocation,e=>{this._setSensorPath(e),this._setSensorTrail(e)},m)]),y(()=>this.loaded&&"can-play"===this.state&&this.duration>0).then(()=>{this.start>=0&&this.start<=this.duration&&this.setCurrentTime(this.start)})}destroy(){this.removeAllHandles(),this.controller&&this.controller.destroy()}load(e){const t=null!=e?e.signal:null,r=this.loadFromPortal({supportedTypes:["Video Service"],supportsData:!0},e).catch(a).then(()=>this._fetchService(t)).then(()=>this._fetchCoverage(t)).then(()=>this._fetchPreviewsInfo(t));return this.addResolvingPromise(r),Promise.resolve(this)}get autoplay(){return this.controller?.autoplay??!1}set autoplay(e){this.controller.autoplay=e}get buffered(){return this.controller.buffered}readCapabilitiesFromService(e,t){return F(t)}readConnectionInfo(e,t){const r=Object.values(t.connectionUrl);return r?.length&&(this.controller.startMode="ondemand"===t.serviceType?"auto":"metadata",this.controller.playerUrl=r[0]),t.connectionUrl}get currentTime(){return this.controller.currentTime}get duration(){return this.controller.duration}get ended(){return this.controller.ended}get frameHorizonPoints(){return G(this.metadata)}get groundControlPoints(){return z(this.metadata)}get isLive(){return this.controller?.isLive??!1}get livestreamStatus(){return this.controller?.livestreamStatus}get loop(){return this.controller.loop}set loop(e){this.controller.loop=e}get metadata(){return this.controller?.currentMetadata}get mimeType(){return this.controller?.mimeType}get muted(){return this.controller.muted}set muted(e){this.controller.muted=e}get parsedUrl(){return N(this)}get playbackRate(){return this.controller.rate}set playbackRate(e){this.controller.rate=e}get playerUrl(){return this.controller.playerUrl}get playing(){return this.controller.playing}get started(){return this.controller?.started??!1}get state(){return this.controller.state}get telemetry(){return A(this.metadata)}readTitleFromService(e,t){const{url:r}=this,o=t.name||L(r)?.title;switch(this.sublayerTitleMode){case"item-title":if(r)return x(r,o);break;case"item-title-and-service-name":{let e=this.portalItem?.title;if(e&&e!==o)return e=U(e),o?`${e} - ${U(o)}`:e;break}}return o?U(o):void 0}readTitleFromPortalItem(e){return"item-title"===this.sublayerTitleMode?e:void 0}get videoElement(){return this.controller?.element}get videoHeight(){return this.controller?.videoHeight}readLayerInfosFromService(e,t){return D(t)}get videoTimeExtent(){return o(s.getLogger(this),"videoTimeExtent",{replacement:"fullTimeExtent",version:"4.33",warnOnce:!0}),this.fullTimeExtent}get videoWidth(){return this.controller?.videoWidth}get volume(){return this.controller?.volume??0}set volume(e){this.controller.volume=e}get waiting(){return this.controller.waiting}play(){this.controller.play()}pause(){this.controller.pause()}reset(){this._trailPoints=[],this.controller.reset()}setCurrentTime(e){if(this.duration<0)return;const t=n(e,0,this.duration);this.controller.setCurrentTime(t)}toGround(e,t){return this.controller?.sensorModel?.metadataSupportsTransforms?this.controller.sensorModel.transformImageToGeo(e,t):null}toVideo(e){if(!this.controller?.sensorModel?.metadataSupportsTransforms)return null;const t=this.controller.sensorModel.transformGeoToImage(e.x,e.y,e.z);return{x:t[0],y:t[1]}}updateTelemetryColor(e,r){if(!e)return;const o=new t(e);r&&!r?.frameCenter||(this.frameCenterSymbol=Z(this.frameCenterSymbol,o)??ae),r&&!r?.frameOutline||(this.frameOutlineSymbol=Z(this.frameOutlineSymbol,o,le)??pe),r&&!r?.lineOfSight||(this.sensorSightLineSymbol=Z(this.sensorSightLineSymbol,o)??ye),r&&!r?.sensorLocation||(this.sensorSymbol=Z(this.sensorSymbol,o)??ue),r&&!r?.sensorPath||(this.sensorPathSymbol=Z(this.sensorPathSymbol,o)??me),r&&!r?.sensorTrail||(this.sensorTrailSymbol=Z(this.sensorTrailSymbol,o)??he)}write(e,t){return null==this.layerId?(oe(t,this,"the ArcGIS server version must be greater than 11.2."),null):super.write(e,t)}async _fetchCoverage(e){if(!this.capabilities?.operations?.supportsCoverageQuery||"number"!=typeof this.layerId)return;const t=`${this.parsedUrl.path}/coverage`,{data:o}=await r(t,{query:{f:"json",...this.customParameters},signal:e}),{area:i=null,sensorPoints:s=null,telemetry:n=null}=o,l={area:null,path:null};if(i?.rings?.length&&(l.area=v.fromJSON(i)),s?.points?.length){const e=s.points;l.path=new g({hasM:!0,hasZ:!0,paths:[e]})}if(n?.start){const{frameCenter:e=null,frameOutline:t=null,sensor:r=null}=n?.start||{};if(t&&(this.telemetry.frameOutline=v.fromJSON(t)),r&&(this.telemetry.sensorLocation=f.fromJSON(r)),e&&(this.telemetry.frameCenter=f.fromJSON(e)),r&&e){const{sensorLocation:e,frameCenter:t}=this.telemetry;this.telemetry.lineOfSight=B(e,t)}}this._set("coverage",l)}async _fetchPreviewsInfo(e){if("number"!=typeof this.layerId||!this.capabilities?.operations?.supportsPreviews)return;const t=`${this.parsedUrl.path}/content/preview/preview.json`,{data:o}=await r(t,{query:{f:"json"},signal:e});if(!o?.preview)return;const{frameCount:i=0,frameInterval:s=0,frames:n=[],height:l,nCol:a,nRow:p,preview:m,width:y}=o||{},u={count:i,height:l,interval:s,numCols:a,numRows:p,thumbnailInfo:n,urlFragment:m,width:y};this.read({previewsInfo:u},{origin:"service"})}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.url,{query:{f:"json",...this.parsedUrl.query,...this.customParameters},signal:e});if(o&&(this.url=this.url.replace(/^http:/i,"https:")),!t?.currentVersion)return t.currentVersion="11.2",this.sourceJSON=t,void this.read(this.sourceJSON,{origin:"service",url:this.parsedUrl});if(this.layerId??=t.layers?.[0]?.id??null,null==this.layerId)throw new i("arcgis-layers:url-mismatch","The url is not a valid arcgis resource");const{data:s}=await r(this.parsedUrl.path,{query:{f:"json",...this.customParameters},signal:e});this.sourceJSON={...t,...s},this.read(this.sourceJSON,{origin:"service",url:this.parsedUrl})}_setSensorTrail(e){if(!e)return;const t=Q(e,this._trailPoints);this._trailPoints=[...t];const r=this._trailPoints.map(e=>e.toArray()),o=new g({hasZ:e.hasZ,paths:[r]});this.telemetry.sensorTrail=o.clone()}_setSensorPath(e){if(!e||"polyline"!==this.coverage?.path?.type)return;const t=this.telemetry?.sensorPath??this.coverage.path.clone(),{spatialReference:r,hasZ:o,hasM:i,paths:s}=t;if(!i)return;const n=t.hasZ?3:2,l=1e3*this.currentTime,a=[];for(const p of s){let e=0;const t=p.length,r=l>500?l+1500:l;for(;e<t&&p[e][n]<=r;)e++;e<p.length&&a.push(...p.slice(e))}this.telemetry.sensorPath=new g({hasZ:o,hasM:i,paths:[a],spatialReference:r})}};e([u({type:Boolean,json:{write:{ignoreOrigin:!0}}})],fe.prototype,"autoplay",null),e([u({readOnly:!0})],fe.prototype,"buffered",null),e([u({readOnly:!0})],fe.prototype,"cameraInfo",void 0),e([u({readOnly:!0,json:{read:!1}})],fe.prototype,"capabilities",void 0),e([ie("service","capabilities",["supportsAppend","supportsCoverageQuery","supportsExportClip","supportsExportFrameset","supportsMensuration","supportsPreviews","supportsUpdate"])],fe.prototype,"readCapabilitiesFromService",null),e([u({readOnly:!0})],fe.prototype,"codecs",void 0),e([u({readOnly:!0})],fe.prototype,"connectionInfo",void 0),e([ie("connectionInfo",["connectionUrl"])],fe.prototype,"readConnectionInfo",null),e([u()],fe.prototype,"controller",void 0),e([u({type:String})],fe.prototype,"copyright",void 0),e([u({readOnly:!0})],fe.prototype,"coverage",void 0),e([u({readOnly:!0,type:Date})],fe.prototype,"created",void 0),e([u({type:Number})],fe.prototype,"currentTime",null),e([u({json:{write:!1}})],fe.prototype,"customParameters",void 0),e([u({type:String})],fe.prototype,"description",void 0),e([u({type:Number})],fe.prototype,"duration",null),e([u({readOnly:!0})],fe.prototype,"elevationSource",void 0),e([u({type:Boolean})],fe.prototype,"ended",null),e([u({type:V})],fe.prototype,"frame",void 0),e([u(ce("drawingInfo.frameCenterSymbol",ee))],fe.prototype,"frameCenterSymbol",void 0),e([u({readOnly:!0,type:d})],fe.prototype,"frameCount",void 0),e([u(w)],fe.prototype,"frameEffect",void 0),e([u(E)],fe.prototype,"frameOpacity",void 0),e([u(ce("drawingInfo.frameOutlineSymbol",X))],fe.prototype,"frameOutlineSymbol",void 0),e([u({type:c})],fe.prototype,"fullExtent",void 0),e([u({readOnly:!0})],fe.prototype,"frameHorizonPoints",null),e([u({readOnly:!0,json:{read:{reader:W,source:"time"}},type:H})],fe.prototype,"fullTimeExtent",void 0),e([u({readOnly:!0})],fe.prototype,"groundControlPoints",null),e([u(M)],fe.prototype,"id",void 0),e([u({type:c})],fe.prototype,"initialExtent",void 0),e([u({readOnly:!0})],fe.prototype,"isLive",null),e([u({type:d,json:{read:!1,origins:{service:{read:{source:"id"}}}}})],fe.prototype,"layerId",void 0),e([u({readOnly:!0})],fe.prototype,"livestreamStatus",null),e([u({type:Boolean,json:{write:{ignoreOrigin:!0}}})],fe.prototype,"loop",null),e([u({readOnly:!0})],fe.prototype,"metadata",null),e([u({readOnly:!0})],fe.prototype,"mimeType",null),e([u({type:Boolean,json:{write:{ignoreOrigin:!0}}})],fe.prototype,"muted",null),e([u({readOnly:!0})],fe.prototype,"previewsInfo",void 0),e([u({type:["ArcGISVideoLayer"]})],fe.prototype,"operationalLayerType",void 0),e([u({readOnly:!0})],fe.prototype,"parsedUrl",null),e([u({type:k})],fe.prototype,"playbackInfo",void 0),e([u({type:Number,json:{write:{ignoreOrigin:!0}}})],fe.prototype,"playbackRate",null),e([u({readOnly:!0,type:String})],fe.prototype,"playerUrl",null),e([u({readOnly:!0})],fe.prototype,"playing",null),e([u({readOnly:!0,json:{read:{source:"poster"}}})],fe.prototype,"posterUrl",void 0),e([u({readOnly:!0})],fe.prototype,"qualities",void 0),e([u()],fe.prototype,"sensorSymbolOrientation",void 0),e([u(ce("drawingInfo.sensorPathSymbol",Y))],fe.prototype,"sensorPathSymbol",void 0),e([u(de)],fe.prototype,"sensorSymbol",void 0),e([u(ce("drawingInfo.sensorSightLineSymbol",Y))],fe.prototype,"sensorSightLineSymbol",void 0),e([u(ce("drawingInfo.sensorTrailSymbol",Y))],fe.prototype,"sensorTrailSymbol",void 0),e([u({readOnly:!0})],fe.prototype,"serviceItemId",void 0),e([u()],fe.prototype,"sourceJSON",void 0),e([u({readOnly:!0})],fe.prototype,"sourceQuality",void 0),e([u({readOnly:!0,json:{name:"serviceType"}})],fe.prototype,"sourceType",void 0),e([u({type:S})],fe.prototype,"spatialReference",void 0),e([u({json:{write:!0}})],fe.prototype,"start",void 0),e([u({readOnly:!0})],fe.prototype,"started",null),e([u({readOnly:!0,type:String})],fe.prototype,"state",null),e([u({readOnly:!0,type:J})],fe.prototype,"telemetry",null),e([u({type:R,nonNullable:!0,json:{write:{ignoreOrigin:!0}}})],fe.prototype,"telemetryDisplay",void 0),e([ie("service","title",["name"])],fe.prototype,"readTitleFromService",null),e([ie("portal-item","title")],fe.prototype,"readTitleFromPortalItem",null),e([u({type:String})],fe.prototype,"sublayerTitleMode",void 0),e([u({readOnly:!0})],fe.prototype,"type",void 0),e([u(_())],fe.prototype,"url",void 0),e([u({readOnly:!0,type:Number,json:{read:{source:"currentVersion"}}})],fe.prototype,"version",void 0),e([u({readOnly:!0})],fe.prototype,"videoElement",null),e([u({readOnly:!0})],fe.prototype,"videoHeight",null),e([u({readOnly:!0,json:{read:!1}})],fe.prototype,"videoLayersInfo",void 0),e([ie("service","videoLayersInfo",["id","name","poster","serviceType","type"])],fe.prototype,"readLayerInfosFromService",null),e([u({type:H,readOnly:!0})],fe.prototype,"videoTimeExtent",null),e([u({readOnly:!0})],fe.prototype,"videoWidth",null),e([u()],fe.prototype,"volume",null),e([u({readOnly:!0})],fe.prototype,"waiting",null),fe=e([h("esri.layers.VideoLayer")],fe);const ve=fe;export{ve as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../../request.js";import r from"../../core/Error.js";import i from"../../core/Logger.js";import{debounce as o}from"../../core/promiseUtils.js";import{property as s,subclass as a}from"../../core/accessorSupport/decorators.js";import{updateOrigins as n}from"../../core/accessorSupport/originUtils.js";import l from"../../geometry/Extent.js";import p from"../../geometry/HeightModelInfo.js";import c from"../../geometry/SpatialReference.js";import{titleFromUrlAndName as d,parse as u,cleanTitle as m}from"../support/arcgisLayerUrl.js";import{id as h}from"../support/commonProperties.js";import{fetchIndexInfo as y}from"../support/I3SIndexInfo.js";import{urlProperty as f,normalizeParsedUrlObject as v}from"../support/multiLayerServiceUtils.js";import{getLoader as g}from"../support/schemaValidatorLoader.js";import S from"../../portal/Portal.js";import w from"../../portal/PortalItem.js";import{createForItemWrite as x}from"../../portal/support/jsonContext.js";import{saveResources as I,updateItemWithResources as j}from"../../webdoc/support/resourceUtils.js";import{evaluateWriteErrors as b}from"../../webdoc/support/saveUtils.js";import{reader as N}from"../../core/accessorSupport/decorators/reader.js";const _=_=>{const A=_;let E=class extends A{constructor(){super(...arguments),this.spatialReference=null,this.fullExtent=null,this.heightModelInfo=null,this.minScale=0,this.maxScale=0,this.version={major:Number.NaN,minor:Number.NaN,versionString:""},this.copyright=null,this.sublayerTitleMode="item-title",this.title=null,this.layerId=null,this.url=null,this.indexInfo=null,this._debouncedSaveOperations=o(async(e,t,r)=>{switch(e){case 0:return this._save(t);case 1:return this._saveAs(r,t)}})}readSpatialReference(e,t){return L(t)}readFullExtent(e,t,r){if(null!=e&&"object"==typeof e){const i=null==e.spatialReference?{...e,spatialReference:L(t)}:e;return l.fromJSON(i,r)}const i=t.store,o=L(t);return null==o||null==i?.extent||!Array.isArray(i.extent)||i.extent.some(e=>e<R)?null:new l({xmin:i.extent[0],ymin:i.extent[1],xmax:i.extent[2],ymax:i.extent[3],spatialReference:o})}parseVersionString(e){const t={major:Number.NaN,minor:Number.NaN,versionString:e},r=e.split(".");return r.length>=2&&(t.major=parseInt(r[0],10),t.minor=parseInt(r[1],10)),t}readVersion(e,t){const r=t.store,i=null!=r.version?r.version.toString():"";return this.parseVersionString(i)}readTitlePortalItem(e){return"item-title"!==this.sublayerTitleMode?void 0:e}readTitleService(e,t){if("item-title"===this.sublayerTitleMode)return this.url?d(this.url,t.name):t.name;let r=t.name;if(!r&&this.url){const e=u(this.url);null!=e&&(r=e.title)}const i=this.portalItem?.title;return"item-title-and-service-name"===this.sublayerTitleMode&&i&&(r=i+" - "+r),m(r)}get parsedUrl(){return v(this,{separator:"layers"})}async _fetchIndexAndUpdateExtent(e,t){this.indexInfo=y(this.parsedUrl?.path??"",this.rootNode,e,this.customParameters,this.apiKey,i.getLogger(this),t);const{fullExtent:r}=this;null==r||r.hasZ||this._updateExtent(r,await this.indexInfo)}_updateExtent(e,t){if("page"===t?.type){const r=t.rootIndex%t.pageSize,i=t.rootPage?.nodes?.[r];O(e,i?.obb)}else if("node"===t?.type){const r=t.rootNode?.mbs;if(!Array.isArray(r)||4!==r.length||r[0]<R)return;const i=r[2],o=r[3];e.zmin=i-o,e.zmax=i+o}}async _fetchService(e){if(null==this.url)throw new r("sceneservice:url-not-set","Scene service can not be loaded without valid portal item or url");if(null==this.layerId&&/SceneServer\/*$/i.test(this.url)){const t=await this._fetchFirstLayerId(e);null!=t&&(this.layerId=t)}return this._fetchServiceLayer(e)}async _fetchFirstLayerId(e){const r=await t(this.url??"",{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e});if(r.data&&Array.isArray(r.data.layers)&&r.data.layers.length>0)return r.data.layers[0].id}async _fetchServiceLayer(e){const r=await t(this.parsedUrl?.path??"",{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e});r.ssl&&this.url&&(this.url=this.url.replace(/^http:/i,"https:"));let i=!1;if(r.data.layerType&&"Voxel"===r.data.layerType&&(i=!0),i)return this._fetchVoxelServiceLayer();const o=r.data;this.read(o,this._getServiceContext()),this.validateLayer(o)}async _fetchVoxelServiceLayer(e){const r=(await t(this.parsedUrl?.path+"/layer",{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e})).data;this.read(r,this._getServiceContext()),this.validateLayer(r)}_getServiceContext(){return{origin:"service",portalItem:this.portalItem,portal:this.portalItem?.portal,url:this.parsedUrl}}async _ensureLoadBeforeSave(){await this.load(),"beforeSave"in this&&"function"==typeof this.beforeSave&&await this.beforeSave()}validateLayer(e){}async _saveAs(e,t){const i={...P,...t};let o=w.from(e);if(!o)throw new r("sceneservice:portal-item-required","_saveAs() requires a portal item to save to");o.id&&(o=o.clone(),o.id=null);const s=o.portal||S.getDefault();await this._ensureLoadBeforeSave(),o.type=U,o.portal=s;const a=x(o,"portal-item",!0),l={layers:[this.write({},a)]};return await Promise.all(a.resources.pendingOperations??[]),await this._validateAgainstJSONSchema(l,a,i),this.url&&(o.url=this.url),o.title||(o.title=this.title),T(o,i,1),await s.signIn(),await s.user.addItem({item:o,folder:i?.folder,data:l}),await I(this.resourceReferences,a),this.portalItem=o,n(a),a.portalItem=o,o}async _save(e){const t={...P,...e};if(!this.portalItem)throw new r("sceneservice:portal-item-not-set","Portal item to save to has not been set on this SceneService");if(this.portalItem.type!==U)throw new r("sceneservice:portal-item-wrong-type",`Portal item needs to have type "${U}"`);await this._ensureLoadBeforeSave();const i=x(this.portalItem,"portal-item",!0),o={layers:[this.write({},i)]};return await Promise.all(i.resources.pendingOperations??[]),await this._validateAgainstJSONSchema(o,i,t),this.url&&(this.portalItem.url=this.url),this.portalItem.title||(this.portalItem.title=this.title),T(this.portalItem,t,0),await j(this.portalItem,o,this.resourceReferences,i),n(i),this.portalItem}async _validateAgainstJSONSchema(e,t,o){const s=o?.validationOptions;b(t,{errorName:"sceneservice:save"},{ignoreUnsupported:s?.ignoreUnsupported,supplementalUnsupportedErrors:["scenemodification:unsupported"]});const a=s?.enabled,n=g();if(a&&n){const t=(await n()).validate(e,o.portalItemLayerType);if(!t.length)return;const a=`Layer item did not validate:\n${t.join("\n")}`;if(i.getLogger(this).error(`_validateAgainstJSONSchema(): ${a}`),"throw"===s.failPolicy){const e=t.map(e=>new r("sceneservice:schema-validation",e));throw new r("sceneservice-validate:error","Failed to save layer item due to schema validation, see `details.errors`.",{validationErrors:e})}}}};return e([s(h)],E.prototype,"id",void 0),e([s({type:c})],E.prototype,"spatialReference",void 0),e([N("spatialReference",["spatialReference","store.indexCRS","store.geographicCRS"])],E.prototype,"readSpatialReference",null),e([s({type:l})],E.prototype,"fullExtent",void 0),e([N("fullExtent",["fullExtent","store.extent","spatialReference","store.indexCRS","store.geographicCRS"])],E.prototype,"readFullExtent",null),e([s({readOnly:!0,type:p})],E.prototype,"heightModelInfo",void 0),e([s({type:Number,json:{name:"layerDefinition.minScale",write:!0,origins:{service:{read:{source:"minScale"},write:!1}}}})],E.prototype,"minScale",void 0),e([s({type:Number,json:{name:"layerDefinition.maxScale",write:!0,origins:{service:{read:{source:"maxScale"},write:!1}}}})],E.prototype,"maxScale",void 0),e([s({readOnly:!0})],E.prototype,"version",void 0),e([N("version",["store.version"])],E.prototype,"readVersion",null),e([s({type:String,json:{read:{source:"copyrightText"}}})],E.prototype,"copyright",void 0),e([s({type:String,json:{read:!1}})],E.prototype,"sublayerTitleMode",void 0),e([s({type:String})],E.prototype,"title",void 0),e([N("portal-item","title")],E.prototype,"readTitlePortalItem",null),e([N("service","title",["name"])],E.prototype,"readTitleService",null),e([s({type:Number,json:{origins:{service:{read:{source:"id"}},"portal-item":{write:{target:"id",isRequired:!0,ignoreOrigin:!0},read:!1}}}})],E.prototype,"layerId",void 0),e([s(f({separator:"layers"}))],E.prototype,"url",void 0),e([s({readOnly:!0})],E.prototype,"parsedUrl",null),e([s({readOnly:!0})],E.prototype,"store",void 0),e([s({type:String,readOnly:!0,json:{read:{source:"store.rootNode"}}})],E.prototype,"rootNode",void 0),E=e([a("esri.layers.mixins.SceneService")],E),E},R=-1e38;function L(e){if(null!=e.spatialReference)return c.fromJSON(e.spatialReference);const t=e.store,r=t.indexCRS||t.geographicCRS,i=r&&parseInt(r.slice(r.lastIndexOf("/")+1),10);return null!=i?new c(i):null}function O(e,t){if(null==t?.center||null==t.halfSize)throw new r("sceneservice:invalid-node-page","Invalid node page.");if(t.center[0]<R)return;const i=t.halfSize,o=t.center[2],s=Math.sqrt(i[0]*i[0]+i[1]*i[1]+i[2]*i[2]);e.zmin=o-s,e.zmax=o+s}function T(e,t,r){e.typeKeywords||(e.typeKeywords=[]);const i=t.getTypeKeywords();for(const o of i)e.typeKeywords.push(o);e.typeKeywords&&(e.typeKeywords=e.typeKeywords.filter((e,t,r)=>r.indexOf(e)===t),1===r&&(e.typeKeywords=e.typeKeywords.filter(e=>"Hosted Service"!==e)))}const U="Scene Service",P={getTypeKeywords:()=>[],portalItemLayerType:"unknown",validationOptions:{enabled:!0,ignoreUnsupported:!1,failPolicy:"throw"}};export{_ as SceneService,U as sceneServiceItemType,O as updateExtentFromPageObb};
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../request.js";import r from"../../core/Error.js";import i from"../../core/Logger.js";import{debounce as o}from"../../core/promiseUtils.js";import{property as s,subclass as a}from"../../core/accessorSupport/decorators.js";import{updateOrigins as n}from"../../core/accessorSupport/originUtils.js";import l from"../../geometry/Extent.js";import p from"../../geometry/HeightModelInfo.js";import c from"../../geometry/SpatialReference.js";import{titleFromUrlAndName as u,parse as d,cleanTitle as y,sanitizeUrlWithLayerId as m}from"../support/arcgisLayerUrl.js";import{id as h}from"../support/commonProperties.js";import{fetchIndexInfo as f}from"../support/I3SIndexInfo.js";import{urlProperty as v,normalizeParsedUrlObject as S}from"../support/multiLayerServiceUtils.js";import{getLoader as g}from"../support/schemaValidatorLoader.js";import w from"../../portal/Portal.js";import x from"../../portal/PortalItem.js";import{createForItemWrite as I}from"../../portal/support/jsonContext.js";import{saveResources as j,updateItemWithResources as b}from"../../webdoc/support/resourceUtils.js";import{evaluateWriteErrors as N}from"../../webdoc/support/saveUtils.js";import{reader as _}from"../../core/accessorSupport/decorators/reader.js";const R=m=>{const R=m;let E=class extends R{constructor(){super(...arguments),this.spatialReference=null,this.fullExtent=null,this.heightModelInfo=null,this.minScale=0,this.maxScale=0,this.version={major:Number.NaN,minor:Number.NaN,versionString:""},this.copyright=null,this.sublayerTitleMode="item-title",this.title=null,this.layerId=null,this.url=null,this.indexInfo=null,this._debouncedSaveOperations=o(async(e,t,r)=>{switch(e){case 0:return this._save(t);case 1:return this._saveAs(r,t)}})}readSpatialReference(e,t){return T(t)}readFullExtent(e,t,r){if(null!=e&&"object"==typeof e){const i=null==e.spatialReference?{...e,spatialReference:T(t)}:e;return l.fromJSON(i,r)}const i=t.store,o=T(t);return null==o||null==i?.extent||!Array.isArray(i.extent)||i.extent.some(e=>e<L)?null:new l({xmin:i.extent[0],ymin:i.extent[1],xmax:i.extent[2],ymax:i.extent[3],spatialReference:o})}parseVersionString(e){const t={major:Number.NaN,minor:Number.NaN,versionString:e},r=e.split(".");return r.length>=2&&(t.major=parseInt(r[0],10),t.minor=parseInt(r[1],10)),t}readVersion(e,t){const r=t.store,i=null!=r.version?r.version.toString():"";return this.parseVersionString(i)}readTitlePortalItem(e){return"item-title"!==this.sublayerTitleMode?void 0:e}readTitleService(e,t){if("item-title"===this.sublayerTitleMode)return this.url?u(this.url,t.name):t.name;let r=t.name;if(!r&&this.url){const e=d(this.url);null!=e&&(r=e.title)}const i=this.portalItem?.title;return"item-title-and-service-name"===this.sublayerTitleMode&&i&&(r=i+" - "+r),y(r)}get parsedUrl(){return S(this,{separator:"layers"})}async _fetchIndexAndUpdateExtent(e,t){this.indexInfo=f(this.parsedUrl?.path??"",this.rootNode,e,this.customParameters,this.apiKey,i.getLogger(this),t);const{fullExtent:r}=this;null==r||r.hasZ||this._updateExtent(r,await this.indexInfo)}_updateExtent(e,t){if("page"===t?.type){const r=t.rootIndex%t.pageSize,i=t.rootPage?.nodes?.[r];A(e,i?.obb)}else if("node"===t?.type){const r=t.rootNode?.mbs;if(!Array.isArray(r)||4!==r.length||r[0]<L)return;const i=r[2],o=r[3];e.zmin=i-o,e.zmax=i+o}}async _fetchService(e){if(null==this.url)throw new r("sceneservice:url-not-set","Scene service can not be loaded without valid portal item or url");if(null==this.layerId&&/SceneServer\/*$/i.test(this.url)){const t=await this._fetchFirstLayerId(e);null!=t&&(this.layerId=t)}return this._fetchServiceLayer(e)}async _fetchFirstLayerId(e){const r=await t(this.url??"",{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e});if(r.data&&Array.isArray(r.data.layers)&&r.data.layers.length>0)return r.data.layers[0].id}async _fetchServiceLayer(e){const r=await t(this.parsedUrl?.path??"",{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e});r.ssl&&this.url&&(this.url=this.url.replace(/^http:/i,"https:"));let i=!1;if(r.data.layerType&&"Voxel"===r.data.layerType&&(i=!0),i)return this._fetchVoxelServiceLayer();const o=r.data;this.read(o,this._getServiceContext()),this.validateLayer(o)}async _fetchVoxelServiceLayer(e){const r=(await t(this.parsedUrl?.path+"/layer",{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e})).data;this.read(r,this._getServiceContext()),this.validateLayer(r)}_getServiceContext(){return{origin:"service",portalItem:this.portalItem,portal:this.portalItem?.portal,url:this.parsedUrl}}async _ensureLoadBeforeSave(){await this.load(),"beforeSave"in this&&"function"==typeof this.beforeSave&&await this.beforeSave()}validateLayer(e){}async _saveAs(e,t){const i={...P,...t};let o=x.from(e);if(!o)throw new r("sceneservice:portal-item-required","_saveAs() requires a portal item to save to");o.id&&(o=o.clone(),o.id=null);const s=o.portal||w.getDefault();await this._ensureLoadBeforeSave(),o.type=U,o.portal=s;const a=I(o,"portal-item",!0),l={layers:[this.write({},a)]};return await Promise.all(a.resources.pendingOperations??[]),await this._validateAgainstJSONSchema(l,a,i),this.url&&(o.url=this.url),o.title||(o.title=this.title),O(o,i,1),await s.signIn(),await s.user.addItem({item:o,folder:i?.folder,data:l}),await j(this.resourceReferences,a),this.portalItem=o,n(a),a.portalItem=o,o}async _save(e){const t={...P,...e};if(!this.portalItem)throw new r("sceneservice:portal-item-not-set","Portal item to save to has not been set on this SceneService");if(this.portalItem.type!==U)throw new r("sceneservice:portal-item-wrong-type",`Portal item needs to have type "${U}"`);await this._ensureLoadBeforeSave();const i=I(this.portalItem,"portal-item",!0),o=this.write({},i),s=await C(this.portalItem,o);await Promise.all(i.resources.pendingOperations??[]),await this._validateAgainstJSONSchema(s,i,t);const a=q(this.portalItem,this.url);return a&&(this.portalItem.url=a),this.portalItem.title||(this.portalItem.title=this.title),O(this.portalItem,t,0),await b(this.portalItem,s,this.resourceReferences,i),n(i),this.portalItem}async _validateAgainstJSONSchema(e,t,o){const s=o?.validationOptions;N(t,{errorName:"sceneservice:save"},{ignoreUnsupported:s?.ignoreUnsupported,supplementalUnsupportedErrors:["scenemodification:unsupported"]});const a=s?.enabled,n=g();if(a&&n){const t=(await n()).validate(e,o.portalItemLayerType);if(!t.length)return;const a=`Layer item did not validate:\n${t.join("\n")}`;if(i.getLogger(this).error(`_validateAgainstJSONSchema(): ${a}`),"throw"===s.failPolicy){const e=t.map(e=>new r("sceneservice:schema-validation",e));throw new r("sceneservice-validate:error","Failed to save layer item due to schema validation, see `details.errors`.",{validationErrors:e})}}}};return e([s(h)],E.prototype,"id",void 0),e([s({type:c})],E.prototype,"spatialReference",void 0),e([_("spatialReference",["spatialReference","store.indexCRS","store.geographicCRS"])],E.prototype,"readSpatialReference",null),e([s({type:l})],E.prototype,"fullExtent",void 0),e([_("fullExtent",["fullExtent","store.extent","spatialReference","store.indexCRS","store.geographicCRS"])],E.prototype,"readFullExtent",null),e([s({readOnly:!0,type:p})],E.prototype,"heightModelInfo",void 0),e([s({type:Number,json:{name:"layerDefinition.minScale",write:!0,origins:{service:{read:{source:"minScale"},write:!1}}}})],E.prototype,"minScale",void 0),e([s({type:Number,json:{name:"layerDefinition.maxScale",write:!0,origins:{service:{read:{source:"maxScale"},write:!1}}}})],E.prototype,"maxScale",void 0),e([s({readOnly:!0})],E.prototype,"version",void 0),e([_("version",["store.version"])],E.prototype,"readVersion",null),e([s({type:String,json:{read:{source:"copyrightText"}}})],E.prototype,"copyright",void 0),e([s({type:String,json:{read:!1}})],E.prototype,"sublayerTitleMode",void 0),e([s({type:String})],E.prototype,"title",void 0),e([_("portal-item","title")],E.prototype,"readTitlePortalItem",null),e([_("service","title",["name"])],E.prototype,"readTitleService",null),e([s({type:Number,json:{origins:{service:{read:{source:"id"}},"portal-item":{write:{target:"id",isRequired:!0,ignoreOrigin:!0},read:!1}}}})],E.prototype,"layerId",void 0),e([s(v({separator:"layers"}))],E.prototype,"url",void 0),e([s({readOnly:!0})],E.prototype,"parsedUrl",null),e([s({readOnly:!0})],E.prototype,"store",void 0),e([s({type:String,readOnly:!0,json:{read:{source:"store.rootNode"}}})],E.prototype,"rootNode",void 0),E=e([a("esri.layers.mixins.SceneService")],E),E},L=-1e38;function T(e){if(null!=e.spatialReference)return c.fromJSON(e.spatialReference);const t=e.store,r=t.indexCRS||t.geographicCRS,i=r&&parseInt(r.slice(r.lastIndexOf("/")+1),10);return null!=i?new c(i):null}function A(e,t){if(null==t?.center||null==t.halfSize)throw new r("sceneservice:invalid-node-page","Invalid node page.");if(t.center[0]<L)return;const i=t.halfSize,o=t.center[2],s=Math.sqrt(i[0]*i[0]+i[1]*i[1]+i[2]*i[2]);e.zmin=o-s,e.zmax=o+s}function O(e,t,r){e.typeKeywords||(e.typeKeywords=[]);const i=t.getTypeKeywords();for(const o of i)e.typeKeywords.push(o);e.typeKeywords&&(e.typeKeywords=e.typeKeywords.filter((e,t,r)=>r.indexOf(e)===t),1===r&&(e.typeKeywords=e.typeKeywords.filter(e=>"Hosted Service"!==e)))}const U="Scene Service",P={getTypeKeywords:()=>[],portalItemLayerType:"unknown",validationOptions:{enabled:!0,ignoreUnsupported:!1,failPolicy:"throw"}},E={layerId:null};function K(e,t){const r=e.findIndex(({id:e})=>e===t.id);-1===r?e.push(t):e[r]=t}async function C(e,t){const r=await e.fetchData("json")??{};return Array.isArray(r.layers)||(r.layers=await V(e,t)),K(r.layers,t),r}function q(e,t){return t&&M(e.url,t)?e.url:t}function M(e,t){const r=J(e);return!!r&&r===F(t).url}async function V(e,t){const r=await z(e).catch(()=>null);return r?.some(({id:e})=>e===t.id)?r:[t]}async function z(e){const r=J(e.url);if(!r)return null;const i=(await t(r,{query:{f:"json"},responseType:"json"})).data.layers;if(!Array.isArray(i))return null;const o=i.filter(({id:e})=>null!=e).map(({id:e})=>({id:e}));return o.length?o:null}function J(e){if(!e)return null;const t=F(e);if(null!=t.layerId)return null;const r=d(t.url);return null==r||"SceneServer"===r.serverType?t.url:null}function F(e){return m({layer:E,url:e,nonStandardUrlAllowed:!0})}export{R as SceneService,U as sceneServiceItemType,A as updateExtentFromPageObb};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../core/Error.js";import{urlToObject as r,getFilename as a}from"../../core/urlUtils.js";import{parse as t,parseNonStandardSublayerUrl as s}from"./arcgisLayerUrl.js";import{findAssociatedFeatureService as n}from"./associatedFeatureServiceUtils.js";import{
|
|
2
|
+
import e from"../../core/Error.js";import{urlToObject as r,getFilename as a}from"../../core/urlUtils.js";import{parse as t,parseNonStandardSublayerUrl as s}from"./arcgisLayerUrl.js";import{findAssociatedFeatureService as n}from"./associatedFeatureServiceUtils.js";import{getLayerModuleTypeStrict as o,fetchFeatureService as l}from"./fetchService.js";import{layersLoaderMap as i}from"./layersLoader.js";import{getPreferredUrl as c,sceneServiceLayerTypeToClassName as u}from"./layerUtils.js";import{requestServiceJSON as y}from"../../request/serviceJSON.js";const f="KHR_gaussian_splatting",p={FeatureLayer:!0,SceneLayer:!0,VideoLayer:!0};async function m(e){const{properties:r,url:a}=e,t={...r,url:a},s=await S(a,r?.customParameters),{Constructor:n,layerId:o,sourceJSON:l,parsedUrl:i,layers:c,tables:u}=s;if(c.length+u.length===0)return null!=o&&(t.layerId=o),null!=l&&(t.sourceJSON=l),new n(t);const y=new(0,(await import("../GroupLayer.js")).default)({title:i.title});return await v(y,s,t),y}function d(e,r){return e?e.find(({id:e})=>e===r):null}function w(e,r,a,t,s){const n={...s,layerId:r};return null!=e&&(n.url=e),null!=a&&(n.sourceJSON=a),"sublayerTitleMode"in t.prototype&&(n.sublayerTitleMode="service-name"),new t(n)}async function v(e,r,a){const t=r.sublayerConstructorProvider;for(const{id:s,serverUrl:n}of r.layers){const o=d(r.layerInfos,s),l=w(n,s,o,(o&&t?.(o))??r.Constructor,a);e.add(l)}if(r.tables.length){const t=await g("FeatureLayer");r.tables.forEach(({id:s,serverUrl:n})=>{const o=w(n,s,d(r.tableInfos,s),t,a);e.tables.add(o)})}}async function S(r,a){let s=t(r);if(null==s&&(s=await b(r,a)),null==s)throw new e("arcgis-layers:url-mismatch","The url '${url}' is not a valid arcgis resource",{url:r});const{serverType:n,sublayer:l}=s;let i;const f={FeatureServer:"FeatureLayer",KnowledgeGraphServer:"KnowledgeGraphLayer",StreamServer:"StreamLayer",VectorTileServer:"VectorTileLayer",VideoServer:"VideoLayer"},m="FeatureServer"===n,d="SceneServer"===n,w={parsedUrl:s,Constructor:null,layerId:m||d?l??void 0:void 0,layers:[],tables:[]};switch(n){case"MapServer":if(null!=l){const{type:t}=await y(r,{customParameters:a});switch(i="FeatureLayer",t){case"Annotation Layer":i="AnnotationFeatureLayer";break;case"Dimension Layer":i="DimensionFeatureLayer";break;case"Catalog Layer":i="CatalogLayer";break;case"Annotation SubLayer":case"Catalog Dynamic Group Layer":throw new e("arcgis-layers:unsupported",`fromUrl() does not support "${t}" type`)}}else{i=await P(r,a)?"TileLayer":"MapImageLayer"}break;case"ImageServer":{const e=await y(r,{customParameters:a}),{tileInfo:t,cacheType:s}=e;i=t?"LERC"!==t?.format?.toUpperCase()||s&&"elevation"!==s.toLowerCase()?"ImageryTileLayer":"ElevationLayer":"ImageryLayer";break}case"SceneServer":{const e=await y(s.url.path,{customParameters:a});if(i="SceneLayer",e){const r=e?.layers;if("Voxel"===e?.layerType)i="VoxelLayer";else if(r?.length){const e=r[0]?.layerType;null!=e&&null!=u[e]&&(i=u[e])}}break}case"3DTilesServer":i=await U(r,a)?"GaussianSplatLayer":"IntegratedMesh3DTilesLayer";break;case"FeatureServer":if(i="FeatureLayer",null!=l){const t=await y(r,{customParameters:a});w.sourceJSON=t,w.preferredUrl=c();const s=o(t.type);if(!s)throw new e("arcgis-layers:unsupported",`fromUrl() does not support "${t.type}" type`);i=s}break;default:i=f[n]}if(p[i]&&null==l){const t=await L(r,n,a),s=t.layers.length+t.tables.length;if(m){if(0===s)throw new e("arcgis-layers:no-data",`The feature service '${r}' does not have any supported layers or tables`);w.preferredUrl=t.preferredUrl,w.layerInfos=t.layerInfos,w.tableInfos=t.tableInfos}if(1!==s)w.layers=t.layers,w.tables=t.tables,m&&t.layerInfos?.length&&(w.sublayerConstructorProvider=await O(t.layerInfos));else if(m||d){const e=t.layerInfos?.[0]??t.tableInfos?.[0];w.layerId=t.layers[0]?.id??t.tables[0]?.id,w.sourceJSON=e,m&&(i=o(e?.type))}}return w.Constructor=await g(i),w}async function b(e,t){const n=await y(e,{customParameters:t});let o=null,l=null;const i=n.type;if("Feature Layer"===i||"Table"===i?(o="FeatureServer",l=n.id??null):"indexedVector"===i?o="VectorTileServer":n.hasOwnProperty("mapName")?o="MapServer":n.hasOwnProperty("bandCount")&&n.hasOwnProperty("pixelSizeX")?o="ImageServer":n.hasOwnProperty("maxRecordCount")&&n.hasOwnProperty("allowGeometryUpdates")?o="FeatureServer":n.hasOwnProperty("streamUrls")?o="StreamServer":h(n)?(o="SceneServer",l=n.id):n.hasOwnProperty("layers")&&h(n.layers?.[0])&&(o="SceneServer"),!o)return null;const c=null!=l?s(e):null;return{title:null!=c&&n.name||a(e),serverType:o,sublayer:l,url:{path:null!=c?c.serviceUrl:r(e).path}}}function h(e){return null!=e&&e.hasOwnProperty("store")&&e.hasOwnProperty("id")&&"number"==typeof e.id}async function L(e,r,a){let t,s,n,o,i;switch(r){case"FeatureServer":{const r=await l(e,{customParameters:a});n=c(e,{preferredHost:r.preferredHost});const s=!!r.layersJSON,u=r.layersJSON||r.serviceJSON;o=s?u?.layers:[],i=s?u?.tables:[],t=u;break}case"SceneServer":{const r=await I(e,a);t=r.serviceInfo,s=r.tableServerUrl;break}default:t=await y(e,{customParameters:a})}return{preferredUrl:n,layers:t?.layers?.map(e=>({id:e.id})).reverse()||[],tables:t?.tables?.map(e=>({serverUrl:s,id:e.id})).reverse()||[],layerInfos:o,tableInfos:i}}async function I(e,r){const a=await y(e,{customParameters:r}),t=a.layers?.[0];if(!t)return{serviceInfo:a};try{const{serverUrl:t}=await n(e),s=await y(t,{customParameters:r}).catch(()=>null);return s&&(a.tables=s.tables),{serviceInfo:a,tableServerUrl:t}}catch{return{serviceInfo:a}}}async function g(e){return(0,i[e])()}async function P(e,r){return(await y(e,{customParameters:r})).tileInfo}async function U(e,r){const a=await y(e,{customParameters:r}),t=a.extensions?.["3DTILES_content_gltf"];return!0===t?.extensionsRequired?.includes(f)}async function O(e){if(!e.length)return;const r=new Set,a=[];for(const{type:n}of e)r.has(n)||(r.add(n),a.push(g(o(n))));const t=await Promise.all(a),s=new Map;return Array.from(r).forEach((e,r)=>{s.set(e,t[r])}),e=>s.get(e.type)}export{m as fromUrl,U as isGaussianSplat3DTilesUrl};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{getPreferredHost as e,getPreferredUrl as r}from"./layerUtils.js";import{requestServiceJSON as a}from"../../request/serviceJSON.js";const t=new Set(["Annotation Layer","Catalog Layer","Dimension Layer","Feature Layer","Oriented Imagery Layer"]);async function n(t,n){const{loadContext:o
|
|
2
|
+
import{getPreferredHost as e,getPreferredUrl as r}from"./layerUtils.js";import{requestServiceJSON as a}from"../../request/serviceJSON.js";const t=new Set(["Annotation Layer","Catalog Layer","Dimension Layer","Feature Layer","Oriented Imagery Layer"]);async function n(t,n){const{loadContext:y,...o}=n||{},u=y?await y.fetchServiceMetadata(t,o):await a(t,o),s=e();c(u),i(u);const L={serviceJSON:u,preferredHost:s};if((u.currentVersion??0)<10.5)return L;const l=`${r()??t}/layers`,f=y?await y.fetchServiceMetadata(l,o):await a(l,o);return c(f),i(f),L.layersJSON={layers:f.layers,tables:f.tables},L}function y(e){return t.has(e.type)}function o(e){return"Table"===e.type}function i(e){e.layers=e.layers?.filter(y),e.tables=e.tables?.filter(o)}function u(e){e.type||="Feature Layer"}function s(e){e.type||="Table"}function c(e){e.layers?.forEach(u),e.tables?.forEach(s)}function L(e){switch(e){case"Feature Layer":case"Table":return"FeatureLayer";case"Oriented Imagery Layer":return"OrientedImageryLayer";case"Catalog Layer":return"CatalogLayer";case"Dimension Layer":return"DimensionFeatureLayer";case"Annotation Layer":return"AnnotationFeatureLayer"}return"FeatureLayer"}function l(e){if(!e)return"FeatureLayer";switch(e){case"Feature Layer":case"Table":return"FeatureLayer";case"Oriented Imagery Layer":return"OrientedImageryLayer";case"Catalog Layer":return"CatalogLayer";case"Dimension Layer":return"DimensionFeatureLayer";case"Annotation Layer":return"AnnotationFeatureLayer"}return null}function f(e,r){if(!e)return r?"Table":"ArcGISFeatureLayer";switch(e){case"Annotation Layer":return"ArcGISAnnotationLayer";case"Catalog Layer":return"CatalogLayer";case"Dimension Layer":return"ArcGISDimensionLayer";case"Feature Layer":return"ArcGISFeatureLayer";case"Oriented Imagery Layer":return"OrientedImageryLayer";case"Parcel Layer":return"ParcelLayer";case"Table":return"Table";case"Topology Layer":return"TopologyLayer";case"Trace Network Layer":return"TraceNetworkLayer";case"Utility Network Layer":return"UtilityNetworkLayer";default:return null}}export{n as fetchFeatureService,f as getFeatureServiceItemLayerType,L as getLayerModuleType,l as getLayerModuleTypeStrict};
|
package/libs/parquet/parquet.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../core/Error.js";import{latitudeFieldNames as
|
|
2
|
+
import e from"../../core/Error.js";import t from"../../core/Logger.js";import{latitudeFieldNames as n,longitudeFieldNames as o}from"../../layers/support/locationUtils.js";import{loadParquetModule as i}from"./loadParquetModule.js";const r=()=>t.getLogger("esri.layers.ParquetLayer"),a=new Set(["uncompressed","snappy","gzip"]),l=new Set(["esriFieldTypeSmallInteger","esriFieldTypeInteger","esriFieldTypeBigInteger","esriFieldTypeSingle","esriFieldTypeDouble","esriFieldTypeLong"]);function s(t,n){switch(n){case"esriGeometryPoint":return t.GeometryType.Point;case"esriGeometryPolygon":case"polygon":return t.GeometryType.Polygon;case"esriGeometryPolyline":case"polyline":return t.GeometryType.Polyline;case"esriGeometryMultipoint":case"multipoint":return t.GeometryType.Multipoint;default:throw new e("parquet",`Found unexpected GeometryType: ${n}`)}}function u(e,t){const n=t.encoding,o=s(e,t.geometryType),i=t.spatialReference.wkid;if(null==i)throw new Error("InternalError: Wkid must be defined.");switch(n.type){case"wkb":return e.GeometryField.fromWkb(n.field,i,o);case"location":{const{yField:t,xField:r}=n;return e.GeometryField.fromLocation(t,r,i,o)}}}function p(e,t){const n=e.GeometryInfo.new();t.geometry&&n.setGeometry(u(e,t.geometry));const o=t.displayOptimization;if(o){const{index:t,parentColumn:i}=o,r=e=>null!=i?[i,e].join("."):e;if("z"===t.type){const o=e.DisplayOptimizationZBuilder.new();o.setCodeField(r(t.code)),o.setXColumn(r(t.xColumn)),o.setYColumn(r(t.yColumn)),o.setCooordinatePrecision(t.coordinatePrecision),o.setFullExtent(t.fullExtent),o.setSpatialReference(t.wkid,t.wkt),o.setHasZ(!!t.zColumn),o.setHasM(!!t.mColumn),n.setOptmizationZ(o)}if("xz"===t.type){const o=s(e,t.geometryType),i=e.DisplayOptimizationXZBuilder.new();i.setCodeField(r(t.code)),i.setEncoding(t.encoding),i.setFullExtent(t.fullExtent),i.setGeometryType(o),i.setSpatialReference(t.wkid,t.wkt),i.setMaxLevel(t.maxLevel),i.setHasZ(t.hasZ??!1),i.setHasM(t.hasM??!1);for(const n of t.levels??[]){const[t,o]=n.transform.translate,[a,l]=n.transform.scale,s=new Float64Array([t,o]),u=new Float64Array([a,l]),p=r(n.column);i.addLevel(e.MultiscaleGeometryField.new(n.level,n.scale,p,s,u))}n.setOptmizationXZ(i)}}return n}async function c(t,n){const o=await i(),r=n.geometryInfo?p(o,n.geometryInfo):null,a=n.provider.fetchRange.bind(n.provider),l=n.provider.fetchLength.bind(n.provider);try{return await o.ParquetFile.fromUrl(t,a,l,r)}catch(s){throw new e("parquet","Failed to parse file",{error:s})}}function d(e){const t=e.keyValueMetadata("geo");return null!=t?JSON.parse(t):null}function m(t){if(t.keyValueMetadata("esri"))throw new e("parquet:unsupported","File was created using an unsupported experimental display index. Please regenerate the file.");const n=t.keyValueMetadata("geodisplay");if(null!=n)return y(JSON.parse(n));const o=t.keyValueMetadata("org.apache.spark.sql.parquet.row.metadata");if(null!=o){const e=JSON.parse(o);for(const t of e.fields)if(null!=t.metadata&&"type"in t.metadata&&("xz"===t.metadata.type||"z"===t.metadata.type)){return y({parentColumn:t.name,index:t.metadata})}}return null}function y(e){if("xz"===e.index.type&&(e.index.geometryType=b(e.index.geometryType),"esri-pbf"===e.index.encoding&&(e.index.encoding="esriPBF"),"esriPBF"!==e.index.encoding))return r().warn("parquet:unsupported",`Encoding for display index must be of type esriPBF, but found ${e.index.encoding}`),null;const{xmin:t,ymin:n,xmax:o,ymax:i}=e.index.fullExtent;return Number.isFinite(t)&&Number.isFinite(n)&&Number.isFinite(o)&&Number.isFinite(i)?e:(r().warn("parquet:protocol-violation","Ignoring display optimization, found bad extent",{index:e.index}),null)}function f(e){g(e);const t=w(e),n=d(e),o=m(e),i=x(n,t);let r,a;if(i)switch(i.type){case"location":a={wkid:4326},r="esriGeometryPoint";break;case"wkb":if(n){const e=n.primary_column,t=n.columns[e];r=P(t),a=k(t)}}if(o){const e=o.index;!a&&e.wkid&&(a={wkid:e.wkid}),r||(r="z"===e.type?"esriGeometryPoint":h(e.geometryType))}return{geoMetadata:n,displayOptimization:o,geometryEncoding:i,geometryInfo:a&&r?{geometry:i?{geometryType:r,spatialReference:a,encoding:i}:null,displayOptimization:o}:null,geometryType:r,spatialReference:a,extent:T(n,o,a),fields:t}}function g(t){for(const n of t.compressionCodecs())if(!a.has(n))throw new e("parquet:unsupported",`Compression codec ${n} is unsupported. Must be of type ${Array.from(a).join(",")}`)}function w(e){return e.fields(!1).map(e=>({name:e.name,alias:e.name,type:e.type}))}function x(e,t){if(null!=e){const t=e.primary_column;return{type:"wkb",field:t,orientation:"counterclockwise"===e.columns[t].orientation?"counter-clockwise":null}}const n=F(t.filter(e=>l.has(e.type)).map(e=>e.name));return n.latitudeFieldName&&n.longitudeFieldName?{type:"location",xField:n.longitudeFieldName,yField:n.latitudeFieldName}:null}function F(e){const t=e.map(e=>e.toLowerCase());return{longitudeFieldName:e[t.indexOf(o.find(e=>t.includes(e)))],latitudeFieldName:e[t.indexOf(n.find(e=>t.includes(e)))]}}function P(t){const{geometry_types:n}=t,o=new Set;for(const e of n){const t=G(e);t&&o.add(t)}if(o.size>1)throw new e("parquet:unsupported","Parquet mixed geometry types are not supported",{geometryTypes:o});return 1===o.size?o.values().next().value:void 0}function G(e){switch(e){case"Point":return"esriGeometryPoint";case"Polygon":case"MultiPolygon":return"esriGeometryPolygon";case"LineString":return"esriGeometryPolyline";case"MultiPoint":return"esriGeometryMultipoint";default:return null}}function h(e){switch(e){case"polygon":return"esriGeometryPolygon";case"polyline":return"esriGeometryPolyline";case"multipoint":return"esriGeometryMultipoint"}}function b(t){switch(t.toLowerCase()){case"polygon":return"polygon";case"polyline":return"polyline";case"multipoint":return"multipoint";default:throw new e("parquet:unsupported",`Geometry type ${t} is unsupported`)}}function k(e){const t=e.crs?.id?.code;return t&&"number"==typeof t?{wkid:t}:void 0}function T(e,t,n){if(!n)return null;const o=e?e.columns[e.primary_column]:null,i=o?.bbox;if(i?.every(e=>Number.isFinite(e)))switch(i.length){case 4:return{xmin:i[0],ymin:i[1],xmax:i[2],ymax:i[3],spatialReference:n};case 6:return{xmin:i[0],ymin:i[1],xmax:i[3],ymax:i[4],spatialReference:n};default:r().warn("parquet:protocol-violation","Invalid Geoparquet file. BoundingBox size must be 4 or 6.",{geoMetadata:e})}const a=t?.index.fullExtent;return a?{...a,spatialReference:n}:null}export{c as createParquetFile,d as readGeoMetadata,m as readGeodisplayMetadata,f as readMetadata};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arcgis/core",
|
|
3
|
-
"version": "5.2.0-next.
|
|
3
|
+
"version": "5.2.0-next.20",
|
|
4
4
|
"homepage": "https://js.arcgis.com",
|
|
5
5
|
"description": "ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API",
|
|
6
6
|
"keywords": [
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@amcharts/amcharts5": "~5.18.0",
|
|
22
|
-
"@arcgis/toolkit": "^5.1.0-next.
|
|
22
|
+
"@arcgis/toolkit": "^5.1.0-next.136",
|
|
23
23
|
"@esri/arcgis-html-sanitizer": "~4.1.0",
|
|
24
24
|
"@esri/calcite-components": "^5.1.1",
|
|
25
25
|
"@vaadin/grid": "~25.1.4",
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../core/Error.js";import{parse as t}from"../../layers/support/arcgisLayerUrl.js";import{fetchFeatureService as r}from"../../layers/support/fetchService.js";import{LayerLoadContext as a}from"../../layers/support/LayerLoadContext.js";import{applyPreferredHostToPortalItem as o,isPreferredUrlApplicable as n,getPreferredHost as s}from"../../layers/support/layerUtils.js";import i from"../Portal.js";import{createForItemRead as l}from"./jsonContext.js";import{
|
|
2
|
+
import e from"../../core/Error.js";import{parse as t}from"../../layers/support/arcgisLayerUrl.js";import{fetchFeatureService as r}from"../../layers/support/fetchService.js";import{LayerLoadContext as a}from"../../layers/support/LayerLoadContext.js";import{applyPreferredHostToPortalItem as o,isPreferredUrlApplicable as n,getPreferredHost as s}from"../../layers/support/layerUtils.js";import i from"../Portal.js";import{createForItemRead as l}from"./jsonContext.js";import{normalizeFSItemData as u,getSublayersByLayerType as c,getFirstLayerOrTable as p,preprocessFSItemData as y,populateSceneServiceItemData as d,getNumLayersAndTables as f,instanceTypeToLayerTypes as m,layerTypeToLayerModuleType as w,createSublayerData as h}from"./loadUtils.js";import{hasTypeKeyword as g}from"./portalItemUtils.js";import{loadStyleRenderer as I}from"../../renderers/support/styleUtils.js";import{requestServiceJSON as b}from"../../request/serviceJSON.js";async function v(e,t){const r=e.instance.portalItem;if(r?.id)return await r.load(t),S(e),e.validateItem&&e.validateItem(r),T(e,t)}async function L(e,t){const r=e.instance.portalItem;if(!r?.id)return!1;if(!r.loaded)return!1;const a=r.modified;return await r.reload(),t?.signal?.throwIfAborted(),a?.getTime()!==r.modified?.getTime()&&(S(e),e.validateItem&&e.validateItem(r),await T(e,t),!0)}function S(t){const r=t.instance.portalItem;if(!r?.type||!t.supportedTypes.includes(r.type))throw new e("portal:invalid-layer-item-type","Invalid layer item type '${type}', expected '${expectedType}'",{type:r?.type,expectedType:t.supportedTypes.join(", ")})}async function T(e,t){const r=e.instance,{portalItem:o,type:n}=r;if(!o)return;let{url:s}=o;const{title:i}=o,u=l(o,"portal-item");if("group"===n)return j(r,u,e);s&&"media"!==n&&r.read({url:s},u);const c=new a,{data:p,preferredHost:y}=await C(e,c,t);return s=o.url,"isUrlHostModified"in r&&(y?r.applyPreferredHost({preferredHost:y}):r.applyHostFromPortalItem()),p&&r.read(p,u),r.resourceReferences={portalItem:o,paths:u.readResourcePaths??[]},"subtype-group"!==n&&r.read({title:i},u),I(r,u)}async function j(t,r,a){const o=t.portalItem;if(!t.sourceIsPortalItem)return;const{title:n,type:s}=o;if("Group Layer"===s){if(!g(o,"Map"))throw new e("portal:invalid-layer-item-typekeyword","'Group Layer' item without 'Map' type keyword is not supported");return H(t,a)}return t.read({title:n},r),M(t,a)}async function H(t,r){const a=t.portalItem,o=await a.fetchData("json");if(!o)return;if(!r.populateGroupLayer)throw new e("portal:missing-populate-group-layer","Missing populate group layer");const n=l(a,"web-map");t.read(o,n),await r.populateGroupLayer(t,o,{context:n}),t.resourceReferences={portalItem:a,paths:n.readResourcePaths??[]}}async function M(t,r){let n;const{portalItem:s}=t;if(!s)return;const{type:i,url:l}=s,u=r.layerModuleTypeMap;if(!u)throw new e("portal:missing-layer-module-type-map","Layer module type map is required to construct sub layers");switch(i){case"Feature Service":case"Feature Collection":n=u.FeatureLayer;break;case"Stream Service":n=u.StreamLayer;break;case"Scene Service":n=u.SceneLayer;break;case"Video Service":n=u.VideoLayer;break;default:throw new e("portal:unsupported-item-type-as-group",`The item type '${i}' is not supported as a 'GroupLayer'`)}const c="Video Service"===i,m=new a;let[w,{data:h}]=await Promise.all([n(),c?{data:null}:C(r,m)]),g=()=>w;if(c)return F(t,g,u);if("Feature Service"===i){const e=p(h)?.customParameters,r=(await y(h,l,m)).data;g=await E(r,u)??g;const{provider:a,preferredHost:n}=await U(l,{customParameters:e,loadContext:m});return o(s,n),await G(t,g,g,r,u,a)}return"Scene Service"===i&&l&&(h=await d(s,h,m)),f(h)>0?await G(t,g,null,h,u):await P(t,g,u)}async function P(e,t,r){const{portalItem:a}=e;if(!a?.url)return;const o=await b(a.url);o&&G(e,t,null,{layers:o.layers?.map(e=>h(e)),tables:o.tables?.map(e=>h(e,!0))},r)}async function F(e,t,r){const{portalItem:a}=e;if(!a?.url)return;const o=await b(a.url);o&&G(e,t,null,{layers:o.layers?.map(({id:e,name:t})=>({id:e,name:t}))},r)}async function G(e,t,r,a,o,n){let s=a.layers??[];const i=a.tables??[];if("Feature Collection"===e.portalItem?.type?(s.forEach((e,t)=>{e.id=t,"Table"===e?.layerDefinition?.type&&i.push(e)}),s=s.filter(e=>"Table"!==e?.layerDefinition?.type)):(s.reverse(),i.reverse()),s.forEach(r=>{const o=n?.(r);if(o||!n){const n=x(e,t(r),a,r,o);e.add(n)}}),i.length){const t=r?null:await o.FeatureLayer();i.forEach(o=>{const s=n?.(o);if(s||!n){const n=x(e,r?r(o):t,a,o,s);e.tables.add(n)}})}}function x(e,t,r,a,o){const n=e.portalItem,s={portalItem:n.clone(),layerId:a.id};null!=a.url&&(s.url=a.url);const l=new t(s);if("sourceJSON"in l&&(l.sourceJSON=o),"subtype-group"!==l.type&&"catalog"!==l.type&&(l.sublayerTitleMode="service-name"),"Feature Collection"===n.type){const e={origin:"portal-item",portal:n.portal??i.getDefault()};l.read(a,e);const t=r.showLegend;null!=t&&l.read({showLegend:t},e)}return l}async function C(e,t,r){if(!1===e.supportsData)return{data:void 0};const a=e.instance,{portalItem:n,type:s}=a;if(!n)return{data:void 0};let i=null;try{i="video"===s?null:await n.fetchData("json",r)}catch(l){}if(A(a)){const{type:e,url:r}=n;if("Feature Service"===e&&r)try{await u(i,r,t)}catch(l){}let y=null;const{count:d,preferredHost:f}=await D(n,i,t);if(o(n,f),(i?.layers||i?.tables)&&d>0){if(null==a.layerId){const e=m(s),t=e?.length?c(i,e)[0]:p(i);t&&(a.layerId=t.id)}y=k(i,a),"OrientedImageryLayer"===y?.layerType&&"oriented-imagery"===s&&a.supportedSourceTypes.add("Feature Layer"),y&&null!=i.showLegend&&(y.showLegend=i.showLegend)}return d>1&&"sublayerTitleMode"in a&&"service-name"!==a.sublayerTitleMode&&(a.sublayerTitleMode="item-title-and-service-name"),{data:y,preferredHost:f}}return{data:i}}async function D(e,r,a){if(r?.layers&&r?.tables)return{count:f(r)};const o=t(e.url);if(!o)return{count:1};const i=o.url.path,l=await a.fetchServiceMetadata(i,{customParameters:p(r)?.customParameters}).catch(()=>null);return{count:(r?.layers?.length??l?.layers?.length??0)+(r?.tables?.length??l?.tables?.length??0),preferredHost:n(e)?s():null}}function k(e,t){const{layerId:r}=t,a=e.layers?.find(({id:e})=>e===r)??e.tables?.find(({id:e})=>e===r);return a&&O(a,t)?a:null}function A(e){return"stream"!==e.type&&"layerId"in e}function O(e,t){const{layerType:r}=e;switch(t.type){case"annotation-feature":return"ArcGISAnnotationLayer"===r;case"catalog":return"CatalogLayer"===r;case"dimension-feature":return"ArcGISDimensionLayer"===r;case"feature":return!r||"ArcGISFeatureLayer"===r||"Table"===r;case"oriented-imagery":return"OrientedImageryLayer"===r;case"subtype-group":return"SubtypeGroupLayer"===r||"SubtypeGroupTable"===r}return!0}async function U(e,t){const{layersJSON:a,preferredHost:o}=await r(e,t);if(!a)return{provider:null,preferredHost:o};const n=[...a.layers,...a.tables];return{provider:e=>n.find(t=>t.id===e.id),preferredHost:o}}async function E(e,t){const{layers:r,tables:a}=e,o=[...r,...a];if(!o.length)return;const n=new Set,s=[];for(const{layerType:u}of o){if(n.has(u))continue;n.add(u);const e=t[w(u)];s.push(e())}const i=await Promise.all(s),l=new Map;return Array.from(n).forEach((e,t)=>{l.set(e,i[t])}),({layerType:e})=>l.get(e)}export{v as load,L as reload};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{
|
|
2
|
+
import{parse as e}from"../../layers/support/arcgisLayerUrl.js";import{findAssociatedFeatureService as r}from"../../layers/support/associatedFeatureServiceUtils.js";import{getFeatureServiceItemLayerType as a}from"../../layers/support/fetchService.js";import{getPreferredHost as t}from"../../layers/support/layerUtils.js";function n(e,r){const{id:a,name:t}=e,n={id:a,name:t};return s(n,e,r),n}function s(e,r,t){const n=a(r.type,t);n&&(e.layerType=n)}async function l(e,r,a){let n,s;if(o(e)&&i(e))s=e;else{const l=await a.fetchServiceMetadata(r,{customParameters:u(e)?.customParameters});n=t(),s=y(e,l),f(s,l)}return m(s),{data:s,preferredHost:n}}function u(e){if(!e)return null;const{layers:r,tables:a}=e;return r?.[0]??a?.[0]??null}function c(e,r){if(null==r)return null;return[...e.layers??[],...e.tables??[]].find(e=>e.id===r)}function i(e){return[...e.layers??[],...e.tables??[]].every(e=>!!e.layerType)}function o(e){return!!e&&Array.isArray(e.layers)&&Array.isArray(e.tables)}function y(e,r){return{...e,layers:e?.layers??r.layers?.map(e=>n(e))??[],tables:e?.tables??r.tables?.map(e=>n(e,!0))??[]}}function f(e,r){const a=e.layers??[],t=e.tables??[],n=[...r.layers??[],...r.tables??[]];for(const l of[...a,...t]){const{id:e,layerType:r}=l;if(r)continue;const a=n.find(({id:r})=>r===e);a&&s(l,a,t.includes(l))}}function m(e){e.layers=e.layers?.filter(S),e.tables=e.tables?.filter(S)}async function p(r,a,t){if(r?.layers?.length||r?.tables?.length){if(!i(r)){const n=e(a)?.url.path;if(!n)return;f(r,await t.fetchServiceMetadata(n,{customParameters:u(r)?.customParameters}))}m(r)}}function b(e,r){return[...e.layers??[],...e.tables??[]].filter(({layerType:e})=>e?r.includes(e):r.includes("ArcGISFeatureLayer"))}function L(e){return(e?.layers?.length??0)+(e?.tables?.length??0)}const d=new Set(["ArcGISAnnotationLayer","ArcGISDimensionLayer","ArcGISFeatureLayer","CatalogLayer","OrientedImageryLayer","SubtypeGroupLayer","SubtypeGroupTable","Table"]);function S(e){return!!e.layerType&&d.has(e.layerType)}function A(e){switch(e){case"annotation-feature":return["ArcGISAnnotationLayer"];case"catalog":return["CatalogLayer"];case"dimension-feature":return["ArcGISDimensionLayer"];case"feature":return["ArcGISFeatureLayer","Table"];case"oriented-imagery":return["OrientedImageryLayer"];case"subtype-group":return["SubtypeGroupLayer","SubtypeGroupTable"]}return null}function h(e){switch(e){case"ArcGISAnnotationLayer":return"AnnotationFeatureLayer";case"ArcGISDimensionLayer":return"DimensionFeatureLayer";case"ArcGISFeatureLayer":case"Table":return"FeatureLayer";case"CatalogLayer":return"CatalogLayer";case"OrientedImageryLayer":return"OrientedImageryLayer";case"SubtypeGroupLayer":case"SubtypeGroupTable":return"SubtypeGroupLayer"}return null}async function G(e,a,t){if(!e?.url)return a??{};if(a??={},!a.layers){const r=await t.fetchServiceMetadata(e.url);a.layers=r.layers?.map(e=>n(e))}const{serverUrl:s,portalItem:l}=await r(e.url,{sceneLayerItem:e,customParameters:u(a)?.customParameters}).catch(()=>({serverUrl:null,portalItem:null}));if(null==s)return a.tables=[],a;if(!a.tables&&l){const e=await l.fetchData().catch(()=>null);if(e?.tables)a.tables=e.tables.map(({id:e,name:r})=>({id:e,name:r}));else{const r=await t.fetchServiceMetadata(s,{customParameters:u(e)?.customParameters}).catch(()=>null);a.tables=r?.tables?.map(e=>n(e,!0))}}if(a.tables)for(const r of a.tables)r.url=`${s}/${r.id}`;return a}export{n as createSublayerData,u as getFirstLayerOrTable,c as getLayerOrTable,L as getNumLayersAndTables,b as getSublayersByLayerType,A as instanceTypeToLayerTypes,h as layerTypeToLayerModuleType,p as normalizeFSItemData,G as populateSceneServiceItemData,l as preprocessFSItemData};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../core/Error.js";import{findAssociatedFeatureService as a}from"../../layers/support/associatedFeatureServiceUtils.js";import{
|
|
2
|
+
import e from"../../core/Error.js";import{findAssociatedFeatureService as a}from"../../layers/support/associatedFeatureServiceUtils.js";import{getLayerModuleTypeStrict as r}from"../../layers/support/fetchService.js";import{LayerLoadContext as t}from"../../layers/support/LayerLoadContext.js";import{layersLoaderMap as s}from"../../layers/support/layersLoader.js";import{sceneServiceLayerTypeToClassName as n,applyPreferredHostToPortalItem as c,getPreferredHost as o}from"../../layers/support/layerUtils.js";import i from"../PortalItem.js";import{getFirstLayerOrTable as u,getNumLayersAndTables as l,preprocessFSItemData as y,getLayerOrTable as m,layerTypeToLayerModuleType as p,populateSceneServiceItemData as f}from"./loadUtils.js";import{hasTypeKeyword as d}from"./portalItemUtils.js";async function w(e){let{portalItem:a}=e;!a||a instanceof i||(a=new i(a));const r=await L(a);return new(0,r.constructor)({portalItem:a,...r.properties})}async function L(e){await e.load();const a=new t;return N(await S(e,a))}async function S(a,r){switch(a.type){case"3DTiles Service":return a.typeKeywords.includes("3DObject")?F():a.typeKeywords.includes("GaussianSplat")?b():P();case"CSV":return K();case"Feature Collection":return M(a);case"Feature Service":return v(a,r);case"Feed":return x();case"GeoJson":return G();case"Group Layer":return J();case"Image Service":return g(a,r);case"KML":return V();case"Knowledge Graph Layer":return W();case"Map Service":return h(a,r);case"Media Layer":return k();case"Scene Service":return I(a,r);case"Stream Service":return j();case"Video Service":return T(a,r);case"Vector Tile Service":return C();case"WCS":return U();case"WFS":return $();case"WMS":return D();case"WMTS":return O();default:throw new e("portal:unknown-item-type","Unknown item type '${type}'",{type:a.type})}}async function N(e){const a=e.className,r=s[a];return{constructor:await r(),properties:e.properties}}async function h(e,a){return await A(e,a)?{className:"TileLayer"}:{className:"MapImageLayer"}}async function v(e,a){const r=await E(e,a);if("object"==typeof r){const{sourceJSON:e,className:a}=r,t={sourceJSON:e};return null!=r.id&&(t.layerId=r.id),{className:a||"FeatureLayer",properties:t}}return{className:"GroupLayer"}}async function I(e,r){const t=await E(e,r,async()=>{try{if(!e.url)return[];const{serverUrl:t}=await a(e.url,{sceneLayerItem:e}),s=await r.fetchServiceMetadata(t);return s?.tables??[]}catch{return[]}});if("object"==typeof t){const a={};let s;if(null!=t.id?(a.layerId=t.id,s=`${e.url}/layers/${t.id}`):s=e.url,e.typeKeywords?.length)for(const r of Object.keys(n))if(e.typeKeywords.includes(r))return{className:n[r]};const c=await r.fetchServiceMetadata(s,{customParameters:await r.fetchCustomParameters(e,e=>u(e)?.customParameters)});return{className:n[c?.layerType]||"SceneLayer",properties:a}}if(!1===t){const a=await r.fetchServiceMetadata(e.url);if("Voxel"===a?.layerType)return{className:"VoxelLayer"}}return{className:"GroupLayer"}}async function M(e){await e.load();const a=d(e,"Map Notes"),r=d(e,"Markup");if(a||r)return{className:"MapNotesLayer"};if(d(e,"Route Layer"))return{className:"RouteLayer"};const t=await e.fetchData();return 1===l(t)?{className:"FeatureLayer"}:{className:"GroupLayer"}}async function g(e,a){await e.load();const r=e.typeKeywords?.map(e=>e.toLowerCase())??[];if(r.includes("elevation 3d layer"))return{className:"ElevationLayer"};if(r.includes("tiled imagery"))return{className:"ImageryTileLayer"};const t=await a.fetchItemData(e),s=t?.layerType;if("ArcGISTiledImageServiceLayer"===s)return{className:"ImageryTileLayer"};if("ArcGISImageServiceLayer"===s)return{className:"ImageryLayer"};const n=await a.fetchServiceMetadata(e.url,{customParameters:await a.fetchCustomParameters(e)}),c=n.cacheType?.toLowerCase(),o=n.capabilities?.toLowerCase().includes("tilesonly"),i=n.tileInfo?.format?.toLowerCase()??"",u=null==c&&["jpg","jpeg","png","png8","png24","png32","mixed"].includes(i);return"map"===c||u||o?{className:"ImageryTileLayer"}:{className:"ImageryLayer"}}function j(){return{className:"StreamLayer"}}async function T(e,a){return"object"==typeof await E(e,a)?{className:"VideoLayer"}:{className:"GroupLayer"}}function C(){return{className:"VectorTileLayer"}}function G(){return{className:"GeoJSONLayer"}}function P(){return{className:"IntegratedMesh3DTilesLayer"}}function b(){return{className:"GaussianSplatLayer"}}function F(){return{className:"UnsupportedLayer"}}function K(){return{className:"CSVLayer"}}function V(){return{className:"KMLLayer"}}function W(){return{className:"KnowledgeGraphLayer"}}function U(){return{className:"WCSLayer"}}function $(){return{className:"WFSLayer"}}function D(){return{className:"WMSLayer"}}function O(){return{className:"WMTSLayer"}}function x(){return{className:"StreamLayer"}}function J(){return{className:"GroupLayer"}}function k(){return{className:"MediaLayer"}}async function A(e,a){const{tileInfo:r}=await a.fetchServiceMetadata(e.url,{customParameters:await a.fetchCustomParameters(e)});return r}async function E(a,t,s){const{url:n,type:i}=a,d="Feature Service"===i;if(!n)return{};if(/\/\d+$/.test(n)){if(d){const s=await t.fetchServiceMetadata(n,{customParameters:await t.fetchCustomParameters(a,e=>u(e)?.customParameters)});c(a,o());const{id:i,type:l}=s,y=r(l);if(!y)throw new e("from-portal-item:unsupported",`'${n}' has unsupported type: '${l}'`);return{id:i,className:y,sourceJSON:s}}return{}}if("Video Service"===i){const e=await t.fetchServiceMetadata(n);return!((e.layers?.length??0)>1)&&{}}await a.load();let w=await t.fetchItemData(a);if(d){const{data:r,preferredHost:s}=await y(w,n,t);if(0===l(r))throw new e("from-portal-item:no-data",`The feature service '${n}' does not have any supported layers or tables`);c(a,s);const o=R(r);if("object"==typeof o){const e=m(r,o.id);return{id:o.id,className:p(e?.layerType)}}return o}"Scene Service"===i&&(w=await f(a,w,t));if(l(w)>0)return R(w);const L=await t.fetchServiceMetadata(n);return s&&(L.tables=await s()),R(L)}function R(e){return 1===l(e)&&{id:u(e)?.id}}export{w as fromItem,S as selectLayerClassPath};
|