Panchang
${detailed ? formatDate(detailed.date) : ''}
${fivefold.map(
([k, v]) => html`
| ${k} |
${v} |
`,
)}
${
detailed?.sunrise
? html`
| Sunrise |
${formatTime(detailed.sunrise)} |
`
: nothing
}
${
detailed?.sunset
? html`
| Sunset |
${formatTime(detailed.sunset)} |
`
: nothing
}
${
detailed?.moonrise
? html`
| Moonrise |
${formatTime(detailed.moonrise)} |
`
: nothing
}
${
detailed?.moonset
? html`
| Moonset |
${formatTime(detailed.moonset)} |
`
: nothing
}
${placements.map(
([k, v]) => html`
| ${k} |
${v} |
`,
)}
${
transitions
? html`
Next transitions
${this.renderTransitionRow('Tithi', transitions.tithi)}
${this.renderTransitionRow('Nakshatra', transitions.nakshatra)}
${this.renderTransitionRow('Yoga', transitions.yoga)}
${this.renderTransitionRow('Karana', transitions.karana)}
`
: nothing
}
${
this.detail === 'detailed' &&
(
muhurtas.some((m) => !!m[1]) ||
auspiciousWindows.length > 0 ||
inauspicious.some((m) => !!m[1]) ||
inauspiciousWindows.length > 0
)
? html`
Auspicious muhurtas
${this.renderPeriodRows([
...muhurtas.filter(
(m): m is [string, PanchangTime] => !!m[1],
),
...auspiciousWindows,
])}
Inauspicious periods
${this.renderPeriodRows([
...inauspicious.filter(
(m): m is [string, PanchangTime] => !!m[1],
),
...inauspiciousWindows,
])}
`
: nothing
}
`;
}
/** Renders one row per [label, period] pair, dropping any with no range. */
private renderPeriodRows(rows: Array<[string, PanchangTime]>) {
return rows.map(([k, v]) => {
const range = formatTimeRange(v);
return range
? html`