mahal_map 1.3.6 → 1.3.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- 'use strict';var a0_0x591421=a0_0x43b2;(function(_0x190796,_0x509c0b){var _0x1e4506=a0_0x43b2,_0x3224b9=_0x190796();while(!![]){try{var _0x1df4e3=parseInt(_0x1e4506(0x16d))/0x1+parseInt(_0x1e4506(0x171))/0x2*(-parseInt(_0x1e4506(0x140))/0x3)+parseInt(_0x1e4506(0x1c4))/0x4*(parseInt(_0x1e4506(0x15a))/0x5)+parseInt(_0x1e4506(0x190))/0x6+parseInt(_0x1e4506(0x1be))/0x7+parseInt(_0x1e4506(0x19b))/0x8*(parseInt(_0x1e4506(0x19d))/0x9)+parseInt(_0x1e4506(0x1bb))/0xa*(-parseInt(_0x1e4506(0x1c5))/0xb);if(_0x1df4e3===_0x509c0b)break;else _0x3224b9['push'](_0x3224b9['shift']());}catch(_0x4aa11a){_0x3224b9['push'](_0x3224b9['shift']());}}}(a0_0x2491,0xe1741));var j=Object['create'],h=Object[a0_0x591421(0x1b1)],F=Object['getOwnPropertyDescriptor'],N=Object[a0_0x591421(0x180)],O=Object[a0_0x591421(0x19e)],U=Object[a0_0x591421(0x18e)]['hasOwnProperty'],w=(_0x3aaa05,_0x1f1036)=>{var _0x11ceb5={'rMiht':function(_0x5a5281,_0x1e2eed,_0x1d2cad,_0x30a303){return _0x5a5281(_0x1e2eed,_0x1d2cad,_0x30a303);}};for(var _0x4a99e3 in _0x1f1036)_0x11ceb5['rMiht'](h,_0x3aaa05,_0x4a99e3,{'get':_0x1f1036[_0x4a99e3],'enumerable':!0x0});},C=(_0x14c3d2,_0x14695f,_0x45b90d,_0x54d738)=>{var _0x591f1a=a0_0x591421,_0x22d3b1={'bkwnl':function(_0x82fe7c,_0x599c41){return _0x82fe7c==_0x599c41;},'QkcdB':_0x591f1a(0x192),'gRwVh':function(_0x379947,_0x2988e1){return _0x379947==_0x2988e1;},'inZIC':_0x591f1a(0x194),'AcQXE':function(_0x56af49,_0x487126){return _0x56af49(_0x487126);},'spLwr':function(_0x5ea1de,_0x3315b8){return _0x5ea1de!==_0x3315b8;},'OwiSv':function(_0x3bca8a,_0x2ea76f,_0x279e4f,_0x3eac1b){return _0x3bca8a(_0x2ea76f,_0x279e4f,_0x3eac1b);},'rAIBl':function(_0x536bff,_0x2d0ee4,_0x2f6de1){return _0x536bff(_0x2d0ee4,_0x2f6de1);}};if(_0x14695f&&_0x22d3b1[_0x591f1a(0x16c)](typeof _0x14695f,_0x22d3b1[_0x591f1a(0x151)])||_0x22d3b1[_0x591f1a(0x1a6)](typeof _0x14695f,_0x22d3b1['inZIC'])){for(let _0x55f368 of _0x22d3b1[_0x591f1a(0x18c)](N,_0x14695f))!U[_0x591f1a(0x1b8)](_0x14c3d2,_0x55f368)&&_0x22d3b1[_0x591f1a(0x1d3)](_0x55f368,_0x45b90d)&&_0x22d3b1[_0x591f1a(0x182)](h,_0x14c3d2,_0x55f368,{'get':()=>_0x14695f[_0x55f368],'enumerable':!(_0x54d738=_0x22d3b1['rAIBl'](F,_0x14695f,_0x55f368))||_0x54d738[_0x591f1a(0x1d9)]});}return _0x14c3d2;},$=(_0x219f4c,_0x154644,_0x1247f9)=>(_0x1247f9=_0x219f4c!=null?j(O(_0x219f4c)):{},C(_0x154644||!_0x219f4c||!_0x219f4c[a0_0x591421(0x13b)]?h(_0x1247f9,a0_0x591421(0x1af),{'value':_0x219f4c,'enumerable':!0x0}):_0x1247f9,_0x219f4c)),Z=_0x5c2e0d=>C(h({},a0_0x591421(0x13b),{'value':!0x0}),_0x5c2e0d),V={};w(V,{'MahalMap':()=>g,'MahalMapDefaultMarker':()=>f,'Router':()=>K,'Search':()=>G,'keyUtils':()=>b}),module[a0_0x591421(0x12c)]=Z(V);var v=a0_0x591421(0x150),T=a0_0x591421(0x1aa),S=a0_0x591421(0x14a),k='https://mtile.gram.tj/custom-styles/style_maptiler_basic_hn.json';function P(_0x1bbe68){var _0x24082a=a0_0x591421,_0x6372ee={'LyqSG':function(_0x190328,_0xa07dd5){return _0x190328<_0xa07dd5;},'MWmXe':function(_0x2ff4e8,_0x56fe2d){return _0x2ff4e8-_0x56fe2d;},'CqMgO':function(_0x5592d7,_0x4aa107){return _0x5592d7<<_0x4aa107;},'RnLhD':function(_0x3b05f1,_0x3409d9){return _0x3b05f1&_0x3409d9;},'Epadr':function(_0x44429c,_0x184fe3){return _0x44429c>>_0x184fe3;},'IhTzN':function(_0x2232ff,_0xcd246d){return _0x2232ff>>_0xcd246d;},'nyYPj':function(_0x1e603b,_0x429f12){return _0x1e603b&_0x429f12;},'YhYbc':function(_0x2e6a00,_0x163502){return _0x2e6a00>=_0x163502;},'omOJs':function(_0x1ddde8,_0x32fe41){return _0x1ddde8>>_0x32fe41;},'Pywue':function(_0xec4aef,_0xf1c43e){return _0xec4aef*_0xf1c43e;}};let _0x4d2b4d=[],_0x157246=0x0,_0x44f8cd=_0x1bbe68[_0x24082a(0x19a)],_0x30c242=0x0,_0x5f5aa2=0x0;for(;_0x6372ee[_0x24082a(0x15b)](_0x157246,_0x44f8cd);){let _0x3082be,_0x21bc39=0x0,_0x20aec8=0x0;do _0x3082be=_0x6372ee['MWmXe'](_0x1bbe68[_0x24082a(0x134)](_0x157246++),0x3f),_0x20aec8|=_0x6372ee['CqMgO'](_0x6372ee[_0x24082a(0x18f)](_0x3082be,0x1f),_0x21bc39),_0x21bc39+=0x5;while(_0x3082be>=0x20);let _0x83be20=_0x6372ee[_0x24082a(0x18f)](_0x20aec8,0x1)?~_0x6372ee['Epadr'](_0x20aec8,0x1):_0x6372ee[_0x24082a(0x126)](_0x20aec8,0x1);_0x30c242+=_0x83be20,_0x21bc39=0x0,_0x20aec8=0x0;do _0x3082be=_0x6372ee['MWmXe'](_0x1bbe68['charCodeAt'](_0x157246++),0x3f),_0x20aec8|=_0x6372ee[_0x24082a(0x14b)](_0x6372ee[_0x24082a(0x166)](_0x3082be,0x1f),_0x21bc39),_0x21bc39+=0x5;while(_0x6372ee['YhYbc'](_0x3082be,0x20));let _0x43160d=_0x6372ee[_0x24082a(0x18f)](_0x20aec8,0x1)?~_0x6372ee['omOJs'](_0x20aec8,0x1):_0x20aec8>>0x1;_0x5f5aa2+=_0x43160d,_0x4d2b4d['push']([_0x6372ee[_0x24082a(0x16b)](_0x5f5aa2,0.00001),_0x6372ee[_0x24082a(0x16b)](_0x30c242,0.00001)]);}return _0x4d2b4d;}var c=class{constructor(_0x100538){var _0x228ae0=a0_0x591421;this[_0x228ae0(0x12b)]=_0x100538;}['setZoom'](_0x322c94,_0x218bf0=!0x0){var _0x157522=a0_0x591421;_0x218bf0?this[_0x157522(0x12b)][_0x157522(0x186)]({'zoom':_0x322c94}):this[_0x157522(0x12b)][_0x157522(0x143)](_0x322c94);}[a0_0x591421(0x163)](_0x1f6b95,_0x2e5779=!0x0){var _0x395e0d=a0_0x591421;_0x2e5779?this[_0x395e0d(0x12b)][_0x395e0d(0x186)]({'bearing':_0x1f6b95}):this['map']['setBearing'](_0x1f6b95);}['setPitch'](_0x555e0c,_0x23ed92=!0x0){var _0x11f17d=a0_0x591421;_0x23ed92?this[_0x11f17d(0x12b)]['easeTo']({'pitch':_0x555e0c}):this['map'][_0x11f17d(0x15d)](_0x555e0c);}[a0_0x591421(0x198)](_0xaf3347){var _0x251f2=a0_0x591421;this[_0x251f2(0x12b)][_0x251f2(0x186)]({'pitch':_0xaf3347?0x3c:0x0,'bearing':_0xaf3347?this[_0x251f2(0x12b)][_0x251f2(0x164)]():0x0,'duration':0x320});}['resetNorth'](){var _0x4fc029=a0_0x591421;this[_0x4fc029(0x12b)][_0x4fc029(0x186)]({'bearing':0x0,'pitch':0x0,'duration':0x258});}[a0_0x591421(0x1cf)](_0x1b634d){var _0x511466=a0_0x591421;this[_0x511466(0x12b)]['flyTo']({'speed':1.2,'curve':1.42,'essential':!0x0,..._0x1b634d});}[a0_0x591421(0x17c)](){var _0x17c573=a0_0x591421;return this[_0x17c573(0x12b)][_0x17c573(0x17c)]();}},E=(_0x374ca1,_0x1eb701)=>a0_0x591421(0x142)+(_0x374ca1||a0_0x591421(0x195))+a0_0x591421(0x18d)+(_0x374ca1||'#278960')+a0_0x591421(0x1b4)+(_0x1eb701??'')+a0_0x591421(0x13e),f=class{constructor(_0x57a265){var _0x36761a=a0_0x591421;this['props']=_0x57a265,this['element']=this[_0x36761a(0x159)]();}['createElement'](){var _0x2bfd51=a0_0x591421,_0x3f6f43={'YDTFi':_0x2bfd51(0x17f),'beitg':function(_0x47cb5f,_0x4cc585,_0x3e76cf){return _0x47cb5f(_0x4cc585,_0x3e76cf);}};let _0x46d4dd=document['createElement'](_0x3f6f43['YDTFi']);_0x46d4dd[_0x2bfd51(0x191)][_0x2bfd51(0x1a1)]=_0x2bfd51(0x196);let _0x43f3d6=this[_0x2bfd51(0x15e)]['svg']?this[_0x2bfd51(0x1b2)](this[_0x2bfd51(0x15e)]['svg']):_0x3f6f43[_0x2bfd51(0x1c7)](E,this[_0x2bfd51(0x15e)]['color']??_0x2bfd51(0x195),this['props'][_0x2bfd51(0x133)]);return _0x46d4dd[_0x2bfd51(0x152)]=_0x43f3d6,this[_0x2bfd51(0x15e)][_0x2bfd51(0x1d8)]&&(_0x46d4dd[_0x2bfd51(0x1d8)]=!0x0),_0x46d4dd;}[a0_0x591421(0x1b2)](_0x3924c5){var _0x37ed86=a0_0x591421;return this[_0x37ed86(0x15e)]['color']?_0x3924c5[_0x37ed86(0x124)](/fill="[^"]*"/g,_0x37ed86(0x1a7)+this[_0x37ed86(0x15e)]['color']+'\x22'):_0x3924c5;}[a0_0x591421(0x162)](){var _0x5616de=a0_0x591421;return this[_0x5616de(0x1d0)];}[a0_0x591421(0x148)](){var _0x728145=a0_0x591421;return this[_0x728145(0x15e)][_0x728145(0x169)];}[a0_0x591421(0x161)](){var _0x439f0c=a0_0x591421;return!!this[_0x439f0c(0x15e)][_0x439f0c(0x1d8)];}[a0_0x591421(0x121)](){var _0x474f2f=a0_0x591421,_0x278bdc={'GYFBM':_0x474f2f(0x1ba)};return this['props'][_0x474f2f(0x12d)]||_0x278bdc[_0x474f2f(0x1b5)];}};function a0_0x43b2(_0x5a76fc,_0x2c313e){var _0xca3518=a0_0x2491();return a0_0x43b2=function(_0x5a1521,_0x2e4525){_0x5a1521=_0x5a1521-0x120;var _0x589a9f=_0xca3518[_0x5a1521];return _0x589a9f;},a0_0x43b2(_0x5a76fc,_0x2c313e);}function A(_0x464123,_0x4f6d61,_0x4c5ab1){var _0xa4fe7c=a0_0x591421,_0x118b57={'nQoLy':_0xa4fe7c(0x1ba)};return new _0x464123[(_0xa4fe7c(0x19c))]({'element':_0x4c5ab1[_0xa4fe7c(0x162)](),'draggable':_0x4c5ab1[_0xa4fe7c(0x161)]?.()??!0x1,'anchor':_0x4c5ab1[_0xa4fe7c(0x121)]?.()??_0x118b57[_0xa4fe7c(0x184)]})[_0xa4fe7c(0x131)](_0x4c5ab1[_0xa4fe7c(0x148)]())['addTo'](_0x4f6d61);}var d={'dark':T,'light':S},n=class n{constructor(){var _0x4fd6e3=a0_0x591421;this[_0x4fd6e3(0x135)]=!0x1,this['readyCallbacks']=[];}static[a0_0x591421(0x1ae)](_0x120116,_0xd92f6a){var _0xd0dda1=a0_0x591421,_0x1963c5={'AxGXI':_0xd0dda1(0x146),'mmdDK':function(_0x5e42a5,_0x1c157f){return _0x5e42a5===_0x1c157f;},'sGZBh':_0xd0dda1(0x17b),'lwjQT':_0xd0dda1(0x12b),'vwczs':function(_0x5806a9,_0x78acb9){return _0x5806a9!==_0x78acb9;},'gXBeB':_0xd0dda1(0x157)};if(n['instance'])return n[_0xd0dda1(0x141)];let _0x36622e=window[_0xd0dda1(0x13c)]||_0xd92f6a;if(!_0x36622e)throw new Error(_0x1963c5[_0xd0dda1(0x129)]);let _0x197c4b=_0x120116['autoAddVectorSource']?k:_0x120116[_0xd0dda1(0x191)]?_0x120116['style']:_0x1963c5[_0xd0dda1(0x1b0)](_0x120116[_0xd0dda1(0x1a5)],_0x1963c5['sGZBh'])?d['dark']:d[_0xd0dda1(0x128)],_0x510260=new n();return _0x510260[_0xd0dda1(0x123)]=_0x120116,_0x510260[_0xd0dda1(0x1c6)]=_0x36622e,_0x510260[_0xd0dda1(0x12b)]=new _0x36622e[(_0xd0dda1(0x1c3))]({'container':_0x120116[_0xd0dda1(0x189)]||_0x1963c5[_0xd0dda1(0x1d1)],'style':_0x197c4b,'center':_0x120116[_0xd0dda1(0x1ba)]||[69.624024,40.279687],'zoom':_0x120116['zoom']||0x5,'attributionControl':_0x1963c5['vwczs'](_0x120116[_0xd0dda1(0x1bf)],!0x1)}),_0x510260[_0xd0dda1(0x12b)]['on'](_0x1963c5[_0xd0dda1(0x1b7)],()=>{var _0x3e22ce=_0xd0dda1;_0x510260[_0x3e22ce(0x135)]=!0x0,_0x510260['camera']=new c(_0x510260['map']),_0x510260[_0x3e22ce(0x127)][_0x3e22ce(0x181)](_0x284c61=>_0x284c61(_0x510260[_0x3e22ce(0x12b)])),_0x510260['readyCallbacks']=[];}),n['instance']=_0x510260,_0x510260;}static[a0_0x591421(0x1ca)](_0x37b561){var _0x359d52=a0_0x591421,_0x3042d4={'JwerN':_0x359d52(0x1bd),'TLVrm':function(_0x45c59e,_0x1a351c){return _0x45c59e(_0x1a351c);}};let _0x2c65c2=n[_0x359d52(0x141)];if(!_0x2c65c2)throw new Error(_0x3042d4[_0x359d52(0x13f)]);_0x2c65c2['isReady']?_0x3042d4[_0x359d52(0x149)](_0x37b561,_0x2c65c2[_0x359d52(0x12b)]):_0x2c65c2['readyCallbacks'][_0x359d52(0x17d)](_0x37b561);}static['getInstance'](){var _0x3c6272=a0_0x591421,_0x380cfc={'aqnVA':'[MahalMap\x20SDK]\x20Карта\x20ещё\x20не\x20создана'};if(!n[_0x3c6272(0x141)])throw new Error(_0x380cfc[_0x3c6272(0x172)]);return n[_0x3c6272(0x141)];}[a0_0x591421(0x1bc)](_0x2cf5c5){var _0x2e517a=a0_0x591421,_0xdc3486={'hStDl':function(_0x27d666,_0x2bab23,_0x4825ca,_0x269c63){return _0x27d666(_0x2bab23,_0x4825ca,_0x269c63);}};return _0xdc3486[_0x2e517a(0x1c2)](A,this[_0x2e517a(0x1c6)],this[_0x2e517a(0x12b)],_0x2cf5c5);}['init'](_0x16ecf7){var _0x3db13c=a0_0x591421;this[_0x3db13c(0x12b)]=_0x16ecf7,this['camera']=new c(_0x16ecf7);}[a0_0x591421(0x1c8)](){var _0x1c4091=a0_0x591421;return this[_0x1c4091(0x14c)];}['getMap'](){var _0x220ccd=a0_0x591421;return this[_0x220ccd(0x12b)];}['setStyle'](_0x9af0b5){var _0x5e7e5a=a0_0x591421,_0x189355={'oInDv':function(_0x5870ee,_0x178e10){return _0x5870ee===_0x178e10;}};this[_0x5e7e5a(0x12b)][_0x5e7e5a(0x158)](_0x189355[_0x5e7e5a(0x18b)](_0x9af0b5,'dark')?d[_0x5e7e5a(0x17b)]:d[_0x5e7e5a(0x128)]);}[a0_0x591421(0x197)](_0x4a17e1){var _0x3b42a3=a0_0x591421;this[_0x3b42a3(0x12b)][_0x3b42a3(0x197)](_0x4a17e1);}[a0_0x591421(0x143)](_0x1db648){var _0x46a681=a0_0x591421;this[_0x46a681(0x12b)]['setZoom'](_0x1db648);}[a0_0x591421(0x16e)](){var _0x370863=a0_0x591421;this[_0x370863(0x12b)][_0x370863(0x12a)](),n['instance']=null;}};n['instance']=null;var g=n,I=$(require(a0_0x591421(0x160))),m=I[a0_0x591421(0x1af)]['create']({'baseURL':v});m[a0_0x591421(0x1cc)][a0_0x591421(0x1d7)][a0_0x591421(0x1a3)](_0x580b0b=>_0x580b0b,_0x116a81=>(_0x116a81['request']?.[a0_0x591421(0x145)]===0x191&&y(),Promise[a0_0x591421(0x174)](_0x116a81)));var b={};w(b,{'clearKey':()=>y,'getApiKey':()=>u,'saveKey':()=>x});var M='';function x(_0x3379d2){var _0x2352e7=a0_0x591421;_0x3379d2!==''&&(M=_0x3379d2,m['defaults'][_0x2352e7(0x1d6)][_0x2352e7(0x1d4)]['Authorization']=_0x2352e7(0x179)+_0x3379d2);}function y(){var _0x314202=a0_0x591421,_0xbf3c65={'HMklb':function(_0x1b1195,_0x36d5eb){return _0x1b1195+_0x36d5eb;},'ruRJl':'{}.constructor(\x22return\x20this\x22)(\x20)','kvyRH':_0x314202(0x1ad),'qtrxm':function(_0x275d59){return _0x275d59();},'EXxFT':_0x314202(0x165),'KElcO':_0x314202(0x1a0),'dHdnG':_0x314202(0x177),'phPoK':_0x314202(0x19f),'xsZhP':_0x314202(0x16a),'wbApT':function(_0x374bed,_0x54b14a){return _0x374bed<_0x54b14a;},'vgOkW':function(_0x502d1e,_0x326917,_0x494fba){return _0x502d1e(_0x326917,_0x494fba);}},_0x43bc6d=(function(){var _0x182c34=!![];return function(_0x13a4a9,_0x5d6295){var _0x587786=_0x182c34?function(){var _0xbfe303=a0_0x43b2;if(_0x5d6295){var _0x4c6634=_0x5d6295[_0xbfe303(0x176)](_0x13a4a9,arguments);return _0x5d6295=null,_0x4c6634;}}:function(){};return _0x182c34=![],_0x587786;};}()),_0x6a2823=_0xbf3c65[_0x314202(0x137)](_0x43bc6d,this,function(){var _0x59c119=_0x314202,_0x487b20=function(){var _0x4a5850=a0_0x43b2,_0x3206bc;try{_0x3206bc=Function(_0xbf3c65[_0x4a5850(0x1b3)](_0xbf3c65[_0x4a5850(0x1b3)](_0x4a5850(0x12e),_0xbf3c65[_0x4a5850(0x1d5)]),');'))();}catch(_0x5d0bdd){_0x4a5850(0x1ad)!==_0xbf3c65['kvyRH']?_0x3a2f93=_0x333c05:_0x3206bc=window;}return _0x3206bc;},_0x2307be=_0xbf3c65[_0x59c119(0x1ab)](_0x487b20),_0x113964=_0x2307be['console']=_0x2307be['console']||{},_0x2b44b9=[_0xbf3c65[_0x59c119(0x187)],_0xbf3c65['KElcO'],'info',_0xbf3c65[_0x59c119(0x13a)],_0xbf3c65[_0x59c119(0x1cb)],_0x59c119(0x14d),_0xbf3c65[_0x59c119(0x1ce)]];for(var _0x525317=0x0;_0xbf3c65[_0x59c119(0x168)](_0x525317,_0x2b44b9[_0x59c119(0x19a)]);_0x525317++){var _0xe07195=_0x43bc6d[_0x59c119(0x1d2)][_0x59c119(0x18e)][_0x59c119(0x1b6)](_0x43bc6d),_0x2d3965=_0x2b44b9[_0x525317],_0xc53273=_0x113964[_0x2d3965]||_0xe07195;_0xe07195[_0x59c119(0x1cd)]=_0x43bc6d['bind'](_0x43bc6d),_0xe07195[_0x59c119(0x17e)]=_0xc53273[_0x59c119(0x17e)][_0x59c119(0x1b6)](_0xc53273),_0x113964[_0x2d3965]=_0xe07195;}});_0xbf3c65[_0x314202(0x1ab)](_0x6a2823),(M='',m[_0x314202(0x167)][_0x314202(0x1d6)]['common'][_0x314202(0x156)]='');}var u=()=>M;function L(_0x190346,_0x5e3d8b){var _0x40b728={'YbvKE':function(_0x2862e0,..._0x41a736){return _0x2862e0(..._0x41a736);},'UJZgP':function(_0x8325db,_0x351d42){return _0x8325db(_0x351d42);},'mExDY':function(_0x3d4136,_0x1f32b2,_0x1c992){return _0x3d4136(_0x1f32b2,_0x1c992);}};let _0x538fc1;return(..._0x6728ce)=>(_0x538fc1&&clearTimeout(_0x538fc1),new Promise(_0x56e030=>{var _0x53d9de=a0_0x43b2;_0x538fc1=_0x40b728[_0x53d9de(0x18a)](setTimeout,async()=>{var _0x2a0102=_0x53d9de,_0x41e38f=await _0x40b728[_0x2a0102(0x1b9)](_0x190346,..._0x6728ce);_0x40b728[_0x2a0102(0x178)](_0x56e030,_0x41e38f);},_0x5e3d8b);}));}var R=async _0x12cc04=>{var _0x223deb=a0_0x591421,_0x5c2fa4={'ReAUj':_0x223deb(0x154)};try{return(await m['post'](_0x223deb(0x155),_0x12cc04))[_0x223deb(0x14f)];}catch(_0x14a758){throw console[_0x223deb(0x177)](_0x5c2fa4['ReAUj'],_0x14a758),_0x14a758;}};async function H(_0x2f0492,_0x16f5ca,_0x3f6b49){var _0x30e76f=a0_0x591421,_0x301337={'uozTs':function(_0x21f573){return _0x21f573();}};let _0x3198b6={'text':_0x2f0492,'token':_0x16f5ca||_0x301337[_0x30e76f(0x147)](u),..._0x3f6b49};try{return await R(_0x3198b6);}catch(_0x58ae18){throw _0x58ae18;}}var X=L(H,0x1f4);async function G(_0x3ea140,_0x2a6890,_0x5ab80d){return await X(_0x3ea140,_0x2a6890,_0x5ab80d);}var B=async(_0x4455ad,_0x579f1d)=>{var _0x14654a=a0_0x591421,_0x2873f3={'Dmyep':function(_0xda0271,_0x4bc69a){return _0xda0271===_0x4bc69a;},'cvanF':_0x14654a(0x173),'oJxBd':_0x14654a(0x185),'AtSYW':function(_0x4dd811){return _0x4dd811();}};try{let _0x34afa3=[];return _0x4455ad['forEach'](_0x325647=>{var _0x10b4bc=_0x14654a;_0x2873f3[_0x10b4bc(0x1c9)](_0x2873f3[_0x10b4bc(0x125)],_0x10b4bc(0x173))?_0x34afa3[_0x10b4bc(0x17d)]({'lng':_0x325647[0x0],'lat':_0x325647[0x1]}):(this[_0x10b4bc(0x15e)]=_0x84b5c9,this[_0x10b4bc(0x1d0)]=this[_0x10b4bc(0x159)]());}),(await m[_0x14654a(0x138)](_0x2873f3[_0x14654a(0x1c1)],{'points':_0x34afa3,'token':_0x579f1d||_0x2873f3[_0x14654a(0x183)](u)}))['data'];}catch(_0x1b832e){throw console['error'](_0x1b832e),_0x1b832e;}};function a0_0x2491(){var _0x262cd5=['request','draggable','enumerable','QTOOv','getAnchor','GWEDC','options','replace','cvanF','IhTzN','readyCallbacks','light','AxGXI','remove','map','exports','anchor','return\x20(function()\x20','routes','birlw','setLngLat','KPFzc','innerSvg','charCodeAt','isReady','route','vgOkW','post','getElementsByTagName','dHdnG','__esModule','maplibregl','searchParams','\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>','JwerN','1484886jtwZFi','instance','<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','setZoom','iGUbv','status','[MahalMap\x20SDK]\x20MapLibre\x20GL\x20не\x20найден.\x20Передай\x20его\x20вторым\x20аргументом\x20или\x20подключи\x20через\x20script.','uozTs','getCoordinates','TLVrm','https://mtile.gram.tj/custom-styles/mapstyle.json','CqMgO','camera','table','mahal_map.sdk.js','data','https://platform.mahal.tj/api/','QkcdB','innerHTML','eTXRq','Ошибка\x20при\x20поиске\x20адреса:','services/getAddress','Authorization','load','setStyle','createElement','1585975KsjqPx','LyqSG','geojson','setPitch','props','XhIGi','axios','isDraggable','getElement','setBearing','getBearing','log','nyYPj','defaults','wbApT','coordinates','trace','Pywue','bkwnl','1614175YjARSX','destroy','geometry','src','2megzGM','aqnVA','BsbrO','reject','script','apply','error','UJZgP','Bearer\x20','nkyNp','dark','getPitch','push','toString','div','getOwnPropertyNames','forEach','OwiSv','AtSYW','nQoLy','services/getRoutes','easeTo','EXxFT','get','container','mExDY','oInDv','AcQXE','\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','prototype','RnLhD','10180506cbemsi','style','object','lZddK','function','#278960','pointer','setCenter','toggle3D','string','length','1288624ZEFGIL','Marker','9jggRvG','getPrototypeOf','exception','warn','cursor','MTZFK','use','includes','theme','gRwVh','fill=\x22','WFzWt','apikey','https://mtile.gram.tj/custom-styles/dark-style.json','qtrxm','UtVlk','ohAvA','create','default','mmdDK','defineProperty','applyColorToCustomSvg','HMklb','\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','GYFBM','bind','gXBeB','call','YbvKE','center','20ydIiRX','addMarker','[MahalMap\x20SDK]\x20Карта\x20ещё\x20не\x20создана','4333238ZhlDvA','attributionControl','fDhje','oJxBd','hStDl','Map','4vhBDjv','16443977esywzP','maplibre','beitg','getCamera','Dmyep','onReady','phPoK','interceptors','__proto__','xsZhP','flyTo','element','lwjQT','constructor','spLwr','common','ruRJl','headers'];a0_0x2491=function(){return _0x262cd5;};return a0_0x2491();}async function K(_0x4b2a0e,_0x3aeae5,_0x5e2f80){var _0x21575b=a0_0x591421,_0x2225a6={'QTOOv':function(_0x10e40a,_0x2b6ad9){return _0x10e40a!==_0x2b6ad9;},'nkyNp':function(_0x2a1bbc,_0x202601){return _0x2a1bbc!==_0x202601;},'KPFzc':_0x21575b(0x193),'fDhje':_0x21575b(0x1a2),'GWEDC':function(_0x3fb829,_0x152217){return _0x3fb829===_0x152217;},'UtVlk':_0x21575b(0x153),'gTAcX':function(_0x3eb399,_0xa22d97,_0x2eb748){return _0x3eb399(_0xa22d97,_0x2eb748);}};try{if(_0x2225a6[_0x21575b(0x122)](_0x2225a6[_0x21575b(0x1ac)],_0x21575b(0x153))){let _0x11990f=await _0x2225a6['gTAcX'](B,_0x4b2a0e,_0x5e2f80);return _0x11990f?.['data']?_0x11990f['data'][_0x21575b(0x12b)](_0x502bbe=>{var _0x203528=_0x21575b,_0x5dc89e={'iGUbv':function(_0x3dd908,_0x12198a){var _0x2b44a7=a0_0x43b2;return _0x2225a6[_0x2b44a7(0x120)](_0x3dd908,_0x12198a);}};if(_0x2225a6[_0x203528(0x17a)](_0x2225a6[_0x203528(0x132)],_0x2225a6[_0x203528(0x1c0)])){let _0x375705={..._0x502bbe};return _0x375705['route']?.[_0x203528(0x12f)]?.['length']&&(_0x375705['route'][_0x203528(0x12f)]=_0x375705[_0x203528(0x136)][_0x203528(0x12f)][_0x203528(0x12b)](_0x266ab2=>({..._0x266ab2,'geometry':_0x3aeae5===_0x203528(0x15c)&&typeof _0x266ab2[_0x203528(0x16f)]==_0x203528(0x199)?P(_0x266ab2[_0x203528(0x16f)]):_0x266ab2[_0x203528(0x16f)]}))),_0x375705;}else _0x5dc89e[_0x203528(0x144)](_0x439ee8,'')&&(_0x48270b=_0x4d8011,_0x2ac043[_0x203528(0x167)][_0x203528(0x1d6)][_0x203528(0x1d4)][_0x203528(0x156)]=_0x203528(0x179)+_0x3a3a79);}):_0x11990f;}else this[_0x21575b(0x12b)]=_0x5c789a,this[_0x21575b(0x14c)]=new _0x3d63b2(_0xd51713);}catch(_0x10d52d){throw _0x10d52d;}}function z(){var _0x11ba6d=a0_0x591421,_0xb335ba={'WFzWt':_0x11ba6d(0x175),'birlw':_0x11ba6d(0x14e),'XhIGi':_0x11ba6d(0x1a9)};let _0x5e6d36=document[_0x11ba6d(0x139)](_0xb335ba[_0x11ba6d(0x1a8)]);for(let _0x5794b2 of _0x5e6d36)if(_0x5794b2[_0x11ba6d(0x170)][_0x11ba6d(0x1a4)](_0xb335ba[_0x11ba6d(0x130)])){let _0x46c6c9=new URL(_0x5794b2[_0x11ba6d(0x170)])[_0x11ba6d(0x13d)][_0x11ba6d(0x188)](_0xb335ba[_0x11ba6d(0x15f)]);if(_0x46c6c9)return _0x46c6c9;}return'';}x(z()),0x0&&(module[a0_0x591421(0x12c)]={'MahalMap':MahalMap,'MahalMapDefaultMarker':MahalMapDefaultMarker,'Router':Router,'Search':Search,'keyUtils':keyUtils});
1
+ 'use strict';var a0_0x3ce5ef=a0_0x386b;(function(_0x1676ea,_0x146b1c){var _0x53b1a8=a0_0x386b,_0x2f2253=_0x1676ea();while(!![]){try{var _0x5e9379=-parseInt(_0x53b1a8(0xce))/0x1*(parseInt(_0x53b1a8(0x72))/0x2)+parseInt(_0x53b1a8(0x116))/0x3+-parseInt(_0x53b1a8(0xd6))/0x4*(-parseInt(_0x53b1a8(0x10d))/0x5)+parseInt(_0x53b1a8(0x10a))/0x6*(-parseInt(_0x53b1a8(0xbf))/0x7)+-parseInt(_0x53b1a8(0x75))/0x8+parseInt(_0x53b1a8(0xb4))/0x9+parseInt(_0x53b1a8(0xcc))/0xa;if(_0x5e9379===_0x146b1c)break;else _0x2f2253['push'](_0x2f2253['shift']());}catch(_0xf69e35){_0x2f2253['push'](_0x2f2253['shift']());}}}(a0_0x146d,0x90ec3));function a0_0x146d(){var _0x410c32=['trace','ynuJp','wPbNZ','innerHTML','qqCZP','getElementsByTagName','rtcdH','services/getRoutes','div','kgsrm','ReWSm','length','zMohK','anchor','jcrAQ','default','create','dRykh','setLngLat','setZoom','\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','getInstance','mahal_map.sdk.js','getPrototypeOf','BjXIP','__esModule','style','ttInn','Bearer\x20','resetNorth','toString','object','getBearing','map','dODvY','script','common','caAyn','GVavr','#278960','kLfSS','DVHbY','getOwnPropertyDescriptor','instance','OVLVr','setCenter','IvCIA','ZfTCF','maplibre','autoAddVectorSource','[MahalMap\x20SDK]\x20Карта\x20ещё\x20не\x20создана','data','status','__proto__','YSgUw','meIGU','getCamera','https://mtile.gram.tj/custom-styles/mapstyle.json','remove','2241180XDRyxY','exception','BnBdr','LPWmP','post','qzFPX','createElement','camera','zdNal','qgSuy','getCoordinates','126mGCGMA','flyTo','table','riMXP','isDraggable','use','iAbmA','readyCallbacks','NzDLw','eYqMo','mWscc','RKhds','mXXoA','16779600QdLvzF','lLVnp','4459jSBBEp','axios','includes','onReady','push','draggable','AQNGM','vwNdt','26884zNteJi','src','addTo','replace','applyColorToCustomSvg','nahET','MxKLd','hasOwnProperty','center','wapZa','element','wvMiG','apply','isReady','HUkgR','getPitch','OojyH','SboDR','Map','coordinates','DbvWg','dark','zoom','light','ANQVy','request','bind','get','function','<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','getElement','theme','aAyYp','ScOXE','headers','EASJT','edbhl','container','ieOPw','error','[MahalMap\x20SDK]\x20MapLibre\x20GL\x20не\x20найден.\x20Передай\x20его\x20вторым\x20аргументом\x20или\x20подключи\x20через\x20script.','LtpDV','OGCBG','forEach','reject','defineProperty','setPitch','defaults','easeTo','constructor','Ewsoz','uXQBp','71562xFzAxH','setBearing','fill=\x22','425PuvTXA','Authorization','routes','getMap','OUgTs','rjFfH','cursor','interceptors','eozFl','286674OaSUMa','charCodeAt','zbmYg','{}.constructor(\x22return\x20this\x22)(\x20)','Bjoek','svg','iTLSb','uvXWK','UmaLU','exports','Marker','props','color','bOnSc','route','destroy','UOtmo','404Gcxoxm','xUeGS','getAnchor','7078528LrPneJ','TJYar','warn','YZPjt'];a0_0x146d=function(){return _0x410c32;};return a0_0x146d();}var _=Object[a0_0x3ce5ef(0x89)],f=Object[a0_0x3ce5ef(0x103)],N=Object[a0_0x3ce5ef(0xa3)],O=Object['getOwnPropertyNames'],U=Object[a0_0x3ce5ef(0x90)],$=Object['prototype'][a0_0x3ce5ef(0xdd)],y=(_0x5dcb6b,_0x9e57c1)=>{for(var _0x2e24f3 in _0x9e57c1)f(_0x5dcb6b,_0x2e24f3,{'get':_0x9e57c1[_0x2e24f3],'enumerable':!0x0});},w=(_0x25c410,_0x3916ec,_0xdfb7a7,_0x2f683f)=>{var _0x3dbe9e=a0_0x3ce5ef,_0x5b1354={'nNEsF':function(_0x48e220,_0x26c4b6){return _0x48e220==_0x26c4b6;},'zMohK':_0x3dbe9e(0x98),'IeCmy':_0x3dbe9e(0xf2),'mXXoA':function(_0xd0e86e,_0x5f4d97){return _0xd0e86e(_0x5f4d97);},'nahET':function(_0x2e6b06,_0x3effb0){return _0x2e6b06!==_0x3effb0;}};if(_0x3916ec&&_0x5b1354['nNEsF'](typeof _0x3916ec,_0x5b1354[_0x3dbe9e(0x85)])||typeof _0x3916ec==_0x5b1354['IeCmy']){for(let _0xa4a53b of _0x5b1354[_0x3dbe9e(0xcb)](O,_0x3916ec))!$['call'](_0x25c410,_0xa4a53b)&&_0x5b1354[_0x3dbe9e(0xdb)](_0xa4a53b,_0xdfb7a7)&&f(_0x25c410,_0xa4a53b,{'get':()=>_0x3916ec[_0xa4a53b],'enumerable':!(_0x2f683f=N(_0x3916ec,_0xa4a53b))||_0x2f683f['enumerable']});}return _0x25c410;},Z=(_0x53524f,_0x1a0641,_0x175364)=>(_0x175364=_0x53524f!=null?_(U(_0x53524f)):{},w(_0x1a0641||!_0x53524f||!_0x53524f['__esModule']?f(_0x175364,a0_0x3ce5ef(0x88),{'value':_0x53524f,'enumerable':!0x0}):_0x175364,_0x53524f)),H=_0x51717b=>w(f({},a0_0x3ce5ef(0x92),{'value':!0x0}),_0x51717b),q={};y(q,{'MahalMap':()=>g,'MahalMapDefaultMarker':()=>h,'Router':()=>j,'Search':()=>B,'keyUtils':()=>v,'utils':()=>T}),module[a0_0x3ce5ef(0x11f)]=H(q);var S='https://platform.mahal.tj/api/',k='https://mtile.gram.tj/custom-styles/dark-style.json',I=a0_0x3ce5ef(0xb2),P='https://mtile.gram.tj/custom-styles/style_maptiler_basic_hn.json';function R(_0x2f8e12){var _0xede5ff=a0_0x3ce5ef,_0x2a38b6={'qzFPX':function(_0x28c19b,_0x5a7679){return _0x28c19b!==_0x5a7679;},'bOnSc':'ZfTCF','TMNCN':function(_0xca53aa,_0x34992d){return _0xca53aa-_0x34992d;},'GVavr':function(_0x85a507,_0xc87494){return _0x85a507&_0xc87494;},'zbmYg':function(_0x42b768,_0x30239a){return _0x42b768>=_0x30239a;},'fYBdJ':function(_0x20fc3a,_0x2e23f9){return _0x20fc3a>>_0x2e23f9;},'jcrAQ':function(_0x332c4a,_0x556de1){return _0x332c4a>>_0x556de1;},'FDPSV':function(_0x43b641,_0x220595){return _0x43b641-_0x220595;},'SboDR':function(_0x5da1a0,_0x3e82a9){return _0x5da1a0<<_0x3e82a9;},'tOgjM':function(_0x1065ab,_0x5c4c81){return _0x1065ab>=_0x5c4c81;},'DbvWg':function(_0x2c52a4,_0x217257){return _0x2c52a4&_0x217257;},'bBoTD':function(_0x3de960,_0x36c9c2){return _0x3de960>>_0x36c9c2;},'ledxs':function(_0x2fd76a,_0x2d5fa2){return _0x2fd76a*_0x2d5fa2;},'oIexN':function(_0x222563,_0x22307a){return _0x222563*_0x22307a;}};let _0x325654=[],_0x76dea1=0x0,_0x15472a=_0x2f8e12[_0xede5ff(0x84)],_0x1dc2f3=0x0,_0x3fdf03=0x0;for(;_0x76dea1<_0x15472a;){if(_0x2a38b6[_0xede5ff(0xb9)](_0xede5ff(0xa8),_0x2a38b6[_0xede5ff(0x6e)])){if(_0x1e838c){var _0x507aa5=_0x229682[_0xede5ff(0xe2)](_0x59139e,arguments);return _0x394f8c=null,_0x507aa5;}}else{let _0x338e65,_0x169611=0x0,_0x272b2c=0x0;do _0x338e65=_0x2a38b6['TMNCN'](_0x2f8e12['charCodeAt'](_0x76dea1++),0x3f),_0x272b2c|=_0x2a38b6[_0xede5ff(0x9f)](_0x338e65,0x1f)<<_0x169611,_0x169611+=0x5;while(_0x2a38b6[_0xede5ff(0x118)](_0x338e65,0x20));let _0x473d19=_0x2a38b6[_0xede5ff(0x9f)](_0x272b2c,0x1)?~_0x2a38b6['fYBdJ'](_0x272b2c,0x1):_0x2a38b6[_0xede5ff(0x87)](_0x272b2c,0x1);_0x1dc2f3+=_0x473d19,_0x169611=0x0,_0x272b2c=0x0;do _0x338e65=_0x2a38b6['FDPSV'](_0x2f8e12[_0xede5ff(0x117)](_0x76dea1++),0x3f),_0x272b2c|=_0x2a38b6[_0xede5ff(0xe7)](_0x338e65&0x1f,_0x169611),_0x169611+=0x5;while(_0x2a38b6['tOgjM'](_0x338e65,0x20));let _0x285a5a=_0x2a38b6[_0xede5ff(0xea)](_0x272b2c,0x1)?~(_0x272b2c>>0x1):_0x2a38b6['bBoTD'](_0x272b2c,0x1);_0x3fdf03+=_0x285a5a,_0x325654[_0xede5ff(0xd2)]([_0x2a38b6['ledxs'](_0x3fdf03,0.00001),_0x2a38b6['oIexN'](_0x1dc2f3,0.00001)]);}}return _0x325654;}var c=class{constructor(_0x5c0f8c){var _0x398712=a0_0x3ce5ef;this[_0x398712(0x9a)]=_0x5c0f8c;}[a0_0x3ce5ef(0x8c)](_0x495732,_0x2bdd30=!0x0){var _0x2d31dc=a0_0x3ce5ef;_0x2bdd30?this[_0x2d31dc(0x9a)][_0x2d31dc(0x106)]({'zoom':_0x495732}):this[_0x2d31dc(0x9a)][_0x2d31dc(0x8c)](_0x495732);}['setBearing'](_0x3e675c,_0x24d61e=!0x0){var _0x24d549=a0_0x3ce5ef;_0x24d61e?this['map']['easeTo']({'bearing':_0x3e675c}):this['map'][_0x24d549(0x10b)](_0x3e675c);}[a0_0x3ce5ef(0x104)](_0x3b416f,_0x17d3ee=!0x0){var _0x1a2686=a0_0x3ce5ef;_0x17d3ee?this[_0x1a2686(0x9a)]['easeTo']({'pitch':_0x3b416f}):this[_0x1a2686(0x9a)][_0x1a2686(0x104)](_0x3b416f);}['toggle3D'](_0x3ca2e0){var _0x23e72a=a0_0x3ce5ef;this['map'][_0x23e72a(0x106)]({'pitch':_0x3ca2e0?0x3c:0x0,'bearing':_0x3ca2e0?this[_0x23e72a(0x9a)][_0x23e72a(0x99)]():0x0,'duration':0x320});}[a0_0x3ce5ef(0x96)](){var _0x1d15e0=a0_0x3ce5ef;this[_0x1d15e0(0x9a)][_0x1d15e0(0x106)]({'bearing':0x0,'pitch':0x0,'duration':0x258});}[a0_0x3ce5ef(0xc0)](_0x36c06f){var _0x334f78=a0_0x3ce5ef;this[_0x334f78(0x9a)]['flyTo']({'speed':1.2,'curve':1.42,'essential':!0x0,..._0x36c06f});}[a0_0x3ce5ef(0xe5)](){var _0x236a97=a0_0x3ce5ef;return this[_0x236a97(0x9a)][_0x236a97(0xe5)]();}},A=(_0x4faafd,_0xd55025)=>a0_0x3ce5ef(0xf3)+(_0x4faafd||'#278960')+a0_0x3ce5ef(0x8d)+(_0x4faafd||a0_0x3ce5ef(0xa0))+'\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'+(_0xd55025??'')+'\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>',h=class{constructor(_0x5385ab){var _0x5d7958=a0_0x3ce5ef;this[_0x5d7958(0x121)]=_0x5385ab,this[_0x5d7958(0xe0)]=this[_0x5d7958(0xba)]();}[a0_0x3ce5ef(0xba)](){var _0x5305d6=a0_0x3ce5ef,_0x331251={'eozFl':'pointer','dRykh':function(_0x35012f,_0x5784f4,_0x47f8b6){return _0x35012f(_0x5784f4,_0x47f8b6);},'iAbmA':'#278960'};let _0x26cdd3=document[_0x5305d6(0xba)](_0x5305d6(0x81));_0x26cdd3[_0x5305d6(0x93)][_0x5305d6(0x113)]=_0x331251[_0x5305d6(0x115)];let _0x4b6ede=this[_0x5305d6(0x121)][_0x5305d6(0x11b)]?this[_0x5305d6(0xda)](this[_0x5305d6(0x121)]['svg']):_0x331251[_0x5305d6(0x8a)](A,this[_0x5305d6(0x121)][_0x5305d6(0x122)]??_0x331251[_0x5305d6(0xc5)],this[_0x5305d6(0x121)]['innerSvg']);return _0x26cdd3[_0x5305d6(0x7c)]=_0x4b6ede,this[_0x5305d6(0x121)][_0x5305d6(0xd3)]&&(_0x26cdd3[_0x5305d6(0xd3)]=!0x0),_0x26cdd3;}[a0_0x3ce5ef(0xda)](_0xcedd3d){var _0x3aa6b6=a0_0x3ce5ef;return this[_0x3aa6b6(0x121)][_0x3aa6b6(0x122)]?_0xcedd3d[_0x3aa6b6(0xd9)](/fill="[^"]*"/g,_0x3aa6b6(0x10c)+this[_0x3aa6b6(0x121)][_0x3aa6b6(0x122)]+'\x22'):_0xcedd3d;}[a0_0x3ce5ef(0xf4)](){var _0x7e5fcb=a0_0x3ce5ef;return this[_0x7e5fcb(0xe0)];}[a0_0x3ce5ef(0xbe)](){var _0x1d1a6d=a0_0x3ce5ef;return this['props'][_0x1d1a6d(0xe9)];}[a0_0x3ce5ef(0xc3)](){var _0x2599aa=a0_0x3ce5ef;return!!this['props'][_0x2599aa(0xd3)];}['getAnchor'](){var _0x289030=a0_0x3ce5ef,_0x1b8063={'rjFfH':_0x289030(0xde)};return this[_0x289030(0x121)][_0x289030(0x86)]||_0x1b8063[_0x289030(0x112)];}};function E(_0x40ad02,_0x45b81e,_0x26df60){var _0x2fa25e=a0_0x3ce5ef,_0x52c779={'TJYar':_0x2fa25e(0xde)};return new _0x40ad02[(_0x2fa25e(0x120))]({'element':_0x26df60[_0x2fa25e(0xf4)](),'draggable':_0x26df60[_0x2fa25e(0xc3)]?.()??!0x1,'anchor':_0x26df60[_0x2fa25e(0x74)]?.()??_0x52c779[_0x2fa25e(0x76)]})[_0x2fa25e(0x8b)](_0x26df60[_0x2fa25e(0xbe)]())[_0x2fa25e(0xd8)](_0x45b81e);}var d={'dark':k,'light':I},i=class i{constructor(){var _0x158665=a0_0x3ce5ef;this[_0x158665(0xe3)]=!0x1,this[_0x158665(0xc6)]=[];}static[a0_0x3ce5ef(0x89)](_0x2d62a6,_0x28175a){var _0x22b66a=a0_0x3ce5ef,_0x465115={'edbhl':function(_0x14d89f,_0x2037d5){return _0x14d89f===_0x2037d5;},'eYqMo':'aNyCM','zxJhP':'dark','BjXIP':'load'};if(i[_0x22b66a(0xa4)])return i[_0x22b66a(0xa4)];let _0x1a5a47=window['maplibregl']||_0x28175a;if(!_0x1a5a47)throw new Error(_0x22b66a(0xfe));let _0x395d0f=_0x2d62a6[_0x22b66a(0xaa)]?P:_0x2d62a6[_0x22b66a(0x93)]?_0x2d62a6[_0x22b66a(0x93)]:_0x465115[_0x22b66a(0xfa)](_0x2d62a6[_0x22b66a(0xf5)],_0x465115['zxJhP'])?d[_0x22b66a(0xeb)]:d[_0x22b66a(0xed)],_0x372056=new i();return _0x372056['options']=_0x2d62a6,_0x372056[_0x22b66a(0xa9)]=_0x1a5a47,_0x372056[_0x22b66a(0x9a)]=new _0x1a5a47[(_0x22b66a(0xe8))]({'container':_0x2d62a6[_0x22b66a(0xfb)]||_0x22b66a(0x9a),'style':_0x395d0f,'center':_0x2d62a6[_0x22b66a(0xde)]||[69.624024,40.279687],'zoom':_0x2d62a6[_0x22b66a(0xec)]||0x5,'attributionControl':_0x2d62a6['attributionControl']!==!0x1}),_0x372056['map']['on'](_0x465115[_0x22b66a(0x91)],()=>{var _0x1e7d7c=_0x22b66a;if(_0x465115[_0x1e7d7c(0xfa)](_0x465115[_0x1e7d7c(0xc8)],_0x465115[_0x1e7d7c(0xc8)]))_0x372056[_0x1e7d7c(0xe3)]=!0x0,_0x372056['camera']=new c(_0x372056['map']),_0x372056[_0x1e7d7c(0xc6)][_0x1e7d7c(0x101)](_0x253083=>_0x253083(_0x372056['map'])),_0x372056[_0x1e7d7c(0xc6)]=[];else return!!this[_0x1e7d7c(0x121)]['draggable'];}),i[_0x22b66a(0xa4)]=_0x372056,_0x372056;}static[a0_0x3ce5ef(0xd1)](_0x1a6d8f){var _0xdefd79=a0_0x3ce5ef,_0x43b51c={'ynuJp':function(_0x577179,_0xb42533){return _0x577179===_0xb42533;},'qgSuy':_0xdefd79(0xca),'VCKci':_0xdefd79(0xf6),'HUkgR':function(_0x23d729,_0x5aefe6){return _0x23d729(_0x5aefe6);},'AEpCF':function(_0x17e1bf,_0x26dc45,_0x5deca4){return _0x17e1bf(_0x26dc45,_0x5deca4);},'dODvY':function(_0x3543c2,_0x3a3763){return _0x3543c2(_0x3a3763);}};if(!i['instance']){let _0x2a3862=_0x43b51c['AEpCF'](setInterval,()=>{var _0x5f0d73=_0xdefd79;_0x43b51c[_0x5f0d73(0x7a)](_0x43b51c[_0x5f0d73(0xbd)],_0x43b51c['VCKci'])?this[_0x5f0d73(0x9a)][_0x5f0d73(0xc0)]({'speed':1.2,'curve':1.42,'essential':!0x0,..._0x95a706}):i[_0x5f0d73(0xa4)]&&(_0x43b51c[_0x5f0d73(0xe4)](clearInterval,_0x2a3862),i[_0x5f0d73(0xd1)](_0x1a6d8f));},0x32);return;}let _0x4af9d9=i[_0xdefd79(0xa4)];_0x4af9d9[_0xdefd79(0xe3)]?_0x43b51c[_0xdefd79(0x9b)](_0x1a6d8f,_0x4af9d9[_0xdefd79(0x9a)]):_0x4af9d9['readyCallbacks'][_0xdefd79(0xd2)](_0x1a6d8f);}static[a0_0x3ce5ef(0x8e)](){var _0x568067=a0_0x3ce5ef,_0x5292fb={'qqCZP':_0x568067(0xab)};if(!i[_0x568067(0xa4)])throw new Error(_0x5292fb[_0x568067(0x7d)]);return i['instance'];}['addMarker'](_0x27301e){var _0x31824c=a0_0x3ce5ef,_0x330495={'YSgUw':function(_0x27ce37,_0x4eba58,_0x2de842,_0x3fc09d){return _0x27ce37(_0x4eba58,_0x2de842,_0x3fc09d);}};return _0x330495[_0x31824c(0xaf)](E,this[_0x31824c(0xa9)],this['map'],_0x27301e);}['init'](_0x4df369){var _0x182e6e=a0_0x3ce5ef;this[_0x182e6e(0x9a)]=_0x4df369,this['camera']=new c(_0x4df369);}[a0_0x3ce5ef(0xb1)](){var _0xeb79c0=a0_0x3ce5ef;return this[_0xeb79c0(0xbb)];}[a0_0x3ce5ef(0x110)](){var _0x4ce4be=a0_0x3ce5ef;return this[_0x4ce4be(0x9a)];}['setStyle'](_0x4d0622){var _0x1b8598=a0_0x3ce5ef,_0x2ea1ad={'ScOXE':function(_0x14cf54,_0x3a5a33){return _0x14cf54===_0x3a5a33;},'tpFGo':_0x1b8598(0xeb)};this[_0x1b8598(0x9a)]['setStyle'](_0x2ea1ad[_0x1b8598(0xf7)](_0x4d0622,_0x2ea1ad['tpFGo'])?d[_0x1b8598(0xeb)]:d['light']);}[a0_0x3ce5ef(0xa6)](_0x4edcbd){this['map']['setCenter'](_0x4edcbd);}['setZoom'](_0x4f9489){var _0x9f7cd0=a0_0x3ce5ef;this[_0x9f7cd0(0x9a)][_0x9f7cd0(0x8c)](_0x4f9489);}[a0_0x3ce5ef(0x70)](){var _0x764302=a0_0x3ce5ef;this[_0x764302(0x9a)][_0x764302(0xb3)](),i['instance']=null;}};function a0_0x386b(_0x53060b,_0x3b2a45){var _0x1853ce=a0_0x146d();return a0_0x386b=function(_0x4bdcbc,_0x330bc8){_0x4bdcbc=_0x4bdcbc-0x6e;var _0x17baa7=_0x1853ce[_0x4bdcbc];return _0x17baa7;},a0_0x386b(_0x53060b,_0x3b2a45);}i['instance']=null;var g=i,L=Z(require(a0_0x3ce5ef(0xcf))),m=L[a0_0x3ce5ef(0x88)][a0_0x3ce5ef(0x89)]({'baseURL':S});m[a0_0x3ce5ef(0x114)]['request'][a0_0x3ce5ef(0xc4)](_0x463155=>_0x463155,_0x279210=>(_0x279210[a0_0x3ce5ef(0xef)]?.[a0_0x3ce5ef(0xad)]===0x191&&M(),Promise[a0_0x3ce5ef(0x102)](_0x279210)));var v={};y(v,{'clearKey':()=>M,'getApiKey':()=>u,'saveKey':()=>b});var x='';function b(_0x30d2eb){var _0x5e95c4=a0_0x3ce5ef,_0x5b8d7a={'YTnpO':function(_0x1997f4,_0x522391){return _0x1997f4!==_0x522391;}};_0x5b8d7a['YTnpO'](_0x30d2eb,'')&&(x=_0x30d2eb,m[_0x5e95c4(0x105)][_0x5e95c4(0xf8)][_0x5e95c4(0x9d)][_0x5e95c4(0x10e)]=_0x5e95c4(0x95)+_0x30d2eb);}function M(){var _0x458f3e=a0_0x3ce5ef,_0x1684aa={'ttInn':_0x458f3e(0x109),'DVHbY':function(_0x55504f,_0x423f59){return _0x55504f!==_0x423f59;},'vwNdt':'ANQVy','Ewsoz':function(_0x3d1070,_0x3f9fd4){return _0x3d1070(_0x3f9fd4);},'jClEN':function(_0x1a7341,_0x473c1f){return _0x1a7341+_0x473c1f;},'AQNGM':function(_0x3f130c,_0xbe5fe7){return _0x3f130c+_0xbe5fe7;},'hjxsQ':'return\x20(function()\x20','OGCBG':_0x458f3e(0x77),'kMpuA':'info','riMXP':_0x458f3e(0xfd),'wvMiG':_0x458f3e(0xb5),'xUeGS':_0x458f3e(0xc1),'LPWmP':_0x458f3e(0x79),'OUgTs':function(_0x33bcdd,_0x16f036){return _0x33bcdd<_0x16f036;},'BnBdr':function(_0xc27ce3){return _0xc27ce3();}},_0x547b93=(function(){var _0x4d079d=_0x458f3e,_0x5ed392={'ReWSm':_0x1684aa[_0x4d079d(0x94)]};if(_0x1684aa[_0x4d079d(0xa2)](_0x1684aa[_0x4d079d(0xd5)],_0x4d079d(0xee)))throw _0x5d7bb8[_0x4d079d(0xfd)](_0x3fecbf),_0x257819;else{var _0x45362c=!![];return function(_0xc3d3c3,_0x1654f3){var _0x4dcc71=_0x45362c?function(){var _0x5226d8=a0_0x386b;if(_0x5ed392[_0x5226d8(0x83)]===_0x5ed392[_0x5226d8(0x83)]){if(_0x1654f3){var _0x1a2f82=_0x1654f3[_0x5226d8(0xe2)](_0xc3d3c3,arguments);return _0x1654f3=null,_0x1a2f82;}}else _0x4f269d?this['map'][_0x5226d8(0x106)]({'bearing':_0x24bc8d}):this['map'][_0x5226d8(0x10b)](_0x5dbe18);}:function(){};return _0x45362c=![],_0x4dcc71;};}}()),_0xcd1cd3=_0x547b93(this,function(){var _0x13d1e3=_0x458f3e,_0x4d84a1;try{var _0x343af2=_0x1684aa[_0x13d1e3(0x108)](Function,_0x1684aa['jClEN'](_0x1684aa[_0x13d1e3(0xd4)](_0x1684aa['hjxsQ'],_0x13d1e3(0x119)),');'));_0x4d84a1=_0x343af2();}catch(_0x158548){_0x4d84a1=window;}var _0x1695e8=_0x4d84a1['console']=_0x4d84a1['console']||{},_0xf4b32b=['log',_0x1684aa[_0x13d1e3(0x100)],_0x1684aa['kMpuA'],_0x1684aa[_0x13d1e3(0xc2)],_0x1684aa[_0x13d1e3(0xe1)],_0x1684aa[_0x13d1e3(0x73)],_0x1684aa[_0x13d1e3(0xb7)]];for(var _0x5dcc47=0x0;_0x1684aa[_0x13d1e3(0x111)](_0x5dcc47,_0xf4b32b[_0x13d1e3(0x84)]);_0x5dcc47++){var _0x226dda=_0x547b93[_0x13d1e3(0x107)]['prototype']['bind'](_0x547b93),_0x3d8b58=_0xf4b32b[_0x5dcc47],_0x515e5e=_0x1695e8[_0x3d8b58]||_0x226dda;_0x226dda[_0x13d1e3(0xae)]=_0x547b93[_0x13d1e3(0xf0)](_0x547b93),_0x226dda[_0x13d1e3(0x97)]=_0x515e5e['toString']['bind'](_0x515e5e),_0x1695e8[_0x3d8b58]=_0x226dda;}});_0x1684aa[_0x458f3e(0xb6)](_0xcd1cd3),(x='',m[_0x458f3e(0x105)][_0x458f3e(0xf8)][_0x458f3e(0x9d)][_0x458f3e(0x10e)]='');}var u=()=>x;function C(_0x3178c6,_0x19a354){var _0x4f40ac=a0_0x3ce5ef,_0x2ee944={'TzZkZ':function(_0x70e0ed,_0x4263af){return _0x70e0ed(_0x4263af);},'Bjoek':function(_0x4169af,_0x1fe46b){return _0x4169af+_0x1fe46b;},'zdNal':_0x4f40ac(0x119),'wapZa':function(_0x3ec8cf){return _0x3ec8cf();},'LtpDV':function(_0x154fa9,_0x4b6174){return _0x154fa9!==_0x4b6174;},'kLfSS':_0x4f40ac(0xa5),'iTLSb':function(_0x42dffc,_0x450f55,_0x4c3d1e){return _0x42dffc(_0x450f55,_0x4c3d1e);}};let _0x38a8f8;return(..._0xc283e)=>(_0x38a8f8&&clearTimeout(_0x38a8f8),new Promise(_0x38d993=>{var _0x10372f=_0x4f40ac;if(_0x2ee944[_0x10372f(0xff)](_0x2ee944['kLfSS'],_0x2ee944[_0x10372f(0xa1)])){var _0x458228=EoFerC['TzZkZ'](_0x247dec,EoFerC[_0x10372f(0x11a)]('return\x20(function()\x20',EoFerC[_0x10372f(0xbc)])+');');_0x43e97f=EoFerC[_0x10372f(0xdf)](_0x458228);}else _0x38a8f8=_0x2ee944[_0x10372f(0x11c)](setTimeout,async()=>{var _0x43f1af=await _0x3178c6(..._0xc283e);_0x38d993(_0x43f1af);},_0x19a354);}));}var G=async _0x4c26d3=>{var _0xde9828=a0_0x3ce5ef,_0x50c822={'YZPjt':function(_0x38acf2,_0x36ad66){return _0x38acf2<_0x36ad66;},'OojyH':function(_0x36c9d6,_0x1138bd){return _0x36c9d6-_0x1138bd;},'MxKLd':function(_0x4b094e,_0x2f44f7){return _0x4b094e>=_0x2f44f7;},'UmaLU':function(_0x144d50,_0x561897){return _0x144d50&_0x561897;},'uvXWK':function(_0x2a4725,_0xa7abbc){return _0x2a4725>>_0xa7abbc;},'ieOPw':function(_0x519665,_0x38898e){return _0x519665<<_0x38898e;},'mWscc':function(_0x278e35,_0x43e379){return _0x278e35>=_0x43e379;},'rtcdH':function(_0x2e5c7e,_0xd236e2){return _0x2e5c7e*_0xd236e2;},'IvCIA':function(_0x4132ba,_0x47d5d9){return _0x4132ba*_0x47d5d9;},'taaJT':_0xde9828(0xf9),'wPbNZ':'Ошибка\x20при\x20поиске\x20адреса:'};try{return(await m['post']('services/getAddress',_0x4c26d3))[_0xde9828(0xac)];}catch(_0x3aff6a){if(_0xde9828(0x9e)===_0x50c822['taaJT']){let _0x376447=[],_0x5e7a71=0x0,_0x49a020=_0x3fddff[_0xde9828(0x84)],_0x227561=0x0,_0x555f4a=0x0;for(;_0x50c822[_0xde9828(0x78)](_0x5e7a71,_0x49a020);){let _0x5d8061,_0x304a03=0x0,_0xc52461=0x0;do _0x5d8061=_0x50c822[_0xde9828(0xe6)](_0x578655[_0xde9828(0x117)](_0x5e7a71++),0x3f),_0xc52461|=(_0x5d8061&0x1f)<<_0x304a03,_0x304a03+=0x5;while(_0x50c822[_0xde9828(0xdc)](_0x5d8061,0x20));let _0x117520=_0x50c822[_0xde9828(0x11e)](_0xc52461,0x1)?~_0x50c822[_0xde9828(0x11d)](_0xc52461,0x1):_0x50c822[_0xde9828(0x11d)](_0xc52461,0x1);_0x227561+=_0x117520,_0x304a03=0x0,_0xc52461=0x0;do _0x5d8061=_0x50c822[_0xde9828(0xe6)](_0x49cc4f['charCodeAt'](_0x5e7a71++),0x3f),_0xc52461|=_0x50c822[_0xde9828(0xfc)](_0x5d8061&0x1f,_0x304a03),_0x304a03+=0x5;while(_0x50c822[_0xde9828(0xc9)](_0x5d8061,0x20));let _0x3d0b72=_0x50c822[_0xde9828(0x11e)](_0xc52461,0x1)?~_0x50c822[_0xde9828(0x11d)](_0xc52461,0x1):_0x50c822[_0xde9828(0x11d)](_0xc52461,0x1);_0x555f4a+=_0x3d0b72,_0x376447[_0xde9828(0xd2)]([_0x50c822[_0xde9828(0x7f)](_0x555f4a,0.00001),_0x50c822[_0xde9828(0xa7)](_0x227561,0.00001)]);}return _0x376447;}else throw console[_0xde9828(0xfd)](_0x50c822[_0xde9828(0x7b)],_0x3aff6a),_0x3aff6a;}};async function X(_0x7ff763,_0x3fa2aa,_0x4c3761){var _0x113067=a0_0x3ce5ef,_0x168899={'meIGU':function(_0x7bfed1){return _0x7bfed1();},'omoiq':function(_0x1a8bf7,_0x4aa5ba){return _0x1a8bf7(_0x4aa5ba);}};let _0x2b9509={'text':_0x7ff763,'token':_0x3fa2aa||_0x168899[_0x113067(0xb0)](u),..._0x4c3761};try{return await _0x168899['omoiq'](G,_0x2b9509);}catch(_0x58a31b){throw _0x58a31b;}}var z=C(X,0x1f4);async function B(_0x3b8465,_0x48eb84,_0x2ed26e){var _0x4cb3bd={'jCbGz':function(_0x4e8272,_0xc4850d,_0x40f42d,_0x481ddc){return _0x4e8272(_0xc4850d,_0x40f42d,_0x481ddc);}};return await _0x4cb3bd['jCbGz'](z,_0x3b8465,_0x48eb84,_0x2ed26e);}var K=async(_0x1b5bb8,_0x1bd66c)=>{var _0x262638=a0_0x3ce5ef,_0x7c4ab8={'kgsrm':'Ошибка\x20при\x20поиске\x20адреса:','MpipF':function(_0x686ddf,_0x413a0d){return _0x686ddf!==_0x413a0d;},'kwJOT':'eCWQd'};try{let _0x25e39b=[];return _0x1b5bb8[_0x262638(0x101)](_0x349ba9=>{var _0x4d3fa0=_0x262638,_0x229a10={'DVrEG':_0x7c4ab8[_0x4d3fa0(0x82)]};if(_0x7c4ab8['MpipF'](_0x7c4ab8['kwJOT'],'eCWQd'))throw _0x27ea3b['error'](_0x229a10['DVrEG'],_0x3901c1),_0x199ff9;else _0x25e39b[_0x4d3fa0(0xd2)]({'lng':_0x349ba9[0x0],'lat':_0x349ba9[0x1]});}),(await m[_0x262638(0xb8)](_0x262638(0x80),{'points':_0x25e39b,'token':_0x1bd66c||u()}))[_0x262638(0xac)];}catch(_0x18159a){throw console['error'](_0x18159a),_0x18159a;}};async function j(_0x4d9a5f,_0x419fe3,_0x1c4735){var _0x4fe4de=a0_0x3ce5ef;try{let _0x53a9da=await K(_0x4d9a5f,_0x1c4735);return _0x53a9da?.['data']?_0x53a9da[_0x4fe4de(0xac)][_0x4fe4de(0x9a)](_0xbb338d=>{var _0x4ef6fe=_0x4fe4de;let _0x48f303={..._0xbb338d};return _0x48f303[_0x4ef6fe(0x6f)]?.[_0x4ef6fe(0x10f)]?.[_0x4ef6fe(0x84)]&&(_0x48f303['route']['routes']=_0x48f303[_0x4ef6fe(0x6f)][_0x4ef6fe(0x10f)][_0x4ef6fe(0x9a)](_0x2a54e8=>({..._0x2a54e8,'geometry':_0x419fe3==='geojson'&&typeof _0x2a54e8['geometry']=='string'?R(_0x2a54e8['geometry']):_0x2a54e8['geometry']}))),_0x48f303;}):_0x53a9da;}catch(_0x1f82b3){throw _0x1f82b3;}}var T={};y(T,{'debounce':()=>C});function V(){var _0x585d2b=a0_0x3ce5ef,_0x2a15b4={'lLVnp':_0x585d2b(0x9c),'UOtmo':_0x585d2b(0x8f),'NzDLw':'apikey'};let _0x150a7a=document[_0x585d2b(0x7e)](_0x2a15b4[_0x585d2b(0xcd)]);for(let _0x5efa2b of _0x150a7a)if(_0x5efa2b['src'][_0x585d2b(0xd0)](_0x2a15b4[_0x585d2b(0x71)])){let _0x19af3f=new URL(_0x5efa2b[_0x585d2b(0xd7)])['searchParams'][_0x585d2b(0xf1)](_0x2a15b4[_0x585d2b(0xc7)]);if(_0x19af3f)return _0x19af3f;}return'';}b(V()),0x0&&(module[a0_0x3ce5ef(0x11f)]={'MahalMap':MahalMap,'MahalMapDefaultMarker':MahalMapDefaultMarker,'Router':Router,'Search':Search,'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/lib/debounce/index.ts","../src/lib/search/api.ts","../src/lib/search/utils.ts","../src/lib/routing/api.ts","../src/lib/routing/utils.ts"],"sourcesContent":["// Lib\r\nimport { MahalMap } from \"@lib/map\";\r\nimport { Search } from \"@lib/search\";\r\nimport { Router } from \"@lib/routing\";\r\nimport { MahalMapDefaultMarker } from \"@lib/controller\";\r\n\r\n// utils\r\nimport * as keyUtils from \"@app/lib/saveKey\";\r\n\r\nexport { MahalMap, Search, Router, keyUtils, MahalMapDefaultMarker };\r\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","const createDefaultMarkerSvg = (color: string, innerSvg?: string) => `<svg\r\n width=\"50\"\r\n height=\"62\"\r\n viewBox=\"0 0 50 62\"\r\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 />\r\n <g clip-path=\"url(#clip0_367_31358)\">\r\n ${innerSvg ?? \"\"}\r\n </g>\r\n <defs>\r\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\r\n ? this.applyColorToCustomSvg(this.props.svg)\r\n : createDefaultMarkerSvg(\r\n this.props.color ?? \"#278960\",\r\n this.props.innerSvg,\r\n );\r\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 const instance = MahalMap.instance;\r\n\r\n if (!instance) {\r\n throw new Error(\"[MahalMap SDK] Карта ещё не создана\");\r\n }\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: NodeJS.Timeout;\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\";\r\nimport type { ISearchParam, ISearch } from \"@app/types\";\r\n\r\nexport const searchPost = async (params: ISearchParam): Promise<ISearch[]> => {\r\n try {\r\n const response = await api.post(\"services/getAddress\", params);\r\n return response.data;\r\n } catch (error) {\r\n console.error(\"Ошибка при поиске адреса:\", error);\r\n throw error;\r\n }\r\n};\r\n","import { searchPost } from \"./api\";\r\nimport { IAdditionalParamType, ISearch, ISearchParam } from \"@app/types/index\";\r\nimport { debounce, getApiKey } from \"@app/lib\";\r\n// import { checkCoordinates } from \"@app/lib/index\";\r\n// import { REGEX } from \"@app/config\";\r\n\r\nasync function getSearch(\r\n param: string,\r\n token: string,\r\n additionalParam?: IAdditionalParamType,\r\n): Promise<ISearch[]> {\r\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 {\r\n const res: ISearch[] = await searchPost(searchData);\r\n return res;\r\n } catch (error) {\r\n throw error;\r\n }\r\n}\r\n\r\nconst debouncedFn = debounce(getSearch, 500);\r\n\r\nasync function Search(\r\n param: string,\r\n token: string,\r\n additionalParam?: IAdditionalParamType,\r\n) {\r\n return await debouncedFn(param, token, additionalParam);\r\n}\r\n\r\nexport { Search };\r\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"],"mappings":"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","names":["index_exports","__export","MahalMap","MahalMapDefaultMarker","Router","Search","saveKey_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","createDefaultMarkerSvg","color","innerSvg","MahalMapDefaultMarker","props","el","svg","createDefaultMarkerSvg","addMarker","maplibregl","map","marker","defaultStyles","DARK","LIGHT","_MahalMap","options","maplibreObject","maplibre","finalStyle","VECTOR","instance","CameraController","cb","callback","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","getSearch","param","token","additionalParam","searchData","getApiKey","searchPost","error","debouncedFn","debounce","Search","routingApi","param","token","points","e","api","getApiKey","err","Router","param","typeData","token","res","routingApi","route","updated","r","geojsonPolyline","error","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\r\nimport { MahalMap } from \"@lib/map\";\r\nimport { Search } from \"@lib/search\";\r\nimport { Router } from \"@lib/routing\";\r\nimport { MahalMapDefaultMarker } from \"@lib/controller\";\r\n\r\n// utils\r\nimport * as keyUtils from \"@app/lib/saveKey\";\r\nimport * as utils from \"@app/utils\";\r\n\r\nexport { MahalMap, Search, Router, keyUtils, MahalMapDefaultMarker, utils };\r\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","const createDefaultMarkerSvg = (color: string, innerSvg?: string) => `<svg\r\n width=\"50\"\r\n height=\"62\"\r\n viewBox=\"0 0 50 62\"\r\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 />\r\n <g clip-path=\"url(#clip0_367_31358)\">\r\n ${innerSvg ?? \"\"}\r\n </g>\r\n <defs>\r\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\r\n ? this.applyColorToCustomSvg(this.props.svg)\r\n : createDefaultMarkerSvg(\r\n this.props.color ?? \"#278960\",\r\n this.props.innerSvg,\r\n );\r\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\";\r\nimport type { ISearchParam, ISearch } from \"@app/types\";\r\n\r\nexport const searchPost = async (params: ISearchParam): Promise<ISearch[]> => {\r\n try {\r\n const response = await api.post(\"services/getAddress\", params);\r\n return response.data;\r\n } catch (error) {\r\n console.error(\"Ошибка при поиске адреса:\", error);\r\n throw error;\r\n }\r\n};\r\n","import { searchPost } from \"./api\";\r\nimport { IAdditionalParamType, ISearch, ISearchParam } from \"@app/types/index\";\r\nimport { debounce, getApiKey } from \"@app/lib\";\r\n// import { checkCoordinates } from \"@app/lib/index\";\r\n// import { REGEX } from \"@app/config\";\r\n\r\nasync function getSearch(\r\n param: string,\r\n token: string,\r\n additionalParam?: IAdditionalParamType,\r\n): Promise<ISearch[]> {\r\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 {\r\n const res: ISearch[] = await searchPost(searchData);\r\n return res;\r\n } catch (error) {\r\n throw error;\r\n }\r\n}\r\n\r\nconst debouncedFn = debounce(getSearch, 500);\r\n\r\nasync function Search(\r\n param: string,\r\n token: string,\r\n additionalParam?: IAdditionalParamType,\r\n) {\r\n return await debouncedFn(param, token, additionalParam);\r\n}\r\n\r\nexport { Search };\r\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","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","createDefaultMarkerSvg","color","innerSvg","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","getSearch","param","token","additionalParam","searchData","getApiKey","searchPost","error","debouncedFn","debounce","Search","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
@@ -1,4 +1,4 @@
1
- var R=Object.defineProperty;var G=(r,e)=>{for(var t in e)R(r,t,{get:e[t],enumerable:!0})};var x="https://platform.mahal.tj/api/";var b="https://mtile.gram.tj/custom-styles/dark-style.json",w="https://mtile.gram.tj/custom-styles/mapstyle.json",C="https://mtile.gram.tj/custom-styles/style_maptiler_basic_hn.json";function v(r){let e=[],t=0,o=r.length,s=0,l=0;for(;t<o;){let a,i=0,p=0;do a=r.charCodeAt(t++)-63,p|=(a&31)<<i,i+=5;while(a>=32);let I=p&1?~(p>>1):p>>1;s+=I,i=0,p=0;do a=r.charCodeAt(t++)-63,p|=(a&31)<<i,i+=5;while(a>=32);let L=p&1?~(p>>1):p>>1;l+=L,e.push([l*1e-5,s*1e-5])}return e}var c=class{constructor(e){this.map=e}setZoom(e,t=!0){t?this.map.easeTo({zoom:e}):this.map.setZoom(e)}setBearing(e,t=!0){t?this.map.easeTo({bearing:e}):this.map.setBearing(e)}setPitch(e,t=!0){t?this.map.easeTo({pitch:e}):this.map.setPitch(e)}toggle3D(e){this.map.easeTo({pitch:e?60:0,bearing:e?this.map.getBearing():0,duration:800})}resetNorth(){this.map.easeTo({bearing:0,pitch:0,duration:600})}flyTo(e){this.map.flyTo({speed:1.2,curve:1.42,essential:!0,...e})}getPitch(){return this.map.getPitch()}};var T=(r,e)=>`<svg
1
+ var B=Object.defineProperty;var b=(r,e)=>{for(var t in e)B(r,t,{get:e[t],enumerable:!0})};var v="https://platform.mahal.tj/api/";var C="https://mtile.gram.tj/custom-styles/dark-style.json",T="https://mtile.gram.tj/custom-styles/mapstyle.json",w="https://mtile.gram.tj/custom-styles/style_maptiler_basic_hn.json";function S(r){let e=[],t=0,o=r.length,s=0,l=0;for(;t<o;){let a,n=0,p=0;do a=r.charCodeAt(t++)-63,p|=(a&31)<<n,n+=5;while(a>=32);let L=p&1?~(p>>1):p>>1;s+=L,n=0,p=0;do a=r.charCodeAt(t++)-63,p|=(a&31)<<n,n+=5;while(a>=32);let G=p&1?~(p>>1):p>>1;l+=G,e.push([l*1e-5,s*1e-5])}return e}var c=class{constructor(e){this.map=e}setZoom(e,t=!0){t?this.map.easeTo({zoom:e}):this.map.setZoom(e)}setBearing(e,t=!0){t?this.map.easeTo({bearing:e}):this.map.setBearing(e)}setPitch(e,t=!0){t?this.map.easeTo({pitch:e}):this.map.setPitch(e)}toggle3D(e){this.map.easeTo({pitch:e?60:0,bearing:e?this.map.getBearing():0,duration:800})}resetNorth(){this.map.easeTo({bearing:0,pitch:0,duration:600})}flyTo(e){this.map.flyTo({speed:1.2,curve:1.42,essential:!0,...e})}getPitch(){return this.map.getPitch()}};var k=(r,e)=>`<svg
2
2
  width="50"
3
3
  height="62"
4
4
  viewBox="0 0 50 62"
@@ -67,5 +67,5 @@ var R=Object.defineProperty;var G=(r,e)=>{for(var t in e)R(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):T(this.props.color??"#278960",this.props.innerSvg);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 S(r,e,t){return new r.Marker({element:t.getElement(),draggable:t.isDraggable?.()??!1,anchor:t.getAnchor?.()??"center"}).setLngLat(t.getCoordinates()).addTo(e)}var h={dark:b,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 l=e.autoAddVectorSource?C:e.style?e.style:e.theme==="dark"?h.dark:h.light,a=new n;return a.options=e,a.maplibre=s,a.map=new s.Map({container:e.container||"map",style:l,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 c(a.map),a.readyCallbacks.forEach(i=>i(a.map)),a.readyCallbacks=[]}),n.instance=a,a}static onReady(e){let t=n.instance;if(!t)throw new Error("[MahalMap SDK] \u041A\u0430\u0440\u0442\u0430 \u0435\u0449\u0451 \u043D\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u0430");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 S(this.maplibre,this.map,e)}init(e){this.map=e,this.camera=new c(e)}getCamera(){return this.camera}getMap(){return this.map}setStyle(e){this.map.setStyle(e==="dark"?h.dark:h.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 B from"axios";var m=B.create({baseURL:x});m.interceptors.request.use(r=>r,r=>(r.request?.status===401&&g(),Promise.reject(r)));var k={};G(k,{clearKey:()=>g,getApiKey:()=>u,saveKey:()=>M});var y="";function M(r){r!==""&&(y=r,m.defaults.headers.common.Authorization=`Bearer ${r}`)}function g(){y="",m.defaults.headers.common.Authorization=""}var u=()=>y;function P(r,e){let t;return(...o)=>(t&&clearTimeout(t),new Promise(s=>{t=setTimeout(async()=>{let l=await r(...o);s(l)},e)}))}var E=async r=>{try{return(await m.post("services/getAddress",r)).data}catch(e){throw console.error("\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u0438 \u043F\u043E\u0438\u0441\u043A\u0435 \u0430\u0434\u0440\u0435\u0441\u0430:",e),e}};async function K(r,e,t){let o={text:r,token:e||u(),...t};try{return await E(o)}catch(s){throw s}}var D=P(K,500);async function _(r,e,t){return await D(r,e,t)}var A=async(r,e)=>{try{let t=[];return r.forEach(s=>{t.push({lng:s[0],lat:s[1]})}),(await m.post("services/getRoutes",{points:t,token:e||u()})).data}catch(t){throw console.error(t),t}};async function j(r,e,t){try{let o=await A(r,t);return o?.data?o.data.map(l=>{let a={...l};return a.route?.routes?.length&&(a.route.routes=a.route.routes.map(i=>({...i,geometry:e==="geojson"&&typeof i.geometry=="string"?v(i.geometry):i.geometry}))),a}):o}catch(o){throw o}}function F(){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""}M(F());export{d as MahalMap,f as MahalMapDefaultMarker,j as Router,_ as Search,k as keyUtils};
70
+ </svg>`;var h=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):k(this.props.color??"#278960",this.props.innerSvg);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 I(r,e,t){return new r.Marker({element:t.getElement(),draggable:t.isDraggable?.()??!1,anchor:t.getAnchor?.()??"center"}).setLngLat(t.getCoordinates()).addTo(e)}var f={dark:C,light:T},i=class i{constructor(){this.isReady=!1;this.readyCallbacks=[]}static create(e,t){if(i.instance)return i.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 l=e.autoAddVectorSource?w:e.style?e.style:e.theme==="dark"?f.dark:f.light,a=new i;return a.options=e,a.maplibre=s,a.map=new s.Map({container:e.container||"map",style:l,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 c(a.map),a.readyCallbacks.forEach(n=>n(a.map)),a.readyCallbacks=[]}),i.instance=a,a}static onReady(e){if(!i.instance){let o=setInterval(()=>{i.instance&&(clearInterval(o),i.onReady(e))},50);return}let t=i.instance;t.isReady?e(t.map):t.readyCallbacks.push(e)}static getInstance(){if(!i.instance)throw new Error("[MahalMap SDK] \u041A\u0430\u0440\u0442\u0430 \u0435\u0449\u0451 \u043D\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u0430");return i.instance}addMarker(e){return I(this.maplibre,this.map,e)}init(e){this.map=e,this.camera=new c(e)}getCamera(){return this.camera}getMap(){return this.map}setStyle(e){this.map.setStyle(e==="dark"?f.dark:f.light)}setCenter(e){this.map.setCenter(e)}setZoom(e){this.map.setZoom(e)}destroy(){this.map.remove(),i.instance=null}};i.instance=null;var d=i;import K from"axios";var m=K.create({baseURL:v});m.interceptors.request.use(r=>r,r=>(r.request?.status===401&&g(),Promise.reject(r)));var P={};b(P,{clearKey:()=>g,getApiKey:()=>u,saveKey:()=>M});var y="";function M(r){r!==""&&(y=r,m.defaults.headers.common.Authorization=`Bearer ${r}`)}function g(){y="",m.defaults.headers.common.Authorization=""}var u=()=>y;function x(r,e){let t;return(...o)=>(t&&clearTimeout(t),new Promise(s=>{t=setTimeout(async()=>{let l=await r(...o);s(l)},e)}))}var R=async r=>{try{return(await m.post("services/getAddress",r)).data}catch(e){throw console.error("\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u0438 \u043F\u043E\u0438\u0441\u043A\u0435 \u0430\u0434\u0440\u0435\u0441\u0430:",e),e}};async function j(r,e,t){let o={text:r,token:e||u(),...t};try{return await R(o)}catch(s){throw s}}var D=x(j,500);async function F(r,e,t){return await D(r,e,t)}var A=async(r,e)=>{try{let t=[];return r.forEach(s=>{t.push({lng:s[0],lat:s[1]})}),(await m.post("services/getRoutes",{points:t,token:e||u()})).data}catch(t){throw console.error(t),t}};async function _(r,e,t){try{let o=await A(r,t);return o?.data?o.data.map(l=>{let a={...l};return a.route?.routes?.length&&(a.route.routes=a.route.routes.map(n=>({...n,geometry:e==="geojson"&&typeof n.geometry=="string"?S(n.geometry):n.geometry}))),a}):o}catch(o){throw o}}var E={};b(E,{debounce:()=>x});function N(){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""}M(N());export{d as MahalMap,h as MahalMapDefaultMarker,_ as Router,F as Search,P as keyUtils,E 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/lib/debounce/index.ts","../src/lib/search/api.ts","../src/lib/search/utils.ts","../src/lib/routing/api.ts","../src/lib/routing/utils.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","const createDefaultMarkerSvg = (color: string, innerSvg?: string) => `<svg\r\n width=\"50\"\r\n height=\"62\"\r\n viewBox=\"0 0 50 62\"\r\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 />\r\n <g clip-path=\"url(#clip0_367_31358)\">\r\n ${innerSvg ?? \"\"}\r\n </g>\r\n <defs>\r\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\r\n ? this.applyColorToCustomSvg(this.props.svg)\r\n : createDefaultMarkerSvg(\r\n this.props.color ?? \"#278960\",\r\n this.props.innerSvg,\r\n );\r\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 const instance = MahalMap.instance;\r\n\r\n if (!instance) {\r\n throw new Error(\"[MahalMap SDK] Карта ещё не создана\");\r\n }\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: NodeJS.Timeout;\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\";\r\nimport type { ISearchParam, ISearch } from \"@app/types\";\r\n\r\nexport const searchPost = async (params: ISearchParam): Promise<ISearch[]> => {\r\n try {\r\n const response = await api.post(\"services/getAddress\", params);\r\n return response.data;\r\n } catch (error) {\r\n console.error(\"Ошибка при поиске адреса:\", error);\r\n throw error;\r\n }\r\n};\r\n","import { searchPost } from \"./api\";\r\nimport { IAdditionalParamType, ISearch, ISearchParam } from \"@app/types/index\";\r\nimport { debounce, getApiKey } from \"@app/lib\";\r\n// import { checkCoordinates } from \"@app/lib/index\";\r\n// import { REGEX } from \"@app/config\";\r\n\r\nasync function getSearch(\r\n param: string,\r\n token: string,\r\n additionalParam?: IAdditionalParamType,\r\n): Promise<ISearch[]> {\r\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 {\r\n const res: ISearch[] = await searchPost(searchData);\r\n return res;\r\n } catch (error) {\r\n throw error;\r\n }\r\n}\r\n\r\nconst debouncedFn = debounce(getSearch, 500);\r\n\r\nasync function Search(\r\n param: string,\r\n token: string,\r\n additionalParam?: IAdditionalParamType,\r\n) {\r\n return await debouncedFn(param, token, additionalParam);\r\n}\r\n\r\nexport { Search };\r\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","// Lib\r\nimport { MahalMap } from \"@lib/map\";\r\nimport { Search } from \"@lib/search\";\r\nimport { Router } from \"@lib/routing\";\r\nimport { MahalMapDefaultMarker } from \"@lib/controller\";\r\n\r\n// utils\r\nimport * as keyUtils from \"@app/lib/saveKey\";\r\n\r\nexport { MahalMap, Search, Router, keyUtils, MahalMapDefaultMarker };\r\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","createDefaultMarkerSvg","color","innerSvg","MahalMapDefaultMarker","props","el","svg","createDefaultMarkerSvg","addMarker","maplibregl","map","marker","defaultStyles","DARK","LIGHT","_MahalMap","options","maplibreObject","maplibre","finalStyle","VECTOR","instance","CameraController","cb","callback","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","getSearch","param","token","additionalParam","searchData","getApiKey","searchPost","error","debouncedFn","debounce","Search","routingApi","param","token","points","e","api","getApiKey","err","Router","param","typeData","token","res","routingApi","route","updated","r","geojsonPolyline","error","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","const createDefaultMarkerSvg = (color: string, innerSvg?: string) => `<svg\r\n width=\"50\"\r\n height=\"62\"\r\n viewBox=\"0 0 50 62\"\r\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 />\r\n <g clip-path=\"url(#clip0_367_31358)\">\r\n ${innerSvg ?? \"\"}\r\n </g>\r\n <defs>\r\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\r\n ? this.applyColorToCustomSvg(this.props.svg)\r\n : createDefaultMarkerSvg(\r\n this.props.color ?? \"#278960\",\r\n this.props.innerSvg,\r\n );\r\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\";\r\nimport type { ISearchParam, ISearch } from \"@app/types\";\r\n\r\nexport const searchPost = async (params: ISearchParam): Promise<ISearch[]> => {\r\n try {\r\n const response = await api.post(\"services/getAddress\", params);\r\n return response.data;\r\n } catch (error) {\r\n console.error(\"Ошибка при поиске адреса:\", error);\r\n throw error;\r\n }\r\n};\r\n","import { searchPost } from \"./api\";\r\nimport { IAdditionalParamType, ISearch, ISearchParam } from \"@app/types/index\";\r\nimport { debounce, getApiKey } from \"@app/lib\";\r\n// import { checkCoordinates } from \"@app/lib/index\";\r\n// import { REGEX } from \"@app/config\";\r\n\r\nasync function getSearch(\r\n param: string,\r\n token: string,\r\n additionalParam?: IAdditionalParamType,\r\n): Promise<ISearch[]> {\r\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 {\r\n const res: ISearch[] = await searchPost(searchData);\r\n return res;\r\n } catch (error) {\r\n throw error;\r\n }\r\n}\r\n\r\nconst debouncedFn = debounce(getSearch, 500);\r\n\r\nasync function Search(\r\n param: string,\r\n token: string,\r\n additionalParam?: IAdditionalParamType,\r\n) {\r\n return await debouncedFn(param, token, additionalParam);\r\n}\r\n\r\nexport { Search };\r\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\r\nimport { MahalMap } from \"@lib/map\";\r\nimport { Search } from \"@lib/search\";\r\nimport { Router } from \"@lib/routing\";\r\nimport { MahalMapDefaultMarker } from \"@lib/controller\";\r\n\r\n// utils\r\nimport * as keyUtils from \"@app/lib/saveKey\";\r\nimport * as utils from \"@app/utils\";\r\n\r\nexport { MahalMap, Search, Router, keyUtils, MahalMapDefaultMarker, utils };\r\n\r\nfunction loadKeyFromScriptUrl() {\r\n const scripts = document.getElementsByTagName(\"script\");\r\n for (const script of scripts) {\r\n if (script.src.includes(\"mahal_map.sdk.js\")) {\r\n const url = new URL(script.src);\r\n const apikey = url.searchParams.get(\"apikey\");\r\n if (apikey) return apikey;\r\n }\r\n }\r\n return \"\";\r\n}\r\nkeyUtils.saveKey(loadKeyFromScriptUrl());\r\n"],"mappings":"0FAAA,IAAMA,EAAW,iCASjB,IAAMC,EAAO,sDACPC,EAAQ,oDACRC,EACJ,mECZF,SAASC,EAAgBC,EAA6B,CACpD,IAAIC,EAAS,CAAC,EACVC,EAAQ,EACVC,EAAMH,EAAQ,OACZI,EAAM,EACRC,EAAM,EAER,KAAOH,EAAQC,GAAK,CAClB,IAAIG,EACFC,EAAQ,EACRC,EAAS,EACX,GACEF,EAAIN,EAAQ,WAAWE,GAAO,EAAI,GAClCM,IAAWF,EAAI,KAASC,EACxBA,GAAS,QACFD,GAAK,IACd,IAAIG,EAAOD,EAAS,EAAI,EAAEA,GAAU,GAAKA,GAAU,EACnDJ,GAAOK,EAEPF,EAAQ,EACRC,EAAS,EACT,GACEF,EAAIN,EAAQ,WAAWE,GAAO,EAAI,GAClCM,IAAWF,EAAI,KAASC,EACxBA,GAAS,QACFD,GAAK,IACd,IAAII,EAAOF,EAAS,EAAI,EAAEA,GAAU,GAAKA,GAAU,EACnDH,GAAOK,EAEPT,EAAO,KAAK,CAACI,EAAM,KAAMD,EAAM,IAAI,CAAC,CACtC,CAEA,OAAOH,CACT,CC/BO,IAAMU,EAAN,KAAuB,CAC5B,YAAoBC,EAAU,CAAV,SAAAA,CAAW,CAE/B,QAAQC,EAAcC,EAAS,GAAM,CAC/BA,EACF,KAAK,IAAI,OAAO,CAAE,KAAAD,CAAK,CAAC,EAExB,KAAK,IAAI,QAAQA,CAAI,CAEzB,CAEA,WAAWE,EAAiBD,EAAS,GAAM,CACzCA,EAAS,KAAK,IAAI,OAAO,CAAE,QAAAC,CAAQ,CAAC,EAAI,KAAK,IAAI,WAAWA,CAAO,CACrE,CAEA,SAASC,EAAeF,EAAS,GAAM,CACrCA,EAAS,KAAK,IAAI,OAAO,CAAE,MAAAE,CAAM,CAAC,EAAI,KAAK,IAAI,SAASA,CAAK,CAC/D,CAEA,SAASC,EAAe,CACtB,KAAK,IAAI,OAAO,CACd,MAAOA,EAAO,GAAK,EACnB,QAASA,EAAO,KAAK,IAAI,WAAW,EAAI,EACxC,SAAU,GACZ,CAAC,CACH,CAEA,YAAa,CACX,KAAK,IAAI,OAAO,CACd,QAAS,EACT,MAAO,EACP,SAAU,GACZ,CAAC,CACH,CAEA,MAAMC,EAAuB,CAC3B,KAAK,IAAI,MAAM,CACb,MAAO,IACP,MAAO,KACP,UAAW,GACX,GAAGA,CACL,CAAC,CACH,CAEA,UAAW,CACT,OAAO,KAAK,IAAI,SAAS,CAC3B,CACF,ECjDA,IAAMC,EAAyB,CAACC,EAAeC,IAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAYjDD,GAAgB,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,mBAK1BA,GAAgB,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,WAKjCC,GAAY,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;cCnBzB,IAAMC,EAAN,KAA4B,CAG1B,YAAoBC,EAAmC,CAAnC,WAAAA,EAClB,KAAK,QAAU,KAAK,cAAc,CACpC,CAEQ,eAA6B,CACnC,IAAMC,EAAK,SAAS,cAAc,KAAK,EACvCA,EAAG,MAAM,OAAS,UAElB,IAAMC,EAAM,KAAK,MAAM,IACnB,KAAK,sBAAsB,KAAK,MAAM,GAAG,EACzCC,EACE,KAAK,MAAM,OAAS,UACpB,KAAK,MAAM,QACb,EAEJ,OAAAF,EAAG,UAAYC,EAEX,KAAK,MAAM,YACbD,EAAG,UAAY,IAGVA,CACT,CAEQ,sBAAsBC,EAAqB,CACjD,OAAK,KAAK,MAAM,MACTA,EAAI,QAAQ,gBAAiB,SAAS,KAAK,MAAM,KAAK,GAAG,EADlCA,CAEhC,CAEA,YAAa,CACX,OAAO,KAAK,OACd,CAEA,gBAAiB,CACf,OAAO,KAAK,MAAM,WACpB,CAEA,aAAc,CACZ,MAAO,CAAC,CAAC,KAAK,MAAM,SACtB,CAEA,WAAY,CACV,OAAO,KAAK,MAAM,QAAU,QAC9B,CACF,EC/CO,SAASE,EAAUC,EAAiBC,EAAUC,EAAoB,CASvE,OARkB,IAAIF,EAAW,OAAO,CACtC,QAASE,EAAO,WAAW,EAC3B,UAAWA,EAAO,cAAc,GAAK,GACrC,OAAQA,EAAO,YAAY,GAAK,QAClC,CAAC,EACE,UAAUA,EAAO,eAAe,CAAC,EACjC,MAAMD,CAAG,CAGd,CCJA,IAAME,EAAgB,CAAE,KAAMC,EAAM,MAAOC,CAAM,EAEpCC,EAAN,MAAMA,CAAS,CAYZ,aAAc,CATtB,KAAQ,QAAU,GAClB,KAAQ,eAAgD,CAAC,CAQlC,CAEvB,OAAO,OACLC,EACAC,EACA,CACA,GAAIF,EAAS,SAAU,OAAOA,EAAS,SAGvC,IAAMG,EADkB,OAAe,YACJD,EAEnC,GAAI,CAACC,EACH,MAAM,IAAI,MACR,0VACF,EAGF,IAAMC,EAAaH,EAAQ,oBACvBI,EACAJ,EAAQ,MACNA,EAAQ,MACRA,EAAQ,QAAU,OAChBJ,EAAc,KACdA,EAAc,MAEhBS,EAAW,IAAIN,EAErB,OAAAM,EAAS,QAAUL,EACnBK,EAAS,SAAWH,EACpBG,EAAS,IAAM,IAAIH,EAAS,IAAI,CAC9B,UAAWF,EAAQ,WAAa,MAChC,MAAOG,EACP,OAAQH,EAAQ,QAAU,CAAC,UAAW,SAAS,EAC/C,KAAMA,EAAQ,MAAQ,EACtB,mBAAoBA,EAAQ,qBAAuB,EACrD,CAAC,EAEDK,EAAS,IAAI,GAAG,OAAQ,IAAM,CAC5BA,EAAS,QAAU,GAEnBA,EAAS,OAAS,IAAIC,EAAiBD,EAAS,GAAG,EAEnDA,EAAS,eAAe,QAASE,GAAOA,EAAGF,EAAS,GAAG,CAAC,EACxDA,EAAS,eAAiB,CAAC,CAC7B,CAAC,EAEDN,EAAS,SAAWM,EACbA,CACT,CAEA,OAAO,QAAQG,EAAkC,CAC/C,GAAI,CAACT,EAAS,SAAU,CACtB,IAAMU,EAAQ,YAAY,IAAM,CAC1BV,EAAS,WACX,cAAcU,CAAK,EACnBV,EAAS,QAAQS,CAAQ,EAE7B,EAAG,EAAE,EACL,MACF,CAEA,IAAMH,EAAWN,EAAS,SAEtBM,EAAS,QACXG,EAASH,EAAS,GAAG,EAErBA,EAAS,eAAe,KAAKG,CAAQ,CAEzC,CAEA,OAAO,aAAwB,CAC7B,GAAI,CAACT,EAAS,SACZ,MAAM,IAAI,MAAM,0HAAqC,EAEvD,OAAOA,EAAS,QAClB,CAEA,UAAUW,EAAoB,CAC5B,OAAOC,EAAU,KAAK,SAAU,KAAK,IAAKD,CAAM,CAClD,CACA,KAAKE,EAAc,CACjB,KAAK,IAAMA,EACX,KAAK,OAAS,IAAIN,EAAiBM,CAAG,CACxC,CACA,WAAY,CACV,OAAO,KAAK,MACd,CAEA,QAAkB,CAChB,OAAO,KAAK,GACd,CAEA,SAASC,EAAyB,CAChC,KAAK,IAAI,SACPA,IAAU,OAASjB,EAAc,KAAOA,EAAc,KACxD,CACF,CAEA,UAAUkB,EAA0B,CAClC,KAAK,IAAI,UAAUA,CAAM,CAC3B,CAEA,QAAQC,EAAc,CACpB,KAAK,IAAI,QAAQA,CAAI,CACvB,CAEA,SAAU,CACR,KAAK,IAAI,OAAO,EAChBhB,EAAS,SAAW,IACtB,CACF,EA1HaA,EACI,SAA4B,KADtC,IAAMiB,EAANjB,ECXP,OAAOkB,MAAW,QAIX,IAAMC,EAAMC,EAAM,OAAO,CAC9B,QAASC,CACX,CAAC,EAEDF,EAAI,aAAa,QAAQ,IACtBG,GAAaA,EACbC,IACKA,EAAM,SAAS,SAAW,KAC5BC,EAAS,EAEJ,QAAQ,OAAOD,CAAK,EAE/B,EChBA,IAAAE,EAAA,GAAAC,EAAAD,EAAA,cAAAE,EAAA,cAAAC,EAAA,YAAAC,ICEA,IAAIC,EAAiB,GAErB,SAASC,EAAQC,EAAe,CAC1BA,IAAU,KACdF,EAASE,EACTC,EAAI,SAAS,QAAQ,OAAO,cAAmB,UAAUD,CAAK,GAChE,CAEA,SAASE,GAAW,CAClBJ,EAAS,GACTG,EAAI,SAAS,QAAQ,OAAO,cAAmB,EACjD,CAEA,IAAME,EAAY,IAAML,ECfxB,SAASM,EACPC,EACAC,EACA,CACA,IAAIC,EAEJ,MAAO,IAAIC,KACLD,GAAO,aAAaA,CAAK,EACtB,IAAI,QAASE,GAAY,CAC9BF,EAAQ,WAAW,SAAY,CAC7B,IAAMG,EAAS,MAAML,EAAG,GAAGG,CAAI,EAC/BC,EAAQC,CAAM,CAChB,EAAGJ,CAAK,CACV,CAAC,EAEL,CCZO,IAAMK,EAAa,MAAOC,GAA6C,CAC5E,GAAI,CAEF,OADiB,MAAMC,EAAI,KAAK,sBAAuBD,CAAM,GAC7C,IAClB,OAASE,EAAO,CACd,cAAQ,MAAM,qIAA6BA,CAAK,EAC1CA,CACR,CACF,ECLA,eAAeC,EACbC,EACAC,EACAC,EACoB,CACpB,IAAIC,EAA2B,CAC7B,KAAMH,EACN,MAAOC,GAAgBG,EAAU,EACjC,GAAGF,CACL,EAkBA,GAAI,CAEF,OADuB,MAAMG,EAAWF,CAAU,CAEpD,OAASG,EAAO,CACd,MAAMA,CACR,CACF,CAEA,IAAMC,EAAcC,EAAST,EAAW,GAAG,EAE3C,eAAeU,EACbT,EACAC,EACAC,EACA,CACA,OAAO,MAAMK,EAAYP,EAAOC,EAAOC,CAAe,CACxD,CC/CA,IAAMQ,EAAa,MAAOC,EAAmBC,IAAkB,CAC7D,GAAI,CACF,IAAMC,EAAyC,CAAC,EAEhD,OAAAF,EAAM,QAASG,GAAM,CACnBD,EAAO,KAAK,CAAE,IAAKC,EAAE,CAAC,EAAG,IAAKA,EAAE,CAAC,CAAE,CAAC,CACtC,CAAC,GACgB,MAAMC,EAAI,KAAK,qBAAsB,CACpD,OAAAF,EACA,MAAOD,GAAgBI,EAAU,CACnC,CAAC,GACe,IAClB,OAASC,EAAK,CACZ,cAAQ,MAAMA,CAAG,EACXA,CACR,CACF,ECdA,eAAeC,EACbC,EACAC,EACAC,EACmB,CACnB,GAAI,CACF,IAAMC,EAAM,MAAMC,EAAWJ,EAAOE,CAAK,EAEzC,OAAKC,GAAK,KAEaA,EAAI,KAEf,IAAKE,GAAU,CACzB,IAAMC,EAAU,CAAE,GAAGD,CAAM,EAE3B,OAAIC,EAAQ,OAAO,QAAQ,SACzBA,EAAQ,MAAM,OAASA,EAAQ,MAAM,OAAO,IAAKC,IAAO,CACtD,GAAGA,EACH,SACEN,IAAa,WAAa,OAAOM,EAAE,UAAa,SAC5CC,EAAgBD,EAAE,QAAQ,EAC1BA,EAAE,QACV,EAAE,GAGGD,CACT,CAAC,EAlBsBH,CAmBzB,OAASM,EAAO,CACd,MAAMA,CACR,CACF,CClCA,IAAAC,EAAA,GAAAC,EAAAD,EAAA,cAAAE,ICYA,SAASC,GAAuB,CAC9B,IAAMC,EAAU,SAAS,qBAAqB,QAAQ,EACtD,QAAWC,KAAUD,EACnB,GAAIC,EAAO,IAAI,SAAS,kBAAkB,EAAG,CAE3C,IAAMC,EADM,IAAI,IAAID,EAAO,GAAG,EACX,aAAa,IAAI,QAAQ,EAC5C,GAAIC,EAAQ,OAAOA,CACrB,CAEF,MAAO,EACT,CACSC,EAAQJ,EAAqB,CAAC","names":["BASE_URL","DARK","LIGHT","VECTOR","geojsonPolyline","encoded","points","index","len","lat","lng","b","shift","result","dlat","dlng","CameraController","map","zoom","smooth","bearing","pitch","is3D","options","createDefaultMarkerSvg","color","innerSvg","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","getSearch","param","token","additionalParam","searchData","getApiKey","searchPost","error","debouncedFn","debounce","Search","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.3.6",
3
+ "version": "1.3.9",
4
4
  "description": "mahal_map",
5
5
  "keywords": [
6
6
  "map",