import { html, css, nothing } from 'lit'; import { unsafeHTML } from 'lit/directives/unsafe-html.js'; import { settingsState } from './settings.js'; import { getDS100byIBNR } from './ds100.js'; import { CustomDate } from './helpers.js'; export const remarksModal = (element, remarks) => element.showDialogOverlay('remarks', [ remarks.map(remark => html`
${unsafeHTML(remark.text)}
`), html`` ]); export const stopTemplate = (profile, stop) => { let stopName = stop.name; if (settingsState.showDS100) { const ds100 = getDS100byIBNR(stop.id); if (ds100 !== null) stopName += ` (${ds100})`; } return html`${stopName}`; } export const platformTemplate = data => { if (data.departurePlatform) { if (data.departurePlatform != data.plannedDeparturePlatform) { return html`${data.departurePlatform}`; } else { return data.plannedDeparturePlatform; } } else if (data.platform) { if (data.platform != data.plannedPlatform) { return html`${data.platform}`; } else { return data.plannedPlatform; } } else if (data.arrivalPlatform) { if (data.arrivalPlatform != data.plannedArrivalPlatform) { return html`${data.arrivalPlatform}`; } else { return data.plannedArrivalPlatform; } } else { return '-'; } }; export const timeTemplate = (data, mode) => { const fieldsMap = { when: { departure: 'departure', arrival: 'arrival', }, plannedWhen: { departure: 'plannedDeparture', arrival: 'plannedArrival', }, delay: { departure: 'departureDelay', arrival: 'arrivalDelay', }, }; const getField = fieldName => data[fieldsMap[fieldName][mode] || fieldName]; let timeStr; const dateObj = getField('when') || getField('plannedWhen'); if (!dateObj) return '-'; if (dateObj.toLocaleDateString() !== new CustomDate().toLocaleDateString()) { timeStr = `${dateObj.formatTime()}, ${dateObj.getDate()}.${dateObj.getMonth() + 1}.`; } else { timeStr = dateObj.formatTime(); } const delayMinutes = Math.round(getField('delay') / 60); return html`${timeStr}${delayMinutes != 0 ? html` (${delayMinutes > 0 ? '+' : ''}${delayMinutes})` : nothing}`; };