mahal_map 1.4.8 → 1.4.9

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/dist/index.d.mts CHANGED
@@ -159,9 +159,12 @@ declare function Router(param: number[][], typeData: string, token: string): Pro
159
159
 
160
160
  declare function debounce<F extends (...args: any[]) => Promise<any>>(fn: F, delay: number): (...args: Parameters<F>) => Promise<ReturnType<F>>;
161
161
 
162
+ declare function trimValue(value: string, cut: number): string;
163
+
162
164
  declare const index_debounce: typeof debounce;
165
+ declare const index_trimValue: typeof trimValue;
163
166
  declare namespace index {
164
- export { index_debounce as debounce };
167
+ export { index_debounce as debounce, index_trimValue as trimValue };
165
168
  }
166
169
 
167
170
  declare function saveKey(param: string): void;
package/dist/index.d.ts CHANGED
@@ -159,9 +159,12 @@ declare function Router(param: number[][], typeData: string, token: string): Pro
159
159
 
160
160
  declare function debounce<F extends (...args: any[]) => Promise<any>>(fn: F, delay: number): (...args: Parameters<F>) => Promise<ReturnType<F>>;
161
161
 
162
+ declare function trimValue(value: string, cut: number): string;
163
+
162
164
  declare const index_debounce: typeof debounce;
165
+ declare const index_trimValue: typeof trimValue;
163
166
  declare namespace index {
164
- export { index_debounce as debounce };
167
+ export { index_debounce as debounce, index_trimValue as trimValue };
165
168
  }
166
169
 
