mahal_map 1.4.6 → 1.4.7

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.js CHANGED
@@ -1 +1 @@
1
- 'use strict';var a0_0x2b802e=a0_0x2bd8;(function(_0x57b836,_0x17e803){var _0x3ff22e=a0_0x2bd8,_0x28f067=_0x57b836();while(!![]){try{var _0x48e5ce=-parseInt(_0x3ff22e(0x10a))/0x1*(parseInt(_0x3ff22e(0x1a5))/0x2)+-parseInt(_0x3ff22e(0x108))/0x3+-parseInt(_0x3ff22e(0x14f))/0x4*(parseInt(_0x3ff22e(0x155))/0x5)+-parseInt(_0x3ff22e(0x163))/0x6*(-parseInt(_0x3ff22e(0x141))/0x7)+parseInt(_0x3ff22e(0x13c))/0x8+parseInt(_0x3ff22e(0x15f))/0x9*(parseInt(_0x3ff22e(0x15e))/0xa)+parseInt(_0x3ff22e(0x1b0))/0xb*(parseInt(_0x3ff22e(0xf4))/0xc);if(_0x48e5ce===_0x17e803)break;else _0x28f067['push'](_0x28f067['shift']());}catch(_0x322908){_0x28f067['push'](_0x28f067['shift']());}}}(a0_0x1c67,0xee3b0));var N=Object[a0_0x2b802e(0x1aa)],u=Object[a0_0x2b802e(0xfe)],Z=Object[a0_0x2b802e(0x190)],z=Object[a0_0x2b802e(0x12a)],H=Object[a0_0x2b802e(0x196)],V=Object[a0_0x2b802e(0x16d)][a0_0x2b802e(0x193)],M=(_0x3c2f20,_0x1155e5)=>{for(var _0x2e3b0c in _0x1155e5)u(_0x3c2f20,_0x2e3b0c,{'get':_0x1155e5[_0x2e3b0c],'enumerable':!0x0});},T=(_0xe0ed2a,_0x33c91e,_0xe5152a,_0xe13056)=>{var _0xbd0be=a0_0x2b802e,_0x45e909={'sgqjt':function(_0x30fd70,_0x2e4ba9){return _0x30fd70==_0x2e4ba9;},'VzYdn':'object','XxDpp':function(_0x3fda96,_0x52c2c8){return _0x3fda96(_0x52c2c8);},'Dymgj':function(_0x4d34b9,_0x22c333){return _0x4d34b9!==_0x22c333;},'jDCcT':function(_0x3622a4,_0x3f8780,_0x4ee74d,_0x173af1){return _0x3622a4(_0x3f8780,_0x4ee74d,_0x173af1);},'tippZ':function(_0x3bbde1,_0x30c467,_0x475976){return _0x3bbde1(_0x30c467,_0x475976);}};if(_0x33c91e&&_0x45e909[_0xbd0be(0x187)](typeof _0x33c91e,_0x45e909[_0xbd0be(0x156)])||typeof _0x33c91e=='function'){for(let _0x4ac610 of _0x45e909[_0xbd0be(0x120)](z,_0x33c91e))!V['call'](_0xe0ed2a,_0x4ac610)&&_0x45e909[_0xbd0be(0x147)](_0x4ac610,_0xe5152a)&&_0x45e909[_0xbd0be(0x11a)](u,_0xe0ed2a,_0x4ac610,{'get':()=>_0x33c91e[_0x4ac610],'enumerable':!(_0xe13056=_0x45e909[_0xbd0be(0x130)](Z,_0x33c91e,_0x4ac610))||_0xe13056[_0xbd0be(0x142)]});}return _0xe0ed2a;},X=(_0x378418,_0x4bfa80,_0x3040d0)=>(_0x3040d0=_0x378418!=null?N(H(_0x378418)):{},T(_0x4bfa80||!_0x378418||!_0x378418[a0_0x2b802e(0x109)]?u(_0x3040d0,a0_0x2b802e(0x122),{'value':_0x378418,'enumerable':!0x0}):_0x3040d0,_0x378418)),q=_0x4f6db7=>T(u({},'__esModule',{'value':!0x0}),_0x4f6db7),ae={};M(ae,{'MahalMap':()=>y,'MahalMapDefaultMarker':()=>f,'Router':()=>_,'Search':()=>K,'SearchByLocation':()=>O,'keyUtils':()=>b,'utils':()=>w}),module['exports']=q(ae);var R=a0_0x2b802e(0x11d),P='https://mtile.gram.tj/custom-styles/dark-style.json',C=a0_0x2b802e(0x137),k=a0_0x2b802e(0x1bd);function L(_0x4885c2){var _0x5a5f3f=a0_0x2b802e,_0x2235da={'McpVI':function(_0x4b2978,_0x2987e2){return _0x4b2978-_0x2987e2;},'BGoZr':function(_0x3ac941,_0x5a90ef){return _0x3ac941<<_0x5a90ef;},'jZwin':function(_0x35d7da,_0x5e9857){return _0x35d7da&_0x5e9857;},'IGKci':function(_0x11cd87,_0x5d23f5){return _0x11cd87>=_0x5d23f5;},'LPBCF':function(_0x1071f0,_0x132091){return _0x1071f0&_0x132091;},'LsEUT':function(_0x5db2fa,_0x121b1e){return _0x5db2fa>>_0x121b1e;},'FxMAl':function(_0x30cfd6,_0x4498bd){return _0x30cfd6-_0x4498bd;},'dOsXn':function(_0x36be95,_0x432be2){return _0x36be95<<_0x432be2;},'qNWBB':function(_0x3ad770,_0x5f22e8){return _0x3ad770&_0x5f22e8;},'UAxxT':function(_0x1cfc22,_0x3ffa95){return _0x1cfc22>>_0x3ffa95;},'qIeiI':function(_0x115aba,_0x27e735){return _0x115aba*_0x27e735;}};let _0x370ab8=[],_0x2af73a=0x0,_0x17193c=_0x4885c2[_0x5a5f3f(0x182)],_0x4d5e20=0x0,_0x4d9f33=0x0;for(;_0x2af73a<_0x17193c;){let _0x34abf3,_0x20f789=0x0,_0x1eb50c=0x0;do _0x34abf3=_0x2235da[_0x5a5f3f(0x1a2)](_0x4885c2['charCodeAt'](_0x2af73a++),0x3f),_0x1eb50c|=_0x2235da[_0x5a5f3f(0x160)](_0x2235da[_0x5a5f3f(0xff)](_0x34abf3,0x1f),_0x20f789),_0x20f789+=0x5;while(_0x2235da['IGKci'](_0x34abf3,0x20));let _0x63299c=_0x2235da[_0x5a5f3f(0x136)](_0x1eb50c,0x1)?~_0x2235da[_0x5a5f3f(0x111)](_0x1eb50c,0x1):_0x2235da[_0x5a5f3f(0x111)](_0x1eb50c,0x1);_0x4d5e20+=_0x63299c,_0x20f789=0x0,_0x1eb50c=0x0;do _0x34abf3=_0x2235da[_0x5a5f3f(0x1a7)](_0x4885c2[_0x5a5f3f(0x1b1)](_0x2af73a++),0x3f),_0x1eb50c|=_0x2235da['dOsXn'](_0x34abf3&0x1f,_0x20f789),_0x20f789+=0x5;while(_0x34abf3>=0x20);let _0x1681c1=_0x2235da[_0x5a5f3f(0x11b)](_0x1eb50c,0x1)?~_0x2235da[_0x5a5f3f(0x1be)](_0x1eb50c,0x1):_0x2235da[_0x5a5f3f(0x111)](_0x1eb50c,0x1);_0x4d9f33+=_0x1681c1,_0x370ab8[_0x5a5f3f(0x164)]([_0x4d9f33*0.00001,_0x2235da[_0x5a5f3f(0x19e)](_0x4d5e20,0.00001)]);}return _0x370ab8;}var h=class{constructor(_0x1ac158){var _0x59a608=a0_0x2b802e;this[_0x59a608(0x135)]=_0x1ac158;}[a0_0x2b802e(0x178)](_0x5c6a1d,_0x4aaf0b=!0x0){var _0x1ba5b6=a0_0x2b802e;_0x4aaf0b?this[_0x1ba5b6(0x135)][_0x1ba5b6(0x1ab)]({'zoom':_0x5c6a1d}):this[_0x1ba5b6(0x135)][_0x1ba5b6(0x178)](_0x5c6a1d);}['setBearing'](_0x19cba6,_0xc0b852=!0x0){var _0x30a996=a0_0x2b802e;_0xc0b852?this['map'][_0x30a996(0x1ab)]({'bearing':_0x19cba6}):this[_0x30a996(0x135)][_0x30a996(0x106)](_0x19cba6);}['setPitch'](_0x20f829,_0x5a2fb4=!0x0){var _0x3bcc9b=a0_0x2b802e;_0x5a2fb4?this['map'][_0x3bcc9b(0x1ab)]({'pitch':_0x20f829}):this[_0x3bcc9b(0x135)][_0x3bcc9b(0x180)](_0x20f829);}[a0_0x2b802e(0x167)](_0x29cd30){var _0x296d2f=a0_0x2b802e;this[_0x296d2f(0x135)][_0x296d2f(0x1ab)]({'pitch':_0x29cd30?0x3c:0x0,'bearing':_0x29cd30?this['map'][_0x296d2f(0x1a0)]():0x0,'duration':0x320});}['resetNorth'](){var _0x5150c7=a0_0x2b802e;this['map'][_0x5150c7(0x1ab)]({'bearing':0x0,'pitch':0x0,'duration':0x258});}[a0_0x2b802e(0x161)](_0x5d4c7f){this['map']['flyTo']({'speed':1.2,'curve':1.42,'essential':!0x0,..._0x5d4c7f});}['getPitch'](){var _0x3248b8=a0_0x2b802e;return this[_0x3248b8(0x135)]['getPitch']();}},Y=/<svg[\s>]/i,J=/<(svg|path|g|circle|rect|polygon|line|polyline|ellipse|use)\b/i,g=(_0x9f52ce,_0x506a81,_0x3b66d0)=>{var _0x23a6eb=a0_0x2b802e;let _0x6ccf1e=new RegExp('\x5cs'+_0x506a81+_0x23a6eb(0x159),'i');return _0x6ccf1e[_0x23a6eb(0x1cd)](_0x9f52ce)?_0x9f52ce[_0x23a6eb(0x134)](_0x6ccf1e,'\x20'+_0x506a81+'=\x22'+_0x3b66d0+'\x22'):_0x9f52ce[_0x23a6eb(0x134)](/<svg\b/i,'<svg\x20'+_0x506a81+'=\x22'+_0x3b66d0+'\x22');},Q=_0x1efa45=>_0x1efa45[a0_0x2b802e(0x134)](/&/g,a0_0x2b802e(0x148))[a0_0x2b802e(0x134)](/"/g,a0_0x2b802e(0x133)),A=_0x4d06f3=>a0_0x2b802e(0x131)+Q(_0x4d06f3)+a0_0x2b802e(0x171),W=_0x51a977=>{var _0x3d40fe=a0_0x2b802e,_0x2e675f={'HJPwL':function(_0x4889ff,_0x4d6a0b,_0x19fc6c,_0x252531){return _0x4889ff(_0x4d6a0b,_0x19fc6c,_0x252531);},'IwIfu':function(_0x3d9719,_0x1d4c9a,_0x2632f3,_0x1a02e0){return _0x3d9719(_0x1d4c9a,_0x2632f3,_0x1a02e0);},'TuGRU':_0x3d40fe(0x140),'svUSK':_0x3d40fe(0xf3),'SHvaY':'<svg\x20preserveAspectRatio=\x22xMidYMid\x20meet\x22'};let _0x1f270c=_0x51a977[_0x3d40fe(0xfc)]();if(Y[_0x3d40fe(0x1cd)](_0x1f270c)){let _0x2aa33a=g(_0x1f270c,'x','14');return _0x2aa33a=_0x2e675f[_0x3d40fe(0x10b)](g,_0x2aa33a,'y','12'),_0x2aa33a=_0x2e675f['IwIfu'](g,_0x2aa33a,_0x2e675f['TuGRU'],'22'),_0x2aa33a=g(_0x2aa33a,_0x2e675f['svUSK'],'22'),/\spreserveAspectRatio="/i[_0x3d40fe(0x1cd)](_0x2aa33a)||(_0x2aa33a=_0x2aa33a[_0x3d40fe(0x134)](/<svg\b/i,_0x2e675f[_0x3d40fe(0xf8)])),_0x2aa33a;}return _0x3d40fe(0x15a)+_0x1f270c+_0x3d40fe(0xfb);},ee=({innerSvg:_0x22ea94,innerUrl:_0xa98c4e})=>{var _0x2be6ac=a0_0x2b802e,_0x24c3b7={'ORKIx':function(_0x3a83da,_0xf46f63){return _0x3a83da(_0xf46f63);},'MnaAd':function(_0x586f4d,_0x4ff420){return _0x586f4d(_0x4ff420);}};let _0x4273e8=_0x22ea94?.[_0x2be6ac(0xfc)](),_0x41aa63=_0xa98c4e?.[_0x2be6ac(0xfc)]();return _0x4273e8?J[_0x2be6ac(0x1cd)](_0x4273e8)?_0x24c3b7['ORKIx'](W,_0x4273e8):_0x24c3b7[_0x2be6ac(0x1a3)](A,_0x4273e8):_0x41aa63?_0x24c3b7[_0x2be6ac(0x119)](A,_0x41aa63):'';},E=(_0x37a490,_0x2a77a5={})=>a0_0x2b802e(0x19c)+(_0x37a490||a0_0x2b802e(0x1a8))+a0_0x2b802e(0x10f)+(_0x37a490||a0_0x2b802e(0x1a8))+'\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'+ee(_0x2a77a5)+a0_0x2b802e(0x127),f=class{constructor(_0x2a5107){var _0x566b85=a0_0x2b802e;this[_0x566b85(0x14b)]=_0x2a5107,this['element']=this['createElement']();}[a0_0x2b802e(0x1c3)](){var _0x40110b=a0_0x2b802e,_0x2694ba={'AETcT':'div','jaAEw':_0x40110b(0x118),'eoNXj':function(_0x5b0bf3,_0x24c7a9,_0x357df9){return _0x5b0bf3(_0x24c7a9,_0x357df9);}};let _0x384246=document[_0x40110b(0x1c3)](_0x2694ba[_0x40110b(0xfa)]);_0x384246[_0x40110b(0x157)]['cursor']=_0x2694ba[_0x40110b(0x176)];let _0xd43b35=this[_0x40110b(0x14b)][_0x40110b(0x1ad)]?this['applyColorToCustomSvg'](this[_0x40110b(0x14b)][_0x40110b(0x1ad)]):_0x2694ba[_0x40110b(0x17a)](E,this['props']['color']??_0x40110b(0x1a8),{'innerSvg':this['props'][_0x40110b(0x17c)],'innerUrl':this['props']['innerUrl']});return _0x384246[_0x40110b(0x126)]=_0xd43b35,this[_0x40110b(0x14b)]['draggable']&&(_0x384246[_0x40110b(0x123)]=!0x0),_0x384246;}[a0_0x2b802e(0x103)](_0x55f452){var _0xfa2b3e=a0_0x2b802e;return this['props'][_0xfa2b3e(0x195)]?_0x55f452[_0xfa2b3e(0x134)](/fill="[^"]*"/g,'fill=\x22'+this[_0xfa2b3e(0x14b)][_0xfa2b3e(0x195)]+'\x22'):_0x55f452;}['getElement'](){var _0x3a8271=a0_0x2b802e;return this[_0x3a8271(0x185)];}[a0_0x2b802e(0x18f)](){var _0x3c5ed3=a0_0x2b802e;return this[_0x3c5ed3(0x14b)]['coordinates'];}[a0_0x2b802e(0x10e)](){var _0x3a859b=a0_0x2b802e;return!!this['props'][_0x3a859b(0x123)];}[a0_0x2b802e(0xf5)](){var _0x3ccefc=a0_0x2b802e,_0x59446b={'gXYkK':_0x3ccefc(0x1b3)};return this[_0x3ccefc(0x14b)][_0x3ccefc(0x1b5)]||_0x59446b['gXYkK'];}};function B(_0x3af0aa,_0x134707,_0x4938a5){var _0x505520=a0_0x2b802e,_0x2d7deb={'sfoiQ':_0x505520(0x1b3)};return new _0x3af0aa[(_0x505520(0x11f))]({'element':_0x4938a5[_0x505520(0x1b8)](),'draggable':_0x4938a5['isDraggable']?.()??!0x1,'anchor':_0x4938a5[_0x505520(0xf5)]?.()??_0x2d7deb['sfoiQ']})[_0x505520(0x12b)](_0x4938a5['getCoordinates']())[_0x505520(0x15c)](_0x134707);}var d={'dark':P,'light':C},n=class n{constructor(){var _0xe82241=a0_0x2b802e;this['isReady']=!0x1,this[_0xe82241(0x1ac)]=[];}static['create'](_0x1a6963,_0x2e17ee){var _0x15849c=a0_0x2b802e,_0xf16a42={'WcLly':'[MahalMap\x20SDK]\x20MapLibre\x20GL\x20не\x20найден.\x20Передай\x20его\x20вторым\x20аргументом\x20или\x20подключи\x20через\x20script.','uxEdl':function(_0x348a74,_0x4152c0){return _0x348a74===_0x4152c0;},'btxiL':'dark','evHEh':function(_0x3346a5,_0x152d18){return _0x3346a5!==_0x152d18;}};if(n[_0x15849c(0x19f)])return n[_0x15849c(0x19f)];let _0x5341e2=window['maplibregl']||_0x2e17ee;if(!_0x5341e2)throw new Error(_0xf16a42[_0x15849c(0x17d)]);let _0x4495b9=_0x1a6963['autoAddVectorSource']?k:_0x1a6963[_0x15849c(0x157)]?_0x1a6963[_0x15849c(0x157)]:_0xf16a42[_0x15849c(0x186)](_0x1a6963['theme'],_0xf16a42[_0x15849c(0x125)])?d[_0x15849c(0x124)]:d[_0x15849c(0x12f)],_0x51b0ed=new n();return _0x51b0ed['options']=_0x1a6963,_0x51b0ed[_0x15849c(0x107)]=_0x5341e2,_0x51b0ed['map']=new _0x5341e2[(_0x15849c(0x17f))]({'container':_0x1a6963[_0x15849c(0x145)]||_0x15849c(0x135),'style':_0x4495b9,'center':_0x1a6963[_0x15849c(0x1b3)]||[69.624024,40.279687],'zoom':_0x1a6963[_0x15849c(0x174)]||0x5,'attributionControl':_0xf16a42[_0x15849c(0x1af)](_0x1a6963[_0x15849c(0x1bf)],!0x1)}),_0x51b0ed['map']['on'](_0x15849c(0xf7),()=>{var _0x1781ac=_0x15849c;_0x51b0ed['isReady']=!0x0,_0x51b0ed['camera']=new h(_0x51b0ed['map']),_0x51b0ed[_0x1781ac(0x1ac)]['forEach'](_0x4fedff=>_0x4fedff(_0x51b0ed[_0x1781ac(0x135)])),_0x51b0ed['readyCallbacks']=[];}),n['instance']=_0x51b0ed,_0x51b0ed;}static[a0_0x2b802e(0x15b)](_0x106ae0){var _0x1ad265=a0_0x2b802e,_0x26466f={'Xfmzm':function(_0x5c9eff,_0x54c227){return _0x5c9eff(_0x54c227);}};if(!n[_0x1ad265(0x19f)]){let _0x15d32f=setInterval(()=>{var _0x5a19d7=_0x1ad265;n['instance']&&(_0x26466f['Xfmzm'](clearInterval,_0x15d32f),n[_0x5a19d7(0x15b)](_0x106ae0));},0x32);return;}let _0x153340=n[_0x1ad265(0x19f)];_0x153340[_0x1ad265(0x129)]?_0x26466f[_0x1ad265(0x1c7)](_0x106ae0,_0x153340[_0x1ad265(0x135)]):_0x153340[_0x1ad265(0x1ac)][_0x1ad265(0x164)](_0x106ae0);}static[a0_0x2b802e(0x166)](){var _0x4206d1=a0_0x2b802e,_0x3163e7={'zMYLl':_0x4206d1(0x172)};if(!n[_0x4206d1(0x19f)])throw new Error(_0x3163e7['zMYLl']);return n['instance'];}[a0_0x2b802e(0x13d)](_0x5c68d6){var _0x27ef6a=a0_0x2b802e,_0x39ed5c={'gbAdZ':function(_0x32dc36,_0x406353,_0xe7845,_0xda6183){return _0x32dc36(_0x406353,_0xe7845,_0xda6183);}};return _0x39ed5c[_0x27ef6a(0x168)](B,this[_0x27ef6a(0x107)],this[_0x27ef6a(0x135)],_0x5c68d6);}[a0_0x2b802e(0x1a6)](_0x2092ae){var _0x43988c=a0_0x2b802e;this[_0x43988c(0x135)]=_0x2092ae,this['camera']=new h(_0x2092ae);}['getCamera'](){return this['camera'];}[a0_0x2b802e(0x12c)](){var _0x843546=a0_0x2b802e;return this[_0x843546(0x135)];}[a0_0x2b802e(0x153)](_0x525874){var _0x4c60bd=a0_0x2b802e,_0x23528f={'IVUMy':function(_0x1424b2,_0x45f214){return _0x1424b2===_0x45f214;},'Gvcgu':_0x4c60bd(0x124)};this['map'][_0x4c60bd(0x153)](_0x23528f[_0x4c60bd(0x1ae)](_0x525874,_0x23528f['Gvcgu'])?d[_0x4c60bd(0x124)]:d[_0x4c60bd(0x12f)]);}[a0_0x2b802e(0x18b)](_0x14e822){var _0x166370=a0_0x2b802e;this['map'][_0x166370(0x18b)](_0x14e822);}['setZoom'](_0x3a48c3){var _0x280690=a0_0x2b802e;this[_0x280690(0x135)][_0x280690(0x178)](_0x3a48c3);}[a0_0x2b802e(0x1c6)](){var _0x28b19f=a0_0x2b802e;this['map'][_0x28b19f(0x16a)](),n['instance']=null;}};function a0_0x1c67(){var _0x1abab9=['defineProperty','jZwin','Rsvrn','apikey','raSHg','applyColorToCustomSvg','CIhnl','mVwhk','setBearing','maplibre','1128891YmqLdG','__esModule','2pdbHel','HJPwL','WyRVY','QJPTc','isDraggable','\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','jjiFp','LsEUT','uZsfY','status','mBlHV','XZoZT','PpyPu','zxXsT','pointer','MnaAd','jDCcT','qNWBB','geometry','https://platform.mahal.tj/api/','aGuxT','Marker','XxDpp','string','default','draggable','dark','btxiL','innerHTML','\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>','UCDdj','isReady','getOwnPropertyNames','setLngLat','getMap','MkvXo','gPujS','light','tippZ','<image\x20href=\x22','NfgCv','&quot;','replace','map','LPBCF','https://mtile.gram.tj/custom-styles/mapstyle.json','ljnjB','ETRWl','Sbnpf','FjIfb','12605744hMcses','addMarker','OWgYl','Error\x20while\x20searching\x20address\x20by\x20location:','width','2195529QUKKmY','enumerable','apply','WvSDo','container','post','Dymgj','&amp;','return\x20(function()\x20','reject','props','log','xjMGW','qHwXS','1142132IGTsTq','QWPrW','KqfFJ','request','setStyle','warn','25pOCVJe','VzYdn','style','vaeGa','=\x22[^\x22]*\x22','<g\x20transform=\x22translate(14\x2012)\x22>','onReady','addTo','route','1188310rSHhPy','45IXJbMY','BGoZr','flyTo','GHrmV','6SgtxtZ','push','Bearer\x20','getInstance','toggle3D','gbAdZ','exports','remove','services/getAddress','gNkAz','prototype','get','JhVTu','svYJt','\x22\x20x=\x2214\x22\x20y=\x2212\x22\x20width=\x2222\x22\x20height=\x2222\x22\x20style=\x22filter:\x20brightness(0)\x20invert(1);\x22\x20/>','[MahalMap\x20SDK]\x20Карта\x20ещё\x20не\x20создана','console','zoom','data','jaAEw','headers','setZoom','NCDYR','eoNXj','rRUVV','innerSvg','WcLly','searchParams','Map','setPitch','forEach','length','token','services/getRoutes','element','uxEdl','sgqjt','jjGAq','trace','<svg\x20preserveAspectRatio=\x22xMidYMid\x20meet\x22','setCenter','__proto__','Rvxpj','axios','getCoordinates','getOwnPropertyDescriptor','zfnJu','2|0|3|4|5|1','hasOwnProperty','innerUrl','color','getPrototypeOf','bhRWA','zHgEk','Authorization','getPitch','toString','<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','script','qIeiI','instance','getBearing','VXeXw','McpVI','ORKIx','mahal_map.sdk.js','503346MJbDwD','init','FxMAl','#278960','bind','create','easeTo','readyCallbacks','svg','IVUMy','evHEh','44QbJQBH','charCodeAt','routes','center','OaJPu','anchor','div','constructor','getElement','mtVWk','MFLXM','RvgPe','geojson','https://mtile.gram.tj/custom-styles/style_maptiler_basic_hn.json','UAxxT','attributionControl','src','error','BIlMc','createElement','kRnrs','Rtehh','destroy','Xfmzm','FLdVc','rvNqN','WxOnt','{}.constructor(\x22return\x20this\x22)(\x20)','aJKHF','test','getElementsByTagName','interceptors','height','2398740bbWUSq','getAnchor','includes','load','SHvaY','Error\x20while\x20searching\x20address:','AETcT','</g>','trim','cursor'];a0_0x1c67=function(){return _0x1abab9;};return a0_0x1c67();}n[a0_0x2b802e(0x19f)]=null;var y=n,G=X(require(a0_0x2b802e(0x18e))),l=G['default'][a0_0x2b802e(0x1aa)]({'baseURL':R});l[a0_0x2b802e(0xf2)][a0_0x2b802e(0x152)]['use'](_0x363bf5=>_0x363bf5,_0x3f37bd=>(_0x3f37bd[a0_0x2b802e(0x152)]?.[a0_0x2b802e(0x113)]===0x191&&x(),Promise[a0_0x2b802e(0x14a)](_0x3f37bd)));var b={};M(b,{'clearKey':()=>x,'getApiKey':()=>m,'saveKey':()=>S});var v='';function S(_0x1d201d){var _0x492186=a0_0x2b802e,_0x5b9f80={'aJKHF':function(_0x418810,_0xf99111){return _0x418810!==_0xf99111;}};_0x5b9f80[_0x492186(0x1cc)](_0x1d201d,'')&&(v=_0x1d201d,l['defaults'][_0x492186(0x177)]['common'][_0x492186(0x199)]=_0x492186(0x165)+_0x1d201d);}function x(){var _0x486435=a0_0x2b802e,_0x24b887={'UCDdj':_0x486435(0x118),'QJPTc':function(_0x166beb,_0x45aa30,_0x365b60){return _0x166beb(_0x45aa30,_0x365b60);},'Rtehh':function(_0x3f02ea,_0x585325){return _0x3f02ea===_0x585325;},'RvgPe':_0x486435(0x132),'jjGAq':function(_0x12831f,_0x5ea11e){return _0x12831f!==_0x5ea11e;},'JhVTu':'zfnJu','Rsvrn':function(_0x19cb2d,_0x16c99){return _0x19cb2d(_0x16c99);},'Kxkhl':function(_0x1695f7,_0xc06506){return _0x1695f7!==_0xc06506;},'OaJPu':'tuGia','cvVoT':_0x486435(0x1c2),'aGuxT':function(_0x4e9d0c){return _0x4e9d0c();},'RuucE':_0x486435(0x14c),'xgjGL':'info','vaeGa':_0x486435(0x1c1),'OemRz':'exception','gNkAz':'table','mtVWk':function(_0x44bf82,_0x2544e3){return _0x44bf82<_0x2544e3;},'KqfFJ':_0x486435(0x192),'raSHg':function(_0x55c19f){return _0x55c19f();}},_0x43f7b1=(function(){var _0x2a85b3=!![];return function(_0x30e83e,_0x193f23){var _0x5710f8=_0x2a85b3?function(){var _0x23b3a9=a0_0x2bd8;if(_0x193f23){var _0x56d182=_0x193f23[_0x23b3a9(0x143)](_0x30e83e,arguments);return _0x193f23=null,_0x56d182;}}:function(){};return _0x2a85b3=![],_0x5710f8;};}()),_0x3cbe37=_0x24b887['QJPTc'](_0x43f7b1,this,function(){var _0x2e6c4a=_0x486435,_0x3f5f84={'ETRWl':_0x2e6c4a(0x1b6),'zxXsT':_0x24b887[_0x2e6c4a(0x128)],'BwdgR':function(_0x496148,_0x447bd7,_0x133832){var _0x548c74=_0x2e6c4a;return _0x24b887[_0x548c74(0x10d)](_0x496148,_0x447bd7,_0x133832);},'qHwXS':function(_0x5d2f4a,_0x105329){var _0x56f54a=_0x2e6c4a;return _0x24b887[_0x56f54a(0x1c5)](_0x5d2f4a,_0x105329);},'kRnrs':_0x24b887[_0x2e6c4a(0x1bb)],'CIhnl':function(_0x54b412,_0x4d7098){var _0x481e0d=_0x2e6c4a;return _0x24b887[_0x481e0d(0x188)](_0x54b412,_0x4d7098);},'GHrmV':_0x24b887[_0x2e6c4a(0x16f)],'bhRWA':function(_0x20c164,_0x40655a){var _0x4ef3be=_0x2e6c4a;return _0x24b887[_0x4ef3be(0x100)](_0x20c164,_0x40655a);},'WyRVY':function(_0x2973e9,_0x2ee986){return _0x2973e9+_0x2ee986;}};if(_0x24b887['Kxkhl'](_0x24b887[_0x2e6c4a(0x1b4)],_0x24b887['cvVoT'])){var _0x494320=function(){var _0x28a911=_0x2e6c4a,_0x22bab2={'cmXXF':_0x3f5f84[_0x28a911(0x139)],'MFLXM':_0x3f5f84[_0x28a911(0x117)],'FLdVc':function(_0x29105e,_0x5930d6,_0x44a37){return _0x3f5f84['BwdgR'](_0x29105e,_0x5930d6,_0x44a37);},'VXeXw':_0x28a911(0x1a8)};if(_0x3f5f84[_0x28a911(0x14e)](_0x3f5f84[_0x28a911(0x1c4)],'NfgCv')){var _0x42b6d6;try{if(_0x3f5f84[_0x28a911(0x104)](_0x3f5f84[_0x28a911(0x162)],_0x28a911(0x191)))return!!this['props'][_0x28a911(0x123)];else _0x42b6d6=_0x3f5f84[_0x28a911(0x197)](Function,_0x3f5f84[_0x28a911(0x10c)](_0x28a911(0x149),_0x28a911(0x1cb))+');')();}catch(_0x5d3740){if(_0x28a911(0x105)!==_0x28a911(0x105))return new _0x38b090[(_0x28a911(0x11f))]({'element':_0x499de7[_0x28a911(0x1b8)](),'draggable':_0x582029[_0x28a911(0x10e)]?.()??!0x1,'anchor':_0x35cec8[_0x28a911(0xf5)]?.()??_0x28a911(0x1b3)})[_0x28a911(0x12b)](_0x3a698f['getCoordinates']())[_0x28a911(0x15c)](_0x5b35dd);else _0x42b6d6=window;}return _0x42b6d6;}else{var _0x1410ab=_0x517d29[_0x28a911(0x1c3)](_0x22bab2['cmXXF']);_0x1410ab[_0x28a911(0x157)][_0x28a911(0xfd)]=_0x22bab2[_0x28a911(0x1ba)];var _0x44a740=this[_0x28a911(0x14b)][_0x28a911(0x1ad)]?this['applyColorToCustomSvg'](this[_0x28a911(0x14b)]['svg']):_0x22bab2[_0x28a911(0x1c8)](_0x5273e7,this[_0x28a911(0x14b)][_0x28a911(0x195)]??_0x22bab2[_0x28a911(0x1a1)],{'innerSvg':this[_0x28a911(0x14b)]['innerSvg'],'innerUrl':this[_0x28a911(0x14b)][_0x28a911(0x194)]});return _0x1410ab[_0x28a911(0x126)]=_0x44a740,this[_0x28a911(0x14b)][_0x28a911(0x123)]&&(_0x1410ab[_0x28a911(0x123)]=!0x0),_0x1410ab;}},_0x35ed40=_0x24b887[_0x2e6c4a(0x11e)](_0x494320),_0x3e9ddb=_0x35ed40[_0x2e6c4a(0x173)]=_0x35ed40[_0x2e6c4a(0x173)]||{},_0x21cf15=[_0x24b887['RuucE'],_0x2e6c4a(0x154),_0x24b887['xgjGL'],_0x24b887[_0x2e6c4a(0x158)],_0x24b887['OemRz'],_0x24b887[_0x2e6c4a(0x16c)],_0x2e6c4a(0x189)];for(var _0x5755a8=0x0;_0x24b887[_0x2e6c4a(0x1b9)](_0x5755a8,_0x21cf15[_0x2e6c4a(0x182)]);_0x5755a8++){var _0x17a7a2=_0x24b887[_0x2e6c4a(0x151)]['split']('|'),_0x329705=0x0;while(!![]){switch(_0x17a7a2[_0x329705++]){case'0':var _0x4f5cb6=_0x21cf15[_0x5755a8];continue;case'1':_0x3e9ddb[_0x4f5cb6]=_0x34b79f;continue;case'2':var _0x34b79f=_0x43f7b1[_0x2e6c4a(0x1b7)]['prototype']['bind'](_0x43f7b1);continue;case'3':var _0x3bdb38=_0x3e9ddb[_0x4f5cb6]||_0x34b79f;continue;case'4':_0x34b79f[_0x2e6c4a(0x18c)]=_0x43f7b1[_0x2e6c4a(0x1a9)](_0x43f7b1);continue;case'5':_0x34b79f[_0x2e6c4a(0x19b)]=_0x3bdb38[_0x2e6c4a(0x19b)][_0x2e6c4a(0x1a9)](_0x3bdb38);continue;}break;}}}else this[_0x2e6c4a(0x135)]=_0x2ec622,this['camera']=new _0x5761cf(_0xfa2b5b);});_0x24b887[_0x486435(0x102)](_0x3cbe37),(v='',l['defaults']['headers']['common'][_0x486435(0x199)]='');}var m=()=>v;function a0_0x2bd8(_0x2c08a3,_0x267e47){var _0x1d5406=a0_0x1c67();return a0_0x2bd8=function(_0x30c2db,_0x6ca285){_0x30c2db=_0x30c2db-0xf1;var _0x453062=_0x1d5406[_0x30c2db];return _0x453062;},a0_0x2bd8(_0x2c08a3,_0x267e47);}function I(_0x54cf9c,_0x68d065){var _0x5e1e0f={'ljnjB':function(_0x11aebb,..._0x380249){return _0x11aebb(..._0x380249);}};let _0x1f1469;return(..._0x153e06)=>(_0x1f1469&&clearTimeout(_0x1f1469),new Promise(_0xf8d836=>{_0x1f1469=setTimeout(async()=>{var _0x158271=a0_0x2bd8;let _0x3bd590=await _0x5e1e0f[_0x158271(0x138)](_0x54cf9c,..._0x153e06);_0x5e1e0f[_0x158271(0x138)](_0xf8d836,_0x3bd590);},_0x68d065);}));}var D=async _0x1fea7a=>{var _0x2d4523=a0_0x2b802e,_0x23be21={'FjIfb':_0x2d4523(0xf9)};try{return(await l['post'](_0x2d4523(0x16b),null,{'params':_0x1fea7a}))[_0x2d4523(0x175)];}catch(_0x2217f5){throw console[_0x2d4523(0x1c1)](_0x23be21[_0x2d4523(0x13b)],_0x2217f5),_0x2217f5;}},$=async _0x4f7ba2=>{var _0xe88b70=a0_0x2b802e,_0x468544={'zHgEk':'xkYvn','gPujS':'eGzAi','WxOnt':'services/getAddressByLocation'};try{return _0x468544[_0xe88b70(0x198)]!==_0x468544[_0xe88b70(0x12e)]?(await l['post'](_0x468544[_0xe88b70(0x1ca)],null,{'params':_0x4f7ba2}))[_0xe88b70(0x175)]:this[_0xe88b70(0x135)][_0xe88b70(0x19a)]();}catch(_0x2fed36){throw console[_0xe88b70(0x1c1)](_0xe88b70(0x13f),_0x2fed36),_0x2fed36;}};async function te(_0x5e8816,_0x2323d5,_0x39480f){var _0x472e20=a0_0x2b802e,_0x5554e2={'mBlHV':_0x472e20(0x140),'rvNqN':function(_0xb28d9,_0x450d1b,_0x15a7c5,_0x237581){return _0xb28d9(_0x450d1b,_0x15a7c5,_0x237581);},'NCDYR':_0x472e20(0xf3),'PpyPu':_0x472e20(0x18a),'xjMGW':function(_0x155958){return _0x155958();},'tTGpt':function(_0x491e94,_0x1e774f){return _0x491e94!==_0x1e774f;},'rRUVV':_0x472e20(0x144)};let _0x2bf170={'text':_0x5e8816,'token':_0x2323d5||_0x5554e2[_0x472e20(0x14d)](m),..._0x39480f};try{if(_0x5554e2['tTGpt'](_0x5554e2[_0x472e20(0x17b)],_0x5554e2[_0x472e20(0x17b)])){let _0x2daf7b=_0x5389f1[_0x472e20(0xfc)]();if(_0x322a3a[_0x472e20(0x1cd)](_0x2daf7b)){let _0x1fdec4=_0x36cb85(_0x2daf7b,'x','14');return _0x1fdec4=_0x3eb05f(_0x1fdec4,'y','12'),_0x1fdec4=_0x1d8e18(_0x1fdec4,_0x5554e2[_0x472e20(0x114)],'22'),_0x1fdec4=_0x5554e2[_0x472e20(0x1c9)](_0x312ae7,_0x1fdec4,_0x5554e2[_0x472e20(0x179)],'22'),/\spreserveAspectRatio="/i[_0x472e20(0x1cd)](_0x1fdec4)||(_0x1fdec4=_0x1fdec4[_0x472e20(0x134)](/<svg\b/i,_0x5554e2[_0x472e20(0x116)])),_0x1fdec4;}return _0x472e20(0x15a)+_0x2daf7b+_0x472e20(0xfb);}else return await D(_0x2bf170);}catch(_0x1099de){throw _0x1099de;}}var re=I(te,0x1f4);async function K(_0x3c76b3,_0x3ba027,_0x296ba9){var _0x191550=a0_0x2b802e,_0x1ef02d={'QWPrW':function(_0x20fed1,_0x37c65d,_0x1570f1,_0x259d13){return _0x20fed1(_0x37c65d,_0x1570f1,_0x259d13);}};return await _0x1ef02d[_0x191550(0x150)](re,_0x3c76b3,_0x3ba027,_0x296ba9);}async function O(_0x4b6a8e){var _0x3fd47f=a0_0x2b802e,_0x2f9eee={'XZoZT':function(_0x5a5700){return _0x5a5700();},'OWgYl':function(_0x22bfd2,_0x4c8bf9){return _0x22bfd2(_0x4c8bf9);}};let _0x21e0e3={..._0x4b6a8e,'token':_0x4b6a8e[_0x3fd47f(0x183)]?_0x4b6a8e[_0x3fd47f(0x183)]:_0x2f9eee[_0x3fd47f(0x115)](m)};try{return await _0x2f9eee[_0x3fd47f(0x13e)]($,_0x21e0e3);}catch(_0x456a78){throw _0x456a78;}}var U=async(_0x4c02c4,_0x2d2e5c)=>{var _0x2be6ba=a0_0x2b802e,_0x15ac8b={'Rvxpj':function(_0x51ed76){return _0x51ed76();}};try{let _0x99c8c=[];return _0x4c02c4[_0x2be6ba(0x181)](_0x180a60=>{var _0x37f559=_0x2be6ba;_0x99c8c[_0x37f559(0x164)]({'lng':_0x180a60[0x0],'lat':_0x180a60[0x1]});}),(await l[_0x2be6ba(0x146)](_0x2be6ba(0x184),{'points':_0x99c8c,'token':_0x2d2e5c||_0x15ac8b[_0x2be6ba(0x18d)](m)}))[_0x2be6ba(0x175)];}catch(_0x1cb9fc){throw console['error'](_0x1cb9fc),_0x1cb9fc;}};async function _(_0x14e485,_0x477697,_0x299ef8){var _0x3192e9=a0_0x2b802e,_0x16b006={'svYJt':function(_0x1f8652,_0x3691f5){return _0x1f8652(_0x3691f5);},'MkvXo':function(_0x3b2dc8,_0x23f616,_0x5cb7c8){return _0x3b2dc8(_0x23f616,_0x5cb7c8);},'jjiFp':function(_0x3bf13b,_0x2bd89c){return _0x3bf13b!==_0x2bd89c;},'uZsfY':_0x3192e9(0x13a)};try{if(_0x16b006[_0x3192e9(0x110)](_0x16b006[_0x3192e9(0x112)],_0x3192e9(0x13a))){let _0x4b36a6=_0x16b006[_0x3192e9(0x12d)](_0x180a03,()=>{var _0x1de01c=_0x3192e9;_0x393cf3[_0x1de01c(0x19f)]&&(_0x16b006[_0x1de01c(0x170)](_0x471b5e,_0x4b36a6),_0x3ca1f9[_0x1de01c(0x15b)](_0xf9b80b));},0x32);return;}else{let _0x52ac7f=await _0x16b006[_0x3192e9(0x12d)](U,_0x14e485,_0x299ef8);return _0x52ac7f?.[_0x3192e9(0x175)]?_0x52ac7f[_0x3192e9(0x175)][_0x3192e9(0x135)](_0x2500c8=>{var _0x1c61b3=_0x3192e9;let _0x35c765={..._0x2500c8};return _0x35c765[_0x1c61b3(0x15d)]?.[_0x1c61b3(0x1b2)]?.[_0x1c61b3(0x182)]&&(_0x35c765[_0x1c61b3(0x15d)]['routes']=_0x35c765[_0x1c61b3(0x15d)][_0x1c61b3(0x1b2)]['map'](_0x16204d=>({..._0x16204d,'geometry':_0x477697===_0x1c61b3(0x1bc)&&typeof _0x16204d[_0x1c61b3(0x11c)]==_0x1c61b3(0x121)?L(_0x16204d[_0x1c61b3(0x11c)]):_0x16204d[_0x1c61b3(0x11c)]}))),_0x35c765;}):_0x52ac7f;}}catch(_0x32c1e4){throw _0x32c1e4;}}var w={};M(w,{'debounce':()=>I});function oe(){var _0x592237=a0_0x2b802e;let _0x2871f1=document[_0x592237(0xf1)](_0x592237(0x19d));for(let _0x1cc82e of _0x2871f1)if(_0x1cc82e[_0x592237(0x1c0)][_0x592237(0xf6)](_0x592237(0x1a4))){let _0x3edc64=new URL(_0x1cc82e[_0x592237(0x1c0)])[_0x592237(0x17e)][_0x592237(0x16e)](_0x592237(0x101));if(_0x3edc64)return _0x3edc64;}return'';}S(oe()),0x0&&(module[a0_0x2b802e(0x169)]={'MahalMap':MahalMap,'MahalMapDefaultMarker':MahalMapDefaultMarker,'Router':Router,'Search':Search,'SearchByLocation':SearchByLocation,'keyUtils':keyUtils,'utils':utils});
1
+ 'use strict';var a0_0x395ea8=a0_0x22d9;(function(_0x56d726,_0x24f637){var _0x422e84=a0_0x22d9,_0x12b1d7=_0x56d726();while(!![]){try{var _0x97167a=parseInt(_0x422e84(0x1cb))/0x1+parseInt(_0x422e84(0x1ea))/0x2*(parseInt(_0x422e84(0x1af))/0x3)+parseInt(_0x422e84(0x19e))/0x4*(parseInt(_0x422e84(0x1c1))/0x5)+-parseInt(_0x422e84(0x123))/0x6+-parseInt(_0x422e84(0x162))/0x7+parseInt(_0x422e84(0x193))/0x8+-parseInt(_0x422e84(0x14f))/0x9*(parseInt(_0x422e84(0x180))/0xa);if(_0x97167a===_0x24f637)break;else _0x12b1d7['push'](_0x12b1d7['shift']());}catch(_0x122c5f){_0x12b1d7['push'](_0x12b1d7['shift']());}}}(a0_0x427e,0x83779));var N=Object[a0_0x395ea8(0x125)],u=Object[a0_0x395ea8(0x191)],Z=Object[a0_0x395ea8(0x126)],z=Object['getOwnPropertyNames'],H=Object['getPrototypeOf'],V=Object['prototype'][a0_0x395ea8(0x1b6)],M=(_0xe25895,_0x2dff6b)=>{var _0x2e0122=a0_0x395ea8,_0x45c75b={'tKBPc':function(_0x5461c4,_0x2004cb,_0xef9b0b,_0x7c1ade){return _0x5461c4(_0x2004cb,_0xef9b0b,_0x7c1ade);}};for(var _0x5d141e in _0x2dff6b)_0x45c75b[_0x2e0122(0x16a)](u,_0xe25895,_0x5d141e,{'get':_0x2dff6b[_0x5d141e],'enumerable':!0x0});},T=(_0x253c6b,_0x54c828,_0x4d7252,_0x46212b)=>{var _0x4ab514=a0_0x395ea8,_0x2cb817={'lwVoH':function(_0x49719c,_0x371c76){return _0x49719c==_0x371c76;},'hbCJP':_0x4ab514(0x1ef),'JrKlv':function(_0x19abde,_0x37619c){return _0x19abde(_0x37619c);},'iFHLO':function(_0x564314,_0x2f731e,_0xd01cfa,_0x162939){return _0x564314(_0x2f731e,_0xd01cfa,_0x162939);},'wnmUB':function(_0x4ff8c8,_0x32482a,_0x1e72b9){return _0x4ff8c8(_0x32482a,_0x1e72b9);}};if(_0x54c828&&_0x2cb817[_0x4ab514(0x16e)](typeof _0x54c828,_0x4ab514(0x174))||_0x2cb817[_0x4ab514(0x16e)](typeof _0x54c828,_0x2cb817[_0x4ab514(0x1cf)])){for(let _0x34017b of _0x2cb817['JrKlv'](z,_0x54c828))!V['call'](_0x253c6b,_0x34017b)&&_0x34017b!==_0x4d7252&&_0x2cb817['iFHLO'](u,_0x253c6b,_0x34017b,{'get':()=>_0x54c828[_0x34017b],'enumerable':!(_0x46212b=_0x2cb817[_0x4ab514(0x111)](Z,_0x54c828,_0x34017b))||_0x46212b[_0x4ab514(0x1de)]});}return _0x253c6b;},X=(_0x58a110,_0x4d7802,_0x5ae55a)=>(_0x5ae55a=_0x58a110!=null?N(H(_0x58a110)):{},T(_0x4d7802||!_0x58a110||!_0x58a110[a0_0x395ea8(0x1d6)]?u(_0x5ae55a,a0_0x395ea8(0x134),{'value':_0x58a110,'enumerable':!0x0}):_0x5ae55a,_0x58a110)),q=_0x4c5698=>T(u({},a0_0x395ea8(0x1d6),{'value':!0x0}),_0x4c5698),ae={};M(ae,{'MahalMap':()=>y,'MahalMapDefaultMarker':()=>f,'Router':()=>_,'Search':()=>K,'SearchByLocation':()=>O,'keyUtils':()=>b,'utils':()=>w}),module[a0_0x395ea8(0x149)]=q(ae);var R=a0_0x395ea8(0x15f),P=a0_0x395ea8(0x1c3),C=a0_0x395ea8(0x114),k=a0_0x395ea8(0x12a);function L(_0x5cd8f2){var _0x10cef3=a0_0x395ea8,_0x4f763f={'txudW':function(_0x1dbb9b,_0x16ca3c){return _0x1dbb9b<_0x16ca3c;},'NqMqf':function(_0x2e6d19,_0x290e44){return _0x2e6d19===_0x290e44;},'HvcqD':_0x10cef3(0x109),'GssnX':function(_0x1179f0,_0x1a98d2){return _0x1179f0-_0x1a98d2;},'fSlEj':function(_0xeba0fe,_0x1a1740){return _0xeba0fe<<_0x1a1740;},'rzuuT':function(_0x5905a8,_0x513f3d){return _0x5905a8&_0x513f3d;},'jRdrT':function(_0x578527,_0x2bee1b){return _0x578527>=_0x2bee1b;},'ZCMKP':function(_0x27168a,_0x41380d){return _0x27168a&_0x41380d;},'iTBoc':function(_0x19ff33,_0x91a0d1){return _0x19ff33>>_0x91a0d1;},'ESkAt':function(_0x3fdaac,_0x8806e4){return _0x3fdaac>>_0x8806e4;},'hNIzR':function(_0x1066ee,_0x4e93dc){return _0x1066ee*_0x4e93dc;},'UYnsO':function(_0x48b813,_0x150407){return _0x48b813*_0x150407;}};let _0x46563f=[],_0x105b2e=0x0,_0x56a8be=_0x5cd8f2[_0x10cef3(0x1d9)],_0x596098=0x0,_0x8ffda2=0x0;for(;_0x4f763f[_0x10cef3(0x11a)](_0x105b2e,_0x56a8be);){if(_0x4f763f[_0x10cef3(0x17c)](_0x4f763f[_0x10cef3(0x121)],_0x4f763f[_0x10cef3(0x121)])){let _0x1067f6,_0x1c1fad=0x0,_0x1911d7=0x0;do _0x1067f6=_0x4f763f[_0x10cef3(0x129)](_0x5cd8f2[_0x10cef3(0x1cc)](_0x105b2e++),0x3f),_0x1911d7|=_0x4f763f[_0x10cef3(0x12f)](_0x4f763f[_0x10cef3(0x159)](_0x1067f6,0x1f),_0x1c1fad),_0x1c1fad+=0x5;while(_0x4f763f[_0x10cef3(0x15c)](_0x1067f6,0x20));let _0x82217d=_0x4f763f[_0x10cef3(0x1bf)](_0x1911d7,0x1)?~_0x4f763f[_0x10cef3(0x13c)](_0x1911d7,0x1):_0x1911d7>>0x1;_0x596098+=_0x82217d,_0x1c1fad=0x0,_0x1911d7=0x0;do _0x1067f6=_0x5cd8f2[_0x10cef3(0x1cc)](_0x105b2e++)-0x3f,_0x1911d7|=_0x4f763f[_0x10cef3(0x1bf)](_0x1067f6,0x1f)<<_0x1c1fad,_0x1c1fad+=0x5;while(_0x1067f6>=0x20);let _0x49523d=_0x1911d7&0x1?~(_0x1911d7>>0x1):_0x4f763f[_0x10cef3(0x1b2)](_0x1911d7,0x1);_0x8ffda2+=_0x49523d,_0x46563f[_0x10cef3(0x14d)]([_0x4f763f[_0x10cef3(0x147)](_0x8ffda2,0.00001),_0x4f763f[_0x10cef3(0x112)](_0x596098,0.00001)]);}else _0xff80ab[_0x10cef3(0x108)]=!0x0,_0x224dd2[_0x10cef3(0x1aa)]=new _0x1725e7(_0x355dd4[_0x10cef3(0x142)]),_0x4ff5de['readyCallbacks'][_0x10cef3(0x18d)](_0x5c93a4=>_0x5c93a4(_0x1afeb0['map'])),_0x3444dd[_0x10cef3(0x10e)]=[];}return _0x46563f;}var h=class{constructor(_0x41fce0){var _0x1c6959=a0_0x395ea8;this[_0x1c6959(0x142)]=_0x41fce0;}[a0_0x395ea8(0xfe)](_0x39d8d6,_0x5a510d=!0x0){var _0x1f2bcc=a0_0x395ea8;_0x5a510d?this[_0x1f2bcc(0x142)][_0x1f2bcc(0x12d)]({'zoom':_0x39d8d6}):this['map'][_0x1f2bcc(0xfe)](_0x39d8d6);}[a0_0x395ea8(0x118)](_0xad08f4,_0x4e9908=!0x0){var _0xe74f99=a0_0x395ea8;_0x4e9908?this[_0xe74f99(0x142)][_0xe74f99(0x12d)]({'bearing':_0xad08f4}):this[_0xe74f99(0x142)][_0xe74f99(0x118)](_0xad08f4);}[a0_0x395ea8(0x119)](_0x4c9d41,_0x563892=!0x0){var _0x4cf415=a0_0x395ea8;_0x563892?this[_0x4cf415(0x142)]['easeTo']({'pitch':_0x4c9d41}):this['map'][_0x4cf415(0x119)](_0x4c9d41);}[a0_0x395ea8(0x16f)](_0x4bf8af){var _0x4b50d7=a0_0x395ea8;this[_0x4b50d7(0x142)][_0x4b50d7(0x12d)]({'pitch':_0x4bf8af?0x3c:0x0,'bearing':_0x4bf8af?this['map']['getBearing']():0x0,'duration':0x320});}[a0_0x395ea8(0x1c9)](){var _0x453839=a0_0x395ea8;this[_0x453839(0x142)][_0x453839(0x12d)]({'bearing':0x0,'pitch':0x0,'duration':0x258});}['flyTo'](_0x4bbe83){var _0x541f88=a0_0x395ea8;this['map'][_0x541f88(0x1e8)]({'speed':1.2,'curve':1.42,'essential':!0x0,..._0x4bbe83});}[a0_0x395ea8(0x1ca)](){var _0x230b1d=a0_0x395ea8;return this[_0x230b1d(0x142)]['getPitch']();}},Y=/<svg[\s>]/i,J=/<(svg|path|g|circle|rect|polygon|line|polyline|ellipse|use)\b/i,g=(_0x4a2b79,_0x303812,_0xf58cb1)=>{var _0x270ec3=a0_0x395ea8;let _0xb4aa8e=new RegExp('\x5cs'+_0x303812+_0x270ec3(0x1e0),'i');return _0xb4aa8e[_0x270ec3(0x1f1)](_0x4a2b79)?_0x4a2b79[_0x270ec3(0x1c6)](_0xb4aa8e,'\x20'+_0x303812+'=\x22'+_0xf58cb1+'\x22'):_0x4a2b79[_0x270ec3(0x1c6)](/<svg\b/i,_0x270ec3(0x148)+_0x303812+'=\x22'+_0xf58cb1+'\x22');},Q=_0x2ed507=>_0x2ed507[a0_0x395ea8(0x1c6)](/&/g,a0_0x395ea8(0x151))[a0_0x395ea8(0x1c6)](/"/g,a0_0x395ea8(0x1d2)),A=_0x65379d=>a0_0x395ea8(0x133)+Q(_0x65379d)+a0_0x395ea8(0x1c0),W=_0x43edda=>{var _0x4f35ae=a0_0x395ea8,_0x1deb46={'hlLSg':function(_0x4a4a7a,_0x293fda){return _0x4a4a7a!==_0x293fda;},'KDmNr':_0x4f35ae(0x1a9),'coXAO':function(_0x1523cf,_0x53332b,_0x5c86f4,_0x4a99aa){return _0x1523cf(_0x53332b,_0x5c86f4,_0x4a99aa);},'wgJZk':function(_0xb3ec48,_0x4ec102,_0x33f516,_0x99b920){return _0xb3ec48(_0x4ec102,_0x33f516,_0x99b920);},'WHHtn':_0x4f35ae(0x1e1),'Fdnpq':_0x4f35ae(0x18a)};let _0x50f511=_0x43edda[_0x4f35ae(0x178)]();if(Y[_0x4f35ae(0x1f1)](_0x50f511)){if(_0x1deb46['hlLSg'](_0x4f35ae(0x11d),_0x1deb46[_0x4f35ae(0x189)])){let _0x7c5567=g(_0x50f511,'x','14');return _0x7c5567=_0x1deb46[_0x4f35ae(0x190)](g,_0x7c5567,'y','12'),_0x7c5567=_0x1deb46[_0x4f35ae(0x14e)](g,_0x7c5567,_0x1deb46[_0x4f35ae(0x104)],'22'),_0x7c5567=g(_0x7c5567,_0x4f35ae(0xfb),'22'),/\spreserveAspectRatio="/i[_0x4f35ae(0x1f1)](_0x7c5567)||(_0x7c5567=_0x7c5567[_0x4f35ae(0x1c6)](/<svg\b/i,_0x1deb46[_0x4f35ae(0x117)])),_0x7c5567;}else return this[_0x4f35ae(0x1aa)];}return _0x4f35ae(0x1b4)+_0x50f511+_0x4f35ae(0x107);},ee=({innerSvg:_0x776464,innerUrl:_0x2791ed})=>{var _0x336084=a0_0x395ea8,_0xc26531={'wdbFe':function(_0xd0445f,_0x45613c){return _0xd0445f(_0x45613c);},'fvMtD':function(_0x79d3ff,_0x1f4a7f){return _0x79d3ff(_0x1f4a7f);}};let _0x16dc75=_0x776464?.[_0x336084(0x178)](),_0x46053f=_0x2791ed?.[_0x336084(0x178)]();return _0x16dc75?J[_0x336084(0x1f1)](_0x16dc75)?_0xc26531['wdbFe'](W,_0x16dc75):_0xc26531[_0x336084(0x1e6)](A,_0x16dc75):_0x46053f?_0xc26531[_0x336084(0x1a7)](A,_0x46053f):'';},E=(_0x43db19,_0x252a0f={})=>a0_0x395ea8(0x1ec)+(_0x43db19||a0_0x395ea8(0x19a))+a0_0x395ea8(0x175)+(_0x43db19||'#278960')+a0_0x395ea8(0x13f)+ee(_0x252a0f)+a0_0x395ea8(0x1dc),f=class{constructor(_0x222594){var _0x2dd56b=a0_0x395ea8;this['props']=_0x222594,this[_0x2dd56b(0x100)]=this[_0x2dd56b(0x14c)]();}[a0_0x395ea8(0x14c)](){var _0xcb5208=a0_0x395ea8,_0x578e90={'gIWCn':_0xcb5208(0x18c),'BAFgi':_0xcb5208(0x145),'CnENC':function(_0x307a8f,_0x3b3709,_0x93fcc3){return _0x307a8f(_0x3b3709,_0x93fcc3);},'GRuhB':_0xcb5208(0x19a)};let _0x5ceccf=document[_0xcb5208(0x14c)](_0x578e90[_0xcb5208(0x1e4)]);_0x5ceccf['style']['cursor']=_0x578e90['BAFgi'];let _0x36813b=this[_0xcb5208(0x10f)][_0xcb5208(0x183)]?this[_0xcb5208(0x154)](this[_0xcb5208(0x10f)][_0xcb5208(0x183)]):_0x578e90[_0xcb5208(0x195)](E,this[_0xcb5208(0x10f)]['color']??_0x578e90['GRuhB'],{'innerSvg':this[_0xcb5208(0x10f)][_0xcb5208(0x120)],'innerUrl':this[_0xcb5208(0x10f)][_0xcb5208(0x165)]});return _0x5ceccf[_0xcb5208(0x138)]=_0x36813b,this[_0xcb5208(0x10f)][_0xcb5208(0x1f3)]&&(_0x5ceccf[_0xcb5208(0x1f3)]=!0x0),_0x5ceccf;}['applyColorToCustomSvg'](_0x2cae79){var _0x34cdc0=a0_0x395ea8;return this['props'][_0x34cdc0(0x19c)]?_0x2cae79[_0x34cdc0(0x1c6)](/fill="[^"]*"/g,_0x34cdc0(0x1e5)+this['props']['color']+'\x22'):_0x2cae79;}[a0_0x395ea8(0x1da)](){var _0x32b9a5=a0_0x395ea8;return this[_0x32b9a5(0x100)];}[a0_0x395ea8(0x106)](){var _0x51d609=a0_0x395ea8;return this[_0x51d609(0x10f)][_0x51d609(0x1a2)];}[a0_0x395ea8(0x13e)](){var _0x320a82=a0_0x395ea8;return!!this['props'][_0x320a82(0x1f3)];}['getAnchor'](){var _0x43c4eb=a0_0x395ea8;return this[_0x43c4eb(0x10f)][_0x43c4eb(0x18b)]||_0x43c4eb(0x1b9);}};function B(_0x24c4fe,_0x4de14f,_0x31164e){var _0x2d0c38=a0_0x395ea8,_0x12ea80={'uGAyv':'center'};return new _0x24c4fe[(_0x2d0c38(0x1d0))]({'element':_0x31164e[_0x2d0c38(0x1da)](),'draggable':_0x31164e['isDraggable']?.()??!0x1,'anchor':_0x31164e[_0x2d0c38(0x169)]?.()??_0x12ea80[_0x2d0c38(0x185)]})['setLngLat'](_0x31164e[_0x2d0c38(0x106)]())[_0x2d0c38(0x1eb)](_0x4de14f);}var d={'dark':P,'light':C},n=class n{constructor(){var _0x4c0b3a=a0_0x395ea8;this[_0x4c0b3a(0x108)]=!0x1,this[_0x4c0b3a(0x10e)]=[];}static[a0_0x395ea8(0x125)](_0x29bdf0,_0x2a3985){var _0xd937f=a0_0x395ea8,_0x1a64fb={'awTIF':_0xd937f(0x194),'grNns':_0xd937f(0x1d3),'hJSTt':'map','EGCoO':function(_0x26a713,_0x3be335){return _0x26a713!==_0x3be335;},'qimkr':'load'};if(n['instance'])return n[_0xd937f(0x144)];let _0x544497=window[_0xd937f(0x139)]||_0x2a3985;if(!_0x544497)throw new Error(_0x1a64fb[_0xd937f(0x196)]);let _0x1a1579=_0x29bdf0[_0xd937f(0x11b)]?k:_0x29bdf0[_0xd937f(0x115)]?_0x29bdf0[_0xd937f(0x115)]:_0x29bdf0[_0xd937f(0x1db)]===_0x1a64fb['grNns']?d[_0xd937f(0x1d3)]:d[_0xd937f(0x1c8)],_0x4195be=new n();return _0x4195be[_0xd937f(0x192)]=_0x29bdf0,_0x4195be[_0xd937f(0x17d)]=_0x544497,_0x4195be[_0xd937f(0x142)]=new _0x544497['Map']({'container':_0x29bdf0['container']||_0x1a64fb[_0xd937f(0x101)],'style':_0x1a1579,'center':_0x29bdf0[_0xd937f(0x1b9)]||[69.624024,40.279687],'zoom':_0x29bdf0['zoom']||0x5,'attributionControl':_0x1a64fb[_0xd937f(0x160)](_0x29bdf0['attributionControl'],!0x1)}),_0x4195be[_0xd937f(0x142)]['on'](_0x1a64fb['qimkr'],()=>{var _0xbb1f5a=_0xd937f;_0x4195be['isReady']=!0x0,_0x4195be[_0xbb1f5a(0x1aa)]=new h(_0x4195be['map']),_0x4195be[_0xbb1f5a(0x10e)]['forEach'](_0x1a8f94=>_0x1a8f94(_0x4195be[_0xbb1f5a(0x142)])),_0x4195be[_0xbb1f5a(0x10e)]=[];}),n[_0xd937f(0x144)]=_0x4195be,_0x4195be;}static[a0_0x395ea8(0x15d)](_0x4d64e6){var _0xbefbdd=a0_0x395ea8,_0x404088={'zqkxg':function(_0x30a087,_0x43316f,_0x4cb55f){return _0x30a087(_0x43316f,_0x4cb55f);},'epNOV':_0xbefbdd(0x167),'QFLES':function(_0xba82a0,_0x10a8eb){return _0xba82a0(_0x10a8eb);}};if(!n[_0xbefbdd(0x144)]){if(_0x404088[_0xbefbdd(0x1f4)]===_0x404088['epNOV']){let _0x3e3ca4=_0x404088[_0xbefbdd(0x1f6)](setInterval,()=>{var _0x3c1695=_0xbefbdd;n['instance']&&(clearInterval(_0x3e3ca4),n[_0x3c1695(0x15d)](_0x4d64e6));},0x32);return;}else{let _0x4c0ebc=_0x404088[_0xbefbdd(0x1f6)](_0x121a5d,()=>{var _0xd61a9f=_0xbefbdd;_0x237b6b[_0xd61a9f(0x144)]&&(_0x4144b6(_0x4c0ebc),_0x1b75bb[_0xd61a9f(0x15d)](_0x317ab7));},0x32);return;}}let _0x104ed5=n[_0xbefbdd(0x144)];_0x104ed5['isReady']?_0x404088[_0xbefbdd(0x170)](_0x4d64e6,_0x104ed5['map']):_0x104ed5[_0xbefbdd(0x10e)][_0xbefbdd(0x14d)](_0x4d64e6);}static[a0_0x395ea8(0x1e2)](){var _0x78547a=a0_0x395ea8,_0x50ffec={'nTJDg':_0x78547a(0x137)};if(!n['instance'])throw new Error(_0x50ffec[_0x78547a(0x156)]);return n['instance'];}[a0_0x395ea8(0x10d)](_0x4333e3){var _0xadbe03=a0_0x395ea8,_0x3e834e={'SDawD':function(_0x336762,_0x1ce48d,_0x4a0afd,_0x358307){return _0x336762(_0x1ce48d,_0x4a0afd,_0x358307);}};return _0x3e834e[_0xadbe03(0x15e)](B,this[_0xadbe03(0x17d)],this[_0xadbe03(0x142)],_0x4333e3);}[a0_0x395ea8(0x1bb)](_0x315ecb){var _0x52e69c=a0_0x395ea8;this[_0x52e69c(0x142)]=_0x315ecb,this[_0x52e69c(0x1aa)]=new h(_0x315ecb);}[a0_0x395ea8(0x1f8)](){return this['camera'];}[a0_0x395ea8(0x15b)](){var _0x560e41=a0_0x395ea8;return this[_0x560e41(0x142)];}['setStyle'](_0x56d4d5){var _0x290230=a0_0x395ea8,_0x3a30a1={'HpeBY':function(_0x5bdcdb,_0x3cae67){return _0x5bdcdb===_0x3cae67;},'FdIFg':_0x290230(0x1d3)};this[_0x290230(0x142)]['setStyle'](_0x3a30a1['HpeBY'](_0x56d4d5,_0x3a30a1[_0x290230(0x143)])?d[_0x290230(0x1d3)]:d[_0x290230(0x1c8)]);}[a0_0x395ea8(0x1bd)](_0x19e08f){var _0x4e4112=a0_0x395ea8;this[_0x4e4112(0x142)][_0x4e4112(0x1bd)](_0x19e08f);}[a0_0x395ea8(0xfe)](_0x53f212){var _0x11549f=a0_0x395ea8;this[_0x11549f(0x142)]['setZoom'](_0x53f212);}['destroy'](){var _0x1610f1=a0_0x395ea8;this[_0x1610f1(0x142)][_0x1610f1(0x127)](),n['instance']=null;}};n['instance']=null;var y=n,G=X(require('axios')),l=G['default'][a0_0x395ea8(0x125)]({'baseURL':R});l[a0_0x395ea8(0x182)]['request'][a0_0x395ea8(0x198)](_0x5af470=>_0x5af470,_0x52c375=>(_0x52c375['request']?.[a0_0x395ea8(0x11e)]===0x191&&x(),Promise[a0_0x395ea8(0x1a6)](_0x52c375)));var b={};M(b,{'clearKey':()=>x,'getApiKey':()=>m,'saveKey':()=>S});var v='';function S(_0x183a0e){var _0x4dccb7=a0_0x395ea8,_0x3dc816={'NdSvd':function(_0x4556a5,_0x9516b5){return _0x4556a5!==_0x9516b5;}};_0x3dc816[_0x4dccb7(0x1bc)](_0x183a0e,'')&&(v=_0x183a0e,l[_0x4dccb7(0x131)]['headers'][_0x4dccb7(0x135)][_0x4dccb7(0x146)]=_0x4dccb7(0x1b8)+_0x183a0e);}function x(){var _0x508bd1=a0_0x395ea8,_0x409eab={'gCXDx':function(_0x58882f,_0x11e860){return _0x58882f(_0x11e860);},'UiXam':function(_0xe48264,_0x407c1e){return _0xe48264+_0x407c1e;},'oUZDz':_0x508bd1(0x12c),'lOjMM':function(_0x3bebea,_0x3b5dd7){return _0x3bebea===_0x3b5dd7;},'MLCke':_0x508bd1(0x13b),'LEkuU':_0x508bd1(0x1b3),'bJNPl':function(_0x524497,_0x756412){return _0x524497<_0x756412;},'aYeBv':function(_0x90918e,_0x3eda17){return _0x90918e!==_0x3eda17;},'NtQzz':_0x508bd1(0x110),'cvEFG':_0x508bd1(0x130),'HkEqN':function(_0x58f893,_0x666383,_0x508bc8){return _0x58f893(_0x666383,_0x508bc8);}},_0x4dd330=(function(){var _0x178641=!![];return function(_0x4e311f,_0x57ead9){var _0x36e530=_0x178641?function(){var _0x3c93f2=a0_0x22d9;if(_0x57ead9){var _0x233fde=_0x57ead9[_0x3c93f2(0x152)](_0x4e311f,arguments);return _0x57ead9=null,_0x233fde;}}:function(){};return _0x178641=![],_0x36e530;};}()),_0x111841=_0x409eab[_0x508bd1(0x141)](_0x4dd330,this,function(){var _0x14f2bb=_0x508bd1,_0x4712ea={'pvgdH':function(_0xa9b347,_0x3cfe42){var _0x4fef6c=a0_0x22d9;return _0x409eab[_0x4fef6c(0xf9)](_0xa9b347,_0x3cfe42);},'saawP':function(_0x5c26e7,_0x106b58){return _0x409eab['UiXam'](_0x5c26e7,_0x106b58);},'LHijV':_0x409eab['oUZDz'],'EFwYk':_0x14f2bb(0x11f),'PGGsI':function(_0x5e2cb2,_0x237f15){var _0x3a7c26=_0x14f2bb;return _0x409eab[_0x3a7c26(0x1b0)](_0x5e2cb2,_0x237f15);}},_0xc266b=function(){var _0x21083c=_0x14f2bb,_0x4e0b09;try{_0x4e0b09=_0x4712ea[_0x21083c(0x1a0)](Function,_0x4712ea[_0x21083c(0xf8)](_0x4712ea[_0x21083c(0x1b5)],_0x4712ea[_0x21083c(0x16c)])+');')();}catch(_0x414ff4){_0x4712ea[_0x21083c(0x1e7)](_0x21083c(0x14a),_0x21083c(0xf6))?this[_0x21083c(0x142)]['easeTo']({'bearing':0x0,'pitch':0x0,'duration':0x258}):_0x4e0b09=window;}return _0x4e0b09;},_0x22fe04=_0xc266b(),_0x2b93d5=_0x22fe04[_0x14f2bb(0x1df)]=_0x22fe04[_0x14f2bb(0x1df)]||{},_0x4f1959=[_0x14f2bb(0xff),_0x409eab[_0x14f2bb(0x1cd)],_0x14f2bb(0x173),_0x409eab[_0x14f2bb(0x18e)],_0x14f2bb(0x1ad),'table',_0x14f2bb(0x1be)];for(var _0x906840=0x0;_0x409eab[_0x14f2bb(0x1f7)](_0x906840,_0x4f1959[_0x14f2bb(0x1d9)]);_0x906840++){if(_0x409eab['aYeBv'](_0x409eab[_0x14f2bb(0x1c4)],_0x409eab[_0x14f2bb(0x17f)])){var _0x2bb0b3=_0x4dd330[_0x14f2bb(0x140)]['prototype'][_0x14f2bb(0x166)](_0x4dd330),_0x5de766=_0x4f1959[_0x906840],_0x41593c=_0x2b93d5[_0x5de766]||_0x2bb0b3;_0x2bb0b3['__proto__']=_0x4dd330[_0x14f2bb(0x166)](_0x4dd330),_0x2bb0b3[_0x14f2bb(0x12e)]=_0x41593c[_0x14f2bb(0x12e)][_0x14f2bb(0x166)](_0x41593c),_0x2b93d5[_0x5de766]=_0x2bb0b3;}else this[_0x14f2bb(0x142)][_0x14f2bb(0xfe)](_0x5df1b0);}});_0x111841(),(v='',l['defaults'][_0x508bd1(0x199)][_0x508bd1(0x135)]['Authorization']='');}function a0_0x427e(){var _0x5bdfcf=['Error\x20while\x20searching\x20address\x20by\x20location:','warn','iTBoc','services/getAddress','isDraggable','\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','constructor','HkEqN','map','FdIFg','instance','pointer','Authorization','hNIzR','<svg\x20','exports','egZhR','getElementsByTagName','createElement','push','wgJZk','18951192jXDpHc','route','&amp;','apply','rzRki','applyColorToCustomSvg','aqkFA','nTJDg','JMSiq','mDxDY','rzuuT','avGcN','getMap','jRdrT','onReady','SDawD','https://platform.mahal.tj/api/','EGCoO','routes','1073457MVsdov','attributionControl','gQVVI','innerUrl','bind','mingL','FfJfx','getAnchor','tKBPc','EoUtn','EFwYk','CXoMF','lwVoH','toggle3D','QFLES','JwoUe','yMJKU','info','object','\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','includes','NzDGx','trim','caGIA','zoom','apikey','NqMqf','maplibre','VqGuy','cvEFG','10LNwQBc','post','interceptors','svg','yOqfG','uGAyv','XWyoC','vatWB','IgeUi','KDmNr','<svg\x20preserveAspectRatio=\x22xMidYMid\x20meet\x22','anchor','div','forEach','LEkuU','znBmi','coXAO','defineProperty','options','8061760DckSsO','[MahalMap\x20SDK]\x20MapLibre\x20GL\x20не\x20найден.\x20Передай\x20его\x20вторым\x20аргументом\x20или\x20подключи\x20через\x20script.','CnENC','awTIF','hLsBI','use','headers','#278960','cOFmT','color','IpMfr','3792332lOkzuQ','ZyosG','pvgdH','aRzVO','coordinates','token','LcfNr','NEexh','reject','fvMtD','UVroB','MbdJe','camera','BhHhe','fcOuJ','exception','fUXLk','631659mIxyHM','lOjMM','get','ESkAt','error','<g\x20transform=\x22translate(14\x2012)\x22>','LHijV','hasOwnProperty','MSzyh','Bearer\x20','center','CNfIB','init','NdSvd','setCenter','trace','ZCMKP','\x22\x20x=\x2214\x22\x20y=\x2212\x22\x20width=\x2222\x22\x20height=\x2222\x22\x20style=\x22filter:\x20brightness(0)\x20invert(1);\x22\x20/>','5bhVTcH','AnStV','https://mtile.gram.tj/custom-styles/dark-style.json','NtQzz','load','replace','string','light','resetNorth','getPitch','714597IBDQUb','charCodeAt','MLCke','kzRzP','hbCJP','Marker','script','&quot;','dark','NscHS','eJmGc','__esModule','geojson','zUGWB','length','getElement','theme','\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>','ksATv','enumerable','console','=\x22[^\x22]*\x22','width','getInstance','lQOUN','gIWCn','fill=\x22','wdbFe','PGGsI','flyTo','BTeug','2BvSxrP','addTo','<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','ajTng','setStyle','function','qHIpM','test','searchParams','draggable','epNOV','eoFju','zqkxg','bJNPl','getCamera','aimkq','geometry','saawP','gCXDx','WiwtS','height','gSFgn','AWxbG','setZoom','log','element','hJSTt','kquIW','usuCu','WHHtn','ibqjV','getCoordinates','</g>','isReady','KrVZT','data','CnOFK','HuTla','addMarker','readyCallbacks','props','LaBEM','wnmUB','UYnsO','hvQMD','https://mtile.gram.tj/custom-styles/mapstyle.json','style','mkhDF','Fdnpq','setBearing','setPitch','txudW','autoAddVectorSource','QQEZU','kYWUp','status','{}.constructor(\x22return\x20this\x22)(\x20)','innerSvg','HvcqD','kJHsI','500550lVmYUn','container','create','getOwnPropertyDescriptor','remove','src','GssnX','https://mtile.gram.tj/custom-styles/style_maptiler_basic_hn.json','lrzPc','return\x20(function()\x20','easeTo','toString','fSlEj','HdSiz','defaults','zbOIY','<image\x20href=\x22','default','common','VJGAY','[MahalMap\x20SDK]\x20Карта\x20ещё\x20не\x20создана','innerHTML','maplibregl'];a0_0x427e=function(){return _0x5bdfcf;};return a0_0x427e();}var m=()=>v;function a0_0x22d9(_0x92ad1d,_0x5a2592){var _0x3dc63f=a0_0x427e();return a0_0x22d9=function(_0x17db9b,_0x2e330f){_0x17db9b=_0x17db9b-0xf6;var _0x5a9cd0=_0x3dc63f[_0x17db9b];return _0x5a9cd0;},a0_0x22d9(_0x92ad1d,_0x5a2592);}function I(_0x3c6d64,_0x1fee6a){var _0x143ba1=a0_0x395ea8,_0x120a31={'yjppE':function(_0x16be11,_0x3b8d06){return _0x16be11===_0x3b8d06;},'aRzVO':_0x143ba1(0x19d),'yMJKU':function(_0x153926,_0x3f563b,_0x270a17){return _0x153926(_0x3f563b,_0x270a17);}};let _0x5d037e;return(..._0x13c561)=>(_0x5d037e&&clearTimeout(_0x5d037e),new Promise(_0x3dda39=>{var _0x585ec2=_0x143ba1,_0x4cba54={'JMSiq':_0x585ec2(0x1b9)};_0x5d037e=_0x120a31[_0x585ec2(0x172)](setTimeout,async()=>{var _0x5c7017=_0x585ec2;if(_0x120a31['yjppE'](_0x120a31[_0x5c7017(0x1a1)],_0x120a31[_0x5c7017(0x1a1)])){var _0x154ac5=await _0x3c6d64(..._0x13c561);_0x3dda39(_0x154ac5);}else return this[_0x5c7017(0x10f)][_0x5c7017(0x18b)]||_0x4cba54[_0x5c7017(0x157)];},_0x1fee6a);}));}var D=async _0x457d72=>{var _0x285518=a0_0x395ea8,_0xf5401d={'uPjjm':function(_0x2ceedd,_0x1e2f31){return _0x2ceedd!==_0x1e2f31;},'fcOuJ':'LEUHw','FfJfx':_0x285518(0x103),'XWyoC':_0x285518(0x13d),'WVnCZ':'Error\x20while\x20searching\x20address:'};try{if(_0xf5401d['uPjjm'](_0xf5401d[_0x285518(0x1ac)],_0xf5401d[_0x285518(0x168)]))return(await l[_0x285518(0x181)](_0xf5401d[_0x285518(0x186)],{'params':_0x457d72}))[_0x285518(0x10a)];else{let _0x46f8b6={..._0x3914d0};return _0x46f8b6[_0x285518(0x150)]?.['routes']?.[_0x285518(0x1d9)]&&(_0x46f8b6[_0x285518(0x150)][_0x285518(0x161)]=_0x46f8b6[_0x285518(0x150)][_0x285518(0x161)]['map'](_0x35340d=>({..._0x35340d,'geometry':_0x4e6d45===_0x285518(0x1d7)&&typeof _0x35340d[_0x285518(0xf7)]=='string'?_0x1fe276(_0x35340d[_0x285518(0xf7)]):_0x35340d['geometry']}))),_0x46f8b6;}}catch(_0x23e2a4){throw console[_0x285518(0x1b3)](_0xf5401d['WVnCZ'],_0x23e2a4),_0x23e2a4;}},$=async _0x185cac=>{var _0x4244c4=a0_0x395ea8,_0x3d757c={'qHIpM':_0x4244c4(0x194),'MSzyh':function(_0x1d31bd,_0x5821b8){return _0x1d31bd===_0x5821b8;},'lQOUN':_0x4244c4(0x1d3),'zUGWB':_0x4244c4(0x142),'CnOFK':function(_0x45a46a,_0x227e0d){return _0x45a46a!==_0x227e0d;},'gSFgn':_0x4244c4(0x1c5),'eoFju':_0x4244c4(0x10c),'ZyosG':'services/getAddressByLocation'};try{if(_0x3d757c[_0x4244c4(0x1b7)](_0x3d757c[_0x4244c4(0x1f5)],_0x4244c4(0x1ed))){if(_0x5db279[_0x4244c4(0x144)])return _0x281e11['instance'];let _0x1d7ca3=_0x4e7720['maplibregl']||_0x17a4cf;if(!_0x1d7ca3)throw new _0x2f022f(_0x3d757c[_0x4244c4(0x1f0)]);let _0x567519=_0x228157[_0x4244c4(0x11b)]?_0x22fe5f:_0x511c50[_0x4244c4(0x115)]?_0x3771ac[_0x4244c4(0x115)]:_0x3d757c[_0x4244c4(0x1b7)](_0x156b88[_0x4244c4(0x1db)],_0x3d757c[_0x4244c4(0x1e3)])?_0x5bcb9f[_0x4244c4(0x1d3)]:_0x4e8b27[_0x4244c4(0x1c8)],_0x193dd1=new _0x397657();return _0x193dd1[_0x4244c4(0x192)]=_0x10ddc3,_0x193dd1['maplibre']=_0x1d7ca3,_0x193dd1[_0x4244c4(0x142)]=new _0x1d7ca3['Map']({'container':_0x448740[_0x4244c4(0x124)]||_0x3d757c[_0x4244c4(0x1d8)],'style':_0x567519,'center':_0x2e9766[_0x4244c4(0x1b9)]||[69.624024,40.279687],'zoom':_0x5defa1[_0x4244c4(0x17a)]||0x5,'attributionControl':_0x3d757c[_0x4244c4(0x10b)](_0x50e45e[_0x4244c4(0x163)],!0x1)}),_0x193dd1[_0x4244c4(0x142)]['on'](_0x3d757c[_0x4244c4(0xfc)],()=>{var _0x633f=_0x4244c4;_0x193dd1['isReady']=!0x0,_0x193dd1[_0x633f(0x1aa)]=new _0x37a52e(_0x193dd1['map']),_0x193dd1[_0x633f(0x10e)][_0x633f(0x18d)](_0x517fe4=>_0x517fe4(_0x193dd1[_0x633f(0x142)])),_0x193dd1[_0x633f(0x10e)]=[];}),_0x395781[_0x4244c4(0x144)]=_0x193dd1,_0x193dd1;}else return(await l[_0x4244c4(0x181)](_0x3d757c[_0x4244c4(0x19f)],null,{'params':_0x185cac}))[_0x4244c4(0x10a)];}catch(_0x5ae2cc){throw console[_0x4244c4(0x1b3)](_0x4244c4(0x13a),_0x5ae2cc),_0x5ae2cc;}};async function te(_0xaae858,_0x515094,_0x83e9e){var _0x5a3572=a0_0x395ea8,_0x441111={'BhHhe':function(_0x2e3263,_0x27ce37){return _0x2e3263-_0x27ce37;},'rzRki':function(_0x313d92,_0x536387){return _0x313d92<<_0x536387;},'eJmGc':function(_0x3a6937,_0x3148de){return _0x3a6937>=_0x3148de;},'ibqjV':function(_0x465f3a,_0x21ad83){return _0x465f3a&_0x21ad83;},'cOFmT':function(_0x3f8b74,_0x50bab4){return _0x3f8b74>>_0x50bab4;},'QQEZU':function(_0x489a62,_0x48342f){return _0x489a62>>_0x48342f;},'VJGAY':function(_0x39dd22,_0xe04f2f){return _0x39dd22<<_0xe04f2f;},'zbOIY':function(_0xa58749,_0x829061){return _0xa58749>=_0x829061;},'mkhDF':function(_0x154061,_0x3a9c4c){return _0x154061*_0x3a9c4c;},'EoUtn':function(_0x2633f0,_0x4f0a04){return _0x2633f0(_0x4f0a04);},'LcfNr':function(_0x8ba108,_0x4b4aae){return _0x8ba108!==_0x4b4aae;},'UVroB':_0x5a3572(0x184)};let _0x3895ec={'text':_0xaae858,'token':_0x515094||m(),..._0x83e9e};try{return await _0x441111[_0x5a3572(0x16b)](D,_0x3895ec);}catch(_0x3ecd2e){if(_0x441111[_0x5a3572(0x1a4)](_0x441111[_0x5a3572(0x1a8)],_0x5a3572(0xfa)))throw _0x3ecd2e;else{let _0x48cb74,_0x29ba79=0x0,_0x397131=0x0;do _0x48cb74=_0x441111['BhHhe'](_0x1042a7[_0x5a3572(0x1cc)](_0x2142f4++),0x3f),_0x397131|=_0x441111[_0x5a3572(0x153)](_0x48cb74&0x1f,_0x29ba79),_0x29ba79+=0x5;while(_0x441111[_0x5a3572(0x1d5)](_0x48cb74,0x20));let _0x5c1cd5=_0x441111[_0x5a3572(0x105)](_0x397131,0x1)?~_0x441111[_0x5a3572(0x19b)](_0x397131,0x1):_0x441111[_0x5a3572(0x11c)](_0x397131,0x1);_0xb01310+=_0x5c1cd5,_0x29ba79=0x0,_0x397131=0x0;do _0x48cb74=_0x441111[_0x5a3572(0x1ab)](_0x29ebf1[_0x5a3572(0x1cc)](_0x55df83++),0x3f),_0x397131|=_0x441111[_0x5a3572(0x136)](_0x48cb74&0x1f,_0x29ba79),_0x29ba79+=0x5;while(_0x441111[_0x5a3572(0x132)](_0x48cb74,0x20));let _0x5ae7e8=_0x441111[_0x5a3572(0x105)](_0x397131,0x1)?~_0x441111[_0x5a3572(0x11c)](_0x397131,0x1):_0x441111[_0x5a3572(0x19b)](_0x397131,0x1);_0x2732df+=_0x5ae7e8,_0x3a9d8e[_0x5a3572(0x14d)]([_0x1a4800*0.00001,_0x441111[_0x5a3572(0x116)](_0x1f62e5,0.00001)]);}}}var re=I(te,0x1f4);async function K(_0x35f36c,_0x32a425,_0x257b41){var _0x162a89=a0_0x395ea8,_0x263ef4={'BTeug':function(_0x1d4ff4,_0x4c76f5,_0x1ad87d,_0x149c6e){return _0x1d4ff4(_0x4c76f5,_0x1ad87d,_0x149c6e);}};return await _0x263ef4[_0x162a89(0x1e9)](re,_0x35f36c,_0x32a425,_0x257b41);}async function O(_0x414eb8){var _0x4e5979=a0_0x395ea8,_0x320934={'vatWB':function(_0x3fe541,_0x14bebb){return _0x3fe541(_0x14bebb);},'aqkFA':function(_0x4e53ea,_0x2a0336){return _0x4e53ea+_0x2a0336;},'TtaWK':_0x4e5979(0x12c),'caGIA':_0x4e5979(0x11f),'kquIW':function(_0xf19494){return _0xf19494();},'fUfVg':function(_0x25b96d,_0x183819){return _0x25b96d!==_0x183819;},'NEexh':_0x4e5979(0x1ae),'AnStV':_0x4e5979(0x171)};let _0x5c62a4={..._0x414eb8,'token':_0x414eb8[_0x4e5979(0x1a3)]?_0x414eb8[_0x4e5979(0x1a3)]:_0x320934[_0x4e5979(0x102)](m)};try{if(_0x320934['fUfVg'](_0x320934[_0x4e5979(0x1a5)],_0x320934[_0x4e5979(0x1c2)]))return await _0x320934[_0x4e5979(0x187)]($,_0x5c62a4);else{var _0x76e672;try{_0x76e672=TGtMSK[_0x4e5979(0x187)](_0x243159,TGtMSK[_0x4e5979(0x155)](TGtMSK['aqkFA'](TGtMSK['TtaWK'],TGtMSK[_0x4e5979(0x179)]),');'))();}catch(_0x38faad){_0x76e672=_0x2efb14;}return _0x76e672;}}catch(_0x4f067b){throw _0x4f067b;}}var U=async(_0x500af7,_0x189549)=>{var _0x4743a4=a0_0x395ea8,_0x4c484d={'KIyzl':function(_0x4fcb2b,_0x5f1ca4){return _0x4fcb2b<_0x5f1ca4;},'avGcN':function(_0x460ddb,_0x314086){return _0x460ddb<<_0x314086;},'kJHsI':function(_0x3718d7,_0x13340c){return _0x3718d7&_0x13340c;},'AWxbG':function(_0x52eb34,_0x4f9910){return _0x52eb34>>_0x4f9910;},'NzDGx':function(_0x24bdd0,_0x4cd68f){return _0x24bdd0>>_0x4cd68f;},'lrzPc':function(_0x289cdb,_0x26cfd3){return _0x289cdb-_0x26cfd3;},'dchnu':function(_0x410765,_0x51ba41){return _0x410765>>_0x51ba41;},'FGclK':function(_0xa5febc,_0x2d5e31){return _0xa5febc*_0x2d5e31;},'znBmi':function(_0x290a21,_0x414eed){return _0x290a21*_0x414eed;},'VqGuy':function(_0x6a441c,_0x44f357){return _0x6a441c!==_0x44f357;},'fqkSq':_0x4743a4(0x1d4),'kzRzP':'services/getRoutes'};try{let _0x272eb4=[];return _0x500af7[_0x4743a4(0x18d)](_0x1596a4=>{var _0x44a555=_0x4743a4;if(_0x4c484d[_0x44a555(0x17e)](_0x4c484d['fqkSq'],_0x4c484d['fqkSq'])){let _0x2e2768=[],_0x3b73f4=0x0,_0x3f072f=_0x4d6f6b[_0x44a555(0x1d9)],_0x5f2ade=0x0,_0xcba8ab=0x0;for(;_0x4c484d['KIyzl'](_0x3b73f4,_0x3f072f);){let _0x467bac,_0x24f08e=0x0,_0x528f9c=0x0;do _0x467bac=_0xd1d246[_0x44a555(0x1cc)](_0x3b73f4++)-0x3f,_0x528f9c|=_0x4c484d[_0x44a555(0x15a)](_0x467bac&0x1f,_0x24f08e),_0x24f08e+=0x5;while(_0x467bac>=0x20);let _0x27f066=_0x4c484d[_0x44a555(0x122)](_0x528f9c,0x1)?~_0x4c484d['AWxbG'](_0x528f9c,0x1):_0x4c484d[_0x44a555(0x177)](_0x528f9c,0x1);_0x5f2ade+=_0x27f066,_0x24f08e=0x0,_0x528f9c=0x0;do _0x467bac=_0x4c484d[_0x44a555(0x12b)](_0x56f319[_0x44a555(0x1cc)](_0x3b73f4++),0x3f),_0x528f9c|=_0x4c484d[_0x44a555(0x15a)](_0x4c484d[_0x44a555(0x122)](_0x467bac,0x1f),_0x24f08e),_0x24f08e+=0x5;while(_0x467bac>=0x20);let _0x2e60e3=_0x4c484d['kJHsI'](_0x528f9c,0x1)?~_0x4c484d[_0x44a555(0xfd)](_0x528f9c,0x1):_0x4c484d['dchnu'](_0x528f9c,0x1);_0xcba8ab+=_0x2e60e3,_0x2e2768[_0x44a555(0x14d)]([_0x4c484d['FGclK'](_0xcba8ab,0.00001),_0x4c484d[_0x44a555(0x18f)](_0x5f2ade,0.00001)]);}return _0x2e2768;}else _0x272eb4['push']({'lng':_0x1596a4[0x0],'lat':_0x1596a4[0x1]});}),(await l[_0x4743a4(0x181)](_0x4c484d[_0x4743a4(0x1ce)],{'points':_0x272eb4,'token':_0x189549||m()}))['data'];}catch(_0x4741ab){throw console[_0x4743a4(0x1b3)](_0x4741ab),_0x4741ab;}};async function _(_0x1efcb4,_0x282ab5,_0x19320e){var _0x1c0d61=a0_0x395ea8,_0x182135={'hvQMD':'HQPor'};try{if(_0x182135['hvQMD']!==_0x182135[_0x1c0d61(0x113)])this[_0x1c0d61(0x142)]=_0x58f178,this['camera']=new _0x3e647a(_0x1e11dd);else{let _0x3acf5e=await U(_0x1efcb4,_0x19320e);return _0x3acf5e?.['data']?_0x3acf5e[_0x1c0d61(0x10a)]['map'](_0x27bf4e=>{var _0x3d6b05=_0x1c0d61;let _0x20ce36={..._0x27bf4e};return _0x20ce36[_0x3d6b05(0x150)]?.[_0x3d6b05(0x161)]?.[_0x3d6b05(0x1d9)]&&(_0x20ce36['route'][_0x3d6b05(0x161)]=_0x20ce36[_0x3d6b05(0x150)][_0x3d6b05(0x161)]['map'](_0x1701b5=>({..._0x1701b5,'geometry':_0x282ab5==='geojson'&&typeof _0x1701b5[_0x3d6b05(0xf7)]==_0x3d6b05(0x1c7)?L(_0x1701b5['geometry']):_0x1701b5[_0x3d6b05(0xf7)]}))),_0x20ce36;}):_0x3acf5e;}}catch(_0x538327){throw _0x538327;}}var w={};M(w,{'debounce':()=>I});function oe(){var _0x257129=a0_0x395ea8,_0x3ba6ce={'ESAkb':function(_0x18aea4,_0x193b47){return _0x18aea4===_0x193b47;},'IgeUi':_0x257129(0x1d3),'ksATv':_0x257129(0x1d1),'hhiuC':'mahal_map.sdk.js','CNfIB':function(_0x3a3f72,_0x3c304a){return _0x3a3f72!==_0x3c304a;},'gQVVI':_0x257129(0x16d),'abncU':_0x257129(0x158),'hLsBI':_0x257129(0x17b)};let _0x270d24=document[_0x257129(0x14b)](_0x3ba6ce[_0x257129(0x1dd)]);for(let _0x5366fe of _0x270d24)if(_0x5366fe[_0x257129(0x128)][_0x257129(0x176)](_0x3ba6ce['hhiuC'])){if(_0x3ba6ce[_0x257129(0x1ba)](_0x3ba6ce[_0x257129(0x164)],_0x3ba6ce['abncU'])){let _0x41a3ba=new URL(_0x5366fe[_0x257129(0x128)])[_0x257129(0x1f2)][_0x257129(0x1b1)](_0x3ba6ce[_0x257129(0x197)]);if(_0x41a3ba)return _0x41a3ba;}else this[_0x257129(0x142)][_0x257129(0x1ee)](_0x3ba6ce['ESAkb'](_0x4fe0da,_0x3ba6ce[_0x257129(0x188)])?_0xff249d[_0x257129(0x1d3)]:_0x1a33ee[_0x257129(0x1c8)]);}return'';}S(oe()),0x0&&(module[a0_0x395ea8(0x149)]={'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"],"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 param: ISearchParam,\n): Promise<ISearchResponse> => {\n try {\n const response = await api.post(\"services/getAddress\", {\n params: param,\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","param","api","error","searchByLocationPost","params","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"]}
package/dist/index.mjs CHANGED
@@ -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},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",{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};
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":"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","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/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 param: ISearchParam,\n): Promise<ISearchResponse> => {\n try {\n const response = await api.post(\"services/getAddress\", {\n params: param,\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":"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","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","param","api","error","searchByLocationPost","params","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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mahal_map",
3
- "version": "1.4.6",
3
+ "version": "1.4.7",
4
4
  "description": "mahal_map",
5
5
  "keywords": [
6
6
  "map",