@nextgis/geocoder 2.5.0 → 2.5.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,2 +1,2 @@
1
- var e=Object.defineProperty,t=(t,r,n)=>((t,r,n)=>r in t?e(t,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[r]=n)(t,r+"",n);class r extends Error{constructor(){super(),t(this,"name","CancelError"),Object.setPrototypeOf(this,r.prototype)}}var n=Object.defineProperty,s=(e,t,r)=>((e,t,r)=>t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,t+"",r);class o{constructor(e={}){this.options=e,s(this,"_promises",new Map)}get isLoaded(){return this._promises.size>0}remove(e){this._promises.has(e)&&(this._promises.delete(e),this._onStop())}get(e){return this._promises.get(e)}add(e,t){const r=t||e,n=this._promises.get(r);return this.options.onStart&&!this.isLoaded&&this.options.onStart(),n||(this._promises.set(r,e),e.finally((()=>{this.remove(r)})),e)}abort(){this.isLoaded&&(this._promises.forEach((e=>{e.cancel&&e.cancel()})),this._promises.clear(),this._onStop())}waitFunc(e,t=""){const r=this.get(t=t||e.name);return r||this.add(e(),t)}WaitForMe(e=""){const t=this.get.bind(this),r=this.add.bind(this);return function(n,s,o){const i=o.value;return e=e||s,o.value=function(...n){const s=t(e);if(s)return s;return r(i.apply(this,n),e)},o}}GetOrCreateDecorator(e=""){return this.WaitForMe(e)}_onStop(){this.options.onStop&&!this.isLoaded&&this.options.onStop()}}var i=Object.defineProperty,c=(e,t,r)=>((e,t,r)=>t in e?i(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,t+"",r);class a extends Error{constructor(){super(),c(this,"name","TimeoutError"),Object.setPrototypeOf(this,a.prototype)}}var l,u=Object.defineProperty,h=(e,t,r)=>((e,t,r)=>t in e?u(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);const f=(e,t,r,n)=>{try{e(r(n))}catch(s){t(s)}};let p=0;l=Symbol.toStringTag;const d=class e{constructor(t,n){h(this,l),h(this,"id",p++),h(this,"_isCanceled",!1),h(this,"_isPending",!0),h(this,"_promise"),h(this,"_cancelPromise"),h(this,"_cancelHandlers",[]),h(this,"_setCanceledCallback"),h(this,"_parentPromise"),h(this,"_children",[]),this._cancelPromise=new Promise(((e,t)=>{this._setCanceledCallback=t=>e(t||new r)}));const s=[this._cancelPromise,new Promise(((r,n)=>t((t=>{t instanceof e?this.attach(t):this._isPending=!1,r(t)}),(e=>{this._isPending=!1,n(e)}),(e=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(e)}))))];n&&s.push(new Promise(((e,t)=>{setTimeout((()=>{if(this._isPending)try{this.cancel()}finally{t(new a)}}),n)}))),this._promise=Promise.race(s)}static createControl(e){return new o(e)}static resolve(t){return new e((e=>e(t)))}static reject(t){return new e(((e,r)=>r(t)))}static all(t){return new e(((e,r)=>{Promise.all(t).then(e).catch(r)})).catch((e=>{if(e instanceof this.CancelError)for(const r of t){"cancel"in r&&r.cancel()}throw e}))}attach(e){this._isCanceled?e.cancel():this._children.push(e)}then(t,r){const n=new e(((e,n)=>{if(this._promise){const s=t=>{r?f(e,n,r,t):n(t)};this._promise.then((r=>{this._isCanceled?s(r):t?f(e,n,t,r):e(r)}),s)}}));return n._parentPromise=this,this._children.push(n),n}catch(e){return this._isCanceled&&e&&e(new r),this.then(void 0,e)}finally(e){return this._promise?this._promise.finally(e):Promise.reject(this._isCanceled?new r:e)}cancel(){if(this._isCanceled||!this._isPending)return this;this._isCanceled=!0;const e=this._getTopParent();if(e&&e.cancel(),this._children&&this._children.forEach((e=>e.cancel())),this._isPending){if(this._cancelHandlers.length)try{for(const e of this._cancelHandlers)e()}catch(t){}this._setCanceledCallback&&this._setCanceledCallback()}return this._destroy(),this}_getTopParent(){let e=this._parentPromise,t=!!e;for(;t;)e&&e._parentPromise?(e=e._parentPromise,t=!!e):t=!1;return e}_destroy(){this._setCanceledCallback=void 0,this._cancelPromise=void 0,this._promise=void 0}};h(d,"CancelError",r),h(d,"TimeoutError",a),h(d,"PromiseControl",o);let m=d;function y(e){return null!=e}function v(e){return"string"==typeof e?!!e:y(e)}function g(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:b(e,t));return e===t}function b(e,t){const r=Object.keys(e).sort(),n=Object.keys(t).sort();if(r.length!==n.length)return!1;if(r.join("")!==n.join(""))return!1;for(let s=0;s<r.length;s++){if(!g(e[r[s]],t[n[s]],e,t))return!1}return!0}function w(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]=w(e[r])})),t}function _(e){return e.replace(/([^:]\/)\/+/g,"$1")}Object.setPrototypeOf(m.prototype,Promise.prototype);class O{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 P=Object.defineProperty,j=Object.defineProperties,x=Object.getOwnPropertyDescriptors,C=Object.getOwnPropertySymbols,E=Object.prototype.hasOwnProperty,I=Object.prototype.propertyIsEnumerable,R=(e,t)=>(t=Symbol[e])?t:Symbol.for("Symbol."+e),L=(e,t,r)=>t in e?P(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,k=(e,t)=>{for(var r in t||(t={}))E.call(t,r)&&L(e,r,t[r]);if(C)for(var r of C(t))I.call(t,r)&&L(e,r,t[r]);return e},S=(e,t)=>j(e,x(t)),q=function(e,t){this[0]=e,this[1]=t},T=(e,t,r)=>{var n=(e,t,s,o)=>{try{var i=r[e](t),c=(t=i.value)instanceof q,a=i.done;Promise.resolve(c?t[0]:t).then((r=>c?n("return"===e?e:"next",t[1]?{done:r.done,value:r.value}:r,s,o):s({value:r,done:a}))).catch((e=>n("throw",e,s,o)))}catch(l){o(l)}},s=e=>o[e]=t=>new Promise(((r,s)=>n(e,t,r,s))),o={};return r=r.apply(e,t),o[R("asyncIterator")]=()=>o,s("next"),s("throw"),s("return"),o},A=(e,t,r)=>(t=e[R("asyncIterator")])?t.call(e):(e=e[R("iterator")](),t={},(r=(r,n)=>(n=e[r])&&(t[r]=t=>new Promise(((r,s,o)=>(t=n.call(e,t),o=t.done,Promise.resolve(t.value).then((e=>r({value:e,done:o})),s))))))("next"),r("return"),t);let U=0;class N extends O{constructor(e){super(e),L(this,"providers"+"",[]),e&&e.providers&&(this.providers=e.providers)}abort(){this.providers.forEach((e=>{e.abort&&e.abort()}))}search(e){return T(this,null,(function*(){this.abort();let t=!0;const r=[];for(const a of this.providers)try{const r=a.search(e);try{for(var n,s,o,i=A(r);n=!(s=yield new q(i.next())).done;n=!1){const e=s.value;t=!1,yield S(k({},e),{provider:a,_id:U++})}}catch(s){o=[s]}finally{try{n&&(s=i.return)&&(yield new q(s.call(i)))}finally{if(o)throw o[0]}}}catch(c){"CancelError"!==c.name&&r.push(c)}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):m.resolve(void 0)}reverse(e){return T(this,null,(function*(){for(const i of this.providers)if(i.reverse)try{const o=i.reverse(e);try{for(var t,r,n,s=A(o);t=!(r=yield new q(s.next())).done;t=!1){const e=r.value;yield S(k({},e),{provider:i,_id:U++})}}catch(r){n=[r]}finally{try{t&&(r=s.return)&&(yield new q(r.call(s)))}finally{if(n)throw n[0]}}}catch(o){}}))}reverseGeocodeFirstResult(e){return t=this,r=null,n=function*(){for(const i of this.providers)if("function"==typeof i.reverse)try{try{for(var t,r,n,s=A(i.reverse(e));t=!(r=yield s.next()).done;t=!1)return r.value}catch(r){n=[r]}finally{try{t&&(r=s.return)&&(yield r.call(s))}finally{if(n)throw n[0]}}}catch(o){console.error("Error in reverse geocoding:",o)}},new Promise(((e,s)=>{var o=e=>{try{c(n.next(e))}catch(t){s(t)}},i=e=>{try{c(n.throw(e))}catch(t){s(t)}},c=t=>t.done?e(t.value):Promise.resolve(t.value).then(o,i);c((n=n.apply(t,r)).next())}));var t,r,n}}var F=Object.defineProperty,$=(e,t,r)=>((e,t,r)=>t in e?F(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class M extends O{constructor(){super(...arguments),$(this,"searchUrl"),$(this,"label")}}function D(){}function H(){H.init.call(this)}function B(e){return void 0===e._maxListeners?H.defaultMaxListeners:e._maxListeners}function G(e,t,r,n){var s,o,i,c;if("function"!=typeof r)throw new TypeError('"listener" argument must be a function');if((o=e._events)?(o.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),o=e._events),i=o[t]):(o=e._events=new D,e._eventsCount=0),i){if("function"==typeof i?i=o[t]=n?[r,i]:[i,r]:n?i.unshift(r):i.push(r),!i.warned&&(s=B(e))&&s>0&&i.length>s){i.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+i.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=e,a.type=t,a.count=i.length,c=a,"function"==typeof console.warn?console.warn(c):console.log(c)}}else i=o[t]=r,++e._eventsCount;return e}function z(e,t,r){var n=!1;function s(){e.removeListener(t,s),n||(n=!0,r.apply(e,arguments))}return s.listener=r,s}function J(e){var t=this._events;if(t){var r=t[e];if("function"==typeof r)return 1;if(r)return r.length}return 0}function Q(e,t){for(var r=new Array(t);t--;)r[t]=e[t];return r}D.prototype=Object.create(null),H.EventEmitter=H,H.usingDomains=!1,H.prototype.domain=void 0,H.prototype._events=void 0,H.prototype._maxListeners=void 0,H.defaultMaxListeners=10,H.init=function(){this.domain=null,H.usingDomains&&undefined.active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new D,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},H.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},H.prototype.getMaxListeners=function(){return B(this)},H.prototype.emit=function(e){var t,r,n,s,o,i,c,a="error"===e;if(i=this._events)a=a&&null==i.error;else if(!a)return!1;if(c=this.domain,a){if(t=arguments[1],!c){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=c,t.domainThrown=!1,c.emit("error",t),!1}if(!(r=i[e]))return!1;var u="function"==typeof r;switch(n=arguments.length){case 1:!function(e,t,r){if(t)e.call(r);else for(var n=e.length,s=Q(e,n),o=0;o<n;++o)s[o].call(r)}(r,u,this);break;case 2:!function(e,t,r,n){if(t)e.call(r,n);else for(var s=e.length,o=Q(e,s),i=0;i<s;++i)o[i].call(r,n)}(r,u,this,arguments[1]);break;case 3:!function(e,t,r,n,s){if(t)e.call(r,n,s);else for(var o=e.length,i=Q(e,o),c=0;c<o;++c)i[c].call(r,n,s)}(r,u,this,arguments[1],arguments[2]);break;case 4:!function(e,t,r,n,s,o){if(t)e.call(r,n,s,o);else for(var i=e.length,c=Q(e,i),a=0;a<i;++a)c[a].call(r,n,s,o)}(r,u,this,arguments[1],arguments[2],arguments[3]);break;default:for(s=new Array(n-1),o=1;o<n;o++)s[o-1]=arguments[o];!function(e,t,r,n){if(t)e.apply(r,n);else for(var s=e.length,o=Q(e,s),i=0;i<s;++i)o[i].apply(r,n)}(r,u,this,s)}return!0},H.prototype.on=H.prototype.addListener=function(e,t){return G(this,e,t,!1)},H.prototype.prependListener=function(e,t){return G(this,e,t,!0)},H.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.on(e,z(this,e,t)),this},H.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.prependListener(e,z(this,e,t)),this},H.prototype.removeListener=function(e,t){var r,n,s,o,i;if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');if(!(n=this._events))return this;if(!(r=n[e]))return this;if(r===t||r.listener&&r.listener===t)0==--this._eventsCount?this._events=new D:(delete n[e],n.removeListener&&this.emit("removeListener",e,r.listener||t));else if("function"!=typeof r){for(s=-1,o=r.length;o-- >0;)if(r[o]===t||r[o].listener&&r[o].listener===t){i=r[o].listener,s=o;break}if(s<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,s=e.length;n<s;r+=1,n+=1)e[r]=e[n];e.pop()}(r,s);n.removeListener&&this.emit("removeListener",e,i||t)}return this},H.prototype.off=function(e,t){return this.removeListener(e,t)},H.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,s=Object.keys(r),o=0;o<s.length;++o)"removeListener"!==(n=s[o])&&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},H.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):[]},H.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):J.call(e,t)},H.prototype.listenerCount=J,H.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};var W=Object.defineProperty,X=(e,t,r)=>((e,t,r)=>t in e?W(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);const K=class e{constructor(t={}){var r;X(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){return this.add(e,t,r,!0)}add(e,t,r,n){const s=this._find(e,r);if(s)return s.value;{let s;s=t instanceof Function?t():t;const o=r&&JSON.parse(JSON.stringify(w(r))),i={key:e,value:s,props:o,options:o};return n&&!v(s)?s:(this.cache.push(i),s instanceof Promise?(s.catch((t=>{throw this.delete(e,r),t})),n&&s.then((t=>(v(t)||this.delete(e,r),t))),s):s)}}match(e,t){const r=this._find(e,t);if(r)return r.value}matchAll(e,t){return e?this.cache.filter((r=>this._filter(r,e,t))).map((e=>e.value)):this.cache.map((e=>e.value))}delete(e,t){let r=[];"string"==typeof e?r=this.cache.filter((r=>this._filter(r,e,t))):r.push(e);for(const n of r){const e=this.cache.indexOf(n);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){if(r){return b(e.props||e.options||{},w(r))}return!0}return!1}};X(K,"instance",{});let V=K;var Y=Object.defineProperty,Z=(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 ee extends Error{constructor(e){super(),Z(this,"name","NgwError"),Z(this,"title"),Z(this,"message"),Z(this,"detail"),Z(this,"exception"),Z(this,"status_code"),Z(this,"data"),Z(this,"guru_meditation"),Object.assign(this,e),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);class ne extends ee{constructor(e){super(e),re(this,"name","ResourceNotFoundError"),re(this,"exception","nextgisweb.resource.exception.ResourceNotFound"),Object.setPrototypeOf(this,ne.prototype)}}function se(e){return"[object Object]"===Object.prototype.toString.call(e)}const oe=["description"];function ie(e,t=""){t=t?t+"__":"";const r={};for(const[n,s]of Object.entries(e))if(-1===oe.indexOf(n))if(se(s))if("owner_user"===n){const e=ie(s,n);Object.assign(r,e)}else"parent"===n&&"id"in s&&(r.parent_id=s.id);else y(s)&&(r[t+n]=s);return r}var ce=Object.defineProperty,ae=Object.defineProperties,le=Object.getOwnPropertyDescriptors,ue=Object.getOwnPropertySymbols,he=Object.prototype.hasOwnProperty,fe=Object.prototype.propertyIsEnumerable,pe=(e,t,r)=>t in e?ce(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,de=(e,t)=>{for(var r in t||(t={}))he.call(t,r)&&pe(e,r,t[r]);if(ue)for(var r of ue(t))fe.call(t,r)&&pe(e,r,t[r]);return e},me=(e,t,r)=>pe(e,"symbol"!=typeof t?t+"":t,r);class ye{constructor({connector:e,cacheId:t}){me(this,"cache"),me(this,"connector"),this.connector=e,this.cache=new V({namespace:t})}getOne(e,t){const r=this.cache,n={},s=(o=de({},t),ae(o,le({cache:!1})));var o;"string"==typeof e?n.keyname=e:"number"==typeof e?n.id=e:se(e)&&(void 0!==e.id?n.id=e.id:(e.keyname&&(n.keyname=e.keyname),e.display_name&&(n.display_name=e.display_name)));const i=()=>"string"==typeof e?this._fetchResourceBy({keyname:e},s):"number"==typeof e?this._fetchResourceById(e,s):se(e)?this._fetchResourceBy(e,s):m.resolve(void 0);return(null==t?void 0:t.cache)?r.addFull("resource",i,n):i()}getOneOrFail(e,t){return this.getOne(e,t).then((e=>{if(e)return e;throw new ne}))}getId(e,t){return"number"==typeof e?m.resolve(e):"string"==typeof e||se(e)?this.getOne(e,t).then((e=>{if(e)return e.resource.id})):m.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,ie(e)),this.connector.get("resource.search",t,de({serialization:"full"},r)).then((e=>{if(e)for(const t of e)this.cache.add("resource.item",m.resolve(t),{id:t.resource.id});return e}))}return r}))}getParent(e,t){return this.getOne(e,t).then((e=>e?this.getOne(e.resource.parent.id,t):m.resolve(void 0)))}getChildrenOf(e,t){return this.getIdOrFail(e).then((e=>this._getChildrenOf(e,t)))}update(e,t){return this.getId(e).then((e=>{if(void 0!==e)return this.connector.put("resource.item",{data:t},{id:e})}))}delete(e){return this.getId(e).then((e=>{if(void 0!==e)return this.connector.delete("resource.item",null,{id:e}).then((()=>{this._cleanResourceItemCache(e)}))}))}_getChildrenOf(e,t,r=[]){return this.connector.get("resource.collection",de({cache:!0},t),{parent:e}).then((e=>{const n=[];for(const s of e)this.cache.add("resource.item",m.resolve(s),{id:s.resource.id}),r.push(s),(null==t?void 0:t.recursive)&&s.resource.children&&n.push(this._getChildrenOf(s.resource.id,t,r));return n.length?m.all(n).then((()=>r)):r}))}_cleanResourceItemCache(e){return t=this,r=null,n=function*(){const t=this.cache.all(),r=[];for(const n of t){const t=n.options&&n.options.id;["resource.item","resource"].includes(n.key)&&void 0!==t&&("number"==typeof t?t===e&&r.push(n):(yield this.getId(t))===e&&r.push(n))}for(const e of r)this.cache.delete(e)},new Promise(((e,s)=>{var o=e=>{try{c(n.next(e))}catch(t){s(t)}},i=e=>{try{c(n.throw(e))}catch(t){s(t)}},c=t=>t.done?e(t.value):Promise.resolve(t.value).then(o,i);c((n=n.apply(t,r)).next())}));var t,r,n}_fetchResourceById(e,t){const r=()=>this.connector.get("resource.item",t,{id:e});return(null==t?void 0:t.cache)?this.cache.add("resource.item",r,{id:e}).catch((e=>{if(!(e instanceof ne))throw e})):r()}_fetchResourceBy(e,t){return this.getMany(e,t).then((e=>e[0]))}_resourceCacheFilter(e){return m.all(this.cache.matchAll("resource.item")).then((t=>(t.filter((t=>{if(t)return e.keyname&&t.resource.keyname?e.keyname===t.resource.keyname:y(e.id)&&y(t.resource.id)?e.id===t.resource.id:b(e,t.resource)})),[])))}}const ve=[];function ge(e){ve.push(e)}var be=Object.defineProperty,we=(e,t,r)=>((e,t,r)=>t in e?be(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class _e extends ee{constructor(e){super(e),we(this,"name","InsufficientPermissionsError"),we(this,"exception","nextgisweb.core.exception.InsufficientPermissions"),Object.setPrototypeOf(this,_e.prototype)}}const Oe=/\{ *([\w_-]+) *\}/g;function Pe(e,t){return e.replace(Oe,((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 je=Object.defineProperty,xe=(e,t,r)=>((e,t,r)=>t in e?je(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,t+"",r);class Ce extends Error{constructor(e){super(),xe(this,"name","NetworkError"),Object.setPrototypeOf(this,Ce.prototype),this.message=`Unable to request ${e}.\n Possibly invalid NGW URL entered or CORS not configured to get request from ${location.origin}`}}let Ee;Ee=(e,t,r={},n,s)=>{r.method=r.method||"GET";const o=new XMLHttpRequest;o.open(r.method||"GET",e,!0),"blob"===r.responseType&&(o.responseType=r.responseType);const i=()=>{try{return JSON.parse(o.responseText)}catch(e){return o.responseText}};o.onload=()=>{-1!==[401,403,404,422,500].indexOf(o.status)&&n(new ee(i())),((e=!1)=>{const s=e?n:t;"blob"===r.responseType?s(o.response):o.responseText?s(i()):n({message:""})})()},o.onerror=t=>{n(0===o.status?new Ce(e):t)},o.upload.onprogress=function(e){if(e.lengthComputable){r.onProgress&&r.onProgress(e.loaded/e.total*100,e)}};const c=r.headers;if(c)for(const l in c){const e=c[l];"string"==typeof e&&o.setRequestHeader(l,e)}let a;if(void 0!==r.withCredentials&&(o.withCredentials=r.withCredentials),r.file){if(a=new FormData,a.append("file",r.file),r.data)for(const l in r.data)a.append(l,a[l])}else a=r.data?"string"==typeof r.data?r.data:JSON.stringify(r.data):null;s&&s((()=>{o.abort()})),o.send(a)};var Ie=Object.defineProperty,Re=Object.getOwnPropertySymbols,Le=Object.prototype.hasOwnProperty,ke=Object.prototype.propertyIsEnumerable,Se=(e,t,r)=>t in e?Ie(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,qe=(e,t)=>{for(var r in t||(t={}))Le.call(t,r)&&Se(e,r,t[r]);if(Re)for(var r of Re(t))ke.call(t,r)&&Se(e,r,t[r]);return e},Te=(e,t,r)=>Se(e,"symbol"!=typeof t?t+"":t,r);let Ae=0;class Ue{constructor(e){this.options=e,Te(this,"id",Ae++),Te(this,"emitter",new H),Te(this,"user"),Te(this,"resources"),Te(this,"cache"),Te(this,"withCredentials"),Te(this,"routeStr","/api/component/pyramid/route"),Te(this,"activeRequests",[]),Te(this,"requestTransform");const t=function(e){return ve.find((t=>{if(t.options.baseUrl===e.baseUrl){if(!e.auth)return!0;if(t.options.auth)return b(t.options.auth,e.auth)}}))}(e);if(this.cache=new V({namespace:e.cacheId}),t)return t;{const{route:t,requestTransform:r,withCredentials:n}=this.options;t&&(this.routeStr=t),r&&(this.requestTransform=r),void 0!==n&&(this.withCredentials=n),this.resources=new ye({connector:this,cacheId:e.cacheId}),ge(this)}}static create(e){return new this(e)}clearCache(){this.cache.clean(),this.resources.cache.clean()}setRequestTransform(e){this.requestTransform=e}setNgw(e){this.logout(),this.options.baseUrl=e,ge(this)}connect(){const e=this.options.auth;return this.cache.add("route",(()=>new m(((t,r)=>{const n=()=>this.makeQuery(this.routeStr,{},{}).then((e=>{t(e)})).catch((e=>{r(e)}));if(e){const{login:t,password:s}=e;if(t&&s)return this._login({login:t,password:s}).then((()=>n())).catch((e=>r(e)))}return n()}))),{id:this.id,auth:e,baseUrl:this.options.baseUrl})}login(e,t){return this.logout(),ge(this),this._login(e,t)}logout(){this.abort(),function(e){const t=ve.indexOf(e);-1!==t&&ve.splice(t,1)}(this),this.options.auth=void 0,this.user=void 0,this.clearCache(),this.emitter.emit("logout")}getUserInfo(e,t){if(this.user&&this.user.id)return m.resolve(this.user);e&&(this.options.auth=e);const r=qe({headers:this.getAuthorizationHeaders(e)},t);return this.makeQuery("/api/component/auth/current_user",{},r)}getAuthorizationHeaders(e){const t=this.makeClientId(e);if(t)return{Authorization:"Basic "+t}}makeClientId(e){if(e=e||this.options.auth){const{login:t,password:r}=e,n=unescape(encodeURIComponent(`${t}:${r}`));return window.btoa(n)}}abort(){for(const e of this.activeRequests)e.cancel();this.activeRequests=[]}getActiveApiRequests(){return[...this.activeRequests]}apiRequest(e,t={},r={}){var n,s;r=qe({withCredentials:this.withCredentials},r);const{method:o,headers:i,withCredentials:c,responseType:a}=r,l=w(t=null!=(n=r.params)?n:t),u=()=>function(e){const t=e.params;return new m(((r,n)=>e.connector.connect().then((s=>{let o=s&&s[e.name];if(o){o=[...o];let s=o.shift();if(o.length){const e={};for(let r=0;r<o.length;r++){const n=o[r];if(e[r]="{"+n+"}",void 0===t[n])throw new Error("`"+n+"` url api argument is not specified")}s&&(s=Pe(s,e))}if(t){const e=[],r=t.paramList;Array.isArray(r)&&(delete t.paramList,r.forEach((t=>{e.push(`${t[0]}=${t[1]}`)})));for(const n in t)-1===o.indexOf(n)&&e.push(`${n}=${t[n]}`);e.length&&(s=s+"?"+e.join("&"))}s?r(e.connector.makeQuery(s,t,e.requestOptions)):n(new Error("request url is not set"))}else r(void 0)})).catch((e=>{n(e)}))))}({name:e,params:l,requestOptions:r,connector:this});return r.cache&&"GET"===o?this.cache.add(e,u,qe({params:l},w({headers:i,withCredentials:c,responseType:a,baseUrl:this.options.baseUrl,userId:null==(s=this.user)?void 0:s.id}))):u()}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)}makeQuery(e,t,r={}){if(e=(this.options.baseUrl?this.options.baseUrl:"")+e)return t&&(e=Pe(e,t)),e=encodeURI(_(e)),this._loadData(e,r);throw new Error("Empty `url` not allowed")}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)}_loadData(e,t){if(t.responseType=t.responseType||"json",t.signal&&t.signal.aborted)return m.reject(new m.CancelError);const r=new m(((r,n,s)=>{if(this.user&&((t=t||{}).headers=qe(qe({},this.getAuthorizationHeaders()),t.headers)),this.requestTransform){const[r,n]=this.requestTransform(e,t);e=r,t=n}Ee(e,r,t,n,s)})).then((e=>(this._cleanActiveRequests(r),e))).catch((e=>{if(this._cleanActiveRequests(r),e instanceof m.CancelError);else{const t=this._handleHttpError(e);if(t)throw t}}));return t.signal&&"function"==typeof t.signal.addEventListener&&t.signal.addEventListener("abort",(()=>{r.cancel(),this._cleanActiveRequests(r)})),this.activeRequests.push(r),r}_login(e,t){return this.getUserInfo(e,t).then((e=>(this.user=e,this.emitter.emit("login",e),e))).catch((e=>{throw this.emitter.emit("login:error",e),e}))}_cleanActiveRequests(e){const t=this.activeRequests.indexOf(e);-1!==t&&this.activeRequests.splice(t,1)}_handleHttpError(e){if(e&&e instanceof ee){if("nextgisweb.resource.exception.ResourceNotFound"===e.exception)throw new ne(e);if("nextgisweb.core.exception.InsufficientPermissions"===e.exception)throw new _e(e)}return e}}function Ne(e,t,r){if((t=String(t))===(e=String(e)))return!0;if(r&&t.toUpperCase()===e.toUpperCase())return!0;const n=`^${s=t,s.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")}$`.replace(/%/g,".*").replace("_",".");var s;return null!==new RegExp(n,r?"i":"").exec(e)}Te(Ue,"errors",{NgwError:ee,ResourceNotFoundError:ne});const Fe={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)=>Ne(e,t),ilike:(e,t)=>Ne(e,t,!0)};function $e(e){return 3===e.length&&"string"==typeof e[0]&&"string"==typeof e[1]}function Me(e,t){const r="string"==typeof t[0]?t[0]:"all",n=t=>{if($e(t)){const[r,n,s]=t,o=Fe[n];if(o){if(("like"===n||"ilike"===n)&&"string"==typeof r){let t="";const n=r.replace(/^%?(\w+)%?$/,((n,o)=>(t=e[o],r.replace(o,s))));return o(t,n)}return o(e[r],s)}return!1}return Me(e,t)},s=t.filter((e=>Array.isArray(e)));return"any"===r?s.some(n):s.every(n)}var De=Object.defineProperty,He=Object.defineProperties,Be=Object.getOwnPropertyDescriptors,Ge=Object.getOwnPropertySymbols,ze=Object.prototype.hasOwnProperty,Je=Object.prototype.propertyIsEnumerable,Qe=(e,t,r)=>t in e?De(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,We=(e,t)=>{for(var r in t||(t={}))ze.call(t,r)&&Qe(e,r,t[r]);if(Ge)for(var r of Ge(t))Je.call(t,r)&&Qe(e,r,t[r]);return e},Xe=(e,t)=>He(e,Be(t));const Ke={srs:4326,geom_format:"geojson"};function Ve(e){const t=Ze(e);return m.all(t).then((t=>{const r=[],n=[];for(const e of t)for(const t of e)r.includes(t.id)||(n.push(t),r.push(t.id));return e.offset||e.limit?n.splice(void 0!==e.offset?e.offset:0,void 0!==e.limit?e.limit:n.length):n}))}function Ye(e){const[t,r,n]=e;let s="",o="";return[`${"id"!==t?"fld_":""}${String(t).trim().replace(/^(%?)(.+?)(%?)$/,((e,t,r,n)=>(s=t,o=n,r)))}__${r}`,s+n+o]}function Ze(e,t=[],r=[]){var n;const{filters:s}=e,o=null!=(n=e.paramList)?n:[],i="string"==typeof s[0]?s[0]:"all",c=s.filter((e=>Array.isArray(e)));if("any"===i)for(const a of c)$e(a)?t.push(tt(Xe(We({},e),{paramList:[...r,...o,Ye(a)]}))):Ze(Xe(We({},e),{filters:a}),t,[...r]);else if("all"===i){const n=[],s=[];for(const e of c)$e(e)?n.push(Ye(e)):s.push(e);if(s.length)for(const o of s)Ze(Xe(We({},e),{filters:o}),t,[...r,...n]);else t.push(tt(Xe(We({},e),{paramList:[...r,...o,...n]})))}return t}function et(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 t=We({},Ke),{limit:r,cache:n,signal:s,offset:o,orderBy:i,paramList:c,connector:a,geomFormat:l,intersects:u,resourceId:h}=e;if(r?r!==Number.POSITIVE_INFINITY&&(t.limit=r):t.limit=7e3,o&&(t.offset=o),l&&(t.geom_format=l),function(e,t){const{extensions:r,geom:n,fields:s,srs:o,ilike:i,like:c}=t,a=r?r.join(","):"";"*"!==a&&(e.extensions=a),void 0!==s&&(e.fields=Array.isArray(s)?s.join(","):""),void 0!==n&&(e.geom=n?"yes":"no",n||(delete e.srs,delete e.geom_format)),y(i)?e.ilike=i:y(c)&&(e.like=c),y(o)&&(e.srs=o)}(t,e),i&&(t.order_by=i.join(",")),Array.isArray(u)){const e=(f=u,Array.isArray(f)&&4===f.length&&f.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]}(u):u);t.intersects=et(e)}else"string"==typeof u&&(t.intersects=u);var f;c&&(t.paramList=c);const p=We({id:h},t);return a.get("feature_layer.feature.collection",{cache:n,signal:s},p)}var rt=Object.defineProperty,nt=Object.defineProperties,st=Object.getOwnPropertyDescriptors,ot=Object.getOwnPropertySymbols,it=Object.prototype.hasOwnProperty,ct=Object.prototype.propertyIsEnumerable,at=(e,t,r)=>t in e?rt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,lt=(e,t)=>{for(var r in t||(t={}))it.call(t,r)&&at(e,r,t[r]);if(ot)for(var r of ot(t))ct.call(t,r)&&at(e,r,t[r]);return e},ut=(e,t)=>nt(e,st(t));function ht(e){const t=e.filters;return t?Ve(ut(lt({},e),{filters:t})).then((r=>{var n;return(null!=(n=e.clientFilterValidate)?n:ft(t))&&(r=r.filter((e=>Me(function(e){let t;for(t in e){const r=e[t];if("[object Object]"===Object.prototype.toString.call(r)){const n=r;if(y(n.year)&&y(n.month)&&y(n.day)){const r=[n.year,n.month-1,n.day];"hour"in n&&[n.hour,n.minute,n.second].forEach((e=>{r.push(e)})),e[t]=new Date(...r).toISOString()}}else"id"===t&&"string"==typeof r&&(e[t]=r.split(",").map(Number))}return e}(ut(lt({},e.fields),{id:e.id})),t)))),r})):tt(e)}function ft(e){if("any"===e[0])return!0;for(let t=1;t<e.length;t++){const r=e[t];if("[object Array]"===Object.prototype.toString.call(r)){if(ft(r))return!0}}return!1}var pt=Object.defineProperty,dt=Object.getOwnPropertySymbols,mt=Object.prototype.hasOwnProperty,yt=Object.prototype.propertyIsEnumerable,vt=(e,t,r)=>t in e?pt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,gt=(e,t,r)=>vt(e,"symbol"!=typeof t?t+"":t,r),bt=function(e,t){this[0]=e,this[1]=t},wt=(e,t,r)=>{var n,s,o=(e,t,n,s)=>{try{var i=r[e](t),c=(t=i.value)instanceof bt,a=i.done;Promise.resolve(c?t[0]:t).then((r=>c?o("return"===e?e:"next",t[1]?{done:r.done,value:r.value}:r,n,s):n({value:r,done:a}))).catch((e=>o("throw",e,n,s)))}catch(l){s(l)}},i=e=>c[e]=t=>new Promise(((r,n)=>o(e,t,r,n))),c={};return r=r.apply(e,t),c[(n="asyncIterator",(s=Symbol[n])?s:Symbol.for("Symbol."+n))]=()=>c,i("next"),i("throw"),i("return"),c};const _t=class e extends M{constructor(e){var t;if(super(e),gt(this,"searchResources",[]),gt(this,"connector"),gt(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 Ue(((e,t)=>{for(var r in t||(t={}))mt.call(t,r)&&vt(e,r,t[r]);if(dt)for(var r of dt(t))yt.call(t,r)&&vt(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 wt(this,null,(function*(){var r,n;const s=this._makeSignal();for(const i of this.searchResources){if(s.aborted)break;const{searchMethod:c}=i,a=null!=(r=i.limit)?r:e.limit,l=null!=(n=i.id)?n:i.resourceId;try{const e=yield new bt(this.connector.getResourceOrFail(l,{cache:!0})),r={connector:this.connector,resourceId:l,signal:s,limit:a};"like"===c?r.like=t:r.ilike=t;const n=ht(r),o=yield new bt(n);for(const s of this._items({entries:o,query:t,config:i,resourceItem:e}))s.result=()=>this.result(s),yield s}catch(o){o&&"name"in o&&"CancelError"!==o.name&&console.warn(o)}}}))}result(e){const t=this._makeSignal();return this.connector.get("feature_layer.feature.item_extent",{signal:t},{id:e.resourceId,fid:e.featureId}).then((t=>{const r=t.extent;return{text:e.text,extent:[r.minLon,r.minLat,r.maxLon,r.maxLat]}}))}reverse(e){return wt(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 s;const o=[];let i;n.feature_layer&&(i=null==(s=n.feature_layer.fields.find((e=>e.label_field)))?void 0:s.keyname);return this.searchResources.find((e=>{var t;return null!=(t=e.id)?t:e.resourceId===n.resource.id}))&&e.forEach((e=>{let s=i?e.fields[i]:e.id;r.renderSearch?s=r.renderSearch({item:e,resourceItem:n}):i&&(s=e.fields[i]),o.push({query:t,text:s,featureId:e.id,resourceId:n.resource.id,item:e,resourceItem:n})})),o}};gt(_t,"limit",300);let Ot=_t;var Pt=Object.defineProperty,jt=(e,t,r)=>((e,t,r)=>t in e?Pt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r),xt=function(e,t){this[0]=e,this[1]=t},Ct=(e,t,r)=>{var n,s,o=(e,t,n,s)=>{try{var i=r[e](t),c=(t=i.value)instanceof xt,a=i.done;Promise.resolve(c?t[0]:t).then((r=>c?o("return"===e?e:"next",t[1]?{done:r.done,value:r.value}:r,n,s):n({value:r,done:a}))).catch((e=>o("throw",e,n,s)))}catch(l){s(l)}},i=e=>c[e]=t=>new Promise(((r,n)=>o(e,t,r,n))),c={};return r=r.apply(e,t),c[(n="asyncIterator",(s=Symbol[n])?s:Symbol.for("Symbol."+n))]=()=>c,i("next"),i("throw"),i("return"),c};class Et extends M{constructor(e){super(e),jt(this,"searchUrl","https://nominatim.openstreetmap.org"),jt(this,"_requests",[]),e&&e.searchUrl&&(this.searchUrl=e.searchUrl)}abort(){this._requests.forEach((e=>e.cancel())),this._requests=[]}search(e){return Ct(this,null,(function*(){const t=_(`${this.searchUrl}/search?format=geojson&polygon_geojson=1&q=${e}`),r=new m(((r,n,s)=>{const o=new XMLHttpRequest;o.open("GET",t,!0),o.onload=()=>{try{const t=JSON.parse(o.responseText).features.map((t=>({geom:t,extent:t.bbox,text:t.properties&&t.properties.display_name,query:e})));r(t)}catch(t){n(t)}},o.onerror=e=>{n(e)},s((()=>{o.abort()})),o.send()})).catch((e=>{throw e}));this._requests.push(r);const n=yield new xt(r);if(n)for(const e of n)e.result=()=>this.result(e),yield e}))}result(e){return m.resolve({text:e.text,extent:e.extent||[],geom:e.geom})}reverse(e){return Ct(this,null,(function*(){const[t,r]=e,n=_(`${this.searchUrl}/reverse?format=geojson&lat=${r}&lon=${t}`),s=new m(((e,s,o)=>{const i=new XMLHttpRequest;i.open("GET",n,!0),i.onload=()=>{try{const n=JSON.parse(i.responseText).features[0];e({geom:n,extent:n.bbox,text:n.properties&&n.properties.display_name,query:`${r}, ${t}`})}catch(n){s(n)}},i.onerror=e=>{s(e)},o((()=>{i.abort()})),i.send()})).catch((e=>{throw e}));this._requests.push(s);const o=yield new xt(s);o&&(o.result=()=>this.result(o),yield o)}))}}function It(e){return new N(e)}export{M as BaseProvider,N as Geocoder,Ot as NgwProvider,Et as NominatimProvider,It as create};
1
+ var e=Object.defineProperty,t=(t,r,n)=>((t,r,n)=>r in t?e(t,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[r]=n)(t,r+"",n);class r extends Error{constructor(){super(),t(this,"name","CancelError"),Object.setPrototypeOf(this,r.prototype)}}var n=Object.defineProperty,s=(e,t,r)=>((e,t,r)=>t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,t+"",r);class o{constructor(e={}){this.options=e,s(this,"_promises",new Map)}get isLoaded(){return this._promises.size>0}remove(e){this._promises.has(e)&&(this._promises.delete(e),this._onStop())}get(e){return this._promises.get(e)}add(e,t){const r=t||e,n=this._promises.get(r);return this.options.onStart&&!this.isLoaded&&this.options.onStart(),n||(this._promises.set(r,e),e.finally((()=>{this.remove(r)})),e)}abort(){this.isLoaded&&(this._promises.forEach((e=>{e.cancel&&e.cancel()})),this._promises.clear(),this._onStop())}waitFunc(e,t=""){const r=this.get(t=t||e.name);return r||this.add(e(),t)}WaitForMe(e=""){const t=this.get.bind(this),r=this.add.bind(this);return function(n,s,o){const i=o.value;return e=e||s,o.value=function(...n){const s=t(e);if(s)return s;return r(i.apply(this,n),e)},o}}GetOrCreateDecorator(e=""){return this.WaitForMe(e)}_onStop(){this.options.onStop&&!this.isLoaded&&this.options.onStop()}}var i=Object.defineProperty,c=(e,t,r)=>((e,t,r)=>t in e?i(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,t+"",r);class a extends Error{constructor(){super(),c(this,"name","TimeoutError"),Object.setPrototypeOf(this,a.prototype)}}var l,u=Object.defineProperty,h=(e,t,r)=>((e,t,r)=>t in e?u(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);const f=(e,t,r,n)=>{try{e(r(n))}catch(s){t(s)}};let p=0;l=Symbol.toStringTag;const d=class e{constructor(t,n){h(this,l),h(this,"id",p++),h(this,"_isCanceled",!1),h(this,"_isPending",!0),h(this,"_promise"),h(this,"_cancelPromise"),h(this,"_cancelHandlers",[]),h(this,"_setCanceledCallback"),h(this,"_parentPromise"),h(this,"_children",[]),this._cancelPromise=new Promise(((e,t)=>{this._setCanceledCallback=t=>e(t||new r)}));const s=[this._cancelPromise,new Promise(((r,n)=>t((t=>{t instanceof e?this.attach(t):this._isPending=!1,r(t)}),(e=>{this._isPending=!1,n(e)}),(e=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(e)}))))];n&&s.push(new Promise(((e,t)=>{setTimeout((()=>{if(this._isPending)try{this.cancel()}finally{t(new a)}}),n)}))),this._promise=Promise.race(s)}static createControl(e){return new o(e)}static resolve(t){return new e((e=>e(t)))}static reject(t){return new e(((e,r)=>r(t)))}static all(t){return new e(((e,r)=>{Promise.all(t).then(e).catch(r)})).catch((e=>{if(e instanceof this.CancelError)for(const r of t){"cancel"in r&&r.cancel()}throw e}))}attach(e){this._isCanceled?e.cancel():this._children.push(e)}then(t,r){const n=new e(((e,n)=>{if(this._promise){const s=t=>{r?f(e,n,r,t):n(t)};this._promise.then((r=>{this._isCanceled?s(r):t?f(e,n,t,r):e(r)}),s)}}));return n._parentPromise=this,this._children.push(n),n}catch(e){return this._isCanceled&&e&&e(new r),this.then(void 0,e)}finally(e){return this._promise?this._promise.finally(e):Promise.reject(this._isCanceled?new r:e)}cancel(){if(this._isCanceled||!this._isPending)return this;this._isCanceled=!0;const e=this._getTopParent();if(e&&e.cancel(),this._children&&this._children.forEach((e=>e.cancel())),this._isPending){if(this._cancelHandlers.length)try{for(const e of this._cancelHandlers)e()}catch(t){}this._setCanceledCallback&&this._setCanceledCallback()}return this._destroy(),this}_getTopParent(){let e=this._parentPromise,t=!!e;for(;t;)e&&e._parentPromise?(e=e._parentPromise,t=!!e):t=!1;return e}_destroy(){this._setCanceledCallback=void 0,this._cancelPromise=void 0,this._promise=void 0}};h(d,"CancelError",r),h(d,"TimeoutError",a),h(d,"PromiseControl",o);let m=d;function y(e){return null!=e}function v(e){return"string"==typeof e?!!e:y(e)}function g(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:b(e,t));return e===t}function b(e,t){const r=Object.keys(e).sort(),n=Object.keys(t).sort();if(r.length!==n.length)return!1;if(r.join("")!==n.join(""))return!1;for(let s=0;s<r.length;s++){if(!g(e[r[s]],t[n[s]],e,t))return!1}return!0}function w(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]=w(e[r])})),t}function _(e){return e.replace(/([^:]\/)\/+/g,"$1")}Object.setPrototypeOf(m.prototype,Promise.prototype);class O{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 P=Object.defineProperty,j=Object.defineProperties,x=Object.getOwnPropertyDescriptors,C=Object.getOwnPropertySymbols,E=Object.prototype.hasOwnProperty,I=Object.prototype.propertyIsEnumerable,R=(e,t)=>(t=Symbol[e])?t:Symbol.for("Symbol."+e),L=(e,t,r)=>t in e?P(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,k=(e,t)=>{for(var r in t||(t={}))E.call(t,r)&&L(e,r,t[r]);if(C)for(var r of C(t))I.call(t,r)&&L(e,r,t[r]);return e},S=(e,t)=>j(e,x(t)),q=function(e,t){this[0]=e,this[1]=t},T=(e,t,r)=>{var n=(e,t,s,o)=>{try{var i=r[e](t),c=(t=i.value)instanceof q,a=i.done;Promise.resolve(c?t[0]:t).then((r=>c?n("return"===e?e:"next",t[1]?{done:r.done,value:r.value}:r,s,o):s({value:r,done:a}))).catch((e=>n("throw",e,s,o)))}catch(l){o(l)}},s=e=>o[e]=t=>new Promise(((r,s)=>n(e,t,r,s))),o={};return r=r.apply(e,t),o[R("asyncIterator")]=()=>o,s("next"),s("throw"),s("return"),o},A=(e,t,r)=>(t=e[R("asyncIterator")])?t.call(e):(e=e[R("iterator")](),t={},(r=(r,n)=>(n=e[r])&&(t[r]=t=>new Promise(((r,s,o)=>(t=n.call(e,t),o=t.done,Promise.resolve(t.value).then((e=>r({value:e,done:o})),s))))))("next"),r("return"),t);let U=0;class N extends O{constructor(e){super(e),L(this,"providers"+"",[]),e&&e.providers&&(this.providers=e.providers)}abort(){this.providers.forEach((e=>{e.abort&&e.abort()}))}search(e){return T(this,null,(function*(){this.abort();let t=!0;const r=[];for(const a of this.providers)try{const r=a.search(e);try{for(var n,s,o,i=A(r);n=!(s=yield new q(i.next())).done;n=!1){const e=s.value;t=!1,yield S(k({},e),{provider:a,_id:U++})}}catch(s){o=[s]}finally{try{n&&(s=i.return)&&(yield new q(s.call(i)))}finally{if(o)throw o[0]}}}catch(c){"CancelError"!==c.name&&r.push(c)}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):m.resolve(void 0)}reverse(e){return T(this,null,(function*(){for(const i of this.providers)if(i.reverse)try{const o=i.reverse(e);try{for(var t,r,n,s=A(o);t=!(r=yield new q(s.next())).done;t=!1){const e=r.value;yield S(k({},e),{provider:i,_id:U++})}}catch(r){n=[r]}finally{try{t&&(r=s.return)&&(yield new q(r.call(s)))}finally{if(n)throw n[0]}}}catch(o){}}))}reverseGeocodeFirstResult(e){return t=this,r=null,n=function*(){for(const i of this.providers)if("function"==typeof i.reverse)try{try{for(var t,r,n,s=A(i.reverse(e));t=!(r=yield s.next()).done;t=!1)return r.value}catch(r){n=[r]}finally{try{t&&(r=s.return)&&(yield r.call(s))}finally{if(n)throw n[0]}}}catch(o){console.error("Error in reverse geocoding:",o)}},new Promise(((e,s)=>{var o=e=>{try{c(n.next(e))}catch(t){s(t)}},i=e=>{try{c(n.throw(e))}catch(t){s(t)}},c=t=>t.done?e(t.value):Promise.resolve(t.value).then(o,i);c((n=n.apply(t,r)).next())}));var t,r,n}}var $=Object.defineProperty,F=(e,t,r)=>((e,t,r)=>t in e?$(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class M extends O{constructor(){super(...arguments),F(this,"searchUrl"),F(this,"label")}}function D(){}function H(){H.init.call(this)}function G(e){return void 0===e._maxListeners?H.defaultMaxListeners:e._maxListeners}function B(e,t,r,n){var s,o,i,c;if("function"!=typeof r)throw new TypeError('"listener" argument must be a function');if((o=e._events)?(o.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),o=e._events),i=o[t]):(o=e._events=new D,e._eventsCount=0),i){if("function"==typeof i?i=o[t]=n?[r,i]:[i,r]:n?i.unshift(r):i.push(r),!i.warned&&(s=G(e))&&s>0&&i.length>s){i.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+i.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=e,a.type=t,a.count=i.length,c=a,"function"==typeof console.warn?console.warn(c):console.log(c)}}else i=o[t]=r,++e._eventsCount;return e}function z(e,t,r){var n=!1;function s(){e.removeListener(t,s),n||(n=!0,r.apply(e,arguments))}return s.listener=r,s}function J(e){var t=this._events;if(t){var r=t[e];if("function"==typeof r)return 1;if(r)return r.length}return 0}function W(e,t){for(var r=new Array(t);t--;)r[t]=e[t];return r}D.prototype=Object.create(null),H.EventEmitter=H,H.usingDomains=!1,H.prototype.domain=void 0,H.prototype._events=void 0,H.prototype._maxListeners=void 0,H.defaultMaxListeners=10,H.init=function(){this.domain=null,H.usingDomains&&undefined.active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new D,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},H.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},H.prototype.getMaxListeners=function(){return G(this)},H.prototype.emit=function(e){var t,r,n,s,o,i,c,a="error"===e;if(i=this._events)a=a&&null==i.error;else if(!a)return!1;if(c=this.domain,a){if(t=arguments[1],!c){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=c,t.domainThrown=!1,c.emit("error",t),!1}if(!(r=i[e]))return!1;var u="function"==typeof r;switch(n=arguments.length){case 1:!function(e,t,r){if(t)e.call(r);else for(var n=e.length,s=W(e,n),o=0;o<n;++o)s[o].call(r)}(r,u,this);break;case 2:!function(e,t,r,n){if(t)e.call(r,n);else for(var s=e.length,o=W(e,s),i=0;i<s;++i)o[i].call(r,n)}(r,u,this,arguments[1]);break;case 3:!function(e,t,r,n,s){if(t)e.call(r,n,s);else for(var o=e.length,i=W(e,o),c=0;c<o;++c)i[c].call(r,n,s)}(r,u,this,arguments[1],arguments[2]);break;case 4:!function(e,t,r,n,s,o){if(t)e.call(r,n,s,o);else for(var i=e.length,c=W(e,i),a=0;a<i;++a)c[a].call(r,n,s,o)}(r,u,this,arguments[1],arguments[2],arguments[3]);break;default:for(s=new Array(n-1),o=1;o<n;o++)s[o-1]=arguments[o];!function(e,t,r,n){if(t)e.apply(r,n);else for(var s=e.length,o=W(e,s),i=0;i<s;++i)o[i].apply(r,n)}(r,u,this,s)}return!0},H.prototype.on=H.prototype.addListener=function(e,t){return B(this,e,t,!1)},H.prototype.prependListener=function(e,t){return B(this,e,t,!0)},H.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.on(e,z(this,e,t)),this},H.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.prependListener(e,z(this,e,t)),this},H.prototype.removeListener=function(e,t){var r,n,s,o,i;if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');if(!(n=this._events))return this;if(!(r=n[e]))return this;if(r===t||r.listener&&r.listener===t)0==--this._eventsCount?this._events=new D:(delete n[e],n.removeListener&&this.emit("removeListener",e,r.listener||t));else if("function"!=typeof r){for(s=-1,o=r.length;o-- >0;)if(r[o]===t||r[o].listener&&r[o].listener===t){i=r[o].listener,s=o;break}if(s<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,s=e.length;n<s;r+=1,n+=1)e[r]=e[n];e.pop()}(r,s);n.removeListener&&this.emit("removeListener",e,i||t)}return this},H.prototype.off=function(e,t){return this.removeListener(e,t)},H.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,s=Object.keys(r),o=0;o<s.length;++o)"removeListener"!==(n=s[o])&&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},H.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):[]},H.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):J.call(e,t)},H.prototype.listenerCount=J,H.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};var Q=Object.defineProperty,X=(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 K=class e{constructor(t={}){var r;X(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){return this.add(e,t,r,!0)}add(e,t,r,n){const s=this._find(e,r);if(s)return s.value;{let s;s=t instanceof Function?t():t;const o=r&&JSON.parse(JSON.stringify(w(r))),i={key:e,value:s,props:o,options:o};return n&&!v(s)?s:(this.cache.push(i),s instanceof Promise?(s.catch((t=>{throw this.delete(e,r),t})),n&&s.then((t=>(v(t)||this.delete(e,r),t))),s):s)}}match(e,t){const r=this._find(e,t);if(r)return r.value}matchAll(e,t){return e?this.cache.filter((r=>this._filter(r,e,t))).map((e=>e.value)):this.cache.map((e=>e.value))}delete(e,t){let r=[];"string"==typeof e?r=this.cache.filter((r=>this._filter(r,e,t))):r.push(e);for(const n of r){const e=this.cache.indexOf(n);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){if(r){return b(e.props||e.options||{},w(r))}return!0}return!1}};X(K,"instance",{});let V=K;var Y="2.5.2",Z=Object.defineProperty,ee=(e,t,r)=>((e,t,r)=>t in e?Z(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class te extends Error{constructor(e){super(),ee(this,"name","NgwError"),ee(this,"title"),ee(this,"message"),ee(this,"detail"),ee(this,"exception"),ee(this,"status_code"),ee(this,"data"),ee(this,"guru_meditation"),Object.assign(this,e),Object.setPrototypeOf(this,te.prototype)}}var re=Object.defineProperty,ne=(e,t,r)=>((e,t,r)=>t in e?re(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class se extends te{constructor(e){super(e),ne(this,"name","ResourceNotFoundError"),ne(this,"exception","nextgisweb.resource.exception.ResourceNotFound"),Object.setPrototypeOf(this,se.prototype)}}function oe(e){return"[object Object]"===Object.prototype.toString.call(e)}const ie=["description"];function ce(e,t=""){t=t?t+"__":"";const r={};for(const[n,s]of Object.entries(e))if(-1===ie.indexOf(n))if(oe(s))if("owner_user"===n){const e=ce(s,n);Object.assign(r,e)}else"parent"===n&&"id"in s&&(r.parent_id=s.id);else y(s)&&(r[t+n]=s);return r}var ae=Object.defineProperty,le=Object.defineProperties,ue=Object.getOwnPropertyDescriptors,he=Object.getOwnPropertySymbols,fe=Object.prototype.hasOwnProperty,pe=Object.prototype.propertyIsEnumerable,de=(e,t,r)=>t in e?ae(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,me=(e,t)=>{for(var r in t||(t={}))fe.call(t,r)&&de(e,r,t[r]);if(he)for(var r of he(t))pe.call(t,r)&&de(e,r,t[r]);return e},ye=(e,t,r)=>de(e,"symbol"!=typeof t?t+"":t,r);class ve{constructor({connector:e,cacheId:t}){ye(this,"cache"),ye(this,"connector"),this.connector=e,this.cache=new V({namespace:t})}getOne(e,t){const r=this.cache,n={},s=(o=me({},t),le(o,ue({cache:!1})));var o;"string"==typeof e?n.keyname=e:"number"==typeof e?n.id=e:oe(e)&&(void 0!==e.id?n.id=e.id:(e.keyname&&(n.keyname=e.keyname),e.display_name&&(n.display_name=e.display_name)));const i=()=>"string"==typeof e?this._fetchResourceBy({keyname:e},s):"number"==typeof e?this._fetchResourceById(e,s):oe(e)?this._fetchResourceBy(e,s):m.resolve(void 0);return(null==t?void 0:t.cache)?r.addFull("resource",i,n):i()}getOneOrFail(e,t){return this.getOne(e,t).then((e=>{if(e)return e;throw new se}))}getId(e,t){return"number"==typeof e?m.resolve(e):"string"==typeof e||oe(e)?this.getOne(e,t).then((e=>{if(e)return e.resource.id})):m.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,ce(e)),this.connector.get("resource.search",t,me({serialization:"full"},r)).then((e=>{if(e)for(const t of e)this.cache.add("resource.item",m.resolve(t),{id:t.resource.id});return e}))}return r}))}getParent(e,t){return this.getOne(e,t).then((e=>e?this.getOne(e.resource.parent.id,t):m.resolve(void 0)))}getChildrenOf(e,t){return this.getIdOrFail(e).then((e=>this._getChildrenOf(e,t)))}update(e,t){return this.getId(e).then((e=>{if(void 0!==e)return this.connector.put("resource.item",{data:t},{id:e})}))}delete(e){return this.getId(e).then((e=>{if(void 0!==e)return this.connector.delete("resource.item",null,{id:e}).then((()=>{this._cleanResourceItemCache(e)}))}))}_getChildrenOf(e,t,r=[]){return this.connector.get("resource.collection",me({cache:!0},t),{parent:e}).then((e=>{const n=[];for(const s of e)this.cache.add("resource.item",m.resolve(s),{id:s.resource.id}),r.push(s),(null==t?void 0:t.recursive)&&s.resource.children&&n.push(this._getChildrenOf(s.resource.id,t,r));return n.length?m.all(n).then((()=>r)):r}))}_cleanResourceItemCache(e){return t=this,r=null,n=function*(){const t=this.cache.all(),r=[];for(const n of t){const t=n.options&&n.options.id;["resource.item","resource"].includes(n.key)&&void 0!==t&&("number"==typeof t?t===e&&r.push(n):(yield this.getId(t))===e&&r.push(n))}for(const e of r)this.cache.delete(e)},new Promise(((e,s)=>{var o=e=>{try{c(n.next(e))}catch(t){s(t)}},i=e=>{try{c(n.throw(e))}catch(t){s(t)}},c=t=>t.done?e(t.value):Promise.resolve(t.value).then(o,i);c((n=n.apply(t,r)).next())}));var t,r,n}_fetchResourceById(e,t){const r=()=>this.connector.get("resource.item",t,{id:e});return(null==t?void 0:t.cache)?this.cache.add("resource.item",r,{id:e}).catch((e=>{if(!(e instanceof se))throw e})):r()}_fetchResourceBy(e,t){return this.getMany(e,t).then((e=>e[0]))}_resourceCacheFilter(e){return m.all(this.cache.matchAll("resource.item")).then((t=>(t.filter((t=>{if(t)return e.keyname&&t.resource.keyname?e.keyname===t.resource.keyname:y(e.id)&&y(t.resource.id)?e.id===t.resource.id:b(e,t.resource)})),[])))}}const ge=[];function be(e){ge.push(e)}var we=Object.defineProperty,_e=(e,t,r)=>((e,t,r)=>t in e?we(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class Oe extends te{constructor(e){super(e),_e(this,"name","InsufficientPermissionsError"),_e(this,"exception","nextgisweb.core.exception.InsufficientPermissions"),Object.setPrototypeOf(this,Oe.prototype)}}const Pe=/\{ *([\w_-]+) *\}/g;function je(e,t){return e.replace(Pe,((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 xe=Object.defineProperty,Ce=(e,t,r)=>((e,t,r)=>t in e?xe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,t+"",r);class Ee extends Error{constructor(e){super(),Ce(this,"name","NetworkError"),Object.setPrototypeOf(this,Ee.prototype),this.message=`Unable to request ${e}.\n Possibly invalid NGW URL entered or CORS not configured to get request from ${location.origin}`}}let Ie;Ie=(e,t,r={},n,s)=>{r.method=r.method||"GET";const o=new XMLHttpRequest;o.open(r.method||"GET",e,!0),"blob"===r.responseType&&(o.responseType=r.responseType);const i=()=>{try{return JSON.parse(o.responseText)}catch(e){return o.responseText}};o.onload=()=>{-1!==[401,403,404,422,500].indexOf(o.status)&&n(new te(i())),((e=!1)=>{const s=e?n:t;"blob"===r.responseType?s(o.response):o.responseText?s(i()):n({message:""})})()},o.onerror=t=>{n(0===o.status?new Ee(e):t)},o.upload.onprogress=function(e){if(e.lengthComputable){r.onProgress&&r.onProgress(e.loaded/e.total*100,e)}};const c=r.headers;if(c)for(const l in c){const e=c[l];"string"==typeof e&&o.setRequestHeader(l,e)}let a;if(void 0!==r.withCredentials&&(o.withCredentials=r.withCredentials),r.file){if(a=new FormData,a.append("file",r.file),r.data)for(const l in r.data)a.append(l,a[l])}else a=r.data?"string"==typeof r.data?r.data:JSON.stringify(r.data):null;s&&s((()=>{o.abort()})),o.send(a)};var Re=Object.defineProperty,Le=Object.getOwnPropertySymbols,ke=Object.prototype.hasOwnProperty,Se=Object.prototype.propertyIsEnumerable,qe=(e,t,r)=>t in e?Re(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Te=(e,t)=>{for(var r in t||(t={}))ke.call(t,r)&&qe(e,r,t[r]);if(Le)for(var r of Le(t))Se.call(t,r)&&qe(e,r,t[r]);return e},Ae=(e,t,r)=>qe(e,"symbol"!=typeof t?t+"":t,r);let Ue=0;class Ne{constructor(e){this.options=e,Ae(this,"id",Ue++),Ae(this,"emitter",new H),Ae(this,"user"),Ae(this,"resources"),Ae(this,"cache"),Ae(this,"withCredentials"),Ae(this,"client",`NextGIS-NGW-Connector/${Y}`),Ae(this,"routeStr","/api/component/pyramid/route"),Ae(this,"activeRequests",[]),Ae(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 b(t.options.auth,e.auth)}}))}(e);if(this.cache=new V({namespace:e.cacheId}),t)return t;{const{route:t,requestTransform:r,withCredentials:n}=this.options;t&&(this.routeStr=t),r&&(this.requestTransform=r),void 0!==n&&(this.withCredentials=n),this.resources=new ve({connector:this,cacheId:e.cacheId}),be(this)}}static create(e){return new this(e)}clearCache(){this.cache.clean(),this.resources.cache.clean()}setRequestTransform(e){this.requestTransform=e}setNgw(e){this.logout(),this.options.baseUrl=e,be(this)}connect(){const e=this.options.auth;return this.cache.add("route",(()=>new m(((t,r)=>{const n=()=>this.makeQuery(`${this.routeStr}?client=${this.client}`.toString(),{},{}).then((e=>{t(e)})).catch((e=>{r(e)}));if(e){const{login:t,password:s}=e;if(t&&s)return this._login({login:t,password:s}).then((()=>n())).catch((e=>r(e)))}return n()}))),{id:this.id,auth:e,baseUrl:this.options.baseUrl})}login(e,t){return this.logout(),be(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.clearCache(),this.emitter.emit("logout")}getUserInfo(e,t){if(this.user&&this.user.id)return m.resolve(this.user);e&&(this.options.auth=e);const r=Te({headers:this.getAuthorizationHeaders(e)},t);return this.makeQuery("/api/component/auth/current_user",{},r)}getAuthorizationHeaders(e){const t=this.makeClientId(e);if(t)return{Authorization:"Basic "+t}}makeClientId(e){if(e=e||this.options.auth){const{login:t,password:r}=e,n=[t,r].map(encodeURIComponent).join(":");return window.btoa(n)}}abort(){for(const e of this.activeRequests)e.cancel();this.activeRequests=[]}getActiveApiRequests(){return[...this.activeRequests]}apiRequest(e,t={},r={}){var n,s;r=Te({withCredentials:this.withCredentials},r);const{method:o,headers:i,withCredentials:c,responseType:a}=r,l=w(t=null!=(n=r.params)?n:t),u=()=>function(e){const t=e.params;return new m(((r,n)=>e.connector.connect().then((s=>{let o=s&&s[e.name];if(o){o=[...o];let s=o.shift();if(o.length){const e={};for(let r=0;r<o.length;r++){const n=o[r];if(e[r]="{"+n+"}",void 0===t[n])throw new Error("`"+n+"` url api argument is not specified")}s&&(s=je(s,e))}if(t){const e=[],r=t.paramList;Array.isArray(r)&&(delete t.paramList,r.forEach((t=>{e.push(`${t[0]}=${t[1]}`)})));for(const n in t)-1===o.indexOf(n)&&e.push(`${n}=${t[n]}`);e.length&&(s=s+"?"+e.join("&"))}s?r(e.connector.makeQuery(s,t,e.requestOptions)):n(new Error("request url is not set"))}else r(void 0)})).catch((e=>{n(e)}))))}({name:e,params:l,requestOptions:r,connector:this});return r.cache&&"GET"===o?this.cache.add(e,u,Te({params:l},w({headers:i,withCredentials:c,responseType:a,baseUrl:this.options.baseUrl,userId:null==(s=this.user)?void 0:s.id}))):u()}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)}makeQuery(e,t,r={}){if(e=(this.options.baseUrl?this.options.baseUrl:"")+e)return t&&(e=je(e,t)),e=encodeURI(_(e)),this._loadData(e,r);throw new Error("Empty `url` not allowed")}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)}_loadData(e,t){if(t.responseType=t.responseType||"json",t.signal&&t.signal.aborted)return m.reject(new m.CancelError);const r=new m(((r,n,s)=>{if(this.user&&((t=t||{}).headers=Te(Te({},this.getAuthorizationHeaders()),t.headers)),this.requestTransform){const[r,n]=this.requestTransform(e,t);e=r,t=n}Ie(e,r,t,n,s)})).then((e=>(this._cleanActiveRequests(r),e))).catch((e=>{if(this._cleanActiveRequests(r),e instanceof m.CancelError);else{const t=this._handleHttpError(e);if(t)throw t}}));return t.signal&&"function"==typeof t.signal.addEventListener&&t.signal.addEventListener("abort",(()=>{r.cancel(),this._cleanActiveRequests(r)})),this.activeRequests.push(r),r}_login(e,t){return this.getUserInfo(e,t).then((e=>(this.user=e,this.emitter.emit("login",e),e))).catch((e=>{throw this.emitter.emit("login:error",e),e}))}_cleanActiveRequests(e){const t=this.activeRequests.indexOf(e);-1!==t&&this.activeRequests.splice(t,1)}_handleHttpError(e){if(e&&e instanceof te){if("nextgisweb.resource.exception.ResourceNotFound"===e.exception)throw new se(e);if("nextgisweb.core.exception.InsufficientPermissions"===e.exception)throw new Oe(e)}return e}}function $e(e,t,r){if((t=String(t))===(e=String(e)))return!0;if(r&&t.toUpperCase()===e.toUpperCase())return!0;const n=`^${s=t,s.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")}$`.replace(/%/g,".*").replace("_",".");var s;return null!==new RegExp(n,r?"i":"").exec(e)}Ae(Ne,"errors",{NgwError:te,ResourceNotFoundError:se});const Fe={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)=>$e(e,t),ilike:(e,t)=>$e(e,t,!0)};function Me(e){return 3===e.length&&"string"==typeof e[0]&&"string"==typeof e[1]}function De(e,t){const r="string"==typeof t[0]?t[0]:"all",n=t=>{if(Me(t)){const[r,n,s]=t,o=Fe[n];if(o){if(("like"===n||"ilike"===n)&&"string"==typeof r){let t="";const n=r.replace(/^%?(\w+)%?$/,((n,o)=>(t=e[o],r.replace(o,s))));return o(t,n)}return o(e[r],s)}return!1}return De(e,t)},s=t.filter((e=>Array.isArray(e)));return"any"===r?s.some(n):s.every(n)}var He=Object.defineProperty,Ge=Object.defineProperties,Be=Object.getOwnPropertyDescriptors,ze=Object.getOwnPropertySymbols,Je=Object.prototype.hasOwnProperty,We=Object.prototype.propertyIsEnumerable,Qe=(e,t,r)=>t in e?He(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Xe=(e,t)=>{for(var r in t||(t={}))Je.call(t,r)&&Qe(e,r,t[r]);if(ze)for(var r of ze(t))We.call(t,r)&&Qe(e,r,t[r]);return e},Ke=(e,t)=>Ge(e,Be(t));const Ve={srs:4326,geom_format:"geojson"};function Ye(e){const t=et(e);return m.all(t).then((t=>{const r=[],n=[];for(const e of t)for(const t of e)r.includes(t.id)||(n.push(t),r.push(t.id));return e.offset||e.limit?n.splice(void 0!==e.offset?e.offset:0,void 0!==e.limit?e.limit:n.length):n}))}function Ze(e){const[t,r,n]=e;let s="",o="";return[`${"id"!==t?"fld_":""}${String(t).trim().replace(/^(%?)(.+?)(%?)$/,((e,t,r,n)=>(s=t,o=n,r)))}__${r}`,s+n+o]}function et(e,t=[],r=[]){var n;const{filters:s}=e,o=null!=(n=e.paramList)?n:[],i="string"==typeof s[0]?s[0]:"all",c=s.filter((e=>Array.isArray(e)));if("any"===i)for(const a of c)Me(a)?t.push(rt(Ke(Xe({},e),{paramList:[...r,...o,Ze(a)]}))):et(Ke(Xe({},e),{filters:a}),t,[...r]);else if("all"===i){const n=[],s=[];for(const e of c)Me(e)?n.push(Ze(e)):s.push(e);if(s.length)for(const o of s)et(Ke(Xe({},e),{filters:o}),t,[...r,...n]);else t.push(rt(Ke(Xe({},e),{paramList:[...r,...o,...n]})))}return t}function tt(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 rt(e){const t=Xe({},Ve),{limit:r,cache:n,signal:s,offset:o,orderBy:i,paramList:c,connector:a,geomFormat:l,intersects:u,resourceId:h}=e;if(r?r!==Number.POSITIVE_INFINITY&&(t.limit=r):t.limit=7e3,o&&(t.offset=o),l&&(t.geom_format=l),function(e,t){const{extensions:r,geom:n,fields:s,srs:o,ilike:i,like:c}=t,a=r?r.join(","):"";"*"!==a&&(e.extensions=a),null!=s&&(e.fields=Array.isArray(s)?s.join(","):""),void 0!==n&&(e.geom=n?"yes":"no",n||(delete e.srs,delete e.geom_format)),y(i)?e.ilike=i:y(c)&&(e.like=c),y(o)&&(e.srs=o)}(t,e),i&&(t.order_by=i.join(",")),Array.isArray(u)){const e=(f=u,Array.isArray(f)&&4===f.length&&f.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]}(u):u);t.intersects=tt(e)}else"string"==typeof u&&(t.intersects=u);var f;c&&(t.paramList=c);const p=Xe({id:h},t);return a.get("feature_layer.feature.collection",{cache:n,signal:s},p)}var nt=Object.defineProperty,st=Object.defineProperties,ot=Object.getOwnPropertyDescriptors,it=Object.getOwnPropertySymbols,ct=Object.prototype.hasOwnProperty,at=Object.prototype.propertyIsEnumerable,lt=(e,t,r)=>t in e?nt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ut=(e,t)=>{for(var r in t||(t={}))ct.call(t,r)&&lt(e,r,t[r]);if(it)for(var r of it(t))at.call(t,r)&&lt(e,r,t[r]);return e},ht=(e,t)=>st(e,ot(t));function ft(e){const t=e.filters;return t?Ye(ht(ut({},e),{filters:t})).then((r=>{var n;return(null!=(n=e.clientFilterValidate)?n:pt(t))&&(r=r.filter((e=>De(function(e){let t;for(t in e){const r=e[t];if("[object Object]"===Object.prototype.toString.call(r)){const n=r;if(y(n.year)&&y(n.month)&&y(n.day)){const r=[n.year,n.month-1,n.day];"hour"in n&&[n.hour,n.minute,n.second].forEach((e=>{r.push(e)})),e[t]=new Date(...r).toISOString()}}else"id"===t&&"string"==typeof r&&(e[t]=r.split(",").map(Number))}return e}(ht(ut({},e.fields),{id:e.id})),t)))),r})):rt(e)}function pt(e){if("any"===e[0])return!0;for(let t=1;t<e.length;t++){const r=e[t];if("[object Array]"===Object.prototype.toString.call(r)){if(pt(r))return!0}}return!1}var dt=Object.defineProperty,mt=Object.getOwnPropertySymbols,yt=Object.prototype.hasOwnProperty,vt=Object.prototype.propertyIsEnumerable,gt=(e,t,r)=>t in e?dt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,bt=(e,t,r)=>gt(e,"symbol"!=typeof t?t+"":t,r),wt=function(e,t){this[0]=e,this[1]=t},_t=(e,t,r)=>{var n,s,o=(e,t,n,s)=>{try{var i=r[e](t),c=(t=i.value)instanceof wt,a=i.done;Promise.resolve(c?t[0]:t).then((r=>c?o("return"===e?e:"next",t[1]?{done:r.done,value:r.value}:r,n,s):n({value:r,done:a}))).catch((e=>o("throw",e,n,s)))}catch(l){s(l)}},i=e=>c[e]=t=>new Promise(((r,n)=>o(e,t,r,n))),c={};return r=r.apply(e,t),c[(n="asyncIterator",(s=Symbol[n])?s:Symbol.for("Symbol."+n))]=()=>c,i("next"),i("throw"),i("return"),c};const Ot=class e extends M{constructor(e){var t;if(super(e),bt(this,"searchResources",[]),bt(this,"connector"),bt(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 Ne(((e,t)=>{for(var r in t||(t={}))yt.call(t,r)&&gt(e,r,t[r]);if(mt)for(var r of mt(t))vt.call(t,r)&&gt(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 _t(this,null,(function*(){var r,n;const s=this._makeSignal();for(const i of this.searchResources){if(s.aborted)break;const{searchMethod:c}=i,a=null!=(r=i.limit)?r:e.limit,l=null!=(n=i.id)?n:i.resourceId;try{const e=yield new wt(this.connector.getResourceOrFail(l,{cache:!0})),r={connector:this.connector,resourceId:l,signal:s,limit:a};"like"===c?r.like=t:r.ilike=t;const n=ft(r),o=yield new wt(n);for(const s of this._items({entries:o,query:t,config:i,resourceItem:e}))s.result=()=>this.result(s),yield s}catch(o){o&&"name"in o&&"CancelError"!==o.name&&console.warn(o)}}}))}result(e){const t=this._makeSignal();return this.connector.get("feature_layer.feature.item_extent",{signal:t},{id:e.resourceId,fid:e.featureId}).then((t=>{const r=t.extent;return{text:e.text,extent:[r.minLon,r.minLat,r.maxLon,r.maxLat]}}))}reverse(e){return _t(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 s;const o=[];let i;n.feature_layer&&(i=null==(s=n.feature_layer.fields.find((e=>e.label_field)))?void 0:s.keyname);return this.searchResources.find((e=>{var t;return null!=(t=e.id)?t:e.resourceId===n.resource.id}))&&e.forEach((e=>{let s=i?e.fields[i]:e.id;r.renderSearch?s=r.renderSearch({item:e,resourceItem:n}):i&&(s=e.fields[i]),o.push({query:t,text:s,featureId:e.id,resourceId:n.resource.id,item:e,resourceItem:n})})),o}};bt(Ot,"limit",300);let Pt=Ot;var jt=Object.defineProperty,xt=(e,t,r)=>((e,t,r)=>t in e?jt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r),Ct=function(e,t){this[0]=e,this[1]=t},Et=(e,t,r)=>{var n,s,o=(e,t,n,s)=>{try{var i=r[e](t),c=(t=i.value)instanceof Ct,a=i.done;Promise.resolve(c?t[0]:t).then((r=>c?o("return"===e?e:"next",t[1]?{done:r.done,value:r.value}:r,n,s):n({value:r,done:a}))).catch((e=>o("throw",e,n,s)))}catch(l){s(l)}},i=e=>c[e]=t=>new Promise(((r,n)=>o(e,t,r,n))),c={};return r=r.apply(e,t),c[(n="asyncIterator",(s=Symbol[n])?s:Symbol.for("Symbol."+n))]=()=>c,i("next"),i("throw"),i("return"),c};class It extends M{constructor(e){super(e),xt(this,"searchUrl","https://nominatim.openstreetmap.org"),xt(this,"_requests",[]),e&&e.searchUrl&&(this.searchUrl=e.searchUrl)}abort(){this._requests.forEach((e=>e.cancel())),this._requests=[]}search(e){return Et(this,null,(function*(){const t=_(`${this.searchUrl}/search?format=geojson&polygon_geojson=1&q=${e}`),r=new m(((r,n,s)=>{const o=new XMLHttpRequest;o.open("GET",t,!0),o.onload=()=>{try{const t=JSON.parse(o.responseText).features.map((t=>({geom:t,extent:t.bbox,text:t.properties&&t.properties.display_name,query:e})));r(t)}catch(t){n(t)}},o.onerror=e=>{n(e)},s((()=>{o.abort()})),o.send()})).catch((e=>{throw e}));this._requests.push(r);const n=yield new Ct(r);if(n)for(const e of n)e.result=()=>this.result(e),yield e}))}result(e){return m.resolve({text:e.text,extent:e.extent||[],geom:e.geom})}reverse(e){return Et(this,null,(function*(){const[t,r]=e,n=_(`${this.searchUrl}/reverse?format=geojson&lat=${r}&lon=${t}`),s=new m(((e,s,o)=>{const i=new XMLHttpRequest;i.open("GET",n,!0),i.onload=()=>{try{const n=JSON.parse(i.responseText).features[0];e({geom:n,extent:n.bbox,text:n.properties&&n.properties.display_name,query:`${r}, ${t}`})}catch(n){s(n)}},i.onerror=e=>{s(e)},o((()=>{i.abort()})),i.send()})).catch((e=>{throw e}));this._requests.push(s);const o=yield new Ct(s);o&&(o.result=()=>this.result(o),yield o)}))}}function Rt(e){return new N(e)}export{M as BaseProvider,N as Geocoder,Pt as NgwProvider,It as NominatimProvider,Rt as create};
2
2
  //# sourceMappingURL=geocoder.esm-browser.prod.js.map