A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/MarketConnect/vue-pivot-table below:

Click2Buy/vue-pivot-table: A vue component for pivot table

This project is not maintained anymore. Maybe a Vue 3 version will be in the works in the future. Maybe not.

A vue component for pivot table

Live demo (jsfiddle)

npm install --save @click2buy/vue-pivot-table

This project provides 2 components:

While the Pivot component provides the full experience, the PivotTable can be used standalone if you need only a table.

import { Pivot } from '@click2buy/vue-pivot-table'

export default {
  components: { Pivot },

  // Basic data for component props
  data: () => {
    return {
      data: Object.freeze([{ x: 0, y: 0, z: 0 }, { x: 1, y: 1, z: 1 }]),
      fields: [{
        key: 'x',
        getter: item => item.x,
        label: 'X'
      }, {
        key: 'y',
        getter: item => item.y,
        label: 'Y'
      }, {
        key: 'z',
        getter: item => item.z,
        label: 'Z'
      }],
      rowFieldKeys: ['y', 'z'],
      colFieldKeys: ['x'],
      reducer: (sum, item) => sum + 1
    }
  }
  ...
}
<pivot :data="data" :fields="fields" :row-field-keys="rowFieldKeys" :col-field-keys="colFieldKeys" :reducer="reducer">
  <!-- Optional slots can be used for formatting table headers and values, see documentation below -->
</pivot>
import { PivotTable } from '@click2buy/vue-pivot-table'

export default {
  components: { PivotTable },

  // Basic data for component props
  data: () => {
    return {
      data: Object.freeze([{ x: 0, y: 0, z: 0 }, { x: 1, y: 1, z: 1 }]),
      rowFields: [{
        getter: item => item.y,
        label: 'Y'
      }, {
        getter: item => item.z,
        label: 'Z'
      }],
      colFields: [{
        getter: item => item.x,
        label: 'X'
      }],
      reducer: (sum, item) => sum + 1
    }
  }
  ...
}
<pivot-table :data="data" :row-fields="rowFields" :col-fields="colFields" :reducer="reducer">
  <!-- Optional slots can be used for formatting table headers and values, see documentation below -->
</pivot-table>
Property Type Default Description data Object Array [] Dataset to use in the pivot fields Array [] Fields definition (see fields element format) available-field-keys Array [] Keys of the fields to show as "available" by default row-field-keys Array [] Keys of the fields to use as rows by default col-field-keys Array [] Keys of the fields to use as columns by default reducer function (sum, item) => sum + 1 Function applied to reduce data in the pivot table reducer-initial-value any 0 Initial value used when applying reducer no-data-warning-text String 'No data to display.' Text to display when data is empty is-data-loading Boolean false Display a loading content instead of the table when the value is true (see slots for customization) default-show-settings Boolean true Show settings at component creation available-fields-label-text String 'Available fields' Text for available fields drag area rows-label-text String 'Rows' Text for the rows drag area cols-label-text String 'Columns' Text for the columns drag area hide-settings-text String 'Hide settings' Text for the "hide settings" button show-settings-text String 'Show settings' Text for the "show settings" button select-all-text String 'Select all' Text for the "Select all" button in the dropdown value filter unselect-all-text String 'Unselect all' Text for the "Unselect all" button in the dropdown value filter Property Type Description key String A unique string value to identify the field label String Text to display in the draggable element labelSlotName String Optional - Name of the slot to use to format the label content getter Function Function to apply on an element of data to get the field value sort Function Optional - Function to order fields in the pivot table header ; if no value is provided, javascript-natural-sort will be applied showHeader Boolean Optional (default: true) - Whether the header should be displayed in the pivot table showFooter Boolean Optional (default: false) - Whether the footer should be displayed in the pivot table headerSlotName String Optional - Name of the slot to use to format the header in the pivot table ; if no slot name is provided, the value will be displayed as found in data headerSlotNames String Array Optional - Names of the slots to use to format the headers in the pivot table headers Array Optional - Definition of the headers (see headers element format) footerSlotName String Optional - Same as above for the footer footerSlotNames String Array Optional - Same as above for the footer headerAttributeFilter Boolean Optional (default: false) - Activate dropdown to filter field header attributes valueFilter Boolean Optional (default: false) - Activate dropdown to filter field values valueFilterSlotName String Optional - Name of the slot to use to format the values in the field values selection dropdown Property Type Description slotName String Name of the slot to use to format the header in the pivot table label String If headerAttributeFilter is activated, in the field dropdown: label to display next to the checkbox checked Boolean If headerAttributeFilter is activated, in the field dropdown: default checkbox value Slot Name Description Scope <field label slot name> Content displayed in the field draggable label <field header slot name> Table header content for a field, referenced from the field headerSlotName property { value } <field value filter slot name> If field valueFilter prop is set to true: content in the menu next to the checkbox { value } value Table cell content { value, row, col } (see value slot scope) loading Content displayed while data-is-loading prop is set to true computing Content displayed while table values are being loaded Property Type Description value Number Value of the cell labels Array An array of objects corresponding to row/col labels - Each object has 2 props field/value with label field/value Property Type Default Description data Object Array [] Dataset to use in the pivot row-fields Array [] Fields to use as rows by default (see row-fields/col-fields element format) col-fields Array [] Fields to use as columns by default (see row-fields/col-fields element format) reducer function (sum, item) => sum + 1 Function applied to reduce data in the pivot table reducer-initial-value any 0 Initial value used when applying reducer no-data-warning-text String 'No data to display.' Text to display when data is empty is-data-loading Boolean false Display a loading content instead of the table when the value is true (see slots for customization) row-fields/col-fields element format Property Type Description getter Function Function to apply on an element of data to get the field value sort Function Optional - Function to order fields in the pivot table header ; if no value is provided, javascript-natural-sort will be applied valuesFiltered Set Optional - A set of values to filter displayed rows/columns showHeader Boolean Optional (default: true) - Whether the header should be displayed in the pivot table showFooter Boolean Optional (default: false) - Whether the footer should be displayed in the pivot table headerSlotName String Optional - Name of the slot to use to format the header in the pivot table ; if no slot name is provided, the value will be displayed as found in data headerSlotNames String Array Optional - Names of the slots to use to format the headers in the pivot table footerSlotName String Optional - Same as above for the footer footerSlotNames String Array Optional - Same as above for the footer Slot Name Description Scope <field header slot name> Table header content for a field, referenced from row-field/col-field headerSlotName property { value } value Table cell content { value, row, col } (see value slot scope) loading Content displayed while data-is-loading prop is set to true computing Content displayed while table values are being loaded Property Type Description value Number Value of the cell row Array Row values of the cell col Array Column values of the cell

Note: if your final table is too large and you use a component in the value slot, you might consider using a functional component to improve performance.

If this component is used with large datasets, consider applying Object.freeze on your data object to avoid useless change tracking on each data element.

See https://vuejs.org/v2/guide/instance.html#Data-and-Methods.

# Install dependencies
npm install

# Serve with hot reload at localhost:8080
npm run serve

# Build js libraries
npm run build-lib

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4