Detalhes do pacote

sandhya-lit-table-widget

sandhya-cp72MIT1.0.0

A lightweight, feature-rich table widget built with Lit and TypeScript. Supports sorting, filtering, pagination, and custom rendering.

table, widget, web-component, lit

readme (leia-me)

Table Widget

A modern, customizable table component built with Lit for web applications.

Features

  • Sorting - Click column headers to sort data
  • Filtering - Filter data by any column
  • Pagination - Handle large datasets efficiently
  • Customizable - Striped rows, borders, compact mode
  • TypeScript - Full TypeScript support
  • Web Components - Works with any framework
  • Responsive - Mobile-friendly design

Installation

npm install sandhya-lit-table-widget

Usage

ES Modules

import 'sandhya-lit-table-widget';

// Define your data
const employees = [
  { id: 1, name: 'John Doe', email: 'john@example.com', department: 'Engineering' },
  { id: 2, name: 'Jane Smith', email: 'jane@example.com', department: 'Marketing' }
];

// Define columns
const columns = [
  { key: 'id', title: 'ID', sortable: true, width: '80px' },
  { key: 'name', title: 'Name', sortable: true, filterable: true },
  { key: 'email', title: 'Email', filterable: true },
  { key: 'department', title: 'Department', filterable: true, sortable: true }
];

// Use in HTML
const table = document.querySelector('table-widget');
table.columns = columns;
table.data = employees;
table.sortable = true;
table.filterable = true;
table.pagination = true;

UMD (Browser)

<script src="https://unpkg.com/sandhya-lit-table-widget/dist/index.umd.js"></script>
<script>
  const table = document.querySelector('table-widget');
  table.columns = columns;
  table.data = employees;
</script>

API Reference

Properties

Property Type Default Description
columns TableColumn[] [] Column definitions
data any[] [] Table data
sortable boolean true Enable sorting
filterable boolean true Enable filtering
pagination boolean false Enable pagination
pageSize number 10 Items per page
striped boolean false Striped rows
bordered boolean true Show borders
compact boolean false Compact mode
loading boolean false Loading state

Events

Event Detail Description
sort { column, direction } Fired when sorting changes
filter FilterConfig[] Fired when filters change
pageChange number Fired when page changes
rowClick { row, index } Fired when row is clicked
cellClick { value, row, column, index } Fired when cell is clicked

Column Configuration

interface TableColumn<T = any> {
  key: keyof T;
  title: string;
  sortable?: boolean;
  filterable?: boolean;
  width?: string;
  align?: 'left' | 'center' | 'right';
  render?: (value: T[keyof T], row: T, index: number) => string | HTMLElement;
}

Examples

See the demo for a complete example with interactive controls.

License

MIT