UNPKG

@arcgis/core

Version:

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

1 lines • 18.8 kB
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[9953],{9775(e,t,r){r.d(t,{A:()=>o});var s=r(62788),n=r(95488);class o{constructor(e=e=>e.values().next().value){this._peeker=e,this._observable=new n.I,this._items=new Set}get length(){return(0,s.gc)(this._observable),this._items.size}clear(){0!==this.length&&(this._items.clear(),this._observable.notify())}last(){if(0===this.length)return;let e;for(e of this._items);return e}peek(){if(0!==this.length)return this._peeker(this._items)}push(e){this.contains(e)||(this._items.add(e),this._observable.notify())}contains(e){return(0,s.gc)(this._observable),this._items.has(e)}pop(){if(0===this.length)return;const e=this.peek();return this._items.delete(e),this._observable.notify(),e}popLast(){if(0===this.length)return;const e=this.last();return this._items.delete(e),this._observable.notify(),e}remove(e){this.contains(e)&&(this._items.delete(e),this._observable.notify())}filter(e){const t=this.length;return this._items.forEach(t=>{e(t)||this._items.delete(t)}),t!==this._items.size&&this._observable.notify(),this}*[Symbol.iterator](){(0,s.gc)(this._observable),yield*this._items}}},10382(e,t,r){r.d(t,{A:()=>c});var s=r(36563),n=(r(44208),r(74887)),o=r(9775),i=r(72457),a=r(52268),l=r(61322);class c{constructor(){this._inUseClients=new Array,this._clients=new Array,this._clientPromises=new Array,this._ongoingJobsQueue=new o.A,this._ongoingLowPriorityJobsQueue=new o.A}destroy(){this.close()}get closed(){return!this._clients?.length}open(e,t){return new Promise((r,s)=>{let o=!0;const i=e=>{(0,n.Te)(t.signal),o&&(o=!1,e())};this._clients.length=e.length,this._clientPromises.length=e.length,this._inUseClients.length=e.length;for(let o=0;o<e.length;++o){const a=e[o];(0,n.$X)(a)?this._clientPromises[o]=a.then(e=>(this._clients[o]=new l.default(e,t,this._ongoingJobsQueue,this._ongoingLowPriorityJobsQueue),i(r),this._clients[o]),()=>(i(s),null)):(this._clients[o]=new l.default(a,t,this._ongoingJobsQueue,this._ongoingLowPriorityJobsQueue),this._clientPromises[o]=Promise.resolve(this._clients[o]),i(r))}})}broadcast(e,t,r){const s=new Array(this._clientPromises.length);for(let n=0;n<this._clientPromises.length;++n){const o=this._clientPromises[n];s[n]=o.then(s=>s?.invoke(e,t,r))}return s}close(){let e;for(;e=this._ongoingJobsQueue.pop();)e.resolver.reject((0,n.NK)(`Worker closing, aborting job calling '${e.methodName}'`));for(;e=this._ongoingLowPriorityJobsQueue.pop();)e.resolver.reject((0,n.NK)(`Worker closing, aborting job calling '${e.methodName}'`));for(const e of this._clientPromises)e.then(e=>e?.close());this._clients.length=0,this._clientPromises.length=0,this._inUseClients.length=0,(0,i.h)(this)}invoke(e,t,r){return this.apply(e,[t],r)}apply(e,t,r){const s=(0,n.Tw)();(1===r?.jobPriority?this._ongoingLowPriorityJobsQueue:this._ongoingJobsQueue).push({methodName:e,data:t,invokeOptions:r,resolver:s});for(let e=0;e<this._clientPromises.length;e++){const t=this._clients[e];t?t.jobAdded():this._clientPromises[e].then(e=>e?.jobAdded())}return s.promise}createInvokeProxy(e){return(0,a.L)(this,e)}on(e,t){return Promise.all(this._clientPromises).then(()=>(0,s.vE)(this._clients.map(r=>r.on(e,t))))}openPorts(){return new Promise(e=>{const t=new Array(this._clientPromises.length);let r=t.length;for(let s=0;s<this._clientPromises.length;++s)this._clientPromises[s].then(n=>{n&&(t[s]=n.openPort()),0===--r&&e(t)})})}get test(){}}},18047(e,t,r){r.d(t,{Up:()=>l,ZV:()=>c,yx:()=>a});var s=r(73444);const n={ar:"ar-u-nu-latn",bs:"sr-Latn-CS",nn:"no-NN"};let o=new WeakMap,i={};function a(e={}){const t={};return null!=e.digitSeparator&&(t.useGrouping=e.digitSeparator),null!=e.places&&(t.minimumFractionDigits=t.maximumFractionDigits=e.places),t}function l(e){const{minimumFractionDigits:t,maximumFractionDigits:r,useGrouping:s}=e;return{minimumFractionDigits:t,maximumFractionDigits:r,useGrouping:"auto"===s?"auto":"always"===s}}function c(e,t){return Object.is(e,-0)&&(e=0),function(e){const t=e||i;if(!o.has(t)){const r=(0,s.lR)(),i=r&&n[r]||(0,s.QC)();o.set(t,new Intl.NumberFormat(i,e))}return o.get(t)}(t).format(e)}(0,s.Ml)(()=>{o=new WeakMap,i={}}),new Map},29953(e,t,r){r.d(t,{ho:()=>F,N1:()=>$});var s=r(49186),n=r(44208),o=r(74887),i=r(10382),a=r(72457),l=r(61322),c=r(53966),u=r(97768),h=r(11254),d=r(84952);const f={async request(e,t){const r=e.options,s=r.responseType;r.signal=t?.signal,r.responseType="native"===s||"native-request-init"===s?"native-request-init":s&&["blob","json","text"].includes(s)&&(0,d.sC)(e.url)?.after?s:"array-buffer";const n=await(0,h.A)(e.url,r),o={data:n.data,httpStatus:n.httpStatus,ssl:n.ssl};switch(n.requestOptions?.responseType){case"native-request-init":return delete o.data.signal,o;case"blob":o.data=await o.data.arrayBuffer();break;case"json":o.data=(new TextEncoder).encode(JSON.stringify(o.data)).buffer;break;case"text":o.data=(new TextEncoder).encode(o.data).buffer}return{result:o,transferList:[o.data]}}};var g=r(8341),m=r(2741),p=r(92602),b=r(79783),w=r(70333);r(87811);const y={};var k=r(26390);class _{constructor(){const e=document.createDocumentFragment();["addEventListener","dispatchEvent","removeEventListener"].forEach(t=>{this[t]=(...r)=>e[t](...r)})}}class v{constructor(){this._dispatcher=new _,this._workerPostMessage({type:g.Go.HANDSHAKE})}terminate(){}get onmessage(){return this._onmessageHandler}set onmessage(e){this._onmessageHandler&&this.removeEventListener("message",this._onmessageHandler),this._onmessageHandler=e,e&&this.addEventListener("message",e)}get onmessageerror(){return this._onmessageerrorHandler}set onmessageerror(e){this._onmessageerrorHandler&&this.removeEventListener("messageerror",this._onmessageerrorHandler),this._onmessageerrorHandler=e,e&&this.addEventListener("messageerror",e)}get onerror(){return this._onerrorHandler}set onerror(e){this._onerrorHandler&&this.removeEventListener("error",this._onerrorHandler),this._onerrorHandler=e,e&&this.addEventListener("error",e)}postMessage(e){(0,k.d)(()=>{this._workerMessageHandler(new MessageEvent("message",{data:e}))})}dispatchEvent(e){return this._dispatcher.dispatchEvent(e)}addEventListener(e,t,r){this._dispatcher.addEventListener(e,t,r)}removeEventListener(e,t,r){this._dispatcher.removeEventListener(e,t,r)}_workerPostMessage(e){(0,k.d)(()=>{this.dispatchEvent(new MessageEvent("message",{data:e}))})}async _workerMessageHandler(e){const t=(0,g.VI)(e);if(t&&t.type===g.Go.OPEN){const{modulePath:e,jobId:r}=t;let s=await l.default.loadWorker(e);s||(s=await import(e));const n=l.default.connect(s);this._workerPostMessage({type:g.Go.OPENED,jobId:r,data:n})}}}var A=r(18357);const P=()=>c.A.getLogger("esri.core.workers.workerFactory"),{HANDSHAKE:E}=g.Go;let L,N;const O="Failed to create Worker. Fallback to execute module in main thread";async function C(e){return new Promise(t=>{function r(n){const o=(0,g.VI)(n);o&&o.type===E&&(e.removeEventListener("message",r),e.removeEventListener("error",s),t(e))}function s(t){t.preventDefault(),e.removeEventListener("message",r),e.removeEventListener("error",s),P().warn("Failed to create Worker. Fallback to execute module in main thread",t),(e=new v).addEventListener("message",r),e.addEventListener("error",s)}e.addEventListener("message",r),e.addEventListener("error",s)})}let I=0;const{ABORT:j,INVOKE:M,OPEN:J,OPENED:S,RESPONSE:R}=g.Go;class q{static async create(e){const t=await async function(){if(!(0,n.A)("esri-workers"))return C(new v);if(!L&&!N)try{const e='"use strict";let globalId=0;const outgoing=new Map,configuration={CONFIGURATION};self.esriConfig=configuration.esriConfig;const workerPath=self.esriConfig.workers.workerPath,HANDSHAKE=0,OPEN=1,OPENED=2,RESPONSE=3,INVOKE=4,ABORT=5;function createAbortError(){const e=new Error("Aborted");return e.name="AbortError",e}function receiveMessage(e){return e&&e.data?"string"==typeof e.data?JSON.parse(e.data):e.data:null}self.invokeStaticMessage=(e,o,r)=>{const t=r&&r.signal,n=globalId++;let s=null;return new Promise((r,i)=>{if(t){if(t.aborted)return i(createAbortError());s=()=>{outgoing.get(n)&&(outgoing.delete(n),self.postMessage({type:5,jobId:n}),i(createAbortError()))},t.addEventListener("abort",s)}outgoing.set(n,{resolve:r,reject:i}),self.postMessage({type:4,jobId:n,methodName:e,abortable:null!=t,data:o})}).finally(()=>{t&&t.removeEventListener("abort",s)})};let workerRevisionChecked=!1;function checkWorkerRevision(e){if(!workerRevisionChecked&&e.kernelInfo){workerRevisionChecked=!0;const{revision:o,fullVersion:r}=configuration.kernelInfo,{revision:t,fullVersion:n,version:s}=e.kernelInfo;esriConfig.assetsPath!==esriConfig.defaultAssetsPath&&o!==t&&console.warn(`Version mismatch detected between ArcGIS Maps SDK for JavaScript modules and assets. For more information visit https://esriurl.com/using-local-assets.\nModules version: ${r}\nAssets version: ${n??s}\nAssets path: ${esriConfig.assetsPath}`)}}function messageHandler(e){const o=receiveMessage(e);if(!o)return;const r=o.jobId;switch(o.type){case 1:let t;function n(e){const o=t.connect(e);self.postMessage({type:2,jobId:r,data:o},[o])}"function"==typeof define&&define.amd?require([workerPath],e=>{t=e.default||e,checkWorkerRevision(t),t.loadWorker(o.modulePath).then(e=>e||new Promise(e=>{require([o.modulePath],e)})).then(n)}):"System"in self&&"function"==typeof System.import?System.import(workerPath).then(e=>(t=e.default,checkWorkerRevision(t),t.loadWorker(o.modulePath))).then(e=>e||System.import(o.modulePath)).then(n):esriConfig.workers.useDynamicImport?import(workerPath).then(e=>{t=e.default||e,checkWorkerRevision(t),t.loadWorker(o.modulePath).then(e=>e||import(o.modulePath)).then(n)}):(self.RemoteClient||importScripts(workerPath),t=self.RemoteClient.default||self.RemoteClient,checkWorkerRevision(t),t.loadWorker(o.modulePath).then(n));break;case 3:if(outgoing.has(r)){const s=outgoing.get(r);outgoing.delete(r),o.error?s.reject(JSON.parse(o.error)):s.resolve(o.data)}}}self.dojoConfig=configuration.loaderConfig,esriConfig.workers.loaderUrl&&(self.importScripts(esriConfig.workers.loaderUrl),"function"==typeof require&&"function"==typeof require.config&&require.config(configuration.loaderConfig)),self.addEventListener("message",messageHandler),self.postMessage({type:0});'.split("{CONFIGURATION}").join(function(){let e;if(null!=p.A.default){const t={...p.A};delete t.default,e=JSON.parse(JSON.stringify(t))}else e=JSON.parse(JSON.stringify(p.A));e.assetsPath=(0,d.s2)(e.assetsPath),e.defaultAssetsPath=e.defaultAssetsPath?(0,d.s2)(e.defaultAssetsPath):void 0,e.request.interceptors=[],e.log.interceptors=[],e.locale=(0,b.JK)(),e.has={"esri-csp-restrictions":(0,n.A)("esri-csp-restrictions"),"esri-2d-debug":!1,"esri-2d-update-debug":(0,n.A)("esri-2d-update-debug"),"esri-2d-log-updating":(0,n.A)("esri-2d-log-updating"),"featurelayer-pbf":(0,n.A)("featurelayer-pbf"),"featurelayer-simplify-thresholds":(0,n.A)("featurelayer-simplify-thresholds"),"featurelayer-simplify-payload-size-factors":(0,n.A)("featurelayer-simplify-payload-size-factors"),"featurelayer-simplify-mobile-factor":(0,n.A)("featurelayer-simplify-mobile-factor"),"featurelayer-query-max-depth":(0,n.A)("featurelayer-query-max-depth"),"featurelayer-query-max-page-size":(0,n.A)("featurelayer-query-max-page-size"),"featurelayer-query-tile-max-features":(0,n.A)("featurelayer-query-tile-max-features"),"featurelayer-query-tile-concurrency":(0,n.A)("featurelayer-query-tile-concurrency"),"featurelayer-query-pausing-enabled":(0,n.A)("featurelayer-query-pausing-enabled"),"featurelayer-snapshot-concurrency":(0,n.A)("featurelayer-snapshot-concurrency"),"featurelayer-snapshot-enabled":(0,n.A)("featurelayer-snapshot-enabled"),"parquetlayer-full-query-feature-count":(0,n.A)("parquetlayer-full-query-feature-count"),"parquetlayer-cache-enabled":(0,n.A)("parquetlayer-cache-enabled"),"esri-atomics":(0,n.A)("esri-atomics"),"esri-shared-array-buffer":(0,n.A)("esri-shared-array-buffer"),"esri-tiles-debug":(0,n.A)("esri-tiles-debug"),"esri-workers-arraybuffer-transfer":(0,n.A)("esri-workers-arraybuffer-transfer"),"feature-polyline-generalization-factor":(0,n.A)("feature-polyline-generalization-factor"),"host-webworker":1},e.workers.loaderUrl&&(e.workers.loaderUrl=(0,d.s2)(e.workers.loaderUrl)),e.workers.workerPath?e.workers.workerPath=(0,d.s2)(e.workers.workerPath):e.workers.workerPath=(0,d.s2)((0,m.s)("esri/core/workers/RemoteClient.js")),e.workers.useDynamicImport=(0,n.A)("esri-esbuild-build");const t=p.A.workers.loaderConfig,r=function(e){const t={async:e.async,isDebug:e.isDebug,locale:e.locale,baseUrl:e.baseUrl,has:{...e.has},map:{...e.map},packages:e.packages?.slice()||[],paths:{...y.paths,...e.paths}};return e.hasOwnProperty("async")||(t.async=!0),e.hasOwnProperty("isDebug")||(t.isDebug=!1),e.baseUrl||(t.baseUrl=y.baseUrl),t}({baseUrl:t?.baseUrl,locale:(0,b.JK)(),has:{"csp-restrictions":1,"dojo-test-sniff":0,"host-webworker":1,...t?.has},map:{...t?.map},paths:{...t?.paths},packages:t?.packages||[]}),s={buildDate:A.$,fullVersion:w.ol,revision:A.u};return JSON.stringify({esriConfig:e,loaderConfig:r,kernelInfo:s})}());L=URL.createObjectURL(new Blob([e],{type:"text/javascript"}))}catch(e){N=e||{}}let e;if(L)try{e=new Worker(L,{name:"esri-worker-"+I++})}catch(t){P().warn(O,N),e=new v}else P().warn(O,N),e=new v;return C(e)}();return new q(t,e)}constructor(e,t){this._outJobs=new Map,this._inJobs=new Map,this.worker=e,this.id=t,e.addEventListener("message",this._onMessage.bind(this)),e.addEventListener("error",e=>{e.preventDefault(),c.A.getLogger("esri.core.workers.WorkerOwner").error(e)})}terminate(){this.worker.terminate()}async open(e,t={}){const{signal:r}=t,s=(0,g.Jc)();return new Promise((t,n)=>{const i={resolve:t,reject:n,abortHandle:(0,o.NY)(r,()=>{this._outJobs.delete(s),this._post({type:j,jobId:s})})};this._outJobs.set(s,i),this._post({type:J,jobId:s,modulePath:e})})}_onMessage(e){const t=(0,g.VI)(e);if(t)switch(t.type){case S:this._onOpenedMessage(t);break;case R:this._onResponseMessage(t);break;case j:this._onAbortMessage(t);break;case M:this._onInvokeMessage(t)}}_onAbortMessage(e){const t=this._inJobs,r=e.jobId,s=t.get(r);s&&(s.controller&&s.controller.abort(),t.delete(r))}_onInvokeMessage(e){const{methodName:t,jobId:r,data:s,abortable:n}=e,i=n?new AbortController:null,a=this._inJobs,l=f[t];let c;try{if("function"!=typeof l)throw new TypeError(`${t} is not a function`);c=l.call(null,s,{signal:i?i.signal:null})}catch(e){return void this._post({type:R,jobId:r,error:(0,g.mF)(e)})}(0,o.$X)(c)?(a.set(r,{controller:i,promise:c}),c.then(e=>{a.has(r)&&(a.delete(r),this._post({type:R,jobId:r},e))},e=>{a.has(r)&&(a.delete(r),e||(e={message:"Error encountered at method"+t}),(0,o.zf)(e)||this._post({type:R,jobId:r,error:(0,g.mF)(e||{message:`Error encountered at method ${t}`})}))})):this._post({type:R,jobId:r},c)}_onOpenedMessage(e){const{jobId:t,data:r}=e,s=this._outJobs.get(t);s&&(this._outJobs.delete(t),(0,u.xt)(s.abortHandle),s.resolve(r))}_onResponseMessage(e){const{jobId:t,error:r,data:n}=e,o=this._outJobs.get(t);o&&(this._outJobs.delete(t),(0,u.xt)(o.abortHandle),r?o.reject(s.A.fromJSON(JSON.parse(r))):o.resolve(n))}_post(e,t,r){return(0,g.u1)(this.worker,e,t,r)}}const x=(0,n.A)("host-browser")?Math.min(navigator.hardwareConcurrency-1,(0,n.A)("workers-pool-size")??8):0;let U=(0,n.A)("esri-mobile")?Math.min(x,3):x;U||(U=(0,n.A)("safari")&&(0,n.A)("mac")?7:2);let H=0;const D=[];function $(e,t={}){return W(e,t)}async function W(e,t){const r=new i.A,{registryTarget:s,...n}=t;return await r.open(e,n),s&&(0,a.k)(s,r),r}async function F(e,t={}){if("string"!=typeof e)throw new s.A("workers:undefined-module","modulePath is missing");let r=t.strategy||"distributed";if((0,n.A)("host-webworker")&&!(0,n.A)("esri-workers")&&(r="local"),"local"===r){let r=await l.default.loadWorker(e);r||(r=await import(e)),(0,o.Te)(t.signal);const s=t.client||r;return W([l.default.connect(r,t.schedule)],{...t,client:s})}if(await async function(){if(V)return V;T=new AbortController;const e=[];for(let t=0;t<U;t++){const r=q.create(t).then(e=>(D[t]=e,e));e.push(r)}return V=Promise.all(e),V}(),(0,o.Te)(t.signal),"dedicated"===r){const r=H++%U;return W([await D[r].open(e,t)],t)}if(t.maxNumWorkers&&t.maxNumWorkers>0){const r=Math.min(t.maxNumWorkers,U);if(r<U){const s=new Array(r);for(let n=0;n<r;++n){const r=H++%U;s[n]=D[r].open(e,t)}return W(s,t)}}return W(D.map(r=>r.open(e,t)),t)}let T,V=null},72457(e,t,r){r.d(t,{h:()=>o,k:()=>n});const s=new FinalizationRegistry(e=>{e.close()});function n(e,t){s.register(e,t,t)}function o(e){s.unregister(e)}},79783(e,t,r){r.d(t,{ud:()=>k,JK:()=>_,oQ:()=>v,V2:()=>P});var s=r(2741),n=r(97770),o=r(73444),i=r(10838),a=r(18047),l=r(53966),c=r(93637),u=r(799);const h=()=>l.A.getLogger("esri.intl.substitute");function d(e,t){switch(t.type){case"date":return(0,n.Yq)(e,t.intlOptions);case"number":return(0,a.ZV)(e,t.intlOptions);default:return h().warn("missing format descriptor for key {key}"),g(e)}}function f(e,t){switch(t.toLowerCase()){case"dateformat":return(0,n.Yq)(e);case"numberformat":return(0,a.ZV)(e);default:return h().warn(`inline format is unsupported since 4.12: ${t}`),/^(dateformat|datestring)/i.test(t)?(0,n.Yq)(e):/^numberformat/i.test(t)?(0,a.ZV)(e):g(e)}}function g(e){switch(typeof e){case"string":return e;case"number":return(0,a.ZV)(e);case"boolean":return""+e;default:return e instanceof Date?(0,n.Yq)(e):""}}var m=r(11254),p=r(49186);async function b(e){if(null!=y.fetchBundleAsset)return y.fetchBundleAsset(e);const t=await(0,m.A)(e,{responseType:"text"});return JSON.parse(t.data)}class w{constructor({base:e="",pattern:t,location:r=new URL(window.location.href)}){let s;s="string"==typeof r?e=>new URL(e,new URL(r,window.location.href)).href:r instanceof URL?e=>new URL(e,r).href:r,this.pattern="string"==typeof t?new RegExp(`^${t}`):t,this.getAssetUrl=s,e=e?e.endsWith("/")?e:e+"/":"",this.matcher=new RegExp(`^${e}(?:(.*)\\/)?(.*)$`)}fetchMessageBundle(e,t){return async function(e,t,r,s){const n=t.exec(r);if(!n)throw new p.A("esri-intl:invalid-bundle",`Bundle id "${r}" is not compatible with the pattern "${t}"`);const o=n[1]?`${n[1]}/`:"",a=n[2],l=(0,i.xO)(s),c=`${o}${a}.json`,u=l?`${o}${a}_${l}.json`:c;let h;try{h=await b(e(u))}catch(t){if(u===c)throw new p.A("intl:unknown-bundle",`Bundle "${r}" cannot be loaded`,{error:t});try{h=await b(e(c))}catch(e){throw new p.A("intl:unknown-bundle",`Bundle "${r}" cannot be loaded`,{error:e})}}return h}(this.getAssetUrl,this.matcher,e,t)}}const y={},k=i.ud,_=o.JK,v=o.oQ,A=i.ao,P=function(e,t,r={}){const{format:s={}}=r;return(0,u.HC)(e,e=>function(e,t,r){let s,n;const o=e.indexOf(":");if(-1===o?s=e.trim():(s=e.slice(0,o).trim(),n=e.slice(o+1).trim()),!s)return"";const i=(0,c.wc)(s,t);if(null==i)return"";const a=(n?r?.[n]:null)??r?.[s];return a?d(i,a):n?f(i,n):g(i)}(e,t,s))};var E;A((E={pattern:"esri/",location:s.s},new w(E)))}}]);