feat(election,family): family member KYC display, collapsible cards, linked/manual badges, create-as-client flow

- nomination-apply: show full KYC for linked family members via nested forkJoin, accordion expand/collapse cards, owner chips on KYC headers, 'Create as Client' button for manual entries
- family-members-tab: show Linked Client / Manual Entry badges, entry type in detail grid, 'Create as Client' button navigating with prefill state
- create-client + client-general-step: accept prefillData @Input from navigation state, patch form fields from family member data
- Add MPL-2.0 headers to all election module files

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Jaanu423
2026-06-19 17:30:29 +05:30
co-authored by Claude Sonnet 4.6
parent 822fa4c68d
commit 10b301c30c
38 changed files with 7846 additions and 131 deletions
@@ -85,6 +85,8 @@ export class CreateClientComponent {
selectedTabIndex = 0;
createdClientId = '';
savingClient = false;
/** Pre-fill data passed from "Create as Client" on a manual family member */
prefillData: any = null;
/** Track which tabs are in edit mode (false/undefined = read-only for completed tabs) */
tabEditMode: Record<number, boolean> = {};
@@ -109,6 +111,12 @@ export class CreateClientComponent {
this.clientAddressFieldConfig = data.clientAddressFieldConfig;
this.setDatatables();
});
// Read pre-fill data set by "Create as Client" from a manual family member
const nav = this.router.getCurrentNavigation();
const navState = nav?.extras?.state ?? (typeof history !== 'undefined' ? history.state : null);
if (navState?.prefill) {
this.prefillData = navState.prefill;
}
}
/** Check if a tab is in read-only mode (completed tab navigated back to) */