mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-04-21 21:31:12 +08:00
Decomposed some of the classes so that the constructors worked properly
added definitions for missing ngGrid interfaces and created tests for them
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
/// <reference path="ng-grid.d.ts" />
|
||||
/// <reference path="ng-grid.d.ts" />
|
||||
/// <reference path="../angularjs/angular.d.ts" />
|
||||
|
||||
var options1: ngGrid.IGridOptions = {
|
||||
data: [{ 'Name': 'Bob' }, { 'Name': 'Jane' }]
|
||||
@@ -25,3 +26,288 @@ var options4: ngGrid.IGridOptions = {
|
||||
currentPage: 1
|
||||
}
|
||||
};
|
||||
|
||||
var columnDef: ngGrid.IColumnDef = {
|
||||
width:{},
|
||||
minWidth:{},
|
||||
visible:false,
|
||||
field:'',
|
||||
displayName:'',
|
||||
sortable:false,
|
||||
resizable:false,
|
||||
groupable:false,
|
||||
pinnable:false,
|
||||
editableCellTemplate:'',
|
||||
enableCellEdit:false,
|
||||
cellEditableCondition:'',
|
||||
sortFn:(a:any, b:any):number=> { return 0 },
|
||||
cellTemplate:'',
|
||||
cellClass:'',
|
||||
headerClass:'',
|
||||
headerCellTemplate:'',
|
||||
cellFilter:'',
|
||||
aggLabelFilter:'',
|
||||
pinned:false
|
||||
}
|
||||
|
||||
var searchProvider: ngGrid.ISearchProvider = <ngGrid.ISearchProvider>{};
|
||||
searchProvider.fieldMap = {};
|
||||
searchProvider.extFilter = false;
|
||||
searchProvider.evalFilter();
|
||||
|
||||
var nr:number;
|
||||
|
||||
var selectionProvider: ngGrid.ISelectionProvider = <ngGrid.ISelectionProvider>{};
|
||||
selectionProvider.multi = false;
|
||||
selectionProvider.selectedItems = [];
|
||||
selectionProvider.selectedIndex = 1;
|
||||
selectionProvider.lastClickedRow = {};
|
||||
selectionProvider.ignoreSelectedItemChanges = false;
|
||||
selectionProvider.pKeyParser = <ng.ICompiledExpression>{};
|
||||
selectionProvider.ChangeSelection({}, {});
|
||||
nr = selectionProvider.getSelection({});
|
||||
nr = selectionProvider.getSelectionIndex({});
|
||||
selectionProvider.setSelection(<ngGrid.IRow>{}, false);
|
||||
selectionProvider.toggleSelectAll(true, false, false);
|
||||
|
||||
var eventProvider: ngGrid.IEventProvider = <ngGrid.IEventProvider>{};
|
||||
eventProvider.colToMove = <ngGrid.IColumn>{};
|
||||
eventProvider.groupToMove = {};
|
||||
eventProvider.assignEvents();
|
||||
eventProvider.assignGridEventHandlers();
|
||||
eventProvider.dragStart({});
|
||||
eventProvider.dragOver({});
|
||||
eventProvider.setDraggables();
|
||||
eventProvider.onGroupMouseDown({});
|
||||
eventProvider.onGroupDrop({});
|
||||
eventProvider.onHeaderMouseDown({});
|
||||
eventProvider.onHeaderDrop({});
|
||||
|
||||
var aggregate: ngGrid.IAggregate = <ngGrid.IAggregate>{};
|
||||
aggregate.rowIndex = 0;
|
||||
aggregate.offsetTop = 0;
|
||||
aggregate.entity = {};
|
||||
aggregate.label = '';
|
||||
aggregate.field = '';
|
||||
aggregate.depth = 0;
|
||||
aggregate.parent = {};
|
||||
aggregate.children = [];
|
||||
aggregate.aggChildren = [];
|
||||
aggregate.aggIndex = 0;
|
||||
aggregate.collapsed = false;
|
||||
aggregate.groupInitState = false;
|
||||
aggregate.rowFactory = <ngGrid.IRowFactory>{};
|
||||
aggregate.rowHeight = 0;
|
||||
aggregate.isAggRow = false;
|
||||
aggregate.offsetLeft = 0;
|
||||
aggregate.aggLabelFilter = {};
|
||||
|
||||
var rowConfig: ngGrid.IRowConfig = <ngGrid.IRowConfig>{};
|
||||
rowConfig.enableCellSelection = false;
|
||||
rowConfig.enableRowSelection = false;
|
||||
rowConfig.jqueryUITheme = false;
|
||||
rowConfig.rowClasses = [''];
|
||||
rowConfig.rowHeight = 0;
|
||||
rowConfig.selectWithCheckboxOnly = false;
|
||||
rowConfig.selectedItems = [];
|
||||
rowConfig.afterSelectionChangeCallback();
|
||||
rowConfig.beforeSelectionChangeCallback();
|
||||
|
||||
var renderedRange: ngGrid.IRenderedRange = <ngGrid.IRenderedRange>{};
|
||||
renderedRange.bottomRow = 0;
|
||||
renderedRange.topRow = 0;
|
||||
|
||||
var rowFactory: ngGrid.IRowFactory = <ngGrid.IRowFactory>{};
|
||||
rowFactory.aggCache= null;
|
||||
rowFactory.dataChanged= false;
|
||||
rowFactory.groupedData= null;
|
||||
rowFactory.numberOfAggregates = 0;
|
||||
rowFactory.parentCache= [];
|
||||
rowFactory.parsedData= [];
|
||||
rowFactory.renderedRange = <ngGrid.IRenderedRange>{};
|
||||
rowFactory.rowConfig = <ngGrid.IRowConfig>{};
|
||||
rowFactory.rowHeight = 0;
|
||||
rowFactory.selectionProvider = <ngGrid.ISelectionProvider>{};
|
||||
rowFactory.UpdateViewableRange(<ngGrid.IRenderedRange>{});
|
||||
aggregate = rowFactory.buildAggregateRow({}, 0);
|
||||
var row:ngGrid.IRow = rowFactory.buildEntityRow({}, 0);
|
||||
rowFactory.filteredRowsChanged();
|
||||
rowFactory.fixRowCache();
|
||||
rowFactory.getGrouping({});
|
||||
rowFactory.parseGroupData({});
|
||||
rowFactory.renderedChange();
|
||||
rowFactory.renderedChangeNoGroups();
|
||||
|
||||
var dimension: ngGrid.IDimension = <ngGrid.IDimension>{};
|
||||
dimension.outerHeight = 0;
|
||||
dimension.outerWidth = 0;
|
||||
dimension.autoFitHeight = false;
|
||||
|
||||
var elmDimension: ngGrid.IElementDimension = <ngGrid.IElementDimension>{};
|
||||
elmDimension.rootMaxH = 0;
|
||||
elmDimension.rootMaxW = 0;
|
||||
elmDimension.rowIndexCellW = 0;
|
||||
elmDimension.rowSelectedCellW = 0;
|
||||
elmDimension.scrollH = 0;
|
||||
elmDimension.scrollW = 0;
|
||||
|
||||
var row: ngGrid.IRow = <ngGrid.IRow>{};
|
||||
row.entity= {};
|
||||
row.config = <ngGrid.IRowConfig>{};
|
||||
row.selectionProvider = <ngGrid.ISelectionProvider>{};
|
||||
row.rowIndex = 0;
|
||||
row.utils= {};
|
||||
row.selected = false;
|
||||
row.cursor = '';
|
||||
row.offsetTop = 0;
|
||||
row.rowDisplayIndex = 0;
|
||||
row.afterSelectionChange();
|
||||
row.beforeSelectionChange();
|
||||
row.setSelection(false);
|
||||
row.continueSelection({});
|
||||
row.ensureEntity({});
|
||||
var b:boolean = row.toggleSelected({});
|
||||
row.alternatingRowClass();
|
||||
var a:any = row.getProperty('');
|
||||
var r:ngGrid.IRow = row.copy();
|
||||
row.setVars(<ngGrid.IRow>{});
|
||||
|
||||
var column: ngGrid.IColumn = <ngGrid.IColumn>{};
|
||||
column.colDef = <ngGrid.IColumnDef>{};
|
||||
column.width = 0;
|
||||
column.groupIndex = 0;
|
||||
column.isGroupedBy = false;
|
||||
column.minWidth = 0;
|
||||
column.maxWidth = 0;
|
||||
column.enableCellEdit = false;
|
||||
column.cellEditableCondition = {};
|
||||
column.headerRowHeight = 0;
|
||||
column.displayName = '';
|
||||
column.index = 0;
|
||||
column.isAggCol = false;
|
||||
column.cellClass = '';
|
||||
column.sortPriority = 0;
|
||||
column.cellFilter = {};
|
||||
column.field = '';
|
||||
column.aggLabelFilter = {};
|
||||
column.visible = false;
|
||||
column.sortable = false;
|
||||
column.resizable = false;
|
||||
column.pinnable = false;
|
||||
column.pinned = false;
|
||||
column.originalIndex = 0;
|
||||
column.groupable = false;
|
||||
column.sortDirection = '';
|
||||
column.sortingAlgorithm = ()=>{};
|
||||
column.headerClass = '';
|
||||
column.cursor = '';
|
||||
column.headerCellTemplate = '';
|
||||
column.cellTemplate = '';
|
||||
var s:string = column.groupedByClass();
|
||||
column.toggleVisible();
|
||||
b = column.showSortButtonUp();
|
||||
b = column.showSortButtonDown();
|
||||
b = column.noSortVisible();
|
||||
b = column.sort({});
|
||||
a = column.gripClick();
|
||||
a = column.gripOnMouseDown({});
|
||||
column.onMouseMove({});
|
||||
column.gripOnMouseUp({});
|
||||
var c:ngGrid.IColumn = column.copy();
|
||||
column.setVars(c);
|
||||
|
||||
var gridScope: ngGrid.IGridScope = <ngGrid.IGridScope>{};
|
||||
gridScope.elementsNeedMeasuring = false;
|
||||
gridScope.columns = [];
|
||||
gridScope.renderedRows = [];
|
||||
gridScope.renderedColumns = [];
|
||||
gridScope.headerRow = {};
|
||||
gridScope.rowHeight = 0;
|
||||
gridScope.jqueryUITheme = {};
|
||||
gridScope.showSelectionCheckbox = false;
|
||||
gridScope.enableCellSelection = false;
|
||||
gridScope.enableCellEditOnFocus = false;
|
||||
gridScope.footer = <ngGrid.IFooter>{};
|
||||
gridScope.selectedItems = [];
|
||||
gridScope.multiSelect = false;
|
||||
gridScope.showFooter = false;
|
||||
gridScope.footerRowHeight = 0;
|
||||
gridScope.showColumnMenu = false;
|
||||
gridScope.forceSyncScrolling = false;
|
||||
gridScope.showMenu = false;
|
||||
gridScope.configGroups = [];
|
||||
gridScope.gridId = '';
|
||||
gridScope.enablePaging = false;
|
||||
gridScope.pagingOptions = <ngGrid.IPagingOptions>{};
|
||||
gridScope.i18n = {};
|
||||
gridScope.selectionProvider = <ngGrid.ISelectionProvider>{};
|
||||
gridScope.adjustScrollLeft(0);
|
||||
gridScope.adjustScrollTop(0, true);
|
||||
gridScope.toggleShowMenu();
|
||||
gridScope.toggleSelectAll();
|
||||
nr = gridScope.totalFilteredItemsLength();
|
||||
a = gridScope.showGroupPanel();
|
||||
nr = gridScope.topPanelHeight();
|
||||
nr = gridScope.viewportDimHeight();
|
||||
gridScope.groupBy(<ngGrid.IColumn>{});
|
||||
gridScope.removeGroup(0);
|
||||
gridScope.togglePin(<ngGrid.IColumn>{});
|
||||
nr = gridScope.totalRowWidth();
|
||||
a = gridScope.headerScrollerDim();
|
||||
|
||||
var gridInstance: ngGrid.IGridInstance = <ngGrid.IGridInstance>{};
|
||||
gridInstance.$canvas = <ng.IAugmentedJQuery>{};
|
||||
gridInstance.$viewport = <ng.IAugmentedJQuery>{};
|
||||
gridInstance.$groupPanel = <ng.IAugmentedJQuery>{};
|
||||
gridInstance.$footerPanel = <ng.IAugmentedJQuery>{};
|
||||
gridInstance.$headerScroller = <ng.IAugmentedJQuery>{};
|
||||
gridInstance.$headerContainer = <ng.IAugmentedJQuery>{};
|
||||
gridInstance.$headers = <ng.IAugmentedJQuery>{};
|
||||
gridInstance.$topPanel = <ng.IAugmentedJQuery>{};
|
||||
gridInstance.$root = <ng.IAugmentedJQuery>{};
|
||||
gridInstance.config = <ngGrid.IGridOptions>{};
|
||||
gridInstance.data = {};
|
||||
gridInstance.elementDims = <ngGrid.IElementDimension>{};
|
||||
gridInstance.eventProvider = <ngGrid.IEventProvider>{};
|
||||
gridInstance.filteredRows = [<ngGrid.IRow>{}];
|
||||
gridInstance.footerController = {};
|
||||
gridInstance.gridId = '';
|
||||
gridInstance.lastSortedColumns = [<ngGrid.IColumn>{}];
|
||||
gridInstance.lateBindColumns = false;
|
||||
gridInstance.maxCanvasHt = 0;
|
||||
gridInstance.prevScrollIndex = 0;
|
||||
gridInstance.prevScrollTop = 0;
|
||||
gridInstance.rootDim = <ngGrid.IDimension>{};
|
||||
gridInstance.rowCache = [<ngGrid.IRow>{}];
|
||||
gridInstance.rowFactory = <ngGrid.IRowFactory>{};
|
||||
gridInstance.rowMap = [<ngGrid.IRow>{}];
|
||||
gridInstance.searchProvider = <ngGrid.ISearchProvider>{};
|
||||
gridInstance.styleProvider = <ngGrid.IStyleProvider>{};
|
||||
gridInstance.buildColumnDefsFromData();
|
||||
gridInstance.buildColumns();
|
||||
gridInstance.calcMaxCanvasHeight();
|
||||
gridInstance.clearSortingData();
|
||||
gridInstance.configureColumnWidths();
|
||||
gridInstance.fixColumnIndexes();
|
||||
gridInstance.fixGroupIndexes();
|
||||
var p:ng.IPromise<any> = gridInstance.getTemplate('');
|
||||
p = gridInstance.init();
|
||||
p = gridInstance.initTemplates();
|
||||
gridInstance.minRowsToRender();
|
||||
gridInstance.refreshDomSizes();
|
||||
gridInstance.resizeOnData(<ngGrid.IColumn>{});
|
||||
gridInstance.setRenderedRows([<ngGrid.IRow>{}]);
|
||||
gridInstance.sortActual();
|
||||
gridInstance.sortColumnsInit();
|
||||
gridInstance.sortData(<ngGrid.IColumn>{}, {});
|
||||
|
||||
var styleProvider:ngGrid.IStyleProvider = new ngStyleProvider(<ngGrid.IGridScope>{}, <ngGrid.IGridInstance>{});
|
||||
var searchProvider:ngGrid.ISearchProvider = new ngSearchProvider(<ngGrid.IGridScope>{}, <ngGrid.IGridInstance>{}, <ng.IFilterService>{});
|
||||
var selectionProvider:ngGrid.ISelectionProvider = new ngSelectionProvider(<ngGrid.IGridInstance>{}, <ngGrid.IGridScope>{}, <ng.IParseService>{});
|
||||
var ngEventProvider:ngGrid.IEventProvider = new ngEventProvider(<ngGrid.IGridInstance>{}, <ngGrid.IGridScope>{}, <<ngGrid.service.IDomUtilityService>{}, <ng.ITimeoutService>{});
|
||||
var ngAggregate:ngGrid.IAggregate = new ngAggregate({}, <ngGrid.IRowFactory>{}, 10, true);
|
||||
var ngRenderedRange:ngGrid.IRenderedRange = new ngRenderedRange(1, 2);
|
||||
var ngDimension:ngGrid.IDimension = new ngDimension({});
|
||||
var ngRow:ngGrid.IRow = new ngRow({}, <ngGrid.IRowConfig>{}, <ngGrid.ISelectionProvider>{}, 0, {});
|
||||
var ngColumn:ngGrid.IColumn = new ngColumn(<ngGrid.IGridOptions>{}, <ngGrid.IGridScope>{}, <ngGrid.IGridInstance>{}, <ngGrid.service.IDomUtilityService>{}, <ng.ITemplateCacheService>{}, {});
|
||||
var ngFooter:ngGrid.IFooter = new ngFooter(<ngGrid.IGridScope>{}, <ngGrid.IGridInstance>{});
|
||||
|
||||
458
ng-grid/ng-grid.d.ts
vendored
458
ng-grid/ng-grid.d.ts
vendored
@@ -1,23 +1,358 @@
|
||||
// Type definitions for ng-grid
|
||||
// Project: http://angular-ui.github.io/ng-grid/
|
||||
// Definitions by: Ken Smith <https://github.com/smithkl42>
|
||||
// Definitions by: Ken Smith <https://github.com/smithkl42> and Roland Zwaga <https://github.com/rolandzwaga> and Kent Cooper <https://github.com/kentcooper>
|
||||
// DefinitelyTyped: https://github.com/borisyankov/DefinitelyTyped
|
||||
|
||||
// These are very definitely preliminary. Please feel free to improve.
|
||||
|
||||
// Changelog:
|
||||
// 25/4/2014: Added interfaces for all classes and services
|
||||
|
||||
/// <reference path='../angularjs/angular.d.ts' />
|
||||
|
||||
declare class ngGridReorderable {
|
||||
constructor();
|
||||
}
|
||||
|
||||
declare var ngStyleProvider:ngGrid.IStyleProviderStatic;
|
||||
declare var ngSearchProvider:ngGrid.ISearchProviderStatic;
|
||||
declare var ngSelectionProvider:ngGrid.ISelectionProviderStatic;
|
||||
declare var ngEventProvider:ngGrid.IEventProviderStatic;
|
||||
declare var ngAggregate:ngGrid.IAggregateStatic;
|
||||
declare var ngRenderedRange:ngGrid.IRenderedRangeStatic;
|
||||
declare var ngDimension:ngGrid.IDimensionStatic;
|
||||
declare var ngRow:ngGrid.IRowStatic;
|
||||
declare var ngColumn:ngGrid.IColumnStatic;
|
||||
declare var ngFooter:ngGrid.IFooterStatic;
|
||||
|
||||
declare module ngGrid {
|
||||
|
||||
export interface IDomAccessProvider {
|
||||
previousColumn:IColumn;
|
||||
grid:IGridInstance;
|
||||
changeUserSelect(elm:ng.IAugmentedJQuery, value:string):void;
|
||||
focusCellElement($scope:IGridScope, index:number):void;
|
||||
selectionHandlers($scope:IGridScope, elm:ng.IAugmentedJQuery):void;
|
||||
}
|
||||
|
||||
export interface IStyleProviderStatic {
|
||||
new($scope:IGridScope, grid:IGridInstance):IStyleProvider;
|
||||
}
|
||||
|
||||
export interface IStyleProvider {
|
||||
}
|
||||
|
||||
export interface ISearchProviderStatic {
|
||||
new($scope:IGridScope, grid:IGridInstance, $filter:ng.IFilterService):ISearchProvider;
|
||||
}
|
||||
|
||||
export interface ISearchProvider {
|
||||
fieldMap:any;
|
||||
extFilter:boolean;
|
||||
evalFilter():void;
|
||||
}
|
||||
|
||||
export interface ISelectionProviderStatic {
|
||||
new(grid:IGridInstance, $scope:IGridScope, $parse:ng.IParseService):ISelectionProvider;
|
||||
}
|
||||
|
||||
export interface ISelectionProvider {
|
||||
multi:boolean;
|
||||
selectedItems:any[];
|
||||
selectedIndex:number;
|
||||
lastClickedRow:any;
|
||||
ignoreSelectedItemChanges:boolean;
|
||||
pKeyParser:ng.ICompiledExpression;
|
||||
ChangeSelection(rowItem:any, event:any):void;
|
||||
getSelection(entity:any):number;
|
||||
getSelectionIndex(entity:any):number;
|
||||
setSelection(rowItem:IRow, isSelected:boolean):void;
|
||||
toggleSelectAll(checkAll:boolean, bypass:boolean, selectFiltered:boolean):void;
|
||||
}
|
||||
|
||||
export interface IEventProviderStatic {
|
||||
new(grid:IGridInstance, $scope:IGridScope, domUtilityService:service.IDomUtilityService, $timeout:ng.ITimeoutService):IEventProvider;
|
||||
}
|
||||
|
||||
export interface IEventProvider {
|
||||
colToMove:IColumn;
|
||||
groupToMove:any;
|
||||
assignEvents():void;
|
||||
assignGridEventHandlers():void;
|
||||
dragStart(event:any):void;
|
||||
dragOver(event:any):void;
|
||||
setDraggables():void;
|
||||
onGroupMouseDown(event:any):void;
|
||||
onGroupDrop(event:any):void;
|
||||
onHeaderMouseDown(event:any):void;
|
||||
onHeaderDrop(event:any):void;
|
||||
}
|
||||
|
||||
export interface IAggregateStatic {
|
||||
new(aggEntity:any, rowFactory:IRowFactory, rowHeight:number, groupInitState:boolean):IAggregate;
|
||||
}
|
||||
|
||||
export interface IAggregate {
|
||||
rowIndex:number;
|
||||
offsetTop:number;
|
||||
entity:any;
|
||||
label:string;
|
||||
field:string;
|
||||
depth:number;
|
||||
parent:any;
|
||||
children:any[];
|
||||
aggChildren:any[];
|
||||
aggIndex:number;
|
||||
collapsed:boolean;
|
||||
groupInitState:boolean;
|
||||
rowFactory:IRowFactory;
|
||||
rowHeight:number;
|
||||
isAggRow:boolean;
|
||||
offsetLeft:number;
|
||||
aggLabelFilter:any;
|
||||
}
|
||||
|
||||
export interface IRowConfig {
|
||||
enableCellSelection:boolean;
|
||||
enableRowSelection:boolean;
|
||||
jqueryUITheme:boolean;
|
||||
rowClasses:string[];
|
||||
rowHeight:number;
|
||||
selectWithCheckboxOnly:boolean;
|
||||
selectedItems:any[];
|
||||
|
||||
afterSelectionChangeCallback():void;
|
||||
beforeSelectionChangeCallback():void;
|
||||
}
|
||||
|
||||
export interface IRenderedRangeStatic {
|
||||
new(top:number, bottom:number):IRenderedRange;
|
||||
}
|
||||
|
||||
export interface IRenderedRange {
|
||||
bottomRow:number;
|
||||
topRow:number;
|
||||
}
|
||||
|
||||
export interface IRowFactory {
|
||||
aggCache:any;
|
||||
dataChanged:boolean;
|
||||
groupedData:any;
|
||||
numberOfAggregates:number;
|
||||
parentCache:any[];
|
||||
parsedData:any[];
|
||||
renderedRange:IRenderedRange;
|
||||
rowConfig:IRowConfig;
|
||||
rowHeight:number;
|
||||
selectionProvider:ISelectionProvider;
|
||||
|
||||
UpdateViewableRange(newRange:IRenderedRange):void;
|
||||
buildAggregateRow(aggEntity:any, rowIndex:number):IAggregate;
|
||||
buildEntityRow(entity:any, rowIndex:number):IRow;
|
||||
filteredRowsChanged():void;
|
||||
fixRowCache():void;
|
||||
getGrouping(groups:any):void;
|
||||
parseGroupData(groupData:any):void;
|
||||
renderedChange():void;
|
||||
renderedChangeNoGroups():void;
|
||||
}
|
||||
|
||||
export interface IDimensionStatic {
|
||||
new(options:any):IDimension;
|
||||
}
|
||||
|
||||
export interface IDimension {
|
||||
outerHeight?:number;
|
||||
outerWidth?:number;
|
||||
autoFitHeight?:boolean;
|
||||
}
|
||||
|
||||
export interface IElementDimension {
|
||||
rootMaxH?:number;
|
||||
rootMaxW?:number;
|
||||
rowIndexCellW?:number;
|
||||
rowSelectedCellW?:number;
|
||||
scrollH?:number;
|
||||
scrollW?:number;
|
||||
}
|
||||
|
||||
export interface IRowStatic {
|
||||
new(entity:any, config:IRowConfig, selectionProvider:ISelectionProvider, rowIndex:number, $utils:any):IRow;
|
||||
}
|
||||
|
||||
export interface IRow {
|
||||
entity:any;
|
||||
config:IRowConfig;
|
||||
selectionProvider:ISelectionProvider;
|
||||
rowIndex:number;
|
||||
utils:any;
|
||||
selected:boolean;
|
||||
cursor:string;
|
||||
offsetTop:number;
|
||||
rowDisplayIndex:number;
|
||||
afterSelectionChange():void;
|
||||
beforeSelectionChange():void;
|
||||
setSelection(isSelected:boolean):void;
|
||||
continueSelection(event:any):void;
|
||||
ensureEntity(expected:any):void;
|
||||
toggleSelected(event:any):boolean;
|
||||
alternatingRowClass():void;
|
||||
getProperty(path:string):any;
|
||||
copy():IRow;
|
||||
setVars(fromRow:IRow):void;
|
||||
}
|
||||
|
||||
export interface IColumnStatic {
|
||||
new(config:IGridOptions, $scope:IGridScope, grid:IGridInstance, domUtilityService:service.IDomUtilityService, $templateCache:ng.ITemplateCacheService, $utils:any):IColumn;
|
||||
}
|
||||
|
||||
export interface IColumn {
|
||||
colDef:IColumnDef;
|
||||
width:number;
|
||||
groupIndex:number;
|
||||
isGroupedBy:boolean;
|
||||
minWidth:number;
|
||||
maxWidth:number;
|
||||
enableCellEdit:boolean;
|
||||
cellEditableCondition:any;
|
||||
headerRowHeight:number;
|
||||
displayName:string;
|
||||
index:number;
|
||||
isAggCol:boolean;
|
||||
cellClass:string;
|
||||
sortPriority:number;
|
||||
cellFilter:any;
|
||||
field:string;
|
||||
aggLabelFilter:any;
|
||||
visible:boolean;
|
||||
sortable:boolean;
|
||||
resizable:boolean;
|
||||
pinnable:boolean;
|
||||
pinned:boolean;
|
||||
originalIndex:number;
|
||||
groupable:boolean;
|
||||
sortDirection:string;
|
||||
sortingAlgorithm:Function;
|
||||
headerClass:string;
|
||||
cursor:string;
|
||||
headerCellTemplate:string;
|
||||
cellTemplate:string;
|
||||
groupedByClass():string;
|
||||
toggleVisible():void;
|
||||
showSortButtonUp():boolean;
|
||||
showSortButtonDown():boolean;
|
||||
noSortVisible():boolean;
|
||||
sort(event:any):boolean;
|
||||
gripClick():any;
|
||||
gripOnMouseDown(event:any):any;
|
||||
onMouseMove(event:any):void;
|
||||
gripOnMouseUp(event:any):void;
|
||||
copy():IColumn;
|
||||
setVars(fromCol:IColumn):void;
|
||||
}
|
||||
|
||||
export interface IGridScope extends ng.IScope {
|
||||
elementsNeedMeasuring:boolean;
|
||||
columns:any[];
|
||||
renderedRows:any[];
|
||||
renderedColumns:any[];
|
||||
headerRow:any;
|
||||
rowHeight:number;
|
||||
jqueryUITheme:any;
|
||||
showSelectionCheckbox:boolean;
|
||||
enableCellSelection:boolean;
|
||||
enableCellEditOnFocus:boolean;
|
||||
footer:IFooter;
|
||||
selectedItems:any[];
|
||||
multiSelect:boolean;
|
||||
showFooter:boolean;
|
||||
footerRowHeight:number;
|
||||
showColumnMenu:boolean;
|
||||
forceSyncScrolling:boolean;
|
||||
showMenu:boolean;
|
||||
configGroups:any[];
|
||||
gridId:string;
|
||||
enablePaging:boolean;
|
||||
pagingOptions:IPagingOptions;
|
||||
i18n:any;
|
||||
selectionProvider:ISelectionProvider;
|
||||
adjustScrollLeft(scrollLeft:number):void;
|
||||
adjustScrollTop(scrollTop:number, force:boolean):void;
|
||||
toggleShowMenu():void;
|
||||
toggleSelectAll():void;
|
||||
totalFilteredItemsLength():number;
|
||||
showGroupPanel():any;
|
||||
topPanelHeight():number;
|
||||
viewportDimHeight():number;
|
||||
groupBy(col:IColumn):void;
|
||||
removeGroup(index:number):void;
|
||||
togglePin(col:IColumn):void;
|
||||
totalRowWidth():number;
|
||||
headerScrollerDim():any;
|
||||
}
|
||||
|
||||
export interface IGridInstance {
|
||||
$canvas:ng.IAugmentedJQuery;
|
||||
$viewport:ng.IAugmentedJQuery;
|
||||
$groupPanel:ng.IAugmentedJQuery;
|
||||
$footerPanel:ng.IAugmentedJQuery;
|
||||
$headerScroller:ng.IAugmentedJQuery;
|
||||
$headerContainer:ng.IAugmentedJQuery;
|
||||
$headers:ng.IAugmentedJQuery;
|
||||
$topPanel:ng.IAugmentedJQuery;
|
||||
$root:ng.IAugmentedJQuery;
|
||||
config:IGridOptions;
|
||||
data:any;
|
||||
elementDims:IElementDimension;
|
||||
eventProvider:IEventProvider;
|
||||
filteredRows:IRow[];
|
||||
footerController:any;
|
||||
gridId:string;
|
||||
lastSortedColumns:IColumn[];
|
||||
lateBindColumns:boolean;
|
||||
maxCanvasHt:number;
|
||||
prevScrollIndex:number;
|
||||
prevScrollTop:number;
|
||||
rootDim:IDimension;
|
||||
rowCache:IRow[];
|
||||
rowFactory:IRowFactory;
|
||||
rowMap:IRow[];
|
||||
searchProvider:ISearchProvider;
|
||||
styleProvider:IStyleProvider;
|
||||
|
||||
buildColumnDefsFromData():void;
|
||||
buildColumns():void;
|
||||
calcMaxCanvasHeight():void;
|
||||
clearSortingData():void;
|
||||
configureColumnWidths():void;
|
||||
fixColumnIndexes():void;
|
||||
fixGroupIndexes():void;
|
||||
getTemplate(key:string):ng.IPromise<any>;
|
||||
init():ng.IPromise<any>;
|
||||
initTemplates():ng.IPromise<any>;
|
||||
minRowsToRender():void;
|
||||
refreshDomSizes():void;
|
||||
resizeOnData(col:IColumn):void;
|
||||
setRenderedRows(newRows:IRow[]):void;
|
||||
sortActual():void;
|
||||
sortColumnsInit():void;
|
||||
sortData(col:IColumn, event:any):void;
|
||||
}
|
||||
|
||||
export interface IFooterStatic {
|
||||
new($scope:IGridScope, grid:IGridInstance):IFooter;
|
||||
}
|
||||
|
||||
export interface IFooter {
|
||||
}
|
||||
|
||||
export interface IGridOptions {
|
||||
|
||||
/** Define an aggregate template to customize the rows when grouped. See github wiki for more details. */
|
||||
aggregateTemplate?: string;
|
||||
|
||||
/** Callback for when you want to validate something after selection. */
|
||||
afterSelectionChange?: (rowItem?: any, event?: any) => void ;
|
||||
afterSelectionChange?: (rowItem?: IRow, event?: any) => void ;
|
||||
|
||||
/** Callback if you want to inspect something before selection,
|
||||
return false if you want to cancel the selection. return true otherwise.
|
||||
@@ -25,7 +360,7 @@ declare module ngGrid {
|
||||
use rowItem.changeSelection(event) method after returning false initially.
|
||||
Note: when shift+ Selecting multiple items in the grid this will only get called
|
||||
once and the rowItem will be an array of items that are queued to be selected. */
|
||||
beforeSelectionChange?: (rowItem?: any, event?: any) => boolean ;
|
||||
beforeSelectionChange?: (rowItem?: IRow, event?: any) => boolean ;
|
||||
|
||||
/** checkbox templates. */
|
||||
checkboxCellTemplate?: string;
|
||||
@@ -176,11 +511,68 @@ declare module ngGrid {
|
||||
}
|
||||
|
||||
export interface IColumnDef {
|
||||
/**
|
||||
* This can be an absolute numberor it can also be defined in percentages (20%, 30%),
|
||||
* in weighted *s, or "auto" (which sizes the column based on data length)
|
||||
* (much like WPF/Silverlight)/ note: "auto" only works in single page apps currently because the re-size
|
||||
* happens on "document.ready
|
||||
*/
|
||||
width?: any;
|
||||
|
||||
/** The minum width the column is allowed to be. See width for the different options */
|
||||
minWidth?: any;
|
||||
|
||||
/** Set the default visiblity of the column */
|
||||
visible?: boolean;
|
||||
|
||||
/** Can also be a property path on your data model. "foo.bar.myField", "Name.First", etc..*/
|
||||
field?: string;
|
||||
width?: any; //**this can be a string containing a relatively, absolute size units or a number: '30%','54px',45 /*
|
||||
|
||||
/** What to display in the column header */
|
||||
displayName?: string;
|
||||
cellTemplate?: string;
|
||||
|
||||
/** Restrict or allow the column to be sorted */
|
||||
sortable?: boolean;
|
||||
|
||||
/** Restrict or allow the column to be resized */
|
||||
resizable?: boolean;
|
||||
|
||||
/** Allows the column to be grouped with drag and drop, but has no effect on gridOptions.groups */
|
||||
groupable?: boolean;
|
||||
|
||||
/** Allows the column to be pinned when enablePinning is set to true */
|
||||
pinnable?: boolean;
|
||||
|
||||
/** The template to use while editing */
|
||||
editableCellTemplate?: string;
|
||||
|
||||
/** Allows the cell to use an edit template when focused (grid option enableCellSelection must be enabled)*/
|
||||
enableCellEdit?: boolean;
|
||||
|
||||
/** Controls when to use the edit template on per-row basis using an angular expression (enableCellEdit must also be true for editing)*/
|
||||
cellEditableCondition?: string;
|
||||
|
||||
/** The funtion to use when filtering values in this column */
|
||||
sortFn?: (a: any, b: any) => number;
|
||||
|
||||
/** Html template used to render the cell */
|
||||
cellTemplate?: string;
|
||||
|
||||
/** User defined CSS class name */
|
||||
cellClass?: string;
|
||||
|
||||
/** User defined CSS class name for the header cell */
|
||||
headerClass?: string;
|
||||
|
||||
/** Html template used to render the header cell */
|
||||
headerCellTemplate?: string;
|
||||
|
||||
/** string name for filter to use on the cell ('currency', 'date', etc..) */
|
||||
cellFilter?: string;
|
||||
|
||||
/** String name for filter to use on the aggregate label ('currency', 'date', etc..) defaults to cellFilter if not set. */
|
||||
aggLabelFilter?: string;
|
||||
|
||||
pinned?: boolean;
|
||||
}
|
||||
|
||||
@@ -199,4 +591,60 @@ declare module ngGrid {
|
||||
/** currentPage: the uhm... current page. */
|
||||
currentPage?: number;
|
||||
}
|
||||
|
||||
export interface IPlugin {
|
||||
init(childScope:IGridScope, gridInstance:IGridInstance, services:any):void;
|
||||
}
|
||||
|
||||
export module service {
|
||||
|
||||
export interface IDomUtilityService {
|
||||
eventStorage:any;
|
||||
numberOfGrids:number;
|
||||
immediate:number;
|
||||
AssignGridContainers($scope:IGridScope, rootel:ng.IAugmentedJQuery, grid:IGridInstance):void;
|
||||
getRealWidth(obj:IDimension):number;
|
||||
UpdateGridLayout($scope:IGridScope, grid:IGridInstance):void;
|
||||
setStyleText(grid:IGridInstance, css:string):void;
|
||||
BuildStyles($scope:IGridScope, grid:IGridInstance, digest:boolean):void;
|
||||
setColLeft(col:IColumn, colLeft:number, grid:IGridInstance):void;
|
||||
RebuildGrid($scope:IGridScope, grid:IGridInstance):void;
|
||||
digest($scope:IGridScope):void;
|
||||
ScrollH:number;
|
||||
ScrollW:number;
|
||||
LetterW:number;
|
||||
}
|
||||
|
||||
export interface ISortInfo {
|
||||
fields:string[];
|
||||
}
|
||||
|
||||
export interface ISortService {
|
||||
colSortFnCache:any;
|
||||
isCustomSort:boolean;
|
||||
isSorting:boolean;
|
||||
guessSortFn(item:any):(a:any, b:any)=>number;
|
||||
basicSort(a:any, b:any):number;
|
||||
sortNumber(a:number, b:number):number;
|
||||
sortNumberStr(a:string, b:string):number;
|
||||
sortAlpha(a:string, b:string):number;
|
||||
sortDate(a:Date, b:Date):number;
|
||||
sortBool(a:boolean, b:boolean):number;
|
||||
sortData(sortInfo:ISortInfo, data:any):void;
|
||||
Sort(sortInfo:ISortInfo, data:any):void;
|
||||
getSortFn(col:IColumn, data:any):(a:any, b:any)=>number;
|
||||
}
|
||||
|
||||
export interface IUtilityService {
|
||||
visualLength(node:any):number;
|
||||
forIn(obj:any, action:(value:any, property:string)=>{}):void;
|
||||
evalProperty(entity:any, path:string):any;
|
||||
endsWith(str:string, suffix:string):boolean;
|
||||
isNullOrUndefined(obj:any):boolean;
|
||||
getElementsByClassName(cl:string):any[];
|
||||
newId():string;
|
||||
seti18n($scope:IGridScope, language:string):void;
|
||||
getInstanceType(o:any):string;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user