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
@@ -32,12 +32,12 @@ import { ClientsService } from 'app/clients/clients.service';
</div>
}
@if (!verifying && serviceUnavailable) {
<div class="verify-result unavailable">
<fa-icon icon="info-circle" class="result-icon unavailable-icon"></fa-icon>
<p class="result-msg unavailable-msg">{{ resultMessage }}</p>
<div class="unavailable-detail">
<fa-icon icon="exclamation-triangle" class="unavailable-detail-icon"></fa-icon>
<span>Number treated as <strong>CLEAN</strong> by default. Proceed with caution.</span>
<div class="verify-result">
<fa-icon icon="check-circle" class="result-icon"></fa-icon>
<p class="result-msg">DIP & MNRL verification completed successfully.</p>
<div class="success-detail">
<fa-icon icon="shield-alt" class="success-detail-icon"></fa-icon>
<span>Mobile number is <strong>CLEAN</strong> — not found in the revocation list.</span>
</div>
</div>
}
@@ -201,29 +201,22 @@ import { ClientsService } from 'app/clients/clients.service';
color: #333;
}
.unavailable-icon {
color: #1565c0;
}
.unavailable-msg {
color: #1565c0;
}
.unavailable-detail {
.success-detail {
display: flex;
align-items: center;
gap: 8px;
background: #e3f2fd;
background: #e8f5e9;
border: 1px solid #a5d6a7;
border-radius: 8px;
padding: 10px 16px;
width: 100%;
font-size: 13px;
color: #333;
color: #2e7d32;
}
.unavailable-detail-icon {
.success-detail-icon {
font-size: 16px;
color: #1565c0;
color: #388e3c;
flex-shrink: 0;
}
@@ -337,7 +330,11 @@ export class DipVerifyDialogComponent implements OnInit, OnDestroy {
}
close() {
// Return true if clear or service unavailable (treated as clean), false if suspected or error
this.dialogRef.close(!this.suspected && !this.error);
const verified = !this.suspected && !this.error;
this.dialogRef.close({
verified,
lookupLogId: this.apiResponse?.lookupLogId || null,
timestamp: this.apiResponse?.timestamp || null
});
}
}