npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

vue3-bc-datatable

v0.1.0

Published

This is a complete datatable component for vuejs.

Downloads

6

Readme

Vue 3 DataTable

This is a complete datatable component for vuejs.

Examples : https://stackblitz.com/edit/vue3-bc-datatable-examples

Use

Installation

npm install vue3-bc-datatable

Initialisation

Import component and derivatives as types :

import {
   Datatable, // component
   DatatableColumn, // type column
   DatatableRow,  // type row
   DatatableSort, // type sorted values
} from 'vue3-bc-datatable';

Import the css too :

import 'vue3-bc-datatable/dist/style.css';

API

Props

| prop | type | default | description | |-------|------|---------|-------------| | Identification | identifier | string | "" | to identify while debuging | | title | sting | "" | A title above the table | | Data | columns | Partial<DatatableColumn>[] | [] | The columns of the table, configuration of features and design | | rows | Partial<DatatableRow>[] | [] | All the rows of the table (without filtering, sorting, pagination, ...) | | propId | string | "id" | the property of a row to use as id for the row, must be valid | | User experience | loading | boolean | false | display the loader section for user experience | | loadingMessage | string | "Loading in progress... | The message display if no data but loading | | noResultsMessage | string | "No results" | The message display if no data because of an interaction (filters) | | noDataMessage | string | "No data" | The message display if no data | | Manipulation | sorts | DatatableSort | undefined | The way to sort the rows to display | | multiSort | boolean | false | Enable the multi column sort | | filters | Function | DatatableFilter | undefined | The way to filter the rows to display | | expand | DatatableExpansion | undefined | The way to filter the rows to display | | select | DatatableSelection | undefined | To check (checkbox) the rows in the selection | | pagination | Not Implemented Yet !! | Design | hideHeader | boolean | false | To remove the thead from the table | | displayFooter | boolean | false | To dispaly the tfoot of the table | | displayFilters | boolean | false | To display the row with inputs in header or footer for filtering | | stick | DatatableSticky | undefined | to set sticky the header (thead) or footer (tfoot) | | density | 'default' | 'comfortable' | 'compact' | number | null | 'default' | for the cell height and padding | | dark | boolean | false | To set in a dark theme (see css variable to change colors) | | dividers | DatatableDividers | false | To display border between rows (for cols see options in columns) | | tableStyle | StyleProps | {} | vue props style to apply on table | | tableClass | ClassProps | string[] | vue props class to apply on table | | nested | boolean | false | Change a bit the design, used for the nested table | | | | | |

Details DatatableColumn

Details DatatableRow

Events

| event | data | description | |-------|------|-------------| | displaying | DatatableRow[] | The rows displayed, after sort, filters, ... | | update:sorts | DatatableSort | The new way of sorting rows (after interaction with sort on columns) | | update:filters | DatatableFilter | The new way of filtering rows (after interaction with filter input on columns) | | update:select | DatatableSelection | The new selection of rows (after checking a selection checkbox) | | update:expand | DatatableExpansion | The new expansions (after collpasing or expanding an expansion) | | | | |

Slots

| slot name | data | description | |-----------|------|-------------| | Wrapper | title | getThis | To customise the Title zone on top of the table wrapper | | top | getThis | To customise the top zone (below title) of the table wrapper, useful to use a custom filters or any other features in the component | | default | getThis | To replace the table component in the wrapper | | pagination | getThis + ___ | To define your own pagination | | bottom | getThis | To replace the table component in the wrapper | | Table | header | getThis | To customize thead content | | progress | loading + dark + density | To replace the default progress-bar when loading | | body | getThis | To customize tbody content | | no-data | filters + loading + columns + displaying + message | To set a custom content in the tr for message when no rows displayed | | footer | getThis | To customize tfoot content | | Header/Footer (datatable-headers) | header-tr | | To set the content of the header tr | | header-<columnId> | | To set the content of a specific cell (column) of the header tr (use th/td) | | header-tr-filters | | To set the content of the filters tr | | header-<columnId>-filter | | To set the content of a cell (column) of the header tr | | footer-tr | | To set the content of the footer tr | | footer-<columnId> | | To set the content of a specific cell (column) of the footer tr (use th/td) | | footer-tr-filters | | To set the content of the filters tr | | footer-<columnId>-filter | | To set the content of a cell (column) of the footer tr | | filters | | To use a custom filters cell (use th/td) for every filters of the table | | Content | row-<rowId> | | Content of a specfif row | | rows | | Content of all rows | | col-<columnId>-row-<rowId> | | Content of a cell (specific column) for a specific row (use th/td)| | cols-<columnId> | | Content of a cell (specific column) for all rows (use th/td) | | cell-<columnId>-row-<rowId> | | Content of a cell (specific column) for a specific row | | cells-<columnId> | | Content of a cell (specific column) for all rows | | Expansion | row-<rowId>-expansion-<expansion> | | Content of a specific expansion of a specific row | | rows-expansion-<expansion> | | Content of a specific expansion of all rows | | rows-expansions | | content of all expansions | | | | |

getThis is a computed with all the props, computed, functions useful and the dom ref to the table.

CSS

| var | default | description | |-----|---------|-------------| | --bcdatatable-title-font-size | 1.8rem | Font size of title | | --bcdatatable-background-color-light | white | The main background-color in light mode | | --bcdatatable-background-color-light-active | #e1e1e1 | The active for interaction element in light mode | | --bcdatatable-background-color-light-hover | #cccccc | The hover for interaction element in light mode | | --bcdatatable-background-color-dark | #1e1e1e | The main background-color in dark mode | | --bcdatatable-background-color-dark-active | #313131 | The active for interaction element in dark mode | | --bcdatatable-background-color-dark-hover | #444444 | The hover for interaction element in dark mode | | --bcdatatable-text-color-light | black | Font color in light mode | | --bcdatatable-text-color-dark | white | Font color in dark mode | | --bcdatatable-text-font-size | 0.9rem | Font size of text content | | --bcdatatable-button-color-light | lightgray | Button color in light mode | | --bcdatatable-button-color-dark | gray | Button color in dark mode | | --bcdatatable-button-hover-color-light | gray | Button hover color in light mode | | --bcdatatable-button-hover-color-dark | lightgray | Button hover color in dark mode | | --bcdatatable-border-options | thin solid | The border style or rows/columns | | --bcdatatable-border-color-light | rgba(0, 0, 0, 0.12) | The border color in light mode | | --bcdatatable-border-color-dark | hsla(0, 0%, 100%, 0.12) | The border color in dark mode | | --bcdatatable-expansion-shadow-light | rgb(50 50 50 / 50%) | The shadow color of expansions in light mode | | --bcdatatable-expansion-shadow-dark | rgb(200 200 200 / 50%) | The shadow color of expansions in dark mode | | --bcdatatable-expansion-shadow-top | inset 0 4px 10px -8px | The shadow style for top of expansions | | --bcdatatable-expansion-shadow-bottom | inset 0 -4px 10px -8px | The shadow style for bottom of expansions |

Futur evolutions

  • [ ] Pagination add a pagination feature
  • [ ] Nested sort sort in nested table
  • [ ] Nested filter filter in nested table
  • [ ] Nested Slots custom slots for expansions
  • [ ] Group rows by values for a column