2022-06-02 03:02:35 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  { Utils }  from  "../Utils" ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-01-02 16:04:16 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								export  default  class  Constants  {  
						 
					
						
							
								
									
										
										
										
											2021-09-09 00:05:51 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-09-02 12:40:48 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    public  static  vNumber  =  "0.23.2" ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-01-26 21:12:25 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2021-09-26 17:36:39 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    public  static  ImgurApiKey  =  '7070e7167f0a25a' 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-29 23:56:59 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    public  static  readonly  mapillary_client_token_v4  =  "MLY|4441509239301885|b40ad2d3ea105435bd40c7e76993ae85" 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-13 16:12:25 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  API  key  for  Maproulette 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  Currently  there  is  no  user - friendly  way  to  get  the  user ' s  API  key . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  See  https : //github.com/maproulette/maproulette2/issues/476 for more information.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  Using  an  empty  string  however  does  work  for  most  actions ,  but  will  attribute  all  actions  to  the  Superuser . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * / 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-13 08:03:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    public  static  readonly  MaprouletteApiKey  =  "" ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-29 23:56:59 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-09-29 16:55:05 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    public  static  defaultOverpassUrls  =  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // The official instance, 10000 queries per day per project allowed
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        "https://overpass-api.de/api/interpreter" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // 'Fair usage'
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        "https://overpass.kumi.systems/api/interpreter" , 
							 
						 
					
						
							
								
									
										
										
										
											2021-10-03 02:11:06 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        // Offline: "https://overpass.nchc.org.tw/api/interpreter",
 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-29 16:55:05 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        "https://overpass.openstreetmap.ru/cgi/interpreter" , 
							 
						 
					
						
							
								
									
										
										
										
											2021-10-04 03:12:42 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        // Doesn't support nwr: "https://overpass.openstreetmap.fr/api/interpreter"
 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-29 16:55:05 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ] 
							 
						 
					
						
							
								
									
										
										
										
											2021-01-02 16:04:16 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-09-29 23:56:59 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-12-21 18:35:31 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    public  static  readonly  added_by_default : string [ ]  =  [ "gps_location" ,  "gps_location_history" ,  "home_location" ,  "gps_track" ] 
							 
						 
					
						
							
								
									
										
										
										
											2022-01-26 21:40:38 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    public  static  readonly  no_include : string [ ]  =  [ "conflation" ,  "left_right_style" ,  "split_point" ,  "current_view" ,  "matchpoint" ] 
							 
						 
					
						
							
								
									
										
										
										
											2021-12-21 18:35:31 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  Layer  IDs  of  layers  which  have  special  properties  through  built - in  hooks 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * / 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-13 03:13:42 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    public  static  readonly  priviliged_layers : string [ ]  =  [ . . . Constants . added_by_default ,  "type_node" ,  "note" ,  "import_candidate" ,  "direction" ,  . . . Constants . no_include ] 
							 
						 
					
						
							
								
									
										
										
										
											2022-01-26 21:40:38 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-12-21 18:35:31 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-01-02 16:04:16 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    // The user journey states thresholds when a new feature gets unlocked
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    public  static  userJourney  =  { 
							 
						 
					
						
							
								
									
										
										
										
											2021-03-16 19:35:19 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        moreScreenUnlock : 1 , 
							 
						 
					
						
							
								
									
										
										
										
											2021-06-28 18:06:54 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        personalLayoutUnlock : 5 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        historyLinkVisible : 10 , 
							 
						 
					
						
							
								
									
										
										
										
											2021-07-01 02:26:45 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        deletePointsOfOthersUnlock : 20 , 
							 
						 
					
						
							
								
									
										
										
										
											2021-03-17 14:35:06 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        tagsVisibleAt : 25 , 
							 
						 
					
						
							
								
									
										
										
										
											2021-03-16 19:35:19 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        tagsVisibleAndWikiLinked : 30 , 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-09 00:05:51 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-06-28 18:06:54 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        mapCompleteHelpUnlock : 50 , 
							 
						 
					
						
							
								
									
										
										
										
											2021-03-24 01:25:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        themeGeneratorReadOnlyUnlock : 50 , 
							 
						 
					
						
							
								
									
										
										
										
											2021-01-02 16:04:16 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        themeGeneratorFullUnlock : 500 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        addNewPointWithUnreadMessagesUnlock : 500 , 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-21 01:26:36 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        minZoomLevelToAddNewPoints :  ( Constants . isRetina ( )  ?  18  : 19 ) , 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-09 00:05:51 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-01-18 21:26:07 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        importHelperUnlock : 5000 
							 
						 
					
						
							
								
									
										
										
										
											2021-01-02 16:04:16 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    } ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-02-20 22:18:42 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  Used  by  'PendingChangesUploader' ,  which  waits  this  amount  of  seconds  to  upload  changes . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  ( Note  that  pendingChanges  might  upload  sooner  if  the  popup  is  closed  or  similar ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    static  updateTimeoutSec : number  =  30 ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-11-09 01:49:07 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  If  the  contributor  has  their  GPS  location  enabled  and  makes  a  change , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  the  points  visited  less  then  ` nearbyVisitTime ` - seconds  ago  will  be  inspected . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  The  point  closest  to  the  changed  feature  will  be  considered  and  this  distance  will  be  tracked . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  ALl  these  distances  are  used  to  calculate  a  nearby - score 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * / 
							 
						 
					
						
							
								
									
										
										
										
											2022-01-26 21:40:38 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    static  nearbyVisitTime : number  =  30  *  60 ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-11-09 01:49:07 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  If  a  user  makes  a  change ,  the  distance  to  the  changed  object  is  calculated . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  If  a  user  makes  multiple  changes ,  all  these  distances  are  put  into  multiple  bins ,  depending  on  this  distance . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  For  every  bin ,  the  totals  are  uploaded  as  metadata 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * / 
							 
						 
					
						
							
								
									
										
										
										
											2022-01-26 21:40:38 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    static  distanceToChangeObjectBins  =  [ 25 ,  50 ,  100 ,  500 ,  1000 ,  5000 ,  Number . MAX_VALUE ] 
							 
						 
					
						
							
								
									
										
										
										
											2022-02-22 16:11:00 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    static  themeOrder  =  [ "personal" ,  "cyclofix" ,  "waste"  ,  "etymology" ,   "food" , "cafes_and_pubs" ,  "playgrounds" ,  "hailhydrant" ,  "toilets" ,  "aed" ,  "bookcases" ] ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-09 19:29:51 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  Upon  initialization ,  the  GPS  will  search  the  location . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  If  the  location  is  found  within  the  given  timout ,  it ' ll  automatically  fly  to  it . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  In  seconds 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    static  zoomToLocationTimeout  =  60 ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-28 00:29:22 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    static  countryCoderEndpoint : string  =  "https://raw.githubusercontent.com/pietervdvn/MapComplete-data/main/latlon2country" ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-01-06 02:21:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    private  static  isRetina ( ) :  boolean  { 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-02 03:02:35 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if ( Utils . runningFromConsole ) { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2021-01-06 02:21:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        // The cause for this line of code: https://github.com/pietervdvn/MapComplete/issues/115
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // See https://stackoverflow.com/questions/19689715/what-is-the-best-way-to-detect-retina-support-on-a-device-using-javascript
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  ( ( window . matchMedia  &&  ( window . matchMedia ( 'only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx), only screen and (min-resolution: 75.6dpcm)' ) . matches  ||  window . matchMedia ( 'only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min--moz-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2)' ) . matches ) )  ||  ( window . devicePixelRatio  &&  window . devicePixelRatio  >=  2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-09 00:05:51 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-03-31 11:39:56 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}