testes/Modulos Angular/projects/idt_app/docs/components/INTERFACES.md

2.5 KiB

🔧 Side Card Interfaces

Localização das Interfaces

As interfaces do Side Card estão definidas em:

projects/idt_app/src/app/shared/interfaces/base-domain.interface.ts

📋 Interfaces Principais

SideCardConfig

interface SideCardConfig {
  enabled: boolean;
  title: string;
  position: 'left' | 'right';
  width: string;
  componentType: 'summary' | 'detail' | 'custom';
  displayFields: SideCardField[];
  imageConfig?: SideCardImageConfig;
  statusConfig?: SideCardStatusConfig;
}

SideCardField

interface SideCardField {
  key: string;
  label: string;
  type: 'text' | 'currency' | 'status' | 'badge' | 'image';
  format?: 'date' | 'currency' | 'number';
  prefix?: string;
  suffix?: string;
}

SideCardImageConfig

interface SideCardImageConfig {
  defaultImage: string;
  fallbackImage: string;
  altText: string;
  width: string;
  height: string;
}

SideCardStatusConfig

interface SideCardStatusConfig {
  [key: string]: {
    color: string;
    backgroundColor: string;
    label: string;
  };
}

🔗 Integração com Tab System

O side card é integrado ao sistema de tabs através da extensão da interface TabFormConfig:

interface TabFormConfig {
  // ... propriedades existentes
  sideCard?: SideCardConfig;
}

📍 Uso nas Implementações

Drivers Domain

// projects/idt_app/src/app/domain/drivers/drivers.component.ts
sideCard: {
  enabled: true,
  title: 'Resumo do Motorista',
  position: 'right',
  width: '350px',
  componentType: 'summary',
  displayFields: [
    { key: 'vencimento_carteira', label: 'Vencimento CNH', type: 'text', format: 'date' },
    { key: 'nome', label: 'Nome', type: 'text' },
    // ... outros campos
  ]
}

🎯 Tipos Suportados

Field Types

  • text: Texto simples
  • currency: Valores monetários (formatação automática)
  • status: Status com cores e badges
  • badge: Badges coloridos
  • image: Imagens inline

Format Types

  • date: Formatação de datas (DD/MM/YYYY)
  • currency: Formatação monetária (R$ 1.234,56)
  • number: Formatação numérica

🔄 Extensibilidade

Para adicionar novos tipos ou formatos:

  1. Estenda as interfaces em base-domain.interface.ts
  2. Implemente a lógica em formatFieldValue() no generic-tab-form
  3. Adicione estilos CSS correspondentes
  4. Atualize esta documentação

Referência Técnica | Side Card Component v1.2.0