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
@@ -0,0 +1,134 @@
<!--
Copyright since 2025 Mifos Initiative
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.
-->
<div class="cal-container">
<!-- Header -->
<div class="cal-header">
<div class="cal-header__left">
<fa-icon icon="calendar-alt" class="cal-header__icon"></fa-icon>
<span class="cal-header__title">Bank Calendar</span>
</div>
<div class="cal-header__nav">
<button class="cal-nav-btn" (click)="previousYear()" matTooltip="Previous Year">
<fa-icon icon="chevron-left"></fa-icon>
</button>
<span class="cal-header__year">{{ currentYear }}</span>
<button class="cal-nav-btn" (click)="nextYear()" matTooltip="Next Year">
<fa-icon icon="chevron-right"></fa-icon>
</button>
<button class="cal-today-btn" (click)="goToCurrentYear()">Today</button>
</div>
</div>
<!-- Overall Stats -->
<div class="cal-stats">
<div class="cal-stat working">
<fa-icon icon="briefcase" class="cal-stat__icon"></fa-icon>
<div class="cal-stat__info">
<div class="cal-stat__value">{{ overallStats.working }}</div>
<div class="cal-stat__label">Working Days</div>
</div>
</div>
<div class="cal-stat sundays">
<fa-icon icon="ban" class="cal-stat__icon"></fa-icon>
<div class="cal-stat__info">
<div class="cal-stat__value">{{ overallStats.sundays }}</div>
<div class="cal-stat__label">Sundays</div>
</div>
</div>
<div class="cal-stat sat2nd4th">
<fa-icon icon="calendar-times" class="cal-stat__icon"></fa-icon>
<div class="cal-stat__info">
<div class="cal-stat__value">{{ overallStats.sat2nd4th }}</div>
<div class="cal-stat__label">2nd &amp; 4th Sat</div>
</div>
</div>
<div class="cal-stat holidays">
<fa-icon icon="star" class="cal-stat__icon"></fa-icon>
<div class="cal-stat__info">
<div class="cal-stat__value">{{ overallStats.holidays }}</div>
<div class="cal-stat__label">Holidays</div>
</div>
</div>
<div class="cal-stat total">
<fa-icon icon="calendar" class="cal-stat__icon"></fa-icon>
<div class="cal-stat__info">
<div class="cal-stat__value">{{ overallStats.totalDays }}</div>
<div class="cal-stat__label">Total Days</div>
</div>
</div>
</div>
<!-- Legend -->
<div class="cal-legend">
<div class="cal-legend__items">
<div class="cal-legend__item"><span class="cal-legend__dot working"></span> Working Day</div>
<div class="cal-legend__item"><span class="cal-legend__dot sunday"></span> Sunday</div>
<div class="cal-legend__item"><span class="cal-legend__dot sat2nd4th"></span> 2nd / 4th Saturday</div>
<div class="cal-legend__item"><span class="cal-legend__dot holiday"></span> Holiday</div>
<div class="cal-legend__item"><span class="cal-legend__dot today"></span> Today</div>
</div>
<div class="cal-legend__actions">
<button class="cal-legend__print-btn" (click)="printHolidayList()">
<fa-icon icon="print"></fa-icon> Print Holiday List
</button>
<button class="cal-legend__add-btn" (click)="openAddHolidayDialog()">
<fa-icon icon="plus"></fa-icon> Add Holiday
</button>
</div>
</div>
<!-- Monthly Grids -->
<div class="cal-months">
@for (month of months; track month.month) {
<div class="cal-month-card">
<div class="cal-month-card__header">
<span class="cal-month-card__name">{{ month.name }}</span>
<span class="cal-month-card__counts">
<span class="count-working">{{ month.workingDays }}W</span>
<span class="count-off">{{ month.nonWorkingDays }}Off</span>
</span>
</div>
<div class="cal-grid">
<!-- Week day headers -->
@for (wd of weekDays; track wd) {
<div class="cal-grid__wday" [class.cal-grid__wday--sun]="wd === 'Sun'">{{ wd }}</div>
}
<!-- Day cells -->
@for (day of month.days; track $index) {
<div
class="cal-grid__day"
[class.cal-grid__day--other]="!day.isCurrentMonth"
[class.cal-grid__day--today]="day.isToday"
[class.cal-grid__day--sunday]="day.isSunday && day.isCurrentMonth"
[class.cal-grid__day--sat2nd4th]="(day.is2ndSaturday || day.is4thSaturday) && day.isCurrentMonth"
[class.cal-grid__day--holiday]="day.isHoliday && day.isCurrentMonth"
[class.cal-grid__day--working]="day.isWorking && day.isCurrentMonth"
[matTooltip]="day.holidayName || (day.is2ndSaturday ? '2nd Saturday Off' : day.is4thSaturday ? '4th Saturday Off' : day.isSunday && day.isCurrentMonth ? 'Sunday' : '')"
>
{{ day.isCurrentMonth ? day.date : '' }}
</div>
}
</div>
<!-- Month summary bar -->
<div class="cal-month-card__summary">
@if (month.holidays > 0) {
<span class="summary-tag holiday">{{ month.holidays }} Holiday{{ month.holidays > 1 ? 's' : '' }}</span>
}
<span class="summary-tag sun">{{ month.sundays }} Sun</span>
@if (month.secondFourthSat > 0) {
<span class="summary-tag sat">{{ month.secondFourthSat }} Sat Off</span>
}
</div>
</div>
}
</div>
</div>