@nextgis/geocoder 4.0.0-rc.1 → 4.0.0-rc.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-rc.1; author: NextGIS */
1
+ /** Bundle of @nextgis/geocoder; version: 4.0.0-rc.2; author: NextGIS */
2
2
  'use strict';
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -1,4 +1,4 @@
1
- /** Bundle of @nextgis/geocoder; version: 4.0.0-rc.1; author: NextGIS */
1
+ /** Bundle of @nextgis/geocoder; version: 4.0.0-rc.2; author: NextGIS */
2
2
  function defined(val) {
3
3
  return val !== void 0 && val !== null;
4
4
  }
@@ -1015,7 +1015,7 @@ function unwrapListeners(arr) {
1015
1015
  }
1016
1016
 
1017
1017
  var pkg = {
1018
- version: "4.0.0-rc.1"};
1018
+ version: "4.0.0-rc.2"};
1019
1019
 
1020
1020
  class AbortError extends Error {
1021
1021
  constructor(message = "AbortError") {
@@ -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 i=0;i<n.length;i++){if(!r(e[n[i]],t[o[i]],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 i(e){return"[object Object]"===Object.prototype.toString.call(e)}function s(e){return e.replace(/([^:]\/)\/+/g,"$1")}class a{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 c=Object.defineProperty,l=Object.defineProperties,u=Object.getOwnPropertyDescriptors,h=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,p=Object.prototype.propertyIsEnumerable,d=(e,t)=>(t=Symbol[e])?t:Symbol.for("Symbol."+e),y=(e,t,r)=>t in e?c(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,m=(e,t)=>{for(var r in t||(t={}))f.call(t,r)&&y(e,r,t[r]);if(h)for(var r of h(t))p.call(t,r)&&y(e,r,t[r]);return e},v=(e,t)=>l(e,u(t)),g=function(e,t){this[0]=e,this[1]=t},b=(e,t,r)=>{var n,o=(e,t,n,i)=>{try{var s=r[e](t),a=(t=s.value)instanceof g,c=s.done;Promise.resolve(a?t[0]:t).then(r=>a?o("return"===e?e:"next",t[1]?{done:r.done,value:r.value}:r,n,i):n({value:r,done:c})).catch(e=>o("throw",e,n,i))}catch(l){i(l)}},i=(e,t,r,i)=>s[e]=s=>(t=new Promise((t,r,i)=>(i=()=>o(e,s,t,r),n?n.then(i):i())),i=()=>n===r&&(n=0),n=r=t.then(i,i),t),s={};return r=r.apply(e,t),s[d("asyncIterator")]=()=>s,i("next"),i("throw"),i("return"),s},w=(e,t,r)=>(t=e[d("asyncIterator")])?t.call(e):(e=e[d("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 O=0;class x extends a{constructor(e){super(e),y(this,"providers"+"",[]),e&&e.providers&&(this.providers=e.providers)}abort(){this.providers.forEach(e=>{e.abort&&e.abort()})}search(e){return b(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=w(r);n=!(o=yield new g(s.next())).done;n=!1){const e=o.value;t=!1,yield v(m({},e),{provider:c,_id:O++})}}catch(o){i=[o]}finally{try{n&&(o=s.return)&&(yield new g(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 b(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=w(i);t=!(r=yield new g(o.next())).done;t=!1){const e=r.value;yield v(m({},e),{provider:s,_id:O++})}}catch(r){n=[r]}finally{try{t&&(r=o.return)&&(yield new g(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=w(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 j=Object.defineProperty,P=(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 _ extends a{constructor(){super(...arguments),P(this,"searchUrl"),P(this,"label")}}const E=/\{ *([\w_-]+) *\}/g;function k(e,t){return e.replace(E,(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 I=Object.defineProperty,C=Object.getOwnPropertySymbols,R=Object.prototype.hasOwnProperty,S=Object.prototype.propertyIsEnumerable,$=(e,t,r)=>t in e?I(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;function T(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={}))R.call(t,r)&&$(e,r,t[r]);if(C)for(var r of C(t))S.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 q=Object.defineProperty,A=(e,t,r)=>((e,t,r)=>t in e?q(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);const L=class e{constructor(t={}){var r;A(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,i,s){let a,c;"object"==typeof n&&"valueToSet"in n?(a=n,i=a.onlyFull,s=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)));s=s?Date.now()+s:void 0;const l={key:e,value:n,props:a,expirationTime:s};return i&&!t(n)?n:(this.cache.push(l),n instanceof Promise?(n.catch(()=>{this.delete(e,c)}),i&&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))}};A(L,"instance",{});let U=L;var N;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,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 F,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=M(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 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 W(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&&(!N.active||this instanceof N.Domain||(this.domain=N.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,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=W(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=W(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=W(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=W(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=W(e,o),s=0;s<o;++s)i[s].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,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 F:(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 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,s||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),i=0;i<o.length;++i)"removeListener"!==(n=o[i])&&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 z="4.0.0-rc.1";class J extends Error{constructor(e="AbortError"){super(e),this.name="AbortError"}}var Q=Object.defineProperty,K=(e,t,r)=>((e,t,r)=>t in e?Q(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 ie extends Error{constructor(e){super(),oe(this,"name","NetworkError"),Object.setPrototypeOf(this,ie.prototype),this.message=`Unable to request ${e}.\n Possibly invalid NGW URL entered or CORS not configured to get request from ${location.origin}`}}var se=Object.defineProperty,ae=(e,t,r)=>((e,t,r)=>t in e?se(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:J,InsufficientPermissionsError:Z,NetworkError:ie,NetworksResponseError:re,NgwError:V,ResourceNotFoundError:ce,extractError:function(e){if(i(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!!i(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 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 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`,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 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 i})}const ke=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 Ce(e,t,r){return _e(this,null,function*(){var n,i;const s=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}=s,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})(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=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&&ke.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==(i=y.method)?void 0:i.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,$e=Object.getOwnPropertyDescriptors,Te=Object.getOwnPropertySymbols,qe=Object.prototype.hasOwnProperty,Ae=Object.prototype.propertyIsEnumerable,Le=(e,t,r)=>t in e?Re(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ue=(e,t)=>{for(var r in t||(t={}))qe.call(t,r)&&Le(e,r,t[r]);if(Te)for(var r of Te(t))Ae.call(t,r)&&Le(e,r,t[r]);return e},Ne=(e,t)=>{var r={};for(var n in e)qe.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&Te)for(var n of Te(e))t.indexOf(n)<0&&Ae.call(e,n)&&(r[n]=e[n]);return r};function Fe(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)}))}function De(e,t,...r){const n={url:n=>{return o=null,i=null,s=function*(){var o;const i=yield t.connect();return Ie(Fe(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}},i=["get","post","put","delete","patch"];for(const s of i){const i=n=>{var i;const a=n||{},{headers:c}=a,l=Ne(a,["headers"]);if(null==(i=null==n?void 0:n.signal)?void 0:i.aborted)throw new J;return t.connect().then(n=>{var i;const a=Fe(e,null!=(i=t.options.baseUrl)?i:"",n,...r),u=o(Ue(Ue({},t.getAuthorizationHeaders()),null!=c?c:{}));return Ce(a,(h=Ue({headers:u},l),Se(h,$e({method:s}))),t.cache);var h})};n[s]=i}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 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 V(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 ie(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 Ge=[];function He(e){Ge.push(e)}var We=Object.defineProperty,ze=Object.defineProperties,Je=Object.getOwnPropertyDescriptors,Qe=Object.getOwnPropertySymbols,Ke=Object.prototype.hasOwnProperty,Ve=Object.prototype.propertyIsEnumerable,Ye=(e,t,r)=>t in e?We(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(Qe)for(var r of Qe(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 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 tt=0,rt=0;class nt{constructor(e){Ze(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/${z}`),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 U({namespace:e.cacheId}),this.routeCache=new U({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;return window.btoa(`${t}:${r}`)}}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=t,n=((e,t)=>{var r={};for(var n in e)Ke.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&&Ve.call(e,n)&&(r[n]=e[n]);return r})(r,["paramList"]);e=k(e,n)}e=encodeURI(s(e)),r=Xe({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 J;a.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!==i){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})),ze(v,Je({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=Xe(Xe({},this.getAuthorizationHeaders()),t.headers)),this.requestTransform){const[r,n]=this.requestTransform(e,t);e=r,t=n}let i;Be(e,r,t,n,e=>{i=e}),null==(o=t.signal)||o.addEventListener("abort",()=>{void 0!==i&&i(),n(new J)})}).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 it(t,r=""){r=r?r+"__":"";const n={};for(const[o,i]of Object.entries(t))if(-1===ot.indexOf(o))if(Me(i))if("owner_user"===o){const e=it(i,o);Object.assign(n,e)}else"parent"===o&&"id"in i&&(n.parent_id=i.id);else e(i)&&(n[r+o]=i);return n}var st=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?st(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 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 vt{constructor({connector:e,cacheId:t}){yt(this,"cache"),yt(this,"connector"),this.connector=e,this.cache=new U({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,it(e)),this.connector.route("resource.search").get(dt(pt({},t),{query:pt({serialization:"full"},r)})).then(e=>{const r=Array.isArray(e)?e:e.items;if(null==t?void 0:t.cache)for(const t of r)this.cache.add("resource.item",Promise.resolve(t),{id:t.resource.id});return r})}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}})),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 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 T({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,t){const r="string"==typeof t[0]?t[0]:"all",n=t=>{if(3===(r=t).length&&"string"==typeof r[0]&&"string"==typeof r[1]){const[r,n,o]=t,i=xt[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 jt(e,t);var r},o=t.filter(e=>Array.isArray(e));return"any"===r?o.some(n):o.every(n)}var Pt=Object.defineProperty,_t=Object.getOwnPropertySymbols,Et=Object.prototype.hasOwnProperty,kt=Object.prototype.propertyIsEnumerable,It=(e,t,r)=>t in e?Pt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ct=(e,t)=>{for(var r in t||(t={}))Et.call(t,r)&&It(e,r,t[r]);if(_t)for(var r of _t(t))kt.call(t,r)&&It(e,r,t[r]);return e};const Rt={srs:4326,geom_format:"geojson",dt_format:"iso"};function St(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 $t(t){const r=Ct({},Rt),{limit:n,query:o,cache:i,signal:s,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:i,srs:s,ilike:a,like:c}=r;t.extensions=n||[],i&&(t.fields=i),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(s)&&(t.srs=s)}(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=St(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:Ct(Ct({},r),o),cache:i,signal:s})}function Tt(e){return Array.isArray(e)&&3===e.length&&"string"==typeof e[0]&&"string"==typeof e[1]}function qt(e){return Array.isArray(e)&&!Tt(e)}function At(e){return"id"===e?["fid"]:["get",e]}function Lt(e){const[t,r,n]=e,o=String(t),i=At(o);switch(r){case"eq":return null===n?["is_null",i]:["==",i,n];case"ne":return null===n?["!is_null",i]:["!=",i,n];case"gt":if("number"!=typeof n&&"string"!=typeof n)throw new Error(`Operator "gt" requires number or string for "${o}"`);return[">",i,n];case"lt":if("number"!=typeof n&&"string"!=typeof n)throw new Error(`Operator "lt" requires number or string for "${o}"`);return["<",i,n];case"ge":if("number"!=typeof n&&"string"!=typeof n)throw new Error(`Operator "ge" requires number or string for "${o}"`);return[">=",i,n];case"le":if("number"!=typeof n&&"string"!=typeof n)throw new Error(`Operator "le" requires number or string for "${o}"`);return["<=",i,n];case"in":if(!Array.isArray(n)||!n.every(e=>"string"==typeof e||"number"==typeof e))throw new Error(`Operator "in" requires (string | number)[] for "${o}"`);if(!n.length)throw new Error(`Operator "in" requires non-empty array for "${o}"`);return["in",i,...n];case"notin":if(!Array.isArray(n)||!n.every(e=>"string"==typeof e||"number"==typeof e))throw new Error(`Operator "notin" requires (string | number)[] for "${o}"`);if(!n.length)throw new Error(`Operator "notin" requires non-empty array for "${o}"`);return["!in",i,...n];case"ilike":{if("string"!=typeof n)throw new Error(`Operator "ilike" requires string for "${o}"`);const e=function(e){const t=e.startsWith("%"),r=e.endsWith("%");return{field:e.slice(t?1:0,r?-1:void 0),leadingWildcard:t,trailingWildcard:r}}(o),t=`${e.leadingWildcard?"%":""}${n}${e.trailingWildcard?"%":""}`;return["ilike",At(e.field),t]}case"like":throw new Error(`Operator "${r}" is not supported by server FilterExpression`);default:throw new Error(`Unsupported operator: ${r}`)}}function Ut(e){let t="all";const r=[];for(const n of e)if("all"!==n&&"any"!==n)if(Tt(n))r.push(Lt(n));else{if(!qt(n))throw new Error("Invalid PropertiesFilter node");r.push(Ut(n))}else t=n;return[t,...r]}function Nt(e){return(null==e?void 0:e.length)?Ut(e):[]}function Ft(e){if(null==e?void 0:e.length)return JSON.stringify(Nt(e))}var Dt=Object.defineProperty,Mt=Object.defineProperties,Bt=Object.getOwnPropertyDescriptors,Gt=Object.getOwnPropertySymbols,Ht=Object.prototype.hasOwnProperty,Wt=Object.prototype.propertyIsEnumerable,zt=(e,t,r)=>t in e?Dt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Jt=(e,t)=>{for(var r in t||(t={}))Ht.call(t,r)&&zt(e,r,t[r]);if(Gt)for(var r of Gt(t))Wt.call(t,r)&&zt(e,r,t[r]);return e},Qt=(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 $t(Qt(Jt({},t),{query:Qt(Jt({},t.query),{filter:Ft(n)})}));return null!=(r=t.clientFilterValidate)&&r&&(o=o.filter(t=>jt(function(t){let r;for(r in t){const n=t[r];if(i(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}(Qt(Jt({},t.fields),{id:t.id})),n))),o}return $t(t)},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}var Vt=Object.defineProperty,Yt=Object.getOwnPropertySymbols,Xt=Object.prototype.hasOwnProperty,Zt=Object.prototype.propertyIsEnumerable,er=(e,t,r)=>t in e?Vt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,tr=(e,t,r)=>er(e,"symbol"!=typeof t?t+"":t,r),rr=function(e,t){this[0]=e,this[1]=t},nr=(e,t,r)=>{var n,o,i,s=(e,t,n,o)=>{try{var i=r[e](t),a=(t=i.value)instanceof rr,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)}},a=(e,t,r,o)=>c[e]=i=>(t=new Promise((t,r,o)=>(o=()=>s(e,i,t,r),n?n.then(o):o())),o=()=>n===r&&(n=0),n=r=t.then(o,o),t),c={};return r=r.apply(e,t),c[(o="asyncIterator",(i=Symbol[o])?i:Symbol.for("Symbol."+o))]=()=>c,a("next"),a("throw"),a("return"),c};const or=class e extends _{constructor(e){var t;if(super(e),tr(this,"searchResources",[]),tr(this,"connector"),tr(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={}))Xt.call(t,r)&&er(e,r,t[r]);if(Yt)for(var r of Yt(t))Zt.call(t,r)&&er(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 nr(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 rr(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),i=yield new rr(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 nr(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}};tr(or,"limit",300);let ir=or;var sr=Object.defineProperty,ar=(e,t,r)=>((e,t,r)=>t in e?sr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r),cr=function(e,t){this[0]=e,this[1]=t},lr=(e,t,r)=>{var n,o,i,s=(e,t,n,o)=>{try{var i=r[e](t),a=(t=i.value)instanceof cr,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)}},a=(e,t,r,o)=>c[e]=i=>(t=new Promise((t,r,o)=>(o=()=>s(e,i,t,r),n?n.then(o):o())),o=()=>n===r&&(n=0),n=r=t.then(o,o),t),c={};return r=r.apply(e,t),c[(o="asyncIterator",(i=Symbol[o])?i:Symbol.for("Symbol."+o))]=()=>c,a("next"),a("throw"),a("return"),c};class ur extends _{constructor(e){super(),ar(this,"options",e),ar(this,"searchUrl","https://nominatim.openstreetmap.org"),ar(this,"_abortControllers",[]),e&&e.searchUrl&&(this.searchUrl=e.searchUrl)}abort(){this._abortControllers.forEach(e=>{e.abort()}),this._abortControllers=[]}search(e){return lr(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 cr(fetch(u,{signal:h.signal}));if(!t.ok)throw new Error(`Network response was not ok: ${t.statusText}`);const r=(yield new cr(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 lr(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 cr(fetch(a,{signal:c.signal}));if(!e.ok)throw new Error(`Network response was not ok: ${e.statusText}`);const t=(yield new cr(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 hr(e){return new x(e)}export{_ as BaseProvider,x as Geocoder,ir as NgwProvider,ur as NominatimProvider,hr 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 i=0;i<n.length;i++){if(!r(e[n[i]],t[o[i]],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 i(e){return"[object Object]"===Object.prototype.toString.call(e)}function s(e){return e.replace(/([^:]\/)\/+/g,"$1")}class a{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 c=Object.defineProperty,l=Object.defineProperties,u=Object.getOwnPropertyDescriptors,h=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,p=Object.prototype.propertyIsEnumerable,d=(e,t)=>(t=Symbol[e])?t:Symbol.for("Symbol."+e),y=(e,t,r)=>t in e?c(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,m=(e,t)=>{for(var r in t||(t={}))f.call(t,r)&&y(e,r,t[r]);if(h)for(var r of h(t))p.call(t,r)&&y(e,r,t[r]);return e},v=(e,t)=>l(e,u(t)),g=function(e,t){this[0]=e,this[1]=t},b=(e,t,r)=>{var n,o=(e,t,n,i)=>{try{var s=r[e](t),a=(t=s.value)instanceof g,c=s.done;Promise.resolve(a?t[0]:t).then(r=>a?o("return"===e?e:"next",t[1]?{done:r.done,value:r.value}:r,n,i):n({value:r,done:c})).catch(e=>o("throw",e,n,i))}catch(l){i(l)}},i=(e,t,r,i)=>s[e]=s=>(t=new Promise((t,r,i)=>(i=()=>o(e,s,t,r),n?n.then(i):i())),i=()=>n===r&&(n=0),n=r=t.then(i,i),t),s={};return r=r.apply(e,t),s[d("asyncIterator")]=()=>s,i("next"),i("throw"),i("return"),s},w=(e,t,r)=>(t=e[d("asyncIterator")])?t.call(e):(e=e[d("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 O=0;class x extends a{constructor(e){super(e),y(this,"providers"+"",[]),e&&e.providers&&(this.providers=e.providers)}abort(){this.providers.forEach(e=>{e.abort&&e.abort()})}search(e){return b(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=w(r);n=!(o=yield new g(s.next())).done;n=!1){const e=o.value;t=!1,yield v(m({},e),{provider:c,_id:O++})}}catch(o){i=[o]}finally{try{n&&(o=s.return)&&(yield new g(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 b(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=w(i);t=!(r=yield new g(o.next())).done;t=!1){const e=r.value;yield v(m({},e),{provider:s,_id:O++})}}catch(r){n=[r]}finally{try{t&&(r=o.return)&&(yield new g(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=w(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 j=Object.defineProperty,P=(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 _ extends a{constructor(){super(...arguments),P(this,"searchUrl"),P(this,"label")}}const E=/\{ *([\w_-]+) *\}/g;function k(e,t){return e.replace(E,(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 I=Object.defineProperty,C=Object.getOwnPropertySymbols,R=Object.prototype.hasOwnProperty,S=Object.prototype.propertyIsEnumerable,$=(e,t,r)=>t in e?I(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;function T(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={}))R.call(t,r)&&$(e,r,t[r]);if(C)for(var r of C(t))S.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 q=Object.defineProperty,A=(e,t,r)=>((e,t,r)=>t in e?q(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);const L=class e{constructor(t={}){var r;A(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,i,s){let a,c;"object"==typeof n&&"valueToSet"in n?(a=n,i=a.onlyFull,s=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)));s=s?Date.now()+s:void 0;const l={key:e,value:n,props:a,expirationTime:s};return i&&!t(n)?n:(this.cache.push(l),n instanceof Promise?(n.catch(()=>{this.delete(e,c)}),i&&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))}};A(L,"instance",{});let U=L;var N;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,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 F,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=M(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 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 W(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&&(!N.active||this instanceof N.Domain||(this.domain=N.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,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=W(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=W(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=W(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=W(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=W(e,o),s=0;s<o;++s)i[s].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,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 F:(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 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,s||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),i=0;i<o.length;++i)"removeListener"!==(n=o[i])&&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 z="4.0.0-rc.2";class J extends Error{constructor(e="AbortError"){super(e),this.name="AbortError"}}var Q=Object.defineProperty,K=(e,t,r)=>((e,t,r)=>t in e?Q(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 ie extends Error{constructor(e){super(),oe(this,"name","NetworkError"),Object.setPrototypeOf(this,ie.prototype),this.message=`Unable to request ${e}.\n Possibly invalid NGW URL entered or CORS not configured to get request from ${location.origin}`}}var se=Object.defineProperty,ae=(e,t,r)=>((e,t,r)=>t in e?se(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:J,InsufficientPermissionsError:Z,NetworkError:ie,NetworksResponseError:re,NgwError:V,ResourceNotFoundError:ce,extractError:function(e){if(i(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!!i(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 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 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`,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 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 i})}const ke=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 Ce(e,t,r){return _e(this,null,function*(){var n,i;const s=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}=s,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})(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=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&&ke.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==(i=y.method)?void 0:i.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,$e=Object.getOwnPropertyDescriptors,Te=Object.getOwnPropertySymbols,qe=Object.prototype.hasOwnProperty,Ae=Object.prototype.propertyIsEnumerable,Le=(e,t,r)=>t in e?Re(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ue=(e,t)=>{for(var r in t||(t={}))qe.call(t,r)&&Le(e,r,t[r]);if(Te)for(var r of Te(t))Ae.call(t,r)&&Le(e,r,t[r]);return e},Ne=(e,t)=>{var r={};for(var n in e)qe.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&Te)for(var n of Te(e))t.indexOf(n)<0&&Ae.call(e,n)&&(r[n]=e[n]);return r};function Fe(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)}))}function De(e,t,...r){const n={url:n=>{return o=null,i=null,s=function*(){var o;const i=yield t.connect();return Ie(Fe(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}},i=["get","post","put","delete","patch"];for(const s of i){const i=n=>{var i;const a=n||{},{headers:c}=a,l=Ne(a,["headers"]);if(null==(i=null==n?void 0:n.signal)?void 0:i.aborted)throw new J;return t.connect().then(n=>{var i;const a=Fe(e,null!=(i=t.options.baseUrl)?i:"",n,...r),u=o(Ue(Ue({},t.getAuthorizationHeaders()),null!=c?c:{}));return Ce(a,(h=Ue({headers:u},l),Se(h,$e({method:s}))),t.cache);var h})};n[s]=i}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 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 V(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 ie(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 Ge=[];function He(e){Ge.push(e)}var We=Object.defineProperty,ze=Object.defineProperties,Je=Object.getOwnPropertyDescriptors,Qe=Object.getOwnPropertySymbols,Ke=Object.prototype.hasOwnProperty,Ve=Object.prototype.propertyIsEnumerable,Ye=(e,t,r)=>t in e?We(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(Qe)for(var r of Qe(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 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 tt=0,rt=0;class nt{constructor(e){Ze(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/${z}`),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 U({namespace:e.cacheId}),this.routeCache=new U({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;return window.btoa(`${t}:${r}`)}}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=t,n=((e,t)=>{var r={};for(var n in e)Ke.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&&Ve.call(e,n)&&(r[n]=e[n]);return r})(r,["paramList"]);e=k(e,n)}e=encodeURI(s(e)),r=Xe({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 J;a.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!==i){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})),ze(v,Je({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=Xe(Xe({},this.getAuthorizationHeaders()),t.headers)),this.requestTransform){const[r,n]=this.requestTransform(e,t);e=r,t=n}let i;Be(e,r,t,n,e=>{i=e}),null==(o=t.signal)||o.addEventListener("abort",()=>{void 0!==i&&i(),n(new J)})}).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 it(t,r=""){r=r?r+"__":"";const n={};for(const[o,i]of Object.entries(t))if(-1===ot.indexOf(o))if(Me(i))if("owner_user"===o){const e=it(i,o);Object.assign(n,e)}else"parent"===o&&"id"in i&&(n.parent_id=i.id);else e(i)&&(n[r+o]=i);return n}var st=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?st(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 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 vt{constructor({connector:e,cacheId:t}){yt(this,"cache"),yt(this,"connector"),this.connector=e,this.cache=new U({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,it(e)),this.connector.route("resource.search").get(dt(pt({},t),{query:pt({serialization:"full"},r)})).then(e=>{const r=Array.isArray(e)?e:e.items;if(null==t?void 0:t.cache)for(const t of r)this.cache.add("resource.item",Promise.resolve(t),{id:t.resource.id});return r})}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}})),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 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 T({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,t){const r="string"==typeof t[0]?t[0]:"all",n=t=>{if(3===(r=t).length&&"string"==typeof r[0]&&"string"==typeof r[1]){const[r,n,o]=t,i=xt[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 jt(e,t);var r},o=t.filter(e=>Array.isArray(e));return"any"===r?o.some(n):o.every(n)}var Pt=Object.defineProperty,_t=Object.getOwnPropertySymbols,Et=Object.prototype.hasOwnProperty,kt=Object.prototype.propertyIsEnumerable,It=(e,t,r)=>t in e?Pt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ct=(e,t)=>{for(var r in t||(t={}))Et.call(t,r)&&It(e,r,t[r]);if(_t)for(var r of _t(t))kt.call(t,r)&&It(e,r,t[r]);return e};const Rt={srs:4326,geom_format:"geojson",dt_format:"iso"};function St(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 $t(t){const r=Ct({},Rt),{limit:n,query:o,cache:i,signal:s,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:i,srs:s,ilike:a,like:c}=r;t.extensions=n||[],i&&(t.fields=i),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(s)&&(t.srs=s)}(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=St(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:Ct(Ct({},r),o),cache:i,signal:s})}function Tt(e){return Array.isArray(e)&&3===e.length&&"string"==typeof e[0]&&"string"==typeof e[1]}function qt(e){return Array.isArray(e)&&!Tt(e)}function At(e){return"id"===e?["fid"]:["get",e]}function Lt(e){const[t,r,n]=e,o=String(t),i=At(o);switch(r){case"eq":return null===n?["is_null",i]:["==",i,n];case"ne":return null===n?["!is_null",i]:["!=",i,n];case"gt":if("number"!=typeof n&&"string"!=typeof n)throw new Error(`Operator "gt" requires number or string for "${o}"`);return[">",i,n];case"lt":if("number"!=typeof n&&"string"!=typeof n)throw new Error(`Operator "lt" requires number or string for "${o}"`);return["<",i,n];case"ge":if("number"!=typeof n&&"string"!=typeof n)throw new Error(`Operator "ge" requires number or string for "${o}"`);return[">=",i,n];case"le":if("number"!=typeof n&&"string"!=typeof n)throw new Error(`Operator "le" requires number or string for "${o}"`);return["<=",i,n];case"in":if(!Array.isArray(n)||!n.every(e=>"string"==typeof e||"number"==typeof e))throw new Error(`Operator "in" requires (string | number)[] for "${o}"`);if(!n.length)throw new Error(`Operator "in" requires non-empty array for "${o}"`);return["in",i,...n];case"notin":if(!Array.isArray(n)||!n.every(e=>"string"==typeof e||"number"==typeof e))throw new Error(`Operator "notin" requires (string | number)[] for "${o}"`);if(!n.length)throw new Error(`Operator "notin" requires non-empty array for "${o}"`);return["!in",i,...n];case"ilike":{if("string"!=typeof n)throw new Error(`Operator "ilike" requires string for "${o}"`);const e=function(e){const t=e.startsWith("%"),r=e.endsWith("%");return{field:e.slice(t?1:0,r?-1:void 0),leadingWildcard:t,trailingWildcard:r}}(o),t=`${e.leadingWildcard?"%":""}${n}${e.trailingWildcard?"%":""}`;return["ilike",At(e.field),t]}case"like":throw new Error(`Operator "${r}" is not supported by server FilterExpression`);default:throw new Error(`Unsupported operator: ${r}`)}}function Ut(e){let t="all";const r=[];for(const n of e)if("all"!==n&&"any"!==n)if(Tt(n))r.push(Lt(n));else{if(!qt(n))throw new Error("Invalid PropertiesFilter node");r.push(Ut(n))}else t=n;return[t,...r]}function Nt(e){return(null==e?void 0:e.length)?Ut(e):[]}function Ft(e){if(null==e?void 0:e.length)return JSON.stringify(Nt(e))}var Dt=Object.defineProperty,Mt=Object.defineProperties,Bt=Object.getOwnPropertyDescriptors,Gt=Object.getOwnPropertySymbols,Ht=Object.prototype.hasOwnProperty,Wt=Object.prototype.propertyIsEnumerable,zt=(e,t,r)=>t in e?Dt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Jt=(e,t)=>{for(var r in t||(t={}))Ht.call(t,r)&&zt(e,r,t[r]);if(Gt)for(var r of Gt(t))Wt.call(t,r)&&zt(e,r,t[r]);return e},Qt=(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 $t(Qt(Jt({},t),{query:Qt(Jt({},t.query),{filter:Ft(n)})}));return null!=(r=t.clientFilterValidate)&&r&&(o=o.filter(t=>jt(function(t){let r;for(r in t){const n=t[r];if(i(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}(Qt(Jt({},t.fields),{id:t.id})),n))),o}return $t(t)},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}var Vt=Object.defineProperty,Yt=Object.getOwnPropertySymbols,Xt=Object.prototype.hasOwnProperty,Zt=Object.prototype.propertyIsEnumerable,er=(e,t,r)=>t in e?Vt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,tr=(e,t,r)=>er(e,"symbol"!=typeof t?t+"":t,r),rr=function(e,t){this[0]=e,this[1]=t},nr=(e,t,r)=>{var n,o,i,s=(e,t,n,o)=>{try{var i=r[e](t),a=(t=i.value)instanceof rr,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)}},a=(e,t,r,o)=>c[e]=i=>(t=new Promise((t,r,o)=>(o=()=>s(e,i,t,r),n?n.then(o):o())),o=()=>n===r&&(n=0),n=r=t.then(o,o),t),c={};return r=r.apply(e,t),c[(o="asyncIterator",(i=Symbol[o])?i:Symbol.for("Symbol."+o))]=()=>c,a("next"),a("throw"),a("return"),c};const or=class e extends _{constructor(e){var t;if(super(e),tr(this,"searchResources",[]),tr(this,"connector"),tr(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={}))Xt.call(t,r)&&er(e,r,t[r]);if(Yt)for(var r of Yt(t))Zt.call(t,r)&&er(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 nr(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 rr(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),i=yield new rr(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 nr(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}};tr(or,"limit",300);let ir=or;var sr=Object.defineProperty,ar=(e,t,r)=>((e,t,r)=>t in e?sr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r),cr=function(e,t){this[0]=e,this[1]=t},lr=(e,t,r)=>{var n,o,i,s=(e,t,n,o)=>{try{var i=r[e](t),a=(t=i.value)instanceof cr,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)}},a=(e,t,r,o)=>c[e]=i=>(t=new Promise((t,r,o)=>(o=()=>s(e,i,t,r),n?n.then(o):o())),o=()=>n===r&&(n=0),n=r=t.then(o,o),t),c={};return r=r.apply(e,t),c[(o="asyncIterator",(i=Symbol[o])?i:Symbol.for("Symbol."+o))]=()=>c,a("next"),a("throw"),a("return"),c};class ur extends _{constructor(e){super(),ar(this,"options",e),ar(this,"searchUrl","https://nominatim.openstreetmap.org"),ar(this,"_abortControllers",[]),e&&e.searchUrl&&(this.searchUrl=e.searchUrl)}abort(){this._abortControllers.forEach(e=>{e.abort()}),this._abortControllers=[]}search(e){return lr(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 cr(fetch(u,{signal:h.signal}));if(!t.ok)throw new Error(`Network response was not ok: ${t.statusText}`);const r=(yield new cr(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 lr(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 cr(fetch(a,{signal:c.signal}));if(!e.ok)throw new Error(`Network response was not ok: ${e.statusText}`);const t=(yield new cr(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 hr(e){return new x(e)}export{_ as BaseProvider,x as Geocoder,ir as NgwProvider,ur as NominatimProvider,hr as create};
2
2
  //# sourceMappingURL=geocoder.esm-browser.prod.js.map
@@ -1,4 +1,4 @@
1
- /** Bundle of @nextgis/geocoder; version: 4.0.0-rc.1; author: NextGIS */
1
+ /** Bundle of @nextgis/geocoder; version: 4.0.0-rc.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-rc.1; author: NextGIS */
1
+ /** Bundle of @nextgis/geocoder; version: 4.0.0-rc.2; author: NextGIS */
2
2
  var Geocoder = (function (exports) {
3
3
  'use strict';
4
4
 
@@ -1018,7 +1018,7 @@ var Geocoder = (function (exports) {
1018
1018
  }
1019
1019
 
1020
1020
  var pkg = {
1021
- version: "4.0.0-rc.1"};
1021
+ version: "4.0.0-rc.2"};
1022
1022
 
1023
1023
  class AbortError extends Error {
1024
1024
  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 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,o=(e,t,n,i)=>{try{var s=r[e](t),a=(t=s.value)instanceof b,c=s.done;Promise.resolve(a?t[0]:t).then(r=>a?o("return"===e?e:"next",t[1]?{done:r.done,value:r.value}:r,n,i):n({value:r,done:c})).catch(e=>o("throw",e,n,i))}catch(l){i(l)}},i=(e,t,r,i)=>s[e]=s=>(t=new Promise((t,r,i)=>(i=()=>o(e,s,t,r),n?n.then(i):i())),i=()=>n===r&&(n=0),n=r=t.then(i,i),t),s={};return r=r.apply(e,t),s[y("asyncIterator")]=()=>s,i("next"),i("throw"),i("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,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 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,i,s=O(r);n=!(o=yield new b(s.next())).done;n=!1){const e=o.value;t=!1,yield g(v({},e),{provider:c,_id:x++})}}catch(o){i=[o]}finally{try{n&&(o=s.return)&&(yield new b(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 w(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=O(i);t=!(r=yield new b(o.next())).done;t=!1){const e=r.value;yield g(v({},e),{provider:s,_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(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=O(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 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 k=/\{ *([\w_-]+) *\}/g;function I(e,t){return e.replace(k,(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 C=Object.defineProperty,R=Object.getOwnPropertySymbols,S=Object.prototype.hasOwnProperty,$=Object.prototype.propertyIsEnumerable,T=(e,t,r)=>t in e?C(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;function q(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=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===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={}))S.call(t,r)&&T(e,r,t[r]);if(R)for(var r of R(t))$.call(t,r)&&T(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 A=Object.defineProperty,L=(e,t,r)=>((e,t,r)=>t in e?A(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);const U=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,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))}};L(U,"instance",{});let N=U;var F;function D(){}function M(){M.init.call(this)}function G(e){return void 0===e._maxListeners?M.defaultMaxListeners:e._maxListeners}function B(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 D,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=G(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 H(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 W(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}D.prototype=Object.create(null),M.EventEmitter=M,M.usingDomains=!1,M.prototype.domain=void 0,M.prototype._events=void 0,M.prototype._maxListeners=void 0,M.defaultMaxListeners=10,M.init=function(){this.domain=null,M.usingDomains&&(!F.active||this instanceof F.Domain||(this.domain=F.active)),this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new D,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},M.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},M.prototype.getMaxListeners=function(){return G(this)},M.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=z(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=z(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=z(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=z(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=z(e,o),s=0;s<o;++s)i[s].apply(r,n)}(r,u,this,o)}return!0},M.prototype.on=M.prototype.addListener=function(e,t){return B(this,e,t,!1)},M.prototype.prependListener=function(e,t){return B(this,e,t,!0)},M.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.on(e,H(this,e,t)),this},M.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.prependListener(e,H(this,e,t)),this},M.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 D:(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 D,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},M.prototype.off=function(e,t){return this.removeListener(e,t)},M.prototype.removeAllListeners=function(e){var t,r;if(!(r=this._events))return this;if(!r.removeListener)return 0===arguments.length?(this._events=new D,this._eventsCount=0):r[e]&&(0===--this._eventsCount?this._events=new D: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 D,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},M.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):[]},M.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):W.call(e,t)},M.prototype.listenerCount=W,M.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};var J="4.0.0-rc.1";class Q extends Error{constructor(e="AbortError"){super(e),this.name="AbortError"}}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(),V(this,"name","NgwError"),V(this,"title"),V(this,"message"),V(this,"detail"),V(this,"exception"),V(this,"status_code"),V(this,"data"),V(this,"guru_meditation"),Object.assign(this,e),Object.setPrototypeOf(this,Y.prototype)}}var X=Object.defineProperty,Z=(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 ee extends Y{constructor(e){super(e),Z(this,"name","InsufficientPermissionsError"),Z(this,"exception","nextgisweb.core.exception.InsufficientPermissions"),Object.setPrototypeOf(this,ee.prototype)}}var te=Object.defineProperty,re=(e,t,r)=>((e,t,r)=>t in e?te(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);let ne=class e extends Y{constructor(t){super(t),re(this,"message","There is no response from the server or problem connecting to server."),re(this,"title","Network error"),re(this,"detail","Check network connectivity and try again later."),Object.setPrototypeOf(this,e.prototype)}};var oe=Object.defineProperty,ie=(e,t,r)=>((e,t,r)=>t in e?oe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,t+"",r);class se extends Error{constructor(e){super(),ie(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 ae=Object.defineProperty,ce=(e,t,r)=>((e,t,r)=>t in e?ae(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class le extends Y{constructor(e){super(e),ce(this,"name","ResourceNotFoundError"),ce(this,"exception","nextgisweb.resource.exception.ResourceNotFound"),Object.setPrototypeOf(this,le.prototype)}}var ue=Object.freeze({__proto__:null,AbortError:Q,InsufficientPermissionsError:ee,NetworkError:se,NetworksResponseError:ne,NgwError:Y,ResourceNotFoundError:le,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 ne({title:e.title,status_code:e.status_code,exception:e.exception})},isError:function(e){return!!s(e)&&(e.status_code&&e.exception&&e.title)}}),he=Object.defineProperty,fe=(e,t,r)=>((e,t,r)=>t in e?he(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class pe extends Error{constructor(e){super(e||"Something went wrong."),fe(this,"title"),this.name="BaseAPIError",this.title="Unknown API error",Error.captureStackTrace&&Error.captureStackTrace(this,pe)}}class de extends pe{constructor(e){super(e||"There is no response from the server or problem connecting to server."),fe(this,"detail"),this.title="Network error",this.detail="Check network connectivity and try again later."}}class ye extends pe{constructor(e){super(e||"Something went wrong."),this.title="Unexpected server response"}}class me extends pe{constructor(e){super(e.message),fe(this,"detail"),fe(this,"data"),this.title=e.title||this.title,this.detail=e.detail||null,this.data=e}}class ve extends Error{constructor(e,t={}){super(e||"Unexpected error while processing long-running request."),fe(this,"title"),fe(this,"data"),this.name="LunkwillError",this.title="Long-running request error",this.data=t,Error.captureStackTrace&&Error.captureStackTrace(this,ve)}}class ge extends ve{constructor(e){super("Long-running request was cancelled.",e)}}class be extends ve{constructor(e){super(void 0,e)}}var we=Object.defineProperty,Oe=Object.getOwnPropertySymbols,xe=Object.prototype.hasOwnProperty,je=Object.prototype.propertyIsEnumerable,Pe=(e,t,r)=>t in e?we(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,_e=(e,t)=>{for(var r in t||(t={}))xe.call(t,r)&&Pe(e,r,t[r]);if(Oe)for(var r of Oe(t))je.call(t,r)&&Pe(e,r,t[r]);return e},Ee=(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 ke(e){return Ee(this,null,function*(){const t=yield function(e){return Ee(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 ve(void 0,t);case"ready":c=!0;break;case"cancelled":throw new ge(t);case"failed":throw new be(t);case"spooled":case"processing":case"buffering":r=t.delay_ms;break;default:throw new ve(void 0,t)}}return i})}const Ie=new RegExp(["application/pdf","image/png","image/jpeg","image/tiff","text/csv"].join("|"));function Ce(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 Re(e,t,r){return Ee(this,null,function*(){var n,o;const s=_e(_e({},{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)xe.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&Oe)for(var n of Oe(e))t.indexOf(n)<0&&je.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=Ce(e,p),b=()=>Ee(null,null,function*(){let e;try{e=yield fetch(g,y)}catch(o){if(y.signal&&y.signal.aborted)throw o;throw new de}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 ke(e);if(v)return t;e=yield function(e){return Ee(this,null,function*(){try{return yield window.fetch(e,{credentials:"same-origin"})}catch(o){throw new de}})}(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&&Ie.test(t);if("blob"===c||o)n=yield e.blob();else{if(!r)throw new ye;n=yield e.json()}}catch(o){if("AbortError"===o.name||o instanceof ye)throw o;throw new ye}if(400<=e.status&&e.status<=599)throw new me(n);return n});if(r)if("GET"===(null==(o=y.method)?void 0:o.toUpperCase())){if(!1!==f){const e=l||_e({},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 Se=Object.defineProperty,$e=Object.defineProperties,Te=Object.getOwnPropertyDescriptors,qe=Object.getOwnPropertySymbols,Ae=Object.prototype.hasOwnProperty,Le=Object.prototype.propertyIsEnumerable,Ue=(e,t,r)=>t in e?Se(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ne=(e,t)=>{for(var r in t||(t={}))Ae.call(t,r)&&Ue(e,r,t[r]);if(qe)for(var r of qe(t))Le.call(t,r)&&Ue(e,r,t[r]);return e},Fe=(e,t)=>{var r={};for(var n in e)Ae.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&&Le.call(e,n)&&(r[n]=e[n]);return r};function De(e,t,r,...n){const[o,...i]=r[e],s=n[0];let c;if(void 0===s)c=[];else if("object"==typeof s&&null!==s){if(n.length>1)throw new Error("Too many arguments for route(name, object)!");c=[];for(const[e,t]of Object.entries(s))c[i.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 Me(e,t,...r){const n={url:n=>{return o=null,i=null,s=function*(){var o;const i=yield t.connect();return Ce(De(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=Fe(a,["headers"]);if(null==(o=null==n?void 0:n.signal)?void 0:o.aborted)throw new Q;return t.connect().then(n=>{var o;const a=De(e,null!=(o=t.options.baseUrl)?o:"",n,...r),u=i(Ne(Ne({},t.getAuthorizationHeaders()),null!=c?c:{}));return Re(a,(h=Ne({headers:u},l),$e(h,Te({method:s}))),t.cache);var h})};n[s]=o}return n}function Ge(e){return"[object Object]"===Object.prototype.toString.call(e)}let Be;Be=(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 Y(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 se(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 He=[];function We(e){He.push(e)}var ze=Object.defineProperty,Je=Object.defineProperties,Qe=Object.getOwnPropertyDescriptors,Ke=Object.getOwnPropertySymbols,Ve=Object.prototype.hasOwnProperty,Ye=Object.prototype.propertyIsEnumerable,Xe=(e,t,r)=>t in e?ze(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ze=(e,t)=>{for(var r in t||(t={}))Ve.call(t,r)&&Xe(e,r,t[r]);if(Ke)for(var r of Ke(t))Ye.call(t,r)&&Xe(e,r,t[r]);return e},et=(e,t,r)=>Xe(e,"symbol"!=typeof t?t+"":t,r),tt=(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 rt=0,nt=0;class ot{constructor(e){et(this,"options",e),et(this,"id",rt++),et(this,"emitter",new M),et(this,"user"),et(this,"cache"),et(this,"withCredentials"),et(this,"routeCache"),et(this,"client",`NextGIS-NGW-Connector/${J}`),et(this,"routeStr","/api/component/pyramid/route"),et(this,"activeRequests",{}),et(this,"requestTransform");const t=function(e){return He.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 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),We(this)}}clearCache(){this.cache.clean()}setRequestTransform(e){this.requestTransform=e}setNgw(e){this.logout(),this.options.baseUrl=e,We(this)}connect(){return tt(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(),We(this),this._login(e,t)}logout(){this.abort(),function(e){const t=He.indexOf(e);-1!==t&&He.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 tt(this,null,function*(){if(this.user&&this.user.id)return this.user;e&&(this.options.auth=e);const r=Ze({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 Ze({},this.activeRequests)}route(e,...t){return Me(e,this,...t)}makeQuery(e,t){return tt(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)Ve.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&Ke)for(var n of Ke(e))t.indexOf(n)<0&&Ye.call(e,n)&&(r[n]=e[n]);return r})(r,["paramList"]);e=I(e,n)}e=encodeURI(a(e)),r=Ze({withCredentials:this.withCredentials},r);const{cache:o,signal:s,method:c="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 Q;s.addEventListener("abort",()=>{d.abort()})}r.signal=y;const m=()=>tt(this,null,function*(){const t=nt++;this.activeRequests[t]=d;try{return this._loadData(e,r)}finally{this._cleanActiveRequest(t)}});if("GET"===c&&!1!==o){const r=h||(v=Ze({},i({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: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=Ze(Ze({},this.getAuthorizationHeaders()),t.headers)),this.requestTransform){const[r,n]=this.requestTransform(e,t);e=r,t=n}let i;Be(e,r,t,n,e=>{i=e}),null==(o=t.signal)||o.addEventListener("abort",()=>{void 0!==i&&i(),n(new Q)})}).catch(e=>{if("AbortError"!==e.name){const t=this._handleHttpError(e);if(t)throw t}throw e})}_login(e,t){return tt(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 Y){if("nextgisweb.resource.exception.ResourceNotFound"===e.exception)throw new le(e);if("nextgisweb.core.exception.InsufficientPermissions"===e.exception)throw new ee(e)}return e}}et(ot,"errors",ue);const it=["description"];function st(e,r=""){r=r?r+"__":"";const n={};for(const[o,i]of Object.entries(e))if(-1===it.indexOf(o))if(Ge(i))if("owner_user"===o){const e=st(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 at=Object.defineProperty,ct=Object.defineProperties,lt=Object.getOwnPropertyDescriptors,ut=Object.getOwnPropertySymbols,ht=Object.prototype.hasOwnProperty,ft=Object.prototype.propertyIsEnumerable,pt=(e,t,r)=>t in e?at(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,dt=(e,t)=>{for(var r in t||(t={}))ht.call(t,r)&&pt(e,r,t[r]);if(ut)for(var r of ut(t))ft.call(t,r)&&pt(e,r,t[r]);return e},yt=(e,t)=>ct(e,lt(t)),mt=(e,t,r)=>pt(e,"symbol"!=typeof t?t+"":t,r),vt=(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 gt{constructor({connector:e,cacheId:t}){mt(this,"cache"),mt(this,"connector"),this.connector=e,this.cache=new N({namespace:t})}getOne(e,t){const r=dt({},t);return"string"==typeof e||"number"==typeof e||Ge(e),"string"==typeof e?this._fetchResourceBy({keyname:e},r):"number"==typeof e?this._fetchResourceById(e,r):Ge(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 le})}getId(e,t){return"number"==typeof e?Promise.resolve(e):"string"==typeof e||Ge(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(yt(dt({},t),{query:dt({serialization:"full"},r)})).then(e=>{const r=Array.isArray(e)?e:e.items;if(null==t?void 0:t.cache)for(const t of r)this.cache.add("resource.item",Promise.resolve(t),{id:t.resource.id});return r})}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 vt(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(yt(dt({},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 vt(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 bt=Object.defineProperty,wt=(e,t,r)=>((e,t,r)=>t in e?bt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,t+"",r);class Ot extends ot{constructor(e){super(e),wt(this,"resources"),this.resources=new gt({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 q({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 xt(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 jt={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)=>xt(e,t),ilike:(e,t)=>xt(e,t,!0)};function Pt(e,t){const r="string"==typeof t[0]?t[0]:"all",n=t=>{if(3===(r=t).length&&"string"==typeof r[0]&&"string"==typeof r[1]){const[r,n,o]=t,i=jt[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 Pt(e,t);var r},o=t.filter(e=>Array.isArray(e));return"any"===r?o.some(n):o.every(n)}var _t=Object.defineProperty,Et=Object.getOwnPropertySymbols,kt=Object.prototype.hasOwnProperty,It=Object.prototype.propertyIsEnumerable,Ct=(e,t,r)=>t in e?_t(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Rt=(e,t)=>{for(var r in t||(t={}))kt.call(t,r)&&Ct(e,r,t[r]);if(Et)for(var r of Et(t))It.call(t,r)&&Ct(e,r,t[r]);return e};const St={srs:4326,geom_format:"geojson",dt_format:"iso"};function $t(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 Tt(e){const r=Rt({},St),{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=$t(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:Rt(Rt({},r),o),cache:i,signal:s})}function qt(e){return Array.isArray(e)&&3===e.length&&"string"==typeof e[0]&&"string"==typeof e[1]}function At(e){return Array.isArray(e)&&!qt(e)}function Lt(e){return"id"===e?["fid"]:["get",e]}function Ut(e){const[t,r,n]=e,o=String(t),i=Lt(o);switch(r){case"eq":return null===n?["is_null",i]:["==",i,n];case"ne":return null===n?["!is_null",i]:["!=",i,n];case"gt":if("number"!=typeof n&&"string"!=typeof n)throw new Error(`Operator "gt" requires number or string for "${o}"`);return[">",i,n];case"lt":if("number"!=typeof n&&"string"!=typeof n)throw new Error(`Operator "lt" requires number or string for "${o}"`);return["<",i,n];case"ge":if("number"!=typeof n&&"string"!=typeof n)throw new Error(`Operator "ge" requires number or string for "${o}"`);return[">=",i,n];case"le":if("number"!=typeof n&&"string"!=typeof n)throw new Error(`Operator "le" requires number or string for "${o}"`);return["<=",i,n];case"in":if(!Array.isArray(n)||!n.every(e=>"string"==typeof e||"number"==typeof e))throw new Error(`Operator "in" requires (string | number)[] for "${o}"`);if(!n.length)throw new Error(`Operator "in" requires non-empty array for "${o}"`);return["in",i,...n];case"notin":if(!Array.isArray(n)||!n.every(e=>"string"==typeof e||"number"==typeof e))throw new Error(`Operator "notin" requires (string | number)[] for "${o}"`);if(!n.length)throw new Error(`Operator "notin" requires non-empty array for "${o}"`);return["!in",i,...n];case"ilike":{if("string"!=typeof n)throw new Error(`Operator "ilike" requires string for "${o}"`);const e=function(e){const t=e.startsWith("%"),r=e.endsWith("%");return{field:e.slice(t?1:0,r?-1:void 0),leadingWildcard:t,trailingWildcard:r}}(o),t=`${e.leadingWildcard?"%":""}${n}${e.trailingWildcard?"%":""}`;return["ilike",Lt(e.field),t]}case"like":throw new Error(`Operator "${r}" is not supported by server FilterExpression`);default:throw new Error(`Unsupported operator: ${r}`)}}function Nt(e){let t="all";const r=[];for(const n of e)if("all"!==n&&"any"!==n)if(qt(n))r.push(Ut(n));else{if(!At(n))throw new Error("Invalid PropertiesFilter node");r.push(Nt(n))}else t=n;return[t,...r]}function Ft(e){return(null==e?void 0:e.length)?Nt(e):[]}function Dt(e){if(null==e?void 0:e.length)return JSON.stringify(Ft(e))}var Mt=Object.defineProperty,Gt=Object.defineProperties,Bt=Object.getOwnPropertyDescriptors,Ht=Object.getOwnPropertySymbols,Wt=Object.prototype.hasOwnProperty,zt=Object.prototype.propertyIsEnumerable,Jt=(e,t,r)=>t in e?Mt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Qt=(e,t)=>{for(var r in t||(t={}))Wt.call(t,r)&&Jt(e,r,t[r]);if(Ht)for(var r of Ht(t))zt.call(t,r)&&Jt(e,r,t[r]);return e},Kt=(e,t)=>Gt(e,Bt(t));function Vt(e){return r=this,n=null,o=function*(){var r;const n=e.filters;if(n){let o=yield Tt(Kt(Qt({},e),{query:Kt(Qt({},e.query),{filter:Dt(n)})}));return null!=(r=e.clientFilterValidate)&&r&&(o=o.filter(e=>Pt(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}(Kt(Qt({},e.fields),{id:e.id})),n))),o}return Tt(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}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,i,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)}},a=(e,t,r,o)=>c[e]=i=>(t=new Promise((t,r,o)=>(o=()=>s(e,i,t,r),n?n.then(o):o())),o=()=>n===r&&(n=0),n=r=t.then(o,o),t),c={};return r=r.apply(e,t),c[(o="asyncIterator",(i=Symbol[o])?i:Symbol.for("Symbol."+o))]=()=>c,a("next"),a("throw"),a("return"),c};const ir=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 Ot(((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 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 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=Vt(r),i=yield new nr(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 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 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}};rr(ir,"limit",300);let sr=ir;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,i,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)}},a=(e,t,r,o)=>c[e]=i=>(t=new Promise((t,r,o)=>(o=()=>s(e,i,t,r),n?n.then(o):o())),o=()=>n===r&&(n=0),n=r=t.then(o,o),t),c={};return r=r.apply(e,t),c[(o="asyncIterator",(i=Symbol[o])?i:Symbol.for("Symbol."+o))]=()=>c,a("next"),a("throw"),a("return"),c};return e.BaseProvider=E,e.Geocoder=j,e.NgwProvider=sr,e.NominatimProvider=class extends E{constructor(e){super(),cr(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,i,s,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==(s=this.options)?void 0:s.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,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=a(`${this.searchUrl}/reverse?${i.toString()}`),c=new AbortController;this._abortControllers.push(c);try{const e=yield new lr(fetch(s,{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}})}},e.create=function(e){return new j(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 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,o=(e,t,n,i)=>{try{var s=r[e](t),a=(t=s.value)instanceof b,c=s.done;Promise.resolve(a?t[0]:t).then(r=>a?o("return"===e?e:"next",t[1]?{done:r.done,value:r.value}:r,n,i):n({value:r,done:c})).catch(e=>o("throw",e,n,i))}catch(l){i(l)}},i=(e,t,r,i)=>s[e]=s=>(t=new Promise((t,r,i)=>(i=()=>o(e,s,t,r),n?n.then(i):i())),i=()=>n===r&&(n=0),n=r=t.then(i,i),t),s={};return r=r.apply(e,t),s[y("asyncIterator")]=()=>s,i("next"),i("throw"),i("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,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 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,i,s=O(r);n=!(o=yield new b(s.next())).done;n=!1){const e=o.value;t=!1,yield g(v({},e),{provider:c,_id:x++})}}catch(o){i=[o]}finally{try{n&&(o=s.return)&&(yield new b(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 w(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=O(i);t=!(r=yield new b(o.next())).done;t=!1){const e=r.value;yield g(v({},e),{provider:s,_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(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=O(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 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 k=/\{ *([\w_-]+) *\}/g;function I(e,t){return e.replace(k,(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 C=Object.defineProperty,R=Object.getOwnPropertySymbols,S=Object.prototype.hasOwnProperty,$=Object.prototype.propertyIsEnumerable,T=(e,t,r)=>t in e?C(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;function q(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=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===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={}))S.call(t,r)&&T(e,r,t[r]);if(R)for(var r of R(t))$.call(t,r)&&T(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 A=Object.defineProperty,L=(e,t,r)=>((e,t,r)=>t in e?A(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);const U=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,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))}};L(U,"instance",{});let N=U;var F;function D(){}function M(){M.init.call(this)}function G(e){return void 0===e._maxListeners?M.defaultMaxListeners:e._maxListeners}function B(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 D,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=G(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 H(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 W(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}D.prototype=Object.create(null),M.EventEmitter=M,M.usingDomains=!1,M.prototype.domain=void 0,M.prototype._events=void 0,M.prototype._maxListeners=void 0,M.defaultMaxListeners=10,M.init=function(){this.domain=null,M.usingDomains&&(!F.active||this instanceof F.Domain||(this.domain=F.active)),this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new D,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},M.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},M.prototype.getMaxListeners=function(){return G(this)},M.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=z(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=z(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=z(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=z(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=z(e,o),s=0;s<o;++s)i[s].apply(r,n)}(r,u,this,o)}return!0},M.prototype.on=M.prototype.addListener=function(e,t){return B(this,e,t,!1)},M.prototype.prependListener=function(e,t){return B(this,e,t,!0)},M.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.on(e,H(this,e,t)),this},M.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.prependListener(e,H(this,e,t)),this},M.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 D:(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 D,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},M.prototype.off=function(e,t){return this.removeListener(e,t)},M.prototype.removeAllListeners=function(e){var t,r;if(!(r=this._events))return this;if(!r.removeListener)return 0===arguments.length?(this._events=new D,this._eventsCount=0):r[e]&&(0===--this._eventsCount?this._events=new D: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 D,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},M.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):[]},M.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):W.call(e,t)},M.prototype.listenerCount=W,M.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};var J="4.0.0-rc.2";class Q extends Error{constructor(e="AbortError"){super(e),this.name="AbortError"}}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(),V(this,"name","NgwError"),V(this,"title"),V(this,"message"),V(this,"detail"),V(this,"exception"),V(this,"status_code"),V(this,"data"),V(this,"guru_meditation"),Object.assign(this,e),Object.setPrototypeOf(this,Y.prototype)}}var X=Object.defineProperty,Z=(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 ee extends Y{constructor(e){super(e),Z(this,"name","InsufficientPermissionsError"),Z(this,"exception","nextgisweb.core.exception.InsufficientPermissions"),Object.setPrototypeOf(this,ee.prototype)}}var te=Object.defineProperty,re=(e,t,r)=>((e,t,r)=>t in e?te(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);let ne=class e extends Y{constructor(t){super(t),re(this,"message","There is no response from the server or problem connecting to server."),re(this,"title","Network error"),re(this,"detail","Check network connectivity and try again later."),Object.setPrototypeOf(this,e.prototype)}};var oe=Object.defineProperty,ie=(e,t,r)=>((e,t,r)=>t in e?oe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,t+"",r);class se extends Error{constructor(e){super(),ie(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 ae=Object.defineProperty,ce=(e,t,r)=>((e,t,r)=>t in e?ae(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class le extends Y{constructor(e){super(e),ce(this,"name","ResourceNotFoundError"),ce(this,"exception","nextgisweb.resource.exception.ResourceNotFound"),Object.setPrototypeOf(this,le.prototype)}}var ue=Object.freeze({__proto__:null,AbortError:Q,InsufficientPermissionsError:ee,NetworkError:se,NetworksResponseError:ne,NgwError:Y,ResourceNotFoundError:le,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 ne({title:e.title,status_code:e.status_code,exception:e.exception})},isError:function(e){return!!s(e)&&(e.status_code&&e.exception&&e.title)}}),he=Object.defineProperty,fe=(e,t,r)=>((e,t,r)=>t in e?he(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class pe extends Error{constructor(e){super(e||"Something went wrong."),fe(this,"title"),this.name="BaseAPIError",this.title="Unknown API error",Error.captureStackTrace&&Error.captureStackTrace(this,pe)}}class de extends pe{constructor(e){super(e||"There is no response from the server or problem connecting to server."),fe(this,"detail"),this.title="Network error",this.detail="Check network connectivity and try again later."}}class ye extends pe{constructor(e){super(e||"Something went wrong."),this.title="Unexpected server response"}}class me extends pe{constructor(e){super(e.message),fe(this,"detail"),fe(this,"data"),this.title=e.title||this.title,this.detail=e.detail||null,this.data=e}}class ve extends Error{constructor(e,t={}){super(e||"Unexpected error while processing long-running request."),fe(this,"title"),fe(this,"data"),this.name="LunkwillError",this.title="Long-running request error",this.data=t,Error.captureStackTrace&&Error.captureStackTrace(this,ve)}}class ge extends ve{constructor(e){super("Long-running request was cancelled.",e)}}class be extends ve{constructor(e){super(void 0,e)}}var we=Object.defineProperty,Oe=Object.getOwnPropertySymbols,xe=Object.prototype.hasOwnProperty,je=Object.prototype.propertyIsEnumerable,Pe=(e,t,r)=>t in e?we(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,_e=(e,t)=>{for(var r in t||(t={}))xe.call(t,r)&&Pe(e,r,t[r]);if(Oe)for(var r of Oe(t))je.call(t,r)&&Pe(e,r,t[r]);return e},Ee=(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 ke(e){return Ee(this,null,function*(){const t=yield function(e){return Ee(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 ve(void 0,t);case"ready":c=!0;break;case"cancelled":throw new ge(t);case"failed":throw new be(t);case"spooled":case"processing":case"buffering":r=t.delay_ms;break;default:throw new ve(void 0,t)}}return i})}const Ie=new RegExp(["application/pdf","image/png","image/jpeg","image/tiff","text/csv"].join("|"));function Ce(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 Re(e,t,r){return Ee(this,null,function*(){var n,o;const s=_e(_e({},{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)xe.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&Oe)for(var n of Oe(e))t.indexOf(n)<0&&je.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=Ce(e,p),b=()=>Ee(null,null,function*(){let e;try{e=yield fetch(g,y)}catch(o){if(y.signal&&y.signal.aborted)throw o;throw new de}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 ke(e);if(v)return t;e=yield function(e){return Ee(this,null,function*(){try{return yield window.fetch(e,{credentials:"same-origin"})}catch(o){throw new de}})}(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&&Ie.test(t);if("blob"===c||o)n=yield e.blob();else{if(!r)throw new ye;n=yield e.json()}}catch(o){if("AbortError"===o.name||o instanceof ye)throw o;throw new ye}if(400<=e.status&&e.status<=599)throw new me(n);return n});if(r)if("GET"===(null==(o=y.method)?void 0:o.toUpperCase())){if(!1!==f){const e=l||_e({},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 Se=Object.defineProperty,$e=Object.defineProperties,Te=Object.getOwnPropertyDescriptors,qe=Object.getOwnPropertySymbols,Ae=Object.prototype.hasOwnProperty,Le=Object.prototype.propertyIsEnumerable,Ue=(e,t,r)=>t in e?Se(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ne=(e,t)=>{for(var r in t||(t={}))Ae.call(t,r)&&Ue(e,r,t[r]);if(qe)for(var r of qe(t))Le.call(t,r)&&Ue(e,r,t[r]);return e},Fe=(e,t)=>{var r={};for(var n in e)Ae.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&&Le.call(e,n)&&(r[n]=e[n]);return r};function De(e,t,r,...n){const[o,...i]=r[e],s=n[0];let c;if(void 0===s)c=[];else if("object"==typeof s&&null!==s){if(n.length>1)throw new Error("Too many arguments for route(name, object)!");c=[];for(const[e,t]of Object.entries(s))c[i.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 Me(e,t,...r){const n={url:n=>{return o=null,i=null,s=function*(){var o;const i=yield t.connect();return Ce(De(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=Fe(a,["headers"]);if(null==(o=null==n?void 0:n.signal)?void 0:o.aborted)throw new Q;return t.connect().then(n=>{var o;const a=De(e,null!=(o=t.options.baseUrl)?o:"",n,...r),u=i(Ne(Ne({},t.getAuthorizationHeaders()),null!=c?c:{}));return Re(a,(h=Ne({headers:u},l),$e(h,Te({method:s}))),t.cache);var h})};n[s]=o}return n}function Ge(e){return"[object Object]"===Object.prototype.toString.call(e)}let Be;Be=(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 Y(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 se(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 He=[];function We(e){He.push(e)}var ze=Object.defineProperty,Je=Object.defineProperties,Qe=Object.getOwnPropertyDescriptors,Ke=Object.getOwnPropertySymbols,Ve=Object.prototype.hasOwnProperty,Ye=Object.prototype.propertyIsEnumerable,Xe=(e,t,r)=>t in e?ze(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ze=(e,t)=>{for(var r in t||(t={}))Ve.call(t,r)&&Xe(e,r,t[r]);if(Ke)for(var r of Ke(t))Ye.call(t,r)&&Xe(e,r,t[r]);return e},et=(e,t,r)=>Xe(e,"symbol"!=typeof t?t+"":t,r),tt=(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 rt=0,nt=0;class ot{constructor(e){et(this,"options",e),et(this,"id",rt++),et(this,"emitter",new M),et(this,"user"),et(this,"cache"),et(this,"withCredentials"),et(this,"routeCache"),et(this,"client",`NextGIS-NGW-Connector/${J}`),et(this,"routeStr","/api/component/pyramid/route"),et(this,"activeRequests",{}),et(this,"requestTransform");const t=function(e){return He.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 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),We(this)}}clearCache(){this.cache.clean()}setRequestTransform(e){this.requestTransform=e}setNgw(e){this.logout(),this.options.baseUrl=e,We(this)}connect(){return tt(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(),We(this),this._login(e,t)}logout(){this.abort(),function(e){const t=He.indexOf(e);-1!==t&&He.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 tt(this,null,function*(){if(this.user&&this.user.id)return this.user;e&&(this.options.auth=e);const r=Ze({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 Ze({},this.activeRequests)}route(e,...t){return Me(e,this,...t)}makeQuery(e,t){return tt(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)Ve.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&Ke)for(var n of Ke(e))t.indexOf(n)<0&&Ye.call(e,n)&&(r[n]=e[n]);return r})(r,["paramList"]);e=I(e,n)}e=encodeURI(a(e)),r=Ze({withCredentials:this.withCredentials},r);const{cache:o,signal:s,method:c="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 Q;s.addEventListener("abort",()=>{d.abort()})}r.signal=y;const m=()=>tt(this,null,function*(){const t=nt++;this.activeRequests[t]=d;try{return this._loadData(e,r)}finally{this._cleanActiveRequest(t)}});if("GET"===c&&!1!==o){const r=h||(v=Ze({},i({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: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=Ze(Ze({},this.getAuthorizationHeaders()),t.headers)),this.requestTransform){const[r,n]=this.requestTransform(e,t);e=r,t=n}let i;Be(e,r,t,n,e=>{i=e}),null==(o=t.signal)||o.addEventListener("abort",()=>{void 0!==i&&i(),n(new Q)})}).catch(e=>{if("AbortError"!==e.name){const t=this._handleHttpError(e);if(t)throw t}throw e})}_login(e,t){return tt(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 Y){if("nextgisweb.resource.exception.ResourceNotFound"===e.exception)throw new le(e);if("nextgisweb.core.exception.InsufficientPermissions"===e.exception)throw new ee(e)}return e}}et(ot,"errors",ue);const it=["description"];function st(e,r=""){r=r?r+"__":"";const n={};for(const[o,i]of Object.entries(e))if(-1===it.indexOf(o))if(Ge(i))if("owner_user"===o){const e=st(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 at=Object.defineProperty,ct=Object.defineProperties,lt=Object.getOwnPropertyDescriptors,ut=Object.getOwnPropertySymbols,ht=Object.prototype.hasOwnProperty,ft=Object.prototype.propertyIsEnumerable,pt=(e,t,r)=>t in e?at(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,dt=(e,t)=>{for(var r in t||(t={}))ht.call(t,r)&&pt(e,r,t[r]);if(ut)for(var r of ut(t))ft.call(t,r)&&pt(e,r,t[r]);return e},yt=(e,t)=>ct(e,lt(t)),mt=(e,t,r)=>pt(e,"symbol"!=typeof t?t+"":t,r),vt=(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 gt{constructor({connector:e,cacheId:t}){mt(this,"cache"),mt(this,"connector"),this.connector=e,this.cache=new N({namespace:t})}getOne(e,t){const r=dt({},t);return"string"==typeof e||"number"==typeof e||Ge(e),"string"==typeof e?this._fetchResourceBy({keyname:e},r):"number"==typeof e?this._fetchResourceById(e,r):Ge(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 le})}getId(e,t){return"number"==typeof e?Promise.resolve(e):"string"==typeof e||Ge(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(yt(dt({},t),{query:dt({serialization:"full"},r)})).then(e=>{const r=Array.isArray(e)?e:e.items;if(null==t?void 0:t.cache)for(const t of r)this.cache.add("resource.item",Promise.resolve(t),{id:t.resource.id});return r})}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 vt(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(yt(dt({},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 vt(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 bt=Object.defineProperty,wt=(e,t,r)=>((e,t,r)=>t in e?bt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,t+"",r);class Ot extends ot{constructor(e){super(e),wt(this,"resources"),this.resources=new gt({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 q({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 xt(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 jt={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)=>xt(e,t),ilike:(e,t)=>xt(e,t,!0)};function Pt(e,t){const r="string"==typeof t[0]?t[0]:"all",n=t=>{if(3===(r=t).length&&"string"==typeof r[0]&&"string"==typeof r[1]){const[r,n,o]=t,i=jt[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 Pt(e,t);var r},o=t.filter(e=>Array.isArray(e));return"any"===r?o.some(n):o.every(n)}var _t=Object.defineProperty,Et=Object.getOwnPropertySymbols,kt=Object.prototype.hasOwnProperty,It=Object.prototype.propertyIsEnumerable,Ct=(e,t,r)=>t in e?_t(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Rt=(e,t)=>{for(var r in t||(t={}))kt.call(t,r)&&Ct(e,r,t[r]);if(Et)for(var r of Et(t))It.call(t,r)&&Ct(e,r,t[r]);return e};const St={srs:4326,geom_format:"geojson",dt_format:"iso"};function $t(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 Tt(e){const r=Rt({},St),{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=$t(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:Rt(Rt({},r),o),cache:i,signal:s})}function qt(e){return Array.isArray(e)&&3===e.length&&"string"==typeof e[0]&&"string"==typeof e[1]}function At(e){return Array.isArray(e)&&!qt(e)}function Lt(e){return"id"===e?["fid"]:["get",e]}function Ut(e){const[t,r,n]=e,o=String(t),i=Lt(o);switch(r){case"eq":return null===n?["is_null",i]:["==",i,n];case"ne":return null===n?["!is_null",i]:["!=",i,n];case"gt":if("number"!=typeof n&&"string"!=typeof n)throw new Error(`Operator "gt" requires number or string for "${o}"`);return[">",i,n];case"lt":if("number"!=typeof n&&"string"!=typeof n)throw new Error(`Operator "lt" requires number or string for "${o}"`);return["<",i,n];case"ge":if("number"!=typeof n&&"string"!=typeof n)throw new Error(`Operator "ge" requires number or string for "${o}"`);return[">=",i,n];case"le":if("number"!=typeof n&&"string"!=typeof n)throw new Error(`Operator "le" requires number or string for "${o}"`);return["<=",i,n];case"in":if(!Array.isArray(n)||!n.every(e=>"string"==typeof e||"number"==typeof e))throw new Error(`Operator "in" requires (string | number)[] for "${o}"`);if(!n.length)throw new Error(`Operator "in" requires non-empty array for "${o}"`);return["in",i,...n];case"notin":if(!Array.isArray(n)||!n.every(e=>"string"==typeof e||"number"==typeof e))throw new Error(`Operator "notin" requires (string | number)[] for "${o}"`);if(!n.length)throw new Error(`Operator "notin" requires non-empty array for "${o}"`);return["!in",i,...n];case"ilike":{if("string"!=typeof n)throw new Error(`Operator "ilike" requires string for "${o}"`);const e=function(e){const t=e.startsWith("%"),r=e.endsWith("%");return{field:e.slice(t?1:0,r?-1:void 0),leadingWildcard:t,trailingWildcard:r}}(o),t=`${e.leadingWildcard?"%":""}${n}${e.trailingWildcard?"%":""}`;return["ilike",Lt(e.field),t]}case"like":throw new Error(`Operator "${r}" is not supported by server FilterExpression`);default:throw new Error(`Unsupported operator: ${r}`)}}function Nt(e){let t="all";const r=[];for(const n of e)if("all"!==n&&"any"!==n)if(qt(n))r.push(Ut(n));else{if(!At(n))throw new Error("Invalid PropertiesFilter node");r.push(Nt(n))}else t=n;return[t,...r]}function Ft(e){return(null==e?void 0:e.length)?Nt(e):[]}function Dt(e){if(null==e?void 0:e.length)return JSON.stringify(Ft(e))}var Mt=Object.defineProperty,Gt=Object.defineProperties,Bt=Object.getOwnPropertyDescriptors,Ht=Object.getOwnPropertySymbols,Wt=Object.prototype.hasOwnProperty,zt=Object.prototype.propertyIsEnumerable,Jt=(e,t,r)=>t in e?Mt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Qt=(e,t)=>{for(var r in t||(t={}))Wt.call(t,r)&&Jt(e,r,t[r]);if(Ht)for(var r of Ht(t))zt.call(t,r)&&Jt(e,r,t[r]);return e},Kt=(e,t)=>Gt(e,Bt(t));function Vt(e){return r=this,n=null,o=function*(){var r;const n=e.filters;if(n){let o=yield Tt(Kt(Qt({},e),{query:Kt(Qt({},e.query),{filter:Dt(n)})}));return null!=(r=e.clientFilterValidate)&&r&&(o=o.filter(e=>Pt(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}(Kt(Qt({},e.fields),{id:e.id})),n))),o}return Tt(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}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,i,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)}},a=(e,t,r,o)=>c[e]=i=>(t=new Promise((t,r,o)=>(o=()=>s(e,i,t,r),n?n.then(o):o())),o=()=>n===r&&(n=0),n=r=t.then(o,o),t),c={};return r=r.apply(e,t),c[(o="asyncIterator",(i=Symbol[o])?i:Symbol.for("Symbol."+o))]=()=>c,a("next"),a("throw"),a("return"),c};const ir=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 Ot(((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 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 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=Vt(r),i=yield new nr(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 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 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}};rr(ir,"limit",300);let sr=ir;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,i,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)}},a=(e,t,r,o)=>c[e]=i=>(t=new Promise((t,r,o)=>(o=()=>s(e,i,t,r),n?n.then(o):o())),o=()=>n===r&&(n=0),n=r=t.then(o,o),t),c={};return r=r.apply(e,t),c[(o="asyncIterator",(i=Symbol[o])?i:Symbol.for("Symbol."+o))]=()=>c,a("next"),a("throw"),a("return"),c};return e.BaseProvider=E,e.Geocoder=j,e.NgwProvider=sr,e.NominatimProvider=class extends E{constructor(e){super(),cr(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,i,s,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==(s=this.options)?void 0:s.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,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=a(`${this.searchUrl}/reverse?${i.toString()}`),c=new AbortController;this._abortControllers.push(c);try{const e=yield new lr(fetch(s,{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}})}},e.create=function(e){return new j(e)},e}({});
2
2
  //# sourceMappingURL=geocoder.global.prod.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nextgis/geocoder",
3
- "version": "4.0.0-rc.1",
3
+ "version": "4.0.0-rc.2",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "module": "lib/geocoder.esm-bundler.js",
@@ -8,16 +8,16 @@
8
8
  "jsdelivr": "lib/geocoder.global.prod.js",
9
9
  "types": "lib/index.d.ts",
10
10
  "dependencies": {
11
- "@nextgis/cancelable-promise": "4.0.0-rc.1",
12
- "@nextgis/ngw-connector": "4.0.0-rc.1",
13
- "@nextgis/ngw-kit": "4.0.0-rc.1",
14
- "@nextgis/utils": "4.0.0-rc.1",
11
+ "@nextgis/cancelable-promise": "4.0.0-rc.2",
12
+ "@nextgis/ngw-connector": "4.0.0-rc.2",
13
+ "@nextgis/ngw-kit": "4.0.0-rc.2",
14
+ "@nextgis/utils": "4.0.0-rc.2",
15
15
  "@types/events": "^3.0.0",
16
16
  "@types/geojson": "^7946.0.14",
17
17
  "events": "*"
18
18
  },
19
19
  "devDependencies": {
20
- "@nextgis/build-tools": "4.0.0-rc.1"
20
+ "@nextgis/build-tools": "4.0.0-rc.2"
21
21
  },
22
22
  "buildOptions": {
23
23
  "name": "Geocoder",
@@ -53,5 +53,5 @@
53
53
  "bugs": {
54
54
  "url": "https://github.com/nextgis/nextgis_frontend/issues"
55
55
  },
56
- "gitHead": "94243822e6a037c9107afa652b0c8999074f07e3"
56
+ "gitHead": "ce99091fe3a30c6247ab34431dae97eefb891bb2"
57
57
  }