Chargement...
Exemple interactif avec bascules de fonctionnalités et table produits orientée production.
Afficher la barre d'outils
Affiche la recherche et les actions (Ajouter, Exporter, Options).
Activer la pagination
Active la navigation de pages et le sélecteur de taille.
Afficher les actions en icônes
Affiche les actions de la barre d'outils en mode icône avec infobulles.
Afficher le titre et la description
Affiche le bloc titre et description de la barre d'outils.
Mode de densité
Choisissez l'espacement des en-têtes et des cellules du tableau.
Activer la sélection de lignes
Active les cases à cocher de sélection et les actions de masse.
Afficher la colonne sélection (code)
Pilote la colonne de sélection via la config (`columns.visible`), pas via le menu d'options.
Afficher la colonne actions (code)
Pilote la colonne d'actions via la config (`columns.visible`), pas via le menu d'options.
Activer l'édition au clic ligne
Ouvre le drawer d'édition au clic sur une zone non interactive de la ligne. L'activer désactive l'inline edit dans cette démo.
Activer les filtres de colonnes
Active la recherche et les filtres dans la barre d'outils et les menus.
Activer les calculs de pied de tableau
Affiche la ligne de calculs et le toggle associé dans le menu options.
Activer le tri
Active le tri depuis les en-têtes et le menu options.
Activer le regroupement
Active les contrôles de regroupement de lignes.
Activer le drag and drop des colonnes
Active le drag and drop dans les en-têtes et menus.
Activer l'export dans la barre d'outils
Affiche le bouton d'export CSV dans la barre d'outils.
Activer l'export de masse
Affiche l'action d'export CSV dans le menu d'actions groupées.
Autoriser la création
Affiche et active l'action Ajouter un élément.
Autoriser la modification (ligne)
Affiche et active l'action Modifier dans le menu contextuel de la ligne.
Autoriser la duplication de ligne
Affiche et active l'action de duplication de ligne.
Autoriser la suppression de ligne
Affiche et active l'action de suppression de ligne.
Autoriser l'édition groupée
Affiche et active l'action d'édition groupée.
Autoriser la suppression groupée
Affiche et active l'action de suppression groupée.
Autoriser l'édition directe des cellules
Autorise la modification directe des cellules dans les lignes du tableau. L'activer désactive le mode édition au clic ligne dans cette démo.
// 1. Configuration via provider
const getTableConfig = (tableType: string) => {
if (tableType === "products") {
return {
table: {
allowCreate: true,
allowEdit: true,
allowDuplicate: true,
allowDelete: true,
allowBulkEdit: true,
allowBulkDelete: true,
allowInlineEdit: true,
enableRowSelection: true,
enableColumnFilters: true,
enableCalculations: false,
enableColumnDnd: true,
enableSorting: true,
enableGrouping: true,
enablePagination: true,
enableRowClickEdit: false,
export: true,
bulkExport: true,
showToolbar: true,
showToolbarHeader: true,
density: "medium",
actionsAsIcons: false
},
columns: {
definitions: [
{ id: "name", type: "text", header: "Product Name" },
{ id: "brand", type: "text", header: "Brand" },
{
id: "category",
type: "select",
displayVariant: "tag",
header: "Category",
tagColorMap: {
Electronics: "bg-blue-500/80 text-white dark:bg-blue-600/90",
Furniture: "bg-amber-500/80 text-white dark:bg-amber-600/90"
}
},
{
id: "price",
type: "number",
header: "Price",
numberFormat: {
thousandsSeparator: " ",
decimals: 0,
suffix: " €",
},
},
{
id: "status",
type: "select",
displayVariant: "tag",
header: "Status",
tagColorMap: {
available: "bg-green-500/80 text-white dark:bg-green-600/90",
low_stock: "bg-orange-500/80 text-white dark:bg-orange-600/90",
out_of_stock: "bg-red-500/80 text-white dark:bg-red-600/90"
}
},
{ id: "createdAt", type: "date", header: "Created" },
{ id: "isActive", type: "boolean", header: "Active" },
{ id: "actions", type: "actions", header: "Actions" }
],
visible: [
"select",
"name",
"brand",
"category",
"price",
"status",
"createdAt",
"isActive",
"actions"
]
}
}
}
}
// 2. Production Table with Real API
<DataTable
tableType="products"
enableAdvancedFilters={true}
columnTypeMapping={{
name: 'text',
brand: 'text',
category: 'select', // select with tag display variant
price: 'number',
status: 'select', // select with tag display variant
website: 'text',
createdAt: 'date',
isActive: 'select' // boolean -> select for true/false
}}
/>
// Local data API with pagination, filtering, and sorting.
// Edits persist in localStorage and can be reset from the settings panel.Gérez votre catalogue produits avec filtres, tri et actions groupées.