167
170
  declare function saveKey(param: string): void;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- 'use strict';var a0_0x343e53=a0_0x474f;(function(_0x25461f,_0x2ba747){var _0x2d7807=a0_0x474f,_0xa414b=_0x25461f();while(!![]){try{var _0x405e0b=parseInt(_0x2d7807(0xc4))/0x1+parseInt(_0x2d7807(0xf8))/0x2+parseInt(_0x2d7807(0x74))/0x3+parseInt(_0x2d7807(0x7d))/0x4*(parseInt(_0x2d7807(0x11c))/0x5)+parseInt(_0x2d7807(0x118))/0x6+parseInt(_0x2d7807(0xcc))/0x7+-parseInt(_0x2d7807(0xbc))/0x8;if(_0x405e0b===_0x2ba747)break;else _0xa414b['push'](_0xa414b['shift']());}catch(_0x68249a){_0xa414b['push'](_0xa414b['shift']());}}}(a0_0x2053,0x40dd7));var N=Object[a0_0x343e53(0xbf)],u=Object[a0_0x343e53(0x9d)],Z=Object[a0_0x343e53(0x9b)],z=Object[a0_0x343e53(0xe2)],H=Object[a0_0x343e53(0xf5)],V=Object[a0_0x343e53(0xee)][a0_0x343e53(0x112)],M=(_0x2f1833,_0x2fa65a)=>{var _0xbb8540={'sKkgz':function(_0x2a9303,_0x559a52,_0x4f9d7c,_0x3ada92){return _0x2a9303(_0x559a52,_0x4f9d7c,_0x3ada92);}};for(var _0x41e1a4 in _0x2fa65a)_0xbb8540['sKkgz'](u,_0x2f1833,_0x41e1a4,{'get':_0x2fa65a[_0x41e1a4],'enumerable':!0x0});},T=(_0x58658e,_0x3b9097,_0x23a3f7,_0x547f43)=>{var _0x20ff0c=a0_0x343e53,_0x11f4d7={'ARYZA':function(_0x9c0be5,_0x3ecdf5){return _0x9c0be5==_0x3ecdf5;},'uVkRx':_0x20ff0c(0xb5),'DSwsz':function(_0x401ae2,_0x152b9e){return _0x401ae2==_0x152b9e;},'VtxMD':_0x20ff0c(0xad),'aWAWM':function(_0x5210ba,_0x55ffca){return _0x5210ba(_0x55ffca);},'qNEze':function(_0x80272f,_0x137ca9){return _0x80272f!==_0x137ca9;},'BfLpr':function(_0x5ebb46,_0xe7eab3,_0x264df7,_0x559520){return _0x5ebb46(_0xe7eab3,_0x264df7,_0x559520);},'GkxFi':function(_0x3d91ef,_0x340d6f,_0x47eadf){return _0x3d91ef(_0x340d6f,_0x47eadf);}};if(_0x3b9097&&_0x11f4d7[_0x20ff0c(0x119)](typeof _0x3b9097,_0x11f4d7['uVkRx'])||_0x11f4d7['DSwsz'](typeof _0x3b9097,_0x11f4d7[_0x20ff0c(0x82)])){for(let _0x2684e6 of _0x11f4d7[_0x20ff0c(0xb2)](z,_0x3b9097))!V[_0x20ff0c(0xac)](_0x58658e,_0x2684e6)&&_0x11f4d7[_0x20ff0c(0x138)](_0x2684e6,_0x23a3f7)&&_0x11f4d7[_0x20ff0c(0x126)](u,_0x58658e,_0x2684e6,{'get':()=>_0x3b9097[_0x2684e6],'enumerable':!(_0x547f43=_0x11f4d7['GkxFi'](Z,_0x3b9097,_0x2684e6))||_0x547f43[_0x20ff0c(0xf2)]});}return _0x58658e;},X=(_0x44cc71,_0x431221,_0x13a441)=>(_0x13a441=_0x44cc71!=null?N(H(_0x44cc71)):{},T(_0x431221||!_0x44cc71||!_0x44cc71[a0_0x343e53(0x81)]?u(_0x13a441,a0_0x343e53(0x125),{'value':_0x44cc71,'enumerable':!0x0}):_0x13a441,_0x44cc71)),q=_0x5493f1=>T(u({},a0_0x343e53(0x81),{'value':!0x0}),_0x5493f1),ae={};M(ae,{'MahalMap':()=>y,'MahalMapDefaultMarker':()=>f,'Router':()=>_,'Search':()=>K,'SearchByLocation':()=>O,'keyUtils':()=>b,'utils':()=>w}),module[a0_0x343e53(0x128)]=q(ae);var R=a0_0x343e53(0xdf),P='https://mtile.gram.tj/custom-styles/dark-style.json',C=a0_0x343e53(0x95),k=a0_0x343e53(0x123);function L(_0x49959c){var _0x406e58=a0_0x343e53,_0x42fd4e={'ZcHWx':function(_0x3148b9,_0x19b440){return _0x3148b9<_0x19b440;},'qAcfv':function(_0x131ac5,_0x378f45){return _0x131ac5<<_0x378f45;},'NXpBj':function(_0x5dd626,_0x5466f2){return _0x5dd626&_0x5466f2;},'kWtKS':function(_0xe824ec,_0x1c75b7){return _0xe824ec>>_0x1c75b7;},'eBIxJ':function(_0x31c0c6,_0x5505ae){return _0x31c0c6-_0x5505ae;},'OfOKC':function(_0x3f5741,_0xaadf3b){return _0x3f5741<<_0xaadf3b;},'CkbUZ':function(_0xf17cc8,_0x16f700){return _0xf17cc8*_0x16f700;}};let _0x12b896=[],_0x17cb5b=0x0,_0x17f98d=_0x49959c[_0x406e58(0x8e)],_0x2b8c13=0x0,_0x472096=0x0;for(;_0x42fd4e[_0x406e58(0x114)](_0x17cb5b,_0x17f98d);){let _0x51a0e7,_0x31f5bd=0x0,_0x52e796=0x0;do _0x51a0e7=_0x49959c['charCodeAt'](_0x17cb5b++)-0x3f,_0x52e796|=_0x42fd4e[_0x406e58(0xf3)](_0x42fd4e[_0x406e58(0xc0)](_0x51a0e7,0x1f),_0x31f5bd),_0x31f5bd+=0x5;while(_0x51a0e7>=0x20);let _0xb97c30=_0x52e796&0x1?~_0x42fd4e[_0x406e58(0xe6)](_0x52e796,0x1):_0x52e796>>0x1;_0x2b8c13+=_0xb97c30,_0x31f5bd=0x0,_0x52e796=0x0;do _0x51a0e7=_0x42fd4e[_0x406e58(0x11a)](_0x49959c[_0x406e58(0x96)](_0x17cb5b++),0x3f),_0x52e796|=_0x42fd4e[_0x406e58(0x129)](_0x42fd4e['NXpBj'](_0x51a0e7,0x1f),_0x31f5bd),_0x31f5bd+=0x5;while(_0x51a0e7>=0x20);let _0x1c1f72=_0x42fd4e[_0x406e58(0xc0)](_0x52e796,0x1)?~(_0x52e796>>0x1):_0x42fd4e[_0x406e58(0xe6)](_0x52e796,0x1);_0x472096+=_0x1c1f72,_0x12b896['push']([_0x42fd4e[_0x406e58(0x110)](_0x472096,0.00001),_0x2b8c13*0.00001]);}return _0x12b896;}var h=class{constructor(_0x5ca3bc){var _0x1af34d=a0_0x343e53;this[_0x1af34d(0xaa)]=_0x5ca3bc;}[a0_0x343e53(0x86)](_0x4eb057,_0x1d8b74=!0x0){var _0x4ca0c=a0_0x343e53;_0x1d8b74?this[_0x4ca0c(0xaa)][_0x4ca0c(0x71)]({'zoom':_0x4eb057}):this['map'][_0x4ca0c(0x86)](_0x4eb057);}[a0_0x343e53(0x7c)](_0x3adfeb,_0x3f5f13=!0x0){var _0x5cb545=a0_0x343e53;_0x3f5f13?this[_0x5cb545(0xaa)][_0x5cb545(0x71)]({'bearing':_0x3adfeb}):this['map'][_0x5cb545(0x7c)](_0x3adfeb);}[a0_0x343e53(0x10d)](_0x459aa8,_0x3dc7a6=!0x0){var _0x25e631=a0_0x343e53;_0x3dc7a6?this[_0x25e631(0xaa)][_0x25e631(0x71)]({'pitch':_0x459aa8}):this[_0x25e631(0xaa)]['setPitch'](_0x459aa8);}[a0_0x343e53(0xd7)](_0x52fbf1){var _0x58577b=a0_0x343e53;this[_0x58577b(0xaa)][_0x58577b(0x71)]({'pitch':_0x52fbf1?0x3c:0x0,'bearing':_0x52fbf1?this[_0x58577b(0xaa)][_0x58577b(0x12f)]():0x0,'duration':0x320});}[a0_0x343e53(0x90)](){var _0x32e756=a0_0x343e53;this['map'][_0x32e756(0x71)]({'bearing':0x0,'pitch':0x0,'duration':0x258});}[a0_0x343e53(0x97)](_0x2ffa62){var _0x1efd01=a0_0x343e53;this[_0x1efd01(0xaa)][_0x1efd01(0x97)]({'speed':1.2,'curve':1.42,'essential':!0x0,..._0x2ffa62});}[a0_0x343e53(0xc7)](){return this['map']['getPitch']();}},Y=/<svg[\s>]/i,J=/<(svg|path|g|circle|rect|polygon|line|polyline|ellipse|use)\b/i,g=(_0x5edada,_0x1b9153,_0x189639)=>{var _0x47fb46=a0_0x343e53;let _0x1f5aca=new RegExp('\x5cs'+_0x1b9153+'=\x22[^\x22]*\x22','i');return _0x1f5aca[_0x47fb46(0xb3)](_0x5edada)?_0x5edada['replace'](_0x1f5aca,'\x20'+_0x1b9153+'=\x22'+_0x189639+'\x22'):_0x5edada[_0x47fb46(0xc9)](/<svg\b/i,'<svg\x20'+_0x1b9153+'=\x22'+_0x189639+'\x22');},Q=_0x43f2a6=>_0x43f2a6[a0_0x343e53(0xc9)](/&/g,a0_0x343e53(0x10b))['replace'](/"/g,a0_0x343e53(0x10f)),A=_0x582f43=>'<image\x20href=\x22'+Q(_0x582f43)+a0_0x343e53(0xd2),W=_0x3db4c4=>{var _0x3e75a3=a0_0x343e53,_0x2256b2={'gOGMn':function(_0x5f1f88,_0x274010,_0x5a6c3a,_0x2be2c7){return _0x5f1f88(_0x274010,_0x5a6c3a,_0x2be2c7);},'TTkCd':_0x3e75a3(0xde),'DDymX':_0x3e75a3(0xa7),'EDAfa':_0x3e75a3(0xe1)};let _0x43e858=_0x3db4c4[_0x3e75a3(0x108)]();if(Y[_0x3e75a3(0xb3)](_0x43e858)){let _0x184136=_0x2256b2[_0x3e75a3(0x11f)](g,_0x43e858,'x','14');return _0x184136=g(_0x184136,'y','12'),_0x184136=_0x2256b2[_0x3e75a3(0x11f)](g,_0x184136,_0x2256b2[_0x3e75a3(0xbb)],'22'),_0x184136=_0x2256b2[_0x3e75a3(0x11f)](g,_0x184136,_0x2256b2['DDymX'],'22'),/\spreserveAspectRatio="/i[_0x3e75a3(0xb3)](_0x184136)||(_0x184136=_0x184136['replace'](/<svg\b/i,_0x2256b2[_0x3e75a3(0xc8)])),_0x184136;}return _0x3e75a3(0xf6)+_0x43e858+_0x3e75a3(0x100);},ee=({innerSvg:_0x4613d4,innerUrl:_0x1737fc})=>{var _0x2d41fb=a0_0x343e53,_0x10ebac={'KMeHU':function(_0x25badf,_0x1ac0f9){return _0x25badf(_0x1ac0f9);},'FnOnP':function(_0x26a0d6,_0x1caa17){return _0x26a0d6(_0x1caa17);}};let _0x5ccd51=_0x4613d4?.[_0x2d41fb(0x108)](),_0x5a7538=_0x1737fc?.[_0x2d41fb(0x108)]();return _0x5ccd51?J['test'](_0x5ccd51)?_0x10ebac[_0x2d41fb(0xb1)](W,_0x5ccd51):_0x10ebac['FnOnP'](A,_0x5ccd51):_0x5a7538?_0x10ebac['KMeHU'](A,_0x5a7538):'';},E=(_0x381ebd,_0x509d37={})=>a0_0x343e53(0x11d)+(_0x381ebd||a0_0x343e53(0x73))+'\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</g>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<path\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20d=\x22M25\x2051C27.7614\x2051\x2030\x2053.2386\x2030\x2056C30\x2058.7614\x2027.7614\x2061\x2025\x2061C22.2386\x2061\x2020\x2058.7614\x2020\x2056C20\x2053.2386\x2022.2386\x2051\x2025\x2051Z\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20fill=\x22'+(_0x381ebd||'#278960')+a0_0x343e53(0xec)+ee(_0x509d37)+a0_0x343e53(0x9c),f=class{constructor(_0x1c707b){var _0x12b9c5=a0_0x343e53;this[_0x12b9c5(0x130)]=_0x1c707b,this[_0x12b9c5(0xfa)]=this[_0x12b9c5(0xae)]();}['createElement'](){var _0x24496e=a0_0x343e53,_0xf669d1={'FksXF':_0x24496e(0x8f),'gCOpn':_0x24496e(0xd3),'AQXsu':function(_0x371fbe,_0x4e20e6,_0x354283){return _0x371fbe(_0x4e20e6,_0x354283);},'vPBND':_0x24496e(0x73)};let _0xb4386c=document[_0x24496e(0xae)](_0xf669d1[_0x24496e(0x12d)]);_0xb4386c['style'][_0x24496e(0x10a)]=_0xf669d1[_0x24496e(0x11e)];let _0x1e1244=this[_0x24496e(0x130)][_0x24496e(0xdb)]?this[_0x24496e(0x102)](this[_0x24496e(0x130)][_0x24496e(0xdb)]):_0xf669d1[_0x24496e(0x78)](E,this[_0x24496e(0x130)][_0x24496e(0xcb)]??_0xf669d1[_0x24496e(0xca)],{'innerSvg':this['props']['innerSvg'],'innerUrl':this[_0x24496e(0x130)][_0x24496e(0x117)]});return _0xb4386c[_0x24496e(0xf7)]=_0x1e1244,this[_0x24496e(0x130)]['draggable']&&(_0xb4386c[_0x24496e(0xba)]=!0x0),_0xb4386c;}[a0_0x343e53(0x102)](_0xd8d79c){var _0x2e8c2a=a0_0x343e53;return this[_0x2e8c2a(0x130)]['color']?_0xd8d79c[_0x2e8c2a(0xc9)](/fill="[^"]*"/g,_0x2e8c2a(0x107)+this[_0x2e8c2a(0x130)][_0x2e8c2a(0xcb)]+'\x22'):_0xd8d79c;}[a0_0x343e53(0xfb)](){var _0x8bbb21=a0_0x343e53;return this[_0x8bbb21(0xfa)];}[a0_0x343e53(0xef)](){return this['props']['coordinates'];}[a0_0x343e53(0xfc)](){return!!this['props']['draggable'];}[a0_0x343e53(0xda)](){var _0xc33b98=a0_0x343e53,_0x586ac6={'FQLTk':_0xc33b98(0x139)};return this[_0xc33b98(0x130)][_0xc33b98(0x98)]||_0x586ac6[_0xc33b98(0x134)];}};function B(_0x156a0c,_0x2c770c,_0x4c6b15){var _0x41ed55=a0_0x343e53,_0x35c882={'fdObh':_0x41ed55(0x139)};return new _0x156a0c[(_0x41ed55(0x133))]({'element':_0x4c6b15['getElement'](),'draggable':_0x4c6b15[_0x41ed55(0xfc)]?.()??!0x1,'anchor':_0x4c6b15[_0x41ed55(0xda)]?.()??_0x35c882[_0x41ed55(0xe8)]})[_0x41ed55(0x9a)](_0x4c6b15[_0x41ed55(0xef)]())['addTo'](_0x2c770c);}var d={'dark':P,'light':C},n=class n{constructor(){var _0xd4ff45=a0_0x343e53;this['isReady']=!0x1,this[_0xd4ff45(0xea)]=[];}static[a0_0x343e53(0xbf)](_0x1197a8,_0x529aff){var _0xe3fd1=a0_0x343e53,_0x343c1e={'iDBog':_0xe3fd1(0xe4),'BmMUP':function(_0x476099,_0x4aec5){return _0x476099===_0x4aec5;},'IsftQ':_0xe3fd1(0xd6),'yOTwW':function(_0x539146,_0x21baa0){return _0x539146!==_0x21baa0;},'Pdtlh':_0xe3fd1(0x7f)};if(n[_0xe3fd1(0xcf)])return n[_0xe3fd1(0xcf)];let _0x9c4868=window[_0xe3fd1(0xd5)]||_0x529aff;if(!_0x9c4868)throw new Error(_0x343c1e[_0xe3fd1(0x111)]);let _0x41cc79=_0x1197a8[_0xe3fd1(0xf0)]?k:_0x1197a8[_0xe3fd1(0x8d)]?_0x1197a8[_0xe3fd1(0x8d)]:_0x343c1e[_0xe3fd1(0xf9)](_0x1197a8['theme'],_0x343c1e[_0xe3fd1(0x12e)])?d[_0xe3fd1(0xd6)]:d[_0xe3fd1(0xdd)],_0x56fdfe=new n();return _0x56fdfe[_0xe3fd1(0x106)]=_0x1197a8,_0x56fdfe[_0xe3fd1(0x135)]=_0x9c4868,_0x56fdfe[_0xe3fd1(0xaa)]=new _0x9c4868[(_0xe3fd1(0x84))]({'container':_0x1197a8[_0xe3fd1(0xab)]||_0xe3fd1(0xaa),'style':_0x41cc79,'center':_0x1197a8[_0xe3fd1(0x139)]||[69.624024,40.279687],'zoom':_0x1197a8['zoom']||0x5,'attributionControl':_0x343c1e[_0xe3fd1(0x10e)](_0x1197a8[_0xe3fd1(0x88)],!0x1)}),_0x56fdfe[_0xe3fd1(0xaa)]['on'](_0x343c1e['Pdtlh'],()=>{var _0x251b56=_0xe3fd1;_0x56fdfe[_0x251b56(0x113)]=!0x0,_0x56fdfe[_0x251b56(0xa1)]=new h(_0x56fdfe[_0x251b56(0xaa)]),_0x56fdfe['readyCallbacks']['forEach'](_0x53d576=>_0x53d576(_0x56fdfe[_0x251b56(0xaa)])),_0x56fdfe[_0x251b56(0xea)]=[];}),n[_0xe3fd1(0xcf)]=_0x56fdfe,_0x56fdfe;}static[a0_0x343e53(0xdc)](_0x2132ca){var _0x4991b5=a0_0x343e53,_0x31f8cf={'CVnnA':function(_0x111d93,_0x5fb8a4){return _0x111d93(_0x5fb8a4);},'TGSwW':function(_0x39a08f,_0x462cb1,_0x5ad4e9){return _0x39a08f(_0x462cb1,_0x5ad4e9);},'aFBEW':function(_0x313f77,_0x71a72b){return _0x313f77(_0x71a72b);}};if(!n[_0x4991b5(0xcf)]){let _0x5b4679=_0x31f8cf['TGSwW'](setInterval,()=>{var _0x9918ba=_0x4991b5;n['instance']&&(_0x31f8cf[_0x9918ba(0x105)](clearInterval,_0x5b4679),n['onReady'](_0x2132ca));},0x32);return;}let _0x13a131=n[_0x4991b5(0xcf)];_0x13a131[_0x4991b5(0x113)]?_0x31f8cf[_0x4991b5(0xc3)](_0x2132ca,_0x13a131[_0x4991b5(0xaa)]):_0x13a131[_0x4991b5(0xea)]['push'](_0x2132ca);}static[a0_0x343e53(0xb8)](){var _0x437d04=a0_0x343e53,_0xda4689={'gDnSQ':_0x437d04(0xe7)};if(!n[_0x437d04(0xcf)])throw new Error(_0xda4689[_0x437d04(0x92)]);return n[_0x437d04(0xcf)];}['addMarker'](_0x15442d){var _0x28a758=a0_0x343e53,_0x54c4f7={'upfmn':function(_0x37850d,_0x44530c,_0x3f8767,_0x559da8){return _0x37850d(_0x44530c,_0x3f8767,_0x559da8);}};return _0x54c4f7[_0x28a758(0xc6)](B,this[_0x28a758(0x135)],this[_0x28a758(0xaa)],_0x15442d);}[a0_0x343e53(0xcd)](_0x7fa91e){var _0x133a05=a0_0x343e53;this[_0x133a05(0xaa)]=_0x7fa91e,this[_0x133a05(0xa1)]=new h(_0x7fa91e);}['getCamera'](){return this['camera'];}[a0_0x343e53(0x8a)](){var _0x339a9e=a0_0x343e53;return this[_0x339a9e(0xaa)];}[a0_0x343e53(0xaf)](_0x1b4ade){var _0xe3c962=a0_0x343e53,_0x4cc7e9={'XsAjx':function(_0x16602e,_0x3a6bfd){return _0x16602e===_0x3a6bfd;},'dfMeW':_0xe3c962(0xd6)};this['map']['setStyle'](_0x4cc7e9[_0xe3c962(0x76)](_0x1b4ade,_0x4cc7e9['dfMeW'])?d[_0xe3c962(0xd6)]:d[_0xe3c962(0xdd)]);}[a0_0x343e53(0x7e)](_0x448ed3){var _0x3bc196=a0_0x343e53;this['map'][_0x3bc196(0x7e)](_0x448ed3);}['setZoom'](_0x18c0ce){var _0x21a521=a0_0x343e53;this['map'][_0x21a521(0x86)](_0x18c0ce);}['destroy'](){var _0x6fbc9b=a0_0x343e53;this['map']['remove'](),n[_0x6fbc9b(0xcf)]=null;}};n[a0_0x343e53(0xcf)]=null;var y=n,G=X(require(a0_0x343e53(0xc1))),l=G['default']['create']({'baseURL':R});l[a0_0x343e53(0x12b)][a0_0x343e53(0x10c)][a0_0x343e53(0x136)](_0x342cb9=>_0x342cb9,_0x3031ec=>(_0x3031ec[a0_0x343e53(0x10c)]?.[a0_0x343e53(0xa3)]===0x191&&x(),Promise[a0_0x343e53(0x79)](_0x3031ec)));var b={};M(b,{'clearKey':()=>x,'getApiKey':()=>m,'saveKey':()=>S});var v='';function S(_0x33cfc6){var _0x44e301=a0_0x343e53,_0xdb20c9={'ykJUs':function(_0xb5eb2,_0x542075){return _0xb5eb2!==_0x542075;}};_0xdb20c9[_0x44e301(0x89)](_0x33cfc6,'')&&(v=_0x33cfc6,l['defaults'][_0x44e301(0xa8)]['common'][_0x44e301(0xb6)]=_0x44e301(0xa5)+_0x33cfc6);}function x(){var _0x184b62=a0_0x343e53,_0x5e3184={'bQmxI':function(_0x34b9a3,_0xdaa04f){return _0x34b9a3!==_0xdaa04f;},'WXmPc':'SuLEl','lodoQ':function(_0x3e3c6b,_0x40eae2){return _0x3e3c6b(_0x40eae2);},'zpJlL':function(_0x3d54f1,_0x3166ce){return _0x3d54f1+_0x3166ce;},'POhVL':_0x184b62(0xd1),'cfNky':function(_0x1ec827){return _0x1ec827();},'ryyPW':_0x184b62(0xb7),'qoUZs':_0x184b62(0xc5),'wXJTU':_0x184b62(0xbe),'IbpWa':_0x184b62(0x9f),'PbKkk':_0x184b62(0xfd),'XhkTX':function(_0x3e3f4a,_0x375b63){return _0x3e3f4a<_0x375b63;},'snVfK':function(_0x50afa8,_0x547294,_0x531b58){return _0x50afa8(_0x547294,_0x531b58);}},_0x408405=(function(){var _0x1cd13f=!![];return function(_0x3fae2e,_0x3a7d0b){var _0x1b7ec9=_0x1cd13f?function(){var _0x16199b=a0_0x474f;if(_0x3a7d0b){var _0x3bf1ff=_0x3a7d0b[_0x16199b(0x137)](_0x3fae2e,arguments);return _0x3a7d0b=null,_0x3bf1ff;}}:function(){};return _0x1cd13f=![],_0x1b7ec9;};}()),_0x55cad7=_0x5e3184[_0x184b62(0x116)](_0x408405,this,function(){var _0x402d51=_0x184b62,_0x5e2bd4={'FNszD':function(_0x28556a,_0xe1f1c2){var _0x3a1431=a0_0x474f;return _0x5e3184[_0x3a1431(0x8b)](_0x28556a,_0xe1f1c2);},'xPtJg':_0x402d51(0xd0),'Qzpkb':_0x5e3184[_0x402d51(0xfe)],'XCfCO':function(_0x9d426c,_0x77b6cc){var _0x59aaee=_0x402d51;return _0x5e3184[_0x59aaee(0xf1)](_0x9d426c,_0x77b6cc);},'fEvJK':function(_0x3d4467,_0x1cdf04){var _0x5ea80c=_0x402d51;return _0x5e3184[_0x5ea80c(0x75)](_0x3d4467,_0x1cdf04);},'dSTXy':function(_0x5ab195,_0x13c7d9){var _0xd06b23=_0x402d51;return _0x5e3184[_0xd06b23(0x75)](_0x5ab195,_0x13c7d9);},'AoVdo':_0x5e3184['POhVL']},_0x46e336=function(){var _0x3e56e9=_0x402d51;if(_0x5e2bd4[_0x3e56e9(0x99)](_0x5e2bd4['xPtJg'],_0x5e2bd4[_0x3e56e9(0xe3)])){var _0x5f3857;try{_0x5f3857=_0x5e2bd4[_0x3e56e9(0xa2)](Function,_0x5e2bd4[_0x3e56e9(0xb9)](_0x5e2bd4['dSTXy'](_0x5e2bd4[_0x3e56e9(0x12c)],_0x3e56e9(0xe5)),');'))();}catch(_0x7520a6){_0x5f3857=window;}return _0x5f3857;}else _0x5d2010=_0x125468;},_0x301301=_0x5e3184[_0x402d51(0xd4)](_0x46e336),_0x3d4646=_0x301301[_0x402d51(0x9e)]=_0x301301[_0x402d51(0x9e)]||{},_0x7ac55f=[_0x402d51(0x132),_0x5e3184[_0x402d51(0x103)],'info',_0x5e3184[_0x402d51(0x104)],_0x5e3184['wXJTU'],_0x5e3184[_0x402d51(0xe9)],_0x5e3184['PbKkk']];for(var _0x10860b=0x0;_0x5e3184['XhkTX'](_0x10860b,_0x7ac55f['length']);_0x10860b++){var _0x328c8b=_0x408405['constructor'][_0x402d51(0xee)][_0x402d51(0x11b)](_0x408405),_0x4cfa65=_0x7ac55f[_0x10860b],_0xdbc7f6=_0x3d4646[_0x4cfa65]||_0x328c8b;_0x328c8b['__proto__']=_0x408405['bind'](_0x408405),_0x328c8b[_0x402d51(0xe0)]=_0xdbc7f6['toString'][_0x402d51(0x11b)](_0xdbc7f6),_0x3d4646[_0x4cfa65]=_0x328c8b;}});_0x55cad7(),(v='',l[_0x184b62(0x127)][_0x184b62(0xa8)][_0x184b62(0x120)]['Authorization']='');}var m=()=>v;function I(_0x1a4e7d,_0x3e101d){var _0x1ccf34={'vpyNG':function(_0x2d56ba,_0x1ac118){return _0x2d56ba(_0x1ac118);},'zBkwU':function(_0x27b363,_0x1dedbd,_0x444533){return _0x27b363(_0x1dedbd,_0x444533);}};let _0x5bafb8;return(..._0x4ef851)=>(_0x5bafb8&&clearTimeout(_0x5bafb8),new Promise(_0xfe672e=>{var _0x23661d=a0_0x474f,_0x423646={'NxnDi':function(_0x21d9be,_0xf10d05){var _0x26f115=a0_0x474f;return _0x1ccf34[_0x26f115(0x85)](_0x21d9be,_0xf10d05);}};_0x5bafb8=_0x1ccf34[_0x23661d(0x83)](setTimeout,async()=>{var _0x187580=await _0x1a4e7d(..._0x4ef851);_0x423646['NxnDi'](_0xfe672e,_0x187580);},_0x3e101d);}));}var D=async _0x419671=>{var _0x295c96=a0_0x343e53,_0xf925c1={'fuTVQ':_0x295c96(0xb4)};try{return(await l[_0x295c96(0x7a)](_0xf925c1[_0x295c96(0xd8)],null,{'params':_0x419671}))[_0x295c96(0x101)];}catch(_0x42643f){throw console['error'](_0x295c96(0x77),_0x42643f),_0x42643f;}},$=async _0x316606=>{var _0x3674f8=a0_0x343e53,_0x1ca976={'FXren':_0x3674f8(0x93)};try{return(await l[_0x3674f8(0x7a)](_0x1ca976[_0x3674f8(0xa4)],null,{'params':_0x316606}))[_0x3674f8(0x101)];}catch(_0x34fb32){throw console[_0x3674f8(0xc5)](_0x3674f8(0xd9),_0x34fb32),_0x34fb32;}};async function te(_0x4169f1,_0x38e556,_0x5b8890){var _0x540a19=a0_0x343e53,_0x15eda6={'dUgwy':function(_0x1e0fdd){return _0x1e0fdd();},'wHUCt':function(_0x4ebe59,_0x1f1eb6){return _0x4ebe59(_0x1f1eb6);}};let _0x254812={'text':_0x4169f1,'token':_0x38e556||_0x15eda6['dUgwy'](m),..._0x5b8890};try{return await _0x15eda6[_0x540a19(0xff)](D,_0x254812);}catch(_0x1829c6){throw _0x1829c6;}}var re=I(te,0x1f4);async function K(_0x32a740,_0x521f04,_0x238443){return await re(_0x32a740,_0x521f04,_0x238443);}async function O(_0x52341e){var _0x530d99=a0_0x343e53,_0x20d8fc={'oVMRY':function(_0x4ab439,_0x1b54d2){return _0x4ab439(_0x1b54d2);},'vxzAF':function(_0x44df39,_0x240cd7){return _0x44df39===_0x240cd7;}};let _0x2b4628={..._0x52341e,'token':_0x52341e[_0x530d99(0xa0)]?_0x52341e[_0x530d99(0xa0)]:m()};try{if(_0x20d8fc[_0x530d99(0x91)]('QCsTf',_0x530d99(0x131))){let _0x177093=_0x65f5dc(()=>{var _0x409839=_0x530d99;_0x22da05[_0x409839(0xcf)]&&(_0x20d8fc[_0x409839(0x121)](_0x2e9b28,_0x177093),_0x51cf31['onReady'](_0x4ad8f1));},0x32);return;}else return await _0x20d8fc[_0x530d99(0x121)]($,_0x2b4628);}catch(_0x7133da){throw _0x7133da;}}var U=async(_0x4cb466,_0x20fb04)=>{var _0xe98c5f=a0_0x343e53,_0x4d8cd1={'dTuft':function(_0x1fd01d,_0x314999){return _0x1fd01d!==_0x314999;},'gRVOo':'jlHOO','HIOeg':function(_0x2d6f1d){return _0x2d6f1d();}};try{let _0x15c867=[];return _0x4cb466[_0xe98c5f(0x7b)](_0x7c2478=>{var _0x751bd3=_0xe98c5f;_0x4d8cd1[_0x751bd3(0x122)](_0x4d8cd1[_0x751bd3(0xce)],_0x4d8cd1[_0x751bd3(0xce)])?this[_0x751bd3(0xaa)][_0x751bd3(0x86)](_0xff4199):_0x15c867[_0x751bd3(0xa9)]({'lng':_0x7c2478[0x0],'lat':_0x7c2478[0x1]});}),(await l[_0xe98c5f(0x7a)](_0xe98c5f(0x12a),{'points':_0x15c867,'token':_0x20fb04||_0x4d8cd1[_0xe98c5f(0x8c)](m)}))[_0xe98c5f(0x101)];}catch(_0x2862f2){throw console[_0xe98c5f(0xc5)](_0x2862f2),_0x2862f2;}};async function _(_0x6a9682,_0x247f4b,_0x4cac66){var _0x33a967=a0_0x343e53,_0xf259e9={'Lhuct':function(_0x5dc5ed,_0x2221a2,_0x52b166){return _0x5dc5ed(_0x2221a2,_0x52b166);}};try{let _0x2b1c14=await _0xf259e9[_0x33a967(0x94)](U,_0x6a9682,_0x4cac66);return _0x2b1c14?.[_0x33a967(0x101)]?_0x2b1c14[_0x33a967(0x101)][_0x33a967(0xaa)](_0x3d1d8e=>{var _0x391c8d=_0x33a967;let _0x6a03ce={..._0x3d1d8e};return _0x6a03ce[_0x391c8d(0xb0)]?.[_0x391c8d(0xeb)]?.[_0x391c8d(0x8e)]&&(_0x6a03ce['route'][_0x391c8d(0xeb)]=_0x6a03ce[_0x391c8d(0xb0)][_0x391c8d(0xeb)][_0x391c8d(0xaa)](_0x5e81a6=>({..._0x5e81a6,'geometry':_0x247f4b==='geojson'&&typeof _0x5e81a6[_0x391c8d(0xa6)]==_0x391c8d(0x80)?L(_0x5e81a6[_0x391c8d(0xa6)]):_0x5e81a6[_0x391c8d(0xa6)]}))),_0x6a03ce;}):_0x2b1c14;}catch(_0x1f2755){throw _0x1f2755;}}function a0_0x2053(){var _0x332c00=['\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stroke=\x22white\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stroke-width=\x222\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<g\x20clip-path=\x22url(#clip0_367_31358)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','includes','prototype','getCoordinates','autoAddVectorSource','lodoQ','enumerable','qAcfv','mahal_map.sdk.js','getPrototypeOf','<g\x20transform=\x22translate(14\x2012)\x22>','innerHTML','17714CZRmmE','BmMUP','element','getElement','isDraggable','trace','WXmPc','wHUCt','</g>','data','applyColorToCustomSvg','ryyPW','qoUZs','CVnnA','options','fill=\x22','trim','apikey','cursor','&amp;','request','setPitch','yOTwW','&quot;','CkbUZ','iDBog','hasOwnProperty','isReady','ZcHWx','NBfIc','snVfK','innerUrl','2710872XFRcZU','ARYZA','eBIxJ','bind','6030CnKjjL','<svg\x0a\x20\x20\x20\x20\x20\x20\x20\x20width=\x2250\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20height=\x2262\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20viewBox=\x220\x200\x2050\x2062\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20fill=\x22none\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20xmlns=\x22http://www.w3.org/2000/svg\x22\x0a\x20\x20\x20\x20\x20\x20>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<g\x20filter=\x22url(#filter0_d_367_31358)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<path\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20fill-rule=\x22evenodd\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20clip-rule=\x22evenodd\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20d=\x22M25\x202C36.598\x202\x2046\x2011.402\x2046\x2023C46\x2033.1603\x2038.7844\x2041.6353\x2029.198\x2043.5803L25.6524\x2048.6575C25.5788\x2048.7633\x2025.4812\x2048.8497\x2025.3676\x2048.9093C25.254\x2048.9689\x2025.128\x2049\x2025\x2049C24.872\x2049\x2024.746\x2048.9689\x2024.6324\x2048.9093C24.5188\x2048.8497\x2024.4212\x2048.7633\x2024.3476\x2048.6575L20.802\x2043.5803C11.2156\x2041.6353\x204\x2033.1603\x204\x2023C4\x2011.402\x2013.402\x202\x2025\x202Z\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20fill=\x22','gCOpn','gOGMn','common','oVMRY','dTuft','https://mtile.gram.tj/custom-styles/style_maptiler_basic_hn.json','vXPcw','default','BfLpr','defaults','exports','OfOKC','services/getRoutes','interceptors','AoVdo','FksXF','IsftQ','getBearing','props','EulOQ','log','Marker','FQLTk','maplibre','use','apply','qNEze','center','easeTo','AyItT','#278960','924453qaehth','zpJlL','XsAjx','Error\x20while\x20searching\x20address:','AQXsu','reject','post','forEach','setBearing','8gDXTTz','setCenter','load','string','__esModule','VtxMD','zBkwU','Map','vpyNG','setZoom','get','attributionControl','ykJUs','getMap','bQmxI','HIOeg','style','length','div','resetNorth','vxzAF','gDnSQ','services/getAddressByLocation','Lhuct','https://mtile.gram.tj/custom-styles/mapstyle.json','charCodeAt','flyTo','anchor','FNszD','setLngLat','getOwnPropertyDescriptor','\x0a\x20\x20\x20\x20\x20\x20\x20\x20</g>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<defs>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<filter\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20id=\x22filter0_d_367_31358\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20x=\x220\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20y=\x220\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width=\x2250\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20height=\x2255\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20filterUnits=\x22userSpaceOnUse\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color-interpolation-filters=\x22sRGB\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<feFlood\x20flood-opacity=\x220\x22\x20result=\x22BackgroundImageFix\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<feColorMatrix\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20in=\x22SourceAlpha\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type=\x22matrix\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20values=\x220\x200\x200\x200\x200\x200\x200\x200\x200\x200\x200\x200\x200\x200\x200\x200\x200\x200\x20127\x200\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20result=\x22hardAlpha\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<feOffset\x20dy=\x222\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<feGaussianBlur\x20stdDeviation=\x222\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<feComposite\x20in2=\x22hardAlpha\x22\x20operator=\x22out\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<feColorMatrix\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type=\x22matrix\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20values=\x220\x200\x200\x200\x200.250234\x200\x200\x200\x200\x200.660089\x200\x200\x200\x200\x200.488619\x200\x200\x200\x200.24\x200\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<feBlend\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20mode=\x22normal\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20in2=\x22BackgroundImageFix\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20result=\x22effect1_dropShadow_367_31358\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<feBlend\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20mode=\x22normal\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20in=\x22SourceGraphic\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20in2=\x22effect1_dropShadow_367_31358\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20result=\x22shape\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</filter>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<clipPath\x20id=\x22clip0_367_31358\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<rect\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width=\x2222\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20height=\x2222\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20fill=\x22white\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20transform=\x22translate(14\x2012)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</clipPath>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</defs>\x0a\x20\x20\x20\x20\x20\x20</svg>','defineProperty','console','table','token','camera','XCfCO','status','FXren','Bearer\x20','geometry','height','headers','push','map','container','call','function','createElement','setStyle','route','KMeHU','aWAWM','test','services/getAddress','object','Authorization','warn','getInstance','fEvJK','draggable','TTkCd','11135944zeHABy','src','exception','create','NXpBj','axios','getElementsByTagName','aFBEW','507369SaOCDD','error','upfmn','getPitch','EDAfa','replace','vPBND','color','2653553desBOS','init','gRVOo','instance','OjrWi','return\x20(function()\x20','\x22\x20x=\x2214\x22\x20y=\x2212\x22\x20width=\x2222\x22\x20height=\x2222\x22\x20style=\x22filter:\x20brightness(0)\x20invert(1);\x22\x20/>','pointer','cfNky','maplibregl','dark','toggle3D','fuTVQ','Error\x20while\x20searching\x20address\x20by\x20location:','getAnchor','svg','onReady','light','width','https://platform.mahal.tj/api/','toString','<svg\x20preserveAspectRatio=\x22xMidYMid\x20meet\x22','getOwnPropertyNames','Qzpkb','[MahalMap\x20SDK]\x20MapLibre\x20GL\x20не\x20найден.\x20Передай\x20его\x20вторым\x20аргументом\x20или\x20подключи\x20через\x20script.','{}.constructor(\x22return\x20this\x22)(\x20)','kWtKS','[MahalMap\x20SDK]\x20Карта\x20ещё\x20не\x20создана','fdObh','IbpWa','readyCallbacks','routes'];a0_0x2053=function(){return _0x332c00;};return a0_0x2053();}var w={};M(w,{'debounce':()=>I});function a0_0x474f(_0x441286,_0x37721b){var _0x43e68c=a0_0x2053();return a0_0x474f=function(_0x2f71c2,_0x406515){_0x2f71c2=_0x2f71c2-0x71;var _0x59aee1=_0x43e68c[_0x2f71c2];return _0x59aee1;},a0_0x474f(_0x441286,_0x37721b);}function oe(){var _0x5ac922=a0_0x343e53,_0x54fddd={'AyItT':_0x5ac922(0x139),'NBfIc':'script','gVrqP':_0x5ac922(0xf4),'NJSsx':function(_0x52953b,_0x1e7cfd){return _0x52953b===_0x1e7cfd;},'ALetH':'vXPcw'};let _0x436559=document[_0x5ac922(0xc2)](_0x54fddd[_0x5ac922(0x115)]);for(let _0x8ca213 of _0x436559)if(_0x8ca213['src'][_0x5ac922(0xed)](_0x54fddd['gVrqP'])){if(_0x54fddd['NJSsx'](_0x54fddd['ALetH'],_0x5ac922(0x124))){let _0x343d02=new URL(_0x8ca213[_0x5ac922(0xbd)])['searchParams'][_0x5ac922(0x87)](_0x5ac922(0x109));if(_0x343d02)return _0x343d02;}else return new _0x47bb4d['Marker']({'element':_0x42771a['getElement'](),'draggable':_0x5ca08e['isDraggable']?.()??!0x1,'anchor':_0x970824['getAnchor']?.()??_0x54fddd[_0x5ac922(0x72)]})[_0x5ac922(0x9a)](_0x41b96c[_0x5ac922(0xef)]())['addTo'](_0x1b629a);}return'';}S(oe()),0x0&&(module[a0_0x343e53(0x128)]={'MahalMap':MahalMap,'MahalMapDefaultMarker':MahalMapDefaultMarker,'Router':Router,'Search':Search,'SearchByLocation':SearchByLocation,'keyUtils':keyUtils,'utils':utils});
1
+ 'use strict';const a0_0x4f35c3=a0_0x3f4e;(function(_0x19ecf2,_0x40f7f3){const _0x3b676d=a0_0x3f4e,_0x34fc68=_0x19ecf2();while(!![]){try{const _0x517f19=parseInt(_0x3b676d(0x12a))/0x1*(-parseInt(_0x3b676d(0x135))/0x2)+parseInt(_0x3b676d(0x118))/0x3+parseInt(_0x3b676d(0xe2))/0x4+parseInt(_0x3b676d(0x8d))/0x5*(parseInt(_0x3b676d(0xea))/0x6)+-parseInt(_0x3b676d(0x129))/0x7+parseInt(_0x3b676d(0x145))/0x8+-parseInt(_0x3b676d(0xf3))/0x9;if(_0x517f19===_0x40f7f3)break;else _0x34fc68['push'](_0x34fc68['shift']());}catch(_0xf818ad){_0x34fc68['push'](_0x34fc68['shift']());}}}(a0_0x1ae6,0xbda10));function a0_0x3f4e(_0x166adc,_0xb3114e){const _0x8ac73b=a0_0x1ae6();return a0_0x3f4e=function(_0x7d982e,_0x13e53b){_0x7d982e=_0x7d982e-0x7a;let _0x101b9b=_0x8ac73b[_0x7d982e];return _0x101b9b;},a0_0x3f4e(_0x166adc,_0xb3114e);}var N=Object[a0_0x4f35c3(0x83)],h=Object[a0_0x4f35c3(0xb5)],V=Object['getOwnPropertyDescriptor'],Z=Object['getOwnPropertyNames'],z=Object[a0_0x4f35c3(0xcf)],H=Object[a0_0x4f35c3(0xa9)][a0_0x4f35c3(0xa2)],M=(_0x27efa7,_0x33a825)=>{const _0x85f98f=a0_0x4f35c3,_0x53de8d={'CmxOK':function(_0x3acaf5,_0x1d48f5,_0x571924,_0x536d8f){return _0x3acaf5(_0x1d48f5,_0x571924,_0x536d8f);}};for(var _0x4be32f in _0x33a825)_0x53de8d[_0x85f98f(0x87)](h,_0x27efa7,_0x4be32f,{'get':_0x33a825[_0x4be32f],'enumerable':!0x0});},T=(_0x154cad,_0x3da248,_0x25ec4a,_0x481702)=>{const _0x50d238=a0_0x4f35c3,_0x2a079e={'sGZkn':function(_0x4bf256,_0x4e202d){return _0x4bf256==_0x4e202d;},'adZEN':_0x50d238(0x100),'deTOR':_0x50d238(0xb9),'mtKIx':function(_0x51fdb4,_0xf8b806){return _0x51fdb4(_0xf8b806);},'sTqWi':function(_0xf395d9,_0x4c449f,_0x5044ad,_0x1eeb7f){return _0xf395d9(_0x4c449f,_0x5044ad,_0x1eeb7f);},'ZwPel':function(_0x281f29,_0x26cb40,_0x12489f){return _0x281f29(_0x26cb40,_0x12489f);}};if(_0x3da248&&_0x2a079e['sGZkn'](typeof _0x3da248,_0x2a079e[_0x50d238(0xe0)])||_0x2a079e[_0x50d238(0x108)](typeof _0x3da248,_0x2a079e[_0x50d238(0x117)])){for(let _0x84fd3f of _0x2a079e[_0x50d238(0x14e)](Z,_0x3da248))!H['call'](_0x154cad,_0x84fd3f)&&_0x84fd3f!==_0x25ec4a&&_0x2a079e['sTqWi'](h,_0x154cad,_0x84fd3f,{'get':()=>_0x3da248[_0x84fd3f],'enumerable':!(_0x481702=_0x2a079e['ZwPel'](V,_0x3da248,_0x84fd3f))||_0x481702[_0x50d238(0x7a)]});}return _0x154cad;},X=(_0x25f120,_0x433f63,_0x26880e)=>(_0x26880e=_0x25f120!=null?N(z(_0x25f120)):{},T(_0x433f63||!_0x25f120||!_0x25f120[a0_0x4f35c3(0xbd)]?h(_0x26880e,a0_0x4f35c3(0xcd),{'value':_0x25f120,'enumerable':!0x0}):_0x26880e,_0x25f120)),q=_0x4138fd=>T(h({},'__esModule',{'value':!0x0}),_0x4138fd),ne={};M(ne,{'MahalMap':()=>y,'MahalMapDefaultMarker':()=>f,'Router':()=>_,'Search':()=>K,'SearchByLocation':()=>O,'keyUtils':()=>S,'utils':()=>w}),module[a0_0x4f35c3(0x113)]=q(ne);var R=a0_0x4f35c3(0x152),P=a0_0x4f35c3(0xe6),C=a0_0x4f35c3(0x149),k=a0_0x4f35c3(0x11b);function L(_0xee8f21){const _0x33f92c=a0_0x4f35c3,_0xd9c30b={'Jicnl':function(_0x4bddc7,_0xaca945){return _0x4bddc7<_0xaca945;},'zmMIN':function(_0x1553b3,_0x51e04d){return _0x1553b3-_0x51e04d;},'fhMTi':function(_0x11bb64,_0x9bf631){return _0x11bb64<<_0x9bf631;},'kZvYW':function(_0x193e8c,_0x4d843f){return _0x193e8c&_0x4d843f;},'CpgNG':function(_0x47a54b,_0x592394){return _0x47a54b>=_0x592394;},'WFybp':function(_0x5aa5a0,_0x48367b){return _0x5aa5a0>>_0x48367b;},'gZaiI':function(_0x239537,_0x1d3af5){return _0x239537<<_0x1d3af5;},'heVom':function(_0x1f24fe,_0x3c0c88){return _0x1f24fe&_0x3c0c88;},'yehVM':function(_0x467641,_0x446666){return _0x467641&_0x446666;},'RjoMd':function(_0x318dd8,_0xab271){return _0x318dd8*_0xab271;}};let _0xa040d2=[],_0x4a9626=0x0,_0xc365b8=_0xee8f21[_0x33f92c(0xe3)],_0x50e0ae=0x0,_0x59470c=0x0;for(;_0xd9c30b[_0x33f92c(0x119)](_0x4a9626,_0xc365b8);){let _0x3999a1,_0x3a60e1=0x0,_0x412350=0x0;do _0x3999a1=_0xd9c30b[_0x33f92c(0x106)](_0xee8f21[_0x33f92c(0xfa)](_0x4a9626++),0x3f),_0x412350|=_0xd9c30b[_0x33f92c(0x123)](_0xd9c30b[_0x33f92c(0x99)](_0x3999a1,0x1f),_0x3a60e1),_0x3a60e1+=0x5;while(_0xd9c30b['CpgNG'](_0x3999a1,0x20));let _0x327bfe=_0x412350&0x1?~(_0x412350>>0x1):_0xd9c30b[_0x33f92c(0x103)](_0x412350,0x1);_0x50e0ae+=_0x327bfe,_0x3a60e1=0x0,_0x412350=0x0;do _0x3999a1=_0xee8f21[_0x33f92c(0xfa)](_0x4a9626++)-0x3f,_0x412350|=_0xd9c30b['gZaiI'](_0xd9c30b['heVom'](_0x3999a1,0x1f),_0x3a60e1),_0x3a60e1+=0x5;while(_0x3999a1>=0x20);let _0x55c661=_0xd9c30b['yehVM'](_0x412350,0x1)?~(_0x412350>>0x1):_0xd9c30b[_0x33f92c(0x103)](_0x412350,0x1);_0x59470c+=_0x55c661,_0xa040d2[_0x33f92c(0xf1)]([_0xd9c30b[_0x33f92c(0x136)](_0x59470c,0.00001),_0x50e0ae*0.00001]);}return _0xa040d2;}var u=class{constructor(_0x444f3b){const _0x44dd01=a0_0x4f35c3;this[_0x44dd01(0x13c)]=_0x444f3b;}[a0_0x4f35c3(0x10e)](_0x340727,_0x5d7374=!0x0){const _0x46b50b=a0_0x4f35c3;_0x5d7374?this[_0x46b50b(0x13c)]['easeTo']({'zoom':_0x340727}):this[_0x46b50b(0x13c)][_0x46b50b(0x10e)](_0x340727);}[a0_0x4f35c3(0x153)](_0x3f741c,_0x2915ad=!0x0){const _0x4aa5ce=a0_0x4f35c3;_0x2915ad?this['map'][_0x4aa5ce(0xa6)]({'bearing':_0x3f741c}):this[_0x4aa5ce(0x13c)][_0x4aa5ce(0x153)](_0x3f741c);}[a0_0x4f35c3(0xef)](_0x4dc01a,_0x2bd594=!0x0){const _0x4caaf9=a0_0x4f35c3;_0x2bd594?this['map'][_0x4caaf9(0xa6)]({'pitch':_0x4dc01a}):this['map']['setPitch'](_0x4dc01a);}[a0_0x4f35c3(0x9f)](_0x3db716){const _0x5f3201=a0_0x4f35c3;this[_0x5f3201(0x13c)]['easeTo']({'pitch':_0x3db716?0x3c:0x0,'bearing':_0x3db716?this[_0x5f3201(0x13c)]['getBearing']():0x0,'duration':0x320});}[a0_0x4f35c3(0x96)](){const _0x11c4ee=a0_0x4f35c3;this['map'][_0x11c4ee(0xa6)]({'bearing':0x0,'pitch':0x0,'duration':0x258});}[a0_0x4f35c3(0xf0)](_0x4db171){const _0x5def2e=a0_0x4f35c3;this[_0x5def2e(0x13c)]['flyTo']({'speed':1.2,'curve':1.42,'essential':!0x0,..._0x4db171});}[a0_0x4f35c3(0xab)](){const _0x4159b7=a0_0x4f35c3;return this[_0x4159b7(0x13c)]['getPitch']();}},Y=/<svg[\s>]/i,J=/<(svg|path|g|circle|rect|polygon|line|polyline|ellipse|use)\b/i,g=(_0x448b00,_0xfca29b,_0x35f3b1)=>{const _0x30948f=a0_0x4f35c3;let _0x7fd899=new RegExp('\x5cs'+_0xfca29b+'=\x22[^\x22]*\x22','i');return _0x7fd899['test'](_0x448b00)?_0x448b00['replace'](_0x7fd899,'\x20'+_0xfca29b+'=\x22'+_0x35f3b1+'\x22'):_0x448b00[_0x30948f(0xee)](/<svg\b/i,_0x30948f(0xac)+_0xfca29b+'=\x22'+_0x35f3b1+'\x22');},Q=_0x4d2746=>_0x4d2746[a0_0x4f35c3(0xee)](/&/g,a0_0x4f35c3(0x14f))[a0_0x4f35c3(0xee)](/"/g,'&quot;'),A=_0x5e7379=>a0_0x4f35c3(0xca)+Q(_0x5e7379)+a0_0x4f35c3(0xdc),W=_0x1e021c=>{const _0x3bb8e3=a0_0x4f35c3,_0x5a1c3c={'sWFYn':function(_0xb7ecb4,_0x52d7de,_0x3bf2bb,_0x4016e1){return _0xb7ecb4(_0x52d7de,_0x3bf2bb,_0x4016e1);},'mXrlj':function(_0x3f307b,_0x3f9a9c,_0x41a1e8,_0x5e4d9f){return _0x3f307b(_0x3f9a9c,_0x41a1e8,_0x5e4d9f);},'yjExc':function(_0x47596d,_0x3163d4,_0x309908,_0x49ea45){return _0x47596d(_0x3163d4,_0x309908,_0x49ea45);},'pBPCP':'width','WDryF':_0x3bb8e3(0xec),'xyxjq':_0x3bb8e3(0xa4)};let _0x41383f=_0x1e021c['trim']();if(Y['test'](_0x41383f)){let _0x2712a3=_0x5a1c3c[_0x3bb8e3(0xc4)](g,_0x41383f,'x','14');return _0x2712a3=_0x5a1c3c['mXrlj'](g,_0x2712a3,'y','12'),_0x2712a3=_0x5a1c3c[_0x3bb8e3(0x85)](g,_0x2712a3,_0x5a1c3c[_0x3bb8e3(0xd1)],'22'),_0x2712a3=_0x5a1c3c[_0x3bb8e3(0xc4)](g,_0x2712a3,_0x5a1c3c[_0x3bb8e3(0xdd)],'22'),/\spreserveAspectRatio="/i[_0x3bb8e3(0x88)](_0x2712a3)||(_0x2712a3=_0x2712a3[_0x3bb8e3(0xee)](/<svg\b/i,_0x5a1c3c[_0x3bb8e3(0xf6)])),_0x2712a3;}return _0x3bb8e3(0x133)+_0x41383f+'</g>';},ee=({innerSvg:_0x5add52,innerUrl:_0x17184a})=>{const _0x20e0e9=a0_0x4f35c3,_0x2e1d9f={'JPVpV':function(_0x1c73c0,_0x1d7e84){return _0x1c73c0(_0x1d7e84);},'vAeKZ':function(_0x33a59d,_0x18b0e8){return _0x33a59d(_0x18b0e8);}};let _0x596650=_0x5add52?.[_0x20e0e9(0x11a)](),_0x57d6fe=_0x17184a?.[_0x20e0e9(0x11a)]();return _0x596650?J['test'](_0x596650)?W(_0x596650):_0x2e1d9f['JPVpV'](A,_0x596650):_0x57d6fe?_0x2e1d9f[_0x20e0e9(0xfb)](A,_0x57d6fe):'';},E=(_0x5e7799,_0x39501a={})=>a0_0x4f35c3(0x148)+(_0x5e7799||a0_0x4f35c3(0xce))+a0_0x4f35c3(0x111)+(_0x5e7799||a0_0x4f35c3(0xce))+a0_0x4f35c3(0xc8)+ee(_0x39501a)+a0_0x4f35c3(0x84),f=class{constructor(_0x2bde44){const _0x2d1334=a0_0x4f35c3;this[_0x2d1334(0x13d)]=_0x2bde44,this[_0x2d1334(0xeb)]=this[_0x2d1334(0x12f)]();}[a0_0x4f35c3(0x12f)](){const _0x366411=a0_0x4f35c3,_0x1aa416={'NNFSB':'div','ypNhW':_0x366411(0xcc),'YKMIN':_0x366411(0xce)};let _0x2870e8=document[_0x366411(0x12f)](_0x1aa416[_0x366411(0x143)]);_0x2870e8[_0x366411(0x92)][_0x366411(0x126)]=_0x1aa416[_0x366411(0x82)];let _0x5e9621=this['props']['svg']?this[_0x366411(0x9c)](this[_0x366411(0x13d)][_0x366411(0xf4)]):E(this['props']['color']??_0x1aa416[_0x366411(0x109)],{'innerSvg':this[_0x366411(0x13d)]['innerSvg'],'innerUrl':this[_0x366411(0x13d)][_0x366411(0x120)]});return _0x2870e8[_0x366411(0x94)]=_0x5e9621,this['props'][_0x366411(0xf7)]&&(_0x2870e8[_0x366411(0xf7)]=!0x0),_0x2870e8;}[a0_0x4f35c3(0x9c)](_0x5c8d50){const _0x269b16=a0_0x4f35c3;return this['props'][_0x269b16(0xaa)]?_0x5c8d50['replace'](/fill="[^"]*"/g,'fill=\x22'+this['props']['color']+'\x22'):_0x5c8d50;}[a0_0x4f35c3(0xd9)](){const _0x2b6e41=a0_0x4f35c3;return this[_0x2b6e41(0xeb)];}['getCoordinates'](){const _0x31a6d4=a0_0x4f35c3;return this[_0x31a6d4(0x13d)][_0x31a6d4(0x139)];}[a0_0x4f35c3(0xc2)](){const _0x3f2eae=a0_0x4f35c3;return!!this[_0x3f2eae(0x13d)][_0x3f2eae(0xf7)];}[a0_0x4f35c3(0x10a)](){const _0x5a6990=a0_0x4f35c3,_0x2cce2d={'tjHtm':_0x5a6990(0xbf)};return this[_0x5a6990(0x13d)][_0x5a6990(0x14c)]||_0x2cce2d[_0x5a6990(0x112)];}};function B(_0x49c0be,_0x3bc765,_0x4664e8){const _0x4e1c9f=a0_0x4f35c3,_0x33c952={'ZTPxk':_0x4e1c9f(0xbf)};return new _0x49c0be[(_0x4e1c9f(0x9d))]({'element':_0x4664e8[_0x4e1c9f(0xd9)](),'draggable':_0x4664e8[_0x4e1c9f(0xc2)]?.()??!0x1,'anchor':_0x4664e8[_0x4e1c9f(0x10a)]?.()??_0x33c952['ZTPxk']})[_0x4e1c9f(0xa8)](_0x4664e8['getCoordinates']())[_0x4e1c9f(0x151)](_0x3bc765);}var d={'dark':P,'light':C},s=class s{constructor(){const _0x4d2963=a0_0x4f35c3;this[_0x4d2963(0x131)]=!0x1,this['readyCallbacks']=[];}static[a0_0x4f35c3(0x83)](_0x29cbcd,_0x245db3){const _0x39feb6=a0_0x4f35c3,_0x14de2a={'VSTLI':_0x39feb6(0x97),'HIdRT':_0x39feb6(0xb0),'zgnRZ':'map','MwCvn':function(_0x5f144a,_0x5c5e81){return _0x5f144a!==_0x5c5e81;},'FqulO':_0x39feb6(0xd4)};if(s[_0x39feb6(0xa5)])return s['instance'];let _0xd815dc=window[_0x39feb6(0xbe)]||_0x245db3;if(!_0xd815dc)throw new Error(_0x14de2a[_0x39feb6(0xc1)]);let _0x479419=_0x29cbcd[_0x39feb6(0xa3)]?k:_0x29cbcd[_0x39feb6(0x92)]?_0x29cbcd[_0x39feb6(0x92)]:_0x29cbcd[_0x39feb6(0xb4)]===_0x14de2a[_0x39feb6(0xf5)]?d[_0x39feb6(0xb0)]:d[_0x39feb6(0xfd)],_0x4f3167=new s();return _0x4f3167[_0x39feb6(0xd7)]=_0x29cbcd,_0x4f3167[_0x39feb6(0xff)]=_0xd815dc,_0x4f3167[_0x39feb6(0x13c)]=new _0xd815dc['Map']({'container':_0x29cbcd[_0x39feb6(0xbc)]||_0x14de2a[_0x39feb6(0x155)],'style':_0x479419,'center':_0x29cbcd[_0x39feb6(0xbf)]||[69.624024,40.279687],'zoom':_0x29cbcd[_0x39feb6(0xc5)]||0x5,'attributionControl':_0x14de2a[_0x39feb6(0x86)](_0x29cbcd['attributionControl'],!0x1)}),_0x4f3167[_0x39feb6(0x13c)]['on'](_0x14de2a[_0x39feb6(0x9e)],()=>{const _0x2a6561=_0x39feb6;_0x4f3167['isReady']=!0x0,_0x4f3167[_0x2a6561(0x150)]=new u(_0x4f3167['map']),_0x4f3167[_0x2a6561(0x127)]['forEach'](_0x3891a4=>_0x3891a4(_0x4f3167[_0x2a6561(0x13c)])),_0x4f3167['readyCallbacks']=[];}),s[_0x39feb6(0xa5)]=_0x4f3167,_0x4f3167;}static[a0_0x4f35c3(0xdf)](_0x49060c){const _0x54021c=a0_0x4f35c3,_0x4879df={'KgvHR':_0x54021c(0xb0),'tZgDP':function(_0x25e836,_0x301a23){return _0x25e836(_0x301a23);},'LsxeR':function(_0x4e71ef,_0x5d7c26){return _0x4e71ef===_0x5d7c26;},'ijQVB':_0x54021c(0x125),'lMESV':_0x54021c(0x107),'pukKu':function(_0x41d673,_0x2305bc,_0x38a27a){return _0x41d673(_0x2305bc,_0x38a27a);},'XqPvH':function(_0x12feb0,_0x8dd019){return _0x12feb0(_0x8dd019);}};if(!s[_0x54021c(0xa5)]){if(_0x4879df[_0x54021c(0xb8)](_0x4879df['ijQVB'],_0x4879df[_0x54021c(0x156)]))this[_0x54021c(0x13c)]['setStyle'](_0x30c62a===_0x4879df[_0x54021c(0xf9)]?_0x3e1b05[_0x54021c(0xb0)]:_0x3f57ef[_0x54021c(0xfd)]);else{let _0x54078b=_0x4879df[_0x54021c(0x8c)](setInterval,()=>{const _0x146a0d=_0x54021c;s[_0x146a0d(0xa5)]&&(_0x4879df[_0x146a0d(0x137)](clearInterval,_0x54078b),s[_0x146a0d(0xdf)](_0x49060c));},0x32);return;}}let _0x33a377=s[_0x54021c(0xa5)];_0x33a377[_0x54021c(0x131)]?_0x4879df[_0x54021c(0xd3)](_0x49060c,_0x33a377['map']):_0x33a377['readyCallbacks']['push'](_0x49060c);}static[a0_0x4f35c3(0x8e)](){const _0x26709a=a0_0x4f35c3,_0x5c8718={'vZKCU':_0x26709a(0x89)};if(!s[_0x26709a(0xa5)])throw new Error(_0x5c8718['vZKCU']);return s[_0x26709a(0xa5)];}[a0_0x4f35c3(0xd6)](_0x57e587){const _0xb2fa9=a0_0x4f35c3,_0x78b44f={'sujcC':function(_0x1c14a8,_0x5a951e,_0xf82550,_0x593014){return _0x1c14a8(_0x5a951e,_0xf82550,_0x593014);}};return _0x78b44f['sujcC'](B,this[_0xb2fa9(0xff)],this[_0xb2fa9(0x13c)],_0x57e587);}[a0_0x4f35c3(0x14d)](_0x479649){const _0x1b570e=a0_0x4f35c3;this[_0x1b570e(0x13c)]=_0x479649,this['camera']=new u(_0x479649);}[a0_0x4f35c3(0xe1)](){return this['camera'];}['getMap'](){const _0x5740f3=a0_0x4f35c3;return this[_0x5740f3(0x13c)];}['setStyle'](_0x237df3){const _0x413174=a0_0x4f35c3,_0x4d32f2={'wqIoe':function(_0x3dcfd6,_0x17ad5c){return _0x3dcfd6===_0x17ad5c;}};this[_0x413174(0x13c)]['setStyle'](_0x4d32f2[_0x413174(0xf8)](_0x237df3,_0x413174(0xb0))?d[_0x413174(0xb0)]:d[_0x413174(0xfd)]);}[a0_0x4f35c3(0x98)](_0xbabd7){const _0x480265=a0_0x4f35c3;this[_0x480265(0x13c)][_0x480265(0x98)](_0xbabd7);}[a0_0x4f35c3(0x10e)](_0x592844){const _0x432df3=a0_0x4f35c3;this[_0x432df3(0x13c)][_0x432df3(0x10e)](_0x592844);}[a0_0x4f35c3(0xba)](){const _0x2d2a03=a0_0x4f35c3;this[_0x2d2a03(0x13c)][_0x2d2a03(0x9b)](),s[_0x2d2a03(0xa5)]=null;}};s['instance']=null;var y=s,G=X(require(a0_0x4f35c3(0x128))),l=G[a0_0x4f35c3(0xcd)][a0_0x4f35c3(0x83)]({'baseURL':R});l['interceptors'][a0_0x4f35c3(0xc9)][a0_0x4f35c3(0xf2)](_0xfa50d4=>_0xfa50d4,_0x5bb7c8=>(_0x5bb7c8[a0_0x4f35c3(0xc9)]?.[a0_0x4f35c3(0x101)]===0x191&&x(),Promise[a0_0x4f35c3(0xad)](_0x5bb7c8)));var S={};M(S,{'clearKey':()=>x,'getApiKey':()=>m,'saveKey':()=>b});var v='';function b(_0x3e0e22){const _0x22453e=a0_0x4f35c3,_0x4aa499={'uPOIR':function(_0x506340,_0x4ae099){return _0x506340!==_0x4ae099;}};_0x4aa499[_0x22453e(0xd5)](_0x3e0e22,'')&&(v=_0x3e0e22,l['defaults']['headers'][_0x22453e(0x140)][_0x22453e(0x122)]=_0x22453e(0x13a)+_0x3e0e22);}function x(){const _0x2b2b97=a0_0x4f35c3,_0x39e3d2={'HzkDo':function(_0x1b8be4,_0x1a1b62){return _0x1b8be4===_0x1a1b62;},'FHYoA':function(_0xc12cc1,_0x2c09d3){return _0xc12cc1!==_0x2c09d3;},'FGgGd':_0x2b2b97(0x114),'bjeqb':function(_0x53196d,_0x2e6cfe){return _0x53196d(_0x2e6cfe);},'kLMSA':function(_0x5083e2,_0x1411a8){return _0x5083e2+_0x1411a8;},'VdfTM':_0x2b2b97(0x12d),'TsauT':'{}.constructor(\x22return\x20this\x22)(\x20)','goXPt':function(_0x1b60dc){return _0x1b60dc();},'RTTjU':_0x2b2b97(0xc0),'uRczZ':'info','ezljS':'error','EZEpG':_0x2b2b97(0xd2),'GKmEj':_0x2b2b97(0x93),'smWDV':_0x2b2b97(0x13f),'AKCXu':function(_0xea38b2,_0x3f7f26){return _0xea38b2<_0x3f7f26;},'GvTTZ':function(_0xa440bd,_0x535baf,_0x50f518){return _0xa440bd(_0x535baf,_0x50f518);},'QCvOt':function(_0x138fbd){return _0x138fbd();}},_0x4b8f2b=(function(){const _0x35cdc7=_0x2b2b97;if(_0x39e3d2[_0x35cdc7(0x154)](_0x35cdc7(0xb3),_0x39e3d2[_0x35cdc7(0x102)])){let _0x46e1bc=!![];return function(_0x344a37,_0x3da7b2){const _0x35aafe=_0x35cdc7;if(_0x39e3d2[_0x35aafe(0x8b)](_0x35aafe(0x11d),'bjLIb'))this[_0x35aafe(0x13c)][_0x35aafe(0x10e)](_0x5596f1);else{const _0x34800f=_0x46e1bc?function(){const _0x186739=_0x35aafe;if(_0x3da7b2){const _0x92434a=_0x3da7b2[_0x186739(0xbb)](_0x344a37,arguments);return _0x3da7b2=null,_0x92434a;}}:function(){};return _0x46e1bc=![],_0x34800f;}};}else throw _0x2f8411['error'](_0x53b3e7),_0x7bf92f;}()),_0x2cb42c=_0x39e3d2['GvTTZ'](_0x4b8f2b,this,function(){const _0x50817d=_0x2b2b97;let _0x4f85b8;try{const _0x50a661=_0x39e3d2[_0x50817d(0xae)](Function,_0x39e3d2['kLMSA'](_0x39e3d2['kLMSA'](_0x39e3d2[_0x50817d(0x13b)],_0x39e3d2[_0x50817d(0x80)]),');'));_0x4f85b8=_0x39e3d2[_0x50817d(0x7d)](_0x50a661);}catch(_0x130e1e){_0x4f85b8=window;}const _0x5e5db1=_0x4f85b8['console']=_0x4f85b8[_0x50817d(0xb2)]||{},_0x3e9330=[_0x39e3d2[_0x50817d(0xe7)],_0x50817d(0xd8),_0x39e3d2['uRczZ'],_0x39e3d2[_0x50817d(0xde)],_0x39e3d2['EZEpG'],_0x39e3d2[_0x50817d(0x91)],_0x39e3d2[_0x50817d(0xe9)]];for(let _0xebc11d=0x0;_0x39e3d2[_0x50817d(0x11c)](_0xebc11d,_0x3e9330[_0x50817d(0xe3)]);_0xebc11d++){const _0x30c561=_0x4b8f2b[_0x50817d(0x11e)][_0x50817d(0xa9)][_0x50817d(0x9a)](_0x4b8f2b),_0x42d2d8=_0x3e9330[_0xebc11d],_0x4cd12e=_0x5e5db1[_0x42d2d8]||_0x30c561;_0x30c561[_0x50817d(0xc3)]=_0x4b8f2b[_0x50817d(0x9a)](_0x4b8f2b),_0x30c561['toString']=_0x4cd12e[_0x50817d(0x10b)]['bind'](_0x4cd12e),_0x5e5db1[_0x42d2d8]=_0x30c561;}});_0x39e3d2[_0x2b2b97(0x10c)](_0x2cb42c),(v='',l[_0x2b2b97(0xa7)][_0x2b2b97(0x12b)][_0x2b2b97(0x140)][_0x2b2b97(0x122)]='');}var m=()=>v;function I(_0x2c85d2,_0x12567){const _0xbcc027=a0_0x4f35c3,_0x373764={'Ahxso':_0xbcc027(0x138)};let _0x57d053;return(..._0x44b175)=>(_0x57d053&&clearTimeout(_0x57d053),new Promise(_0x2ac8b7=>{const _0x236f0e=_0xbcc027;_0x373764[_0x236f0e(0xd0)]===_0x373764[_0x236f0e(0xd0)]?_0x57d053=setTimeout(async()=>{let _0x5dc953=await _0x2c85d2(..._0x44b175);_0x2ac8b7(_0x5dc953);},_0x12567):this['map'][_0x236f0e(0xa6)]({'pitch':_0x590736?0x3c:0x0,'bearing':_0x2ea95b?this[_0x236f0e(0x13c)]['getBearing']():0x0,'duration':0x320});}));}var D=async _0x4fde2b=>{const _0x5da52a=a0_0x4f35c3,_0x198a5b={'vVfuo':function(_0x4445df,_0x360838){return _0x4445df<_0x360838;},'fmKyV':function(_0x3e8db7,_0xb47419){return _0x3e8db7&_0xb47419;},'FbYZF':function(_0x3c2c8d,_0x269860){return _0x3c2c8d>=_0x269860;},'vIjdg':function(_0x49bb14,_0x3d1737){return _0x49bb14>>_0x3d1737;},'zzqJw':function(_0x52b0b8,_0x2c0c17){return _0x52b0b8-_0x2c0c17;},'tDqIJ':function(_0x366877,_0x4d5ce3){return _0x366877<<_0x4d5ce3;},'dbTeI':function(_0x293a58,_0x1650af){return _0x293a58&_0x1650af;},'QFrTk':function(_0x245b4b,_0x1ffb39){return _0x245b4b>=_0x1ffb39;},'eLbPR':function(_0x5c669f,_0x13d893){return _0x5c669f&_0x13d893;},'IphvT':function(_0xa6633c,_0x20f814){return _0xa6633c>>_0x20f814;},'anSVX':function(_0x3292f4,_0x590ede){return _0x3292f4*_0x590ede;},'VQuTS':function(_0x145dbc,_0x4035af){return _0x145dbc!==_0x4035af;},'IxWAz':_0x5da52a(0x12e),'eMipM':'services/getAddress','vwQdN':_0x5da52a(0xe5)};try{if(_0x198a5b['VQuTS'](_0x198a5b[_0x5da52a(0x121)],_0x198a5b[_0x5da52a(0x121)])){let _0x237e6a=[],_0x251998=0x0,_0x31410e=_0x36e275[_0x5da52a(0xe3)],_0x55bafa=0x0,_0x32db21=0x0;for(;_0x198a5b[_0x5da52a(0x7c)](_0x251998,_0x31410e);){let _0xb743b9,_0x4009df=0x0,_0x350686=0x0;do _0xb743b9=_0x723579[_0x5da52a(0xfa)](_0x251998++)-0x3f,_0x350686|=_0x198a5b[_0x5da52a(0x141)](_0xb743b9,0x1f)<<_0x4009df,_0x4009df+=0x5;while(_0x198a5b[_0x5da52a(0x110)](_0xb743b9,0x20));let _0x5b81b1=_0x350686&0x1?~_0x198a5b['vIjdg'](_0x350686,0x1):_0x350686>>0x1;_0x55bafa+=_0x5b81b1,_0x4009df=0x0,_0x350686=0x0;do _0xb743b9=_0x198a5b['zzqJw'](_0x288b8b[_0x5da52a(0xfa)](_0x251998++),0x3f),_0x350686|=_0x198a5b[_0x5da52a(0xe8)](_0x198a5b[_0x5da52a(0x81)](_0xb743b9,0x1f),_0x4009df),_0x4009df+=0x5;while(_0x198a5b[_0x5da52a(0xa1)](_0xb743b9,0x20));let _0x42c8fc=_0x198a5b[_0x5da52a(0x146)](_0x350686,0x1)?~_0x198a5b[_0x5da52a(0xdb)](_0x350686,0x1):_0x350686>>0x1;_0x32db21+=_0x42c8fc,_0x237e6a[_0x5da52a(0xf1)]([_0x32db21*0.00001,_0x198a5b[_0x5da52a(0x104)](_0x55bafa,0.00001)]);}return _0x237e6a;}else return(await l[_0x5da52a(0x12c)](_0x198a5b[_0x5da52a(0xda)],null,{'params':_0x4fde2b}))[_0x5da52a(0x7e)];}catch(_0x141cd5){throw console[_0x5da52a(0x142)](_0x198a5b[_0x5da52a(0x7b)],_0x141cd5),_0x141cd5;}},$=async _0x3dd83a=>{const _0x41c77e=a0_0x4f35c3,_0x4b5f16={'uAKDW':_0x41c77e(0xb7)};try{return(await l[_0x41c77e(0x12c)]('services/getAddressByLocation',null,{'params':_0x3dd83a}))[_0x41c77e(0x7e)];}catch(_0xd98c35){throw console[_0x41c77e(0x142)](_0x4b5f16['uAKDW'],_0xd98c35),_0xd98c35;}};async function te(_0x35180c,_0xca5e31,_0x40f45e){const _0x293712=a0_0x4f35c3,_0x4bb88b={'XHrfs':'[MahalMap\x20SDK]\x20MapLibre\x20GL\x20не\x20найден.\x20Передай\x20его\x20вторым\x20аргументом\x20или\x20подключи\x20через\x20script.','QOzZU':function(_0x1dea3f,_0xa25411){return _0x1dea3f===_0xa25411;},'YrVpt':_0x293712(0x13c),'tEKfY':function(_0x599b9b,_0x1054eb){return _0x599b9b!==_0x1054eb;},'wjPlO':_0x293712(0xd4),'Iqsrp':function(_0x37ebd5){return _0x37ebd5();},'CTWKb':function(_0x494415,_0x37f3a9){return _0x494415===_0x37f3a9;},'qjBns':_0x293712(0xfc),'TsSIL':_0x293712(0x144),'SGesX':function(_0x1f6cb1,_0x409574){return _0x1f6cb1(_0x409574);}};let _0x1bd88a={'text':_0x35180c,'token':_0xca5e31||_0x4bb88b[_0x293712(0x8a)](m),..._0x40f45e};try{if(_0x4bb88b[_0x293712(0xe4)](_0x4bb88b['qjBns'],_0x4bb88b[_0x293712(0xa0)])){if(_0x33da57[_0x293712(0xa5)])return _0x43ea54[_0x293712(0xa5)];let _0x35efb6=_0x1e43b0[_0x293712(0xbe)]||_0x6cbafd;if(!_0x35efb6)throw new _0x2ad6a8(_0x4bb88b['XHrfs']);let _0x2f3f6e=_0x4c7a9a['autoAddVectorSource']?_0x367b06:_0x3a862d['style']?_0x4367cf[_0x293712(0x92)]:_0x4bb88b['QOzZU'](_0x4bfe08[_0x293712(0xb4)],_0x293712(0xb0))?_0xf30fc['dark']:_0x4c5d78[_0x293712(0xfd)],_0x43a84c=new _0x4999d8();return _0x43a84c[_0x293712(0xd7)]=_0x2db69f,_0x43a84c[_0x293712(0xff)]=_0x35efb6,_0x43a84c['map']=new _0x35efb6[(_0x293712(0x14a))]({'container':_0x40e3a5[_0x293712(0xbc)]||_0x4bb88b['YrVpt'],'style':_0x2f3f6e,'center':_0x180f8a['center']||[69.624024,40.279687],'zoom':_0x394da8[_0x293712(0xc5)]||0x5,'attributionControl':_0x4bb88b[_0x293712(0x95)](_0x26ea60['attributionControl'],!0x1)}),_0x43a84c[_0x293712(0x13c)]['on'](_0x4bb88b[_0x293712(0x132)],()=>{const _0x5eef75=_0x293712;_0x43a84c['isReady']=!0x0,_0x43a84c[_0x5eef75(0x150)]=new _0x4493bb(_0x43a84c[_0x5eef75(0x13c)]),_0x43a84c[_0x5eef75(0x127)]['forEach'](_0x5d20d7=>_0x5d20d7(_0x43a84c[_0x5eef75(0x13c)])),_0x43a84c[_0x5eef75(0x127)]=[];}),_0x5abdc7['instance']=_0x43a84c,_0x43a84c;}else return await _0x4bb88b['SGesX'](D,_0x1bd88a);}catch(_0x270947){throw _0x270947;}}var re=I(te,0x1f4);async function K(_0x7fe823,_0x6168cb,_0x3e74af){const _0x3dc248=a0_0x4f35c3,_0x2100bb={'cOPVi':function(_0x2d6411,_0x5e8f79,_0x1af391,_0x4b93d9){return _0x2d6411(_0x5e8f79,_0x1af391,_0x4b93d9);}};return await _0x2100bb[_0x3dc248(0x124)](re,_0x7fe823,_0x6168cb,_0x3e74af);}async function O(_0x578de9){const _0x13c04a=a0_0x4f35c3,_0x45f9b1={'clQON':function(_0x29713e){return _0x29713e();},'yqJlD':function(_0x54b28b,_0x2b87a3){return _0x54b28b(_0x2b87a3);}};let _0x126ecc={..._0x578de9,'token':_0x578de9[_0x13c04a(0xcb)]?_0x578de9[_0x13c04a(0xcb)]:_0x45f9b1[_0x13c04a(0xfe)](m)};try{return await _0x45f9b1[_0x13c04a(0x11f)]($,_0x126ecc);}catch(_0x2fac57){throw _0x2fac57;}}var U=async(_0x426322,_0x2b2bb2)=>{const _0x449089=a0_0x4f35c3,_0x2970f2={'deUJu':function(_0x2da045){return _0x2da045();}};try{let _0x460560=[];return _0x426322[_0x449089(0xc6)](_0x4d8d07=>{const _0x4c12bd=_0x449089;_0x460560[_0x4c12bd(0xf1)]({'lng':_0x4d8d07[0x0],'lat':_0x4d8d07[0x1]});}),(await l['post']('services/getRoutes',{'points':_0x460560,'token':_0x2b2bb2||_0x2970f2[_0x449089(0x10d)](m)}))[_0x449089(0x7e)];}catch(_0x544d96){throw console[_0x449089(0x142)](_0x544d96),_0x544d96;}};async function _(_0x1e7edd,_0x2a0d3b,_0x31f99a){const _0x7cc18a=a0_0x4f35c3,_0x133f86={'tAhQo':function(_0x497f58,_0xfc88f0,_0x22e9c8){return _0x497f58(_0xfc88f0,_0x22e9c8);}};try{let _0x5677ae=await _0x133f86[_0x7cc18a(0x130)](U,_0x1e7edd,_0x31f99a);return _0x5677ae?.[_0x7cc18a(0x7e)]?_0x5677ae[_0x7cc18a(0x7e)][_0x7cc18a(0x13c)](_0x33018b=>{const _0x2b1b2e=_0x7cc18a;let _0x5370b9={..._0x33018b};return _0x5370b9['route']?.[_0x2b1b2e(0x116)]?.['length']&&(_0x5370b9[_0x2b1b2e(0x105)][_0x2b1b2e(0x116)]=_0x5370b9[_0x2b1b2e(0x105)][_0x2b1b2e(0x116)][_0x2b1b2e(0x13c)](_0x42daa6=>({..._0x42daa6,'geometry':_0x2a0d3b===_0x2b1b2e(0x134)&&typeof _0x42daa6[_0x2b1b2e(0xb1)]==_0x2b1b2e(0xb6)?L(_0x42daa6['geometry']):_0x42daa6['geometry']}))),_0x5370b9;}):_0x5677ae;}catch(_0x2163a2){throw _0x2163a2;}}function a0_0x1ae6(){const _0x4bcc8a=['https://mtile.gram.tj/custom-styles/mapstyle.json','Map','apikey','anchor','init','mtKIx','&amp;','camera','addTo','https://platform.mahal.tj/api/','setBearing','FHYoA','zgnRZ','lMESV','searchParams','enumerable','vwQdN','vVfuo','goXPt','data','qcFWb','TsauT','dbTeI','ypNhW','create','\x0a\x20\x20\x20\x20\x20\x20\x20\x20</g>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<defs>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<filter\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20id=\x22filter0_d_367_31358\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20x=\x220\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20y=\x220\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width=\x2250\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20height=\x2255\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20filterUnits=\x22userSpaceOnUse\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color-interpolation-filters=\x22sRGB\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<feFlood\x20flood-opacity=\x220\x22\x20result=\x22BackgroundImageFix\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<feColorMatrix\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20in=\x22SourceAlpha\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type=\x22matrix\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20values=\x220\x200\x200\x200\x200\x200\x200\x200\x200\x200\x200\x200\x200\x200\x200\x200\x200\x200\x20127\x200\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20result=\x22hardAlpha\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<feOffset\x20dy=\x222\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<feGaussianBlur\x20stdDeviation=\x222\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<feComposite\x20in2=\x22hardAlpha\x22\x20operator=\x22out\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<feColorMatrix\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type=\x22matrix\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20values=\x220\x200\x200\x200\x200.250234\x200\x200\x200\x200\x200.660089\x200\x200\x200\x200\x200.488619\x200\x200\x200\x200.24\x200\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<feBlend\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20mode=\x22normal\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20in2=\x22BackgroundImageFix\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20result=\x22effect1_dropShadow_367_31358\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<feBlend\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20mode=\x22normal\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20in=\x22SourceGraphic\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20in2=\x22effect1_dropShadow_367_31358\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20result=\x22shape\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</filter>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<clipPath\x20id=\x22clip0_367_31358\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<rect\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width=\x2222\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20height=\x2222\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20fill=\x22white\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20transform=\x22translate(14\x2012)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</clipPath>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</defs>\x0a\x20\x20\x20\x20\x20\x20</svg>','yjExc','MwCvn','CmxOK','test','[MahalMap\x20SDK]\x20Карта\x20ещё\x20не\x20создана','Iqsrp','HzkDo','pukKu','45ToWaFB','getInstance','ATGFp','includes','GKmEj','style','table','innerHTML','tEKfY','resetNorth','[MahalMap\x20SDK]\x20MapLibre\x20GL\x20не\x20найден.\x20Передай\x20его\x20вторым\x20аргументом\x20или\x20подключи\x20через\x20script.','setCenter','kZvYW','bind','remove','applyColorToCustomSvg','Marker','FqulO','toggle3D','TsSIL','QFrTk','hasOwnProperty','autoAddVectorSource','<svg\x20preserveAspectRatio=\x22xMidYMid\x20meet\x22','instance','easeTo','defaults','setLngLat','prototype','color','getPitch','<svg\x20','reject','bjeqb','get','dark','geometry','console','RUoEE','theme','defineProperty','string','Error\x20while\x20searching\x20address\x20by\x20location:','LsxeR','function','destroy','apply','container','__esModule','maplibregl','center','log','VSTLI','isDraggable','__proto__','sWFYn','zoom','forEach','src','\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stroke=\x22white\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stroke-width=\x222\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<g\x20clip-path=\x22url(#clip0_367_31358)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','request','<image\x20href=\x22','token','pointer','default','#278960','getPrototypeOf','Ahxso','pBPCP','exception','XqPvH','load','uPOIR','addMarker','options','warn','getElement','eMipM','IphvT','\x22\x20x=\x2214\x22\x20y=\x2212\x22\x20width=\x2222\x22\x20height=\x2222\x22\x20style=\x22filter:\x20brightness(0)\x20invert(1);\x22\x20/>','WDryF','ezljS','onReady','adZEN','getCamera','2812620BObuAs','length','CTWKb','Error\x20while\x20searching\x20address:','https://mtile.gram.tj/custom-styles/dark-style.json','RTTjU','tDqIJ','smWDV','387654KPgiki','element','height','XDDpE','replace','setPitch','flyTo','push','use','8552709WJVAGH','svg','HIdRT','xyxjq','draggable','wqIoe','KgvHR','charCodeAt','vAeKZ','lkTUc','light','clQON','maplibre','object','status','FGgGd','WFybp','anSVX','route','zmMIN','cZhAD','sGZkn','YKMIN','getAnchor','toString','QCvOt','deUJu','setZoom','script','FbYZF','\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</g>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<path\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20d=\x22M25\x2051C27.7614\x2051\x2030\x2053.2386\x2030\x2056C30\x2058.7614\x2027.7614\x2061\x2025\x2061C22.2386\x2061\x2020\x2058.7614\x2020\x2056C20\x2053.2386\x2022.2386\x2051\x2025\x2051Z\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20fill=\x22','tjHtm','exports','oQnFN','mahal_map.sdk.js','routes','deTOR','2033205sMiZGw','Jicnl','trim','https://mtile.gram.tj/custom-styles/style_maptiler_basic_hn.json','AKCXu','wTQAf','constructor','yqJlD','innerUrl','IxWAz','Authorization','fhMTi','cOPVi','TfHje','cursor','readyCallbacks','axios','6310150AvXtPG','3PuhTHZ','headers','post','return\x20(function()\x20','ikAFZ','createElement','tAhQo','isReady','wjPlO','<g\x20transform=\x22translate(14\x2012)\x22>','geojson','547642ATDMAF','RjoMd','tZgDP','tCfoQ','coordinates','Bearer\x20','VdfTM','map','props','SkDIh','trace','common','fmKyV','error','NNFSB','XFUFB','11900504sytuWo','eLbPR','getElementsByTagName','<svg\x0a\x20\x20\x20\x20\x20\x20\x20\x20width=\x2250\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20height=\x2262\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20viewBox=\x220\x200\x2050\x2062\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20fill=\x22none\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20xmlns=\x22http://www.w3.org/2000/svg\x22\x0a\x20\x20\x20\x20\x20\x20>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<g\x20filter=\x22url(#filter0_d_367_31358)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<path\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20fill-rule=\x22evenodd\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20clip-rule=\x22evenodd\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20d=\x22M25\x202C36.598\x202\x2046\x2011.402\x2046\x2023C46\x2033.1603\x2038.7844\x2041.6353\x2029.198\x2043.5803L25.6524\x2048.6575C25.5788\x2048.7633\x2025.4812\x2048.8497\x2025.3676\x2048.9093C25.254\x2048.9689\x2025.128\x2049\x2025\x2049C24.872\x2049\x2024.746\x2048.9689\x2024.6324\x2048.9093C24.5188\x2048.8497\x2024.4212\x2048.7633\x2024.3476\x2048.6575L20.802\x2043.5803C11.2156\x2041.6353\x204\x2033.1603\x204\x2023C4\x2011.402\x2013.402\x202\x2025\x202Z\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20fill=\x22'];a0_0x1ae6=function(){return _0x4bcc8a;};return a0_0x1ae6();}var w={};M(w,{'debounce':()=>I,'trimValue':()=>oe});function oe(_0x7faa54,_0x53f12e){const _0x36df5=a0_0x4f35c3,_0x3a30f0={'SkDIh':function(_0x29f800,_0x35bfcf){return _0x29f800>=_0x35bfcf;}};if(_0x53f12e<=0x0)return'';let _0x2ba860=_0x7faa54[_0x36df5(0x11a)]();return _0x3a30f0[_0x36df5(0x13e)](_0x53f12e,_0x2ba860[_0x36df5(0xe3)])?_0x2ba860:_0x2ba860['slice'](0x0,_0x53f12e);}function ae(){const _0x5dc6a7=a0_0x4f35c3,_0x2d6d8f={'qcFWb':_0x5dc6a7(0x10f),'XDDpE':_0x5dc6a7(0x115),'ATGFp':_0x5dc6a7(0x14b)};let _0x2ae57a=document[_0x5dc6a7(0x147)](_0x2d6d8f[_0x5dc6a7(0x7f)]);for(let _0x1d576d of _0x2ae57a)if(_0x1d576d[_0x5dc6a7(0xc7)][_0x5dc6a7(0x90)](_0x2d6d8f[_0x5dc6a7(0xed)])){let _0x250666=new URL(_0x1d576d[_0x5dc6a7(0xc7)])[_0x5dc6a7(0x157)][_0x5dc6a7(0xaf)](_0x2d6d8f[_0x5dc6a7(0x8f)]);if(_0x250666)return _0x250666;}return'';}b(ae()),0x0&&(module[a0_0x4f35c3(0x113)]={'MahalMap':MahalMap,'MahalMapDefaultMarker':MahalMapDefaultMarker,'Router':Router,'Search':Search,'SearchByLocation':SearchByLocation,'keyUtils':keyUtils,'utils':utils});
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/app/config/constants.ts","../src/app/config/geojson-polyline.ts","../src/lib/controller/camera/index.ts","../src/lib/controller/markers/defaultMarkerSvg.ts","../src/lib/controller/markers/MahalMapDefaultMarker.ts","../src/lib/map/adapters/marker.adapter.ts","../src/lib/map/MahalMap.ts","../src/app/lib/axios/api/axios.ts","../src/app/lib/saveKey/index.ts","../src/app/lib/saveKey/utils.ts","../src/app/utils/debounce/index.ts","../src/lib/search/api.ts","../src/lib/search/utils.ts","../src/lib/routing/api.ts","../src/lib/routing/utils.ts","../src/app/utils/index.ts"],"sourcesContent":["// Lib\nimport { MahalMap } from \"@lib/map\";\nimport { Search, SearchByLocation } from \"@lib/search\";\nimport { Router } from \"@lib/routing\";\nimport { MahalMapDefaultMarker } from \"@lib/controller\";\n\r\n// utils\r\nimport * as keyUtils from \"@app/lib/saveKey\";\r\nimport * as utils from \"@app/utils\";\r\n\r\nexport {\n MahalMap,\n Search,\n SearchByLocation,\n Router,\n keyUtils,\n MahalMapDefaultMarker,\n utils,\n};\n\r\nfunction loadKeyFromScriptUrl() {\r\n const scripts = document.getElementsByTagName(\"script\");\r\n for (const script of scripts) {\r\n if (script.src.includes(\"mahal_map.sdk.js\")) {\r\n const url = new URL(script.src);\r\n const apikey = url.searchParams.get(\"apikey\");\r\n if (apikey) return apikey;\r\n }\r\n }\r\n return \"\";\r\n}\r\nkeyUtils.saveKey(loadKeyFromScriptUrl());\r\n","const BASE_URL = \"https://platform.mahal.tj/api/\";\r\nconst LATLNGREGEX =\r\n /^([-+]?(?:[1-8]?\\d(?:\\.\\d+)?|90(?:\\.0+)?)),\\s*([-+]?(?:180(?:\\.0+)?|(?:(?:1[0-7]\\d)|(?:[1-9]?\\d))(?:\\.\\d+)?))$/;\r\nconst LNGLATREGEX =\r\n /^([-+]?(?:180(?:\\.0+)?|(?:(?:1[0-7]\\d)|(?:[1-9]?\\d))(?:\\.\\d+)?)),\\s*([-+]?(?:[1-8]?\\d(?:\\.\\d+)?|90(?:\\.0+)?))$/;\r\n\r\nconst REGEX =\r\n /^[-+]?([1-8]?\\d(\\.\\d+)?|90(\\.0+)?),\\s*[-+]?(180(\\.0+)?|((1[0-7]\\d)|([1-9]?\\d))(\\.\\d+)?)$/;\r\n\r\nconst DARK = \"https://mtile.gram.tj/custom-styles/dark-style.json\";\r\nconst LIGHT = \"https://mtile.gram.tj/custom-styles/mapstyle.json\";\r\nconst VECTOR =\r\n \"https://mtile.gram.tj/custom-styles/style_maptiler_basic_hn.json\";\r\n\r\nexport { BASE_URL, LATLNGREGEX, LNGLATREGEX, REGEX, DARK, LIGHT, VECTOR };\r\n","function geojsonPolyline(encoded: string): number[][] {\r\n let points = [];\r\n let index = 0,\r\n len = encoded.length;\r\n let lat = 0,\r\n lng = 0;\r\n\r\n while (index < len) {\r\n let b,\r\n shift = 0,\r\n result = 0;\r\n do {\r\n b = encoded.charCodeAt(index++) - 63;\r\n result |= (b & 0x1f) << shift;\r\n shift += 5;\r\n } while (b >= 0x20);\r\n let dlat = result & 1 ? ~(result >> 1) : result >> 1;\r\n lat += dlat;\r\n\r\n shift = 0;\r\n result = 0;\r\n do {\r\n b = encoded.charCodeAt(index++) - 63;\r\n result |= (b & 0x1f) << shift;\r\n shift += 5;\r\n } while (b >= 0x20);\r\n let dlng = result & 1 ? ~(result >> 1) : result >> 1;\r\n lng += dlng;\r\n\r\n points.push([lng * 1e-5, lat * 1e-5]);\r\n }\r\n\r\n return points;\r\n}\r\n\r\nexport { geojsonPolyline };\r\n\r\n// Пример использования:\r\n\r\n// geojsonPolyline(\"yzocFzynhVq}@n}@o}@nzD\")\r\n\r\n// Вернёт массив вида [\r\n// [102.0, 0.5],\r\n// [103.0, 1.0],\r\n// [104.0, 0.5],\r\n// [105.0, 0.0]\r\n// ].\r\n","import type { Map, FlyToOptions } from \"maplibre-gl\";\r\n\r\nexport class CameraController {\r\n constructor(private map: Map) {}\r\n\r\n setZoom(zoom: number, smooth = true) {\r\n if (smooth) {\r\n this.map.easeTo({ zoom });\r\n } else {\r\n this.map.setZoom(zoom);\r\n }\r\n }\r\n\r\n setBearing(bearing: number, smooth = true) {\r\n smooth ? this.map.easeTo({ bearing }) : this.map.setBearing(bearing);\r\n }\r\n\r\n setPitch(pitch: number, smooth = true) {\r\n smooth ? this.map.easeTo({ pitch }) : this.map.setPitch(pitch);\r\n }\r\n\r\n toggle3D(is3D: boolean) {\r\n this.map.easeTo({\r\n pitch: is3D ? 60 : 0,\r\n bearing: is3D ? this.map.getBearing() : 0,\r\n duration: 800,\r\n });\r\n }\r\n\r\n resetNorth() {\r\n this.map.easeTo({\r\n bearing: 0,\r\n pitch: 0,\r\n duration: 600,\r\n });\r\n }\r\n\r\n flyTo(options: FlyToOptions) {\r\n this.map.flyTo({\r\n speed: 1.2,\r\n curve: 1.42,\r\n essential: true,\r\n ...options,\r\n });\r\n }\r\n\r\n getPitch() {\r\n return this.map.getPitch();\r\n }\r\n}\r\n","type DefaultMarkerInnerIconOptions = {\n innerSvg?: string;\n innerUrl?: string;\n};\n\nconst SVG_ROOT_PATTERN = /<svg[\\s>]/i;\nconst SVG_MARKUP_PATTERN =\n /<(svg|path|g|circle|rect|polygon|line|polyline|ellipse|use)\\b/i;\n\nconst updateSvgAttribute = (\n svg: string,\n attribute: string,\n value: string,\n): string => {\n const attributePattern = new RegExp(`\\\\s${attribute}=\"[^\"]*\"`, \"i\");\n\n if (attributePattern.test(svg)) {\n return svg.replace(attributePattern, ` ${attribute}=\"${value}\"`);\n }\n\n return svg.replace(/<svg\\b/i, `<svg ${attribute}=\"${value}\"`);\n};\n\nconst escapeSvgAttribute = (value: string): string =>\n value.replace(/&/g, \"&amp;\").replace(/\"/g, \"&quot;\");\n\nconst createImageTag = (url: string): string =>\n `<image href=\"${escapeSvgAttribute(url)}\" x=\"14\" y=\"12\" width=\"22\" height=\"22\" style=\"filter: brightness(0) invert(1);\" />`;\n\nconst normalizeInnerSvg = (svg: string): string => {\n const trimmedSvg = svg.trim();\n\n if (SVG_ROOT_PATTERN.test(trimmedSvg)) {\n let normalizedSvg = updateSvgAttribute(trimmedSvg, \"x\", \"14\");\n normalizedSvg = updateSvgAttribute(normalizedSvg, \"y\", \"12\");\n normalizedSvg = updateSvgAttribute(normalizedSvg, \"width\", \"22\");\n normalizedSvg = updateSvgAttribute(normalizedSvg, \"height\", \"22\");\n\n if (!/\\spreserveAspectRatio=\"/i.test(normalizedSvg)) {\n normalizedSvg = normalizedSvg.replace(\n /<svg\\b/i,\n `<svg preserveAspectRatio=\"xMidYMid meet\"`,\n );\n }\n\n return normalizedSvg;\n }\n\n return `<g transform=\"translate(14 12)\">${trimmedSvg}</g>`;\n};\n\nconst resolveInnerIcon = ({\n innerSvg,\n innerUrl,\n}: DefaultMarkerInnerIconOptions): string => {\n const trimmedInnerSvg = innerSvg?.trim();\n const trimmedInnerUrl = innerUrl?.trim();\n\n if (trimmedInnerSvg) {\n if (SVG_MARKUP_PATTERN.test(trimmedInnerSvg)) {\n return normalizeInnerSvg(trimmedInnerSvg);\n }\n\n return createImageTag(trimmedInnerSvg);\n }\n\n if (trimmedInnerUrl) {\n return createImageTag(trimmedInnerUrl);\n }\n\n return \"\";\n};\n\nconst createDefaultMarkerSvg = (\n color: string,\n innerIconOptions: DefaultMarkerInnerIconOptions = {},\n) => `<svg\n width=\"50\"\n height=\"62\"\n viewBox=\"0 0 50 62\"\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <g filter=\"url(#filter0_d_367_31358)\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M25 2C36.598 2 46 11.402 46 23C46 33.1603 38.7844 41.6353 29.198 43.5803L25.6524 48.6575C25.5788 48.7633 25.4812 48.8497 25.3676 48.9093C25.254 48.9689 25.128 49 25 49C24.872 49 24.746 48.9689 24.6324 48.9093C24.5188 48.8497 24.4212 48.7633 24.3476 48.6575L20.802 43.5803C11.2156 41.6353 4 33.1603 4 23C4 11.402 13.402 2 25 2Z\"\r\n fill=\"${color ? color : \"#278960\"}\"\r\n />\r\n </g>\r\n <path\r\n d=\"M25 51C27.7614 51 30 53.2386 30 56C30 58.7614 27.7614 61 25 61C22.2386 61 20 58.7614 20 56C20 53.2386 22.2386 51 25 51Z\"\r\n fill=\"${color ? color : \"#278960\"}\"\r\n stroke=\"white\"\r\n stroke-width=\"2\"\r\n />\n <g clip-path=\"url(#clip0_367_31358)\">\n ${resolveInnerIcon(innerIconOptions)}\n </g>\n <defs>\n <filter\r\n id=\"filter0_d_367_31358\"\r\n x=\"0\"\r\n y=\"0\"\r\n width=\"50\"\r\n height=\"55\"\r\n filterUnits=\"userSpaceOnUse\"\r\n color-interpolation-filters=\"sRGB\"\r\n >\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix\r\n in=\"SourceAlpha\"\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\"\r\n />\r\n <feOffset dy=\"2\" />\r\n <feGaussianBlur stdDeviation=\"2\" />\r\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\r\n <feColorMatrix\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0.250234 0 0 0 0 0.660089 0 0 0 0 0.488619 0 0 0 0.24 0\"\r\n />\r\n <feBlend\r\n mode=\"normal\"\r\n in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_367_31358\"\r\n />\r\n <feBlend\r\n mode=\"normal\"\r\n in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow_367_31358\"\r\n result=\"shape\"\r\n />\r\n </filter>\r\n <clipPath id=\"clip0_367_31358\">\r\n <rect\r\n width=\"22\"\r\n height=\"22\"\r\n fill=\"white\"\r\n transform=\"translate(14 12)\"\r\n />\r\n </clipPath>\r\n </defs>\r\n </svg>`;\r\n\r\nexport { createDefaultMarkerSvg };\r\n","import { createDefaultMarkerSvg } from \"./defaultMarkerSvg\";\r\nimport type { MahalMapDefaultMarkerProps } from \"@app/types\";\r\n\r\nclass MahalMapDefaultMarker {\r\n private element: HTMLElement;\r\n\r\n constructor(private props: MahalMapDefaultMarkerProps) {\r\n this.element = this.createElement();\r\n }\r\n\r\n private createElement(): HTMLElement {\r\n const el = document.createElement(\"div\");\r\n el.style.cursor = \"pointer\";\r\n\r\n const svg = this.props.svg\n ? this.applyColorToCustomSvg(this.props.svg)\n : createDefaultMarkerSvg(\n this.props.color ?? \"#278960\",\n {\n innerSvg: this.props.innerSvg,\n innerUrl: this.props.innerUrl,\n },\n );\n\r\n el.innerHTML = svg;\r\n\r\n if (this.props.draggable) {\r\n el.draggable = true;\r\n }\r\n\r\n return el;\r\n }\r\n\r\n private applyColorToCustomSvg(svg: string): string {\r\n if (!this.props.color) return svg;\r\n return svg.replace(/fill=\"[^\"]*\"/g, `fill=\"${this.props.color}\"`);\r\n }\r\n\r\n getElement() {\r\n return this.element;\r\n }\r\n\r\n getCoordinates() {\r\n return this.props.coordinates;\r\n }\r\n\r\n isDraggable() {\r\n return !!this.props.draggable;\r\n }\r\n\r\n getAnchor() {\r\n return this.props.anchor || \"center\";\r\n }\r\n}\r\n\r\nexport { MahalMapDefaultMarker };\r\n","import type { Map } from \"maplibre-gl\";\r\nimport type { IMapMarker } from \"@app/types\";\r\n\r\nexport function addMarker(maplibregl: any, map: Map, marker: IMapMarker) {\r\n const mapMarker = new maplibregl.Marker({\r\n element: marker.getElement(),\r\n draggable: marker.isDraggable?.() ?? false,\r\n anchor: marker.getAnchor?.() ?? \"center\",\r\n })\r\n .setLngLat(marker.getCoordinates())\r\n .addTo(map);\r\n\r\n return mapMarker;\r\n}\r\n","import type { Map as MapType } from \"maplibre-gl\";\r\nimport { DARK, LIGHT, VECTOR } from \"@app/config\";\r\nimport { CameraController } from \"@lib/controller\";\r\n\r\nimport type { IMahalMapOptions, IMapMarker } from \"@app/types\";\r\n\r\n// Adapter\r\nimport { addMarker } from \"../map/adapters\";\r\n\r\nconst defaultStyles = { dark: DARK, light: LIGHT };\r\n\r\nexport class MahalMap {\r\n private static instance: MahalMap | null = null;\r\n\r\n private isReady = false;\r\n private readyCallbacks: Array<(map: MapType) => void> = [];\r\n\r\n private map!: MapType;\r\n private maplibre!: typeof import(\"maplibre-gl\");\r\n private camera!: CameraController;\r\n\r\n private options!: IMahalMapOptions;\r\n\r\n private constructor() {}\r\n\r\n static create(\r\n options: IMahalMapOptions,\r\n maplibreObject?: { Map: typeof MapType } | typeof MapType,\r\n ) {\r\n if (MahalMap.instance) return MahalMap.instance;\r\n\r\n const globalMaplibre = (window as any).maplibregl;\r\n const maplibre = globalMaplibre || maplibreObject;\r\n\r\n if (!maplibre) {\r\n throw new Error(\r\n \"[MahalMap SDK] MapLibre GL не найден. Передай его вторым аргументом или подключи через script.\",\r\n );\r\n }\r\n\r\n const finalStyle = options.autoAddVectorSource\r\n ? VECTOR\r\n : options.style\r\n ? options.style\r\n : options.theme === \"dark\"\r\n ? defaultStyles.dark\r\n : defaultStyles.light;\r\n\r\n const instance = new MahalMap();\r\n\r\n instance.options = options;\r\n instance.maplibre = maplibre;\r\n instance.map = new maplibre.Map({\r\n container: options.container || \"map\",\r\n style: finalStyle as string,\r\n center: options.center || [69.624024, 40.279687],\r\n zoom: options.zoom || 5,\r\n attributionControl: options.attributionControl !== false,\r\n });\r\n\r\n instance.map.on(\"load\", () => {\r\n instance.isReady = true;\r\n\r\n instance.camera = new CameraController(instance.map);\r\n\r\n instance.readyCallbacks.forEach((cb) => cb(instance.map));\r\n instance.readyCallbacks = [];\r\n });\r\n\r\n MahalMap.instance = instance;\r\n return instance;\r\n }\r\n\r\n static onReady(callback: (map: MapType) => void) {\r\n if (!MahalMap.instance) {\r\n const check = setInterval(() => {\r\n if (MahalMap.instance) {\r\n clearInterval(check);\r\n MahalMap.onReady(callback);\r\n }\r\n }, 50);\r\n return;\r\n }\r\n\r\n const instance = MahalMap.instance;\r\n\r\n if (instance.isReady) {\r\n callback(instance.map);\r\n } else {\r\n instance.readyCallbacks.push(callback);\r\n }\r\n }\r\n\r\n static getInstance(): MahalMap {\r\n if (!MahalMap.instance) {\r\n throw new Error(\"[MahalMap SDK] Карта ещё не создана\");\r\n }\r\n return MahalMap.instance;\r\n }\r\n\r\n addMarker(marker: IMapMarker) {\r\n return addMarker(this.maplibre, this.map, marker);\r\n }\r\n init(map: MapType) {\r\n this.map = map;\r\n this.camera = new CameraController(map);\r\n }\r\n getCamera() {\r\n return this.camera;\r\n }\r\n\r\n getMap(): MapType {\r\n return this.map;\r\n }\r\n\r\n setStyle(theme: \"dark\" | \"light\") {\r\n this.map.setStyle(\r\n theme === \"dark\" ? defaultStyles.dark : defaultStyles.light,\r\n );\r\n }\r\n\r\n setCenter(center: [number, number]) {\r\n this.map.setCenter(center);\r\n }\r\n\r\n setZoom(zoom: number) {\r\n this.map.setZoom(zoom);\r\n }\r\n\r\n destroy() {\r\n this.map.remove();\r\n MahalMap.instance = null;\r\n }\r\n}\r\n","import axios from \"axios\";\r\nimport { BASE_URL } from \"@app/config/index\";\r\nimport { clearKey } from \"@app/lib\";\r\n\r\nexport const api = axios.create({\r\n baseURL: BASE_URL,\r\n});\r\n\r\napi.interceptors.request.use(\r\n (response) => response,\r\n (error) => {\r\n if (error.request?.status === 401) {\r\n clearKey();\r\n }\r\n return Promise.reject(error);\r\n }\r\n);\r\n","export * from \"./utils\";\r\n","import { api } from \"@app/lib\";\r\n\r\nlet apiKey: string = \"\";\r\n\r\nfunction saveKey(param: string) {\r\n if (param === \"\") return;\r\n apiKey = param;\r\n api.defaults.headers.common[\"Authorization\"] = `Bearer ${param}`;\r\n}\r\n\r\nfunction clearKey() {\r\n apiKey = \"\";\r\n api.defaults.headers.common[\"Authorization\"] = \"\";\r\n}\r\n\r\nconst getApiKey = () => apiKey;\r\n\r\nexport { saveKey, clearKey, getApiKey };\r\n","function debounce<F extends (...args: any[]) => Promise<any>>(\r\n fn: F,\r\n delay: number,\r\n) {\r\n let timer: ReturnType<typeof setTimeout>;\r\n\r\n return (...args: Parameters<F>): Promise<ReturnType<F>> => {\r\n if (timer) clearTimeout(timer);\r\n return new Promise((resolve) => {\r\n timer = setTimeout(async () => {\r\n const result = await fn(...args);\r\n resolve(result);\r\n }, delay);\r\n }) as Promise<ReturnType<F>>;\r\n };\r\n}\r\n\r\nexport { debounce };\r\n","import { api } from \"@app/lib\";\nimport type {\n ISearchByLocationParam,\n ISearchParam,\n ISearchResponse,\n} from \"@app/types\";\n\nexport const searchPost = async (\n params: ISearchParam,\n): Promise<ISearchResponse> => {\n try {\n const response = await api.post(\"services/getAddress\", null, {\n params,\n });\n return response.data;\n } catch (error) {\n console.error(\"Error while searching address:\", error);\n throw error;\n }\n};\n\nexport const searchByLocationPost = async (\n params: ISearchByLocationParam,\n): Promise<ISearchResponse> => {\n try {\n const response = await api.post(\"services/getAddressByLocation\", null, {\n params,\n });\n return response.data;\n } catch (error) {\n console.error(\"Error while searching address by location:\", error);\n throw error;\n }\n};\n","import { searchByLocationPost, searchPost } from \"./api\";\nimport {\n IAdditionalParamType,\n ISearchByLocationParam,\n ISearchParam,\n ISearchResponse,\n} from \"@app/types/index\";\nimport { debounce, getApiKey } from \"@app/lib\";\n// import { checkCoordinates } from \"@app/lib/index\";\r\n// import { REGEX } from \"@app/config\";\r\n\r\nasync function getSearch(\n param: string,\n token: string,\n additionalParam?: IAdditionalParamType,\n): Promise<ISearchResponse> {\n let searchData: ISearchParam = {\r\n text: param,\r\n token: token ? token : getApiKey(),\r\n ...additionalParam,\r\n };\r\n\r\n // if (param !== \"\") {\r\n // if (REGEX.test(param)) {\r\n // let coordinates = await checkCoordinates(param);\r\n // if (coordinates) {\r\n // searchData = {\r\n // lat: coordinates.lat ?? \"\",\r\n // lng: coordinates.lng ?? \"\",\r\n // };\r\n // }\r\n // } else {\r\n // searchData.text = param;\r\n // }\r\n // } else {\r\n // searchData.text = \"\";\r\n // }\r\n\r\n try {\n const res: ISearchResponse = await searchPost(searchData);\n return res;\n } catch (error) {\n throw error;\n }\n}\n\r\nconst debouncedFn = debounce(getSearch, 500);\r\n\r\nasync function Search(\n param: string,\n token: string,\n additionalParam?: IAdditionalParamType,\n): Promise<ISearchResponse> {\n return await debouncedFn(param, token, additionalParam);\n}\n\nasync function SearchByLocation(\n params: ISearchByLocationParam,\n): Promise<ISearchResponse> {\n const searchData: ISearchByLocationParam = {\n ...params,\n token: params.token ? params.token : getApiKey(),\n };\n\n try {\n const res: ISearchResponse = await searchByLocationPost(searchData);\n return res;\n } catch (error) {\n throw error;\n }\n}\n\nexport { Search, SearchByLocation };\n","import { api, getApiKey } from \"@app/lib\";\r\n\r\nconst routingApi = async (param: number[][], token: string) => {\r\n try {\r\n const points: { lng: number; lat: number }[] = [];\r\n\r\n param.forEach((e) => {\r\n points.push({ lng: e[0], lat: e[1] });\r\n });\r\n const response = await api.post(\"services/getRoutes\", {\r\n points,\r\n token: token ? token : getApiKey(),\r\n });\r\n return response.data;\r\n } catch (err) {\r\n console.error(err);\r\n throw err;\r\n }\r\n};\r\n\r\nexport { routingApi };\r\n","import { routingApi } from \"@lib/routing/api\";\r\nimport { geojsonPolyline } from \"@app/config/index\";\r\nimport type { IRoute } from \"@app/types/index\";\r\n\r\nasync function Router(\r\n param: number[][],\r\n typeData: string,\r\n token: string,\r\n): Promise<IRoute[]> {\r\n try {\r\n const res = await routingApi(param, token);\r\n\r\n if (!res?.data) return res;\r\n\r\n const data: IRoute[] = res.data;\r\n\r\n return data.map((route) => {\r\n const updated = { ...route };\r\n\r\n if (updated.route?.routes?.length) {\r\n updated.route.routes = updated.route.routes.map((r) => ({\r\n ...r,\r\n geometry:\r\n typeData === \"geojson\" && typeof r.geometry === \"string\"\r\n ? geojsonPolyline(r.geometry)\r\n : r.geometry,\r\n }));\r\n }\r\n\r\n return updated as IRoute;\r\n });\r\n } catch (error) {\r\n throw error;\r\n }\r\n}\r\n\r\nexport { Router };\r\n","export * from \"./debounce\";\r\n"],"mappings":"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","names":["index_exports","__export","MahalMap","MahalMapDefaultMarker","Router","Search","SearchByLocation","saveKey_exports","utils_exports","__toCommonJS","BASE_URL","DARK","LIGHT","VECTOR","geojsonPolyline","encoded","points","index","len","lat","lng","b","shift","result","dlat","dlng","CameraController","map","zoom","smooth","bearing","pitch","is3D","options","SVG_ROOT_PATTERN","SVG_MARKUP_PATTERN","updateSvgAttribute","svg","attribute","value","attributePattern","escapeSvgAttribute","createImageTag","url","normalizeInnerSvg","trimmedSvg","normalizedSvg","resolveInnerIcon","innerSvg","innerUrl","trimmedInnerSvg","trimmedInnerUrl","createDefaultMarkerSvg","color","innerIconOptions","MahalMapDefaultMarker","props","el","svg","createDefaultMarkerSvg","addMarker","maplibregl","map","marker","defaultStyles","DARK","LIGHT","_MahalMap","options","maplibreObject","maplibre","finalStyle","VECTOR","instance","CameraController","cb","callback","check","marker","addMarker","map","theme","center","zoom","MahalMap","import_axios","api","axios","BASE_URL","response","error","clearKey","saveKey_exports","__export","clearKey","getApiKey","saveKey","apiKey","saveKey","param","api","clearKey","getApiKey","debounce","fn","delay","timer","args","resolve","result","searchPost","params","api","error","searchByLocationPost","getSearch","param","token","additionalParam","searchData","getApiKey","searchPost","error","debouncedFn","debounce","Search","SearchByLocation","params","searchByLocationPost","routingApi","param","token","points","e","api","getApiKey","err","Router","param","typeData","token","res","routingApi","route","updated","r","geojsonPolyline","error","utils_exports","__export","debounce","loadKeyFromScriptUrl","scripts","script","apikey","saveKey"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/app/config/constants.ts","../src/app/config/geojson-polyline.ts","../src/lib/controller/camera/index.ts","../src/lib/controller/markers/defaultMarkerSvg.ts","../src/lib/controller/markers/MahalMapDefaultMarker.ts","../src/lib/map/adapters/marker.adapter.ts","../src/lib/map/MahalMap.ts","../src/app/lib/axios/api/axios.ts","../src/app/lib/saveKey/index.ts","../src/app/lib/saveKey/utils.ts","../src/app/utils/debounce/index.ts","../src/lib/search/api.ts","../src/lib/search/utils.ts","../src/lib/routing/api.ts","../src/lib/routing/utils.ts","../src/app/utils/index.ts","../src/app/utils/trim-value/index.ts"],"sourcesContent":["// Lib\nimport { MahalMap } from \"@lib/map\";\nimport { Search, SearchByLocation } from \"@lib/search\";\nimport { Router } from \"@lib/routing\";\nimport { MahalMapDefaultMarker } from \"@lib/controller\";\n\r\n// utils\r\nimport * as keyUtils from \"@app/lib/saveKey\";\r\nimport * as utils from \"@app/utils\";\r\n\r\nexport {\n MahalMap,\n Search,\n SearchByLocation,\n Router,\n keyUtils,\n MahalMapDefaultMarker,\n utils,\n};\n\r\nfunction loadKeyFromScriptUrl() {\r\n const scripts = document.getElementsByTagName(\"script\");\r\n for (const script of scripts) {\r\n if (script.src.includes(\"mahal_map.sdk.js\")) {\r\n const url = new URL(script.src);\r\n const apikey = url.searchParams.get(\"apikey\");\r\n if (apikey) return apikey;\r\n }\r\n }\r\n return \"\";\r\n}\r\nkeyUtils.saveKey(loadKeyFromScriptUrl());\r\n","const BASE_URL = \"https://platform.mahal.tj/api/\";\r\nconst LATLNGREGEX =\r\n /^([-+]?(?:[1-8]?\\d(?:\\.\\d+)?|90(?:\\.0+)?)),\\s*([-+]?(?:180(?:\\.0+)?|(?:(?:1[0-7]\\d)|(?:[1-9]?\\d))(?:\\.\\d+)?))$/;\r\nconst LNGLATREGEX =\r\n /^([-+]?(?:180(?:\\.0+)?|(?:(?:1[0-7]\\d)|(?:[1-9]?\\d))(?:\\.\\d+)?)),\\s*([-+]?(?:[1-8]?\\d(?:\\.\\d+)?|90(?:\\.0+)?))$/;\r\n\r\nconst REGEX =\r\n /^[-+]?([1-8]?\\d(\\.\\d+)?|90(\\.0+)?),\\s*[-+]?(180(\\.0+)?|((1[0-7]\\d)|([1-9]?\\d))(\\.\\d+)?)$/;\r\n\r\nconst DARK = \"https://mtile.gram.tj/custom-styles/dark-style.json\";\r\nconst LIGHT = \"https://mtile.gram.tj/custom-styles/mapstyle.json\";\r\nconst VECTOR =\r\n \"https://mtile.gram.tj/custom-styles/style_maptiler_basic_hn.json\";\r\n\r\nexport { BASE_URL, LATLNGREGEX, LNGLATREGEX, REGEX, DARK, LIGHT, VECTOR };\r\n","function geojsonPolyline(encoded: string): number[][] {\r\n let points = [];\r\n let index = 0,\r\n len = encoded.length;\r\n let lat = 0,\r\n lng = 0;\r\n\r\n while (index < len) {\r\n let b,\r\n shift = 0,\r\n result = 0;\r\n do {\r\n b = encoded.charCodeAt(index++) - 63;\r\n result |= (b & 0x1f) << shift;\r\n shift += 5;\r\n } while (b >= 0x20);\r\n let dlat = result & 1 ? ~(result >> 1) : result >> 1;\r\n lat += dlat;\r\n\r\n shift = 0;\r\n result = 0;\r\n do {\r\n b = encoded.charCodeAt(index++) - 63;\r\n result |= (b & 0x1f) << shift;\r\n shift += 5;\r\n } while (b >= 0x20);\r\n let dlng = result & 1 ? ~(result >> 1) : result >> 1;\r\n lng += dlng;\r\n\r\n points.push([lng * 1e-5, lat * 1e-5]);\r\n }\r\n\r\n return points;\r\n}\r\n\r\nexport { geojsonPolyline };\r\n\r\n// Пример использования:\r\n\r\n// geojsonPolyline(\"yzocFzynhVq}@n}@o}@nzD\")\r\n\r\n// Вернёт массив вида [\r\n// [102.0, 0.5],\r\n// [103.0, 1.0],\r\n// [104.0, 0.5],\r\n// [105.0, 0.0]\r\n// ].\r\n","import type { Map, FlyToOptions } from \"maplibre-gl\";\r\n\r\nexport class CameraController {\r\n constructor(private map: Map) {}\r\n\r\n setZoom(zoom: number, smooth = true) {\r\n if (smooth) {\r\n this.map.easeTo({ zoom });\r\n } else {\r\n this.map.setZoom(zoom);\r\n }\r\n }\r\n\r\n setBearing(bearing: number, smooth = true) {\r\n smooth ? this.map.easeTo({ bearing }) : this.map.setBearing(bearing);\r\n }\r\n\r\n setPitch(pitch: number, smooth = true) {\r\n smooth ? this.map.easeTo({ pitch }) : this.map.setPitch(pitch);\r\n }\r\n\r\n toggle3D(is3D: boolean) {\r\n this.map.easeTo({\r\n pitch: is3D ? 60 : 0,\r\n bearing: is3D ? this.map.getBearing() : 0,\r\n duration: 800,\r\n });\r\n }\r\n\r\n resetNorth() {\r\n this.map.easeTo({\r\n bearing: 0,\r\n pitch: 0,\r\n duration: 600,\r\n });\r\n }\r\n\r\n flyTo(options: FlyToOptions) {\r\n this.map.flyTo({\r\n speed: 1.2,\r\n curve: 1.42,\r\n essential: true,\r\n ...options,\r\n });\r\n }\r\n\r\n getPitch() {\r\n return this.map.getPitch();\r\n }\r\n}\r\n","type DefaultMarkerInnerIconOptions = {\n innerSvg?: string;\n innerUrl?: string;\n};\n\nconst SVG_ROOT_PATTERN = /<svg[\\s>]/i;\nconst SVG_MARKUP_PATTERN =\n /<(svg|path|g|circle|rect|polygon|line|polyline|ellipse|use)\\b/i;\n\nconst updateSvgAttribute = (\n svg: string,\n attribute: string,\n value: string,\n): string => {\n const attributePattern = new RegExp(`\\\\s${attribute}=\"[^\"]*\"`, \"i\");\n\n if (attributePattern.test(svg)) {\n return svg.replace(attributePattern, ` ${attribute}=\"${value}\"`);\n }\n\n return svg.replace(/<svg\\b/i, `<svg ${attribute}=\"${value}\"`);\n};\n\nconst escapeSvgAttribute = (value: string): string =>\n value.replace(/&/g, \"&amp;\").replace(/\"/g, \"&quot;\");\n\nconst createImageTag = (url: string): string =>\n `<image href=\"${escapeSvgAttribute(url)}\" x=\"14\" y=\"12\" width=\"22\" height=\"22\" style=\"filter: brightness(0) invert(1);\" />`;\n\nconst normalizeInnerSvg = (svg: string): string => {\n const trimmedSvg = svg.trim();\n\n if (SVG_ROOT_PATTERN.test(trimmedSvg)) {\n let normalizedSvg = updateSvgAttribute(trimmedSvg, \"x\", \"14\");\n normalizedSvg = updateSvgAttribute(normalizedSvg, \"y\", \"12\");\n normalizedSvg = updateSvgAttribute(normalizedSvg, \"width\", \"22\");\n normalizedSvg = updateSvgAttribute(normalizedSvg, \"height\", \"22\");\n\n if (!/\\spreserveAspectRatio=\"/i.test(normalizedSvg)) {\n normalizedSvg = normalizedSvg.replace(\n /<svg\\b/i,\n `<svg preserveAspectRatio=\"xMidYMid meet\"`,\n );\n }\n\n return normalizedSvg;\n }\n\n return `<g transform=\"translate(14 12)\">${trimmedSvg}</g>`;\n};\n\nconst resolveInnerIcon = ({\n innerSvg,\n innerUrl,\n}: DefaultMarkerInnerIconOptions): string => {\n const trimmedInnerSvg = innerSvg?.trim();\n const trimmedInnerUrl = innerUrl?.trim();\n\n if (trimmedInnerSvg) {\n if (SVG_MARKUP_PATTERN.test(trimmedInnerSvg)) {\n return normalizeInnerSvg(trimmedInnerSvg);\n }\n\n return createImageTag(trimmedInnerSvg);\n }\n\n if (trimmedInnerUrl) {\n return createImageTag(trimmedInnerUrl);\n }\n\n return \"\";\n};\n\nconst createDefaultMarkerSvg = (\n color: string,\n innerIconOptions: DefaultMarkerInnerIconOptions = {},\n) => `<svg\n width=\"50\"\n height=\"62\"\n viewBox=\"0 0 50 62\"\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <g filter=\"url(#filter0_d_367_31358)\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M25 2C36.598 2 46 11.402 46 23C46 33.1603 38.7844 41.6353 29.198 43.5803L25.6524 48.6575C25.5788 48.7633 25.4812 48.8497 25.3676 48.9093C25.254 48.9689 25.128 49 25 49C24.872 49 24.746 48.9689 24.6324 48.9093C24.5188 48.8497 24.4212 48.7633 24.3476 48.6575L20.802 43.5803C11.2156 41.6353 4 33.1603 4 23C4 11.402 13.402 2 25 2Z\"\r\n fill=\"${color ? color : \"#278960\"}\"\r\n />\r\n </g>\r\n <path\r\n d=\"M25 51C27.7614 51 30 53.2386 30 56C30 58.7614 27.7614 61 25 61C22.2386 61 20 58.7614 20 56C20 53.2386 22.2386 51 25 51Z\"\r\n fill=\"${color ? color : \"#278960\"}\"\r\n stroke=\"white\"\r\n stroke-width=\"2\"\r\n />\n <g clip-path=\"url(#clip0_367_31358)\">\n ${resolveInnerIcon(innerIconOptions)}\n </g>\n <defs>\n <filter\r\n id=\"filter0_d_367_31358\"\r\n x=\"0\"\r\n y=\"0\"\r\n width=\"50\"\r\n height=\"55\"\r\n filterUnits=\"userSpaceOnUse\"\r\n color-interpolation-filters=\"sRGB\"\r\n >\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix\r\n in=\"SourceAlpha\"\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\"\r\n />\r\n <feOffset dy=\"2\" />\r\n <feGaussianBlur stdDeviation=\"2\" />\r\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\r\n <feColorMatrix\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0.250234 0 0 0 0 0.660089 0 0 0 0 0.488619 0 0 0 0.24 0\"\r\n />\r\n <feBlend\r\n mode=\"normal\"\r\n in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_367_31358\"\r\n />\r\n <feBlend\r\n mode=\"normal\"\r\n in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow_367_31358\"\r\n result=\"shape\"\r\n />\r\n </filter>\r\n <clipPath id=\"clip0_367_31358\">\r\n <rect\r\n width=\"22\"\r\n height=\"22\"\r\n fill=\"white\"\r\n transform=\"translate(14 12)\"\r\n />\r\n </clipPath>\r\n </defs>\r\n </svg>`;\r\n\r\nexport { createDefaultMarkerSvg };\r\n","import { createDefaultMarkerSvg } from \"./defaultMarkerSvg\";\r\nimport type { MahalMapDefaultMarkerProps } from \"@app/types\";\r\n\r\nclass MahalMapDefaultMarker {\r\n private element: HTMLElement;\r\n\r\n constructor(private props: MahalMapDefaultMarkerProps) {\r\n this.element = this.createElement();\r\n }\r\n\r\n private createElement(): HTMLElement {\r\n const el = document.createElement(\"div\");\r\n el.style.cursor = \"pointer\";\r\n\r\n const svg = this.props.svg\n ? this.applyColorToCustomSvg(this.props.svg)\n : createDefaultMarkerSvg(\n this.props.color ?? \"#278960\",\n {\n innerSvg: this.props.innerSvg,\n innerUrl: this.props.innerUrl,\n },\n );\n\r\n el.innerHTML = svg;\r\n\r\n if (this.props.draggable) {\r\n el.draggable = true;\r\n }\r\n\r\n return el;\r\n }\r\n\r\n private applyColorToCustomSvg(svg: string): string {\r\n if (!this.props.color) return svg;\r\n return svg.replace(/fill=\"[^\"]*\"/g, `fill=\"${this.props.color}\"`);\r\n }\r\n\r\n getElement() {\r\n return this.element;\r\n }\r\n\r\n getCoordinates() {\r\n return this.props.coordinates;\r\n }\r\n\r\n isDraggable() {\r\n return !!this.props.draggable;\r\n }\r\n\r\n getAnchor() {\r\n return this.props.anchor || \"center\";\r\n }\r\n}\r\n\r\nexport { MahalMapDefaultMarker };\r\n","import type { Map } from \"maplibre-gl\";\r\nimport type { IMapMarker } from \"@app/types\";\r\n\r\nexport function addMarker(maplibregl: any, map: Map, marker: IMapMarker) {\r\n const mapMarker = new maplibregl.Marker({\r\n element: marker.getElement(),\r\n draggable: marker.isDraggable?.() ?? false,\r\n anchor: marker.getAnchor?.() ?? \"center\",\r\n })\r\n .setLngLat(marker.getCoordinates())\r\n .addTo(map);\r\n\r\n return mapMarker;\r\n}\r\n","import type { Map as MapType } from \"maplibre-gl\";\r\nimport { DARK, LIGHT, VECTOR } from \"@app/config\";\r\nimport { CameraController } from \"@lib/controller\";\r\n\r\nimport type { IMahalMapOptions, IMapMarker } from \"@app/types\";\r\n\r\n// Adapter\r\nimport { addMarker } from \"../map/adapters\";\r\n\r\nconst defaultStyles = { dark: DARK, light: LIGHT };\r\n\r\nexport class MahalMap {\r\n private static instance: MahalMap | null = null;\r\n\r\n private isReady = false;\r\n private readyCallbacks: Array<(map: MapType) => void> = [];\r\n\r\n private map!: MapType;\r\n private maplibre!: typeof import(\"maplibre-gl\");\r\n private camera!: CameraController;\r\n\r\n private options!: IMahalMapOptions;\r\n\r\n private constructor() {}\r\n\r\n static create(\r\n options: IMahalMapOptions,\r\n maplibreObject?: { Map: typeof MapType } | typeof MapType,\r\n ) {\r\n if (MahalMap.instance) return MahalMap.instance;\r\n\r\n const globalMaplibre = (window as any).maplibregl;\r\n const maplibre = globalMaplibre || maplibreObject;\r\n\r\n if (!maplibre) {\r\n throw new Error(\r\n \"[MahalMap SDK] MapLibre GL не найден. Передай его вторым аргументом или подключи через script.\",\r\n );\r\n }\r\n\r\n const finalStyle = options.autoAddVectorSource\r\n ? VECTOR\r\n : options.style\r\n ? options.style\r\n : options.theme === \"dark\"\r\n ? defaultStyles.dark\r\n : defaultStyles.light;\r\n\r\n const instance = new MahalMap();\r\n\r\n instance.options = options;\r\n instance.maplibre = maplibre;\r\n instance.map = new maplibre.Map({\r\n container: options.container || \"map\",\r\n style: finalStyle as string,\r\n center: options.center || [69.624024, 40.279687],\r\n zoom: options.zoom || 5,\r\n attributionControl: options.attributionControl !== false,\r\n });\r\n\r\n instance.map.on(\"load\", () => {\r\n instance.isReady = true;\r\n\r\n instance.camera = new CameraController(instance.map);\r\n\r\n instance.readyCallbacks.forEach((cb) => cb(instance.map));\r\n instance.readyCallbacks = [];\r\n });\r\n\r\n MahalMap.instance = instance;\r\n return instance;\r\n }\r\n\r\n static onReady(callback: (map: MapType) => void) {\r\n if (!MahalMap.instance) {\r\n const check = setInterval(() => {\r\n if (MahalMap.instance) {\r\n clearInterval(check);\r\n MahalMap.onReady(callback);\r\n }\r\n }, 50);\r\n return;\r\n }\r\n\r\n const instance = MahalMap.instance;\r\n\r\n if (instance.isReady) {\r\n callback(instance.map);\r\n } else {\r\n instance.readyCallbacks.push(callback);\r\n }\r\n }\r\n\r\n static getInstance(): MahalMap {\r\n if (!MahalMap.instance) {\r\n throw new Error(\"[MahalMap SDK] Карта ещё не создана\");\r\n }\r\n return MahalMap.instance;\r\n }\r\n\r\n addMarker(marker: IMapMarker) {\r\n return addMarker(this.maplibre, this.map, marker);\r\n }\r\n init(map: MapType) {\r\n this.map = map;\r\n this.camera = new CameraController(map);\r\n }\r\n getCamera() {\r\n return this.camera;\r\n }\r\n\r\n getMap(): MapType {\r\n return this.map;\r\n }\r\n\r\n setStyle(theme: \"dark\" | \"light\") {\r\n this.map.setStyle(\r\n theme === \"dark\" ? defaultStyles.dark : defaultStyles.light,\r\n );\r\n }\r\n\r\n setCenter(center: [number, number]) {\r\n this.map.setCenter(center);\r\n }\r\n\r\n setZoom(zoom: number) {\r\n this.map.setZoom(zoom);\r\n }\r\n\r\n destroy() {\r\n this.map.remove();\r\n MahalMap.instance = null;\r\n }\r\n}\r\n","import axios from \"axios\";\r\nimport { BASE_URL } from \"@app/config/index\";\r\nimport { clearKey } from \"@app/lib\";\r\n\r\nexport const api = axios.create({\r\n baseURL: BASE_URL,\r\n});\r\n\r\napi.interceptors.request.use(\r\n (response) => response,\r\n (error) => {\r\n if (error.request?.status === 401) {\r\n clearKey();\r\n }\r\n return Promise.reject(error);\r\n }\r\n);\r\n","export * from \"./utils\";\r\n","import { api } from \"@app/lib\";\r\n\r\nlet apiKey: string = \"\";\r\n\r\nfunction saveKey(param: string) {\r\n if (param === \"\") return;\r\n apiKey = param;\r\n api.defaults.headers.common[\"Authorization\"] = `Bearer ${param}`;\r\n}\r\n\r\nfunction clearKey() {\r\n apiKey = \"\";\r\n api.defaults.headers.common[\"Authorization\"] = \"\";\r\n}\r\n\r\nconst getApiKey = () => apiKey;\r\n\r\nexport { saveKey, clearKey, getApiKey };\r\n","function debounce<F extends (...args: any[]) => Promise<any>>(\r\n fn: F,\r\n delay: number,\r\n) {\r\n let timer: ReturnType<typeof setTimeout>;\r\n\r\n return (...args: Parameters<F>): Promise<ReturnType<F>> => {\r\n if (timer) clearTimeout(timer);\r\n return new Promise((resolve) => {\r\n timer = setTimeout(async () => {\r\n const result = await fn(...args);\r\n resolve(result);\r\n }, delay);\r\n }) as Promise<ReturnType<F>>;\r\n };\r\n}\r\n\r\nexport { debounce };\r\n","import { api } from \"@app/lib\";\nimport type {\n ISearchByLocationParam,\n ISearchParam,\n ISearchResponse,\n} from \"@app/types\";\n\nexport const searchPost = async (\n params: ISearchParam,\n): Promise<ISearchResponse> => {\n try {\n const response = await api.post(\"services/getAddress\", null, {\n params,\n });\n return response.data;\n } catch (error) {\n console.error(\"Error while searching address:\", error);\n throw error;\n }\n};\n\nexport const searchByLocationPost = async (\n params: ISearchByLocationParam,\n): Promise<ISearchResponse> => {\n try {\n const response = await api.post(\"services/getAddressByLocation\", null, {\n params,\n });\n return response.data;\n } catch (error) {\n console.error(\"Error while searching address by location:\", error);\n throw error;\n }\n};\n","import { searchByLocationPost, searchPost } from \"./api\";\nimport {\n IAdditionalParamType,\n ISearchByLocationParam,\n ISearchParam,\n ISearchResponse,\n} from \"@app/types/index\";\nimport { debounce, getApiKey } from \"@app/lib\";\n// import { checkCoordinates } from \"@app/lib/index\";\r\n// import { REGEX } from \"@app/config\";\r\n\r\nasync function getSearch(\n param: string,\n token: string,\n additionalParam?: IAdditionalParamType,\n): Promise<ISearchResponse> {\n let searchData: ISearchParam = {\r\n text: param,\r\n token: token ? token : getApiKey(),\r\n ...additionalParam,\r\n };\r\n\r\n // if (param !== \"\") {\r\n // if (REGEX.test(param)) {\r\n // let coordinates = await checkCoordinates(param);\r\n // if (coordinates) {\r\n // searchData = {\r\n // lat: coordinates.lat ?? \"\",\r\n // lng: coordinates.lng ?? \"\",\r\n // };\r\n // }\r\n // } else {\r\n // searchData.text = param;\r\n // }\r\n // } else {\r\n // searchData.text = \"\";\r\n // }\r\n\r\n try {\n const res: ISearchResponse = await searchPost(searchData);\n return res;\n } catch (error) {\n throw error;\n }\n}\n\r\nconst debouncedFn = debounce(getSearch, 500);\r\n\r\nasync function Search(\n param: string,\n token: string,\n additionalParam?: IAdditionalParamType,\n): Promise<ISearchResponse> {\n return await debouncedFn(param, token, additionalParam);\n}\n\nasync function SearchByLocation(\n params: ISearchByLocationParam,\n): Promise<ISearchResponse> {\n const searchData: ISearchByLocationParam = {\n ...params,\n token: params.token ? params.token : getApiKey(),\n };\n\n try {\n const res: ISearchResponse = await searchByLocationPost(searchData);\n return res;\n } catch (error) {\n throw error;\n }\n}\n\nexport { Search, SearchByLocation };\n","import { api, getApiKey } from \"@app/lib\";\r\n\r\nconst routingApi = async (param: number[][], token: string) => {\r\n try {\r\n const points: { lng: number; lat: number }[] = [];\r\n\r\n param.forEach((e) => {\r\n points.push({ lng: e[0], lat: e[1] });\r\n });\r\n const response = await api.post(\"services/getRoutes\", {\r\n points,\r\n token: token ? token : getApiKey(),\r\n });\r\n return response.data;\r\n } catch (err) {\r\n console.error(err);\r\n throw err;\r\n }\r\n};\r\n\r\nexport { routingApi };\r\n","import { routingApi } from \"@lib/routing/api\";\r\nimport { geojsonPolyline } from \"@app/config/index\";\r\nimport type { IRoute } from \"@app/types/index\";\r\n\r\nasync function Router(\r\n param: number[][],\r\n typeData: string,\r\n token: string,\r\n): Promise<IRoute[]> {\r\n try {\r\n const res = await routingApi(param, token);\r\n\r\n if (!res?.data) return res;\r\n\r\n const data: IRoute[] = res.data;\r\n\r\n return data.map((route) => {\r\n const updated = { ...route };\r\n\r\n if (updated.route?.routes?.length) {\r\n updated.route.routes = updated.route.routes.map((r) => ({\r\n ...r,\r\n geometry:\r\n typeData === \"geojson\" && typeof r.geometry === \"string\"\r\n ? geojsonPolyline(r.geometry)\r\n : r.geometry,\r\n }));\r\n }\r\n\r\n return updated as IRoute;\r\n });\r\n } catch (error) {\r\n throw error;\r\n }\r\n}\r\n\r\nexport { Router };\r\n","export * from \"./debounce\";\r\nexport * from \"./trim-value\";\r\n","function trimValue(value: string, cut: number): string {\r\n if (cut <= 0) return \"\";\r\n\r\n // только обрезаем пробелы в начале и конце\r\n const cleanValue = value.trim();\r\n\r\n if (cut >= cleanValue.length) return cleanValue;\r\n\r\n return cleanValue.slice(0, cut);\r\n}\r\n\r\nexport { trimValue };\r\n"],"mappings":"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","names":["index_exports","__export","MahalMap","MahalMapDefaultMarker","Router","Search","SearchByLocation","saveKey_exports","utils_exports","__toCommonJS","BASE_URL","DARK","LIGHT","VECTOR","geojsonPolyline","encoded","points","index","len","lat","lng","b","shift","result","dlat","dlng","CameraController","map","zoom","smooth","bearing","pitch","is3D","options","SVG_ROOT_PATTERN","SVG_MARKUP_PATTERN","updateSvgAttribute","svg","attribute","value","attributePattern","escapeSvgAttribute","createImageTag","url","normalizeInnerSvg","trimmedSvg","normalizedSvg","resolveInnerIcon","innerSvg","innerUrl","trimmedInnerSvg","trimmedInnerUrl","createDefaultMarkerSvg","color","innerIconOptions","MahalMapDefaultMarker","props","el","svg","createDefaultMarkerSvg","addMarker","maplibregl","map","marker","defaultStyles","DARK","LIGHT","_MahalMap","options","maplibreObject","maplibre","finalStyle","VECTOR","instance","CameraController","cb","callback","check","marker","addMarker","map","theme","center","zoom","MahalMap","import_axios","api","axios","BASE_URL","response","error","clearKey","saveKey_exports","__export","clearKey","getApiKey","saveKey","apiKey","saveKey","param","api","clearKey","getApiKey","debounce","fn","delay","timer","args","resolve","result","searchPost","params","api","error","searchByLocationPost","getSearch","param","token","additionalParam","searchData","getApiKey","searchPost","error","debouncedFn","debounce","Search","SearchByLocation","params","searchByLocationPost","routingApi","param","token","points","e","api","getApiKey","err","Router","param","typeData","token","res","routingApi","route","updated","r","geojsonPolyline","error","utils_exports","__export","debounce","trimValue","trimValue","value","cut","cleanValue","loadKeyFromScriptUrl","scripts","script","apikey","saveKey"]}
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- var K=Object.defineProperty;var S=(r,e)=>{for(var t in e)K(r,t,{get:e[t],enumerable:!0})};var b="https://platform.mahal.tj/api/";var I="https://mtile.gram.tj/custom-styles/dark-style.json",w="https://mtile.gram.tj/custom-styles/mapstyle.json",T="https://mtile.gram.tj/custom-styles/style_maptiler_basic_hn.json";function R(r){let e=[],t=0,o=r.length,s=0,c=0;for(;t<o;){let a,i=0,p=0;do a=r.charCodeAt(t++)-63,p|=(a&31)<<i,i+=5;while(a>=32);let D=p&1?~(p>>1):p>>1;s+=D,i=0,p=0;do a=r.charCodeAt(t++)-63,p|=(a&31)<<i,i+=5;while(a>=32);let $=p&1?~(p>>1):p>>1;c+=$,e.push([c*1e-5,s*1e-5])}return e}var h=class{constructor(e){this.map=e}setZoom(e,t=!0){t?this.map.easeTo({zoom:e}):this.map.setZoom(e)}setBearing(e,t=!0){t?this.map.easeTo({bearing:e}):this.map.setBearing(e)}setPitch(e,t=!0){t?this.map.easeTo({pitch:e}):this.map.setPitch(e)}toggle3D(e){this.map.easeTo({pitch:e?60:0,bearing:e?this.map.getBearing():0,duration:800})}resetNorth(){this.map.easeTo({bearing:0,pitch:0,duration:600})}flyTo(e){this.map.flyTo({speed:1.2,curve:1.42,essential:!0,...e})}getPitch(){return this.map.getPitch()}};var O=/<svg[\s>]/i,U=/<(svg|path|g|circle|rect|polygon|line|polyline|ellipse|use)\b/i,u=(r,e,t)=>{let o=new RegExp(`\\s${e}="[^"]*"`,"i");return o.test(r)?r.replace(o,` ${e}="${t}"`):r.replace(/<svg\b/i,`<svg ${e}="${t}"`)},_=r=>r.replace(/&/g,"&amp;").replace(/"/g,"&quot;"),P=r=>`<image href="${_(r)}" x="14" y="12" width="22" height="22" style="filter: brightness(0) invert(1);" />`,j=r=>{let e=r.trim();if(O.test(e)){let t=u(e,"x","14");return t=u(t,"y","12"),t=u(t,"width","22"),t=u(t,"height","22"),/\spreserveAspectRatio="/i.test(t)||(t=t.replace(/<svg\b/i,'<svg preserveAspectRatio="xMidYMid meet"')),t}return`<g transform="translate(14 12)">${e}</g>`},F=({innerSvg:r,innerUrl:e})=>{let t=r?.trim(),o=e?.trim();return t?U.test(t)?j(t):P(t):o?P(o):""},C=(r,e={})=>`<svg
1
+ var K=Object.defineProperty;var b=(r,e)=>{for(var t in e)K(r,t,{get:e[t],enumerable:!0})};var S="https://platform.mahal.tj/api/";var I="https://mtile.gram.tj/custom-styles/dark-style.json",w="https://mtile.gram.tj/custom-styles/mapstyle.json",T="https://mtile.gram.tj/custom-styles/style_maptiler_basic_hn.json";function R(r){let e=[],t=0,o=r.length,n=0,c=0;for(;t<o;){let a,i=0,p=0;do a=r.charCodeAt(t++)-63,p|=(a&31)<<i,i+=5;while(a>=32);let D=p&1?~(p>>1):p>>1;n+=D,i=0,p=0;do a=r.charCodeAt(t++)-63,p|=(a&31)<<i,i+=5;while(a>=32);let $=p&1?~(p>>1):p>>1;c+=$,e.push([c*1e-5,n*1e-5])}return e}var u=class{constructor(e){this.map=e}setZoom(e,t=!0){t?this.map.easeTo({zoom:e}):this.map.setZoom(e)}setBearing(e,t=!0){t?this.map.easeTo({bearing:e}):this.map.setBearing(e)}setPitch(e,t=!0){t?this.map.easeTo({pitch:e}):this.map.setPitch(e)}toggle3D(e){this.map.easeTo({pitch:e?60:0,bearing:e?this.map.getBearing():0,duration:800})}resetNorth(){this.map.easeTo({bearing:0,pitch:0,duration:600})}flyTo(e){this.map.flyTo({speed:1.2,curve:1.42,essential:!0,...e})}getPitch(){return this.map.getPitch()}};var O=/<svg[\s>]/i,U=/<(svg|path|g|circle|rect|polygon|line|polyline|ellipse|use)\b/i,h=(r,e,t)=>{let o=new RegExp(`\\s${e}="[^"]*"`,"i");return o.test(r)?r.replace(o,` ${e}="${t}"`):r.replace(/<svg\b/i,`<svg ${e}="${t}"`)},_=r=>r.replace(/&/g,"&amp;").replace(/"/g,"&quot;"),P=r=>`<image href="${_(r)}" x="14" y="12" width="22" height="22" style="filter: brightness(0) invert(1);" />`,j=r=>{let e=r.trim();if(O.test(e)){let t=h(e,"x","14");return t=h(t,"y","12"),t=h(t,"width","22"),t=h(t,"height","22"),/\spreserveAspectRatio="/i.test(t)||(t=t.replace(/<svg\b/i,'<svg preserveAspectRatio="xMidYMid meet"')),t}return`<g transform="translate(14 12)">${e}</g>`},F=({innerSvg:r,innerUrl:e})=>{let t=r?.trim(),o=e?.trim();return t?U.test(t)?j(t):P(t):o?P(o):""},C=(r,e={})=>`<svg
2
2
  width="50"
3
3
  height="62"
4
4
  viewBox="0 0 50 62"
@@ -67,5 +67,5 @@ var K=Object.defineProperty;var S=(r,e)=>{for(var t in e)K(r,t,{get:e[t],enumera
67
67
  />
68
68
  </clipPath>
69
69
  </defs>
70
- </svg>`;var f=class{constructor(e){this.props=e;this.element=this.createElement()}createElement(){let e=document.createElement("div");e.style.cursor="pointer";let t=this.props.svg?this.applyColorToCustomSvg(this.props.svg):C(this.props.color??"#278960",{innerSvg:this.props.innerSvg,innerUrl:this.props.innerUrl});return e.innerHTML=t,this.props.draggable&&(e.draggable=!0),e}applyColorToCustomSvg(e){return this.props.color?e.replace(/fill="[^"]*"/g,`fill="${this.props.color}"`):e}getElement(){return this.element}getCoordinates(){return this.props.coordinates}isDraggable(){return!!this.props.draggable}getAnchor(){return this.props.anchor||"center"}};function k(r,e,t){return new r.Marker({element:t.getElement(),draggable:t.isDraggable?.()??!1,anchor:t.getAnchor?.()??"center"}).setLngLat(t.getCoordinates()).addTo(e)}var g={dark:I,light:w},n=class n{constructor(){this.isReady=!1;this.readyCallbacks=[]}static create(e,t){if(n.instance)return n.instance;let s=window.maplibregl||t;if(!s)throw new Error("[MahalMap SDK] MapLibre GL \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D. \u041F\u0435\u0440\u0435\u0434\u0430\u0439 \u0435\u0433\u043E \u0432\u0442\u043E\u0440\u044B\u043C \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u043E\u043C \u0438\u043B\u0438 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438 \u0447\u0435\u0440\u0435\u0437 script.");let c=e.autoAddVectorSource?T:e.style?e.style:e.theme==="dark"?g.dark:g.light,a=new n;return a.options=e,a.maplibre=s,a.map=new s.Map({container:e.container||"map",style:c,center:e.center||[69.624024,40.279687],zoom:e.zoom||5,attributionControl:e.attributionControl!==!1}),a.map.on("load",()=>{a.isReady=!0,a.camera=new h(a.map),a.readyCallbacks.forEach(i=>i(a.map)),a.readyCallbacks=[]}),n.instance=a,a}static onReady(e){if(!n.instance){let o=setInterval(()=>{n.instance&&(clearInterval(o),n.onReady(e))},50);return}let t=n.instance;t.isReady?e(t.map):t.readyCallbacks.push(e)}static getInstance(){if(!n.instance)throw new Error("[MahalMap SDK] \u041A\u0430\u0440\u0442\u0430 \u0435\u0449\u0451 \u043D\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u0430");return n.instance}addMarker(e){return k(this.maplibre,this.map,e)}init(e){this.map=e,this.camera=new h(e)}getCamera(){return this.camera}getMap(){return this.map}setStyle(e){this.map.setStyle(e==="dark"?g.dark:g.light)}setCenter(e){this.map.setCenter(e)}setZoom(e){this.map.setZoom(e)}destroy(){this.map.remove(),n.instance=null}};n.instance=null;var d=n;import N from"axios";var l=N.create({baseURL:b});l.interceptors.request.use(r=>r,r=>(r.request?.status===401&&y(),Promise.reject(r)));var L={};S(L,{clearKey:()=>y,getApiKey:()=>m,saveKey:()=>x});var M="";function x(r){r!==""&&(M=r,l.defaults.headers.common.Authorization=`Bearer ${r}`)}function y(){M="",l.defaults.headers.common.Authorization=""}var m=()=>M;function v(r,e){let t;return(...o)=>(t&&clearTimeout(t),new Promise(s=>{t=setTimeout(async()=>{let c=await r(...o);s(c)},e)}))}var A=async r=>{try{return(await l.post("services/getAddress",null,{params:r})).data}catch(e){throw console.error("Error while searching address:",e),e}},E=async r=>{try{return(await l.post("services/getAddressByLocation",null,{params:r})).data}catch(e){throw console.error("Error while searching address by location:",e),e}};async function Z(r,e,t){let o={text:r,token:e||m(),...t};try{return await A(o)}catch(s){throw s}}var z=v(Z,500);async function H(r,e,t){return await z(r,e,t)}async function V(r){let e={...r,token:r.token?r.token:m()};try{return await E(e)}catch(t){throw t}}var B=async(r,e)=>{try{let t=[];return r.forEach(s=>{t.push({lng:s[0],lat:s[1]})}),(await l.post("services/getRoutes",{points:t,token:e||m()})).data}catch(t){throw console.error(t),t}};async function X(r,e,t){try{let o=await B(r,t);return o?.data?o.data.map(c=>{let a={...c};return a.route?.routes?.length&&(a.route.routes=a.route.routes.map(i=>({...i,geometry:e==="geojson"&&typeof i.geometry=="string"?R(i.geometry):i.geometry}))),a}):o}catch(o){throw o}}var G={};S(G,{debounce:()=>v});function q(){let r=document.getElementsByTagName("script");for(let e of r)if(e.src.includes("mahal_map.sdk.js")){let o=new URL(e.src).searchParams.get("apikey");if(o)return o}return""}x(q());export{d as MahalMap,f as MahalMapDefaultMarker,X as Router,H as Search,V as SearchByLocation,L as keyUtils,G as utils};
70
+ </svg>`;var f=class{constructor(e){this.props=e;this.element=this.createElement()}createElement(){let e=document.createElement("div");e.style.cursor="pointer";let t=this.props.svg?this.applyColorToCustomSvg(this.props.svg):C(this.props.color??"#278960",{innerSvg:this.props.innerSvg,innerUrl:this.props.innerUrl});return e.innerHTML=t,this.props.draggable&&(e.draggable=!0),e}applyColorToCustomSvg(e){return this.props.color?e.replace(/fill="[^"]*"/g,`fill="${this.props.color}"`):e}getElement(){return this.element}getCoordinates(){return this.props.coordinates}isDraggable(){return!!this.props.draggable}getAnchor(){return this.props.anchor||"center"}};function k(r,e,t){return new r.Marker({element:t.getElement(),draggable:t.isDraggable?.()??!1,anchor:t.getAnchor?.()??"center"}).setLngLat(t.getCoordinates()).addTo(e)}var g={dark:I,light:w},s=class s{constructor(){this.isReady=!1;this.readyCallbacks=[]}static create(e,t){if(s.instance)return s.instance;let n=window.maplibregl||t;if(!n)throw new Error("[MahalMap SDK] MapLibre GL \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D. \u041F\u0435\u0440\u0435\u0434\u0430\u0439 \u0435\u0433\u043E \u0432\u0442\u043E\u0440\u044B\u043C \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u043E\u043C \u0438\u043B\u0438 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438 \u0447\u0435\u0440\u0435\u0437 script.");let c=e.autoAddVectorSource?T:e.style?e.style:e.theme==="dark"?g.dark:g.light,a=new s;return a.options=e,a.maplibre=n,a.map=new n.Map({container:e.container||"map",style:c,center:e.center||[69.624024,40.279687],zoom:e.zoom||5,attributionControl:e.attributionControl!==!1}),a.map.on("load",()=>{a.isReady=!0,a.camera=new u(a.map),a.readyCallbacks.forEach(i=>i(a.map)),a.readyCallbacks=[]}),s.instance=a,a}static onReady(e){if(!s.instance){let o=setInterval(()=>{s.instance&&(clearInterval(o),s.onReady(e))},50);return}let t=s.instance;t.isReady?e(t.map):t.readyCallbacks.push(e)}static getInstance(){if(!s.instance)throw new Error("[MahalMap SDK] \u041A\u0430\u0440\u0442\u0430 \u0435\u0449\u0451 \u043D\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u0430");return s.instance}addMarker(e){return k(this.maplibre,this.map,e)}init(e){this.map=e,this.camera=new u(e)}getCamera(){return this.camera}getMap(){return this.map}setStyle(e){this.map.setStyle(e==="dark"?g.dark:g.light)}setCenter(e){this.map.setCenter(e)}setZoom(e){this.map.setZoom(e)}destroy(){this.map.remove(),s.instance=null}};s.instance=null;var d=s;import N from"axios";var l=N.create({baseURL:S});l.interceptors.request.use(r=>r,r=>(r.request?.status===401&&y(),Promise.reject(r)));var L={};b(L,{clearKey:()=>y,getApiKey:()=>m,saveKey:()=>x});var M="";function x(r){r!==""&&(M=r,l.defaults.headers.common.Authorization=`Bearer ${r}`)}function y(){M="",l.defaults.headers.common.Authorization=""}var m=()=>M;function v(r,e){let t;return(...o)=>(t&&clearTimeout(t),new Promise(n=>{t=setTimeout(async()=>{let c=await r(...o);n(c)},e)}))}var A=async r=>{try{return(await l.post("services/getAddress",null,{params:r})).data}catch(e){throw console.error("Error while searching address:",e),e}},E=async r=>{try{return(await l.post("services/getAddressByLocation",null,{params:r})).data}catch(e){throw console.error("Error while searching address by location:",e),e}};async function V(r,e,t){let o={text:r,token:e||m(),...t};try{return await A(o)}catch(n){throw n}}var Z=v(V,500);async function z(r,e,t){return await Z(r,e,t)}async function H(r){let e={...r,token:r.token?r.token:m()};try{return await E(e)}catch(t){throw t}}var B=async(r,e)=>{try{let t=[];return r.forEach(n=>{t.push({lng:n[0],lat:n[1]})}),(await l.post("services/getRoutes",{points:t,token:e||m()})).data}catch(t){throw console.error(t),t}};async function X(r,e,t){try{let o=await B(r,t);return o?.data?o.data.map(c=>{let a={...c};return a.route?.routes?.length&&(a.route.routes=a.route.routes.map(i=>({...i,geometry:e==="geojson"&&typeof i.geometry=="string"?R(i.geometry):i.geometry}))),a}):o}catch(o){throw o}}var G={};b(G,{debounce:()=>v,trimValue:()=>q});function q(r,e){if(e<=0)return"";let t=r.trim();return e>=t.length?t:t.slice(0,e)}function Y(){let r=document.getElementsByTagName("script");for(let e of r)if(e.src.includes("mahal_map.sdk.js")){let o=new URL(e.src).searchParams.get("apikey");if(o)return o}return""}x(Y());export{d as MahalMap,f as MahalMapDefaultMarker,X as Router,z as Search,H as SearchByLocation,L as keyUtils,G as utils};
71
71
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/app/config/constants.ts","../src/app/config/geojson-polyline.ts","../src/lib/controller/camera/index.ts","../src/lib/controller/markers/defaultMarkerSvg.ts","../src/lib/controller/markers/MahalMapDefaultMarker.ts","../src/lib/map/adapters/marker.adapter.ts","../src/lib/map/MahalMap.ts","../src/app/lib/axios/api/axios.ts","../src/app/lib/saveKey/index.ts","../src/app/lib/saveKey/utils.ts","../src/app/utils/debounce/index.ts","../src/lib/search/api.ts","../src/lib/search/utils.ts","../src/lib/routing/api.ts","../src/lib/routing/utils.ts","../src/app/utils/index.ts","../src/index.ts"],"sourcesContent":["const BASE_URL = \"https://platform.mahal.tj/api/\";\r\nconst LATLNGREGEX =\r\n /^([-+]?(?:[1-8]?\\d(?:\\.\\d+)?|90(?:\\.0+)?)),\\s*([-+]?(?:180(?:\\.0+)?|(?:(?:1[0-7]\\d)|(?:[1-9]?\\d))(?:\\.\\d+)?))$/;\r\nconst LNGLATREGEX =\r\n /^([-+]?(?:180(?:\\.0+)?|(?:(?:1[0-7]\\d)|(?:[1-9]?\\d))(?:\\.\\d+)?)),\\s*([-+]?(?:[1-8]?\\d(?:\\.\\d+)?|90(?:\\.0+)?))$/;\r\n\r\nconst REGEX =\r\n /^[-+]?([1-8]?\\d(\\.\\d+)?|90(\\.0+)?),\\s*[-+]?(180(\\.0+)?|((1[0-7]\\d)|([1-9]?\\d))(\\.\\d+)?)$/;\r\n\r\nconst DARK = \"https://mtile.gram.tj/custom-styles/dark-style.json\";\r\nconst LIGHT = \"https://mtile.gram.tj/custom-styles/mapstyle.json\";\r\nconst VECTOR =\r\n \"https://mtile.gram.tj/custom-styles/style_maptiler_basic_hn.json\";\r\n\r\nexport { BASE_URL, LATLNGREGEX, LNGLATREGEX, REGEX, DARK, LIGHT, VECTOR };\r\n","function geojsonPolyline(encoded: string): number[][] {\r\n let points = [];\r\n let index = 0,\r\n len = encoded.length;\r\n let lat = 0,\r\n lng = 0;\r\n\r\n while (index < len) {\r\n let b,\r\n shift = 0,\r\n result = 0;\r\n do {\r\n b = encoded.charCodeAt(index++) - 63;\r\n result |= (b & 0x1f) << shift;\r\n shift += 5;\r\n } while (b >= 0x20);\r\n let dlat = result & 1 ? ~(result >> 1) : result >> 1;\r\n lat += dlat;\r\n\r\n shift = 0;\r\n result = 0;\r\n do {\r\n b = encoded.charCodeAt(index++) - 63;\r\n result |= (b & 0x1f) << shift;\r\n shift += 5;\r\n } while (b >= 0x20);\r\n let dlng = result & 1 ? ~(result >> 1) : result >> 1;\r\n lng += dlng;\r\n\r\n points.push([lng * 1e-5, lat * 1e-5]);\r\n }\r\n\r\n return points;\r\n}\r\n\r\nexport { geojsonPolyline };\r\n\r\n// Пример использования:\r\n\r\n// geojsonPolyline(\"yzocFzynhVq}@n}@o}@nzD\")\r\n\r\n// Вернёт массив вида [\r\n// [102.0, 0.5],\r\n// [103.0, 1.0],\r\n// [104.0, 0.5],\r\n// [105.0, 0.0]\r\n// ].\r\n","import type { Map, FlyToOptions } from \"maplibre-gl\";\r\n\r\nexport class CameraController {\r\n constructor(private map: Map) {}\r\n\r\n setZoom(zoom: number, smooth = true) {\r\n if (smooth) {\r\n this.map.easeTo({ zoom });\r\n } else {\r\n this.map.setZoom(zoom);\r\n }\r\n }\r\n\r\n setBearing(bearing: number, smooth = true) {\r\n smooth ? this.map.easeTo({ bearing }) : this.map.setBearing(bearing);\r\n }\r\n\r\n setPitch(pitch: number, smooth = true) {\r\n smooth ? this.map.easeTo({ pitch }) : this.map.setPitch(pitch);\r\n }\r\n\r\n toggle3D(is3D: boolean) {\r\n this.map.easeTo({\r\n pitch: is3D ? 60 : 0,\r\n bearing: is3D ? this.map.getBearing() : 0,\r\n duration: 800,\r\n });\r\n }\r\n\r\n resetNorth() {\r\n this.map.easeTo({\r\n bearing: 0,\r\n pitch: 0,\r\n duration: 600,\r\n });\r\n }\r\n\r\n flyTo(options: FlyToOptions) {\r\n this.map.flyTo({\r\n speed: 1.2,\r\n curve: 1.42,\r\n essential: true,\r\n ...options,\r\n });\r\n }\r\n\r\n getPitch() {\r\n return this.map.getPitch();\r\n }\r\n}\r\n","type DefaultMarkerInnerIconOptions = {\n innerSvg?: string;\n innerUrl?: string;\n};\n\nconst SVG_ROOT_PATTERN = /<svg[\\s>]/i;\nconst SVG_MARKUP_PATTERN =\n /<(svg|path|g|circle|rect|polygon|line|polyline|ellipse|use)\\b/i;\n\nconst updateSvgAttribute = (\n svg: string,\n attribute: string,\n value: string,\n): string => {\n const attributePattern = new RegExp(`\\\\s${attribute}=\"[^\"]*\"`, \"i\");\n\n if (attributePattern.test(svg)) {\n return svg.replace(attributePattern, ` ${attribute}=\"${value}\"`);\n }\n\n return svg.replace(/<svg\\b/i, `<svg ${attribute}=\"${value}\"`);\n};\n\nconst escapeSvgAttribute = (value: string): string =>\n value.replace(/&/g, \"&amp;\").replace(/\"/g, \"&quot;\");\n\nconst createImageTag = (url: string): string =>\n `<image href=\"${escapeSvgAttribute(url)}\" x=\"14\" y=\"12\" width=\"22\" height=\"22\" style=\"filter: brightness(0) invert(1);\" />`;\n\nconst normalizeInnerSvg = (svg: string): string => {\n const trimmedSvg = svg.trim();\n\n if (SVG_ROOT_PATTERN.test(trimmedSvg)) {\n let normalizedSvg = updateSvgAttribute(trimmedSvg, \"x\", \"14\");\n normalizedSvg = updateSvgAttribute(normalizedSvg, \"y\", \"12\");\n normalizedSvg = updateSvgAttribute(normalizedSvg, \"width\", \"22\");\n normalizedSvg = updateSvgAttribute(normalizedSvg, \"height\", \"22\");\n\n if (!/\\spreserveAspectRatio=\"/i.test(normalizedSvg)) {\n normalizedSvg = normalizedSvg.replace(\n /<svg\\b/i,\n `<svg preserveAspectRatio=\"xMidYMid meet\"`,\n );\n }\n\n return normalizedSvg;\n }\n\n return `<g transform=\"translate(14 12)\">${trimmedSvg}</g>`;\n};\n\nconst resolveInnerIcon = ({\n innerSvg,\n innerUrl,\n}: DefaultMarkerInnerIconOptions): string => {\n const trimmedInnerSvg = innerSvg?.trim();\n const trimmedInnerUrl = innerUrl?.trim();\n\n if (trimmedInnerSvg) {\n if (SVG_MARKUP_PATTERN.test(trimmedInnerSvg)) {\n return normalizeInnerSvg(trimmedInnerSvg);\n }\n\n return createImageTag(trimmedInnerSvg);\n }\n\n if (trimmedInnerUrl) {\n return createImageTag(trimmedInnerUrl);\n }\n\n return \"\";\n};\n\nconst createDefaultMarkerSvg = (\n color: string,\n innerIconOptions: DefaultMarkerInnerIconOptions = {},\n) => `<svg\n width=\"50\"\n height=\"62\"\n viewBox=\"0 0 50 62\"\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <g filter=\"url(#filter0_d_367_31358)\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M25 2C36.598 2 46 11.402 46 23C46 33.1603 38.7844 41.6353 29.198 43.5803L25.6524 48.6575C25.5788 48.7633 25.4812 48.8497 25.3676 48.9093C25.254 48.9689 25.128 49 25 49C24.872 49 24.746 48.9689 24.6324 48.9093C24.5188 48.8497 24.4212 48.7633 24.3476 48.6575L20.802 43.5803C11.2156 41.6353 4 33.1603 4 23C4 11.402 13.402 2 25 2Z\"\r\n fill=\"${color ? color : \"#278960\"}\"\r\n />\r\n </g>\r\n <path\r\n d=\"M25 51C27.7614 51 30 53.2386 30 56C30 58.7614 27.7614 61 25 61C22.2386 61 20 58.7614 20 56C20 53.2386 22.2386 51 25 51Z\"\r\n fill=\"${color ? color : \"#278960\"}\"\r\n stroke=\"white\"\r\n stroke-width=\"2\"\r\n />\n <g clip-path=\"url(#clip0_367_31358)\">\n ${resolveInnerIcon(innerIconOptions)}\n </g>\n <defs>\n <filter\r\n id=\"filter0_d_367_31358\"\r\n x=\"0\"\r\n y=\"0\"\r\n width=\"50\"\r\n height=\"55\"\r\n filterUnits=\"userSpaceOnUse\"\r\n color-interpolation-filters=\"sRGB\"\r\n >\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix\r\n in=\"SourceAlpha\"\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\"\r\n />\r\n <feOffset dy=\"2\" />\r\n <feGaussianBlur stdDeviation=\"2\" />\r\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\r\n <feColorMatrix\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0.250234 0 0 0 0 0.660089 0 0 0 0 0.488619 0 0 0 0.24 0\"\r\n />\r\n <feBlend\r\n mode=\"normal\"\r\n in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_367_31358\"\r\n />\r\n <feBlend\r\n mode=\"normal\"\r\n in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow_367_31358\"\r\n result=\"shape\"\r\n />\r\n </filter>\r\n <clipPath id=\"clip0_367_31358\">\r\n <rect\r\n width=\"22\"\r\n height=\"22\"\r\n fill=\"white\"\r\n transform=\"translate(14 12)\"\r\n />\r\n </clipPath>\r\n </defs>\r\n </svg>`;\r\n\r\nexport { createDefaultMarkerSvg };\r\n","import { createDefaultMarkerSvg } from \"./defaultMarkerSvg\";\r\nimport type { MahalMapDefaultMarkerProps } from \"@app/types\";\r\n\r\nclass MahalMapDefaultMarker {\r\n private element: HTMLElement;\r\n\r\n constructor(private props: MahalMapDefaultMarkerProps) {\r\n this.element = this.createElement();\r\n }\r\n\r\n private createElement(): HTMLElement {\r\n const el = document.createElement(\"div\");\r\n el.style.cursor = \"pointer\";\r\n\r\n const svg = this.props.svg\n ? this.applyColorToCustomSvg(this.props.svg)\n : createDefaultMarkerSvg(\n this.props.color ?? \"#278960\",\n {\n innerSvg: this.props.innerSvg,\n innerUrl: this.props.innerUrl,\n },\n );\n\r\n el.innerHTML = svg;\r\n\r\n if (this.props.draggable) {\r\n el.draggable = true;\r\n }\r\n\r\n return el;\r\n }\r\n\r\n private applyColorToCustomSvg(svg: string): string {\r\n if (!this.props.color) return svg;\r\n return svg.replace(/fill=\"[^\"]*\"/g, `fill=\"${this.props.color}\"`);\r\n }\r\n\r\n getElement() {\r\n return this.element;\r\n }\r\n\r\n getCoordinates() {\r\n return this.props.coordinates;\r\n }\r\n\r\n isDraggable() {\r\n return !!this.props.draggable;\r\n }\r\n\r\n getAnchor() {\r\n return this.props.anchor || \"center\";\r\n }\r\n}\r\n\r\nexport { MahalMapDefaultMarker };\r\n","import type { Map } from \"maplibre-gl\";\r\nimport type { IMapMarker } from \"@app/types\";\r\n\r\nexport function addMarker(maplibregl: any, map: Map, marker: IMapMarker) {\r\n const mapMarker = new maplibregl.Marker({\r\n element: marker.getElement(),\r\n draggable: marker.isDraggable?.() ?? false,\r\n anchor: marker.getAnchor?.() ?? \"center\",\r\n })\r\n .setLngLat(marker.getCoordinates())\r\n .addTo(map);\r\n\r\n return mapMarker;\r\n}\r\n","import type { Map as MapType } from \"maplibre-gl\";\r\nimport { DARK, LIGHT, VECTOR } from \"@app/config\";\r\nimport { CameraController } from \"@lib/controller\";\r\n\r\nimport type { IMahalMapOptions, IMapMarker } from \"@app/types\";\r\n\r\n// Adapter\r\nimport { addMarker } from \"../map/adapters\";\r\n\r\nconst defaultStyles = { dark: DARK, light: LIGHT };\r\n\r\nexport class MahalMap {\r\n private static instance: MahalMap | null = null;\r\n\r\n private isReady = false;\r\n private readyCallbacks: Array<(map: MapType) => void> = [];\r\n\r\n private map!: MapType;\r\n private maplibre!: typeof import(\"maplibre-gl\");\r\n private camera!: CameraController;\r\n\r\n private options!: IMahalMapOptions;\r\n\r\n private constructor() {}\r\n\r\n static create(\r\n options: IMahalMapOptions,\r\n maplibreObject?: { Map: typeof MapType } | typeof MapType,\r\n ) {\r\n if (MahalMap.instance) return MahalMap.instance;\r\n\r\n const globalMaplibre = (window as any).maplibregl;\r\n const maplibre = globalMaplibre || maplibreObject;\r\n\r\n if (!maplibre) {\r\n throw new Error(\r\n \"[MahalMap SDK] MapLibre GL не найден. Передай его вторым аргументом или подключи через script.\",\r\n );\r\n }\r\n\r\n const finalStyle = options.autoAddVectorSource\r\n ? VECTOR\r\n : options.style\r\n ? options.style\r\n : options.theme === \"dark\"\r\n ? defaultStyles.dark\r\n : defaultStyles.light;\r\n\r\n const instance = new MahalMap();\r\n\r\n instance.options = options;\r\n instance.maplibre = maplibre;\r\n instance.map = new maplibre.Map({\r\n container: options.container || \"map\",\r\n style: finalStyle as string,\r\n center: options.center || [69.624024, 40.279687],\r\n zoom: options.zoom || 5,\r\n attributionControl: options.attributionControl !== false,\r\n });\r\n\r\n instance.map.on(\"load\", () => {\r\n instance.isReady = true;\r\n\r\n instance.camera = new CameraController(instance.map);\r\n\r\n instance.readyCallbacks.forEach((cb) => cb(instance.map));\r\n instance.readyCallbacks = [];\r\n });\r\n\r\n MahalMap.instance = instance;\r\n return instance;\r\n }\r\n\r\n static onReady(callback: (map: MapType) => void) {\r\n if (!MahalMap.instance) {\r\n const check = setInterval(() => {\r\n if (MahalMap.instance) {\r\n clearInterval(check);\r\n MahalMap.onReady(callback);\r\n }\r\n }, 50);\r\n return;\r\n }\r\n\r\n const instance = MahalMap.instance;\r\n\r\n if (instance.isReady) {\r\n callback(instance.map);\r\n } else {\r\n instance.readyCallbacks.push(callback);\r\n }\r\n }\r\n\r\n static getInstance(): MahalMap {\r\n if (!MahalMap.instance) {\r\n throw new Error(\"[MahalMap SDK] Карта ещё не создана\");\r\n }\r\n return MahalMap.instance;\r\n }\r\n\r\n addMarker(marker: IMapMarker) {\r\n return addMarker(this.maplibre, this.map, marker);\r\n }\r\n init(map: MapType) {\r\n this.map = map;\r\n this.camera = new CameraController(map);\r\n }\r\n getCamera() {\r\n return this.camera;\r\n }\r\n\r\n getMap(): MapType {\r\n return this.map;\r\n }\r\n\r\n setStyle(theme: \"dark\" | \"light\") {\r\n this.map.setStyle(\r\n theme === \"dark\" ? defaultStyles.dark : defaultStyles.light,\r\n );\r\n }\r\n\r\n setCenter(center: [number, number]) {\r\n this.map.setCenter(center);\r\n }\r\n\r\n setZoom(zoom: number) {\r\n this.map.setZoom(zoom);\r\n }\r\n\r\n destroy() {\r\n this.map.remove();\r\n MahalMap.instance = null;\r\n }\r\n}\r\n","import axios from \"axios\";\r\nimport { BASE_URL } from \"@app/config/index\";\r\nimport { clearKey } from \"@app/lib\";\r\n\r\nexport const api = axios.create({\r\n baseURL: BASE_URL,\r\n});\r\n\r\napi.interceptors.request.use(\r\n (response) => response,\r\n (error) => {\r\n if (error.request?.status === 401) {\r\n clearKey();\r\n }\r\n return Promise.reject(error);\r\n }\r\n);\r\n","export * from \"./utils\";\r\n","import { api } from \"@app/lib\";\r\n\r\nlet apiKey: string = \"\";\r\n\r\nfunction saveKey(param: string) {\r\n if (param === \"\") return;\r\n apiKey = param;\r\n api.defaults.headers.common[\"Authorization\"] = `Bearer ${param}`;\r\n}\r\n\r\nfunction clearKey() {\r\n apiKey = \"\";\r\n api.defaults.headers.common[\"Authorization\"] = \"\";\r\n}\r\n\r\nconst getApiKey = () => apiKey;\r\n\r\nexport { saveKey, clearKey, getApiKey };\r\n","function debounce<F extends (...args: any[]) => Promise<any>>(\r\n fn: F,\r\n delay: number,\r\n) {\r\n let timer: ReturnType<typeof setTimeout>;\r\n\r\n return (...args: Parameters<F>): Promise<ReturnType<F>> => {\r\n if (timer) clearTimeout(timer);\r\n return new Promise((resolve) => {\r\n timer = setTimeout(async () => {\r\n const result = await fn(...args);\r\n resolve(result);\r\n }, delay);\r\n }) as Promise<ReturnType<F>>;\r\n };\r\n}\r\n\r\nexport { debounce };\r\n","import { api } from \"@app/lib\";\nimport type {\n ISearchByLocationParam,\n ISearchParam,\n ISearchResponse,\n} from \"@app/types\";\n\nexport const searchPost = async (\n params: ISearchParam,\n): Promise<ISearchResponse> => {\n try {\n const response = await api.post(\"services/getAddress\", null, {\n params,\n });\n return response.data;\n } catch (error) {\n console.error(\"Error while searching address:\", error);\n throw error;\n }\n};\n\nexport const searchByLocationPost = async (\n params: ISearchByLocationParam,\n): Promise<ISearchResponse> => {\n try {\n const response = await api.post(\"services/getAddressByLocation\", null, {\n params,\n });\n return response.data;\n } catch (error) {\n console.error(\"Error while searching address by location:\", error);\n throw error;\n }\n};\n","import { searchByLocationPost, searchPost } from \"./api\";\nimport {\n IAdditionalParamType,\n ISearchByLocationParam,\n ISearchParam,\n ISearchResponse,\n} from \"@app/types/index\";\nimport { debounce, getApiKey } from \"@app/lib\";\n// import { checkCoordinates } from \"@app/lib/index\";\r\n// import { REGEX } from \"@app/config\";\r\n\r\nasync function getSearch(\n param: string,\n token: string,\n additionalParam?: IAdditionalParamType,\n): Promise<ISearchResponse> {\n let searchData: ISearchParam = {\r\n text: param,\r\n token: token ? token : getApiKey(),\r\n ...additionalParam,\r\n };\r\n\r\n // if (param !== \"\") {\r\n // if (REGEX.test(param)) {\r\n // let coordinates = await checkCoordinates(param);\r\n // if (coordinates) {\r\n // searchData = {\r\n // lat: coordinates.lat ?? \"\",\r\n // lng: coordinates.lng ?? \"\",\r\n // };\r\n // }\r\n // } else {\r\n // searchData.text = param;\r\n // }\r\n // } else {\r\n // searchData.text = \"\";\r\n // }\r\n\r\n try {\n const res: ISearchResponse = await searchPost(searchData);\n return res;\n } catch (error) {\n throw error;\n }\n}\n\r\nconst debouncedFn = debounce(getSearch, 500);\r\n\r\nasync function Search(\n param: string,\n token: string,\n additionalParam?: IAdditionalParamType,\n): Promise<ISearchResponse> {\n return await debouncedFn(param, token, additionalParam);\n}\n\nasync function SearchByLocation(\n params: ISearchByLocationParam,\n): Promise<ISearchResponse> {\n const searchData: ISearchByLocationParam = {\n ...params,\n token: params.token ? params.token : getApiKey(),\n };\n\n try {\n const res: ISearchResponse = await searchByLocationPost(searchData);\n return res;\n } catch (error) {\n throw error;\n }\n}\n\nexport { Search, SearchByLocation };\n","import { api, getApiKey } from \"@app/lib\";\r\n\r\nconst routingApi = async (param: number[][], token: string) => {\r\n try {\r\n const points: { lng: number; lat: number }[] = [];\r\n\r\n param.forEach((e) => {\r\n points.push({ lng: e[0], lat: e[1] });\r\n });\r\n const response = await api.post(\"services/getRoutes\", {\r\n points,\r\n token: token ? token : getApiKey(),\r\n });\r\n return response.data;\r\n } catch (err) {\r\n console.error(err);\r\n throw err;\r\n }\r\n};\r\n\r\nexport { routingApi };\r\n","import { routingApi } from \"@lib/routing/api\";\r\nimport { geojsonPolyline } from \"@app/config/index\";\r\nimport type { IRoute } from \"@app/types/index\";\r\n\r\nasync function Router(\r\n param: number[][],\r\n typeData: string,\r\n token: string,\r\n): Promise<IRoute[]> {\r\n try {\r\n const res = await routingApi(param, token);\r\n\r\n if (!res?.data) return res;\r\n\r\n const data: IRoute[] = res.data;\r\n\r\n return data.map((route) => {\r\n const updated = { ...route };\r\n\r\n if (updated.route?.routes?.length) {\r\n updated.route.routes = updated.route.routes.map((r) => ({\r\n ...r,\r\n geometry:\r\n typeData === \"geojson\" && typeof r.geometry === \"string\"\r\n ? geojsonPolyline(r.geometry)\r\n : r.geometry,\r\n }));\r\n }\r\n\r\n return updated as IRoute;\r\n });\r\n } catch (error) {\r\n throw error;\r\n }\r\n}\r\n\r\nexport { Router };\r\n","export * from \"./debounce\";\r\n","// Lib\nimport { MahalMap } from \"@lib/map\";\nimport { Search, SearchByLocation } from \"@lib/search\";\nimport { Router } from \"@lib/routing\";\nimport { MahalMapDefaultMarker } from \"@lib/controller\";\n\r\n// utils\r\nimport * as keyUtils from \"@app/lib/saveKey\";\r\nimport * as utils from \"@app/utils\";\r\n\r\nexport {\n MahalMap,\n Search,\n SearchByLocation,\n Router,\n keyUtils,\n MahalMapDefaultMarker,\n utils,\n};\n\r\nfunction loadKeyFromScriptUrl() {\r\n const scripts = document.getElementsByTagName(\"script\");\r\n for (const script of scripts) {\r\n if (script.src.includes(\"mahal_map.sdk.js\")) {\r\n const url = new URL(script.src);\r\n const apikey = url.searchParams.get(\"apikey\");\r\n if (apikey) return apikey;\r\n }\r\n }\r\n return \"\";\r\n}\r\nkeyUtils.saveKey(loadKeyFromScriptUrl());\r\n"],"mappings":"0FAAA,IAAMA,EAAW,iCASjB,IAAMC,EAAO,sDACPC,EAAQ,oDACRC,EACJ,mECZF,SAASC,EAAgBC,EAA6B,CACpD,IAAIC,EAAS,CAAC,EACVC,EAAQ,EACVC,EAAMH,EAAQ,OACZI,EAAM,EACRC,EAAM,EAER,KAAOH,EAAQC,GAAK,CAClB,IAAIG,EACFC,EAAQ,EACRC,EAAS,EACX,GACEF,EAAIN,EAAQ,WAAWE,GAAO,EAAI,GAClCM,IAAWF,EAAI,KAASC,EACxBA,GAAS,QACFD,GAAK,IACd,IAAIG,EAAOD,EAAS,EAAI,EAAEA,GAAU,GAAKA,GAAU,EACnDJ,GAAOK,EAEPF,EAAQ,EACRC,EAAS,EACT,GACEF,EAAIN,EAAQ,WAAWE,GAAO,EAAI,GAClCM,IAAWF,EAAI,KAASC,EACxBA,GAAS,QACFD,GAAK,IACd,IAAII,EAAOF,EAAS,EAAI,EAAEA,GAAU,GAAKA,GAAU,EACnDH,GAAOK,EAEPT,EAAO,KAAK,CAACI,EAAM,KAAMD,EAAM,IAAI,CAAC,CACtC,CAEA,OAAOH,CACT,CC/BO,IAAMU,EAAN,KAAuB,CAC5B,YAAoBC,EAAU,CAAV,SAAAA,CAAW,CAE/B,QAAQC,EAAcC,EAAS,GAAM,CAC/BA,EACF,KAAK,IAAI,OAAO,CAAE,KAAAD,CAAK,CAAC,EAExB,KAAK,IAAI,QAAQA,CAAI,CAEzB,CAEA,WAAWE,EAAiBD,EAAS,GAAM,CACzCA,EAAS,KAAK,IAAI,OAAO,CAAE,QAAAC,CAAQ,CAAC,EAAI,KAAK,IAAI,WAAWA,CAAO,CACrE,CAEA,SAASC,EAAeF,EAAS,GAAM,CACrCA,EAAS,KAAK,IAAI,OAAO,CAAE,MAAAE,CAAM,CAAC,EAAI,KAAK,IAAI,SAASA,CAAK,CAC/D,CAEA,SAASC,EAAe,CACtB,KAAK,IAAI,OAAO,CACd,MAAOA,EAAO,GAAK,EACnB,QAASA,EAAO,KAAK,IAAI,WAAW,EAAI,EACxC,SAAU,GACZ,CAAC,CACH,CAEA,YAAa,CACX,KAAK,IAAI,OAAO,CACd,QAAS,EACT,MAAO,EACP,SAAU,GACZ,CAAC,CACH,CAEA,MAAMC,EAAuB,CAC3B,KAAK,IAAI,MAAM,CACb,MAAO,IACP,MAAO,KACP,UAAW,GACX,GAAGA,CACL,CAAC,CACH,CAEA,UAAW,CACT,OAAO,KAAK,IAAI,SAAS,CAC3B,CACF,EC5CA,IAAMC,EAAmB,aACnBC,EACJ,iEAEIC,EAAqB,CACzBC,EACAC,EACAC,IACW,CACX,IAAMC,EAAmB,IAAI,OAAO,MAAMF,CAAS,WAAY,GAAG,EAElE,OAAIE,EAAiB,KAAKH,CAAG,EACpBA,EAAI,QAAQG,EAAkB,IAAIF,CAAS,KAAKC,CAAK,GAAG,EAG1DF,EAAI,QAAQ,UAAW,QAAQC,CAAS,KAAKC,CAAK,GAAG,CAC9D,EAEME,EAAsBF,GAC1BA,EAAM,QAAQ,KAAM,OAAO,EAAE,QAAQ,KAAM,QAAQ,EAE/CG,EAAkBC,GACtB,gBAAgBF,EAAmBE,CAAG,CAAC,qFAEnCC,EAAqBP,GAAwB,CACjD,IAAMQ,EAAaR,EAAI,KAAK,EAE5B,GAAIH,EAAiB,KAAKW,CAAU,EAAG,CACrC,IAAIC,EAAgBV,EAAmBS,EAAY,IAAK,IAAI,EAC5D,OAAAC,EAAgBV,EAAmBU,EAAe,IAAK,IAAI,EAC3DA,EAAgBV,EAAmBU,EAAe,QAAS,IAAI,EAC/DA,EAAgBV,EAAmBU,EAAe,SAAU,IAAI,EAE3D,2BAA2B,KAAKA,CAAa,IAChDA,EAAgBA,EAAc,QAC5B,UACA,0CACF,GAGKA,CACT,CAEA,MAAO,mCAAmCD,CAAU,MACtD,EAEME,EAAmB,CAAC,CACxB,SAAAC,EACA,SAAAC,CACF,IAA6C,CAC3C,IAAMC,EAAkBF,GAAU,KAAK,EACjCG,EAAkBF,GAAU,KAAK,EAEvC,OAAIC,EACEf,EAAmB,KAAKe,CAAe,EAClCN,EAAkBM,CAAe,EAGnCR,EAAeQ,CAAe,EAGnCC,EACKT,EAAeS,CAAe,EAGhC,EACT,EAEMC,EAAyB,CAC7BC,EACAC,EAAkD,CAAC,IAChD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAYeD,GAAgB,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,mBAK1BA,GAAgB,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,YAKhCN,EAAiBO,CAAgB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;cC/F9C,IAAMC,EAAN,KAA4B,CAG1B,YAAoBC,EAAmC,CAAnC,WAAAA,EAClB,KAAK,QAAU,KAAK,cAAc,CACpC,CAEQ,eAA6B,CACnC,IAAMC,EAAK,SAAS,cAAc,KAAK,EACvCA,EAAG,MAAM,OAAS,UAElB,IAAMC,EAAM,KAAK,MAAM,IACnB,KAAK,sBAAsB,KAAK,MAAM,GAAG,EACzCC,EACE,KAAK,MAAM,OAAS,UACpB,CACE,SAAU,KAAK,MAAM,SACrB,SAAU,KAAK,MAAM,QACvB,CACF,EAEJ,OAAAF,EAAG,UAAYC,EAEX,KAAK,MAAM,YACbD,EAAG,UAAY,IAGVA,CACT,CAEQ,sBAAsBC,EAAqB,CACjD,OAAK,KAAK,MAAM,MACTA,EAAI,QAAQ,gBAAiB,SAAS,KAAK,MAAM,KAAK,GAAG,EADlCA,CAEhC,CAEA,YAAa,CACX,OAAO,KAAK,OACd,CAEA,gBAAiB,CACf,OAAO,KAAK,MAAM,WACpB,CAEA,aAAc,CACZ,MAAO,CAAC,CAAC,KAAK,MAAM,SACtB,CAEA,WAAY,CACV,OAAO,KAAK,MAAM,QAAU,QAC9B,CACF,EClDO,SAASE,EAAUC,EAAiBC,EAAUC,EAAoB,CASvE,OARkB,IAAIF,EAAW,OAAO,CACtC,QAASE,EAAO,WAAW,EAC3B,UAAWA,EAAO,cAAc,GAAK,GACrC,OAAQA,EAAO,YAAY,GAAK,QAClC,CAAC,EACE,UAAUA,EAAO,eAAe,CAAC,EACjC,MAAMD,CAAG,CAGd,CCJA,IAAME,EAAgB,CAAE,KAAMC,EAAM,MAAOC,CAAM,EAEpCC,EAAN,MAAMA,CAAS,CAYZ,aAAc,CATtB,KAAQ,QAAU,GAClB,KAAQ,eAAgD,CAAC,CAQlC,CAEvB,OAAO,OACLC,EACAC,EACA,CACA,GAAIF,EAAS,SAAU,OAAOA,EAAS,SAGvC,IAAMG,EADkB,OAAe,YACJD,EAEnC,GAAI,CAACC,EACH,MAAM,IAAI,MACR,0VACF,EAGF,IAAMC,EAAaH,EAAQ,oBACvBI,EACAJ,EAAQ,MACNA,EAAQ,MACRA,EAAQ,QAAU,OAChBJ,EAAc,KACdA,EAAc,MAEhBS,EAAW,IAAIN,EAErB,OAAAM,EAAS,QAAUL,EACnBK,EAAS,SAAWH,EACpBG,EAAS,IAAM,IAAIH,EAAS,IAAI,CAC9B,UAAWF,EAAQ,WAAa,MAChC,MAAOG,EACP,OAAQH,EAAQ,QAAU,CAAC,UAAW,SAAS,EAC/C,KAAMA,EAAQ,MAAQ,EACtB,mBAAoBA,EAAQ,qBAAuB,EACrD,CAAC,EAEDK,EAAS,IAAI,GAAG,OAAQ,IAAM,CAC5BA,EAAS,QAAU,GAEnBA,EAAS,OAAS,IAAIC,EAAiBD,EAAS,GAAG,EAEnDA,EAAS,eAAe,QAASE,GAAOA,EAAGF,EAAS,GAAG,CAAC,EACxDA,EAAS,eAAiB,CAAC,CAC7B,CAAC,EAEDN,EAAS,SAAWM,EACbA,CACT,CAEA,OAAO,QAAQG,EAAkC,CAC/C,GAAI,CAACT,EAAS,SAAU,CACtB,IAAMU,EAAQ,YAAY,IAAM,CAC1BV,EAAS,WACX,cAAcU,CAAK,EACnBV,EAAS,QAAQS,CAAQ,EAE7B,EAAG,EAAE,EACL,MACF,CAEA,IAAMH,EAAWN,EAAS,SAEtBM,EAAS,QACXG,EAASH,EAAS,GAAG,EAErBA,EAAS,eAAe,KAAKG,CAAQ,CAEzC,CAEA,OAAO,aAAwB,CAC7B,GAAI,CAACT,EAAS,SACZ,MAAM,IAAI,MAAM,0HAAqC,EAEvD,OAAOA,EAAS,QAClB,CAEA,UAAUW,EAAoB,CAC5B,OAAOC,EAAU,KAAK,SAAU,KAAK,IAAKD,CAAM,CAClD,CACA,KAAKE,EAAc,CACjB,KAAK,IAAMA,EACX,KAAK,OAAS,IAAIN,EAAiBM,CAAG,CACxC,CACA,WAAY,CACV,OAAO,KAAK,MACd,CAEA,QAAkB,CAChB,OAAO,KAAK,GACd,CAEA,SAASC,EAAyB,CAChC,KAAK,IAAI,SACPA,IAAU,OAASjB,EAAc,KAAOA,EAAc,KACxD,CACF,CAEA,UAAUkB,EAA0B,CAClC,KAAK,IAAI,UAAUA,CAAM,CAC3B,CAEA,QAAQC,EAAc,CACpB,KAAK,IAAI,QAAQA,CAAI,CACvB,CAEA,SAAU,CACR,KAAK,IAAI,OAAO,EAChBhB,EAAS,SAAW,IACtB,CACF,EA1HaA,EACI,SAA4B,KADtC,IAAMiB,EAANjB,ECXP,OAAOkB,MAAW,QAIX,IAAMC,EAAMC,EAAM,OAAO,CAC9B,QAASC,CACX,CAAC,EAEDF,EAAI,aAAa,QAAQ,IACtBG,GAAaA,EACbC,IACKA,EAAM,SAAS,SAAW,KAC5BC,EAAS,EAEJ,QAAQ,OAAOD,CAAK,EAE/B,EChBA,IAAAE,EAAA,GAAAC,EAAAD,EAAA,cAAAE,EAAA,cAAAC,EAAA,YAAAC,ICEA,IAAIC,EAAiB,GAErB,SAASC,EAAQC,EAAe,CAC1BA,IAAU,KACdF,EAASE,EACTC,EAAI,SAAS,QAAQ,OAAO,cAAmB,UAAUD,CAAK,GAChE,CAEA,SAASE,GAAW,CAClBJ,EAAS,GACTG,EAAI,SAAS,QAAQ,OAAO,cAAmB,EACjD,CAEA,IAAME,EAAY,IAAML,ECfxB,SAASM,EACPC,EACAC,EACA,CACA,IAAIC,EAEJ,MAAO,IAAIC,KACLD,GAAO,aAAaA,CAAK,EACtB,IAAI,QAASE,GAAY,CAC9BF,EAAQ,WAAW,SAAY,CAC7B,IAAMG,EAAS,MAAML,EAAG,GAAGG,CAAI,EAC/BC,EAAQC,CAAM,CAChB,EAAGJ,CAAK,CACV,CAAC,EAEL,CCRO,IAAMK,EAAa,MACxBC,GAC6B,CAC7B,GAAI,CAIF,OAHiB,MAAMC,EAAI,KAAK,sBAAuB,KAAM,CAC3D,OAAAD,CACF,CAAC,GACe,IAClB,OAASE,EAAO,CACd,cAAQ,MAAM,iCAAkCA,CAAK,EAC/CA,CACR,CACF,EAEaC,EAAuB,MAClCH,GAC6B,CAC7B,GAAI,CAIF,OAHiB,MAAMC,EAAI,KAAK,gCAAiC,KAAM,CACrE,OAAAD,CACF,CAAC,GACe,IAClB,OAASE,EAAO,CACd,cAAQ,MAAM,6CAA8CA,CAAK,EAC3DA,CACR,CACF,ECtBA,eAAeE,EACbC,EACAC,EACAC,EAC0B,CAC1B,IAAIC,EAA2B,CAC7B,KAAMH,EACN,MAAOC,GAAgBG,EAAU,EACjC,GAAGF,CACL,EAkBA,GAAI,CAEF,OAD6B,MAAMG,EAAWF,CAAU,CAE1D,OAASG,EAAO,CACd,MAAMA,CACR,CACF,CAEA,IAAMC,EAAcC,EAAST,EAAW,GAAG,EAE3C,eAAeU,EACbT,EACAC,EACAC,EAC0B,CAC1B,OAAO,MAAMK,EAAYP,EAAOC,EAAOC,CAAe,CACxD,CAEA,eAAeQ,EACbC,EAC0B,CAC1B,IAAMR,EAAqC,CACzC,GAAGQ,EACH,MAAOA,EAAO,MAAQA,EAAO,MAAQP,EAAU,CACjD,EAEA,GAAI,CAEF,OAD6B,MAAMQ,EAAqBT,CAAU,CAEpE,OAASG,EAAO,CACd,MAAMA,CACR,CACF,CCpEA,IAAMO,EAAa,MAAOC,EAAmBC,IAAkB,CAC7D,GAAI,CACF,IAAMC,EAAyC,CAAC,EAEhD,OAAAF,EAAM,QAASG,GAAM,CACnBD,EAAO,KAAK,CAAE,IAAKC,EAAE,CAAC,EAAG,IAAKA,EAAE,CAAC,CAAE,CAAC,CACtC,CAAC,GACgB,MAAMC,EAAI,KAAK,qBAAsB,CACpD,OAAAF,EACA,MAAOD,GAAgBI,EAAU,CACnC,CAAC,GACe,IAClB,OAASC,EAAK,CACZ,cAAQ,MAAMA,CAAG,EACXA,CACR,CACF,ECdA,eAAeC,EACbC,EACAC,EACAC,EACmB,CACnB,GAAI,CACF,IAAMC,EAAM,MAAMC,EAAWJ,EAAOE,CAAK,EAEzC,OAAKC,GAAK,KAEaA,EAAI,KAEf,IAAKE,GAAU,CACzB,IAAMC,EAAU,CAAE,GAAGD,CAAM,EAE3B,OAAIC,EAAQ,OAAO,QAAQ,SACzBA,EAAQ,MAAM,OAASA,EAAQ,MAAM,OAAO,IAAKC,IAAO,CACtD,GAAGA,EACH,SACEN,IAAa,WAAa,OAAOM,EAAE,UAAa,SAC5CC,EAAgBD,EAAE,QAAQ,EAC1BA,EAAE,QACV,EAAE,GAGGD,CACT,CAAC,EAlBsBH,CAmBzB,OAASM,EAAO,CACd,MAAMA,CACR,CACF,CClCA,IAAAC,EAAA,GAAAC,EAAAD,EAAA,cAAAE,ICoBA,SAASC,GAAuB,CAC9B,IAAMC,EAAU,SAAS,qBAAqB,QAAQ,EACtD,QAAWC,KAAUD,EACnB,GAAIC,EAAO,IAAI,SAAS,kBAAkB,EAAG,CAE3C,IAAMC,EADM,IAAI,IAAID,EAAO,GAAG,EACX,aAAa,IAAI,QAAQ,EAC5C,GAAIC,EAAQ,OAAOA,CACrB,CAEF,MAAO,EACT,CACSC,EAAQJ,EAAqB,CAAC","names":["BASE_URL","DARK","LIGHT","VECTOR","geojsonPolyline","encoded","points","index","len","lat","lng","b","shift","result","dlat","dlng","CameraController","map","zoom","smooth","bearing","pitch","is3D","options","SVG_ROOT_PATTERN","SVG_MARKUP_PATTERN","updateSvgAttribute","svg","attribute","value","attributePattern","escapeSvgAttribute","createImageTag","url","normalizeInnerSvg","trimmedSvg","normalizedSvg","resolveInnerIcon","innerSvg","innerUrl","trimmedInnerSvg","trimmedInnerUrl","createDefaultMarkerSvg","color","innerIconOptions","MahalMapDefaultMarker","props","el","svg","createDefaultMarkerSvg","addMarker","maplibregl","map","marker","defaultStyles","DARK","LIGHT","_MahalMap","options","maplibreObject","maplibre","finalStyle","VECTOR","instance","CameraController","cb","callback","check","marker","addMarker","map","theme","center","zoom","MahalMap","axios","api","axios","BASE_URL","response","error","clearKey","saveKey_exports","__export","clearKey","getApiKey","saveKey","apiKey","saveKey","param","api","clearKey","getApiKey","debounce","fn","delay","timer","args","resolve","result","searchPost","params","api","error","searchByLocationPost","getSearch","param","token","additionalParam","searchData","getApiKey","searchPost","error","debouncedFn","debounce","Search","SearchByLocation","params","searchByLocationPost","routingApi","param","token","points","e","api","getApiKey","err","Router","param","typeData","token","res","routingApi","route","updated","r","geojsonPolyline","error","utils_exports","__export","debounce","loadKeyFromScriptUrl","scripts","script","apikey","saveKey"]}
1
+ {"version":3,"sources":["../src/app/config/constants.ts","../src/app/config/geojson-polyline.ts","../src/lib/controller/camera/index.ts","../src/lib/controller/markers/defaultMarkerSvg.ts","../src/lib/controller/markers/MahalMapDefaultMarker.ts","../src/lib/map/adapters/marker.adapter.ts","../src/lib/map/MahalMap.ts","../src/app/lib/axios/api/axios.ts","../src/app/lib/saveKey/index.ts","../src/app/lib/saveKey/utils.ts","../src/app/utils/debounce/index.ts","../src/lib/search/api.ts","../src/lib/search/utils.ts","../src/lib/routing/api.ts","../src/lib/routing/utils.ts","../src/app/utils/index.ts","../src/app/utils/trim-value/index.ts","../src/index.ts"],"sourcesContent":["const BASE_URL = \"https://platform.mahal.tj/api/\";\r\nconst LATLNGREGEX =\r\n /^([-+]?(?:[1-8]?\\d(?:\\.\\d+)?|90(?:\\.0+)?)),\\s*([-+]?(?:180(?:\\.0+)?|(?:(?:1[0-7]\\d)|(?:[1-9]?\\d))(?:\\.\\d+)?))$/;\r\nconst LNGLATREGEX =\r\n /^([-+]?(?:180(?:\\.0+)?|(?:(?:1[0-7]\\d)|(?:[1-9]?\\d))(?:\\.\\d+)?)),\\s*([-+]?(?:[1-8]?\\d(?:\\.\\d+)?|90(?:\\.0+)?))$/;\r\n\r\nconst REGEX =\r\n /^[-+]?([1-8]?\\d(\\.\\d+)?|90(\\.0+)?),\\s*[-+]?(180(\\.0+)?|((1[0-7]\\d)|([1-9]?\\d))(\\.\\d+)?)$/;\r\n\r\nconst DARK = \"https://mtile.gram.tj/custom-styles/dark-style.json\";\r\nconst LIGHT = \"https://mtile.gram.tj/custom-styles/mapstyle.json\";\r\nconst VECTOR =\r\n \"https://mtile.gram.tj/custom-styles/style_maptiler_basic_hn.json\";\r\n\r\nexport { BASE_URL, LATLNGREGEX, LNGLATREGEX, REGEX, DARK, LIGHT, VECTOR };\r\n","function geojsonPolyline(encoded: string): number[][] {\r\n let points = [];\r\n let index = 0,\r\n len = encoded.length;\r\n let lat = 0,\r\n lng = 0;\r\n\r\n while (index < len) {\r\n let b,\r\n shift = 0,\r\n result = 0;\r\n do {\r\n b = encoded.charCodeAt(index++) - 63;\r\n result |= (b & 0x1f) << shift;\r\n shift += 5;\r\n } while (b >= 0x20);\r\n let dlat = result & 1 ? ~(result >> 1) : result >> 1;\r\n lat += dlat;\r\n\r\n shift = 0;\r\n result = 0;\r\n do {\r\n b = encoded.charCodeAt(index++) - 63;\r\n result |= (b & 0x1f) << shift;\r\n shift += 5;\r\n } while (b >= 0x20);\r\n let dlng = result & 1 ? ~(result >> 1) : result >> 1;\r\n lng += dlng;\r\n\r\n points.push([lng * 1e-5, lat * 1e-5]);\r\n }\r\n\r\n return points;\r\n}\r\n\r\nexport { geojsonPolyline };\r\n\r\n// Пример использования:\r\n\r\n// geojsonPolyline(\"yzocFzynhVq}@n}@o}@nzD\")\r\n\r\n// Вернёт массив вида [\r\n// [102.0, 0.5],\r\n// [103.0, 1.0],\r\n// [104.0, 0.5],\r\n// [105.0, 0.0]\r\n// ].\r\n","import type { Map, FlyToOptions } from \"maplibre-gl\";\r\n\r\nexport class CameraController {\r\n constructor(private map: Map) {}\r\n\r\n setZoom(zoom: number, smooth = true) {\r\n if (smooth) {\r\n this.map.easeTo({ zoom });\r\n } else {\r\n this.map.setZoom(zoom);\r\n }\r\n }\r\n\r\n setBearing(bearing: number, smooth = true) {\r\n smooth ? this.map.easeTo({ bearing }) : this.map.setBearing(bearing);\r\n }\r\n\r\n setPitch(pitch: number, smooth = true) {\r\n smooth ? this.map.easeTo({ pitch }) : this.map.setPitch(pitch);\r\n }\r\n\r\n toggle3D(is3D: boolean) {\r\n this.map.easeTo({\r\n pitch: is3D ? 60 : 0,\r\n bearing: is3D ? this.map.getBearing() : 0,\r\n duration: 800,\r\n });\r\n }\r\n\r\n resetNorth() {\r\n this.map.easeTo({\r\n bearing: 0,\r\n pitch: 0,\r\n duration: 600,\r\n });\r\n }\r\n\r\n flyTo(options: FlyToOptions) {\r\n this.map.flyTo({\r\n speed: 1.2,\r\n curve: 1.42,\r\n essential: true,\r\n ...options,\r\n });\r\n }\r\n\r\n getPitch() {\r\n return this.map.getPitch();\r\n }\r\n}\r\n","type DefaultMarkerInnerIconOptions = {\n innerSvg?: string;\n innerUrl?: string;\n};\n\nconst SVG_ROOT_PATTERN = /<svg[\\s>]/i;\nconst SVG_MARKUP_PATTERN =\n /<(svg|path|g|circle|rect|polygon|line|polyline|ellipse|use)\\b/i;\n\nconst updateSvgAttribute = (\n svg: string,\n attribute: string,\n value: string,\n): string => {\n const attributePattern = new RegExp(`\\\\s${attribute}=\"[^\"]*\"`, \"i\");\n\n if (attributePattern.test(svg)) {\n return svg.replace(attributePattern, ` ${attribute}=\"${value}\"`);\n }\n\n return svg.replace(/<svg\\b/i, `<svg ${attribute}=\"${value}\"`);\n};\n\nconst escapeSvgAttribute = (value: string): string =>\n value.replace(/&/g, \"&amp;\").replace(/\"/g, \"&quot;\");\n\nconst createImageTag = (url: string): string =>\n `<image href=\"${escapeSvgAttribute(url)}\" x=\"14\" y=\"12\" width=\"22\" height=\"22\" style=\"filter: brightness(0) invert(1);\" />`;\n\nconst normalizeInnerSvg = (svg: string): string => {\n const trimmedSvg = svg.trim();\n\n if (SVG_ROOT_PATTERN.test(trimmedSvg)) {\n let normalizedSvg = updateSvgAttribute(trimmedSvg, \"x\", \"14\");\n normalizedSvg = updateSvgAttribute(normalizedSvg, \"y\", \"12\");\n normalizedSvg = updateSvgAttribute(normalizedSvg, \"width\", \"22\");\n normalizedSvg = updateSvgAttribute(normalizedSvg, \"height\", \"22\");\n\n if (!/\\spreserveAspectRatio=\"/i.test(normalizedSvg)) {\n normalizedSvg = normalizedSvg.replace(\n /<svg\\b/i,\n `<svg preserveAspectRatio=\"xMidYMid meet\"`,\n );\n }\n\n return normalizedSvg;\n }\n\n return `<g transform=\"translate(14 12)\">${trimmedSvg}</g>`;\n};\n\nconst resolveInnerIcon = ({\n innerSvg,\n innerUrl,\n}: DefaultMarkerInnerIconOptions): string => {\n const trimmedInnerSvg = innerSvg?.trim();\n const trimmedInnerUrl = innerUrl?.trim();\n\n if (trimmedInnerSvg) {\n if (SVG_MARKUP_PATTERN.test(trimmedInnerSvg)) {\n return normalizeInnerSvg(trimmedInnerSvg);\n }\n\n return createImageTag(trimmedInnerSvg);\n }\n\n if (trimmedInnerUrl) {\n return createImageTag(trimmedInnerUrl);\n }\n\n return \"\";\n};\n\nconst createDefaultMarkerSvg = (\n color: string,\n innerIconOptions: DefaultMarkerInnerIconOptions = {},\n) => `<svg\n width=\"50\"\n height=\"62\"\n viewBox=\"0 0 50 62\"\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <g filter=\"url(#filter0_d_367_31358)\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M25 2C36.598 2 46 11.402 46 23C46 33.1603 38.7844 41.6353 29.198 43.5803L25.6524 48.6575C25.5788 48.7633 25.4812 48.8497 25.3676 48.9093C25.254 48.9689 25.128 49 25 49C24.872 49 24.746 48.9689 24.6324 48.9093C24.5188 48.8497 24.4212 48.7633 24.3476 48.6575L20.802 43.5803C11.2156 41.6353 4 33.1603 4 23C4 11.402 13.402 2 25 2Z\"\r\n fill=\"${color ? color : \"#278960\"}\"\r\n />\r\n </g>\r\n <path\r\n d=\"M25 51C27.7614 51 30 53.2386 30 56C30 58.7614 27.7614 61 25 61C22.2386 61 20 58.7614 20 56C20 53.2386 22.2386 51 25 51Z\"\r\n fill=\"${color ? color : \"#278960\"}\"\r\n stroke=\"white\"\r\n stroke-width=\"2\"\r\n />\n <g clip-path=\"url(#clip0_367_31358)\">\n ${resolveInnerIcon(innerIconOptions)}\n </g>\n <defs>\n <filter\r\n id=\"filter0_d_367_31358\"\r\n x=\"0\"\r\n y=\"0\"\r\n width=\"50\"\r\n height=\"55\"\r\n filterUnits=\"userSpaceOnUse\"\r\n color-interpolation-filters=\"sRGB\"\r\n >\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix\r\n in=\"SourceAlpha\"\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\"\r\n />\r\n <feOffset dy=\"2\" />\r\n <feGaussianBlur stdDeviation=\"2\" />\r\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\r\n <feColorMatrix\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0.250234 0 0 0 0 0.660089 0 0 0 0 0.488619 0 0 0 0.24 0\"\r\n />\r\n <feBlend\r\n mode=\"normal\"\r\n in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_367_31358\"\r\n />\r\n <feBlend\r\n mode=\"normal\"\r\n in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow_367_31358\"\r\n result=\"shape\"\r\n />\r\n </filter>\r\n <clipPath id=\"clip0_367_31358\">\r\n <rect\r\n width=\"22\"\r\n height=\"22\"\r\n fill=\"white\"\r\n transform=\"translate(14 12)\"\r\n />\r\n </clipPath>\r\n </defs>\r\n </svg>`;\r\n\r\nexport { createDefaultMarkerSvg };\r\n","import { createDefaultMarkerSvg } from \"./defaultMarkerSvg\";\r\nimport type { MahalMapDefaultMarkerProps } from \"@app/types\";\r\n\r\nclass MahalMapDefaultMarker {\r\n private element: HTMLElement;\r\n\r\n constructor(private props: MahalMapDefaultMarkerProps) {\r\n this.element = this.createElement();\r\n }\r\n\r\n private createElement(): HTMLElement {\r\n const el = document.createElement(\"div\");\r\n el.style.cursor = \"pointer\";\r\n\r\n const svg = this.props.svg\n ? this.applyColorToCustomSvg(this.props.svg)\n : createDefaultMarkerSvg(\n this.props.color ?? \"#278960\",\n {\n innerSvg: this.props.innerSvg,\n innerUrl: this.props.innerUrl,\n },\n );\n\r\n el.innerHTML = svg;\r\n\r\n if (this.props.draggable) {\r\n el.draggable = true;\r\n }\r\n\r\n return el;\r\n }\r\n\r\n private applyColorToCustomSvg(svg: string): string {\r\n if (!this.props.color) return svg;\r\n return svg.replace(/fill=\"[^\"]*\"/g, `fill=\"${this.props.color}\"`);\r\n }\r\n\r\n getElement() {\r\n return this.element;\r\n }\r\n\r\n getCoordinates() {\r\n return this.props.coordinates;\r\n }\r\n\r\n isDraggable() {\r\n return !!this.props.draggable;\r\n }\r\n\r\n getAnchor() {\r\n return this.props.anchor || \"center\";\r\n }\r\n}\r\n\r\nexport { MahalMapDefaultMarker };\r\n","import type { Map } from \"maplibre-gl\";\r\nimport type { IMapMarker } from \"@app/types\";\r\n\r\nexport function addMarker(maplibregl: any, map: Map, marker: IMapMarker) {\r\n const mapMarker = new maplibregl.Marker({\r\n element: marker.getElement(),\r\n draggable: marker.isDraggable?.() ?? false,\r\n anchor: marker.getAnchor?.() ?? \"center\",\r\n })\r\n .setLngLat(marker.getCoordinates())\r\n .addTo(map);\r\n\r\n return mapMarker;\r\n}\r\n","import type { Map as MapType } from \"maplibre-gl\";\r\nimport { DARK, LIGHT, VECTOR } from \"@app/config\";\r\nimport { CameraController } from \"@lib/controller\";\r\n\r\nimport type { IMahalMapOptions, IMapMarker } from \"@app/types\";\r\n\r\n// Adapter\r\nimport { addMarker } from \"../map/adapters\";\r\n\r\nconst defaultStyles = { dark: DARK, light: LIGHT };\r\n\r\nexport class MahalMap {\r\n private static instance: MahalMap | null = null;\r\n\r\n private isReady = false;\r\n private readyCallbacks: Array<(map: MapType) => void> = [];\r\n\r\n private map!: MapType;\r\n private maplibre!: typeof import(\"maplibre-gl\");\r\n private camera!: CameraController;\r\n\r\n private options!: IMahalMapOptions;\r\n\r\n private constructor() {}\r\n\r\n static create(\r\n options: IMahalMapOptions,\r\n maplibreObject?: { Map: typeof MapType } | typeof MapType,\r\n ) {\r\n if (MahalMap.instance) return MahalMap.instance;\r\n\r\n const globalMaplibre = (window as any).maplibregl;\r\n const maplibre = globalMaplibre || maplibreObject;\r\n\r\n if (!maplibre) {\r\n throw new Error(\r\n \"[MahalMap SDK] MapLibre GL не найден. Передай его вторым аргументом или подключи через script.\",\r\n );\r\n }\r\n\r\n const finalStyle = options.autoAddVectorSource\r\n ? VECTOR\r\n : options.style\r\n ? options.style\r\n : options.theme === \"dark\"\r\n ? defaultStyles.dark\r\n : defaultStyles.light;\r\n\r\n const instance = new MahalMap();\r\n\r\n instance.options = options;\r\n instance.maplibre = maplibre;\r\n instance.map = new maplibre.Map({\r\n container: options.container || \"map\",\r\n style: finalStyle as string,\r\n center: options.center || [69.624024, 40.279687],\r\n zoom: options.zoom || 5,\r\n attributionControl: options.attributionControl !== false,\r\n });\r\n\r\n instance.map.on(\"load\", () => {\r\n instance.isReady = true;\r\n\r\n instance.camera = new CameraController(instance.map);\r\n\r\n instance.readyCallbacks.forEach((cb) => cb(instance.map));\r\n instance.readyCallbacks = [];\r\n });\r\n\r\n MahalMap.instance = instance;\r\n return instance;\r\n }\r\n\r\n static onReady(callback: (map: MapType) => void) {\r\n if (!MahalMap.instance) {\r\n const check = setInterval(() => {\r\n if (MahalMap.instance) {\r\n clearInterval(check);\r\n MahalMap.onReady(callback);\r\n }\r\n }, 50);\r\n return;\r\n }\r\n\r\n const instance = MahalMap.instance;\r\n\r\n if (instance.isReady) {\r\n callback(instance.map);\r\n } else {\r\n instance.readyCallbacks.push(callback);\r\n }\r\n }\r\n\r\n static getInstance(): MahalMap {\r\n if (!MahalMap.instance) {\r\n throw new Error(\"[MahalMap SDK] Карта ещё не создана\");\r\n }\r\n return MahalMap.instance;\r\n }\r\n\r\n addMarker(marker: IMapMarker) {\r\n return addMarker(this.maplibre, this.map, marker);\r\n }\r\n init(map: MapType) {\r\n this.map = map;\r\n this.camera = new CameraController(map);\r\n }\r\n getCamera() {\r\n return this.camera;\r\n }\r\n\r\n getMap(): MapType {\r\n return this.map;\r\n }\r\n\r\n setStyle(theme: \"dark\" | \"light\") {\r\n this.map.setStyle(\r\n theme === \"dark\" ? defaultStyles.dark : defaultStyles.light,\r\n );\r\n }\r\n\r\n setCenter(center: [number, number]) {\r\n this.map.setCenter(center);\r\n }\r\n\r\n setZoom(zoom: number) {\r\n this.map.setZoom(zoom);\r\n }\r\n\r\n destroy() {\r\n this.map.remove();\r\n MahalMap.instance = null;\r\n }\r\n}\r\n","import axios from \"axios\";\r\nimport { BASE_URL } from \"@app/config/index\";\r\nimport { clearKey } from \"@app/lib\";\r\n\r\nexport const api = axios.create({\r\n baseURL: BASE_URL,\r\n});\r\n\r\napi.interceptors.request.use(\r\n (response) => response,\r\n (error) => {\r\n if (error.request?.status === 401) {\r\n clearKey();\r\n }\r\n return Promise.reject(error);\r\n }\r\n);\r\n","export * from \"./utils\";\r\n","import { api } from \"@app/lib\";\r\n\r\nlet apiKey: string = \"\";\r\n\r\nfunction saveKey(param: string) {\r\n if (param === \"\") return;\r\n apiKey = param;\r\n api.defaults.headers.common[\"Authorization\"] = `Bearer ${param}`;\r\n}\r\n\r\nfunction clearKey() {\r\n apiKey = \"\";\r\n api.defaults.headers.common[\"Authorization\"] = \"\";\r\n}\r\n\r\nconst getApiKey = () => apiKey;\r\n\r\nexport { saveKey, clearKey, getApiKey };\r\n","function debounce<F extends (...args: any[]) => Promise<any>>(\r\n fn: F,\r\n delay: number,\r\n) {\r\n let timer: ReturnType<typeof setTimeout>;\r\n\r\n return (...args: Parameters<F>): Promise<ReturnType<F>> => {\r\n if (timer) clearTimeout(timer);\r\n return new Promise((resolve) => {\r\n timer = setTimeout(async () => {\r\n const result = await fn(...args);\r\n resolve(result);\r\n }, delay);\r\n }) as Promise<ReturnType<F>>;\r\n };\r\n}\r\n\r\nexport { debounce };\r\n","import { api } from \"@app/lib\";\nimport type {\n ISearchByLocationParam,\n ISearchParam,\n ISearchResponse,\n} from \"@app/types\";\n\nexport const searchPost = async (\n params: ISearchParam,\n): Promise<ISearchResponse> => {\n try {\n const response = await api.post(\"services/getAddress\", null, {\n params,\n });\n return response.data;\n } catch (error) {\n console.error(\"Error while searching address:\", error);\n throw error;\n }\n};\n\nexport const searchByLocationPost = async (\n params: ISearchByLocationParam,\n): Promise<ISearchResponse> => {\n try {\n const response = await api.post(\"services/getAddressByLocation\", null, {\n params,\n });\n return response.data;\n } catch (error) {\n console.error(\"Error while searching address by location:\", error);\n throw error;\n }\n};\n","import { searchByLocationPost, searchPost } from \"./api\";\nimport {\n IAdditionalParamType,\n ISearchByLocationParam,\n ISearchParam,\n ISearchResponse,\n} from \"@app/types/index\";\nimport { debounce, getApiKey } from \"@app/lib\";\n// import { checkCoordinates } from \"@app/lib/index\";\r\n// import { REGEX } from \"@app/config\";\r\n\r\nasync function getSearch(\n param: string,\n token: string,\n additionalParam?: IAdditionalParamType,\n): Promise<ISearchResponse> {\n let searchData: ISearchParam = {\r\n text: param,\r\n token: token ? token : getApiKey(),\r\n ...additionalParam,\r\n };\r\n\r\n // if (param !== \"\") {\r\n // if (REGEX.test(param)) {\r\n // let coordinates = await checkCoordinates(param);\r\n // if (coordinates) {\r\n // searchData = {\r\n // lat: coordinates.lat ?? \"\",\r\n // lng: coordinates.lng ?? \"\",\r\n // };\r\n // }\r\n // } else {\r\n // searchData.text = param;\r\n // }\r\n // } else {\r\n // searchData.text = \"\";\r\n // }\r\n\r\n try {\n const res: ISearchResponse = await searchPost(searchData);\n return res;\n } catch (error) {\n throw error;\n }\n}\n\r\nconst debouncedFn = debounce(getSearch, 500);\r\n\r\nasync function Search(\n param: string,\n token: string,\n additionalParam?: IAdditionalParamType,\n): Promise<ISearchResponse> {\n return await debouncedFn(param, token, additionalParam);\n}\n\nasync function SearchByLocation(\n params: ISearchByLocationParam,\n): Promise<ISearchResponse> {\n const searchData: ISearchByLocationParam = {\n ...params,\n token: params.token ? params.token : getApiKey(),\n };\n\n try {\n const res: ISearchResponse = await searchByLocationPost(searchData);\n return res;\n } catch (error) {\n throw error;\n }\n}\n\nexport { Search, SearchByLocation };\n","import { api, getApiKey } from \"@app/lib\";\r\n\r\nconst routingApi = async (param: number[][], token: string) => {\r\n try {\r\n const points: { lng: number; lat: number }[] = [];\r\n\r\n param.forEach((e) => {\r\n points.push({ lng: e[0], lat: e[1] });\r\n });\r\n const response = await api.post(\"services/getRoutes\", {\r\n points,\r\n token: token ? token : getApiKey(),\r\n });\r\n return response.data;\r\n } catch (err) {\r\n console.error(err);\r\n throw err;\r\n }\r\n};\r\n\r\nexport { routingApi };\r\n","import { routingApi } from \"@lib/routing/api\";\r\nimport { geojsonPolyline } from \"@app/config/index\";\r\nimport type { IRoute } from \"@app/types/index\";\r\n\r\nasync function Router(\r\n param: number[][],\r\n typeData: string,\r\n token: string,\r\n): Promise<IRoute[]> {\r\n try {\r\n const res = await routingApi(param, token);\r\n\r\n if (!res?.data) return res;\r\n\r\n const data: IRoute[] = res.data;\r\n\r\n return data.map((route) => {\r\n const updated = { ...route };\r\n\r\n if (updated.route?.routes?.length) {\r\n updated.route.routes = updated.route.routes.map((r) => ({\r\n ...r,\r\n geometry:\r\n typeData === \"geojson\" && typeof r.geometry === \"string\"\r\n ? geojsonPolyline(r.geometry)\r\n : r.geometry,\r\n }));\r\n }\r\n\r\n return updated as IRoute;\r\n });\r\n } catch (error) {\r\n throw error;\r\n }\r\n}\r\n\r\nexport { Router };\r\n","export * from \"./debounce\";\r\nexport * from \"./trim-value\";\r\n","function trimValue(value: string, cut: number): string {\r\n if (cut <= 0) return \"\";\r\n\r\n // только обрезаем пробелы в начале и конце\r\n const cleanValue = value.trim();\r\n\r\n if (cut >= cleanValue.length) return cleanValue;\r\n\r\n return cleanValue.slice(0, cut);\r\n}\r\n\r\nexport { trimValue };\r\n","// Lib\nimport { MahalMap } from \"@lib/map\";\nimport { Search, SearchByLocation } from \"@lib/search\";\nimport { Router } from \"@lib/routing\";\nimport { MahalMapDefaultMarker } from \"@lib/controller\";\n\r\n// utils\r\nimport * as keyUtils from \"@app/lib/saveKey\";\r\nimport * as utils from \"@app/utils\";\r\n\r\nexport {\n MahalMap,\n Search,\n SearchByLocation,\n Router,\n keyUtils,\n MahalMapDefaultMarker,\n utils,\n};\n\r\nfunction loadKeyFromScriptUrl() {\r\n const scripts = document.getElementsByTagName(\"script\");\r\n for (const script of scripts) {\r\n if (script.src.includes(\"mahal_map.sdk.js\")) {\r\n const url = new URL(script.src);\r\n const apikey = url.searchParams.get(\"apikey\");\r\n if (apikey) return apikey;\r\n }\r\n }\r\n return \"\";\r\n}\r\nkeyUtils.saveKey(loadKeyFromScriptUrl());\r\n"],"mappings":"0FAAA,IAAMA,EAAW,iCASjB,IAAMC,EAAO,sDACPC,EAAQ,oDACRC,EACJ,mECZF,SAASC,EAAgBC,EAA6B,CACpD,IAAIC,EAAS,CAAC,EACVC,EAAQ,EACVC,EAAMH,EAAQ,OACZI,EAAM,EACRC,EAAM,EAER,KAAOH,EAAQC,GAAK,CAClB,IAAIG,EACFC,EAAQ,EACRC,EAAS,EACX,GACEF,EAAIN,EAAQ,WAAWE,GAAO,EAAI,GAClCM,IAAWF,EAAI,KAASC,EACxBA,GAAS,QACFD,GAAK,IACd,IAAIG,EAAOD,EAAS,EAAI,EAAEA,GAAU,GAAKA,GAAU,EACnDJ,GAAOK,EAEPF,EAAQ,EACRC,EAAS,EACT,GACEF,EAAIN,EAAQ,WAAWE,GAAO,EAAI,GAClCM,IAAWF,EAAI,KAASC,EACxBA,GAAS,QACFD,GAAK,IACd,IAAII,EAAOF,EAAS,EAAI,EAAEA,GAAU,GAAKA,GAAU,EACnDH,GAAOK,EAEPT,EAAO,KAAK,CAACI,EAAM,KAAMD,EAAM,IAAI,CAAC,CACtC,CAEA,OAAOH,CACT,CC/BO,IAAMU,EAAN,KAAuB,CAC5B,YAAoBC,EAAU,CAAV,SAAAA,CAAW,CAE/B,QAAQC,EAAcC,EAAS,GAAM,CAC/BA,EACF,KAAK,IAAI,OAAO,CAAE,KAAAD,CAAK,CAAC,EAExB,KAAK,IAAI,QAAQA,CAAI,CAEzB,CAEA,WAAWE,EAAiBD,EAAS,GAAM,CACzCA,EAAS,KAAK,IAAI,OAAO,CAAE,QAAAC,CAAQ,CAAC,EAAI,KAAK,IAAI,WAAWA,CAAO,CACrE,CAEA,SAASC,EAAeF,EAAS,GAAM,CACrCA,EAAS,KAAK,IAAI,OAAO,CAAE,MAAAE,CAAM,CAAC,EAAI,KAAK,IAAI,SAASA,CAAK,CAC/D,CAEA,SAASC,EAAe,CACtB,KAAK,IAAI,OAAO,CACd,MAAOA,EAAO,GAAK,EACnB,QAASA,EAAO,KAAK,IAAI,WAAW,EAAI,EACxC,SAAU,GACZ,CAAC,CACH,CAEA,YAAa,CACX,KAAK,IAAI,OAAO,CACd,QAAS,EACT,MAAO,EACP,SAAU,GACZ,CAAC,CACH,CAEA,MAAMC,EAAuB,CAC3B,KAAK,IAAI,MAAM,CACb,MAAO,IACP,MAAO,KACP,UAAW,GACX,GAAGA,CACL,CAAC,CACH,CAEA,UAAW,CACT,OAAO,KAAK,IAAI,SAAS,CAC3B,CACF,EC5CA,IAAMC,EAAmB,aACnBC,EACJ,iEAEIC,EAAqB,CACzBC,EACAC,EACAC,IACW,CACX,IAAMC,EAAmB,IAAI,OAAO,MAAMF,CAAS,WAAY,GAAG,EAElE,OAAIE,EAAiB,KAAKH,CAAG,EACpBA,EAAI,QAAQG,EAAkB,IAAIF,CAAS,KAAKC,CAAK,GAAG,EAG1DF,EAAI,QAAQ,UAAW,QAAQC,CAAS,KAAKC,CAAK,GAAG,CAC9D,EAEME,EAAsBF,GAC1BA,EAAM,QAAQ,KAAM,OAAO,EAAE,QAAQ,KAAM,QAAQ,EAE/CG,EAAkBC,GACtB,gBAAgBF,EAAmBE,CAAG,CAAC,qFAEnCC,EAAqBP,GAAwB,CACjD,IAAMQ,EAAaR,EAAI,KAAK,EAE5B,GAAIH,EAAiB,KAAKW,CAAU,EAAG,CACrC,IAAIC,EAAgBV,EAAmBS,EAAY,IAAK,IAAI,EAC5D,OAAAC,EAAgBV,EAAmBU,EAAe,IAAK,IAAI,EAC3DA,EAAgBV,EAAmBU,EAAe,QAAS,IAAI,EAC/DA,EAAgBV,EAAmBU,EAAe,SAAU,IAAI,EAE3D,2BAA2B,KAAKA,CAAa,IAChDA,EAAgBA,EAAc,QAC5B,UACA,0CACF,GAGKA,CACT,CAEA,MAAO,mCAAmCD,CAAU,MACtD,EAEME,EAAmB,CAAC,CACxB,SAAAC,EACA,SAAAC,CACF,IAA6C,CAC3C,IAAMC,EAAkBF,GAAU,KAAK,EACjCG,EAAkBF,GAAU,KAAK,EAEvC,OAAIC,EACEf,EAAmB,KAAKe,CAAe,EAClCN,EAAkBM,CAAe,EAGnCR,EAAeQ,CAAe,EAGnCC,EACKT,EAAeS,CAAe,EAGhC,EACT,EAEMC,EAAyB,CAC7BC,EACAC,EAAkD,CAAC,IAChD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAYeD,GAAgB,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,mBAK1BA,GAAgB,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,YAKhCN,EAAiBO,CAAgB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;cC/F9C,IAAMC,EAAN,KAA4B,CAG1B,YAAoBC,EAAmC,CAAnC,WAAAA,EAClB,KAAK,QAAU,KAAK,cAAc,CACpC,CAEQ,eAA6B,CACnC,IAAMC,EAAK,SAAS,cAAc,KAAK,EACvCA,EAAG,MAAM,OAAS,UAElB,IAAMC,EAAM,KAAK,MAAM,IACnB,KAAK,sBAAsB,KAAK,MAAM,GAAG,EACzCC,EACE,KAAK,MAAM,OAAS,UACpB,CACE,SAAU,KAAK,MAAM,SACrB,SAAU,KAAK,MAAM,QACvB,CACF,EAEJ,OAAAF,EAAG,UAAYC,EAEX,KAAK,MAAM,YACbD,EAAG,UAAY,IAGVA,CACT,CAEQ,sBAAsBC,EAAqB,CACjD,OAAK,KAAK,MAAM,MACTA,EAAI,QAAQ,gBAAiB,SAAS,KAAK,MAAM,KAAK,GAAG,EADlCA,CAEhC,CAEA,YAAa,CACX,OAAO,KAAK,OACd,CAEA,gBAAiB,CACf,OAAO,KAAK,MAAM,WACpB,CAEA,aAAc,CACZ,MAAO,CAAC,CAAC,KAAK,MAAM,SACtB,CAEA,WAAY,CACV,OAAO,KAAK,MAAM,QAAU,QAC9B,CACF,EClDO,SAASE,EAAUC,EAAiBC,EAAUC,EAAoB,CASvE,OARkB,IAAIF,EAAW,OAAO,CACtC,QAASE,EAAO,WAAW,EAC3B,UAAWA,EAAO,cAAc,GAAK,GACrC,OAAQA,EAAO,YAAY,GAAK,QAClC,CAAC,EACE,UAAUA,EAAO,eAAe,CAAC,EACjC,MAAMD,CAAG,CAGd,CCJA,IAAME,EAAgB,CAAE,KAAMC,EAAM,MAAOC,CAAM,EAEpCC,EAAN,MAAMA,CAAS,CAYZ,aAAc,CATtB,KAAQ,QAAU,GAClB,KAAQ,eAAgD,CAAC,CAQlC,CAEvB,OAAO,OACLC,EACAC,EACA,CACA,GAAIF,EAAS,SAAU,OAAOA,EAAS,SAGvC,IAAMG,EADkB,OAAe,YACJD,EAEnC,GAAI,CAACC,EACH,MAAM,IAAI,MACR,0VACF,EAGF,IAAMC,EAAaH,EAAQ,oBACvBI,EACAJ,EAAQ,MACNA,EAAQ,MACRA,EAAQ,QAAU,OAChBJ,EAAc,KACdA,EAAc,MAEhBS,EAAW,IAAIN,EAErB,OAAAM,EAAS,QAAUL,EACnBK,EAAS,SAAWH,EACpBG,EAAS,IAAM,IAAIH,EAAS,IAAI,CAC9B,UAAWF,EAAQ,WAAa,MAChC,MAAOG,EACP,OAAQH,EAAQ,QAAU,CAAC,UAAW,SAAS,EAC/C,KAAMA,EAAQ,MAAQ,EACtB,mBAAoBA,EAAQ,qBAAuB,EACrD,CAAC,EAEDK,EAAS,IAAI,GAAG,OAAQ,IAAM,CAC5BA,EAAS,QAAU,GAEnBA,EAAS,OAAS,IAAIC,EAAiBD,EAAS,GAAG,EAEnDA,EAAS,eAAe,QAASE,GAAOA,EAAGF,EAAS,GAAG,CAAC,EACxDA,EAAS,eAAiB,CAAC,CAC7B,CAAC,EAEDN,EAAS,SAAWM,EACbA,CACT,CAEA,OAAO,QAAQG,EAAkC,CAC/C,GAAI,CAACT,EAAS,SAAU,CACtB,IAAMU,EAAQ,YAAY,IAAM,CAC1BV,EAAS,WACX,cAAcU,CAAK,EACnBV,EAAS,QAAQS,CAAQ,EAE7B,EAAG,EAAE,EACL,MACF,CAEA,IAAMH,EAAWN,EAAS,SAEtBM,EAAS,QACXG,EAASH,EAAS,GAAG,EAErBA,EAAS,eAAe,KAAKG,CAAQ,CAEzC,CAEA,OAAO,aAAwB,CAC7B,GAAI,CAACT,EAAS,SACZ,MAAM,IAAI,MAAM,0HAAqC,EAEvD,OAAOA,EAAS,QAClB,CAEA,UAAUW,EAAoB,CAC5B,OAAOC,EAAU,KAAK,SAAU,KAAK,IAAKD,CAAM,CAClD,CACA,KAAKE,EAAc,CACjB,KAAK,IAAMA,EACX,KAAK,OAAS,IAAIN,EAAiBM,CAAG,CACxC,CACA,WAAY,CACV,OAAO,KAAK,MACd,CAEA,QAAkB,CAChB,OAAO,KAAK,GACd,CAEA,SAASC,EAAyB,CAChC,KAAK,IAAI,SACPA,IAAU,OAASjB,EAAc,KAAOA,EAAc,KACxD,CACF,CAEA,UAAUkB,EAA0B,CAClC,KAAK,IAAI,UAAUA,CAAM,CAC3B,CAEA,QAAQC,EAAc,CACpB,KAAK,IAAI,QAAQA,CAAI,CACvB,CAEA,SAAU,CACR,KAAK,IAAI,OAAO,EAChBhB,EAAS,SAAW,IACtB,CACF,EA1HaA,EACI,SAA4B,KADtC,IAAMiB,EAANjB,ECXP,OAAOkB,MAAW,QAIX,IAAMC,EAAMC,EAAM,OAAO,CAC9B,QAASC,CACX,CAAC,EAEDF,EAAI,aAAa,QAAQ,IACtBG,GAAaA,EACbC,IACKA,EAAM,SAAS,SAAW,KAC5BC,EAAS,EAEJ,QAAQ,OAAOD,CAAK,EAE/B,EChBA,IAAAE,EAAA,GAAAC,EAAAD,EAAA,cAAAE,EAAA,cAAAC,EAAA,YAAAC,ICEA,IAAIC,EAAiB,GAErB,SAASC,EAAQC,EAAe,CAC1BA,IAAU,KACdF,EAASE,EACTC,EAAI,SAAS,QAAQ,OAAO,cAAmB,UAAUD,CAAK,GAChE,CAEA,SAASE,GAAW,CAClBJ,EAAS,GACTG,EAAI,SAAS,QAAQ,OAAO,cAAmB,EACjD,CAEA,IAAME,EAAY,IAAML,ECfxB,SAASM,EACPC,EACAC,EACA,CACA,IAAIC,EAEJ,MAAO,IAAIC,KACLD,GAAO,aAAaA,CAAK,EACtB,IAAI,QAASE,GAAY,CAC9BF,EAAQ,WAAW,SAAY,CAC7B,IAAMG,EAAS,MAAML,EAAG,GAAGG,CAAI,EAC/BC,EAAQC,CAAM,CAChB,EAAGJ,CAAK,CACV,CAAC,EAEL,CCRO,IAAMK,EAAa,MACxBC,GAC6B,CAC7B,GAAI,CAIF,OAHiB,MAAMC,EAAI,KAAK,sBAAuB,KAAM,CAC3D,OAAAD,CACF,CAAC,GACe,IAClB,OAASE,EAAO,CACd,cAAQ,MAAM,iCAAkCA,CAAK,EAC/CA,CACR,CACF,EAEaC,EAAuB,MAClCH,GAC6B,CAC7B,GAAI,CAIF,OAHiB,MAAMC,EAAI,KAAK,gCAAiC,KAAM,CACrE,OAAAD,CACF,CAAC,GACe,IAClB,OAASE,EAAO,CACd,cAAQ,MAAM,6CAA8CA,CAAK,EAC3DA,CACR,CACF,ECtBA,eAAeE,EACbC,EACAC,EACAC,EAC0B,CAC1B,IAAIC,EAA2B,CAC7B,KAAMH,EACN,MAAOC,GAAgBG,EAAU,EACjC,GAAGF,CACL,EAkBA,GAAI,CAEF,OAD6B,MAAMG,EAAWF,CAAU,CAE1D,OAASG,EAAO,CACd,MAAMA,CACR,CACF,CAEA,IAAMC,EAAcC,EAAST,EAAW,GAAG,EAE3C,eAAeU,EACbT,EACAC,EACAC,EAC0B,CAC1B,OAAO,MAAMK,EAAYP,EAAOC,EAAOC,CAAe,CACxD,CAEA,eAAeQ,EACbC,EAC0B,CAC1B,IAAMR,EAAqC,CACzC,GAAGQ,EACH,MAAOA,EAAO,MAAQA,EAAO,MAAQP,EAAU,CACjD,EAEA,GAAI,CAEF,OAD6B,MAAMQ,EAAqBT,CAAU,CAEpE,OAASG,EAAO,CACd,MAAMA,CACR,CACF,CCpEA,IAAMO,EAAa,MAAOC,EAAmBC,IAAkB,CAC7D,GAAI,CACF,IAAMC,EAAyC,CAAC,EAEhD,OAAAF,EAAM,QAASG,GAAM,CACnBD,EAAO,KAAK,CAAE,IAAKC,EAAE,CAAC,EAAG,IAAKA,EAAE,CAAC,CAAE,CAAC,CACtC,CAAC,GACgB,MAAMC,EAAI,KAAK,qBAAsB,CACpD,OAAAF,EACA,MAAOD,GAAgBI,EAAU,CACnC,CAAC,GACe,IAClB,OAASC,EAAK,CACZ,cAAQ,MAAMA,CAAG,EACXA,CACR,CACF,ECdA,eAAeC,EACbC,EACAC,EACAC,EACmB,CACnB,GAAI,CACF,IAAMC,EAAM,MAAMC,EAAWJ,EAAOE,CAAK,EAEzC,OAAKC,GAAK,KAEaA,EAAI,KAEf,IAAKE,GAAU,CACzB,IAAMC,EAAU,CAAE,GAAGD,CAAM,EAE3B,OAAIC,EAAQ,OAAO,QAAQ,SACzBA,EAAQ,MAAM,OAASA,EAAQ,MAAM,OAAO,IAAKC,IAAO,CACtD,GAAGA,EACH,SACEN,IAAa,WAAa,OAAOM,EAAE,UAAa,SAC5CC,EAAgBD,EAAE,QAAQ,EAC1BA,EAAE,QACV,EAAE,GAGGD,CACT,CAAC,EAlBsBH,CAmBzB,OAASM,EAAO,CACd,MAAMA,CACR,CACF,CClCA,IAAAC,EAAA,GAAAC,EAAAD,EAAA,cAAAE,EAAA,cAAAC,ICAA,SAASC,EAAUC,EAAeC,EAAqB,CACrD,GAAIA,GAAO,EAAG,MAAO,GAGrB,IAAMC,EAAaF,EAAM,KAAK,EAE9B,OAAIC,GAAOC,EAAW,OAAeA,EAE9BA,EAAW,MAAM,EAAGD,CAAG,CAChC,CCWA,SAASE,GAAuB,CAC9B,IAAMC,EAAU,SAAS,qBAAqB,QAAQ,EACtD,QAAWC,KAAUD,EACnB,GAAIC,EAAO,IAAI,SAAS,kBAAkB,EAAG,CAE3C,IAAMC,EADM,IAAI,IAAID,EAAO,GAAG,EACX,aAAa,IAAI,QAAQ,EAC5C,GAAIC,EAAQ,OAAOA,CACrB,CAEF,MAAO,EACT,CACSC,EAAQJ,EAAqB,CAAC","names":["BASE_URL","DARK","LIGHT","VECTOR","geojsonPolyline","encoded","points","index","len","lat","lng","b","shift","result","dlat","dlng","CameraController","map","zoom","smooth","bearing","pitch","is3D","options","SVG_ROOT_PATTERN","SVG_MARKUP_PATTERN","updateSvgAttribute","svg","attribute","value","attributePattern","escapeSvgAttribute","createImageTag","url","normalizeInnerSvg","trimmedSvg","normalizedSvg","resolveInnerIcon","innerSvg","innerUrl","trimmedInnerSvg","trimmedInnerUrl","createDefaultMarkerSvg","color","innerIconOptions","MahalMapDefaultMarker","props","el","svg","createDefaultMarkerSvg","addMarker","maplibregl","map","marker","defaultStyles","DARK","LIGHT","_MahalMap","options","maplibreObject","maplibre","finalStyle","VECTOR","instance","CameraController","cb","callback","check","marker","addMarker","map","theme","center","zoom","MahalMap","axios","api","axios","BASE_URL","response","error","clearKey","saveKey_exports","__export","clearKey","getApiKey","saveKey","apiKey","saveKey","param","api","clearKey","getApiKey","debounce","fn","delay","timer","args","resolve","result","searchPost","params","api","error","searchByLocationPost","getSearch","param","token","additionalParam","searchData","getApiKey","searchPost","error","debouncedFn","debounce","Search","SearchByLocation","params","searchByLocationPost","routingApi","param","token","points","e","api","getApiKey","err","Router","param","typeData","token","res","routingApi","route","updated","r","geojsonPolyline","error","utils_exports","__export","debounce","trimValue","trimValue","value","cut","cleanValue","loadKeyFromScriptUrl","scripts","script","apikey","saveKey"]}