@nextgis/geocoder 4.0.0-alpha.1 → 4.0.0-alpha.2

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,4 +1,4 @@
1
- /** Bundle of @nextgis/geocoder; version: 4.0.0-alpha.1; author: NextGIS */
1
+ /** Bundle of @nextgis/geocoder; version: 4.0.0-alpha.2; author: NextGIS */
2
2
  import { objectAssign, fixUrlStr } from '@nextgis/utils';
3
3
  import NgwConnector from '@nextgis/ngw-connector';
4
4
  import { fetchNgwLayerItems } from '@nextgis/ngw-kit';
@@ -1,4 +1,4 @@
1
- /** Bundle of @nextgis/geocoder; version: 4.0.0-alpha.1; author: NextGIS */
1
+ /** Bundle of @nextgis/geocoder; version: 4.0.0-alpha.2; author: NextGIS */
2
2
  var Geocoder = (function (exports) {
3
3
  'use strict';
4
4
 
@@ -1021,7 +1021,7 @@ var Geocoder = (function (exports) {
1021
1021
  }
1022
1022
 
1023
1023
  var pkg = {
1024
- version: "3.0.1"};
1024
+ version: "4.0.0-alpha.2"};
1025
1025
 
1026
1026
  class AbortError extends Error {
1027
1027
  constructor(message = "AbortError") {
@@ -1,2 +1,2 @@
1
- var Geocoder=function(e){"use strict";function t(e){return null!=e}function r(e){return"string"==typeof e?!!e:t(e)}function n(e,t,r,n){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===n:o(e,t));return e===t}function o(e,t){const r=Object.keys(e).sort(),o=Object.keys(t).sort();if(r.length!==o.length)return!1;if(r.join("")!==o.join(""))return!1;for(let i=0;i<r.length;i++){if(!n(e[r[i]],t[o[i]],e,t))return!1}return!0}function i(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]=i(e[r])}),t}function s(e){return"[object Object]"===Object.prototype.toString.call(e)}function a(e){return"[object Array]"===Object.prototype.toString.call(e)}function c(e){return e.replace(/([^:]\/)\/+/g,"$1")}class l{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 u=Object.defineProperty,h=Object.defineProperties,f=Object.getOwnPropertyDescriptors,p=Object.getOwnPropertySymbols,d=Object.prototype.hasOwnProperty,y=Object.prototype.propertyIsEnumerable,m=(e,t)=>(t=Symbol[e])?t:Symbol.for("Symbol."+e),v=(e,t,r)=>t in e?u(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,g=(e,t)=>{for(var r in t||(t={}))d.call(t,r)&&v(e,r,t[r]);if(p)for(var r of p(t))y.call(t,r)&&v(e,r,t[r]);return e},b=(e,t)=>h(e,f(t)),w=function(e,t){this[0]=e,this[1]=t},O=(e,t,r)=>{var n=(e,t,o,i)=>{try{var s=r[e](t),a=(t=s.value)instanceof w,c=s.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,i):o({value:r,done:c})).catch(e=>n("throw",e,o,i))}catch(l){i(l)}},o=e=>i[e]=t=>new Promise((r,o)=>n(e,t,r,o)),i={};return r=r.apply(e,t),i[m("asyncIterator")]=()=>i,o("next"),o("throw"),o("return"),i},x=(e,t,r)=>(t=e[m("asyncIterator")])?t.call(e):(e=e[m("iterator")](),t={},(r=(r,n)=>(n=e[r])&&(t[r]=t=>new Promise((r,o,i)=>(t=n.call(e,t),i=t.done,Promise.resolve(t.value).then(e=>r({value:e,done:i}),o)))))("next"),r("return"),t);let j=0;class P extends l{constructor(e){super(e),v(this,"providers"+"",[]),e&&e.providers&&(this.providers=e.providers)}abort(){this.providers.forEach(e=>{e.abort&&e.abort()})}search(e){return O(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,i,s=x(r);n=!(o=yield new w(s.next())).done;n=!1){const e=o.value;t=!1,yield b(g({},e),{provider:c,_id:j++})}}catch(o){i=[o]}finally{try{n&&(o=s.return)&&(yield new w(o.call(s)))}finally{if(i)throw i[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 O(this,null,function*(){for(const s of this.providers)if(s.reverse)try{const i=s.reverse(e);try{for(var t,r,n,o=x(i);t=!(r=yield new w(o.next())).done;t=!1){const e=r.value;yield b(g({},e),{provider:s,_id:j++})}}catch(r){n=[r]}finally{try{t&&(r=o.return)&&(yield new w(r.call(o)))}finally{if(n)throw n[0]}}}catch(i){}})}reverseGeocodeFirstResult(e){return t=this,r=null,n=function*(){for(const s of this.providers)if("function"==typeof s.reverse)try{try{for(var t,r,n,o=x(s.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(i){console.error("Error in reverse geocoding:",i)}},new Promise((e,o)=>{var i=e=>{try{a(n.next(e))}catch(t){o(t)}},s=e=>{try{a(n.throw(e))}catch(t){o(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(i,s);a((n=n.apply(t,r)).next())});var t,r,n}}var _=Object.defineProperty,E=(e,t,r)=>((e,t,r)=>t in e?_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class C extends l{constructor(){super(...arguments),E(this,"searchUrl"),E(this,"label")}}const I=/\{ *([\w_-]+) *\}/g;function k(e,t){return e.replace(I,(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 R=Object.defineProperty,S=Object.getOwnPropertySymbols,T=Object.prototype.hasOwnProperty,L=Object.prototype.propertyIsEnumerable,$=(e,t,r)=>t in e?R(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,i=yield n.connect();let s=i&&i[r];if(s){s=[...s];let e=s.shift();if(s.length){const r={};for(let e=0;e<s.length;e++){const n=s[e];if(r[e]=`{${n}}`,void 0===t[n])throw new Error(`\`${n}\` URL API argument is not specified`)}e&&(e=k(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===s.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={}))T.call(t,r)&&$(e,r,t[r]);if(S)for(var r of S(t))L.call(t,r)&&$(e,r,t[r]);return e})({cacheName:r},o));throw new Error("Request URL is not set")}},new Promise((e,o)=>{var i=e=>{try{a(n.next(e))}catch(t){o(t)}},s=e=>{try{a(n.throw(e))}catch(t){o(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(i,s);a((n=n.apply(t,r)).next())});var t,r,n}var U=Object.defineProperty,q=(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 N=class e{constructor(t={}){var r;q(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,t,n,o,s){let a,c;"object"==typeof n&&"valueToSet"in n?(a=n,o=a.onlyFull,s=a.expirationTime,c=a.props):c=n;const l=this._find(e,c);if(l)return l.value;{let n;n=t instanceof Function?t():t;const a=c&&JSON.parse(JSON.stringify(i(c)));s=s?Date.now()+s:void 0;const l={key:e,value:n,props:a,expirationTime:s};return o&&!r(n)?n:(this.cache.push(l),n instanceof Promise?(n.catch(()=>{this.delete(e,c)}),o&&n.then(t=>(r(t)||this.delete(e,c),t)),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 o(e.props||{},i(r))}};q(N,"instance",{});let F=N;var D;function M(){}function G(){G.init.call(this)}function B(e){return void 0===e._maxListeners?G.defaultMaxListeners:e._maxListeners}function H(e,t,r,n){var o,i,s,a;if("function"!=typeof r)throw new TypeError('"listener" argument must be a function');if((i=e._events)?(i.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),i=e._events),s=i[t]):(i=e._events=new M,e._eventsCount=0),s){if("function"==typeof s?s=i[t]=n?[r,s]:[s,r]:n?s.unshift(r):s.push(r),!s.warned&&(o=B(e))&&o>0&&s.length>o){s.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=s.length,a=c,"function"==typeof console.warn?console.warn(a):console.log(a)}}else s=i[t]=r,++e._eventsCount;return e}function z(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 J(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 Q(e,t){for(var r=new Array(t);t--;)r[t]=e[t];return r}M.prototype=Object.create(null),G.EventEmitter=G,G.usingDomains=!1,G.prototype.domain=void 0,G.prototype._events=void 0,G.prototype._maxListeners=void 0,G.defaultMaxListeners=10,G.init=function(){this.domain=null,G.usingDomains&&(!D.active||this instanceof D.Domain||(this.domain=D.active)),this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new M,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},G.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},G.prototype.getMaxListeners=function(){return B(this)},G.prototype.emit=function(e){var t,r,n,o,i,s,a,c="error"===e;if(s=this._events)c=c&&null==s.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=s[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=Q(e,n),i=0;i<n;++i)o[i].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,i=Q(e,o),s=0;s<o;++s)i[s].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 i=e.length,s=Q(e,i),a=0;a<i;++a)s[a].call(r,n,o)}(r,u,this,arguments[1],arguments[2]);break;case 4:!function(e,t,r,n,o,i){if(t)e.call(r,n,o,i);else for(var s=e.length,a=Q(e,s),c=0;c<s;++c)a[c].call(r,n,o,i)}(r,u,this,arguments[1],arguments[2],arguments[3]);break;default:for(o=new Array(n-1),i=1;i<n;i++)o[i-1]=arguments[i];!function(e,t,r,n){if(t)e.apply(r,n);else for(var o=e.length,i=Q(e,o),s=0;s<o;++s)i[s].apply(r,n)}(r,u,this,o)}return!0},G.prototype.on=G.prototype.addListener=function(e,t){return H(this,e,t,!1)},G.prototype.prependListener=function(e,t){return H(this,e,t,!0)},G.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.on(e,z(this,e,t)),this},G.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.prependListener(e,z(this,e,t)),this},G.prototype.removeListener=function(e,t){var r,n,o,i,s;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 M:(delete n[e],n.removeListener&&this.emit("removeListener",e,r.listener||t));else if("function"!=typeof r){for(o=-1,i=r.length;i-- >0;)if(r[i]===t||r[i].listener&&r[i].listener===t){s=r[i].listener,o=i;break}if(o<0)return this;if(1===r.length){if(r[0]=void 0,0===--this._eventsCount)return this._events=new M,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,s||t)}return this},G.prototype.off=function(e,t){return this.removeListener(e,t)},G.prototype.removeAllListeners=function(e){var t,r;if(!(r=this._events))return this;if(!r.removeListener)return 0===arguments.length?(this._events=new M,this._eventsCount=0):r[e]&&(0===--this._eventsCount?this._events=new M:delete r[e]),this;if(0===arguments.length){for(var n,o=Object.keys(r),i=0;i<o.length;++i)"removeListener"!==(n=o[i])&&this.removeAllListeners(n);return this.removeAllListeners("removeListener"),this._events=new M,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},G.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):[]},G.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):J.call(e,t)},G.prototype.listenerCount=J,G.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};var W="3.0.1";class K extends Error{constructor(e="AbortError"){super(e),this.name="AbortError"}}var V=Object.defineProperty,Y=(e,t,r)=>((e,t,r)=>t in e?V(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class X extends Error{constructor(e){super(),Y(this,"name","NgwError"),Y(this,"title"),Y(this,"message"),Y(this,"detail"),Y(this,"exception"),Y(this,"status_code"),Y(this,"data"),Y(this,"guru_meditation"),Object.assign(this,e),Object.setPrototypeOf(this,X.prototype)}}var Z=Object.defineProperty,ee=(e,t,r)=>((e,t,r)=>t in e?Z(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class te extends X{constructor(e){super(e),ee(this,"name","InsufficientPermissionsError"),ee(this,"exception","nextgisweb.core.exception.InsufficientPermissions"),Object.setPrototypeOf(this,te.prototype)}}var re=Object.defineProperty,ne=(e,t,r)=>((e,t,r)=>t in e?re(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);let oe=class e extends X{constructor(t){super(t),ne(this,"message","There is no response from the server or problem connecting to server."),ne(this,"title","Network error"),ne(this,"detail","Check network connectivity and try again later."),Object.setPrototypeOf(this,e.prototype)}};var ie=Object.defineProperty,se=(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 ae extends Error{constructor(e){super(),se(this,"name","NetworkError"),Object.setPrototypeOf(this,ae.prototype),this.message=`Unable to request ${e}.\n Possibly invalid NGW URL entered or CORS not configured to get request from ${location.origin}`}}var ce=Object.defineProperty,le=(e,t,r)=>((e,t,r)=>t in e?ce(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class ue extends X{constructor(e){super(e),le(this,"name","ResourceNotFoundError"),le(this,"exception","nextgisweb.resource.exception.ResourceNotFound"),Object.setPrototypeOf(this,ue.prototype)}}var he=Object.freeze({__proto__:null,AbortError:K,InsufficientPermissionsError:te,NetworkError:ae,NetworksResponseError:oe,NgwError:X,ResourceNotFoundError:ue,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 oe({title:e.title,status_code:e.status_code,exception:e.exception})},isError:function(e){return!!s(e)&&(e.status_code&&e.exception&&e.title)}}),fe=Object.defineProperty,pe=(e,t,r)=>((e,t,r)=>t in e?fe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class de extends Error{constructor(e){super(e||"Something went wrong."),pe(this,"title"),this.name="BaseAPIError",this.title="Unknown API error",Error.captureStackTrace&&Error.captureStackTrace(this,de)}}class ye extends de{constructor(e){super(e||"There is no response from the server or problem connecting to server."),pe(this,"detail"),this.title="Network error",this.detail="Check network connectivity and try again later."}}class me extends de{constructor(e){super(e||"Something went wrong."),this.title="Unexpected server response"}}class ve extends de{constructor(e){super(e.message),pe(this,"detail"),pe(this,"data"),this.title=e.title||this.title,this.detail=e.detail||null,this.data=e}}class ge extends Error{constructor(e,t={}){super(e||"Unexpected error while processing long-running request."),pe(this,"title"),pe(this,"data"),this.name="LunkwillError",this.title="Long-running request error",this.data=t,Error.captureStackTrace&&Error.captureStackTrace(this,ge)}}class be extends ge{constructor(e){super("Long-running request was cancelled.",e)}}class we extends ge{constructor(e){super(void 0,e)}}var Oe=Object.defineProperty,xe=Object.getOwnPropertySymbols,je=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable,_e=(e,t,r)=>t in e?Oe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ee=(e,t)=>{for(var r in t||(t={}))je.call(t,r)&&_e(e,r,t[r]);if(xe)for(var r of xe(t))Pe.call(t,r)&&_e(e,r,t[r]);return e},Ce=(e,t,r)=>new Promise((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())});function Ie(e){return Ce(this,null,function*(){const t=yield function(e){return Ce(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`,i=`/api/lunkwill/${t.id}/response`,s=e=>new Promise(t=>setTimeout(t,e));let a=!1,c=!1;for(;!c;){let e,t;yield s(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 ge(void 0,t);case"ready":c=!0;break;case"cancelled":throw new be(t);case"failed":throw new we(t);case"spooled":case"processing":case"buffering":r=t.delay_ms;break;default:throw new ge(void 0,t)}}return i})}const ke=new RegExp(["application/pdf","image/png","image/jpeg","image/tiff","text/csv"].join("|"));function Re(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 Se(e,t,r){return Ce(this,null,function*(){var n,o;const s=Ee(Ee({},{method:"GET",credentials:"same-origin",headers:{}}),t),{withCredentials:a,responseType:c,cacheProps:l,cacheName:u,lunkwill:h,cache:f,query:p,json:d}=s,y=((e,t)=>{var r={};for(var n in e)je.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&xe)for(var n of xe(e))t.indexOf(n)<0&&Pe.call(e,n)&&(r[n]=e[n]);return r})(s,["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=Re(e,p),b=()=>Ce(null,null,function*(){let e;try{e=yield fetch(g,y)}catch(o){if(y.signal&&y.signal.aborted)throw o;throw new ye}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 Ie(e);if(v)return t;e=yield function(e){return Ce(this,null,function*(){try{return yield window.fetch(e,{credentials:"same-origin"})}catch(o){throw new ye}})}(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&&ke.test(t);if("blob"===c||o)n=yield e.blob();else{if(!r)throw new me;n=yield e.json()}}catch(o){if("AbortError"===o.name||o instanceof me)throw o;throw new me}if(400<=e.status&&e.status<=599)throw new ve(n);return n});if(r)if("GET"===(null==(o=y.method)?void 0:o.toUpperCase())){if(!1!==f){const e=l||Ee({},i({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 Te=Object.defineProperty,Le=Object.defineProperties,$e=Object.getOwnPropertyDescriptors,Ae=Object.getOwnPropertySymbols,Ue=Object.prototype.hasOwnProperty,qe=Object.prototype.propertyIsEnumerable,Ne=(e,t,r)=>t in e?Te(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Fe=(e,t)=>{for(var r in t||(t={}))Ue.call(t,r)&&Ne(e,r,t[r]);if(Ae)for(var r of Ae(t))qe.call(t,r)&&Ne(e,r,t[r]);return e},De=(e,t)=>{var r={};for(var n in e)Ue.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&Ae)for(var n of Ae(e))t.indexOf(n)<0&&qe.call(e,n)&&(r[n]=e[n]);return r};function Me(e,t,r,...n){const[o,...i]=r[e],s=n[0];let a;if(void 0===s)a=[];else if("object"==typeof s&&null!==s){if(n.length>1)throw new Error("Too many arguments for route(name, object)!");a=[];for(const[e,t]of Object.entries(s))a[i.indexOf(e)]=String(t)}else a=n.map(e=>String(e));return c(t+o.replace(/\{(\w+)\}/g,function(e,t){const r=parseInt(t),n=a[r];if(void 0===n){throw new Error(`Undefined parameter ${r} in "${o}".`)}return String(n)}))}function Ge(e,t,...r){const n={url:n=>{return o=null,i=null,s=function*(){var o;const i=yield t.connect();return Re(Me(e,null!=(o=t.options.baseUrl)?o:"",i,...r),null==n?void 0:n.query)},new Promise((e,t)=>{var r=e=>{try{a(s.next(e))}catch(r){t(r)}},n=e=>{try{a(s.throw(e))}catch(r){t(r)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(r,n);a((s=s.apply(o,i)).next())});var o,i,s}},o=["get","post","put","delete","patch"];for(const s of o){const o=n=>{var o;const a=n||{},{headers:c}=a,l=De(a,["headers"]);if(null==(o=null==n?void 0:n.signal)?void 0:o.aborted)throw new K;return t.connect().then(n=>{var o;const a=Me(e,null!=(o=t.options.baseUrl)?o:"",n,...r),u=i(Fe(Fe({},t.getAuthorizationHeaders()),null!=c?c:{}));return Se(a,(h=Fe({headers:u},l),Le(h,$e({method:s}))),t.cache);var h})};n[s]=o}return n}function Be(e){return"[object Object]"===Object.prototype.toString.call(e)}let He;He=(e,t,r={},n,o)=>{r.method=r.method||"GET";const i=new XMLHttpRequest;i.open(r.method||"GET",e,!0),"blob"===r.responseType&&(i.responseType=r.responseType);const s=()=>{try{return JSON.parse(i.responseText)}catch(e){return i.responseText}};i.onload=()=>{-1!==[401,403,404,422,500].indexOf(i.status)&&n(new X(s())),((e=!1)=>{const o=e?n:t;"blob"===r.responseType?o(i.response):i.responseText?o(s()):n({message:""})})()},i.onerror=t=>{n(0===i.status?new ae(e):t)},i.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&&i.setRequestHeader(l,e)}let c;if(void 0!==r.withCredentials&&(i.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(()=>{i.abort()}),i.send(c)};const ze=[];function Je(e){ze.push(e)}var Qe=Object.defineProperty,We=Object.defineProperties,Ke=Object.getOwnPropertyDescriptors,Ve=Object.getOwnPropertySymbols,Ye=Object.prototype.hasOwnProperty,Xe=Object.prototype.propertyIsEnumerable,Ze=(e,t,r)=>t in e?Qe(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),rt=(e,t,r)=>new Promise((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())});let nt=0,ot=0;class it{constructor(e){this.options=e,tt(this,"id",nt++),tt(this,"emitter",new G),tt(this,"user"),tt(this,"cache"),tt(this,"withCredentials"),tt(this,"routeCache"),tt(this,"client",`NextGIS-NGW-Connector/${W}`),tt(this,"routeStr","/api/component/pyramid/route"),tt(this,"activeRequests",{}),tt(this,"requestTransform");const t=function(e){return ze.find(t=>{if(t.options.baseUrl===e.baseUrl){if(!e.auth)return!0;if(t.options.auth)return o(t.options.auth,e.auth)}})}(e);if(this.cache=new F({namespace:e.cacheId}),this.routeCache=new F({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),Je(this)}}clearCache(){this.cache.clean()}setRequestTransform(e){this.requestTransform=e}setNgw(e){this.logout(),this.options.baseUrl=e,Je(this)}connect(){return rt(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(),Je(this),this._login(e,t)}logout(){this.abort(),function(e){const t=ze.indexOf(e);-1!==t&&ze.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 rt(this,null,function*(){if(this.user&&this.user.id)return this.user;e&&(this.options.auth=e);const r=et({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;return window.btoa(`${t}:${r}`)}}abort(){for(const e of Object.values(this.activeRequests))e.abort();this.activeRequests={}}getActiveApiRequests(){return et({},this.activeRequests)}route(e,...t){return Ge(e,this,...t)}makeQuery(e,t){return rt(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=t,n=((e,t)=>{var r={};for(var n in e)Ye.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&Ve)for(var n of Ve(e))t.indexOf(n)<0&&Xe.call(e,n)&&(r[n]=e[n]);return r})(r,["paramList"]);e=k(e,n)}e=encodeURI(c(e)),r=et({withCredentials:this.withCredentials},r);const{cache:o,signal:s,method:a="GET",headers:l,cacheName:u,cacheProps:h,responseType:f,withCredentials:p}=r,d=new AbortController,y=d.signal;if(s){if(s.aborted)throw new K;s.addEventListener("abort",()=>{d.abort()})}r.signal=y;const m=()=>rt(this,null,function*(){const t=ot++;this.activeRequests[t]=d;try{return this._loadData(e,r)}finally{this._cleanActiveRequest(t)}});if("GET"===a&&!1!==o){const r=h||(v=et({},i({headers:l,withCredentials:p,responseType:f,baseUrl:this.options.baseUrl,userId:null==(n=this.user)?void 0:n.id})),We(v,Ke({params:t})));return this.cache.add(u||e,m,{props:r,expirationTime:o?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=et(et({},this.getAuthorizationHeaders()),t.headers)),this.requestTransform){const[r,n]=this.requestTransform(e,t);e=r,t=n}let i;He(e,r,t,n,e=>{i=e}),null==(o=t.signal)||o.addEventListener("abort",()=>{void 0!==i&&i(),n(new K)})}).catch(e=>{if("AbortError"!==e.name){const t=this._handleHttpError(e);if(t)throw t}throw e})}_login(e,t){return rt(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 X){if("nextgisweb.resource.exception.ResourceNotFound"===e.exception)throw new ue(e);if("nextgisweb.core.exception.InsufficientPermissions"===e.exception)throw new te(e)}return e}}tt(it,"errors",he);const st=["description"];function at(e,r=""){r=r?r+"__":"";const n={};for(const[o,i]of Object.entries(e))if(-1===st.indexOf(o))if(Be(i))if("owner_user"===o){const e=at(i,o);Object.assign(n,e)}else"parent"===o&&"id"in i&&(n.parent_id=i.id);else t(i)&&(n[r+o]=i);return n}var ct=Object.defineProperty,lt=Object.defineProperties,ut=Object.getOwnPropertyDescriptors,ht=Object.getOwnPropertySymbols,ft=Object.prototype.hasOwnProperty,pt=Object.prototype.propertyIsEnumerable,dt=(e,t,r)=>t in e?ct(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,yt=(e,t)=>{for(var r in t||(t={}))ft.call(t,r)&&dt(e,r,t[r]);if(ht)for(var r of ht(t))pt.call(t,r)&&dt(e,r,t[r]);return e},mt=(e,t)=>lt(e,ut(t)),vt=(e,t,r)=>dt(e,"symbol"!=typeof t?t+"":t,r),gt=(e,t,r)=>new Promise((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())});class bt{constructor({connector:e,cacheId:t}){vt(this,"cache"),vt(this,"connector"),this.connector=e,this.cache=new F({namespace:t})}getOne(e,t){const r=yt({},t);return"string"==typeof e||"number"==typeof e||Be(e),"string"==typeof e?this._fetchResourceBy({keyname:e},r):"number"==typeof e?this._fetchResourceById(e,r):Be(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 ue})}getId(e,t){return"number"==typeof e?Promise.resolve(e):"string"==typeof e||Be(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,at(e)),this.connector.route("resource.search").get(mt(yt({},t),{query:yt({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 gt(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(mt(yt({},t),{query:{parent:n}})),i=[];for(const s of o)(null==t?void 0:t.cache)&&this.cache.add("resource.item",Promise.resolve(s),{id:s.resource.id}),r.push(s),(null==t?void 0:t.recursive)&&s.resource.children&&i.push(this._getChildrenOf(s.resource.id,t,r));return i.length?Promise.all(i).then(()=>r):r})}_cleanResourceItemCache(e){return gt(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(e){return Promise.all(this.cache.matchAll("resource.item")).then(r=>(r.filter(r=>{if(r)return e.keyname&&r.resource.keyname?e.keyname===r.resource.keyname:t(e.id)&&t(r.resource.id)?e.id===r.resource.id:o(e,r.resource)}),[]))}}var wt=Object.defineProperty,Ot=(e,t,r)=>((e,t,r)=>t in e?wt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,t+"",r);class xt extends it{constructor(e){super(e),Ot(this,"resources"),this.resources=new bt({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:i(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 jt(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)=>jt(e,t),ilike:(e,t)=>jt(e,t,!0)};function _t(e){return 3===e.length&&"string"==typeof e[0]&&"string"==typeof e[1]}function Et(e,t){const r="string"==typeof t[0]?t[0]:"all",n=t=>{if(_t(t)){const[r,n,o]=t,i=Pt[n];if(i){if(("like"===n||"ilike"===n)&&"string"==typeof r){let t="";const n=r.replace(/^%?(\w+)%?$/,(n,i)=>(t=e[i],r.replace(i,o)));return i(t,n)}return i(e[r],o)}return!1}return Et(e,t)},o=t.filter(e=>Array.isArray(e));return"any"===r?o.some(n):o.every(n)}var Ct=Object.defineProperty,It=Object.defineProperties,kt=Object.getOwnPropertyDescriptors,Rt=Object.getOwnPropertySymbols,St=Object.prototype.hasOwnProperty,Tt=Object.prototype.propertyIsEnumerable,Lt=(e,t,r)=>t in e?Ct(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,$t=(e,t)=>{for(var r in t||(t={}))St.call(t,r)&&Lt(e,r,t[r]);if(Rt)for(var r of Rt(t))Tt.call(t,r)&&Lt(e,r,t[r]);return e},At=(e,t)=>It(e,kt(t));const Ut={srs:4326,geom_format:"geojson",dt_format:"iso"};function qt(e){return t=this,r=null,n=function*(){const t=Ft(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 i=e=>{try{a(n.next(e))}catch(t){o(t)}},s=e=>{try{a(n.throw(e))}catch(t){o(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(i,s);a((n=n.apply(t,r)).next())});var t,r,n}function Nt(e){const[t,r,n]=e;let o="",i="";return[`${"id"!==t?"fld_":""}${String(t).trim().replace(/^(%?)(.+?)(%?)$/,(e,t,r,n)=>(o=t,i=n,r))}__${r}`,o+n+i]}function Ft(e,t=[],r=[]){var n;const{filters:o}=e,i=null!=(n=e.paramList)?n:[],s="string"==typeof o[0]?o[0]:"all",a=o.filter(e=>Array.isArray(e));if("any"===s)for(const c of a)_t(c)?t.push(Mt(At($t({},e),{paramList:[...r,...i,Nt(c)]}))):Ft(At($t({},e),{filters:c}),t,[...r]);else if("all"===s){const n=[],o=[];for(const e of a)_t(e)?n.push(Nt(e)):o.push(e);if(o.length)for(const i of o)Ft(At($t({},e),{filters:i}),t,[...r,...n]);else t.push(Mt(At($t({},e),{paramList:[...r,...i,...n]})))}return t}function Dt(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 Mt(e){const r=$t({},Ut),{limit:n,query:o,cache:i,signal:s,offset:a,orderBy:c,paramList:l,connector:u,geomFormat:h,intersects:f,resourceId:p}=e;if("number"==typeof n&&n!==Number.POSITIVE_INFINITY&&(r.limit=n),a&&(r.offset=a),h&&(r.geom_format=h),function(e,r){const{extensions:n,geom:o,fields:i,srs:s,ilike:a,like:c}=r;e.extensions=n||[],i&&(e.fields=i),void 0!==o&&(e.geom=o,o||(delete e.srs,delete e.geom_format)),t(a)?e.ilike=a:t(c)&&(e.like=c),t(s)&&(e.srs=s)}(r,e),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=Dt(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:$t($t({},r),o),cache:i,signal:s})}var Gt=Object.defineProperty,Bt=Object.defineProperties,Ht=Object.getOwnPropertyDescriptors,zt=Object.getOwnPropertySymbols,Jt=Object.prototype.hasOwnProperty,Qt=Object.prototype.propertyIsEnumerable,Wt=(e,t,r)=>t in e?Gt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Kt=(e,t)=>{for(var r in t||(t={}))Jt.call(t,r)&&Wt(e,r,t[r]);if(zt)for(var r of zt(t))Qt.call(t,r)&&Wt(e,r,t[r]);return e},Vt=(e,t)=>Bt(e,Ht(t));function Yt(e){return r=this,n=null,o=function*(){var r;const n=e.filters;if(n){let o=yield qt(Vt(Kt({},e),{filters:n}));return(null!=(r=e.clientFilterValidate)?r:Xt(n))&&(o=o.filter(e=>Et(function(e){let r;for(r in e){const n=e[r];if(s(n)){const o=n;if(t(o.year)&&t(o.month)&&t(o.day)){const t=[o.year,o.month-1,o.day];"hour"in o&&[o.hour,o.minute,o.second].forEach(e=>{t.push(e)}),e[r]=new Date(...t).toISOString()}}else"id"===r&&"string"==typeof n&&(e[r]=n.split(",").map(Number))}return e}(Vt(Kt({},e.fields),{id:e.id})),n))),o}return Mt(e)},new Promise((e,t)=>{var i=e=>{try{a(o.next(e))}catch(r){t(r)}},s=e=>{try{a(o.throw(e))}catch(r){t(r)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(i,s);a((o=o.apply(r,n)).next())});var r,n,o}function Xt(e){if("any"===e[0])return!0;for(let t=1;t<e.length;t++){const r=e[t];if(a(r)){if(Xt(r))return!0}}return!1}var Zt=Object.defineProperty,er=Object.getOwnPropertySymbols,tr=Object.prototype.hasOwnProperty,rr=Object.prototype.propertyIsEnumerable,nr=(e,t,r)=>t in e?Zt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,or=(e,t,r)=>nr(e,"symbol"!=typeof t?t+"":t,r),ir=function(e,t){this[0]=e,this[1]=t},sr=(e,t,r)=>{var n,o,i=(e,t,n,o)=>{try{var s=r[e](t),a=(t=s.value)instanceof ir,c=s.done;Promise.resolve(a?t[0]:t).then(r=>a?i("return"===e?e:"next",t[1]?{done:r.done,value:r.value}:r,n,o):n({value:r,done:c})).catch(e=>i("throw",e,n,o))}catch(l){o(l)}},s=e=>a[e]=t=>new Promise((r,n)=>i(e,t,r,n)),a={};return r=r.apply(e,t),a[(n="asyncIterator",(o=Symbol[n])?o:Symbol.for("Symbol."+n))]=()=>a,s("next"),s("throw"),s("return"),a};const ar=class e extends C{constructor(e){var t;if(super(e),or(this,"searchResources",[]),or(this,"connector"),or(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 xt(((e,t)=>{for(var r in t||(t={}))tr.call(t,r)&&nr(e,r,t[r]);if(er)for(var r of er(t))rr.call(t,r)&&nr(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 sr(this,null,function*(){var r,n;const o=this._makeSignal();for(const s of this.searchResources){if(o.aborted)break;const{searchMethod:a}=s,c=null!=(r=s.limit)?r:e.limit,l=null!=(n=s.id)?n:s.resourceId;try{const e=yield new ir(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=Yt(r),i=yield new ir(n);for(const o of this._items({entries:i,query:t,config:s,resourceItem:e}))o.result=()=>this.result(o),yield o}catch(i){i&&"name"in i&&"AbortError"!==i.name&&console.warn(i)}}})}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 sr(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 i=[];let s;n.feature_layer&&(s=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=s?e.fields[s]:e.id;r.renderSearch?o=r.renderSearch({item:e,resourceItem:n}):s&&(o=e.fields[s]),i.push({query:t,text:o,featureId:e.id,resourceId:n.resource.id,item:e,resourceItem:n})}),i}};or(ar,"limit",300);let cr=ar;var lr=Object.defineProperty,ur=(e,t,r)=>((e,t,r)=>t in e?lr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r),hr=function(e,t){this[0]=e,this[1]=t},fr=(e,t,r)=>{var n,o,i=(e,t,n,o)=>{try{var s=r[e](t),a=(t=s.value)instanceof hr,c=s.done;Promise.resolve(a?t[0]:t).then(r=>a?i("return"===e?e:"next",t[1]?{done:r.done,value:r.value}:r,n,o):n({value:r,done:c})).catch(e=>i("throw",e,n,o))}catch(l){o(l)}},s=e=>a[e]=t=>new Promise((r,n)=>i(e,t,r,n)),a={};return r=r.apply(e,t),a[(n="asyncIterator",(o=Symbol[n])?o:Symbol.for("Symbol."+n))]=()=>a,s("next"),s("throw"),s("return"),a};return e.BaseProvider=C,e.Geocoder=P,e.NgwProvider=cr,e.NominatimProvider=class extends C{constructor(e){super(),this.options=e,ur(this,"searchUrl","https://nominatim.openstreetmap.org"),ur(this,"_abortControllers",[]),e&&e.searchUrl&&(this.searchUrl=e.searchUrl)}abort(){this._abortControllers.forEach(e=>{e.abort()}),this._abortControllers=[]}search(e){return fr(this,null,function*(){var t,r,n,o,i,s,a;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==(s=this.options)?void 0:s.bounded)&&l.append("bounded","1"),null==(a=this.options)?void 0:a.viewbox){const[e,t,r,n]=this.options.viewbox;l.append("viewbox",`${e},${t},${r},${n}`)}const u=c(`${this.searchUrl}/search?${l.toString()}`),h=new AbortController;this._abortControllers.push(h);try{const t=yield new hr(fetch(u,{signal:h.signal}));if(!t.ok)throw new Error(`Network response was not ok: ${t.statusText}`);const r=(yield new hr(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 fr(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 s=c(`${this.searchUrl}/reverse?${i.toString()}`),a=new AbortController;this._abortControllers.push(a);try{const e=yield new hr(fetch(s,{signal:a.signal}));if(!e.ok)throw new Error(`Network response was not ok: ${e.statusText}`);const t=(yield new hr(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}})}},e.create=function(e){return new P(e)},e}({});
1
+ var Geocoder=function(e){"use strict";function t(e){return null!=e}function r(e){return"string"==typeof e?!!e:t(e)}function n(e,t,r,n){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===n:o(e,t));return e===t}function o(e,t){const r=Object.keys(e).sort(),o=Object.keys(t).sort();if(r.length!==o.length)return!1;if(r.join("")!==o.join(""))return!1;for(let i=0;i<r.length;i++){if(!n(e[r[i]],t[o[i]],e,t))return!1}return!0}function i(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]=i(e[r])}),t}function s(e){return"[object Object]"===Object.prototype.toString.call(e)}function a(e){return"[object Array]"===Object.prototype.toString.call(e)}function c(e){return e.replace(/([^:]\/)\/+/g,"$1")}class l{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 u=Object.defineProperty,h=Object.defineProperties,f=Object.getOwnPropertyDescriptors,p=Object.getOwnPropertySymbols,d=Object.prototype.hasOwnProperty,y=Object.prototype.propertyIsEnumerable,m=(e,t)=>(t=Symbol[e])?t:Symbol.for("Symbol."+e),v=(e,t,r)=>t in e?u(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,g=(e,t)=>{for(var r in t||(t={}))d.call(t,r)&&v(e,r,t[r]);if(p)for(var r of p(t))y.call(t,r)&&v(e,r,t[r]);return e},b=(e,t)=>h(e,f(t)),w=function(e,t){this[0]=e,this[1]=t},O=(e,t,r)=>{var n=(e,t,o,i)=>{try{var s=r[e](t),a=(t=s.value)instanceof w,c=s.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,i):o({value:r,done:c})).catch(e=>n("throw",e,o,i))}catch(l){i(l)}},o=e=>i[e]=t=>new Promise((r,o)=>n(e,t,r,o)),i={};return r=r.apply(e,t),i[m("asyncIterator")]=()=>i,o("next"),o("throw"),o("return"),i},x=(e,t,r)=>(t=e[m("asyncIterator")])?t.call(e):(e=e[m("iterator")](),t={},(r=(r,n)=>(n=e[r])&&(t[r]=t=>new Promise((r,o,i)=>(t=n.call(e,t),i=t.done,Promise.resolve(t.value).then(e=>r({value:e,done:i}),o)))))("next"),r("return"),t);let j=0;class P extends l{constructor(e){super(e),v(this,"providers"+"",[]),e&&e.providers&&(this.providers=e.providers)}abort(){this.providers.forEach(e=>{e.abort&&e.abort()})}search(e){return O(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,i,s=x(r);n=!(o=yield new w(s.next())).done;n=!1){const e=o.value;t=!1,yield b(g({},e),{provider:c,_id:j++})}}catch(o){i=[o]}finally{try{n&&(o=s.return)&&(yield new w(o.call(s)))}finally{if(i)throw i[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 O(this,null,function*(){for(const s of this.providers)if(s.reverse)try{const i=s.reverse(e);try{for(var t,r,n,o=x(i);t=!(r=yield new w(o.next())).done;t=!1){const e=r.value;yield b(g({},e),{provider:s,_id:j++})}}catch(r){n=[r]}finally{try{t&&(r=o.return)&&(yield new w(r.call(o)))}finally{if(n)throw n[0]}}}catch(i){}})}reverseGeocodeFirstResult(e){return t=this,r=null,n=function*(){for(const s of this.providers)if("function"==typeof s.reverse)try{try{for(var t,r,n,o=x(s.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(i){console.error("Error in reverse geocoding:",i)}},new Promise((e,o)=>{var i=e=>{try{a(n.next(e))}catch(t){o(t)}},s=e=>{try{a(n.throw(e))}catch(t){o(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(i,s);a((n=n.apply(t,r)).next())});var t,r,n}}var _=Object.defineProperty,E=(e,t,r)=>((e,t,r)=>t in e?_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class C extends l{constructor(){super(...arguments),E(this,"searchUrl"),E(this,"label")}}const I=/\{ *([\w_-]+) *\}/g;function k(e,t){return e.replace(I,(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 R=Object.defineProperty,S=Object.getOwnPropertySymbols,T=Object.prototype.hasOwnProperty,L=Object.prototype.propertyIsEnumerable,$=(e,t,r)=>t in e?R(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,i=yield n.connect();let s=i&&i[r];if(s){s=[...s];let e=s.shift();if(s.length){const r={};for(let e=0;e<s.length;e++){const n=s[e];if(r[e]=`{${n}}`,void 0===t[n])throw new Error(`\`${n}\` URL API argument is not specified`)}e&&(e=k(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===s.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={}))T.call(t,r)&&$(e,r,t[r]);if(S)for(var r of S(t))L.call(t,r)&&$(e,r,t[r]);return e})({cacheName:r},o));throw new Error("Request URL is not set")}},new Promise((e,o)=>{var i=e=>{try{a(n.next(e))}catch(t){o(t)}},s=e=>{try{a(n.throw(e))}catch(t){o(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(i,s);a((n=n.apply(t,r)).next())});var t,r,n}var U=Object.defineProperty,q=(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 N=class e{constructor(t={}){var r;q(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,t,n,o,s){let a,c;"object"==typeof n&&"valueToSet"in n?(a=n,o=a.onlyFull,s=a.expirationTime,c=a.props):c=n;const l=this._find(e,c);if(l)return l.value;{let n;n=t instanceof Function?t():t;const a=c&&JSON.parse(JSON.stringify(i(c)));s=s?Date.now()+s:void 0;const l={key:e,value:n,props:a,expirationTime:s};return o&&!r(n)?n:(this.cache.push(l),n instanceof Promise?(n.catch(()=>{this.delete(e,c)}),o&&n.then(t=>(r(t)||this.delete(e,c),t)),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 o(e.props||{},i(r))}};q(N,"instance",{});let F=N;var D;function M(){}function G(){G.init.call(this)}function B(e){return void 0===e._maxListeners?G.defaultMaxListeners:e._maxListeners}function H(e,t,r,n){var o,i,s,a;if("function"!=typeof r)throw new TypeError('"listener" argument must be a function');if((i=e._events)?(i.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),i=e._events),s=i[t]):(i=e._events=new M,e._eventsCount=0),s){if("function"==typeof s?s=i[t]=n?[r,s]:[s,r]:n?s.unshift(r):s.push(r),!s.warned&&(o=B(e))&&o>0&&s.length>o){s.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=s.length,a=c,"function"==typeof console.warn?console.warn(a):console.log(a)}}else s=i[t]=r,++e._eventsCount;return e}function z(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 J(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 Q(e,t){for(var r=new Array(t);t--;)r[t]=e[t];return r}M.prototype=Object.create(null),G.EventEmitter=G,G.usingDomains=!1,G.prototype.domain=void 0,G.prototype._events=void 0,G.prototype._maxListeners=void 0,G.defaultMaxListeners=10,G.init=function(){this.domain=null,G.usingDomains&&(!D.active||this instanceof D.Domain||(this.domain=D.active)),this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new M,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},G.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},G.prototype.getMaxListeners=function(){return B(this)},G.prototype.emit=function(e){var t,r,n,o,i,s,a,c="error"===e;if(s=this._events)c=c&&null==s.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=s[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=Q(e,n),i=0;i<n;++i)o[i].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,i=Q(e,o),s=0;s<o;++s)i[s].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 i=e.length,s=Q(e,i),a=0;a<i;++a)s[a].call(r,n,o)}(r,u,this,arguments[1],arguments[2]);break;case 4:!function(e,t,r,n,o,i){if(t)e.call(r,n,o,i);else for(var s=e.length,a=Q(e,s),c=0;c<s;++c)a[c].call(r,n,o,i)}(r,u,this,arguments[1],arguments[2],arguments[3]);break;default:for(o=new Array(n-1),i=1;i<n;i++)o[i-1]=arguments[i];!function(e,t,r,n){if(t)e.apply(r,n);else for(var o=e.length,i=Q(e,o),s=0;s<o;++s)i[s].apply(r,n)}(r,u,this,o)}return!0},G.prototype.on=G.prototype.addListener=function(e,t){return H(this,e,t,!1)},G.prototype.prependListener=function(e,t){return H(this,e,t,!0)},G.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.on(e,z(this,e,t)),this},G.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.prependListener(e,z(this,e,t)),this},G.prototype.removeListener=function(e,t){var r,n,o,i,s;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 M:(delete n[e],n.removeListener&&this.emit("removeListener",e,r.listener||t));else if("function"!=typeof r){for(o=-1,i=r.length;i-- >0;)if(r[i]===t||r[i].listener&&r[i].listener===t){s=r[i].listener,o=i;break}if(o<0)return this;if(1===r.length){if(r[0]=void 0,0===--this._eventsCount)return this._events=new M,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,s||t)}return this},G.prototype.off=function(e,t){return this.removeListener(e,t)},G.prototype.removeAllListeners=function(e){var t,r;if(!(r=this._events))return this;if(!r.removeListener)return 0===arguments.length?(this._events=new M,this._eventsCount=0):r[e]&&(0===--this._eventsCount?this._events=new M:delete r[e]),this;if(0===arguments.length){for(var n,o=Object.keys(r),i=0;i<o.length;++i)"removeListener"!==(n=o[i])&&this.removeAllListeners(n);return this.removeAllListeners("removeListener"),this._events=new M,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},G.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):[]},G.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):J.call(e,t)},G.prototype.listenerCount=J,G.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};var W="4.0.0-alpha.2";class K extends Error{constructor(e="AbortError"){super(e),this.name="AbortError"}}var V=Object.defineProperty,Y=(e,t,r)=>((e,t,r)=>t in e?V(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class X extends Error{constructor(e){super(),Y(this,"name","NgwError"),Y(this,"title"),Y(this,"message"),Y(this,"detail"),Y(this,"exception"),Y(this,"status_code"),Y(this,"data"),Y(this,"guru_meditation"),Object.assign(this,e),Object.setPrototypeOf(this,X.prototype)}}var Z=Object.defineProperty,ee=(e,t,r)=>((e,t,r)=>t in e?Z(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class te extends X{constructor(e){super(e),ee(this,"name","InsufficientPermissionsError"),ee(this,"exception","nextgisweb.core.exception.InsufficientPermissions"),Object.setPrototypeOf(this,te.prototype)}}var re=Object.defineProperty,ne=(e,t,r)=>((e,t,r)=>t in e?re(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);let oe=class e extends X{constructor(t){super(t),ne(this,"message","There is no response from the server or problem connecting to server."),ne(this,"title","Network error"),ne(this,"detail","Check network connectivity and try again later."),Object.setPrototypeOf(this,e.prototype)}};var ie=Object.defineProperty,se=(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 ae extends Error{constructor(e){super(),se(this,"name","NetworkError"),Object.setPrototypeOf(this,ae.prototype),this.message=`Unable to request ${e}.\n Possibly invalid NGW URL entered or CORS not configured to get request from ${location.origin}`}}var ce=Object.defineProperty,le=(e,t,r)=>((e,t,r)=>t in e?ce(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class ue extends X{constructor(e){super(e),le(this,"name","ResourceNotFoundError"),le(this,"exception","nextgisweb.resource.exception.ResourceNotFound"),Object.setPrototypeOf(this,ue.prototype)}}var he=Object.freeze({__proto__:null,AbortError:K,InsufficientPermissionsError:te,NetworkError:ae,NetworksResponseError:oe,NgwError:X,ResourceNotFoundError:ue,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 oe({title:e.title,status_code:e.status_code,exception:e.exception})},isError:function(e){return!!s(e)&&(e.status_code&&e.exception&&e.title)}}),fe=Object.defineProperty,pe=(e,t,r)=>((e,t,r)=>t in e?fe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class de extends Error{constructor(e){super(e||"Something went wrong."),pe(this,"title"),this.name="BaseAPIError",this.title="Unknown API error",Error.captureStackTrace&&Error.captureStackTrace(this,de)}}class ye extends de{constructor(e){super(e||"There is no response from the server or problem connecting to server."),pe(this,"detail"),this.title="Network error",this.detail="Check network connectivity and try again later."}}class me extends de{constructor(e){super(e||"Something went wrong."),this.title="Unexpected server response"}}class ve extends de{constructor(e){super(e.message),pe(this,"detail"),pe(this,"data"),this.title=e.title||this.title,this.detail=e.detail||null,this.data=e}}class ge extends Error{constructor(e,t={}){super(e||"Unexpected error while processing long-running request."),pe(this,"title"),pe(this,"data"),this.name="LunkwillError",this.title="Long-running request error",this.data=t,Error.captureStackTrace&&Error.captureStackTrace(this,ge)}}class be extends ge{constructor(e){super("Long-running request was cancelled.",e)}}class we extends ge{constructor(e){super(void 0,e)}}var Oe=Object.defineProperty,xe=Object.getOwnPropertySymbols,je=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable,_e=(e,t,r)=>t in e?Oe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ee=(e,t)=>{for(var r in t||(t={}))je.call(t,r)&&_e(e,r,t[r]);if(xe)for(var r of xe(t))Pe.call(t,r)&&_e(e,r,t[r]);return e},Ce=(e,t,r)=>new Promise((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())});function Ie(e){return Ce(this,null,function*(){const t=yield function(e){return Ce(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`,i=`/api/lunkwill/${t.id}/response`,s=e=>new Promise(t=>setTimeout(t,e));let a=!1,c=!1;for(;!c;){let e,t;yield s(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 ge(void 0,t);case"ready":c=!0;break;case"cancelled":throw new be(t);case"failed":throw new we(t);case"spooled":case"processing":case"buffering":r=t.delay_ms;break;default:throw new ge(void 0,t)}}return i})}const ke=new RegExp(["application/pdf","image/png","image/jpeg","image/tiff","text/csv"].join("|"));function Re(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 Se(e,t,r){return Ce(this,null,function*(){var n,o;const s=Ee(Ee({},{method:"GET",credentials:"same-origin",headers:{}}),t),{withCredentials:a,responseType:c,cacheProps:l,cacheName:u,lunkwill:h,cache:f,query:p,json:d}=s,y=((e,t)=>{var r={};for(var n in e)je.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&xe)for(var n of xe(e))t.indexOf(n)<0&&Pe.call(e,n)&&(r[n]=e[n]);return r})(s,["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=Re(e,p),b=()=>Ce(null,null,function*(){let e;try{e=yield fetch(g,y)}catch(o){if(y.signal&&y.signal.aborted)throw o;throw new ye}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 Ie(e);if(v)return t;e=yield function(e){return Ce(this,null,function*(){try{return yield window.fetch(e,{credentials:"same-origin"})}catch(o){throw new ye}})}(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&&ke.test(t);if("blob"===c||o)n=yield e.blob();else{if(!r)throw new me;n=yield e.json()}}catch(o){if("AbortError"===o.name||o instanceof me)throw o;throw new me}if(400<=e.status&&e.status<=599)throw new ve(n);return n});if(r)if("GET"===(null==(o=y.method)?void 0:o.toUpperCase())){if(!1!==f){const e=l||Ee({},i({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 Te=Object.defineProperty,Le=Object.defineProperties,$e=Object.getOwnPropertyDescriptors,Ae=Object.getOwnPropertySymbols,Ue=Object.prototype.hasOwnProperty,qe=Object.prototype.propertyIsEnumerable,Ne=(e,t,r)=>t in e?Te(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Fe=(e,t)=>{for(var r in t||(t={}))Ue.call(t,r)&&Ne(e,r,t[r]);if(Ae)for(var r of Ae(t))qe.call(t,r)&&Ne(e,r,t[r]);return e},De=(e,t)=>{var r={};for(var n in e)Ue.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&Ae)for(var n of Ae(e))t.indexOf(n)<0&&qe.call(e,n)&&(r[n]=e[n]);return r};function Me(e,t,r,...n){const[o,...i]=r[e],s=n[0];let a;if(void 0===s)a=[];else if("object"==typeof s&&null!==s){if(n.length>1)throw new Error("Too many arguments for route(name, object)!");a=[];for(const[e,t]of Object.entries(s))a[i.indexOf(e)]=String(t)}else a=n.map(e=>String(e));return c(t+o.replace(/\{(\w+)\}/g,function(e,t){const r=parseInt(t),n=a[r];if(void 0===n){throw new Error(`Undefined parameter ${r} in "${o}".`)}return String(n)}))}function Ge(e,t,...r){const n={url:n=>{return o=null,i=null,s=function*(){var o;const i=yield t.connect();return Re(Me(e,null!=(o=t.options.baseUrl)?o:"",i,...r),null==n?void 0:n.query)},new Promise((e,t)=>{var r=e=>{try{a(s.next(e))}catch(r){t(r)}},n=e=>{try{a(s.throw(e))}catch(r){t(r)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(r,n);a((s=s.apply(o,i)).next())});var o,i,s}},o=["get","post","put","delete","patch"];for(const s of o){const o=n=>{var o;const a=n||{},{headers:c}=a,l=De(a,["headers"]);if(null==(o=null==n?void 0:n.signal)?void 0:o.aborted)throw new K;return t.connect().then(n=>{var o;const a=Me(e,null!=(o=t.options.baseUrl)?o:"",n,...r),u=i(Fe(Fe({},t.getAuthorizationHeaders()),null!=c?c:{}));return Se(a,(h=Fe({headers:u},l),Le(h,$e({method:s}))),t.cache);var h})};n[s]=o}return n}function Be(e){return"[object Object]"===Object.prototype.toString.call(e)}let He;He=(e,t,r={},n,o)=>{r.method=r.method||"GET";const i=new XMLHttpRequest;i.open(r.method||"GET",e,!0),"blob"===r.responseType&&(i.responseType=r.responseType);const s=()=>{try{return JSON.parse(i.responseText)}catch(e){return i.responseText}};i.onload=()=>{-1!==[401,403,404,422,500].indexOf(i.status)&&n(new X(s())),((e=!1)=>{const o=e?n:t;"blob"===r.responseType?o(i.response):i.responseText?o(s()):n({message:""})})()},i.onerror=t=>{n(0===i.status?new ae(e):t)},i.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&&i.setRequestHeader(l,e)}let c;if(void 0!==r.withCredentials&&(i.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(()=>{i.abort()}),i.send(c)};const ze=[];function Je(e){ze.push(e)}var Qe=Object.defineProperty,We=Object.defineProperties,Ke=Object.getOwnPropertyDescriptors,Ve=Object.getOwnPropertySymbols,Ye=Object.prototype.hasOwnProperty,Xe=Object.prototype.propertyIsEnumerable,Ze=(e,t,r)=>t in e?Qe(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),rt=(e,t,r)=>new Promise((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())});let nt=0,ot=0;class it{constructor(e){this.options=e,tt(this,"id",nt++),tt(this,"emitter",new G),tt(this,"user"),tt(this,"cache"),tt(this,"withCredentials"),tt(this,"routeCache"),tt(this,"client",`NextGIS-NGW-Connector/${W}`),tt(this,"routeStr","/api/component/pyramid/route"),tt(this,"activeRequests",{}),tt(this,"requestTransform");const t=function(e){return ze.find(t=>{if(t.options.baseUrl===e.baseUrl){if(!e.auth)return!0;if(t.options.auth)return o(t.options.auth,e.auth)}})}(e);if(this.cache=new F({namespace:e.cacheId}),this.routeCache=new F({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),Je(this)}}clearCache(){this.cache.clean()}setRequestTransform(e){this.requestTransform=e}setNgw(e){this.logout(),this.options.baseUrl=e,Je(this)}connect(){return rt(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(),Je(this),this._login(e,t)}logout(){this.abort(),function(e){const t=ze.indexOf(e);-1!==t&&ze.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 rt(this,null,function*(){if(this.user&&this.user.id)return this.user;e&&(this.options.auth=e);const r=et({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;return window.btoa(`${t}:${r}`)}}abort(){for(const e of Object.values(this.activeRequests))e.abort();this.activeRequests={}}getActiveApiRequests(){return et({},this.activeRequests)}route(e,...t){return Ge(e,this,...t)}makeQuery(e,t){return rt(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=t,n=((e,t)=>{var r={};for(var n in e)Ye.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&Ve)for(var n of Ve(e))t.indexOf(n)<0&&Xe.call(e,n)&&(r[n]=e[n]);return r})(r,["paramList"]);e=k(e,n)}e=encodeURI(c(e)),r=et({withCredentials:this.withCredentials},r);const{cache:o,signal:s,method:a="GET",headers:l,cacheName:u,cacheProps:h,responseType:f,withCredentials:p}=r,d=new AbortController,y=d.signal;if(s){if(s.aborted)throw new K;s.addEventListener("abort",()=>{d.abort()})}r.signal=y;const m=()=>rt(this,null,function*(){const t=ot++;this.activeRequests[t]=d;try{return this._loadData(e,r)}finally{this._cleanActiveRequest(t)}});if("GET"===a&&!1!==o){const r=h||(v=et({},i({headers:l,withCredentials:p,responseType:f,baseUrl:this.options.baseUrl,userId:null==(n=this.user)?void 0:n.id})),We(v,Ke({params:t})));return this.cache.add(u||e,m,{props:r,expirationTime:o?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=et(et({},this.getAuthorizationHeaders()),t.headers)),this.requestTransform){const[r,n]=this.requestTransform(e,t);e=r,t=n}let i;He(e,r,t,n,e=>{i=e}),null==(o=t.signal)||o.addEventListener("abort",()=>{void 0!==i&&i(),n(new K)})}).catch(e=>{if("AbortError"!==e.name){const t=this._handleHttpError(e);if(t)throw t}throw e})}_login(e,t){return rt(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 X){if("nextgisweb.resource.exception.ResourceNotFound"===e.exception)throw new ue(e);if("nextgisweb.core.exception.InsufficientPermissions"===e.exception)throw new te(e)}return e}}tt(it,"errors",he);const st=["description"];function at(e,r=""){r=r?r+"__":"";const n={};for(const[o,i]of Object.entries(e))if(-1===st.indexOf(o))if(Be(i))if("owner_user"===o){const e=at(i,o);Object.assign(n,e)}else"parent"===o&&"id"in i&&(n.parent_id=i.id);else t(i)&&(n[r+o]=i);return n}var ct=Object.defineProperty,lt=Object.defineProperties,ut=Object.getOwnPropertyDescriptors,ht=Object.getOwnPropertySymbols,ft=Object.prototype.hasOwnProperty,pt=Object.prototype.propertyIsEnumerable,dt=(e,t,r)=>t in e?ct(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,yt=(e,t)=>{for(var r in t||(t={}))ft.call(t,r)&&dt(e,r,t[r]);if(ht)for(var r of ht(t))pt.call(t,r)&&dt(e,r,t[r]);return e},mt=(e,t)=>lt(e,ut(t)),vt=(e,t,r)=>dt(e,"symbol"!=typeof t?t+"":t,r),gt=(e,t,r)=>new Promise((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())});class bt{constructor({connector:e,cacheId:t}){vt(this,"cache"),vt(this,"connector"),this.connector=e,this.cache=new F({namespace:t})}getOne(e,t){const r=yt({},t);return"string"==typeof e||"number"==typeof e||Be(e),"string"==typeof e?this._fetchResourceBy({keyname:e},r):"number"==typeof e?this._fetchResourceById(e,r):Be(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 ue})}getId(e,t){return"number"==typeof e?Promise.resolve(e):"string"==typeof e||Be(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,at(e)),this.connector.route("resource.search").get(mt(yt({},t),{query:yt({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 gt(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(mt(yt({},t),{query:{parent:n}})),i=[];for(const s of o)(null==t?void 0:t.cache)&&this.cache.add("resource.item",Promise.resolve(s),{id:s.resource.id}),r.push(s),(null==t?void 0:t.recursive)&&s.resource.children&&i.push(this._getChildrenOf(s.resource.id,t,r));return i.length?Promise.all(i).then(()=>r):r})}_cleanResourceItemCache(e){return gt(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(e){return Promise.all(this.cache.matchAll("resource.item")).then(r=>(r.filter(r=>{if(r)return e.keyname&&r.resource.keyname?e.keyname===r.resource.keyname:t(e.id)&&t(r.resource.id)?e.id===r.resource.id:o(e,r.resource)}),[]))}}var wt=Object.defineProperty,Ot=(e,t,r)=>((e,t,r)=>t in e?wt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,t+"",r);class xt extends it{constructor(e){super(e),Ot(this,"resources"),this.resources=new bt({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:i(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 jt(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)=>jt(e,t),ilike:(e,t)=>jt(e,t,!0)};function _t(e){return 3===e.length&&"string"==typeof e[0]&&"string"==typeof e[1]}function Et(e,t){const r="string"==typeof t[0]?t[0]:"all",n=t=>{if(_t(t)){const[r,n,o]=t,i=Pt[n];if(i){if(("like"===n||"ilike"===n)&&"string"==typeof r){let t="";const n=r.replace(/^%?(\w+)%?$/,(n,i)=>(t=e[i],r.replace(i,o)));return i(t,n)}return i(e[r],o)}return!1}return Et(e,t)},o=t.filter(e=>Array.isArray(e));return"any"===r?o.some(n):o.every(n)}var Ct=Object.defineProperty,It=Object.defineProperties,kt=Object.getOwnPropertyDescriptors,Rt=Object.getOwnPropertySymbols,St=Object.prototype.hasOwnProperty,Tt=Object.prototype.propertyIsEnumerable,Lt=(e,t,r)=>t in e?Ct(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,$t=(e,t)=>{for(var r in t||(t={}))St.call(t,r)&&Lt(e,r,t[r]);if(Rt)for(var r of Rt(t))Tt.call(t,r)&&Lt(e,r,t[r]);return e},At=(e,t)=>It(e,kt(t));const Ut={srs:4326,geom_format:"geojson",dt_format:"iso"};function qt(e){return t=this,r=null,n=function*(){const t=Ft(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 i=e=>{try{a(n.next(e))}catch(t){o(t)}},s=e=>{try{a(n.throw(e))}catch(t){o(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(i,s);a((n=n.apply(t,r)).next())});var t,r,n}function Nt(e){const[t,r,n]=e;let o="",i="";return[`${"id"!==t?"fld_":""}${String(t).trim().replace(/^(%?)(.+?)(%?)$/,(e,t,r,n)=>(o=t,i=n,r))}__${r}`,o+n+i]}function Ft(e,t=[],r=[]){var n;const{filters:o}=e,i=null!=(n=e.paramList)?n:[],s="string"==typeof o[0]?o[0]:"all",a=o.filter(e=>Array.isArray(e));if("any"===s)for(const c of a)_t(c)?t.push(Mt(At($t({},e),{paramList:[...r,...i,Nt(c)]}))):Ft(At($t({},e),{filters:c}),t,[...r]);else if("all"===s){const n=[],o=[];for(const e of a)_t(e)?n.push(Nt(e)):o.push(e);if(o.length)for(const i of o)Ft(At($t({},e),{filters:i}),t,[...r,...n]);else t.push(Mt(At($t({},e),{paramList:[...r,...i,...n]})))}return t}function Dt(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 Mt(e){const r=$t({},Ut),{limit:n,query:o,cache:i,signal:s,offset:a,orderBy:c,paramList:l,connector:u,geomFormat:h,intersects:f,resourceId:p}=e;if("number"==typeof n&&n!==Number.POSITIVE_INFINITY&&(r.limit=n),a&&(r.offset=a),h&&(r.geom_format=h),function(e,r){const{extensions:n,geom:o,fields:i,srs:s,ilike:a,like:c}=r;e.extensions=n||[],i&&(e.fields=i),void 0!==o&&(e.geom=o,o||(delete e.srs,delete e.geom_format)),t(a)?e.ilike=a:t(c)&&(e.like=c),t(s)&&(e.srs=s)}(r,e),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=Dt(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:$t($t({},r),o),cache:i,signal:s})}var Gt=Object.defineProperty,Bt=Object.defineProperties,Ht=Object.getOwnPropertyDescriptors,zt=Object.getOwnPropertySymbols,Jt=Object.prototype.hasOwnProperty,Qt=Object.prototype.propertyIsEnumerable,Wt=(e,t,r)=>t in e?Gt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Kt=(e,t)=>{for(var r in t||(t={}))Jt.call(t,r)&&Wt(e,r,t[r]);if(zt)for(var r of zt(t))Qt.call(t,r)&&Wt(e,r,t[r]);return e},Vt=(e,t)=>Bt(e,Ht(t));function Yt(e){return r=this,n=null,o=function*(){var r;const n=e.filters;if(n){let o=yield qt(Vt(Kt({},e),{filters:n}));return(null!=(r=e.clientFilterValidate)?r:Xt(n))&&(o=o.filter(e=>Et(function(e){let r;for(r in e){const n=e[r];if(s(n)){const o=n;if(t(o.year)&&t(o.month)&&t(o.day)){const t=[o.year,o.month-1,o.day];"hour"in o&&[o.hour,o.minute,o.second].forEach(e=>{t.push(e)}),e[r]=new Date(...t).toISOString()}}else"id"===r&&"string"==typeof n&&(e[r]=n.split(",").map(Number))}return e}(Vt(Kt({},e.fields),{id:e.id})),n))),o}return Mt(e)},new Promise((e,t)=>{var i=e=>{try{a(o.next(e))}catch(r){t(r)}},s=e=>{try{a(o.throw(e))}catch(r){t(r)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(i,s);a((o=o.apply(r,n)).next())});var r,n,o}function Xt(e){if("any"===e[0])return!0;for(let t=1;t<e.length;t++){const r=e[t];if(a(r)){if(Xt(r))return!0}}return!1}var Zt=Object.defineProperty,er=Object.getOwnPropertySymbols,tr=Object.prototype.hasOwnProperty,rr=Object.prototype.propertyIsEnumerable,nr=(e,t,r)=>t in e?Zt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,or=(e,t,r)=>nr(e,"symbol"!=typeof t?t+"":t,r),ir=function(e,t){this[0]=e,this[1]=t},sr=(e,t,r)=>{var n,o,i=(e,t,n,o)=>{try{var s=r[e](t),a=(t=s.value)instanceof ir,c=s.done;Promise.resolve(a?t[0]:t).then(r=>a?i("return"===e?e:"next",t[1]?{done:r.done,value:r.value}:r,n,o):n({value:r,done:c})).catch(e=>i("throw",e,n,o))}catch(l){o(l)}},s=e=>a[e]=t=>new Promise((r,n)=>i(e,t,r,n)),a={};return r=r.apply(e,t),a[(n="asyncIterator",(o=Symbol[n])?o:Symbol.for("Symbol."+n))]=()=>a,s("next"),s("throw"),s("return"),a};const ar=class e extends C{constructor(e){var t;if(super(e),or(this,"searchResources",[]),or(this,"connector"),or(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 xt(((e,t)=>{for(var r in t||(t={}))tr.call(t,r)&&nr(e,r,t[r]);if(er)for(var r of er(t))rr.call(t,r)&&nr(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 sr(this,null,function*(){var r,n;const o=this._makeSignal();for(const s of this.searchResources){if(o.aborted)break;const{searchMethod:a}=s,c=null!=(r=s.limit)?r:e.limit,l=null!=(n=s.id)?n:s.resourceId;try{const e=yield new ir(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=Yt(r),i=yield new ir(n);for(const o of this._items({entries:i,query:t,config:s,resourceItem:e}))o.result=()=>this.result(o),yield o}catch(i){i&&"name"in i&&"AbortError"!==i.name&&console.warn(i)}}})}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 sr(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 i=[];let s;n.feature_layer&&(s=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=s?e.fields[s]:e.id;r.renderSearch?o=r.renderSearch({item:e,resourceItem:n}):s&&(o=e.fields[s]),i.push({query:t,text:o,featureId:e.id,resourceId:n.resource.id,item:e,resourceItem:n})}),i}};or(ar,"limit",300);let cr=ar;var lr=Object.defineProperty,ur=(e,t,r)=>((e,t,r)=>t in e?lr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r),hr=function(e,t){this[0]=e,this[1]=t},fr=(e,t,r)=>{var n,o,i=(e,t,n,o)=>{try{var s=r[e](t),a=(t=s.value)instanceof hr,c=s.done;Promise.resolve(a?t[0]:t).then(r=>a?i("return"===e?e:"next",t[1]?{done:r.done,value:r.value}:r,n,o):n({value:r,done:c})).catch(e=>i("throw",e,n,o))}catch(l){o(l)}},s=e=>a[e]=t=>new Promise((r,n)=>i(e,t,r,n)),a={};return r=r.apply(e,t),a[(n="asyncIterator",(o=Symbol[n])?o:Symbol.for("Symbol."+n))]=()=>a,s("next"),s("throw"),s("return"),a};return e.BaseProvider=C,e.Geocoder=P,e.NgwProvider=cr,e.NominatimProvider=class extends C{constructor(e){super(),this.options=e,ur(this,"searchUrl","https://nominatim.openstreetmap.org"),ur(this,"_abortControllers",[]),e&&e.searchUrl&&(this.searchUrl=e.searchUrl)}abort(){this._abortControllers.forEach(e=>{e.abort()}),this._abortControllers=[]}search(e){return fr(this,null,function*(){var t,r,n,o,i,s,a;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==(s=this.options)?void 0:s.bounded)&&l.append("bounded","1"),null==(a=this.options)?void 0:a.viewbox){const[e,t,r,n]=this.options.viewbox;l.append("viewbox",`${e},${t},${r},${n}`)}const u=c(`${this.searchUrl}/search?${l.toString()}`),h=new AbortController;this._abortControllers.push(h);try{const t=yield new hr(fetch(u,{signal:h.signal}));if(!t.ok)throw new Error(`Network response was not ok: ${t.statusText}`);const r=(yield new hr(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 fr(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 s=c(`${this.searchUrl}/reverse?${i.toString()}`),a=new AbortController;this._abortControllers.push(a);try{const e=yield new hr(fetch(s,{signal:a.signal}));if(!e.ok)throw new Error(`Network response was not ok: ${e.statusText}`);const t=(yield new hr(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}})}},e.create=function(e){return new P(e)},e}({});
2
2
  //# sourceMappingURL=geocoder.global.prod.js.map