/*!@license * Infragistics.Web.ClientUI Pivot Grid 19.1.20 * * Copyright (c) 2011-2012 Infragistics Inc. * * http://www.infragistics.com/ * * Depends on: * jquery-1.9.1.js * jquery.ui.core.js * jquery.ui.widget.js * jquery.ui.mouse.js * jquery.ui.draggable.js * jquery.ui.droppable.js * infragistics.util.js * infragistics.util.jquery.js * infragistics.datasource.js * infragistics.olapxmladatasource.js * infragistics.olapflatdatasource.js * infragistics.ui.widget.js * infragistics.ui.shared.js * infragistics.ui.scroll.js * infragistics.ui.tree.js * infragistics.ui.grid.framework.js * infragistics.ui.grid.multicolumnheaders.js * infragistics.ui.pivot.shared.js */ (function(factory){if(typeof define==="function"&&define.amd){define(["./infragistics.ui.pivot.shared","./infragistics.ui.grid.multicolumnheaders"],factory)}else{return factory(jQuery)}})(function($){/*!@license * Infragistics.Web.ClientUI Pivot Grid localization resources 19.1.20 * * Copyright (c) 2011-2019 Infragistics Inc. * * http://www.infragistics.com/ * */ (function($){$.ig=$.ig||{};$.ig.PivotGrid=$.ig.PivotGrid||{};$.ig.locale=$.ig.locale||{};$.ig.locale.en=$.ig.locale.en||{};$.ig.locale.en.PivotGrid={filtersHeader:"Drop Filter Fields Here",measuresHeader:"Drop Data Items Here",rowsHeader:"Drop Row Fields Here",columnsHeader:"Drop Column Fields Here",disabledFiltersHeader:"Filter Fields",disabledMeasuresHeader:"Data Items",disabledRowsHeader:"Row Fields",disabledColumnsHeader:"Column Fields",noSuchAxis:"No such axis"};$.ig.PivotGrid.locale=$.ig.PivotGrid.locale||$.ig.locale.en.PivotGrid;return $.ig.locale.en.PivotGrid})($);function Matrix(){this[0]=[]}Matrix.prototype=[];Matrix.prototype.set=function(row,column,value){if(this.lengthcolgroup>col:last")[0];grid._setGridContentWidth(lastCol&&lastCol.style.width==="auto"?value:w);grid._hscrollbarcontent().css("overflow-y","hidden")}break;case"levelSortDirections":case"isParentInFrontForColumns":case"isParentInFrontForRows":case"compactColumnHeaders":case"compactRowHeaders":case"rowHeadersLayout":$.Widget.prototype._setOption.apply(this,arguments);this._createTableView(this._ds);this._onGridUpdated();break;case"dragAndDropSettings":$.Widget.prototype._setOption.apply(this,arguments);this.element.find(":ui-draggable").each(function(ind,el){var draggable=$(el);draggable.draggable("option","appendTo",value.appendTo);draggable.draggable("option","containment",value.containment);draggable.draggable("option","zIndex",value.zIndex)});break;case"language":this._setGridOption(key,value);this._superApply(arguments);break;default:this._superApply(arguments);this._onGridUpdated();break}},_setDataSource:function(){var $this=this,dataSource;this._renderEmptyGrid();this._ds=dataSource=this._createDataSource(this.options.dataSource,this.options.dataSourceOptions);if(!dataSource){return}if(this.options.rowHeadersLayout==="tree"&&dataSource.dataSource().measureListLocation()===0&&dataSource.dataSource().sourceOptions().measures()&&dataSource.dataSource().sourceOptions().measures().contains(",")){this._ds.setMeasureListIndex(0)}this.timestamp=(new Date).getTime();$(dataSource).bind("initialized.pivotgrid"+this.timestamp,function(evt,evtArgs){var args=$.extend({owner:$this,dataSource:$this._ds},evtArgs);$this._triggerDataSourceInitialized(evt,args);$this._onGridUpdated()});$(dataSource).bind("updated.pivotgrid"+this.timestamp,function(evt,evtArgs){var args=$.extend({owner:$this,dataSource:$this._ds},evtArgs);$this._triggerDataSourceUpdated(evt,args);$this._onGridUpdated()});if(dataSource.isInitialized()){dataSource.bindCollectionChanged({filters:this._onFiltersChanged,rowAxis:this._onRowAxisChanged,columnAxis:this._onColumnAxisChanged,measures:this._onMeasuresChanged});this._onGridUpdated()}else{this._updateGrid(true).always(function(){dataSource.bindCollectionChanged({filters:$this._onFiltersChanged,rowAxis:$this._onRowAxisChanged,columnAxis:$this._onColumnAxisChanged,measures:$this._onMeasuresChanged})})}},_updateDropArea:function(dropArea,items,isDisabled,emptyMessageOption){if(!this._ds.isUpdating()){dropArea.empty().css({display:"",overflow:"",margin:"",padding:""}).siblings().remove();this._fillDropArea(dropArea,items,isDisabled,emptyMessageOption);this._measureDropArea(dropArea)}},_clearDataSource:function(){var grid=this.grid();if(this._ds){$(this._ds).unbind("updated.pivotgrid");this._ds.unbindCollectionChanged({filters:this._onFiltersChanged,rowAxis:this._onRowAxisChanged,columnAxis:this._onColumnAxisChanged,measures:this._onMeasuresChanged})}if(grid){grid.destroy();this.element.empty()}},_createTableView:function(dataSource){var viewSettings,hasColumns,hasRows,rowHeadersLayout,map,appliedColumnSortDirections,appliedLevelSortDirections,userLevelSortDirections,mergedLevelSortDirections;appliedColumnSortDirections=this._columnsChanged?[]:this.appliedColumnSortDirections();map=function(array){var i,m={};if($.isArray(array)){for(i=0;i0;hasRows=dataSource.rowAxis().length>0;this._tableView=new $.ig.OlapTableView(dataSource.result(),hasColumns,hasRows,viewSettings);this._tableView.columnSortDirections(appliedColumnSortDirections);this._tableView.levelSortDirections(mergedLevelSortDirections);this._tableView.initialize();this._columnsChanged=false},_resolveRowHeadersLayout:function(){if(this.options.rowHeadersLayout!==undefined&&this.options.rowHeadersLayout!==null){return this.options.rowHeadersLayout}if(this.options.compactRowHeaders===true){return"superCompact"}return"standard"},_configureOptions:function(dataSource){var $this=this,cols,dataCols,data,settings,gridDataSource,options;this._rowsMatrix=new Matrix;this._fillMatrixWithHeaderCells(this._rowsMatrix,this._tableView.rowHeaders());this._maxMemberIndex=dataSource.columnAxis().length-1;cols=this._generateAllGridColumns(this._tableView.columnHeaders());dataCols=this._generateDataColumns(this._tableView.columnHeaders());data=this._transformGridData(this._tableView.resultCells(),dataCols,dataCols.length,this._rowsMatrix.length);settings={dataSource:data};gridDataSource=new $.ig.DataSource(settings);options={headerRendered:function(event,ui){if($this._ds){$this._onGridHeadersRendered(event,ui)}},dataRendered:function(event,ui){if($this._ds){$this._onDataRendered(event,ui)}}};$.extend(true,options,this.options.gridOptions);options.dataSource=gridDataSource;options.columns=cols;options.autoGenerateColumns=false;options.virtualization=false;options.fixedFooters=false;options.autoFormat=false;options.renderCheckBoxes=false;options.autoFitLastColumn=false;options.autoAdjustHeight=true;options.width=this.options.width;options.height=this.options.height;$.merge(options.features,[{name:"MultiColumnHeaders"}]);return options},_addSortingMarkup:function(sortingMarkupSettings){var sortMap=sortingMarkupSettings.sortMap,stringTemplate=sortingMarkupSettings.stringTemplate,sortDirection,replaceString=sortingMarkupSettings.replaceString,markup=sortingMarkupSettings.markup;if(sortingMarkupSettings.condition){sortDirection=sortMap[sortingMarkupSettings.axisName];if(sortDirection){sortDirection=sortDirection[sortingMarkupSettings.hierarchyOffset];if(sortDirection){sortDirection=sortDirection[sortingMarkupSettings.levelNumber]}}if(sortDirection==="ascending"){markup=markup.replace(stringTemplate,replaceString+"='ascending'");markup+=sortingMarkupSettings.ascIcon}else if(sortDirection==="descending"){markup=markup.replace(stringTemplate,replaceString+"='descending'");markup+=sortingMarkupSettings.descIcon}else if(this.options.allowHeaderRowsSorting){markup=markup.replace(stringTemplate,replaceString+"=''")}}else{markup=markup.replace(stringTemplate,"")}return markup},_fillMatrixWithHeaderCells:function(matrix,headerCells){var expandIcon,expandItemIcon,collapseIcon,collapseItemIcon,sortHeaderRowsAscendingIcon,sortHeaderRowsDescendingIcon,itemSortHeaderRowsAscendingIcon,itemSortHeaderRowsDescendingIcon,headerCell,levelSortDirectionsMap,headerMarkup,text,rowSpan,columnSpan,rowIndex,columnIndex,hierarchy,endNodeIndent,headerCellIndent,headerCellLinkIndent,axisName,tupleIndex,memberIndex,css,applyIndent,isExpandable,isItemExpandable,isExpanded,isItemExpanded,isTreeLayout,expandButtonMarkup,itemExpandButtonMarkup,indent,i,linkText,dataSource=this._ds,$this=this,expandedItems,sortingMarkupSettings;if(!headerCells||headerCells.length===0){matrix.set(0,0,"");return}expandIcon="";collapseIcon="";expandItemIcon="";collapseItemIcon="";sortHeaderRowsAscendingIcon="";sortHeaderRowsDescendingIcon="";itemSortHeaderRowsAscendingIcon="";itemSortHeaderRowsDescendingIcon="";isTreeLayout=this.options.rowHeadersLayout==="tree";if(isTreeLayout){expandedItems={};for(i=0;i";if(isItemExpandable){indent=applyIndent?headerCell.indent():0;itemExpandButtonMarkup=isItemExpanded?collapseItemIcon:expandItemIcon;itemExpandButtonMarkup=itemExpandButtonMarkup.replace("$$margin$$",indent);headerMarkup+=itemExpandButtonMarkup}if(isExpandable){if(isTreeLayout){headerMarkup+=""+text+"";sortingMarkupSettings={condition:isItemExpanded,sortMap:levelSortDirectionsMap,axisName:headerCell.axisName(),hierarchyOffset:headerCell.hierarchyNumber()+1,levelNumber:headerCell.levelNumber()-expandedItems[i],replaceString:"data-sortheader",stringTemplate:"$$data-sortheader$$",markup:headerMarkup,ascIcon:sortHeaderRowsAscendingIcon,descIcon:sortHeaderRowsDescendingIcon};headerMarkup=$this._addSortingMarkup(sortingMarkupSettings);expandButtonMarkup=isExpanded?collapseIcon:expandIcon;expandButtonMarkup=expandButtonMarkup.replace("$$margin$$",headerCellLinkIndent);headerMarkup+=expandButtonMarkup;hierarchy=dataSource.rowAxis()[headerCell.memberIndex()];linkText=dataSource.getCoreElement(function(element){return element.hierarchyUniqueName()===hierarchy.uniqueName()&&element.depth()===headerCell.levelNumber()+1},$.ig.Level.prototype.getType());if(linkText){headerMarkup+=""+linkText.caption()+""}sortingMarkupSettings={condition:isExpanded,sortMap:levelSortDirectionsMap,axisName:headerCell.axisName(),hierarchyOffset:headerCell.hierarchyNumber(),levelNumber:headerCell.levelNumber(),replaceString:"data-item-sortheader",stringTemplate:"$$data-item-sortheader$$",markup:headerMarkup,ascIcon:itemSortHeaderRowsAscendingIcon,descIcon:itemSortHeaderRowsDescendingIcon};headerMarkup=$this._addSortingMarkup(sortingMarkupSettings)}else{indent=applyIndent?headerCellIndent:0;expandButtonMarkup=isExpanded?collapseIcon:expandIcon;expandButtonMarkup=expandButtonMarkup.replace("$$margin$$",indent);headerMarkup+=expandButtonMarkup;headerMarkup+=""+text+"";sortingMarkupSettings={condition:isExpanded,sortMap:levelSortDirectionsMap,axisName:headerCell.axisName(),hierarchyOffset:headerCell.hierarchyNumber(),levelNumber:headerCell.levelNumber(),replaceString:"data-sortheader",stringTemplate:"$$data-sortheader$$",markup:headerMarkup,ascIcon:sortHeaderRowsAscendingIcon,descIcon:sortHeaderRowsDescendingIcon};headerMarkup=$this._addSortingMarkup(sortingMarkupSettings)}}else if(!isTreeLayout||isTreeLayout&&itemExpandButtonMarkup&&itemExpandButtonMarkup.contains("$$margin$$")){indent=applyIndent?headerCellIndent:0;text=""+text+"";headerMarkup+=text}else{headerMarkup+=""+text+""}if(isTreeLayout&&(isExpandable&&!isItemExpandable||!isExpandable&&!isItemExpandable)){indent=applyIndent?headerCellIndent:0;endNodeIndent=$(".ui-iggrid-headerbutton.ui-icon").eq(0).width()+indent;headerMarkup=headerMarkup.replace("class='ui-iggrid-headertext'","class='ui-iggrid-headertext' style='margin-left:"+endNodeIndent+"px;'")}sortingMarkupSettings={condition:isTreeLayout&&isItemExpanded&&headerMarkup.contains("$$data-item-sortheader$$"),sortMap:levelSortDirectionsMap,axisName:headerCell.axisName(),hierarchyOffset:headerCell.hierarchyNumber()+1,levelNumber:headerCell.levelNumber()-1>0?headerCell.levelNumber()-1:0,replaceString:"data-sortheader",stringTemplate:"$$data-item-sortheader$$",markup:headerMarkup,ascIcon:sortHeaderRowsAscendingIcon,descIcon:sortHeaderRowsDescendingIcon};headerMarkup=$this._addSortingMarkup(sortingMarkupSettings);sortingMarkupSettings={condition:isTreeLayout&&isItemExpanded&&headerMarkup.contains("$$data-item-sortheader$$"),sortMap:levelSortDirectionsMap,axisName:headerCell.axisName(),hierarchyOffset:headerCell.hierarchyNumber()+1,levelNumber:headerCell.levelNumber()-1>0?headerCell.levelNumber()-1:0,replaceString:"data-item-sortheader",stringTemplate:"$$data-item-sortheader$$",markup:headerMarkup,ascIcon:itemSortHeaderRowsAscendingIcon,descIcon:itemSortHeaderRowsDescendingIcon};headerMarkup=$this._addSortingMarkup(sortingMarkupSettings);headerMarkup+="";matrix.set(rowIndex+rowSpan-1,columnIndex+columnSpan-1,undefined);matrix.set(rowIndex,columnIndex,headerMarkup)}},_generateAllGridColumns:function(headers){var cols,levels=[],i;if(!headers||headers.length===0){return[this._const.emptyCell]}for(i=0;i0){for(i=0;i=1&&i=1){this._findAndCreateUp(i-1,i,cols,tree,tree[i][j])}}}}return cols},_findAndCreateUp:function(level,itemsLevel,cols,tree,item){var parents,j,currentItem,parent;parents=this._parentsForLevel(level,cols);for(j=0;j=1){this._findAndCreateUp(level-1,itemsLevel,cols,tree,item)}}}}},_parentsForLevel:function(level,root){var parents=[],i;for(i=0;i1?currentParent.rowspan-1:0,i;if(currentLevel===level){parents.push(currentParent)}else if(currentLevel1||col.columnSpan()===1&&col.isExpanded()&&col.isExpandable())){column.group=[]}parent.push(column)},_findParent:function(cols,header,rowSpan){var i;if(!cols||cols.length===undefined||cols.length===null){return null}for(i=0;i=header.columnSpan()+header.columnIndex()&&cols[i].colIndex<=header.columnIndex()){if(!cols[i].group){cols[i].group=[]}return cols[i].group}}}return null},grid:function(){return this.element.data(_igGrid)},updateGrid:function(){this._updateGrid(false,true)},_showLoadingIndicator:function(){var container;if(this.element.data(_igGrid)){container=this.grid().container();if(!container.children("div[data-loading-indicator-container]").length){$("#"+this.grid().element.attr("id")+"_columns_overlay").css("display","none");$("#"+this.grid().element.attr("id")+"_measures_overlay").css("display","none");container.css("position","relative");$("
").appendTo(container).data("efh","1")}}},_updateGrid:function(init,deferUpdateOverride){var dataSource=this._ds,shouldUpdate=deferUpdateOverride||this.options.deferUpdate===false,promise;if(!init&&!shouldUpdate){return}this._showLoadingIndicator();if(init){promise=dataSource.initialize()}else{promise=dataSource.update()}return promise},_onGridUpdated:function(){var dataSource=this._ds,options;this._createTableView(dataSource);options=this._configureOptions(dataSource);this._renderGrid(options)},_renderEmptyGrid:function(){var options;options=$.extend(true,{},this.options.gridOptions);options.width=this.options.width;options.height=this.options.height;this.element.igGrid(options)},_renderGrid:function(options){var id=this.element.attr("id"),grid,container;grid=this.grid();if(grid){this._gridScrollOffsets.top=grid.scrollContainer().scrollTop();this._gridScrollOffsets.left=$("#"+id+"_hscroller").scrollLeft();this.element.igGrid("destroy");this.element.empty()}this.element.igGrid(options);container=this.grid().container();container.addClass(this.css.pivotGrid);this._makeDroppable(container)},_rerenderColgroups:function(){var grid=this.grid(),go=grid.options,headersTbl=grid.headersTable();this._gridRerenderColgroups.apply(grid,arguments);if(go.height!==null&&go.fixedHeaders===true&&go.showHeader){this._renderExtraColInColgroup(headersTbl.children("colgroup"))}this._measureHeaders(grid._oldCols||go.columns);this._renderExtraColInColgroup(grid.element.children("colgroup"));if(go.height!==null&&go.fixedFooters===true&&go.showFooter){this._renderExtraColInColgroup(grid.footersTable().children("colgroup"))}return this._updateDOMOnDataRendered(grid.element)},_renderExtraColInColgroup:function(colgroup){var i,col,extraColsCount=this._rowsMatrix.length>0?this._rowsMatrix[0].length:1;for(i=0;i").prependTo(colgroup).attr("data-skip","true")}if(extraColsCount){colgroup.attr("data-cols-injected","true")}},_onGridHeadersRendered:function(event,ui){var $this=this,headers=ui.owner._oldCols,table=ui.table,id=this.element.attr("id"),appliedColumnSortDirectionsMap,first,firstParent,rowsCellColSpan,rowsCellRowSpan,columnsCellColSpan,filtersCellColSpan,row,droppableOptions,dropArea,header,dataSource=this._ds,colgroup,i,length,sortableHeaders;table.addClass(this.css.pivotGrid);ui.owner._renderRecord=function(data,rowIndex){return $this._renderPivotRecord.call(this,$this._rowsMatrix,data,rowIndex)};this._gridRerenderColgroups=ui.owner._rerenderColgroups;ui.owner._rerenderColgroups=function(){$this._rerenderColgroups.apply($this,arguments)};if(headers===null||headers===undefined){headers=ui.owner.options.columns}appliedColumnSortDirectionsMap={};$.each(this._tableView.appliedColumnSortDirections(),function(ind,csd){appliedColumnSortDirectionsMap[csd.tupleIndex]=csd.sortDirection});this._processHeaderMarkupRecursive(this.grid().element[0].id,headers,appliedColumnSortDirectionsMap,this._tableView.appliedSortDirectionsMap());first=table.find("tr").first();firstParent=first.parent();rowsCellColSpan=this._rowsMatrix.length>0?this._rowsMatrix[0].length:1;rowsCellRowSpan=this._maxLevel;columnsCellColSpan=ui.owner.options.columns.length;filtersCellColSpan=rowsCellColSpan+columnsCellColSpan;if(table.find(".ui-igpivot-droparea[data-role=rows], "+".ui-igpivot-droparea[data-role=columns], "+".ui-igpivot-droparea[data-role=measures], "+".ui-igpivot-droparea[data-role=filters]").length===0){ droppableOptions=this._createDropAreaOptions();if(!this.options.hideRowsDropArea){header=$("").prependTo(first);header.height(header.height());dropArea=$("
    ").appendTo(header);if(!this.options.disableRowsDropArea){dropArea.droppable(droppableOptions)}}else{$("").prependTo(first)}if(!this.options.hideColumnsDropArea||!this.options.hideMeasuresDropArea){row=$("").prependTo(firstParent)}if(!this.options.hideColumnsDropArea){header=$("").prependTo(row);dropArea=$("
      ").appendTo(header);if(!this.options.disableColumnsDropArea){dropArea.droppable(droppableOptions);if($("#"+id+"_columns_overlay").length<1){$("
      ").appendTo(this.element).droppable(droppableOptions)}}}else if(!this.options.hideMeasuresDropArea){$("").prependTo(row)}if(!this.options.hideMeasuresDropArea){header=$("").prependTo(row);dropArea=$("
        ").appendTo(header);if(!this.options.disableMeasuresDropArea){dropArea.droppable(droppableOptions)}}else if(!this.options.hideColumnsDropArea){$("").prependTo(row)}if(!this.options.hideFiltersDropArea){row=$("").prependTo(firstParent);header=$("").prependTo(row);dropArea=$("
          ").appendTo(header);if(!this.options.disableFiltersDropArea){dropArea.droppable(droppableOptions)}}}else{$("#"+id+"_rows").attr("rowSpan",rowsCellRowSpan).attr("colSpan",rowsCellColSpan);$("#"+id+"_columns").attr("rowSpan",1).attr("colSpan",columnsCellColSpan);$("#"+id+"_measures").attr("rowSpan",1).attr("colSpan",rowsCellColSpan);$("#"+id+"_fiters").attr("rowSpan",1).attr("colSpan",filtersCellColSpan)}colgroup=table.find("colgroup");if(colgroup.length===0){if(this.grid()._isMultiColumnGrid){length=table.find("th[data-isheadercell]").length}else{length=headers.length}colgroup="";for(i=0;i"}colgroup+="";colgroup=$(colgroup).prependTo(table)}this._renderExtraColInColgroup(colgroup);if(this.options.allowSorting){sortableHeaders=table.find(".ui-igpivotgrid-header[data-sort]");sortableHeaders.children(".ui-iggrid-headertext,.ui-iggrid-sortindicator").bind("click",function(evt){$this._onSort(evt)});sortableHeaders.filter("[data-axis='empty_axis']").bind("click",function(evt){$this._onSort(evt)})}if(this.options.allowHeaderColumnsSorting){table.find(".ui-igpivotgrid-header[data-sortheader]").children(".ui-iggrid-headertext,.ui-iggrid-sortindicator").bind("click",function(evt){$this._onSortHeader(evt)})}if(!this.options.hideFiltersDropArea){this._fillDropArea("#"+id+"_filters .ui-igpivot-droparea",dataSource.filters(),this.options.disableFiltersDropArea,this.options.disableFiltersDropArea?"disabledFiltersHeader":"filtersHeader")}if(!this.options.hideRowsDropArea){this._fillDropArea("#"+id+"_rows .ui-igpivot-droparea",dataSource.rowAxis(),this.options.disableRowsDropArea,this.options.disableRowsDropArea?"disabledRowsHeader":"rowsHeader")}if(!this.options.hideColumnsDropArea){this._fillDropArea("#"+id+"_columns .ui-igpivot-droparea",dataSource.columnAxis(),this.options.disableColumnsDropArea,this.options.disableColumnsDropArea?"disabledColumnsHeader":"columnsHeader")}if(!this.options.hideMeasuresDropArea){this._fillDropArea("#"+id+"_measures .ui-igpivot-droparea",dataSource.measures(),this.options.disableMeasuresDropArea,this.options.disableMeasuresDropArea?"disabledMeasuresHeader":"measuresHeader")}this._measureHeaders(headers);table.find("thead span.ui-iggrid-headerbutton.ui-icon").bind("click",function(evt){$this._onToggleTupleMember(evt);return false});this._triggerPivotGridHeadersRendered(event,ui)},_renderPivotRecord:function(matrix,data,rowIndex){var i,key=this.options.primaryKey,temp,grid=this,dstr="",cols=this.options.columns,noVisibleColumns,str="",cellClass;dstr+=""+temp;cellClass=true}dstr=grid._editCellStyle(dstr,data,this.key,this,cellClass)}else{dstr+=grid._addCellStyle(data,this.key?this.key:colIndex,cols[colIndex])+">"+grid._renderCell(data[this.key?this.key:colIndex],this,data)}dstr+=""});if(noVisibleColumns){dstr+=""}dstr+="";return dstr},_processHeaderMarkupRecursive:function(tableId,headers,columnSortDirectionsMap,levelSortDirectionsMap){var i,headerCell,expanded,expandable,sortDirection,expandIcon,collapseIcon,allowSorting,allowHeaderColumnsSorting,sortRowsAscendingIcon,sortRowsDescendingIcon,sortHeaderColumnsAscendingIcon,sortHeaderColumnsDescendingIcon;allowSorting=this.options.allowSorting;allowHeaderColumnsSorting=this.options.allowHeaderColumnsSorting;expandIcon="";collapseIcon="";sortRowsAscendingIcon="";sortRowsDescendingIcon="";sortHeaderColumnsAscendingIcon="";sortHeaderColumnsDescendingIcon="";for(i=0;i0){headerCell.css("padding-top",this.options.compactColumnHeaderIndentation*headers[i].levelNumber)}expandable=headers[i].expandable;expanded=headers[i].expanded;if(expandable&&!expanded){$(expandIcon).insertBefore(headerCell.children(".ui-iggrid-headertext"))}else if(expandable&&expanded){$(collapseIcon).insertBefore(headerCell.children(".ui-iggrid-headertext"));sortDirection=levelSortDirectionsMap[headers[i].axisName];if(sortDirection){sortDirection=sortDirection[headers[i].hierarchyNumber];if(sortDirection){sortDirection=sortDirection[headers[i].levelNumber]}}if(sortDirection==="ascending"){headerCell.attr("data-sortheader","ascending");$(sortHeaderColumnsAscendingIcon).appendTo(headerCell)}else if(sortDirection==="descending"){headerCell.attr("data-sortheader","descending");$(sortHeaderColumnsDescendingIcon).appendTo(headerCell)}else if(allowHeaderColumnsSorting){headerCell.attr("data-sortheader","")}}if(!expandable||expandable&&!expanded){sortDirection=columnSortDirectionsMap[headers[i].tupleIndex];if(sortDirection==="ascending"){headerCell.attr("data-sort","ascending");$(sortRowsAscendingIcon).appendTo(headerCell)}else if(sortDirection==="descending"){headerCell.attr("data-sort","descending");$(sortRowsDescendingIcon).appendTo(headerCell)}else if(allowSorting){headerCell.attr("data-sort","")}}if(headers[i].group){this._processHeaderMarkupRecursive(tableId,headers[i].group,columnSortDirectionsMap,levelSortDirectionsMap)}}},_fillDropArea:function(dropAreaSelector,items,isDisabled,emptyMessageOption){var dropArea=$(dropAreaSelector),i,length;dropArea.empty();if(items.length>0){for(i=0,length=items.length;i0?this._rowsMatrix[0].length:1;if(this.options.defaultRowHeaderWidth){table.find("col:lt("+extraColsCount+")").width(this.options.defaultRowHeaderWidth);if(!$.ig.util.isTouchDevice()){table.find(".ui-igpivot-droparea[data-role=rows], "+".ui-igpivot-droparea[data-role=columns], .ui-igpivot-droparea[data-role=measures], "+".ui-igpivot-droparea[data-role=filters]").each(function(){$this._measureDropArea($(this))})}else{table.find(".ui-igpivot-droparea[data-role=rows], "+".ui-igpivot-droparea[data-role=columns], .ui-igpivot-droparea[data-role=measures], "+".ui-igpivot-droparea[data-role=filters]").each(function(ind,el){areaWrapper=$("
          ").css("width",$(el).width()+"px").css("height",$(el).height()+"px");$(el).wrap(areaWrapper).parent("div").igScroll()})}extraColsWidth=this.options.defaultRowHeaderWidth*extraColsCount}else{maxWidth=0;table.find("#"+id+"_measures, #"+id+"_rows").each(function(ind,el){var clone,parent;clone=$(el).clone(false);clone.children(".ui-igpivot-droparea").append("
        • ");parent=$("
          ").append(clone).css({position:"absolute",visibility:"hidden",height:"auto",width:"auto",overflow:"visible","text-overflow":"clip",left:"-1000px",top:"-1000px"}).appendTo(document.body);maxWidth=Math.max(maxWidth,parent.outerWidth(true));parent.remove()});table.find("col:lt("+extraColsCount+")").width(Math.ceil(maxWidth/extraColsCount));extraColsWidth=maxWidth}if(grid.options.defaultColumnWidth){table.find("col:gt("+extraColsCount+")").width(grid.options.defaultColumnWidth)}else{header=table.find("th:not(.ui-igpivot-dropareaheader):first");measureTh=$("").css({"font-family":header.css("fontFamily"),"font-size":header.css("fontSize"),"font-size-adjust":header.css("fontSizeAdjust"),"font-stretch":header.css("fontStretch"),"font-style":header.css("fontStyle"),"font-variant":header.css("fontVariant"),"font-weight":header.css("fontWeight")}).appendTo(document.body);colsWidth=this._measureHeadersRecursive(this.grid().element[0].id,headers,measureTh,extraColsCount);measureTh.remove()}if(table.find("col").length-extraColsCount===1||extraColsWidth+colsWidth");parentContainer=$("
          ").append(parentClone).css({position:"absolute",visibility:"hidden",height:"auto",width:"auto",overflow:"visible","text-overflow":"clip",left:"-1000px",top:"-1000px"}).appendTo(document.body);parentWidth=parent.width();if(parentContainer.find(".ui-igpivot-droparea").outerWidth(true)>parentWidth){dropArea.css({display:"inline-block",overflow:"hidden",margin:0,padding:0});scrollLeft=$("").insertBefore(dropArea);scrollRight=$("
          ").insertAfter(dropArea);if(0===parentWidth){dropArea.width("auto")}else{dropArea.width(parentWidth-scrollLeft.outerWidth(true)-scrollRight.outerWidth(true))}left=this._headerScrollOffsets[id]||0;minLeft=0;maxLeft=dropArea[0].scrollWidth;scrollToLeft=function(){if(leftmaxLeft){left=maxLeft}dropArea.scrollLeft(left);$this._headerScrollOffsets[id]=left};scrollToLeft();mouseover=this._getEvent("mouseover");mouseout=this._getEvent("mouseout");scrollLeft.bind(mouseover,function(){timer=setInterval(function(){left-=$this._const.hoverScrollOffset;scrollToLeft()},$this._const.hoverScrollInterval)}).bind(mouseout,function(){clearInterval(timer)});scrollRight.bind(mouseover,function(){timer=setInterval(function(){left+=$this._const.hoverScrollOffset;scrollToLeft()},$this._const.hoverScrollInterval)}).bind(mouseout,function(){clearInterval(timer)})}else{delete this._headerScrollOffsets[id]}parentContainer.remove()},_getKPIs:function(dataSource){var measures,kpi,kpiObject,KPIs=[],i;measures=dataSource.measures();for(i=measures.length-1;i>=0;i--){kpiObject={};if("KpiMeasure"===measures[i].getType().typeName()){kpi=dataSource.getCoreElements(function(el){return el.uniqueName()===measures[i].uniqueName()},$.ig.KpiMeasure.prototype.getType())}if(undefined!==kpi&&1===kpi.length){if(null!==kpi[0].graphic()){kpiObject.name=kpi[0].caption();kpiObject.graphic=kpi[0].graphic();KPIs.push(kpiObject)}}}return KPIs},_getKPICells:function(KPIs,dataSource){var headers,allColumns,columnIndexes,rowCells,allRows,i,j,k,m,rowspan,colspan,colspanValue,colspanOffset,rows;if(0!==KPIs.length){if(1===dataSource.measures().length){KPIs[0].cells=$("."+this.css.pivotGrid+" td")}else{for(m=KPIs.length-1;m>=0;m--){KPIs[m].cells=$();headers=$();headers=headers.add("th.ui-igpivotgrid-header[title='"+KPIs[m].name+"']");switch(dataSource.getMeasureListLocation()){case"rows":for(k=0;k1?colspan-1:0}allRows=$("."+this.css.pivotGrid+" tbody tr");rowCells=allRows.find("td");for(i=0;ival){x=32}else{x=16}switch(KPIs[i].graphic.toLowerCase()){case"road signs":y=0;break;case"traffic light":y=16;break;case"variance arrow":y=32;break;case"standart arrow":y=48;break;case"status arrow - ascending":y=64;break;case"status arrow - descending":y=80;break;case"faces":y=96;break;case"shapes":y=112;break;case"cylinder":y=128;break;case"gauge - ascending":y=144;break;case"gauge - descending":y=160;break;case"thermometer":y=176;break}imgString+="-"+x+"px -"+y+"px";imgString+="'>";KPIs[i].cells.eq(j)[0].innerHTML=imgString}}}},_adjustRowHeadersWidth:function(grid){var maxWidth=0,childrenWidth,headers,headerChildren,rowsDropAreaWidth,row;if(this.options.height!==null){headers=grid.element.find("th")}else{headers=grid.headersTable().find("tbody th")}headers.each(function(){childrenWidth=parseInt($(this).css("border-right-width").replace("px",""),10);headerChildren=$(this).children();headerChildren.each(function(){childrenWidth+=parseInt($(this).css("margin-left").replace("px",""),10);childrenWidth+=$(this).width()});maxWidth=maxWidth span[data-expand]").bind("click",function(evt){$this._onToggleTupleMember(evt);return false});table.find("tbody th > span[data-item-expand]").bind("click",function(evt){$this._onToggleTupleMember(evt);return false});if(this.options.allowHeaderRowsSorting){if(this.options.rowHeadersLayout==="tree"){headerCell="tbody th.ui-igpivotgrid-header[data-item-sortheader],"+"tbody th.ui-igpivotgrid-header[data-sortheader]";sortableItems=".ui-iggrid-sortindicator";headerItemCells=table.find(headerCell).find("span[data-item-expand]");for(i=0;i"));colAttributes=headersCols.eq(i)[0].attributes;for(j=0;j").appendTo(this.element).droppable(overlayDropAreaOptions)}}if(!this.options.disableMeasuresDropArea){if($("#"+id+"_measures_overlay").length<1){$("
          ").appendTo(this.element).droppable(overlayDropAreaOptions)}}this._positionOverlayDropAreas()},_onDataRendered:function(event,ui){this._updateDOMOnDataRendered(ui.owner.element);this._triggerPivotGridRendered(event,ui)},_positionOverlayDropAreas:function(){var id=this.element.attr("id"),headersTable=this.grid().headersTable().find("thead"),dataTable=this.grid().element.find("tbody"),firstColumnHeaderPosition,firstRowHeaderPosition,columnHeadersHeight,rowHeadersWidth,measuresArea,container,containerParent,containerPosition,columnsOverlayTop,columnsOverlayLeft,columnHeadersWidth,measuresHeadersWidth,dataTableHeight,rowsOverlayTop,rowsOverlayLeft,containerId,rowHeight,ht,firstRow,rowsProps,columnsProps,measuresProps,absoluteOffset;firstColumnHeaderPosition=headersTable.find("th[data-axis]:first").igPosition();columnHeadersHeight=0;if($.ig.util.isFF){columnHeadersHeight=headersTable.find("tr[data-header-row], tr[data-mch-level]")[0].scrollHeight}else{headersTable.find("tr[data-header-row], tr[data-mch-level]").each(function(ind,el){columnHeadersHeight+=el.scrollHeight})}if(this.options.height!==null||this.options.width!==null){containerId=this.element.attr("id");container=$("#"+containerId+"_container").length===1?$("#"+containerId+"_container"):$("#"+containerId+"_table_container");containerParent=container.parent();containerPosition=container.igPosition()}if(this.options.height!==null){firstRowHeaderPosition={top:this.grid().headersTable().height()+containerPosition.top,left:containerPosition.left}}else if(this.options.width!==null){rowHeight=this.grid().headersTable().find("tr").eq(0).height();if(this.grid().headersTable().find("tr[data-mch-level]").length===0){firstRowHeaderPosition={top:3*rowHeight+containerPosition.top,left:containerPosition.left}}else{firstRowHeaderPosition={top:2*rowHeight+this.grid().headersTable().find("tr[data-mch-level]").length*this.grid().headersTable().find("tr[data-mch-level]").eq(0).height()+containerPosition.top,left:containerPosition.left}}}if(this.options.height!==null||this.options.width!==null){columnsOverlayTop=firstColumnHeaderPosition.top+containerPosition.top+2*parseInt(containerParent.css("paddingTop")[0].replace("px",""),10);columnsOverlayLeft=firstColumnHeaderPosition.left+containerPosition.left;rowsOverlayTop=firstRowHeaderPosition.top+2*parseInt(containerParent.css("paddingTop")[0].replace("px",""),10);rowsOverlayLeft=firstRowHeaderPosition.left}else{firstRowHeaderPosition=this.grid().headersTable().find("tbody tr:first").igPosition();columnsOverlayTop=firstColumnHeaderPosition.top+headersTable.parent().parent().igPosition().top;columnsOverlayLeft=firstColumnHeaderPosition.left+headersTable.parent().parent().igPosition().left;rowsOverlayTop=firstRowHeaderPosition.top+headersTable.parent().parent().igPosition().top;rowsOverlayLeft=firstRowHeaderPosition.left+headersTable.parent().parent().igPosition().left}if(this.options.hideRowsDropArea&&this.options.hideColumnsDropArea&&this.options.hideMeasuresDropArea&&this.options.hideFiltersDropArea){firstRow=headersTable.find("tr").eq(0).find("th")}else{firstRow=headersTable.find("tr").eq(1).find("th")}ht=firstRow.eq(1);if(headersTable[0].scrollWidth<=this.element.width()){columnHeadersWidth=ht.width()+2*(parseInt(ht.css("paddingLeft")[0].substr(0),10)+parseInt(ht.css("borderLeftWidth")[0].substr(0),10))}else{columnHeadersWidth=ht.width()+2*(parseInt(ht.css("paddingLeft")[0].substr(0),10)+parseInt(ht.css("borderLeftWidth")[0].substr(0),10))-(headersTable[0].scrollWidth-this.element.width())}measuresArea=firstRow.eq(0);dataTableHeight=this.element.height()-rowsOverlayTop>dataTable[0].scrollHeight?dataTable[0].scrollHeight:this.element.height()-headersTable.height();rowHeadersWidth=measuresArea.width()+2*(parseInt(measuresArea.css("paddingLeft")[0].replace("px",""),10)+parseInt(measuresArea.css("borderLeftWidth")[0].replace("px",""),10));if(headersTable[0].scrollWidth<=this.element.width()){measuresHeadersWidth=dataTable[0].scrollWidth-rowHeadersWidth}else{measuresHeadersWidth=dataTable[0].scrollWidth-rowHeadersWidth-(headersTable[0].scrollWidth-this.element.width())}absoluteOffset=this._calculateOffset(this.element);rowsProps={top:rowsOverlayTop+absoluteOffset.top,left:absoluteOffset.left,width:rowHeadersWidth,height:dataTableHeight};columnsProps={top:columnsOverlayTop+absoluteOffset.top,left:rowHeadersWidth+absoluteOffset.left,width:columnHeadersWidth,height:columnHeadersHeight};measuresProps={top:rowsOverlayTop+absoluteOffset.top,left:rowHeadersWidth+absoluteOffset.left,width:measuresHeadersWidth,height:dataTableHeight};$("#"+id+"_rows_overlay").css(rowsProps);$("#"+id+"_columns_overlay").css(columnsProps);$("#"+id+"_measures_overlay").css(measuresProps);headersTable.parent().parent().on("scroll",{table:headersTable,id:id,rowHeadersWidth:rowHeadersWidth,columnHeadersWidth:columnHeadersWidth,rowsOverlayLeft:rowsOverlayLeft,measuresHeadersWidth:measuresHeadersWidth,columnsOverlayLeft:columnsOverlayLeft},this._handlePivotGridScrolling)},_calculateOffset:function(jQueryObj){var el=jQueryObj,offset={top:0,left:el.igOffset().left};while(el[0].tagName&&el.scrollParent()[0].firstChild.name!=="html"){offset.top+=el.scrollParent().scrollTop();offset.left+=el.scrollParent().scrollLeft();el=el.scrollParent()}return offset},_handlePivotGridScrolling:function(evt){var scrollTable=evt.data.table.parent().parent(),id=evt.data.id,offset=scrollTable.scrollLeft(),rowHeadersWidth=evt.data.rowHeadersWidth,columnHeadersWidth=evt.data.columnHeadersWidth,rowsOverlayLeft=evt.data.rowsOverlayLeft,measuresHeadersWidth=evt.data.measuresHeadersWidth,columnsOverlayLeft=evt.data.columnsOverlayLeft;$("#"+id+"_columns_overlay").css({left:columnsOverlayLeft-(rowHeadersWidth>offset?offset:rowHeadersWidth),width:rowHeadersWidth>offset?columnHeadersWidth+offset:scrollTable.width()});$("#"+id+"_rows_overlay").css({width:rowHeadersWidth-offset});$("#"+id+"_measures_overlay").css({left:rowsOverlayLeft+rowHeadersWidth-(rowHeadersWidth>offset?offset:rowHeadersWidth),width:rowHeadersWidth>offset?measuresHeadersWidth+offset:scrollTable.width()})},_updateDataSource:function(deferUpdateOverride){this._updateGrid(false,deferUpdateOverride)},_shouldAppendToTarget:function(target,dragged){return target.igOffset().left+target.width()/21&&this.options.rowHeadersLayout==="tree"&&this._ds.dataSource().measureListLocation()===0)&&(this._performsToggle||this._ds.isModified())){return}axisName=header.attr("data-axis");memberIndex=parseInt(header.attr("data-member"),10);tupleIndex=parseInt(header.attr("data-tuple"),10);expand=target.attr("data-expand")==="true";if($this.options.rowHeadersLayout==="tree"&&target.attr("data-item-expand")){expand=target.attr("data-item-expand")==="true";memberIndex+=1}if(expand){noCancel=this._triggerTupleMemberExpanding(evt,axisName,memberIndex,tupleIndex);if(noCancel){this._showLoadingIndicator();setTimeout(function(){$this._ds.expandTupleMember(axisName,tupleIndex,memberIndex);$this._performsToggle=true;$this._updateGrid(false,true).done(function(){$this._triggerTupleMemberExpanded(null,axisName,memberIndex,tupleIndex)}).always(function(){$this._performsToggle=false})})}}else{noCancel=this._triggerTupleMemberCollapsing(evt,axisName,memberIndex,tupleIndex);if(noCancel){this._ds.collapseTupleMember(axisName,tupleIndex,memberIndex);this._performsToggle=true;this._updateGrid(false,true).done(function(){$this._triggerTupleMemberCollapsed(evt,axisName,memberIndex,tupleIndex)}).always(function(){$this._performsToggle=false})}}},_onSort:function(evt){var $this=this,header=$(evt.target).closest("th"),axisName,tupleIndex,tupleIdentifier,axis,axes,tuple,memberNames,columnSortDirections,columnSortDirection,levelSortDirections,options,i,noCancel,en;if(this._ds.isModified()){return}axisName=header.attr("data-axis");tupleIndex=parseInt(header.attr("data-tuple"),10);if(axisName!==this._const.emptyCell.axisName){axes=this._ds.result().axes().__inner;for(i=0;i0){this._tableView.columnSortDirections([])}this._tableView.levelSortDirections(levelSortDirections);this._tableView.initialize();options=this._configureOptions(this._ds);this._renderGrid(options);this._triggerHeadersSorted(evt,levelSortDirections,this._tableView.appliedLevelSortDirections())}},expandTupleMember:function(tupleLocation,tupleIndex,memberIndex,shouldUpdate){var dataSource=this._ds,hasColumns,hasRows,axisName;hasColumns=dataSource.columnAxis().length>0;hasRows=dataSource.rowAxis().length>0;if(this._ds.isModified()){return false}if(tupleLocation==="columnAxis"&&hasColumns){if(hasColumns){axisName="Axis0"}}else if(tupleLocation==="rowAxis"&&hasRows){if(hasColumns){axisName="Axis1"}else{axisName="Axis0"}}if(!axisName){throw new Error(this._getLocaleValue("noSuchAxis"))}this._ds.expandTupleMember(axisName,tupleIndex,memberIndex);if(shouldUpdate){this._updateGrid(null,true)}},collapseTupleMember:function(tupleLocation,tupleIndex,memberIndex,shouldUpdate){var dataSource=this._ds,hasColumns,hasRows,axisName;hasColumns=dataSource.columnAxis().length>0;hasRows=dataSource.rowAxis().length>0;if(this._ds.isModified()){return false}if(tupleLocation==="columnAxis"&&hasColumns){if(hasColumns){axisName="Axis0"}}else if(tupleLocation==="rowAxis"&&hasRows){if(hasColumns){axisName="Axis1"}else{axisName="Axis0"}}if(!axisName){throw new Error(this._getLocaleValue("noSuchAxis"))}this._ds.collapseTupleMember(axisName,tupleIndex,memberIndex);if(shouldUpdate){this._updateGrid()}},appliedColumnSortDirections:function(){return this._tableView?this._tableView.appliedColumnSortDirections():[]},appliedLevelSortDirections:function(){return this._tableView?this._tableView.appliedLevelSortDirections():[]},destroy:function(){var grid=this.grid();if(grid){grid.destroy()}$("#"+this.element.attr("id")+"_container_block").remove();this.element.removeClass(this.css.pivotGrid);$(this._ds).unbind("initialized.pivotgrid"+this.timestamp);$(this._ds).unbind("updated.pivotgrid"+this.timestamp);this._superApply(arguments)},_triggerPivotGridHeadersRendered:function(evt,ui){var args={owner:this,grid:ui.owner,table:ui.table};this._trigger("pivotGridHeadersRendered",evt,args)},_triggerPivotGridRendered:function(evt,ui){var args={owner:this,grid:ui.owner};this._trigger("pivotGridRendered",evt,args)},_triggerTupleMemberExpanding:function(evt,axisName,memberIndex,tupleIndex){var args={owner:this,dataSource:this._ds,axisName:axisName,memberIndex:memberIndex,tupleIndex:tupleIndex};return this._trigger("tupleMemberExpanding",evt,args)},_triggerTupleMemberExpanded:function(evt,axisName,memberIndex,tupleIndex){var args={owner:this,dataSource:this._ds,axisName:axisName,memberIndex:memberIndex,tupleIndex:tupleIndex};this._trigger("tupleMemberExpanded",evt,args)},_triggerTupleMemberCollapsing:function(evt,axisName,memberIndex,tupleIndex){var args={owner:this,dataSource:this._ds,axisName:axisName,memberIndex:memberIndex,tupleIndex:tupleIndex};return this._trigger("tupleMemberCollapsing",evt,args)},_triggerTupleMemberCollapsed:function(evt,axisName,memberIndex,tupleIndex){var args={owner:this,dataSource:this._ds,axisName:axisName,memberIndex:memberIndex,tupleIndex:tupleIndex};this._trigger("tupleMemberCollapsed",evt,args)},_triggerSorting:function(evt,columnSortDirections){var args={owner:this,sortDirections:columnSortDirections};return this._trigger("sorting",evt,args)},_triggerSorted:function(evt,columnSortDirections,appliedColumnSortDirections){var args={owner:this,sortDirections:columnSortDirections,appliedSortDirections:appliedColumnSortDirections};this._trigger("sorted",evt,args)},_triggerHeadersSorting:function(evt,levelSortDirections){var args={owner:this,levelSortDirections:levelSortDirections};return this._trigger("headersSorting",evt,args)},_triggerHeadersSorted:function(evt,levelSortDirections,appliedLevelSortDirections){var args={owner:this,levelSortDirections:levelSortDirections,appliedLevelSortDirections:appliedLevelSortDirections};this._trigger("headersSorted",evt,args)}});$.extend(true,$.ui.igPivotGrid.prototype,$.ig.Pivot._pivotShared);$.extend($.ui.igPivotGrid,{version:"19.1.20"});return $});