forked from MapComplete/MapComplete
		
	Refactoring: port wikipedia panel to Svelte
This commit is contained in:
		
							parent
							
								
									24f7610d0a
								
							
						
					
					
						commit
						d8e14927c8
					
				
					 32 changed files with 362 additions and 847 deletions
				
			
		|  | @ -34,62 +34,4 @@ export default class WikidataValidator extends Validator { | |||
|         } | ||||
|         return out | ||||
|     } | ||||
| 
 | ||||
|     public inputHelper(currentValue, inputHelperOptions) { | ||||
|         const args = inputHelperOptions.args ?? [] | ||||
|         const searchKey = args[0] ?? "name" | ||||
| 
 | ||||
|         const searchFor = <string>( | ||||
|             (inputHelperOptions.feature?.properties[searchKey]?.toLowerCase() ?? "") | ||||
|         ) | ||||
| 
 | ||||
|         let searchForValue: UIEventSource<string> = new UIEventSource(searchFor) | ||||
|         const options: any = args[1] | ||||
|         if (searchFor !== undefined && options !== undefined) { | ||||
|             const prefixes = <string[] | Record<string, string[]>>options["removePrefixes"] ?? [] | ||||
|             const postfixes = <string[] | Record<string, string[]>>options["removePostfixes"] ?? [] | ||||
|             const defaultValueCandidate = Locale.language.map((lg) => { | ||||
|                 const prefixesUnrwapped: RegExp[] = ( | ||||
|                     Array.isArray(prefixes) ? prefixes : prefixes[lg] ?? [] | ||||
|                 ).map((s) => new RegExp("^" + s, "i")) | ||||
|                 const postfixesUnwrapped: RegExp[] = ( | ||||
|                     Array.isArray(postfixes) ? postfixes : postfixes[lg] ?? [] | ||||
|                 ).map((s) => new RegExp(s + "$", "i")) | ||||
|                 let clipped = searchFor | ||||
| 
 | ||||
|                 for (const postfix of postfixesUnwrapped) { | ||||
|                     const match = searchFor.match(postfix) | ||||
|                     if (match !== null) { | ||||
|                         clipped = searchFor.substring(0, searchFor.length - match[0].length) | ||||
|                         break | ||||
|                     } | ||||
|                 } | ||||
| 
 | ||||
|                 for (const prefix of prefixesUnrwapped) { | ||||
|                     const match = searchFor.match(prefix) | ||||
|                     if (match !== null) { | ||||
|                         clipped = searchFor.substring(match[0].length) | ||||
|                         break | ||||
|                     } | ||||
|                 } | ||||
|                 return clipped | ||||
|             }) | ||||
| 
 | ||||
|             defaultValueCandidate.addCallbackAndRun((clipped) => searchForValue.setData(clipped)) | ||||
|         } | ||||
| 
 | ||||
|         let instanceOf: number[] = Utils.NoNull( | ||||
|             (options?.instanceOf ?? []).map((i) => Wikidata.QIdToNumber(i)) | ||||
|         ) | ||||
|         let notInstanceOf: number[] = Utils.NoNull( | ||||
|             (options?.notInstanceOf ?? []).map((i) => Wikidata.QIdToNumber(i)) | ||||
|         ) | ||||
| 
 | ||||
|         return new WikidataSearchBox({ | ||||
|             value: currentValue, | ||||
|             searchText: searchForValue, | ||||
|             instanceOf, | ||||
|             notInstanceOf, | ||||
|         }) | ||||
|     } | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue