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}`;
};