@nextgis/geocoder 3.0.0-alpha.9 → 3.0.0

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.
@@ -1,2 +1,2 @@
1
- function e(e){return null!=e}function t(t){return"string"==typeof t?!!t:e(t)}function r(e,t,r,o){if(e instanceof Array)return t instanceof Array&&t.sort().join("")===e.sort().join("");if(e instanceof Date)return t instanceof Date&&""+e==""+t;if(e instanceof Function){if(!(t instanceof Function))return!1}else if(e instanceof Object)return t instanceof Object&&(e===r?t===o:n(e,t));return e===t}function n(e,t){const n=Object.keys(e).sort(),o=Object.keys(t).sort();if(n.length!==o.length)return!1;if(n.join("")!==o.join(""))return!1;for(let s=0;s<n.length;s++){if(!r(e[n[s]],t[o[s]],e,t))return!1}return!0}function o(e){const t={};return Object.keys(e).forEach((r=>{e[r]instanceof Array||e[r]!==Object(e[r])?void 0!==e[r]&&(t[r]=e[r]):t[r]=o(e[r])})),t}function s(e){return e.replace(/([^:]\/)\/+/g,"$1")}class i{constructor(e){e&&function(e,...t){for(const r of t)for(const t of Object.getOwnPropertyNames(r))e[t]=r[t]}(this,e)}}var a=Object.defineProperty,c=Object.defineProperties,l=Object.getOwnPropertyDescriptors,u=Object.getOwnPropertySymbols,h=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable,p=(e,t)=>(t=Symbol[e])?t:Symbol.for("Symbol."+e),d=(e,t,r)=>t in e?a(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,y=(e,t)=>{for(var r in t||(t={}))h.call(t,r)&&d(e,r,t[r]);if(u)for(var r of u(t))f.call(t,r)&&d(e,r,t[r]);return e},m=(e,t)=>c(e,l(t)),v=function(e,t){this[0]=e,this[1]=t},g=(e,t,r)=>{var n=(e,t,o,s)=>{try{var i=r[e](t),a=(t=i.value)instanceof v,c=i.done;Promise.resolve(a?t[0]:t).then((r=>a?n("return"===e?e:"next",t[1]?{done:r.done,value:r.value}:r,o,s):o({value:r,done:c}))).catch((e=>n("throw",e,o,s)))}catch(l){s(l)}},o=e=>s[e]=t=>new Promise(((r,o)=>n(e,t,r,o))),s={};return r=r.apply(e,t),s[p("asyncIterator")]=()=>s,o("next"),o("throw"),o("return"),s},b=(e,t,r)=>(t=e[p("asyncIterator")])?t.call(e):(e=e[p("iterator")](),t={},(r=(r,n)=>(n=e[r])&&(t[r]=t=>new Promise(((r,o,s)=>(t=n.call(e,t),s=t.done,Promise.resolve(t.value).then((e=>r({value:e,done:s})),o))))))("next"),r("return"),t);let w=0;class O extends i{constructor(e){super(e),d(this,"providers"+"",[]),e&&e.providers&&(this.providers=e.providers)}abort(){this.providers.forEach((e=>{e.abort&&e.abort()}))}search(e){return g(this,null,(function*(){this.abort();let t=!0;const r=[];for(const c of this.providers)try{const r=c.search(e);try{for(var n,o,s,i=b(r);n=!(o=yield new v(i.next())).done;n=!1){const e=o.value;t=!1,yield m(y({},e),{provider:c,_id:w++})}}catch(o){s=[o]}finally{try{n&&(o=i.return)&&(yield new v(o.call(i)))}finally{if(s)throw s[0]}}}catch(a){"CancelError"!==a.name&&r.push(a)}if(t&&r.length)throw new Error(`All providers failed: ${r.map((e=>e.message)).join("; ")}`)}))}result(e){return e.provider?e.provider.result(e):Promise.resolve(void 0)}reverse(e){return g(this,null,(function*(){for(const i of this.providers)if(i.reverse)try{const s=i.reverse(e);try{for(var t,r,n,o=b(s);t=!(r=yield new v(o.next())).done;t=!1){const e=r.value;yield m(y({},e),{provider:i,_id:w++})}}catch(r){n=[r]}finally{try{t&&(r=o.return)&&(yield new v(r.call(o)))}finally{if(n)throw n[0]}}}catch(s){}}))}reverseGeocodeFirstResult(e){return t=this,r=null,n=function*(){for(const i of this.providers)if("function"==typeof i.reverse)try{try{for(var t,r,n,o=b(i.reverse(e));t=!(r=yield o.next()).done;t=!1)return r.value}catch(r){n=[r]}finally{try{t&&(r=o.return)&&(yield r.call(o))}finally{if(n)throw n[0]}}}catch(s){console.error("Error in reverse geocoding:",s)}},new Promise(((e,o)=>{var s=e=>{try{a(n.next(e))}catch(t){o(t)}},i=e=>{try{a(n.throw(e))}catch(t){o(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(s,i);a((n=n.apply(t,r)).next())}));var t,r,n}}var x=Object.defineProperty,j=(e,t,r)=>((e,t,r)=>t in e?x(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class P extends i{constructor(){super(...arguments),j(this,"searchUrl"),j(this,"label")}}function _(){}function E(){E.init.call(this)}function I(e){return void 0===e._maxListeners?E.defaultMaxListeners:e._maxListeners}function C(e,t,r,n){var o,s,i,a;if("function"!=typeof r)throw new TypeError('"listener" argument must be a function');if((s=e._events)?(s.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),s=e._events),i=s[t]):(s=e._events=new _,e._eventsCount=0),i){if("function"==typeof i?i=s[t]=n?[r,i]:[i,r]:n?i.unshift(r):i.push(r),!i.warned&&(o=I(e))&&o>0&&i.length>o){i.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+i.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=i.length,a=c,"function"==typeof console.warn?console.warn(a):console.log(a)}}else i=s[t]=r,++e._eventsCount;return e}function k(e,t,r){var n=!1;function o(){e.removeListener(t,o),n||(n=!0,r.apply(e,arguments))}return o.listener=r,o}function R(e){var t=this._events;if(t){var r=t[e];if("function"==typeof r)return 1;if(r)return r.length}return 0}function S(e,t){for(var r=new Array(t);t--;)r[t]=e[t];return r}_.prototype=Object.create(null),E.EventEmitter=E,E.usingDomains=!1,E.prototype.domain=void 0,E.prototype._events=void 0,E.prototype._maxListeners=void 0,E.defaultMaxListeners=10,E.init=function(){this.domain=null,E.usingDomains&&undefined.active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new _,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},E.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=e,this},E.prototype.getMaxListeners=function(){return I(this)},E.prototype.emit=function(e){var t,r,n,o,s,i,a,c="error"===e;if(i=this._events)c=c&&null==i.error;else if(!c)return!1;if(a=this.domain,c){if(t=arguments[1],!a){if(t instanceof Error)throw t;var l=new Error('Uncaught, unspecified "error" event. ('+t+")");throw l.context=t,l}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=a,t.domainThrown=!1,a.emit("error",t),!1}if(!(r=i[e]))return!1;var u="function"==typeof r;switch(n=arguments.length){case 1:!function(e,t,r){if(t)e.call(r);else for(var n=e.length,o=S(e,n),s=0;s<n;++s)o[s].call(r)}(r,u,this);break;case 2:!function(e,t,r,n){if(t)e.call(r,n);else for(var o=e.length,s=S(e,o),i=0;i<o;++i)s[i].call(r,n)}(r,u,this,arguments[1]);break;case 3:!function(e,t,r,n,o){if(t)e.call(r,n,o);else for(var s=e.length,i=S(e,s),a=0;a<s;++a)i[a].call(r,n,o)}(r,u,this,arguments[1],arguments[2]);break;case 4:!function(e,t,r,n,o,s){if(t)e.call(r,n,o,s);else for(var i=e.length,a=S(e,i),c=0;c<i;++c)a[c].call(r,n,o,s)}(r,u,this,arguments[1],arguments[2],arguments[3]);break;default:for(o=new Array(n-1),s=1;s<n;s++)o[s-1]=arguments[s];!function(e,t,r,n){if(t)e.apply(r,n);else for(var o=e.length,s=S(e,o),i=0;i<o;++i)s[i].apply(r,n)}(r,u,this,o)}return!0},E.prototype.on=E.prototype.addListener=function(e,t){return C(this,e,t,!1)},E.prototype.prependListener=function(e,t){return C(this,e,t,!0)},E.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.on(e,k(this,e,t)),this},E.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.prependListener(e,k(this,e,t)),this},E.prototype.removeListener=function(e,t){var r,n,o,s,i;if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');if(!(n=this._events))return this;if(!(r=n[e]))return this;if(r===t||r.listener&&r.listener===t)0==--this._eventsCount?this._events=new _:(delete n[e],n.removeListener&&this.emit("removeListener",e,r.listener||t));else if("function"!=typeof r){for(o=-1,s=r.length;s-- >0;)if(r[s]===t||r[s].listener&&r[s].listener===t){i=r[s].listener,o=s;break}if(o<0)return this;if(1===r.length){if(r[0]=void 0,0==--this._eventsCount)return this._events=new _,this;delete n[e]}else!function(e,t){for(var r=t,n=r+1,o=e.length;n<o;r+=1,n+=1)e[r]=e[n];e.pop()}(r,o);n.removeListener&&this.emit("removeListener",e,i||t)}return this},E.prototype.off=function(e,t){return this.removeListener(e,t)},E.prototype.removeAllListeners=function(e){var t,r;if(!(r=this._events))return this;if(!r.removeListener)return 0===arguments.length?(this._events=new _,this._eventsCount=0):r[e]&&(0==--this._eventsCount?this._events=new _:delete r[e]),this;if(0===arguments.length){for(var n,o=Object.keys(r),s=0;s<o.length;++s)"removeListener"!==(n=o[s])&&this.removeAllListeners(n);return this.removeAllListeners("removeListener"),this._events=new _,this._eventsCount=0,this}if("function"==typeof(t=r[e]))this.removeListener(e,t);else if(t)do{this.removeListener(e,t[t.length-1])}while(t[0]);return this},E.prototype.listeners=function(e){var t,r=this._events;return r&&(t=r[e])?"function"==typeof t?[t.listener||t]:function(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}(t):[]},E.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):R.call(e,t)},E.prototype.listenerCount=R,E.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};var T=Object.defineProperty,L=(e,t,r)=>((e,t,r)=>t in e?T(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);const A=class e{constructor(t={}){var r;L(this,"cache",[]);const n=null!=(r=t.namespace)?r:"default";return e.instance[n]?e.instance[n]:(e.instance[n]=this,this)}clean(){this.cache.length=0}all(){return this.cache}addFull(e,t,r,n){return"object"==typeof r&&"valueToSet"in r&&(r.onlyFull=!0),this.add(e,t,r,!0,n)}add(e,r,n,s,i){let a,c;"object"==typeof n&&"valueToSet"in n?(a=n,s=a.onlyFull,i=a.expirationTime,c=a.props):c=n;const l=this._find(e,c);if(l)return l.value;{let n;n=r instanceof Function?r():r;const a=c&&JSON.parse(JSON.stringify(o(c)));i=i?Date.now()+i:void 0;const l={key:e,value:n,props:a,expirationTime:i};return s&&!t(n)?n:(this.cache.push(l),n instanceof Promise?(n.catch((t=>{this.delete(e,c)})),s&&n.then((r=>(t(r)||this.delete(e,c),r))),n):n)}}match(e,t){const r=this._find(e,t);if(!(r&&r.expirationTime&&Date.now()>r.expirationTime))return null==r?void 0:r.value;this.delete(r)}matchAll(e,t){const r=Date.now();return this.cache.forEach((e=>{e.expirationTime&&r>e.expirationTime&&this.delete(e)})),e?this.cache.filter((r=>this._filter(r,e,t))).map((e=>e.value)):this.cache.map((e=>e.value))}delete(e,t){const r="string"==typeof e?this.cache.filter((r=>this._filter(r,e,t))):[e];for(const n of r){const e=this.cache.indexOf(n);-1!==e&&this.cache.splice(e,1)}}_find(e,t){return this.cache.find((r=>this._filter(r,e,t)))}_filter(e,t,r){if(e.key!==t)return!1;if(!r)return!0;return n(e.props||{},o(r))}};L(A,"instance",{});let U=A;var $="3.0.0-alpha.8";const q=[];function N(e){q.push(e)}class F extends Error{constructor(e="AbortError"){super(e),this.name="AbortError"}}var D=Object.defineProperty,M=(e,t,r)=>((e,t,r)=>t in e?D(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class B extends Error{constructor(e){super(),M(this,"name","NgwError"),M(this,"title"),M(this,"message"),M(this,"detail"),M(this,"exception"),M(this,"status_code"),M(this,"data"),M(this,"guru_meditation"),Object.assign(this,e),Object.setPrototypeOf(this,B.prototype)}}var G=Object.defineProperty,H=(e,t,r)=>((e,t,r)=>t in e?G(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class z extends B{constructor(e){super(e),H(this,"name","InsufficientPermissionsError"),H(this,"exception","nextgisweb.core.exception.InsufficientPermissions"),Object.setPrototypeOf(this,z.prototype)}}var J=Object.defineProperty,Q=(e,t,r)=>((e,t,r)=>t in e?J(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class W extends B{constructor(e){super(e),Q(this,"name","ResourceNotFoundError"),Q(this,"exception","nextgisweb.resource.exception.ResourceNotFound"),Object.setPrototypeOf(this,W.prototype)}}var K=Object.defineProperty,V=(e,t,r)=>((e,t,r)=>t in e?K(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class Y extends Error{constructor(e){super(e||"Something went wrong."),V(this,"title"),this.name="BaseAPIError",this.title="Unknown API error",Error.captureStackTrace&&Error.captureStackTrace(this,Y)}}class X extends Y{constructor(e){super(e||"There is no response from the server or problem connecting to server."),V(this,"detail"),this.title="Network error",this.detail="Check network connectivity and try again later."}}class Z extends Y{constructor(e){super(e||"Something went wrong."),this.title="Unexpected server response"}}class ee extends Y{constructor(e){super(e.message),V(this,"detail"),V(this,"data"),this.title=e.title||this.title,this.detail=e.detail||null,this.data=e}}class te extends Error{constructor(e,t={}){super(e||"Unexpected error while processing long-running request."),V(this,"title"),V(this,"data"),this.name="LunkwillError",this.title="Long-running request error",this.data=t,Error.captureStackTrace&&Error.captureStackTrace(this,te)}}class re extends te{constructor(e){super("Long-running request was cancelled.",e)}}class ne extends te{constructor(e){super(void 0,e)}}var oe=Object.defineProperty,se=Object.getOwnPropertySymbols,ie=Object.prototype.hasOwnProperty,ae=Object.prototype.propertyIsEnumerable,ce=(e,t,r)=>t in e?oe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,le=(e,t)=>{for(var r in t||(t={}))ie.call(t,r)&&ce(e,r,t[r]);if(se)for(var r of se(t))ae.call(t,r)&&ce(e,r,t[r]);return e},ue=(e,t)=>{var r={};for(var n in e)ie.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&se)for(var n of se(e))t.indexOf(n)<0&&ae.call(e,n)&&(r[n]=e[n]);return r},he=(e,t,r)=>new Promise(((n,o)=>{var s=e=>{try{a(r.next(e))}catch(t){o(t)}},i=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(s,i);a((r=r.apply(e,t)).next())}));function fe(e){return he(this,null,(function*(){const t=yield function(e){return he(this,null,(function*(){try{return e.json()}catch(t){throw new Error}}))}(e);let r=t.delay_ms;const n=void 0!==t.retry_ms?t.retry_ms:2e3,o=`/api/lunkwill/${t.id}/summary`,s=`/api/lunkwill/${t.id}/response`,i=e=>new Promise((t=>setTimeout(t,e)));let a=!1,c=!1;for(;!c;){let e,t;yield i(a?n:r),a=!1;try{e=yield fetch(o,{credentials:"same-origin"}),t=yield e.json()}catch(l){a=!0;continue}switch(t.status){case void 0:throw new te(void 0,t);case"ready":c=!0;break;case"cancelled":throw new re(t);case"failed":throw new ne(t);case"spooled":case"processing":case"buffering":r=t.delay_ms;break;default:throw new te(void 0,t)}}return s}))}const pe=new RegExp(["application/pdf","image/png","image/jpeg","image/tiff","text/csv"].join("|"));function de(e,t){let r="";return void 0!==t&&(r="?"+function(e){const t=[];for(const[r,n]of Object.entries(e))if("string"==typeof n||"number"==typeof n||"boolean"==typeof n)t.push(`${r}=${encodeURIComponent(n)}`);else if(Array.isArray(n))t.push(`${r}=${n.map(encodeURIComponent).join(",")}`);else for(const[e,o]of Object.entries(n)){const n=`${r}[${encodeURIComponent(e)}]`;if("string"==typeof o||"number"==typeof o||"boolean"==typeof o)t.push(`${n}=${encodeURIComponent(o)}`);else if(Array.isArray(o)){const e=o.map(encodeURIComponent);t.push(`${n}=${e.join(",")}`)}}return t.join("&")}(t)),e+r}function ye(e,t,r){return he(this,null,(function*(){var n;const s=le(le({},{method:"GET",credentials:"same-origin",headers:{}}),t),{withCredentials:i,responseType:a,cacheProps:c,cacheName:l,lunkwill:u,cache:h,query:f,json:p}=s,d=ue(s,["withCredentials","responseType","cacheProps","cacheName","lunkwill","cache","query","json"]);i&&(d.credentials="include");let y=!1;void 0!==u&&(u.toHeaders(d.headers||{}),y=!0);const m=!!d.lunkwillReturnUrl;if(delete d.lunkwillReturnUrl,void 0!==p){d.body=JSON.stringify(p);const e=d.headers||{};e["Content-Type"]="application/json",d.headers=e}const v=de(e,f),g=()=>he(this,null,(function*(){let e;try{e=yield fetch(v,d)}catch(o){if("AbortError"===o.name)throw o;throw new X}if(y&&function(e){const t=e.headers.get("content-type");return null!=t&&t.includes("application/vnd.lunkwill.request-summary+json")}(e)){const t=yield fe(e);if(m)return t;e=yield function(e){return he(this,null,(function*(){try{return yield window.fetch(e,{credentials:"same-origin"})}catch(o){throw new X}}))}(t)}const t=e.headers.get("content-type"),r=t&&(t.includes("application/json")||t.includes("application/vnd.lunkwill.request-summary+json"));let n;try{const o=t&&pe.test(t);if("blob"===a||o)n=yield e.blob();else{if(!r)throw new Z;n=yield e.json()}}catch(o){if("AbortError"===o.name||o instanceof Z)throw o;throw new Z}if(400<=e.status&&e.status<=599)throw new ee(n);return n}));if(r&&h&&"GET"===(null==(n=d.method)?void 0:n.toUpperCase())){const e=c||le({},o({withCredentials:i,responseType:a}));return r.add(l||v,g,e,!1)}return g()}))}var me=Object.defineProperty,ve=Object.defineProperties,ge=Object.getOwnPropertyDescriptors,be=Object.getOwnPropertySymbols,we=Object.prototype.hasOwnProperty,Oe=Object.prototype.propertyIsEnumerable,xe=(e,t,r)=>t in e?me(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,je=(e,t)=>{for(var r in t||(t={}))we.call(t,r)&&xe(e,r,t[r]);if(be)for(var r of be(t))Oe.call(t,r)&&xe(e,r,t[r]);return e},Pe=(e,t)=>{var r={};for(var n in e)we.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&be)for(var n of be(e))t.indexOf(n)<0&&Oe.call(e,n)&&(r[n]=e[n]);return r},_e=(e,t,r)=>new Promise(((n,o)=>{var s=e=>{try{a(r.next(e))}catch(t){o(t)}},i=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(s,i);a((r=r.apply(e,t)).next())}));function Ee(e,t,r,...n){const[o,...i]=r[e],a=n[0];let c;if(void 0===a)c=[];else if("object"==typeof a&&null!==a){if(n.length>1)throw new Error("Too many arguments for route(name, object)!");c=[];for(const[e,t]of Object.entries(a))c[i.indexOf(e)]=String(t)}else c=n.map((e=>String(e)));return s(t+o.replace(/\{(\w+)\}/g,(function(e,t){const r=parseInt(t),n=c[r];if(void 0===n){throw new Error(`Undefined parameter ${r} in "${o}".`)}return String(n)})))}var Ie=Object.defineProperty,Ce=(e,t,r)=>((e,t,r)=>t in e?Ie(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,t+"",r);class ke extends Error{constructor(e){super(),Ce(this,"name","NetworkError"),Object.setPrototypeOf(this,ke.prototype),this.message=`Unable to request ${e}.\n Possibly invalid NGW URL entered or CORS not configured to get request from ${location.origin}`}}function Re(e){return"[object Object]"===Object.prototype.toString.call(e)}let Se;Se=(e,t,r={},n,o)=>{r.method=r.method||"GET";const s=new XMLHttpRequest;s.open(r.method||"GET",e,!0),"blob"===r.responseType&&(s.responseType=r.responseType);const i=()=>{try{return JSON.parse(s.responseText)}catch(e){return s.responseText}};s.onload=()=>{-1!==[401,403,404,422,500].indexOf(s.status)&&n(new B(i())),((e=!1)=>{const o=e?n:t;"blob"===r.responseType?o(s.response):s.responseText?o(i()):n({message:""})})()},s.onerror=t=>{n(0===s.status?new ke(e):t)},s.upload.onprogress=function(e){if(e.lengthComputable){r.onProgress&&r.onProgress(e.loaded/e.total*100,e)}};const a=r.headers;if(a)for(const l in a){const e=a[l];"string"==typeof e&&s.setRequestHeader(l,e)}let c;if(void 0!==r.withCredentials&&(s.withCredentials=r.withCredentials),r.file){if(c=new FormData,c.append("file",r.file),r.data)for(const l in r.data)c.append(l,c[l])}else c=r.data?"string"==typeof r.data?r.data:JSON.stringify(r.data):null;o&&o((()=>{s.abort()})),s.send(c)};const Te=/\{ *([\w_-]+) *\}/g;function Le(e,t){return e.replace(Te,((e,r)=>{let n=t[r];if(void 0===n)throw new Error("No value provided for letiable "+e);return"function"==typeof n&&(n=n(t)),n}))}var Ae=Object.defineProperty,Ue=Object.defineProperties,$e=Object.getOwnPropertyDescriptors,qe=Object.getOwnPropertySymbols,Ne=Object.prototype.hasOwnProperty,Fe=Object.prototype.propertyIsEnumerable,De=(e,t,r)=>t in e?Ae(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Me=(e,t)=>{for(var r in t||(t={}))Ne.call(t,r)&&De(e,r,t[r]);if(qe)for(var r of qe(t))Fe.call(t,r)&&De(e,r,t[r]);return e},Be=(e,t,r)=>De(e,"symbol"!=typeof t?t+"":t,r),Ge=(e,t,r)=>new Promise(((n,o)=>{var s=e=>{try{a(r.next(e))}catch(t){o(t)}},i=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(s,i);a((r=r.apply(e,t)).next())}));let He=0,ze=0;class Je{constructor(e){this.options=e,Be(this,"id",He++),Be(this,"emitter",new E),Be(this,"user"),Be(this,"cache"),Be(this,"withCredentials"),Be(this,"client",`NextGIS-NGW-Connector/${$}`),Be(this,"routeStr","/api/component/pyramid/route"),Be(this,"activeRequests",{}),Be(this,"requestTransform");const t=function(e){return q.find((t=>{if(t.options.baseUrl===e.baseUrl){if(!e.auth)return!0;if(t.options.auth)return n(t.options.auth,e.auth)}}))}(e);if(this.cache=new U({namespace:e.cacheId}),t)return t;{const{route:e,requestTransform:t,withCredentials:r}=this.options;e&&(this.routeStr=e),t&&(this.requestTransform=t),void 0!==r&&(this.withCredentials=r),N(this)}}clearCache(){this.cache.clean()}setRequestTransform(e){this.requestTransform=e}setNgw(e){this.logout(),this.options.baseUrl=e,N(this)}connect(){return Ge(this,null,(function*(){const e=this.options.auth;if(e){const{login:t,password:r}=e;t&&r&&(yield this._login({login:t,password:r}))}const t=`${this.routeStr}?client=${this.client}`;return yield this.makeQuery(t,{},{cacheName:"route",cache:!0,cacheProps:{id:this.id,auth:e,baseUrl:this.options.baseUrl}})}))}login(e,t){return this.logout(),N(this),this._login(e,t)}logout(){this.abort(),function(e){const t=q.indexOf(e);-1!==t&&q.splice(t,1)}(this),this.options.auth=void 0,this.user=void 0,this.clearCache(),this.emitter.emit("logout")}getUserInfo(e,t){return Ge(this,null,(function*(){if(this.user&&this.user.id)return this.user;e&&(this.options.auth=e);const r=Me({headers:this.getAuthorizationHeaders(e),cache:!0},t);return this.makeQuery("/api/component/auth/current_user",{},r)}))}getAuthorizationHeaders(e){const t=this.makeClientId(e);return t?{Authorization:`Basic ${t}`}:{}}makeClientId(e){if(e=e||this.options.auth){const{login:t,password:r}=e,n=[t,r].map(encodeURIComponent).join(":");return window.btoa(n)}}abort(){for(const e of Object.values(this.activeRequests))e.abort();this.activeRequests={}}getActiveApiRequests(){return Me({},this.activeRequests)}route(e,...t){return function(e,t,...r){const n={url:n=>_e(this,null,(function*(){var o;const s=yield t.connect();return de(Ee(e,null!=(o=t.options.baseUrl)?o:"",s,...r),null==n?void 0:n.query)}))},s=["get","post","put","delete","patch"];for(const i of s){const s=n=>_e(this,null,(function*(){var s;const a=n||{},{headers:c}=a,l=Pe(a,["headers"]),u=yield t.connect(),h=Ee(e,null!=(s=t.options.baseUrl)?s:"",u,...r),f=o(je(je({},t.getAuthorizationHeaders()),null!=c?c:{}));return ye(h,(p=je({headers:f},l),ve(p,ge({method:i}))),t.cache);var p}));n[i]=s}return n}(e,this,...t)}makeQuery(e,t){return Ge(this,arguments,(function*(e,t,r={}){var n;if(!(e=(this.options.baseUrl?this.options.baseUrl:"")+e))throw new Error("Empty `url` not allowed");if(t){const r=((e,t)=>{var r={};for(var n in e)Ne.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&qe)for(var n of qe(e))t.indexOf(n)<0&&Fe.call(e,n)&&(r[n]=e[n]);return r})(t,["paramList"]);e=Le(e,r)}e=encodeURI(s(e)),r=Me({withCredentials:this.withCredentials},r);const{cache:i,signal:a,method:c="GET",headers:l,cacheName:u,cacheProps:h,responseType:f,withCredentials:p}=r,d=new AbortController,y=d.signal;if(a){if(a.aborted)throw new F;a.addEventListener("abort",(()=>{d.abort()}))}r.signal=y;const m=()=>Ge(this,null,(function*(){const t=ze++;this.activeRequests[t]=d;try{return this._loadData(e,r)}finally{this._cleanActiveRequest(t)}}));if("GET"===c){const r=h||(v=Me({},o({headers:l,withCredentials:p,responseType:f,baseUrl:this.options.baseUrl,userId:null==(n=this.user)?void 0:n.id})),Ue(v,$e({params:t})));return this.cache.add(u||e,m,{props:r,expirationTime:i?void 0:500})}var v;return m()}))}_loadData(e,t){return t.responseType=t.responseType||"json",new Promise(((r,n)=>{var o;if(this.user&&((t=t||{}).headers=Me(Me({},this.getAuthorizationHeaders()),t.headers)),this.requestTransform){const[r,n]=this.requestTransform(e,t);e=r,t=n}let s;Se(e,r,t,n,(e=>{s=e})),null==(o=t.signal)||o.addEventListener("abort",(()=>{void 0!==s&&s(),n(new F)}))})).catch((e=>{if("AbortError"!==e.name){const t=this._handleHttpError(e);if(t)throw t}throw e}))}_login(e,t){return Ge(this,null,(function*(){try{const r=yield this.getUserInfo(e,t);return this.user=r,this.emitter.emit("login",r),r}catch(r){throw this.emitter.emit("login:error",r),r}}))}_cleanActiveRequest(e){delete this.activeRequests[e]}_handleHttpError(e){if(e&&e instanceof B){if("nextgisweb.resource.exception.ResourceNotFound"===e.exception)throw new W(e);if("nextgisweb.core.exception.InsufficientPermissions"===e.exception)throw new z(e)}return e}}Be(Je,"errors",{NgwError:B,ResourceNotFoundError:W});const Qe=["description"];function We(t,r=""){r=r?r+"__":"";const n={};for(const[o,s]of Object.entries(t))if(-1===Qe.indexOf(o))if(Re(s))if("owner_user"===o){const e=We(s,o);Object.assign(n,e)}else"parent"===o&&"id"in s&&(n.parent_id=s.id);else e(s)&&(n[r+o]=s);return n}var Ke=Object.defineProperty,Ve=Object.getOwnPropertySymbols,Ye=Object.prototype.hasOwnProperty,Xe=Object.prototype.propertyIsEnumerable,Ze=(e,t,r)=>t in e?Ke(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,et=(e,t)=>{for(var r in t||(t={}))Ye.call(t,r)&&Ze(e,r,t[r]);if(Ve)for(var r of Ve(t))Xe.call(t,r)&&Ze(e,r,t[r]);return e},tt=(e,t,r)=>Ze(e,"symbol"!=typeof t?t+"":t,r);class rt{constructor({connector:e,cacheId:t}){tt(this,"cache"),tt(this,"connector"),this.connector=e,this.cache=new U({namespace:t})}getOne(e,t){const r=et({},t);return"string"==typeof e||"number"==typeof e||Re(e),"string"==typeof e?this._fetchResourceBy({keyname:e},r):"number"==typeof e?this._fetchResourceById(e,r):Re(e)?this._fetchResourceBy(e,r):Promise.resolve(void 0)}getOneOrFail(e,t){return this.getOne(e,t).then((e=>{if(e)return e;throw new W}))}getId(e,t){return"number"==typeof e?Promise.resolve(e):"string"==typeof e||Re(e)?this.getOne(e,t).then((e=>{if(e)return e.resource.id})):Promise.resolve(void 0)}getIdOrFail(e,t){return this.getId(e,t).then((e=>{if(void 0===e)throw new Error;return e}))}getMany(e,t){return this._resourceCacheFilter(e).then((r=>{if(!r.length){const r={};return e.keyname?r.keyname=e.keyname:Object.assign(r,We(e)),this.connector.get("resource.search",t,et({serialization:"full"},r)).then((e=>{if((null==t?void 0:t.cache)&&e)for(const t of e)this.cache.add("resource.item",Promise.resolve(t),{id:t.resource.id});return e}))}return r}))}getParent(e,t){return this.getOne(e,t).then((e=>e?this.getOne(e.resource.parent.id,t):Promise.resolve(void 0)))}getChildrenOf(e,t){return this.getIdOrFail(e).then((e=>this._getChildrenOf(e,t)))}update(e,t){return this.getId(e).then((e=>{if(void 0!==e)return this.connector.put("resource.item",{data:t},{id:e})}))}delete(e){return this.getId(e).then((e=>{if(void 0!==e)return this.connector.delete("resource.item",null,{id:e}).then((()=>{this._cleanResourceItemCache(e)}))}))}_getChildrenOf(e,t,r=[]){return this.connector.get("resource.collection",t,{parent:e}).then((e=>{const n=[];for(const o of e)(null==t?void 0:t.cache)&&this.cache.add("resource.item",Promise.resolve(o),{id:o.resource.id}),r.push(o),(null==t?void 0:t.recursive)&&o.resource.children&&n.push(this._getChildrenOf(o.resource.id,t,r));return n.length?Promise.all(n).then((()=>r)):r}))}_cleanResourceItemCache(e){return t=this,r=null,n=function*(){var t;const r=this.cache.all(),n=[];for(const o of r){const r=null==(t=o.props)?void 0:t.id;["resource.item","resource"].includes(o.key)&&void 0!==r&&("number"==typeof r?r===e&&n.push(o):(yield this.getId(r))===e&&n.push(o))}for(const e of n)this.cache.delete(e)},new Promise(((e,o)=>{var s=e=>{try{a(n.next(e))}catch(t){o(t)}},i=e=>{try{a(n.throw(e))}catch(t){o(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(s,i);a((n=n.apply(t,r)).next())}));var t,r,n}_fetchResourceById(e,t){return this.connector.get("resource.item",t,{id:e})}_fetchResourceBy(e,t){return this.getMany(e,t).then((e=>e[0]))}_resourceCacheFilter(t){return Promise.all(this.cache.matchAll("resource.item")).then((r=>(r.filter((r=>{if(r)return t.keyname&&r.resource.keyname?t.keyname===r.resource.keyname:e(t.id)&&e(r.resource.id)?t.id===r.resource.id:n(t,r.resource)})),[])))}}var nt=Object.defineProperty,ot=Object.getOwnPropertySymbols,st=Object.prototype.hasOwnProperty,it=Object.prototype.propertyIsEnumerable,at=(e,t,r)=>t in e?nt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;function ct(e){return t=this,r=null,n=function*(){const{params:t,name:r,connector:n,requestOptions:o}=e,s=yield n.connect();let i=s&&s[r];if(i){i=[...i];let e=i.shift();if(i.length){const r={};for(let e=0;e<i.length;e++){const n=i[e];if(r[e]=`{${n}}`,void 0===t[n])throw new Error(`\`${n}\` URL API argument is not specified`)}e&&(e=Le(e,r))}if(t){const r=[],n=t.paramList;Array.isArray(n)&&n.forEach((([e,t])=>{r.push(`${e}=${t}`)}));for(const e in t)-1===i.indexOf(e)&&r.push(`${e}=${t[e]}`);r.length&&(e=`${e}?${r.join("&")}`)}if(e)return n.makeQuery(e,t,((e,t)=>{for(var r in t||(t={}))st.call(t,r)&&at(e,r,t[r]);if(ot)for(var r of ot(t))it.call(t,r)&&at(e,r,t[r]);return e})({cacheName:r},o));throw new Error("Request URL is not set")}},new Promise(((e,o)=>{var s=e=>{try{a(n.next(e))}catch(t){o(t)}},i=e=>{try{a(n.throw(e))}catch(t){o(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(s,i);a((n=n.apply(t,r)).next())}));var t,r,n}var lt=Object.defineProperty,ut=(e,t,r)=>((e,t,r)=>t in e?lt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,t+"",r);class ht extends Je{constructor(e){super(e),ut(this,"resources"),this.resources=new rt({connector:this,cacheId:e.cacheId})}static create(e){return new this(e)}clearCache(){super.clearCache(),this.resources.cache.clean()}apiRequest(e,t={},r={}){var n;return ct({name:e,params:o(t=null!=(n=r.params)?n:t),requestOptions:r,connector:this})}post(e,t,r){return(t=t||{}).method="POST",this.apiRequest(e,r,t)}get(e,t,r){return(t=t||{}).method="GET",this.apiRequest(e,r,t)}patch(e,t,r){return(t=t||{}).method="PATCH",this.apiRequest(e,r,t)}put(e,t,r){return(t=t||{}).method="PUT",this.apiRequest(e,r,t)}delete(e,t,r){return(t=t||{}).method="DELETE",this.apiRequest(e,r,t)}getResource(e,t){return this.resources.getOne(e,t)}getResourceOrFail(e,t){return this.resources.getOneOrFail(e,t)}getResourceBy(e){return this.resources.getOne(e)}getResourceByKeyname(e){return this.resources.getOne(e)}getResourceById(e){return this.resources.getOne(e)}getResourceId(e,t){return this.resources.getId(e,t)}getResourceIdOrFail(e,t){return this.resources.getIdOrFail(e,t)}getResourcesBy(e,t){return this.resources.getMany(e,t)}getResourceParent(e,t){return this.resources.getParent(e,t)}getResourceChildren(e,t){return this.resources.getChildrenOf(e,t)}updateResource(e,t){return this.resources.update(e,t)}deleteResource(e){return this.resources.delete(e)}}function ft(e,t,r){if((t=String(t))===(e=String(e)))return!0;if(r&&t.toUpperCase()===e.toUpperCase())return!0;const n=`^${o=t,o.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")}$`.replace(/%/g,".*").replace("_",".");var o;return null!==new RegExp(n,r?"i":"").exec(e)}const pt={gt:(e,t)=>e>t,lt:(e,t)=>e<t,ge:(e,t)=>e>=t,le:(e,t)=>e<=t,eq:(e,t)=>e===t,ne:(e,t)=>e!==t,in:(e,t)=>-1!==t.indexOf(e),notin:(e,t)=>-1===t.indexOf(e),like:(e,t)=>ft(e,t),ilike:(e,t)=>ft(e,t,!0)};function dt(e){return 3===e.length&&"string"==typeof e[0]&&"string"==typeof e[1]}function yt(e,t){const r="string"==typeof t[0]?t[0]:"all",n=t=>{if(dt(t)){const[r,n,o]=t,s=pt[n];if(s){if(("like"===n||"ilike"===n)&&"string"==typeof r){let t="";const n=r.replace(/^%?(\w+)%?$/,((n,s)=>(t=e[s],r.replace(s,o))));return s(t,n)}return s(e[r],o)}return!1}return yt(e,t)},o=t.filter((e=>Array.isArray(e)));return"any"===r?o.some(n):o.every(n)}var mt=Object.defineProperty,vt=Object.defineProperties,gt=Object.getOwnPropertyDescriptors,bt=Object.getOwnPropertySymbols,wt=Object.prototype.hasOwnProperty,Ot=Object.prototype.propertyIsEnumerable,xt=(e,t,r)=>t in e?mt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,jt=(e,t)=>{for(var r in t||(t={}))wt.call(t,r)&&xt(e,r,t[r]);if(bt)for(var r of bt(t))Ot.call(t,r)&&xt(e,r,t[r]);return e},Pt=(e,t)=>vt(e,gt(t)),_t=(e,t,r)=>new Promise(((n,o)=>{var s=e=>{try{a(r.next(e))}catch(t){o(t)}},i=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(s,i);a((r=r.apply(e,t)).next())}));const Et={srs:4326,geom_format:"geojson"};function It(e){return _t(this,null,(function*(){const t=kt(e),r=yield Promise.all(t),n=[],o=[];for(const e of r)for(const t of e)n.includes(t.id)||(o.push(t),n.push(t.id));return e.offset||e.limit?o.splice(void 0!==e.offset?e.offset:0,void 0!==e.limit?e.limit:o.length):o}))}function Ct(e){const[t,r,n]=e;let o="",s="";return[`${"id"!==t?"fld_":""}${String(t).trim().replace(/^(%?)(.+?)(%?)$/,((e,t,r,n)=>(o=t,s=n,r)))}__${r}`,o+n+s]}function kt(e,t=[],r=[]){var n;const{filters:o}=e,s=null!=(n=e.paramList)?n:[],i="string"==typeof o[0]?o[0]:"all",a=o.filter((e=>Array.isArray(e)));if("any"===i)for(const c of a)dt(c)?t.push(St(Pt(jt({},e),{paramList:[...r,...s,Ct(c)]}))):kt(Pt(jt({},e),{filters:c}),t,[...r]);else if("all"===i){const n=[],o=[];for(const e of a)dt(e)?n.push(Ct(e)):o.push(e);if(o.length)for(const s of o)kt(Pt(jt({},e),{filters:s}),t,[...r,...n]);else t.push(St(Pt(jt({},e),{paramList:[...r,...s,...n]})))}return t}function Rt(e){return`POLYGON((${e.map((([e,t])=>{const[r,n]=function(e,t){t=t>85.06?85.06:t<-85.06?-85.06:t;const r=20037508.34*e/180;let n=Math.log(Math.tan((90+t)*Math.PI/360))/(Math.PI/180);return n=20037508.34*n/180,[r,n]}(e,t).map((e=>Math.round(1*(e+Number.EPSILON))/1));return r+" "+n})).join(", ")}))`}function St(t){const r=jt({},Et),{limit:n,cache:o,signal:s,offset:i,orderBy:a,paramList:c,connector:l,geomFormat:u,intersects:h,resourceId:f}=t;if(n?n!==Number.POSITIVE_INFINITY&&(r.limit=n):r.limit=7e3,i&&(r.offset=i),u&&(r.geom_format=u),function(t,r){const{extensions:n,geom:o,fields:s,srs:i,ilike:a,like:c}=r,l=n?n.join(","):"";"*"!==l&&(t.extensions=l),null!=s&&(t.fields=Array.isArray(s)?s.join(","):""),void 0!==o&&(t.geom=o?"yes":"no",o||(delete t.srs,delete t.geom_format)),e(a)?t.ilike=a:e(c)&&(t.like=c),e(i)&&(t.srs=i)}(r,t),a&&(r.order_by=a.join(",")),Array.isArray(h)){const e=(p=h,Array.isArray(p)&&4===p.length&&p.every((e=>"number"==typeof e))?function(e){const t=[e[0],e[1]];return[t,[e[2],e[1]],[e[2],e[3]],[e[0],e[3]],t]}(h):h);r.intersects=Rt(e)}else"string"==typeof h&&(r.intersects=h);var p;c&&(r.paramList=c);const d=jt({id:f},r);return l.get("feature_layer.feature.collection",{cache:o,signal:s},d)}var Tt=Object.defineProperty,Lt=Object.defineProperties,At=Object.getOwnPropertyDescriptors,Ut=Object.getOwnPropertySymbols,$t=Object.prototype.hasOwnProperty,qt=Object.prototype.propertyIsEnumerable,Nt=(e,t,r)=>t in e?Tt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ft=(e,t)=>{for(var r in t||(t={}))$t.call(t,r)&&Nt(e,r,t[r]);if(Ut)for(var r of Ut(t))qt.call(t,r)&&Nt(e,r,t[r]);return e},Dt=(e,t)=>Lt(e,At(t));function Mt(t){return r=this,n=null,o=function*(){var r;const n=t.filters;if(n){let o=yield It(Dt(Ft({},t),{filters:n}));return(null!=(r=t.clientFilterValidate)?r:Bt(n))&&(o=o.filter((t=>yt(function(t){let r;for(r in t){const n=t[r];if("[object Object]"===Object.prototype.toString.call(n)){const o=n;if(e(o.year)&&e(o.month)&&e(o.day)){const e=[o.year,o.month-1,o.day];"hour"in o&&[o.hour,o.minute,o.second].forEach((t=>{e.push(t)})),t[r]=new Date(...e).toISOString()}}else"id"===r&&"string"==typeof n&&(t[r]=n.split(",").map(Number))}return t}(Dt(Ft({},t.fields),{id:t.id})),n)))),o}return St(t)},new Promise(((e,t)=>{var s=e=>{try{a(o.next(e))}catch(r){t(r)}},i=e=>{try{a(o.throw(e))}catch(r){t(r)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(s,i);a((o=o.apply(r,n)).next())}));var r,n,o}function Bt(e){if("any"===e[0])return!0;for(let t=1;t<e.length;t++){const r=e[t];if("[object Array]"===Object.prototype.toString.call(r)){if(Bt(r))return!0}}return!1}var Gt=Object.defineProperty,Ht=Object.getOwnPropertySymbols,zt=Object.prototype.hasOwnProperty,Jt=Object.prototype.propertyIsEnumerable,Qt=(e,t,r)=>t in e?Gt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Wt=(e,t,r)=>Qt(e,"symbol"!=typeof t?t+"":t,r),Kt=function(e,t){this[0]=e,this[1]=t},Vt=(e,t,r)=>{var n,o,s=(e,t,n,o)=>{try{var i=r[e](t),a=(t=i.value)instanceof Kt,c=i.done;Promise.resolve(a?t[0]:t).then((r=>a?s("return"===e?e:"next",t[1]?{done:r.done,value:r.value}:r,n,o):n({value:r,done:c}))).catch((e=>s("throw",e,n,o)))}catch(l){o(l)}},i=e=>a[e]=t=>new Promise(((r,n)=>s(e,t,r,n))),a={};return r=r.apply(e,t),a[(n="asyncIterator",(o=Symbol[n])?o:Symbol.for("Symbol."+n))]=()=>a,i("next"),i("throw"),i("return"),a};const Yt=class e extends P{constructor(e){var t;if(super(e),Wt(this,"searchResources",[]),Wt(this,"connector"),Wt(this,"_abortControllers",[]),!e.searchUrl&&!(null==(t=e.connectorOptions)?void 0:t.baseUrl))throw new Error("The `searchUrl` of `connectorOptions.baseUrl` are required");this.connector=e.connector||new ht(((e,t)=>{for(var r in t||(t={}))zt.call(t,r)&&Qt(e,r,t[r]);if(Ht)for(var r of Ht(t))Jt.call(t,r)&&Qt(e,r,t[r]);return e})({baseUrl:this.searchUrl},e.connectorOptions)),this.searchResources=e.searchResources}abort(){this._abortControllers.forEach((e=>{e.abort()})),this._abortControllers.length=0}search(t){return Vt(this,null,(function*(){var r,n;const o=this._makeSignal();for(const i of this.searchResources){if(o.aborted)break;const{searchMethod:a}=i,c=null!=(r=i.limit)?r:e.limit,l=null!=(n=i.id)?n:i.resourceId;try{const e=yield new Kt(this.connector.getResourceOrFail(l,{cache:!0})),r={connector:this.connector,resourceId:l,signal:o,limit:c};"like"===a?r.like=t:r.ilike=t;const n=Mt(r),s=yield new Kt(n);for(const o of this._items({entries:s,query:t,config:i,resourceItem:e}))o.result=()=>this.result(o),yield o}catch(s){s&&"name"in s&&"CancelError"!==s.name&&console.warn(s)}}}))}result(e){const t=this._makeSignal();return this.connector.get("feature_layer.feature.item_extent",{signal:t},{id:e.resourceId,fid:e.featureId}).then((t=>{const r=t.extent;return{text:e.text,extent:[r.minLon,r.minLat,r.maxLon,r.maxLat]}}))}reverse(e){return Vt(this,null,(function*(){throw new Error("Not implemented")}))}_makeSignal(){const e=new AbortController;return this._abortControllers.push(e),e.signal}_items({entries:e,query:t,config:r,resourceItem:n}){var o;const s=[];let i;n.feature_layer&&(i=null==(o=n.feature_layer.fields.find((e=>e.label_field)))?void 0:o.keyname);return this.searchResources.find((e=>{var t;return null!=(t=e.id)?t:e.resourceId===n.resource.id}))&&e.forEach((e=>{let o=i?e.fields[i]:e.id;r.renderSearch?o=r.renderSearch({item:e,resourceItem:n}):i&&(o=e.fields[i]),s.push({query:t,text:o,featureId:e.id,resourceId:n.resource.id,item:e,resourceItem:n})})),s}};Wt(Yt,"limit",300);let Xt=Yt;var Zt=Object.defineProperty,er=(e,t,r)=>((e,t,r)=>t in e?Zt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r),tr=function(e,t){this[0]=e,this[1]=t},rr=(e,t,r)=>{var n,o,s=(e,t,n,o)=>{try{var i=r[e](t),a=(t=i.value)instanceof tr,c=i.done;Promise.resolve(a?t[0]:t).then((r=>a?s("return"===e?e:"next",t[1]?{done:r.done,value:r.value}:r,n,o):n({value:r,done:c}))).catch((e=>s("throw",e,n,o)))}catch(l){o(l)}},i=e=>a[e]=t=>new Promise(((r,n)=>s(e,t,r,n))),a={};return r=r.apply(e,t),a[(n="asyncIterator",(o=Symbol[n])?o:Symbol.for("Symbol."+n))]=()=>a,i("next"),i("throw"),i("return"),a};class nr extends P{constructor(e){super(),this.options=e,er(this,"searchUrl","https://nominatim.openstreetmap.org"),er(this,"_abortControllers",[]),e&&e.searchUrl&&(this.searchUrl=e.searchUrl)}abort(){this._abortControllers.forEach((e=>{e.abort()})),this._abortControllers=[]}search(e){return rr(this,null,(function*(){var t,r,n,o,i,a,c;const l=new URLSearchParams({format:"geojson",polygon_geojson:"1",q:e,limit:(null==(r=null==(t=this.options)?void 0:t.limit)?void 0:r.toString())||"10"});if((null==(n=this.options)?void 0:n.countrycodes)&&l.append("countrycodes",this.options.countrycodes),(null==(o=this.options)?void 0:o.addressdetails)&&l.append("addressdetails","1"),(null==(i=this.options)?void 0:i.language)&&l.append("accept-language",this.options.language),(null==(a=this.options)?void 0:a.bounded)&&l.append("bounded","1"),null==(c=this.options)?void 0:c.viewbox){const[e,t,r,n]=this.options.viewbox;l.append("viewbox",`${e},${t},${r},${n}`)}const u=s(`${this.searchUrl}/search?${l.toString()}`),h=new AbortController;this._abortControllers.push(h);try{const t=yield new tr(fetch(u,{signal:h.signal}));if(!t.ok)throw new Error(`Network response was not ok: ${t.statusText}`);const r=(yield new tr(t.json())).features.map((t=>({geom:t,extent:t.bbox,text:t.properties&&t.properties.display_name,query:e})));for(const e of r)e.result=()=>this.result(e),yield e}catch(f){if("AbortError"!==f.name)throw f}}))}result(e){return Promise.resolve({text:e.text,extent:e.extent||[],geom:e.geom})}reverse(e){return rr(this,null,(function*(){var t,r;const[n,o]=e,i=new URLSearchParams({format:"geojson",lat:o.toString(),lon:n.toString()});(null==(t=this.options)?void 0:t.addressdetails)&&i.append("addressdetails","1"),(null==(r=this.options)?void 0:r.language)&&i.append("accept-language",this.options.language);const a=s(`${this.searchUrl}/reverse?${i.toString()}`),c=new AbortController;this._abortControllers.push(c);try{const e=yield new tr(fetch(a,{signal:c.signal}));if(!e.ok)throw new Error(`Network response was not ok: ${e.statusText}`);const t=(yield new tr(e.json())).features[0],r={geom:t,extent:t.bbox,text:t.properties&&t.properties.display_name,query:`${o}, ${n}`};r.result=()=>this.result(r),yield r}catch(l){if("AbortError"!==l.name)throw l}}))}}function or(e){return new O(e)}export{P as BaseProvider,O as Geocoder,Xt as NgwProvider,nr as NominatimProvider,or as create};
1
+ function e(e){return null!=e}function t(t){return"string"==typeof t?!!t:e(t)}function r(e,t,r,o){if(e instanceof Array)return t instanceof Array&&t.sort().join("")===e.sort().join("");if(e instanceof Date)return t instanceof Date&&""+e==""+t;if(e instanceof Function){if(!(t instanceof Function))return!1}else if(e instanceof Object)return t instanceof Object&&(e===r?t===o:n(e,t));return e===t}function n(e,t){const n=Object.keys(e).sort(),o=Object.keys(t).sort();if(n.length!==o.length)return!1;if(n.join("")!==o.join(""))return!1;for(let s=0;s<n.length;s++){if(!r(e[n[s]],t[o[s]],e,t))return!1}return!0}function o(e){const t={};return Object.keys(e).forEach(r=>{e[r]instanceof Array||e[r]!==Object(e[r])?void 0!==e[r]&&(t[r]=e[r]):t[r]=o(e[r])}),t}function s(e){return"[object Object]"===Object.prototype.toString.call(e)}function i(e){return"[object Array]"===Object.prototype.toString.call(e)}function a(e){return e.replace(/([^:]\/)\/+/g,"$1")}class c{constructor(e){e&&function(e,...t){for(const r of t)for(const t of Object.getOwnPropertyNames(r))e[t]=r[t]}(this,e)}}var l=Object.defineProperty,u=Object.defineProperties,h=Object.getOwnPropertyDescriptors,f=Object.getOwnPropertySymbols,p=Object.prototype.hasOwnProperty,d=Object.prototype.propertyIsEnumerable,y=(e,t)=>(t=Symbol[e])?t:Symbol.for("Symbol."+e),m=(e,t,r)=>t in e?l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,v=(e,t)=>{for(var r in t||(t={}))p.call(t,r)&&m(e,r,t[r]);if(f)for(var r of f(t))d.call(t,r)&&m(e,r,t[r]);return e},g=(e,t)=>u(e,h(t)),b=function(e,t){this[0]=e,this[1]=t},w=(e,t,r)=>{var n=(e,t,o,s)=>{try{var i=r[e](t),a=(t=i.value)instanceof b,c=i.done;Promise.resolve(a?t[0]:t).then(r=>a?n("return"===e?e:"next",t[1]?{done:r.done,value:r.value}:r,o,s):o({value:r,done:c})).catch(e=>n("throw",e,o,s))}catch(l){s(l)}},o=e=>s[e]=t=>new Promise((r,o)=>n(e,t,r,o)),s={};return r=r.apply(e,t),s[y("asyncIterator")]=()=>s,o("next"),o("throw"),o("return"),s},O=(e,t,r)=>(t=e[y("asyncIterator")])?t.call(e):(e=e[y("iterator")](),t={},(r=(r,n)=>(n=e[r])&&(t[r]=t=>new Promise((r,o,s)=>(t=n.call(e,t),s=t.done,Promise.resolve(t.value).then(e=>r({value:e,done:s}),o)))))("next"),r("return"),t);let x=0;class j extends c{constructor(e){super(e),m(this,"providers"+"",[]),e&&e.providers&&(this.providers=e.providers)}abort(){this.providers.forEach(e=>{e.abort&&e.abort()})}search(e){return w(this,null,function*(){this.abort();let t=!0;const r=[];for(const c of this.providers)try{const r=c.search(e);try{for(var n,o,s,i=O(r);n=!(o=yield new b(i.next())).done;n=!1){const e=o.value;t=!1,yield g(v({},e),{provider:c,_id:x++})}}catch(o){s=[o]}finally{try{n&&(o=i.return)&&(yield new b(o.call(i)))}finally{if(s)throw s[0]}}}catch(a){"AbortError"!==a.name&&r.push(a)}if(t&&r.length)throw new Error(`All providers failed: ${r.map(e=>e.message).join("; ")}`)})}result(e){return e.provider?e.provider.result(e):Promise.resolve(void 0)}reverse(e){return w(this,null,function*(){for(const i of this.providers)if(i.reverse)try{const s=i.reverse(e);try{for(var t,r,n,o=O(s);t=!(r=yield new b(o.next())).done;t=!1){const e=r.value;yield g(v({},e),{provider:i,_id:x++})}}catch(r){n=[r]}finally{try{t&&(r=o.return)&&(yield new b(r.call(o)))}finally{if(n)throw n[0]}}}catch(s){}})}reverseGeocodeFirstResult(e){return t=this,r=null,n=function*(){for(const i of this.providers)if("function"==typeof i.reverse)try{try{for(var t,r,n,o=O(i.reverse(e));t=!(r=yield o.next()).done;t=!1)return r.value}catch(r){n=[r]}finally{try{t&&(r=o.return)&&(yield r.call(o))}finally{if(n)throw n[0]}}}catch(s){console.error("Error in reverse geocoding:",s)}},new Promise((e,o)=>{var s=e=>{try{a(n.next(e))}catch(t){o(t)}},i=e=>{try{a(n.throw(e))}catch(t){o(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(s,i);a((n=n.apply(t,r)).next())});var t,r,n}}var P=Object.defineProperty,_=(e,t,r)=>((e,t,r)=>t in e?P(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class E extends c{constructor(){super(...arguments),_(this,"searchUrl"),_(this,"label")}}const C=/\{ *([\w_-]+) *\}/g;function I(e,t){return e.replace(C,(e,r)=>{let n=t[r];if(void 0===n)throw new Error("No value provided for letiable "+e);return"function"==typeof n&&(n=n(t)),n})}var k=Object.defineProperty,R=Object.getOwnPropertySymbols,S=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable,L=(e,t,r)=>t in e?k(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;function A(e){return t=this,r=null,n=function*(){const{params:t,name:r,connector:n,requestOptions:o}=e,s=yield n.connect();let i=s&&s[r];if(i){i=[...i];let e=i.shift();if(i.length){const r={};for(let e=0;e<i.length;e++){const n=i[e];if(r[e]=`{${n}}`,void 0===t[n])throw new Error(`\`${n}\` URL API argument is not specified`)}e&&(e=I(e,r))}if(t){const r=[],n=t.paramList;Array.isArray(n)&&n.forEach(([e,t])=>{r.push(`${e}=${t}`)});for(const e in t)-1===i.indexOf(e)&&r.push(`${e}=${t[e]}`);r.length&&(e=`${e}?${r.join("&")}`)}if(e)return n.makeQuery(e,t,((e,t)=>{for(var r in t||(t={}))S.call(t,r)&&L(e,r,t[r]);if(R)for(var r of R(t))T.call(t,r)&&L(e,r,t[r]);return e})({cacheName:r},o));throw new Error("Request URL is not set")}},new Promise((e,o)=>{var s=e=>{try{a(n.next(e))}catch(t){o(t)}},i=e=>{try{a(n.throw(e))}catch(t){o(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(s,i);a((n=n.apply(t,r)).next())});var t,r,n}var U=Object.defineProperty,$=(e,t,r)=>((e,t,r)=>t in e?U(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);const q=class e{constructor(t={}){var r;$(this,"cache",[]);const n=null!=(r=t.namespace)?r:"default";return e.instance[n]?e.instance[n]:(e.instance[n]=this,this)}clean(){this.cache.length=0}all(){return this.cache}addFull(e,t,r,n){return"object"==typeof r&&"valueToSet"in r&&(r.onlyFull=!0),this.add(e,t,r,!0,n)}add(e,r,n,s,i){let a,c;"object"==typeof n&&"valueToSet"in n?(a=n,s=a.onlyFull,i=a.expirationTime,c=a.props):c=n;const l=this._find(e,c);if(l)return l.value;{let n;n=r instanceof Function?r():r;const a=c&&JSON.parse(JSON.stringify(o(c)));i=i?Date.now()+i:void 0;const l={key:e,value:n,props:a,expirationTime:i};return s&&!t(n)?n:(this.cache.push(l),n instanceof Promise?(n.catch(()=>{this.delete(e,c)}),s&&n.then(r=>(t(r)||this.delete(e,c),r)),n):n)}}match(e,t){const r=this._find(e,t);if(!(r&&r.expirationTime&&Date.now()>r.expirationTime))return null==r?void 0:r.value;this.delete(r)}matchAll(e,t){const r=Date.now();return this.cache.forEach(e=>{e.expirationTime&&r>e.expirationTime&&this.delete(e)}),e?this.cache.filter(r=>this._filter(r,e,t)).map(e=>e.value):this.cache.map(e=>e.value)}delete(e,t){const r="string"==typeof e?this.cache.filter(r=>this._filter(r,e,t)):[e];for(const n of r){const e=this.cache.indexOf(n);-1!==e&&this.cache.splice(e,1)}}_find(e,t){return this.cache.find(r=>this._filter(r,e,t))}_filter(e,t,r){if(e.key!==t)return!1;if(!r)return!0;return n(e.props||{},o(r))}};$(q,"instance",{});let N=q;function F(){}function D(){D.init.call(this)}function M(e){return void 0===e._maxListeners?D.defaultMaxListeners:e._maxListeners}function B(e,t,r,n){var o,s,i,a;if("function"!=typeof r)throw new TypeError('"listener" argument must be a function');if((s=e._events)?(s.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),s=e._events),i=s[t]):(s=e._events=new F,e._eventsCount=0),i){if("function"==typeof i?i=s[t]=n?[r,i]:[i,r]:n?i.unshift(r):i.push(r),!i.warned&&(o=M(e))&&o>0&&i.length>o){i.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+i.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=i.length,a=c,"function"==typeof console.warn?console.warn(a):console.log(a)}}else i=s[t]=r,++e._eventsCount;return e}function G(e,t,r){var n=!1;function o(){e.removeListener(t,o),n||(n=!0,r.apply(e,arguments))}return o.listener=r,o}function H(e){var t=this._events;if(t){var r=t[e];if("function"==typeof r)return 1;if(r)return r.length}return 0}function z(e,t){for(var r=new Array(t);t--;)r[t]=e[t];return r}F.prototype=Object.create(null),D.EventEmitter=D,D.usingDomains=!1,D.prototype.domain=void 0,D.prototype._events=void 0,D.prototype._maxListeners=void 0,D.defaultMaxListeners=10,D.init=function(){this.domain=null,D.usingDomains&&undefined.active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new F,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},D.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=e,this},D.prototype.getMaxListeners=function(){return M(this)},D.prototype.emit=function(e){var t,r,n,o,s,i,a,c="error"===e;if(i=this._events)c=c&&null==i.error;else if(!c)return!1;if(a=this.domain,c){if(t=arguments[1],!a){if(t instanceof Error)throw t;var l=new Error('Uncaught, unspecified "error" event. ('+t+")");throw l.context=t,l}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=a,t.domainThrown=!1,a.emit("error",t),!1}if(!(r=i[e]))return!1;var u="function"==typeof r;switch(n=arguments.length){case 1:!function(e,t,r){if(t)e.call(r);else for(var n=e.length,o=z(e,n),s=0;s<n;++s)o[s].call(r)}(r,u,this);break;case 2:!function(e,t,r,n){if(t)e.call(r,n);else for(var o=e.length,s=z(e,o),i=0;i<o;++i)s[i].call(r,n)}(r,u,this,arguments[1]);break;case 3:!function(e,t,r,n,o){if(t)e.call(r,n,o);else for(var s=e.length,i=z(e,s),a=0;a<s;++a)i[a].call(r,n,o)}(r,u,this,arguments[1],arguments[2]);break;case 4:!function(e,t,r,n,o,s){if(t)e.call(r,n,o,s);else for(var i=e.length,a=z(e,i),c=0;c<i;++c)a[c].call(r,n,o,s)}(r,u,this,arguments[1],arguments[2],arguments[3]);break;default:for(o=new Array(n-1),s=1;s<n;s++)o[s-1]=arguments[s];!function(e,t,r,n){if(t)e.apply(r,n);else for(var o=e.length,s=z(e,o),i=0;i<o;++i)s[i].apply(r,n)}(r,u,this,o)}return!0},D.prototype.on=D.prototype.addListener=function(e,t){return B(this,e,t,!1)},D.prototype.prependListener=function(e,t){return B(this,e,t,!0)},D.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.on(e,G(this,e,t)),this},D.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.prependListener(e,G(this,e,t)),this},D.prototype.removeListener=function(e,t){var r,n,o,s,i;if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');if(!(n=this._events))return this;if(!(r=n[e]))return this;if(r===t||r.listener&&r.listener===t)0===--this._eventsCount?this._events=new F:(delete n[e],n.removeListener&&this.emit("removeListener",e,r.listener||t));else if("function"!=typeof r){for(o=-1,s=r.length;s-- >0;)if(r[s]===t||r[s].listener&&r[s].listener===t){i=r[s].listener,o=s;break}if(o<0)return this;if(1===r.length){if(r[0]=void 0,0===--this._eventsCount)return this._events=new F,this;delete n[e]}else!function(e,t){for(var r=t,n=r+1,o=e.length;n<o;r+=1,n+=1)e[r]=e[n];e.pop()}(r,o);n.removeListener&&this.emit("removeListener",e,i||t)}return this},D.prototype.off=function(e,t){return this.removeListener(e,t)},D.prototype.removeAllListeners=function(e){var t,r;if(!(r=this._events))return this;if(!r.removeListener)return 0===arguments.length?(this._events=new F,this._eventsCount=0):r[e]&&(0===--this._eventsCount?this._events=new F:delete r[e]),this;if(0===arguments.length){for(var n,o=Object.keys(r),s=0;s<o.length;++s)"removeListener"!==(n=o[s])&&this.removeAllListeners(n);return this.removeAllListeners("removeListener"),this._events=new F,this._eventsCount=0,this}if("function"==typeof(t=r[e]))this.removeListener(e,t);else if(t)do{this.removeListener(e,t[t.length-1])}while(t[0]);return this},D.prototype.listeners=function(e){var t,r=this._events;return r&&(t=r[e])?"function"==typeof t?[t.listener||t]:function(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}(t):[]},D.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):H.call(e,t)},D.prototype.listenerCount=H,D.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};var J="3.0.0";class Q extends Error{constructor(e="AbortError"){super(e),this.name="AbortError"}}var W=Object.defineProperty,K=(e,t,r)=>((e,t,r)=>t in e?W(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class V extends Error{constructor(e){super(),K(this,"name","NgwError"),K(this,"title"),K(this,"message"),K(this,"detail"),K(this,"exception"),K(this,"status_code"),K(this,"data"),K(this,"guru_meditation"),Object.assign(this,e),Object.setPrototypeOf(this,V.prototype)}}var Y=Object.defineProperty,X=(e,t,r)=>((e,t,r)=>t in e?Y(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class Z extends V{constructor(e){super(e),X(this,"name","InsufficientPermissionsError"),X(this,"exception","nextgisweb.core.exception.InsufficientPermissions"),Object.setPrototypeOf(this,Z.prototype)}}var ee=Object.defineProperty,te=(e,t,r)=>((e,t,r)=>t in e?ee(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);let re=class e extends V{constructor(t){super(t),te(this,"message","There is no response from the server or problem connecting to server."),te(this,"title","Network error"),te(this,"detail","Check network connectivity and try again later."),Object.setPrototypeOf(this,e.prototype)}};var ne=Object.defineProperty,oe=(e,t,r)=>((e,t,r)=>t in e?ne(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,t+"",r);class se extends Error{constructor(e){super(),oe(this,"name","NetworkError"),Object.setPrototypeOf(this,se.prototype),this.message=`Unable to request ${e}.\n Possibly invalid NGW URL entered or CORS not configured to get request from ${location.origin}`}}var ie=Object.defineProperty,ae=(e,t,r)=>((e,t,r)=>t in e?ie(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class ce extends V{constructor(e){super(e),ae(this,"name","ResourceNotFoundError"),ae(this,"exception","nextgisweb.resource.exception.ResourceNotFound"),Object.setPrototypeOf(this,ce.prototype)}}var le=Object.freeze({__proto__:null,AbortError:Q,InsufficientPermissionsError:Z,NetworkError:se,NetworksResponseError:re,NgwError:V,ResourceNotFoundError:ce,extractError:function(e){if(s(e))return e.name&&e.message&&e.title?{title:e.title,message:e.message,detail:e.detail||null,data:e.data&&e.data.data?e.data.data:null}:!e.exception||void 0!==e.status&&0!==e.status&&void 0!==e.data?{title:"string"==typeof e.title?e.title:"Unexpected error",message:"string"==typeof e.message?e.message:"Something went wrong."}:new re({title:e.title,status_code:e.status_code,exception:e.exception})},isError:function(e){return!!s(e)&&(e.status_code&&e.exception&&e.title)}}),ue=Object.defineProperty,he=(e,t,r)=>((e,t,r)=>t in e?ue(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class fe extends Error{constructor(e){super(e||"Something went wrong."),he(this,"title"),this.name="BaseAPIError",this.title="Unknown API error",Error.captureStackTrace&&Error.captureStackTrace(this,fe)}}class pe extends fe{constructor(e){super(e||"There is no response from the server or problem connecting to server."),he(this,"detail"),this.title="Network error",this.detail="Check network connectivity and try again later."}}class de extends fe{constructor(e){super(e||"Something went wrong."),this.title="Unexpected server response"}}class ye extends fe{constructor(e){super(e.message),he(this,"detail"),he(this,"data"),this.title=e.title||this.title,this.detail=e.detail||null,this.data=e}}class me extends Error{constructor(e,t={}){super(e||"Unexpected error while processing long-running request."),he(this,"title"),he(this,"data"),this.name="LunkwillError",this.title="Long-running request error",this.data=t,Error.captureStackTrace&&Error.captureStackTrace(this,me)}}class ve extends me{constructor(e){super("Long-running request was cancelled.",e)}}class ge extends me{constructor(e){super(void 0,e)}}var be=Object.defineProperty,we=Object.getOwnPropertySymbols,Oe=Object.prototype.hasOwnProperty,xe=Object.prototype.propertyIsEnumerable,je=(e,t,r)=>t in e?be(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Pe=(e,t)=>{for(var r in t||(t={}))Oe.call(t,r)&&je(e,r,t[r]);if(we)for(var r of we(t))xe.call(t,r)&&je(e,r,t[r]);return e},_e=(e,t,r)=>new Promise((n,o)=>{var s=e=>{try{a(r.next(e))}catch(t){o(t)}},i=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(s,i);a((r=r.apply(e,t)).next())});function Ee(e){return _e(this,null,function*(){const t=yield function(e){return _e(this,null,function*(){try{return e.json()}catch(t){throw new Error}})}(e);let r=t.delay_ms;const n=void 0!==t.retry_ms?t.retry_ms:2e3,o=`/api/lunkwill/${t.id}/summary`,s=`/api/lunkwill/${t.id}/response`,i=e=>new Promise(t=>setTimeout(t,e));let a=!1,c=!1;for(;!c;){let e,t;yield i(a?n:r),a=!1;try{e=yield fetch(o,{credentials:"same-origin"}),t=yield e.json()}catch(l){a=!0;continue}switch(t.status){case void 0:throw new me(void 0,t);case"ready":c=!0;break;case"cancelled":throw new ve(t);case"failed":throw new ge(t);case"spooled":case"processing":case"buffering":r=t.delay_ms;break;default:throw new me(void 0,t)}}return s})}const Ce=new RegExp(["application/pdf","image/png","image/jpeg","image/tiff","text/csv"].join("|"));function Ie(e,t){let r="";return void 0!==t&&(r="?"+function(e){const t=[];for(const[r,n]of Object.entries(e))if("string"==typeof n||"number"==typeof n||"boolean"==typeof n)t.push(`${r}=${encodeURIComponent(n)}`);else if(Array.isArray(n))t.push(`${r}=${n.map(encodeURIComponent).join(",")}`);else for(const[e,o]of Object.entries(n)){const n=`${r}[${encodeURIComponent(e)}]`;if("string"==typeof o||"number"==typeof o||"boolean"==typeof o)t.push(`${n}=${encodeURIComponent(o)}`);else if(Array.isArray(o)){const e=o.map(encodeURIComponent);t.push(`${n}=${e.join(",")}`)}}return t.join("&")}(t)),e+r}function ke(e,t,r){return _e(this,null,function*(){var n,s;const i=Pe(Pe({},{method:"GET",credentials:"same-origin",headers:{}}),t),{withCredentials:a,responseType:c,cacheProps:l,cacheName:u,lunkwill:h,cache:f,query:p,json:d}=i,y=((e,t)=>{var r={};for(var n in e)Oe.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&we)for(var n of we(e))t.indexOf(n)<0&&xe.call(e,n)&&(r[n]=e[n]);return r})(i,["withCredentials","responseType","cacheProps","cacheName","lunkwill","cache","query","json"]);y.method=null==(n=y.method)?void 0:n.toUpperCase(),a&&(y.credentials="include");let m=!1;void 0!==h&&(h.toHeaders(y.headers||{}),m=!0);const v=!!y.lunkwillReturnUrl;if(delete y.lunkwillReturnUrl,void 0!==d){y.body=JSON.stringify(d);const e=y.headers||{};e["Content-Type"]="application/json",y.headers=e}const g=Ie(e,p),b=()=>_e(null,null,function*(){let e;try{e=yield fetch(g,y)}catch(o){if(y.signal&&y.signal.aborted)throw o;throw new pe}if(m&&function(e){const t=e.headers.get("content-type");return null!=t&&t.includes("application/vnd.lunkwill.request-summary+json")}(e)){const t=yield Ee(e);if(v)return t;e=yield function(e){return _e(this,null,function*(){try{return yield window.fetch(e,{credentials:"same-origin"})}catch(o){throw new pe}})}(t)}const t=e.headers.get("content-type"),r=t&&(t.includes("application/json")||t.includes("application/vnd.lunkwill.request-summary+json"));let n;try{const o=t&&Ce.test(t);if("blob"===c||o)n=yield e.blob();else{if(!r)throw new de;n=yield e.json()}}catch(o){if("AbortError"===o.name||o instanceof de)throw o;throw new de}if(400<=e.status&&e.status<=599)throw new ye(n);return n});if(r)if("GET"===(null==(s=y.method)?void 0:s.toUpperCase())){if(!1!==f){const e=l||Pe({},o({withCredentials:a,responseType:c}));return r.add(u||g,b,{props:e,expirationTime:f?void 0:500})}}else{["api/feature_layer/identify"].every(t=>!e.includes(t))&&r.clean()}return b()})}var Re=Object.defineProperty,Se=Object.defineProperties,Te=Object.getOwnPropertyDescriptors,Le=Object.getOwnPropertySymbols,Ae=Object.prototype.hasOwnProperty,Ue=Object.prototype.propertyIsEnumerable,$e=(e,t,r)=>t in e?Re(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,qe=(e,t)=>{for(var r in t||(t={}))Ae.call(t,r)&&$e(e,r,t[r]);if(Le)for(var r of Le(t))Ue.call(t,r)&&$e(e,r,t[r]);return e},Ne=(e,t)=>{var r={};for(var n in e)Ae.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&Le)for(var n of Le(e))t.indexOf(n)<0&&Ue.call(e,n)&&(r[n]=e[n]);return r};function Fe(e,t,r,...n){const[o,...s]=r[e],i=n[0];let c;if(void 0===i)c=[];else if("object"==typeof i&&null!==i){if(n.length>1)throw new Error("Too many arguments for route(name, object)!");c=[];for(const[e,t]of Object.entries(i))c[s.indexOf(e)]=String(t)}else c=n.map(e=>String(e));return a(t+o.replace(/\{(\w+)\}/g,function(e,t){const r=parseInt(t),n=c[r];if(void 0===n){throw new Error(`Undefined parameter ${r} in "${o}".`)}return String(n)}))}function De(e,t,...r){const n={url:n=>{return o=null,s=null,i=function*(){var o;const s=yield t.connect();return Ie(Fe(e,null!=(o=t.options.baseUrl)?o:"",s,...r),null==n?void 0:n.query)},new Promise((e,t)=>{var r=e=>{try{a(i.next(e))}catch(r){t(r)}},n=e=>{try{a(i.throw(e))}catch(r){t(r)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(r,n);a((i=i.apply(o,s)).next())});var o,s,i}},s=["get","post","put","delete","patch"];for(const i of s){const s=n=>{var s;const a=n||{},{headers:c}=a,l=Ne(a,["headers"]);if(null==(s=null==n?void 0:n.signal)?void 0:s.aborted)throw new Q;return t.connect().then(n=>{var s;const a=Fe(e,null!=(s=t.options.baseUrl)?s:"",n,...r),u=o(qe(qe({},t.getAuthorizationHeaders()),null!=c?c:{}));return ke(a,(h=qe({headers:u},l),Se(h,Te({method:i}))),t.cache);var h})};n[i]=s}return n}function Me(e){return"[object Object]"===Object.prototype.toString.call(e)}let Be;Be=(e,t,r={},n,o)=>{r.method=r.method||"GET";const s=new XMLHttpRequest;s.open(r.method||"GET",e,!0),"blob"===r.responseType&&(s.responseType=r.responseType);const i=()=>{try{return JSON.parse(s.responseText)}catch(e){return s.responseText}};s.onload=()=>{-1!==[401,403,404,422,500].indexOf(s.status)&&n(new V(i())),((e=!1)=>{const o=e?n:t;"blob"===r.responseType?o(s.response):s.responseText?o(i()):n({message:""})})()},s.onerror=t=>{n(0===s.status?new se(e):t)},s.upload.onprogress=function(e){if(e.lengthComputable){r.onProgress&&r.onProgress(e.loaded/e.total*100,e)}};const a=r.headers;if(a)for(const l in a){const e=a[l];"string"==typeof e&&s.setRequestHeader(l,e)}let c;if(void 0!==r.withCredentials&&(s.withCredentials=r.withCredentials),r.file){if(c=new FormData,c.append("file",r.file),r.data)for(const l in r.data)c.append(l,c[l])}else c=r.data?"string"==typeof r.data?r.data:JSON.stringify(r.data):null;o&&o(()=>{s.abort()}),s.send(c)};const Ge=[];function He(e){Ge.push(e)}var ze=Object.defineProperty,Je=Object.defineProperties,Qe=Object.getOwnPropertyDescriptors,We=Object.getOwnPropertySymbols,Ke=Object.prototype.hasOwnProperty,Ve=Object.prototype.propertyIsEnumerable,Ye=(e,t,r)=>t in e?ze(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Xe=(e,t)=>{for(var r in t||(t={}))Ke.call(t,r)&&Ye(e,r,t[r]);if(We)for(var r of We(t))Ve.call(t,r)&&Ye(e,r,t[r]);return e},Ze=(e,t,r)=>Ye(e,"symbol"!=typeof t?t+"":t,r),et=(e,t,r)=>new Promise((n,o)=>{var s=e=>{try{a(r.next(e))}catch(t){o(t)}},i=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(s,i);a((r=r.apply(e,t)).next())});let tt=0,rt=0;class nt{constructor(e){this.options=e,Ze(this,"id",tt++),Ze(this,"emitter",new D),Ze(this,"user"),Ze(this,"cache"),Ze(this,"withCredentials"),Ze(this,"routeCache"),Ze(this,"client",`NextGIS-NGW-Connector/${J}`),Ze(this,"routeStr","/api/component/pyramid/route"),Ze(this,"activeRequests",{}),Ze(this,"requestTransform");const t=function(e){return Ge.find(t=>{if(t.options.baseUrl===e.baseUrl){if(!e.auth)return!0;if(t.options.auth)return n(t.options.auth,e.auth)}})}(e);if(this.cache=new N({namespace:e.cacheId}),this.routeCache=new N({namespace:"routecache"}),t)return t;{const{route:e,requestTransform:t,withCredentials:r}=this.options;e&&(this.routeStr=e),t&&(this.requestTransform=t),void 0!==r&&(this.withCredentials=r),He(this)}}clearCache(){this.cache.clean()}setRequestTransform(e){this.requestTransform=e}setNgw(e){this.logout(),this.options.baseUrl=e,He(this)}connect(){return et(this,arguments,function*({signal:e}={}){const t=this.options.auth;if(t){const{login:e,password:r}=t;e&&r&&(yield this._login({login:e,password:r}))}const r=`${this.routeStr}?client=${this.client}`;return this.routeCache.add(this.options.baseUrl||String(this.id),()=>this.makeQuery(r,null,{signal:e,cache:!1}))})}login(e,t){return this.logout(),He(this),this._login(e,t)}logout(){this.abort(),function(e){const t=Ge.indexOf(e);-1!==t&&Ge.splice(t,1)}(this),this.options.auth=void 0,this.user=void 0,this.routeCache.clean(),this.clearCache(),this.emitter.emit("logout")}getUserInfo(e,t){return et(this,null,function*(){if(this.user&&this.user.id)return this.user;e&&(this.options.auth=e);const r=Xe({headers:this.getAuthorizationHeaders(e),cache:!0},t);return this.makeQuery("/api/component/auth/current_user",{},r)})}getAuthorizationHeaders(e){const t=this.makeClientId(e);return t?{Authorization:`Basic ${t}`}:{}}makeClientId(e){if(e=e||this.options.auth){const{login:t,password:r}=e,n=[t,r].map(encodeURIComponent).join(":");return window.btoa(n)}}abort(){for(const e of Object.values(this.activeRequests))e.abort();this.activeRequests={}}getActiveApiRequests(){return Xe({},this.activeRequests)}route(e,...t){return De(e,this,...t)}makeQuery(e,t){return et(this,arguments,function*(e,t,r={}){var n;if(!(e=(this.options.baseUrl?this.options.baseUrl:"")+e))throw new Error("Empty `url` not allowed");if(t){const r=((e,t)=>{var r={};for(var n in e)Ke.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&We)for(var n of We(e))t.indexOf(n)<0&&Ve.call(e,n)&&(r[n]=e[n]);return r})(t,["paramList"]);e=I(e,r)}e=encodeURI(a(e)),r=Xe({withCredentials:this.withCredentials},r);const{cache:s,signal:i,method:c="GET",headers:l,cacheName:u,cacheProps:h,responseType:f,withCredentials:p}=r,d=new AbortController,y=d.signal;if(i){if(i.aborted)throw new Q;i.addEventListener("abort",()=>{d.abort()})}r.signal=y;const m=()=>et(this,null,function*(){const t=rt++;this.activeRequests[t]=d;try{return this._loadData(e,r)}finally{this._cleanActiveRequest(t)}});if("GET"===c&&!1!==s){const r=h||(v=Xe({},o({headers:l,withCredentials:p,responseType:f,baseUrl:this.options.baseUrl,userId:null==(n=this.user)?void 0:n.id})),Je(v,Qe({params:t})));return this.cache.add(u||e,m,{props:r,expirationTime:s?void 0:500})}var v;return m()})}_loadData(e,t){return t.responseType=t.responseType||"json",new Promise((r,n)=>{var o;if(this.user&&((t=t||{}).headers=Xe(Xe({},this.getAuthorizationHeaders()),t.headers)),this.requestTransform){const[r,n]=this.requestTransform(e,t);e=r,t=n}let s;Be(e,r,t,n,e=>{s=e}),null==(o=t.signal)||o.addEventListener("abort",()=>{void 0!==s&&s(),n(new Q)})}).catch(e=>{if("AbortError"!==e.name){const t=this._handleHttpError(e);if(t)throw t}throw e})}_login(e,t){return et(this,null,function*(){try{const r=yield this.getUserInfo(e,t);return this.user=r,this.emitter.emit("login",r),r}catch(r){throw this.emitter.emit("login:error",r),r}})}_cleanActiveRequest(e){delete this.activeRequests[e]}_handleHttpError(e){if(e&&e instanceof V){if("nextgisweb.resource.exception.ResourceNotFound"===e.exception)throw new ce(e);if("nextgisweb.core.exception.InsufficientPermissions"===e.exception)throw new Z(e)}return e}}Ze(nt,"errors",le);const ot=["description"];function st(t,r=""){r=r?r+"__":"";const n={};for(const[o,s]of Object.entries(t))if(-1===ot.indexOf(o))if(Me(s))if("owner_user"===o){const e=st(s,o);Object.assign(n,e)}else"parent"===o&&"id"in s&&(n.parent_id=s.id);else e(s)&&(n[r+o]=s);return n}var it=Object.defineProperty,at=Object.defineProperties,ct=Object.getOwnPropertyDescriptors,lt=Object.getOwnPropertySymbols,ut=Object.prototype.hasOwnProperty,ht=Object.prototype.propertyIsEnumerable,ft=(e,t,r)=>t in e?it(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,pt=(e,t)=>{for(var r in t||(t={}))ut.call(t,r)&&ft(e,r,t[r]);if(lt)for(var r of lt(t))ht.call(t,r)&&ft(e,r,t[r]);return e},dt=(e,t)=>at(e,ct(t)),yt=(e,t,r)=>ft(e,"symbol"!=typeof t?t+"":t,r),mt=(e,t,r)=>new Promise((n,o)=>{var s=e=>{try{a(r.next(e))}catch(t){o(t)}},i=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(s,i);a((r=r.apply(e,t)).next())});class vt{constructor({connector:e,cacheId:t}){yt(this,"cache"),yt(this,"connector"),this.connector=e,this.cache=new N({namespace:t})}getOne(e,t){const r=pt({},t);return"string"==typeof e||"number"==typeof e||Me(e),"string"==typeof e?this._fetchResourceBy({keyname:e},r):"number"==typeof e?this._fetchResourceById(e,r):Me(e)?this._fetchResourceBy(e,r):Promise.resolve(void 0)}getOneOrFail(e,t){return this.getOne(e,t).then(e=>{if(e)return e;throw new ce})}getId(e,t){return"number"==typeof e?Promise.resolve(e):"string"==typeof e||Me(e)?this.getOne(e,t).then(e=>{if(e)return e.resource.id}):Promise.resolve(void 0)}getIdOrFail(e,t){return this.getId(e,t).then(e=>{if(void 0===e)throw new Error;return e})}getMany(e,t){return this._resourceCacheFilter(e).then(r=>{if(!r.length){const r={};return e.keyname?r.keyname=e.keyname:Object.assign(r,st(e)),this.connector.route("resource.search").get(dt(pt({},t),{query:pt({serialization:"full"},r)})).then(e=>{if((null==t?void 0:t.cache)&&e)for(const t of e)this.cache.add("resource.item",Promise.resolve(t),{id:t.resource.id});return e})}return r})}getParent(e,t){return this.getOne(e,t).then(e=>{var r,n;return(null==(n=null==(r=null==e?void 0:e.resource)?void 0:r.parent)?void 0:n.id)?this.getOne(e.resource.parent.id,t):Promise.resolve(void 0)})}getChildrenOf(e,t){return this.getIdOrFail(e).then(e=>this._getChildrenOf(e,t))}update(e,t){return this.getId(e).then(e=>{if(void 0!==e)return this.connector.put("resource.item",{data:t},{id:e})})}delete(e){return this.getId(e).then(e=>{if(void 0!==e)return this.connector.delete("resource.item",null,{id:e}).then(()=>{this._cleanResourceItemCache(e)})})}_getChildrenOf(e,t){return mt(this,arguments,function*(e,t,r=[]){let n;n="string"==typeof e?yield this.getId(e,t):"object"==typeof e?e.id:e;const o=yield this.connector.route("resource.collection").get(dt(pt({},t),{query:{parent:n}})),s=[];for(const i of o)(null==t?void 0:t.cache)&&this.cache.add("resource.item",Promise.resolve(i),{id:i.resource.id}),r.push(i),(null==t?void 0:t.recursive)&&i.resource.children&&s.push(this._getChildrenOf(i.resource.id,t,r));return s.length?Promise.all(s).then(()=>r):r})}_cleanResourceItemCache(e){return mt(this,null,function*(){var t;const r=this.cache.all(),n=[];for(const o of r){const r=null==(t=o.props)?void 0:t.id;if(["resource.item","resource"].includes(o.key)&&void 0!==r)if("number"==typeof r)r===e&&n.push(o);else{(yield this.getId(r))===e&&n.push(o)}}for(const e of n)this.cache.delete(e)})}_fetchResourceById(e,t){return this.connector.route("resource.item",{id:e}).get(t)}_fetchResourceBy(e,t){return this.getMany(e,t).then(e=>e[0])}_resourceCacheFilter(t){return Promise.all(this.cache.matchAll("resource.item")).then(r=>(r.filter(r=>{if(r)return t.keyname&&r.resource.keyname?t.keyname===r.resource.keyname:e(t.id)&&e(r.resource.id)?t.id===r.resource.id:n(t,r.resource)}),[]))}}var gt=Object.defineProperty,bt=(e,t,r)=>((e,t,r)=>t in e?gt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,t+"",r);class wt extends nt{constructor(e){super(e),bt(this,"resources"),this.resources=new vt({connector:this,cacheId:e.cacheId})}static create(e){return new this(e)}clearCache(){super.clearCache(),this.resources.cache.clean()}apiRequest(e,t={},r={}){var n;return A({name:e,params:o(t=null!=(n=r.params)?n:t),requestOptions:r,connector:this})}post(e,t,r){return(t=t||{}).method="POST",this.apiRequest(e,r,t)}get(e,t,r){return(t=t||{}).method="GET",this.apiRequest(e,r,t)}patch(e,t,r){return(t=t||{}).method="PATCH",this.apiRequest(e,r,t)}put(e,t,r){return(t=t||{}).method="PUT",this.apiRequest(e,r,t)}delete(e,t,r){return(t=t||{}).method="DELETE",this.apiRequest(e,r,t)}getResource(e,t){return this.resources.getOne(e,t)}getResourceOrFail(e,t){return this.resources.getOneOrFail(e,t)}getResourceBy(e){return this.resources.getOne(e)}getResourceByKeyname(e){return this.resources.getOne(e)}getResourceById(e){return this.resources.getOne(e)}getResourceId(e,t){return this.resources.getId(e,t)}getResourceIdOrFail(e,t){return this.resources.getIdOrFail(e,t)}getResourcesBy(e,t){return this.resources.getMany(e,t)}getResourceParent(e,t){return this.resources.getParent(e,t)}getResourceChildren(e,t){return this.resources.getChildrenOf(e,t)}updateResource(e,t){return this.resources.update(e,t)}deleteResource(e){return this.resources.delete(e)}}function Ot(e,t,r){if((t=String(t))===(e=String(e)))return!0;if(r&&t.toUpperCase()===e.toUpperCase())return!0;const n=`^${o=t,o.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")}$`.replace(/%/g,".*").replace("_",".");var o;return null!==new RegExp(n,r?"i":"").exec(e)}const xt={gt:(e,t)=>e>t,lt:(e,t)=>e<t,ge:(e,t)=>e>=t,le:(e,t)=>e<=t,eq:(e,t)=>e===t,ne:(e,t)=>e!==t,in:(e,t)=>-1!==t.indexOf(e),notin:(e,t)=>-1===t.indexOf(e),like:(e,t)=>Ot(e,t),ilike:(e,t)=>Ot(e,t,!0)};function jt(e){return 3===e.length&&"string"==typeof e[0]&&"string"==typeof e[1]}function Pt(e,t){const r="string"==typeof t[0]?t[0]:"all",n=t=>{if(jt(t)){const[r,n,o]=t,s=xt[n];if(s){if(("like"===n||"ilike"===n)&&"string"==typeof r){let t="";const n=r.replace(/^%?(\w+)%?$/,(n,s)=>(t=e[s],r.replace(s,o)));return s(t,n)}return s(e[r],o)}return!1}return Pt(e,t)},o=t.filter(e=>Array.isArray(e));return"any"===r?o.some(n):o.every(n)}var _t=Object.defineProperty,Et=Object.defineProperties,Ct=Object.getOwnPropertyDescriptors,It=Object.getOwnPropertySymbols,kt=Object.prototype.hasOwnProperty,Rt=Object.prototype.propertyIsEnumerable,St=(e,t,r)=>t in e?_t(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Tt=(e,t)=>{for(var r in t||(t={}))kt.call(t,r)&&St(e,r,t[r]);if(It)for(var r of It(t))Rt.call(t,r)&&St(e,r,t[r]);return e},Lt=(e,t)=>Et(e,Ct(t));const At={srs:4326,geom_format:"geojson",dt_format:"iso"};function Ut(e){return t=this,r=null,n=function*(){const t=qt(e),r=yield Promise.all(t),n=[],o=[];for(const e of r)for(const t of e)n.includes(t.id)||(o.push(t),n.push(t.id));return e.offset||e.limit?o.splice(void 0!==e.offset?e.offset:0,void 0!==e.limit?e.limit:o.length):o},new Promise((e,o)=>{var s=e=>{try{a(n.next(e))}catch(t){o(t)}},i=e=>{try{a(n.throw(e))}catch(t){o(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(s,i);a((n=n.apply(t,r)).next())});var t,r,n}function $t(e){const[t,r,n]=e;let o="",s="";return[`${"id"!==t?"fld_":""}${String(t).trim().replace(/^(%?)(.+?)(%?)$/,(e,t,r,n)=>(o=t,s=n,r))}__${r}`,o+n+s]}function qt(e,t=[],r=[]){var n;const{filters:o}=e,s=null!=(n=e.paramList)?n:[],i="string"==typeof o[0]?o[0]:"all",a=o.filter(e=>Array.isArray(e));if("any"===i)for(const c of a)jt(c)?t.push(Ft(Lt(Tt({},e),{paramList:[...r,...s,$t(c)]}))):qt(Lt(Tt({},e),{filters:c}),t,[...r]);else if("all"===i){const n=[],o=[];for(const e of a)jt(e)?n.push($t(e)):o.push(e);if(o.length)for(const s of o)qt(Lt(Tt({},e),{filters:s}),t,[...r,...n]);else t.push(Ft(Lt(Tt({},e),{paramList:[...r,...s,...n]})))}return t}function Nt(e){return`POLYGON((${e.map(([e,t])=>{const[r,n]=function(e,t){t=t>85.06?85.06:t<-85.06?-85.06:t;const r=20037508.34*e/180;let n=Math.log(Math.tan((90+t)*Math.PI/360))/(Math.PI/180);return n=20037508.34*n/180,[r,n]}(e,t).map(e=>Math.round(1*(e+Number.EPSILON))/1);return r+" "+n}).join(", ")}))`}function Ft(t){const r=Tt({},At),{limit:n,query:o,cache:s,signal:i,offset:a,orderBy:c,paramList:l,connector:u,geomFormat:h,intersects:f,resourceId:p}=t;if("number"==typeof n&&n!==Number.POSITIVE_INFINITY&&(r.limit=n),a&&(r.offset=a),h&&(r.geom_format=h),function(t,r){const{extensions:n,geom:o,fields:s,srs:i,ilike:a,like:c}=r;t.extensions=n||[],s&&(t.fields=s),void 0!==o&&(t.geom=o,o||(delete t.srs,delete t.geom_format)),e(a)?t.ilike=a:e(c)&&(t.like=c),e(i)&&(t.srs=i)}(r,t),c&&(r.order_by=c.join(",")),Array.isArray(f)){const e=(d=f,Array.isArray(d)&&4===d.length&&d.every(e=>"number"==typeof e)?function(e){const t=[e[0],e[1]];return[t,[e[2],e[1]],[e[2],e[3]],[e[0],e[3]],t]}(f):f);r.intersects=Nt(e)}else"string"==typeof f&&(r.intersects=f);var d;return l&&Object.assign(r,function(e){return e.reduce((e,[t,r])=>(e[t]=r,e),{})}(l)),u.route("feature_layer.feature.collection",{id:Number(p)}).get({query:Tt(Tt({},r),o),cache:s,signal:i})}var Dt=Object.defineProperty,Mt=Object.defineProperties,Bt=Object.getOwnPropertyDescriptors,Gt=Object.getOwnPropertySymbols,Ht=Object.prototype.hasOwnProperty,zt=Object.prototype.propertyIsEnumerable,Jt=(e,t,r)=>t in e?Dt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Qt=(e,t)=>{for(var r in t||(t={}))Ht.call(t,r)&&Jt(e,r,t[r]);if(Gt)for(var r of Gt(t))zt.call(t,r)&&Jt(e,r,t[r]);return e},Wt=(e,t)=>Mt(e,Bt(t));function Kt(t){return r=this,n=null,o=function*(){var r;const n=t.filters;if(n){let o=yield Ut(Wt(Qt({},t),{filters:n}));return(null!=(r=t.clientFilterValidate)?r:Vt(n))&&(o=o.filter(t=>Pt(function(t){let r;for(r in t){const n=t[r];if(s(n)){const o=n;if(e(o.year)&&e(o.month)&&e(o.day)){const e=[o.year,o.month-1,o.day];"hour"in o&&[o.hour,o.minute,o.second].forEach(t=>{e.push(t)}),t[r]=new Date(...e).toISOString()}}else"id"===r&&"string"==typeof n&&(t[r]=n.split(",").map(Number))}return t}(Wt(Qt({},t.fields),{id:t.id})),n))),o}return Ft(t)},new Promise((e,t)=>{var s=e=>{try{a(o.next(e))}catch(r){t(r)}},i=e=>{try{a(o.throw(e))}catch(r){t(r)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(s,i);a((o=o.apply(r,n)).next())});var r,n,o}function Vt(e){if("any"===e[0])return!0;for(let t=1;t<e.length;t++){const r=e[t];if(i(r)){if(Vt(r))return!0}}return!1}var Yt=Object.defineProperty,Xt=Object.getOwnPropertySymbols,Zt=Object.prototype.hasOwnProperty,er=Object.prototype.propertyIsEnumerable,tr=(e,t,r)=>t in e?Yt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,rr=(e,t,r)=>tr(e,"symbol"!=typeof t?t+"":t,r),nr=function(e,t){this[0]=e,this[1]=t},or=(e,t,r)=>{var n,o,s=(e,t,n,o)=>{try{var i=r[e](t),a=(t=i.value)instanceof nr,c=i.done;Promise.resolve(a?t[0]:t).then(r=>a?s("return"===e?e:"next",t[1]?{done:r.done,value:r.value}:r,n,o):n({value:r,done:c})).catch(e=>s("throw",e,n,o))}catch(l){o(l)}},i=e=>a[e]=t=>new Promise((r,n)=>s(e,t,r,n)),a={};return r=r.apply(e,t),a[(n="asyncIterator",(o=Symbol[n])?o:Symbol.for("Symbol."+n))]=()=>a,i("next"),i("throw"),i("return"),a};const sr=class e extends E{constructor(e){var t;if(super(e),rr(this,"searchResources",[]),rr(this,"connector"),rr(this,"_abortControllers",[]),!e.searchUrl&&!(null==(t=e.connectorOptions)?void 0:t.baseUrl))throw new Error("The `searchUrl` of `connectorOptions.baseUrl` are required");this.connector=e.connector||new wt(((e,t)=>{for(var r in t||(t={}))Zt.call(t,r)&&tr(e,r,t[r]);if(Xt)for(var r of Xt(t))er.call(t,r)&&tr(e,r,t[r]);return e})({baseUrl:this.searchUrl},e.connectorOptions)),this.searchResources=e.searchResources}abort(){this._abortControllers.forEach(e=>{e.abort()}),this._abortControllers.length=0}search(t){return or(this,null,function*(){var r,n;const o=this._makeSignal();for(const i of this.searchResources){if(o.aborted)break;const{searchMethod:a}=i,c=null!=(r=i.limit)?r:e.limit,l=null!=(n=i.id)?n:i.resourceId;try{const e=yield new nr(this.connector.getResourceOrFail(l,{cache:!0})),r={connector:this.connector,resourceId:l,signal:o,limit:c};"like"===a?r.like=t:r.ilike=t;const n=Kt(r),s=yield new nr(n);for(const o of this._items({entries:s,query:t,config:i,resourceItem:e}))o.result=()=>this.result(o),yield o}catch(s){s&&"name"in s&&"AbortError"!==s.name&&console.warn(s)}}})}result(e){const t=this._makeSignal();return this.connector.route("feature_layer.feature.item_extent",{id:e.resourceId,fid:e.featureId}).get({signal:t}).then(t=>{const r=t.extent||{minLon:0,minLat:0,maxLon:0,maxLat:0};return{text:e.text,extent:[r.minLon,r.minLat,r.maxLon,r.maxLat]}})}reverse(e){return or(this,null,function*(){throw new Error("Not implemented")})}_makeSignal(){const e=new AbortController;return this._abortControllers.push(e),e.signal}_items({entries:e,query:t,config:r,resourceItem:n}){var o;const s=[];let i;n.feature_layer&&(i=null==(o=n.feature_layer.fields.find(e=>e.label_field))?void 0:o.keyname);return this.searchResources.find(e=>{var t;return null!=(t=e.id)?t:e.resourceId===n.resource.id})&&e.forEach(e=>{let o=i?e.fields[i]:e.id;r.renderSearch?o=r.renderSearch({item:e,resourceItem:n}):i&&(o=e.fields[i]),s.push({query:t,text:o,featureId:e.id,resourceId:n.resource.id,item:e,resourceItem:n})}),s}};rr(sr,"limit",300);let ir=sr;var ar=Object.defineProperty,cr=(e,t,r)=>((e,t,r)=>t in e?ar(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r),lr=function(e,t){this[0]=e,this[1]=t},ur=(e,t,r)=>{var n,o,s=(e,t,n,o)=>{try{var i=r[e](t),a=(t=i.value)instanceof lr,c=i.done;Promise.resolve(a?t[0]:t).then(r=>a?s("return"===e?e:"next",t[1]?{done:r.done,value:r.value}:r,n,o):n({value:r,done:c})).catch(e=>s("throw",e,n,o))}catch(l){o(l)}},i=e=>a[e]=t=>new Promise((r,n)=>s(e,t,r,n)),a={};return r=r.apply(e,t),a[(n="asyncIterator",(o=Symbol[n])?o:Symbol.for("Symbol."+n))]=()=>a,i("next"),i("throw"),i("return"),a};class hr extends E{constructor(e){super(),this.options=e,cr(this,"searchUrl","https://nominatim.openstreetmap.org"),cr(this,"_abortControllers",[]),e&&e.searchUrl&&(this.searchUrl=e.searchUrl)}abort(){this._abortControllers.forEach(e=>{e.abort()}),this._abortControllers=[]}search(e){return ur(this,null,function*(){var t,r,n,o,s,i,c;const l=new URLSearchParams({format:"geojson",polygon_geojson:"1",q:e,limit:(null==(r=null==(t=this.options)?void 0:t.limit)?void 0:r.toString())||"10"});if((null==(n=this.options)?void 0:n.countrycodes)&&l.append("countrycodes",this.options.countrycodes),(null==(o=this.options)?void 0:o.addressdetails)&&l.append("addressdetails","1"),(null==(s=this.options)?void 0:s.language)&&l.append("accept-language",this.options.language),(null==(i=this.options)?void 0:i.bounded)&&l.append("bounded","1"),null==(c=this.options)?void 0:c.viewbox){const[e,t,r,n]=this.options.viewbox;l.append("viewbox",`${e},${t},${r},${n}`)}const u=a(`${this.searchUrl}/search?${l.toString()}`),h=new AbortController;this._abortControllers.push(h);try{const t=yield new lr(fetch(u,{signal:h.signal}));if(!t.ok)throw new Error(`Network response was not ok: ${t.statusText}`);const r=(yield new lr(t.json())).features.map(t=>({geom:t,extent:t.bbox,text:t.properties&&t.properties.display_name,query:e}));for(const e of r)e.result=()=>this.result(e),yield e}catch(f){if("AbortError"!==f.name)throw f}})}result(e){return Promise.resolve({text:e.text,extent:e.extent||[],geom:e.geom})}reverse(e){return ur(this,null,function*(){var t,r;const[n,o]=e,s=new URLSearchParams({format:"geojson",lat:o.toString(),lon:n.toString()});(null==(t=this.options)?void 0:t.addressdetails)&&s.append("addressdetails","1"),(null==(r=this.options)?void 0:r.language)&&s.append("accept-language",this.options.language);const i=a(`${this.searchUrl}/reverse?${s.toString()}`),c=new AbortController;this._abortControllers.push(c);try{const e=yield new lr(fetch(i,{signal:c.signal}));if(!e.ok)throw new Error(`Network response was not ok: ${e.statusText}`);const t=(yield new lr(e.json())).features[0],r={geom:t,extent:t.bbox,text:t.properties&&t.properties.display_name,query:`${o}, ${n}`};r.result=()=>this.result(r),yield r}catch(l){if("AbortError"!==l.name)throw l}})}}function fr(e){return new j(e)}export{E as BaseProvider,j as Geocoder,ir as NgwProvider,hr as NominatimProvider,fr as create};
2
2
  //# sourceMappingURL=geocoder.esm-browser.prod.js.map