UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

1 lines • 21.9 kB
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[8111],{69540:(t,e,i)=>{i.d(e,{A:()=>d});var s=i(90237),n=i(69622),r=(i(44208),i(4718)),o=(i(53966),i(97768)),a=i(35666),h=i(88620),l=i(40608);const u=t=>{let e=class extends t{clone(){const t=(0,h.oY)(this);(0,o.Lw)(t,"unable to clone instance of non-accessor class");const e=t.metadata,i=t.store,s={},n=new Map;for(const t in e){const o=e[t],h=i?.originOf(t),l=o.clonable;if(o.readOnly||!1===l||h!==a.Gr.USER&&h!==a.Gr.DEFAULTS&&h!==a.Gr.WEB_MAP&&h!==a.Gr.WEB_SCENE)continue;const u=this[t];let c=null;c="function"==typeof l?l(u):"reference"===l?u:(0,r.TU)(u),null!=u&&null==c||(h===a.Gr.DEFAULTS?n.set(t,c):s[t]=c)}const l=new(0,Object.getPrototypeOf(this).constructor)(s);if(n.size){const t=(0,h.oY)(l)?.store;if(t)for(const[e,i]of n)t.set(e,i,a.Gr.DEFAULTS)}return l}};return e=(0,s._)([(0,l.$)("esri.core.Clonable")],e),e};let c=class extends(u(n.A)){};c=(0,s._)([(0,l.$)("esri.core.Clonable")],c),(c||(c={})).ClonableMixin=u;const d=c},66344:(t,e,i)=>{i.d(e,{q:()=>h});var s,n,r=i(3694);(n=s||(s={}))[n.ALL=0]="ALL",n[n.SOME=1]="SOME";class o{get size(){return this._size}constructor(t=10485760){this._maxSize=t,this._db=new Map,this._size=0,this._hit=0,this._miss=0,this._removeFuncs=new r.A,this._users=new r.A}destroy(){this.clearAll(),this._removeFuncs.clear(),this._users.clear()}register(t){this._users.push(t)}deregister(t){this._users.removeUnordered(t)}registerRemoveFunc(t,e){this._removeFuncs.push([t,e])}deregisterRemoveFunc(t){this._removeFuncs.filterInPlace((e=>e[0]!==t))}get maxSize(){return this._maxSize}set maxSize(t){this._maxSize=Math.max(t,-1),this._checkSize()}getSize(t,e){const i=this._db.get(t.id+e);return i?.size??0}put(t,e,i,n,r){e=t.id+e;const o=this._db.get(e);if(o&&(this._size-=o.size,t.size-=o.size,this._db.delete(e),o.entry!==i&&this._notifyRemove(e,o.entry,o.size,s.ALL)),n>this._maxSize)return void this._notifyRemove(e,i,n,s.ALL);if(void 0===i)return void console.warn("Refusing to cache undefined entry ");if(!n||n<0)return console.warn(`Refusing to cache entry with size ${n} for key ${e}`),void this._notifyRemove(e,i,0,s.ALL);const h=1+Math.max(r,-4)- -3;this._db.set(e,new a(i,n,h)),this._size+=n,t.size+=n,this._checkSize()}updateSize(t,e,i,n){e=t.id+e;const r=this._db.get(e);if(r&&r.entry===i){for(this._size-=r.size,t.size-=r.size;n>this._maxSize;){const t=this._notifyRemove(e,i,n,s.SOME);if(!(null!=t&&t>0))return void this._db.delete(e);n=t}r.size=n,this._size+=n,t.size+=n,this._checkSize()}}pop(t,e){e=t.id+e;const i=this._db.get(e);if(i)return this._size-=i.size,t.size-=i.size,this._db.delete(e),++this._hit,i.entry;++this._miss}get(t,e){e=t.id+e;const i=this._db.get(e);if(void 0!==i)return this._db.delete(e),i.lives=i.lifetime,this._db.set(e,i),++this._hit,i.entry;++this._miss}peek(t,e){const i=this._db.get(t.id+e);return i?++this._hit:++this._miss,i?.entry}get performanceInfo(){const t={Size:Math.round(this._size/1048576)+"/"+Math.round(this._maxSize/1048576)+"MB","Hit rate":Math.round(100*this._getHitRate())+"%",Entries:this._db.size.toString()},e={},i=new Array;this._db.forEach(((t,s)=>{const n=t.lifetime;i[n]=(i[n]||0)+t.size,this._users.forAll((i=>{const{id:n,name:r}=i;if(s.startsWith(n)){const i=e[r]||0;e[r]=i+t.size}}))}));const s={};this._users.forAll((t=>{const i=t.name;if("hitRate"in t&&"number"==typeof t.hitRate&&!isNaN(t.hitRate)&&t.hitRate>0){const n=e[i]||0;e[i]=n,s[i]=Math.round(100*t.hitRate)+"%"}else s[i]="0%"}));const n=Object.keys(e);n.sort(((t,i)=>e[i]-e[t])),n.forEach((i=>t[i]=Math.round(e[i]/2**20)+"MB / "+s[i]));for(let e=i.length-1;e>=0;--e){const s=i[e];s&&(t["Priority "+(e+-3-1)]=Math.round(s/this._size*100)+"%")}return t}resetStats(){this._hit=this._miss=0,this._users.forAll((t=>t.resetHitRate()))}clear(t){const e=t.id;this._db.forEach(((t,i)=>{i.startsWith(e)&&(this._size-=t.size,this._db.delete(i),this._notifyRemove(i,t.entry,t.size,s.ALL))})),t.size=0}clearAll(){this._db.forEach(((t,e)=>this._notifyRemove(e,t.entry,t.size,s.ALL))),this._users.forAll((t=>t.size=0)),this._size=0,this._db.clear()}_getHitRate(){return this._hit/(this._hit+this._miss)}_notifyRemove(t,e,i,s){let n;return this._removeFuncs.some((r=>{if(t.startsWith(r[0])){const t=r[1](e,s,i);return"number"==typeof t&&(n=t),!0}return!1})),n}_checkSize(){this._users.forAll((t=>this._checkSizeLimits(t))),this._checkSizeLimits()}_checkSizeLimits(t){const e=t??this;if(e.maxSize<0||e.size<=e.maxSize)return;const i=t?.id;let s=!0;for(;s;){s=!1;for(const[n,r]of this._db)if(0===r.lifetime&&(!i||n.startsWith(i))){if(this._purgeItem(n,r,t),e.size<=.9*e.maxSize)return;s||=this._db.has(n)}}for(const[s,n]of this._db)if((!i||s.startsWith(i))&&(this._purgeItem(s,n,t),e.size<=.9*e.maxSize))return}_purgeItem(t,e,i=this._users.find((e=>t.startsWith(e.id)))){if(this._db.delete(t),e.lives<=1){this._size-=e.size,i&&(i.size-=e.size);const n=this._notifyRemove(t,e.entry,e.size,s.SOME);null!=n&&n>0&&(this._size+=n,i&&(i.size+=n),e.lives=e.lifetime,e.size=n,this._db.set(t,e))}else--e.lives,this._db.set(t,e)}}class a{constructor(t,e,i){this.entry=t,this.size=e,this.lifetime=i,this.lives=i}}class h{constructor(t,e){this._storage=new o,this.id="",this.name="",this.size=0,this._storage.maxSize=t,this._storage.register(this),e&&this._storage.registerRemoveFunc("",e)}destroy(){this._storage.deregister(this),this._storage.destroy()}put(t,e,i=1){this._storage.put(this,t,e,i,1)}pop(t){return this._storage.pop(this,t)}get(t){return this._storage.get(this,t)}clear(){this._storage.clearAll()}get maxSize(){return this._storage.maxSize}set maxSize(t){this._storage.maxSize=t}resetHitRate(){}}},60999:(t,e,i)=>{i.d(e,{DZ:()=>m,Ke:()=>_,Tj:()=>u,UT:()=>f,jJ:()=>l});var s=i(90237),n=i(69622),r=i(97768),o=i(74887),a=i(10107),h=i(40608);function l(t,e,i){return(0,o.Lx)(t.map(((t,s)=>e.apply(i,[t,s]))))}async function u(t,e,i){return(await(0,o.Lx)(t.map(((t,s)=>e.apply(i,[t,s]))))).map((t=>t.value))}function c(t){return{ok:!0,value:t}}function d(t){return{ok:!1,error:t}}async function _(t){if(null==t)return{ok:!1,error:new Error("no promise provided")};try{return c(await t)}catch(t){return d(t)}}async function m(t){try{return c(await t)}catch(t){return(0,o.QP)(t),d(t)}}function f(t,e){return new g(t,e)}let g=class extends n.A{get value(){return null!=(t=this._result)&&!0===t.ok?t.value:null;var t}get error(){return null!=(t=this._result)&&!1===t.ok?t.error:null;var t}get finished(){return null!=this._result}constructor(t,e){super({}),this._result=null,this._abortHandle=null,this.abort=()=>{this._abortController=(0,r.DC)(this._abortController)},this.remove=this.abort,this._abortController=new AbortController;const{signal:i}=this._abortController;this.promise=t(i),this.promise.then((t=>{this._result=c(t),this._cleanup()}),(t=>{this._result=d(t),this._cleanup()})),this._abortHandle=(0,o.u7)(e,this.abort)}normalizeCtorArgs(){return{}}destroy(){this.abort()}_cleanup(){this._abortHandle=(0,r.xt)(this._abortHandle),this._abortController=null}};(0,s._)([(0,a.MZ)()],g.prototype,"value",null),(0,s._)([(0,a.MZ)()],g.prototype,"error",null),(0,s._)([(0,a.MZ)()],g.prototype,"finished",null),(0,s._)([(0,a.MZ)()],g.prototype,"promise",void 0),(0,s._)([(0,a.MZ)()],g.prototype,"_result",void 0),g=(0,s._)([(0,h.$)("esri.core.asyncUtils.ReactiveTask")],g)},75503:(t,e,i)=>{i.d(e,{E:()=>I,w:()=>a});var s=i(4576),n=i(21818),r=(i(44208),i(3694)),o=i(11006);class a{constructor(t=9,e){this._compareMinX=d,this._compareMinY=_,this._toBBox=t=>t,this._maxEntries=Math.max(4,t||9),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),e&&("function"==typeof e?this._toBBox=e:this._initFormat(e)),this.clear()}destroy(){this.clear(),v.prune(),M.prune(),B.prune(),z.prune()}all(t){h(this._data,t)}search(t,e){let i=this._data;const s=this._toBBox;if(p(t,i))for(v.clear();i;){for(let n=0,r=i.children.length;n<r;n++){const r=i.children[n],o=i.leaf?s(r):r;p(t,o)&&(i.leaf?e(r):x(t,o)?h(r,e):v.push(r))}i=v.pop()}}collides(t){let e=this._data;const i=this._toBBox;if(!p(t,e))return!1;for(v.clear();e;){for(let s=0,n=e.children.length;s<n;s++){const n=e.children[s],r=e.leaf?i(n):n;if(p(t,r)){if(e.leaf||x(t,r))return!0;v.push(n)}}e=v.pop()}return!1}load(t){if(!t.length)return this;if(t.length<this._minEntries){for(let e=0,i=t.length;e<i;e++)this.insert(t[e]);return this}let e=this._build(t.slice(),0,t.length-1,0);if(this._data.children.length)if(this._data.height===e.height)this._splitRoot(this._data,e);else{if(this._data.height<e.height){const t=this._data;this._data=e,e=t}this._insert(e,this._data.height-e.height-1,!0)}else this._data=e;return this}insert(t){return t&&this._insert(t,this._data.height-1),this}clear(){return this._data=new w([]),this}remove(t){if(!t)return this;let e,i=this._data,r=null,o=0,a=!1;const h=this._toBBox(t);for(B.clear(),z.clear();i||B.length>0;){if(i||(i=B.pop(),r=B.data[B.length-1],o=z.pop()??0,a=!0),i.leaf&&(e=(0,s.qh)(i.children,(0,n.zI)(t),i.children.length,i.indexHint),-1!==e))return i.children.splice(e,1),B.push(i),this._condense(B),this;a||i.leaf||!x(i,h)?r?(o++,i=r.children[o],a=!1):i=null:(B.push(i),z.push(o),o=0,r=i,i=i.children[0])}return this}toJSON(){return this._data}fromJSON(t){return this._data=t,this}_build(t,e,i,s){const n=i-e+1;let r=this._maxEntries;if(n<=r){const s=new w(t.slice(e,i+1));return l(s,this._toBBox),s}s||(s=Math.ceil(Math.log(n)/Math.log(r)),r=Math.ceil(n/r**(s-1)));const o=new A([]);o.height=s;const a=Math.ceil(n/r),h=a*Math.ceil(Math.sqrt(r));b(t,e,i,h,this._compareMinX);for(let n=e;n<=i;n+=h){const e=Math.min(n+h-1,i);b(t,n,e,a,this._compareMinY);for(let i=n;i<=e;i+=a){const n=Math.min(i+a-1,e);o.children.push(this._build(t,i,n,s-1))}}return l(o,this._toBBox),o}_insert(t,e,i){const s=this._toBBox,n=i?t:s(t);B.clear();const r=function(t,e,i,s){for(;s.push(e),!0!==e.leaf&&s.length-1!==i;){let i,s=1/0,n=1/0;for(let r=0,o=e.children.length;r<o;r++){const o=e.children[r],a=m(o),h=g(t,o)-a;h<n?(n=h,s=a<s?a:s,i=o):h===n&&a<s&&(s=a,i=o)}e=i||e.children[0]}return e}(n,this._data,e,B);for(r.children.push(t),c(r,n);e>=0&&B.data[e].children.length>this._maxEntries;)this._split(B,e),e--;!function(t,e,i){for(let s=i;s>=0;s--)c(e.data[s],t)}(n,B,e)}_split(t,e){const i=t.data[e],s=i.children.length,n=this._minEntries;this._chooseSplitAxis(i,n,s);const r=this._chooseSplitIndex(i,n,s);if(!r)return;const o=i.children.splice(r,i.children.length-r),a=i.leaf?new w(o):new A(o);a.height=i.height,l(i,this._toBBox),l(a,this._toBBox),e?t.data[e-1].children.push(a):this._splitRoot(i,a)}_splitRoot(t,e){this._data=new A([t,e]),this._data.height=t.height+1,l(this._data,this._toBBox)}_chooseSplitIndex(t,e,i){let s,n,r;s=n=1/0;for(let o=e;o<=i-e;o++){const e=u(t,0,o,this._toBBox),a=u(t,o,i,this._toBBox),h=y(e,a),l=m(e)+m(a);h<s?(s=h,r=o,n=l<n?l:n):h===s&&l<n&&(n=l,r=o)}return r}_chooseSplitAxis(t,e,i){const s=t.leaf?this._compareMinX:d,n=t.leaf?this._compareMinY:_;this._allDistMargin(t,e,i,s)<this._allDistMargin(t,e,i,n)&&t.children.sort(s)}_allDistMargin(t,e,i,s){t.children.sort(s);const n=this._toBBox,r=u(t,0,e,n),o=u(t,i-e,i,n);let a=f(r)+f(o);for(let s=e;s<i-e;s++){const e=t.children[s];c(r,t.leaf?n(e):e),a+=f(r)}for(let s=i-e-1;s>=e;s--){const e=t.children[s];c(o,t.leaf?n(e):e),a+=f(o)}return a}_condense(t){for(let e=t.length-1;e>=0;e--){const i=t.data[e];if(0===i.children.length)if(e>0){const n=t.data[e-1],r=n.children;r.splice((0,s.qh)(r,i,r.length,n.indexHint),1)}else this.clear();else l(i,this._toBBox)}}_initFormat(t){const e=["return a"," - b",";"];this._compareMinX=new Function("a","b",e.join(t[0])),this._compareMinY=new Function("a","b",e.join(t[1])),this._toBBox=new Function("a","return {minX: a"+t[0]+", minY: a"+t[1]+", maxX: a"+t[2]+", maxY: a"+t[3]+"};")}}function h(t,e){let i=t;for(M.clear();i;){if(!0===i.leaf)for(const t of i.children)e((0,n.zI)(t));else M.pushArray(i.children);i=M.pop()??null}}function l(t,e){u(t,0,t.children.length,e,t)}function u(t,e,i,s,n){n||(n=new w([])),n.minX=1/0,n.minY=1/0,n.maxX=-1/0,n.maxY=-1/0;for(let r,o=e;o<i;o++)r=t.children[o],c(n,t.leaf?s(r):r);return n}function c(t,e){t.minX=Math.min(t.minX,e.minX),t.minY=Math.min(t.minY,e.minY),t.maxX=Math.max(t.maxX,e.maxX),t.maxY=Math.max(t.maxY,e.maxY)}function d(t,e){return t.minX-e.minX}function _(t,e){return t.minY-e.minY}function m(t){return(t.maxX-t.minX)*(t.maxY-t.minY)}function f(t){return t.maxX-t.minX+(t.maxY-t.minY)}function g(t,e){return(Math.max(e.maxX,t.maxX)-Math.min(e.minX,t.minX))*(Math.max(e.maxY,t.maxY)-Math.min(e.minY,t.minY))}function y(t,e){const i=Math.max(t.minX,e.minX),s=Math.max(t.minY,e.minY),n=Math.min(t.maxX,e.maxX),r=Math.min(t.maxY,e.maxY);return Math.max(0,n-i)*Math.max(0,r-s)}function x(t,e){return t.minX<=e.minX&&t.minY<=e.minY&&e.maxX<=t.maxX&&e.maxY<=t.maxY}function p(t,e){return e.minX<=t.maxX&&e.minY<=t.maxY&&e.maxX>=t.minX&&e.maxY>=t.minY}function b(t,e,i,s,n){const r=[e,i];for(;r.length;){const e=r.pop(),i=r.pop();if(e-i<=s)continue;const a=i+Math.ceil((e-i)/s/2)*s;(0,o.q)(t,a,i,e,n),r.push(i,a,a,e)}}const v=new r.A,M=new r.A,B=new r.A,z=new r.A({deallocator:void 0});class I{constructor(){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0}}class S extends I{constructor(){super(...arguments),this.height=1,this.indexHint=new s.vW}}class w extends S{constructor(t){super(),this.children=t,this.leaf=!0}}class A extends S{constructor(t){super(),this.children=t,this.leaf=!1}}},36708:(t,e,i)=>{i.d(e,{C_:()=>d,OH:()=>f,Vh:()=>g,on:()=>c,pc:()=>y,wB:()=>h,z7:()=>l}),i(60999),i(5503);var s=i(37955),n=i(36563),r=i(97768),o=i(74887),a=i(14012);function h(t,e,i={}){return u(t,e,i,_)}function l(t,e,i={}){return u(t,e,i,m)}function u(t,e,i={},s){let n=null;const o=i.once?(t,i)=>{s(t)&&((0,r.xt)(n),e(t,i))}:(t,i)=>{s(t)&&e(t,i)};if(n=(0,a.Cn)(t,o,i.sync,i.equals),i.initial){const e=t();o(e,e)}return n}function c(t,e,i,o={}){let a=null,l=null,u=null;function c(){a&&l&&(l.remove(),o.onListenerRemove?.(a),a=null,l=null)}function d(t){o.once&&o.once&&(0,r.xt)(u),i(t)}const _=h(t,((t,i)=>{c(),(0,s.wb)(t)&&(a=t,l=(0,s.on)(t,e,d),o.onListenerAdd?.(t))}),{sync:o.sync,initial:!0});return u=(0,n.hA)((()=>{_.remove(),c()})),u}function d(t,e){return function(t,e,i){if((0,o.G4)(i))return Promise.reject((0,o.NK)());const s=t();if(e?.(s))return Promise.resolve(s);let a=null;function h(){a=(0,r.xt)(a)}return new Promise(((s,r)=>{a=(0,n.vE)([(0,o.u7)(i,(()=>{h(),r((0,o.NK)())})),u(t,(t=>{h(),s(t)}),{sync:!1,once:!0},e??_)])}))}(t,m,e)}function _(t){return!0}function m(t){return!!t}i(80559);const f={sync:!0},g={initial:!0},y={sync:!0,initial:!0}},6518:(t,e,i)=>{i.d(e,{F:()=>a});var s=i(44208),n=i(75503),r=i(19419);const o={minX:0,minY:0,maxX:0,maxY:0};class a{constructor(){this._indexInvalid=!1,this._boundsToLoad=[],this._boundsById=new Map,this._idByBounds=new Map,this._index=new n.w(9,(0,s.A)("esri-csp-restrictions")?t=>({minX:t[0],minY:t[1],maxX:t[2],maxY:t[3]}):["[0]","[1]","[2]","[3]"]),this._loadIndex=()=>{if(this._indexInvalid){const t=new Array(this._idByBounds.size);let e=0;this._idByBounds.forEach(((i,s)=>{t[e++]=s})),this._indexInvalid=!1,this._index.clear(),this._index.load(t)}else this._boundsToLoad.length&&(this._index.load(Array.from(new Set(this._boundsToLoad.filter((t=>this._idByBounds.has(t)))))),this._boundsToLoad.length=0)}}get fullBounds(){if(!this._boundsById.size)return null;const t=(0,r.Ie)();for(const e of this._boundsById.values())e&&(t[0]=Math.min(e[0],t[0]),t[1]=Math.min(e[1],t[1]),t[2]=Math.max(e[2],t[2]),t[3]=Math.max(e[3],t[3]));return t}get valid(){return!this._indexInvalid}clear(){this._indexInvalid=!1,this._boundsToLoad.length=0,this._boundsById.clear(),this._idByBounds.clear(),this._index.clear()}delete(t){const e=this._boundsById.get(t);this._boundsById.delete(t),e&&(this._idByBounds.delete(e),this._indexInvalid||this._index.remove(e))}forEachInBounds(t,e){this._loadIndex(),function(t,e,i){(function(t){o.minX=t[0],o.minY=t[1],o.maxX=t[2],o.maxY=t[3]})(e),t.search(o,i)}(this._index,t,(t=>e(this._idByBounds.get(t))))}get(t){return this._boundsById.get(t)}has(t){return this._boundsById.has(t)}invalidateIndex(){this._indexInvalid||(this._indexInvalid=!0,this._boundsToLoad.length=0)}set(t,e){if(!this._indexInvalid){const e=this._boundsById.get(t);e&&(this._index.remove(e),this._idByBounds.delete(e))}this._boundsById.set(t,e),e&&(this._idByBounds.set(e,t),this._indexInvalid||(this._boundsToLoad.push(e),this._boundsToLoad.length>5e4&&this._loadIndex()))}}},83221:(t,e,i)=>{i.d(e,{A:()=>m});var s=i(4576),n=i(49186),r=i(65529),o=i(53966),a=i(70328),h=i(19419),l=i(90708),u=i(6518),c=i(51441),d=i(37730);const _=(0,a.vt)();class m{constructor(t){this.geometryInfo=t,this._boundsStore=new u.F,this._featuresById=new Map,this._usedMemory=0,this.events=new r.A,this.featureAdapter=d.T}get usedMemory(){return this._usedMemory}get geometryType(){return this.geometryInfo.geometryType}get hasM(){return this.geometryInfo.hasM}get hasZ(){return this.geometryInfo.hasZ}get numFeatures(){return this._featuresById.size}get fullBounds(){return this._boundsStore.fullBounds}get storeStatistics(){let t=0;return this._featuresById.forEach((e=>{null!=e.geometry&&e.geometry.coords&&(t+=e.geometry.coords.length)})),{featureCount:this._featuresById.size,vertexCount:t/(this.hasZ?this.hasM?4:3:this.hasM?3:2)}}getFullExtent(t){if(null==this.fullBounds)return null;const[e,i,s,n]=this.fullBounds;return{xmin:e,ymin:i,xmax:s,ymax:n,spatialReference:(0,c.ag)(t)}}add(t){this._add(t),this._emitChanged()}addMany(t){for(const e of t)this._add(e);this._emitChanged()}upsertMany(t){const e=t.map((t=>this._upsert(t)));return this._emitChanged(),e.filter(s.Ru)}clear(){this._featuresById.clear(),this._boundsStore.clear(),this._emitChanged(),this._usedMemory=0}removeById(t){const e=this._featuresById.get(t);return e?(this._remove(e),this._emitChanged(),e):null}removeManyById(t){this._boundsStore.invalidateIndex();for(const e of t){const t=this._featuresById.get(e);t&&this._remove(t)}this._emitChanged()}forEachBounds(t,e){for(const i of t){const t=this._boundsStore.get(i.objectId);t&&e((0,a.Jt)(_,t))}}getFeature(t){return this._featuresById.get(t)}has(t){return this._featuresById.has(t)}forEach(t){this._featuresById.forEach((e=>t(e)))}forEachInBounds(t,e){this._boundsStore.forEachInBounds(t,(t=>{e(this._featuresById.get(t))}))}_emitChanged(){this.events.emit("changed",void 0)}_add(t){if(!t)return;const e=t.objectId;if(null==e)return void o.A.getLogger("esri.layers.graphics.data.FeatureStore").error(new n.A("featurestore:invalid-feature","feature id is missing",{feature:t}));const i=this._featuresById.get(e);let s;if(i?(t.displayId=i.displayId,s=this._boundsStore.get(e),this._boundsStore.delete(e),this._usedMemory-=this.estimateFeatureUsedMemory?.(i)??0):null!=this.onFeatureAdd&&this.onFeatureAdd(t),!t.geometry?.coords?.length)return this._boundsStore.set(e,null),void this._featuresById.set(e,t);s=(0,l.jQ)(null!=s?s:(0,h.vt)(),t.geometry,this.geometryInfo.hasZ,this.geometryInfo.hasM),null!=s&&this._boundsStore.set(e,s),this._featuresById.set(e,t),this._usedMemory+=this.estimateFeatureUsedMemory?.(t)??0}_upsert(t){const e=t?.objectId;if(null==e)return o.A.getLogger("esri.layers.graphics.data.FeatureStore").error(new n.A("featurestore:invalid-feature","feature id is missing",{feature:t})),null;const i=this._featuresById.get(e);if(!i)return this._add(t),t;this._usedMemory-=this.estimateFeatureUsedMemory?.(i)??0;const{geometry:s,attributes:r}=t;for(const t in r)i.attributes[t]=r[t];return s&&(i.geometry=s,this._boundsStore.set(e,(0,l.jQ)((0,h.vt)(),s,this.geometryInfo.hasZ,this.geometryInfo.hasM)??null)),this._usedMemory+=this.estimateFeatureUsedMemory?.(i)??0,i}_remove(t){null!=this.onFeatureRemove&&this.onFeatureRemove(t);const e=t.objectId;return this._boundsStore.delete(e),this._featuresById.delete(e),this._usedMemory-=this.estimateFeatureUsedMemory?.(t)??0,t}}},58376:(t,e,i)=>{i.d(e,{J:()=>m});var s=i(4718),n=i(74887),r=i(65864),o=i(17136),a=i(21325),h=i(31464),l=i(19730),u=i(8384),c=i(58727),d=i(62798),_=i(62660);async function m(t,e,i){const m=(0,n.Mq)(i),{point:f,distance:g,returnEdge:y,vertexMode:x}=e;if(!y&&"none"===x)return{candidates:[]};let p=(0,s.o8)(e.query);p=await t.schedule((()=>(0,c.T2)(p,t.definitionExpression,t.spatialReference)),m),p=await t.reschedule((()=>(0,d.B4)(p,{availableFields:t.availableFields,fieldsIndex:t.fieldsIndex,geometryType:t.geometryType,spatialReference:t.spatialReference})),m);const b=!(0,a.aI)(f.spatialReference,t.spatialReference);b&&await(0,h.Nk)(f.spatialReference,t.spatialReference);const v="number"==typeof g?g:g.x,M="number"==typeof g?g:g.y,B={xmin:f.x-v,xmax:f.x+v,ymin:f.y-M,ymax:f.y+M,spatialReference:f.spatialReference},z=b?(0,h.Cv)(B,t.spatialReference):B;if(!z)return{candidates:[]};const I=(await(0,o.el)((0,r.rS)(f),null,{signal:m}))[0],S=(await(0,o.el)((0,r.rS)(z),null,{signal:m}))[0];if(null==I||null==S)return{candidates:[]};const w=new u.G(await t.reschedule((()=>t.searchFeatures((0,l.ux)(S.toJSON()))),m),p,t);await t.reschedule((()=>t.executeObjectIdsQuery(w)),m),await t.reschedule((()=>t.executeTimeQuery(w)),m),await t.reschedule((()=>t.executeAttributesQuery(w)),m),await t.reschedule((()=>async function(t,e,i){const{query:s}=e,{spatialRel:n}=s;if(!e?.items?.length||!s.geometry||!n)return;const r=await(0,_.xt)(n,s.geometry,t.geometryType,t.hasZ,t.hasM),o=await t.runSpatialFilter(e.items,(t=>r(t.geometry)),i);e.items=o}(t,w,m)),m);const A=I.toJSON(),R=b?(0,h.Cv)(A,t.spatialReference):A,Y=b?Math.max(z.xmax-z.xmin,z.ymax-z.ymin)/2:g;return w.createSnappingResponse({...e,point:R,distance:Y},f.spatialReference)}},37730:(t,e,i)=>{i.d(e,{T:()=>n});var s=i(43334);const n={getObjectId:t=>t.objectId,getAttributes:t=>t.attributes,getAttribute:(t,e)=>t.attributes[e],cloneWithGeometry:(t,e)=>new s.Om(e,t.attributes,null,t.objectId),getGeometry:t=>t.geometry,getCentroid:(t,e)=>t.ensureCentroid(e)}}}]);