import { JSX } from 'solid-js'; import { Line } from './types'; // Thanks to https://dev.to/ycmjason/how-to-create-range-in-javascript-539i export function* range(start: number, end: number): Generator { for (let i = start; i <= end; i++) { yield i; } } const validTransportModes = ["bus", "tram", "metro", "rer", "transilien", "funicular", "ter", "unknown"]; export const TransportModeWeights: Record = { bus: 1, tram: 2, val: 3, funicular: 4, metro: 5, rer: 6, transilien: 7, ter: 8, }; export function getTransportModeSrc(mode: string, color: boolean = true): string | undefined { let ret = undefined; if (validTransportModes.includes(mode)) { ret = `/public/symbole_${mode}_${color ? "" : "support_fonce_"}RVB.svg`; } return ret; } export function renderLineTransportMode(line: Line): JSX.Element { return } function renderBusLinePicto(line: Line): JSX.Element { return (
{line.shortName}
); } function renderTramLinePicto(line: Line): JSX.Element { const lineStyle = { fill: `#${line.backColorHexa}` }; return (
{line.shortName}
); } function renderMetroLinePicto(line: Line): JSX.Element { return (
{line.shortName}
); } function renderTrainLinePicto(line: Line): JSX.Element { return (
{line.shortName}
); } export function renderLinePicto(line: Line): JSX.Element { switch (line.transportMode) { case "bus": case "funicular": return renderBusLinePicto(line); case "tram": return renderTramLinePicto(line); /* case "val": */ case "metro": return renderMetroLinePicto(line); case "transilien": case "rer": case "ter": return renderTrainLinePicto(line); } } export type PositionedPanel = { position: number; // TODO: Should be PassagesPanelComponent ? panel: JSX.Element; };