feat: client extra fields + KYC home-visit & video-KYC dialogs
- Add Education Level, Degree/Qualification, Religion, Social Category dropdowns (individual clients) with dependent filtering on the create/edit/preview/view flows - Add Agriculture Income & Non-Agriculture Income fields under Financial & Classification - Gate Save with a Verify Client alert dialog when sanctions screening is not yet performed - Trim Office Name and CKYC Number columns from clients list; widen table to fill container - Remove DIP/Screening log IDs from preview and personal-data tabs - Rename "Branch Visit" to "Home Visit" across KYC management - Wire Take Action: open dedicated dialogs for Schedule Home Visit (officer + datetime) and Send Video KYC link (channels + officer + 48h expiry + session preview) - Migrate Signatory and Guardian image dialogs to inject() for prefer-inject lint rule Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
d72e969dc3
commit
52e3395345
+208
-50
@@ -95,8 +95,8 @@ form {
|
||||
background: #f0f9ff;
|
||||
border: 1px solid #bae6fd;
|
||||
border-radius: 6px;
|
||||
margin-top: -8px;
|
||||
margin-bottom: 4px;
|
||||
margin-top: 12px;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.full-name-preview {
|
||||
@@ -408,7 +408,10 @@ form {
|
||||
.guardian-cancel-link {
|
||||
color: #94a3b8 !important;
|
||||
margin-top: 8px;
|
||||
&:hover { color: #ef4444 !important; }
|
||||
|
||||
&:hover {
|
||||
color: #ef4444 !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* ═══ Guardian Row Table ═══ */
|
||||
@@ -437,7 +440,10 @@ form {
|
||||
align-items: center;
|
||||
padding: 10px 12px;
|
||||
transition: background 0.1s;
|
||||
&:hover { background: #f8fafc; }
|
||||
|
||||
&:hover {
|
||||
background: #f8fafc;
|
||||
}
|
||||
}
|
||||
|
||||
.guardian-row__col {
|
||||
@@ -445,12 +451,33 @@ form {
|
||||
font-size: 13px;
|
||||
color: #1e293b;
|
||||
|
||||
&--photo { flex: 0 0 50px; }
|
||||
&--name { flex: 1; min-width: 0; }
|
||||
&--rel { flex: 0 0 120px; }
|
||||
&--cif { flex: 0 0 130px; }
|
||||
&--status { flex: 0 0 80px; }
|
||||
&--actions { flex: 0 0 110px; display: flex; gap: 2px; justify-content: flex-end; }
|
||||
&--photo {
|
||||
flex: 0 0 50px;
|
||||
}
|
||||
|
||||
&--name {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
&--rel {
|
||||
flex: 0 0 120px;
|
||||
}
|
||||
|
||||
&--cif {
|
||||
flex: 0 0 130px;
|
||||
}
|
||||
|
||||
&--status {
|
||||
flex: 0 0 80px;
|
||||
}
|
||||
|
||||
&--actions {
|
||||
flex: 0 0 110px;
|
||||
display: flex;
|
||||
gap: 2px;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
}
|
||||
|
||||
.guardian-row__avatar {
|
||||
@@ -543,14 +570,22 @@ form {
|
||||
color: #64748b;
|
||||
}
|
||||
|
||||
&:hover mat-icon { color: #1074b9; }
|
||||
&--delete:hover mat-icon { color: #ef4444; }
|
||||
&:hover mat-icon {
|
||||
color: #1074b9;
|
||||
}
|
||||
|
||||
&--delete:hover mat-icon {
|
||||
color: #ef4444;
|
||||
}
|
||||
}
|
||||
|
||||
.guardian-row__zoomable {
|
||||
cursor: zoom-in;
|
||||
transition: transform 0.15s;
|
||||
&:hover { transform: scale(1.05); }
|
||||
|
||||
&:hover {
|
||||
transform: scale(1.05);
|
||||
}
|
||||
}
|
||||
|
||||
/* Expandable detail panel */
|
||||
@@ -558,12 +593,19 @@ form {
|
||||
border-top: 1px solid #e2e8f0;
|
||||
background: #f8fafc;
|
||||
padding: 16px 20px;
|
||||
animation: guardianSlideDown 0.2s ease-out;
|
||||
animation: guardian-slide-down 0.2s ease-out;
|
||||
}
|
||||
|
||||
@keyframes guardianSlideDown {
|
||||
from { opacity: 0; max-height: 0; }
|
||||
to { opacity: 1; max-height: 500px; }
|
||||
@keyframes guardian-slide-down {
|
||||
from {
|
||||
opacity: 0;
|
||||
max-height: 0;
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 1;
|
||||
max-height: 500px;
|
||||
}
|
||||
}
|
||||
|
||||
.guardian-expand__grid {
|
||||
@@ -666,7 +708,9 @@ form {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.guardian-row__header { display: none; }
|
||||
.guardian-row__header {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.guardian-row__data {
|
||||
flex-wrap: wrap;
|
||||
@@ -674,10 +718,23 @@ form {
|
||||
}
|
||||
|
||||
.guardian-row__col {
|
||||
&--photo { flex: 0 0 40px; }
|
||||
&--name { flex: 1 1 200px; }
|
||||
&--rel, &--cif, &--status { flex: 0 0 auto; }
|
||||
&--actions { flex: 0 0 auto; }
|
||||
&--photo {
|
||||
flex: 0 0 40px;
|
||||
}
|
||||
|
||||
&--name {
|
||||
flex: 1 1 200px;
|
||||
}
|
||||
|
||||
&--rel,
|
||||
&--cif,
|
||||
&--status {
|
||||
flex: 0 0 auto;
|
||||
}
|
||||
|
||||
&--actions {
|
||||
flex: 0 0 auto;
|
||||
}
|
||||
}
|
||||
|
||||
.guardian-expand__grid {
|
||||
@@ -777,8 +834,13 @@ form {
|
||||
transition: background 0.1s;
|
||||
border-bottom: 1px solid #f1f5f9;
|
||||
|
||||
&:last-child { border-bottom: none; }
|
||||
&:hover { background: #f0f7ff; }
|
||||
&:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background: #f0f7ff;
|
||||
}
|
||||
}
|
||||
|
||||
.guardian-result-item__avatar {
|
||||
@@ -882,7 +944,10 @@ form {
|
||||
|
||||
.guardian-card__remove {
|
||||
color: #94a3b8 !important;
|
||||
&:hover { color: #ef4444 !important; }
|
||||
|
||||
&:hover {
|
||||
color: #ef4444 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.guardian-card__body {
|
||||
@@ -899,8 +964,13 @@ form {
|
||||
border-bottom: 1px solid #f1f5f9;
|
||||
border-right: 1px solid #f1f5f9;
|
||||
|
||||
&:nth-child(2n) { border-right: none; }
|
||||
&:nth-last-child(-n+2) { border-bottom: none; }
|
||||
&:nth-child(2n) {
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
&:nth-last-child(-n + 2) {
|
||||
border-bottom: none;
|
||||
}
|
||||
}
|
||||
|
||||
.guardian-card__label {
|
||||
@@ -1069,10 +1139,22 @@ form {
|
||||
color: #0f172a;
|
||||
}
|
||||
|
||||
.row-micro td { background: #ecfdf5; }
|
||||
.row-small td { background: #e0f2fe; }
|
||||
.row-medium td { background: #fffbeb; }
|
||||
.row-large td { background: #f8fafc; color: #94a3b8; }
|
||||
.row-micro td {
|
||||
background: #ecfdf5;
|
||||
}
|
||||
|
||||
.row-small td {
|
||||
background: #e0f2fe;
|
||||
}
|
||||
|
||||
.row-medium td {
|
||||
background: #fffbeb;
|
||||
}
|
||||
|
||||
.row-large td {
|
||||
background: #f8fafc;
|
||||
color: #94a3b8;
|
||||
}
|
||||
}
|
||||
|
||||
.msme-dot {
|
||||
@@ -1082,10 +1164,21 @@ form {
|
||||
border-radius: 50%;
|
||||
margin-right: 6px;
|
||||
|
||||
&.green { background: #10b981; }
|
||||
&.blue { background: #0ea5e9; }
|
||||
&.amber { background: #f59e0b; }
|
||||
&.gray { background: #cbd5e1; }
|
||||
&.green {
|
||||
background: #10b981;
|
||||
}
|
||||
|
||||
&.blue {
|
||||
background: #0ea5e9;
|
||||
}
|
||||
|
||||
&.amber {
|
||||
background: #f59e0b;
|
||||
}
|
||||
|
||||
&.gray {
|
||||
background: #cbd5e1;
|
||||
}
|
||||
}
|
||||
|
||||
.msme-class-table-footer {
|
||||
@@ -1499,19 +1592,68 @@ form {
|
||||
border-bottom: 1px solid #f1f5f9;
|
||||
transition: background 0.15s;
|
||||
|
||||
&:last-child { border-bottom: none; }
|
||||
&:hover { background: #f8fafc; }
|
||||
&:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background: #f8fafc;
|
||||
}
|
||||
}
|
||||
|
||||
.sig-table__col {
|
||||
&--sno { flex: 0 0 32px; text-align: center; color: #94a3b8; font-size: 12px; }
|
||||
&--photo { flex: 0 0 40px; }
|
||||
&--name { flex: 1; font-size: 13px; display: flex; align-items: center; gap: 6px; }
|
||||
&--id { flex: 0 0 100px; font-size: 12px; color: #64748b; }
|
||||
&--pan { flex: 0 0 120px; font-size: 12px; color: #1e293b; display: flex; align-items: center; gap: 3px; }
|
||||
&--din { flex: 0 0 140px; font-size: 12px; color: #1e293b; display: flex; align-items: center; gap: 3px; }
|
||||
&--status { flex: 0 0 80px; }
|
||||
&--actions { flex: 0 0 80px; display: flex; gap: 2px; }
|
||||
&--sno {
|
||||
flex: 0 0 32px;
|
||||
text-align: center;
|
||||
color: #94a3b8;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
&--photo {
|
||||
flex: 0 0 40px;
|
||||
}
|
||||
|
||||
&--name {
|
||||
flex: 1;
|
||||
font-size: 13px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
&--id {
|
||||
flex: 0 0 100px;
|
||||
font-size: 12px;
|
||||
color: #64748b;
|
||||
}
|
||||
|
||||
&--pan {
|
||||
flex: 0 0 120px;
|
||||
font-size: 12px;
|
||||
color: #1e293b;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 3px;
|
||||
}
|
||||
|
||||
&--din {
|
||||
flex: 0 0 140px;
|
||||
font-size: 12px;
|
||||
color: #1e293b;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 3px;
|
||||
}
|
||||
|
||||
&--status {
|
||||
flex: 0 0 80px;
|
||||
}
|
||||
|
||||
&--actions {
|
||||
flex: 0 0 80px;
|
||||
display: flex;
|
||||
gap: 2px;
|
||||
}
|
||||
}
|
||||
|
||||
.sig-table__avatar {
|
||||
@@ -1526,11 +1668,21 @@ form {
|
||||
font-size: 12px;
|
||||
overflow: hidden;
|
||||
|
||||
&.has-photo { padding: 0; }
|
||||
.avatar-photo { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
|
||||
&.has-photo {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.avatar-photo {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
border-radius: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
.sig-inline-spinner { display: inline-block; }
|
||||
.sig-inline-spinner {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.verify-tick-sm {
|
||||
font-size: 14px !important;
|
||||
@@ -1569,7 +1721,10 @@ form {
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
color: #94a3b8;
|
||||
&.active { color: #22c55e; }
|
||||
|
||||
&.active {
|
||||
color: #22c55e;
|
||||
}
|
||||
}
|
||||
|
||||
.sig-action-icon {
|
||||
@@ -1577,7 +1732,10 @@ form {
|
||||
width: 18px !important;
|
||||
height: 18px !important;
|
||||
color: #64748b;
|
||||
&.remove { color: #ef4444; }
|
||||
|
||||
&.remove {
|
||||
color: #ef4444;
|
||||
}
|
||||
}
|
||||
|
||||
.sig-add-wrapper {
|
||||
|
||||
Reference in New Issue
Block a user