97 lines
3.8 KiB
TypeScript
97 lines
3.8 KiB
TypeScript
import type {
|
|
InvestmentMapArea,
|
|
InvestmentMapFeature,
|
|
} from './interactive-investment-map';
|
|
|
|
export default function InvestmentMapCoverage({
|
|
points,
|
|
areas,
|
|
unlocated,
|
|
truncated,
|
|
}: {
|
|
points: InvestmentMapFeature[];
|
|
areas: InvestmentMapArea[];
|
|
unlocated: number;
|
|
truncated: boolean;
|
|
}) {
|
|
const rows = [
|
|
{
|
|
label: 'Marcadores de investimento',
|
|
records: points.map((point) => point.properties),
|
|
},
|
|
{ label: 'Áreas e limites', records: areas },
|
|
];
|
|
return (
|
|
<section
|
|
className="space-y-2 rounded border p-3"
|
|
aria-label="Cobertura dos dados do mapa"
|
|
>
|
|
<h3 className="font-semibold">Cobertura desta consulta</h3>
|
|
{truncated && (
|
|
<p role="note">
|
|
Resultados limitados pela consulta. Refine os filtros; as
|
|
contagens abaixo não representam o total do cadastro.
|
|
</p>
|
|
)}
|
|
<div className="overflow-x-auto">
|
|
<table className="w-full text-left text-sm">
|
|
<caption className="text-left">
|
|
Registos da pesquisa de investimentos para os filtros
|
|
actuais, incluindo camadas ocultas. A cobertura dos
|
|
limites administrativos adicionais é apresentada em
|
|
«Fontes e contexto do mapa».
|
|
</caption>
|
|
<thead>
|
|
<tr>
|
|
<th scope="col">Camada</th>
|
|
<th scope="col">Registos</th>
|
|
<th scope="col">Sem fonte indicada</th>
|
|
<th scope="col">Sem data indicada</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{rows.map((row) => (
|
|
<tr key={row.label}>
|
|
<th scope="row">{row.label}</th>
|
|
<td>{row.records.length}</td>
|
|
<td>
|
|
{
|
|
row.records.filter(
|
|
(record) =>
|
|
!record.source_reference?.trim(),
|
|
).length
|
|
}
|
|
</td>
|
|
<td>
|
|
{
|
|
row.records.filter(
|
|
(record) =>
|
|
!record.source_date?.trim(),
|
|
).length
|
|
}
|
|
</td>
|
|
</tr>
|
|
))}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<p>
|
|
Investimentos com ponto nesta resposta:{' '}
|
|
{new Set(points.map((point) => point.properties.id)).size}. Um
|
|
investimento pode ter vários marcadores.
|
|
</p>
|
|
<p>
|
|
Investimentos sem ponto público utilizável nesta consulta:{' '}
|
|
{unlocated}.
|
|
{unlocated > 0 && ' As fichas continuam disponíveis abaixo.'}
|
|
</p>
|
|
<p className="text-sm">
|
|
A indicação de fonte ou data não comprova cobertura completa nem
|
|
actualidade. Ausência de registos não significa ausência de
|
|
investimento. Esta consulta não mede disponibilidade de
|
|
recursos, infra-estruturas ou mão-de-obra.
|
|
</p>
|
|
</section>
|
|
);
|
|
}
|