@arcgis/core 4.24.0-next.20220520 → 4.24.0-next.20220521
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/{26646a7545a194e67441.js → 27572edd67242e1b6646.js} +1 -1
- package/assets/esri/core/workers/chunks/{d94c5f36d52cf71f0bb9.js → 27f974dae930eb12fe38.js} +1 -1
- package/assets/esri/core/workers/chunks/2b708cc5ba0edd6c80e1.js +1 -0
- package/assets/esri/core/workers/chunks/{c5fadaa98749ffb490f5.js → 3c258ac11c963b7d9509.js} +1 -1
- package/assets/esri/core/workers/chunks/40d70d446abe357d6f43.js +1 -0
- package/assets/esri/core/workers/chunks/5cf2064bfd9d0847d9ec.js +1 -0
- package/assets/esri/core/workers/chunks/{f5089121d845ec594008.js → 6ac32325a961f1cf3c1b.js} +1 -1
- package/assets/esri/core/workers/chunks/{1c2805cc97dcee70e60d.js → 816ae3f0513ecf856f8f.js} +1 -1
- package/assets/esri/core/workers/chunks/{8033531b0cc706b40d86.js → 8523d45cf4765eddc380.js} +1 -1
- package/assets/esri/core/workers/chunks/{a5ee17cdc9eb23ebeaf0.js → 85f2f6a50cf1b6c7ce82.js} +1 -1
- package/assets/esri/core/workers/chunks/{c40d9caf5189be2c698e.js → 87b83dfce3ee252aba94.js} +1 -1
- package/assets/esri/core/workers/chunks/{6e48b0db65bcaaace838.js → 8cd8dad8bcd5c0ef445e.js} +1 -1
- package/assets/esri/core/workers/chunks/{54711b8a98104eeec833.js → 8ec860742695e5bbbcb2.js} +1 -1
- package/assets/esri/core/workers/chunks/{e51f0e71f2a55af604d3.js → 93c4e01b237a6b3f871f.js} +1 -1
- package/assets/esri/core/workers/chunks/{3e94e35f44aadbb332ff.js → aae70408958f6ee7279e.js} +1 -1
- package/assets/esri/core/workers/chunks/{7e150c38e25fbb8bacaf.js → b476a80ef81c211685be.js} +1 -1
- package/assets/esri/core/workers/chunks/b8db486a3dba68a8030a.js +1 -0
- package/assets/esri/core/workers/chunks/{82b6535a30287c74ba13.js → c0e6dbecdbd30066a82c.js} +1 -1
- package/assets/esri/core/workers/chunks/{66e8a253312d72a8e7f9.js → c4115e8d1eb2ca6bb605.js} +1 -1
- package/assets/esri/core/workers/chunks/cd04bae81e5fc27ec97b.js +1 -0
- package/assets/esri/core/workers/chunks/{24217129d492e170f0f0.js → f668ccaf8bd0be0ab57b.js} +1 -1
- package/core/CollectionFlattener.js +1 -1
- package/core/promiseUtils.js +1 -1
- package/interfaces.d.ts +78 -2
- package/layers/FeatureLayer.js +1 -1
- package/layers/SubtypeGroupLayer.js +1 -1
- package/layers/graphics/sources/OGCFeatureSource.js +1 -1
- package/layers/graphics/sources/support/clientSideDefaults.js +1 -1
- package/layers/mixins/ArcGISImageService.js +1 -1
- package/layers/mixins/refresh.js +1 -1
- package/layers/support/FeatureReductionCluster.js +1 -1
- package/layers/support/capabilities.js +1 -1
- package/package.json +1 -1
- package/support/revision.js +1 -1
- package/views/2d/engine/webgl/SpriteMosaic.js +1 -1
- package/views/2d/engine/webgl/TextureManager.js +1 -1
- package/views/2d/engine/webgl/animatedFormats/BaseAnimatableTextureResource.js +1 -1
- package/views/2d/engine/webgl/animatedFormats/apng.js +1 -1
- package/views/2d/engine/webgl/animatedFormats/gif.js +1 -1
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/2d/layers/FeatureLayerView2D.js +1 -1
- package/views/2d/layers/features/schemaUtils.js +1 -1
- package/views/SceneView.js +1 -1
- package/assets/esri/core/workers/chunks/128f461007ef039d4f73.js +0 -1
- package/assets/esri/core/workers/chunks/672da24bbf86718bf48d.js +0 -1
- package/assets/esri/core/workers/chunks/824a700ba611e6c4fa9a.js +0 -1
- package/assets/esri/core/workers/chunks/be4bf1e4cbe2a593f8b3.js +0 -1
- package/assets/esri/core/workers/chunks/d6315aa9eedf79a7bca1.js +0 -1
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as t}from"../chunks/tslib.es6.js";import o from"./Collection.js";import{HandleOwnerMixin as s}from"./HandleOwner.js";import{isSome as r,isNone as e}from"./maybe.js";import"./Error.js";import"./Logger.js";import"./accessorSupport/watch.js";import{autorun as i}from"./accessorSupport/trackingUtils.js";import{property as n}from"./accessorSupport/decorators/property.js";import"./arrayUtils.js";import"./
|
|
5
|
+
import{_ as t}from"../chunks/tslib.es6.js";import o from"./Collection.js";import{HandleOwnerMixin as s}from"./HandleOwner.js";import{isSome as r,isNone as e}from"./maybe.js";import"./has.js";import"./Error.js";import"./Logger.js";import"./accessorSupport/watch.js";import{autorun as i}from"./accessorSupport/trackingUtils.js";import{property as n}from"./accessorSupport/decorators/property.js";import"./arrayUtils.js";import"./accessorSupport/ensureType.js";import{subclass as c}from"./accessorSupport/decorators/subclass.js";let l=class extends(s(o)){constructor(t){super(t),this.getCollections=null}initialize(){this.handles.add(i((()=>this._refresh())))}destroy(){this.getCollections=null}_refresh(){const t=r(this.getCollections)?this.getCollections():null;if(e(t))return void this.removeAll();let o=0;for(const s of t)r(s)&&(o=this._processCollection(o,s));this.splice(o,this.length)}_createNewInstance(t){return new o(t)}_processCollection(t,o){if(!o)return t;const s=this.itemFilterFunction?this.itemFilterFunction:t=>!!t;for(const r of o)if(r){if(s(r)){const o=this.indexOf(r,t);o>=0?o!==t&&this.reorder(r,t):this.add(r,t),++t}if(this.getChildrenFunction){const o=this.getChildrenFunction(r);if(Array.isArray(o))for(const s of o)t=this._processCollection(t,s);else t=this._processCollection(t,o)}}return t}};t([n()],l.prototype,"getCollections",void 0),t([n()],l.prototype,"getChildrenFunction",void 0),t([n()],l.prototype,"itemFilterFunction",void 0),l=t([c("esri.core.CollectionFlattener")],l);const p=l;export{p as default};
|
package/core/promiseUtils.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{clock as t}from"./clock.js";import
|
|
5
|
+
import{clock as t}from"./clock.js";import{deprecatedFunction as e}from"./deprecate.js";import r from"./Error.js";import{once as n}from"./events.js";import o from"./Logger.js";import{isSome as i,isNone as s,assumeNonNull as c,removeMaybe as u}from"./maybe.js";async function l(t,e){const r=t.slice(),n=await Promise.all(t.map(((t,r)=>e(t,r))));return r.filter(((t,e)=>n[e]))}function a(t){return e(o.getLogger("esri.core.promiseUtils"),"create",{moduleName:"esri.core.promiseUtils",replacement:"new Promise()",version:"4.24"}),new Promise(((e,r)=>{try{t(e,r)}catch(n){Promise.resolve().then((()=>r(n)))}}))}function m(t="Aborted"){return new r("AbortError",t)}function f(t,e="Aborted"){if(p(t))throw m(e)}function h(t){return i(t)?"aborted"in t?t:t.signal:t}function p(t){const e=h(t);return i(e)&&e.aborted}function w(t){if(g(t))throw t}function b(t){if(!g(t))throw t}function v(t,e){const r=h(t);if(!s(r)){if(!r.aborted)return n(r,"abort",(()=>e()));e()}}function d(t,e){const r=h(t);if(!s(r))return f(r),n(r,"abort",(()=>e(m())))}function y(t,e){const r=h(e);return s(r)?t:new Promise(((r,n)=>{let o=v(e,(()=>n(m())));const i=()=>o=u(o);t.then(i,i),t.then(r,n)}))}function P(t,e,n){return Promise.race([t,L(e).then((()=>{throw new r("timeout",`Did not resolve within ${e} milliseconds (${n??"timeout"})`)}))])}function g(t){return t&&"AbortError"===t.name}async function j(t){try{return await t}catch(e){if(!g(e))throw e}}async function A(t,e=o.getLogger("esri")){try{return await t}catch(r){g(r)||e.error(r)}}function T(){let t=null;const e=new Promise(((e,r)=>{t={promise:void 0,resolve:e,reject:r}}));return t.promise=e,t}async function E(t){if(!t)return;if("function"!=typeof t.forEach){const e=Object.keys(t),r=e.map((e=>t[e])),n=await E(r),o={};return e.map(((t,e)=>o[t]=n[e])),o}const e=t;return new Promise((t=>{const r=[];let n=e.length;0===n&&t(r),e.forEach((e=>{const o={promise:e||Promise.resolve(e)};r.push(o),o.promise.then((t=>{o.value=t})).catch((t=>{o.error=t})).then((()=>{--n,0===n&&t(r)}))}))}))}async function C(t){return(await E(t)).filter((t=>!!t.value)).map((t=>t.value))}function L(t,e,r){const n=new AbortController;return v(r,(()=>n.abort())),new Promise(((r,o)=>{let i=setTimeout((()=>{i=0,r(e)}),t);v(n,(()=>{i&&(clearTimeout(i),o(m()))}))}))}function U(t,e,n,o){const i=n&&"abort"in n?n:null;null!=o||i||(o=n);let s=setTimeout((()=>{s=0,i&&i.abort()}),e);const c=()=>o||new r("promiseUtils:timeout","The wrapped promise did not resolve within "+e+" ms");return t.then((t=>{if(0===s)throw c();return clearTimeout(s),t}),(t=>{throw clearTimeout(s),0===s?c():t}))}function k(t){return t&&"function"==typeof t.then}function $(t){return k(t)?t:Promise.resolve(t)}function x(t,e=-1){let r,n,o,i,s=null;const u=(...l)=>{if(r){n=l,i&&i.reject(m()),i=T();const t=c(i.promise);if(s){const t=s;s=null,t.abort()}return t}if(o=i||T(),i=null,e>0){const n=new AbortController;r=$(t(...l,n.signal));const o=r;L(e).then((()=>{r===o&&(i?n.abort():s=n)}))}else r=1,r=$(t(...l));const a=()=>{const t=n;n=o=r=s=null,null!=t&&u(...t)},f=r,h=o;return f.then(a,a),f.then(h.resolve,h.reject),c(h.promise)};return u}function D(){let e,r;const n=new Promise(((t,n)=>{e=t,r=n})),o=t=>{e(t)};return o.resolve=t=>e(t),o.reject=t=>r(t),o.timeout=(e,r)=>t.setTimeout((()=>o.reject(r)),e),o.promise=n,o}function N(t,e){return t.then(e,e)}function O(t,e){let r,n=new AbortController;const o=t(n.signal);let s={promise:o,finished:!1,abort:()=>{n&&(n.abort(),n=null)}};const c=()=>{s&&(s.finished=!0,s=null),i(r)&&(r.remove(),r=null),n=null};return o.then(c,c),r=v(e,(()=>{i(s)&&s.abort()})),s}async function q(t){await Promise.resolve(),f(t)}export{L as after,N as always,a as create,m as createAbortError,T as createDeferred,D as createResolver,O as createTask,x as debounce,E as eachAlways,C as eachAlwaysValues,l as filter,j as ignoreAbortErrors,g as isAbortError,p as isAborted,k as isPromiseLike,A as logOnError,v as onAbort,d as onAbortOrThrow,w as throwIfAbortError,f as throwIfAborted,b as throwIfNotAbortError,U as timeout,q as waitTick,$ as when,y as whenOrAbort,P as whenOrTimeout};
|
package/interfaces.d.ts
CHANGED
|
@@ -1706,6 +1706,8 @@ declare namespace __esri {
|
|
|
1706
1706
|
/**
|
|
1707
1707
|
* Convenience utility method for creating and resolving a promise.
|
|
1708
1708
|
*
|
|
1709
|
+
* @deprecated since version 4.24. Use [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/Promise) instead.
|
|
1710
|
+
*
|
|
1709
1711
|
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-core-promiseUtils.html#create)
|
|
1710
1712
|
*/
|
|
1711
1713
|
create(executor: Executor): Promise<any>;
|
|
@@ -56601,6 +56603,62 @@ declare namespace __esri {
|
|
|
56601
56603
|
data?: CIMSymbolReference;
|
|
56602
56604
|
}
|
|
56603
56605
|
|
|
56606
|
+
/**
|
|
56607
|
+
* Represents animated symbol properties, a collection of symbol properties that apply when the symbol layer has animation data.
|
|
56608
|
+
*
|
|
56609
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-CIMSymbol.html#CIMAnimatedSymbolProperties)
|
|
56610
|
+
*/
|
|
56611
|
+
export interface CIMAnimatedSymbolProperties extends Object {
|
|
56612
|
+
/**
|
|
56613
|
+
* Indicates whether the animated symbol should play its animation.
|
|
56614
|
+
*
|
|
56615
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-CIMSymbol.html#CIMAnimatedSymbolProperties)
|
|
56616
|
+
*/
|
|
56617
|
+
playAnimation?: boolean;
|
|
56618
|
+
/**
|
|
56619
|
+
* Indicates whether the animated symbol should play back in reverse.
|
|
56620
|
+
*
|
|
56621
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-CIMSymbol.html#CIMAnimatedSymbolProperties)
|
|
56622
|
+
*/
|
|
56623
|
+
reverseAnimation?: boolean;
|
|
56624
|
+
/**
|
|
56625
|
+
* Indicates whether to generate a randomized start offset in seconds to apply to the symbol animation of each feature.
|
|
56626
|
+
*
|
|
56627
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-CIMSymbol.html#CIMAnimatedSymbolProperties)
|
|
56628
|
+
*/
|
|
56629
|
+
randomizeStartTime?: boolean;
|
|
56630
|
+
/**
|
|
56631
|
+
* The starting value for generating a random number.
|
|
56632
|
+
*
|
|
56633
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-CIMSymbol.html#CIMAnimatedSymbolProperties)
|
|
56634
|
+
*/
|
|
56635
|
+
randomizeStartSeed?: number;
|
|
56636
|
+
/**
|
|
56637
|
+
* The time offset in seconds to use as the starting point of the symbol animation.
|
|
56638
|
+
*
|
|
56639
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-CIMSymbol.html#CIMAnimatedSymbolProperties)
|
|
56640
|
+
*/
|
|
56641
|
+
startTimeOffset?: number;
|
|
56642
|
+
/**
|
|
56643
|
+
* The time (in seconds) it take to play through the symbol's animation once.
|
|
56644
|
+
*
|
|
56645
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-CIMSymbol.html#CIMAnimatedSymbolProperties)
|
|
56646
|
+
*/
|
|
56647
|
+
duration?: number;
|
|
56648
|
+
/**
|
|
56649
|
+
* Determines how to repeat the animation of a symbol when the animation cycle ends.
|
|
56650
|
+
*
|
|
56651
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-CIMSymbol.html#CIMAnimatedSymbolProperties)
|
|
56652
|
+
*/
|
|
56653
|
+
repeatType?: "None" | "Loop" | "Oscillate";
|
|
56654
|
+
/**
|
|
56655
|
+
* The number of seconds to delay before repeating an animation cycle.
|
|
56656
|
+
*
|
|
56657
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-CIMSymbol.html#CIMAnimatedSymbolProperties)
|
|
56658
|
+
*/
|
|
56659
|
+
repeatDelay?: number;
|
|
56660
|
+
}
|
|
56661
|
+
|
|
56604
56662
|
/**
|
|
56605
56663
|
* Represents color substitution, an ordered list of color substitutes.
|
|
56606
56664
|
*
|
|
@@ -57277,7 +57335,7 @@ declare namespace __esri {
|
|
|
57277
57335
|
*
|
|
57278
57336
|
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-CIMSymbol.html#CIMMarkerPlacementInsidePolygon)
|
|
57279
57337
|
*/
|
|
57280
|
-
gridType?: "Fixed";
|
|
57338
|
+
gridType?: "Fixed" | "Random";
|
|
57281
57339
|
/**
|
|
57282
57340
|
* The marker row offset horizontally.
|
|
57283
57341
|
*
|
|
@@ -57308,12 +57366,24 @@ declare namespace __esri {
|
|
|
57308
57366
|
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-CIMSymbol.html#CIMMarkerPlacementInsidePolygon)
|
|
57309
57367
|
*/
|
|
57310
57368
|
stepY?: number;
|
|
57369
|
+
/**
|
|
57370
|
+
* _Since 4.24_ A percentage that determines the randomness of markers within the polygon.
|
|
57371
|
+
*
|
|
57372
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-CIMSymbol.html#CIMMarkerPlacementInsidePolygon)
|
|
57373
|
+
*/
|
|
57374
|
+
randomness?: number;
|
|
57375
|
+
/**
|
|
57376
|
+
* _Since 4.24_ The starting value for generating a random pattern.
|
|
57377
|
+
*
|
|
57378
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-CIMSymbol.html#CIMMarkerPlacementInsidePolygon)
|
|
57379
|
+
*/
|
|
57380
|
+
seed?: number;
|
|
57311
57381
|
/**
|
|
57312
57382
|
* The clipping option which specifies how markers should be clipped at the polygon boundary.
|
|
57313
57383
|
*
|
|
57314
57384
|
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-CIMSymbol.html#CIMMarkerPlacementInsidePolygon)
|
|
57315
57385
|
*/
|
|
57316
|
-
clipping?: "ClipAtBoundary"
|
|
57386
|
+
clipping?: "ClipAtBoundary";
|
|
57317
57387
|
}
|
|
57318
57388
|
|
|
57319
57389
|
/**
|
|
@@ -57647,6 +57717,12 @@ declare namespace __esri {
|
|
|
57647
57717
|
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-CIMSymbol.html#CIMPictureMarker)
|
|
57648
57718
|
*/
|
|
57649
57719
|
tintColor?: number[];
|
|
57720
|
+
/**
|
|
57721
|
+
* _Since 4.24_ The collection of symbol properties that apply when the symbol layer has animation data.
|
|
57722
|
+
*
|
|
57723
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-CIMSymbol.html#CIMPictureMarker)
|
|
57724
|
+
*/
|
|
57725
|
+
animatedSymbolProperties?: CIMAnimatedSymbolProperties;
|
|
57650
57726
|
}
|
|
57651
57727
|
|
|
57652
57728
|
/**
|
package/layers/FeatureLayer.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import t from"../PopupTemplate.js";import"../renderers/ClassBreaksRenderer.js";import"../renderers/DictionaryRenderer.js";import"../renderers/DotDensityRenderer.js";import"../renderers/HeatmapRenderer.js";import"../renderers/PieChartRenderer.js";import"../renderers/Renderer.js";import r from"../renderers/SimpleRenderer.js";import i from"../renderers/UniqueValueRenderer.js";import{read as o}from"../renderers/support/jsonUtils.js";import{rendererTypes as s,webSceneRendererTypes as a}from"../renderers/support/types.js";import n from"../request.js";import{symbolTypes as p,symbolTypesRenderer as l}from"../symbols.js";import{ClonableMixin as u}from"../core/Clonable.js";import d from"../core/Collection.js";import c from"../core/Error.js";import y from"../core/Handles.js";import h from"../core/has.js";import{JSONMap as m}from"../core/jsonMap.js";import{clone as f}from"../core/lang.js";import g from"../core/Logger.js";import{destroyMaybe as b,isSome as w}from"../core/maybe.js";import{MultiOriginJSONMixin as v}from"../core/MultiOriginJSONSupport.js";import{setDeepValue as S}from"../core/object.js";import{throwIfAbortError as I,whenOrAbort as F}from"../core/promiseUtils.js";import{parseWhereClause as j}from"../core/sql.js";import{urlToObject as E,join as T}from"../core/urlUtils.js";import{property as x}from"../core/accessorSupport/decorators/property.js";import{cast as D}from"../core/accessorSupport/decorators/cast.js";import{reader as C}from"../core/accessorSupport/decorators/reader.js";import{subclass as M}from"../core/accessorSupport/decorators/subclass.js";import{writer as L}from"../core/accessorSupport/decorators/writer.js";import{createTypeReader as R}from"../core/accessorSupport/extensions/serializableProperty/reader.js";import A from"../form/FormTemplate.js";import O from"../geometry/Extent.js";import P from"../geometry/HeightModelInfo.js";import _ from"../geometry/SpatialReference.js";import q from"./Layer.js";import{MemorySource as Q}from"./graphics/sources/MemorySource.js";import{APIKeyMixin as U}from"./mixins/APIKeyMixin.js";import{ArcGISService as G}from"./mixins/ArcGISService.js";import{BlendLayer as V}from"./mixins/BlendLayer.js";import{CustomParametersMixin as z}from"./mixins/CustomParametersMixin.js";import{FeatureEffectLayer as B}from"./mixins/FeatureEffectLayer.js";import{OperationalLayer as k}from"./mixins/OperationalLayer.js";import{OrderedLayer as N}from"./mixins/OrderedLayer.js";import{PortalLayer as W}from"./mixins/PortalLayer.js";import{RefreshableLayer as J}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as Z}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as H}from"./mixins/TemporalLayer.js";import{titleFromUrlAndName as $,parse as K,cleanTitle as X,sanitizeUrlWithLayerId as Y,writeUrlWithLayerId as ee,isHostedAgolService as te}from"./support/arcgisLayerUrl.js";import{id as re,labelsVisible as ie,legendEnabled as oe,minScale as se,maxScale as ae,popupEnabled as ne,url as pe,elevationInfo as le,opacityDrawingInfo as ue,listMode as de,screenSizePerspectiveEnabled as ce}from"./support/commonProperties.js";import{FeatureIndex as ye}from"./support/FeatureIndex.js";import{featureReductionProperty as he}from"./support/featureReductionUtils.js";import me from"./support/FeatureTemplate.js";import fe from"./support/FeatureType.js";import{defineFieldProperties as ge}from"./support/fieldProperties.js";import{fixRendererFields as be,fixTimeInfoFields as we}from"./support/fieldUtils.js";import ve from"./support/GeometryFieldsInfo.js";import Se from"./support/LabelClass.js";import{reader as Ie}from"./support/labelingInfo.js";import Fe from"./support/LayerFloorInfo.js";import je from"./support/Relationship.js";import Ee from"./support/TimeInfo.js";import{serviceSupportsSpatialReference as Te}from"./support/versionUtils.js";import{DataLayerSource as xe}from"./support/source/DataLayerSource.js";import{loadStyleRenderer as De}from"../renderers/support/styleUtils.js";import Ce from"../rest/support/AttachmentQuery.js";import Me from"../rest/support/FeatureSet.js";import Le from"../rest/support/Query.js";import Re from"../rest/support/RelationshipQuery.js";import Ae from"../rest/support/TopFeaturesQuery.js";import{createPopupTemplate as Oe}from"../support/popupUtils.js";import{opacityToTransparency as Pe}from"../webdoc/support/opacityUtils.js";const _e=new m({esriGeometryPoint:"point",esriGeometryMultipoint:"multipoint",esriGeometryPolyline:"polyline",esriGeometryPolygon:"polygon",esriGeometryMultiPatch:"multipatch"}),qe={name:"supportsName",size:"supportsSize",contentType:"supportsContentType",keywords:"supportsKeywords",exifInfo:"supportsExifInfo"},Qe="FeatureLayer",Ue=g.getLogger("esri.layers.FeatureLayer");function Ge(e,t){return new c("layer:unsupported",`Layer (${e.title}, ${e.id}) of type '${e.declaredClass}' ${t}`,{layer:e})}function Ve(e){return e&&e instanceof d}function ze(e,t,r){return!!(e&&e.hasOwnProperty(t)?e[t]:r)}function Be(e,t,r){return e&&e.hasOwnProperty(t)?e[t]:r}function ke(e){const t=e?.supportedSpatialAggregationStatistics?.map((e=>e.toLowerCase()));return{envelope:!!t?.includes("envelopeaggregate"),centroid:!!t?.includes("centroidaggregate"),convexHull:!!t?.includes("convexhullaggregate")}}const Ne=ge();function We(e,t,r){const i=!!r?.writeLayerSchema;return{enabled:i,ignoreOrigin:i}}let Je=class extends(B(V(N(H(Z(J(G(k(W(v(z(U(u(q)))))))))))))){constructor(...e){super(...e),this._handles=new y,this.capabilities=null,this.charts=null,this.copyright=null,this.datesInUnknownTimezone=!1,this.displayField=null,this.definitionExpression=null,this.dynamicDataSource=null,this.editFieldsInfo=null,this.editingInfo=null,this.elevationInfo=null,this.featureReduction=null,this.fields=null,this.fieldsIndex=null,this.floorInfo=null,this.formTemplate=null,this.fullExtent=null,this.gdbVersion=null,this.geometryFieldsInfo=null,this.geometryType=null,this.hasM=void 0,this.hasZ=void 0,this.heightModelInfo=null,this.historicMoment=null,this.infoFor3D=null,this.isTable=!1,this.labelsVisible=!0,this.labelingInfo=null,this.layerId=void 0,this.legendEnabled=!0,this.minScale=0,this.maxScale=0,this.globalIdField=null,this.objectIdField=null,this.outFields=null,this.path=null,this.popupEnabled=!0,this.popupTemplate=null,this.relationships=null,this.sourceJSON=null,this.returnM=void 0,this.returnZ=void 0,this.screenSizePerspectiveEnabled=!0,this.serviceDefinitionExpression=null,this.spatialReference=_.WGS84,this.subtypeCode=null,this.templates=null,this.timeInfo=null,this.title=null,this.sublayerTitleMode="item-title",this.trackIdField=null,this.type="feature",this.typeIdField=null,this.types=null,this.indexes=new(d.ofType(ye)),this.userIsAdmin=!1,this.version=void 0,this.visible=!0}destroy(){this.source?.destroy(),this._handles=b(this._handles)}normalizeCtorArgs(e,t){return"string"==typeof e?{url:e,...t}:e}load(e){const t=w(e)?e.signal:null;if(this.portalItem&&this.portalItem.loaded&&this.source)return void this.addResolvingPromise(this.createGraphicsSource(t).then((e=>this._initLayerProperties(e))));const r=this.loadFromPortal({supportedTypes:["Feature Service","Feature Collection"]},e).catch(I).then((async()=>{if(this.url&&null==this.layerId&&/FeatureServer|MapServer\/*$/i.test(this.url)){const e=await this._fetchFirstLayerId(t);null!=e&&(this.layerId=e)}if(!this.url&&!this._hasMemorySource())throw new c("feature-layer:missing-url-or-source","Feature layer must be created with either a url or a source");return this._initLayerProperties(await this.createGraphicsSource(t))})).then((()=>this.finishLoadEditablePortalLayer(e)));return this.addResolvingPromise(r),Promise.resolve(this)}readCapabilities(e,t){return t=t.layerDefinition||t,{attachment:this._readAttachmentCapabilities(t.attachmentProperties),data:this._readDataCapabilities(t),metadata:this._readMetadataCapabilities(t),operations:this._readOperationsCapabilities(t.capabilities||e,t),query:this._readQueryCapabilities(t),queryRelated:this._readQueryRelatedCapabilities(t),editing:this._readEditingCapabilities(t)}}get createQueryVersion(){return this.commitProperty("definitionExpression"),this.commitProperty("dynamicDataSource"),this.commitProperty("timeExtent"),this.commitProperty("timeOffset"),this.commitProperty("geometryType"),this.commitProperty("gdbVersion"),this.commitProperty("historicMoment"),this.commitProperty("returnZ"),this.commitProperty("capabilities"),this.commitProperty("returnM"),(this._get("createQueryVersion")||0)+1}get editingEnabled(){return!(this.loaded&&!this.capabilities.operations.supportsEditing)&&(this._isOverridden("editingEnabled")?this._get("editingEnabled"):this._hasMemorySource()||this.userHasEditingPrivileges)}set editingEnabled(e){null!=e?this._override("editingEnabled",e):this._clearOverride("editingEnabled")}readEditingEnabled(e,t){return this._readEditingEnabled(t,!1)}readEditingEnabledFromWebMap(e,t,r){return this._readEditingEnabled(t,!0,r)}writeEditingEnabled(e,t){this._writeEditingEnabled(e,t,!1)}writeEditingEnabledToWebMap(e,t,r,i){this._writeEditingEnabled(e,t,!0,i)}readEditingInfo(e,t){const{editingInfo:r}=t;return r?{lastEditDate:null!=r.lastEditDate?new Date(r.lastEditDate):null}:null}readIsTable(e,t){return"Table"===(t=t&&t.layerDefinition||t).type||!t.geometryType}writeIsTable(e,t,r,i){i?.writeLayerSchema&&S(r,e?"Table":"Feature Layer",t)}readMinScale(e,t){return t.effectiveMinScale||e||0}readMaxScale(e,t){return t.effectiveMaxScale||e||0}readGlobalIdFieldFromService(e,t){if((t=t.layerDefinition||t).globalIdField)return t.globalIdField;if(t.fields)for(const r of t.fields)if("esriFieldTypeGlobalID"===r.type)return r.name}readObjectIdFieldFromService(e,t){if((t=t.layerDefinition||t).objectIdField)return t.objectIdField;if(t.fields)for(const r of t.fields)if("esriFieldTypeOID"===r.type)return r.name}get parsedUrl(){const e=this.url?E(this.url):null;return null!=e&&(null!=this.dynamicDataSource?e.path=T(e.path,"dynamicLayer"):null!=this.layerId&&(e.path=T(e.path,this.layerId.toString()))),e}get defaultPopupTemplate(){return this.createPopupTemplate()}set renderer(e){be(e,this.fieldsIndex),this._set("renderer",e)}readRenderer(e,t,s){const a=(t=t.layerDefinition||t).drawingInfo&&t.drawingInfo.renderer||void 0;if(a){const e=o(a,t,s)||void 0;return e||Ue.error("Failed to create renderer",{rendererDefinition:t.drawingInfo.renderer,layer:this,context:s}),e}if(t.defaultSymbol)return t.types&&t.types.length?new i({defaultSymbol:Ze(t.defaultSymbol,t,s),field:t.typeIdField,uniqueValueInfos:t.types.map((e=>({id:e.id,symbol:Ze(e.symbol,e,s)})))}):new r({symbol:Ze(t.defaultSymbol,t,s)})}set source(e){const t=this._get("source");t!==e&&(Ve(t)&&this._resetMemorySource(t),Ve(e)&&this._initMemorySource(e),this._set("source",e))}castSource(e){return e?Array.isArray(e)||e instanceof d?new Q({layer:this,items:e}):e:null}readSource(e,t){const r=Me.fromJSON(t.featureSet);return new Q({layer:this,items:r&&r.features||[]})}readServiceDefinitionExpression(e,t){return t.definitionQuery||t.definitionExpression}readTemplates(e,t){const r=t.editFieldsInfo,i=r&&r.creatorField,o=r&&r.editorField;return e=e&&e.map((e=>me.fromJSON(e))),this._fixTemplates(e,i),this._fixTemplates(e,o),e}readTitle(e,t){const r=t.layerDefinition&&t.layerDefinition.name||t.name,i=t.title||t.layerDefinition&&t.layerDefinition.title;if(r){const e=this.portalItem&&this.portalItem.title;if("item-title"===this.sublayerTitleMode)return this.url?$(this.url,r):r;let t=r;if(!t&&this.url){const e=K(this.url);w(e)&&(t=e.title)}if(!t)return;return"item-title-and-service-name"===this.sublayerTitleMode&&e&&e!==t&&(t=e+" - "+t),X(t)}if("item-title"===this.sublayerTitleMode&&i)return i}readTitleFromWebMap(e,t){return t.title||t.layerDefinition&&t.layerDefinition.name}readTypeIdField(e,t){let r=(t=t.layerDefinition||t).typeIdField;if(r&&t.fields){r=r.toLowerCase();const e=t.fields.find((e=>e.name.toLowerCase()===r));e&&(r=e.name)}return r}readTypes(e,t){e=(t=t.layerDefinition||t).types;const r=t.editFieldsInfo,i=r&&r.creatorField,o=r&&r.editorField;return e&&e.map((e=>(e=fe.fromJSON(e),this._fixTemplates(e.templates,i),this._fixTemplates(e.templates,o),e)))}set url(e){const t=Y({layer:this,url:e,nonStandardUrlAllowed:!0,logger:Ue});this._set("url",t.url),null!=t.layerId&&this._set("layerId",t.layerId)}writeUrl(e,t,r,i){ee(this,e,null,t,i)}readVersion(e,t){return t.currentVersion?t.currentVersion:t.hasOwnProperty("capabilities")||t.hasOwnProperty("drawingInfo")||t.hasOwnProperty("hasAttachments")||t.hasOwnProperty("htmlPopupType")||t.hasOwnProperty("relationships")||t.hasOwnProperty("timeInfo")||t.hasOwnProperty("typeIdField")||t.hasOwnProperty("types")?10:9.3}readVisible(e,t){return t.layerDefinition&&null!=t.layerDefinition.defaultVisibility?!!t.layerDefinition.defaultVisibility:null!=t.visibility?!!t.visibility:void 0}addAttachment(e,t){return this.load().then((()=>this._checkAttachmentSupport(e))).then((()=>{if(!("addAttachment"in this.source))throw new c(Qe,"Layer source does not support addAttachment capability");return this.source.addAttachment(e,t)}))}updateAttachment(e,t,r){return this.load().then((()=>this._checkAttachmentSupport(e))).then((()=>{if(!("updateAttachment"in this.source))throw new c(Qe,"Layer source does not support updateAttachment capability");return this.source.updateAttachment(e,t,r)}))}async applyEdits(e,t){const r=await import("./graphics/editingSupport.js");return await this.load(),r.applyEdits(this,this.source,e,t)}on(e,t){return super.on(e,t)}createPopupTemplate(e){return Oe(this,e)}async createGraphicsSource(e){if(this._hasMemorySource())return this.source.load({signal:e});const{default:t}=await F(import("./graphics/sources/FeatureLayerSource.js"),e);return new t({layer:this}).load({signal:e})}createQuery(){const e=new Le,t=this.get("capabilities.data"),r=this.get("capabilities.query");e.dynamicDataSource=this.dynamicDataSource,e.historicMoment=this.historicMoment,e.gdbVersion=this.gdbVersion,e.returnGeometry=!0,r&&(e.compactGeometryEnabled=r.supportsCompactGeometry,e.defaultSpatialReferenceEnabled=r.supportsDefaultSpatialReference),t&&(t.supportsZ&&null!=this.returnZ&&(e.returnZ=this.returnZ),t.supportsM&&null!=this.returnM&&(e.returnM=this.returnM)),e.outFields=["*"],e.where=this.definitionExpression||"1=1";const{timeOffset:i,timeExtent:o}=this;return e.timeExtent=null!=i&&null!=o?o.offset(-i.value,i.unit):o||null,e.multipatchOption="multipatch"===this.geometryType?"xyFootprint":null,e}deleteAttachments(e,t){return this.load().then((()=>this._checkAttachmentSupport(e))).then((()=>{if(!("deleteAttachments"in this.source))throw new c(Qe,"Layer source does not support deleteAttachments capability");return this.source.deleteAttachments(e,t)}))}fetchRecomputedExtents(e){return this.load({signal:e?.signal}).then((()=>{if(this.source.fetchRecomputedExtents)return this.source.fetchRecomputedExtents(e);throw new c(Qe,"Layer source does not support fetchUpdates capability")}))}getFeatureType(e){const{typeIdField:t,types:r}=this;if(!t||!e)return null;const i=e.attributes?e.attributes[t]:void 0;if(null==i)return null;let o=null;return r.some((e=>{const{id:t}=e;return null!=t&&(t.toString()===i.toString()&&(o=e),!!o)})),o}getFieldDomain(e,t){const r=t&&t.feature,i=this.getFeatureType(r);if(i){const t=i.domains&&i.domains[e];if(t&&"inherited"!==t.type)return t}return this._getLayerDomain(e)}getField(e){return this.fieldsIndex.get(e)}queryAttachments(e,t){return e=Ce.from(e),this.load().then((()=>{if(!this.get("capabilities.data.supportsAttachment"))throw new c(Qe,"this layer doesn't support attachments");const{attachmentTypes:t,objectIds:r,globalIds:i,num:o,size:s,start:a,where:n}=e;if(!this.get("capabilities.operations.supportsQueryAttachments")){const p=r&&r.length>1,l=t&&t.length,u=i&&i.length,d=s&&s.length;if(p||l||u||d||o||a||n)throw new c(Qe,"when 'supportsQueryAttachments' is false, only objectIds of length 1 are supported",e)}if(!(r&&r.length||n))throw new c(Qe,"'objectIds' or 'where' are required to perform attachment query",e);if(!("queryAttachments"in this.source))throw new c(Qe,"Layer source does not support queryAttachments capability",e);return this.source.queryAttachments(e)}))}queryFeatures(e,t){return this.load().then((()=>this.source.queryFeatures(Le.from(e)||this.createQuery(),t))).then((e=>{if(e?.features)for(const t of e.features)t.layer=t.sourceLayer=this;return e}))}queryObjectIds(e,t){return this.load().then((()=>{if(this.source.queryObjectIds)return this.source.queryObjectIds(Le.from(e)||this.createQuery(),t);throw new c(Qe,"Layer source does not support queryObjectIds capability")}))}queryFeatureCount(e,t){return this.load().then((()=>{if(this.source.queryFeatureCount)return this.source.queryFeatureCount(Le.from(e)||this.createQuery(),t);throw new c(Qe,"Layer source does not support queryFeatureCount capability")}))}queryExtent(e,t){return this.load().then((()=>{if(this.source.queryExtent)return this.source.queryExtent(Le.from(e)||this.createQuery(),t);throw new c(Qe,"Layer source does not support queryExtent capability")}))}queryRelatedFeatures(e,t){return this.load().then((()=>{if("queryRelatedFeatures"in this.source)return this.source.queryRelatedFeatures(Re.from(e),t);throw new c(Qe,"Layer source does not support queryRelatedFeatures capability")}))}queryRelatedFeaturesCount(e,t){return this.load().then((()=>{if("queryRelatedFeaturesCount"in this.source)return this.source.queryRelatedFeaturesCount(Re.from(e),t);throw new c(Qe,"Layer source does not support queryRelatedFeaturesCount capability")}))}queryTopFeatures(e,t){return this.load().then((()=>{if("queryTopFeatures"in this.source&&this.get("capabilities.query.supportsTopFeaturesQuery"))return this.source.queryTopFeatures(Ae.from(e),t).then((e=>{if(e?.features)for(const t of e.features)t.layer=t.sourceLayer=this;return e}));throw new c(Qe,"Layer source does not support queryTopFeatures capability")}))}queryTopObjectIds(e,t){return this.load().then((()=>{if("queryTopObjectIds"in this.source&&this.get("capabilities.query.supportsTopFeaturesQuery"))return this.source.queryTopObjectIds(Ae.from(e),t);throw new c(Qe,"Layer source does not support queryTopObjectIds capability")}))}queryTopFeaturesExtent(e,t){return this.load().then((()=>{if("queryTopExtents"in this.source&&this.get("capabilities.query.supportsTopFeaturesQuery"))return this.source.queryTopExtents(Ae.from(e),t);throw new c(Qe,"Layer source does not support queryTopExtents capability")}))}queryTopFeatureCount(e,t){return this.load().then((()=>{if("queryTopCount"in this.source&&this.get("capabilities.query.supportsTopFeaturesQuery"))return this.source.queryTopCount(Ae.from(e),t);throw new c(Qe,"Layer source does not support queryFeatureCount capability")}))}read(e,t){const r=e.featureCollection;if(r){const e=r.layers;e&&1===e.length&&(super.read(e[0],t),null!=r.showLegend&&super.read({showLegend:r.showLegend},t))}super.read(e,t),t&&"service"===t.origin&&this.revert(["objectIdField","fields","timeInfo","spatialReference"],"service")}write(e,t){t={...t,writeLayerSchema:t?.writeLayerSchema??this._hasMemorySource()};const{origin:r,layerContainerType:i,messages:o}=t;if(this.dynamicDataSource)return o?.push(Ge(this,"using a dynamic data source cannot be written to web scenes, web maps and feature service items")),null;if(this.isTable){if("web-scene"===r||"web-map"===r&&"tables"!==i)return o?.push(Ge(this,"using a table source cannot be written to web scenes and web maps")),null;if(this._hasMemorySource())return o?.push(Ge(this,"using an in-memory table source cannot be written to web scenes and web maps")),null}else if(this.loaded&&"web-map"===r&&"tables"===i)return o?.push(Ge(this,"using a non-table source cannot be written to tables in web maps")),null;return super.write(e,t)}clone(){if(this._hasMemorySource())throw new c(Qe,`FeatureLayer (title: ${this.title}, id: ${this.id}) created using in-memory source cannot be cloned`);return super.clone()}serviceSupportsSpatialReference(e){return!!this.loaded&&("memory"===this.source.type||Te(this,e))}async save(e){return(await import("./save/featureLayerUtils.js")).save(this,e)}async saveAs(e,t){return(await import("./save/featureLayerUtils.js")).saveAs(this,e,t)}_readEditingEnabled(e,t,r){let i=e.layerDefinition?.capabilities;return i?this._hasEditingCapability(i):(i=e.capabilities,t&&"web-map"===r?.origin&&!this._hasMemorySource()&&i?this._hasEditingCapability(i):void 0)}_hasEditingCapability(e){return e.toLowerCase().split(",").map((e=>e.trim())).includes("editing")}_writeEditingEnabled(e,t,r,i){if(!e){const e=this.capabilities?.operations?.supportsSync?"Query,Sync":"Query";S("layerDefinition.capabilities",e,t),r&&!i?.writeLayerSchema&&(t.capabilities=e)}}_checkAttachmentSupport(e){const{attributes:t}=e,{objectIdField:r}=this;return this.get("capabilities.data.supportsAttachment")?e?t?t[r]?void 0:Promise.reject(new c(Qe,`feature is missing the identifying attribute ${r}`)):Promise.reject(new c(Qe,"'attributes' are required on a feature to query attachments")):Promise.reject(new c(Qe,"A feature is required to add/delete/update attachments")):Promise.reject(new c(Qe,"this layer doesn't support attachments"))}_getLayerDomain(e){const t=this.fieldsIndex.get(e);return t?t.domain:null}_fetchFirstLayerId(e){return n(this.url,{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e}).then((e=>{const t=e.data;if(t)return Array.isArray(t.layers)&&t.layers.length>0?t.layers[0].id:Array.isArray(t.tables)&&t.tables.length>0?t.tables[0].id:void 0}))}async _initLayerProperties(e){return this._set("source",e),e.sourceJSON&&(this.sourceJSON=e.sourceJSON,this.read(e.sourceJSON,{origin:"service",url:this.parsedUrl})),this._verifySource(),this._verifyFields(),be(this.renderer,this.fieldsIndex),we(this.timeInfo,this.fieldsIndex),De(this,{origin:"service"})}async hasDataChanged(){if(this.source?.refresh)try{const{dataChanged:e,updates:t}=await(this.source?.refresh());if(w(t)&&(this.sourceJSON={...this.sourceJSON,...t},this.read(t,{origin:"service",url:this.parsedUrl})),e)return!0}catch{}if(this.definitionExpression)try{return(await j(this.definitionExpression,this.fieldsIndex)).hasDateFunctions}catch{}return!1}_verifyFields(){const e=this.parsedUrl&&this.parsedUrl.path||"undefined";this.objectIdField||console.log("FeatureLayer: 'objectIdField' property is not defined (url: "+e+")"),this.isTable||this._hasMemorySource()||-1!==e.search(/\/FeatureServer\//i)||this.fields?.some((e=>"geometry"===e.type))||console.log("FeatureLayer: unable to find field of type 'geometry' in the layer 'fields' list. If you are using a map service layer, features will not have geometry (url: "+e+")")}_fixTemplates(e,t){e&&e.forEach((e=>{const r=e.prototype&&e.prototype.attributes;r&&t&&delete r[t]}))}_verifySource(){if(this._hasMemorySource()){if(this.url)throw new c("feature-layer:mixed-source-and-url","FeatureLayer cannot be created with both an in-memory source and a url")}else if(!this.url)throw new c("feature-layer:source-or-url-required","FeatureLayer requires either a url, a valid portal item or a source")}_initMemorySource(e){e.forEach((e=>{e.layer=this,e.sourceLayer=this})),this._handles.add([e.on("after-add",(e=>{e.item.layer=this,e.item.sourceLayer=this})),e.on("after-remove",(e=>{e.item.layer=null,e.item.sourceLayer=null}))],"fl-source")}_resetMemorySource(e){e.forEach((e=>{e.layer=null,e.sourceLayer=null})),this._handles.remove("fl-source")}_hasMemorySource(){return!(this.url||!this.source)}_readAttachmentCapabilities(e){const t={supportsName:!1,supportsSize:!1,supportsContentType:!1,supportsKeywords:!1,supportsExifInfo:!1};return e&&Array.isArray(e)&&e.forEach((e=>{const r=qe[e.name];r&&(t[r]=!!e.isEnabled)})),t}_readDataCapabilities(e){return{isVersioned:ze(e,"isDataVersioned",!1),supportsAttachment:ze(e,"hasAttachments",!1),supportsM:ze(e,"hasM",!1),supportsZ:ze(e,"hasZ",!1)}}_readMetadataCapabilities(e){return{supportsAdvancedFieldProperties:ze(e,"supportsFieldDescriptionProperty",!1)}}_readOperationsCapabilities(e,t){const r=e?e.toLowerCase().split(",").map((e=>e.trim())):[],i=this.url?K(this.url):null,o=r.includes(w(i)&&"MapServer"===i.serverType?"data":"query"),s=r.includes("editing")&&!t.datesInUnknownTimezone;let a=s&&r.includes("create"),n=s&&r.includes("delete"),p=s&&r.includes("update");const l=r.includes("changetracking");return s&&!(a||n||p)&&(a=n=p=!0),{supportsCalculate:ze(t,"supportsCalculate",!1),supportsTruncate:ze(t,"supportsTruncate",!1),supportsValidateSql:ze(t,"supportsValidateSql",!1),supportsAdd:a,supportsDelete:n,supportsEditing:s,supportsChangeTracking:l,supportsQuery:o,supportsQueryAttachments:ze(t.advancedQueryCapabilities,"supportsQueryAttachments",!1),supportsResizeAttachments:ze(t,"supportsAttachmentsResizing",!1),supportsSync:r.includes("sync"),supportsUpdate:p,supportsExceedsLimitStatistics:ze(t,"supportsExceedsLimitStatistics",!1)}}_readQueryCapabilities(e){const t=e.advancedQueryCapabilities,r=e.ownershipBasedAccessControlForFeatures,i=e.archivingInfo,o=this.url?.includes("MapServer"),s=!h("mapserver-pbf-enabled")&&o&&this.version<10.81,a=te(this.url),n=(e.supportedQueryFormats||"").split(",").reduce(((e,t)=>{const r=t.toLowerCase().trim();return r&&e.add(r),e}),new Set);return{supportsStatistics:ze(t,"supportsStatistics",e.supportsStatistics),supportsPercentileStatistics:ze(t,"supportsPercentileStatistics",!1),supportsSpatialAggregationStatistics:ze(t,"supportsSpatialAggregationStatistics",!1),supportedSpatialAggregationStatistics:ke(t),supportsCentroid:ze(t,"supportsReturningGeometryCentroid",!1),supportsDistance:ze(t,"supportsQueryWithDistance",!1),supportsDistinct:ze(t,"supportsDistinct",e.supportsAdvancedQueries),supportsExtent:ze(t,"supportsReturningQueryExtent",!1),supportsGeometryProperties:ze(t,"supportsReturningGeometryProperties",!1),supportsHavingClause:ze(t,"supportsHavingClause",!1),supportsOrderBy:ze(t,"supportsOrderBy",e.supportsAdvancedQueries),supportsPagination:ze(t,"supportsPagination",!1),supportsQuantization:ze(e,"supportsCoordinatesQuantization",!1),supportsQuantizationEditMode:ze(e,"supportsQuantizationEditMode",!1),supportsQueryGeometry:ze(e,"supportsReturningQueryGeometry",!1),supportsResultType:ze(t,"supportsQueryWithResultType",!1),supportsMaxRecordCountFactor:ze(t,"supportsMaxRecordCountFactor",!1),supportsSqlExpression:ze(t,"supportsSqlExpression",!1),supportsStandardizedQueriesOnly:ze(e,"useStandardizedQueries",!1),supportsTopFeaturesQuery:ze(t,"supportsTopFeaturesQuery",!1),supportsQueryByOthers:ze(r,"allowOthersToQuery",!0),supportsHistoricMoment:ze(i,"supportsQueryWithHistoricMoment",!1),supportsFormatPBF:!s&&n.has("pbf"),supportsDisjointSpatialRelationship:ze(t,"supportsDisjointSpatialRel",!1),supportsCacheHint:ze(t,"supportsQueryWithCacheHint",!1),supportsDefaultSpatialReference:ze(t,"supportsDefaultSR",!1),supportsCompactGeometry:a,maxRecordCountFactor:Be(e,"maxRecordCountFactor",void 0),maxRecordCount:Be(e,"maxRecordCount",void 0),standardMaxRecordCount:Be(e,"standardMaxRecordCount",void 0),tileMaxRecordCount:Be(e,"tileMaxRecordCount",void 0)}}_readQueryRelatedCapabilities(e){const t=e.advancedQueryCapabilities,r=ze(t,"supportsAdvancedQueryRelated",!1);return{supportsPagination:ze(t,"supportsQueryRelatedPagination",!1),supportsCount:r,supportsOrderBy:r}}_readEditingCapabilities(e){const t=e.ownershipBasedAccessControlForFeatures;return{supportsGeometryUpdate:ze(e,"allowGeometryUpdates",!0),supportsGlobalId:ze(e,"supportsApplyEditsWithGlobalIds",!1),supportsReturnServiceEditsInSourceSpatialReference:ze(e,"supportsReturnServiceEditsInSourceSR",!1),supportsRollbackOnFailure:ze(e,"supportsRollbackOnFailureParameter",!1),supportsUpdateWithoutM:ze(e,"allowUpdateWithoutMValues",!1),supportsUploadWithItemId:ze(e,"supportsAttachmentsByUploadId",!1),supportsDeleteByAnonymous:ze(t,"allowAnonymousToDelete",!0),supportsDeleteByOthers:ze(t,"allowOthersToDelete",!0),supportsUpdateByAnonymous:ze(t,"allowAnonymousToUpdate",!0),supportsUpdateByOthers:ze(t,"allowOthersToUpdate",!0)}}};e([x({readOnly:!0,json:{read:!1}})],Je.prototype,"capabilities",void 0),e([C("service","capabilities",["advancedQueryCapabilities","allowGeometryUpdates","allowUpdateWithoutMValues","archivingInfo","capabilities","datesInUnknownTimezone","hasAttachments","hasM","hasZ","maxRecordCount","maxRecordCountFactor","ownershipBasedAccessControlForFeatures","standardMaxRecordCount","supportedQueryFormats","supportsAdvancedQueries","supportsApplyEditsWithGlobalIds","supportsAttachmentsByUploadId","supportsAttachmentsResizing","supportsCalculate","supportsCoordinatesQuantization","supportsExceedsLimitStatistics","supportsFieldDescriptionProperty","supportsQuantizationEditMode","supportsRollbackOnFailureParameter","supportsStatistics","supportsTruncate","supportsValidateSql","tileMaxRecordCount","useStandardizedQueries"])],Je.prototype,"readCapabilities",null),e([x({json:{origins:{"portal-item":{write:!0},"web-map":{write:!0}}}})],Je.prototype,"charts",void 0),e([x({readOnly:!0})],Je.prototype,"createQueryVersion",null),e([x({type:String,json:{read:{source:"layerDefinition.copyrightText"},origins:{service:{read:{source:"copyrightText"}}}}})],Je.prototype,"copyright",void 0),e([x({type:Boolean})],Je.prototype,"datesInUnknownTimezone",void 0),e([x({type:String,json:{read:{source:"layerDefinition.displayField"},origins:{service:{read:{source:"displayField"}}}}})],Je.prototype,"displayField",void 0),e([x({type:String,json:{origins:{service:{read:!1,write:!1}},name:"layerDefinition.definitionExpression",write:{enabled:!0,allowNull:!0}}})],Je.prototype,"definitionExpression",void 0),e([x({types:p,readOnly:!0})],Je.prototype,"defaultSymbol",void 0),e([x({type:xe})],Je.prototype,"dynamicDataSource",void 0),e([x({readOnly:!0})],Je.prototype,"editFieldsInfo",void 0),e([x({type:Boolean})],Je.prototype,"editingEnabled",null),e([C(["portal-item","web-scene"],"editingEnabled",["layerDefinition.capabilities"])],Je.prototype,"readEditingEnabled",null),e([C("web-map","editingEnabled",["capabilities","layerDefinition.capabilities"])],Je.prototype,"readEditingEnabledFromWebMap",null),e([L(["portal-item","web-scene"],"editingEnabled",{"layerDefinition.capabilities":{type:String}})],Je.prototype,"writeEditingEnabled",null),e([L("web-map","editingEnabled",{capabilities:{type:String},"layerDefinition.capabilities":{type:String}})],Je.prototype,"writeEditingEnabledToWebMap",null),e([x({readOnly:!0})],Je.prototype,"editingInfo",void 0),e([C("editingInfo")],Je.prototype,"readEditingInfo",null),e([x((()=>{const e=f(le),t=e.json.origins;return t["web-map"]={read:!1,write:!1},t["portal-item"]={read:!1,write:!1},e})())],Je.prototype,"elevationInfo",void 0),e([x(he)],Je.prototype,"featureReduction",void 0),e([x({...Ne.fields,json:{read:{source:"layerDefinition.fields"},origins:{service:{name:"fields"},"web-map":{write:{target:"layerDefinition.fields",overridePolicy:We}}}}})],Je.prototype,"fields",void 0),e([x(Ne.fieldsIndex)],Je.prototype,"fieldsIndex",void 0),e([x({type:Fe,json:{read:{source:"layerDefinition.floorInfo"},write:{target:"layerDefinition.floorInfo"}}})],Je.prototype,"floorInfo",void 0),e([x({type:A,json:{name:"formInfo",write:!0,origins:{"web-scene":{read:!1,write:!1}}}})],Je.prototype,"formTemplate",void 0),e([x({type:O,json:{origins:{service:{read:{source:"extent"}}},read:{source:"layerDefinition.extent"}}})],Je.prototype,"fullExtent",void 0),e([x()],Je.prototype,"gdbVersion",void 0),e([x({readOnly:!0,type:ve,json:{read:{source:"geometryProperties"}}})],Je.prototype,"geometryFieldsInfo",void 0),e([x({type:["point","polygon","polyline","multipoint","multipatch","mesh"],json:{origins:{service:{read:_e.read},"web-map":{write:{target:"layerDefinition.geometryType",overridePolicy:We,writer(e,t,r){const i=e?_e.toJSON(e):null;i&&S(r,i,t)}}}},read:{source:"layerDefinition.geometryType",reader:_e.read}}})],Je.prototype,"geometryType",void 0),e([x({type:Boolean,json:{origins:{service:{read:!0}},read:{source:"layerDefinition.hasM"}}})],Je.prototype,"hasM",void 0),e([x({type:Boolean,json:{origins:{service:{read:!0}},read:{source:"layerDefinition.hasZ"}}})],Je.prototype,"hasZ",void 0),e([x({readOnly:!0,type:P})],Je.prototype,"heightModelInfo",void 0),e([x({type:Date})],Je.prototype,"historicMoment",void 0),e([x(re)],Je.prototype,"id",void 0),e([x({readOnly:!0,json:{origins:{service:{read:!0}},read:!1}})],Je.prototype,"infoFor3D",void 0),e([x({readOnly:!0,json:{origins:{"web-map":{write:{target:"layerDefinition.type"}}}}})],Je.prototype,"isTable",void 0),e([C("service","isTable",["type","geometryType"]),C("isTable",["layerDefinition.type","layerDefinition.geometryType"])],Je.prototype,"readIsTable",null),e([L("web-map","isTable")],Je.prototype,"writeIsTable",null),e([x(ie)],Je.prototype,"labelsVisible",void 0),e([x({type:[Se],json:{origins:{service:{read:{source:"drawingInfo.labelingInfo",reader:Ie},write:{target:"drawingInfo.labelingInfo",enabled:!1}}},read:{source:"layerDefinition.drawingInfo.labelingInfo",reader:Ie},write:{target:"layerDefinition.drawingInfo.labelingInfo"}}})],Je.prototype,"labelingInfo",void 0),e([x((()=>{const e=f(ue);return e.json.origins["portal-item"]={write:{target:"layerDefinition.drawingInfo.transparency",writer(e,t,r){S(r,Pe(e),t)}}},e})())],Je.prototype,"opacity",void 0),e([x({type:Number,json:{origins:{service:{read:{source:"id"}},"portal-item":{read:!1,write:{target:"id"}}},read:!1}})],Je.prototype,"layerId",void 0),e([x(oe)],Je.prototype,"legendEnabled",void 0),e([x({type:["show","hide"],json:(()=>{const e=f(de.json);return e.origins["portal-item"]={read:!1,write:!1},e})()})],Je.prototype,"listMode",void 0),e([x(se)],Je.prototype,"minScale",void 0),e([C("service","minScale",["minScale","effectiveMinScale"])],Je.prototype,"readMinScale",null),e([x(ae)],Je.prototype,"maxScale",void 0),e([C("service","maxScale",["maxScale","effectiveMaxScale"])],Je.prototype,"readMaxScale",null),e([x({type:String})],Je.prototype,"globalIdField",void 0),e([C("globalIdField",["layerDefinition.globalIdField","layerDefinition.fields"]),C("service","globalIdField",["globalIdField","fields"])],Je.prototype,"readGlobalIdFieldFromService",null),e([x({type:String,json:{origins:{"web-map":{write:{target:"layerDefinition.objectIdField",overridePolicy:We}}}}})],Je.prototype,"objectIdField",void 0),e([C("objectIdField",["layerDefinition.objectIdField","layerDefinition.fields"]),C("service","objectIdField",["objectIdField","fields"])],Je.prototype,"readObjectIdFieldFromService",null),e([x({value:"ArcGISFeatureLayer",type:["ArcGISFeatureLayer"]})],Je.prototype,"operationalLayerType",void 0),e([x(Ne.outFields)],Je.prototype,"outFields",void 0),e([x({readOnly:!0})],Je.prototype,"parsedUrl",null),e([x({type:String,json:{origins:{"web-scene":{read:!0,write:!0}},read:!1}})],Je.prototype,"path",void 0),e([x(ne)],Je.prototype,"popupEnabled",void 0),e([x({type:t,json:{name:"popupInfo",write:!0}})],Je.prototype,"popupTemplate",void 0),e([x({readOnly:!0})],Je.prototype,"defaultPopupTemplate",null),e([x({type:[je],readOnly:!0})],Je.prototype,"relationships",void 0),e([x({types:s,json:{origins:{service:{write:{target:"drawingInfo.renderer",enabled:!1}},"web-scene":{types:a,name:"layerDefinition.drawingInfo.renderer",write:{overridePolicy:(e,t,r)=>({ignoreOrigin:r?.writeLayerSchema})}}},write:{target:"layerDefinition.drawingInfo.renderer",overridePolicy:(e,t,r)=>({ignoreOrigin:r?.writeLayerSchema})}}})],Je.prototype,"renderer",null),e([C("service","renderer",["drawingInfo.renderer","defaultSymbol"]),C("renderer",["layerDefinition.drawingInfo.renderer","layerDefinition.defaultSymbol"])],Je.prototype,"readRenderer",null),e([x()],Je.prototype,"sourceJSON",void 0),e([x({type:Boolean})],Je.prototype,"returnM",void 0),e([x({type:Boolean})],Je.prototype,"returnZ",void 0),e([x((()=>{const e=f(ce);return e.json.origins["portal-item"]={read:!1,write:!1},e})())],Je.prototype,"screenSizePerspectiveEnabled",void 0),e([x({clonable:!1})],Je.prototype,"source",null),e([D("source")],Je.prototype,"castSource",null),e([C("portal-item","source",["featureSet"]),C("web-map","source",["featureSet"])],Je.prototype,"readSource",null),e([x({readOnly:!0})],Je.prototype,"serviceDefinitionExpression",void 0),e([C("service","serviceDefinitionExpression",["definitionQuery","definitionExpression"])],Je.prototype,"readServiceDefinitionExpression",null),e([x({type:_,json:{origins:{service:{read:{source:"extent.spatialReference"}}},read:{source:"layerDefinition.extent.spatialReference"}}})],Je.prototype,"spatialReference",void 0),e([x({type:Number})],Je.prototype,"subtypeCode",void 0),e([x({type:[me]})],Je.prototype,"templates",void 0),e([C("templates",["editFieldsInfo","creatorField","editorField","templates"])],Je.prototype,"readTemplates",null),e([x({type:Ee})],Je.prototype,"timeInfo",void 0),e([x()],Je.prototype,"title",void 0),e([C("service","title",["name"]),C("portal-item","title",["layerDefinition.title","layerDefinition.name","title"])],Je.prototype,"readTitle",null),e([C("web-map","title",["layerDefinition.name","title"])],Je.prototype,"readTitleFromWebMap",null),e([x({type:String})],Je.prototype,"sublayerTitleMode",void 0),e([x({type:String,json:{read:{source:"timeInfo.trackIdField"}}})],Je.prototype,"trackIdField",void 0),e([x({json:{read:!1}})],Je.prototype,"type",void 0),e([x({type:String})],Je.prototype,"typeIdField",void 0),e([C("service","typeIdField"),C("typeIdField",["layerDefinition.typeIdField"])],Je.prototype,"readTypeIdField",null),e([x({type:[fe]})],Je.prototype,"types",void 0),e([C("service","types",["types"]),C("types",["layerDefinition.types"])],Je.prototype,"readTypes",null),e([x({readOnly:!0,json:{write:!1}})],Je.prototype,"serverGens",void 0),e([x({type:d.ofType(ye),readOnly:!0})],Je.prototype,"indexes",void 0),e([x(pe)],Je.prototype,"url",null),e([L("url")],Je.prototype,"writeUrl",null),e([x({readOnly:!0})],Je.prototype,"userIsAdmin",void 0),e([x({json:{origins:{service:{read:!0}},read:!1}})],Je.prototype,"version",void 0),e([C("service","version",["currentVersion","capabilities","drawingInfo","hasAttachments","htmlPopupType","relationships","timeInfo","typeIdField","types"])],Je.prototype,"readVersion",null),e([x({type:Boolean,json:{origins:{"portal-item":{write:{target:"layerDefinition.defaultVisibility"}}}}})],Je.prototype,"visible",void 0),e([C("portal-item","visible",["visibility","layerDefinition.defaultVisibility"])],Je.prototype,"readVisible",null),Je=e([M("esri.layers.FeatureLayer")],Je);const Ze=R({types:l}),He=Je;export{He as default};
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import t from"../PopupTemplate.js";import"../renderers/ClassBreaksRenderer.js";import"../renderers/DictionaryRenderer.js";import"../renderers/DotDensityRenderer.js";import"../renderers/HeatmapRenderer.js";import"../renderers/PieChartRenderer.js";import"../renderers/Renderer.js";import r from"../renderers/SimpleRenderer.js";import i from"../renderers/UniqueValueRenderer.js";import{read as o}from"../renderers/support/jsonUtils.js";import{rendererTypes as s,webSceneRendererTypes as a}from"../renderers/support/types.js";import n from"../request.js";import{symbolTypes as p,symbolTypesRenderer as l}from"../symbols.js";import{ClonableMixin as u}from"../core/Clonable.js";import d from"../core/Collection.js";import c from"../core/Error.js";import y from"../core/Handles.js";import h from"../core/has.js";import{JSONMap as m}from"../core/jsonMap.js";import{clone as f}from"../core/lang.js";import g from"../core/Logger.js";import{destroyMaybe as b,isSome as w}from"../core/maybe.js";import{MultiOriginJSONMixin as v}from"../core/MultiOriginJSONSupport.js";import{setDeepValue as S}from"../core/object.js";import{throwIfAbortError as F,whenOrAbort as I}from"../core/promiseUtils.js";import{parseWhereClause as j}from"../core/sql.js";import{urlToObject as T,join as E}from"../core/urlUtils.js";import{property as x}from"../core/accessorSupport/decorators/property.js";import{cast as D}from"../core/accessorSupport/decorators/cast.js";import{reader as C}from"../core/accessorSupport/decorators/reader.js";import{subclass as A}from"../core/accessorSupport/decorators/subclass.js";import{writer as M}from"../core/accessorSupport/decorators/writer.js";import{createTypeReader as L}from"../core/accessorSupport/extensions/serializableProperty/reader.js";import R from"../form/FormTemplate.js";import _ from"../geometry/Extent.js";import O from"../geometry/HeightModelInfo.js";import P from"../geometry/SpatialReference.js";import q from"./Layer.js";import{MemorySource as Q}from"./graphics/sources/MemorySource.js";import{APIKeyMixin as U}from"./mixins/APIKeyMixin.js";import{ArcGISService as G}from"./mixins/ArcGISService.js";import{BlendLayer as V}from"./mixins/BlendLayer.js";import{CustomParametersMixin as z}from"./mixins/CustomParametersMixin.js";import{FeatureEffectLayer as B}from"./mixins/FeatureEffectLayer.js";import{OperationalLayer as k}from"./mixins/OperationalLayer.js";import{OrderedLayer as N}from"./mixins/OrderedLayer.js";import{PortalLayer as W}from"./mixins/PortalLayer.js";import{RefreshableLayer as H}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as J}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as Z}from"./mixins/TemporalLayer.js";import{titleFromUrlAndName as $,parse as K,cleanTitle as X,sanitizeUrlWithLayerId as Y,writeUrlWithLayerId as ee,isHostedAgolService as te}from"./support/arcgisLayerUrl.js";import{id as re,labelsVisible as ie,legendEnabled as oe,minScale as se,maxScale as ae,popupEnabled as ne,url as pe,elevationInfo as le,opacityDrawingInfo as ue,listMode as de,screenSizePerspectiveEnabled as ce}from"./support/commonProperties.js";import{FeatureIndex as ye}from"./support/FeatureIndex.js";import{featureReductionProperty as he}from"./support/featureReductionUtils.js";import me from"./support/FeatureTemplate.js";import fe from"./support/FeatureType.js";import{defineFieldProperties as ge}from"./support/fieldProperties.js";import{fixRendererFields as be,fixTimeInfoFields as we}from"./support/fieldUtils.js";import ve from"./support/GeometryFieldsInfo.js";import Se from"./support/LabelClass.js";import{reader as Fe}from"./support/labelingInfo.js";import Ie from"./support/LayerFloorInfo.js";import je from"./support/Relationship.js";import Te from"./support/TimeInfo.js";import{serviceSupportsSpatialReference as Ee}from"./support/versionUtils.js";import{DataLayerSource as xe}from"./support/source/DataLayerSource.js";import{loadStyleRenderer as De}from"../renderers/support/styleUtils.js";import Ce from"../rest/support/AttachmentQuery.js";import Ae from"../rest/support/FeatureSet.js";import Me from"../rest/support/Query.js";import Le from"../rest/support/RelationshipQuery.js";import Re from"../rest/support/TopFeaturesQuery.js";import{createPopupTemplate as _e}from"../support/popupUtils.js";import{opacityToTransparency as Oe}from"../webdoc/support/opacityUtils.js";const Pe=new m({esriGeometryPoint:"point",esriGeometryMultipoint:"multipoint",esriGeometryPolyline:"polyline",esriGeometryPolygon:"polygon",esriGeometryMultiPatch:"multipatch"}),qe={name:"supportsName",size:"supportsSize",contentType:"supportsContentType",keywords:"supportsKeywords",exifInfo:"supportsExifInfo"},Qe="FeatureLayer",Ue=g.getLogger("esri.layers.FeatureLayer");function Ge(e,t){return new c("layer:unsupported",`Layer (${e.title}, ${e.id}) of type '${e.declaredClass}' ${t}`,{layer:e})}function Ve(e){return e&&e instanceof d}function ze(e,t,r){return!!(e&&e.hasOwnProperty(t)?e[t]:r)}function Be(e,t,r){return e&&e.hasOwnProperty(t)?e[t]:r}function ke(e){const t=e?.supportedSpatialAggregationStatistics?.map((e=>e.toLowerCase()));return{envelope:!!t?.includes("envelopeaggregate"),centroid:!!t?.includes("centroidaggregate"),convexHull:!!t?.includes("convexhullaggregate")}}function Ne(e,t){const r=e?.supportedOperationsWithCacheHint?.map((e=>e.toLowerCase()));return!!r?.includes(t.toLowerCase())}const We=ge();function He(e,t,r){const i=!!r?.writeLayerSchema;return{enabled:i,ignoreOrigin:i}}let Je=class extends(B(V(N(Z(J(H(G(k(W(v(z(U(u(q)))))))))))))){constructor(...e){super(...e),this._handles=new y,this.capabilities=null,this.charts=null,this.copyright=null,this.datesInUnknownTimezone=!1,this.displayField=null,this.definitionExpression=null,this.dynamicDataSource=null,this.editFieldsInfo=null,this.editingInfo=null,this.elevationInfo=null,this.featureReduction=null,this.fields=null,this.fieldsIndex=null,this.floorInfo=null,this.formTemplate=null,this.fullExtent=null,this.gdbVersion=null,this.geometryFieldsInfo=null,this.geometryType=null,this.hasM=void 0,this.hasZ=void 0,this.heightModelInfo=null,this.historicMoment=null,this.infoFor3D=null,this.isTable=!1,this.labelsVisible=!0,this.labelingInfo=null,this.layerId=void 0,this.legendEnabled=!0,this.minScale=0,this.maxScale=0,this.globalIdField=null,this.objectIdField=null,this.outFields=null,this.path=null,this.popupEnabled=!0,this.popupTemplate=null,this.relationships=null,this.sourceJSON=null,this.returnM=void 0,this.returnZ=void 0,this.screenSizePerspectiveEnabled=!0,this.serviceDefinitionExpression=null,this.spatialReference=P.WGS84,this.subtypeCode=null,this.templates=null,this.timeInfo=null,this.title=null,this.sublayerTitleMode="item-title",this.trackIdField=null,this.type="feature",this.typeIdField=null,this.types=null,this.indexes=new(d.ofType(ye)),this.userIsAdmin=!1,this.version=void 0,this.visible=!0}destroy(){this.source?.destroy(),this._handles=b(this._handles)}normalizeCtorArgs(e,t){return"string"==typeof e?{url:e,...t}:e}load(e){const t=w(e)?e.signal:null;if(this.portalItem&&this.portalItem.loaded&&this.source)return void this.addResolvingPromise(this.createGraphicsSource(t).then((e=>this._initLayerProperties(e))));const r=this.loadFromPortal({supportedTypes:["Feature Service","Feature Collection"]},e).catch(F).then((async()=>{if(this.url&&null==this.layerId&&/FeatureServer|MapServer\/*$/i.test(this.url)){const e=await this._fetchFirstLayerId(t);null!=e&&(this.layerId=e)}if(!this.url&&!this._hasMemorySource())throw new c("feature-layer:missing-url-or-source","Feature layer must be created with either a url or a source");return this._initLayerProperties(await this.createGraphicsSource(t))})).then((()=>this.finishLoadEditablePortalLayer(e)));return this.addResolvingPromise(r),Promise.resolve(this)}readCapabilities(e,t){return t=t.layerDefinition||t,{analytics:this._readAnalyticsCapabilities(t),attachment:this._readAttachmentCapabilities(t),data:this._readDataCapabilities(t),metadata:this._readMetadataCapabilities(t),operations:this._readOperationsCapabilities(t.capabilities||e,t),query:this._readQueryCapabilities(t),queryRelated:this._readQueryRelatedCapabilities(t),queryTopFeatures:this._readQueryTopFeaturesCapabilities(t),editing:this._readEditingCapabilities(t)}}get createQueryVersion(){return this.commitProperty("definitionExpression"),this.commitProperty("dynamicDataSource"),this.commitProperty("timeExtent"),this.commitProperty("timeOffset"),this.commitProperty("geometryType"),this.commitProperty("gdbVersion"),this.commitProperty("historicMoment"),this.commitProperty("returnZ"),this.commitProperty("capabilities"),this.commitProperty("returnM"),(this._get("createQueryVersion")||0)+1}get editingEnabled(){return!(this.loaded&&!this.capabilities.operations.supportsEditing)&&(this._isOverridden("editingEnabled")?this._get("editingEnabled"):this._hasMemorySource()||this.userHasEditingPrivileges)}set editingEnabled(e){null!=e?this._override("editingEnabled",e):this._clearOverride("editingEnabled")}readEditingEnabled(e,t){return this._readEditingEnabled(t,!1)}readEditingEnabledFromWebMap(e,t,r){return this._readEditingEnabled(t,!0,r)}writeEditingEnabled(e,t){this._writeEditingEnabled(e,t,!1)}writeEditingEnabledToWebMap(e,t,r,i){this._writeEditingEnabled(e,t,!0,i)}readEditingInfo(e,t){const{editingInfo:r}=t;return r?{lastEditDate:null!=r.lastEditDate?new Date(r.lastEditDate):null}:null}readIsTable(e,t){return"Table"===(t=t&&t.layerDefinition||t).type||!t.geometryType}writeIsTable(e,t,r,i){i?.writeLayerSchema&&S(r,e?"Table":"Feature Layer",t)}readMinScale(e,t){return t.effectiveMinScale||e||0}readMaxScale(e,t){return t.effectiveMaxScale||e||0}readGlobalIdFieldFromService(e,t){if((t=t.layerDefinition||t).globalIdField)return t.globalIdField;if(t.fields)for(const r of t.fields)if("esriFieldTypeGlobalID"===r.type)return r.name}readObjectIdFieldFromService(e,t){if((t=t.layerDefinition||t).objectIdField)return t.objectIdField;if(t.fields)for(const r of t.fields)if("esriFieldTypeOID"===r.type)return r.name}get parsedUrl(){const e=this.url?T(this.url):null;return null!=e&&(null!=this.dynamicDataSource?e.path=E(e.path,"dynamicLayer"):null!=this.layerId&&(e.path=E(e.path,this.layerId.toString()))),e}get defaultPopupTemplate(){return this.createPopupTemplate()}set renderer(e){be(e,this.fieldsIndex),this._set("renderer",e)}readRenderer(e,t,s){const a=(t=t.layerDefinition||t).drawingInfo&&t.drawingInfo.renderer||void 0;if(a){const e=o(a,t,s)||void 0;return e||Ue.error("Failed to create renderer",{rendererDefinition:t.drawingInfo.renderer,layer:this,context:s}),e}if(t.defaultSymbol)return t.types&&t.types.length?new i({defaultSymbol:Ze(t.defaultSymbol,t,s),field:t.typeIdField,uniqueValueInfos:t.types.map((e=>({id:e.id,symbol:Ze(e.symbol,e,s)})))}):new r({symbol:Ze(t.defaultSymbol,t,s)})}set source(e){const t=this._get("source");t!==e&&(Ve(t)&&this._resetMemorySource(t),Ve(e)&&this._initMemorySource(e),this._set("source",e))}castSource(e){return e?Array.isArray(e)||e instanceof d?new Q({layer:this,items:e}):e:null}readSource(e,t){const r=Ae.fromJSON(t.featureSet);return new Q({layer:this,items:r&&r.features||[]})}readServiceDefinitionExpression(e,t){return t.definitionQuery||t.definitionExpression}readTemplates(e,t){const r=t.editFieldsInfo,i=r&&r.creatorField,o=r&&r.editorField;return e=e&&e.map((e=>me.fromJSON(e))),this._fixTemplates(e,i),this._fixTemplates(e,o),e}readTitle(e,t){const r=t.layerDefinition&&t.layerDefinition.name||t.name,i=t.title||t.layerDefinition&&t.layerDefinition.title;if(r){const e=this.portalItem&&this.portalItem.title;if("item-title"===this.sublayerTitleMode)return this.url?$(this.url,r):r;let t=r;if(!t&&this.url){const e=K(this.url);w(e)&&(t=e.title)}if(!t)return;return"item-title-and-service-name"===this.sublayerTitleMode&&e&&e!==t&&(t=e+" - "+t),X(t)}if("item-title"===this.sublayerTitleMode&&i)return i}readTitleFromWebMap(e,t){return t.title||t.layerDefinition&&t.layerDefinition.name}readTypeIdField(e,t){let r=(t=t.layerDefinition||t).typeIdField;if(r&&t.fields){r=r.toLowerCase();const e=t.fields.find((e=>e.name.toLowerCase()===r));e&&(r=e.name)}return r}readTypes(e,t){e=(t=t.layerDefinition||t).types;const r=t.editFieldsInfo,i=r&&r.creatorField,o=r&&r.editorField;return e&&e.map((e=>(e=fe.fromJSON(e),this._fixTemplates(e.templates,i),this._fixTemplates(e.templates,o),e)))}set url(e){const t=Y({layer:this,url:e,nonStandardUrlAllowed:!0,logger:Ue});this._set("url",t.url),null!=t.layerId&&this._set("layerId",t.layerId)}writeUrl(e,t,r,i){ee(this,e,null,t,i)}readVersion(e,t){return t.currentVersion?t.currentVersion:t.hasOwnProperty("capabilities")||t.hasOwnProperty("drawingInfo")||t.hasOwnProperty("hasAttachments")||t.hasOwnProperty("htmlPopupType")||t.hasOwnProperty("relationships")||t.hasOwnProperty("timeInfo")||t.hasOwnProperty("typeIdField")||t.hasOwnProperty("types")?10:9.3}readVisible(e,t){return t.layerDefinition&&null!=t.layerDefinition.defaultVisibility?!!t.layerDefinition.defaultVisibility:null!=t.visibility?!!t.visibility:void 0}addAttachment(e,t){return this.load().then((()=>this._checkAttachmentSupport(e))).then((()=>{if(!("addAttachment"in this.source))throw new c(Qe,"Layer source does not support addAttachment capability");return this.source.addAttachment(e,t)}))}updateAttachment(e,t,r){return this.load().then((()=>this._checkAttachmentSupport(e))).then((()=>{if(!("updateAttachment"in this.source))throw new c(Qe,"Layer source does not support updateAttachment capability");return this.source.updateAttachment(e,t,r)}))}async applyEdits(e,t){const r=await import("./graphics/editingSupport.js");return await this.load(),r.applyEdits(this,this.source,e,t)}on(e,t){return super.on(e,t)}createPopupTemplate(e){return _e(this,e)}async createGraphicsSource(e){if(this._hasMemorySource())return this.source.load({signal:e});const{default:t}=await I(import("./graphics/sources/FeatureLayerSource.js"),e);return new t({layer:this}).load({signal:e})}createQuery(){const e=new Me,t=this.get("capabilities.data"),r=this.get("capabilities.query");e.dynamicDataSource=this.dynamicDataSource,e.historicMoment=this.historicMoment,e.gdbVersion=this.gdbVersion,e.returnGeometry=!0,r&&(e.compactGeometryEnabled=r.supportsCompactGeometry,e.defaultSpatialReferenceEnabled=r.supportsDefaultSpatialReference),t&&(t.supportsZ&&null!=this.returnZ&&(e.returnZ=this.returnZ),t.supportsM&&null!=this.returnM&&(e.returnM=this.returnM)),e.outFields=["*"],e.where=this.definitionExpression||"1=1";const{timeOffset:i,timeExtent:o}=this;return e.timeExtent=null!=i&&null!=o?o.offset(-i.value,i.unit):o||null,e.multipatchOption="multipatch"===this.geometryType?"xyFootprint":null,e}deleteAttachments(e,t){return this.load().then((()=>this._checkAttachmentSupport(e))).then((()=>{if(!("deleteAttachments"in this.source))throw new c(Qe,"Layer source does not support deleteAttachments capability");return this.source.deleteAttachments(e,t)}))}fetchRecomputedExtents(e){return this.load({signal:e?.signal}).then((()=>{if(this.source.fetchRecomputedExtents)return this.source.fetchRecomputedExtents(e);throw new c(Qe,"Layer source does not support fetchUpdates capability")}))}getFeatureType(e){const{typeIdField:t,types:r}=this;if(!t||!e)return null;const i=e.attributes?e.attributes[t]:void 0;if(null==i)return null;let o=null;return r.some((e=>{const{id:t}=e;return null!=t&&(t.toString()===i.toString()&&(o=e),!!o)})),o}getFieldDomain(e,t){const r=t&&t.feature,i=this.getFeatureType(r);if(i){const t=i.domains&&i.domains[e];if(t&&"inherited"!==t.type)return t}return this._getLayerDomain(e)}getField(e){return this.fieldsIndex.get(e)}queryAttachments(e,t){return e=Ce.from(e),this.load().then((()=>{if(!this.get("capabilities.data.supportsAttachment"))throw new c(Qe,"this layer doesn't support attachments");const{attachmentTypes:t,objectIds:r,globalIds:i,num:o,size:s,start:a,where:n}=e;if(!this.get("capabilities.operations.supportsQueryAttachments")){const p=r&&r.length>1,l=t&&t.length,u=i&&i.length,d=s&&s.length;if(p||l||u||d||o||a||n)throw new c(Qe,"when 'supportsQueryAttachments' is false, only objectIds of length 1 are supported",e)}if(!(r&&r.length||n))throw new c(Qe,"'objectIds' or 'where' are required to perform attachment query",e);if(!("queryAttachments"in this.source))throw new c(Qe,"Layer source does not support queryAttachments capability",e);return this.source.queryAttachments(e)}))}queryFeatures(e,t){return this.load().then((()=>this.source.queryFeatures(Me.from(e)||this.createQuery(),t))).then((e=>{if(e?.features)for(const t of e.features)t.layer=t.sourceLayer=this;return e}))}queryObjectIds(e,t){return this.load().then((()=>{if(this.source.queryObjectIds)return this.source.queryObjectIds(Me.from(e)||this.createQuery(),t);throw new c(Qe,"Layer source does not support queryObjectIds capability")}))}queryFeatureCount(e,t){return this.load().then((()=>{if(this.source.queryFeatureCount)return this.source.queryFeatureCount(Me.from(e)||this.createQuery(),t);throw new c(Qe,"Layer source does not support queryFeatureCount capability")}))}queryExtent(e,t){return this.load().then((()=>{if(this.source.queryExtent)return this.source.queryExtent(Me.from(e)||this.createQuery(),t);throw new c(Qe,"Layer source does not support queryExtent capability")}))}queryRelatedFeatures(e,t){return this.load().then((()=>{if("queryRelatedFeatures"in this.source)return this.source.queryRelatedFeatures(Le.from(e),t);throw new c(Qe,"Layer source does not support queryRelatedFeatures capability")}))}queryRelatedFeaturesCount(e,t){return this.load().then((()=>{if("queryRelatedFeaturesCount"in this.source)return this.source.queryRelatedFeaturesCount(Le.from(e),t);throw new c(Qe,"Layer source does not support queryRelatedFeaturesCount capability")}))}queryTopFeatures(e,t){return this.load().then((()=>{if("queryTopFeatures"in this.source&&this.get("capabilities.query.supportsTopFeaturesQuery"))return this.source.queryTopFeatures(Re.from(e),t).then((e=>{if(e?.features)for(const t of e.features)t.layer=t.sourceLayer=this;return e}));throw new c(Qe,"Layer source does not support queryTopFeatures capability")}))}queryTopObjectIds(e,t){return this.load().then((()=>{if("queryTopObjectIds"in this.source&&this.get("capabilities.query.supportsTopFeaturesQuery"))return this.source.queryTopObjectIds(Re.from(e),t);throw new c(Qe,"Layer source does not support queryTopObjectIds capability")}))}queryTopFeaturesExtent(e,t){return this.load().then((()=>{if("queryTopExtents"in this.source&&this.get("capabilities.query.supportsTopFeaturesQuery"))return this.source.queryTopExtents(Re.from(e),t);throw new c(Qe,"Layer source does not support queryTopExtents capability")}))}queryTopFeatureCount(e,t){return this.load().then((()=>{if("queryTopCount"in this.source&&this.get("capabilities.query.supportsTopFeaturesQuery"))return this.source.queryTopCount(Re.from(e),t);throw new c(Qe,"Layer source does not support queryFeatureCount capability")}))}read(e,t){const r=e.featureCollection;if(r){const e=r.layers;e&&1===e.length&&(super.read(e[0],t),null!=r.showLegend&&super.read({showLegend:r.showLegend},t))}super.read(e,t),t&&"service"===t.origin&&this.revert(["objectIdField","fields","timeInfo","spatialReference"],"service")}write(e,t){t={...t,writeLayerSchema:t?.writeLayerSchema??this._hasMemorySource()};const{origin:r,layerContainerType:i,messages:o}=t;if(this.dynamicDataSource)return o?.push(Ge(this,"using a dynamic data source cannot be written to web scenes, web maps and feature service items")),null;if(this.isTable){if("web-scene"===r||"web-map"===r&&"tables"!==i)return o?.push(Ge(this,"using a table source cannot be written to web scenes and web maps")),null;if(this._hasMemorySource())return o?.push(Ge(this,"using an in-memory table source cannot be written to web scenes and web maps")),null}else if(this.loaded&&"web-map"===r&&"tables"===i)return o?.push(Ge(this,"using a non-table source cannot be written to tables in web maps")),null;return super.write(e,t)}clone(){if(this._hasMemorySource())throw new c(Qe,`FeatureLayer (title: ${this.title}, id: ${this.id}) created using in-memory source cannot be cloned`);return super.clone()}serviceSupportsSpatialReference(e){return!!this.loaded&&("memory"===this.source.type||Ee(this,e))}async save(e){return(await import("./save/featureLayerUtils.js")).save(this,e)}async saveAs(e,t){return(await import("./save/featureLayerUtils.js")).saveAs(this,e,t)}_readEditingEnabled(e,t,r){let i=e.layerDefinition?.capabilities;return i?this._hasEditingCapability(i):(i=e.capabilities,t&&"web-map"===r?.origin&&!this._hasMemorySource()&&i?this._hasEditingCapability(i):void 0)}_hasEditingCapability(e){return e.toLowerCase().split(",").map((e=>e.trim())).includes("editing")}_writeEditingEnabled(e,t,r,i){if(!e){const e=this.capabilities?.operations?.supportsSync?"Query,Sync":"Query";S("layerDefinition.capabilities",e,t),r&&!i?.writeLayerSchema&&(t.capabilities=e)}}_checkAttachmentSupport(e){const{attributes:t}=e,{objectIdField:r}=this;return this.get("capabilities.data.supportsAttachment")?e?t?t[r]?void 0:Promise.reject(new c(Qe,`feature is missing the identifying attribute ${r}`)):Promise.reject(new c(Qe,"'attributes' are required on a feature to query attachments")):Promise.reject(new c(Qe,"A feature is required to add/delete/update attachments")):Promise.reject(new c(Qe,"this layer doesn't support attachments"))}_getLayerDomain(e){const t=this.fieldsIndex.get(e);return t?t.domain:null}_fetchFirstLayerId(e){return n(this.url,{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e}).then((e=>{const t=e.data;if(t)return Array.isArray(t.layers)&&t.layers.length>0?t.layers[0].id:Array.isArray(t.tables)&&t.tables.length>0?t.tables[0].id:void 0}))}async _initLayerProperties(e){return this._set("source",e),e.sourceJSON&&(this.sourceJSON=e.sourceJSON,this.read(e.sourceJSON,{origin:"service",url:this.parsedUrl})),this._verifySource(),this._verifyFields(),be(this.renderer,this.fieldsIndex),we(this.timeInfo,this.fieldsIndex),De(this,{origin:"service"})}async hasDataChanged(){if(this.source?.refresh)try{const{dataChanged:e,updates:t}=await(this.source?.refresh());if(w(t)&&(this.sourceJSON={...this.sourceJSON,...t},this.read(t,{origin:"service",url:this.parsedUrl})),e)return!0}catch{}if(this.definitionExpression)try{return(await j(this.definitionExpression,this.fieldsIndex)).hasDateFunctions}catch{}return!1}_verifyFields(){const e=this.parsedUrl&&this.parsedUrl.path||"undefined";this.objectIdField||console.log("FeatureLayer: 'objectIdField' property is not defined (url: "+e+")"),this.isTable||this._hasMemorySource()||-1!==e.search(/\/FeatureServer\//i)||this.fields?.some((e=>"geometry"===e.type))||console.log("FeatureLayer: unable to find field of type 'geometry' in the layer 'fields' list. If you are using a map service layer, features will not have geometry (url: "+e+")")}_fixTemplates(e,t){e&&e.forEach((e=>{const r=e.prototype&&e.prototype.attributes;r&&t&&delete r[t]}))}_verifySource(){if(this._hasMemorySource()){if(this.url)throw new c("feature-layer:mixed-source-and-url","FeatureLayer cannot be created with both an in-memory source and a url")}else if(!this.url)throw new c("feature-layer:source-or-url-required","FeatureLayer requires either a url, a valid portal item or a source")}_initMemorySource(e){e.forEach((e=>{e.layer=this,e.sourceLayer=this})),this._handles.add([e.on("after-add",(e=>{e.item.layer=this,e.item.sourceLayer=this})),e.on("after-remove",(e=>{e.item.layer=null,e.item.sourceLayer=null}))],"fl-source")}_resetMemorySource(e){e.forEach((e=>{e.layer=null,e.sourceLayer=null})),this._handles.remove("fl-source")}_hasMemorySource(){return!(this.url||!this.source)}_readAnalyticsCapabilities(e){return{supportsCacheHint:Ne(e.advancedQueryCapabilities,"queryAnalytics")}}_readAttachmentCapabilities(e){const t=e.attachmentProperties,r={supportsName:!1,supportsSize:!1,supportsContentType:!1,supportsKeywords:!1,supportsExifInfo:!1,supportsCacheHint:Ne(e.advancedQueryCapabilities,"queryAttachments"),supportsResize:ze(e,"supportsAttachmentsResizing",!1)};return t&&Array.isArray(t)&&t.forEach((e=>{const t=qe[e.name];t&&(r[t]=!!e.isEnabled)})),r}_readDataCapabilities(e){return{isVersioned:ze(e,"isDataVersioned",!1),supportsAttachment:ze(e,"hasAttachments",!1),supportsM:ze(e,"hasM",!1),supportsZ:ze(e,"hasZ",!1)}}_readMetadataCapabilities(e){return{supportsAdvancedFieldProperties:ze(e,"supportsFieldDescriptionProperty",!1)}}_readOperationsCapabilities(e,t){const r=e?e.toLowerCase().split(",").map((e=>e.trim())):[],i=this.url?K(this.url):null,o=r.includes(w(i)&&"MapServer"===i.serverType?"data":"query"),s=r.includes("editing")&&!t.datesInUnknownTimezone;let a=s&&r.includes("create"),n=s&&r.includes("delete"),p=s&&r.includes("update");const l=r.includes("changetracking"),u=t.advancedQueryCapabilities;return s&&!(a||n||p)&&(a=n=p=!0),{supportsCalculate:ze(t,"supportsCalculate",!1),supportsTruncate:ze(t,"supportsTruncate",!1),supportsValidateSql:ze(t,"supportsValidateSql",!1),supportsAdd:a,supportsDelete:n,supportsEditing:s,supportsChangeTracking:l,supportsQuery:o,supportsQueryAnalytics:ze(u,"supportsQueryAnalytic",!1),supportsQueryAttachments:ze(u,"supportsQueryAttachments",!1),supportsQueryTopFeatures:ze(u,"supportsTopFeaturesQuery",!1),supportsResizeAttachments:ze(t,"supportsAttachmentsResizing",!1),supportsSync:r.includes("sync"),supportsUpdate:p,supportsExceedsLimitStatistics:ze(t,"supportsExceedsLimitStatistics",!1)}}_readQueryCapabilities(e){const t=e.advancedQueryCapabilities,r=e.ownershipBasedAccessControlForFeatures,i=e.archivingInfo,o=this.url?.includes("MapServer"),s=!h("mapserver-pbf-enabled")&&o&&this.version<10.81,a=te(this.url),n=(e.supportedQueryFormats||"").split(",").reduce(((e,t)=>{const r=t.toLowerCase().trim();return r&&e.add(r),e}),new Set);return{supportsStatistics:ze(t,"supportsStatistics",e.supportsStatistics),supportsPercentileStatistics:ze(t,"supportsPercentileStatistics",!1),supportsSpatialAggregationStatistics:ze(t,"supportsSpatialAggregationStatistics",!1),supportedSpatialAggregationStatistics:ke(t),supportsCentroid:ze(t,"supportsReturningGeometryCentroid",!1),supportsDistance:ze(t,"supportsQueryWithDistance",!1),supportsDistinct:ze(t,"supportsDistinct",e.supportsAdvancedQueries),supportsExtent:ze(t,"supportsReturningQueryExtent",!1),supportsGeometryProperties:ze(t,"supportsReturningGeometryProperties",!1),supportsHavingClause:ze(t,"supportsHavingClause",!1),supportsOrderBy:ze(t,"supportsOrderBy",e.supportsAdvancedQueries),supportsPagination:ze(t,"supportsPagination",!1),supportsQuantization:ze(e,"supportsCoordinatesQuantization",!1),supportsQuantizationEditMode:ze(e,"supportsQuantizationEditMode",!1),supportsQueryGeometry:ze(e,"supportsReturningQueryGeometry",!1),supportsResultType:ze(t,"supportsQueryWithResultType",!1),supportsMaxRecordCountFactor:ze(t,"supportsMaxRecordCountFactor",!1),supportsSqlExpression:ze(t,"supportsSqlExpression",!1),supportsStandardizedQueriesOnly:ze(e,"useStandardizedQueries",!1),supportsTopFeaturesQuery:ze(t,"supportsTopFeaturesQuery",!1),supportsQueryByOthers:ze(r,"allowOthersToQuery",!0),supportsHistoricMoment:ze(i,"supportsQueryWithHistoricMoment",!1),supportsFormatPBF:!s&&n.has("pbf"),supportsDisjointSpatialRelationship:ze(t,"supportsDisjointSpatialRel",!1),supportsCacheHint:ze(t,"supportsQueryWithCacheHint",!1)||Ne(t,"query"),supportsDefaultSpatialReference:ze(t,"supportsDefaultSR",!1),supportsCompactGeometry:a,maxRecordCountFactor:Be(e,"maxRecordCountFactor",void 0),maxRecordCount:Be(e,"maxRecordCount",void 0),standardMaxRecordCount:Be(e,"standardMaxRecordCount",void 0),tileMaxRecordCount:Be(e,"tileMaxRecordCount",void 0)}}_readQueryRelatedCapabilities(e){const t=e.advancedQueryCapabilities,r=ze(t,"supportsAdvancedQueryRelated",!1);return{supportsPagination:ze(t,"supportsQueryRelatedPagination",!1),supportsCount:r,supportsOrderBy:r,supportsCacheHint:Ne(t,"queryRelated")}}_readQueryTopFeaturesCapabilities(e){return{supportsCacheHint:Ne(e.advancedQueryCapabilities,"queryTopFilter")}}_readEditingCapabilities(e){const t=e.ownershipBasedAccessControlForFeatures;return{supportsGeometryUpdate:ze(e,"allowGeometryUpdates",!0),supportsGlobalId:ze(e,"supportsApplyEditsWithGlobalIds",!1),supportsReturnServiceEditsInSourceSpatialReference:ze(e,"supportsReturnServiceEditsInSourceSR",!1),supportsRollbackOnFailure:ze(e,"supportsRollbackOnFailureParameter",!1),supportsUpdateWithoutM:ze(e,"allowUpdateWithoutMValues",!1),supportsUploadWithItemId:ze(e,"supportsAttachmentsByUploadId",!1),supportsDeleteByAnonymous:ze(t,"allowAnonymousToDelete",!0),supportsDeleteByOthers:ze(t,"allowOthersToDelete",!0),supportsUpdateByAnonymous:ze(t,"allowAnonymousToUpdate",!0),supportsUpdateByOthers:ze(t,"allowOthersToUpdate",!0)}}};e([x({readOnly:!0,json:{read:!1}})],Je.prototype,"capabilities",void 0),e([C("service","capabilities",["advancedQueryCapabilities","allowGeometryUpdates","allowUpdateWithoutMValues","archivingInfo","capabilities","datesInUnknownTimezone","hasAttachments","hasM","hasZ","maxRecordCount","maxRecordCountFactor","ownershipBasedAccessControlForFeatures","standardMaxRecordCount","supportedQueryFormats","supportsAdvancedQueries","supportsApplyEditsWithGlobalIds","supportsAttachmentsByUploadId","supportsAttachmentsResizing","supportsCalculate","supportsCoordinatesQuantization","supportsExceedsLimitStatistics","supportsFieldDescriptionProperty","supportsQuantizationEditMode","supportsRollbackOnFailureParameter","supportsStatistics","supportsTruncate","supportsValidateSql","tileMaxRecordCount","useStandardizedQueries"])],Je.prototype,"readCapabilities",null),e([x({json:{origins:{"portal-item":{write:!0},"web-map":{write:!0}}}})],Je.prototype,"charts",void 0),e([x({readOnly:!0})],Je.prototype,"createQueryVersion",null),e([x({type:String,json:{read:{source:"layerDefinition.copyrightText"},origins:{service:{read:{source:"copyrightText"}}}}})],Je.prototype,"copyright",void 0),e([x({type:Boolean})],Je.prototype,"datesInUnknownTimezone",void 0),e([x({type:String,json:{read:{source:"layerDefinition.displayField"},origins:{service:{read:{source:"displayField"}}}}})],Je.prototype,"displayField",void 0),e([x({type:String,json:{origins:{service:{read:!1,write:!1}},name:"layerDefinition.definitionExpression",write:{enabled:!0,allowNull:!0}}})],Je.prototype,"definitionExpression",void 0),e([x({types:p,readOnly:!0})],Je.prototype,"defaultSymbol",void 0),e([x({type:xe})],Je.prototype,"dynamicDataSource",void 0),e([x({readOnly:!0})],Je.prototype,"editFieldsInfo",void 0),e([x({type:Boolean})],Je.prototype,"editingEnabled",null),e([C(["portal-item","web-scene"],"editingEnabled",["layerDefinition.capabilities"])],Je.prototype,"readEditingEnabled",null),e([C("web-map","editingEnabled",["capabilities","layerDefinition.capabilities"])],Je.prototype,"readEditingEnabledFromWebMap",null),e([M(["portal-item","web-scene"],"editingEnabled",{"layerDefinition.capabilities":{type:String}})],Je.prototype,"writeEditingEnabled",null),e([M("web-map","editingEnabled",{capabilities:{type:String},"layerDefinition.capabilities":{type:String}})],Je.prototype,"writeEditingEnabledToWebMap",null),e([x({readOnly:!0})],Je.prototype,"editingInfo",void 0),e([C("editingInfo")],Je.prototype,"readEditingInfo",null),e([x((()=>{const e=f(le),t=e.json.origins;return t["web-map"]={read:!1,write:!1},t["portal-item"]={read:!1,write:!1},e})())],Je.prototype,"elevationInfo",void 0),e([x(he)],Je.prototype,"featureReduction",void 0),e([x({...We.fields,json:{read:{source:"layerDefinition.fields"},origins:{service:{name:"fields"},"web-map":{write:{target:"layerDefinition.fields",overridePolicy:He}}}}})],Je.prototype,"fields",void 0),e([x(We.fieldsIndex)],Je.prototype,"fieldsIndex",void 0),e([x({type:Ie,json:{read:{source:"layerDefinition.floorInfo"},write:{target:"layerDefinition.floorInfo"}}})],Je.prototype,"floorInfo",void 0),e([x({type:R,json:{name:"formInfo",write:!0,origins:{"web-scene":{read:!1,write:!1}}}})],Je.prototype,"formTemplate",void 0),e([x({type:_,json:{origins:{service:{read:{source:"extent"}}},read:{source:"layerDefinition.extent"}}})],Je.prototype,"fullExtent",void 0),e([x()],Je.prototype,"gdbVersion",void 0),e([x({readOnly:!0,type:ve,json:{read:{source:"geometryProperties"}}})],Je.prototype,"geometryFieldsInfo",void 0),e([x({type:["point","polygon","polyline","multipoint","multipatch","mesh"],json:{origins:{service:{read:Pe.read},"web-map":{write:{target:"layerDefinition.geometryType",overridePolicy:He,writer(e,t,r){const i=e?Pe.toJSON(e):null;i&&S(r,i,t)}}}},read:{source:"layerDefinition.geometryType",reader:Pe.read}}})],Je.prototype,"geometryType",void 0),e([x({type:Boolean,json:{origins:{service:{read:!0}},read:{source:"layerDefinition.hasM"}}})],Je.prototype,"hasM",void 0),e([x({type:Boolean,json:{origins:{service:{read:!0}},read:{source:"layerDefinition.hasZ"}}})],Je.prototype,"hasZ",void 0),e([x({readOnly:!0,type:O})],Je.prototype,"heightModelInfo",void 0),e([x({type:Date})],Je.prototype,"historicMoment",void 0),e([x(re)],Je.prototype,"id",void 0),e([x({readOnly:!0,json:{origins:{service:{read:!0}},read:!1}})],Je.prototype,"infoFor3D",void 0),e([x({readOnly:!0,json:{origins:{"web-map":{write:{target:"layerDefinition.type"}}}}})],Je.prototype,"isTable",void 0),e([C("service","isTable",["type","geometryType"]),C("isTable",["layerDefinition.type","layerDefinition.geometryType"])],Je.prototype,"readIsTable",null),e([M("web-map","isTable")],Je.prototype,"writeIsTable",null),e([x(ie)],Je.prototype,"labelsVisible",void 0),e([x({type:[Se],json:{origins:{service:{read:{source:"drawingInfo.labelingInfo",reader:Fe},write:{target:"drawingInfo.labelingInfo",enabled:!1}}},read:{source:"layerDefinition.drawingInfo.labelingInfo",reader:Fe},write:{target:"layerDefinition.drawingInfo.labelingInfo"}}})],Je.prototype,"labelingInfo",void 0),e([x((()=>{const e=f(ue);return e.json.origins["portal-item"]={write:{target:"layerDefinition.drawingInfo.transparency",writer(e,t,r){S(r,Oe(e),t)}}},e})())],Je.prototype,"opacity",void 0),e([x({type:Number,json:{origins:{service:{read:{source:"id"}},"portal-item":{read:!1,write:{target:"id"}}},read:!1}})],Je.prototype,"layerId",void 0),e([x(oe)],Je.prototype,"legendEnabled",void 0),e([x({type:["show","hide"],json:(()=>{const e=f(de.json);return e.origins["portal-item"]={read:!1,write:!1},e})()})],Je.prototype,"listMode",void 0),e([x(se)],Je.prototype,"minScale",void 0),e([C("service","minScale",["minScale","effectiveMinScale"])],Je.prototype,"readMinScale",null),e([x(ae)],Je.prototype,"maxScale",void 0),e([C("service","maxScale",["maxScale","effectiveMaxScale"])],Je.prototype,"readMaxScale",null),e([x({type:String})],Je.prototype,"globalIdField",void 0),e([C("globalIdField",["layerDefinition.globalIdField","layerDefinition.fields"]),C("service","globalIdField",["globalIdField","fields"])],Je.prototype,"readGlobalIdFieldFromService",null),e([x({type:String,json:{origins:{"web-map":{write:{target:"layerDefinition.objectIdField",overridePolicy:He}}}}})],Je.prototype,"objectIdField",void 0),e([C("objectIdField",["layerDefinition.objectIdField","layerDefinition.fields"]),C("service","objectIdField",["objectIdField","fields"])],Je.prototype,"readObjectIdFieldFromService",null),e([x({value:"ArcGISFeatureLayer",type:["ArcGISFeatureLayer"]})],Je.prototype,"operationalLayerType",void 0),e([x(We.outFields)],Je.prototype,"outFields",void 0),e([x({readOnly:!0})],Je.prototype,"parsedUrl",null),e([x({type:String,json:{origins:{"web-scene":{read:!0,write:!0}},read:!1}})],Je.prototype,"path",void 0),e([x(ne)],Je.prototype,"popupEnabled",void 0),e([x({type:t,json:{name:"popupInfo",write:!0}})],Je.prototype,"popupTemplate",void 0),e([x({readOnly:!0})],Je.prototype,"defaultPopupTemplate",null),e([x({type:[je],readOnly:!0})],Je.prototype,"relationships",void 0),e([x({types:s,json:{origins:{service:{write:{target:"drawingInfo.renderer",enabled:!1}},"web-scene":{types:a,name:"layerDefinition.drawingInfo.renderer",write:{overridePolicy:(e,t,r)=>({ignoreOrigin:r?.writeLayerSchema})}}},write:{target:"layerDefinition.drawingInfo.renderer",overridePolicy:(e,t,r)=>({ignoreOrigin:r?.writeLayerSchema})}}})],Je.prototype,"renderer",null),e([C("service","renderer",["drawingInfo.renderer","defaultSymbol"]),C("renderer",["layerDefinition.drawingInfo.renderer","layerDefinition.defaultSymbol"])],Je.prototype,"readRenderer",null),e([x()],Je.prototype,"sourceJSON",void 0),e([x({type:Boolean})],Je.prototype,"returnM",void 0),e([x({type:Boolean})],Je.prototype,"returnZ",void 0),e([x((()=>{const e=f(ce);return e.json.origins["portal-item"]={read:!1,write:!1},e})())],Je.prototype,"screenSizePerspectiveEnabled",void 0),e([x({clonable:!1})],Je.prototype,"source",null),e([D("source")],Je.prototype,"castSource",null),e([C("portal-item","source",["featureSet"]),C("web-map","source",["featureSet"])],Je.prototype,"readSource",null),e([x({readOnly:!0})],Je.prototype,"serviceDefinitionExpression",void 0),e([C("service","serviceDefinitionExpression",["definitionQuery","definitionExpression"])],Je.prototype,"readServiceDefinitionExpression",null),e([x({type:P,json:{origins:{service:{read:{source:"extent.spatialReference"}}},read:{source:"layerDefinition.extent.spatialReference"}}})],Je.prototype,"spatialReference",void 0),e([x({type:Number})],Je.prototype,"subtypeCode",void 0),e([x({type:[me]})],Je.prototype,"templates",void 0),e([C("templates",["editFieldsInfo","creatorField","editorField","templates"])],Je.prototype,"readTemplates",null),e([x({type:Te})],Je.prototype,"timeInfo",void 0),e([x()],Je.prototype,"title",void 0),e([C("service","title",["name"]),C("portal-item","title",["layerDefinition.title","layerDefinition.name","title"])],Je.prototype,"readTitle",null),e([C("web-map","title",["layerDefinition.name","title"])],Je.prototype,"readTitleFromWebMap",null),e([x({type:String})],Je.prototype,"sublayerTitleMode",void 0),e([x({type:String,json:{read:{source:"timeInfo.trackIdField"}}})],Je.prototype,"trackIdField",void 0),e([x({json:{read:!1}})],Je.prototype,"type",void 0),e([x({type:String})],Je.prototype,"typeIdField",void 0),e([C("service","typeIdField"),C("typeIdField",["layerDefinition.typeIdField"])],Je.prototype,"readTypeIdField",null),e([x({type:[fe]})],Je.prototype,"types",void 0),e([C("service","types",["types"]),C("types",["layerDefinition.types"])],Je.prototype,"readTypes",null),e([x({readOnly:!0,json:{write:!1}})],Je.prototype,"serverGens",void 0),e([x({type:d.ofType(ye),readOnly:!0})],Je.prototype,"indexes",void 0),e([x(pe)],Je.prototype,"url",null),e([M("url")],Je.prototype,"writeUrl",null),e([x({readOnly:!0})],Je.prototype,"userIsAdmin",void 0),e([x({json:{origins:{service:{read:!0}},read:!1}})],Je.prototype,"version",void 0),e([C("service","version",["currentVersion","capabilities","drawingInfo","hasAttachments","htmlPopupType","relationships","timeInfo","typeIdField","types"])],Je.prototype,"readVersion",null),e([x({type:Boolean,json:{origins:{"portal-item":{write:{target:"layerDefinition.defaultVisibility"}}}}})],Je.prototype,"visible",void 0),e([C("portal-item","visible",["visibility","layerDefinition.defaultVisibility"])],Je.prototype,"readVisible",null),Je=e([A("esri.layers.FeatureLayer")],Je);const Ze=L({types:l}),$e=Je;export{$e as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import"../renderers/ClassBreaksRenderer.js";import"../renderers/DictionaryRenderer.js";import"../renderers/DotDensityRenderer.js";import"../renderers/HeatmapRenderer.js";import"../renderers/PieChartRenderer.js";import"../renderers/Renderer.js";import t from"../renderers/SimpleRenderer.js";import r from"../renderers/UniqueValueRenderer.js";import{read as i}from"../renderers/support/jsonUtils.js";import{rendererTypes as s,webSceneRendererTypes as o}from"../renderers/support/types.js";import a from"../request.js";import{symbolTypes as n,symbolTypesRenderer as p}from"../symbols.js";import l from"../core/Collection.js";import u from"../core/Error.js";import{HandleOwnerMixin as d}from"../core/HandleOwner.js";import c from"../core/Handles.js";import y from"../core/has.js";import{JSONMap as h}from"../core/jsonMap.js";import m from"../core/Logger.js";import{destroyMaybe as f,isSome as b,unwrapOr as g}from"../core/maybe.js";import{MultiOriginJSONMixin as w}from"../core/MultiOriginJSONSupport.js";import{setDeepValue as S}from"../core/object.js";import{throwIfAbortError as v,throwIfAborted as I}from"../core/promiseUtils.js";import{watch as F,sync as j}from"../core/reactiveUtils.js";import{parseWhereClause as E}from"../core/sql.js";import{urlToObject as D,join as x}from"../core/urlUtils.js";import{property as C}from"../core/accessorSupport/decorators/property.js";import"../core/arrayUtils.js";import{cast as M}from"../core/accessorSupport/decorators/cast.js";import{reader as R}from"../core/accessorSupport/decorators/reader.js";import{subclass as A}from"../core/accessorSupport/decorators/subclass.js";import{writer as T}from"../core/accessorSupport/decorators/writer.js";import{createTypeReader as L}from"../core/accessorSupport/extensions/serializableProperty/reader.js";import P from"../form/FormTemplate.js";import _ from"../geometry/Extent.js";import O from"../geometry/HeightModelInfo.js";import Q from"../geometry/SpatialReference.js";import q from"./Layer.js";import{MemorySource as G}from"./graphics/sources/MemorySource.js";import{ArcGISService as U}from"./mixins/ArcGISService.js";import{BlendLayer as V}from"./mixins/BlendLayer.js";import{CustomParametersMixin as B}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as z}from"./mixins/OperationalLayer.js";import{PortalLayer as N}from"./mixins/PortalLayer.js";import{RefreshableLayer as W}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as k}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as $}from"./mixins/TemporalLayer.js";import{titleFromUrlAndName as Z,parse as H,cleanTitle as J,sanitizeUrlWithLayerId as K,writeUrlWithLayerId as X,isHostedAgolService as Y}from"./support/arcgisLayerUrl.js";import{elevationInfo as ee,id as te,opacityDrawingInfo as re,legendEnabled as ie,minScale as se,maxScale as oe,screenSizePerspectiveEnabled as ae,url as ne}from"./support/commonProperties.js";import{FeatureIndex as pe}from"./support/FeatureIndex.js";import{featureReductionProperty as le}from"./support/featureReductionUtils.js";import{defineFieldProperties as ue}from"./support/fieldProperties.js";import{fixRendererFields as de,fixTimeInfoFields as ce}from"./support/fieldUtils.js";import ye from"./support/GeometryFieldsInfo.js";import he from"./support/LayerFloorInfo.js";import me from"./support/Relationship.js";import fe from"./support/SubtypeSublayer.js";import be from"./support/TimeInfo.js";import{serviceSupportsSpatialReference as ge}from"./support/versionUtils.js";import{DataLayerSource as we}from"./support/source/DataLayerSource.js";import{loadStyleRenderer as Se}from"../renderers/support/styleUtils.js";import ve from"../rest/support/AttachmentQuery.js";import Ie from"../rest/support/FeatureSet.js";import Fe from"../rest/support/Query.js";import je from"../rest/support/RelationshipQuery.js";const Ee=new h({esriGeometryPoint:"point",esriGeometryMultipoint:"multipoint",esriGeometryPolyline:"polyline",esriGeometryPolygon:"polygon",esriGeometryMultiPatch:"multipatch"}),De={name:"supportsName",size:"supportsSize",contentType:"supportsContentType",keywords:"supportsKeywords",exifInfo:"supportsExifInfo"},xe="SubtypeGroupLayer",Ce=m.getLogger("esri.layers.SubtypeGroupLayer");function Me(e){return e&&e instanceof l}function Re(e,t,r){return!!(e&&e.hasOwnProperty(t)?e[t]:r)}function Ae(e,t,r){return e&&e.hasOwnProperty(t)?e[t]:r}function Te(e){const t=e?.supportedSpatialAggregationStatistics?.map((e=>e.toLowerCase()));return{envelope:!!t?.includes("envelopeaggregate"),centroid:!!t?.includes("centroidaggregate"),convexHull:!!t?.includes("convexhullaggregate")}}const Le=ue();function Pe(e,t,r){const i=!!r?.writeLayerSchema;return{enabled:i,ignoreOrigin:i}}let _e=class extends(V($(k(W(U(z(N(w(B(d(q))))))))))){constructor(...e){super(...e),this._handles=new c,this.capabilities=null,this.charts=null,this.copyright=null,this.displayField=null,this.definitionExpression=null,this.dynamicDataSource=null,this.editFieldsInfo=null,this.editingEnabled=!0,this.editingInfo=null,this.elevationInfo=null,this.featureReduction=null,this.fields=null,this.fieldsIndex=null,this.floorInfo=null,this.formTemplate=null,this.fullExtent=null,this.gdbVersion=null,this.geometryFieldsInfo=null,this.geometryType=null,this.hasM=void 0,this.hasZ=void 0,this.heightModelInfo=null,this.historicMoment=null,this.isTable=!1,this.layerId=void 0,this.legendEnabled=!0,this.minScale=0,this.maxScale=0,this.globalIdField=null,this.objectIdField=null,this.outFields=null,this.path=null,this.relationships=null,this.sourceJSON=null,this.returnM=void 0,this.returnZ=void 0,this.screenSizePerspectiveEnabled=!0,this.serviceDefinitionExpression=null,this.spatialReference=Q.WGS84,this.subtypeField=null,this.sublayers=new(l.ofType(fe)),this.timeInfo=null,this.title=null,this.sublayerTitleMode="item-title",this.trackIdField=null,this.type="subtype-group",this.typeIdField=null,this.indexes=new(l.ofType(pe)),this.userIsAdmin=!1,this.version=void 0,this.visible=!0,this.own(F((()=>this.sublayers),((e,t)=>this._handleSublayersChange(e,t)),j))}destroy(){this.source?.destroy(),this._handles=f(this._handles)}normalizeCtorArgs(e,t){return"string"==typeof e?{url:e,...t}:e}load(e){const t=b(e)?e.signal:null;if(this.portalItem&&this.portalItem.loaded&&this.source)return void this.addResolvingPromise(this.createGraphicsSource(t).then((e=>this._initLayerProperties(e))));const r=this.loadFromPortal({supportedTypes:["Feature Service","Feature Collection"]},e).catch(v).then((async()=>{if(this.url&&null==this.layerId&&/FeatureServer|MapServer\/*$/i.test(this.url)){const e=await this._fetchFirstLayerId(t);null!=e&&(this.layerId=e)}if(!this.url&&!this._hasMemorySource())throw new u("feature-layer:missing-url-or-source","Feature layer must be created with either a url or a source");return this._initLayerProperties(await this.createGraphicsSource(t))})).then((()=>this.finishLoadEditablePortalLayer(e)));return this.addResolvingPromise(r),Promise.resolve(this)}readCapabilities(e,t){return t=t.layerDefinition||t,{attachment:this._readAttachmentCapabilities(t.attachmentProperties),data:this._readDataCapabilities(t),metadata:this._readMetadataCapabilities(t),operations:this._readOperationsCapabilities(t.capabilities||e,t),query:this._readQueryCapabilities(t),queryRelated:this._readQueryRelatedCapabilities(t),editing:this._readEditingCapabilities(t)}}get createQueryVersion(){return this.commitProperty("definitionExpression"),this.commitProperty("dynamicDataSource"),this.commitProperty("timeExtent"),this.commitProperty("timeOffset"),this.commitProperty("geometryType"),this.commitProperty("gdbVersion"),this.commitProperty("historicMoment"),this.commitProperty("returnZ"),this.commitProperty("capabilities"),this.commitProperty("returnM"),(this._get("createQueryVersion")||0)+1}readEditingEnabled(e,t){return this._readEditingEnabled(t,!1)}readEditingEnabledFromWebMap(e,t,r){return this._readEditingEnabled(t,!0,r)}writeEditingEnabled(e,t){this._writeEditingEnabled(e,t,!1)}writeEditingEnabledToWebMap(e,t,r,i){this._writeEditingEnabled(e,t,!0,i)}readEditingInfo(e,t){const{editingInfo:r}=t;return r?{lastEditDate:null!=r.lastEditDate?new Date(r.lastEditDate):null}:null}readIsTable(e,t){return"Table"===(t=t&&t.layerDefinition||t).type||!t.geometryType}writeIsTable(e,t,r,i){i?.writeLayerSchema&&S(r,e?"Table":"Feature Layer",t)}readMinScale(e,t){return t.effectiveMinScale||e||0}readMaxScale(e,t){return t.effectiveMaxScale||e||0}readGlobalIdFieldFromService(e,t){if((t=t.layerDefinition||t).globalIdField)return t.globalIdField;if(t.fields)for(const r of t.fields)if("esriFieldTypeGlobalID"===r.type)return r.name}readObjectIdFieldFromService(e,t){if((t=t.layerDefinition||t).objectIdField)return t.objectIdField;if(t.fields)for(const r of t.fields)if("esriFieldTypeOID"===r.type)return r.name}get parsedUrl(){const e=this.url?D(this.url):null;return null!=e&&(null!=this.dynamicDataSource?e.path=x(e.path,"dynamicLayer"):null!=this.layerId&&(e.path=x(e.path,this.layerId.toString()))),e}set renderer(e){de(e,this.fieldsIndex),this._set("renderer",e)}readRenderer(e,s,o){const a=(s=s.layerDefinition||s).drawingInfo&&s.drawingInfo.renderer||void 0;if(a){const e=i(a,s,o)||void 0;return e||Ce.error("Failed to create renderer",{rendererDefinition:s.drawingInfo.renderer,layer:this,context:o}),e}if(s.defaultSymbol)return s.types&&s.types.length?new r({defaultSymbol:Oe(s.defaultSymbol,s,o),field:s.typeIdField,uniqueValueInfos:s.types.map((e=>({id:e.id,symbol:Oe(e.symbol,e,o)})))}):new t({symbol:Oe(s.defaultSymbol,s,o)})}set source(e){const t=this._get("source");t!==e&&(Me(t)&&this._resetMemorySource(t),Me(e)&&this._initMemorySource(e),this._set("source",e))}castSource(e){return e?Array.isArray(e)||e instanceof l?new G({layer:this,items:e}):e:null}readSource(e,t){const r=Ie.fromJSON(t.featureSet);return new G({layer:this,items:r&&r.features||[]})}readServiceDefinitionExpression(e,t){return t.definitionQuery||t.definitionExpression}readTitle(e,t){const r=t.layerDefinition&&t.layerDefinition.name||t.name,i=t.title||t.layerDefinition&&t.layerDefinition.title;if(r){const e=this.portalItem&&this.portalItem.title;if("item-title"===this.sublayerTitleMode)return this.url?Z(this.url,r):r;let t=r;if(!t&&this.url){const e=H(this.url);b(e)&&(t=e.title)}if(!t)return;return"item-title-and-service-name"===this.sublayerTitleMode&&e&&e!==t&&(t=e+" - "+t),J(t)}if("item-title"===this.sublayerTitleMode&&i)return i}readTitleFromWebMap(e,t){return t.title||t.layerDefinition&&t.layerDefinition.name}readTypeIdField(e,t){let r=(t=t.layerDefinition||t).typeIdField;if(r&&t.fields){r=r.toLowerCase();const e=t.fields.find((e=>e.name.toLowerCase()===r));e&&(r=e.name)}return r}set url(e){const t=K({layer:this,url:e,nonStandardUrlAllowed:!0,logger:Ce});this._set("url",t.url),null!=t.layerId&&this._set("layerId",t.layerId)}writeUrl(e,t,r,i){X(this,e,null,t,i)}readVersion(e,t){return t.currentVersion?t.currentVersion:t.hasOwnProperty("capabilities")||t.hasOwnProperty("drawingInfo")||t.hasOwnProperty("hasAttachments")||t.hasOwnProperty("htmlPopupType")||t.hasOwnProperty("relationships")||t.hasOwnProperty("timeInfo")||t.hasOwnProperty("typeIdField")||t.hasOwnProperty("types")?10:9.3}readVisible(e,t){return t.layerDefinition&&null!=t.layerDefinition.defaultVisibility?!!t.layerDefinition.defaultVisibility:null!=t.visibility?!!t.visibility:void 0}addAttachment(e,t){return this.load().then((()=>this._checkAttachmentSupport(e))).then((()=>{if(!("addAttachment"in this.source))throw new u(xe,"Layer source does not support addAttachment capability");return this.source.addAttachment(e,t)}))}updateAttachment(e,t,r){return this.load().then((()=>this._checkAttachmentSupport(e))).then((()=>{if(!("updateAttachment"in this.source))throw new u(xe,"Layer source does not support updateAttachment capability");return this.source.updateAttachment(e,t,r)}))}async applyEdits(e,t){const r=await import("./graphics/editingSupport.js");return await this.load(),r.applyEdits(this,this.source,e,t)}on(e,t){return super.on(e,t)}async createGraphicsSource(e){if(this._hasMemorySource())return this.emit("graphics-source-create",{graphicsSource:this.source}),this.source.load({signal:e});const t=await import("./graphics/sources/FeatureLayerSource.js");I(e);const r=await new t.default({layer:this}).load({signal:e});return this.emit("graphics-source-create",{graphicsSource:r}),r}createQuery(){const e=new Fe,t=this.get("capabilities.data"),r=this.get("capabilities.query"),i=this.sublayers.map((e=>e.subtypeCode));e.dynamicDataSource=this.dynamicDataSource,e.gdbVersion=this.gdbVersion,e.historicMoment=this.historicMoment,e.returnGeometry=!0,r&&(e.compactGeometryEnabled=r.supportsCompactGeometry,e.defaultSpatialReferenceEnabled=r.supportsDefaultSpatialReference),t&&(t.supportsZ&&null!=this.returnZ&&(e.returnZ=this.returnZ),t.supportsM&&null!=this.returnM&&(e.returnM=this.returnM)),e.outFields=["*"],e.where=`${this.subtypeField} IN (${i.join(",")})`,this.definitionExpression&&(e.where+=` AND (${this.definitionExpression})`);const{timeOffset:s,timeExtent:o}=this;return e.timeExtent=null!=s&&null!=o?o.offset(-s.value,s.unit):o||null,e.multipatchOption="multipatch"===this.geometryType?"xyFootprint":null,e}deleteAttachments(e,t){return this.load().then((()=>this._checkAttachmentSupport(e))).then((()=>{if(!("deleteAttachments"in this.source))throw new u(xe,"Layer source does not support deleteAttachments capability");return this.source.deleteAttachments(e,t)}))}fetchRecomputedExtents(e){return this.load({signal:e?.signal}).then((()=>{if(this.source.fetchRecomputedExtents)return this.source.fetchRecomputedExtents(e);throw new u(xe,"Layer source does not support fetchUpdates capability")}))}getFieldDomain(e,t){return this._getLayerDomain(e)}getField(e){return this.fieldsIndex.get(e)}queryAttachments(e,t){return e=ve.from(e),this.load().then((()=>{if(!this.get("capabilities.data.supportsAttachment"))throw new u(xe,"this layer doesn't support attachments");const{attachmentTypes:t,objectIds:r,globalIds:i,num:s,size:o,start:a,where:n}=e;if(!this.get("capabilities.operations.supportsQueryAttachments")){const p=r&&r.length>1,l=t&&t.length,d=i&&i.length,c=o&&o.length;if(p||l||d||c||s||a||n)throw new u(xe,"when 'supportsQueryAttachments' is false, only objectIds of length 1 are supported",e)}if(!(r&&r.length||n))throw new u(xe,"'objectIds' or 'where' are required to perform attachment query",e);if(!("queryAttachments"in this.source))throw new u(xe,"Layer source does not support queryAttachments capability",e);return this.source.queryAttachments(e)}))}queryFeatures(e,t){const r=Fe.from(e)||this.createQuery(),i=g(r.outFields,[]);return i.includes(this.subtypeField)||(i.push(this.subtypeField),r.outFields=i),this.load().then((()=>this.source.queryFeatures(r,t))).then((e=>{if(e?.features)for(const t of e.features)t.layer=this._findSublayerForFeature(t),t.sourceLayer=this;return e}))}_findSublayerForFeature(e){const t=this.fieldsIndex.get(this.subtypeField),r=e.attributes[t.name];return this.sublayers.find((e=>e.subtypeCode===r))}queryObjectIds(e,t){return this.load().then((()=>{if(this.source.queryObjectIds)return this.source.queryObjectIds(Fe.from(e)||this.createQuery(),t);throw new u(xe,"Layer source does not support queryObjectIds capability")}))}queryFeatureCount(e,t){return this.load().then((()=>{if(this.source.queryFeatureCount)return this.source.queryFeatureCount(Fe.from(e)||this.createQuery(),t);throw new u(xe,"Layer source does not support queryFeatureCount capability")}))}queryExtent(e,t){return this.load().then((()=>{if(this.source.queryExtent)return this.source.queryExtent(Fe.from(e)||this.createQuery(),t);throw new u(xe,"Layer source does not support queryExtent capability")}))}queryRelatedFeatures(e,t){return this.load().then((()=>{if("queryRelatedFeatures"in this.source)return this.source.queryRelatedFeatures(je.from(e),t);throw new u(xe,"Layer source does not support queryRelatedFeatures capability")}))}queryRelatedFeaturesCount(e,t){return this.load().then((()=>{if("queryRelatedFeaturesCount"in this.source)return this.source.queryRelatedFeaturesCount(je.from(e),t);throw new u(xe,"Layer source does not support queryRelatedFeaturesCount capability")}))}read(e,t){const r=e.featureCollection;if(r){const e=r.layers;e&&1===e.length&&(super.read(e[0],t),null!=r.showLegend&&super.read({showLegend:r.showLegend},t))}super.read(e,t),t&&"service"===t.origin&&this.revert(["objectIdField","fields","timeInfo","spatialReference"],"service")}write(e,t){const r=(t={...t,writeLayerSchema:t?.writeLayerSchema??this._hasMemorySource()}).origin,i=t.layerContainerType,s=t.messages;if(this.isTable){if("web-scene"===r||"web-map"===r&&"tables"!==i)return s&&s.push(new u("layer:unsupported",`Layer (${this.title}, ${this.id}) of type '${this.declaredClass}' using a Table source cannot be written to web scenes and web maps`,{layer:this})),null;if(this._hasMemorySource())return s&&s.push(new u("layer:unsupported",`Layer (${this.title}, ${this.id}) of type '${this.declaredClass}' using an in-memory Table source cannot be written to web scenes and web maps`,{layer:this})),null}else if(this.loaded&&"web-map"===r&&"tables"===i)return s&&s.push(new u("layer:unsupported",`Layer (${this.title}, ${this.id}) of type '${this.declaredClass}' using a non-table source cannot be written to tables in web maps`,{layer:this})),null;return super.write(e,t)}serviceSupportsSpatialReference(e){return ge(this,e)}_readEditingEnabled(e,t,r){let i=e.layerDefinition?.capabilities;return i?this._hasEditingCapability(i):(i=e.capabilities,!(t&&"web-map"===r?.origin&&!this._hasMemorySource()&&i)||this._hasEditingCapability(i))}_hasEditingCapability(e){return e.toLowerCase().split(",").map((e=>e.trim())).includes("editing")}_writeEditingEnabled(e,t,r,i){if(!e){const e=this.capabilities?.operations?.supportsSync?"Query,Sync":"Query";S("layerDefinition.capabilities",e,t),r&&!i?.writeLayerSchema&&(t.capabilities=e)}}_checkAttachmentSupport(e){const{attributes:t}=e,{objectIdField:r}=this;return this.get("capabilities.data.supportsAttachment")?e?t?t[r]?void 0:Promise.reject(new u(xe,`feature is missing the identifying attribute ${r}`)):Promise.reject(new u(xe,"'attributes' are required on a feature to query attachments")):Promise.reject(new u(xe,"A feature is required to add/delete/update attachments")):Promise.reject(new u(xe,"this layer doesn't support attachments"))}_getLayerDomain(e){const t=this.fieldsIndex.get(e);return t?t.domain:null}_fetchFirstLayerId(e){return a(this.url,{query:{f:"json",...this.customParameters},responseType:"json",signal:e}).then((e=>{const t=e.data;if(t)return Array.isArray(t.layers)&&t.layers.length>0?t.layers[0].id:Array.isArray(t.tables)&&t.tables.length>0?t.tables[0].id:void 0}))}async _initLayerProperties(e){return this._set("source",e),e.sourceJSON&&(this.sourceJSON=e.sourceJSON,this.read(e.sourceJSON,{origin:"service",url:this.parsedUrl})),this._verifySource(),this._verifyFields(),de(this.renderer,this.fieldsIndex),ce(this.timeInfo,this.fieldsIndex),Se(this,{origin:"service"})}async hasDataChanged(){if(this.source?.refresh)try{const{dataChanged:e,updates:t}=await(this.source?.refresh());if(b(t)&&(this.sourceJSON={...this.sourceJSON,...t},this.read(t,{origin:"service",url:this.parsedUrl})),e)return!0}catch{}if(this.definitionExpression)try{return(await E(this.definitionExpression,this.fieldsIndex)).hasDateFunctions}catch{}return!1}_verifyFields(){const e=this.parsedUrl&&this.parsedUrl.path||"undefined";this.objectIdField||console.log("SubtypeGroupLayer: 'objectIdField' property is not defined (url: "+e+")"),this.isTable||this._hasMemorySource()||-1!==e.search(/\/FeatureServer\//i)||this.fields?.some((e=>"geometry"===e.type))||console.log("SubtypeGroupLayer: unable to find field of type 'geometry' in the layer 'fields' list. If you are using a map service layer, features will not have geometry (url: "+e+")")}_verifySource(){if(this._hasMemorySource()){if(this.url)throw new u("feature-layer:mixed-source-and-url","SubtypeGroupLayer cannot be created with both an in-memory source and a url")}else if(!this.url)throw new u("feature-layer:source-or-url-required","SubtypeGroupLayer requires either a url, a valid portal item or a source")}_initMemorySource(e){e.forEach((e=>{e.layer=this,e.sourceLayer=this})),this._handles.add([e.on("after-add",(e=>{e.item.layer=this,e.item.sourceLayer=this})),e.on("after-remove",(e=>{e.item.layer=null,e.item.sourceLayer=null}))],"fl-source")}_resetMemorySource(e){e.forEach((e=>{e.layer=null,e.sourceLayer=null})),this._handles.remove("fl-source")}_hasMemorySource(){return!(this.url||!this.source)}_readAttachmentCapabilities(e){const t={supportsName:!1,supportsSize:!1,supportsContentType:!1,supportsKeywords:!1,supportsExifInfo:!1};return e&&Array.isArray(e)&&e.forEach((e=>{const r=De[e.name];r&&(t[r]=!!e.isEnabled)})),t}_readDataCapabilities(e){return{isVersioned:Re(e,"isDataVersioned",!1),supportsAttachment:Re(e,"hasAttachments",!1),supportsM:Re(e,"hasM",!1),supportsZ:Re(e,"hasZ",!1)}}_readMetadataCapabilities(e){return{supportsAdvancedFieldProperties:Re(e,"supportsFieldDescriptionProperty",!1)}}_readOperationsCapabilities(e,t){const r=e?e.toLowerCase().split(",").map((e=>e.trim())):[],i=r.includes("editing");let s=i&&r.includes("create"),o=i&&r.includes("delete"),a=i&&r.includes("update");const n=r.includes("changetracking");return i&&!(s||o||a)&&(s=o=a=!0),{supportsCalculate:Re(t,"supportsCalculate",!1),supportsTruncate:Re(t,"supportsTruncate",!1),supportsValidateSql:Re(t,"supportsValidateSql",!1),supportsAdd:s,supportsDelete:o,supportsEditing:i,supportsChangeTracking:n,supportsQuery:r.includes("query"),supportsQueryAttachments:Re(t.advancedQueryCapabilities,"supportsQueryAttachments",!1),supportsResizeAttachments:Re(t,"supportsAttachmentsResizing",!1),supportsSync:r.includes("sync"),supportsUpdate:a,supportsExceedsLimitStatistics:Re(t,"supportsExceedsLimitStatistics",!1)}}_readQueryCapabilities(e){const t=e.advancedQueryCapabilities,r=e.ownershipBasedAccessControlForFeatures,i=e.archivingInfo,s=this.url?.includes("MapServer"),o=!y("mapserver-pbf-enabled")&&s&&this.version<10.81,a=Y(this.url),n=(e.supportedQueryFormats||"").split(",").reduce(((e,t)=>{const r=t.toLowerCase().trim();return r&&e.add(r),e}),new Set);return{supportsStatistics:Re(t,"supportsStatistics",e.supportsStatistics),supportsPercentileStatistics:Re(t,"supportsPercentileStatistics",!1),supportsSpatialAggregationStatistics:Re(t,"supportsSpatialAggregationStatistics",!1),supportedSpatialAggregationStatistics:Te(t),supportsCentroid:Re(t,"supportsReturningGeometryCentroid",!1),supportsDistance:Re(t,"supportsQueryWithDistance",!1),supportsDistinct:Re(t,"supportsDistinct",e.supportsAdvancedQueries),supportsExtent:Re(t,"supportsReturningQueryExtent",!1),supportsGeometryProperties:Re(t,"supportsReturningGeometryProperties",!1),supportsHavingClause:Re(t,"supportsHavingClause",!1),supportsOrderBy:Re(t,"supportsOrderBy",e.supportsAdvancedQueries),supportsPagination:Re(t,"supportsPagination",!1),supportsQuantization:Re(e,"supportsCoordinatesQuantization",!1),supportsQuantizationEditMode:Re(e,"supportsQuantizationEditMode",!1),supportsQueryGeometry:Re(e,"supportsReturningQueryGeometry",!1),supportsResultType:Re(t,"supportsQueryWithResultType",!1),supportsMaxRecordCountFactor:Re(t,"supportsMaxRecordCountFactor",!1),supportsSqlExpression:Re(t,"supportsSqlExpression",!1),supportsStandardizedQueriesOnly:Re(e,"useStandardizedQueries",!1),supportsTopFeaturesQuery:Re(t,"supportsTopFeaturesQuery",!1),supportsQueryByOthers:Re(r,"allowOthersToQuery",!0),supportsHistoricMoment:Re(i,"supportsQueryWithHistoricMoment",!1),supportsFormatPBF:!o&&n.has("pbf"),supportsDisjointSpatialRelationship:Re(t,"supportsDisjointSpatialRel",!1),supportsCacheHint:Re(t,"supportsQueryWithCacheHint",!1),supportsDefaultSpatialReference:Re(t,"supportsDefaultSR",!1),supportsCompactGeometry:a,maxRecordCountFactor:Ae(e,"maxRecordCountFactor",void 0),maxRecordCount:Ae(e,"maxRecordCount",void 0),standardMaxRecordCount:Ae(e,"standardMaxRecordCount",void 0),tileMaxRecordCount:Ae(e,"tileMaxRecordCount",void 0)}}_readQueryRelatedCapabilities(e){const t=e.advancedQueryCapabilities,r=Re(t,"supportsAdvancedQueryRelated",!1);return{supportsPagination:Re(t,"supportsQueryRelatedPagination",!1),supportsCount:r,supportsOrderBy:r}}_readEditingCapabilities(e){const t=e.ownershipBasedAccessControlForFeatures;return{supportsGeometryUpdate:Re(e,"allowGeometryUpdates",!0),supportsGlobalId:Re(e,"supportsApplyEditsWithGlobalIds",!1),supportsReturnServiceEditsInSourceSpatialReference:Re(e,"supportsReturnServiceEditsInSourceSpatialReference",!1),supportsRollbackOnFailure:Re(e,"supportsRollbackOnFailureParameter",!1),supportsUpdateWithoutM:Re(e,"allowUpdateWithoutMValues",!1),supportsUploadWithItemId:Re(e,"supportsAttachmentsByUploadId",!1),supportsDeleteByAnonymous:Re(t,"allowAnonymousToDelete",!0),supportsDeleteByOthers:Re(t,"allowOthersToDelete",!0),supportsUpdateByAnonymous:Re(t,"allowAnonymousToUpdate",!0),supportsUpdateByOthers:Re(t,"allowOthersToUpdate",!0)}}_handleSublayersChange(e,t){t&&(t.forEach((e=>{e.parent=null})),this.handles.remove("sublayers-owner")),e&&(e.forEach((e=>{e.parent=this})),this.handles.add([e.on("after-add",(({item:e})=>{e.parent=this})),e.on("after-remove",(({item:e})=>{e.parent=null}))],"sublayers-owner"))}};e([C({readOnly:!0,json:{read:!1}})],_e.prototype,"capabilities",void 0),e([R("service","capabilities",["advancedQueryCapabilities","allowGeometryUpdates","allowUpdateWithoutMValues","archivingInfo","capabilities","hasAttachments","hasM","hasZ","maxRecordCount","maxRecordCountFactor","ownershipBasedAccessControlForFeatures","standardMaxRecordCount","supportedQueryFormats","supportsAdvancedQueries","supportsApplyEditsWithGlobalIds","supportsAttachmentsByUploadId","supportsAttachmentsResizing","supportsCalculate","supportsCoordinatesQuantization","supportsExceedsLimitStatistics","supportsFieldDescriptionProperty","supportsQuantizationEditMode","supportsRollbackOnFailureParameter","supportsStatistics","supportsTruncate","supportsValidateSql","tileMaxRecordCount","useStandardizedQueries"])],_e.prototype,"readCapabilities",null),e([C({json:{origins:{"portal-item":{write:!0},"web-map":{write:!0}}}})],_e.prototype,"charts",void 0),e([C({readOnly:!0})],_e.prototype,"createQueryVersion",null),e([C({type:String,json:{read:{source:"layerDefinition.copyrightText"},origins:{service:{read:{source:"copyrightText"}}}}})],_e.prototype,"copyright",void 0),e([C({type:String,json:{read:{source:"layerDefinition.displayField"},origins:{service:{read:{source:"displayField"}}}}})],_e.prototype,"displayField",void 0),e([C({type:String,json:{origins:{service:{read:!1,write:!1}},name:"layerDefinition.definitionExpression",write:{enabled:!0,allowNull:!0}}})],_e.prototype,"definitionExpression",void 0),e([C({types:n,readOnly:!0})],_e.prototype,"defaultSymbol",void 0),e([C({type:we})],_e.prototype,"dynamicDataSource",void 0),e([C({readOnly:!0})],_e.prototype,"editFieldsInfo",void 0),e([C({type:Boolean})],_e.prototype,"editingEnabled",void 0),e([R(["portal-item","web-scene"],"editingEnabled",["layerDefinition.capabilities"])],_e.prototype,"readEditingEnabled",null),e([R("web-map","editingEnabled",["capabilities","layerDefinition.capabilities"])],_e.prototype,"readEditingEnabledFromWebMap",null),e([T(["portal-item","web-scene"],"editingEnabled",{"layerDefinition.capabilities":{type:String}})],_e.prototype,"writeEditingEnabled",null),e([T("web-map","editingEnabled",{capabilities:{type:String},"layerDefinition.capabilities":{type:String}})],_e.prototype,"writeEditingEnabledToWebMap",null),e([C({readOnly:!0})],_e.prototype,"editingInfo",void 0),e([R("editingInfo")],_e.prototype,"readEditingInfo",null),e([C(ee)],_e.prototype,"elevationInfo",void 0),e([C(le)],_e.prototype,"featureReduction",void 0),e([C({...Le.fields,json:{read:{source:"layerDefinition.fields"},origins:{service:{read:!0},"web-map":{write:{target:"layerDefinition.fields",overridePolicy:Pe}}}}})],_e.prototype,"fields",void 0),e([C(Le.fieldsIndex)],_e.prototype,"fieldsIndex",void 0),e([C({type:he,json:{read:{source:"layerDefinition.floorInfo"},write:{target:"layerDefinition.floorInfo"},origins:{"web-scene":{write:!1}}}})],_e.prototype,"floorInfo",void 0),e([C({type:P,json:{name:"formInfo",write:!0,origins:{"web-scene":{read:!1,write:!1}}}})],_e.prototype,"formTemplate",void 0),e([C({type:_,json:{origins:{service:{read:{source:"extent"}}},read:{source:"layerDefinition.extent"}}})],_e.prototype,"fullExtent",void 0),e([C()],_e.prototype,"gdbVersion",void 0),e([C({readOnly:!0,type:ye,json:{read:{source:"geometryProperties"}}})],_e.prototype,"geometryFieldsInfo",void 0),e([C({type:["point","polygon","polyline","multipoint","multipatch","mesh"],json:{origins:{service:{read:Ee.read},"web-map":{write:{target:"layerDefinition.geometryType",overridePolicy:Pe,writer(e,t,r){const i=e?Ee.toJSON(e):null;i&&S(r,i,t)}}}},read:{source:"layerDefinition.geometryType",reader:Ee.read}}})],_e.prototype,"geometryType",void 0),e([C({type:Boolean,json:{origins:{service:{read:!0}},read:{source:"layerDefinition.hasM"}}})],_e.prototype,"hasM",void 0),e([C({type:Boolean,json:{origins:{service:{read:!0}},read:{source:"layerDefinition.hasZ"}}})],_e.prototype,"hasZ",void 0),e([C({readOnly:!0,type:O})],_e.prototype,"heightModelInfo",void 0),e([C({type:Date})],_e.prototype,"historicMoment",void 0),e([C(te)],_e.prototype,"id",void 0),e([C({readOnly:!0,json:{origins:{"web-map":{write:{target:"layerDefinition.type"}}}}})],_e.prototype,"isTable",void 0),e([R("service","isTable",["type","geometryType"]),R("isTable",["layerDefinition.type","layerDefinition.geometryType"])],_e.prototype,"readIsTable",null),e([T("web-map","isTable")],_e.prototype,"writeIsTable",null),e([C(re)],_e.prototype,"opacity",void 0),e([C({type:Number,json:{origins:{service:{read:{source:"id"}}},read:!1}})],_e.prototype,"layerId",void 0),e([C(ie)],_e.prototype,"legendEnabled",void 0),e([C({type:["show","hide"]})],_e.prototype,"listMode",void 0),e([C(se)],_e.prototype,"minScale",void 0),e([R("service","minScale",["minScale","effectiveMinScale"])],_e.prototype,"readMinScale",null),e([C(oe)],_e.prototype,"maxScale",void 0),e([R("service","maxScale",["maxScale","effectiveMaxScale"])],_e.prototype,"readMaxScale",null),e([C({type:String})],_e.prototype,"globalIdField",void 0),e([R("globalIdField",["layerDefinition.globalIdField","layerDefinition.fields"]),R("service","globalIdField",["globalIdField","fields"])],_e.prototype,"readGlobalIdFieldFromService",null),e([C({type:String,json:{origins:{"web-map":{write:{target:"layerDefinition.objectIdField",overridePolicy:Pe}}}}})],_e.prototype,"objectIdField",void 0),e([R("objectIdField",["layerDefinition.objectIdField","layerDefinition.fields"]),R("service","objectIdField",["objectIdField","fields"])],_e.prototype,"readObjectIdFieldFromService",null),e([C({value:"ArcGISSubtypeGroupLayer",type:["ArcGISSubtypeGroupLayer"]})],_e.prototype,"operationalLayerType",void 0),e([C(Le.outFields)],_e.prototype,"outFields",void 0),e([C({readOnly:!0})],_e.prototype,"parsedUrl",null),e([C({type:String,json:{origins:{"web-scene":{read:!0,write:!0}},read:!1}})],_e.prototype,"path",void 0),e([C({type:[me],readOnly:!0})],_e.prototype,"relationships",void 0),e([C({types:s,json:{origins:{service:{write:{target:"drawingInfo.renderer",enabled:!1}},"web-scene":{types:o,name:"layerDefinition.drawingInfo.renderer",write:{overridePolicy:(e,t,r)=>({ignoreOrigin:r?.writeLayerSchema})}}},write:{target:"layerDefinition.drawingInfo.renderer",overridePolicy:(e,t,r)=>({ignoreOrigin:r?.writeLayerSchema})}}})],_e.prototype,"renderer",null),e([R("service","renderer",["drawingInfo.renderer","defaultSymbol"]),R("renderer",["layerDefinition.drawingInfo.renderer","layerDefinition.defaultSymbol"])],_e.prototype,"readRenderer",null),e([C()],_e.prototype,"sourceJSON",void 0),e([C({type:Boolean})],_e.prototype,"returnM",void 0),e([C({type:Boolean})],_e.prototype,"returnZ",void 0),e([C(ae)],_e.prototype,"screenSizePerspectiveEnabled",void 0),e([C()],_e.prototype,"source",null),e([M("source")],_e.prototype,"castSource",null),e([R("portal-item","source",["featureSet"]),R("web-map","source",["featureSet"])],_e.prototype,"readSource",null),e([C({readOnly:!0})],_e.prototype,"serviceDefinitionExpression",void 0),e([R("service","serviceDefinitionExpression",["definitionQuery","definitionExpression"])],_e.prototype,"readServiceDefinitionExpression",null),e([C({type:Q,json:{origins:{service:{read:{source:"extent.spatialReference"}}},read:{source:"layerDefinition.extent.spatialReference"}}})],_e.prototype,"spatialReference",void 0),e([C({type:String})],_e.prototype,"subtypeField",void 0),e([C({type:l.ofType(fe),json:{origins:{service:{read:{source:"subtypes",reader:(e,t,r)=>{const s=e.map((e=>new fe({subtypeCode:e.code,renderer:i(t.drawingInfo.renderer,t,r),title:e.name})));return new(l.ofType(fe))(s)}}}}}})],_e.prototype,"sublayers",void 0),e([C({type:be})],_e.prototype,"timeInfo",void 0),e([C()],_e.prototype,"title",void 0),e([R("service","title",["name"]),R("portal-item","title",["layerDefinition.title","layerDefinition.name","title"])],_e.prototype,"readTitle",null),e([R("web-map","title",["layerDefinition.name","title"])],_e.prototype,"readTitleFromWebMap",null),e([C({type:String})],_e.prototype,"sublayerTitleMode",void 0),e([C({type:String,json:{read:{source:"timeInfo.trackIdField"}}})],_e.prototype,"trackIdField",void 0),e([C({json:{read:!1}})],_e.prototype,"type",void 0),e([C({type:String})],_e.prototype,"typeIdField",void 0),e([R("service","typeIdField"),R("typeIdField",["layerDefinition.typeIdField"])],_e.prototype,"readTypeIdField",null),e([C({readOnly:!0,json:{write:!1}})],_e.prototype,"serverGens",void 0),e([C({type:l.ofType(pe),readOnly:!0})],_e.prototype,"indexes",void 0),e([C(ne)],_e.prototype,"url",null),e([T("url")],_e.prototype,"writeUrl",null),e([C({readOnly:!0})],_e.prototype,"userIsAdmin",void 0),e([C({json:{origins:{service:{read:!0}},read:!1}})],_e.prototype,"version",void 0),e([R("service","version",["currentVersion","capabilities","drawingInfo","hasAttachments","htmlPopupType","relationships","timeInfo","typeIdField","types"])],_e.prototype,"readVersion",null),e([C({type:Boolean,json:{origins:{"portal-item":{write:{target:"layerDefinition.defaultVisibility"}}}}})],_e.prototype,"visible",void 0),e([R("portal-item","visible",["visibility","layerDefinition.defaultVisibility"])],_e.prototype,"readVisible",null),_e=e([A("esri.layers.SubtypeGroupLayer")],_e);const Oe=L({types:p}),Qe=_e;export{Qe as default};
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import"../renderers/ClassBreaksRenderer.js";import"../renderers/DictionaryRenderer.js";import"../renderers/DotDensityRenderer.js";import"../renderers/HeatmapRenderer.js";import"../renderers/PieChartRenderer.js";import"../renderers/Renderer.js";import t from"../renderers/SimpleRenderer.js";import r from"../renderers/UniqueValueRenderer.js";import{read as i}from"../renderers/support/jsonUtils.js";import{rendererTypes as s,webSceneRendererTypes as o}from"../renderers/support/types.js";import a from"../request.js";import{symbolTypes as n,symbolTypesRenderer as p}from"../symbols.js";import l from"../core/Collection.js";import u from"../core/Error.js";import{HandleOwnerMixin as d}from"../core/HandleOwner.js";import c from"../core/Handles.js";import y from"../core/has.js";import{JSONMap as h}from"../core/jsonMap.js";import m from"../core/Logger.js";import{destroyMaybe as f,isSome as b,unwrapOr as g}from"../core/maybe.js";import{MultiOriginJSONMixin as w}from"../core/MultiOriginJSONSupport.js";import{setDeepValue as v}from"../core/object.js";import{throwIfAbortError as S,throwIfAborted as I}from"../core/promiseUtils.js";import{watch as F,sync as j}from"../core/reactiveUtils.js";import{parseWhereClause as E}from"../core/sql.js";import{urlToObject as C,join as D}from"../core/urlUtils.js";import{property as x}from"../core/accessorSupport/decorators/property.js";import"../core/arrayUtils.js";import{cast as A}from"../core/accessorSupport/decorators/cast.js";import{reader as R}from"../core/accessorSupport/decorators/reader.js";import{subclass as T}from"../core/accessorSupport/decorators/subclass.js";import{writer as M}from"../core/accessorSupport/decorators/writer.js";import{createTypeReader as L}from"../core/accessorSupport/extensions/serializableProperty/reader.js";import _ from"../form/FormTemplate.js";import P from"../geometry/Extent.js";import O from"../geometry/HeightModelInfo.js";import Q from"../geometry/SpatialReference.js";import q from"./Layer.js";import{MemorySource as G}from"./graphics/sources/MemorySource.js";import{ArcGISService as U}from"./mixins/ArcGISService.js";import{BlendLayer as V}from"./mixins/BlendLayer.js";import{CustomParametersMixin as z}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as B}from"./mixins/OperationalLayer.js";import{PortalLayer as W}from"./mixins/PortalLayer.js";import{RefreshableLayer as N}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as H}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as k}from"./mixins/TemporalLayer.js";import{titleFromUrlAndName as $,parse as Z,cleanTitle as J,sanitizeUrlWithLayerId as K,writeUrlWithLayerId as X,isHostedAgolService as Y}from"./support/arcgisLayerUrl.js";import{elevationInfo as ee,id as te,opacityDrawingInfo as re,legendEnabled as ie,minScale as se,maxScale as oe,screenSizePerspectiveEnabled as ae,url as ne}from"./support/commonProperties.js";import{FeatureIndex as pe}from"./support/FeatureIndex.js";import{featureReductionProperty as le}from"./support/featureReductionUtils.js";import{defineFieldProperties as ue}from"./support/fieldProperties.js";import{fixRendererFields as de,fixTimeInfoFields as ce}from"./support/fieldUtils.js";import ye from"./support/GeometryFieldsInfo.js";import he from"./support/LayerFloorInfo.js";import me from"./support/Relationship.js";import fe from"./support/SubtypeSublayer.js";import be from"./support/TimeInfo.js";import{serviceSupportsSpatialReference as ge}from"./support/versionUtils.js";import{DataLayerSource as we}from"./support/source/DataLayerSource.js";import{loadStyleRenderer as ve}from"../renderers/support/styleUtils.js";import Se from"../rest/support/AttachmentQuery.js";import Ie from"../rest/support/FeatureSet.js";import Fe from"../rest/support/Query.js";import je from"../rest/support/RelationshipQuery.js";const Ee=new h({esriGeometryPoint:"point",esriGeometryMultipoint:"multipoint",esriGeometryPolyline:"polyline",esriGeometryPolygon:"polygon",esriGeometryMultiPatch:"multipatch"}),Ce={name:"supportsName",size:"supportsSize",contentType:"supportsContentType",keywords:"supportsKeywords",exifInfo:"supportsExifInfo"},De="SubtypeGroupLayer",xe=m.getLogger("esri.layers.SubtypeGroupLayer");function Ae(e){return e&&e instanceof l}function Re(e,t,r){return!!(e&&e.hasOwnProperty(t)?e[t]:r)}function Te(e,t,r){return e&&e.hasOwnProperty(t)?e[t]:r}function Me(e){const t=e?.supportedSpatialAggregationStatistics?.map((e=>e.toLowerCase()));return{envelope:!!t?.includes("envelopeaggregate"),centroid:!!t?.includes("centroidaggregate"),convexHull:!!t?.includes("convexhullaggregate")}}function Le(e,t){const r=e?.supportedOperationsWithCacheHint?.map((e=>e.toLowerCase()));return!!r?.includes(t.toLowerCase())}const _e=ue();function Pe(e,t,r){const i=!!r?.writeLayerSchema;return{enabled:i,ignoreOrigin:i}}let Oe=class extends(V(k(H(N(U(B(W(w(z(d(q))))))))))){constructor(...e){super(...e),this._handles=new c,this.capabilities=null,this.charts=null,this.copyright=null,this.displayField=null,this.definitionExpression=null,this.dynamicDataSource=null,this.editFieldsInfo=null,this.editingEnabled=!0,this.editingInfo=null,this.elevationInfo=null,this.featureReduction=null,this.fields=null,this.fieldsIndex=null,this.floorInfo=null,this.formTemplate=null,this.fullExtent=null,this.gdbVersion=null,this.geometryFieldsInfo=null,this.geometryType=null,this.hasM=void 0,this.hasZ=void 0,this.heightModelInfo=null,this.historicMoment=null,this.isTable=!1,this.layerId=void 0,this.legendEnabled=!0,this.minScale=0,this.maxScale=0,this.globalIdField=null,this.objectIdField=null,this.outFields=null,this.path=null,this.relationships=null,this.sourceJSON=null,this.returnM=void 0,this.returnZ=void 0,this.screenSizePerspectiveEnabled=!0,this.serviceDefinitionExpression=null,this.spatialReference=Q.WGS84,this.subtypeField=null,this.sublayers=new(l.ofType(fe)),this.timeInfo=null,this.title=null,this.sublayerTitleMode="item-title",this.trackIdField=null,this.type="subtype-group",this.typeIdField=null,this.indexes=new(l.ofType(pe)),this.userIsAdmin=!1,this.version=void 0,this.visible=!0,this.own(F((()=>this.sublayers),((e,t)=>this._handleSublayersChange(e,t)),j))}destroy(){this.source?.destroy(),this._handles=f(this._handles)}normalizeCtorArgs(e,t){return"string"==typeof e?{url:e,...t}:e}load(e){const t=b(e)?e.signal:null;if(this.portalItem&&this.portalItem.loaded&&this.source)return void this.addResolvingPromise(this.createGraphicsSource(t).then((e=>this._initLayerProperties(e))));const r=this.loadFromPortal({supportedTypes:["Feature Service","Feature Collection"]},e).catch(S).then((async()=>{if(this.url&&null==this.layerId&&/FeatureServer|MapServer\/*$/i.test(this.url)){const e=await this._fetchFirstLayerId(t);null!=e&&(this.layerId=e)}if(!this.url&&!this._hasMemorySource())throw new u("feature-layer:missing-url-or-source","Feature layer must be created with either a url or a source");return this._initLayerProperties(await this.createGraphicsSource(t))})).then((()=>this.finishLoadEditablePortalLayer(e)));return this.addResolvingPromise(r),Promise.resolve(this)}readCapabilities(e,t){return t=t.layerDefinition||t,{analytics:this._readAnalyticsCapabilities(t),attachment:this._readAttachmentCapabilities(t),data:this._readDataCapabilities(t),metadata:this._readMetadataCapabilities(t),operations:this._readOperationsCapabilities(t.capabilities||e,t),query:this._readQueryCapabilities(t),queryRelated:this._readQueryRelatedCapabilities(t),queryTopFeatures:this._readQueryTopFeaturesCapabilities(t),editing:this._readEditingCapabilities(t)}}get createQueryVersion(){return this.commitProperty("definitionExpression"),this.commitProperty("dynamicDataSource"),this.commitProperty("timeExtent"),this.commitProperty("timeOffset"),this.commitProperty("geometryType"),this.commitProperty("gdbVersion"),this.commitProperty("historicMoment"),this.commitProperty("returnZ"),this.commitProperty("capabilities"),this.commitProperty("returnM"),(this._get("createQueryVersion")||0)+1}readEditingEnabled(e,t){return this._readEditingEnabled(t,!1)}readEditingEnabledFromWebMap(e,t,r){return this._readEditingEnabled(t,!0,r)}writeEditingEnabled(e,t){this._writeEditingEnabled(e,t,!1)}writeEditingEnabledToWebMap(e,t,r,i){this._writeEditingEnabled(e,t,!0,i)}readEditingInfo(e,t){const{editingInfo:r}=t;return r?{lastEditDate:null!=r.lastEditDate?new Date(r.lastEditDate):null}:null}readIsTable(e,t){return"Table"===(t=t&&t.layerDefinition||t).type||!t.geometryType}writeIsTable(e,t,r,i){i?.writeLayerSchema&&v(r,e?"Table":"Feature Layer",t)}readMinScale(e,t){return t.effectiveMinScale||e||0}readMaxScale(e,t){return t.effectiveMaxScale||e||0}readGlobalIdFieldFromService(e,t){if((t=t.layerDefinition||t).globalIdField)return t.globalIdField;if(t.fields)for(const r of t.fields)if("esriFieldTypeGlobalID"===r.type)return r.name}readObjectIdFieldFromService(e,t){if((t=t.layerDefinition||t).objectIdField)return t.objectIdField;if(t.fields)for(const r of t.fields)if("esriFieldTypeOID"===r.type)return r.name}get parsedUrl(){const e=this.url?C(this.url):null;return null!=e&&(null!=this.dynamicDataSource?e.path=D(e.path,"dynamicLayer"):null!=this.layerId&&(e.path=D(e.path,this.layerId.toString()))),e}set renderer(e){de(e,this.fieldsIndex),this._set("renderer",e)}readRenderer(e,s,o){const a=(s=s.layerDefinition||s).drawingInfo&&s.drawingInfo.renderer||void 0;if(a){const e=i(a,s,o)||void 0;return e||xe.error("Failed to create renderer",{rendererDefinition:s.drawingInfo.renderer,layer:this,context:o}),e}if(s.defaultSymbol)return s.types&&s.types.length?new r({defaultSymbol:Qe(s.defaultSymbol,s,o),field:s.typeIdField,uniqueValueInfos:s.types.map((e=>({id:e.id,symbol:Qe(e.symbol,e,o)})))}):new t({symbol:Qe(s.defaultSymbol,s,o)})}set source(e){const t=this._get("source");t!==e&&(Ae(t)&&this._resetMemorySource(t),Ae(e)&&this._initMemorySource(e),this._set("source",e))}castSource(e){return e?Array.isArray(e)||e instanceof l?new G({layer:this,items:e}):e:null}readSource(e,t){const r=Ie.fromJSON(t.featureSet);return new G({layer:this,items:r&&r.features||[]})}readServiceDefinitionExpression(e,t){return t.definitionQuery||t.definitionExpression}readTitle(e,t){const r=t.layerDefinition&&t.layerDefinition.name||t.name,i=t.title||t.layerDefinition&&t.layerDefinition.title;if(r){const e=this.portalItem&&this.portalItem.title;if("item-title"===this.sublayerTitleMode)return this.url?$(this.url,r):r;let t=r;if(!t&&this.url){const e=Z(this.url);b(e)&&(t=e.title)}if(!t)return;return"item-title-and-service-name"===this.sublayerTitleMode&&e&&e!==t&&(t=e+" - "+t),J(t)}if("item-title"===this.sublayerTitleMode&&i)return i}readTitleFromWebMap(e,t){return t.title||t.layerDefinition&&t.layerDefinition.name}readTypeIdField(e,t){let r=(t=t.layerDefinition||t).typeIdField;if(r&&t.fields){r=r.toLowerCase();const e=t.fields.find((e=>e.name.toLowerCase()===r));e&&(r=e.name)}return r}set url(e){const t=K({layer:this,url:e,nonStandardUrlAllowed:!0,logger:xe});this._set("url",t.url),null!=t.layerId&&this._set("layerId",t.layerId)}writeUrl(e,t,r,i){X(this,e,null,t,i)}readVersion(e,t){return t.currentVersion?t.currentVersion:t.hasOwnProperty("capabilities")||t.hasOwnProperty("drawingInfo")||t.hasOwnProperty("hasAttachments")||t.hasOwnProperty("htmlPopupType")||t.hasOwnProperty("relationships")||t.hasOwnProperty("timeInfo")||t.hasOwnProperty("typeIdField")||t.hasOwnProperty("types")?10:9.3}readVisible(e,t){return t.layerDefinition&&null!=t.layerDefinition.defaultVisibility?!!t.layerDefinition.defaultVisibility:null!=t.visibility?!!t.visibility:void 0}addAttachment(e,t){return this.load().then((()=>this._checkAttachmentSupport(e))).then((()=>{if(!("addAttachment"in this.source))throw new u(De,"Layer source does not support addAttachment capability");return this.source.addAttachment(e,t)}))}updateAttachment(e,t,r){return this.load().then((()=>this._checkAttachmentSupport(e))).then((()=>{if(!("updateAttachment"in this.source))throw new u(De,"Layer source does not support updateAttachment capability");return this.source.updateAttachment(e,t,r)}))}async applyEdits(e,t){const r=await import("./graphics/editingSupport.js");return await this.load(),r.applyEdits(this,this.source,e,t)}on(e,t){return super.on(e,t)}async createGraphicsSource(e){if(this._hasMemorySource())return this.emit("graphics-source-create",{graphicsSource:this.source}),this.source.load({signal:e});const t=await import("./graphics/sources/FeatureLayerSource.js");I(e);const r=await new t.default({layer:this}).load({signal:e});return this.emit("graphics-source-create",{graphicsSource:r}),r}createQuery(){const e=new Fe,t=this.get("capabilities.data"),r=this.get("capabilities.query"),i=this.sublayers.map((e=>e.subtypeCode));e.dynamicDataSource=this.dynamicDataSource,e.gdbVersion=this.gdbVersion,e.historicMoment=this.historicMoment,e.returnGeometry=!0,r&&(e.compactGeometryEnabled=r.supportsCompactGeometry,e.defaultSpatialReferenceEnabled=r.supportsDefaultSpatialReference),t&&(t.supportsZ&&null!=this.returnZ&&(e.returnZ=this.returnZ),t.supportsM&&null!=this.returnM&&(e.returnM=this.returnM)),e.outFields=["*"],e.where=`${this.subtypeField} IN (${i.join(",")})`,this.definitionExpression&&(e.where+=` AND (${this.definitionExpression})`);const{timeOffset:s,timeExtent:o}=this;return e.timeExtent=null!=s&&null!=o?o.offset(-s.value,s.unit):o||null,e.multipatchOption="multipatch"===this.geometryType?"xyFootprint":null,e}deleteAttachments(e,t){return this.load().then((()=>this._checkAttachmentSupport(e))).then((()=>{if(!("deleteAttachments"in this.source))throw new u(De,"Layer source does not support deleteAttachments capability");return this.source.deleteAttachments(e,t)}))}fetchRecomputedExtents(e){return this.load({signal:e?.signal}).then((()=>{if(this.source.fetchRecomputedExtents)return this.source.fetchRecomputedExtents(e);throw new u(De,"Layer source does not support fetchUpdates capability")}))}getFieldDomain(e,t){return this._getLayerDomain(e)}getField(e){return this.fieldsIndex.get(e)}queryAttachments(e,t){return e=Se.from(e),this.load().then((()=>{if(!this.get("capabilities.data.supportsAttachment"))throw new u(De,"this layer doesn't support attachments");const{attachmentTypes:t,objectIds:r,globalIds:i,num:s,size:o,start:a,where:n}=e;if(!this.get("capabilities.operations.supportsQueryAttachments")){const p=r&&r.length>1,l=t&&t.length,d=i&&i.length,c=o&&o.length;if(p||l||d||c||s||a||n)throw new u(De,"when 'supportsQueryAttachments' is false, only objectIds of length 1 are supported",e)}if(!(r&&r.length||n))throw new u(De,"'objectIds' or 'where' are required to perform attachment query",e);if(!("queryAttachments"in this.source))throw new u(De,"Layer source does not support queryAttachments capability",e);return this.source.queryAttachments(e)}))}queryFeatures(e,t){const r=Fe.from(e)||this.createQuery(),i=g(r.outFields,[]);return i.includes(this.subtypeField)||(i.push(this.subtypeField),r.outFields=i),this.load().then((()=>this.source.queryFeatures(r,t))).then((e=>{if(e?.features)for(const t of e.features)t.layer=this._findSublayerForFeature(t),t.sourceLayer=this;return e}))}_findSublayerForFeature(e){const t=this.fieldsIndex.get(this.subtypeField),r=e.attributes[t.name];return this.sublayers.find((e=>e.subtypeCode===r))}queryObjectIds(e,t){return this.load().then((()=>{if(this.source.queryObjectIds)return this.source.queryObjectIds(Fe.from(e)||this.createQuery(),t);throw new u(De,"Layer source does not support queryObjectIds capability")}))}queryFeatureCount(e,t){return this.load().then((()=>{if(this.source.queryFeatureCount)return this.source.queryFeatureCount(Fe.from(e)||this.createQuery(),t);throw new u(De,"Layer source does not support queryFeatureCount capability")}))}queryExtent(e,t){return this.load().then((()=>{if(this.source.queryExtent)return this.source.queryExtent(Fe.from(e)||this.createQuery(),t);throw new u(De,"Layer source does not support queryExtent capability")}))}queryRelatedFeatures(e,t){return this.load().then((()=>{if("queryRelatedFeatures"in this.source)return this.source.queryRelatedFeatures(je.from(e),t);throw new u(De,"Layer source does not support queryRelatedFeatures capability")}))}queryRelatedFeaturesCount(e,t){return this.load().then((()=>{if("queryRelatedFeaturesCount"in this.source)return this.source.queryRelatedFeaturesCount(je.from(e),t);throw new u(De,"Layer source does not support queryRelatedFeaturesCount capability")}))}read(e,t){const r=e.featureCollection;if(r){const e=r.layers;e&&1===e.length&&(super.read(e[0],t),null!=r.showLegend&&super.read({showLegend:r.showLegend},t))}super.read(e,t),t&&"service"===t.origin&&this.revert(["objectIdField","fields","timeInfo","spatialReference"],"service")}write(e,t){const r=(t={...t,writeLayerSchema:t?.writeLayerSchema??this._hasMemorySource()}).origin,i=t.layerContainerType,s=t.messages;if(this.isTable){if("web-scene"===r||"web-map"===r&&"tables"!==i)return s&&s.push(new u("layer:unsupported",`Layer (${this.title}, ${this.id}) of type '${this.declaredClass}' using a Table source cannot be written to web scenes and web maps`,{layer:this})),null;if(this._hasMemorySource())return s&&s.push(new u("layer:unsupported",`Layer (${this.title}, ${this.id}) of type '${this.declaredClass}' using an in-memory Table source cannot be written to web scenes and web maps`,{layer:this})),null}else if(this.loaded&&"web-map"===r&&"tables"===i)return s&&s.push(new u("layer:unsupported",`Layer (${this.title}, ${this.id}) of type '${this.declaredClass}' using a non-table source cannot be written to tables in web maps`,{layer:this})),null;return super.write(e,t)}serviceSupportsSpatialReference(e){return ge(this,e)}_readEditingEnabled(e,t,r){let i=e.layerDefinition?.capabilities;return i?this._hasEditingCapability(i):(i=e.capabilities,!(t&&"web-map"===r?.origin&&!this._hasMemorySource()&&i)||this._hasEditingCapability(i))}_hasEditingCapability(e){return e.toLowerCase().split(",").map((e=>e.trim())).includes("editing")}_writeEditingEnabled(e,t,r,i){if(!e){const e=this.capabilities?.operations?.supportsSync?"Query,Sync":"Query";v("layerDefinition.capabilities",e,t),r&&!i?.writeLayerSchema&&(t.capabilities=e)}}_checkAttachmentSupport(e){const{attributes:t}=e,{objectIdField:r}=this;return this.get("capabilities.data.supportsAttachment")?e?t?t[r]?void 0:Promise.reject(new u(De,`feature is missing the identifying attribute ${r}`)):Promise.reject(new u(De,"'attributes' are required on a feature to query attachments")):Promise.reject(new u(De,"A feature is required to add/delete/update attachments")):Promise.reject(new u(De,"this layer doesn't support attachments"))}_getLayerDomain(e){const t=this.fieldsIndex.get(e);return t?t.domain:null}_fetchFirstLayerId(e){return a(this.url,{query:{f:"json",...this.customParameters},responseType:"json",signal:e}).then((e=>{const t=e.data;if(t)return Array.isArray(t.layers)&&t.layers.length>0?t.layers[0].id:Array.isArray(t.tables)&&t.tables.length>0?t.tables[0].id:void 0}))}async _initLayerProperties(e){return this._set("source",e),e.sourceJSON&&(this.sourceJSON=e.sourceJSON,this.read(e.sourceJSON,{origin:"service",url:this.parsedUrl})),this._verifySource(),this._verifyFields(),de(this.renderer,this.fieldsIndex),ce(this.timeInfo,this.fieldsIndex),ve(this,{origin:"service"})}async hasDataChanged(){if(this.source?.refresh)try{const{dataChanged:e,updates:t}=await(this.source?.refresh());if(b(t)&&(this.sourceJSON={...this.sourceJSON,...t},this.read(t,{origin:"service",url:this.parsedUrl})),e)return!0}catch{}if(this.definitionExpression)try{return(await E(this.definitionExpression,this.fieldsIndex)).hasDateFunctions}catch{}return!1}_verifyFields(){const e=this.parsedUrl&&this.parsedUrl.path||"undefined";this.objectIdField||console.log("SubtypeGroupLayer: 'objectIdField' property is not defined (url: "+e+")"),this.isTable||this._hasMemorySource()||-1!==e.search(/\/FeatureServer\//i)||this.fields?.some((e=>"geometry"===e.type))||console.log("SubtypeGroupLayer: unable to find field of type 'geometry' in the layer 'fields' list. If you are using a map service layer, features will not have geometry (url: "+e+")")}_verifySource(){if(this._hasMemorySource()){if(this.url)throw new u("feature-layer:mixed-source-and-url","SubtypeGroupLayer cannot be created with both an in-memory source and a url")}else if(!this.url)throw new u("feature-layer:source-or-url-required","SubtypeGroupLayer requires either a url, a valid portal item or a source")}_initMemorySource(e){e.forEach((e=>{e.layer=this,e.sourceLayer=this})),this._handles.add([e.on("after-add",(e=>{e.item.layer=this,e.item.sourceLayer=this})),e.on("after-remove",(e=>{e.item.layer=null,e.item.sourceLayer=null}))],"fl-source")}_resetMemorySource(e){e.forEach((e=>{e.layer=null,e.sourceLayer=null})),this._handles.remove("fl-source")}_hasMemorySource(){return!(this.url||!this.source)}_readAnalyticsCapabilities(e){return{supportsCacheHint:Le(e.advancedQueryCapabilities,"queryAnalytics")}}_readAttachmentCapabilities(e){const t=e.attachmentProperties,r={supportsName:!1,supportsSize:!1,supportsContentType:!1,supportsKeywords:!1,supportsExifInfo:!1,supportsCacheHint:Le(e.advancedQueryCapabilities,"queryAttachments"),supportsResize:Re(e,"supportsAttachmentsResizing",!1)};return t&&Array.isArray(t)&&t.forEach((e=>{const t=Ce[e.name];t&&(r[t]=!!e.isEnabled)})),r}_readDataCapabilities(e){return{isVersioned:Re(e,"isDataVersioned",!1),supportsAttachment:Re(e,"hasAttachments",!1),supportsM:Re(e,"hasM",!1),supportsZ:Re(e,"hasZ",!1)}}_readMetadataCapabilities(e){return{supportsAdvancedFieldProperties:Re(e,"supportsFieldDescriptionProperty",!1)}}_readOperationsCapabilities(e,t){const r=e?e.toLowerCase().split(",").map((e=>e.trim())):[],i=r.includes("editing");let s=i&&r.includes("create"),o=i&&r.includes("delete"),a=i&&r.includes("update");const n=r.includes("changetracking"),p=t.advancedQueryCapabilities;return i&&!(s||o||a)&&(s=o=a=!0),{supportsCalculate:Re(t,"supportsCalculate",!1),supportsTruncate:Re(t,"supportsTruncate",!1),supportsValidateSql:Re(t,"supportsValidateSql",!1),supportsAdd:s,supportsDelete:o,supportsEditing:i,supportsChangeTracking:n,supportsQuery:r.includes("query"),supportsQueryAnalytics:Re(p,"supportsQueryAnalytic",!1),supportsQueryAttachments:Re(p,"supportsQueryAttachments",!1),supportsQueryTopFeatures:Re(p,"supportsTopFeaturesQuery",!1),supportsResizeAttachments:Re(t,"supportsAttachmentsResizing",!1),supportsSync:r.includes("sync"),supportsUpdate:a,supportsExceedsLimitStatistics:Re(t,"supportsExceedsLimitStatistics",!1)}}_readQueryCapabilities(e){const t=e.advancedQueryCapabilities,r=e.ownershipBasedAccessControlForFeatures,i=e.archivingInfo,s=this.url?.includes("MapServer"),o=!y("mapserver-pbf-enabled")&&s&&this.version<10.81,a=Y(this.url),n=(e.supportedQueryFormats||"").split(",").reduce(((e,t)=>{const r=t.toLowerCase().trim();return r&&e.add(r),e}),new Set);return{supportsStatistics:Re(t,"supportsStatistics",e.supportsStatistics),supportsPercentileStatistics:Re(t,"supportsPercentileStatistics",!1),supportsSpatialAggregationStatistics:Re(t,"supportsSpatialAggregationStatistics",!1),supportedSpatialAggregationStatistics:Me(t),supportsCentroid:Re(t,"supportsReturningGeometryCentroid",!1),supportsDistance:Re(t,"supportsQueryWithDistance",!1),supportsDistinct:Re(t,"supportsDistinct",e.supportsAdvancedQueries),supportsExtent:Re(t,"supportsReturningQueryExtent",!1),supportsGeometryProperties:Re(t,"supportsReturningGeometryProperties",!1),supportsHavingClause:Re(t,"supportsHavingClause",!1),supportsOrderBy:Re(t,"supportsOrderBy",e.supportsAdvancedQueries),supportsPagination:Re(t,"supportsPagination",!1),supportsQuantization:Re(e,"supportsCoordinatesQuantization",!1),supportsQuantizationEditMode:Re(e,"supportsQuantizationEditMode",!1),supportsQueryGeometry:Re(e,"supportsReturningQueryGeometry",!1),supportsResultType:Re(t,"supportsQueryWithResultType",!1),supportsMaxRecordCountFactor:Re(t,"supportsMaxRecordCountFactor",!1),supportsSqlExpression:Re(t,"supportsSqlExpression",!1),supportsStandardizedQueriesOnly:Re(e,"useStandardizedQueries",!1),supportsTopFeaturesQuery:Re(t,"supportsTopFeaturesQuery",!1),supportsQueryByOthers:Re(r,"allowOthersToQuery",!0),supportsHistoricMoment:Re(i,"supportsQueryWithHistoricMoment",!1),supportsFormatPBF:!o&&n.has("pbf"),supportsDisjointSpatialRelationship:Re(t,"supportsDisjointSpatialRel",!1),supportsCacheHint:Re(t,"supportsQueryWithCacheHint",!1)||Le(t,"query"),supportsDefaultSpatialReference:Re(t,"supportsDefaultSR",!1),supportsCompactGeometry:a,maxRecordCountFactor:Te(e,"maxRecordCountFactor",void 0),maxRecordCount:Te(e,"maxRecordCount",void 0),standardMaxRecordCount:Te(e,"standardMaxRecordCount",void 0),tileMaxRecordCount:Te(e,"tileMaxRecordCount",void 0)}}_readQueryRelatedCapabilities(e){const t=e.advancedQueryCapabilities,r=Re(t,"supportsAdvancedQueryRelated",!1);return{supportsPagination:Re(t,"supportsQueryRelatedPagination",!1),supportsCount:r,supportsOrderBy:r,supportsCacheHint:Le(t,"queryRelated")}}_readQueryTopFeaturesCapabilities(e){return{supportsCacheHint:Le(e.advancedQueryCapabilities,"queryTopFilter")}}_readEditingCapabilities(e){const t=e.ownershipBasedAccessControlForFeatures;return{supportsGeometryUpdate:Re(e,"allowGeometryUpdates",!0),supportsGlobalId:Re(e,"supportsApplyEditsWithGlobalIds",!1),supportsReturnServiceEditsInSourceSpatialReference:Re(e,"supportsReturnServiceEditsInSourceSpatialReference",!1),supportsRollbackOnFailure:Re(e,"supportsRollbackOnFailureParameter",!1),supportsUpdateWithoutM:Re(e,"allowUpdateWithoutMValues",!1),supportsUploadWithItemId:Re(e,"supportsAttachmentsByUploadId",!1),supportsDeleteByAnonymous:Re(t,"allowAnonymousToDelete",!0),supportsDeleteByOthers:Re(t,"allowOthersToDelete",!0),supportsUpdateByAnonymous:Re(t,"allowAnonymousToUpdate",!0),supportsUpdateByOthers:Re(t,"allowOthersToUpdate",!0)}}_handleSublayersChange(e,t){t&&(t.forEach((e=>{e.parent=null})),this.handles.remove("sublayers-owner")),e&&(e.forEach((e=>{e.parent=this})),this.handles.add([e.on("after-add",(({item:e})=>{e.parent=this})),e.on("after-remove",(({item:e})=>{e.parent=null}))],"sublayers-owner"))}};e([x({readOnly:!0,json:{read:!1}})],Oe.prototype,"capabilities",void 0),e([R("service","capabilities",["advancedQueryCapabilities","allowGeometryUpdates","allowUpdateWithoutMValues","archivingInfo","capabilities","hasAttachments","hasM","hasZ","maxRecordCount","maxRecordCountFactor","ownershipBasedAccessControlForFeatures","standardMaxRecordCount","supportedQueryFormats","supportsAdvancedQueries","supportsApplyEditsWithGlobalIds","supportsAttachmentsByUploadId","supportsAttachmentsResizing","supportsCalculate","supportsCoordinatesQuantization","supportsExceedsLimitStatistics","supportsFieldDescriptionProperty","supportsQuantizationEditMode","supportsRollbackOnFailureParameter","supportsStatistics","supportsTruncate","supportsValidateSql","tileMaxRecordCount","useStandardizedQueries"])],Oe.prototype,"readCapabilities",null),e([x({json:{origins:{"portal-item":{write:!0},"web-map":{write:!0}}}})],Oe.prototype,"charts",void 0),e([x({readOnly:!0})],Oe.prototype,"createQueryVersion",null),e([x({type:String,json:{read:{source:"layerDefinition.copyrightText"},origins:{service:{read:{source:"copyrightText"}}}}})],Oe.prototype,"copyright",void 0),e([x({type:String,json:{read:{source:"layerDefinition.displayField"},origins:{service:{read:{source:"displayField"}}}}})],Oe.prototype,"displayField",void 0),e([x({type:String,json:{origins:{service:{read:!1,write:!1}},name:"layerDefinition.definitionExpression",write:{enabled:!0,allowNull:!0}}})],Oe.prototype,"definitionExpression",void 0),e([x({types:n,readOnly:!0})],Oe.prototype,"defaultSymbol",void 0),e([x({type:we})],Oe.prototype,"dynamicDataSource",void 0),e([x({readOnly:!0})],Oe.prototype,"editFieldsInfo",void 0),e([x({type:Boolean})],Oe.prototype,"editingEnabled",void 0),e([R(["portal-item","web-scene"],"editingEnabled",["layerDefinition.capabilities"])],Oe.prototype,"readEditingEnabled",null),e([R("web-map","editingEnabled",["capabilities","layerDefinition.capabilities"])],Oe.prototype,"readEditingEnabledFromWebMap",null),e([M(["portal-item","web-scene"],"editingEnabled",{"layerDefinition.capabilities":{type:String}})],Oe.prototype,"writeEditingEnabled",null),e([M("web-map","editingEnabled",{capabilities:{type:String},"layerDefinition.capabilities":{type:String}})],Oe.prototype,"writeEditingEnabledToWebMap",null),e([x({readOnly:!0})],Oe.prototype,"editingInfo",void 0),e([R("editingInfo")],Oe.prototype,"readEditingInfo",null),e([x(ee)],Oe.prototype,"elevationInfo",void 0),e([x(le)],Oe.prototype,"featureReduction",void 0),e([x({..._e.fields,json:{read:{source:"layerDefinition.fields"},origins:{service:{read:!0},"web-map":{write:{target:"layerDefinition.fields",overridePolicy:Pe}}}}})],Oe.prototype,"fields",void 0),e([x(_e.fieldsIndex)],Oe.prototype,"fieldsIndex",void 0),e([x({type:he,json:{read:{source:"layerDefinition.floorInfo"},write:{target:"layerDefinition.floorInfo"},origins:{"web-scene":{write:!1}}}})],Oe.prototype,"floorInfo",void 0),e([x({type:_,json:{name:"formInfo",write:!0,origins:{"web-scene":{read:!1,write:!1}}}})],Oe.prototype,"formTemplate",void 0),e([x({type:P,json:{origins:{service:{read:{source:"extent"}}},read:{source:"layerDefinition.extent"}}})],Oe.prototype,"fullExtent",void 0),e([x()],Oe.prototype,"gdbVersion",void 0),e([x({readOnly:!0,type:ye,json:{read:{source:"geometryProperties"}}})],Oe.prototype,"geometryFieldsInfo",void 0),e([x({type:["point","polygon","polyline","multipoint","multipatch","mesh"],json:{origins:{service:{read:Ee.read},"web-map":{write:{target:"layerDefinition.geometryType",overridePolicy:Pe,writer(e,t,r){const i=e?Ee.toJSON(e):null;i&&v(r,i,t)}}}},read:{source:"layerDefinition.geometryType",reader:Ee.read}}})],Oe.prototype,"geometryType",void 0),e([x({type:Boolean,json:{origins:{service:{read:!0}},read:{source:"layerDefinition.hasM"}}})],Oe.prototype,"hasM",void 0),e([x({type:Boolean,json:{origins:{service:{read:!0}},read:{source:"layerDefinition.hasZ"}}})],Oe.prototype,"hasZ",void 0),e([x({readOnly:!0,type:O})],Oe.prototype,"heightModelInfo",void 0),e([x({type:Date})],Oe.prototype,"historicMoment",void 0),e([x(te)],Oe.prototype,"id",void 0),e([x({readOnly:!0,json:{origins:{"web-map":{write:{target:"layerDefinition.type"}}}}})],Oe.prototype,"isTable",void 0),e([R("service","isTable",["type","geometryType"]),R("isTable",["layerDefinition.type","layerDefinition.geometryType"])],Oe.prototype,"readIsTable",null),e([M("web-map","isTable")],Oe.prototype,"writeIsTable",null),e([x(re)],Oe.prototype,"opacity",void 0),e([x({type:Number,json:{origins:{service:{read:{source:"id"}}},read:!1}})],Oe.prototype,"layerId",void 0),e([x(ie)],Oe.prototype,"legendEnabled",void 0),e([x({type:["show","hide"]})],Oe.prototype,"listMode",void 0),e([x(se)],Oe.prototype,"minScale",void 0),e([R("service","minScale",["minScale","effectiveMinScale"])],Oe.prototype,"readMinScale",null),e([x(oe)],Oe.prototype,"maxScale",void 0),e([R("service","maxScale",["maxScale","effectiveMaxScale"])],Oe.prototype,"readMaxScale",null),e([x({type:String})],Oe.prototype,"globalIdField",void 0),e([R("globalIdField",["layerDefinition.globalIdField","layerDefinition.fields"]),R("service","globalIdField",["globalIdField","fields"])],Oe.prototype,"readGlobalIdFieldFromService",null),e([x({type:String,json:{origins:{"web-map":{write:{target:"layerDefinition.objectIdField",overridePolicy:Pe}}}}})],Oe.prototype,"objectIdField",void 0),e([R("objectIdField",["layerDefinition.objectIdField","layerDefinition.fields"]),R("service","objectIdField",["objectIdField","fields"])],Oe.prototype,"readObjectIdFieldFromService",null),e([x({value:"ArcGISSubtypeGroupLayer",type:["ArcGISSubtypeGroupLayer"]})],Oe.prototype,"operationalLayerType",void 0),e([x(_e.outFields)],Oe.prototype,"outFields",void 0),e([x({readOnly:!0})],Oe.prototype,"parsedUrl",null),e([x({type:String,json:{origins:{"web-scene":{read:!0,write:!0}},read:!1}})],Oe.prototype,"path",void 0),e([x({type:[me],readOnly:!0})],Oe.prototype,"relationships",void 0),e([x({types:s,json:{origins:{service:{write:{target:"drawingInfo.renderer",enabled:!1}},"web-scene":{types:o,name:"layerDefinition.drawingInfo.renderer",write:{overridePolicy:(e,t,r)=>({ignoreOrigin:r?.writeLayerSchema})}}},write:{target:"layerDefinition.drawingInfo.renderer",overridePolicy:(e,t,r)=>({ignoreOrigin:r?.writeLayerSchema})}}})],Oe.prototype,"renderer",null),e([R("service","renderer",["drawingInfo.renderer","defaultSymbol"]),R("renderer",["layerDefinition.drawingInfo.renderer","layerDefinition.defaultSymbol"])],Oe.prototype,"readRenderer",null),e([x()],Oe.prototype,"sourceJSON",void 0),e([x({type:Boolean})],Oe.prototype,"returnM",void 0),e([x({type:Boolean})],Oe.prototype,"returnZ",void 0),e([x(ae)],Oe.prototype,"screenSizePerspectiveEnabled",void 0),e([x()],Oe.prototype,"source",null),e([A("source")],Oe.prototype,"castSource",null),e([R("portal-item","source",["featureSet"]),R("web-map","source",["featureSet"])],Oe.prototype,"readSource",null),e([x({readOnly:!0})],Oe.prototype,"serviceDefinitionExpression",void 0),e([R("service","serviceDefinitionExpression",["definitionQuery","definitionExpression"])],Oe.prototype,"readServiceDefinitionExpression",null),e([x({type:Q,json:{origins:{service:{read:{source:"extent.spatialReference"}}},read:{source:"layerDefinition.extent.spatialReference"}}})],Oe.prototype,"spatialReference",void 0),e([x({type:String})],Oe.prototype,"subtypeField",void 0),e([x({type:l.ofType(fe),json:{origins:{service:{read:{source:"subtypes",reader:(e,t,r)=>{const s=e.map((e=>new fe({subtypeCode:e.code,renderer:i(t.drawingInfo.renderer,t,r),title:e.name})));return new(l.ofType(fe))(s)}}}}}})],Oe.prototype,"sublayers",void 0),e([x({type:be})],Oe.prototype,"timeInfo",void 0),e([x()],Oe.prototype,"title",void 0),e([R("service","title",["name"]),R("portal-item","title",["layerDefinition.title","layerDefinition.name","title"])],Oe.prototype,"readTitle",null),e([R("web-map","title",["layerDefinition.name","title"])],Oe.prototype,"readTitleFromWebMap",null),e([x({type:String})],Oe.prototype,"sublayerTitleMode",void 0),e([x({type:String,json:{read:{source:"timeInfo.trackIdField"}}})],Oe.prototype,"trackIdField",void 0),e([x({json:{read:!1}})],Oe.prototype,"type",void 0),e([x({type:String})],Oe.prototype,"typeIdField",void 0),e([R("service","typeIdField"),R("typeIdField",["layerDefinition.typeIdField"])],Oe.prototype,"readTypeIdField",null),e([x({readOnly:!0,json:{write:!1}})],Oe.prototype,"serverGens",void 0),e([x({type:l.ofType(pe),readOnly:!0})],Oe.prototype,"indexes",void 0),e([x(ne)],Oe.prototype,"url",null),e([M("url")],Oe.prototype,"writeUrl",null),e([x({readOnly:!0})],Oe.prototype,"userIsAdmin",void 0),e([x({json:{origins:{service:{read:!0}},read:!1}})],Oe.prototype,"version",void 0),e([R("service","version",["currentVersion","capabilities","drawingInfo","hasAttachments","htmlPopupType","relationships","timeInfo","typeIdField","types"])],Oe.prototype,"readVersion",null),e([x({type:Boolean,json:{origins:{"portal-item":{write:{target:"layerDefinition.defaultVisibility"}}}}})],Oe.prototype,"visible",void 0),e([R("portal-item","visible",["visibility","layerDefinition.defaultVisibility"])],Oe.prototype,"readVisible",null),Oe=e([T("esri.layers.SubtypeGroupLayer")],Oe);const Qe=L({types:p}),qe=Oe;export{qe as default};
|