feat: non-individual entity UI improvements — hide individual-only sections, fix legal form display, send extended fields to API

- Hide Family Members tab/section for non-individual entities in client view, create flow, and preview
- Hide Financial & Classification section for non-individual entities in personal data and preview
- Fix legal form column in clients list — fetch legalForm from client API for correct display
- Add person/business icon before client name in list rows
- Remove unsupportedNpd filter — send authorizedSignatory, additionalInfo, dateOfRegistration to API
- Add registration number format hint (mat-hint) based on constitution type
- Add spacing between verification row and constitution type dropdowns
- Reduce table cell padding and prevent action buttons from being clipped
- Add missing MPL-2.0 license headers

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Aditya
2026-04-04 15:10:51 +05:30
co-authored by Claude Opus 4.6
parent ab01111424
commit b890d24bb7
522 changed files with 51991 additions and 21885 deletions
@@ -306,30 +306,5 @@
</div>
</div>
<!-- ═══════ SECTION: Analytics Charts ═══════ -->
<div class="section-header analytics">
<fa-icon icon="chart-bar" class="section-icon"></fa-icon>
<span>Analytics</span>
</div>
<div class="charts-section">
<div class="top-card">
<div class="trends-bar">
<mifosx-client-trends-bar></mifosx-client-trends-bar>
</div>
</div>
<div class="bottom-card">
<div class="amount-disbursed">
<mifosx-amount-disbursed-pie></mifosx-amount-disbursed-pie>
</div>
<div class="amount-collected">
<mifosx-amount-collected-pie></mifosx-amount-collected-pie>
</div>
</div>
</div>
<!-- Footer -->
<div class="cbs-footer">CBS Monitoring Dashboard &bull; Internal Use Only</div>
</div>
</div>
@@ -94,10 +94,6 @@ $purple: #7c3aed;
background: #fff3e0;
color: #e65100;
}
&.analytics {
background: #e0f2f1;
color: #004d40;
}
}
/* ─── Card Grid Layouts ─── */
@@ -714,39 +710,6 @@ $purple: #7c3aed;
}
}
/* ─── Charts ─── */
.charts-section {
display: flex;
flex-direction: column;
gap: 20px;
.top-card {
.trends-bar {
width: 100%;
}
}
.bottom-card {
display: flex;
flex-flow: row wrap;
gap: 15px;
.amount-collected,
.amount-disbursed {
flex: 1 0 calc(50% - 15px);
min-width: 300px;
}
}
}
.cbs-footer {
margin-top: 30px;
text-align: center;
font-size: 12px;
color: #94a3b8;
padding: 15px 0;
}
/* ─── Responsive ─── */
@media screen and (width <= 1200px) {
.four-col {
@@ -780,12 +743,4 @@ $purple: #7c3aed;
text-align: center;
}
.charts-section .bottom-card {
flex-direction: column;
.amount-collected,
.amount-disbursed {
flex: 1 0 100%;
width: 100%;
}
}
}
@@ -17,9 +17,6 @@ import { MatAutocompleteTrigger, MatAutocomplete, MatOption } from '@angular/mat
import { MatDialog } from '@angular/material/dialog';
import { MatTooltipModule } from '@angular/material/tooltip';
import { AsyncPipe, DatePipe } from '@angular/common';
import { ClientTrendsBarComponent } from './client-trends-bar/client-trends-bar.component';
import { AmountDisbursedPieComponent } from './amount-disbursed-pie/amount-disbursed-pie.component';
import { AmountCollectedPieComponent } from './amount-collected-pie/amount-collected-pie.component';
import { FaIconComponent } from '@fortawesome/angular-fontawesome';
import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module';
/**
@@ -35,9 +32,6 @@ import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module';
MatAutocompleteTrigger,
MatAutocomplete,
MatTooltipModule,
ClientTrendsBarComponent,
AmountDisbursedPieComponent,
AmountCollectedPieComponent,
AsyncPipe,
DatePipe,
FaIconComponent
@@ -7,6 +7,12 @@
-->
<div class="warn-dialog">
<!-- Branding -->
<div class="warn-branding">
<div class="warn-branding__logomark"><span></span><span></span><span></span><span></span></div>
<span class="warn-branding__text">CBS<em>Nexora</em></span>
</div>
<!-- Icon + Header -->
<div class="warn-header">
<div class="warn-header__icon-wrap">
@@ -35,7 +41,12 @@
</mat-dialog-content>
<!-- Actions -->
<mat-dialog-actions class="warn-actions" align="end">
<mat-dialog-actions class="warn-actions">
<div class="warn-actions__logos">
<img src="assets/images/npci.jpg" alt="NPCI" class="warn-actions__logo-img" />
<img src="assets/images/cfcfrms.jpg" alt="CFCFRMS" class="warn-actions__logo-img" />
<img src="assets/images/rbi.jpg" alt="RBI" class="warn-actions__logo-img" />
</div>
<button mat-flat-button color="primary" class="warn-actions__btn" mat-dialog-close (click)="dialogRef.close()">
<i class="fa fa-check warn-actions__btn-icon"></i>
{{ 'labels.buttons.' + buttonText | translate }}
@@ -24,6 +24,44 @@ $white: #fff;
max-width: 480px;
}
// Branding
.warn-branding {
padding: 18px 24px 0;
display: flex;
align-items: center;
justify-content: flex-start;
gap: 10px;
&__logomark {
width: 24px;
height: 24px;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 3px;
span {
border-radius: 2px;
&:nth-child(1) { background: #0d3d78; }
&:nth-child(2) { background: #0ea5e9; }
&:nth-child(3) { background: #10b981; }
&:nth-child(4) { background: rgba(#0d3d78, 0.3); }
}
}
&__text {
font-size: 22px;
font-weight: 700;
letter-spacing: 0.06em;
color: #0d3d78;
em {
font-style: normal;
color: #0ea5e9;
}
}
}
// Header
.warn-header {
display: flex;
@@ -102,6 +140,22 @@ $white: #fff;
padding: 12px 24px 18px !important;
border-top: 1px solid $gray-200;
margin: 0 !important;
display: flex !important;
justify-content: space-between !important;
align-items: center !important;
&__logos {
display: flex;
align-items: center;
gap: 12px;
}
&__logo-img {
height: 28px;
width: auto;
object-fit: contain;
opacity: 0.85;
}
&__btn {
border-radius: 8px !important;