@arcgis/core 5.2.0-next.54 → 5.2.0-next.55
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/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/c5043c42a6aaa276a521.js +1 -0
- package/config.js +1 -1
- package/kernel.js +1 -1
- package/package.json +1 -1
- package/rest/featureService/FeatureService.d.ts +50 -2
- package/support/revision.js +1 -1
- package/symbols/cim/types.d.ts +2 -2
- package/views/2d/engine/webgl/util/AnnotationMatcher.js +1 -1
- package/views/2d/layers/support/annodime/MatcherGeometryOverride.js +1 -1
- package/views/2d/layers/support/annodime/annotationGraphic.js +1 -1
- package/views/2d/layers/support/annodime/cimAnnotations.js +1 -1
- package/views/2d/layers/support/annodime/utils.js +1 -1
- package/views/2d/layers/support/annodime/virtualFields.js +1 -1
- package/views/PopupView.js +1 -1
- package/widgets/OrientedImageryViewer/adapters/sketch/MeasurementAdapter.js +1 -1
- package/assets/esri/core/workers/chunks/25cb56c3b538d00e7693.js +0 -1
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.55";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.55",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};
|
package/package.json
CHANGED
|
@@ -3,14 +3,60 @@ import type { IdentifiableMixin, IdentifiableMixinProperties } from "../../core/
|
|
|
3
3
|
import type { JSONSupportMixin } from "../../core/JSONSupport.js";
|
|
4
4
|
import type { Loadable, LoadableMixinProperties } from "../../core/Loadable.js";
|
|
5
5
|
import type { AbortOptions } from "../../core/promiseUtils.js";
|
|
6
|
+
import type { EditsResultEvent } from "../../editing/types.js";
|
|
6
7
|
import type { ServiceCapabilities, LayerInfo, TableInfo, ServiceEdits, ServiceEditsResult, ServiceEditOptions, ServiceContents } from "./types.js";
|
|
7
8
|
import type { VersionIdentifier } from "../../versionManagement/support/jsonTypes.js";
|
|
8
9
|
|
|
9
10
|
export interface FeatureServiceProperties extends LoadableMixinProperties, IdentifiableMixinProperties, Partial<Pick<FeatureService, "layerInfos" | "tableInfos" | "url" | "userTypeExtensions">> {}
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
/**
|
|
13
|
+
* The payload for the `apply-edits` event.
|
|
14
|
+
* This payload describes an event emitted after [applyEdits()](https://developers.arcgis.com/javascript/latest/references/core/rest/featureService/FeatureService/#applyEdits).
|
|
15
|
+
*
|
|
16
|
+
* @since 5.2
|
|
17
|
+
*/
|
|
18
|
+
export interface FeatureServiceApplyEditsEvent {
|
|
19
|
+
/** ID of the layer whose [applyEdits()](https://developers.arcgis.com/javascript/latest/references/core/rest/featureService/FeatureService/#applyEdits) operation produced this event. */
|
|
20
|
+
layerId: number | null;
|
|
21
|
+
/**
|
|
22
|
+
* If `true`, [FeatureServiceApplyEditsEvent](https://developers.arcgis.com/javascript/latest/references/core/rest/featureService/FeatureService/#FeatureServiceApplyEditsEvent-result) may include
|
|
23
|
+
* features edited due to the geodatabase behavior that results from applying the edits. For example,
|
|
24
|
+
* if a feature is deleted and it is the origin in a composite relationship, the destination feature
|
|
25
|
+
* is automatically deleted in the geodatabase.
|
|
26
|
+
*
|
|
27
|
+
* If `false`, [FeatureServiceApplyEditsEvent](https://developers.arcgis.com/javascript/latest/references/core/rest/featureService/FeatureService/#FeatureServiceApplyEditsEvent-result) includes only
|
|
28
|
+
* features directly edited by `applyEdits`.
|
|
29
|
+
*/
|
|
30
|
+
mayReceiveServiceEdits: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Geodatabase version on which the edit moment was updated, if provided. A `null` value indicates the edit
|
|
33
|
+
* occurred on the service's default version.
|
|
34
|
+
*/
|
|
35
|
+
gdbVersion: string | null;
|
|
36
|
+
/**
|
|
37
|
+
* Resolves to the results of the edits for layer
|
|
38
|
+
* [FeatureServiceApplyEditsEvent](https://developers.arcgis.com/javascript/latest/references/core/rest/featureService/FeatureService/#FeatureServiceApplyEditsEvent-layerId).
|
|
39
|
+
*/
|
|
40
|
+
result: Promise<EditsResultEvent>;
|
|
41
|
+
}
|
|
12
42
|
|
|
13
|
-
|
|
43
|
+
/**
|
|
44
|
+
* This payload describes the new edit moment being used by the feature service's
|
|
45
|
+
* [FeatureServiceUpdateMomentEvent](https://developers.arcgis.com/javascript/latest/references/core/rest/featureService/FeatureService/#FeatureServiceUpdateMomentEvent-gdbVersion).
|
|
46
|
+
* If [FeatureServiceUpdateMomentEvent](https://developers.arcgis.com/javascript/latest/references/core/rest/featureService/FeatureService/#FeatureServiceUpdateMomentEvent-gdbVersion) is null,
|
|
47
|
+
* this payload describes the new historic moment used by the feature service's default version.
|
|
48
|
+
*
|
|
49
|
+
* @since 5.2
|
|
50
|
+
*/
|
|
51
|
+
export interface FeatureServiceUpdateMomentEvent {
|
|
52
|
+
/**
|
|
53
|
+
* Geodatabase version on which the edit moment was updated, if provided. A `null` value indicates
|
|
54
|
+
* the edit occurred on the service's default version.
|
|
55
|
+
*/
|
|
56
|
+
gdbVersion: string | null;
|
|
57
|
+
/** The updated edit moment. */
|
|
58
|
+
moment: Date | null;
|
|
59
|
+
}
|
|
14
60
|
|
|
15
61
|
export interface FeatureServiceEvents {}
|
|
16
62
|
|
|
@@ -238,6 +284,7 @@ export default class FeatureService extends FeatureServiceSuperclass {
|
|
|
238
284
|
*
|
|
239
285
|
* @param versionIdentifier - Identifier of the branch version.
|
|
240
286
|
* @returns The current edit moment for the specified version, or `null` if unavailable.
|
|
287
|
+
* @since 5.2
|
|
241
288
|
* @example
|
|
242
289
|
* ```ts
|
|
243
290
|
* const versionIdentifier: VersionIdentifier = {
|
|
@@ -257,6 +304,7 @@ export default class FeatureService extends FeatureServiceSuperclass {
|
|
|
257
304
|
* Returns the current edit session ID.
|
|
258
305
|
*
|
|
259
306
|
* @returns The current edit session ID.
|
|
307
|
+
* @since 5.2
|
|
260
308
|
* @example
|
|
261
309
|
* ```ts
|
|
262
310
|
* const sessionId = featureService.getSessionId();
|
package/support/revision.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
const
|
|
2
|
+
const f="20260721",a="4cea2cbe80f86215e60f861fab3f9f0d5f64aa0b";export{f as buildDate,a as commitHash};
|
package/symbols/cim/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Extent, Point } from "../../portal/jsonTypes.js";
|
|
1
|
+
import type { Extent, Point as PointJSON } from "../../portal/jsonTypes.js";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* A color represented as an array of RGBA values, where each value is a number between 0 and 255.
|
|
@@ -320,7 +320,7 @@ export interface CIMMarker extends CIMSymbolLayer {
|
|
|
320
320
|
*
|
|
321
321
|
* @since 5.0
|
|
322
322
|
*/
|
|
323
|
-
anchorPoint?:
|
|
323
|
+
anchorPoint?: PointJSON | null;
|
|
324
324
|
/**
|
|
325
325
|
* A value which specifies if the anchor point location is considered a percentage of the size or as an absolute distance.
|
|
326
326
|
*
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import has from"../../../../../core/has.js";import{clone as e}from"../../../../../core/lang.js";import{OverrideHelper as t}from"../../../../../symbols/cim/OverrideHelper.js";import{FeatureMatcher as r}from"./Matcher.js";import{getCIMSymbols as s,getCIMSymbol as o}from"../../../layers/support/annodime/cimAnnotations.js";import{createDebugWriters as
|
|
2
|
+
import has from"../../../../../core/has.js";import{clone as e}from"../../../../../core/lang.js";import{OverrideHelper as t}from"../../../../../symbols/cim/OverrideHelper.js";import{FeatureMatcher as r}from"./Matcher.js";import{getCIMSymbols as s,getCIMSymbol as o}from"../../../layers/support/annodime/cimAnnotations.js";import{createDebugWriters as n}from"../../../layers/support/annodime/debugUtils.js";import{createAnnotationMatcherFeatureInfo as i,mixFeature as m}from"../../../layers/support/annodime/MatcherGeometryOverride.js";import{createTileObjectId as l}from"../../../layers/support/annodime/TileObjectId.js";import{hasSymbolFields as c,symbolFields as y}from"../../../layers/support/annodime/virtualFields.js";class a extends r{constructor(e,t){super(),this._context=e,this._symbolCollection=t,this._meshWriters=new Map,this._matcherGeometryOverrides=new Map,this._symbols=s(t)}static async fromAnnotationSchema(e,t){return new a(e,t.symbolCollection)}hasArcadeDependency(){return!1}doMatch(e,t,r){return this._meshWriters.get(l(r,e.getObjectId()))}async fetchResources(e,t,r,s){this._meshWriters.clear(),this._matcherGeometryOverrides.clear();const o=t.getCursor();for(;o.next();){const r=i(o);if(!r)continue;const n=m(o,r);if(!n)continue;const c=await this._createSymbolReference(o,n,r);if(!c)continue;const y=l(s,o.getObjectId());let a=this._meshWriters.get(y);a||(a=await this._createGroup(c,e,t.geometryType),this._meshWriters.set(y,a)),this._matcherGeometryOverrides.set(y,r.geometryOverride)}}async _createGroup(e,t,r){const s=await t.fetchMeshResourceImmediate({type:"mesh-request",symbolReference:e}),o=await b(this._context,s?.meshes||[]);if(has("esri-2d-annotation-dimension-debug")){const e=await n(this._context,t,r);return e.length?[...o,...e]:o}return o}async _createSymbolReference(e,r,s){const o=this._getUnresolvedSymbolReference(s);if(!o)return null;p(o);const n=await t.resolveSymbolOverrides(o,r,e.metadata.outSpatialReference,null,e.geometryType);return n?{type:"CIMSymbolReference",symbol:n}:null}_getUnresolvedSymbolReference(t){const{annotationGraphic:r,annotationGeometryType:s}=t,{bloated:o,symbolID:n}=r;if(o||c(r))return this._getProcessedSymbolReference(t);if(n){const t=this._symbols[n][s];return t?e(t.data):null}return null}_getProcessedSymbolReference(e){const{annotationGraphic:t,annotationGeometryType:r}=e,{bloated:s,symbol:n,symbolID:i}=t;let m=this._getRawSymbolReference(n,i);if(!m||!m.symbol)return null;if(s||(m=this._applySymbolFields(m,t)),!m.symbol||"CIMTextSymbol"!==m.symbol.type)return null;const{data:l}=o(m.symbol,r);return{type:"CIMSymbolReference",symbol:l.symbol,primitiveOverrides:[...m.primitiveOverrides||[],...l.primitiveOverrides||[]]}}_getRawSymbolReference(e,t){if(e&&null!=e.symbol&&"CIMTextSymbol"===e.symbol.type)return e;if(null!=t){const e=this._symbolCollection.find(e=>(e.iD??0)===t);if(e)return{type:"CIMSymbolReference",symbol:e.symbol}}return null}_applySymbolFields(t,r){if(!t.symbol||"CIMTextSymbol"!==t.symbol.type)return t;const s=e(t.symbol);for(const e of y)e.setOnSymbol(s,r);return{type:"CIMSymbolReference",symbol:s,primitiveOverrides:t.primitiveOverrides}}cleanup(e,t,r){const s=t.getObjectId(),o=l(r,s);this._matcherGeometryOverrides.delete(o),this._meshWriters.delete(o)}getMatcherGeometryOverride(e){return this._matcherGeometryOverrides.get(e)??null}}function b(e,t){const r=t.map(e=>({...e}));return e.createMeshWriters(r)}function u(e){return e}function p(e){if(!e.symbol||!("symbolLayers"in e.symbol))return;const t=u({type:"PrivateMatcherGeometryOverrideEffect"});e.symbol.symbolLayers=(e.symbol.symbolLayers||[]).map(e=>({...e,effects:[t,...e.effects||[]]}))}export{a as AnnotationMatcher};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{rad2deg as e}from"../../../../../core/mathUtils.js";import t from"../../../../../geometry/Point.js";import{normalizeTransform as r,quantizeY as o,quantizeX as n}from"../../../../../geometry/support/quantizationUtils.js";import{convertToGeometry as i}from"../../../../../layers/graphics/featureConversionUtils.js";import a from"../../../../../layers/graphics/OptimizedGeometry.js";import{project as m}from"../../../../../layers/graphics/data/projectionSupport.js";import{DimensionRealFieldName as s}from"./dimensionUtils.js";import{getAttributeValue as
|
|
2
|
+
import{rad2deg as e}from"../../../../../core/mathUtils.js";import t from"../../../../../geometry/Point.js";import{normalizeTransform as r,quantizeY as o,quantizeX as n}from"../../../../../geometry/support/quantizationUtils.js";import{convertToGeometry as i}from"../../../../../layers/graphics/featureConversionUtils.js";import a from"../../../../../layers/graphics/OptimizedGeometry.js";import{project as m}from"../../../../../layers/graphics/data/projectionSupport.js";import{DimensionRealFieldName as s}from"./dimensionUtils.js";import{getAttributeValue as u,parseElement as y,reprojectAndQuantize as p}from"./utils.js";import{featureFields as l}from"./virtualFields.js";function f(e){const t=e.readAttribute("element");if(!t)return null;const o=e.getInTransform()??e.getDisplayTransform();if(!o)throw new Error("Quantization transform is required to read annotation features.");const n=e.geometryType;if(!n)return null;const i=e.metadata.outSpatialReference,a=e.metadata.attributeSpatialReference??e.metadata.spatialReference??i,m=r(o),s=y(t),{geometry:u}=s;if(!u)return null;const f=p(u,a,i,m);if(!f)return null;const c={},g={annotationGeometryType:d(s),annotationGraphic:s,attributes:c,geometryOverride:{geometry:f,geometryType:n}};for(const r of l)r.setOnFeature(g,s);return g}function c(i){const y=i.getInTransform()??i.getDisplayTransform();if(!y)throw new Error("Quantization transform is required to read dimension features.");const p=i.geometryType;if(!p)return null;const l={...i.readAttributes()},f=i.metadata.outSpatialReference,c=i.metadata.attributeSpatialReference??i.metadata.spatialReference??f,g=r(y),d={x:Number(u(s.beginX,l)),y:Number(u(s.beginY,l)),spatialReference:c},b={x:Number(u(s.endX,l)),y:Number(u(s.endY,l)),spatialReference:c},N={x:Number(u(s.dimX,l)),y:Number(u(s.dimY,l)),spatialReference:c};if(isNaN(d.x)||isNaN(d.y)||isNaN(b.x)||isNaN(b.y))return console.error(`Feature with ${s.objectId}=${u(s.objectId,l)} is missing valid begin, end, or dimension points and will be skipped.`),null;(isNaN(N.x)||isNaN(N.y))&&(N.x=d.x,N.y=d.y);const x=m(new t(d),c,f),h=m(new t(b),c,f),w=[x,h,m(new t(N),c,f)],j=Math.sqrt((h.x-x.x)*(h.x-x.x)+(h.y-x.y)*(h.y-x.y)),T=h.x-x.x,R=h.y-x.y;let _=Math.PI/2;0!==T?_=Math.atan2(R,T):R<0&&(_=-Math.PI/2);const E=u(s.textX,l),I=u(s.textY,l);if(null!=E&&null!=I){const e=new t({x:Number(E),y:Number(I),spatialReference:c}),r=m(e,c,f);w.push(r)}const S=w.map(e=>({x:n(g,e.x),y:o(g,e.y)})).flatMap(e=>[e.x,e.y]);return l.__SYSTEM_LENGTH__=j,l.__DIMENSION_ANGLE__=360-e(_),{attributes:l,geometryOverride:{geometry:new a([S.length],S),geometryType:p}}}function g(e,t){const{geometry:r,geometryType:o}=t.geometryOverride,n=i(r,o,!1,!1);return n?{attributes:{...e.readAttributes(),...t.attributes},centroid:null,geometry:n}:null}function d(e){if(e.geometry){if("custom-two-point"===e.geometry.type)return"line";if("custom-multipoint"===e.geometry.type)return"multipoint";if("geometry-bag"===e.geometry.type){if("custom-multipoint"===e.geometry.geometries[0].type)return"multipoint";throw new Error("Unable to determine geometry type from annotation graphic")}if("custom-point"===e.geometry.type)return"point";if("polyline"===e.geometry.type)return"line";if("point"===e.geometry.type)return"point";throw new Error("Unable to determine geometry type from annotation graphic")}throw new Error("Unable to determine geometry type from annotation graphic")}export{f as createAnnotationMatcherFeatureInfo,c as createDimensionMatcherFeatureInfo,d as getAnnotationGeometryType,g as mixFeature};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../../../../core/Logger.js";import t from"../../../../../core/pbf.js";import{fromJSON as
|
|
2
|
+
import e from"../../../../../core/Logger.js";import t from"../../../../../core/pbf.js";import{fromJSON as a}from"../../../../../geometry/support/jsonUtils.js";import{base64ToArrayBuffer as o}from"../../../../../support/base64Utils.js";function r(e){const a={leader:[],anchorPoint:[],fontVariations:[]},r=o(e.toString()),s=new t(new Uint8Array(r),new DataView(r));for(;s.next();)switch(s.tag()){case 1:a.version=n(s);break;case 2:a.bloated=s.getBool();break;case 3:if(a.bloated){const e=i(n(s));e&&l(a,e)}else s.skip();break;case 4:a.geometryStorageType=s.getEnum();break;case 5:a.bloated?s.skip():a.geometry=u(n(s),a.geometryStorageType);break;case 6:a.bloated?s.skip():a.text=n(s);break;case 7:a.bloated?s.skip():a.symbolID=s.getUInt32();break;case 8:a.textAngle=s.getDouble();break;case 9:a.xOffset=s.getDouble();break;case 10:a.yOffset=s.getDouble();break;case 11:a.horizontalAlignment=s.getEnum();break;case 12:a.verticalAlignment=s.getEnum();break;case 13:a.flipAngle=s.getDouble();break;case 14:s.skip(),a.leader=[];break;case 15:s.skip(),a.anchorPoint=[];break;case 16:a.size=s.getDouble();break;case 17:a.color=n(s);break;case 18:a.characterSpacing=s.getDouble();break;case 19:a.characterWidth=s.getDouble();break;case 20:a.wordSpacing=s.getDouble();break;case 21:a.leading=s.getDouble();break;case 22:a.fontFamilyName=n(s);break;case 23:a.fontStyleName=n(s);break;case 24:a.underline=s.getBool();break;case 25:a.callout=n(s);break;case 26:s.skip(),a.fontVariations=[];break;default:s.skip()}return a}function n(e){return s(e.getString()||"")}function s(e){return e.replaceAll(/\p{Cc}/gu,"")}function i(e){return e?JSON.parse(e):null}function p(e){if(e?.ga){const t=e?.ga?.map(e=>p(e)).filter(e=>e);return{type:"geometry-bag",geometries:t}}const t=e?.g?.points;if(t)return{type:"custom-multipoint",points:t};const o=a(e);return o&&("point"===o.type||"polyline"===o.type)?o:void 0}function c(t){return"x"in t&&"y"in t?{type:"custom-point",x:t.x,y:t.y}:"paths"in t?{type:"custom-two-point",from:t.paths[0][0],to:t.paths[0][1]}:(e.getLogger("esri.layers.AnnotationFeatureLayer").warnOnce("CIMTextGraphic.shape must be a point or a polyline."),{type:"custom-point",x:0,y:0})}function l(e,t){e.symbol=t.symbol,e.text=t.text,e.geometry=c(t.shape)}function u(e,t){if(!e||null==t)return;if(1===t){const t=e.split(",").map(e=>parseFloat(e));return{type:"custom-point",x:t[0],y:t[1]}}if(2===t){const t=e.split(";").map(e=>e.split(",").map(e=>parseFloat(e)));return{type:"custom-two-point",from:[t[0][0],t[0][1]],to:[t[1][0],t[1][1]]}}if(3===t){return{type:"custom-multipoint",points:e.split(";").map(e=>e.split(",").map(e=>parseFloat(e)))}}return p(JSON.parse(e))}export{u as parseAnnotationGeometry,p as parseAnnotationGeometryJson,r as parseAnnotationGraphic,i as parseTextGraphic};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{featureFields as e}from"./virtualFields.js";function t(t,i){let o,
|
|
2
|
+
import{featureFields as e}from"./virtualFields.js";function t(t,i){let r,o,n=[];if("line"===i){let i;switch(r="CIMLineSymbol",(t={...t,angle:0}).horizontalAlignment){case"Center":case"Justify":default:i=.5;break;case"Left":i=0;break;case"Right":i=1}o={type:"CIMMarkerPlacementAtRatioPositions",angleToLine:!0,placePerPart:!1,keepUpright:!1,positionArray:[i],flipFirst:!1},n=e.filter(e=>"Rotation"!==e.cimPropertyName)}else"multipoint"===i?(r="CIMLineSymbol",o={type:"PrivatePlacementMultipoint"},n=e):(r="CIMPointSymbol",o=void 0,n=e);const a={type:"CIMSymbolReference",primitiveOverrides:[],symbol:{type:r,symbolLayers:[{type:"CIMVectorMarker",markerPlacement:o,enable:!0,size:40,colorLocked:!1,anchorPointUnits:"Relative",frame:{xmin:-20,ymin:-20,xmax:20,ymax:20},markerGraphics:[{type:"CIMMarkerGraphic",geometry:{x:0,y:0},symbol:t}],scaleSymbolsProportionally:!0,respectFrame:!0}]}};for(const e of n)e.addPrimitiveOverride(a);return{data:a}}function i(e){return{point:t(e,"point"),line:t(e,"line"),multipoint:t(e,"multipoint")}}function r(e){const t={};for(const r of e){const e=r.iD??0,{symbol:o}=r,n=i(o);t[e]=n}return t}export{t as getCIMSymbol,r as getCIMSymbols,i as getTrio};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../../../../geometry/Point.js";import t from"../../../../../layers/graphics/OptimizedGeometry.js";import{project as n}from"../../../../../layers/graphics/data/projectionSupport.js";import{parseAnnotationGraphic as r}from"./annotationGraphic.js";function o({scale:e,translate:t},n){return(n-t[0])/e[0]}function i({scale:e,translate:t},n){return(n-t[1])/e[1]}function s(r,p,a,c){if("custom-point"===r.type||"point"===r.type){const{x:s,y:f}=r,y=n(new e({x:s,y:f,spatialReference:p}),p,a);return new t([1],[o(c,y.x),i(c,y.y)])}if("custom-two-point"===r.type){const[s,f]=r.from,y=n(new e({x:s,y:f,spatialReference:p}),p,a),[u,l]=r.to,m=n(new e({x:u,y:l,spatialReference:p}),p,a);return new t([2],[o(c,y.x),i(c,y.y),o(c,m.x),i(c,m.y)])}if("custom-multipoint"===r.type){const s=r.points.map(([t,r])=>n(new e({x:t,y:r,spatialReference:p}),p,a)),f=s.map(({x:e,y:t})=>[o(c,e),i(c,t)]).flat();return new t([s.length],f)}if("geometry-bag"===r.type){let e=[],n=[],o=!0;for(const t of r.geometries){o||(e.push(2),n.push(0,0,1,1)),o=!1;const r=s(t,p,a,c);r&&(e=[...e,...r.lengths],n=[...n,...r.coords])}if(0===e.length||0===n.length)return;return new t(e,n)}if("polyline"===r.type){const[s,f]=r.paths[0][0],y=n(new e({x:s,y:f,spatialReference:p}),p,a),[u,l]=r.paths[0][1],m=n(new e({x:u,y:l,spatialReference:p}),p,a);return new t([2],[o(c,y.x),i(c,y.y),o(c,m.x),i(c,m.y)])}throw new Error("Unsupported geometry type!")}function p(e
|
|
2
|
+
import e from"../../../../../geometry/Point.js";import t from"../../../../../layers/graphics/OptimizedGeometry.js";import{project as n}from"../../../../../layers/graphics/data/projectionSupport.js";import{parseAnnotationGraphic as r}from"./annotationGraphic.js";function o({scale:e,translate:t},n){return(n-t[0])/e[0]}function i({scale:e,translate:t},n){return(n-t[1])/e[1]}function s(r,p,a,c){if("custom-point"===r.type||"point"===r.type){const{x:s,y:f}=r,y=n(new e({x:s,y:f,spatialReference:p}),p,a);return new t([1],[o(c,y.x),i(c,y.y)])}if("custom-two-point"===r.type){const[s,f]=r.from,y=n(new e({x:s,y:f,spatialReference:p}),p,a),[u,l]=r.to,m=n(new e({x:u,y:l,spatialReference:p}),p,a);return new t([2],[o(c,y.x),i(c,y.y),o(c,m.x),i(c,m.y)])}if("custom-multipoint"===r.type){const s=r.points.map(([t,r])=>n(new e({x:t,y:r,spatialReference:p}),p,a)),f=s.map(({x:e,y:t})=>[o(c,e),i(c,t)]).flat();return new t([s.length],f)}if("geometry-bag"===r.type){let e=[],n=[],o=!0;for(const t of r.geometries){o||(e.push(2),n.push(0,0,1,1)),o=!1;const r=s(t,p,a,c);r&&(e=[...e,...r.lengths],n=[...n,...r.coords])}if(0===e.length||0===n.length)return;return new t(e,n)}if("polyline"===r.type){const[s,f]=r.paths[0][0],y=n(new e({x:s,y:f,spatialReference:p}),p,a),[u,l]=r.paths[0][1],m=n(new e({x:u,y:l,spatialReference:p}),p,a);return new t([2],[o(c,y.x),i(c,y.y),o(c,m.x),i(c,m.y)])}throw new Error("Unsupported geometry type!")}function p(e){return r(e)}function a(e,t){const n=e.toLowerCase();for(const r in t){if(n===r.toLowerCase())return r}return e}function c(e,t){return t[a(e,t)]}export{c as getAttributeValue,p as parseElement,o as quantizeXf,i as quantizeYf,s as reprojectAndQuantize};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{fixUnsupportedCIM as e}from"../../../../../symbols/cim/supportUtils.js";let t=0;class i{constructor(e,t,i,r){this.cimPropertyName=e,this.findTargetNode=i,this.getValue=r,this.realFieldName=`__virtual_fi_${t}`}
|
|
2
|
+
import{fixUnsupportedCIM as e}from"../../../../../symbols/cim/supportUtils.js";let t=0;class i{constructor(e,t,i,r){this.cimPropertyName=e,this.findTargetNode=i,this.getValue=r,this.realFieldName=`__virtual_fi_${t}`}setOnFeature(e,t){const i=this.getValue(t);e.attributes[this.realFieldName]=i}addPrimitiveOverride(e){const i=this.findTargetNode(e.symbol);let{primitiveName:r}=i;r||(t++,r=`primitive_${t}`,i.primitiveName=r);const s={type:"CIMPrimitiveOverride",primitiveName:r,propertyName:this.cimPropertyName,valueExpressionInfo:{type:"CIMExpressionInfo",expression:`return $feature.${this.realFieldName};`}};e.primitiveOverrides=e.primitiveOverrides||[],e.primitiveOverrides.push(s)}}const r=new i("TextString","text",e=>e.symbolLayers[0].markerGraphics[0],e=>e.text),s=new i("Color","color",e=>e.symbolLayers[0].markerGraphics[0].symbol.symbol.symbolLayers.find(e=>"CIMSolidFill"===e.type),t=>{const i=t.color||"#000000";if(i.startsWith("#"))return i;if(i.startsWith("rgb"))return i;const r=JSON.parse(i),s=e(r);return`rgba(${s[0]}, ${s[1]}, ${s[2]}, ${s[3]/255})`}),n=new i("Rotation","rotation",e=>e.symbolLayers[0],e=>null!=e.textAngle?-e.textAngle:void 0),o=new i("OffsetX","offsetX",e=>e.symbolLayers[0],e=>e.xOffset),l=new i("OffsetY","offsetY",e=>e.symbolLayers[0],e=>e.yOffset);class a{constructor(e,t,i){this.cimPropertyName=e,this.findTargetNode=t,this.getValue=i}setOnSymbol(e,t){const i=this.getValue(t);if(null==i)return;this.findTargetNode(e)[this._fixCase(this.cimPropertyName)]=i}_fixCase(e){return this.cimPropertyName[0].toLocaleLowerCase()+e.slice(1)}}const m=new a("VerticalAlignment",e=>e,e=>null==e.verticalAlignment?null:["Top","Center","Baseline","Bottom"][e.verticalAlignment]),f=[r,s,n,o,l],y=[new a("HorizontalAlignment",e=>e,e=>null==e.horizontalAlignment?null:["Left","Right","Center","Justify"][e.horizontalAlignment]),m,new a("FontFamilyName",e=>e,e=>e.fontFamilyName),new a("FontStyleName",e=>e,e=>e.fontStyleName),new a("Height",e=>e,e=>e.size),new a("Underline",e=>e,e=>e.underline)];function c(e){let t=!1;for(const i of y)t=t||null!=i.getValue(e);return t}export{f as featureFields,c as hasSymbolFields,y as symbolFields};
|
package/views/PopupView.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{createTask as p}from"../core/asyncUtils.js";import t from"../core/Error.js";import{generatorFlat as o,generatorFromPromises as s}from"../core/generatorUtils.js";import has from"../core/has.js";import i from"../core/Logger.js";import{allSettledValues as r,throwIfAborted as u,wrapAbortWithTimeout as n}from"../core/promiseUtils.js";import{watch as a,syncAndInitial as h,whenOnce as c}from"../core/reactiveUtils.js";import{property as l,subclass as m}from"../core/accessorSupport/decorators.js";import{addPopup as d,openPopupWithViewClick as f,isPopup as g,isPopupElement as
|
|
2
|
+
import{__decorate as e}from"tslib";import{createTask as p}from"../core/asyncUtils.js";import t from"../core/Error.js";import{generatorFlat as o,generatorFromPromises as s}from"../core/generatorUtils.js";import has from"../core/has.js";import i from"../core/Logger.js";import{allSettledValues as r,throwIfAborted as u,wrapAbortWithTimeout as n}from"../core/promiseUtils.js";import{watch as a,syncAndInitial as h,whenOnce as c}from"../core/reactiveUtils.js";import{property as l,subclass as m}from"../core/accessorSupport/decorators.js";import{addPopup as d,openPopupWithViewClick as f,isPopup as g,isPopupElement as y,openPopupWithOptions as w,closePopup as P}from"./popupAdapter.js";import{ViewEventPriorities as E}from"./input/InputManager.js";const v=v=>{const V=v;let j=class extends V{constructor(...e){super(...e),this._popupSetupTask=null,this.popupEnabled=!0,this.popup={}}initialize(){this.addHandles([a(()=>[this.ui,this.popup,this.popupElement],([e,p,t],o)=>{const[s,i,r]=o??[];d(this,[e,p,t],[s,i,r])},h),this.on("click",e=>{!this.popup||!this.popupEnabled||"mouse"===e.pointerType&&0!==e.button||e.native.ctrlKey||e.native.metaKey||f(this,e).catch(()=>{})},E.WIDGET)]),c(()=>this.ready&&this.popupEnabled&&!this.updating).then(()=>import("../widgets/Popup.js"))}destroy(){this.destroyed||this.closePopup()}get popup(){return this._get("popup")}set popup(e){this._set("popup",e)}async openPopup(e){if(g(this.popup))return this.popup.open(e);if(this.popupElement&&y(this.popupElement)){if(e){const{fetchFeatures:p,title:t,...o}=e;delete e.fetchFeatures,Object.assign(this.popupElement,o),void 0!==t&&(this.popupElement.heading=t)}this.popupElement.open=!0}try{if(await this.setupPopup(),!this.popup)return void i.getLogger(this).error(new t("view:null-popup","Popup is null and can't be opened"));w(this,e)}catch{}}closePopup(){this._popupSetupTask?.abort(),P(this.popup,this.popupElement)}async*fetchPopupFeatures(e,p){await this.when();const t=await this._getPopupHits(e,p),i=this._popupHitsToFeatures(e,t.hits,p);yield*o(s(i,p),p)}async fetchPopupFeaturesLegacy(e,p){await this.when();const t=await this._getPopupHits(e,p),o=this._popupHitsToFeatures(e,t.hits,p);return{pendingFeatures:o,allGraphicsPromise:r(o).then(e=>e.filter(e=>!!e).flat()),location:t.location}}async setupPopup(){if(this._popupSetupTask?.abort(),this.popup&&!g(this.popup))return this._popupSetupTask=p(async e=>{if(!this.popupEnabled||!y(this.popupElement))if(this.dependencies.popup&&"function"==typeof this.dependencies.popup)await this.dependencies.popup(),u(e),customElements.get("arcgis-popup")||i.getLogger(this).error(new t("view:undefined-popup-element","`arcgis-popup` custom element is undefined and can't be opened")),this.popupElement=document.createElement("arcgis-popup");else{const{default:p}=await import("../widgets/Popup.js");if(u(e),!this.popup||g(this.popup))return;const t=this.popup;if("open"in t||"close"in t){const{open:e,close:o,...s}=t;this.popup=new p({...s})}else this.popup=new p(t)}}),this._popupSetupTask.promise}_popupHitsToFeatures(e,p,t){const o=[],s=[];let i=!1;const r=n(t,has("popup-view-fetch-timeout")??F),u=e=>{const p=new _(e);return s.push(p),o.push(p.promise),p},a=e=>{const p=s.at(-1);return p&&p.layerView===e&&!i?p:u(e)};for(const n of p)if("graphic"in n){a(n.layerView).graphics.push(n.graphic),i=!1}else o.push(n.layerView.fetchPopupFeaturesAtTarget(e,n.geometry,r)),i=!0;return s.forEach(e=>e.resolve(r)),o}async _getPopupHits(e,p){const{hits:t,location:o}=await this.popupHitTest(e);u(p);const s=[];for(const i of t)if("graphic"in i){if(this._isValidPopupGraphic(i.graphic,p)){const e=this._isFeaturePatchingLayerView(i.layerView)?i.layerView:void 0;s.push({graphic:i.graphic,layerView:e})}}else s.push({geometry:i.geometry,layerView:i.layerView});return{hits:s,location:o}}_isValidPopupGraphic(e,p){return e&&!!e.getEffectivePopupTemplate(p?.defaultPopupTemplateEnabled)}_isFeaturePatchingLayerView(e){return!e||(!("layer"in e)||!e.suspended)&&"patchFeaturesForPopup"in e}};return e([l()],j.prototype,"popup",null),e([l()],j.prototype,"popupElement",void 0),e([l()],j.prototype,"popupEnabled",void 0),j=e([m("esri.views.PopupView")],j),j};class _{constructor(e){this.layerView=e,this._resolver=Promise.withResolvers(),this.graphics=[]}get promise(){return this._resolver.promise}resolve(e){const{layerView:p,graphics:t,_resolver:o}=this;if(!p)return o.resolve(t),o.promise;let s;return p.patchFeaturesForPopup(t,e).catch(e=>(s=e,null)).then(e=>{e?o.resolve(e):o.reject(s)}),o.promise}}const F=5e3;export{v as PopupView};
|
|
@@ -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"../../../../Graphic.js";import{createTask as a}from"../../../../core/asyncUtils.js";import{EsriPromise as i}from"../../../../core/Promise.js";import{throwIfAborted as r}from"../../../../core/promiseUtils.js";import{property as s,subclass as n}from"../../../../core/accessorSupport/decorators.js";import o from"../../../../geometry/Polygon.js";import c from"../../../../geometry/Polyline.js";import{load as l}from"../../../../geometry/projectionUtils.js";import u from"../../../../geometry/SpatialReference.js";import h from"../../../../layers/GraphicsLayer.js";import{convertSphereVertexToPixelLocation as m,convertPixelToHeadingPitch as d,convertHeadingPitchToSphereVertex as w}from"../../../../layers/orientedImagery/transformations/utils.js";import{getMeasurementProperties as p,getMeasurementPropertiesPanoramic as g,pixelAreaMeasurement2D as y,pixelAreaMeasurementPanoramic as v,pixelDistanceMeasurement2D as M,pixelDistanceMeasurementPanoramic as f,getPixelLocationFromSphereVertices as T,formatPixels as A,imageToImageTransform as V,imageToImageTransformPanoramic as k}from"../../imageMeasurementUtils.js";import{extractHorizonAnglesFromMedia as S}from"../../utils.js";import{SketchHandlerMixin as _}from"../../mixins/SketchHandlerMixin.js";import x from"../../../Sketch/SketchViewModel.js";let F=[],z=[],G=0,B=class extends(_(i)){constructor(e){super(e),this.type="measurement",this.measurementArray=[],this.pixelMeasurement=0,this.pixelAreaMeasurement=0,this.polygonVertices=[],this._calculationTask=null,this._distanceCalculation=0,this._areaCalculation=null}initialize(){this.addResolvingPromise(l())}async handleCreate(e){const t=e.toolEventInfo;switch(e.tool){case"polyline":await this.handlePolylineEvents(e,t);break;case"polygon":await this.handlePolygonEvents(e,t)}}handleDelete(e){this.resetDistanceMeasurements(),this.resetAreaMeasurements()}handleDestroy(){this.resetDistanceMeasurements(),this.resetAreaMeasurements()}async calculateAreaMeasurement(e,t,a){if(e.length<3||!this.viewModel.currentBestFeature||!this.viewModel.activeViewer?.imageSize||"none"===this.viewModel.mode)return null;const i="default"===t?await p(this.viewModel.currentBestFeature,this.viewModel.activeViewer?.imageSize,this.viewModel.footprintExtent):await g(this.viewModel.currentBestFeature,this.viewModel.activeViewer?.imageSize,this.viewModel.footprintExtent);return r(a),i?"default"===t?await y(e,i,!0):await v(e,i,!0,a):null}async calculateDistanceMeasurement(e,t,a){const{currentBestFeature:i,activeViewer:s}=this.viewModel;if(e.length<2||!i||!s?.imageSize||"none"===t)return null;const n="default"===t?await p(i,s?.imageSize,this.viewModel.footprintExtent):await g(i,s?.imageSize,this.viewModel.footprintExtent);return r(a),n?"default"===t?await M([e.at(0),e.at(-1)],n,!0):await f([e.at(0),e.at(-1)],n,!0):null}cursorUpdatePolylineHandler(e){const{mode:t,activeViewer:a}=this.viewModel;if("none"===t||!a?.imageSize)return;if("default"===t)this.measurementArray.push(e.coordinates);else{const t={x:e.coordinates[0],y:e.coordinates[1],z:e.coordinates[2]},i=m(t,a.imageSize[0],a.imageSize[1]);this.measurementArray.push([i.x,i.y])}const i=z.reduce((e,t)=>e+t,0)+this.pixelMeasurement;this.viewModel.distanceMeasurementResult=i}async cursorUpdatePolygonHandler(e){const{mode:t,activeViewer:a}=this.viewModel;if("none"===t||!a?.imageSize)return;const i=e.coordinates;if(F=[...this.polygonVertices],"default"===t)F.push(i);else{const e={x:i[0],y:i[1],z:i[2]},t=m(e,a?.imageSize[0],a?.imageSize[1]);F.push([t.x,t.y])}if(F.length<3||!this.viewModel.currentBestFeature||!this.viewModel.activeViewer?.imageSize)return;const r=F[0];F=F.filter((e,t)=>0===t||t===F.length-1||JSON.stringify(e)!==JSON.stringify(r));const s=await this._getAreaFromTask(F);s?.area&&s?.perimeter&&(G=s.area)}async handlePolylineEvents(e,t){const{currentBestFeature:a,activeViewer:i,mode:r,view:s}=this.viewModel,n=!this.viewModel.accuracyParametersMissing;if("cancel"===e.state)return this.resetDistanceMeasurements(),this.viewModel.distanceMeasurementResult=0,void(this.viewModel.distanceAccuracyArray=[]);if("complete"===e.state&&e.graphic){if(this.viewModel.activeViewer?.addGraphic(e.graphic),this.viewModel.triangularMeasurementActive&&a){const t={pixels:e.graphic.geometry.paths[0],activeFeature:a,activeViewer:i,mode:r,spatialReference:s?.spatialReference};await(this.measurementService?.updateMeasurementVectorsArray(t)),await this._overlayFirstMeasurement(e.graphic,e.tool)}return this.viewModel.measurementGraphic=e.graphic,void this.resetDistanceMeasurements()}switch(t?.type){case"cursor-update":this.cursorUpdatePolylineHandler(t);break;case"vertex-add":if(this.measurementArray.length&&n){const e=await this._getAccuracyFromTask();e&&this.viewModel.distanceAccuracyArray.push(e)}this.vertexUpdatePolylineHandler()}const o=await this._getDistanceFromTask();this.pixelMeasurement=o??this.pixelMeasurement}async handlePolygonEvents(e,t){const{currentBestFeature:a,activeViewer:i,mode:r,view:s,accuracyParametersMissing:n}=this.viewModel;if("cancel"===e.state)return this.resetAreaMeasurements(),this.viewModel.areaMeasurementResult=0,void(this.viewModel.areaMeasurementAccuracy=0);if("complete"===e.state&&e.graphic){this.viewModel.activeViewer?.addGraphic(e.graphic);if(!n&&!this.viewModel.triangularMeasurementActive){const e=await this._getAreaAccuracyFromTask(this.polygonVertices);this.viewModel.areaMeasurementAccuracy=e||this.viewModel.areaMeasurementAccuracy}if(this.viewModel.triangularMeasurementActive&&a){const t={pixels:e.graphic.geometry.rings[0],activeFeature:a,activeViewer:i,mode:r,spatialReference:s?.spatialReference};await(this.measurementService?.updateMeasurementVectorsArray(t)),await this._overlayFirstMeasurement(e.graphic,e.tool)}return this.viewModel.measurementGraphic=e.graphic,void this.resetAreaMeasurements()}switch(t?.type){case"vertex-add":await this.vertexAddPolygonHandler(t);break;case"cursor-update":await this.cursorUpdatePolygonHandler(t)}this.viewModel.areaMeasurementResult=G>0?G:this.pixelAreaMeasurement}async vertexAddPolygonHandler(e){const{mode:t,activeViewer:a}=this.viewModel,i=e.added,r=i[i.length-1];if(!Array.isArray(r)||"none"===t||!a?.imageSize)return;if("default"===t)this.polygonVertices.push(r);else{const e={x:r[0],y:r[1],z:r[2]},t=m(e,a?.imageSize[0],a?.imageSize[1]);this.polygonVertices.push([t.x,t.y])}if(this.polygonVertices.length<3||!this.viewModel.currentBestFeature||!this.viewModel.activeViewer?.imageSize)return;const s=this.polygonVertices[0];this.polygonVertices=this.polygonVertices.filter((e,t)=>0===t||t===this.polygonVertices.length-1||JSON.stringify(e)!==JSON.stringify(s));const n=await this._getAreaFromTask(this.polygonVertices);if(!n?.area||!n?.perimeter)return;const{area:o}=n;this.pixelAreaMeasurement=o}vertexUpdatePolylineHandler(){this.measurementArray=this.measurementArray.slice(-1);const e=z.reduce((e,t)=>e+t,0)+this.pixelMeasurement;this.viewModel.distanceMeasurementResult=e,this.pixelMeasurement>0&&z.push(this.pixelMeasurement)}resetDistanceMeasurements(){this.measurementArray=[],this.pixelMeasurement=0,z=[]}resetAreaMeasurements(){this.polygonVertices=[],this.pixelAreaMeasurement=0,G=0}async _editOverlayedGraphics(e){this.viewModel.sketchTriangularGraphicsLayer||this._initializeSketchTriangularGraphicsLayer(),this.viewModel.sketchTriangularGraphicsLayer?.destroyed&&this._handleDestroyedTriangularSketchLayer(),this.viewModel.sketchTriangularGraphicsLayer.add(e),this.viewModel.sketchTriangular||(this._initializeSketchTriangular(),await this._loadTriangulatedMeasurementAdapter()),this._updateOverlayedGeometry(e)}_handleDestroyedTriangularSketchLayer(){this.viewModel.sketchTriangularGraphicsLayer&&this.viewModel.activeTriangulatedViewer&&(this.viewModel.activeTriangulatedViewer.imageRenderer.map.layers.remove(this.viewModel.sketchTriangularGraphicsLayer),this.viewModel.sketchTriangularGraphicsLayer=new h,this.viewModel.activeTriangulatedViewer.imageRenderer.map.layers.add(this.viewModel.sketchTriangularGraphicsLayer),this.viewModel.sketchTriangular&&(this.viewModel.sketchTriangular.layer=this.viewModel.sketchTriangularGraphicsLayer,this.viewModel.sketchTriangular.view=this.viewModel.activeTriangulatedViewer.imageRenderer))}_initializeSketchTriangular(){if(!this.viewModel.activeTriangulatedViewer)return;const e="panoramic"===this.viewModel.mode;this.viewModel.sketchTriangular=new x({view:this.viewModel.activeTriangulatedViewer.imageRenderer,layer:this.viewModel.sketchTriangularGraphicsLayer,updateOnGraphicClick:!0,defaultUpdateOptions:{toggleToolOnClick:!1,enableZ:!e}}),e&&(this.viewModel.sketchTriangular.defaultUpdateOptions.reshapeOptions={edgeOperation:"offset",shapeOperation:"move-xy",vertexOperation:"move-xy"})}_initializeSketchTriangularGraphicsLayer(){this.viewModel.activeTriangulatedViewer&&(this.viewModel.sketchTriangularGraphicsLayer=new h,this.viewModel.activeTriangulatedViewer.imageRenderer.map.layers.add(this.viewModel.sketchTriangularGraphicsLayer))}async _overlayFirstMeasurement(e,t){switch(t){case"polyline":await this._overlayFirstDistanceMeasurement(e);break;case"polygon":await this._overlayFirstAreaGeometry(e)}}async _overlayFirstDistanceMeasurement(e){const{mode:a,activeTriangulatedViewer:i,currentBestFeature:r,activeViewer:s,footprintExtent:n,currentBestFeatureMeasurementImage:o}=this.viewModel,l=e.geometry?.clone(),h=e.symbol?.clone(),m=i?.imageSize,d=[...l.paths[0]],w=S(i?.media),y="default"===a;if(!("none"!==a&&"video"!==a&&m&&r&&s?.imageSize&&o))return;const v=y?d:T(d,m,w),M=y?A(v,!0):v,f=y?await p(r,s?.imageSize,n):await g(r,s?.imageSize,n),_=y?await p(o,this.viewModel.imageMeasurementViewer?.imageSize,n):await g(o,this.viewModel.activeTriangulatedViewer?.imageSize,n);if(M?.length&&f&&_){const e=y?await V(M,f,_):await k(M,f,_),a=e.map(e=>[e.x-.5,-.5-e.y]),i=e.slice(0,2).map(e=>R(e,m,w)),r=new c({paths:y?[a]:[i],spatialReference:u.WebMercator}),s=new t({geometry:r,symbol:h});await this._editOverlayedGraphics(s)}}async _overlayFirstAreaGeometry(e){const{mode:a,activeTriangulatedViewer:i,currentBestFeature:r,currentBestFeatureMeasurementImage:s,activeViewer:n,footprintExtent:c}=this.viewModel,l=e.geometry?.clone(),h=e.symbol?.clone(),m=i?.imageSize,d=S(i?.media),w=[...l.rings[0]],y="default"===a;if(!("none"!==a&&"video"!==a&&m&&r&&n?.imageSize&&s))return;const v=y?w:T(w,m,d),M=y?A(v,!0):v,f=y?await p(r,n?.imageSize,c):await g(r,n?.imageSize,c),_=y?await p(s,this.viewModel.imageMeasurementViewer?.imageSize,c):await g(s,this.viewModel.activeTriangulatedViewer?.imageSize,c);if(M?.length&&f&&_){const e=y?await V(M,f,_):await k(M,f,_),a=e.map(e=>[e.x-.5,-.5-e.y]),i=e.slice(0,y?2:e.length).map(e=>R(e,m,d)),r=new o({rings:y?[a]:[i],spatialReference:u.WebMercator}),s=new t({geometry:r,symbol:h});await this._editOverlayedGraphics(s)}}async _loadTriangulatedMeasurementAdapter(e){if(!this.viewModel.triangulatedMeasurementAdapter){const t=import("./TriangulatedMeasurementAdapter.js"),{default:a}=await t;if(r(e),this.viewModel.triangulatedMeasurementAdapter=new a({viewModel:this.viewModel,measurementService:this.measurementService}),!this.viewModel.triangulatedMeasurementAdapter.viewModel.isResolved())return}return this.viewModel.triangulatedMeasurementAdapter}async _getAreaFromTask(e){const{mode:t}=this.viewModel;return this._calculationTask?.abort(),this._calculationTask=a(async a=>{this._areaCalculation=null;const i=await this.calculateAreaMeasurement(e,t,a);r(a),this._areaCalculation=i}),await this._calculationTask.promise,this._areaCalculation}async _getDistanceFromTask(){const{mode:e}=this.viewModel;return this._calculationTask?.abort(),this._calculationTask=a(async t=>{this._distanceCalculation=0;const a=await this.calculateDistanceMeasurement(this.measurementArray,e,t);r(t),this._distanceCalculation=a}),await this._calculationTask.promise,this._distanceCalculation}async _getAccuracyFromTask(){const{mode:e,currentBestFeature:t,currentBestFeatureMeasurementImage:i,activeViewer:s,activeTriangulatedViewer:n,layer:o,footprintExtent:c}=this.viewModel,l=s?.imageSize;return"none"!==e&&l?(this._calculationTask?.abort(),this._calculationTask=a(async a=>{this._distanceCalculation=0;const u={measurementArray:this.measurementArray,measurementType:"distance",currentBestFeature:t,currentBestFeatureMeasurementImage:i,activeViewer:s,imageSize:l,layer:o,triangularMeasurementActive:!1,footprintExtent:c,signal:a},h={measurementArray:this.measurementArray,measurementType:"distance",secondaryViewer:!1,currentBestFeature:t,currentBestFeatureMeasurementImage:i,activeViewer:s,activeTriangulatedViewer:n,layer:o,footprintExtent:c,signal:a},m="default"===e?await(this.measurementService?.calculateAccuracy(u)):await(this.measurementService?.calculateAccuracyPanoramic(h));r(a),this._distanceCalculation=m}),await this._calculationTask.promise,this._distanceCalculation):null}async _getAreaAccuracyFromTask(e){const{mode:t,currentBestFeature:i,currentBestFeatureMeasurementImage:s,activeViewer:n,activeTriangulatedViewer:o,layer:c,footprintExtent:l}=this.viewModel,u=n?.imageSize;return"none"!==t&&u?(this._calculationTask?.abort(),this._calculationTask=a(async a=>{this._distanceCalculation=0;const h={measurementArray:e,measurementType:"area",currentBestFeature:i,currentBestFeatureMeasurementImage:s,activeViewer:n,imageSize:u,layer:c,triangularMeasurementActive:!1,footprintExtent:l,signal:a},m={measurementArray:e,measurementType:"area",secondaryViewer:!1,currentBestFeature:i,currentBestFeatureMeasurementImage:s,activeViewer:n,activeTriangulatedViewer:o,layer:c,footprintExtent:l,signal:a},d="default"===t?await(this.measurementService?.calculateAccuracy(h)):await(this.measurementService?.calculateAccuracyPanoramic(m));r(a),this._distanceCalculation=d}),await this._calculationTask.promise,this._distanceCalculation):null}_updateOverlayedGeometry(e){this.viewModel.sketchTriangular?.update([e],{tool:"reshape"}).catch(()=>{})}};e([s()],B.prototype,"type",void 0),e([s()],B.prototype,"measurementArray",void 0),e([s()],B.prototype,"pixelMeasurement",void 0),e([s()],B.prototype,"pixelAreaMeasurement",void 0),e([s()],B.prototype,"polygonVertices",void 0),B=e([n("esri.widgets.OrientedImageryViewer.adapters.sketch.MeasurementAdapter")],B);const P=B,R=(e,t,a)=>{const{heading:i,pitch:r}=d(e,t[0],t[1]);return w(i,r,a)};export{P as default};
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../../../Graphic.js";import{createTask as a}from"../../../../core/asyncUtils.js";import{EsriPromise as i}from"../../../../core/Promise.js";import{isAbortError as r,throwIfAborted as s}from"../../../../core/promiseUtils.js";import{property as n,subclass as o}from"../../../../core/accessorSupport/decorators.js";import c from"../../../../geometry/Polygon.js";import l from"../../../../geometry/Polyline.js";import{load as u}from"../../../../geometry/projectionUtils.js";import h from"../../../../geometry/SpatialReference.js";import m from"../../../../layers/GraphicsLayer.js";import{convertSphereVertexToPixelLocation as d,convertPixelToHeadingPitch as w,convertHeadingPitchToSphereVertex as p}from"../../../../layers/orientedImagery/transformations/utils.js";import{getMeasurementProperties as g,getMeasurementPropertiesPanoramic as y,pixelAreaMeasurement2D as v,pixelAreaMeasurementPanoramic as M,pixelDistanceMeasurement2D as f,pixelDistanceMeasurementPanoramic as T,getPixelLocationFromSphereVertices as A,formatPixels as V,imageToImageTransform as k,imageToImageTransformPanoramic as S}from"../../imageMeasurementUtils.js";import{extractHorizonAnglesFromMedia as _}from"../../utils.js";import{SketchHandlerMixin as x}from"../../mixins/SketchHandlerMixin.js";import F from"../../../Sketch/SketchViewModel.js";let z=[],G=[],B=0,P=class extends(x(i)){constructor(e){super(e),this.type="measurement",this.measurementArray=[],this.pixelMeasurement=0,this.pixelAreaMeasurement=0,this.polygonVertices=[],this._calculationTask=null,this._distanceCalculation=0,this._areaCalculation=null}initialize(){this.addResolvingPromise(u())}async handleCreate(e){try{const t=e.toolEventInfo;switch(e.tool){case"polyline":await this.handlePolylineEvents(e,t);break;case"polygon":await this.handlePolygonEvents(e,t)}}catch(t){if(!r(t))throw t}}handleDelete(e){this.resetDistanceMeasurements(),this.resetAreaMeasurements()}handleDestroy(){this.resetDistanceMeasurements(),this.resetAreaMeasurements()}async calculateAreaMeasurement(e,t,a){if(e.length<3||!this.viewModel.currentBestFeature||!this.viewModel.activeViewer?.imageSize||"none"===this.viewModel.mode)return null;const i="default"===t?await g(this.viewModel.currentBestFeature,this.viewModel.activeViewer?.imageSize,this.viewModel.footprintExtent):await y(this.viewModel.currentBestFeature,this.viewModel.activeViewer?.imageSize,this.viewModel.footprintExtent);return s(a),i?"default"===t?await v(e,i,!0):await M(e,i,!0,a):null}async calculateDistanceMeasurement(e,t,a){const{currentBestFeature:i,activeViewer:r}=this.viewModel;if(e.length<2||!i||!r?.imageSize||"none"===t)return null;const n="default"===t?await g(i,r?.imageSize,this.viewModel.footprintExtent):await y(i,r?.imageSize,this.viewModel.footprintExtent);return s(a),n?"default"===t?await f([e.at(0),e.at(-1)],n,!0):await T([e.at(0),e.at(-1)],n,!0):null}cursorUpdatePolylineHandler(e){const{mode:t,activeViewer:a}=this.viewModel;if("none"===t||!a?.imageSize)return;if("default"===t)this.measurementArray.push(e.coordinates);else{const t={x:e.coordinates[0],y:e.coordinates[1],z:e.coordinates[2]},i=d(t,a.imageSize[0],a.imageSize[1]);this.measurementArray.push([i.x,i.y])}const i=G.reduce((e,t)=>e+t,0)+this.pixelMeasurement;this.viewModel.distanceMeasurementResult=i}async cursorUpdatePolygonHandler(e){const{mode:t,activeViewer:a}=this.viewModel;if("none"===t||!a?.imageSize)return;const i=e.coordinates;if(z=[...this.polygonVertices],"default"===t)z.push(i);else{const e={x:i[0],y:i[1],z:i[2]},t=d(e,a?.imageSize[0],a?.imageSize[1]);z.push([t.x,t.y])}if(z.length<3||!this.viewModel.currentBestFeature||!this.viewModel.activeViewer?.imageSize)return;const r=z[0];z=z.filter((e,t)=>0===t||t===z.length-1||JSON.stringify(e)!==JSON.stringify(r));const s=await this._getAreaFromTask(z);s?.area&&s?.perimeter&&(B=s.area)}async handlePolylineEvents(e,t){const{currentBestFeature:a,activeViewer:i,mode:r,view:s}=this.viewModel,n=!this.viewModel.accuracyParametersMissing;if("cancel"===e.state)return this.resetDistanceMeasurements(),this.viewModel.distanceMeasurementResult=0,void(this.viewModel.distanceAccuracyArray=[]);if("complete"===e.state&&e.graphic){if(this.viewModel.activeViewer?.addGraphic(e.graphic),this.viewModel.triangularMeasurementActive&&a){const t={pixels:e.graphic.geometry.paths[0],activeFeature:a,activeViewer:i,mode:r,spatialReference:s?.spatialReference};await(this.measurementService?.updateMeasurementVectorsArray(t)),await this._overlayFirstMeasurement(e.graphic,e.tool)}return this.viewModel.measurementGraphic=e.graphic,void this.resetDistanceMeasurements()}switch(t?.type){case"cursor-update":this.cursorUpdatePolylineHandler(t);break;case"vertex-add":if(this.measurementArray.length&&n){const e=await this._getAccuracyFromTask();e&&this.viewModel.distanceAccuracyArray.push(e)}this.vertexUpdatePolylineHandler()}const o=await this._getDistanceFromTask();this.pixelMeasurement=o??this.pixelMeasurement}async handlePolygonEvents(e,t){const{currentBestFeature:a,activeViewer:i,mode:r,view:s,accuracyParametersMissing:n}=this.viewModel;if("cancel"===e.state)return this.resetAreaMeasurements(),this.viewModel.areaMeasurementResult=0,void(this.viewModel.areaMeasurementAccuracy=0);if("complete"===e.state&&e.graphic){this.viewModel.activeViewer?.addGraphic(e.graphic);if(!n&&!this.viewModel.triangularMeasurementActive){const e=await this._getAreaAccuracyFromTask(this.polygonVertices);this.viewModel.areaMeasurementAccuracy=e||this.viewModel.areaMeasurementAccuracy}if(this.viewModel.triangularMeasurementActive&&a){const t={pixels:e.graphic.geometry.rings[0],activeFeature:a,activeViewer:i,mode:r,spatialReference:s?.spatialReference};await(this.measurementService?.updateMeasurementVectorsArray(t)),await this._overlayFirstMeasurement(e.graphic,e.tool)}return this.viewModel.measurementGraphic=e.graphic,void this.resetAreaMeasurements()}switch(t?.type){case"vertex-add":await this.vertexAddPolygonHandler(t);break;case"cursor-update":await this.cursorUpdatePolygonHandler(t)}this.viewModel.areaMeasurementResult=B>0?B:this.pixelAreaMeasurement}async vertexAddPolygonHandler(e){const{mode:t,activeViewer:a}=this.viewModel,i=e.added,r=i[i.length-1];if(!Array.isArray(r)||"none"===t||!a?.imageSize)return;if("default"===t)this.polygonVertices.push(r);else{const e={x:r[0],y:r[1],z:r[2]},t=d(e,a?.imageSize[0],a?.imageSize[1]);this.polygonVertices.push([t.x,t.y])}if(this.polygonVertices.length<3||!this.viewModel.currentBestFeature||!this.viewModel.activeViewer?.imageSize)return;const s=this.polygonVertices[0];this.polygonVertices=this.polygonVertices.filter((e,t)=>0===t||t===this.polygonVertices.length-1||JSON.stringify(e)!==JSON.stringify(s));const n=await this._getAreaFromTask(this.polygonVertices);if(!n?.area||!n?.perimeter)return;const{area:o}=n;this.pixelAreaMeasurement=o}vertexUpdatePolylineHandler(){this.measurementArray=this.measurementArray.slice(-1);const e=G.reduce((e,t)=>e+t,0)+this.pixelMeasurement;this.viewModel.distanceMeasurementResult=e,this.pixelMeasurement>0&&G.push(this.pixelMeasurement)}resetDistanceMeasurements(){this.measurementArray=[],this.pixelMeasurement=0,G=[]}resetAreaMeasurements(){this.polygonVertices=[],this.pixelAreaMeasurement=0,B=0}async _editOverlayedGraphics(e){this.viewModel.sketchTriangularGraphicsLayer||this._initializeSketchTriangularGraphicsLayer(),this.viewModel.sketchTriangularGraphicsLayer?.destroyed&&this._handleDestroyedTriangularSketchLayer(),this.viewModel.sketchTriangularGraphicsLayer.add(e),this.viewModel.sketchTriangular||(this._initializeSketchTriangular(),await this._loadTriangulatedMeasurementAdapter()),this._updateOverlayedGeometry(e)}_handleDestroyedTriangularSketchLayer(){this.viewModel.sketchTriangularGraphicsLayer&&this.viewModel.activeTriangulatedViewer&&(this.viewModel.activeTriangulatedViewer.imageRenderer.map.layers.remove(this.viewModel.sketchTriangularGraphicsLayer),this.viewModel.sketchTriangularGraphicsLayer=new m,this.viewModel.activeTriangulatedViewer.imageRenderer.map.layers.add(this.viewModel.sketchTriangularGraphicsLayer),this.viewModel.sketchTriangular&&(this.viewModel.sketchTriangular.layer=this.viewModel.sketchTriangularGraphicsLayer,this.viewModel.sketchTriangular.view=this.viewModel.activeTriangulatedViewer.imageRenderer))}_initializeSketchTriangular(){if(!this.viewModel.activeTriangulatedViewer)return;const e="panoramic"===this.viewModel.mode;this.viewModel.sketchTriangular=new F({view:this.viewModel.activeTriangulatedViewer.imageRenderer,layer:this.viewModel.sketchTriangularGraphicsLayer,updateOnGraphicClick:!0,defaultUpdateOptions:{toggleToolOnClick:!1,enableZ:!e}}),e&&(this.viewModel.sketchTriangular.defaultUpdateOptions.reshapeOptions={edgeOperation:"offset",shapeOperation:"move-xy",vertexOperation:"move-xy"})}_initializeSketchTriangularGraphicsLayer(){this.viewModel.activeTriangulatedViewer&&(this.viewModel.sketchTriangularGraphicsLayer=new m,this.viewModel.activeTriangulatedViewer.imageRenderer.map.layers.add(this.viewModel.sketchTriangularGraphicsLayer))}async _overlayFirstMeasurement(e,t){switch(t){case"polyline":await this._overlayFirstDistanceMeasurement(e);break;case"polygon":await this._overlayFirstAreaGeometry(e)}}async _overlayFirstDistanceMeasurement(e){const{mode:a,activeTriangulatedViewer:i,currentBestFeature:r,activeViewer:s,footprintExtent:n,currentBestFeatureMeasurementImage:o}=this.viewModel,c=e.geometry?.clone(),u=e.symbol?.clone(),m=i?.imageSize,d=[...c.paths[0]],w=_(i?.media),p="default"===a;if(!("none"!==a&&"video"!==a&&m&&r&&s?.imageSize&&o))return;const v=p?d:A(d,m,w),M=p?V(v,!0):v,f=p?await g(r,s?.imageSize,n):await y(r,s?.imageSize,n),T=p?await g(o,this.viewModel.imageMeasurementViewer?.imageSize,n):await y(o,this.viewModel.activeTriangulatedViewer?.imageSize,n);if(M?.length&&f&&T){const e=p?await k(M,f,T):await S(M,f,T),a=e.map(e=>[e.x-.5,-.5-e.y]),i=e.slice(0,2).map(e=>O(e,m,w)),r=new l({paths:p?[a]:[i],spatialReference:h.WebMercator}),s=new t({geometry:r,symbol:u});await this._editOverlayedGraphics(s)}}async _overlayFirstAreaGeometry(e){const{mode:a,activeTriangulatedViewer:i,currentBestFeature:r,currentBestFeatureMeasurementImage:s,activeViewer:n,footprintExtent:o}=this.viewModel,l=e.geometry?.clone(),u=e.symbol?.clone(),m=i?.imageSize,d=_(i?.media),w=[...l.rings[0]],p="default"===a;if(!("none"!==a&&"video"!==a&&m&&r&&n?.imageSize&&s))return;const v=p?w:A(w,m,d),M=p?V(v,!0):v,f=p?await g(r,n?.imageSize,o):await y(r,n?.imageSize,o),T=p?await g(s,this.viewModel.imageMeasurementViewer?.imageSize,o):await y(s,this.viewModel.activeTriangulatedViewer?.imageSize,o);if(M?.length&&f&&T){const e=p?await k(M,f,T):await S(M,f,T),a=e.map(e=>[e.x-.5,-.5-e.y]),i=e.slice(0,p?2:e.length).map(e=>O(e,m,d)),r=new c({rings:p?[a]:[i],spatialReference:h.WebMercator}),s=new t({geometry:r,symbol:u});await this._editOverlayedGraphics(s)}}async _loadTriangulatedMeasurementAdapter(e){if(!this.viewModel.triangulatedMeasurementAdapter){const t=import("./TriangulatedMeasurementAdapter.js"),{default:a}=await t;if(s(e),this.viewModel.triangulatedMeasurementAdapter=new a({viewModel:this.viewModel,measurementService:this.measurementService}),!this.viewModel.triangulatedMeasurementAdapter.viewModel.isResolved())return}return this.viewModel.triangulatedMeasurementAdapter}async _getAreaFromTask(e){const{mode:t}=this.viewModel;return this._calculationTask?.abort(),this._calculationTask=a(async a=>{this._areaCalculation=null;const i=await this.calculateAreaMeasurement(e,t,a);s(a),this._areaCalculation=i}),await this._calculationTask.promise,this._areaCalculation}async _getDistanceFromTask(){const{mode:e}=this.viewModel;return this._calculationTask?.abort(),this._calculationTask=a(async t=>{this._distanceCalculation=0;const a=await this.calculateDistanceMeasurement(this.measurementArray,e,t);s(t),this._distanceCalculation=a}),await this._calculationTask.promise,this._distanceCalculation}async _getAccuracyFromTask(){const{mode:e,currentBestFeature:t,currentBestFeatureMeasurementImage:i,activeViewer:r,activeTriangulatedViewer:n,layer:o,footprintExtent:c}=this.viewModel,l=r?.imageSize;return"none"!==e&&l?(this._calculationTask?.abort(),this._calculationTask=a(async a=>{this._distanceCalculation=0;const u={measurementArray:this.measurementArray,measurementType:"distance",currentBestFeature:t,currentBestFeatureMeasurementImage:i,activeViewer:r,imageSize:l,layer:o,triangularMeasurementActive:!1,footprintExtent:c,signal:a},h={measurementArray:this.measurementArray,measurementType:"distance",secondaryViewer:!1,currentBestFeature:t,currentBestFeatureMeasurementImage:i,activeViewer:r,activeTriangulatedViewer:n,layer:o,footprintExtent:c,signal:a},m="default"===e?await(this.measurementService?.calculateAccuracy(u)):await(this.measurementService?.calculateAccuracyPanoramic(h));s(a),this._distanceCalculation=m}),await this._calculationTask.promise,this._distanceCalculation):null}async _getAreaAccuracyFromTask(e){const{mode:t,currentBestFeature:i,currentBestFeatureMeasurementImage:r,activeViewer:n,activeTriangulatedViewer:o,layer:c,footprintExtent:l}=this.viewModel,u=n?.imageSize;return"none"!==t&&u?(this._calculationTask?.abort(),this._calculationTask=a(async a=>{this._distanceCalculation=0;const h={measurementArray:e,measurementType:"area",currentBestFeature:i,currentBestFeatureMeasurementImage:r,activeViewer:n,imageSize:u,layer:c,triangularMeasurementActive:!1,footprintExtent:l,signal:a},m={measurementArray:e,measurementType:"area",secondaryViewer:!1,currentBestFeature:i,currentBestFeatureMeasurementImage:r,activeViewer:n,activeTriangulatedViewer:o,layer:c,footprintExtent:l,signal:a},d="default"===t?await(this.measurementService?.calculateAccuracy(h)):await(this.measurementService?.calculateAccuracyPanoramic(m));s(a),this._distanceCalculation=d}),await this._calculationTask.promise,this._distanceCalculation):null}_updateOverlayedGeometry(e){this.viewModel.sketchTriangular?.update([e],{tool:"reshape"}).catch(()=>{})}};e([n()],P.prototype,"type",void 0),e([n()],P.prototype,"measurementArray",void 0),e([n()],P.prototype,"pixelMeasurement",void 0),e([n()],P.prototype,"pixelAreaMeasurement",void 0),e([n()],P.prototype,"polygonVertices",void 0),P=e([o("esri.widgets.OrientedImageryViewer.adapters.sketch.MeasurementAdapter")],P);const R=P,O=(e,t,a)=>{const{heading:i,pitch:r}=w(e,t[0],t[1]);return p(i,r,a)};export{R as default};
|