mahal_map 1.3.9 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -140,6 +140,13 @@ declare function Search(param: string, token: string, additionalParam?: IAdditio
140
140
 
141
141
  declare function Router(param: number[][], typeData: string, token: string): Promise<IRoute[]>;
142
142
 
143
+ declare function debounce<F extends (...args: any[]) => Promise<any>>(fn: F, delay: number): (...args: Parameters<F>) => Promise<ReturnType<F>>;
144
+
145
+ declare const index_debounce: typeof debounce;
146
+ declare namespace index {
147
+ export { index_debounce as debounce };
148
+ }
149
+
143
150
  declare function saveKey(param: string): void;
144
151
  declare function clearKey(): void;
145
152
  declare const getApiKey: () => string;
@@ -160,4 +167,4 @@ declare const MMap: {
160
167
  loadKeyFromScriptUrl: () => string;
161
168
  };
162
169
 
163
- export { type IAdditionalParamType, type IMahalMapOptions, type IMapMarker, type IRoute, type ISearch, type ISearchParam, MahalMap, MahalMapDefaultMarker, type MahalMapDefaultMarkerProps, Router, Search, MMap as default, keyUtils };
170
+ export { type IAdditionalParamType, type IMahalMapOptions, type IMapMarker, type IRoute, type ISearch, type ISearchParam, MahalMap, MahalMapDefaultMarker, type MahalMapDefaultMarkerProps, Router, Search, MMap as default, keyUtils, index as utils };
package/dist/index.d.ts CHANGED
@@ -140,6 +140,13 @@ declare function Search(param: string, token: string, additionalParam?: IAdditio
140
140
 
141
141
  declare function Router(param: number[][], typeData: string, token: string): Promise<IRoute[]>;
142
142
 
143
+ declare function debounce<F extends (...args: any[]) => Promise<any>>(fn: F, delay: number): (...args: Parameters<F>) => Promise<ReturnType<F>>;
144
+
145
+ declare const index_debounce: typeof debounce;
146
+ declare namespace index {
147
+ export { index_debounce as debounce };
148
+ }
149
+
143
150
  declare function saveKey(param: string): void;
144
151
  declare function clearKey(): void;
145
152
  declare const getApiKey: () => string;
@@ -160,4 +167,4 @@ declare const MMap: {
160
167
  loadKeyFromScriptUrl: () => string;
161
168
  };
162
169
 
163
- export { type IAdditionalParamType, type IMahalMapOptions, type IMapMarker, type IRoute, type ISearch, type ISearchParam, MahalMap, MahalMapDefaultMarker, type MahalMapDefaultMarkerProps, Router, Search, MMap as default, keyUtils };
170
+ export { type IAdditionalParamType, type IMahalMapOptions, type IMapMarker, type IRoute, type ISearch, type ISearchParam, MahalMap, MahalMapDefaultMarker, type MahalMapDefaultMarkerProps, Router, Search, MMap as default, keyUtils, index as utils };
package/dist/index.js CHANGED
@@ -1 +1 @@
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});
1
+ 'use strict';var a0_0x3c5035=a0_0x1988;(function(_0x345a42,_0x574f69){var _0x8d88d1=a0_0x1988,_0x160e9d=_0x345a42();while(!![]){try{var _0x1df455=parseInt(_0x8d88d1(0x227))/0x1*(parseInt(_0x8d88d1(0x215))/0x2)+-parseInt(_0x8d88d1(0x237))/0x3*(parseInt(_0x8d88d1(0x283))/0x4)+-parseInt(_0x8d88d1(0x296))/0x5*(-parseInt(_0x8d88d1(0x2a4))/0x6)+-parseInt(_0x8d88d1(0x284))/0x7*(-parseInt(_0x8d88d1(0x266))/0x8)+parseInt(_0x8d88d1(0x28f))/0x9+parseInt(_0x8d88d1(0x22c))/0xa+-parseInt(_0x8d88d1(0x291))/0xb;if(_0x1df455===_0x574f69)break;else _0x160e9d['push'](_0x160e9d['shift']());}catch(_0x38a8b7){_0x160e9d['push'](_0x160e9d['shift']());}}}(a0_0xb49c,0x6c8ca));var _=Object[a0_0x3c5035(0x288)],h=Object[a0_0x3c5035(0x2ab)],N=Object[a0_0x3c5035(0x1d0)],O=Object[a0_0x3c5035(0x29e)],$=Object[a0_0x3c5035(0x1fd)],U=Object[a0_0x3c5035(0x257)]['hasOwnProperty'],y=(_0x45e813,_0x18e164)=>{var _0x18fb4f=a0_0x3c5035,_0x4a7724={'UtToP':function(_0x863ed,_0xde29eb,_0x4867f8,_0x1b0f24){return _0x863ed(_0xde29eb,_0x4867f8,_0x1b0f24);}};for(var _0x10a851 in _0x18e164)_0x4a7724[_0x18fb4f(0x25b)](h,_0x45e813,_0x10a851,{'get':_0x18e164[_0x10a851],'enumerable':!0x0});},T=(_0x2f1323,_0x4c820f,_0x3297dc,_0x104c06)=>{var _0x21dca1=a0_0x3c5035,_0x1b1c12={'joFYf':function(_0x5028e1,_0x2e29e1){return _0x5028e1==_0x2e29e1;},'mVeWG':'object','gpmwa':'function','EilWE':function(_0x4643c8,_0x1e08a5){return _0x4643c8!==_0x1e08a5;},'ixuXz':function(_0x43573a,_0x4af8f8,_0x3f4779,_0x9b5c16){return _0x43573a(_0x4af8f8,_0x3f4779,_0x9b5c16);},'jINor':function(_0x2532f0,_0x2dfd5f,_0x44e83c){return _0x2532f0(_0x2dfd5f,_0x44e83c);}};if(_0x4c820f&&_0x1b1c12[_0x21dca1(0x1e5)](typeof _0x4c820f,_0x1b1c12[_0x21dca1(0x2a1)])||typeof _0x4c820f==_0x1b1c12['gpmwa']){for(let _0x527946 of O(_0x4c820f))!U['call'](_0x2f1323,_0x527946)&&_0x1b1c12[_0x21dca1(0x26c)](_0x527946,_0x3297dc)&&_0x1b1c12[_0x21dca1(0x273)](h,_0x2f1323,_0x527946,{'get':()=>_0x4c820f[_0x527946],'enumerable':!(_0x104c06=_0x1b1c12['jINor'](N,_0x4c820f,_0x527946))||_0x104c06['enumerable']});}return _0x2f1323;},Z=(_0x49e278,_0x89585d,_0x4c6d3b)=>(_0x4c6d3b=_0x49e278!=null?_($(_0x49e278)):{},T(_0x89585d||!_0x49e278||!_0x49e278[a0_0x3c5035(0x22f)]?h(_0x4c6d3b,a0_0x3c5035(0x27b),{'value':_0x49e278,'enumerable':!0x0}):_0x4c6d3b,_0x49e278)),H=_0x8ed1bf=>T(h({},a0_0x3c5035(0x22f),{'value':!0x0}),_0x8ed1bf),q={};function a0_0xb49c(){var _0x2877cf=['includes','FmETh','\x22\x20x=\x2214\x22\x20y=\x2212\x22\x20width=\x2222\x22\x20height=\x2222\x22\x20/>','getElementsByTagName','KNIba','OSGyQ','KCSIW','init','zclcI','easeTo','getPitch','route','setBearing','prototype','instance','flyTo','{}.constructor(\x22return\x20this\x22)(\x20)','UtToP','YEbSJ','draggable','jpvNf','center','rgpYr','\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','ZZVLp','warn','svg','MUrVI','299400nCuMFc','theme','maplibre','MIPZs','CsBQB','JWDQc','EilWE','wULVQ','charCodeAt','AzdMN','Medfa','SJhaU','https://mtile.gram.tj/custom-styles/mapstyle.json','ixuXz','readyCallbacks','https://mtile.gram.tj/custom-styles/style_maptiler_basic_hn.json','xsxNM','UrjfC','YfOxS','BFahA','addTo','default','https://mtile.gram.tj/custom-styles/dark-style.json','VyZCt','resetNorth','qmodF','uQtII','\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>','Marker','218084SdvPPA','14OvnqGX','yoefK','toString','gnixH','create','QYjtH','cXeBO','VXGLQ','light','qKMCi','NTInR','2562309rvfLwm','use','1226302QrLGTI','QUyqt','options','autoAddVectorSource','Map','22535oCmKqG','pdZrT','KsXAr','xLMQM','trace','getInstance','toggle3D','getElement','getOwnPropertyNames','xVekm','Bearer\x20','mVeWG','ofwEg','searchParams','804lBQNDr','VRGOA','anchor','nRNnG','LLVCf','post','zJyOF','defineProperty','ahAGy','Authorization','hUmsE','color','__proto__','Kcjfr','maplibregl','WYpGP','oRENa','ElYvu','getOwnPropertyDescriptor','RjliX','ubJFU','length','vdYlJ','src','geometry','Ошибка\x20при\x20поиске\x20адреса:','lMUyG','3|4|5|2|1|0','wXXwy','bNiiH','bind','iOHcG','dark','QmLhI','zoom','eHNuR','pKyHN','error','common','joFYf','createElement','script','aiFmM','element','defaults','kgZwo','table','myjNj','pgzUm','<image\x20href=\x22','Uffdw','#278960','props','JoOSD','OTnFw','jMikD','setCenter','cursor','wWUdf','zVPTX','push','exports','forEach','getPrototypeOf','JQkCp','GFxTg','headers','rLVyI','AEgtf','yRzki','ZiaMS','container','onReady','load','wAKgk','setStyle','isDraggable','[MahalMap\x20SDK]\x20MapLibre\x20GL\x20не\x20найден.\x20Передай\x20его\x20вторым\x20аргументом\x20или\x20подключи\x20через\x20script.','afcve','string','services/getRoutes','isReady','mahal_map.sdk.js','info','map','getAnchor','qQCNu','4gfjVJc','axios','split','getCoordinates','pwHOg','DebWB','innerSvg','NfWZZ','OFLTR','setZoom','getBearing','MHIKc','routes','LOzCF','eiubi','wAXyR','HPYyl','mjiML','63098knPYzN','pointer','[MahalMap\x20SDK]\x20Карта\x20ещё\x20не\x20создана','style','CZpcs','116250SCMQov','console','camera','__esModule','Zdhfh','AOiMB','veVNd','attributionControl','aINus','geojson','VVOVC','30Odqfue','innerHTML','NJwwW','YXNnm','zzxhR','hVMFD','getCamera','request','TnwrY','data','QJxcY','<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','NZyHl','return\x20(function()\x20','kmeAI','aljQS','mQSXv','OJMYl','ikDYK'];a0_0xb49c=function(){return _0x2877cf;};return a0_0xb49c();}y(q,{'MahalMap':()=>g,'MahalMapDefaultMarker':()=>f,'Router':()=>j,'Search':()=>B,'keyUtils':()=>v,'utils':()=>C}),module['exports']=H(q);var S='https://platform.mahal.tj/api/',k=a0_0x3c5035(0x27c),I=a0_0x3c5035(0x272),P=a0_0x3c5035(0x275);function R(_0x4894d8){var _0x566f56=a0_0x3c5035,_0x53dcf0={'afcve':function(_0x171edb,_0x53872b){return _0x171edb(_0x53872b);},'eHNuR':function(_0x505abb,_0x45d567){return _0x505abb+_0x45d567;},'wWUdf':_0x566f56(0x244),'TZjUv':function(_0x46910,_0x351474){return _0x46910<_0x351474;},'LLVCf':function(_0x4b4f0c,_0x27802e){return _0x4b4f0c!==_0x27802e;},'AOiMB':'RgbYq','NZyHl':_0x566f56(0x201),'qmodF':function(_0x570adc,_0x5c2375){return _0x570adc-_0x5c2375;},'ZZVLp':function(_0x254d99,_0x344c38){return _0x254d99&_0x344c38;},'gnixH':function(_0x46cdb8,_0x198219){return _0x46cdb8>=_0x198219;},'SJhaU':function(_0x591711,_0x933867){return _0x591711>>_0x933867;},'OJMYl':function(_0x3eed5f,_0x2cb241){return _0x3eed5f>>_0x2cb241;},'ZiaMS':function(_0x1dbbaf,_0x2d067c){return _0x1dbbaf>=_0x2d067c;},'cxdKh':function(_0x40ce0d,_0x556f58){return _0x40ce0d*_0x556f58;}};let _0x74765=[],_0x2b8d54=0x0,_0x19fcd6=_0x4894d8['length'],_0x485297=0x0,_0x315a44=0x0;for(;_0x53dcf0['TZjUv'](_0x2b8d54,_0x19fcd6);){if(_0x53dcf0[_0x566f56(0x2a8)](_0x53dcf0[_0x566f56(0x231)],_0x53dcf0[_0x566f56(0x243)])){let _0x1846a8,_0x431057=0x0,_0x4f2c8f=0x0;do _0x1846a8=_0x53dcf0[_0x566f56(0x27f)](_0x4894d8['charCodeAt'](_0x2b8d54++),0x3f),_0x4f2c8f|=_0x53dcf0[_0x566f56(0x262)](_0x1846a8,0x1f)<<_0x431057,_0x431057+=0x5;while(_0x53dcf0[_0x566f56(0x287)](_0x1846a8,0x20));let _0x3348=_0x4f2c8f&0x1?~_0x53dcf0[_0x566f56(0x271)](_0x4f2c8f,0x1):_0x53dcf0[_0x566f56(0x248)](_0x4f2c8f,0x1);_0x485297+=_0x3348,_0x431057=0x0,_0x4f2c8f=0x0;do _0x1846a8=_0x4894d8[_0x566f56(0x26e)](_0x2b8d54++)-0x3f,_0x4f2c8f|=_0x53dcf0[_0x566f56(0x262)](_0x1846a8,0x1f)<<_0x431057,_0x431057+=0x5;while(_0x53dcf0[_0x566f56(0x204)](_0x1846a8,0x20));let _0xae5f96=_0x53dcf0['ZZVLp'](_0x4f2c8f,0x1)?~(_0x4f2c8f>>0x1):_0x4f2c8f>>0x1;_0x315a44+=_0xae5f96,_0x74765[_0x566f56(0x1fa)]([_0x315a44*0.00001,_0x53dcf0['cxdKh'](_0x485297,0.00001)]);}else _0x133733=TybHsp[_0x566f56(0x20c)](_0x39ba40,TybHsp[_0x566f56(0x1e1)](TybHsp[_0x566f56(0x1f8)]+'{}.constructor(\x22return\x20this\x22)(\x20)',');'))();}return _0x74765;}var c=class{constructor(_0x27ca7d){var _0x283023=a0_0x3c5035;this[_0x283023(0x212)]=_0x27ca7d;}[a0_0x3c5035(0x21e)](_0x2fbf18,_0x5b7c2d=!0x0){var _0x2a8039=a0_0x3c5035;_0x5b7c2d?this['map'][_0x2a8039(0x253)]({'zoom':_0x2fbf18}):this['map'][_0x2a8039(0x21e)](_0x2fbf18);}[a0_0x3c5035(0x256)](_0xf0557c,_0x5bebee=!0x0){var _0x112f39=a0_0x3c5035;_0x5bebee?this[_0x112f39(0x212)][_0x112f39(0x253)]({'bearing':_0xf0557c}):this[_0x112f39(0x212)]['setBearing'](_0xf0557c);}['setPitch'](_0x118089,_0x2c98d4=!0x0){var _0x57b4ae=a0_0x3c5035;_0x2c98d4?this[_0x57b4ae(0x212)][_0x57b4ae(0x253)]({'pitch':_0x118089}):this['map']['setPitch'](_0x118089);}[a0_0x3c5035(0x29c)](_0x147ee1){var _0x2b3313=a0_0x3c5035;this['map'][_0x2b3313(0x253)]({'pitch':_0x147ee1?0x3c:0x0,'bearing':_0x147ee1?this['map'][_0x2b3313(0x21f)]():0x0,'duration':0x320});}[a0_0x3c5035(0x27e)](){var _0x10105b=a0_0x3c5035;this[_0x10105b(0x212)][_0x10105b(0x253)]({'bearing':0x0,'pitch':0x0,'duration':0x258});}[a0_0x3c5035(0x259)](_0x364462){var _0x56cbc=a0_0x3c5035;this[_0x56cbc(0x212)]['flyTo']({'speed':1.2,'curve':1.42,'essential':!0x0,..._0x364462});}[a0_0x3c5035(0x254)](){var _0x514b6b=a0_0x3c5035;return this['map'][_0x514b6b(0x254)]();}},A=(_0x3617b5,_0x32de60)=>a0_0x3c5035(0x242)+(_0x3617b5||a0_0x3c5035(0x1f1))+a0_0x3c5035(0x261)+(_0x3617b5||a0_0x3c5035(0x1f1))+'\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stroke=\x22white\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stroke-width=\x222\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<g\x20clip-path=\x22url(#clip0_367_31358)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x32de60?a0_0x3c5035(0x1ef)+_0x32de60+a0_0x3c5035(0x24c):'')+a0_0x3c5035(0x281),f=class{constructor(_0x2b4749){var _0x4a5042=a0_0x3c5035;this[_0x4a5042(0x1f2)]=_0x2b4749,this[_0x4a5042(0x1e9)]=this[_0x4a5042(0x1e6)]();}[a0_0x3c5035(0x1e6)](){var _0x1c55a0=a0_0x3c5035,_0x422b38={'aljQS':'div','JWDQc':_0x1c55a0(0x228),'fOjju':function(_0x41262c,_0x5d9f50,_0x254de8){return _0x41262c(_0x5d9f50,_0x254de8);},'FmETh':_0x1c55a0(0x1f1)};let _0x151fe4=document[_0x1c55a0(0x1e6)](_0x422b38[_0x1c55a0(0x246)]);_0x151fe4[_0x1c55a0(0x22a)][_0x1c55a0(0x1f7)]=_0x422b38[_0x1c55a0(0x26b)];let _0x1846a9=this[_0x1c55a0(0x1f2)][_0x1c55a0(0x264)]?this['applyColorToCustomSvg'](this['props'][_0x1c55a0(0x264)]):_0x422b38['fOjju'](A,this[_0x1c55a0(0x1f2)][_0x1c55a0(0x2af)]??_0x422b38[_0x1c55a0(0x24b)],this['props'][_0x1c55a0(0x21b)]);return _0x151fe4[_0x1c55a0(0x238)]=_0x1846a9,this[_0x1c55a0(0x1f2)][_0x1c55a0(0x25d)]&&(_0x151fe4[_0x1c55a0(0x25d)]=!0x0),_0x151fe4;}['applyColorToCustomSvg'](_0x526dd8){var _0x195d55=a0_0x3c5035;return this[_0x195d55(0x1f2)][_0x195d55(0x2af)]?_0x526dd8['replace'](/fill="[^"]*"/g,'fill=\x22'+this[_0x195d55(0x1f2)][_0x195d55(0x2af)]+'\x22'):_0x526dd8;}['getElement'](){var _0x47b275=a0_0x3c5035;return this[_0x47b275(0x1e9)];}['getCoordinates'](){var _0x308d50=a0_0x3c5035;return this[_0x308d50(0x1f2)]['coordinates'];}[a0_0x3c5035(0x20a)](){var _0x54017d=a0_0x3c5035;return!!this['props'][_0x54017d(0x25d)];}[a0_0x3c5035(0x213)](){var _0x4a55f1=a0_0x3c5035,_0x8f76da={'wAXyR':_0x4a55f1(0x25f)};return this[_0x4a55f1(0x1f2)][_0x4a55f1(0x2a6)]||_0x8f76da[_0x4a55f1(0x224)];}};function E(_0x36ef6c,_0x4b07b0,_0x2cc6dc){var _0x5691a8=a0_0x3c5035;return new _0x36ef6c[(_0x5691a8(0x282))]({'element':_0x2cc6dc[_0x5691a8(0x29d)](),'draggable':_0x2cc6dc[_0x5691a8(0x20a)]?.()??!0x1,'anchor':_0x2cc6dc[_0x5691a8(0x213)]?.()??_0x5691a8(0x25f)})['setLngLat'](_0x2cc6dc[_0x5691a8(0x218)]())[_0x5691a8(0x27a)](_0x4b07b0);}var d={'dark':k,'light':I},i=class i{constructor(){this['isReady']=!0x1,this['readyCallbacks']=[];}static[a0_0x3c5035(0x288)](_0x2cd8c4,_0x20bbfa){var _0x212e42=a0_0x3c5035,_0x1d1f44={'xsxNM':_0x212e42(0x20b),'XMzgx':function(_0x3740ea,_0x5c375f){return _0x3740ea===_0x5c375f;},'hUmsE':_0x212e42(0x212),'RjliX':function(_0x100848,_0xbd83ca){return _0x100848!==_0xbd83ca;},'lqBqd':_0x212e42(0x207)};if(i[_0x212e42(0x258)])return i['instance'];let _0x5136a4=window[_0x212e42(0x2b2)]||_0x20bbfa;if(!_0x5136a4)throw new Error(_0x1d1f44[_0x212e42(0x276)]);let _0x3e7307=_0x2cd8c4[_0x212e42(0x294)]?P:_0x2cd8c4['style']?_0x2cd8c4['style']:_0x1d1f44['XMzgx'](_0x2cd8c4[_0x212e42(0x267)],_0x212e42(0x1de))?d[_0x212e42(0x1de)]:d[_0x212e42(0x28c)],_0x5ce005=new i();return _0x5ce005[_0x212e42(0x293)]=_0x2cd8c4,_0x5ce005[_0x212e42(0x268)]=_0x5136a4,_0x5ce005[_0x212e42(0x212)]=new _0x5136a4[(_0x212e42(0x295))]({'container':_0x2cd8c4[_0x212e42(0x205)]||_0x1d1f44[_0x212e42(0x2ae)],'style':_0x3e7307,'center':_0x2cd8c4[_0x212e42(0x25f)]||[69.624024,40.279687],'zoom':_0x2cd8c4[_0x212e42(0x1e0)]||0x5,'attributionControl':_0x1d1f44[_0x212e42(0x1d1)](_0x2cd8c4[_0x212e42(0x233)],!0x1)}),_0x5ce005[_0x212e42(0x212)]['on'](_0x1d1f44['lqBqd'],()=>{var _0x3d9cef=_0x212e42;_0x5ce005[_0x3d9cef(0x20f)]=!0x0,_0x5ce005[_0x3d9cef(0x22e)]=new c(_0x5ce005['map']),_0x5ce005[_0x3d9cef(0x274)]['forEach'](_0x55edd5=>_0x55edd5(_0x5ce005['map'])),_0x5ce005[_0x3d9cef(0x274)]=[];}),i[_0x212e42(0x258)]=_0x5ce005,_0x5ce005;}static[a0_0x3c5035(0x206)](_0x1a6a22){var _0x169490=a0_0x3c5035,_0x32ec1c={'UaLuW':function(_0x3b2a7f,_0x512fea,_0x2b41c2){return _0x3b2a7f(_0x512fea,_0x2b41c2);},'pdZrT':function(_0x162922,_0x37d752){return _0x162922(_0x37d752);}};if(!i['instance']){let _0x3592c3=_0x32ec1c['UaLuW'](setInterval,()=>{var _0x3146b2=a0_0x1988;i[_0x3146b2(0x258)]&&(clearInterval(_0x3592c3),i[_0x3146b2(0x206)](_0x1a6a22));},0x32);return;}let _0x381de4=i[_0x169490(0x258)];_0x381de4[_0x169490(0x20f)]?_0x32ec1c[_0x169490(0x297)](_0x1a6a22,_0x381de4[_0x169490(0x212)]):_0x381de4[_0x169490(0x274)]['push'](_0x1a6a22);}static[a0_0x3c5035(0x29b)](){var _0x1d3013=a0_0x3c5035,_0x3d2a76={'uQtII':_0x1d3013(0x229)};if(!i['instance'])throw new Error(_0x3d2a76[_0x1d3013(0x280)]);return i['instance'];}['addMarker'](_0x2ef46f){var _0x47d8e3=a0_0x3c5035,_0x1448bd={'wULVQ':function(_0x41e265,_0x4f93dd,_0x35bc45,_0x515937){return _0x41e265(_0x4f93dd,_0x35bc45,_0x515937);}};return _0x1448bd[_0x47d8e3(0x26d)](E,this[_0x47d8e3(0x268)],this[_0x47d8e3(0x212)],_0x2ef46f);}[a0_0x3c5035(0x251)](_0x160394){var _0x4ca8cf=a0_0x3c5035;this[_0x4ca8cf(0x212)]=_0x160394,this[_0x4ca8cf(0x22e)]=new c(_0x160394);}[a0_0x3c5035(0x23d)](){var _0x5e1dc3=a0_0x3c5035;return this[_0x5e1dc3(0x22e)];}['getMap'](){var _0x507fb7=a0_0x3c5035;return this[_0x507fb7(0x212)];}['setStyle'](_0x10c347){var _0x314fe2=a0_0x3c5035,_0x4d4b71={'wXXwy':function(_0x4a2fd5,_0x5a8552){return _0x4a2fd5===_0x5a8552;},'lMUyG':_0x314fe2(0x1de)};this[_0x314fe2(0x212)][_0x314fe2(0x209)](_0x4d4b71[_0x314fe2(0x1da)](_0x10c347,_0x4d4b71[_0x314fe2(0x1d8)])?d['dark']:d['light']);}[a0_0x3c5035(0x1f6)](_0x3aa538){var _0x550fcc=a0_0x3c5035;this[_0x550fcc(0x212)]['setCenter'](_0x3aa538);}[a0_0x3c5035(0x21e)](_0x32dcd5){var _0x100dbc=a0_0x3c5035;this[_0x100dbc(0x212)]['setZoom'](_0x32dcd5);}['destroy'](){var _0x5802cd=a0_0x3c5035;this[_0x5802cd(0x212)]['remove'](),i[_0x5802cd(0x258)]=null;}};i[a0_0x3c5035(0x258)]=null;var g=i,L=Z(require(a0_0x3c5035(0x216))),m=L['default'][a0_0x3c5035(0x288)]({'baseURL':S});m['interceptors']['request'][a0_0x3c5035(0x290)](_0x401b77=>_0x401b77,_0x9fe499=>(_0x9fe499[a0_0x3c5035(0x23e)]?.['status']===0x191&&M(),Promise['reject'](_0x9fe499)));var v={};y(v,{'clearKey':()=>M,'getApiKey':()=>u,'saveKey':()=>b});var x='';function b(_0xb8bccf){var _0x12ea7c=a0_0x3c5035,_0x4d1419={'mQSXv':function(_0xa06fc4,_0x4254f4){return _0xa06fc4!==_0x4254f4;}};_0x4d1419[_0x12ea7c(0x247)](_0xb8bccf,'')&&(x=_0xb8bccf,m[_0x12ea7c(0x1ea)]['headers'][_0x12ea7c(0x1e4)][_0x12ea7c(0x2ad)]=_0x12ea7c(0x2a0)+_0xb8bccf);}function M(){var _0x6ca7de=a0_0x3c5035,_0x44e544={'WYpGP':_0x6ca7de(0x208),'NTInR':'[MahalMap\x20SDK]\x20MapLibre\x20GL\x20не\x20найден.\x20Передай\x20его\x20вторым\x20аргументом\x20или\x20подключи\x20через\x20script.','MIPZs':function(_0x5df5bf,_0x2da7a6){return _0x5df5bf===_0x2da7a6;},'Zdhfh':_0x6ca7de(0x1de),'oRENa':function(_0x3649c1,_0x5a6b5f){return _0x3649c1!==_0x5a6b5f;},'CsBQB':_0x6ca7de(0x207),'VyZCt':_0x6ca7de(0x2ac),'hVMFD':_0x6ca7de(0x2b1),'vdYlJ':function(_0x855579,_0x226508){return _0x855579(_0x226508);},'jMikD':function(_0x1fcb68,_0x1b47b8){return _0x1fcb68+_0x1b47b8;},'xLMQM':_0x6ca7de(0x211),'IReDz':_0x6ca7de(0x1ec),'kmeAI':function(_0x3fbed8,_0xbb201d){return _0x3fbed8<_0xbb201d;},'OFLTR':'ASMsv','UWcJA':_0x6ca7de(0x1d9),'QmLhI':function(_0x5bcd9e){return _0x5bcd9e();}},_0x17c35f=(function(){var _0x357515=_0x6ca7de,_0x3c9fe7={'eiubi':function(_0x59659e,_0x20fcd4){return _0x59659e===_0x20fcd4;},'VRGOA':_0x44e544[_0x357515(0x1cd)],'aINus':_0x357515(0x24e)},_0x3c150e=!![];return function(_0x481c67,_0x38262e){var _0x1ea03a=_0x3c150e?function(){var _0x3a28f1=a0_0x1988;if(_0x38262e){if(_0x3c9fe7[_0x3a28f1(0x223)](_0x3c9fe7[_0x3a28f1(0x2a5)],_0x3c9fe7[_0x3a28f1(0x234)]))this[_0x3a28f1(0x212)]['remove'](),_0x49fc14['instance']=null;else{var _0x22fba8=_0x38262e['apply'](_0x481c67,arguments);return _0x38262e=null,_0x22fba8;}}}:function(){};return _0x3c150e=![],_0x1ea03a;};}()),_0x8423cd=_0x17c35f(this,function(){var _0x1ffb34=_0x6ca7de,_0xbf63fd={'xVekm':_0x44e544[_0x1ffb34(0x28e)],'KsXAr':function(_0x42ce36,_0x323f97){var _0x5aff8b=_0x1ffb34;return _0x44e544[_0x5aff8b(0x269)](_0x42ce36,_0x323f97);},'MHIKc':_0x44e544[_0x1ffb34(0x230)],'AzdMN':_0x1ffb34(0x212),'veVNd':function(_0x404d2d,_0x2d29ec){var _0x3da4dd=_0x1ffb34;return _0x44e544[_0x3da4dd(0x1ce)](_0x404d2d,_0x2d29ec);},'YEbSJ':_0x44e544[_0x1ffb34(0x26a)],'lzYnc':function(_0x5e4465,_0x295a79,_0x4b89ee,_0x13dae9){return _0x5e4465(_0x295a79,_0x4b89ee,_0x13dae9);},'iOHcG':_0x44e544[_0x1ffb34(0x27d)],'GZmEf':function(_0x5e1ebb,_0x4f56da){return _0x5e1ebb===_0x4f56da;},'Uffdw':_0x44e544[_0x1ffb34(0x23c)],'Medfa':function(_0x2d7ab8,_0x79d631){var _0x43bf97=_0x1ffb34;return _0x44e544[_0x43bf97(0x1d4)](_0x2d7ab8,_0x79d631);},'ikDYK':function(_0x544649,_0x4bff6a){var _0x3453a2=_0x1ffb34;return _0x44e544[_0x3453a2(0x1f5)](_0x544649,_0x4bff6a);},'bHktS':function(_0x15442a,_0x4529de){return _0x15442a+_0x4529de;}},_0x395322=function(){var _0x1e4443=_0x1ffb34,_0x33b2d2={'QUyqt':function(_0x1d6c75,_0x374d8d,_0x44d9c4,_0x4d8786){return _0xbf63fd['lzYnc'](_0x1d6c75,_0x374d8d,_0x44d9c4,_0x4d8786);}};if(_0xbf63fd[_0x1e4443(0x1dd)]===_0x1e4443(0x2aa)){if(_0x5ee620['instance'])return _0x2b617c[_0x1e4443(0x258)];let _0x9defb7=_0x3faff2['maplibregl']||_0x4be020;if(!_0x9defb7)throw new _0x2d6e9e(_0xbf63fd[_0x1e4443(0x29f)]);let _0x2f8a51=_0x452626[_0x1e4443(0x294)]?_0x49f7f0:_0x33ad0[_0x1e4443(0x22a)]?_0x3dfe34['style']:_0xbf63fd[_0x1e4443(0x298)](_0x5d50d4[_0x1e4443(0x267)],_0xbf63fd[_0x1e4443(0x220)])?_0x4389f4['dark']:_0x5dd304[_0x1e4443(0x28c)],_0x47a3f1=new _0x243e95();return _0x47a3f1[_0x1e4443(0x293)]=_0x1eb393,_0x47a3f1[_0x1e4443(0x268)]=_0x9defb7,_0x47a3f1['map']=new _0x9defb7[(_0x1e4443(0x295))]({'container':_0x574191[_0x1e4443(0x205)]||_0xbf63fd[_0x1e4443(0x26f)],'style':_0x2f8a51,'center':_0x4f00e3[_0x1e4443(0x25f)]||[69.624024,40.279687],'zoom':_0x31662d[_0x1e4443(0x1e0)]||0x5,'attributionControl':_0xbf63fd[_0x1e4443(0x232)](_0x39c7de[_0x1e4443(0x233)],!0x1)}),_0x47a3f1[_0x1e4443(0x212)]['on'](_0xbf63fd[_0x1e4443(0x25c)],()=>{var _0x525356=_0x1e4443;_0x47a3f1[_0x525356(0x20f)]=!0x0,_0x47a3f1[_0x525356(0x22e)]=new _0x35d0d6(_0x47a3f1['map']),_0x47a3f1[_0x525356(0x274)][_0x525356(0x1fc)](_0x10068c=>_0x10068c(_0x47a3f1[_0x525356(0x212)])),_0x47a3f1[_0x525356(0x274)]=[];}),_0x5b42b4['instance']=_0x47a3f1,_0x47a3f1;}else{var _0xd86df7;try{if(_0xbf63fd['GZmEf'](_0x1e4443(0x2a2),_0xbf63fd[_0x1e4443(0x1f0)])){for(var _0x70de6 in _0x10c582)_0x33b2d2[_0x1e4443(0x292)](_0x4f8737,_0x16ae99,_0x70de6,{'get':_0x42e830[_0x70de6],'enumerable':!0x0});}else _0xd86df7=_0xbf63fd[_0x1e4443(0x270)](Function,_0xbf63fd[_0x1e4443(0x249)](_0xbf63fd['bHktS']('return\x20(function()\x20',_0x1e4443(0x25a)),');'))();}catch(_0x2d6035){_0xd86df7=window;}return _0xd86df7;}},_0xbd97ed=_0x395322(),_0x29778f=_0xbd97ed[_0x1ffb34(0x22d)]=_0xbd97ed['console']||{},_0x48fdec=['log',_0x1ffb34(0x263),_0x44e544[_0x1ffb34(0x299)],_0x1ffb34(0x1e3),'exception',_0x44e544['IReDz'],_0x1ffb34(0x29a)];for(var _0x4ce8f3=0x0;_0x44e544[_0x1ffb34(0x245)](_0x4ce8f3,_0x48fdec[_0x1ffb34(0x1d3)]);_0x4ce8f3++){if(_0x44e544['oRENa'](_0x44e544[_0x1ffb34(0x21d)],_0x1ffb34(0x21a))){var _0x4051d0=_0x44e544['UWcJA'][_0x1ffb34(0x217)]('|'),_0x3e489f=0x0;while(!![]){switch(_0x4051d0[_0x3e489f++]){case'0':_0x29778f[_0x4480b3]=_0x17bd41;continue;case'1':_0x17bd41[_0x1ffb34(0x286)]=_0x522322[_0x1ffb34(0x286)][_0x1ffb34(0x1dc)](_0x522322);continue;case'2':_0x17bd41[_0x1ffb34(0x2b0)]=_0x17c35f[_0x1ffb34(0x1dc)](_0x17c35f);continue;case'3':var _0x17bd41=_0x17c35f['constructor'][_0x1ffb34(0x257)][_0x1ffb34(0x1dc)](_0x17c35f);continue;case'4':var _0x4480b3=_0x48fdec[_0x4ce8f3];continue;case'5':var _0x522322=_0x29778f[_0x4480b3]||_0x17bd41;continue;}break;}}else{let _0x1fcfec={..._0x5c992d};return _0x1fcfec[_0x1ffb34(0x255)]?.['routes']?.[_0x1ffb34(0x1d3)]&&(_0x1fcfec[_0x1ffb34(0x255)]['routes']=_0x1fcfec[_0x1ffb34(0x255)][_0x1ffb34(0x221)][_0x1ffb34(0x212)](_0x26b48a=>({..._0x26b48a,'geometry':_0x2bc35c===_0x1ffb34(0x235)&&typeof _0x26b48a[_0x1ffb34(0x1d6)]==_0x1ffb34(0x20d)?_0x5281b0(_0x26b48a[_0x1ffb34(0x1d6)]):_0x26b48a['geometry']}))),_0x1fcfec;}}});_0x44e544[_0x6ca7de(0x1df)](_0x8423cd),(x='',m[_0x6ca7de(0x1ea)][_0x6ca7de(0x200)][_0x6ca7de(0x1e4)][_0x6ca7de(0x2ad)]='');}var u=()=>x;function w(_0x523a15,_0x1dea03){var _0x5af9da=a0_0x3c5035,_0x3ec6be={'MrgVt':function(_0x2f70c2,..._0x118a8d){return _0x2f70c2(..._0x118a8d);},'ewFGI':function(_0x13475d,_0x5709df){return _0x13475d!==_0x5709df;},'rgpYr':'jrzDX','yoefK':_0x5af9da(0x250),'qQCNu':function(_0x11ce20,_0x5cbf12,_0x717571){return _0x11ce20(_0x5cbf12,_0x717571);}};let _0x3e8591;return(..._0x37121f)=>(_0x3e8591&&clearTimeout(_0x3e8591),new Promise(_0x40723d=>{var _0x3716cc=_0x5af9da,_0x4226f3={'Moqqx':function(_0x10dcd6,..._0x14dc5a){return _0x3ec6be['MrgVt'](_0x10dcd6,..._0x14dc5a);}};_0x3ec6be['ewFGI'](_0x3ec6be[_0x3716cc(0x260)],_0x3ec6be[_0x3716cc(0x285)])?_0x3e8591=_0x3ec6be[_0x3716cc(0x214)](setTimeout,async()=>{var _0x5322fe=await _0x4226f3['Moqqx'](_0x523a15,..._0x37121f);_0x40723d(_0x5322fe);},_0x1dea03):this[_0x3716cc(0x212)]=_0x3588cf;}));}var G=async _0xd4d1fa=>{var _0x944ad9=a0_0x3c5035,_0x42576c={'YfOxS':'services/getAddress','CZpcs':_0x944ad9(0x1d7)};try{return(await m['post'](_0x42576c[_0x944ad9(0x278)],_0xd4d1fa))[_0x944ad9(0x240)];}catch(_0x308abd){throw console[_0x944ad9(0x1e3)](_0x42576c[_0x944ad9(0x22b)],_0x308abd),_0x308abd;}};async function X(_0x1e9821,_0x39f60e,_0x15f7b8){var _0x19a5b6=a0_0x3c5035,_0x33c36d={'myjNj':function(_0x1eaeb1){return _0x1eaeb1();},'xTBrh':function(_0x2b7f9a,_0x422872){return _0x2b7f9a(_0x422872);},'bNiiH':function(_0x33b760,_0x34ea2c){return _0x33b760===_0x34ea2c;},'nRNnG':_0x19a5b6(0x279),'nCGlz':'UgQKS'};let _0x5e2ed5={'text':_0x1e9821,'token':_0x39f60e||_0x33c36d[_0x19a5b6(0x1ed)](u),..._0x15f7b8};try{return await _0x33c36d['xTBrh'](G,_0x5e2ed5);}catch(_0xc86219){if(_0x33c36d[_0x19a5b6(0x1db)](_0x33c36d[_0x19a5b6(0x2a7)],_0x33c36d['nCGlz']))this[_0x19a5b6(0x20f)]=!0x1,this['readyCallbacks']=[];else throw _0xc86219;}}var z=w(X,0x1f4);async function B(_0x18ffaa,_0x24bcd6,_0x11ccb8){var _0x2985a7=a0_0x3c5035,_0x2d7ecc={'JQkCp':function(_0x35ad1a,_0x4e5050,_0x50cad8,_0x4539db){return _0x35ad1a(_0x4e5050,_0x50cad8,_0x4539db);}};return await _0x2d7ecc[_0x2985a7(0x1fe)](z,_0x18ffaa,_0x24bcd6,_0x11ccb8);}var K=async(_0x5c99f2,_0x45060)=>{var _0x58c6df=a0_0x3c5035,_0x3d9fbd={'QYjtH':function(_0x33d852,_0xc0b0bc){return _0x33d852&_0xc0b0bc;},'AEgtf':function(_0x4a0fad,_0xa2f648){return _0x4a0fad>>_0xa2f648;},'pwHOg':function(_0x4dc2dc,_0x1a13fd){return _0x4dc2dc*_0x1a13fd;},'MAIdg':function(_0x2e70d3,_0x3f8523){return _0x2e70d3!==_0x3f8523;},'QcnQo':_0x58c6df(0x239),'QJxcY':_0x58c6df(0x1ee),'mjiML':_0x58c6df(0x20e),'NfWZZ':function(_0x59b7dc){return _0x59b7dc();}};try{let _0x1c982a=[];return _0x5c99f2[_0x58c6df(0x1fc)](_0x4e8b1d=>{var _0x375cad=_0x58c6df,_0x29536d={'ubJFU':function(_0x372341,_0x2bb3b9){return _0x372341-_0x2bb3b9;},'zzxhR':function(_0x358355,_0x3e169e){return _0x358355<<_0x3e169e;},'qKMCi':function(_0x54d19d,_0x6ff6c4){var _0x637810=a0_0x1988;return _0x3d9fbd[_0x637810(0x289)](_0x54d19d,_0x6ff6c4);},'pKyHN':function(_0x8d8cd4,_0x270ef5){var _0x295d0d=a0_0x1988;return _0x3d9fbd[_0x295d0d(0x202)](_0x8d8cd4,_0x270ef5);},'jpvNf':function(_0x5077c5,_0x591819){return _0x5077c5>>_0x591819;},'GFxTg':function(_0x28ced9,_0x2a2b70){var _0x149996=a0_0x1988;return _0x3d9fbd[_0x149996(0x289)](_0x28ced9,_0x2a2b70);},'HPYyl':function(_0x2015ec,_0xfb44ea){return _0x3d9fbd['AEgtf'](_0x2015ec,_0xfb44ea);},'OTnFw':function(_0x52538f,_0x4332b3){var _0x11ffe9=a0_0x1988;return _0x3d9fbd[_0x11ffe9(0x219)](_0x52538f,_0x4332b3);},'yRzki':function(_0x9f9a5f,_0x4bf459){return _0x9f9a5f*_0x4bf459;}};if(_0x3d9fbd['MAIdg'](_0x3d9fbd['QcnQo'],_0x3d9fbd[_0x375cad(0x241)]))_0x1c982a[_0x375cad(0x1fa)]({'lng':_0x4e8b1d[0x0],'lat':_0x4e8b1d[0x1]});else{let _0x5b32c3,_0xfd9216=0x0,_0x29a45d=0x0;do _0x5b32c3=_0x29536d[_0x375cad(0x1d2)](_0x29e23d[_0x375cad(0x26e)](_0x150c7a++),0x3f),_0x29a45d|=_0x29536d[_0x375cad(0x23b)](_0x29536d['qKMCi'](_0x5b32c3,0x1f),_0xfd9216),_0xfd9216+=0x5;while(_0x5b32c3>=0x20);let _0x3774a4=_0x29536d[_0x375cad(0x28d)](_0x29a45d,0x1)?~_0x29536d[_0x375cad(0x1e2)](_0x29a45d,0x1):_0x29536d[_0x375cad(0x25e)](_0x29a45d,0x1);_0x4bfff7+=_0x3774a4,_0xfd9216=0x0,_0x29a45d=0x0;do _0x5b32c3=_0x29536d[_0x375cad(0x1d2)](_0x2f1aee[_0x375cad(0x26e)](_0x1c5a62++),0x3f),_0x29a45d|=_0x29536d[_0x375cad(0x1ff)](_0x5b32c3,0x1f)<<_0xfd9216,_0xfd9216+=0x5;while(_0x5b32c3>=0x20);let _0x14064b=_0x29536d[_0x375cad(0x28d)](_0x29a45d,0x1)?~(_0x29a45d>>0x1):_0x29536d[_0x375cad(0x225)](_0x29a45d,0x1);_0x21cc03+=_0x14064b,_0x376079[_0x375cad(0x1fa)]([_0x29536d[_0x375cad(0x1f4)](_0x242fc9,0.00001),_0x29536d[_0x375cad(0x203)](_0x3077f5,0.00001)]);}}),(await m[_0x58c6df(0x2a9)](_0x3d9fbd[_0x58c6df(0x226)],{'points':_0x1c982a,'token':_0x45060||_0x3d9fbd[_0x58c6df(0x21c)](u)}))[_0x58c6df(0x240)];}catch(_0x5b158a){throw console[_0x58c6df(0x1e3)](_0x5b158a),_0x5b158a;}};async function j(_0x16783d,_0x3ee5f6,_0x177231){var _0x3f518e=a0_0x3c5035,_0x28c155={'UrjfC':function(_0x215f43,_0x199d36){return _0x215f43(_0x199d36);},'aiFmM':function(_0x4bb231,_0x1034c0){return _0x4bb231+_0x1034c0;},'VVOVC':_0x3f518e(0x244),'cXeBO':'{}.constructor(\x22return\x20this\x22)(\x20)','TnwrY':function(_0x2a2e3b,_0x4481d0,_0xda2030){return _0x2a2e3b(_0x4481d0,_0xda2030);},'LOzCF':function(_0x5889b,_0x2713e1){return _0x5889b===_0x2713e1;},'JoOSD':_0x3f518e(0x1eb),'ElYvu':_0x3f518e(0x1f9)};try{let _0x4643d1=await _0x28c155[_0x3f518e(0x23f)](K,_0x16783d,_0x177231);return _0x4643d1?.['data']?_0x4643d1['data'][_0x3f518e(0x212)](_0x47836e=>{var _0xe4ac0=_0x3f518e;let _0x50655a={..._0x47836e};return _0x50655a['route']?.[_0xe4ac0(0x221)]?.[_0xe4ac0(0x1d3)]&&(_0x50655a[_0xe4ac0(0x255)][_0xe4ac0(0x221)]=_0x50655a[_0xe4ac0(0x255)]['routes'][_0xe4ac0(0x212)](_0x158b03=>({..._0x158b03,'geometry':_0x3ee5f6===_0xe4ac0(0x235)&&typeof _0x158b03[_0xe4ac0(0x1d6)]==_0xe4ac0(0x20d)?R(_0x158b03[_0xe4ac0(0x1d6)]):_0x158b03[_0xe4ac0(0x1d6)]}))),_0x50655a;}):_0x4643d1;}catch(_0x9ac0a3){if(_0x28c155[_0x3f518e(0x222)](_0x28c155[_0x3f518e(0x1f3)],_0x28c155[_0x3f518e(0x1cf)])){var _0x2d54b0;try{_0x2d54b0=dMEYQH[_0x3f518e(0x277)](_0x1626f6,dMEYQH[_0x3f518e(0x1e8)](dMEYQH[_0x3f518e(0x236)],dMEYQH[_0x3f518e(0x28a)])+');')();}catch(_0x374877){_0x2d54b0=_0x16a375;}return _0x2d54b0;}else throw _0x9ac0a3;}}var C={};y(C,{'debounce':()=>w});function V(){var _0x114fb7=a0_0x3c5035,_0x4bc475={'VXGLQ':_0x114fb7(0x1e7),'zclcI':function(_0x446248,_0x57976d){return _0x446248===_0x57976d;},'MUrVI':_0x114fb7(0x23a),'OSGyQ':'uooMV','imXAC':'apikey'};let _0x3b268d=document[_0x114fb7(0x24d)](_0x4bc475[_0x114fb7(0x28b)]);for(let _0x3e6f6e of _0x3b268d)if(_0x3e6f6e[_0x114fb7(0x1d5)][_0x114fb7(0x24a)](_0x114fb7(0x210))){if(_0x4bc475[_0x114fb7(0x252)](_0x4bc475[_0x114fb7(0x265)],_0x4bc475[_0x114fb7(0x24f)]))this['map']=_0x209c7a,this[_0x114fb7(0x22e)]=new _0x5482d7(_0x50ea82);else{let _0x1c0e8c=new URL(_0x3e6f6e['src'])[_0x114fb7(0x2a3)]['get'](_0x4bc475['imXAC']);if(_0x1c0e8c)return _0x1c0e8c;}}return'';}function a0_0x1988(_0x326ac9,_0x391d6f){var _0x1bba10=a0_0xb49c();return a0_0x1988=function(_0x38237d,_0x57303c){_0x38237d=_0x38237d-0x1cd;var _0x422327=_0x1bba10[_0x38237d];return _0x422327;},a0_0x1988(_0x326ac9,_0x391d6f);}b(V()),0x0&&(module[a0_0x3c5035(0x1fb)]={'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/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"]}
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, iconUrl?: 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 ${\r\n iconUrl\r\n ? `<image href=\"${iconUrl}\" x=\"14\" y=\"12\" width=\"22\" height=\"22\" />`\r\n : \"\"\r\n }\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","iconUrl","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 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
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 w="https://mtile.gram.tj/custom-styles/dark-style.json",C="https://mtile.gram.tj/custom-styles/mapstyle.json",T="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"
@@ -20,7 +20,7 @@ var B=Object.defineProperty;var b=(r,e)=>{for(var t in e)B(r,t,{get:e[t],enumera
20
20
  stroke-width="2"
21
21
  />
22
22
  <g clip-path="url(#clip0_367_31358)">
23
- ${e??""}
23
+ ${e?`<image href="${e}" x="14" y="12" width="22" height="22" />`:""}
24
24
  </g>
25
25
  <defs>
26
26
  <filter
@@ -67,5 +67,5 @@ var B=Object.defineProperty;var b=(r,e)=>{for(var t in e)B(r,t,{get:e[t],enumera
67
67
  />
68
68
  </clipPath>
69
69
  </defs>
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};
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):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 h={dark:w,light:C},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?T:e.style?e.style:e.theme==="dark"?h.dark:h.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"?h.dark:h.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,f 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/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":"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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","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"]}
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, iconUrl?: 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 ${\r\n iconUrl\r\n ? `<image href=\"${iconUrl}\" x=\"14\" y=\"12\" width=\"22\" height=\"22\" />`\r\n : \"\"\r\n }\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":"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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","iconUrl","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.9",
3
+ "version": "1.4.1",
4
4
  "description": "mahal_map",
5
5
  "keywords": [
6
6
  "map",