Giter VIP home page Giter VIP logo

svelte-data-table's Introduction

Svelte Data Table based on Flowbite Svelte, Flowbite Icons, and Tailwind

This data table is designed for viewing and editing data in an array of objects. It's built using the Flowbite Svelte library's Table components and works in conjunction with it, with support for custom cell editors, moving focus between cells with tab and enter, column sorting (simple and custom), conditional CSS, and more.

Install

To add to an existing Svelte app, first install Tailwind if you haven't already:

> npx svelte-add@latest tailwindcss

Then install the Flowbite components and icons along with the data table component.

> npm i flowbite-svelte flowbite flowbite-svelte-icons @emamid/svelte-data-table

Basic example

<script lang="ts">
  import DataTable from '@emamid/svelte-data-table';
  import type { ColumnConfig } from '@emamid/svelte-data-table';

  const columns: ColumnConfig[] = [
    { canSort: true, key: 'firstName', title: 'First Name' },
    { canSort: true, key: 'lastName', title: 'Last Name' },
  ];

  const items: any[] = [
    { firstName: 'Bilbo', lastName: 'Baggins'},
    { firstName: 'Frodo', lastName: 'Baggins'},
    { firstName: 'Samwise', lastName: 'Gamgee'},
    { firstName: 'Meriadoc', lastName: 'Brandybuck'},
    { firstName: 'Peregrin', lastName: 'Took'},
  ];
</script>

<main>	
  <DataTable
    {columns}
    {items}
  />
</main>

Examples for most of the component's features are under /examples . You can find the documentation here.

Example 1 - Basic data table

Example 1

Example 2 - Table with cell focus components

Example 2

Example 3 - Table with cell focus Select components, cell renderers, and custom sort

Example 3

Example 4 - Table with actions and cell view components

Example 4

Example 5 - Table with custom cell component

Example 5

Example 6 - Table with cell and row class getter functions

Example 6

Kitchen Sink example - All of the above

svelte-data-table's People

Contributors

emamid avatar

Stargazers

 avatar John avatar bbna avatar  avatar Simon Rüegg avatar Denis B. avatar Jay avatar

Watchers

 avatar

svelte-data-table's Issues

Button cell

Looks like a select cell but has a button (default ... icon) that generates a click event. Can be used for opening modals.

Sorting on booleans

Make sorting on booleans work correctly. Currently it throws an exception inside the sort.

Row editing

Add support for an overlay for editing a row.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.