first commit
This commit is contained in:
@@ -0,0 +1,489 @@
|
||||
<div class="row">
|
||||
<div class="col-lg-12 grid-margin stretch-card">
|
||||
<div class="card">
|
||||
<div class="card-body card-body-review">
|
||||
<div class="dashboard-container">
|
||||
|
||||
<!-- ── KPIs principaux ── -->
|
||||
<div class="kpi-cards-section">
|
||||
<div class="row">
|
||||
|
||||
<div class="col-lg-3 col-md-6">
|
||||
<nz-card class="kpi-card kpi-card-blue" [nzLoading]="loading">
|
||||
<div class="kpi-content">
|
||||
<div class="kpi-icon"><span nz-icon nzType="global" nzTheme="outline"></span></div>
|
||||
<div class="kpi-details">
|
||||
<div class="kpi-value">{{ statistiquesGlobales.totalParcelles | number:'1.0-0': 'fr' }}</div>
|
||||
<div class="kpi-label">Total Parcelles</div>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3 col-md-6">
|
||||
<nz-card class="kpi-card kpi-card-green" [nzLoading]="loading">
|
||||
<div class="kpi-content">
|
||||
<div class="kpi-icon"><span nz-icon nzType="check-circle" nzTheme="outline"></span></div>
|
||||
<div class="kpi-details">
|
||||
<div class="kpi-value">{{ statistiquesGlobales.parcellesEnquetees | number:'1.0-0': 'fr' }}</div>
|
||||
<div class="kpi-label">Parcelles Enquêtées</div>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3 col-md-6">
|
||||
<nz-card class="kpi-card kpi-card-purple" [nzLoading]="loading">
|
||||
<div class="kpi-content">
|
||||
<div class="kpi-icon"><span nz-icon nzType="environment" nzTheme="outline"></span></div>
|
||||
<div class="kpi-details">
|
||||
<div class="kpi-value">{{ statistiquesGlobales.parcellesGeoreferencees | number:'1.0-0': 'fr' }}</div>
|
||||
<div class="kpi-label">Géoréférencées</div>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3 col-md-6">
|
||||
<nz-card class="kpi-card kpi-card-red" [nzLoading]="loading">
|
||||
<div class="kpi-content">
|
||||
<div class="kpi-icon"><span nz-icon nzType="warning" nzTheme="outline"></span></div>
|
||||
<div class="kpi-details">
|
||||
<div class="kpi-value">{{ statistiquesGlobales.parcellesAvecDonneesNonGeo | number:'1.0-0': 'fr' }}</div>
|
||||
<div class="kpi-label">Données sans géom.</div>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- ── Bandeaux secondaires ── -->
|
||||
<div class="row mt-2">
|
||||
<div class="col-lg-12">
|
||||
<nz-card class="stat-banner-card" [nzLoading]="loading">
|
||||
<div class="stat-banner-container">
|
||||
|
||||
<div class="stat-banner-item stat-banner-green">
|
||||
<div class="stat-banner-icon"><span nz-icon nzType="check-circle" nzTheme="fill"></span></div>
|
||||
<div class="stat-banner-body">
|
||||
<div class="stat-banner-value">{{ getTauxEnquete() }}<span class="stat-banner-unit">%</span></div>
|
||||
<div class="stat-banner-label">Taux d'enquête</div>
|
||||
<div class="stat-banner-bar"><div class="stat-banner-bar-fill green" [style.width]="getTauxEnquete() + '%'"></div></div>
|
||||
<div class="stat-banner-percent">{{ statistiquesGlobales.parcellesEnquetees }} / {{ statistiquesGlobales.totalParcelles }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="stat-banner-divider"></div>
|
||||
|
||||
<div class="stat-banner-item stat-banner-blue">
|
||||
<div class="stat-banner-icon"><span nz-icon nzType="home" nzTheme="fill"></span></div>
|
||||
<div class="stat-banner-body">
|
||||
<div class="stat-banner-value">{{ getTauxBati() }}<span class="stat-banner-unit">%</span></div>
|
||||
<div class="stat-banner-label">Taux de bâti</div>
|
||||
<div class="stat-banner-bar"><div class="stat-banner-bar-fill blue" [style.width]="getTauxBati() + '%'"></div></div>
|
||||
<div class="stat-banner-percent">{{ statistiquesGlobales.parcellesBaties }} bâties / {{ statistiquesGlobales.parcellesNonBaties }} non bâties</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="stat-banner-divider"></div>
|
||||
|
||||
<div class="stat-banner-item stat-banner-purple">
|
||||
<div class="stat-banner-icon"><span nz-icon nzType="environment" nzTheme="fill"></span></div>
|
||||
<div class="stat-banner-body">
|
||||
<div class="stat-banner-value">{{ getTauxGeo() }}<span class="stat-banner-unit">%</span></div>
|
||||
<div class="stat-banner-label">Taux de géoréférencement</div>
|
||||
<div class="stat-banner-bar"><div class="stat-banner-bar-fill purple" [style.width]="getTauxGeo() + '%'"></div></div>
|
||||
<div class="stat-banner-percent">{{ statistiquesGlobales.parcellesGeoreferencees }} géoréf. / {{ statistiquesGlobales.parcellesNonGeoreferencees }} sans géom.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="stat-banner-divider"></div>
|
||||
|
||||
<div class="stat-banner-item stat-banner-orange">
|
||||
<div class="stat-banner-icon"><span nz-icon nzType="rise" nzTheme="outline"></span></div>
|
||||
<div class="stat-banner-body">
|
||||
<div class="stat-banner-value">{{ getTauxAJour() }}<span class="stat-banner-unit">%</span></div>
|
||||
<div class="stat-banner-label">Taux à jour fiscal</div>
|
||||
<div class="stat-banner-bar"><div class="stat-banner-bar-fill orange" [style.width]="getTauxAJour() + '%'"></div></div>
|
||||
<div class="stat-banner-percent">{{ statistiquesGlobales.parcellesEndettees }} endettées</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</nz-card>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ── Onglets thématiques ── -->
|
||||
<div class="thematique-tabs-section">
|
||||
<div class="thematique-tabs">
|
||||
<button class="ttab" [class.ttab-active]="activeThematique === 'statuts'" (click)="activeThematique = 'statuts'">
|
||||
<span nz-icon nzType="pie-chart" nzTheme="outline"></span> Statuts des parcelles
|
||||
</button>
|
||||
<button class="ttab" [class.ttab-active]="activeThematique === 'enquete'" (click)="activeThematique = 'enquete'">
|
||||
<span nz-icon nzType="audit" nzTheme="outline"></span> Enquête par territoire
|
||||
</button>
|
||||
<button class="ttab" [class.ttab-active]="activeThematique === 'georef'" (click)="activeThematique = 'georef'">
|
||||
<span nz-icon nzType="environment" nzTheme="outline"></span> Géoréférencement
|
||||
</button>
|
||||
<button class="ttab" [class.ttab-active]="activeThematique === 'fiscal'" (click)="activeThematique = 'fiscal'">
|
||||
<span nz-icon nzType="dollar-circle" nzTheme="outline"></span> Situation fiscale
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<!-- ── THÉMATIQUE : Statuts ── -->
|
||||
<div *ngIf="activeThematique === 'statuts'" class="thematique-content">
|
||||
<div class="row">
|
||||
|
||||
<!-- Légende statuts -->
|
||||
<div class="col-lg-4">
|
||||
<nz-card class="chart-card" [nzLoading]="loading">
|
||||
<div class="chart-header">
|
||||
<h3 class="chart-title"><span nz-icon nzType="unordered-list"></span> Légende des statuts</h3>
|
||||
</div>
|
||||
<div class="statut-legend-list">
|
||||
<div class="statut-legend-item" *ngFor="let s of statsParStatut">
|
||||
<div class="statut-legend-dot" [style.background]="s.couleur"></div>
|
||||
<div class="statut-legend-body">
|
||||
<span class="statut-legend-label">{{ s.libelle }}</span>
|
||||
<div class="statut-legend-bar-wrap">
|
||||
<div class="statut-legend-bar">
|
||||
<div class="statut-legend-bar-fill" [style.width]="s.pourcentage + '%'" [style.background]="s.couleur"></div>
|
||||
</div>
|
||||
<span class="statut-legend-val">{{ s.nombre | number:'1.0-0': 'fr' }} <small>({{ s.pourcentage }}%)</small></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
</div>
|
||||
|
||||
<!-- Donut statuts -->
|
||||
<div class="col-lg-4">
|
||||
<nz-card class="chart-card" [nzLoading]="loading">
|
||||
<div class="chart-header">
|
||||
<h3 class="chart-title"><span nz-icon nzType="pie-chart"></span> Répartition par statut</h3>
|
||||
</div>
|
||||
<div class="chart-content">
|
||||
<apx-chart
|
||||
[series]="pieStatutsOptions.series"
|
||||
[chart]="pieStatutsOptions.chart"
|
||||
[labels]="pieStatutsOptions.labels"
|
||||
[colors]="pieStatutsOptions.colors"
|
||||
[legend]="pieStatutsOptions.legend"
|
||||
[plotOptions]="pieStatutsOptions.plotOptions"
|
||||
[dataLabels]="pieStatutsOptions.dataLabels"
|
||||
[responsive]="pieStatutsOptions.responsive">
|
||||
</apx-chart>
|
||||
</div>
|
||||
</nz-card>
|
||||
</div>
|
||||
|
||||
<!-- Pie bâties -->
|
||||
<div class="col-lg-4">
|
||||
<nz-card class="chart-card" [nzLoading]="loading">
|
||||
<div class="chart-header">
|
||||
<h3 class="chart-title"><span nz-icon nzType="home"></span> Bâties vs Non bâties</h3>
|
||||
</div>
|
||||
<div class="chart-content">
|
||||
<apx-chart
|
||||
[series]="pieBatieOptions.series"
|
||||
[chart]="pieBatieOptions.chart"
|
||||
[labels]="pieBatieOptions.labels"
|
||||
[colors]="pieBatieOptions.colors"
|
||||
[legend]="pieBatieOptions.legend"
|
||||
[plotOptions]="pieBatieOptions.plotOptions"
|
||||
[dataLabels]="pieBatieOptions.dataLabels"
|
||||
[responsive]="pieBatieOptions.responsive">
|
||||
</apx-chart>
|
||||
</div>
|
||||
<div class="chart-footer">
|
||||
<div class="chart-summary">
|
||||
<div class="summary-item">
|
||||
<span class="summary-label">Bâties :</span>
|
||||
<span class="summary-value active">{{ statistiquesGlobales.parcellesBaties | number:'1.0-0': 'fr' }}</span>
|
||||
</div>
|
||||
<div class="summary-item">
|
||||
<span class="summary-label">Non bâties :</span>
|
||||
<span class="summary-value inactive">{{ statistiquesGlobales.parcellesNonBaties | number:'1.0-0': 'fr' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ── THÉMATIQUE : Enquête par territoire ── -->
|
||||
<div *ngIf="activeThematique === 'enquete'" class="thematique-content">
|
||||
<div class="row">
|
||||
|
||||
<!-- Bar par commune -->
|
||||
<div class="col-lg-6">
|
||||
<nz-card class="chart-card" [nzLoading]="loading">
|
||||
<div class="chart-header">
|
||||
<h3 class="chart-title"><span nz-icon nzType="bar-chart"></span> Enquête par commune</h3>
|
||||
</div>
|
||||
<div class="chart-content">
|
||||
<apx-chart
|
||||
[series]="barCommuneOptions.series"
|
||||
[chart]="barCommuneOptions.chart"
|
||||
[xaxis]="barCommuneOptions.xaxis"
|
||||
[yaxis]="barCommuneOptions.yaxis"
|
||||
[colors]="barCommuneOptions.colors"
|
||||
[legend]="barCommuneOptions.legend"
|
||||
[stroke]="barCommuneOptions.stroke"
|
||||
[markers]="barCommuneOptions.markers"
|
||||
[grid]="barCommuneOptions.grid"
|
||||
[dataLabels]="barCommuneOptions.dataLabels"
|
||||
[plotOptions]="barCommuneOptions.plotOptions"
|
||||
[tooltip]="barCommuneOptions.tooltip"
|
||||
[fill]="barCommuneOptions.fill">
|
||||
</apx-chart>
|
||||
</div>
|
||||
</nz-card>
|
||||
</div>
|
||||
|
||||
<!-- Bar par structure -->
|
||||
<div class="col-lg-6">
|
||||
<nz-card class="chart-card" [nzLoading]="loading">
|
||||
<div class="chart-header">
|
||||
<h3 class="chart-title"><span nz-icon nzType="bank"></span> Enquête par structure</h3>
|
||||
</div>
|
||||
<div class="chart-content">
|
||||
<apx-chart
|
||||
[series]="barStructureOptions.series"
|
||||
[chart]="barStructureOptions.chart"
|
||||
[xaxis]="barStructureOptions.xaxis"
|
||||
[yaxis]="barStructureOptions.yaxis"
|
||||
[colors]="barStructureOptions.colors"
|
||||
[legend]="barStructureOptions.legend"
|
||||
[stroke]="barStructureOptions.stroke"
|
||||
[markers]="barStructureOptions.markers"
|
||||
[grid]="barStructureOptions.grid"
|
||||
[dataLabels]="barStructureOptions.dataLabels"
|
||||
[plotOptions]="barStructureOptions.plotOptions"
|
||||
[tooltip]="barStructureOptions.tooltip"
|
||||
[fill]="barStructureOptions.fill">
|
||||
</apx-chart>
|
||||
</div>
|
||||
</nz-card>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Tableau par commune -->
|
||||
<div class="row mt-3">
|
||||
<div class="col-lg-12">
|
||||
<nz-card class="stats-table-card">
|
||||
<div class="table-header">
|
||||
<h3 class="table-title"><span nz-icon nzType="table"></span> Détail par commune</h3>
|
||||
</div>
|
||||
<nz-table #communeTable [nzData]="statsParCommune" [nzPageSize]="5">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Commune</th>
|
||||
<th nzAlign="center">Total</th>
|
||||
<th nzAlign="center">Enquêtées</th>
|
||||
<th nzAlign="center">Non enquêtées</th>
|
||||
<th nzAlign="center">Taux d'enquête</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr *ngFor="let item of communeTable.data">
|
||||
<td><span class="fonction-name">{{ item.commune }}</span></td>
|
||||
<td nzAlign="center"><nz-tag [nzColor]="'blue'">{{ item.total | number:'1.0-0': 'fr' }}</nz-tag></td>
|
||||
<td nzAlign="center"><nz-tag [nzColor]="'green'">{{ item.enquetees | number:'1.0-0': 'fr' }}</nz-tag></td>
|
||||
<td nzAlign="center"><nz-tag [nzColor]="'default'">{{ item.nonEnquetees | number:'1.0-0': 'fr' }}</nz-tag></td>
|
||||
<td nzAlign="center">
|
||||
<nz-progress [nzPercent]="item.tauxEnquete"
|
||||
[nzStrokeColor]="getProgressColor(item.tauxEnquete)"
|
||||
[nzShowInfo]="true" nzSize="small">
|
||||
</nz-progress>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</nz-table>
|
||||
</nz-card>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- ── THÉMATIQUE : Géoréférencement ── -->
|
||||
<div *ngIf="activeThematique === 'georef'" class="thematique-content">
|
||||
<div class="row">
|
||||
|
||||
<div class="col-lg-5">
|
||||
<nz-card class="chart-card" [nzLoading]="loading">
|
||||
<div class="chart-header">
|
||||
<h3 class="chart-title"><span nz-icon nzType="pie-chart"></span> Géoréférencement global</h3>
|
||||
</div>
|
||||
<div class="chart-content">
|
||||
<apx-chart
|
||||
[series]="pieGeoOptions.series"
|
||||
[chart]="pieGeoOptions.chart"
|
||||
[labels]="pieGeoOptions.labels"
|
||||
[colors]="pieGeoOptions.colors"
|
||||
[legend]="pieGeoOptions.legend"
|
||||
[plotOptions]="pieGeoOptions.plotOptions"
|
||||
[dataLabels]="pieGeoOptions.dataLabels"
|
||||
[responsive]="pieGeoOptions.responsive">
|
||||
</apx-chart>
|
||||
</div>
|
||||
<div class="chart-footer">
|
||||
<div class="chart-summary">
|
||||
<div class="summary-item">
|
||||
<span class="summary-label">Géoréférencées :</span>
|
||||
<span class="summary-value active">{{ statistiquesGlobales.parcellesGeoreferencees | number:'1.0-0': 'fr' }}</span>
|
||||
</div>
|
||||
<div class="summary-item">
|
||||
<span class="summary-label">Sans géométrie :</span>
|
||||
<span class="summary-value inactive">{{ statistiquesGlobales.parcellesNonGeoreferencees | number:'1.0-0': 'fr' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-lg-7">
|
||||
<nz-card class="chart-card" [nzLoading]="loading">
|
||||
<div class="chart-header">
|
||||
<h3 class="chart-title"><span nz-icon nzType="bar-chart"></span> Géoréférencement par commune</h3>
|
||||
</div>
|
||||
<div class="chart-content">
|
||||
<apx-chart
|
||||
[series]="barGeoParCommuneOptions.series"
|
||||
[chart]="barGeoParCommuneOptions.chart"
|
||||
[xaxis]="barGeoParCommuneOptions.xaxis"
|
||||
[yaxis]="barGeoParCommuneOptions.yaxis"
|
||||
[colors]="barGeoParCommuneOptions.colors"
|
||||
[legend]="barGeoParCommuneOptions.legend"
|
||||
[stroke]="barGeoParCommuneOptions.stroke"
|
||||
[markers]="barGeoParCommuneOptions.markers"
|
||||
[grid]="barGeoParCommuneOptions.grid"
|
||||
[dataLabels]="barGeoParCommuneOptions.dataLabels"
|
||||
[plotOptions]="barGeoParCommuneOptions.plotOptions"
|
||||
[tooltip]="barGeoParCommuneOptions.tooltip"
|
||||
[fill]="barGeoParCommuneOptions.fill">
|
||||
</apx-chart>
|
||||
</div>
|
||||
|
||||
<nz-card class="alert-card m-3">
|
||||
<div class="alert-content alert-warning">
|
||||
<span nz-icon nzType="warning" nzTheme="fill" class="alert-icon"></span>
|
||||
<div class="alert-body">
|
||||
<div class="alert-title">Données attributaires sans géométrie</div>
|
||||
<div class="alert-value">{{ statistiquesGlobales.parcellesAvecDonneesNonGeo | number:'1.0-0': 'fr' }} parcelles</div>
|
||||
<div class="alert-desc">Ces parcelles ont des données fiscales mais ne sont pas encore géoréférencées.</div>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
|
||||
</nz-card>
|
||||
|
||||
<!-- Alerte données sans géom -->
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ── THÉMATIQUE : Situation fiscale ── -->
|
||||
<div *ngIf="activeThematique === 'fiscal'" class="thematique-content">
|
||||
<div class="row">
|
||||
|
||||
<div class="col-lg-4">
|
||||
<nz-card class="alert-card">
|
||||
<div class="alert-content alert-danger">
|
||||
<span nz-icon nzType="close-circle" nzTheme="fill" class="alert-icon"></span>
|
||||
<div class="alert-body">
|
||||
<div class="alert-title">Parcelles endettées</div>
|
||||
<div class="alert-value">{{ statistiquesGlobales.parcellesEndettees | number:'1.0-0': 'fr' }}</div>
|
||||
<div class="alert-desc">Parcelles avec arriérés fiscaux non réglés.</div>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4">
|
||||
<nz-card class="alert-card">
|
||||
<div class="alert-content alert-success">
|
||||
<span nz-icon nzType="check-circle" nzTheme="fill" class="alert-icon"></span>
|
||||
<div class="alert-body">
|
||||
<div class="alert-title">Parcelles à jour</div>
|
||||
<div class="alert-value">{{ statistiquesGlobales.parcellesAJour | number:'1.0-0': 'fr' }}</div>
|
||||
<div class="alert-desc">Parcelles dont la situation fiscale est régularisée.</div>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4">
|
||||
<nz-card class="alert-card">
|
||||
<div class="alert-content alert-info">
|
||||
<span nz-icon nzType="rise" nzTheme="outline" class="alert-icon"></span>
|
||||
<div class="alert-body">
|
||||
<div class="alert-title">Taux de régularisation</div>
|
||||
<div class="alert-value">{{ getTauxAJour() }}%</div>
|
||||
<div class="alert-desc">Part des parcelles à jour sur le total enquêté.</div>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Tableau statuts fiscaux -->
|
||||
<div class="row mt-3">
|
||||
<div class="col-lg-12">
|
||||
<nz-card class="stats-table-card">
|
||||
<div class="table-header">
|
||||
<h3 class="table-title"><span nz-icon nzType="table"></span> Détail par statut fiscal</h3>
|
||||
</div>
|
||||
<nz-table #statutTable [nzData]="statsParStatut" [nzPageSize]="10" [nzShowPagination]="false">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Couleur</th>
|
||||
<th>Statut</th>
|
||||
<th nzAlign="center">Nombre</th>
|
||||
<th nzAlign="center">Pourcentage</th>
|
||||
<th>Progression</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr *ngFor="let item of statutTable.data">
|
||||
<td>
|
||||
<span class="statut-dot-table" [style.background]="item.couleur"></span>
|
||||
</td>
|
||||
<td><span class="fonction-name">{{ item.libelle }}</span></td>
|
||||
<td nzAlign="center"><nz-tag [nzColor]="'default'">{{ item.nombre | number:'1.0-0': 'fr' }}</nz-tag></td>
|
||||
<td nzAlign="center"><strong>{{ item.pourcentage }}%</strong></td>
|
||||
<td>
|
||||
<nz-progress [nzPercent]="item.pourcentage"
|
||||
[nzStrokeColor]="item.couleur"
|
||||
[nzShowInfo]="false" nzSize="small">
|
||||
</nz-progress>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</nz-table>
|
||||
</nz-card>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- fin thematique-tabs-section -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user