vue-componentes/src/componentes/EliEntrada/registryEliEntradas.ts

32 lines
1.3 KiB
TypeScript

import type { Component } from "vue"
import EliEntradaConfirmacao from "./EliEntradaConfirmacao.vue"
import EliEntradaCoordenadas from "./EliEntradaCoordenadas.vue"
import EliEntradaDataHora from "./EliEntradaDataHora/index.vue"
import EliEntradaNumero from "./EliEntradaNumero.vue"
import EliEntradaParagrafo from "./EliEntradaParagrafo.vue"
import EliEntradaSelecao from "./EliEntradaSelecao.vue"
import EliEntradaSelecaoMultipla from "./EliEntradaSelecaoMultipla.vue"
import EliEntradaTexto from "./EliEntradaTexto.vue"
import type { TipoEntrada } from "./tiposEntradas"
/**
* Mapa (dispatch table) que associa cada `TipoEntrada` ao seu componente Vue correspondente.
* Usado pelo sistema de filtro avançado para renderizar dinamicamente o campo correto
* a partir da configuração declarada em `tipoEliTabelaConsulta.filtroAvancado[].entrada`.
*
* Adicionar um novo tipo de entrada requer:
* 1. Criar o componente Vue
* 2. Adicionar a chave em `TipoEntrada` (tiposEntradas.ts)
* 3. Registrar aqui no mapa
*/
export const registryTabelaCelulas: Record<TipoEntrada, Component> = {
texto: EliEntradaTexto,
coordenadas: EliEntradaCoordenadas,
numero: EliEntradaNumero,
dataHora: EliEntradaDataHora,
paragrafo: EliEntradaParagrafo,
selecao: EliEntradaSelecao,
selecaoMultipla: EliEntradaSelecaoMultipla,
confirmacao: EliEntradaConfirmacao,
}