-
-
-
-
-
-
-
-
-
- Total (c/ desconto)
- {{ money(kpis.totalComDesconto) }}
-
-
-
- Total (valor cheio)
- {{ money(kpis.totalValorCheio) }}
-
-
-
- Desconto total
- {{ money(kpis.totalDesconto) }}
-
-
-
- Linhas / Clientes
- {{ kpis.linhas }} / {{ kpis.clientes }}
- {{ kpis.meses }} meses mapeados
-
-
-
-
-
-
-
-
Valor por mês
- Soma mensal do parcelamento
-
-
-
-
-
-
-
-
-
Top 10 linhas
- Linhas com maior soma total
-
-
-
-
-
-
-
-
-
diff --git a/src/app/pages/parcelamento/parcelamento.scss b/src/app/pages/parcelamento/parcelamento.scss
deleted file mode 100644
index 86834cd..0000000
--- a/src/app/pages/parcelamento/parcelamento.scss
+++ /dev/null
@@ -1,151 +0,0 @@
-:host {
- --brand: #E33DCF;
- --blue: #030FAA;
- --text: #111214;
- --muted: rgba(17, 18, 20, 0.65);
-
- --radius-xl: 22px;
- --shadow-card: 0 22px 46px rgba(17, 18, 20, 0.10);
- --glass-bg: rgba(255, 255, 255, 0.82);
- --glass-border: 1px solid rgba(227, 61, 207, 0.16);
-}
-
-.parcelamento-page {
- position: relative;
- padding: clamp(14px, 3vw, 26px);
- min-height: calc(100vh - 70px);
- color: var(--text);
-}
-
-.page-blob {
- position: absolute;
- border-radius: 999px;
- filter: blur(0.2px);
- opacity: 0.20;
- pointer-events: none;
-}
-
-.blob-1 { width: 240px; height: 240px; top: 16px; left: -50px; background: var(--brand); }
-.blob-2 { width: 280px; height: 280px; top: 140px; right: -80px; background: var(--blue); opacity: .14; }
-.blob-3 { width: 220px; height: 220px; bottom: 30px; left: 20%; background: var(--brand); opacity: .10; }
-
-.glass {
- background: var(--glass-bg);
- border: var(--glass-border);
- border-radius: var(--radius-xl);
- box-shadow: var(--shadow-card);
- backdrop-filter: blur(10px);
-}
-
-.page-header {
- display: grid;
- gap: 14px;
- margin-bottom: 14px;
-
- .title {
- h2 { margin: 0; font-weight: 800; letter-spacing: -0.3px; }
- p { margin: 2px 0 0; color: var(--muted); }
- }
-
- .filters {
- padding: 14px;
- .form-label { font-weight: 700; color: rgba(17,18,20,.78); }
- }
-}
-
-.kpis {
- display: grid;
- gap: 12px;
- grid-template-columns: repeat(4, minmax(0, 1fr));
- margin-bottom: 14px;
-
- @media (max-width: 992px) {
- grid-template-columns: repeat(2, minmax(0, 1fr));
- }
-
- @media (max-width: 520px) {
- grid-template-columns: 1fr;
- }
-
- .kpi-card {
- padding: 14px 16px;
-
- .kpi-label {
- display: block;
- font-size: 0.9rem;
- font-weight: 700;
- color: rgba(17,18,20,.70);
- }
-
- .kpi-value {
- display: block;
- font-size: 1.55rem;
- font-weight: 900;
- margin-top: 6px;
-
- small {
- font-size: 1rem;
- font-weight: 800;
- color: rgba(17,18,20,.70);
- }
- }
-
- .kpi-sub {
- display: block;
- margin-top: 6px;
- font-size: .86rem;
- color: var(--muted);
- }
- }
-}
-
-.charts {
- display: grid;
- gap: 14px;
- grid-template-columns: 1.2fr 1fr;
-
- @media (max-width: 992px) {
- grid-template-columns: 1fr;
- }
-
- .chart-card {
- padding: 14px 16px;
- overflow: hidden;
-
- .chart-head {
- display: flex;
- align-items: baseline;
- justify-content: space-between;
- gap: 12px;
- margin-bottom: 10px;
-
- h5 {
- margin: 0;
- font-weight: 900;
- letter-spacing: -0.2px;
- }
-
- .muted {
- font-size: .9rem;
- color: var(--muted);
- white-space: nowrap;
- }
- }
-
- .chart-area {
- height: 360px;
-
- @media (max-width: 520px) {
- height: 320px;
- }
- }
- }
-}
-
-.loading {
- margin-top: 14px;
- display: flex;
- gap: 10px;
- align-items: center;
- color: var(--muted);
-}
diff --git a/src/app/pages/parcelamento/parcelamento.ts b/src/app/pages/parcelamento/parcelamento.ts
deleted file mode 100644
index 88c44c7..0000000
--- a/src/app/pages/parcelamento/parcelamento.ts
+++ /dev/null
@@ -1,195 +0,0 @@
-import { CommonModule, isPlatformBrowser } from '@angular/common';
-import { Component, ElementRef, Inject, PLATFORM_ID, ViewChild, AfterViewInit, OnInit } from '@angular/core';
-import { FormsModule } from '@angular/forms';
-import { HttpClientModule } from '@angular/common/http';
-import { firstValueFrom } from 'rxjs';
-
-import Chart from 'chart.js/auto';
-import {
- ParcelamentoService,
- ParcelamentoKpis,
- ParcelamentoMonthlyPoint,
- ParcelamentoTopLine
-} from '../../services/parcelamento.service';
-
-@Component({
- selector: 'app-parcelamento',
- standalone: true,
- imports: [CommonModule, FormsModule, HttpClientModule],
- templateUrl: './parcelamento.html',
- styleUrl: './parcelamento.scss'
-})
-export class Parcelamento implements OnInit, AfterViewInit {
- @ViewChild('monthlyCanvas') monthlyCanvas!: ElementRef