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
@@ -6,53 +6,53 @@
file, You can obtain one at http://mozilla.org/MPL/2.0/.
-->
<div class="container narrow-container extra-small">
<div class="action-bar">
<button
mat-raised-button
color="primary"
class="edit-button"
[routerLink]="['./edit']"
*mifosxHasPermission="'UPDATE_OFFICE'"
>
<div class="vo-container">
<!-- Header -->
<div class="vo-header">
<div class="vo-header__left">
<button mat-stroked-button [routerLink]="['../../']" class="vo-back">
<i class="fas fa-arrow-left"></i> {{ 'labels.inputs.Offices' | translate }}
</button>
<h2 class="vo-header__title">{{ 'labels.heading.Office Details' | translate }}</h2>
</div>
<button mat-flat-button color="primary" [routerLink]="['./edit']" class="vo-edit-btn" *mifosxHasPermission="'UPDATE_OFFICE'">
<fa-icon icon="edit" class="m-r-10"></fa-icon>
{{ 'labels.buttons.Edit' | translate }}
</button>
</div>
<mat-card class="office-card">
<mat-card-content class="card-content">
<nav mat-tab-nav-bar class="navigation-tabs" [tabPanel]="tabPanel">
<a
mat-tab-link
[routerLink]="['./general']"
routerLinkActive
#general="routerLinkActive"
[active]="general.isActive"
class="compact-tab"
>
{{ 'labels.inputs.General' | translate }}
</a>
@for (officeDatatable of officeDatatables; track officeDatatable) {
<span>
<a
mat-tab-link
*mifosxHasPermission="'READ_' + officeDatatable.registeredTableName"
[routerLink]="['./datatables', officeDatatable.registeredTableName]"
routerLinkActive
#datatable="routerLinkActive"
[active]="datatable.isActive"
class="compact-tab"
>
{{ officeDatatable.registeredTableName }}
</a>
</span>
}
</nav>
<!-- Tab Card -->
<div class="vo-card">
<nav mat-tab-nav-bar class="vo-tabs" [tabPanel]="tabPanel">
<a
mat-tab-link
[routerLink]="['./general']"
routerLinkActive
#general="routerLinkActive"
[active]="general.isActive"
class="vo-tab"
>
{{ 'labels.inputs.General' | translate }}
</a>
@for (officeDatatable of officeDatatables; track officeDatatable) {
<span>
<a
mat-tab-link
*mifosxHasPermission="'READ_' + officeDatatable.registeredTableName"
[routerLink]="['./datatables', officeDatatable.registeredTableName]"
routerLinkActive
#datatable="routerLinkActive"
[active]="datatable.isActive"
class="vo-tab"
>
{{ officeDatatable.registeredTableName }}
</a>
</span>
}
</nav>
<mat-tab-nav-panel #tabPanel class="tab-panel">
<router-outlet></router-outlet>
</mat-tab-nav-panel>
</mat-card-content>
</mat-card>
<mat-tab-nav-panel #tabPanel class="vo-panel">
<router-outlet></router-outlet>
</mat-tab-nav-panel>
</div>
</div>