${this.renderNavInput('start', 'Start point', this.navStartSearchQuery, this.navStartSearchResults)}
${this.renderNavInput('end', 'End point', this.navEndSearchQuery, this.navEndSearchResults)}
${error ? html`
${renderIcon('error')}
${error}
` : ''}
${isLoading ? html`
${renderIcon('spinner')}
Calculating route...
` : ''}
${route && !isLoading ? html`
${renderIcon('ruler')}
${this.formatDistance(route.distance)}
${renderIcon('clock')}
${this.formatDuration(route.duration)}
${this.renderTurnByTurn(route)}
` : ''}
`;
}
/**
* Render a navigation input field
*/
private renderNavInput(
inputType: 'start' | 'end',
placeholder: string,
query: string,
results: INominatimResult[]
): TemplateResult {
const hasValue = inputType === 'start'
? this.navigationState.startPoint !== null
: this.navigationState.endPoint !== null;
const isClickMode = this.navClickMode === inputType;
return html`