etools-table
TypeScript icon, indicating that this package has built-in type declarations

0.1.7 • Public • Published

<etools-table>

LitElement based data table UI

Usage

        <etools-table .columns="${this.listColumns}"
                      .items="${this.listData}"
                      .paginator="${this.paginator}"
                      @paginator-change="${this.paginatorChange}"
                      @sort-change="${this.sortChange}">
        </etools-table>

        @property({type: Array})
        listColumns: EtoolsTableColumn[] = [
          {
            label: 'Reference No.',
            name: 'reference_number',
            link_tmpl: `${ROOT_PATH}items/:id/details`,
            type: EtoolsTableColumnType.Link
          },
          {
            label: 'Created Date',
            name: 'created_date',
            type: EtoolsTableColumnType.Date,
            sort: EtoolsTableColumnSort.Desc
          },
          {
            label: 'Partner Org',
            name: 'partner_name',
            type: EtoolsTableColumnType.Text,
            sort: EtoolsTableColumnSort.Asc
          },
          {
            label: 'Status',
            name: 'status',
            type: EtoolsTableColumnType.Text,
            capitalize: true
          },
          {
            label: 'Assessor',
            name: 'assessor',
            type: EtoolsTableColumnType.Text
          },
          {
            label: 'Priority',
            name: 'high_priority',
            type: EtoolsTableColumnType.Custom,
            customMethod: (item: any) => {return item.high_priority ? 'High' : '';}
          }
        ];

        paginatorChange(e: CustomEvent) {
          const newPaginator = {...e.detail};
          this.paginator = newPaginator;
          this.updateUrlListQueryParams();
        }

        sortChange(e: CustomEvent) {
          this.sort = getSortFields(e.detail);
          this.updateUrlListQueryParams();
        }

EtoolsTable

Custom property Description
caption table caption
dateFormat date format to be used for columns of type EtoolsTableColumnType.Date, by default is 'D MMM YYYY'
actionsLabel if showEdit or showDelete is true at the end of the table it is added and extra column for actions, this property will set the column caption
showEdit display edit icon in the last column, on click will fire event edit-item
showDelete display delete icon in the last column, on click will fire event delete-item
showCopy display copy icon in the last column, on click will fire event copy-item
columns array of EtoolsTableColumn, see below the properties
items array of objects to be used for populating the table
paginator of type EtoolsPaginator, not required, will fire event paginator-change

EtoolsTableColumn

Custom property Description
label column header label
name property name from item object
type column type: EtoolsTableColumnType (Text, Date, Link, Number, Checkbox, Custom)
sort colum sort: EtoolsTableColumnSort (Asc, Desc)
link_tmpl used only for EtoolsTableColumnType.Link to specify url template (route with a single param), ex: ${ROOT_PATH}assessments/:id/details, id will be replaced with item object id property
isExternalLink used by columns of Link type to specify if url is external,
capitalize capitalize first letter
placeholder placeholder to be used in case of missing data
customMethod bind custom method which will return cell output for more flexibility

EtoolsPaginator

Custom property Description
page
page_size
total_pages
count
visible_range

Install

TODO: create npm package

$ npm i --save @unicef-polymer/etools-table

Readme

Keywords

none

Package Sidebar

Install

npm i etools-table

Weekly Downloads

8

Version

0.1.7

License

Apache-2.0

Unpacked Size

47.8 kB

Total Files

19

Last publish

Collaborators

  • dci_npm