mahal_map 1.3.3 → 1.3.4

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
@@ -75,6 +75,7 @@ interface IMahalMapOptions {
75
75
  interface MahalMapDefaultMarkerProps {
76
76
  coordinates: [number, number];
77
77
  draggable?: boolean;
78
+ anchor?: "center" | "top" | "bottom" | "left" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right";
78
79
  color?: string;
79
80
  svg?: string;
80
81
  innerSvg?: string;
@@ -83,6 +84,7 @@ interface IMapMarker {
83
84
  getElement(): HTMLElement;
84
85
  getCoordinates(): [number, number];
85
86
  isDraggable?(): boolean;
87
+ getAnchor?(): "center" | "top" | "bottom" | "left" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right";
86
88
  }
87
89
 
88
90
  declare class CameraController {
@@ -106,6 +108,7 @@ declare class MahalMapDefaultMarker {
106
108
  getElement(): HTMLElement;
107
109
  getCoordinates(): [number, number];
108
110
  isDraggable(): boolean;
111
+ getAnchor(): "center" | "top" | "bottom" | "left" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right";
109
112
  }
110
113
 
111
114
  declare class MahalMap {
package/dist/index.d.ts CHANGED
@@ -75,6 +75,7 @@ interface IMahalMapOptions {
75
75
  interface MahalMapDefaultMarkerProps {
76
76
  coordinates: [number, number];
77
77
  draggable?: boolean;
78
+ anchor?: "center" | "top" | "bottom" | "left" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right";
78
79
  color?: string;
79
80
  svg?: string;
80
81
  innerSvg?: string;
@@ -83,6 +84,7 @@ interface IMapMarker {
83
84
  getElement(): HTMLElement;
84
85
  getCoordinates(): [number, number];
85
86
  isDraggable?(): boolean;
87
+ getAnchor?(): "center" | "top" | "bottom" | "left" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right";
86
88
  }
87
89
 
88
90
  declare class CameraController {
@@ -106,6 +108,7 @@ declare class MahalMapDefaultMarker {
106
108
  getElement(): HTMLElement;
107
109
  getCoordinates(): [number, number];
108
110
  isDraggable(): boolean;
111
+ getAnchor(): "center" | "top" | "bottom" | "left" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right";
109
112
  }
110
113
 
111
114
  declare class MahalMap {
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- 'use strict';var a0_0x231017=a0_0x107a;(function(_0xda07e,_0x115cff){var _0x4d60cf=a0_0x107a,_0x442ae5=_0xda07e();while(!![]){try{var _0x37f817=-parseInt(_0x4d60cf(0x220))/0x1+-parseInt(_0x4d60cf(0x200))/0x2*(-parseInt(_0x4d60cf(0x24d))/0x3)+-parseInt(_0x4d60cf(0x1c7))/0x4+parseInt(_0x4d60cf(0x1ad))/0x5+parseInt(_0x4d60cf(0x22f))/0x6+-parseInt(_0x4d60cf(0x1dc))/0x7*(-parseInt(_0x4d60cf(0x1a7))/0x8)+parseInt(_0x4d60cf(0x221))/0x9*(-parseInt(_0x4d60cf(0x23d))/0xa);if(_0x37f817===_0x115cff)break;else _0x442ae5['push'](_0x442ae5['shift']());}catch(_0x597979){_0x442ae5['push'](_0x442ae5['shift']());}}}(a0_0x363a,0x96c15));var D=Object[a0_0x231017(0x234)],u=Object[a0_0x231017(0x233)],F=Object[a0_0x231017(0x1c0)],N=Object[a0_0x231017(0x247)],O=Object[a0_0x231017(0x1af)],U=Object[a0_0x231017(0x1bd)]['hasOwnProperty'],w=(_0x1f2ade,_0x54fd3a)=>{var _0x10fa83=a0_0x231017,_0x5e8f01={'eSBVd':function(_0x2828b4,_0x249fb9,_0x59e814,_0x27756a){return _0x2828b4(_0x249fb9,_0x59e814,_0x27756a);}};for(var _0x401ce5 in _0x54fd3a)_0x5e8f01[_0x10fa83(0x1f0)](u,_0x1f2ade,_0x401ce5,{'get':_0x54fd3a[_0x401ce5],'enumerable':!0x0});},T=(_0x18ea6d,_0x4a5d90,_0x4e58bb,_0x2217fb)=>{var _0x37d15e=a0_0x231017,_0x10b15a={'tSDVK':function(_0x2c9301,_0x3ef692){return _0x2c9301==_0x3ef692;},'UQkTE':_0x37d15e(0x1a5),'kwJLw':function(_0x383dcf,_0x18832c){return _0x383dcf==_0x18832c;},'pkWPX':function(_0x377ab6,_0x4a0fd8){return _0x377ab6(_0x4a0fd8);},'AbzWT':function(_0x58c177,_0x316072){return _0x58c177!==_0x316072;},'CalFk':function(_0x38340a,_0x4fa66e,_0x4cfa84){return _0x38340a(_0x4fa66e,_0x4cfa84);}};if(_0x4a5d90&&_0x10b15a[_0x37d15e(0x1f9)](typeof _0x4a5d90,_0x10b15a[_0x37d15e(0x240)])||_0x10b15a[_0x37d15e(0x21a)](typeof _0x4a5d90,_0x37d15e(0x1d2))){for(let _0xe4318e of _0x10b15a[_0x37d15e(0x1b7)](N,_0x4a5d90))!U[_0x37d15e(0x1a9)](_0x18ea6d,_0xe4318e)&&_0x10b15a[_0x37d15e(0x19f)](_0xe4318e,_0x4e58bb)&&u(_0x18ea6d,_0xe4318e,{'get':()=>_0x4a5d90[_0xe4318e],'enumerable':!(_0x2217fb=_0x10b15a[_0x37d15e(0x25a)](F,_0x4a5d90,_0xe4318e))||_0x2217fb['enumerable']});}return _0x18ea6d;},$=(_0x5a0cbd,_0x3bdaf2,_0x4cc64f)=>(_0x4cc64f=_0x5a0cbd!=null?D(O(_0x5a0cbd)):{},T(_0x3bdaf2||!_0x5a0cbd||!_0x5a0cbd[a0_0x231017(0x1a0)]?u(_0x4cc64f,'default',{'value':_0x5a0cbd,'enumerable':!0x0}):_0x4cc64f,_0x5a0cbd)),Z=_0x5e66fa=>T(u({},'__esModule',{'value':!0x0}),_0x5e66fa),V={};w(V,{'MahalMap':()=>g,'MahalMapDefaultMarker':()=>h,'Router':()=>_,'Search':()=>G,'keyUtils':()=>b}),module[a0_0x231017(0x1b8)]=Z(V);var v=a0_0x231017(0x1e3),S=a0_0x231017(0x248),C=a0_0x231017(0x1c4),P=a0_0x231017(0x23f);function k(_0x4a1881){var _0x476341=a0_0x231017,_0x208c4b={'iXHWh':function(_0x1bac4a,_0x39428c){return _0x1bac4a<_0x39428c;},'iDsrW':function(_0x3ca820,_0x496192){return _0x3ca820<<_0x496192;},'SRten':function(_0xe32406,_0x11802b){return _0xe32406&_0x11802b;},'zovny':function(_0x2eab6a,_0xdf2669){return _0x2eab6a>>_0xdf2669;},'vCaKG':function(_0x199388,_0x269034){return _0x199388>=_0x269034;},'srbAi':function(_0x21b4f3,_0x40639c){return _0x21b4f3*_0x40639c;},'uVvwY':function(_0x1de503,_0x25c43f){return _0x1de503<_0x25c43f;},'zRfGu':function(_0x3976ef,_0x3d9040){return _0x3976ef!==_0x3d9040;},'qMrNO':_0x476341(0x1fb),'ITtlZ':function(_0x156b79,_0x143052){return _0x156b79-_0x143052;},'KpBzr':function(_0x4eb0c5,_0x1eced8){return _0x4eb0c5>=_0x1eced8;},'UWIUa':function(_0x3c601a,_0x29cf6a){return _0x3c601a>>_0x29cf6a;},'HqkTA':function(_0x1b3be6,_0x30da02){return _0x1b3be6>>_0x30da02;},'FgbHp':function(_0x526e24,_0x30b91d){return _0x526e24*_0x30b91d;}};let _0x1e78cd=[],_0xf036f1=0x0,_0x1a72c2=_0x4a1881[_0x476341(0x1fe)],_0x5274d1=0x0,_0x4b2939=0x0;for(;_0x208c4b[_0x476341(0x1ba)](_0xf036f1,_0x1a72c2);){if(_0x208c4b[_0x476341(0x1d9)](_0x208c4b[_0x476341(0x204)],_0x208c4b['qMrNO'])){let _0x3e9551=[],_0xe01324=0x0,_0x444ab4=_0x1ba0f9[_0x476341(0x1fe)],_0x38623e=0x0,_0x18dc5b=0x0;for(;_0x208c4b[_0x476341(0x1f6)](_0xe01324,_0x444ab4);){let _0x469ca1,_0x484b75=0x0,_0x4a9a4a=0x0;do _0x469ca1=_0x356551[_0x476341(0x1f3)](_0xe01324++)-0x3f,_0x4a9a4a|=_0x208c4b[_0x476341(0x1e1)](_0x469ca1&0x1f,_0x484b75),_0x484b75+=0x5;while(_0x469ca1>=0x20);let _0x1a7176=_0x208c4b[_0x476341(0x1b3)](_0x4a9a4a,0x1)?~_0x208c4b['zovny'](_0x4a9a4a,0x1):_0x4a9a4a>>0x1;_0x38623e+=_0x1a7176,_0x484b75=0x0,_0x4a9a4a=0x0;do _0x469ca1=_0x4b87a3[_0x476341(0x1f3)](_0xe01324++)-0x3f,_0x4a9a4a|=_0x208c4b[_0x476341(0x1e1)](_0x208c4b[_0x476341(0x1b3)](_0x469ca1,0x1f),_0x484b75),_0x484b75+=0x5;while(_0x208c4b[_0x476341(0x1b9)](_0x469ca1,0x20));let _0xa331eb=_0x208c4b['SRten'](_0x4a9a4a,0x1)?~_0x208c4b['zovny'](_0x4a9a4a,0x1):_0x208c4b[_0x476341(0x1c9)](_0x4a9a4a,0x1);_0x18dc5b+=_0xa331eb,_0x3e9551[_0x476341(0x1bb)]([_0x18dc5b*0.00001,_0x208c4b[_0x476341(0x239)](_0x38623e,0.00001)]);}return _0x3e9551;}else{let _0x562729,_0x9158a1=0x0,_0x173da5=0x0;do _0x562729=_0x208c4b[_0x476341(0x213)](_0x4a1881[_0x476341(0x1f3)](_0xf036f1++),0x3f),_0x173da5|=_0x208c4b[_0x476341(0x1b3)](_0x562729,0x1f)<<_0x9158a1,_0x9158a1+=0x5;while(_0x208c4b[_0x476341(0x1c8)](_0x562729,0x20));let _0x1e341a=_0x173da5&0x1?~_0x208c4b['zovny'](_0x173da5,0x1):_0x208c4b[_0x476341(0x257)](_0x173da5,0x1);_0x5274d1+=_0x1e341a,_0x9158a1=0x0,_0x173da5=0x0;do _0x562729=_0x4a1881['charCodeAt'](_0xf036f1++)-0x3f,_0x173da5|=_0x208c4b[_0x476341(0x1e1)](_0x562729&0x1f,_0x9158a1),_0x9158a1+=0x5;while(_0x208c4b[_0x476341(0x1c8)](_0x562729,0x20));let _0x1e88e2=_0x208c4b[_0x476341(0x1b3)](_0x173da5,0x1)?~_0x208c4b[_0x476341(0x257)](_0x173da5,0x1):_0x208c4b[_0x476341(0x254)](_0x173da5,0x1);_0x4b2939+=_0x1e88e2,_0x1e78cd[_0x476341(0x1bb)]([_0x208c4b[_0x476341(0x239)](_0x4b2939,0.00001),_0x208c4b[_0x476341(0x223)](_0x5274d1,0.00001)]);}}return _0x1e78cd;}var f=class{constructor(_0x2890f1){this['map']=_0x2890f1;}[a0_0x231017(0x24a)](_0xf3af33,_0x24a3fd=!0x0){var _0x413689=a0_0x231017;_0x24a3fd?this['map']['easeTo']({'zoom':_0xf3af33}):this['map'][_0x413689(0x24a)](_0xf3af33);}[a0_0x231017(0x1ff)](_0x1be776,_0x15e195=!0x0){var _0xecc442=a0_0x231017;_0x15e195?this[_0xecc442(0x1d6)][_0xecc442(0x253)]({'bearing':_0x1be776}):this['map'][_0xecc442(0x1ff)](_0x1be776);}[a0_0x231017(0x225)](_0x13ca15,_0x599ad1=!0x0){var _0x337778=a0_0x231017;_0x599ad1?this[_0x337778(0x1d6)]['easeTo']({'pitch':_0x13ca15}):this[_0x337778(0x1d6)]['setPitch'](_0x13ca15);}[a0_0x231017(0x244)](_0x3eaf7b){var _0x288f2f=a0_0x231017;this[_0x288f2f(0x1d6)][_0x288f2f(0x253)]({'pitch':_0x3eaf7b?0x3c:0x0,'bearing':_0x3eaf7b?this['map'][_0x288f2f(0x1b6)]():0x0,'duration':0x320});}[a0_0x231017(0x1cc)](){var _0x334647=a0_0x231017;this[_0x334647(0x1d6)][_0x334647(0x253)]({'bearing':0x0,'pitch':0x0,'duration':0x258});}['flyTo'](_0x1cee55){var _0x2a1b92=a0_0x231017;this[_0x2a1b92(0x1d6)]['flyTo']({'speed':1.2,'curve':1.42,'essential':!0x0,..._0x1cee55});}[a0_0x231017(0x214)](){var _0x348c42=a0_0x231017;return this[_0x348c42(0x1d6)][_0x348c42(0x214)]();}},I=(_0x54da54,_0x268fd0)=>a0_0x231017(0x22e)+(_0x54da54||a0_0x231017(0x21f))+a0_0x231017(0x1b4)+(_0x54da54||a0_0x231017(0x21f))+a0_0x231017(0x243)+(_0x268fd0??'')+a0_0x231017(0x232),h=class{constructor(_0x5d9ab2){var _0x4ea211=a0_0x231017;this['props']=_0x5d9ab2,this['element']=this[_0x4ea211(0x207)]();}[a0_0x231017(0x207)](){var _0x11ab09=a0_0x231017,_0x3205c5={'HutvH':'pointer','nzAlG':function(_0x37d68e,_0x19bf13,_0x2b4043){return _0x37d68e(_0x19bf13,_0x2b4043);},'hNkWF':_0x11ab09(0x21f)};let _0xd77afe=document[_0x11ab09(0x207)]('div');_0xd77afe[_0x11ab09(0x242)][_0x11ab09(0x1da)]=_0x3205c5[_0x11ab09(0x255)];let _0x4b9e14=this['props'][_0x11ab09(0x252)]?this[_0x11ab09(0x21b)](this[_0x11ab09(0x230)][_0x11ab09(0x252)]):_0x3205c5['nzAlG'](I,this[_0x11ab09(0x230)]['color']??_0x3205c5[_0x11ab09(0x1e0)],this[_0x11ab09(0x230)][_0x11ab09(0x1d0)]);return _0xd77afe[_0x11ab09(0x222)]=_0x4b9e14,this[_0x11ab09(0x230)]['draggable']&&(_0xd77afe[_0x11ab09(0x251)]=!0x0),_0xd77afe;}['applyColorToCustomSvg'](_0x38ebfa){var _0x3f5706=a0_0x231017;return this['props'][_0x3f5706(0x228)]?_0x38ebfa[_0x3f5706(0x202)](/fill="[^"]*"/g,_0x3f5706(0x1f2)+this[_0x3f5706(0x230)][_0x3f5706(0x228)]+'\x22'):_0x38ebfa;}['getElement'](){return this['element'];}[a0_0x231017(0x1ec)](){return this['props']['coordinates'];}[a0_0x231017(0x1ae)](){var _0x3e8f53=a0_0x231017;return!!this[_0x3e8f53(0x230)][_0x3e8f53(0x251)];}};function E(_0x30a5ec,_0x2f9070,_0x124f92){var _0x277fbc=a0_0x231017;return new _0x30a5ec['Marker']({'element':_0x124f92['getElement'](),'draggable':_0x124f92[_0x277fbc(0x1ae)]?.()??!0x1})[_0x277fbc(0x1b5)](_0x124f92['getCoordinates']())[_0x277fbc(0x19d)](_0x2f9070);}var d={'dark':S,'light':C},n=class n{constructor(){}static['create'](_0x155e57,_0x4f4076){var _0x37a1d7=a0_0x231017,_0x2eb706={'SziAC':'[MahalMap\x20SDK]\x20MapLibre\x20GL\x20не\x20найден.\x20Передай\x20его\x20вторым\x20аргументом\x20или\x20подключи\x20через\x20script.','ffISi':_0x37a1d7(0x1aa),'cPCWo':'map'};if(n[_0x37a1d7(0x1cf)])return n[_0x37a1d7(0x1cf)];let _0x1692db=window[_0x37a1d7(0x24c)]||_0x4f4076;if(!_0x1692db)throw new Error(_0x2eb706[_0x37a1d7(0x1cb)]);let _0x407898=_0x155e57[_0x37a1d7(0x1a2)]?P:_0x155e57[_0x37a1d7(0x242)]?_0x155e57[_0x37a1d7(0x242)]:_0x155e57[_0x37a1d7(0x208)]===_0x2eb706[_0x37a1d7(0x238)]?d[_0x37a1d7(0x1aa)]:d['light'],_0x529871=new n();return _0x529871[_0x37a1d7(0x19c)]=_0x155e57,_0x529871['maplibre']=_0x1692db,_0x529871[_0x37a1d7(0x1d6)]=new _0x1692db[(_0x37a1d7(0x215))]({'container':_0x155e57[_0x37a1d7(0x237)]||_0x2eb706['cPCWo'],'style':_0x407898,'center':_0x155e57[_0x37a1d7(0x1e6)]||[69.624024,40.279687],'zoom':_0x155e57[_0x37a1d7(0x23e)]||0x5}),n['instance']=_0x529871,_0x529871;}static[a0_0x231017(0x1ea)](){var _0x424c72=a0_0x231017,_0x28c182={'PnTgi':_0x424c72(0x205)};if(!n[_0x424c72(0x1cf)])throw new Error(_0x28c182[_0x424c72(0x231)]);return n[_0x424c72(0x1cf)];}['addMarker'](_0x3b4c2b){var _0x3afb0c=a0_0x231017,_0x1bc3bf={'LZhQg':function(_0x389576,_0x33e61b,_0x3722ff,_0x1965bc){return _0x389576(_0x33e61b,_0x3722ff,_0x1965bc);}};return _0x1bc3bf[_0x3afb0c(0x1c2)](E,this['maplibre'],this['map'],_0x3b4c2b);}['init'](_0x221d6e){var _0x53a71c=a0_0x231017;this[_0x53a71c(0x1d6)]=_0x221d6e,this[_0x53a71c(0x258)]=new f(_0x221d6e);}[a0_0x231017(0x1fa)](){var _0x3b97ca=a0_0x231017;return this[_0x3b97ca(0x258)];}['getMap'](){var _0x563cdb=a0_0x231017;return this[_0x563cdb(0x1d6)];}[a0_0x231017(0x19e)](_0x3aa4ee){var _0x5bd655=a0_0x231017,_0x3c2233={'FQwCR':function(_0x52c514,_0x78ce31){return _0x52c514===_0x78ce31;},'nfgks':_0x5bd655(0x1aa)};this['map'][_0x5bd655(0x19e)](_0x3c2233[_0x5bd655(0x249)](_0x3aa4ee,_0x3c2233[_0x5bd655(0x1c5)])?d[_0x5bd655(0x1aa)]:d['light']);}[a0_0x231017(0x206)](_0x2f15da){var _0x1dacaf=a0_0x231017;this[_0x1dacaf(0x1d6)][_0x1dacaf(0x206)](_0x2f15da);}[a0_0x231017(0x24a)](_0x5e3f47){var _0x332596=a0_0x231017;this['map'][_0x332596(0x24a)](_0x5e3f47);}[a0_0x231017(0x1ab)](){var _0xd127b2=a0_0x231017;this[_0xd127b2(0x1d6)][_0xd127b2(0x1a1)](),n[_0xd127b2(0x1cf)]=null;}};n[a0_0x231017(0x1cf)]=null;var g=n,L=$(require('axios')),m=L[a0_0x231017(0x1eb)][a0_0x231017(0x234)]({'baseURL':v});m[a0_0x231017(0x1ce)][a0_0x231017(0x21c)][a0_0x231017(0x21d)](_0x5dc6f1=>_0x5dc6f1,_0x431cbb=>(_0x431cbb[a0_0x231017(0x21c)]?.[a0_0x231017(0x1e4)]===0x191&&y(),Promise['reject'](_0x431cbb)));var b={};w(b,{'clearKey':()=>y,'getApiKey':()=>c,'saveKey':()=>x});var M='';function x(_0xa8adf6){var _0x2e66d3=a0_0x231017,_0x180211={'fhhaO':function(_0x4865b8,_0x565f82){return _0x4865b8!==_0x565f82;}};_0x180211['fhhaO'](_0xa8adf6,'')&&(M=_0xa8adf6,m['defaults'][_0x2e66d3(0x23c)][_0x2e66d3(0x1fd)][_0x2e66d3(0x1f1)]=_0x2e66d3(0x22a)+_0xa8adf6);}function y(){var _0x278774=a0_0x231017,_0x1fbf3f={'JEALf':function(_0x505da4,_0x4b3867){return _0x505da4!==_0x4b3867;},'FvxNg':'jNCYt','NHsii':function(_0x5796db,_0x19c126){return _0x5796db+_0x19c126;},'QVvcx':_0x278774(0x212),'xHCjW':function(_0x559e10){return _0x559e10();},'zLWPN':'warn','FUgIR':_0x278774(0x1bf),'ugMWo':_0x278774(0x245),'nCeLx':_0x278774(0x1ed),'WRzyv':function(_0x107ed1,_0xb636c4){return _0x107ed1<_0xb636c4;},'kqhcK':function(_0xd2bb50,_0x45f5f7,_0x293125){return _0xd2bb50(_0x45f5f7,_0x293125);},'DYifI':function(_0x410042){return _0x410042();}},_0x406c87=(function(){var _0x443276=!![];return function(_0x36d934,_0x3d9b25){var _0x9d5515=_0x443276?function(){var _0x44b402=a0_0x107a;if(_0x3d9b25){var _0x153667=_0x3d9b25[_0x44b402(0x22c)](_0x36d934,arguments);return _0x3d9b25=null,_0x153667;}}:function(){};return _0x443276=![],_0x9d5515;};}()),_0x4126f4=_0x1fbf3f[_0x278774(0x1e7)](_0x406c87,this,function(){var _0x13bfe4=_0x278774,_0x38ff79;try{if(_0x1fbf3f['JEALf'](_0x1fbf3f[_0x13bfe4(0x1d3)],'KmMYa')){var _0x42d858=Function(_0x1fbf3f[_0x13bfe4(0x219)](_0x1fbf3f[_0x13bfe4(0x219)](_0x1fbf3f[_0x13bfe4(0x241)],_0x13bfe4(0x236)),');'));_0x38ff79=_0x1fbf3f[_0x13bfe4(0x1e8)](_0x42d858);}else this['map']=_0x214137;}catch(_0x3a90a1){_0x38ff79=window;}var _0x12ea9e=_0x38ff79[_0x13bfe4(0x210)]=_0x38ff79[_0x13bfe4(0x210)]||{},_0x302026=[_0x13bfe4(0x1f8),_0x1fbf3f[_0x13bfe4(0x246)],_0x13bfe4(0x22d),_0x1fbf3f[_0x13bfe4(0x1d1)],_0x13bfe4(0x1b2),_0x1fbf3f[_0x13bfe4(0x21e)],_0x1fbf3f[_0x13bfe4(0x1e9)]];for(var _0x46b1bf=0x0;_0x1fbf3f[_0x13bfe4(0x23a)](_0x46b1bf,_0x302026[_0x13bfe4(0x1fe)]);_0x46b1bf++){var _0x49b98e=_0x406c87[_0x13bfe4(0x256)][_0x13bfe4(0x1bd)][_0x13bfe4(0x1c3)](_0x406c87),_0x4bb917=_0x302026[_0x46b1bf],_0x3ab87d=_0x12ea9e[_0x4bb917]||_0x49b98e;_0x49b98e[_0x13bfe4(0x20a)]=_0x406c87[_0x13bfe4(0x1c3)](_0x406c87),_0x49b98e['toString']=_0x3ab87d[_0x13bfe4(0x1e5)][_0x13bfe4(0x1c3)](_0x3ab87d),_0x12ea9e[_0x4bb917]=_0x49b98e;}});_0x1fbf3f[_0x278774(0x24f)](_0x4126f4),(M='',m['defaults'][_0x278774(0x23c)][_0x278774(0x1fd)][_0x278774(0x1f1)]='');}function a0_0x363a(){var _0xd9a8c2=['Authorization','fill=\x22','charCodeAt','element','DcFhf','iXHWh','GmrJP','log','tSDVK','getCamera','whLPh','searchParams','common','length','setBearing','152664xfktYr','EjUYQ','replace','evWVL','qMrNO','[MahalMap\x20SDK]\x20Карта\x20ещё\x20не\x20создана','setCenter','createElement','theme','ImafS','__proto__','OjpKn','geojson','dmEOE','SXGiu','PZcJQ','console','MmGQH','return\x20(function()\x20','ITtlZ','getPitch','Map','VCzzP','auUfy','routes','NHsii','kwJLw','applyColorToCustomSvg','request','use','ugMWo','#278960','931230LtkLRN','9QuTitv','innerHTML','FgbHp','apikey','setPitch','geometry','pieux','color','flyTo','Bearer\x20','data','apply','info','<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','4568406NAeagU','props','PnTgi','\x0a\x20\x20\x20\x20\x20\x20\x20\x20</g>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<defs>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<filter\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20id=\x22filter0_d_367_31358\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20x=\x220\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20y=\x220\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width=\x2250\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20height=\x2255\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20filterUnits=\x22userSpaceOnUse\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color-interpolation-filters=\x22sRGB\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<feFlood\x20flood-opacity=\x220\x22\x20result=\x22BackgroundImageFix\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<feColorMatrix\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20in=\x22SourceAlpha\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type=\x22matrix\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20values=\x220\x200\x200\x200\x200\x200\x200\x200\x200\x200\x200\x200\x200\x200\x200\x200\x200\x200\x20127\x200\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20result=\x22hardAlpha\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<feOffset\x20dy=\x222\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<feGaussianBlur\x20stdDeviation=\x222\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<feComposite\x20in2=\x22hardAlpha\x22\x20operator=\x22out\x22\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<feColorMatrix\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type=\x22matrix\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20values=\x220\x200\x200\x200\x200.250234\x200\x200\x200\x200\x200.660089\x200\x200\x200\x200\x200.488619\x200\x200\x200\x200.24\x200\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<feBlend\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20mode=\x22normal\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20in2=\x22BackgroundImageFix\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20result=\x22effect1_dropShadow_367_31358\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<feBlend\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20mode=\x22normal\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20in=\x22SourceGraphic\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20in2=\x22effect1_dropShadow_367_31358\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20result=\x22shape\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</filter>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<clipPath\x20id=\x22clip0_367_31358\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<rect\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width=\x2222\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20height=\x2222\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20fill=\x22white\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20transform=\x22translate(14\x2012)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</clipPath>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</defs>\x0a\x20\x20\x20\x20\x20\x20</svg>','defineProperty','create','string','{}.constructor(\x22return\x20this\x22)(\x20)','container','ffISi','srbAi','WRzyv','nPKry','headers','12552490HlOZJT','zoom','https://mtile.gram.tj/custom-styles/style_maptiler_basic_hn.json','UQkTE','QVvcx','style','\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','toggle3D','table','zLWPN','getOwnPropertyNames','https://mtile.gram.tj/custom-styles/dark-style.json','FQwCR','setZoom','Dcpbh','maplibregl','21mfGBHt','post','DYifI','forEach','draggable','svg','easeTo','HqkTA','HutvH','constructor','UWIUa','camera','services/getRoutes','CalFk','options','addTo','setStyle','AbzWT','__esModule','remove','autoAddVectorSource','YuLlX','UZDSs','object','get','16RMNwCm','nfRgP','call','dark','destroy','includes','4034730VgZcbV','isDraggable','getPrototypeOf','services/getAddress','src','exception','SRten','\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','setLngLat','getBearing','pkWPX','exports','vCaKG','uVvwY','push','eEKbA','prototype','GzSSi','error','getOwnPropertyDescriptor','mahal_map.sdk.js','LZhQg','bind','https://mtile.gram.tj/custom-styles/mapstyle.json','nfgks','getElementsByTagName','668524Yihwxr','KpBzr','zovny','script','SziAC','resetNorth','route','interceptors','instance','innerSvg','FUgIR','function','FvxNg','JTzlq','XnGVx','map','SdUHr','RopRA','zRfGu','cursor','JqBVN','3039512RZzMLT','Ошибка\x20при\x20поиске\x20адреса:','DAABn','TVMtI','hNkWF','iDsrW','Yajwt','https://platform.mahal.tj/api/','status','toString','center','kqhcK','xHCjW','nCeLx','getInstance','default','getCoordinates','trace','NpekD','gghLF','eSBVd'];a0_0x363a=function(){return _0xd9a8c2;};return a0_0x363a();}var c=()=>M;function a0_0x107a(_0x2e6171,_0x5d93f7){var _0x462f9c=a0_0x363a();return a0_0x107a=function(_0x1331a4,_0x46d983){_0x1331a4=_0x1331a4-0x19c;var _0x2f0c3b=_0x462f9c[_0x1331a4];return _0x2f0c3b;},a0_0x107a(_0x2e6171,_0x5d93f7);}function A(_0x1e3e95,_0x2f6dc0){var _0x4d45bb={'QtjPR':function(_0x328c69,_0x362e5e,_0x34be1b){return _0x328c69(_0x362e5e,_0x34be1b);}};let _0x433a23;return(..._0xb57da3)=>(_0x433a23&&clearTimeout(_0x433a23),new Promise(_0x262444=>{_0x433a23=_0x4d45bb['QtjPR'](setTimeout,async()=>{var _0x272b4b=await _0x1e3e95(..._0xb57da3);_0x262444(_0x272b4b);},_0x2f6dc0);}));}var R=async _0x6998aa=>{var _0x456b2c=a0_0x231017,_0x16383d={'YuLlX':function(_0x98eddc,_0x5eb3df){return _0x98eddc===_0x5eb3df;},'OjpKn':_0x456b2c(0x227),'Vprhb':_0x456b2c(0x1b0),'PevxB':_0x456b2c(0x1dd)};try{if(_0x16383d[_0x456b2c(0x1a3)](_0x456b2c(0x20d),_0x16383d[_0x456b2c(0x20b)]))_0x3ee8cf=_0x543919;else return(await m[_0x456b2c(0x24e)](_0x16383d['Vprhb'],_0x6998aa))[_0x456b2c(0x22b)];}catch(_0x561616){throw console[_0x456b2c(0x1bf)](_0x16383d['PevxB'],_0x561616),_0x561616;}};async function H(_0x36c030,_0x1e813b,_0x5f5383){var _0xaeb8e=a0_0x231017,_0x109e84={'TVMtI':function(_0x159541){return _0x159541();},'Yajwt':function(_0x34b877,_0x19b8ba){return _0x34b877!==_0x19b8ba;},'gghLF':_0xaeb8e(0x216),'aINYi':function(_0x57943b,_0x4338f3){return _0x57943b===_0x4338f3;},'MmGQH':_0xaeb8e(0x1db)};let _0x5203c9={'text':_0x36c030,'token':_0x1e813b||_0x109e84[_0xaeb8e(0x1df)](c),..._0x5f5383};try{if(_0x109e84[_0xaeb8e(0x1e2)](_0x109e84[_0xaeb8e(0x1ef)],'WCVBe'))return await R(_0x5203c9);else this[_0xaeb8e(0x1d6)][_0xaeb8e(0x253)]({'pitch':_0x2e76f7?0x3c:0x0,'bearing':_0x2bc5a0?this[_0xaeb8e(0x1d6)]['getBearing']():0x0,'duration':0x320});}catch(_0x5177d3){if(_0x109e84['aINYi'](_0xaeb8e(0x20f),_0x109e84[_0xaeb8e(0x211)]))this[_0xaeb8e(0x1d6)]['remove'](),_0x1ce0da[_0xaeb8e(0x1cf)]=null;else throw _0x5177d3;}}var X=A(H,0x1f4);async function G(_0x4834a1,_0x1cf7ec,_0x1ccd24){var _0x5edd4f={'yifvt':function(_0x15ddbe,_0x38dcdb,_0x36bb2f,_0x44b2b1){return _0x15ddbe(_0x38dcdb,_0x36bb2f,_0x44b2b1);}};return await _0x5edd4f['yifvt'](X,_0x4834a1,_0x1cf7ec,_0x1ccd24);}var B=async(_0x1671c2,_0x5d5d6d)=>{var _0x150ac5=a0_0x231017,_0x393c93={'XnGVx':_0x150ac5(0x1a4),'auUfy':_0x150ac5(0x1d7),'Dcpbh':function(_0x45b083,_0x5e6a6f){return _0x45b083!==_0x5e6a6f;},'JTzlq':_0x150ac5(0x1ee),'BYjfg':_0x150ac5(0x201),'gXdxh':_0x150ac5(0x259)};try{if(_0x393c93[_0x150ac5(0x24b)](_0x393c93[_0x150ac5(0x1d4)],_0x393c93['BYjfg'])){let _0x223955=[];return _0x1671c2[_0x150ac5(0x250)](_0x45fa9f=>{var _0x291c05=_0x150ac5;if(_0x393c93[_0x291c05(0x1d5)]!==_0x393c93[_0x291c05(0x217)])_0x223955['push']({'lng':_0x45fa9f[0x0],'lat':_0x45fa9f[0x1]});else{if(!_0x527a8b[_0x291c05(0x1cf)])throw new _0x1d20bd(_0x291c05(0x205));return _0x2333a5['instance'];}}),(await m['post'](_0x393c93['gXdxh'],{'points':_0x223955,'token':_0x5d5d6d||c()}))[_0x150ac5(0x22b)];}else this[_0x150ac5(0x1d6)][_0x150ac5(0x229)]({'speed':1.2,'curve':1.42,'essential':!0x0,..._0x86753d});}catch(_0x26bfda){throw console['error'](_0x26bfda),_0x26bfda;}};async function _(_0x1bf158,_0x5b74b0,_0x497283){var _0x56178a=a0_0x231017,_0x4b4157={'GzSSi':function(_0x4125a7,_0x221918){return _0x4125a7===_0x221918;},'nPKry':function(_0x34ff14,_0x12ab5b){return _0x34ff14!==_0x12ab5b;},'RopRA':'rgYTW','ImafS':_0x56178a(0x1bc),'evWVL':function(_0xff13c7,_0x4590e3,_0x8db5ba){return _0xff13c7(_0x4590e3,_0x8db5ba);}};try{if(_0x4b4157[_0x56178a(0x23b)](_0x4b4157[_0x56178a(0x1d8)],_0x4b4157[_0x56178a(0x209)])){let _0x5f053f=await _0x4b4157[_0x56178a(0x203)](B,_0x1bf158,_0x497283);return _0x5f053f?.[_0x56178a(0x22b)]?_0x5f053f[_0x56178a(0x22b)][_0x56178a(0x1d6)](_0x2cdb31=>{var _0xcefc92=_0x56178a;if(_0x4b4157[_0xcefc92(0x1be)](_0xcefc92(0x1de),'DAABn')){let _0x4bbf4d={..._0x2cdb31};return _0x4bbf4d[_0xcefc92(0x1cd)]?.[_0xcefc92(0x218)]?.[_0xcefc92(0x1fe)]&&(_0x4bbf4d[_0xcefc92(0x1cd)][_0xcefc92(0x218)]=_0x4bbf4d['route']['routes']['map'](_0x3c2041=>({..._0x3c2041,'geometry':_0x5b74b0===_0xcefc92(0x20c)&&typeof _0x3c2041[_0xcefc92(0x226)]==_0xcefc92(0x235)?k(_0x3c2041[_0xcefc92(0x226)]):_0x3c2041[_0xcefc92(0x226)]}))),_0x4bbf4d;}else return this[_0xcefc92(0x1f4)];}):_0x5f053f;}else this[_0x56178a(0x230)]=_0x456543,this[_0x56178a(0x1f4)]=this['createElement']();}catch(_0x320a8b){throw _0x320a8b;}}function z(){var _0x157839=a0_0x231017,_0x49a48b={'hzqVz':_0x157839(0x1ca),'bjJEE':_0x157839(0x1c1),'GmrJP':function(_0x517ab7,_0x1c59d3){return _0x517ab7===_0x1c59d3;},'nfRgP':'ADkva','SXGiu':_0x157839(0x224)};let _0x51eb91=document[_0x157839(0x1c6)](_0x49a48b['hzqVz']);for(let _0x1a0060 of _0x51eb91)if(_0x1a0060[_0x157839(0x1b1)][_0x157839(0x1ac)](_0x49a48b['bjJEE'])){if(_0x49a48b[_0x157839(0x1f7)](_0x49a48b[_0x157839(0x1a8)],_0x157839(0x1f5)))return this[_0x157839(0x258)];else{let _0x478305=new URL(_0x1a0060['src'])[_0x157839(0x1fc)][_0x157839(0x1a6)](_0x49a48b[_0x157839(0x20e)]);if(_0x478305)return _0x478305;}}return'';}x(z()),0x0&&(module['exports']={'MahalMap':MahalMap,'MahalMapDefaultMarker':MahalMapDefaultMarker,'Router':Router,'Search':Search,'keyUtils':keyUtils});
1
+ 'use strict';var a0_0x527ff0=a0_0x2fc7;(function(_0x57481c,_0x2ef666){var _0x629c0=a0_0x2fc7,_0x4f7e7f=_0x57481c();while(!![]){try{var _0x1448f9=-parseInt(_0x629c0(0x14b))/0x1*(-parseInt(_0x629c0(0x160))/0x2)+-parseInt(_0x629c0(0x169))/0x3*(parseInt(_0x629c0(0x103))/0x4)+parseInt(_0x629c0(0x1b1))/0x5+-parseInt(_0x629c0(0xfd))/0x6*(parseInt(_0x629c0(0x14c))/0x7)+parseInt(_0x629c0(0x16e))/0x8*(parseInt(_0x629c0(0x19d))/0x9)+-parseInt(_0x629c0(0x1b5))/0xa+parseInt(_0x629c0(0x1af))/0xb;if(_0x1448f9===_0x2ef666)break;else _0x4f7e7f['push'](_0x4f7e7f['shift']());}catch(_0x2c12ab){_0x4f7e7f['push'](_0x4f7e7f['shift']());}}}(a0_0x4f1c,0x37687));var D=Object['create'],u=Object[a0_0x527ff0(0x156)],F=Object[a0_0x527ff0(0x17d)],N=Object[a0_0x527ff0(0x12f)],O=Object[a0_0x527ff0(0x172)],U=Object[a0_0x527ff0(0x1ba)][a0_0x527ff0(0xf7)],w=(_0x1c335c,_0x52fd25)=>{var _0xb51b1={'OmZXV':function(_0x1deba8,_0x30c4be,_0x5662ec,_0x54b4dc){return _0x1deba8(_0x30c4be,_0x5662ec,_0x54b4dc);}};for(var _0x346107 in _0x52fd25)_0xb51b1['OmZXV'](u,_0x1c335c,_0x346107,{'get':_0x52fd25[_0x346107],'enumerable':!0x0});},T=(_0x4f1cc9,_0x36dede,_0x5f26ef,_0x6b7ae6)=>{var _0xfcaa37=a0_0x527ff0,_0x203161={'pMVuO':function(_0x2ada8f,_0x705e41){return _0x2ada8f==_0x705e41;},'VjHgS':'object','xXSug':function(_0x5b62b9,_0x37ebac){return _0x5b62b9(_0x37ebac);},'Gmijm':function(_0x5184c5,_0x568236,_0x256d4d,_0x520d3d){return _0x5184c5(_0x568236,_0x256d4d,_0x520d3d);},'fkQjH':function(_0xa80503,_0x5e8704,_0x15557a){return _0xa80503(_0x5e8704,_0x15557a);}};if(_0x36dede&&_0x203161[_0xfcaa37(0x1ad)](typeof _0x36dede,_0x203161[_0xfcaa37(0x134)])||typeof _0x36dede==_0xfcaa37(0x111)){for(let _0x3e2e9b of _0x203161[_0xfcaa37(0x187)](N,_0x36dede))!U[_0xfcaa37(0x1a1)](_0x4f1cc9,_0x3e2e9b)&&_0x3e2e9b!==_0x5f26ef&&_0x203161[_0xfcaa37(0x18f)](u,_0x4f1cc9,_0x3e2e9b,{'get':()=>_0x36dede[_0x3e2e9b],'enumerable':!(_0x6b7ae6=_0x203161[_0xfcaa37(0x1a4)](F,_0x36dede,_0x3e2e9b))||_0x6b7ae6['enumerable']});}return _0x4f1cc9;},$=(_0xe9c223,_0xab999a,_0x2e4a3f)=>(_0x2e4a3f=_0xe9c223!=null?D(O(_0xe9c223)):{},T(_0xab999a||!_0xe9c223||!_0xe9c223['__esModule']?u(_0x2e4a3f,a0_0x527ff0(0x153),{'value':_0xe9c223,'enumerable':!0x0}):_0x2e4a3f,_0xe9c223)),Z=_0x3b9fe6=>T(u({},'__esModule',{'value':!0x0}),_0x3b9fe6),V={};function a0_0x4f1c(){var _0x352f4a=['EQAaU','NMpQe','src','JiDvH','style','PktXs','constructor','lGwVm','geojson','WCkgc','getOwnPropertyDescriptor','props','ahAuE','[MahalMap\x20SDK]\x20MapLibre\x20GL\x20не\x20найден.\x20Передай\x20его\x20вторым\x20аргументом\x20или\x20подключи\x20через\x20script.','setStyle','apply','eLrqw','light','Map','exports','xXSug','tpZBA','getBearing','DNWsk','setCenter','svg','setPitch','anchor','Gmijm','defaults','YtmHi','services/getRoutes','routes','apikey','TuaSn','toString','tZUGh','color','nzXfc','return\x20(function()\x20','route','getAnchor','50607dhMeKn','roQbk','push','Cvlbo','call','lzfue','YUhCI','fkQjH','replace','AMssL','init','innerSvg','hnxbc','addMarker','MMLHX','split','pMVuO','container','4569543dGOswb','getPitch','748580cMwgEV','https://mtile.gram.tj/custom-styles/style_maptiler_basic_hn.json','error','dDSQZ','760640OWsULe','Marker','cRSXW','forEach','getElement','prototype','isDraggable','CYuej','qMjAO','trace','NVmrH','lfBwd','Authorization','qCPEU','KuVUk','<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','destroy','LNIGr','JWeBA','hasOwnProperty','rWnAW','SzOsz','info','addTo','easeTo','1192134prOJos','length','axios','headers','center','tqeOs','67256ljiTSH','veqDe','\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','qHZyG','element','lPeLw','interceptors','geometry','FFjZM','resetNorth','sToFM','SOTaR','zoom','Ошибка\x20при\x20поиске\x20адреса:','function','YdvFM','JUWoq','maplibre','maplibregl','options','dark','cddal','vojgE','https://platform.mahal.tj/api/','Bearer\x20','__proto__','get','data','eaFde','searchParams','div','CBOqE','nrlUS','GwHRm','himvG','CDzGV','rdIkP','reject','table','NFtOp','status','autoAddVectorSource','{}.constructor(\x22return\x20this\x22)(\x20)','createElement','getOwnPropertyNames','pRSWP','getCoordinates','\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>','MFCDn','VjHgS','CgeQa','YRQOp','charCodeAt','VKShj','#278960','lKTwI','GWDDF','create','getMap','lKuuO','https://mtile.gram.tj/custom-styles/dark-style.json','setBearing','TrxME','instance','JBEkq','script','cursor','zjdmp','bDtZD','qssYj','map','cJZhV','123CNxhdX','14SFPqKK','dRiex','nFKBM','Tkbwx','innerHTML','setZoom','common','default','\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','getElementsByTagName','defineProperty','aAKmk','jOtOJ','vykwp','xeRBv','draggable','applyColorToCustomSvg','theme','BMyCe','UDMtG','1174IRXJSk','JBFpx','ACUmF','xfzIC','QZZSm','lGuQb','IVMCM','camera','ZmsiQ','66VWQwsk','boBIv','vKHHV','pointer','console','616MLXdDN','includes','string','bind','getPrototypeOf'];a0_0x4f1c=function(){return _0x352f4a;};return a0_0x4f1c();}w(V,{'MahalMap':()=>g,'MahalMapDefaultMarker':()=>f,'Router':()=>_,'Search':()=>G,'keyUtils':()=>b}),module[a0_0x527ff0(0x186)]=Z(V);var v=a0_0x527ff0(0x11a),S=a0_0x527ff0(0x13f),C='https://mtile.gram.tj/custom-styles/mapstyle.json',P=a0_0x527ff0(0x1b2);function k(_0x409e4d){var _0x2c60ab=a0_0x527ff0,_0x1ba80f={'QDoFW':function(_0x4daf90,_0x32839c){return _0x4daf90<_0x32839c;},'NMpQe':function(_0x5c6aab,_0x46fca1){return _0x5c6aab!==_0x46fca1;},'lGwVm':'Xrolo','YtmHi':_0x2c60ab(0x168),'pRSWP':function(_0x490c39,_0x5a71a1){return _0x490c39-_0x5a71a1;},'Tkbwx':function(_0x300440,_0x5c9099){return _0x300440<<_0x5c9099;},'JWeBA':function(_0x4780f1,_0x239fac){return _0x4780f1&_0x239fac;},'TKSuP':function(_0x48e0ab,_0x371b8c){return _0x48e0ab>=_0x371b8c;},'xeRBv':function(_0x4169e4,_0x56e129){return _0x4169e4>>_0x56e129;},'lGuQb':function(_0x4af765,_0x408f41){return _0x4af765&_0x408f41;},'AMssL':function(_0x2ffd75,_0x59b67d){return _0x2ffd75>=_0x59b67d;},'ACUmF':function(_0x1c1dca,_0x144964){return _0x1c1dca&_0x144964;},'lKuuO':function(_0x13044f,_0x48dce5){return _0x13044f>>_0x48dce5;},'nrlUS':function(_0x63610a,_0x221b61){return _0x63610a*_0x221b61;}};let _0x28a591=[],_0x299ca7=0x0,_0x30eaf6=_0x409e4d[_0x2c60ab(0xfe)],_0x3279fe=0x0,_0x4a2c72=0x0;for(;_0x1ba80f['QDoFW'](_0x299ca7,_0x30eaf6);){if(_0x1ba80f[_0x2c60ab(0x174)](_0x1ba80f[_0x2c60ab(0x17a)],_0x1ba80f[_0x2c60ab(0x191)])){let _0x48ba54,_0x300c05=0x0,_0x11cf4b=0x0;do _0x48ba54=_0x1ba80f['pRSWP'](_0x409e4d[_0x2c60ab(0x137)](_0x299ca7++),0x3f),_0x11cf4b|=_0x1ba80f['Tkbwx'](_0x1ba80f[_0x2c60ab(0xf6)](_0x48ba54,0x1f),_0x300c05),_0x300c05+=0x5;while(_0x1ba80f['TKSuP'](_0x48ba54,0x20));let _0x218a36=_0x11cf4b&0x1?~(_0x11cf4b>>0x1):_0x1ba80f[_0x2c60ab(0x15a)](_0x11cf4b,0x1);_0x3279fe+=_0x218a36,_0x300c05=0x0,_0x11cf4b=0x0;do _0x48ba54=_0x1ba80f[_0x2c60ab(0x130)](_0x409e4d['charCodeAt'](_0x299ca7++),0x3f),_0x11cf4b|=_0x1ba80f[_0x2c60ab(0x14f)](_0x1ba80f[_0x2c60ab(0x165)](_0x48ba54,0x1f),_0x300c05),_0x300c05+=0x5;while(_0x1ba80f[_0x2c60ab(0x1a6)](_0x48ba54,0x20));let _0x4c9265=_0x1ba80f[_0x2c60ab(0x162)](_0x11cf4b,0x1)?~(_0x11cf4b>>0x1):_0x1ba80f[_0x2c60ab(0x13e)](_0x11cf4b,0x1);_0x4a2c72+=_0x4c9265,_0x28a591['push']([_0x1ba80f[_0x2c60ab(0x123)](_0x4a2c72,0.00001),_0x1ba80f[_0x2c60ab(0x123)](_0x3279fe,0.00001)]);}else{let _0x175853={..._0x190851};return _0x175853[_0x2c60ab(0x19b)]?.[_0x2c60ab(0x193)]?.['length']&&(_0x175853['route']['routes']=_0x175853[_0x2c60ab(0x19b)][_0x2c60ab(0x193)][_0x2c60ab(0x149)](_0x573260=>({..._0x573260,'geometry':_0x4b505b===_0x2c60ab(0x17b)&&typeof _0x573260[_0x2c60ab(0x10a)]==_0x2c60ab(0x170)?_0x110678(_0x573260['geometry']):_0x573260[_0x2c60ab(0x10a)]}))),_0x175853;}}return _0x28a591;}var h=class{constructor(_0x19a6fa){this['map']=_0x19a6fa;}[a0_0x527ff0(0x151)](_0x23080a,_0x3a5898=!0x0){var _0xd1abbe=a0_0x527ff0;_0x3a5898?this[_0xd1abbe(0x149)][_0xd1abbe(0xfc)]({'zoom':_0x23080a}):this[_0xd1abbe(0x149)][_0xd1abbe(0x151)](_0x23080a);}[a0_0x527ff0(0x140)](_0x3b223d,_0x5572ec=!0x0){var _0x5eaebf=a0_0x527ff0;_0x5572ec?this[_0x5eaebf(0x149)][_0x5eaebf(0xfc)]({'bearing':_0x3b223d}):this['map']['setBearing'](_0x3b223d);}[a0_0x527ff0(0x18d)](_0x385e7e,_0x4ed943=!0x0){var _0x4fe9da=a0_0x527ff0;_0x4ed943?this['map'][_0x4fe9da(0xfc)]({'pitch':_0x385e7e}):this[_0x4fe9da(0x149)][_0x4fe9da(0x18d)](_0x385e7e);}['toggle3D'](_0x2c9f16){var _0x1d2db4=a0_0x527ff0;this[_0x1d2db4(0x149)][_0x1d2db4(0xfc)]({'pitch':_0x2c9f16?0x3c:0x0,'bearing':_0x2c9f16?this[_0x1d2db4(0x149)][_0x1d2db4(0x189)]():0x0,'duration':0x320});}[a0_0x527ff0(0x10c)](){var _0x34a411=a0_0x527ff0;this[_0x34a411(0x149)]['easeTo']({'bearing':0x0,'pitch':0x0,'duration':0x258});}['flyTo'](_0x7b389a){var _0x283c3b=a0_0x527ff0;this[_0x283c3b(0x149)]['flyTo']({'speed':1.2,'curve':1.42,'essential':!0x0,..._0x7b389a});}['getPitch'](){var _0x138c54=a0_0x527ff0;return this[_0x138c54(0x149)][_0x138c54(0x1b0)]();}},I=(_0x3f93ef,_0x4ed7d3)=>a0_0x527ff0(0xf3)+(_0x3f93ef||'#278960')+a0_0x527ff0(0x105)+(_0x3f93ef||a0_0x527ff0(0x139))+a0_0x527ff0(0x154)+(_0x4ed7d3??'')+a0_0x527ff0(0x132),f=class{constructor(_0x35c707){var _0x5ad021=a0_0x527ff0;this[_0x5ad021(0x17e)]=_0x35c707,this[_0x5ad021(0x107)]=this[_0x5ad021(0x12e)]();}[a0_0x527ff0(0x12e)](){var _0x4ef86e=a0_0x527ff0,_0x15e81a={'roQbk':_0x4ef86e(0x121),'xOIXB':_0x4ef86e(0x16c),'NFtOp':function(_0x2eede2,_0x1775e9,_0x583138){return _0x2eede2(_0x1775e9,_0x583138);},'jKLFZ':'#278960'};let _0x41a59f=document[_0x4ef86e(0x12e)](_0x15e81a[_0x4ef86e(0x19e)]);_0x41a59f[_0x4ef86e(0x177)][_0x4ef86e(0x145)]=_0x15e81a['xOIXB'];let _0x4eaba8=this[_0x4ef86e(0x17e)][_0x4ef86e(0x18c)]?this[_0x4ef86e(0x15c)](this['props'][_0x4ef86e(0x18c)]):_0x15e81a[_0x4ef86e(0x12a)](I,this[_0x4ef86e(0x17e)][_0x4ef86e(0x198)]??_0x15e81a['jKLFZ'],this[_0x4ef86e(0x17e)][_0x4ef86e(0x1a8)]);return _0x41a59f[_0x4ef86e(0x150)]=_0x4eaba8,this[_0x4ef86e(0x17e)][_0x4ef86e(0x15b)]&&(_0x41a59f[_0x4ef86e(0x15b)]=!0x0),_0x41a59f;}[a0_0x527ff0(0x15c)](_0xcf2f56){var _0x551ab1=a0_0x527ff0;return this['props'][_0x551ab1(0x198)]?_0xcf2f56[_0x551ab1(0x1a5)](/fill="[^"]*"/g,'fill=\x22'+this[_0x551ab1(0x17e)][_0x551ab1(0x198)]+'\x22'):_0xcf2f56;}[a0_0x527ff0(0x1b9)](){var _0x39b02a=a0_0x527ff0;return this[_0x39b02a(0x107)];}[a0_0x527ff0(0x131)](){var _0x11a32a=a0_0x527ff0;return this[_0x11a32a(0x17e)]['coordinates'];}[a0_0x527ff0(0x1bb)](){var _0x8604ea=a0_0x527ff0;return!!this[_0x8604ea(0x17e)]['draggable'];}[a0_0x527ff0(0x19c)](){var _0x2a3924=a0_0x527ff0,_0x51b3d1={'GWDDF':'center'};return this[_0x2a3924(0x17e)][_0x2a3924(0x18e)]||_0x51b3d1[_0x2a3924(0x13b)];}};function A(_0xe1173c,_0x4ad717,_0x2890d5){var _0x244929=a0_0x527ff0,_0x1d6060={'boBIv':_0x244929(0x101)};return new _0xe1173c[(_0x244929(0x1b6))]({'element':_0x2890d5['getElement'](),'draggable':_0x2890d5[_0x244929(0x1bb)]?.()??!0x1,'anchor':_0x2890d5['getAnchor']?.()??_0x1d6060[_0x244929(0x16a)]})['setLngLat'](_0x2890d5[_0x244929(0x131)]())[_0x244929(0xfb)](_0x4ad717);}var d={'dark':S,'light':C},n=class n{constructor(){}static[a0_0x527ff0(0x13c)](_0x318211,_0x2b7773){var _0x271352=a0_0x527ff0,_0x287f75={'cRSXW':_0x271352(0x180),'KAsaQ':function(_0x3f2b78,_0x4e825a){return _0x3f2b78===_0x4e825a;},'CDzGV':_0x271352(0x117),'EzDYb':'map'};if(n['instance'])return n[_0x271352(0x142)];let _0x103f41=window[_0x271352(0x115)]||_0x2b7773;if(!_0x103f41)throw new Error(_0x287f75[_0x271352(0x1b7)]);let _0x171f3c=_0x318211[_0x271352(0x12c)]?P:_0x318211[_0x271352(0x177)]?_0x318211[_0x271352(0x177)]:_0x287f75['KAsaQ'](_0x318211[_0x271352(0x15d)],_0x287f75[_0x271352(0x126)])?d['dark']:d[_0x271352(0x184)],_0x34cf2c=new n();return _0x34cf2c[_0x271352(0x116)]=_0x318211,_0x34cf2c[_0x271352(0x114)]=_0x103f41,_0x34cf2c[_0x271352(0x149)]=new _0x103f41[(_0x271352(0x185))]({'container':_0x318211[_0x271352(0x1ae)]||_0x287f75['EzDYb'],'style':_0x171f3c,'center':_0x318211[_0x271352(0x101)]||[69.624024,40.279687],'zoom':_0x318211[_0x271352(0x10f)]||0x5}),n[_0x271352(0x142)]=_0x34cf2c,_0x34cf2c;}static['getInstance'](){var _0x435093=a0_0x527ff0,_0x4c48a3={'lPeLw':'[MahalMap\x20SDK]\x20Карта\x20ещё\x20не\x20создана'};if(!n['instance'])throw new Error(_0x4c48a3[_0x435093(0x108)]);return n[_0x435093(0x142)];}[a0_0x527ff0(0x1aa)](_0x11cf20){var _0x252354=a0_0x527ff0,_0x16c71c={'SzOsz':function(_0x120dfe,_0x27ee84,_0x4c1172,_0x1524d5){return _0x120dfe(_0x27ee84,_0x4c1172,_0x1524d5);}};return _0x16c71c[_0x252354(0xf9)](A,this[_0x252354(0x114)],this[_0x252354(0x149)],_0x11cf20);}[a0_0x527ff0(0x1a7)](_0x177b9f){var _0x38fc41=a0_0x527ff0;this[_0x38fc41(0x149)]=_0x177b9f,this[_0x38fc41(0x167)]=new h(_0x177b9f);}['getCamera'](){return this['camera'];}[a0_0x527ff0(0x13d)](){var _0x3a7e6d=a0_0x527ff0;return this[_0x3a7e6d(0x149)];}[a0_0x527ff0(0x181)](_0x42574f){var _0x2966c3=a0_0x527ff0,_0x58093f={'CYuej':_0x2966c3(0x117)};this[_0x2966c3(0x149)][_0x2966c3(0x181)](_0x42574f===_0x58093f[_0x2966c3(0x1bc)]?d[_0x2966c3(0x117)]:d['light']);}['setCenter'](_0x232dbd){var _0xf841f2=a0_0x527ff0;this[_0xf841f2(0x149)][_0xf841f2(0x18b)](_0x232dbd);}[a0_0x527ff0(0x151)](_0x36040d){var _0x11cb60=a0_0x527ff0;this[_0x11cb60(0x149)][_0x11cb60(0x151)](_0x36040d);}[a0_0x527ff0(0xf4)](){var _0x3d39fb=a0_0x527ff0;this[_0x3d39fb(0x149)]['remove'](),n[_0x3d39fb(0x142)]=null;}};n[a0_0x527ff0(0x142)]=null;function a0_0x2fc7(_0x3092cd,_0xa380eb){var _0x4b4447=a0_0x4f1c();return a0_0x2fc7=function(_0x4059ec,_0x1cc9ab){_0x4059ec=_0x4059ec-0xf1;var _0x3780c9=_0x4b4447[_0x4059ec];return _0x3780c9;},a0_0x2fc7(_0x3092cd,_0xa380eb);}var g=n,E=$(require(a0_0x527ff0(0xff))),m=E['default'][a0_0x527ff0(0x13c)]({'baseURL':v});m[a0_0x527ff0(0x109)]['request']['use'](_0x412994=>_0x412994,_0x37c610=>(_0x37c610['request']?.[a0_0x527ff0(0x12b)]===0x191&&y(),Promise[a0_0x527ff0(0x128)](_0x37c610)));var b={};w(b,{'clearKey':()=>y,'getApiKey':()=>c,'saveKey':()=>x});var M='';function x(_0x289889){var _0x48643b=a0_0x527ff0,_0x17cdaf={'YUhCI':function(_0x50c1ab,_0x4d6f4f){return _0x50c1ab!==_0x4d6f4f;}};_0x17cdaf[_0x48643b(0x1a3)](_0x289889,'')&&(M=_0x289889,m[_0x48643b(0x190)][_0x48643b(0x100)][_0x48643b(0x152)][_0x48643b(0x1c1)]=_0x48643b(0x11b)+_0x289889);}function y(){var _0x1cd938=a0_0x527ff0,_0x151363={'JiDvH':function(_0x508498,_0x3849b9){return _0x508498!==_0x3849b9;},'OBGtW':_0x1cd938(0x14e),'NbHTu':_0x1cd938(0x112),'QwTOk':'1|2|3|5|4|0','zjdmp':function(_0x5b5c0c,_0x27a6ee){return _0x5b5c0c!==_0x27a6ee;},'hnxbc':'IgRVv','vKHHV':_0x1cd938(0x1bf),'aAKmk':function(_0x182088,_0x22acd6){return _0x182088(_0x22acd6);},'dDSQZ':function(_0x1a4b81,_0x3df3ef){return _0x1a4b81+_0x3df3ef;},'dRiex':_0x1cd938(0x19a),'Cargq':function(_0x5d06f3,_0x1d772c){return _0x5d06f3===_0x1d772c;},'qCPEU':_0x1cd938(0x124),'qHZyG':function(_0x5f4fad){return _0x5f4fad();},'lfBwd':'warn','YRQOp':_0x1cd938(0x1b3),'UmBsw':'exception','vykwp':_0x1cd938(0x129),'lKTwI':_0x1cd938(0x1be),'DNWsk':function(_0xb142f4,_0x18e898){return _0xb142f4<_0x18e898;},'tZUGh':'2|3|1|5|0|4','jOtOJ':function(_0x4a9202,_0x4fe28d,_0x236e13){return _0x4a9202(_0x4fe28d,_0x236e13);}},_0xa54e59=(function(){var _0x56cafa=_0x1cd938,_0x4f6254={'eLrqw':function(_0x52d00f,_0x2a9b75){var _0x3a6c80=a0_0x2fc7;return _0x151363[_0x3a6c80(0x176)](_0x52d00f,_0x2a9b75);},'qssYj':_0x56cafa(0x125),'qmRIj':_0x151363['OBGtW'],'SOTaR':_0x151363['NbHTu']},_0x2a7cb5=!![];return function(_0x3b9837,_0x4c17f4){var _0x4084a8=_0x2a7cb5?function(){var _0x647c60=a0_0x2fc7,_0x10bd07={'rWnAW':_0x647c60(0x194)};if(_0x4f6254[_0x647c60(0x183)](_0x4f6254[_0x647c60(0x148)],_0x4f6254['qmRIj'])){if(_0x4c17f4){if(_0x4f6254[_0x647c60(0x183)](_0x647c60(0x15e),_0x4f6254[_0x647c60(0x10e)])){var _0x1b19c1=_0x4c17f4[_0x647c60(0x182)](_0x3b9837,arguments);return _0x4c17f4=null,_0x1b19c1;}else{let _0x3eccb4=new _0x2c8c59(_0x4c6b01[_0x647c60(0x175)])[_0x647c60(0x120)][_0x647c60(0x11d)](_0x10bd07[_0x647c60(0xf8)]);if(_0x3eccb4)return _0x3eccb4;}}}else this[_0x647c60(0x149)]=_0x300548,this[_0x647c60(0x167)]=new _0x56b746(_0xa253c);}:function(){};return _0x2a7cb5=![],_0x4084a8;};}()),_0xcd21a3=_0x151363[_0x1cd938(0x158)](_0xa54e59,this,function(){var _0x134c45=_0x1cd938,_0x3435dc={'EQAaU':_0x151363['QwTOk'],'MFCDn':function(_0x24b177,_0x25d8e3){var _0x1d4ad2=a0_0x2fc7;return _0x151363[_0x1d4ad2(0x146)](_0x24b177,_0x25d8e3);},'cJZhV':_0x151363[_0x134c45(0x1a9)],'CBOqE':_0x151363[_0x134c45(0x16b)],'TrxME':function(_0x4e171d,_0x42cec2){var _0x52d3b6=_0x134c45;return _0x151363[_0x52d3b6(0x157)](_0x4e171d,_0x42cec2);},'QZZSm':function(_0x5613ce,_0x2684aa){var _0x5888f4=_0x134c45;return _0x151363[_0x5888f4(0x1b4)](_0x5613ce,_0x2684aa);},'IVMCM':_0x151363[_0x134c45(0x14d)]};if(_0x151363['Cargq'](_0x151363[_0x134c45(0xf1)],_0x134c45(0x199))){var _0x288823=_0x3435dc[_0x134c45(0x173)][_0x134c45(0x1ac)]('|'),_0x13e17c=0x0;while(!![]){switch(_0x288823[_0x13e17c++]){case'0':_0xf9690b[_0x5ada25]=_0x2253de;continue;case'1':var _0x2253de=_0x1e777d[_0x134c45(0x179)]['prototype'][_0x134c45(0x171)](_0x523015);continue;case'2':var _0x5ada25=_0x54b500[_0x53541c];continue;case'3':var _0x10e87f=_0xb30046[_0x5ada25]||_0x2253de;continue;case'4':_0x2253de[_0x134c45(0x196)]=_0x10e87f['toString'][_0x134c45(0x171)](_0x10e87f);continue;case'5':_0x2253de[_0x134c45(0x11c)]=_0x179b1c[_0x134c45(0x171)](_0x4bbb09);continue;}break;}}else{var _0x414add=function(){var _0x1f23e0=_0x134c45;if(_0x3435dc[_0x1f23e0(0x133)](_0x3435dc[_0x1f23e0(0x14a)],_0x3435dc[_0x1f23e0(0x122)])){var _0x5d74b1;try{_0x5d74b1=_0x3435dc[_0x1f23e0(0x141)](Function,_0x3435dc[_0x1f23e0(0x164)](_0x3435dc[_0x1f23e0(0x166)]+_0x1f23e0(0x12d),');'))();}catch(_0x406792){_0x5d74b1=window;}return _0x5d74b1;}else _0x26abb7?this[_0x1f23e0(0x149)][_0x1f23e0(0xfc)]({'pitch':_0x38f044}):this[_0x1f23e0(0x149)][_0x1f23e0(0x18d)](_0x5f52bc);},_0x2df9eb=_0x151363[_0x134c45(0x106)](_0x414add),_0x1b4b57=_0x2df9eb[_0x134c45(0x16d)]=_0x2df9eb[_0x134c45(0x16d)]||{},_0x7b89ba=['log',_0x151363[_0x134c45(0x1c0)],_0x134c45(0xfa),_0x151363[_0x134c45(0x136)],_0x151363['UmBsw'],_0x151363[_0x134c45(0x159)],_0x151363[_0x134c45(0x13a)]];for(var _0x32afab=0x0;_0x151363[_0x134c45(0x18a)](_0x32afab,_0x7b89ba['length']);_0x32afab++){var _0x191353=_0x151363[_0x134c45(0x197)][_0x134c45(0x1ac)]('|'),_0x40f348=0x0;while(!![]){switch(_0x191353[_0x40f348++]){case'0':_0x4c1fed['toString']=_0x1b7c27[_0x134c45(0x196)][_0x134c45(0x171)](_0x1b7c27);continue;case'1':var _0x1b7c27=_0x1b4b57[_0x39c147]||_0x4c1fed;continue;case'2':var _0x4c1fed=_0xa54e59[_0x134c45(0x179)][_0x134c45(0x1ba)][_0x134c45(0x171)](_0xa54e59);continue;case'3':var _0x39c147=_0x7b89ba[_0x32afab];continue;case'4':_0x1b4b57[_0x39c147]=_0x4c1fed;continue;case'5':_0x4c1fed['__proto__']=_0xa54e59['bind'](_0xa54e59);continue;}break;}}}});_0xcd21a3(),(M='',m['defaults'][_0x1cd938(0x100)][_0x1cd938(0x152)][_0x1cd938(0x1c1)]='');}var c=()=>M;function L(_0x42ab08,_0x4319da){var _0x516938=a0_0x527ff0,_0x4bdfd3={'gAlwS':_0x516938(0x110),'bDtZD':function(_0x308567,_0x4558bf){return _0x308567===_0x4558bf;},'VKShj':'hNMrF','veqDe':function(_0x5bad2b,..._0xad3a14){return _0x5bad2b(..._0xad3a14);},'tpZBA':_0x516938(0x1a0),'KuVUk':_0x516938(0x1ab),'JUWoq':function(_0x58a575,_0xd6e2db,_0x4bc155){return _0x58a575(_0xd6e2db,_0x4bc155);}};let _0x1208b7;return(..._0x127859)=>(_0x1208b7&&clearTimeout(_0x1208b7),new Promise(_0x32db91=>{var _0x35336f=_0x516938,_0x32de2f={'dTVVT':_0x4bdfd3['gAlwS'],'qMjAO':function(_0x50034d,_0x5d1ad2){var _0x5951a9=a0_0x2fc7;return _0x4bdfd3[_0x5951a9(0x147)](_0x50034d,_0x5d1ad2);},'TuaSn':_0x4bdfd3[_0x35336f(0x138)],'lzfue':function(_0x28ff46,..._0xa00f58){var _0x5f0f26=_0x35336f;return _0x4bdfd3[_0x5f0f26(0x104)](_0x28ff46,..._0xa00f58);}};_0x4bdfd3[_0x35336f(0x147)](_0x4bdfd3[_0x35336f(0x188)],_0x4bdfd3[_0x35336f(0xf2)])?this['map']=_0x28f56c:_0x1208b7=_0x4bdfd3[_0x35336f(0x113)](setTimeout,async()=>{var _0x381a66=_0x35336f,_0x586ca1={'PktXs':_0x32de2f['dTVVT']};if(_0x32de2f[_0x381a66(0x1bd)](_0x32de2f[_0x381a66(0x195)],_0x32de2f[_0x381a66(0x195)])){var _0x4255aa=await _0x32de2f[_0x381a66(0x1a2)](_0x42ab08,..._0x127859);_0x32db91(_0x4255aa);}else throw _0x163955[_0x381a66(0x1b3)](_0x586ca1[_0x381a66(0x178)],_0xc6d7aa),_0x43b7f1;},_0x4319da);}));}var R=async _0x1bf753=>{var _0x5db1e6=a0_0x527ff0,_0x51d5ce={'CgeQa':'services/getAddress','FFjZM':_0x5db1e6(0x119),'FyuHc':_0x5db1e6(0x11f),'UDMtG':_0x5db1e6(0x110)};try{return(await m['post'](_0x51d5ce[_0x5db1e6(0x135)],_0x1bf753))['data'];}catch(_0x5f3c83){if(_0x51d5ce[_0x5db1e6(0x10b)]!==_0x51d5ce['FyuHc'])throw console[_0x5db1e6(0x1b3)](_0x51d5ce[_0x5db1e6(0x15f)],_0x5f3c83),_0x5f3c83;else return!!this['props'][_0x5db1e6(0x15b)];}};async function H(_0x2ccbdf,_0x2e95ee,_0x268b27){var _0x28e2e2=a0_0x527ff0,_0x26cbba={'ahAuE':function(_0x13e1f4){return _0x13e1f4();},'KdYsP':function(_0x3f1e59,_0x2d08b4){return _0x3f1e59(_0x2d08b4);}};let _0x5e871f={'text':_0x2ccbdf,'token':_0x2e95ee||_0x26cbba[_0x28e2e2(0x17f)](c),..._0x268b27};try{return await _0x26cbba['KdYsP'](R,_0x5e871f);}catch(_0x434bf1){throw _0x434bf1;}}var X=L(H,0x1f4);async function G(_0x5a5493,_0x25e243,_0x5c1780){var _0x5c1243={'fFwDE':function(_0x3f7a77,_0x168a17,_0x50fd98,_0x134b5e){return _0x3f7a77(_0x168a17,_0x50fd98,_0x134b5e);}};return await _0x5c1243['fFwDE'](X,_0x5a5493,_0x25e243,_0x5c1780);}var B=async(_0x31ba18,_0x127a7f)=>{var _0x2d936d=a0_0x527ff0,_0x7607c5={'LNIGr':function(_0x203be6,_0x4b5932){return _0x203be6===_0x4b5932;},'JBFpx':_0x2d936d(0x10d)};try{let _0x3f2fd8=[];return _0x31ba18[_0x2d936d(0x1b8)](_0x59b46c=>{var _0x5958c2=_0x2d936d;_0x3f2fd8[_0x5958c2(0x19f)]({'lng':_0x59b46c[0x0],'lat':_0x59b46c[0x1]});}),(await m['post'](_0x2d936d(0x192),{'points':_0x3f2fd8,'token':_0x127a7f||c()}))['data'];}catch(_0x522351){if(_0x7607c5[_0x2d936d(0xf5)](_0x7607c5[_0x2d936d(0x161)],_0x7607c5['JBFpx']))throw console[_0x2d936d(0x1b3)](_0x522351),_0x522351;else this[_0x2d936d(0x149)][_0x2d936d(0x151)](_0x18f309);}};async function _(_0x44de22,_0x4d61a4,_0x195b90){var _0x2276ad=a0_0x527ff0;try{let _0x5c25cb=await B(_0x44de22,_0x195b90);return _0x5c25cb?.[_0x2276ad(0x11e)]?_0x5c25cb[_0x2276ad(0x11e)]['map'](_0x4bf209=>{var _0x4d501e=_0x2276ad;let _0x30f622={..._0x4bf209};return _0x30f622['route']?.[_0x4d501e(0x193)]?.[_0x4d501e(0xfe)]&&(_0x30f622[_0x4d501e(0x19b)][_0x4d501e(0x193)]=_0x30f622[_0x4d501e(0x19b)][_0x4d501e(0x193)][_0x4d501e(0x149)](_0x40770a=>({..._0x40770a,'geometry':_0x4d61a4===_0x4d501e(0x17b)&&typeof _0x40770a['geometry']==_0x4d501e(0x170)?k(_0x40770a[_0x4d501e(0x10a)]):_0x40770a[_0x4d501e(0x10a)]}))),_0x30f622;}):_0x5c25cb;}catch(_0x3a2c68){throw _0x3a2c68;}}function z(){var _0x1f86f4=a0_0x527ff0,_0x3d14f8={'tqeOs':_0x1f86f4(0x144),'WCkgc':'mahal_map.sdk.js','cddal':function(_0xb5f97c,_0x2336b8){return _0xb5f97c!==_0x2336b8;},'rdIkP':_0x1f86f4(0x143),'xfzIC':_0x1f86f4(0x194)};let _0x42ffd6=document[_0x1f86f4(0x155)](_0x3d14f8[_0x1f86f4(0x102)]);for(let _0x4505e of _0x42ffd6)if(_0x4505e['src'][_0x1f86f4(0x16f)](_0x3d14f8[_0x1f86f4(0x17c)])){if(_0x3d14f8[_0x1f86f4(0x118)](_0x3d14f8[_0x1f86f4(0x127)],_0x3d14f8[_0x1f86f4(0x127)])){var _0x29adc9=_0x2f78a7?function(){var _0xde8d4e=_0x1f86f4;if(_0x53ffc2){var _0x2883b8=_0x175155[_0xde8d4e(0x182)](_0x58142c,arguments);return _0x34ebf2=null,_0x2883b8;}}:function(){};return _0xed6895=![],_0x29adc9;}else{let _0xd82b54=new URL(_0x4505e['src'])[_0x1f86f4(0x120)][_0x1f86f4(0x11d)](_0x3d14f8[_0x1f86f4(0x163)]);if(_0xd82b54)return _0xd82b54;}}return'';}x(z()),0x0&&(module[a0_0x527ff0(0x186)]={'MahalMap':MahalMap,'MahalMapDefaultMarker':MahalMapDefaultMarker,'Router':Router,'Search':Search,'keyUtils':keyUtils});
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/app/config/constants.ts","../src/app/config/geojson-polyline.ts","../src/lib/controller/camera/index.ts","../src/lib/controller/markers/defaultMarkerSvg.ts","../src/lib/controller/markers/MahalMapDefaultMarker.ts","../src/lib/map/adapters/marker.adapter.ts","../src/lib/map/MahalMap.ts","../src/app/lib/axios/api/axios.ts","../src/app/lib/saveKey/index.ts","../src/app/lib/saveKey/utils.ts","../src/app/lib/debounce/index.ts","../src/lib/search/api.ts","../src/lib/search/utils.ts","../src/lib/routing/api.ts","../src/lib/routing/utils.ts"],"sourcesContent":["// Lib\r\nimport { MahalMap } from \"@lib/map\";\r\nimport { Search } from \"@lib/search\";\r\nimport { Router } from \"@lib/routing\";\r\nimport { MahalMapDefaultMarker } from \"@lib/controller\";\r\n\r\n// utils\r\nimport * as keyUtils from \"@app/lib/saveKey\";\r\n\r\nexport { MahalMap, Search, Router, keyUtils, MahalMapDefaultMarker };\r\n\r\nfunction loadKeyFromScriptUrl() {\r\n const scripts = document.getElementsByTagName(\"script\");\r\n for (const script of scripts) {\r\n if (script.src.includes(\"mahal_map.sdk.js\")) {\r\n const url = new URL(script.src);\r\n const apikey = url.searchParams.get(\"apikey\");\r\n if (apikey) return apikey;\r\n }\r\n }\r\n return \"\";\r\n}\r\nkeyUtils.saveKey(loadKeyFromScriptUrl());\r\n","const BASE_URL = \"https://platform.mahal.tj/api/\";\r\nconst LATLNGREGEX =\r\n /^([-+]?(?:[1-8]?\\d(?:\\.\\d+)?|90(?:\\.0+)?)),\\s*([-+]?(?:180(?:\\.0+)?|(?:(?:1[0-7]\\d)|(?:[1-9]?\\d))(?:\\.\\d+)?))$/;\r\nconst LNGLATREGEX =\r\n /^([-+]?(?:180(?:\\.0+)?|(?:(?:1[0-7]\\d)|(?:[1-9]?\\d))(?:\\.\\d+)?)),\\s*([-+]?(?:[1-8]?\\d(?:\\.\\d+)?|90(?:\\.0+)?))$/;\r\n\r\nconst REGEX =\r\n /^[-+]?([1-8]?\\d(\\.\\d+)?|90(\\.0+)?),\\s*[-+]?(180(\\.0+)?|((1[0-7]\\d)|([1-9]?\\d))(\\.\\d+)?)$/;\r\n\r\nconst DARK = \"https://mtile.gram.tj/custom-styles/dark-style.json\";\r\nconst LIGHT = \"https://mtile.gram.tj/custom-styles/mapstyle.json\";\r\nconst VECTOR =\r\n \"https://mtile.gram.tj/custom-styles/style_maptiler_basic_hn.json\";\r\n\r\nexport { BASE_URL, LATLNGREGEX, LNGLATREGEX, REGEX, DARK, LIGHT, VECTOR };\r\n","function geojsonPolyline(encoded: string): number[][] {\r\n let points = [];\r\n let index = 0,\r\n len = encoded.length;\r\n let lat = 0,\r\n lng = 0;\r\n\r\n while (index < len) {\r\n let b,\r\n shift = 0,\r\n result = 0;\r\n do {\r\n b = encoded.charCodeAt(index++) - 63;\r\n result |= (b & 0x1f) << shift;\r\n shift += 5;\r\n } while (b >= 0x20);\r\n let dlat = result & 1 ? ~(result >> 1) : result >> 1;\r\n lat += dlat;\r\n\r\n shift = 0;\r\n result = 0;\r\n do {\r\n b = encoded.charCodeAt(index++) - 63;\r\n result |= (b & 0x1f) << shift;\r\n shift += 5;\r\n } while (b >= 0x20);\r\n let dlng = result & 1 ? ~(result >> 1) : result >> 1;\r\n lng += dlng;\r\n\r\n points.push([lng * 1e-5, lat * 1e-5]);\r\n }\r\n\r\n return points;\r\n}\r\n\r\nexport { geojsonPolyline };\r\n\r\n// Пример использования:\r\n\r\n// geojsonPolyline(\"yzocFzynhVq}@n}@o}@nzD\")\r\n\r\n// Вернёт массив вида [\r\n// [102.0, 0.5],\r\n// [103.0, 1.0],\r\n// [104.0, 0.5],\r\n// [105.0, 0.0]\r\n// ].\r\n","import type { Map, FlyToOptions } from \"maplibre-gl\";\r\n\r\nexport class CameraController {\r\n constructor(private map: Map) {}\r\n\r\n setZoom(zoom: number, smooth = true) {\r\n if (smooth) {\r\n this.map.easeTo({ zoom });\r\n } else {\r\n this.map.setZoom(zoom);\r\n }\r\n }\r\n\r\n setBearing(bearing: number, smooth = true) {\r\n smooth ? this.map.easeTo({ bearing }) : this.map.setBearing(bearing);\r\n }\r\n\r\n setPitch(pitch: number, smooth = true) {\r\n smooth ? this.map.easeTo({ pitch }) : this.map.setPitch(pitch);\r\n }\r\n\r\n toggle3D(is3D: boolean) {\r\n this.map.easeTo({\r\n pitch: is3D ? 60 : 0,\r\n bearing: is3D ? this.map.getBearing() : 0,\r\n duration: 800,\r\n });\r\n }\r\n\r\n resetNorth() {\r\n this.map.easeTo({\r\n bearing: 0,\r\n pitch: 0,\r\n duration: 600,\r\n });\r\n }\r\n\r\n flyTo(options: FlyToOptions) {\r\n this.map.flyTo({\r\n speed: 1.2,\r\n curve: 1.42,\r\n essential: true,\r\n ...options,\r\n });\r\n }\r\n\r\n getPitch() {\r\n return this.map.getPitch();\r\n }\r\n}\r\n","const createDefaultMarkerSvg = (color: string, innerSvg?: string) => `<svg\r\n width=\"50\"\r\n height=\"62\"\r\n viewBox=\"0 0 50 62\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <g filter=\"url(#filter0_d_367_31358)\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M25 2C36.598 2 46 11.402 46 23C46 33.1603 38.7844 41.6353 29.198 43.5803L25.6524 48.6575C25.5788 48.7633 25.4812 48.8497 25.3676 48.9093C25.254 48.9689 25.128 49 25 49C24.872 49 24.746 48.9689 24.6324 48.9093C24.5188 48.8497 24.4212 48.7633 24.3476 48.6575L20.802 43.5803C11.2156 41.6353 4 33.1603 4 23C4 11.402 13.402 2 25 2Z\"\r\n fill=\"${color ? color : \"#278960\"}\"\r\n />\r\n </g>\r\n <path\r\n d=\"M25 51C27.7614 51 30 53.2386 30 56C30 58.7614 27.7614 61 25 61C22.2386 61 20 58.7614 20 56C20 53.2386 22.2386 51 25 51Z\"\r\n fill=\"${color ? color : \"#278960\"}\"\r\n stroke=\"white\"\r\n stroke-width=\"2\"\r\n />\r\n <g clip-path=\"url(#clip0_367_31358)\">\r\n ${innerSvg ?? \"\"}\r\n </g>\r\n <defs>\r\n <filter\r\n id=\"filter0_d_367_31358\"\r\n x=\"0\"\r\n y=\"0\"\r\n width=\"50\"\r\n height=\"55\"\r\n filterUnits=\"userSpaceOnUse\"\r\n color-interpolation-filters=\"sRGB\"\r\n >\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix\r\n in=\"SourceAlpha\"\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\"\r\n />\r\n <feOffset dy=\"2\" />\r\n <feGaussianBlur stdDeviation=\"2\" />\r\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\r\n <feColorMatrix\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0.250234 0 0 0 0 0.660089 0 0 0 0 0.488619 0 0 0 0.24 0\"\r\n />\r\n <feBlend\r\n mode=\"normal\"\r\n in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_367_31358\"\r\n />\r\n <feBlend\r\n mode=\"normal\"\r\n in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow_367_31358\"\r\n result=\"shape\"\r\n />\r\n </filter>\r\n <clipPath id=\"clip0_367_31358\">\r\n <rect\r\n width=\"22\"\r\n height=\"22\"\r\n fill=\"white\"\r\n transform=\"translate(14 12)\"\r\n />\r\n </clipPath>\r\n </defs>\r\n </svg>`;\r\n\r\nexport { createDefaultMarkerSvg };\r\n","import { createDefaultMarkerSvg } from \"./defaultMarkerSvg\";\r\nimport type { MahalMapDefaultMarkerProps } from \"@app/types\";\r\n\r\nclass MahalMapDefaultMarker {\r\n private element: HTMLElement;\r\n\r\n constructor(private props: MahalMapDefaultMarkerProps) {\r\n this.element = this.createElement();\r\n }\r\n\r\n private createElement(): HTMLElement {\r\n const el = document.createElement(\"div\");\r\n el.style.cursor = \"pointer\";\r\n\r\n const svg = this.props.svg\r\n ? this.applyColorToCustomSvg(this.props.svg)\r\n : createDefaultMarkerSvg(\r\n this.props.color ?? \"#278960\",\r\n this.props.innerSvg,\r\n );\r\n\r\n el.innerHTML = svg;\r\n\r\n if (this.props.draggable) {\r\n el.draggable = true;\r\n }\r\n\r\n return el;\r\n }\r\n\r\n private applyColorToCustomSvg(svg: string): string {\r\n if (!this.props.color) return svg;\r\n return svg.replace(/fill=\"[^\"]*\"/g, `fill=\"${this.props.color}\"`);\r\n }\r\n\r\n getElement() {\r\n return this.element;\r\n }\r\n\r\n getCoordinates() {\r\n return this.props.coordinates;\r\n }\r\n\r\n isDraggable() {\r\n return !!this.props.draggable;\r\n }\r\n}\r\n\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 })\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 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 });\r\n\r\n MahalMap.instance = instance;\r\n return instance;\r\n }\r\n\r\n static getInstance(): MahalMap {\r\n if (!MahalMap.instance) {\r\n throw new Error(\"[MahalMap SDK] Карта ещё не создана\");\r\n }\r\n return MahalMap.instance;\r\n }\r\n\r\n addMarker(marker: IMapMarker) {\r\n return addMarker(this.maplibre, this.map, marker);\r\n }\r\n init(map: MapType) {\r\n this.map = map;\r\n this.camera = new CameraController(map);\r\n }\r\n getCamera() {\r\n return this.camera;\r\n }\r\n\r\n getMap(): MapType {\r\n return this.map;\r\n }\r\n\r\n setStyle(theme: \"dark\" | \"light\") {\r\n this.map.setStyle(\r\n theme === \"dark\" ? defaultStyles.dark : defaultStyles.light,\r\n );\r\n }\r\n\r\n setCenter(center: [number, number]) {\r\n this.map.setCenter(center);\r\n }\r\n\r\n setZoom(zoom: number) {\r\n this.map.setZoom(zoom);\r\n }\r\n\r\n destroy() {\r\n this.map.remove();\r\n MahalMap.instance = null;\r\n }\r\n}\r\n","import axios from \"axios\";\r\nimport { BASE_URL } from \"@app/config/index\";\r\nimport { clearKey } from \"@app/lib\";\r\n\r\nexport const api = axios.create({\r\n baseURL: BASE_URL,\r\n});\r\n\r\napi.interceptors.request.use(\r\n (response) => response,\r\n (error) => {\r\n if (error.request?.status === 401) {\r\n clearKey();\r\n }\r\n return Promise.reject(error);\r\n }\r\n);\r\n","export * from \"./utils\";\r\n","import { api } from \"@app/lib\";\r\n\r\nlet apiKey: string = \"\";\r\n\r\nfunction saveKey(param: string) {\r\n if (param === \"\") return;\r\n apiKey = param;\r\n api.defaults.headers.common[\"Authorization\"] = `Bearer ${param}`;\r\n}\r\n\r\nfunction clearKey() {\r\n apiKey = \"\";\r\n api.defaults.headers.common[\"Authorization\"] = \"\";\r\n}\r\n\r\nconst getApiKey = () => apiKey;\r\n\r\nexport { saveKey, clearKey, getApiKey };\r\n","function debounce<F extends (...args: any[]) => Promise<any>>(\r\n fn: F,\r\n delay: number\r\n) {\r\n let timer: NodeJS.Timeout;\r\n\r\n return (...args: Parameters<F>): Promise<ReturnType<F>> => {\r\n if (timer) clearTimeout(timer);\r\n return new Promise((resolve) => {\r\n timer = setTimeout(async () => {\r\n const result = await fn(...args);\r\n resolve(result);\r\n }, delay);\r\n }) as Promise<ReturnType<F>>;\r\n };\r\n}\r\n\r\nexport { debounce };\r\n","import { api } from \"@app/lib\";\r\nimport type { ISearchParam, ISearch } from \"@app/types\";\r\n\r\nexport const searchPost = async (params: ISearchParam): Promise<ISearch[]> => {\r\n try {\r\n const response = await api.post(\"services/getAddress\", params);\r\n return response.data;\r\n } catch (error) {\r\n console.error(\"Ошибка при поиске адреса:\", error);\r\n throw error;\r\n }\r\n};\r\n","import { searchPost } from \"./api\";\r\nimport { IAdditionalParamType, ISearch, ISearchParam } from \"@app/types/index\";\r\nimport { debounce, getApiKey } from \"@app/lib\";\r\n// import { checkCoordinates } from \"@app/lib/index\";\r\n// import { REGEX } from \"@app/config\";\r\n\r\nasync function getSearch(\r\n param: string,\r\n token: string,\r\n additionalParam?: IAdditionalParamType,\r\n): Promise<ISearch[]> {\r\n let searchData: ISearchParam = {\r\n text: param,\r\n token: token ? token : getApiKey(),\r\n ...additionalParam,\r\n };\r\n\r\n // if (param !== \"\") {\r\n // if (REGEX.test(param)) {\r\n // let coordinates = await checkCoordinates(param);\r\n // if (coordinates) {\r\n // searchData = {\r\n // lat: coordinates.lat ?? \"\",\r\n // lng: coordinates.lng ?? \"\",\r\n // };\r\n // }\r\n // } else {\r\n // searchData.text = param;\r\n // }\r\n // } else {\r\n // searchData.text = \"\";\r\n // }\r\n\r\n try {\r\n const res: ISearch[] = await searchPost(searchData);\r\n return res;\r\n } catch (error) {\r\n throw error;\r\n }\r\n}\r\n\r\nconst debouncedFn = debounce(getSearch, 500);\r\n\r\nasync function Search(\r\n param: string,\r\n token: string,\r\n additionalParam?: IAdditionalParamType,\r\n) {\r\n return await debouncedFn(param, token, additionalParam);\r\n}\r\n\r\nexport { Search };\r\n","import { api, getApiKey } from \"@app/lib\";\r\n\r\nconst routingApi = async (param: number[][], token: string) => {\r\n try {\r\n const points: { lng: number; lat: number }[] = [];\r\n\r\n param.forEach((e) => {\r\n points.push({ lng: e[0], lat: e[1] });\r\n });\r\n const response = await api.post(\"services/getRoutes\", {\r\n points,\r\n token: token ? token : getApiKey(),\r\n });\r\n return response.data;\r\n } catch (err) {\r\n console.error(err);\r\n throw err;\r\n }\r\n};\r\n\r\nexport { routingApi };\r\n","import { routingApi } from \"@lib/routing/api\";\r\nimport { geojsonPolyline } from \"@app/config/index\";\r\nimport type { IRoute } from \"@app/types/index\";\r\n\r\nasync function Router(\r\n param: number[][],\r\n typeData: string,\r\n token: string,\r\n): Promise<IRoute[]> {\r\n try {\r\n const res = await routingApi(param, token);\r\n\r\n if (!res?.data) return res;\r\n\r\n const data: IRoute[] = res.data;\r\n\r\n return data.map((route) => {\r\n const updated = { ...route };\r\n\r\n if (updated.route?.routes?.length) {\r\n updated.route.routes = updated.route.routes.map((r) => ({\r\n ...r,\r\n geometry:\r\n typeData === \"geojson\" && typeof r.geometry === \"string\"\r\n ? geojsonPolyline(r.geometry)\r\n : r.geometry,\r\n }));\r\n }\r\n\r\n return updated as IRoute;\r\n });\r\n } catch (error) {\r\n throw error;\r\n }\r\n}\r\n\r\nexport { Router };\r\n"],"mappings":"0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,cAAAE,EAAA,0BAAAC,EAAA,WAAAC,EAAA,WAAAC,EAAA,aAAAC,IAAA,eAAAC,EAAAP,GCAA,IAAMQ,EAAW,iCASjB,IAAMC,EAAO,sDACPC,EAAQ,oDACRC,EACJ,mECZF,SAASC,EAAgBC,EAA6B,CACpD,IAAIC,EAAS,CAAC,EACVC,EAAQ,EACVC,EAAMH,EAAQ,OACZI,EAAM,EACRC,EAAM,EAER,KAAOH,EAAQC,GAAK,CAClB,IAAIG,EACFC,EAAQ,EACRC,EAAS,EACX,GACEF,EAAIN,EAAQ,WAAWE,GAAO,EAAI,GAClCM,IAAWF,EAAI,KAASC,EACxBA,GAAS,QACFD,GAAK,IACd,IAAIG,EAAOD,EAAS,EAAI,EAAEA,GAAU,GAAKA,GAAU,EACnDJ,GAAOK,EAEPF,EAAQ,EACRC,EAAS,EACT,GACEF,EAAIN,EAAQ,WAAWE,GAAO,EAAI,GAClCM,IAAWF,EAAI,KAASC,EACxBA,GAAS,QACFD,GAAK,IACd,IAAII,EAAOF,EAAS,EAAI,EAAEA,GAAU,GAAKA,GAAU,EACnDH,GAAOK,EAEPT,EAAO,KAAK,CAACI,EAAM,KAAMD,EAAM,IAAI,CAAC,CACtC,CAEA,OAAOH,CACT,CC/BO,IAAMU,EAAN,KAAuB,CAC5B,YAAoBC,EAAU,CAAV,SAAAA,CAAW,CAE/B,QAAQC,EAAcC,EAAS,GAAM,CAC/BA,EACF,KAAK,IAAI,OAAO,CAAE,KAAAD,CAAK,CAAC,EAExB,KAAK,IAAI,QAAQA,CAAI,CAEzB,CAEA,WAAWE,EAAiBD,EAAS,GAAM,CACzCA,EAAS,KAAK,IAAI,OAAO,CAAE,QAAAC,CAAQ,CAAC,EAAI,KAAK,IAAI,WAAWA,CAAO,CACrE,CAEA,SAASC,EAAeF,EAAS,GAAM,CACrCA,EAAS,KAAK,IAAI,OAAO,CAAE,MAAAE,CAAM,CAAC,EAAI,KAAK,IAAI,SAASA,CAAK,CAC/D,CAEA,SAASC,EAAe,CACtB,KAAK,IAAI,OAAO,CACd,MAAOA,EAAO,GAAK,EACnB,QAASA,EAAO,KAAK,IAAI,WAAW,EAAI,EACxC,SAAU,GACZ,CAAC,CACH,CAEA,YAAa,CACX,KAAK,IAAI,OAAO,CACd,QAAS,EACT,MAAO,EACP,SAAU,GACZ,CAAC,CACH,CAEA,MAAMC,EAAuB,CAC3B,KAAK,IAAI,MAAM,CACb,MAAO,IACP,MAAO,KACP,UAAW,GACX,GAAGA,CACL,CAAC,CACH,CAEA,UAAW,CACT,OAAO,KAAK,IAAI,SAAS,CAC3B,CACF,ECjDA,IAAMC,EAAyB,CAACC,EAAeC,IAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAYjDD,GAAgB,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,mBAK1BA,GAAgB,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,WAKjCC,GAAY,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;cCnBzB,IAAMC,EAAN,KAA4B,CAG1B,YAAoBC,EAAmC,CAAnC,WAAAA,EAClB,KAAK,QAAU,KAAK,cAAc,CACpC,CAEQ,eAA6B,CACnC,IAAMC,EAAK,SAAS,cAAc,KAAK,EACvCA,EAAG,MAAM,OAAS,UAElB,IAAMC,EAAM,KAAK,MAAM,IACnB,KAAK,sBAAsB,KAAK,MAAM,GAAG,EACzCC,EACE,KAAK,MAAM,OAAS,UACpB,KAAK,MAAM,QACb,EAEJ,OAAAF,EAAG,UAAYC,EAEX,KAAK,MAAM,YACbD,EAAG,UAAY,IAGVA,CACT,CAEQ,sBAAsBC,EAAqB,CACjD,OAAK,KAAK,MAAM,MACTA,EAAI,QAAQ,gBAAiB,SAAS,KAAK,MAAM,KAAK,GAAG,EADlCA,CAEhC,CAEA,YAAa,CACX,OAAO,KAAK,OACd,CAEA,gBAAiB,CACf,OAAO,KAAK,MAAM,WACpB,CAEA,aAAc,CACZ,MAAO,CAAC,CAAC,KAAK,MAAM,SACtB,CACF,EC3CO,SAASE,EAAUC,EAAiBC,EAAUC,EAAoB,CAQvE,OAPkB,IAAIF,EAAW,OAAO,CACtC,QAASE,EAAO,WAAW,EAC3B,UAAWA,EAAO,cAAc,GAAK,EACvC,CAAC,EACE,UAAUA,EAAO,eAAe,CAAC,EACjC,MAAMD,CAAG,CAGd,CCHA,IAAME,EAAgB,CAAE,KAAMC,EAAM,MAAOC,CAAM,EAEpCC,EAAN,MAAMA,CAAS,CASZ,aAAc,CAAC,CAEvB,OAAO,OACLC,EACAC,EACA,CACA,GAAIF,EAAS,SAAU,OAAOA,EAAS,SAGvC,IAAMG,EADkB,OAAe,YACJD,EAEnC,GAAI,CAACC,EACH,MAAM,IAAI,MACR,0VACF,EAGF,IAAMC,EAAaH,EAAQ,oBACvBI,EACAJ,EAAQ,MACNA,EAAQ,MACRA,EAAQ,QAAU,OAChBJ,EAAc,KACdA,EAAc,MAEhBS,EAAW,IAAIN,EAErB,OAAAM,EAAS,QAAUL,EACnBK,EAAS,SAAWH,EACpBG,EAAS,IAAM,IAAIH,EAAS,IAAI,CAC9B,UAAWF,EAAQ,WAAa,MAChC,MAAOG,EACP,OAAQH,EAAQ,QAAU,CAAC,UAAW,SAAS,EAC/C,KAAMA,EAAQ,MAAQ,CACxB,CAAC,EAEDD,EAAS,SAAWM,EACbA,CACT,CAEA,OAAO,aAAwB,CAC7B,GAAI,CAACN,EAAS,SACZ,MAAM,IAAI,MAAM,0HAAqC,EAEvD,OAAOA,EAAS,QAClB,CAEA,UAAUO,EAAoB,CAC5B,OAAOC,EAAU,KAAK,SAAU,KAAK,IAAKD,CAAM,CAClD,CACA,KAAKE,EAAc,CACjB,KAAK,IAAMA,EACX,KAAK,OAAS,IAAIC,EAAiBD,CAAG,CACxC,CACA,WAAY,CACV,OAAO,KAAK,MACd,CAEA,QAAkB,CAChB,OAAO,KAAK,GACd,CAEA,SAASE,EAAyB,CAChC,KAAK,IAAI,SACPA,IAAU,OAASd,EAAc,KAAOA,EAAc,KACxD,CACF,CAEA,UAAUe,EAA0B,CAClC,KAAK,IAAI,UAAUA,CAAM,CAC3B,CAEA,QAAQC,EAAc,CACpB,KAAK,IAAI,QAAQA,CAAI,CACvB,CAEA,SAAU,CACR,KAAK,IAAI,OAAO,EAChBb,EAAS,SAAW,IACtB,CACF,EAzFaA,EACI,SAA4B,KADtC,IAAMc,EAANd,ECXP,IAAAe,EAAkB,oBAIX,IAAMC,EAAM,EAAAC,QAAM,OAAO,CAC9B,QAASC,CACX,CAAC,EAEDF,EAAI,aAAa,QAAQ,IACtBG,GAAaA,EACbC,IACKA,EAAM,SAAS,SAAW,KAC5BC,EAAS,EAEJ,QAAQ,OAAOD,CAAK,EAE/B,EChBA,IAAAE,EAAA,GAAAC,EAAAD,EAAA,cAAAE,EAAA,cAAAC,EAAA,YAAAC,ICEA,IAAIC,EAAiB,GAErB,SAASC,EAAQC,EAAe,CAC1BA,IAAU,KACdF,EAASE,EACTC,EAAI,SAAS,QAAQ,OAAO,cAAmB,UAAUD,CAAK,GAChE,CAEA,SAASE,GAAW,CAClBJ,EAAS,GACTG,EAAI,SAAS,QAAQ,OAAO,cAAmB,EACjD,CAEA,IAAME,EAAY,IAAML,ECfxB,SAASM,EACPC,EACAC,EACA,CACA,IAAIC,EAEJ,MAAO,IAAIC,KACLD,GAAO,aAAaA,CAAK,EACtB,IAAI,QAASE,GAAY,CAC9BF,EAAQ,WAAW,SAAY,CAC7B,IAAMG,EAAS,MAAML,EAAG,GAAGG,CAAI,EAC/BC,EAAQC,CAAM,CAChB,EAAGJ,CAAK,CACV,CAAC,EAEL,CCZO,IAAMK,EAAa,MAAOC,GAA6C,CAC5E,GAAI,CAEF,OADiB,MAAMC,EAAI,KAAK,sBAAuBD,CAAM,GAC7C,IAClB,OAASE,EAAO,CACd,cAAQ,MAAM,qIAA6BA,CAAK,EAC1CA,CACR,CACF,ECLA,eAAeC,EACbC,EACAC,EACAC,EACoB,CACpB,IAAIC,EAA2B,CAC7B,KAAMH,EACN,MAAOC,GAAgBG,EAAU,EACjC,GAAGF,CACL,EAkBA,GAAI,CAEF,OADuB,MAAMG,EAAWF,CAAU,CAEpD,OAASG,EAAO,CACd,MAAMA,CACR,CACF,CAEA,IAAMC,EAAcC,EAAST,EAAW,GAAG,EAE3C,eAAeU,EACbT,EACAC,EACAC,EACA,CACA,OAAO,MAAMK,EAAYP,EAAOC,EAAOC,CAAe,CACxD,CC/CA,IAAMQ,EAAa,MAAOC,EAAmBC,IAAkB,CAC7D,GAAI,CACF,IAAMC,EAAyC,CAAC,EAEhD,OAAAF,EAAM,QAASG,GAAM,CACnBD,EAAO,KAAK,CAAE,IAAKC,EAAE,CAAC,EAAG,IAAKA,EAAE,CAAC,CAAE,CAAC,CACtC,CAAC,GACgB,MAAMC,EAAI,KAAK,qBAAsB,CACpD,OAAAF,EACA,MAAOD,GAAgBI,EAAU,CACnC,CAAC,GACe,IAClB,OAASC,EAAK,CACZ,cAAQ,MAAMA,CAAG,EACXA,CACR,CACF,ECdA,eAAeC,EACbC,EACAC,EACAC,EACmB,CACnB,GAAI,CACF,IAAMC,EAAM,MAAMC,EAAWJ,EAAOE,CAAK,EAEzC,OAAKC,GAAK,KAEaA,EAAI,KAEf,IAAKE,GAAU,CACzB,IAAMC,EAAU,CAAE,GAAGD,CAAM,EAE3B,OAAIC,EAAQ,OAAO,QAAQ,SACzBA,EAAQ,MAAM,OAASA,EAAQ,MAAM,OAAO,IAAKC,IAAO,CACtD,GAAGA,EACH,SACEN,IAAa,WAAa,OAAOM,EAAE,UAAa,SAC5CC,EAAgBD,EAAE,QAAQ,EAC1BA,EAAE,QACV,EAAE,GAGGD,CACT,CAAC,EAlBsBH,CAmBzB,OAASM,EAAO,CACd,MAAMA,CACR,CACF,CfvBA,SAASC,GAAuB,CAC9B,IAAMC,EAAU,SAAS,qBAAqB,QAAQ,EACtD,QAAWC,KAAUD,EACnB,GAAIC,EAAO,IAAI,SAAS,kBAAkB,EAAG,CAE3C,IAAMC,EADM,IAAI,IAAID,EAAO,GAAG,EACX,aAAa,IAAI,QAAQ,EAC5C,GAAIC,EAAQ,OAAOA,CACrB,CAEF,MAAO,EACT,CACSC,EAAQJ,EAAqB,CAAC","names":["index_exports","__export","MahalMap","MahalMapDefaultMarker","Router","Search","saveKey_exports","__toCommonJS","BASE_URL","DARK","LIGHT","VECTOR","geojsonPolyline","encoded","points","index","len","lat","lng","b","shift","result","dlat","dlng","CameraController","map","zoom","smooth","bearing","pitch","is3D","options","createDefaultMarkerSvg","color","innerSvg","MahalMapDefaultMarker","props","el","svg","createDefaultMarkerSvg","addMarker","maplibregl","map","marker","defaultStyles","DARK","LIGHT","_MahalMap","options","maplibreObject","maplibre","finalStyle","VECTOR","instance","marker","addMarker","map","CameraController","theme","center","zoom","MahalMap","import_axios","api","axios","BASE_URL","response","error","clearKey","saveKey_exports","__export","clearKey","getApiKey","saveKey","apiKey","saveKey","param","api","clearKey","getApiKey","debounce","fn","delay","timer","args","resolve","result","searchPost","params","api","error","getSearch","param","token","additionalParam","searchData","getApiKey","searchPost","error","debouncedFn","debounce","Search","routingApi","param","token","points","e","api","getApiKey","err","Router","param","typeData","token","res","routingApi","route","updated","r","geojsonPolyline","error","loadKeyFromScriptUrl","scripts","script","apikey","saveKey"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/app/config/constants.ts","../src/app/config/geojson-polyline.ts","../src/lib/controller/camera/index.ts","../src/lib/controller/markers/defaultMarkerSvg.ts","../src/lib/controller/markers/MahalMapDefaultMarker.ts","../src/lib/map/adapters/marker.adapter.ts","../src/lib/map/MahalMap.ts","../src/app/lib/axios/api/axios.ts","../src/app/lib/saveKey/index.ts","../src/app/lib/saveKey/utils.ts","../src/app/lib/debounce/index.ts","../src/lib/search/api.ts","../src/lib/search/utils.ts","../src/lib/routing/api.ts","../src/lib/routing/utils.ts"],"sourcesContent":["// Lib\r\nimport { MahalMap } from \"@lib/map\";\r\nimport { Search } from \"@lib/search\";\r\nimport { Router } from \"@lib/routing\";\r\nimport { MahalMapDefaultMarker } from \"@lib/controller\";\r\n\r\n// utils\r\nimport * as keyUtils from \"@app/lib/saveKey\";\r\n\r\nexport { MahalMap, Search, Router, keyUtils, MahalMapDefaultMarker };\r\n\r\nfunction loadKeyFromScriptUrl() {\r\n const scripts = document.getElementsByTagName(\"script\");\r\n for (const script of scripts) {\r\n if (script.src.includes(\"mahal_map.sdk.js\")) {\r\n const url = new URL(script.src);\r\n const apikey = url.searchParams.get(\"apikey\");\r\n if (apikey) return apikey;\r\n }\r\n }\r\n return \"\";\r\n}\r\nkeyUtils.saveKey(loadKeyFromScriptUrl());\r\n","const BASE_URL = \"https://platform.mahal.tj/api/\";\r\nconst LATLNGREGEX =\r\n /^([-+]?(?:[1-8]?\\d(?:\\.\\d+)?|90(?:\\.0+)?)),\\s*([-+]?(?:180(?:\\.0+)?|(?:(?:1[0-7]\\d)|(?:[1-9]?\\d))(?:\\.\\d+)?))$/;\r\nconst LNGLATREGEX =\r\n /^([-+]?(?:180(?:\\.0+)?|(?:(?:1[0-7]\\d)|(?:[1-9]?\\d))(?:\\.\\d+)?)),\\s*([-+]?(?:[1-8]?\\d(?:\\.\\d+)?|90(?:\\.0+)?))$/;\r\n\r\nconst REGEX =\r\n /^[-+]?([1-8]?\\d(\\.\\d+)?|90(\\.0+)?),\\s*[-+]?(180(\\.0+)?|((1[0-7]\\d)|([1-9]?\\d))(\\.\\d+)?)$/;\r\n\r\nconst DARK = \"https://mtile.gram.tj/custom-styles/dark-style.json\";\r\nconst LIGHT = \"https://mtile.gram.tj/custom-styles/mapstyle.json\";\r\nconst VECTOR =\r\n \"https://mtile.gram.tj/custom-styles/style_maptiler_basic_hn.json\";\r\n\r\nexport { BASE_URL, LATLNGREGEX, LNGLATREGEX, REGEX, DARK, LIGHT, VECTOR };\r\n","function geojsonPolyline(encoded: string): number[][] {\r\n let points = [];\r\n let index = 0,\r\n len = encoded.length;\r\n let lat = 0,\r\n lng = 0;\r\n\r\n while (index < len) {\r\n let b,\r\n shift = 0,\r\n result = 0;\r\n do {\r\n b = encoded.charCodeAt(index++) - 63;\r\n result |= (b & 0x1f) << shift;\r\n shift += 5;\r\n } while (b >= 0x20);\r\n let dlat = result & 1 ? ~(result >> 1) : result >> 1;\r\n lat += dlat;\r\n\r\n shift = 0;\r\n result = 0;\r\n do {\r\n b = encoded.charCodeAt(index++) - 63;\r\n result |= (b & 0x1f) << shift;\r\n shift += 5;\r\n } while (b >= 0x20);\r\n let dlng = result & 1 ? ~(result >> 1) : result >> 1;\r\n lng += dlng;\r\n\r\n points.push([lng * 1e-5, lat * 1e-5]);\r\n }\r\n\r\n return points;\r\n}\r\n\r\nexport { geojsonPolyline };\r\n\r\n// Пример использования:\r\n\r\n// geojsonPolyline(\"yzocFzynhVq}@n}@o}@nzD\")\r\n\r\n// Вернёт массив вида [\r\n// [102.0, 0.5],\r\n// [103.0, 1.0],\r\n// [104.0, 0.5],\r\n// [105.0, 0.0]\r\n// ].\r\n","import type { Map, FlyToOptions } from \"maplibre-gl\";\r\n\r\nexport class CameraController {\r\n constructor(private map: Map) {}\r\n\r\n setZoom(zoom: number, smooth = true) {\r\n if (smooth) {\r\n this.map.easeTo({ zoom });\r\n } else {\r\n this.map.setZoom(zoom);\r\n }\r\n }\r\n\r\n setBearing(bearing: number, smooth = true) {\r\n smooth ? this.map.easeTo({ bearing }) : this.map.setBearing(bearing);\r\n }\r\n\r\n setPitch(pitch: number, smooth = true) {\r\n smooth ? this.map.easeTo({ pitch }) : this.map.setPitch(pitch);\r\n }\r\n\r\n toggle3D(is3D: boolean) {\r\n this.map.easeTo({\r\n pitch: is3D ? 60 : 0,\r\n bearing: is3D ? this.map.getBearing() : 0,\r\n duration: 800,\r\n });\r\n }\r\n\r\n resetNorth() {\r\n this.map.easeTo({\r\n bearing: 0,\r\n pitch: 0,\r\n duration: 600,\r\n });\r\n }\r\n\r\n flyTo(options: FlyToOptions) {\r\n this.map.flyTo({\r\n speed: 1.2,\r\n curve: 1.42,\r\n essential: true,\r\n ...options,\r\n });\r\n }\r\n\r\n getPitch() {\r\n return this.map.getPitch();\r\n }\r\n}\r\n","const createDefaultMarkerSvg = (color: string, innerSvg?: string) => `<svg\r\n width=\"50\"\r\n height=\"62\"\r\n viewBox=\"0 0 50 62\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <g filter=\"url(#filter0_d_367_31358)\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M25 2C36.598 2 46 11.402 46 23C46 33.1603 38.7844 41.6353 29.198 43.5803L25.6524 48.6575C25.5788 48.7633 25.4812 48.8497 25.3676 48.9093C25.254 48.9689 25.128 49 25 49C24.872 49 24.746 48.9689 24.6324 48.9093C24.5188 48.8497 24.4212 48.7633 24.3476 48.6575L20.802 43.5803C11.2156 41.6353 4 33.1603 4 23C4 11.402 13.402 2 25 2Z\"\r\n fill=\"${color ? color : \"#278960\"}\"\r\n />\r\n </g>\r\n <path\r\n d=\"M25 51C27.7614 51 30 53.2386 30 56C30 58.7614 27.7614 61 25 61C22.2386 61 20 58.7614 20 56C20 53.2386 22.2386 51 25 51Z\"\r\n fill=\"${color ? color : \"#278960\"}\"\r\n stroke=\"white\"\r\n stroke-width=\"2\"\r\n />\r\n <g clip-path=\"url(#clip0_367_31358)\">\r\n ${innerSvg ?? \"\"}\r\n </g>\r\n <defs>\r\n <filter\r\n id=\"filter0_d_367_31358\"\r\n x=\"0\"\r\n y=\"0\"\r\n width=\"50\"\r\n height=\"55\"\r\n filterUnits=\"userSpaceOnUse\"\r\n color-interpolation-filters=\"sRGB\"\r\n >\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix\r\n in=\"SourceAlpha\"\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\"\r\n />\r\n <feOffset dy=\"2\" />\r\n <feGaussianBlur stdDeviation=\"2\" />\r\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\r\n <feColorMatrix\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0.250234 0 0 0 0 0.660089 0 0 0 0 0.488619 0 0 0 0.24 0\"\r\n />\r\n <feBlend\r\n mode=\"normal\"\r\n in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_367_31358\"\r\n />\r\n <feBlend\r\n mode=\"normal\"\r\n in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow_367_31358\"\r\n result=\"shape\"\r\n />\r\n </filter>\r\n <clipPath id=\"clip0_367_31358\">\r\n <rect\r\n width=\"22\"\r\n height=\"22\"\r\n fill=\"white\"\r\n transform=\"translate(14 12)\"\r\n />\r\n </clipPath>\r\n </defs>\r\n </svg>`;\r\n\r\nexport { createDefaultMarkerSvg };\r\n","import { createDefaultMarkerSvg } from \"./defaultMarkerSvg\";\r\nimport type { MahalMapDefaultMarkerProps } from \"@app/types\";\r\n\r\nclass MahalMapDefaultMarker {\r\n private element: HTMLElement;\r\n\r\n constructor(private props: MahalMapDefaultMarkerProps) {\r\n this.element = this.createElement();\r\n }\r\n\r\n private createElement(): HTMLElement {\r\n const el = document.createElement(\"div\");\r\n el.style.cursor = \"pointer\";\r\n\r\n const svg = this.props.svg\r\n ? this.applyColorToCustomSvg(this.props.svg)\r\n : createDefaultMarkerSvg(\r\n this.props.color ?? \"#278960\",\r\n this.props.innerSvg,\r\n );\r\n\r\n el.innerHTML = svg;\r\n\r\n if (this.props.draggable) {\r\n el.draggable = true;\r\n }\r\n\r\n return el;\r\n }\r\n\r\n private applyColorToCustomSvg(svg: string): string {\r\n if (!this.props.color) return svg;\r\n return svg.replace(/fill=\"[^\"]*\"/g, `fill=\"${this.props.color}\"`);\r\n }\r\n\r\n getElement() {\r\n return this.element;\r\n }\r\n\r\n getCoordinates() {\r\n return this.props.coordinates;\r\n }\r\n\r\n isDraggable() {\r\n return !!this.props.draggable;\r\n }\r\n\r\n getAnchor() {\r\n return this.props.anchor || \"center\";\r\n }\r\n}\r\n\r\nexport { MahalMapDefaultMarker };\r\n","import type { Map } from \"maplibre-gl\";\r\nimport type { IMapMarker } from \"@app/types\";\r\n\r\nexport function addMarker(maplibregl: any, map: Map, marker: IMapMarker) {\r\n const mapMarker = new maplibregl.Marker({\r\n element: marker.getElement(),\r\n draggable: marker.isDraggable?.() ?? false,\r\n anchor: marker.getAnchor?.() ?? \"center\",\r\n })\r\n .setLngLat(marker.getCoordinates())\r\n .addTo(map);\r\n\r\n return mapMarker;\r\n}\r\n","import type { Map as MapType } from \"maplibre-gl\";\r\nimport { DARK, LIGHT, VECTOR } from \"@app/config\";\r\nimport { CameraController } from \"@lib/controller\";\r\n\r\nimport type { IMahalMapOptions, IMapMarker } from \"@app/types\";\r\n\r\n// Adapter\r\nimport { addMarker } from \"../map/adapters\";\r\n\r\nconst defaultStyles = { dark: DARK, light: LIGHT };\r\n\r\nexport class MahalMap {\r\n private static instance: MahalMap | null = null;\r\n\r\n private 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 });\r\n\r\n MahalMap.instance = instance;\r\n return instance;\r\n }\r\n\r\n static getInstance(): MahalMap {\r\n if (!MahalMap.instance) {\r\n throw new Error(\"[MahalMap SDK] Карта ещё не создана\");\r\n }\r\n return MahalMap.instance;\r\n }\r\n\r\n addMarker(marker: IMapMarker) {\r\n return addMarker(this.maplibre, this.map, marker);\r\n }\r\n init(map: MapType) {\r\n this.map = map;\r\n this.camera = new CameraController(map);\r\n }\r\n getCamera() {\r\n return this.camera;\r\n }\r\n\r\n getMap(): MapType {\r\n return this.map;\r\n }\r\n\r\n setStyle(theme: \"dark\" | \"light\") {\r\n this.map.setStyle(\r\n theme === \"dark\" ? defaultStyles.dark : defaultStyles.light,\r\n );\r\n }\r\n\r\n setCenter(center: [number, number]) {\r\n this.map.setCenter(center);\r\n }\r\n\r\n setZoom(zoom: number) {\r\n this.map.setZoom(zoom);\r\n }\r\n\r\n destroy() {\r\n this.map.remove();\r\n MahalMap.instance = null;\r\n }\r\n}\r\n","import axios from \"axios\";\r\nimport { BASE_URL } from \"@app/config/index\";\r\nimport { clearKey } from \"@app/lib\";\r\n\r\nexport const api = axios.create({\r\n baseURL: BASE_URL,\r\n});\r\n\r\napi.interceptors.request.use(\r\n (response) => response,\r\n (error) => {\r\n if (error.request?.status === 401) {\r\n clearKey();\r\n }\r\n return Promise.reject(error);\r\n }\r\n);\r\n","export * from \"./utils\";\r\n","import { api } from \"@app/lib\";\r\n\r\nlet apiKey: string = \"\";\r\n\r\nfunction saveKey(param: string) {\r\n if (param === \"\") return;\r\n apiKey = param;\r\n api.defaults.headers.common[\"Authorization\"] = `Bearer ${param}`;\r\n}\r\n\r\nfunction clearKey() {\r\n apiKey = \"\";\r\n api.defaults.headers.common[\"Authorization\"] = \"\";\r\n}\r\n\r\nconst getApiKey = () => apiKey;\r\n\r\nexport { saveKey, clearKey, getApiKey };\r\n","function debounce<F extends (...args: any[]) => Promise<any>>(\r\n fn: F,\r\n delay: number\r\n) {\r\n let timer: NodeJS.Timeout;\r\n\r\n return (...args: Parameters<F>): Promise<ReturnType<F>> => {\r\n if (timer) clearTimeout(timer);\r\n return new Promise((resolve) => {\r\n timer = setTimeout(async () => {\r\n const result = await fn(...args);\r\n resolve(result);\r\n }, delay);\r\n }) as Promise<ReturnType<F>>;\r\n };\r\n}\r\n\r\nexport { debounce };\r\n","import { api } from \"@app/lib\";\r\nimport type { ISearchParam, ISearch } from \"@app/types\";\r\n\r\nexport const searchPost = async (params: ISearchParam): Promise<ISearch[]> => {\r\n try {\r\n const response = await api.post(\"services/getAddress\", params);\r\n return response.data;\r\n } catch (error) {\r\n console.error(\"Ошибка при поиске адреса:\", error);\r\n throw error;\r\n }\r\n};\r\n","import { searchPost } from \"./api\";\r\nimport { IAdditionalParamType, ISearch, ISearchParam } from \"@app/types/index\";\r\nimport { debounce, getApiKey } from \"@app/lib\";\r\n// import { checkCoordinates } from \"@app/lib/index\";\r\n// import { REGEX } from \"@app/config\";\r\n\r\nasync function getSearch(\r\n param: string,\r\n token: string,\r\n additionalParam?: IAdditionalParamType,\r\n): Promise<ISearch[]> {\r\n let searchData: ISearchParam = {\r\n text: param,\r\n token: token ? token : getApiKey(),\r\n ...additionalParam,\r\n };\r\n\r\n // if (param !== \"\") {\r\n // if (REGEX.test(param)) {\r\n // let coordinates = await checkCoordinates(param);\r\n // if (coordinates) {\r\n // searchData = {\r\n // lat: coordinates.lat ?? \"\",\r\n // lng: coordinates.lng ?? \"\",\r\n // };\r\n // }\r\n // } else {\r\n // searchData.text = param;\r\n // }\r\n // } else {\r\n // searchData.text = \"\";\r\n // }\r\n\r\n try {\r\n const res: ISearch[] = await searchPost(searchData);\r\n return res;\r\n } catch (error) {\r\n throw error;\r\n }\r\n}\r\n\r\nconst debouncedFn = debounce(getSearch, 500);\r\n\r\nasync function Search(\r\n param: string,\r\n token: string,\r\n additionalParam?: IAdditionalParamType,\r\n) {\r\n return await debouncedFn(param, token, additionalParam);\r\n}\r\n\r\nexport { Search };\r\n","import { api, getApiKey } from \"@app/lib\";\r\n\r\nconst routingApi = async (param: number[][], token: string) => {\r\n try {\r\n const points: { lng: number; lat: number }[] = [];\r\n\r\n param.forEach((e) => {\r\n points.push({ lng: e[0], lat: e[1] });\r\n });\r\n const response = await api.post(\"services/getRoutes\", {\r\n points,\r\n token: token ? token : getApiKey(),\r\n });\r\n return response.data;\r\n } catch (err) {\r\n console.error(err);\r\n throw err;\r\n }\r\n};\r\n\r\nexport { routingApi };\r\n","import { routingApi } from \"@lib/routing/api\";\r\nimport { geojsonPolyline } from \"@app/config/index\";\r\nimport type { IRoute } from \"@app/types/index\";\r\n\r\nasync function Router(\r\n param: number[][],\r\n typeData: string,\r\n token: string,\r\n): Promise<IRoute[]> {\r\n try {\r\n const res = await routingApi(param, token);\r\n\r\n if (!res?.data) return res;\r\n\r\n const data: IRoute[] = res.data;\r\n\r\n return data.map((route) => {\r\n const updated = { ...route };\r\n\r\n if (updated.route?.routes?.length) {\r\n updated.route.routes = updated.route.routes.map((r) => ({\r\n ...r,\r\n geometry:\r\n typeData === \"geojson\" && typeof r.geometry === \"string\"\r\n ? geojsonPolyline(r.geometry)\r\n : r.geometry,\r\n }));\r\n }\r\n\r\n return updated as IRoute;\r\n });\r\n } catch (error) {\r\n throw error;\r\n }\r\n}\r\n\r\nexport { Router };\r\n"],"mappings":"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","names":["index_exports","__export","MahalMap","MahalMapDefaultMarker","Router","Search","saveKey_exports","__toCommonJS","BASE_URL","DARK","LIGHT","VECTOR","geojsonPolyline","encoded","points","index","len","lat","lng","b","shift","result","dlat","dlng","CameraController","map","zoom","smooth","bearing","pitch","is3D","options","createDefaultMarkerSvg","color","innerSvg","MahalMapDefaultMarker","props","el","svg","createDefaultMarkerSvg","addMarker","maplibregl","map","marker","defaultStyles","DARK","LIGHT","_MahalMap","options","maplibreObject","maplibre","finalStyle","VECTOR","instance","marker","addMarker","map","CameraController","theme","center","zoom","MahalMap","import_axios","api","axios","BASE_URL","response","error","clearKey","saveKey_exports","__export","clearKey","getApiKey","saveKey","apiKey","saveKey","param","api","clearKey","getApiKey","debounce","fn","delay","timer","args","resolve","result","searchPost","params","api","error","getSearch","param","token","additionalParam","searchData","getApiKey","searchPost","error","debouncedFn","debounce","Search","routingApi","param","token","points","e","api","getApiKey","err","Router","param","typeData","token","res","routingApi","route","updated","r","geojsonPolyline","error","loadKeyFromScriptUrl","scripts","script","apikey","saveKey"]}
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- var R=Object.defineProperty;var G=(t,e)=>{for(var r in e)R(t,r,{get:e[r],enumerable:!0})};var x="https://platform.mahal.tj/api/";var b="https://mtile.gram.tj/custom-styles/dark-style.json",w="https://mtile.gram.tj/custom-styles/mapstyle.json",T="https://mtile.gram.tj/custom-styles/style_maptiler_basic_hn.json";function v(t){let e=[],r=0,o=t.length,s=0,l=0;for(;r<o;){let a,i=0,p=0;do a=t.charCodeAt(r++)-63,p|=(a&31)<<i,i+=5;while(a>=32);let L=p&1?~(p>>1):p>>1;s+=L,i=0,p=0;do a=t.charCodeAt(r++)-63,p|=(a&31)<<i,i+=5;while(a>=32);let A=p&1?~(p>>1):p>>1;l+=A,e.push([l*1e-5,s*1e-5])}return e}var u=class{constructor(e){this.map=e}setZoom(e,r=!0){r?this.map.easeTo({zoom:e}):this.map.setZoom(e)}setBearing(e,r=!0){r?this.map.easeTo({bearing:e}):this.map.setBearing(e)}setPitch(e,r=!0){r?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 S=(t,e)=>`<svg
1
+ var R=Object.defineProperty;var G=(r,e)=>{for(var t in e)R(r,t,{get:e[t],enumerable:!0})};var x="https://platform.mahal.tj/api/";var b="https://mtile.gram.tj/custom-styles/dark-style.json",w="https://mtile.gram.tj/custom-styles/mapstyle.json",T="https://mtile.gram.tj/custom-styles/style_maptiler_basic_hn.json";function v(r){let e=[],t=0,o=r.length,s=0,l=0;for(;t<o;){let a,i=0,p=0;do a=r.charCodeAt(t++)-63,p|=(a&31)<<i,i+=5;while(a>=32);let E=p&1?~(p>>1):p>>1;s+=E,i=0,p=0;do a=r.charCodeAt(t++)-63,p|=(a&31)<<i,i+=5;while(a>=32);let L=p&1?~(p>>1):p>>1;l+=L,e.push([l*1e-5,s*1e-5])}return e}var u=class{constructor(e){this.map=e}setZoom(e,t=!0){t?this.map.easeTo({zoom:e}):this.map.setZoom(e)}setBearing(e,t=!0){t?this.map.easeTo({bearing:e}):this.map.setBearing(e)}setPitch(e,t=!0){t?this.map.easeTo({pitch:e}):this.map.setPitch(e)}toggle3D(e){this.map.easeTo({pitch:e?60:0,bearing:e?this.map.getBearing():0,duration:800})}resetNorth(){this.map.easeTo({bearing:0,pitch:0,duration:600})}flyTo(e){this.map.flyTo({speed:1.2,curve:1.42,essential:!0,...e})}getPitch(){return this.map.getPitch()}};var S=(r,e)=>`<svg
2
2
  width="50"
3
3
  height="62"
4
4
  viewBox="0 0 50 62"
@@ -10,12 +10,12 @@ var R=Object.defineProperty;var G=(t,e)=>{for(var r in e)R(t,r,{get:e[r],enumera
10
10
  fill-rule="evenodd"
11
11
  clip-rule="evenodd"
12
12
  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"
13
- fill="${t||"#278960"}"
13
+ fill="${r||"#278960"}"
14
14
  />
15
15
  </g>
16
16
  <path
17
17
  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"
18
- fill="${t||"#278960"}"
18
+ fill="${r||"#278960"}"
19
19
  stroke="white"
20
20
  stroke-width="2"
21
21
  />
@@ -67,5 +67,5 @@ var R=Object.defineProperty;var G=(t,e)=>{for(var r in e)R(t,r,{get:e[r],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 r=this.props.svg?this.applyColorToCustomSvg(this.props.svg):S(this.props.color??"#278960",this.props.innerSvg);return e.innerHTML=r,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}};function C(t,e,r){return new t.Marker({element:r.getElement(),draggable:r.isDraggable?.()??!1}).setLngLat(r.getCoordinates()).addTo(e)}var f={dark:b,light:w},n=class n{constructor(){}static create(e,r){if(n.instance)return n.instance;let s=window.maplibregl||r;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"?f.dark:f.light,a=new n;return a.options=e,a.maplibre=s,a.map=new s.Map({container:e.container||"map",style:l,center:e.center||[69.624024,40.279687],zoom:e.zoom||5}),n.instance=a,a}static getInstance(){if(!n.instance)throw new Error("[MahalMap SDK] \u041A\u0430\u0440\u0442\u0430 \u0435\u0449\u0451 \u043D\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u0430");return n.instance}addMarker(e){return C(this.maplibre,this.map,e)}init(e){this.map=e,this.camera=new u(e)}getCamera(){return this.camera}getMap(){return this.map}setStyle(e){this.map.setStyle(e==="dark"?f.dark:f.light)}setCenter(e){this.map.setCenter(e)}setZoom(e){this.map.setZoom(e)}destroy(){this.map.remove(),n.instance=null}};n.instance=null;var d=n;import B from"axios";var m=B.create({baseURL:x});m.interceptors.request.use(t=>t,t=>(t.request?.status===401&&g(),Promise.reject(t)));var P={};G(P,{clearKey:()=>g,getApiKey:()=>c,saveKey:()=>M});var y="";function M(t){t!==""&&(y=t,m.defaults.headers.common.Authorization=`Bearer ${t}`)}function g(){y="",m.defaults.headers.common.Authorization=""}var c=()=>y;function k(t,e){let r;return(...o)=>(r&&clearTimeout(r),new Promise(s=>{r=setTimeout(async()=>{let l=await t(...o);s(l)},e)}))}var I=async t=>{try{return(await m.post("services/getAddress",t)).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 _(t,e,r){let o={text:t,token:e||c(),...r};try{return await I(o)}catch(s){throw s}}var K=k(_,500);async function j(t,e,r){return await K(t,e,r)}var E=async(t,e)=>{try{let r=[];return t.forEach(s=>{r.push({lng:s[0],lat:s[1]})}),(await m.post("services/getRoutes",{points:r,token:e||c()})).data}catch(r){throw console.error(r),r}};async function D(t,e,r){try{let o=await E(t,r);return o?.data?o.data.map(l=>{let a={...l};return a.route?.routes?.length&&(a.route.routes=a.route.routes.map(i=>({...i,geometry:e==="geojson"&&typeof i.geometry=="string"?v(i.geometry):i.geometry}))),a}):o}catch(o){throw o}}function F(){let t=document.getElementsByTagName("script");for(let e of t)if(e.src.includes("mahal_map.sdk.js")){let o=new URL(e.src).searchParams.get("apikey");if(o)return o}return""}M(F());export{d as MahalMap,h as MahalMapDefaultMarker,D as Router,j as Search,P as keyUtils};
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):S(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 C(r,e,t){return new r.Marker({element:t.getElement(),draggable:t.isDraggable?.()??!1,anchor:t.getAnchor?.()??"center"}).setLngLat(t.getCoordinates()).addTo(e)}var h={dark:b,light:w},n=class n{constructor(){}static create(e,t){if(n.instance)return n.instance;let s=window.maplibregl||t;if(!s)throw new Error("[MahalMap SDK] MapLibre GL \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D. \u041F\u0435\u0440\u0435\u0434\u0430\u0439 \u0435\u0433\u043E \u0432\u0442\u043E\u0440\u044B\u043C \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u043E\u043C \u0438\u043B\u0438 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438 \u0447\u0435\u0440\u0435\u0437 script.");let l=e.autoAddVectorSource?T:e.style?e.style:e.theme==="dark"?h.dark:h.light,a=new n;return a.options=e,a.maplibre=s,a.map=new s.Map({container:e.container||"map",style:l,center:e.center||[69.624024,40.279687],zoom:e.zoom||5}),n.instance=a,a}static getInstance(){if(!n.instance)throw new Error("[MahalMap SDK] \u041A\u0430\u0440\u0442\u0430 \u0435\u0449\u0451 \u043D\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u0430");return n.instance}addMarker(e){return C(this.maplibre,this.map,e)}init(e){this.map=e,this.camera=new u(e)}getCamera(){return this.camera}getMap(){return this.map}setStyle(e){this.map.setStyle(e==="dark"?h.dark:h.light)}setCenter(e){this.map.setCenter(e)}setZoom(e){this.map.setZoom(e)}destroy(){this.map.remove(),n.instance=null}};n.instance=null;var d=n;import B from"axios";var m=B.create({baseURL:x});m.interceptors.request.use(r=>r,r=>(r.request?.status===401&&g(),Promise.reject(r)));var P={};G(P,{clearKey:()=>g,getApiKey:()=>c,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 c=()=>y;function k(r,e){let t;return(...o)=>(t&&clearTimeout(t),new Promise(s=>{t=setTimeout(async()=>{let l=await r(...o);s(l)},e)}))}var I=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 _(r,e,t){let o={text:r,token:e||c(),...t};try{return await I(o)}catch(s){throw s}}var K=k(_,500);async function j(r,e,t){return await K(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||c()})).data}catch(t){throw console.error(t),t}};async function D(r,e,t){try{let o=await A(r,t);return o?.data?o.data.map(l=>{let a={...l};return a.route?.routes?.length&&(a.route.routes=a.route.routes.map(i=>({...i,geometry:e==="geojson"&&typeof i.geometry=="string"?v(i.geometry):i.geometry}))),a}):o}catch(o){throw o}}function F(){let r=document.getElementsByTagName("script");for(let e of r)if(e.src.includes("mahal_map.sdk.js")){let o=new URL(e.src).searchParams.get("apikey");if(o)return o}return""}M(F());export{d as MahalMap,f as MahalMapDefaultMarker,D as Router,j as Search,P as keyUtils};
71
71
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/app/config/constants.ts","../src/app/config/geojson-polyline.ts","../src/lib/controller/camera/index.ts","../src/lib/controller/markers/defaultMarkerSvg.ts","../src/lib/controller/markers/MahalMapDefaultMarker.ts","../src/lib/map/adapters/marker.adapter.ts","../src/lib/map/MahalMap.ts","../src/app/lib/axios/api/axios.ts","../src/app/lib/saveKey/index.ts","../src/app/lib/saveKey/utils.ts","../src/app/lib/debounce/index.ts","../src/lib/search/api.ts","../src/lib/search/utils.ts","../src/lib/routing/api.ts","../src/lib/routing/utils.ts","../src/index.ts"],"sourcesContent":["const BASE_URL = \"https://platform.mahal.tj/api/\";\r\nconst LATLNGREGEX =\r\n /^([-+]?(?:[1-8]?\\d(?:\\.\\d+)?|90(?:\\.0+)?)),\\s*([-+]?(?:180(?:\\.0+)?|(?:(?:1[0-7]\\d)|(?:[1-9]?\\d))(?:\\.\\d+)?))$/;\r\nconst LNGLATREGEX =\r\n /^([-+]?(?:180(?:\\.0+)?|(?:(?:1[0-7]\\d)|(?:[1-9]?\\d))(?:\\.\\d+)?)),\\s*([-+]?(?:[1-8]?\\d(?:\\.\\d+)?|90(?:\\.0+)?))$/;\r\n\r\nconst REGEX =\r\n /^[-+]?([1-8]?\\d(\\.\\d+)?|90(\\.0+)?),\\s*[-+]?(180(\\.0+)?|((1[0-7]\\d)|([1-9]?\\d))(\\.\\d+)?)$/;\r\n\r\nconst DARK = \"https://mtile.gram.tj/custom-styles/dark-style.json\";\r\nconst LIGHT = \"https://mtile.gram.tj/custom-styles/mapstyle.json\";\r\nconst VECTOR =\r\n \"https://mtile.gram.tj/custom-styles/style_maptiler_basic_hn.json\";\r\n\r\nexport { BASE_URL, LATLNGREGEX, LNGLATREGEX, REGEX, DARK, LIGHT, VECTOR };\r\n","function geojsonPolyline(encoded: string): number[][] {\r\n let points = [];\r\n let index = 0,\r\n len = encoded.length;\r\n let lat = 0,\r\n lng = 0;\r\n\r\n while (index < len) {\r\n let b,\r\n shift = 0,\r\n result = 0;\r\n do {\r\n b = encoded.charCodeAt(index++) - 63;\r\n result |= (b & 0x1f) << shift;\r\n shift += 5;\r\n } while (b >= 0x20);\r\n let dlat = result & 1 ? ~(result >> 1) : result >> 1;\r\n lat += dlat;\r\n\r\n shift = 0;\r\n result = 0;\r\n do {\r\n b = encoded.charCodeAt(index++) - 63;\r\n result |= (b & 0x1f) << shift;\r\n shift += 5;\r\n } while (b >= 0x20);\r\n let dlng = result & 1 ? ~(result >> 1) : result >> 1;\r\n lng += dlng;\r\n\r\n points.push([lng * 1e-5, lat * 1e-5]);\r\n }\r\n\r\n return points;\r\n}\r\n\r\nexport { geojsonPolyline };\r\n\r\n// Пример использования:\r\n\r\n// geojsonPolyline(\"yzocFzynhVq}@n}@o}@nzD\")\r\n\r\n// Вернёт массив вида [\r\n// [102.0, 0.5],\r\n// [103.0, 1.0],\r\n// [104.0, 0.5],\r\n// [105.0, 0.0]\r\n// ].\r\n","import type { Map, FlyToOptions } from \"maplibre-gl\";\r\n\r\nexport class CameraController {\r\n constructor(private map: Map) {}\r\n\r\n setZoom(zoom: number, smooth = true) {\r\n if (smooth) {\r\n this.map.easeTo({ zoom });\r\n } else {\r\n this.map.setZoom(zoom);\r\n }\r\n }\r\n\r\n setBearing(bearing: number, smooth = true) {\r\n smooth ? this.map.easeTo({ bearing }) : this.map.setBearing(bearing);\r\n }\r\n\r\n setPitch(pitch: number, smooth = true) {\r\n smooth ? this.map.easeTo({ pitch }) : this.map.setPitch(pitch);\r\n }\r\n\r\n toggle3D(is3D: boolean) {\r\n this.map.easeTo({\r\n pitch: is3D ? 60 : 0,\r\n bearing: is3D ? this.map.getBearing() : 0,\r\n duration: 800,\r\n });\r\n }\r\n\r\n resetNorth() {\r\n this.map.easeTo({\r\n bearing: 0,\r\n pitch: 0,\r\n duration: 600,\r\n });\r\n }\r\n\r\n flyTo(options: FlyToOptions) {\r\n this.map.flyTo({\r\n speed: 1.2,\r\n curve: 1.42,\r\n essential: true,\r\n ...options,\r\n });\r\n }\r\n\r\n getPitch() {\r\n return this.map.getPitch();\r\n }\r\n}\r\n","const createDefaultMarkerSvg = (color: string, innerSvg?: string) => `<svg\r\n width=\"50\"\r\n height=\"62\"\r\n viewBox=\"0 0 50 62\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <g filter=\"url(#filter0_d_367_31358)\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M25 2C36.598 2 46 11.402 46 23C46 33.1603 38.7844 41.6353 29.198 43.5803L25.6524 48.6575C25.5788 48.7633 25.4812 48.8497 25.3676 48.9093C25.254 48.9689 25.128 49 25 49C24.872 49 24.746 48.9689 24.6324 48.9093C24.5188 48.8497 24.4212 48.7633 24.3476 48.6575L20.802 43.5803C11.2156 41.6353 4 33.1603 4 23C4 11.402 13.402 2 25 2Z\"\r\n fill=\"${color ? color : \"#278960\"}\"\r\n />\r\n </g>\r\n <path\r\n d=\"M25 51C27.7614 51 30 53.2386 30 56C30 58.7614 27.7614 61 25 61C22.2386 61 20 58.7614 20 56C20 53.2386 22.2386 51 25 51Z\"\r\n fill=\"${color ? color : \"#278960\"}\"\r\n stroke=\"white\"\r\n stroke-width=\"2\"\r\n />\r\n <g clip-path=\"url(#clip0_367_31358)\">\r\n ${innerSvg ?? \"\"}\r\n </g>\r\n <defs>\r\n <filter\r\n id=\"filter0_d_367_31358\"\r\n x=\"0\"\r\n y=\"0\"\r\n width=\"50\"\r\n height=\"55\"\r\n filterUnits=\"userSpaceOnUse\"\r\n color-interpolation-filters=\"sRGB\"\r\n >\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix\r\n in=\"SourceAlpha\"\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\"\r\n />\r\n <feOffset dy=\"2\" />\r\n <feGaussianBlur stdDeviation=\"2\" />\r\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\r\n <feColorMatrix\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0.250234 0 0 0 0 0.660089 0 0 0 0 0.488619 0 0 0 0.24 0\"\r\n />\r\n <feBlend\r\n mode=\"normal\"\r\n in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_367_31358\"\r\n />\r\n <feBlend\r\n mode=\"normal\"\r\n in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow_367_31358\"\r\n result=\"shape\"\r\n />\r\n </filter>\r\n <clipPath id=\"clip0_367_31358\">\r\n <rect\r\n width=\"22\"\r\n height=\"22\"\r\n fill=\"white\"\r\n transform=\"translate(14 12)\"\r\n />\r\n </clipPath>\r\n </defs>\r\n </svg>`;\r\n\r\nexport { createDefaultMarkerSvg };\r\n","import { createDefaultMarkerSvg } from \"./defaultMarkerSvg\";\r\nimport type { MahalMapDefaultMarkerProps } from \"@app/types\";\r\n\r\nclass MahalMapDefaultMarker {\r\n private element: HTMLElement;\r\n\r\n constructor(private props: MahalMapDefaultMarkerProps) {\r\n this.element = this.createElement();\r\n }\r\n\r\n private createElement(): HTMLElement {\r\n const el = document.createElement(\"div\");\r\n el.style.cursor = \"pointer\";\r\n\r\n const svg = this.props.svg\r\n ? this.applyColorToCustomSvg(this.props.svg)\r\n : createDefaultMarkerSvg(\r\n this.props.color ?? \"#278960\",\r\n this.props.innerSvg,\r\n );\r\n\r\n el.innerHTML = svg;\r\n\r\n if (this.props.draggable) {\r\n el.draggable = true;\r\n }\r\n\r\n return el;\r\n }\r\n\r\n private applyColorToCustomSvg(svg: string): string {\r\n if (!this.props.color) return svg;\r\n return svg.replace(/fill=\"[^\"]*\"/g, `fill=\"${this.props.color}\"`);\r\n }\r\n\r\n getElement() {\r\n return this.element;\r\n }\r\n\r\n getCoordinates() {\r\n return this.props.coordinates;\r\n }\r\n\r\n isDraggable() {\r\n return !!this.props.draggable;\r\n }\r\n}\r\n\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 })\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 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 });\r\n\r\n MahalMap.instance = instance;\r\n return instance;\r\n }\r\n\r\n static getInstance(): MahalMap {\r\n if (!MahalMap.instance) {\r\n throw new Error(\"[MahalMap SDK] Карта ещё не создана\");\r\n }\r\n return MahalMap.instance;\r\n }\r\n\r\n addMarker(marker: IMapMarker) {\r\n return addMarker(this.maplibre, this.map, marker);\r\n }\r\n init(map: MapType) {\r\n this.map = map;\r\n this.camera = new CameraController(map);\r\n }\r\n getCamera() {\r\n return this.camera;\r\n }\r\n\r\n getMap(): MapType {\r\n return this.map;\r\n }\r\n\r\n setStyle(theme: \"dark\" | \"light\") {\r\n this.map.setStyle(\r\n theme === \"dark\" ? defaultStyles.dark : defaultStyles.light,\r\n );\r\n }\r\n\r\n setCenter(center: [number, number]) {\r\n this.map.setCenter(center);\r\n }\r\n\r\n setZoom(zoom: number) {\r\n this.map.setZoom(zoom);\r\n }\r\n\r\n destroy() {\r\n this.map.remove();\r\n MahalMap.instance = null;\r\n }\r\n}\r\n","import axios from \"axios\";\r\nimport { BASE_URL } from \"@app/config/index\";\r\nimport { clearKey } from \"@app/lib\";\r\n\r\nexport const api = axios.create({\r\n baseURL: BASE_URL,\r\n});\r\n\r\napi.interceptors.request.use(\r\n (response) => response,\r\n (error) => {\r\n if (error.request?.status === 401) {\r\n clearKey();\r\n }\r\n return Promise.reject(error);\r\n }\r\n);\r\n","export * from \"./utils\";\r\n","import { api } from \"@app/lib\";\r\n\r\nlet apiKey: string = \"\";\r\n\r\nfunction saveKey(param: string) {\r\n if (param === \"\") return;\r\n apiKey = param;\r\n api.defaults.headers.common[\"Authorization\"] = `Bearer ${param}`;\r\n}\r\n\r\nfunction clearKey() {\r\n apiKey = \"\";\r\n api.defaults.headers.common[\"Authorization\"] = \"\";\r\n}\r\n\r\nconst getApiKey = () => apiKey;\r\n\r\nexport { saveKey, clearKey, getApiKey };\r\n","function debounce<F extends (...args: any[]) => Promise<any>>(\r\n fn: F,\r\n delay: number\r\n) {\r\n let timer: NodeJS.Timeout;\r\n\r\n return (...args: Parameters<F>): Promise<ReturnType<F>> => {\r\n if (timer) clearTimeout(timer);\r\n return new Promise((resolve) => {\r\n timer = setTimeout(async () => {\r\n const result = await fn(...args);\r\n resolve(result);\r\n }, delay);\r\n }) as Promise<ReturnType<F>>;\r\n };\r\n}\r\n\r\nexport { debounce };\r\n","import { api } from \"@app/lib\";\r\nimport type { ISearchParam, ISearch } from \"@app/types\";\r\n\r\nexport const searchPost = async (params: ISearchParam): Promise<ISearch[]> => {\r\n try {\r\n const response = await api.post(\"services/getAddress\", params);\r\n return response.data;\r\n } catch (error) {\r\n console.error(\"Ошибка при поиске адреса:\", error);\r\n throw error;\r\n }\r\n};\r\n","import { searchPost } from \"./api\";\r\nimport { IAdditionalParamType, ISearch, ISearchParam } from \"@app/types/index\";\r\nimport { debounce, getApiKey } from \"@app/lib\";\r\n// import { checkCoordinates } from \"@app/lib/index\";\r\n// import { REGEX } from \"@app/config\";\r\n\r\nasync function getSearch(\r\n param: string,\r\n token: string,\r\n additionalParam?: IAdditionalParamType,\r\n): Promise<ISearch[]> {\r\n let searchData: ISearchParam = {\r\n text: param,\r\n token: token ? token : getApiKey(),\r\n ...additionalParam,\r\n };\r\n\r\n // if (param !== \"\") {\r\n // if (REGEX.test(param)) {\r\n // let coordinates = await checkCoordinates(param);\r\n // if (coordinates) {\r\n // searchData = {\r\n // lat: coordinates.lat ?? \"\",\r\n // lng: coordinates.lng ?? \"\",\r\n // };\r\n // }\r\n // } else {\r\n // searchData.text = param;\r\n // }\r\n // } else {\r\n // searchData.text = \"\";\r\n // }\r\n\r\n try {\r\n const res: ISearch[] = await searchPost(searchData);\r\n return res;\r\n } catch (error) {\r\n throw error;\r\n }\r\n}\r\n\r\nconst debouncedFn = debounce(getSearch, 500);\r\n\r\nasync function Search(\r\n param: string,\r\n token: string,\r\n additionalParam?: IAdditionalParamType,\r\n) {\r\n return await debouncedFn(param, token, additionalParam);\r\n}\r\n\r\nexport { Search };\r\n","import { api, getApiKey } from \"@app/lib\";\r\n\r\nconst routingApi = async (param: number[][], token: string) => {\r\n try {\r\n const points: { lng: number; lat: number }[] = [];\r\n\r\n param.forEach((e) => {\r\n points.push({ lng: e[0], lat: e[1] });\r\n });\r\n const response = await api.post(\"services/getRoutes\", {\r\n points,\r\n token: token ? token : getApiKey(),\r\n });\r\n return response.data;\r\n } catch (err) {\r\n console.error(err);\r\n throw err;\r\n }\r\n};\r\n\r\nexport { routingApi };\r\n","import { routingApi } from \"@lib/routing/api\";\r\nimport { geojsonPolyline } from \"@app/config/index\";\r\nimport type { IRoute } from \"@app/types/index\";\r\n\r\nasync function Router(\r\n param: number[][],\r\n typeData: string,\r\n token: string,\r\n): Promise<IRoute[]> {\r\n try {\r\n const res = await routingApi(param, token);\r\n\r\n if (!res?.data) return res;\r\n\r\n const data: IRoute[] = res.data;\r\n\r\n return data.map((route) => {\r\n const updated = { ...route };\r\n\r\n if (updated.route?.routes?.length) {\r\n updated.route.routes = updated.route.routes.map((r) => ({\r\n ...r,\r\n geometry:\r\n typeData === \"geojson\" && typeof r.geometry === \"string\"\r\n ? geojsonPolyline(r.geometry)\r\n : r.geometry,\r\n }));\r\n }\r\n\r\n return updated as IRoute;\r\n });\r\n } catch (error) {\r\n throw error;\r\n }\r\n}\r\n\r\nexport { Router };\r\n","// Lib\r\nimport { MahalMap } from \"@lib/map\";\r\nimport { Search } from \"@lib/search\";\r\nimport { Router } from \"@lib/routing\";\r\nimport { MahalMapDefaultMarker } from \"@lib/controller\";\r\n\r\n// utils\r\nimport * as keyUtils from \"@app/lib/saveKey\";\r\n\r\nexport { MahalMap, Search, Router, keyUtils, MahalMapDefaultMarker };\r\n\r\nfunction loadKeyFromScriptUrl() {\r\n const scripts = document.getElementsByTagName(\"script\");\r\n for (const script of scripts) {\r\n if (script.src.includes(\"mahal_map.sdk.js\")) {\r\n const url = new URL(script.src);\r\n const apikey = url.searchParams.get(\"apikey\");\r\n if (apikey) return apikey;\r\n }\r\n }\r\n return \"\";\r\n}\r\nkeyUtils.saveKey(loadKeyFromScriptUrl());\r\n"],"mappings":"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","names":["BASE_URL","DARK","LIGHT","VECTOR","geojsonPolyline","encoded","points","index","len","lat","lng","b","shift","result","dlat","dlng","CameraController","map","zoom","smooth","bearing","pitch","is3D","options","createDefaultMarkerSvg","color","innerSvg","MahalMapDefaultMarker","props","el","svg","createDefaultMarkerSvg","addMarker","maplibregl","map","marker","defaultStyles","DARK","LIGHT","_MahalMap","options","maplibreObject","maplibre","finalStyle","VECTOR","instance","marker","addMarker","map","CameraController","theme","center","zoom","MahalMap","axios","api","axios","BASE_URL","response","error","clearKey","saveKey_exports","__export","clearKey","getApiKey","saveKey","apiKey","saveKey","param","api","clearKey","getApiKey","debounce","fn","delay","timer","args","resolve","result","searchPost","params","api","error","getSearch","param","token","additionalParam","searchData","getApiKey","searchPost","error","debouncedFn","debounce","Search","routingApi","param","token","points","e","api","getApiKey","err","Router","param","typeData","token","res","routingApi","route","updated","r","geojsonPolyline","error","loadKeyFromScriptUrl","scripts","script","apikey","saveKey"]}
1
+ {"version":3,"sources":["../src/app/config/constants.ts","../src/app/config/geojson-polyline.ts","../src/lib/controller/camera/index.ts","../src/lib/controller/markers/defaultMarkerSvg.ts","../src/lib/controller/markers/MahalMapDefaultMarker.ts","../src/lib/map/adapters/marker.adapter.ts","../src/lib/map/MahalMap.ts","../src/app/lib/axios/api/axios.ts","../src/app/lib/saveKey/index.ts","../src/app/lib/saveKey/utils.ts","../src/app/lib/debounce/index.ts","../src/lib/search/api.ts","../src/lib/search/utils.ts","../src/lib/routing/api.ts","../src/lib/routing/utils.ts","../src/index.ts"],"sourcesContent":["const BASE_URL = \"https://platform.mahal.tj/api/\";\r\nconst LATLNGREGEX =\r\n /^([-+]?(?:[1-8]?\\d(?:\\.\\d+)?|90(?:\\.0+)?)),\\s*([-+]?(?:180(?:\\.0+)?|(?:(?:1[0-7]\\d)|(?:[1-9]?\\d))(?:\\.\\d+)?))$/;\r\nconst LNGLATREGEX =\r\n /^([-+]?(?:180(?:\\.0+)?|(?:(?:1[0-7]\\d)|(?:[1-9]?\\d))(?:\\.\\d+)?)),\\s*([-+]?(?:[1-8]?\\d(?:\\.\\d+)?|90(?:\\.0+)?))$/;\r\n\r\nconst REGEX =\r\n /^[-+]?([1-8]?\\d(\\.\\d+)?|90(\\.0+)?),\\s*[-+]?(180(\\.0+)?|((1[0-7]\\d)|([1-9]?\\d))(\\.\\d+)?)$/;\r\n\r\nconst DARK = \"https://mtile.gram.tj/custom-styles/dark-style.json\";\r\nconst LIGHT = \"https://mtile.gram.tj/custom-styles/mapstyle.json\";\r\nconst VECTOR =\r\n \"https://mtile.gram.tj/custom-styles/style_maptiler_basic_hn.json\";\r\n\r\nexport { BASE_URL, LATLNGREGEX, LNGLATREGEX, REGEX, DARK, LIGHT, VECTOR };\r\n","function geojsonPolyline(encoded: string): number[][] {\r\n let points = [];\r\n let index = 0,\r\n len = encoded.length;\r\n let lat = 0,\r\n lng = 0;\r\n\r\n while (index < len) {\r\n let b,\r\n shift = 0,\r\n result = 0;\r\n do {\r\n b = encoded.charCodeAt(index++) - 63;\r\n result |= (b & 0x1f) << shift;\r\n shift += 5;\r\n } while (b >= 0x20);\r\n let dlat = result & 1 ? ~(result >> 1) : result >> 1;\r\n lat += dlat;\r\n\r\n shift = 0;\r\n result = 0;\r\n do {\r\n b = encoded.charCodeAt(index++) - 63;\r\n result |= (b & 0x1f) << shift;\r\n shift += 5;\r\n } while (b >= 0x20);\r\n let dlng = result & 1 ? ~(result >> 1) : result >> 1;\r\n lng += dlng;\r\n\r\n points.push([lng * 1e-5, lat * 1e-5]);\r\n }\r\n\r\n return points;\r\n}\r\n\r\nexport { geojsonPolyline };\r\n\r\n// Пример использования:\r\n\r\n// geojsonPolyline(\"yzocFzynhVq}@n}@o}@nzD\")\r\n\r\n// Вернёт массив вида [\r\n// [102.0, 0.5],\r\n// [103.0, 1.0],\r\n// [104.0, 0.5],\r\n// [105.0, 0.0]\r\n// ].\r\n","import type { Map, FlyToOptions } from \"maplibre-gl\";\r\n\r\nexport class CameraController {\r\n constructor(private map: Map) {}\r\n\r\n setZoom(zoom: number, smooth = true) {\r\n if (smooth) {\r\n this.map.easeTo({ zoom });\r\n } else {\r\n this.map.setZoom(zoom);\r\n }\r\n }\r\n\r\n setBearing(bearing: number, smooth = true) {\r\n smooth ? this.map.easeTo({ bearing }) : this.map.setBearing(bearing);\r\n }\r\n\r\n setPitch(pitch: number, smooth = true) {\r\n smooth ? this.map.easeTo({ pitch }) : this.map.setPitch(pitch);\r\n }\r\n\r\n toggle3D(is3D: boolean) {\r\n this.map.easeTo({\r\n pitch: is3D ? 60 : 0,\r\n bearing: is3D ? this.map.getBearing() : 0,\r\n duration: 800,\r\n });\r\n }\r\n\r\n resetNorth() {\r\n this.map.easeTo({\r\n bearing: 0,\r\n pitch: 0,\r\n duration: 600,\r\n });\r\n }\r\n\r\n flyTo(options: FlyToOptions) {\r\n this.map.flyTo({\r\n speed: 1.2,\r\n curve: 1.42,\r\n essential: true,\r\n ...options,\r\n });\r\n }\r\n\r\n getPitch() {\r\n return this.map.getPitch();\r\n }\r\n}\r\n","const createDefaultMarkerSvg = (color: string, innerSvg?: string) => `<svg\r\n width=\"50\"\r\n height=\"62\"\r\n viewBox=\"0 0 50 62\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <g filter=\"url(#filter0_d_367_31358)\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M25 2C36.598 2 46 11.402 46 23C46 33.1603 38.7844 41.6353 29.198 43.5803L25.6524 48.6575C25.5788 48.7633 25.4812 48.8497 25.3676 48.9093C25.254 48.9689 25.128 49 25 49C24.872 49 24.746 48.9689 24.6324 48.9093C24.5188 48.8497 24.4212 48.7633 24.3476 48.6575L20.802 43.5803C11.2156 41.6353 4 33.1603 4 23C4 11.402 13.402 2 25 2Z\"\r\n fill=\"${color ? color : \"#278960\"}\"\r\n />\r\n </g>\r\n <path\r\n d=\"M25 51C27.7614 51 30 53.2386 30 56C30 58.7614 27.7614 61 25 61C22.2386 61 20 58.7614 20 56C20 53.2386 22.2386 51 25 51Z\"\r\n fill=\"${color ? color : \"#278960\"}\"\r\n stroke=\"white\"\r\n stroke-width=\"2\"\r\n />\r\n <g clip-path=\"url(#clip0_367_31358)\">\r\n ${innerSvg ?? \"\"}\r\n </g>\r\n <defs>\r\n <filter\r\n id=\"filter0_d_367_31358\"\r\n x=\"0\"\r\n y=\"0\"\r\n width=\"50\"\r\n height=\"55\"\r\n filterUnits=\"userSpaceOnUse\"\r\n color-interpolation-filters=\"sRGB\"\r\n >\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix\r\n in=\"SourceAlpha\"\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\"\r\n />\r\n <feOffset dy=\"2\" />\r\n <feGaussianBlur stdDeviation=\"2\" />\r\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\r\n <feColorMatrix\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0.250234 0 0 0 0 0.660089 0 0 0 0 0.488619 0 0 0 0.24 0\"\r\n />\r\n <feBlend\r\n mode=\"normal\"\r\n in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_367_31358\"\r\n />\r\n <feBlend\r\n mode=\"normal\"\r\n in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow_367_31358\"\r\n result=\"shape\"\r\n />\r\n </filter>\r\n <clipPath id=\"clip0_367_31358\">\r\n <rect\r\n width=\"22\"\r\n height=\"22\"\r\n fill=\"white\"\r\n transform=\"translate(14 12)\"\r\n />\r\n </clipPath>\r\n </defs>\r\n </svg>`;\r\n\r\nexport { createDefaultMarkerSvg };\r\n","import { createDefaultMarkerSvg } from \"./defaultMarkerSvg\";\r\nimport type { MahalMapDefaultMarkerProps } from \"@app/types\";\r\n\r\nclass MahalMapDefaultMarker {\r\n private element: HTMLElement;\r\n\r\n constructor(private props: MahalMapDefaultMarkerProps) {\r\n this.element = this.createElement();\r\n }\r\n\r\n private createElement(): HTMLElement {\r\n const el = document.createElement(\"div\");\r\n el.style.cursor = \"pointer\";\r\n\r\n const svg = this.props.svg\r\n ? this.applyColorToCustomSvg(this.props.svg)\r\n : createDefaultMarkerSvg(\r\n this.props.color ?? \"#278960\",\r\n this.props.innerSvg,\r\n );\r\n\r\n el.innerHTML = svg;\r\n\r\n if (this.props.draggable) {\r\n el.draggable = true;\r\n }\r\n\r\n return el;\r\n }\r\n\r\n private applyColorToCustomSvg(svg: string): string {\r\n if (!this.props.color) return svg;\r\n return svg.replace(/fill=\"[^\"]*\"/g, `fill=\"${this.props.color}\"`);\r\n }\r\n\r\n getElement() {\r\n return this.element;\r\n }\r\n\r\n getCoordinates() {\r\n return this.props.coordinates;\r\n }\r\n\r\n isDraggable() {\r\n return !!this.props.draggable;\r\n }\r\n\r\n getAnchor() {\r\n return this.props.anchor || \"center\";\r\n }\r\n}\r\n\r\nexport { MahalMapDefaultMarker };\r\n","import type { Map } from \"maplibre-gl\";\r\nimport type { IMapMarker } from \"@app/types\";\r\n\r\nexport function addMarker(maplibregl: any, map: Map, marker: IMapMarker) {\r\n const mapMarker = new maplibregl.Marker({\r\n element: marker.getElement(),\r\n draggable: marker.isDraggable?.() ?? false,\r\n anchor: marker.getAnchor?.() ?? \"center\",\r\n })\r\n .setLngLat(marker.getCoordinates())\r\n .addTo(map);\r\n\r\n return mapMarker;\r\n}\r\n","import type { Map as MapType } from \"maplibre-gl\";\r\nimport { DARK, LIGHT, VECTOR } from \"@app/config\";\r\nimport { CameraController } from \"@lib/controller\";\r\n\r\nimport type { IMahalMapOptions, IMapMarker } from \"@app/types\";\r\n\r\n// Adapter\r\nimport { addMarker } from \"../map/adapters\";\r\n\r\nconst defaultStyles = { dark: DARK, light: LIGHT };\r\n\r\nexport class MahalMap {\r\n private static instance: MahalMap | null = null;\r\n\r\n private 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 });\r\n\r\n MahalMap.instance = instance;\r\n return instance;\r\n }\r\n\r\n static getInstance(): MahalMap {\r\n if (!MahalMap.instance) {\r\n throw new Error(\"[MahalMap SDK] Карта ещё не создана\");\r\n }\r\n return MahalMap.instance;\r\n }\r\n\r\n addMarker(marker: IMapMarker) {\r\n return addMarker(this.maplibre, this.map, marker);\r\n }\r\n init(map: MapType) {\r\n this.map = map;\r\n this.camera = new CameraController(map);\r\n }\r\n getCamera() {\r\n return this.camera;\r\n }\r\n\r\n getMap(): MapType {\r\n return this.map;\r\n }\r\n\r\n setStyle(theme: \"dark\" | \"light\") {\r\n this.map.setStyle(\r\n theme === \"dark\" ? defaultStyles.dark : defaultStyles.light,\r\n );\r\n }\r\n\r\n setCenter(center: [number, number]) {\r\n this.map.setCenter(center);\r\n }\r\n\r\n setZoom(zoom: number) {\r\n this.map.setZoom(zoom);\r\n }\r\n\r\n destroy() {\r\n this.map.remove();\r\n MahalMap.instance = null;\r\n }\r\n}\r\n","import axios from \"axios\";\r\nimport { BASE_URL } from \"@app/config/index\";\r\nimport { clearKey } from \"@app/lib\";\r\n\r\nexport const api = axios.create({\r\n baseURL: BASE_URL,\r\n});\r\n\r\napi.interceptors.request.use(\r\n (response) => response,\r\n (error) => {\r\n if (error.request?.status === 401) {\r\n clearKey();\r\n }\r\n return Promise.reject(error);\r\n }\r\n);\r\n","export * from \"./utils\";\r\n","import { api } from \"@app/lib\";\r\n\r\nlet apiKey: string = \"\";\r\n\r\nfunction saveKey(param: string) {\r\n if (param === \"\") return;\r\n apiKey = param;\r\n api.defaults.headers.common[\"Authorization\"] = `Bearer ${param}`;\r\n}\r\n\r\nfunction clearKey() {\r\n apiKey = \"\";\r\n api.defaults.headers.common[\"Authorization\"] = \"\";\r\n}\r\n\r\nconst getApiKey = () => apiKey;\r\n\r\nexport { saveKey, clearKey, getApiKey };\r\n","function debounce<F extends (...args: any[]) => Promise<any>>(\r\n fn: F,\r\n delay: number\r\n) {\r\n let timer: NodeJS.Timeout;\r\n\r\n return (...args: Parameters<F>): Promise<ReturnType<F>> => {\r\n if (timer) clearTimeout(timer);\r\n return new Promise((resolve) => {\r\n timer = setTimeout(async () => {\r\n const result = await fn(...args);\r\n resolve(result);\r\n }, delay);\r\n }) as Promise<ReturnType<F>>;\r\n };\r\n}\r\n\r\nexport { debounce };\r\n","import { api } from \"@app/lib\";\r\nimport type { ISearchParam, ISearch } from \"@app/types\";\r\n\r\nexport const searchPost = async (params: ISearchParam): Promise<ISearch[]> => {\r\n try {\r\n const response = await api.post(\"services/getAddress\", params);\r\n return response.data;\r\n } catch (error) {\r\n console.error(\"Ошибка при поиске адреса:\", error);\r\n throw error;\r\n }\r\n};\r\n","import { searchPost } from \"./api\";\r\nimport { IAdditionalParamType, ISearch, ISearchParam } from \"@app/types/index\";\r\nimport { debounce, getApiKey } from \"@app/lib\";\r\n// import { checkCoordinates } from \"@app/lib/index\";\r\n// import { REGEX } from \"@app/config\";\r\n\r\nasync function getSearch(\r\n param: string,\r\n token: string,\r\n additionalParam?: IAdditionalParamType,\r\n): Promise<ISearch[]> {\r\n let searchData: ISearchParam = {\r\n text: param,\r\n token: token ? token : getApiKey(),\r\n ...additionalParam,\r\n };\r\n\r\n // if (param !== \"\") {\r\n // if (REGEX.test(param)) {\r\n // let coordinates = await checkCoordinates(param);\r\n // if (coordinates) {\r\n // searchData = {\r\n // lat: coordinates.lat ?? \"\",\r\n // lng: coordinates.lng ?? \"\",\r\n // };\r\n // }\r\n // } else {\r\n // searchData.text = param;\r\n // }\r\n // } else {\r\n // searchData.text = \"\";\r\n // }\r\n\r\n try {\r\n const res: ISearch[] = await searchPost(searchData);\r\n return res;\r\n } catch (error) {\r\n throw error;\r\n }\r\n}\r\n\r\nconst debouncedFn = debounce(getSearch, 500);\r\n\r\nasync function Search(\r\n param: string,\r\n token: string,\r\n additionalParam?: IAdditionalParamType,\r\n) {\r\n return await debouncedFn(param, token, additionalParam);\r\n}\r\n\r\nexport { Search };\r\n","import { api, getApiKey } from \"@app/lib\";\r\n\r\nconst routingApi = async (param: number[][], token: string) => {\r\n try {\r\n const points: { lng: number; lat: number }[] = [];\r\n\r\n param.forEach((e) => {\r\n points.push({ lng: e[0], lat: e[1] });\r\n });\r\n const response = await api.post(\"services/getRoutes\", {\r\n points,\r\n token: token ? token : getApiKey(),\r\n });\r\n return response.data;\r\n } catch (err) {\r\n console.error(err);\r\n throw err;\r\n }\r\n};\r\n\r\nexport { routingApi };\r\n","import { routingApi } from \"@lib/routing/api\";\r\nimport { geojsonPolyline } from \"@app/config/index\";\r\nimport type { IRoute } from \"@app/types/index\";\r\n\r\nasync function Router(\r\n param: number[][],\r\n typeData: string,\r\n token: string,\r\n): Promise<IRoute[]> {\r\n try {\r\n const res = await routingApi(param, token);\r\n\r\n if (!res?.data) return res;\r\n\r\n const data: IRoute[] = res.data;\r\n\r\n return data.map((route) => {\r\n const updated = { ...route };\r\n\r\n if (updated.route?.routes?.length) {\r\n updated.route.routes = updated.route.routes.map((r) => ({\r\n ...r,\r\n geometry:\r\n typeData === \"geojson\" && typeof r.geometry === \"string\"\r\n ? geojsonPolyline(r.geometry)\r\n : r.geometry,\r\n }));\r\n }\r\n\r\n return updated as IRoute;\r\n });\r\n } catch (error) {\r\n throw error;\r\n }\r\n}\r\n\r\nexport { Router };\r\n","// Lib\r\nimport { MahalMap } from \"@lib/map\";\r\nimport { Search } from \"@lib/search\";\r\nimport { Router } from \"@lib/routing\";\r\nimport { MahalMapDefaultMarker } from \"@lib/controller\";\r\n\r\n// utils\r\nimport * as keyUtils from \"@app/lib/saveKey\";\r\n\r\nexport { MahalMap, Search, Router, keyUtils, MahalMapDefaultMarker };\r\n\r\nfunction loadKeyFromScriptUrl() {\r\n const scripts = document.getElementsByTagName(\"script\");\r\n for (const script of scripts) {\r\n if (script.src.includes(\"mahal_map.sdk.js\")) {\r\n const url = new URL(script.src);\r\n const apikey = url.searchParams.get(\"apikey\");\r\n if (apikey) return apikey;\r\n }\r\n }\r\n return \"\";\r\n}\r\nkeyUtils.saveKey(loadKeyFromScriptUrl());\r\n"],"mappings":"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","names":["BASE_URL","DARK","LIGHT","VECTOR","geojsonPolyline","encoded","points","index","len","lat","lng","b","shift","result","dlat","dlng","CameraController","map","zoom","smooth","bearing","pitch","is3D","options","createDefaultMarkerSvg","color","innerSvg","MahalMapDefaultMarker","props","el","svg","createDefaultMarkerSvg","addMarker","maplibregl","map","marker","defaultStyles","DARK","LIGHT","_MahalMap","options","maplibreObject","maplibre","finalStyle","VECTOR","instance","marker","addMarker","map","CameraController","theme","center","zoom","MahalMap","axios","api","axios","BASE_URL","response","error","clearKey","saveKey_exports","__export","clearKey","getApiKey","saveKey","apiKey","saveKey","param","api","clearKey","getApiKey","debounce","fn","delay","timer","args","resolve","result","searchPost","params","api","error","getSearch","param","token","additionalParam","searchData","getApiKey","searchPost","error","debouncedFn","debounce","Search","routingApi","param","token","points","e","api","getApiKey","err","Router","param","typeData","token","res","routingApi","route","updated","r","geojsonPolyline","error","loadKeyFromScriptUrl","scripts","script","apikey","saveKey"]}