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
+67
View File
@@ -93,6 +93,55 @@ import { VersionService } from '../system/version.service';
export class LoginComponent implements OnInit, OnDestroy {
/** Whether to show the tenant selector dropdown */
showTenantSelector = true;
/** Slider data */
slides = [
{
tag: 'Core Banking', icon: '🏦',
title: 'Real-Time <span class="hl">CBS</span><br>Integration Platform',
desc: 'Seamless account enquiry, transaction posting & balance fetch via secure host connectivity. Sub-second response with 99.99% uptime SLA.',
stats: [{ value: '<200ms', label: 'Response Time' }, { value: '99.99%', label: 'Uptime SLA' }, { value: 'ISO 8583', label: 'Protocol' }],
flow: ['CBS Host', 'Middleware API', 'Account Enquiry', 'Tx Posting', 'Balance Fetch']
},
{
tag: 'Fraud Risk Management', icon: '',
title: 'AI-Powered <span class="hl">Fraud Risk</span><br>Management Platform',
desc: 'Real-time transaction scoring, anomaly detection & automated lien marking. Integrated with MHA CFCFRMS, UN sanctions screening, and rule-based alert engine for instant fraud response.',
stats: [{ value: 'Real-Time', label: 'Tx Scoring' }, { value: 'CFCFRMS', label: 'MHA Portal' }, { value: 'UN/OFAC', label: 'Sanctions' }],
flow: ['Transaction', 'Risk Engine', 'Alert & Lien', 'CFCFRMS API', 'MHA Portal']
},
{
tag: 'HSM Security', icon: '🔐',
title: 'HSM-Secured <span class="hl">PIN</span><br>& Key Management',
desc: 'ATM PIN generation, verification & change secured via SafeNet Luna K6 HSM. Full ZPK/PVK/KEK key hierarchy with TR-31 key block.',
stats: [{ value: 'Luna K6', label: 'HSM Model' }, { value: 'TR-31', label: 'Key Block' }, { value: 'FIPS 140-2', label: 'Certified' }],
flow: ['LMK (Master)', 'ZPK / KEK', 'PVK / ZEK', 'PIN Block', 'VISA PVV']
},
{
tag: 'Cyber Fraud Reporting', icon: '🛡️',
title: '<span class="hl">CFCFRMS</span><br>Fraud Detection & Reporting',
desc: 'Citizen Financial Cyber Fraud Reporting & Management System with real-time monitoring, MHA portal connectivity, and automated lien marking.',
stats: [{ value: 'MHA', label: 'Portal' }, { value: 'Real-Time', label: 'Alerts' }, { value: 'Auto Lien', label: 'Mark & Block' }],
flow: ['Transaction', 'Risk Engine', 'CFCFRMS API', 'MHA Portal', 'Lien / Block']
},
{
tag: 'Compliance', icon: '📋',
title: 'RBI & <span class="hl">IDRBT</span><br>Compliant Architecture',
desc: 'Built in full adherence to RBI circulars and IDRBT security standards — data localisation, audit trails, VAPT-certified APIs and AML screening.',
stats: [{ value: 'IDRBT', label: 'Standards' }, { value: 'VAPT', label: 'Certified' }, { value: 'AML/OFAC', label: 'Screening' }],
flow: ['RBI Circular', 'IDRBT Std.', 'Audit Trail', 'VAPT APIs', 'AML / OFAC']
},
{
tag: 'CKYC Compliance', icon: '🪪',
title: 'CBS to <span class="hl">CKYC</span><br>Data Submission & Verification',
desc: 'End-to-end CERSAI CKYC compliance workflow — Non-CKYC identification, auto ZIP packaging, SFTP upload, API-based search & fetch.',
stats: [{ value: 'CERSAI', label: 'Registry' }, { value: 'SFTP', label: 'Auto Upload' }, { value: 'API Search', label: '& Fetch' }],
flow: ['CBS — Non-CKYC', 'Auto ZIP Pack', 'SFTP Upload', 'CERSAI API', 'Status Update']
}
];
currentSlide = 0;
slideDuration = 5000;
private slideTimer: any;
/** Show version info table if env allows */
displayBackendInfo = environment.displayBackEndInfo !== 'false';
/** Production mode - minimal hero with branding only */
@@ -139,6 +188,7 @@ export class LoginComponent implements OnInit, OnDestroy {
*/
ngOnInit() {
this.showTenantSelector = this.calculateTenantSelectorVisibility();
this.startSlider();
this.updateLogo();
this.themeDarkEnabled = this.settingsService.themeDarkEnabled;
// Subscribe to theme changes
@@ -207,6 +257,23 @@ export class LoginComponent implements OnInit, OnDestroy {
if (this.theme$) {
this.theme$.unsubscribe();
}
clearInterval(this.slideTimer);
}
goToSlide(index: number): void {
this.currentSlide = index;
this.restartSlider();
}
private startSlider(): void {
this.slideTimer = setInterval(() => {
this.currentSlide = (this.currentSlide + 1) % this.slides.length;
}, this.slideDuration);
}
private restartSlider(): void {
clearInterval(this.slideTimer);
this.startSlider();
}
toggleSettingsPanel(): void {