UNPKG

quasar

Version:

Build high-performance VueJS user interfaces (SPA, PWA, SSR, Mobile and Desktop) in record time

1,614 lines (1,538 loc) 71.2 kB
{ "mixins": [ "composables/private.use-fullscreen/use-fullscreen" ], "meta": { "docsUrl": "https://v2.quasar.dev/vue-components/table" }, "props": { "rows": { "type": "Array", "desc": "Rows of data to display", "required": true, "examples": [ "# :rows=\"myData\"" ], "category": "general" }, "row-key": { "type": [ "String", "Function" ], "desc": "Property of each row that defines the unique key of each row (the result must be a primitive, not Object, Array, etc); The value of property must be string or a function taking a row and returning the desired (nested) key in the row; If supplying a function then for best performance, reference it from your scope and do not define it inline", "default": "'id'", "params": { "row": { "type": "Object", "desc": "The current row being processed", "examples": [ "{ name: 'Lorem Ipsum', price: 19 }" ] } }, "returns": { "type": "Any", "desc": "Current row's key", "examples": [ "'34f39dda-6206-4071-a9df-4393aabe49ac'", "34" ] }, "examples": [ "'name'", "row => row.name" ], "category": "general" }, "virtual-scroll": { "type": "Boolean", "desc": "Display data using QVirtualScroll (for non-grid mode only)", "category": "virtual-scroll" }, "virtual-scroll-target": { "extends": "scroll-target", "passthrough": "child" }, "virtual-scroll-slice-size": { "type": [ "Number", "String", "null" ], "desc": "Minimum number of rows to render in the virtual list", "default": "30", "passthrough": "child", "category": "virtual-scroll" }, "virtual-scroll-slice-ratio-before": { "type": [ "Number", "String" ], "desc": "Ratio of number of rows in visible zone to render before it", "default": "1", "passthrough": "child", "category": "virtual-scroll" }, "virtual-scroll-slice-ratio-after": { "type": [ "Number", "String" ], "desc": "Ratio of number of rows in visible zone to render after it", "default": "1", "passthrough": "child", "category": "virtual-scroll" }, "virtual-scroll-item-size": { "type": [ "Number", "String" ], "desc": "Default size in pixels of a row; This value is used for rendering the initial table; Try to use a value close to the minimum size of a row; Default value: 48 (24 if dense)", "default": "# 48/24", "passthrough": "child", "category": "virtual-scroll" }, "virtual-scroll-sticky-size-start": { "type": [ "Number", "String" ], "desc": "Size in pixels of the sticky header (if using one); A correct value will improve scroll precision; Will be also used for non-virtual-scroll tables for fixing top alignment when using scrollTo method", "default": "0", "passthrough": "child", "category": "virtual-scroll|behavior" }, "virtual-scroll-sticky-size-end": { "type": [ "Number", "String" ], "desc": "Size in pixels of the sticky footer part (if using one); A correct value will improve scroll precision", "default": "0", "passthrough": "child", "category": "virtual-scroll" }, "table-colspan": { "type": [ "Number", "String" ], "desc": "The number of columns in the table (you need this if you use table-layout: fixed)", "category": "virtual-scroll|content", "passthrough": "child" }, "color": { "extends": "color", "default": "'grey-8'" }, "icon-first-page": { "extends": "icon", "desc": "Icon name following Quasar convention for stepping to first page; Make sure you have the icon library installed unless you are using 'img:' prefix" }, "icon-prev-page": { "extends": "icon", "desc": "Icon name following Quasar convention for stepping to previous page; Make sure you have the icon library installed unless you are using 'img:' prefix" }, "icon-next-page": { "extends": "icon", "desc": "Icon name following Quasar convention for stepping to next page; Make sure you have the icon library installed unless you are using 'img:' prefix" }, "icon-last-page": { "extends": "icon", "desc": "Icon name following Quasar convention for stepping to last page; Make sure you have the icon library installed unless you are using 'img:' prefix" }, "grid": { "type": "Boolean", "desc": "Display data as a grid instead of the default table", "category": "behavior" }, "grid-header": { "type": "Boolean", "desc": "Display header for grid-mode also", "category": "behavior|content" }, "dense": { "extends": "dense", "desc": "Dense mode; Connect with $q.screen for responsive behavior" }, "columns": { "type": "Array", "desc": "The column definitions (Array of Objects)", "examples": [ "# :columns=\"tableColumns\"" ], "category": "column", "definition": { "name": { "type": "String", "required": true, "desc": "Unique id, identifies column, (used by pagination.sortBy, 'body-cell-[name]' slot, ...)", "examples": [ "'desc'" ] }, "label": { "type": "String", "required": true, "desc": "Label for header", "examples": [ "'Dessert (100g serving)'" ] }, "field": { "type": [ "String", "Function" ], "required": true, "desc": "Row Object property to determine value for this column or function which maps to the required property", "params": { "row": { "type": "Object", "required": true, "desc": "The current row being processed", "examples": [ "{ name: 'Lorem Ipsum', prices: { active: 19, old: 25, list: 29 } }" ] } }, "returns": { "type": "Any", "desc": "Value for this column", "examples": [ "'19'", "19" ] }, "examples": [ "'name'", "row => row.prices.active" ] }, "required": { "type": "Boolean", "desc": "If we use visible-columns, this col will always be visible" }, "align": { "type": "String", "desc": "Horizontal alignment of cells in this column", "values": [ "'left'", "'right'", "'center'" ], "default": "'right'" }, "sortable": { "type": "Boolean", "desc": "Tell QTable you want this column sortable", "default": "false" }, "sort": { "type": "Function", "desc": "Compare function if you have some custom data or want a specific way to compare two rows; rows with null/undefined values will get sorted without triggering this method (use 'rawSort' instead if you want to handle those values too)", "examples": ["(a, b, _rowA, _rowB) => parseInt(a, 10) - parseInt(b, 10)"], "params": { "a": { "type": "Any", "required": true, "desc": "Value of the first comparison term", "examples": [ "123", "'abc'" ] }, "b": { "type": "Any", "required": true, "desc": "Value of the second comparison term", "examples": [ "123", "'abc'" ] }, "rowA": { "type": "Object", "required": true, "desc": "Full Row object in which is contained the first term", "examples": [ "{ name: 'Potassium', value: 'K' }" ] }, "rowB": { "type": "Object", "required": true, "desc": "Full Row object in which is contained the second term", "examples": [ "{ name: 'Fluorine', value: 'F' }" ] } }, "returns": { "type": "Number", "desc": "Comparison result of term 'a' with term 'b'. Less than 0 when 'a' should come first; greater than 0 if 'b' should come first; equal to 0 if their position must not be changed with respect to each other", "examples": [ "-1", "0", "1" ] } }, "rawSort": { "type": "Function", "desc": "Compare function if you have some custom data or want a specific way to compare two rows; includes rows with null/undefined values (use 'sort' instead if you don't want that)", "examples": ["(a, b, _rowA, _rowB) => parseInt(a, 10) - parseInt(b, 10)"], "params": { "a": { "type": "Any", "required": true, "desc": "Value of the first comparison term", "examples": [ "123", "'abc'" ] }, "b": { "type": "Any", "required": true, "desc": "Value of the second comparison term", "examples": [ "123", "'abc'" ] }, "rowA": { "type": "Object", "required": true, "desc": "Full Row object in which is contained the first term", "examples": [ "{ name: 'Potassium', value: 'K' }" ] }, "rowB": { "type": "Object", "required": true, "desc": "Full Row object in which is contained the second term", "examples": [ "{ name: 'Fluorine', value: 'F' }" ] } }, "returns": { "type": "Number", "desc": "Comparison result of term 'a' with term 'b'. Less than 0 when 'a' should come first; greater than 0 if 'b' should come first; equal to 0 if their position must not be changed with respect to each other", "examples": [ "-1", "0", "1" ] }, "addedIn": "v2.13" }, "sortOrder": { "type": "String", "desc": "Set column sort order: 'ad' (ascending-descending) or 'da' (descending-ascending); Overrides the 'column-sort-order' prop", "values": [ "'ad'", "'da'" ], "default": "'ad'" }, "format": { "type": "Function", "desc": "Function you can apply to format your data", "examples": [ "(val, _row) => `${ val }%`", "val => val ? /* Unicode checkmark checked */ '\u2611' : /* Unicode checkmark unchecked */ '\u2610'" ], "params": { "val": { "type": "Any", "required": true, "desc": "Value of the cell", "examples": [ "123", "'abc'" ] }, "row": { "type": "Object", "required": true, "desc": "Full Row object in which the cell is contained", "examples": [ "{ name: 'Potassium', value: 'K' }" ] } }, "returns": { "type": "Any", "desc": "The resulting formatted value", "examples": [ "'20%'" ] } }, "style": { "type": [ "String", "Function" ], "desc": "Style to apply on normal cells of the column", "params": { "row": { "type": "Object", "required": true, "desc": "The current row being processed", "examples": [ "{ name: 'Frozen Yogurt', calories: 159 }" ] } }, "returns": { "type": "String", "__exemption": [ "desc" ] }, "examples": [ "'width: 500px'", "row => (row.calories % 2 === 0 ? 'width: 10px' : 'font-size: 2em; font-weight: bold')" ] }, "classes": { "type": [ "String", "Function" ], "desc": "Classes to add on normal cells of the column", "params": { "row": { "type": "Object", "required": true, "desc": "The current row being processed", "examples": [ "{ name: 'Frozen Yogurt', calories: 159 }" ] } }, "returns": { "type": "String", "__exemption": [ "desc" ] }, "examples": [ "'my-special-class bg-primary'", "row => (row.calories % 2 === 0 ? 'bg-green text-white' : 'bg-yellow')" ] }, "headerStyle": { "type": "String", "desc": "Style to apply on header cells of the column", "examples": [ "'width: 500px'" ] }, "headerClasses": { "type": "String", "desc": "Classes to add on header cells of the column", "examples": [ "'my-special-class'" ] } } }, "visible-columns": { "type": "Array", "desc": "Array of Strings defining column names ('name' property of each column from 'columns' prop definitions); Columns marked as 'required' are not affected by this property", "examples": [ "[ 'desc', 'carbs', 'protein' ]", "# :visible-columns=\"myCols\"" ], "category": "column" }, "loading": { "type": "Boolean", "desc": "Put Table into 'loading' state; Notify the user something is happening behind the scenes", "category": "behavior|content" }, "title": { "type": "String", "desc": "Table title", "examples": [ "'Device list'" ], "category": "content" }, "hide-header": { "type": "Boolean", "desc": "Hide table header layer", "category": "content" }, "hide-bottom": { "type": "Boolean", "desc": "Hide table bottom layer regardless of what it has to display", "category": "content" }, "hide-selected-banner": { "type": "Boolean", "desc": "Hide the selected rows banner (if any)", "category": "content" }, "hide-no-data": { "type": "Boolean", "desc": "Hide the default no data bottom layer", "category": "content" }, "hide-pagination": { "type": "Boolean", "desc": "Hide the pagination controls at the bottom", "category": "content" }, "dark": { "extends": "dark" }, "flat": { "extends": "flat" }, "bordered": { "extends": "bordered" }, "square": { "extends": "square" }, "separator": { "type": "String", "desc": "Use a separator/border between rows, columns or all cells", "default": "'horizontal'", "values": [ "'horizontal'", "'vertical'", "'cell'", "'none'" ], "category": "content" }, "wrap-cells": { "type": "Boolean", "desc": "Wrap text within table cells", "category": "content" }, "binary-state-sort": { "type": "Boolean", "desc": "Skip the third state (unsorted) when user toggles column sort direction", "category": "sorting" }, "column-sort-order": { "type": "String", "desc": "Set column sort order: 'ad' (ascending-descending) or 'da' (descending-ascending); It gets applied to all columns unless a column has its own sortOrder specified in the 'columns' definition prop", "values": [ "'ad'", "'da'" ], "default": "'ad'", "category": "sorting" }, "no-data-label": { "type": "String", "desc": "Override default text to display when no data is available", "examples": [ "'No devices available'" ], "category": "content" }, "no-results-label": { "type": "String", "desc": "Override default text to display when user filters the table and no matched results are found", "examples": [ "'No matched records'" ], "category": "content" }, "loading-label": { "type": "String", "desc": "Override default text to display when table is in loading state (see 'loading' prop)", "examples": [ "'Loading devices...'" ], "category": "content" }, "selected-rows-label": { "type": "Function", "desc": "Text to display when user selected at least one row; For best performance, reference it from your scope and do not define it inline", "params": { "numberOfRows": { "type": "Number", "desc": "Number of rows available" } }, "returns": { "type": "String", "desc": "Label to display", "examples": [ "'5 rows are selected'" ] }, "examples": [ "(numberOfRows) => `Selected: ${ numberOfRows } entries`" ], "category": "selection" }, "rows-per-page-label": { "type": "String", "desc": "Text to override default rows per page label at bottom of table", "examples": [ "'Records per page:'" ], "category": "pagination" }, "pagination-label": { "type": "Function", "desc": "Text to override default pagination label at bottom of table (unless 'pagination' scoped slot is used); For best performance, reference it from your scope and do not define it inline", "params": { "firstRowIndex": { "type": "Number", "desc": "Index of first displayed row" }, "endRowIndex": { "type": "Number", "desc": "Index of last displayed row" }, "totalRowsNumber": { "type": "Number", "desc": "Number of total rows available in data" } }, "returns": { "type": "String", "desc": "Label to display", "examples": [ "'1-10 of 132'" ] }, "examples": [ "(start, end, total) => `${ start }-${ end } of ${ total }`" ], "category": "pagination" }, "table-style": { "type": [ "String", "Array", "Object" ], "tsType": "VueStyleProp", "desc": "CSS style to apply to native HTML <table> element's wrapper (which is a DIV)", "examples": [ "'background-color: #ff0000'", "{ backgroundColor: '#ff0000' }" ], "category": "style" }, "table-class": { "type": [ "String", "Array", "Object" ], "tsType": "VueClassProp", "desc": "CSS classes to apply to native HTML <table> element's wrapper (which is a DIV)", "examples": [ "'my-special-class'", "{ 'my-special-class': true }" ], "category": "style" }, "table-header-style": { "type": [ "String", "Array", "Object" ], "tsType": "VueStyleProp", "desc": "CSS style to apply to header of native HTML <table> (which is a TR)", "examples": [ "'background-color: #ff0000'", "{ backgroundColor: '#ff0000' }" ], "category": "style" }, "table-header-class": { "type": [ "String", "Array", "Object" ], "tsType": "VueClassProp", "desc": "CSS classes to apply to header of native HTML <table> (which is a TR)", "examples": [ "'my-special-class'", "{ 'my-special-class': true }" ], "category": "style" }, "card-container-style": { "type": [ "String", "Array", "Object" ], "tsType": "VueStyleProp", "desc": "CSS style to apply to the cards container (when in grid mode)", "examples": [ "'background-color: #ff0000'", "{ backgroundColor: '#ff0000' }" ], "category": "style" }, "card-container-class": { "type": [ "String", "Array", "Object" ], "tsType": "VueClassProp", "desc": "CSS classes to apply to the cards container (when in grid mode)", "examples": [ "'my-special-class'", "'justify-center'", "{ 'my-special-class': true }" ], "category": "style" }, "card-style": { "type": [ "String", "Array", "Object" ], "tsType": "VueStyleProp", "desc": "CSS style to apply to the card (when in grid mode) or container card (when not in grid mode)", "examples": [ "'background-color: #ff0000'", "{ backgroundColor: '#ff0000' }" ], "category": "style" }, "card-class": { "type": [ "String", "Array", "Object" ], "tsType": "VueClassProp", "desc": "CSS classes to apply to the card (when in grid mode) or container card (when not in grid mode)", "examples": [ "'my-special-class'", "{ 'my-special-class': true }" ], "category": "style" }, "title-class": { "type": [ "String", "Array", "Object" ], "tsType": "VueClassProp", "desc": "CSS classes to apply to the title (if using 'title' prop)", "examples": [ "'my-special-class'", "'text-h1'", "{ 'text-h1': true }" ], "category": "style" }, "filter": { "type": [ "String", "Object" ], "desc": "String/Object to filter table with; When using an Object it requires 'filter-method' to also be specified since it will be a custom filtering", "examples": [ "'car'" ], "category": "filter" }, "filter-method": { "type": "Function", "desc": "The actual filtering mechanism; For best performance, reference it from your scope and do not define it inline", "params": { "rows": { "type": "Array", "desc": "Array of rows" }, "terms": { "type": [ "String", "Object" ], "desc": "Terms to filter with (is essentially the 'filter' prop value)" }, "cols": { "type": "Array", "desc": "Column definitions" }, "getCellValue": { "type": "Function", "desc": "Optional function to get a cell value", "params": { "col": { "type": "Object", "required": true, "desc": "Column name from column definitions" }, "row": { "type": "Object", "required": true, "desc": "The row object" } }, "returns": { "type": "Any", "desc": "Parsed/Processed cell value", "examples": [ "'Ice Cream Sandwich'" ] } } }, "returns": { "type": "Array", "desc": "Filtered rows" }, "examples": [ "# see source code" ], "category": "filter" }, "pagination": { "type": "Object", "desc": "Pagination object; You can also use the 'v-model:pagination' for synching; When not synching it simply initializes the pagination on first render", "definition": { "sortBy": { "type": [ "String", "null" ], "desc": "Column name (from column definition)", "examples": [ "'calories'" ] }, "descending": { "type": "Boolean", "desc": "Is sorting in descending order?" }, "page": { "type": "Number", "desc": "Page number (1-based)" }, "rowsPerPage": { "type": "Number", "desc": "How many rows per page? 0 means Infinite" }, "rowsNumber": { "type": "Number", "desc": "For server-side fetching only. How many total database rows are there to be added to the table. If set, causes the QTable to emit @request when data is required." } }, "syncable": true, "examples": [ "# :pagination=\"myInitialPagination\"", "# v-model:pagination=\"myPagination\"" ], "category": "pagination" }, "rows-per-page-options": { "type": "Array", "desc": "Options for user to pick (Numbers); Number 0 means 'Show all rows in one page'", "default": "[ 5, 7, 10, 15, 20, 25, 50, 0 ]", "examples": [ "[ 10, 20 ]" ], "category": "pagination" }, "selection": { "type": "String", "desc": "Selection type", "default": "'none'", "values": [ "'single'", "'multiple'", "'none'" ], "category": "selection" }, "selected": { "type": "Array", "desc": "Keeps the user selection array", "default": "[]", "syncable": true, "examples": [ "# v-model:selected=\"selection\"" ], "category": "selection" }, "expanded": { "type": "Array", "desc": "Keeps the array with expanded rows keys", "syncable": true, "examples": [ "# v-model:expanded=\"expanded\"" ], "category": "expansion" }, "sort-method": { "type": "Function", "desc": "The actual sort mechanism. Function (rows, sortBy, descending) => sorted rows; For best performance, reference it from your scope and do not define it inline", "params": { "rows": { "type": "Array", "desc": "Array with rows" }, "sortBy": { "type": "String", "desc": "Column name (from column definition)", "examples": [ "'calories'" ] }, "descending": { "type": "Boolean", "desc": "Is sorting in descending order?" } }, "returns": { "type": "Array", "desc": "Sorted rows" }, "examples": [ "# see source code" ], "category": "sorting" } }, "slots": { "loading": { "desc": "Override default effect when table is in loading state; Suggestion: QInnerLoading" }, "item": { "desc": "Slot to use for defining an item when in 'grid' mode; Suggestion: QCard", "scope": { "key": { "type": "Any", "desc": "Row/Item's key" }, "row": { "type": "Object", "desc": "Row/Item object" }, "rowIndex": { "type": "Number", "desc": "Row/Item's index (0 based) in the filtered and sorted table" }, "pageIndex": { "type": "Number", "desc": "Row/Item's index (0 based) in the current page of the filtered and sorted table" }, "cols": { "type": "Object", "desc": "Column definitions" }, "colsMap": { "type": "Object", "desc": "Column mapping (key is column name, value is column object)" }, "sort": { "type": "Function", "desc": "Trigger a table sort", "params": { "col": { "type": [ "String", "Object" ], "required": true, "desc": "Column name or column definition object", "examples": [ "'calories'" ] } }, "returns": null }, "selected": { "type": "Boolean", "desc": "(Only if using selection) Is row/item selected? Can directly be assigned new Boolean value which changes selection state", "reactive": true }, "expand": { "type": "Boolean", "desc": "Is row/item expanded? Can directly be assigned new Boolean value which changes expanded state", "reactive": true }, "color": { "extends": "color" }, "dark": { "extends": "dark" }, "dense": { "extends": "dense" } } }, "body": { "desc": "Slot to define how a body row looks like; Suggestion: QTr + Td", "scope": { "key": { "type": "Any", "desc": "Row's key" }, "row": { "type": "Object", "desc": "Row object" }, "rowIndex": { "type": "Number", "desc": "Row's index (0 based) in the filtered and sorted table" }, "pageIndex": { "type": "Number", "desc": "Row's index (0 based) in the current page of the filtered and sorted table" }, "cols": { "type": "Object", "desc": "Column definitions" }, "colsMap": { "type": "Object", "desc": "Column mapping (key is column name, value is column object)" }, "sort": { "type": "Function", "desc": "Trigger a table sort", "params": { "col": { "type": [ "String", "Object" ], "required": true, "desc": "Column name or column definition object", "examples": [ "'calories'" ] } }, "returns": null }, "selected": { "type": "Boolean", "desc": "(Only if using selection) Is row selected? Can directly be assigned new Boolean value which changes selection state", "reactive": true }, "expand": { "type": "Boolean", "desc": "Is row expanded? Can directly be assigned new Boolean value which changes expanded state", "reactive": true }, "color": { "extends": "color" }, "dark": { "extends": "dark" }, "dense": { "extends": "dense" }, "__trClass": { "type": "String", "desc": "Internal prop passed down to QTr (if used)" } } }, "body-cell": { "desc": "Slot to define how all body cells look like; Suggestion: QTd", "scope": { "col": { "type": "Object", "desc": "Column definition for column associated with table cell" }, "value": { "type": "Any", "desc": "Parsed/Formatted value of table cell" }, "key": { "type": "Any", "desc": "Row's key" }, "row": { "type": "Object", "desc": "Row object" }, "rowIndex": { "type": "Number", "desc": "Row's index (0 based) in the filtered and sorted table" }, "pageIndex": { "type": "Number", "desc": "Row's index (0 based) in the current page of the filtered and sorted table" }, "cols": { "type": "Object", "desc": "Column definitions" }, "colsMap": { "type": "Object", "desc": "Column mapping (key is column name, value is column object)" }, "sort": { "type": "Function", "desc": "Trigger a table sort", "params": { "col": { "type": [ "String", "Object" ], "required": true, "desc": "Column name or column definition object", "examples": [ "'calories'" ] } }, "returns": null }, "selected": { "type": "Boolean", "desc": "(Only if using selection) Is row selected? Can directly be assigned new Boolean value which changes selection state", "reactive": true }, "expand": { "type": "Boolean", "desc": "Is row expanded? Can directly be assigned new Boolean value which changes expanded state", "reactive": true }, "color": { "extends": "color" }, "dark": { "extends": "dark" }, "dense": { "extends": "dense" } } }, "body-cell-[name]": { "desc": "Slot to define how a specific column cell looks like; replace '[name]' with column name (from columns definition object)", "scope": { "col": { "type": "Object", "desc": "Column definition for column associated with table cell" }, "value": { "type": "Any", "desc": "Parsed/Formatted value of table cell" }, "key": { "type": "Any", "desc": "Row's key" }, "row": { "type": "Object", "desc": "Row object" }, "rowIndex": { "type": "Number", "desc": "Row's index (0 based) in the filtered and sorted table" }, "pageIndex": { "type": "Number", "desc": "Row's index (0 based) in the current page of the filtered and sorted table" }, "cols": { "type": "Object", "desc": "Column definitions" }, "colsMap": { "type": "Object", "desc": "Column mapping (key is column name, value is column object)" }, "sort": { "type": "Function", "desc": "Trigger a table sort", "params": { "col": { "type": [ "String", "Object" ], "required": true, "desc": "Column name or column definition object", "examples": [ "'calories'" ] } }, "returns": null }, "selected": { "type": "Boolean", "desc": "(Only if using selection) Is row selected? Can directly be assigned new Boolean value which changes selection state", "reactive": true }, "expand": { "type": "Boolean", "desc": "Is row expanded? Can directly be assigned new Boolean value which changes expanded state", "reactive": true }, "color": { "extends": "color" }, "dark": { "extends": "dark" }, "dense": { "extends": "dense" } } }, "header": { "desc": "Slot to define how header looks like; Suggestion: QTr + QTh", "scope": { "cols": { "type": "Object", "desc": "Column definitions" }, "colsMap": { "type": "Object", "desc": "Column mapping (key is column name, value is column object)" }, "sort": { "type": "Function", "desc": "Trigger a table sort", "params": { "col": { "type": [ "String", "Object" ], "required": true, "desc": "Column name or column definition object", "examples": [ "'calories'" ] } }, "returns": null }, "selected": { "type": "Boolean", "desc": "(Only if using selection) Is row selected? Can directly be assigned new Boolean value which changes selection state", "reactive": true }, "expand": { "type": "Boolean", "desc": "Is row expanded? Can directly be assigned new Boolean value which changes expanded state", "reactive": true }, "color": { "extends": "color" }, "dark": { "extends": "dark" }, "dense": { "extends": "dense" }, "__trClass": { "type": "String", "desc": "Internal prop passed down to QTr (if used)" }, "header": { "type": "Boolean", "desc": "Internal prop passed down to QTh (if used); Always 'true'" } } }, "header-cell": { "desc": "Slot to define how each header cell looks like; Suggestion: QTh", "scope": { "col": { "type": "Object", "desc": "Column definition associated to header cell" }, "cols": { "type": "Object", "desc": "Column definitions" }, "colsMap": { "type": "Object", "desc": "Column mapping (key is column name, value is column object)" }, "sort": { "type": "Function", "desc": "Trigger a table sort", "params": { "col": { "type": [ "String", "Object" ], "required": true, "desc": "Column name or column definition object", "examples": [ "'calories'" ] } }, "returns": null }, "selected": { "type": "Boolean", "desc": "(Only if using selection) Is row selected? Can directly be assigned new Boolean value which changes selection state", "reactive": true }, "expand": { "type": "Boolean", "desc": "Is row expanded? Can directly be assigned new Boolean value which changes expanded state", "reactive": true }, "color": { "extends": "color" }, "dark": { "extends": "dark" }, "dense": { "extends": "dense" } } }, "header-cell-[name]": { "desc": "Slot to define how a specific header cell looks like; replace '[name]' with column name (from columns definition object)", "scope": { "col": { "type": "Object", "desc": "Column definition associated to header cell" }, "cols": { "type": "Object", "desc": "Column definitions" }, "colsMap": { "type": "Object", "desc": "Column mapping (key is column name, value is column object)" }, "sort": { "type": "Function", "desc": "Trigger a table sort", "params": { "col": { "type": [ "String", "Object" ], "required": true, "desc": "Column name or column definition object", "examples": [ "'calories'" ] } }, "returns": null }, "selected": { "type": "Boolean", "desc": "(Only if using selection) Is row selected? Can directly be assigned new Boolean value which changes selection state", "reactive": true }, "expand": { "type": "Boolean", "desc": "Is row expanded? Can directly be assigned new Boolean value which changes expanded state", "reactive": true }, "color": { "extends": "color" }, "dark": { "extends": "dark" }, "dense": { "extends": "dense" } } }, "body-selection": { "desc": "Slot to define how body selection column looks like; Suggestion: QCheckbox", "scope": { "key": { "type": "Any", "desc": "Row's key" }, "row": { "type": "Object", "desc": "Row object" }, "rowIndex": { "type": "Number", "desc": "Row's index (0 based) in the filtered and sorted table" }, "pageIndex": { "type": "Number", "desc": "Row's index (0 based) in the current page of the filtered and sorted table" }, "cols": { "type": "Object", "desc": "Column definitions" }, "colsMap": { "type": "Object", "desc": "Column mapping (key is column name, value is column object)" }, "sort": { "type": "Function", "desc": "Trigger a table sort", "params": { "col": { "type": [ "String", "Object" ], "required": true, "desc": "Column name or column definition object", "examples": [ "'calories'" ] } }, "returns": null }, "selected": { "type": "Boolean", "desc": "(Only if using selection) Is row selected? Can directly be assigned new Boolean value which changes selection state", "reactive": true }, "expand": { "type": "Boolean", "desc": "Is row expanded? Can directly be assigned new Boolean value which changes expanded state", "reactive": true }, "color": { "extends": "color" }, "dark": { "extends": "dark" }, "dense": { "extends": "dense" } } }, "header-selection": { "desc": "Slot to define how header selection column looks like (available only for multiple selection mode); Suggestion: QCheckbox", "scope": { "cols": { "type": "Object", "desc": "Column definitions" }, "colsMap": { "type": "Object", "desc": "Column mapping (key is column name, value is column object)" }, "sort": { "type": "Function", "desc": "Trigger a table sort", "params": { "col": { "type": [ "String", "Object" ], "required": true, "desc": "Column name or column definition object", "examples": [ "'calories'" ] } }, "returns": null }, "selected": { "type": "Boolean", "desc": "(Only if using selection) Is row selected? Can directly be assigned new Boolean value which changes selection state", "reactive": true }, "expand": { "type": "Boolean", "desc": "Is row expanded? Can directly be assigned new Boolean value which changes expanded state", "reactive": true }, "color": { "extends": "color" }, "dark": { "extends": "dark" }, "dense": { "extends": "dense" } } }, "top-row": { "desc": "Slot to define how top extra row looks like", "scope": { "cols": { "type": "Object", "desc": "Column definitions" } } }, "bottom-row": { "desc": "Slot to define how bottom extra row looks like", "scope": { "cols": { "type": "Object", "desc": "Column definitions" } } }, "top": { "desc": "Slot to define how table top looks like", "scope": { "pagination": { "type": "Object", "desc": "Pagination object", "definition": { "sortBy": { "type": [ "String", "null" ], "required": true, "desc": "Column name (from column definition)", "examples": [ "'calories'" ] }, "descending": { "type": "Boolean", "required": true, "desc": "Is sorting in descending order?" }, "page": { "type": "Number", "required": true, "desc": "Page number (1-based)" }, "rowsPerPage": { "type": "Number", "required": true, "desc": "How many rows per page? 0 means Infinite" } } }, "pagesNumber": { "type": "Number", "desc": "Number of pages available" }, "isFirstPage": { "type": "Boolean", "desc": "Are we on first page?" }, "isLastPage": { "type": "Boolean", "desc": "Are we on last page?" }, "firstPage": { "type": "Function", "desc": "Navigates to first page", "params": null, "returns": null }, "prevPage": { "type": "Function", "desc": "Navigates to previous page, if available", "params": null, "returns": null }, "nextPage": { "type": "Function", "desc": "Navigates to next page, if available", "params": null, "returns": null }, "lastPage": { "type": "Function", "desc": "Navigates to last page", "params": null, "returns": null }, "inFullscreen": { "type": "Boolean", "desc": "Is table in fullscreen mode?" }, "toggleFullscreen": { "type": "Function", "desc": "Toggles fullscreen mode", "params": null, "returns": null } } }, "bottom": { "desc": "Slot to define how table bottom looks like", "scope": { "pagination": { "type": "Object", "desc": "Pagination object", "definition": { "sortBy": { "type": [ "String", "null" ], "required": true, "desc": "Column name (from column definition)", "examples": [ "'calories'" ] }, "descending": { "type": "Boolean", "required": true, "desc": "Is sorting in descending order?" }, "page": { "type": "Number", "required": true, "desc": "Page number (1-based)" }, "rowsPerPage": { "type": "Number", "required": true, "desc": "How many rows per page? 0 means Infinite" } } }, "pagesNumber": { "type": "Number", "desc": "Number of pages available" }, "isFirstPage": { "type": "Boolean", "desc": "Are we on first page?" }, "isLastPage": { "type": "Boolean", "desc": "Are we on last page?" }, "firstPage": { "type": "Function", "desc": "Navigates to first page", "params": null, "returns": null }, "prevPage": { "type": "Function", "desc": "Navigates to previous page, if available", "params": null, "returns": null }, "nextPage": { "type": "Function", "desc": "Navigates to next page, if available", "params": null, "returns": null }, "lastPage": { "type": "Function", "desc": "Navigates to last page", "params": null, "returns": null }, "inFullscreen": { "type": "Boolean", "desc": "Is table in fullscreen mode?" }, "toggleFullscreen": { "type": "Function", "desc": "Toggles fullscreen mode", "params": null, "returns": null } } }, "pagination": { "desc": "Slot to override default pagination label and buttons", "scope": { "pagination": { "type": "Object", "desc": "Pagination object", "definition": { "sortBy": { "type": [ "String", "null" ], "required": true, "desc": "Column name (from column definition)", "examples": [ "'calories'" ] }, "descending": { "type": "Boolean", "required": true, "desc": "Is sorting in descending order?" }, "page": { "type": "Number", "required": true, "desc": "Page number (1-based)" }, "rowsPerPage": { "type": "Number", "required": true, "desc": "How many rows per page? 0 means Infinite" } } }, "pagesNumber": { "type": "Number", "desc": "Number of pages available" }, "isFirstPage": { "type": "Boolean", "desc": "Are we on first page?" }, "isLastPage": { "type": "Boolean", "desc": "Are we on last page?" }, "firstPage": { "type": "Function", "desc": "Navigates to first page", "params": null, "returns": null }, "prevPage": { "type": "Function", "desc": "Navigates to previous page, if available", "params": null, "returns": null }, "nextPage": { "type": "Function", "desc": "Navigates to next page, if available", "params": null, "returns": null }, "lastPage": { "type": "Function", "desc": "Navigates to last page", "params": null, "returns": null }, "inFullscreen": { "type": "Boolean", "desc": "Is table in fullscreen mode?" }, "toggleFullscreen": { "type": "Function", "desc": "Toggles fullscreen mode", "params": null, "returns": null } } }, "top-left": { "desc": "Slot to define how left part of the table top looks like", "scope": { "pagination": { "type": "Object", "desc": "Pagination object", "definition": { "sortBy": { "type": [ "String", "null" ], "required": true, "desc": "Column name (from column definition)", "examples": [ "'calories'" ] }, "descending": { "type": "Boolean", "required": true, "desc": "Is sorting in descending order?" }, "page": { "type": "Number", "required": true, "desc": "Page number (1-based)" }, "rowsPerPage": { "type": "Number", "required": true, "desc": "How many rows per page? 0 means Infinite" } } }, "pagesNumber": { "type": "Number", "desc": "Number of pages available" }, "isFirstPage": { "type": "Boolean", "desc": "Are we on first page?" }, "isLastPage": { "type": "Boolean", "desc": "Are we on last page?" }, "firstPage": { "type": "Function", "desc": "Navigates to first page", "params": null, "returns": null }, "prevPage": { "type": "Function", "desc": "Navigates to previous page, if available", "params": null, "returns": n