feat(loan-origination): tabbed CIC report dialog with real PDF parsing via pdfjs-dist
Tests / testRigor (push) Canceled after 0s
build-run / Run Lint, Build and Deploy (push) Canceled after 0s
Publish Image in Docker Hub / build (push) Canceled after 0s
Playwright E2E Tests / Run Playwright Tests (push) Canceled after 0s

Extracts score, accounts, DPD payment history and enquiries directly from an
uploaded bureau PDF (position-aware parsing, so blank DPD months are handled
correctly) instead of always showing a simulated report, falling back to the
simulated analysis when a file can't be read.
This commit is contained in:
2026-08-13 18:05:22 +05:30
parent 997e8920e4
commit 8d67a22f18
11 changed files with 2526 additions and 434 deletions
@@ -773,3 +773,117 @@
min-width: 260px;
flex: 1;
}
// CIC Credit Bureau Hero Card in Stage detail
.loi-cic-hero-card {
display: flex;
align-items: center;
gap: 20px;
background: #fff;
border: 1px solid #e2e8f0;
border-radius: 12px;
padding: 16px 20px;
margin-bottom: 16px;
box-shadow: 0 2px 8px rgb(15 23 42 / 4%);
flex-wrap: wrap;
}
.loi-cic-score-badge {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
min-width: 90px;
height: 80px;
border-radius: 12px;
padding: 8px 12px;
color: #fff;
background: linear-gradient(135deg, #10b981, #059669);
.loi-cic-score-num {
font-size: 1.8rem;
font-weight: 800;
line-height: 1;
}
.loi-cic-score-band {
font-size: 0.72rem;
font-weight: 700;
text-transform: uppercase;
margin-top: 4px;
letter-spacing: 0.04em;
}
&--excellent {
background: linear-gradient(135deg, #10b981, #047857);
}
&--good {
background: linear-gradient(135deg, #0ea5e9, #0284c7);
}
&--fair {
background: linear-gradient(135deg, #f59e0b, #d97706);
}
&--poor {
background: linear-gradient(135deg, #f43f5e, #e11d48);
}
}
.loi-cic-details-grid {
display: flex;
gap: 24px;
flex: 1;
flex-wrap: wrap;
.loi-cic-detail-item {
display: flex;
flex-direction: column;
.loi-cic-label {
font-size: 0.76rem;
color: #64748b;
margin-bottom: 2px;
}
.loi-cic-val {
font-size: 0.88rem;
font-weight: 700;
color: #0f172a;
}
.loi-cic-file-name {
font-family: monospace;
font-size: 0.82rem;
color: #2563eb;
}
}
}
.loi-cic-action-box {
display: flex;
align-items: center;
.loi-cic-analysis-btn {
border-radius: 20px;
padding: 8px 18px;
font-weight: 700;
box-shadow: 0 4px 12px rgb(37 99 235 / 20%);
}
}
.loi-cic-action-row {
display: flex;
align-items: center;
gap: 12px;
margin-top: 14px;
.loi-cic-upload-btn {
display: inline-flex;
align-items: center;
gap: 6px;
cursor: pointer;
font-weight: 600;
}
}