${
// The response `summary` is a written overview of the positions, not a
// count of them, so it goes with the readings.
vm.summary && !this.hideReadings
? html`
${vm.summary}
`
: nothing
}
${this.renderReadings(vm.rows)}
`;
}
private renderRow(r: Row, cols: ViewModel['cols']) {
const glyph = planetGlyph(r.label);
return html`
| ${glyph ? html`${glyph}` : nothing}${r.label} |
${this.signCell(r.sign, r.degree)} |
${
cols.natal
? html`${r.natalLongitude != null ? this.signFromLongitude(r.natalLongitude) : html`—`} | `
: nothing
}
${
cols.house
? html`${r.house != null ? r.house : html`—`} | `
: nothing
}
${
cols.motion
? html`${
r.speed != null
? html`${formatNumber(this.effectiveLang(), r.speed, 3)}${this.t('°/day')}${r.isRetrograde ? html` ℞` : nothing}`
: html`—`
} | `
: nothing
}
${cols.formula ? html`${r.formula ?? html`—`} | ` : nothing}
`;
}
private signCell(sign: string, degree: number) {
const g = signGlyph(sign);
return html`