@forter/table
v5.1.4
Published
table from Forter Components
Readme
fc-sort-control
Provides a box with a search input and a scrollable div with checkboxes derived from the given objects
Properties
| Property | Attribute | Type | Default | Description |
|--------------|--------------|----------|---------|--------------------------------|
| objects | objects | any[] | | The objects to display |
| searchText | searchText | string | "" | The text inside the search box |
Events
| Event |
|----------|
| change |
| sort |
fc-sort-control
Provides a binary "Ascending/Descending" control for sortable tables.
Properties
| Property | Attribute | Type | Default | Description |
|------------------------|--------------------------|-----------------------------|---------|--------------------------------------------------|
| asc | | HTMLInputElement | | The ascending control |
| checked | | HTMLInputElement | | The control for the selected direction |
| desc | | HTMLInputElement | | The descending control |
| direction | direction | "asc" \| "desc" \| "none" | | The current sort direction |
| level | level | number | | The sort level that will be displayed in a label |
| preventSecondarySort | prevent-secondary-sort | boolean | false | Whether or not multiple column sort is enabled. example: true |
Events
| Event |
|--------|
| sort |
fc-table
A table accepting rows and columns. Rows represent actual data, columns describe the data types in the table.
Usage
<script>
import '@forter/table';
</script>
<fc-table
multi
row-actions
columns-draggable
columns-removable
columns=[{"insertable":true,"label":"First Name","fromKey":"firstName","pinned":true,"removable":false,"sortable":true,"sort":"asc","sortLevel":1,"type":"TEXT","filterable":true,"defaultVisibility":false,"defaultIndex":2,"filter":{"operator":"Matches","searchValues":["lala","abcdefghijklmnopqrstuvwxyz"]}},{"insertable":true,"editable":true,"required":true,"label":"Last Name","fromKey":"lastName","type":"TEXT","sort":"desc","sortLevel":2,"sortable":true,"defaultVisibility":true,"filterable":true,"filter":{"values":[{"label":"Yosef","checked":false,"color":"blue"},{"label":"Anati","checked":false,"color":"green"},{"label":"Weingart","checked":false,"color":"purple"},{"label":"Feder","checked":false,"color":"blue"}]}},{"label":"Payment Method","fromKey":"paymentMethod","type":"CUSTOM","renderer":"moneyRenderer","sortable":true,"defaultIndex":4,"visible":true,"filterable":true,"filter":{"values":[{"label":"PayPal","checked":true},{"label":"Amex","checked":false},{"label":"MasterCard","checked":false},{"label":"Visa","checked":true},{"label":"Bank Transfer","checked":true},{"label":"ApplePay","checked":true},{"label":"Google Pay","checked":false},{"label":"Android Pay","checked":false},{"label":"Amazon Pay","checked":false}],"valuesRenderer":"baba"}},{"label":"Text Column","fromKey":"textData","type":"TEXT","defaultIndex":3,"sortable":true,"visible":false,"filterable":true,"defaultVisibility":true},{"insertable":true,"multipleEditable":true,"editable":true,"required":true,"maskType":"number","label":"Order Amount","fromKey":"orderAmount","type":"TEXT","custom":"moneyRenderer","visible":true,"filterable":true,"defaultVisibility":true,"filter":{"type":"NUMBER","operator":"Greater Than","searchValues":["1"]}},{"maskType":"date","mask":"DD MMM YYYY HH:mm","required":true,"insertable":true,"editable":true,"label":"Date Column","fromKey":"dateData","type":"DATE","defaultVisibility":false},{"label":"Icon Column","fromKey":"iconData","type":"ICON","visible":true,"defaultIndex":5,"sortable":true,"filterable":true,"defaultVisibility":true}]
rows=[{"firstName":false,"selected":true,"lastName":"Yosef","orderAmount":"12","rowActions":["claims","feedback"],"dateData":1557834321099,"paymentMethod":"Amex","iconData":{"icon":"copy"}},{"firstName":true,"selected":false,"lastName":"Anati","orderAmount":"132.5","dateData":1557834321063,"iconData":{"icon":"edit"},"paymentMethod":"Paypal","rowActions":["claims","feedback"]},{"firstName":"Ori","lastName":"Weingart","orderAmount":"17","dateData":1557834321063,"iconData":{"icon":"edit"},"paymentMethod":"Visa","rowActions":["claims","feedback"]},{"firstName":"Gilad","lastName":"Feder","orderAmount":"987.6","dateData":1557834321099,"iconData":{"icon":"copy"},"paymentMethod":"MasterCard"},{"firstName":false,"lastName":"Yosef","orderAmount":"12","dateData":1557834321099,"paymentMethod":"Amex","iconData":{"icon":"copy"}},{"firstName":true,"lastName":"Anati","orderAmount":"132.5","dateData":1557834321063,"iconData":{"icon":"edit"},"paymentMethod":"Paypal","rowActions":["claims","feedback"]},{"firstName":"Ori","lastName":"Weingart","orderAmount":"17","dateData":1557834321063,"iconData":{"icon":"edit"},"paymentMethod":"Visa","rowActions":["claims","feedback"]},{"firstName":"Gilad","lastName":"Feder","orderAmount":"987.6","dateData":1557834321099,"iconData":{"icon":"copy"},"paymentMethod":"MasterCard"},{"firstName":false,"lastName":"Yosef","orderAmount":"12","dateData":1557834321099,"paymentMethod":"Amex","iconData":{"icon":"copy"}},{"firstName":true,"lastName":"Anati","orderAmount":"132.5","dateData":1557834321063,"iconData":{"icon":"edit"},"paymentMethod":"Paypal","rowActions":["claims","feedback"]}]>
<div slot="footer"><fc-button>Export</fc-button></div>
</fc-table>Examples
<!-- empty -->
<fc-table></fc-table>
<!-- simpleTable -->
<fc-table
columns=[{"label":"Text_Column","fromKey":"textData","type":"TEXT"},{"label":"Date_Column","fromKey":"dateData","type":"DATE"},{"label":"Icon_Column","fromKey":"iconData","type":"ICON"}]
rows=[{"textData":"Some_Long_Text_Data","dateData":1557834321063,"iconData":{"icon":"edit"}},{"textData":"more_data","dateData":1557834321099,"iconData":{"icon":"copy"}}]>
</fc-table>
<!-- noRows -->
<fc-table
columns=[{"label":"Text_Column","fromKey":"textData","type":"TEXT"},{"label":"Date_Column","fromKey":"dateData","type":"DATE"},{"label":"Icon_Column","fromKey":"iconData","type":"ICON"}]>
</fc-table>
<!-- row color -->
<fc-table
multi
row-actions
columns-draggable
columns-removable
columns=[{"label":"First Name","fromKey":"firstName","pinned":true,"removable":false,"sortable":true,"sort":"asc","sortLevel":1,"type":"TEXT","filterable":true,"defaultVisibility":false,"defaultIndex":2,"filter":{"operator":"Matches","searchValues":["lala","abcdefghijklmnopqrstuvwxyz"]}},{"label":"Last Name","fromKey":"lastName","type":"TEXT","sort":"desc","sortLevel":2,"sortable":true,"defaultVisibility":true,"filterable":true,"filter":{"values":[{"label":"Yosef","checked":false,"color":"blue"},{"label":"Anati","checked":false,"color":"green"},{"label":"Weingart","checked":false,"color":"purple"},{"label":"Feder","checked":false,"color":"blue"}]}},{"label":"Payment Method","fromKey":"paymentMethod","type":"CUSTOM","renderer":"moneyRenderer","sortable":true,"defaultIndex":4,"visible":true,"filterable":true,"filter":{"values":[{"label":"PayPal","checked":true},{"label":"Amex","checked":false},{"label":"MasterCard","checked":false},{"label":"Visa","checked":true},{"label":"Bank Transfer","checked":true},{"label":"ApplePay","checked":true},{"label":"Google Pay","checked":false},{"label":"Android Pay","checked":false},{"label":"Amazon Pay","checked":false}],"valuesRenderer":"baba"}},{"label":"Text Column","fromKey":"textData","type":"TEXT","defaultIndex":3,"sortable":true,"visible":false,"filterable":true,"defaultVisibility":true},{"label":"Order Amount","fromKey":"orderAmount","type":"TEXT","custom":"moneyRenderer","visible":true,"filterable":true,"defaultVisibility":true,"filter":{"type":"NUMBER","operator":"Greater Than","searchValues":["1"]}},{"label":"Date Column","fromKey":"dateData","type":"DATE","defaultVisibility":false},{"label":"Icon Column","fromKey":"iconData","type":"ICON","visible":true,"defaultIndex":5,"sortable":true,"filterable":true,"defaultVisibility":true}]
rows=[{"firstName":false,"color":"#cde5f3","selected":true,"lastName":"Yosef","orderAmount":"12","rowActions":["claims","feedback"],"dateData":1557834321099,"paymentMethod":"Amex","iconData":{"icon":"copy"}},{"firstName":true,"selected":false,"lastName":"Anati","orderAmount":"132.5","dateData":1557834321063,"iconData":{"icon":"edit"},"paymentMethod":"Paypal","rowActions":["claims","feedback"]},{"firstName":"Ori","lastName":"Weingart","orderAmount":"17","dateData":1557834321063,"iconData":{"icon":"edit"},"paymentMethod":"Visa","rowActions":["claims","feedback"]},{"firstName":"Gilad","lastName":"Feder","orderAmount":"987.6","dateData":1557834321099,"iconData":{"icon":"copy"},"paymentMethod":"MasterCard"},{"firstName":false,"lastName":"Yosef","orderAmount":"12","dateData":1557834321099,"paymentMethod":"Amex","iconData":{"icon":"copy"}},{"firstName":true,"lastName":"Anati","orderAmount":"132.5","dateData":1557834321063,"iconData":{"icon":"edit"},"paymentMethod":"Paypal","rowActions":["claims","feedback"]},{"firstName":"Ori","lastName":"Weingart","orderAmount":"17","dateData":1557834321063,"iconData":{"icon":"edit"},"paymentMethod":"Visa","rowActions":["claims","feedback"]},{"firstName":"Gilad","lastName":"Feder","orderAmount":"987.6","dateData":1557834321099,"iconData":{"icon":"copy"},"paymentMethod":"MasterCard"},{"firstName":false,"lastName":"Yosef","orderAmount":"12","dateData":1557834321099,"paymentMethod":"Amex","iconData":{"icon":"copy"}},{"firstName":true,"lastName":"Anati","orderAmount":"132.5","dateData":1557834321063,"iconData":{"icon":"edit"},"paymentMethod":"Paypal","rowActions":["claims","feedback"]}]>
<div slot="footer"><fc-button>Export</fc-button></div>
</fc-table>
<!-- loading -->
<fc-table loading
columns=[{"label":"Text_Column","fromKey":"textData","type":"TEXT"},{"label":"Date_Column","fromKey":"dateData","type":"DATE"},{"label":"Icon_Column","fromKey":"iconData","type":"ICON"}]
rows=[{"textData":"Some_Long_Text_Data","dateData":1557834321063,"iconData":{"icon":"edit"}},{"textData":"more_data","dateData":1557834321099,"iconData":{"icon":"copy"}}]>
</fc-table>
<!-- rowSingleSelect -->
<fc-table select
columns=[{"label":"Text_Column","fromKey":"textData","type":"TEXT"},{"label":"Date_Column","fromKey":"dateData","type":"DATE"},{"label":"Icon_Column","fromKey":"iconData","type":"ICON"}]
rows=[{"textData":"Some_Long_Text_Data","dateData":1557834321063,"iconData":{"icon":"edit"}},{"textData":"more_data","dateData":1557834321099,"iconData":{"icon":"copy"}}]>
</fc-table>
* <!-- rowMultiSelect -->
<fc-table
select
multi
columns=[{"label":"Text_Column","fromKey":"textData","type":"TEXT"},{"label":"Date_Column","fromKey":"dateData","type":"DATE"},{"label":"Icon_Column","fromKey":"iconData","type":"ICON"}]
rows=[{"textData":"Some_Long_Text_Data","dateData":1557834321063,"iconData":{"icon":"edit"}},{"textData":"more_data","dateData":1557834321099,"iconData":{"icon":"copy"}}]>
</fc-table>Properties
| Property | Attribute | Type | Default | Description |
|---------------------------|----------------------------|--------------------------------------------------|---------|--------------------------------------------------|
| checked | | any[] | | |
| columns | columns | any[] | | Column descriptors. example: [{ "label": "Text Column", "fromKey": "textData", "type": "TEXT" }, { "label": "Date Column", "fromKey": "dateData", "type": "DATE" },{ "label": "Icon Column", "fromKey": "iconData", "type": "ICON" }] |
| columnsDraggable | columns-draggable | boolean | | Whether or not dragging columns is enabled |
| columnsRemovable | columns-removable | "" \| TemplateResult | | |
| compactCells | compact-cells | boolean | false | Whether or not to make the cells of the table compact (with white space wrapping). example: true |
| displayNoData | | ({ loading, rows }: { loading: any; rows: any; }) => TemplateResult | | |
| editable | editable | boolean | false | Whether or not to show create button for editing. example: true |
| editing | editing | boolean | false | Whether or not grid support editing of a selected row. example: true |
| escapeNoLocalize | escapeNoLocalize | boolean | false | Whether to translate cells |
| fetching | fetching | boolean | | Whether the table is fetching new data |
| filterable | | "" \| TemplateResult | | |
| filters | | never[] | | |
| hideColumnOptions | hide-column-options | boolean | false | Whether or not to display the column options button. example: true |
| hideColumnSaveButtons | hide-column-save-buttons | boolean | false | Whether or not to display the column save buttons. example: true |
| hideFooter | hide-footer | boolean | false | Whether or not to show the footer. example: true |
| loading | loading | "" \| TemplateResult | | |
| multi | multi | boolean | | Whether selecting multiple rows is enabled. |
| noRows | | string | | |
| preventSecondarySort | prevent-secondary-sort | boolean | false | Whether or not multiple column sort is enabled. example: true |
| removable | removable | boolean | false | Whether or not to show delete button. example: true |
| renderNoDataPlaceHolder | | ({ loading, rows, totalColumnsNum }: { loading: any; rows: any; totalColumnsNum: any; }) => TemplateResult | | |
| renderers | renderers | any | | Custom renderer class. Used in custom columns |
| result | | TemplateResult \| null | | |
| rowActions | row-actions | boolean | | Whether or not the row actions button is enabled |
| rowLimit | row-limit | number | 10 | Whether or not to show create button for editing. example: 10 |
| rows | rows | any[] | | Row Descriptors. example: [{"textData": "Some Long Text Data","dateData": 1557834321063,"iconData": { "icon": "3dots" }}]; |
| select | select | boolean | | Whether selecting rows is enabled. |
| translate | translate | boolean | | Whether to translate cells |
| wrap | wrap | boolean | false | If table should fit in it's area or should have a scrollbar |
| zebra | zebra | boolean | | Whether or not the row table has a striped pattern on the rows |
Events
| Event | Description |
|-------------------|--------------------------------------------------|
| column-change | { actionType: String } |
| reset-column | |
| row-action | { rowIndex: Number, actionName: String } |
| row-selected | { selected: Row } |
| sort-table | { column: Number, direction: 'asc'\|'desc' } |
| table-action | { columnIndex: Number, rowIndex: Number, index: Number } |
| table-row-click | |
CSS Custom Properties
| Property | Description |
|----------------------------------|----------------------|
| --fc-table-background | default: white |
| --fc-table-cell-padding | default: 15px 25px |
| --fc-table-header-cell-padding | default: 10px 25px |
| --fc-table-min-col-width | default: 100px |
| --fc-table-padding | default: 0 |
| --fc-table-zebra-color | default: #f8f9fa |
