/** * @class Ext.grid.plugin.Summary * @extend Ext.plugin.Abstract * @alias plugin.summaryrow * @alias plugin.gridsummaryrow * @alias plugin.gridsummary * * This {@link Ext.grid.Grid grid} plugin manages a bottom-docked summary {@link #row row}. * * By default, the column's {@link Ext.grid.column.Column#cfg!dataIndex dataIndex} is used * to read from the {@link Ext.data.Store#getSummaryRecord summary record} as controlled by * the model's {@link Ext.data.Model#cfg!summary summary} definition. To use a different * field, the {@link Ext.grid.column.Column#cfg!summaryDataIndex summaryDataIndex} can be * specified. * * The {@link Ext.grid.column.Column#cfg!summary summary} config can be used to perform * column-specific summarization. The `summary` config uses one of the registered summary * types (see below). Custom summary types can be defined, or a column-specific algorithm * can be provided with a {@link Ext.grid.column.Column#cfg!summaryRenderer summaryRenderer}. * * ## Summary Types * * The `summary` type can be one of the predefined summary types: * * + {@link Ext.data.summary.Average average} * + {@link Ext.data.summary.Count count} * + {@link Ext.data.summary.Max max} * + {@link Ext.data.summary.Min min} * + {@link Ext.data.summary.Sum sum} * *```HTML *@example({tab: 1}) *<ext-container width="100%" height="100%"> * <ext-grid * shadow="true" * height="275" * plugins='["gridsummaryrow"]' * onready="summaryGrid.onGridReady" * fullscreen="true" * variableHeights="true" * > * <ext-column text="First Name" dataIndex="fname" flex="1"></ext-column> * <ext-column text="Last Name" dataIndex="lname" flex="1"></ext-column> * <ext-column text="Talent" dataIndex="talent" flex="1"></ext-column> * <ext-column text="Wins" dataIndex="wins" flex="1" summary="sum"></ext-column> * </ext-grid> *</ext-container> *``` *```javascript *@example({tab: 2, packages: ['ext-web-components']}) *import '@sencha/ext-web-components/dist/ext-container.component'; *import '@sencha/ext-web-components/dist/ext-grid.component'; *import '@sencha/ext-web-components/dist/ext-column.component'; * *Ext.require('Ext.grid.plugin.Summary'); * *export default class SummaryGridComponent { * constructor() { * this.store = new Ext.data.Store({ * data: [ * { 'fname': 'Barry', 'lname': 'Allen', 'talent': 'Speedster', 'wins': 150 }, * { 'fname': 'Oliver', 'lname': 'Queen', 'talent': 'Archery', 'wins': 120 }, * { 'fname': 'Kara', 'lname': 'Zor-El', 'talent': 'All', 'wins': 90 }, * { 'fname': 'Helena', 'lname': 'Bertinelli', 'talent': 'Weapons Expert', 'wins': 70 }, * { 'fname': 'Hal', 'lname': 'Jordan', 'talent': 'Willpower', 'wins': 60 } * ] * }); * } * * onGridReady(event) { * this.summaryGridCmp = event.detail.cmp; * this.summaryGridCmp.setStore(this.store); * } *} * * window.summaryGrid = new SummaryGridComponent(); *``` */ /** * @cfg {Ext.grid.SummaryRow/Object} row * The configuration object for the docked summary row managed by this plugin. * @since 6.5.0 * @accessor */