UNPKG

angular-ui-grid

Version:

A data grid for Angular

2 lines 11.3 kB
/*! For license information please see ui-grid.grouping.min.js.LICENSE.txt */ (()=>{var r={692:()=>{!function(){"use strict";var r=angular.module("ui.grid.grouping",["ui.grid","ui.grid.treeBase"]);r.constant("uiGridGroupingConstants",{featureName:"grouping",rowHeaderColName:"treeBaseRowHeaderCol",EXPANDED:"expanded",COLLAPSED:"collapsed",aggregation:{COUNT:"count",SUM:"sum",MAX:"max",MIN:"min",AVG:"avg"}}),r.service("uiGridGroupingService",["$q","uiGridGroupingConstants","gridUtil","rowSorter","GridRow","gridClassFactory","i18nService","uiGridConstants","uiGridTreeBaseService",function(r,o,i,e,n,g,t,u,a){var p={initializeGrid:function(r,o){a.initializeGrid(r,o),r.grouping={},r.grouping.groupHeaderCache={},p.defaultGridOptions(r.options),r.registerRowsProcessor(p.groupRows,400),r.registerColumnBuilder(p.groupingColumnBuilder),r.registerColumnsProcessor(p.groupingColumnProcessor,400);var i={events:{grouping:{aggregationChanged:{},groupingChanged:{}}},methods:{grouping:{getGrouping:function(o){var i=p.getGrouping(r);return i.grouping.forEach((function(r){r.colName=r.col.name,delete r.col})),i.aggregations.forEach((function(r){r.colName=r.col.name,delete r.col})),i.aggregations=i.aggregations.filter((function(r){return!r.aggregation.source||"grouping"!==r.aggregation.source})),o&&(i.rowExpandedStates=p.getRowExpandedStates(r.grouping.groupingHeaderCache)),i},setGrouping:function(o){p.setGrouping(r,o)},groupColumn:function(o){var i=r.getColumn(o);p.groupColumn(r,i)},ungroupColumn:function(o){var i=r.getColumn(o);p.ungroupColumn(r,i)},clearGrouping:function(){p.clearGrouping(r)},aggregateColumn:function(o,i,e){var n=r.getColumn(o);p.aggregateColumn(r,n,i,e)}}}};r.api.registerEventsFromObject(i.events),r.api.registerMethodsFromObject(i.methods),r.api.core.on.sortChanged(o,p.tidyPriorities)},defaultGridOptions:function(r){r.enableGrouping=!1!==r.enableGrouping,r.groupingShowCounts=!1!==r.groupingShowCounts,r.groupingNullLabel=void 0===r.groupingNullLabel?"Null":r.groupingNullLabel,r.enableGroupHeaderSelection=!0===r.enableGroupHeaderSelection},groupingColumnBuilder:function(r,e,n){if(!1!==r.enableGrouping){void 0===e.grouping&&void 0!==r.grouping?(e.grouping=angular.copy(r.grouping),void 0!==e.grouping.groupPriority&&e.grouping.groupPriority>-1&&(e.treeAggregationFn=a.nativeAggregations()[o.aggregation.COUNT].aggregationFn,e.treeAggregationFinalizerFn=p.groupedFinalizerFn)):void 0===e.grouping&&(e.grouping={}),void 0!==e.grouping&&void 0!==e.grouping.groupPriority&&e.grouping.groupPriority>=0&&(e.suppressRemoveSort=!0);var g={name:"ui.grid.grouping.group",title:t.get().grouping.group,icon:"ui-grid-icon-indent-right",shown:function(){return void 0===this.context.col.grouping||void 0===this.context.col.grouping.groupPriority||this.context.col.grouping.groupPriority<0},action:function(){p.groupColumn(this.context.col.grid,this.context.col)}},u={name:"ui.grid.grouping.ungroup",title:t.get().grouping.ungroup,icon:"ui-grid-icon-indent-left",shown:function(){return void 0!==this.context.col.grouping&&void 0!==this.context.col.grouping.groupPriority&&this.context.col.grouping.groupPriority>=0},action:function(){p.ungroupColumn(this.context.col.grid,this.context.col)}},l={name:"ui.grid.grouping.aggregateRemove",title:t.get().grouping.aggregate_remove,shown:function(){return void 0!==this.context.col.treeAggregationFn},action:function(){p.aggregateColumn(this.context.col.grid,this.context.col,null)}},c=function(r,o){o=o||t.get().grouping["aggregate_"+r]||r;var n={name:"ui.grid.grouping.aggregate"+r,title:o,shown:function(){return void 0===this.context.col.treeAggregation||void 0===this.context.col.treeAggregation.type||this.context.col.treeAggregation.type!==r},action:function(){p.aggregateColumn(this.context.col.grid,this.context.col,r)}};i.arrayContainsObjectWithProperty(e.menuItems,"name","ui.grid.grouping.aggregate"+r)||e.menuItems.push(n)};!1!==e.colDef.groupingShowGroupingMenu&&(i.arrayContainsObjectWithProperty(e.menuItems,"name","ui.grid.grouping.group")||e.menuItems.push(g),i.arrayContainsObjectWithProperty(e.menuItems,"name","ui.grid.grouping.ungroup")||e.menuItems.push(u)),!1!==e.colDef.groupingShowAggregationMenu&&(angular.forEach(a.nativeAggregations(),(function(r,o){c(o)})),angular.forEach(n.treeCustomAggregations,(function(r,o){c(o,r.menuTitle)})),i.arrayContainsObjectWithProperty(e.menuItems,"name","ui.grid.grouping.aggregateRemove")||e.menuItems.push(l))}},groupingColumnProcessor:function(r,o){return r=p.moveGroupColumns(this,r,o)},groupedFinalizerFn:function(r){var o=this;void 0!==r.groupVal?(r.rendered=r.groupVal,o.grid.options.groupingShowCounts&&"date"!==o.colDef.type&&"object"!==o.colDef.type&&(r.rendered+=" ("+r.value+")")):r.rendered=null},moveGroupColumns:function(r,o){return!1===r.options.moveGroupColumns||(o.forEach((function(r,o){r.groupingPosition=o})),o.sort((function(r,o){var i,e;return i=r.isRowHeader?r.headerPriority:void 0===r.grouping||void 0===r.grouping.groupPriority||r.grouping.groupPriority<0?null:r.grouping.groupPriority,e=o.isRowHeader?o.headerPriority:void 0===o.grouping||void 0===o.grouping.groupPriority||o.grouping.groupPriority<0?null:o.grouping.groupPriority,null!==i&&null===e?-1:null!==e&&null===i?1:null!==i&&null!==e?i-e:r.groupingPosition-o.groupingPosition})),o.forEach((function(r){delete r.groupingPosition}))),o},groupColumn:function(r,i){void 0===i.grouping&&(i.grouping={});var e=p.getGrouping(r);i.grouping.groupPriority=e.grouping.length,i.previousSort=angular.copy(i.sort),i.sort?void 0!==i.sort.direction&&null!==i.sort.direction||(i.sort.direction=u.ASC):i.sort={direction:u.ASC},i.treeAggregation={type:o.aggregation.COUNT,source:"grouping"},i.colDef&&angular.isFunction(i.colDef.customTreeAggregationFn)?i.treeAggregationFn=i.colDef.customTreeAggregationFn:i.treeAggregationFn=a.nativeAggregations()[o.aggregation.COUNT].aggregationFn,i.treeAggregationFinalizerFn=p.groupedFinalizerFn,r.api.grouping.raise.groupingChanged(i),r.api.core.raise.sortChanged(r,r.getColumnSorting()),r.queueGridRefresh()},ungroupColumn:function(r,o){void 0!==o.grouping&&(delete o.grouping.groupPriority,delete o.treeAggregation,delete o.customTreeAggregationFinalizer,o.previousSort&&(o.sort=o.previousSort,delete o.previousSort),p.tidyPriorities(r),r.api.grouping.raise.groupingChanged(o),r.api.core.raise.sortChanged(r,r.getColumnSorting()),r.queueGridRefresh())},aggregateColumn:function(r,o,i,e){void 0!==o.grouping&&void 0!==o.grouping.groupPriority&&o.grouping.groupPriority>=0&&p.ungroupColumn(r,o);var n={};void 0!==r.options.treeCustomAggregations[i]?n=r.options.treeCustomAggregations[i]:void 0!==a.nativeAggregations()[i]&&(n=a.nativeAggregations()[i]),o.treeAggregation={type:i,label:"string"==typeof e?e:t.get().aggregation[n.label]||n.label},o.treeAggregationFn=n.aggregationFn,o.treeAggregationFinalizerFn=n.finalizerFn,r.api.grouping.raise.aggregationChanged(o),r.queueGridRefresh()},setGrouping:function(r,o){void 0!==o&&(p.clearGrouping(r),o.grouping&&o.grouping.length&&o.grouping.length>0&&o.grouping.forEach((function(o){var i=r.getColumn(o.colName);i&&p.groupColumn(r,i)})),o.aggregations&&o.aggregations.length&&o.aggregations.forEach((function(o){var i=r.getColumn(o.colName);i&&p.aggregateColumn(r,i,o.aggregation.type)})),o.rowExpandedStates&&p.applyRowExpandedStates(r.grouping.groupingHeaderCache,o.rowExpandedStates))},clearGrouping:function(r){var o=p.getGrouping(r);o.grouping.length>0&&o.grouping.forEach((function(o){o.col||(o.col=r.getColumn(o.colName)),p.ungroupColumn(r,o.col)})),o.aggregations.length>0&&o.aggregations.forEach((function(o){o.col||(o.col=r.getColumn(o.colName)),p.aggregateColumn(r,o.col,null)}))},tidyPriorities:function(r){void 0!==r&&void 0===r.grid||void 0===this.grid||(r=this.grid);var o=[],i=[];r.columns.forEach((function(r,e){void 0!==r.grouping&&void 0!==r.grouping.groupPriority&&r.grouping.groupPriority>=0?o.push(r):void 0!==r.sort&&void 0!==r.sort.priority&&r.sort.priority>=0&&i.push(r)})),o.sort((function(r,o){return r.grouping.groupPriority-o.grouping.groupPriority})),o.forEach((function(r,o){r.grouping.groupPriority=o,r.suppressRemoveSort=!0,void 0===r.sort&&(r.sort={}),r.sort.priority=o}));var e=o.length;i.sort((function(r,o){return r.sort.priority-o.sort.priority})),i.forEach((function(r){r.sort.priority=e,r.suppressRemoveSort=r.colDef.suppressRemoveSort,e++}))},groupRows:function(r){if(0===r.length)return r;var o=this;o.grouping.oldGroupingHeaderCache=o.grouping.groupingHeaderCache||{},o.grouping.groupingHeaderCache={};for(var i=p.initialiseProcessingState(o),n=function(n,u){var a=o.getCellValue(t,n.col);n.initialised&&0===e.getSortFn(n.col)(a,n.currentValue)||(p.insertGroupHeader(o,r,g,i,u),g++)},g=0;g<r.length;g++){var t=r[g];t.visible&&i.forEach(n)}return delete o.grouping.oldGroupingHeaderCache,r},initialiseProcessingState:function(r){var o=[];return p.getGrouping(r).grouping.forEach((function(r,i){o.push({fieldName:r.field,col:r.col,initialised:!1,currentValue:null,currentRow:null})})),o},getGrouping:function(r){var o=[],i=[];return r.columns.forEach((function(r){r.grouping&&void 0!==r.grouping.groupPriority&&r.grouping.groupPriority>=0&&o.push({field:r.field,col:r,groupPriority:r.grouping.groupPriority,grouping:r.grouping}),r.treeAggregation&&r.treeAggregation.type&&i.push({field:r.field,col:r,aggregation:r.treeAggregation})})),o.sort((function(r,o){return r.groupPriority-o.groupPriority})),o.forEach((function(r,o){r.grouping.groupPriority=o,r.groupPriority=o,delete r.grouping})),{grouping:o,aggregations:i}},insertGroupHeader:function(r,o,i,e,t){var u=e[t].col,a=r.getCellValue(o[i],u),l=a;function c(r){return angular.isObject(r)?JSON.stringify(r):r}null==a&&(l=r.options.groupingNullLabel);for(var s,d=r.grouping.oldGroupingHeaderCache,f=0;f<t;f++)d&&d[c(e[f].currentValue)]&&(d=d[c(e[f].currentValue)].children);for(d&&d[c(a)]?(s=d[c(a)].row).entity={}:(s=new n({},null,r),g.rowTemplateAssigner.call(r,s)),s.entity["$$"+e[t].col.uid]={groupVal:l},s.treeLevel=t,s.groupHeader=!0,s.internalRow=!0,s.enableCellEdit=!1,s.enableSelection=r.options.enableGroupHeaderSelection,e[t].initialised=!0,e[t].currentValue=a,e[t].currentRow=s,p.finaliseProcessingState(e,t+1),o.splice(i,0,s),d=r.grouping.groupingHeaderCache,f=0;f<t;f++)d=d[c(e[f].currentValue)].children;d[c(a)]={row:s,children:{}}},finaliseProcessingState:function(r,o){for(var i=o;i<r.length;i++)r[i].initialised=!1,r[i].currentRow=null,r[i].currentValue=null},getRowExpandedStates:function(r){if(void 0===r)return{};var o={};return angular.forEach(r,(function(r,i){o[i]={state:r.row.treeNode.state},r.children?o[i].children=p.getRowExpandedStates(r.children):o[i].children={}})),o},applyRowExpandedStates:function(r,o){void 0!==o&&angular.forEach(o,(function(o,i){r[i]&&(r[i].row.treeNode.state=o.state,o.children&&r[i].children&&p.applyRowExpandedStates(r[i].children,o.children))}))}};return p}]),r.directive("uiGridGrouping",["uiGridGroupingConstants","uiGridGroupingService",function(r,o){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(r,i,e,n){!1!==n.grid.options.enableGrouping&&o.initializeGrid(n.grid,r)},post:function(r,o,i,e){}}}}}])}()}},o={};function i(e){var n=o[e];if(void 0!==n)return n.exports;var g=o[e]={exports:{}};return r[e](g,g.exports,i),g.exports}i(692)})();