@nextgis/geocoder 4.0.0-alpha.6 → 4.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/geocoder.cjs.js +1 -1
- package/lib/geocoder.esm-browser.js +2 -2
- package/lib/geocoder.esm-browser.prod.js +1 -1
- package/lib/geocoder.esm-browser.prod.js.map +1 -1
- package/lib/geocoder.esm-bundler.js +1 -1
- package/lib/geocoder.global.js +2 -2
- package/lib/geocoder.global.prod.js +1 -1
- package/lib/geocoder.global.prod.js.map +1 -1
- package/package.json +7 -7
package/lib/geocoder.cjs.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** Bundle of @nextgis/geocoder; version: 4.0.0-
|
|
1
|
+
/** Bundle of @nextgis/geocoder; version: 4.0.0-rc.0; 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-
|
|
1018
|
+
version: "4.0.0-rc.0"};
|
|
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-alpha.6";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.0";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
|