27 lines
1.3 KiB
TypeScript
27 lines
1.3 KiB
TypeScript
import type { Component } from "vue"
|
|
import EliTabelaCelulaComponente from "./EliTabelaCelulaComponente.vue"
|
|
import EliTabelaCelulaData from "./EliTabelaCelulaData.vue"
|
|
import EliTabelaCelulaNumero from "./EliTabelaCelulaNumero.vue"
|
|
import EliTabelaCelulaTags from "./EliTabelaCelulaTags.vue"
|
|
import EliTabelaCelulaTextoSimples from "./EliTabelaCelulaTextoSimples.vue"
|
|
import EliTabelaCelulaTextoTruncado from "./EliTabelaCelulaTextoTruncado.vue"
|
|
import type { tipoTabelaCelula } from "./tiposTabelaCelulas"
|
|
|
|
/**
|
|
* Mapa (dispatch table) que associa cada `tipoTabelaCelula` ao seu componente Vue de renderização.
|
|
* Usado por `EliTabelaCelula.vue` para resolver dinamicamente qual componente renderizar
|
|
* a partir do tipo retornado por `tipoEliColuna.celula(linha)`.
|
|
*
|
|
* Adicionar um novo tipo de célula requer:
|
|
* 1. Criar o componente `EliTabelaCelula<Tipo>.vue`
|
|
* 2. Adicionar a chave em `tipoTabelaCelula` (tiposTabelaCelulas.ts)
|
|
* 3. Registrar aqui no mapa
|
|
*/
|
|
export const registryTabelaCelulas = {
|
|
textoSimples: EliTabelaCelulaTextoSimples,
|
|
textoTruncado: EliTabelaCelulaTextoTruncado,
|
|
numero: EliTabelaCelulaNumero,
|
|
tags: EliTabelaCelulaTags,
|
|
data: EliTabelaCelulaData,
|
|
componente: EliTabelaCelulaComponente,
|
|
} as const satisfies Record<tipoTabelaCelula, Component>
|