pqgrid
Version:
<p align="center"> <a href="https://paramquery.com/"> <img src="https://paramquery.com/content/images/pqgrid.png" alt="ParamQuery logo" width="168" height="64"> </a> </p>
1,386 lines (1,274 loc) • 62.7 kB
TypeScript
// Type definitions for paramquery Grid
// By: Paramvir Dhindsa
// Project: http://paramquery.com/
/// <reference types="jquery" />
/// <reference types="jqueryui" />
declare global{
interface JQueryStatic{
active
paramquery
}
interface JQuery{
pqGrid(options: pq.gridT.options| string): any
pqGrid(method: string, param: any): any
}
}
declare module pq {
namespace gridT{
type numberorstring = number|string;
type colModel = Array<column>;
type crule = {
condition?: string
value?
value2?
}
type rule = {
dataIndx: numberorstring,
condition?: string,
value?,
value2?,
mode?: string,//5.2.0
crules?: Array< crule> //5.2.0
}
interface column{
/** alignment of content in cells */
/** "left", "center" or "right" */
align?: string
//v7.0.0
attrHead?: {
title?: string
}
/** properties of a checkbox column */
cb?: {
all?: boolean
check?: any
header?: boolean
history?: boolean //9.1.0
maxCheck?: number //5.3.0
select?: boolean
useTxn?: boolean //9.1.0
uncheck?: any
}
/** dataIndx of linked checkbox column */
cbId?: numberorstring //5.2.0
/** Class to be assigned to whole column including header. */
cls?: string
/** Class to be assigned to header. */
clsHead?: string //5.2.0
clsFilter?: string //8.7.0
/** collapse properties for parent grouped columns */
collapsible?: {
/**last child of grouped column is visible instead of first column in collapsed state. */
last?: boolean
/**true when collapsed, false when expanded */
on?: boolean
}
/** nesting of colModel used for grouping of columns */
colModel?: colModel
/** When set to false, this option prevents a column from being copied to the clipboard */
copy?: boolean
/** fieldname used for data binding */
dataIndx?: string | number
/** data type of the column "bool" | "date" | "float" | "html" | "integer" | "string" | "stringi" */
dataType?: string
deFormat?: ((any) => any) //5.3.0
/**deny actions in toolPanel */
denyAgg?: boolean
denyGroup?: boolean
denyPivot?: boolean
/** controls editability of whole column */
editable?: boolean|((evt, ui: cellObject) => boolean)
/** editing behaviour for a column and it overrides the global editModel properties. */
editModel?: {
keyUpDown?: boolean
saveKey?: string
onBlur?: string
cancelBlurCls?: string
onTab?: string
}
editor?: editorObj | ((ui: cellObject) => editorObj) | boolean
exportRender?: boolean
filter?: {
attr?: string
//cache?: boolean
cls?: string
//condition?: string | ((val: any, match: any) => boolean)
//condition?: string //5.2.0
conditionExclude?: Array<string>//5.2.0
conditionList?: Array<string>//5.2.0
conditions?: {//5.2.0
[condition: string]:{
compare: (cellData, value, value2) => boolean
}
}
crules?: Array<crule>//5.2.0
diExtra?: Array<string> //5.3.0
dpOptions?: object //5.2.0
dpOptions2?: object //5.2.0
format?: string | ((any) => any) //5.3.0
gridOptions?: object //5.2.0
groupIndx?: numberorstring
init?: (ui:any)=>any
labelIndx?: numberorstring
listener?: any
//listeners?: any[]
maxCheck?: number //5.3.0
menuIcon?: boolean //5.2.0
mode?: string //5.2.0
//type?: string
//subtype?: string
//prepend?: any
options?: any|any[]
selectGridCreated?: (ui: object) => void //5.2.0
selectGridObj?: (ui: object) => void //5.3.0
style?: string
title?: (values: any[], col: column) => string //10.0.0
//value?: any
//value2?: any
valueIndx?: numberorstring
}
filterFn?: (ui: object) => object //5.2.0
fmtDateEdit?: string //10.0.0
fmtDateFilter?: string //10.0.0
fmtNumberEdit?: string //10.0.0
fmtNumberFilter?: string //10.0.0
format?: string | ((any) => any) //5.3.0: callback
formatRaw?: string //5.3.0
formula?: (ui: {rowData: any}) => any
groupable?: boolean
groupChange?: ((val: string) => string)
halign?: "left" | "center" | "right"
hidden?: boolean
//7.0
hvalign?: "top" | "center" | "bottom"
maxWidth?: string | number
menuIcon?: boolean //5.2.0
menuUI?: any //5.2.0
menuInClose?: boolean //5.2.0
menuInDisable?: boolean //5.2.0
menuInHide?: boolean //5.2.0
minWidth?: string | number
nodrag?: boolean
nodrop?: boolean
parent?: column
/** When set to false, this option skips paste of data on a column */
paste?: boolean //8.0.0
pivotSortFn?: ((a:object, b:object) => number) //5.4.0
//v7.0.0
/*prop?: {
align?: string
valign?: string
}*/
postRender?: (string | ((ui: postRenderObj) => void ))
render?: (string | ((ui: renderObj) => string | {
attr?: string
cls?: string
style?: string
text?: string
}))
//v7.0.0
/*renderHead?: ((ui: renderObj) => string | {
attr?: string
cls?: string
style?: string
text?: string
})*/
renderLabel?: ((ui: renderObj) => string | void) //5.3.0
resizable?: boolean
showifOpen?: boolean //5.3.0
/** this option skips export of this column */
skipExport?: boolean //9.0.0
skipFocus?: boolean //9.1.0
sortable?: boolean
sortType?: ((rowData1: any, rowData2: any, dataIndx: any) => number)
style?: object//7.0
styleHead?: object //7.0
summary?: {
edit?: boolean
/** "avg" | "count" | "min" | "max" | "sum" | "stdev" | "stdevp" */
type?: string
}
title? : string | ((ui:any)=> string)
tpCls?: string
tpHide?: boolean
type?: string
useLabel?: boolean //5.3.0
validations?: Array<{
icon?: string
type: any
value?: any
msg?: string
warn?: boolean
}>
//7.0
valign?: "top" | "center" | "bottom"
width?: number | string
}
type filterModel = {
//clear?: boolean
gridOptions?: object
header?: boolean
hideClearIcon?: boolean //10.1.0
hideRows?: boolean //6.2.0
menuIcon?: boolean //5.2.0
mode?: "AND" | "OR"
on?: boolean
timeout?: number
type?: 'local' | 'remote'
}
interface editorObj{
appendTo?: string //8.4.0
preventClose?: ((ui:any) => boolean) //8.4.0
type?: any
init?: ((ui:any)=>any)
prepend?: any
options?: any[]
labelIndx?: string | number
valueIndx?: string | number
groupIndx?: string | number
dataMap?: any[]
mapIndices?: any
getData?: ((ui) => any)
cls?: string
select?: boolean
style?: string | object
attr?: string
}
interface rowObject{
rowData?: any
rowIndx?: number
rowIndxPage?: number
}
interface colObject{
colIndx?: number
column?: column
dataIndx?: string | number
}
interface cellObject extends rowObject, colObject{
}
interface postRenderObj extends cellObject{
cell: any
}
interface renderObj extends cellObject{
cellData: any
Export: boolean
formatVal: string
}
interface pageModel{
bubble?: boolean
curPage?: number
format?: string //7.4.0
layout?: Array<string> //5.2.0
rPPOptions?: Array<number> | Array<object> //7.4.0
rPP?: number
strDisplay?: string
totalPages?: number
trigger?: boolean
type?: string
}
interface Drag{
addAcceptIcon()
addIcon(icon: string)
addRejectIcon()
getUI(): {
nodes: Array<any>
rowData: any
rowIndx: number
}
grid(): pq.gridT.instance
over()
out()
}
interface groupModel{
agg?: object
cascade?: boolean //5.2.0
cbId?: numberorstring //5.2.0
checkbox?: boolean //5.2.0
checkboxHead?: boolean //5.2.0
collapsed?: Array<boolean>
dataIndx?: Array<string|number>
//dir?: Array<string>
fixCols?: boolean
grandSummary?: boolean
groupCols?: Array<string|boolean>
header?: boolean
headerMenu?: Array<string>
hideLines?: boolean //9.1.0
icon?: Array<string>
ignoreCase?: boolean
indent?: number
maxCheck?: number //5.3.0
menuItems?: Array<string>
merge?: boolean
on?: boolean
pivot?: boolean
pivotColsTotal?: string //5.4.0 ("after" | "before" | "hideifOpen" | "")
pivotTotalForSingle?: boolean //5.6.0
select?: boolean //5.2.0
separator?: string //6.0.0
showSummary?: Array<boolean>
skipSingleSummary?: boolean //7.0
source?: 'checkboxGroup'
nodeClose?: object //7.2
summaryEdit?: boolean
summaryInTitleRow?: string
title?: any[]
titleDefault?: string
titleIndx?: string //7.0
titleInFirstCol?: boolean
useLabel?: boolean //5.3.0
}
interface sortModel{
cancel?: boolean
ignoreCase?: boolean
multiKey?: string
number?: boolean
on?: boolean
single?: boolean
sorter?: any[]
space?: boolean
type?: string
}
interface toolPanel{
disablePivotChkBox?: boolean //8.6.0
hideAggPane?: boolean
hideColPane?: boolean//show when pivot mode is true, hide otherwise, never show when it's false.
hideGroupChkBox?: boolean //8.6.0
hidePivotChkBox?: boolean
hideRowPane?: boolean
show?: boolean
}
interface dataModel{
beforeSend?: (( jqXHR, settings )=> void)
contentType?: string
data?: Object[]
/** read only. */
dataUF?: Object[]
dataType?: string
error?: (( jqXHR, textStatus, errorThrown )=> void)
getData?: (response, textStatus, jqXHR) => {
curPage?: number
data: any[]
totalRecords?: number
}
getUrl?: ((obj: {
colModel: colModel,
dataModel: dataModel,
filterModel: filterModel,
groupModel: groupModel,
pageModel: pageModel,
sortModel: sortModel
}) => {
url: string
data?: any
})
/** "local" | "remote"*/
location?: string
method?: string
postData?: any
postDataOnce?: any
progressAcrossTabs?: boolean //8.6.0
recIndx?: numberorstring
url?: string
}
type citem = {
action?: ((evt, ui, citem: citem)=> boolean | void)
cls?: string
disabled?: boolean
icon?: string
name: string
shortcut?: string
style?: string
subItems?: Array<itemX>
tooltop?: string
}
type itemX = citem | string
//6.0.0
type contextMenu = {
on?: boolean
head?: boolean //7.2.0: ignored.
init?: (evt, ui)=> void
bodyItems?: itemX[] | ((evt, ui)=> itemX[] ) //8.7.0
cellItems?: itemX[] | ((evt, ui)=> itemX[] ) //7.2.0
headItems?: itemX[] | ((evt, ui)=> itemX[] ) //7.2.0
imgItems?: itemX[] | ((evt, ui)=> itemX[] ) //7.2.0
items?: itemX[] | ((evt, ui)=> itemX[] ) //7.2.0: updated
miscItems?: itemX[] | ((evt, ui)=> itemX[] ) //7.2.0
tabItems?: itemX[] | ((evt, ui)=> itemX[] ) //8.0.0
}
//8.0.0
type tab = {
extraRows?: number
extraCols?: number
gridOptions?: pq.gridT.options | (()=> pq.gridT.options)
hidden?: boolean
noClose?: boolean
noRename?: boolean
name?: string
sheet?: worksheet
}
/*******************************options **************************************************/
interface options{
animModel?:{ //5.5.0
on?: boolean
duration?: number
}
autoAddCol?: boolean //8.3
autoAddRow?: boolean //8.3
autofill?: boolean
autoRow?: boolean
autoRowHead?: boolean
autoRowSum?: boolean
fillHandle?: string
bootstrap?: any
bubble?: boolean
collapsible?:{
css?: any
collapsed?: boolean
on?: boolean
toggle?: boolean
toggled?: boolean //7.4.0
}
colModel?: colModel
columnBorders?: boolean
/**common properties for all leaf columns. */
columnTemplate?: column
//6.0.0
contextMenu?: contextMenu
copyModel?: any
dataModel?: dataModel
detailModel?: {
cache?: boolean
hasChild?: (rowData: object)=> boolean //9.1.0
header?: boolean //8.7.0
height?: number | string //8.0: string added
collapseIcon?: string
expandIcon?: string
init: (ui: rowObject)=> JQuery
}
dimsRelativeTo?: string //7.6.0
dragColumns?: {
enabled?: boolean
acceptIcon?: string
rejectIcon?: string
topIcon?: string
bottomIcon?: string
}
draggable?: boolean
//6.0.0
dragModel?:{
on?: boolean
clsDnD?: string
clsNode?: string//7.4
contentHelper?: ((diHelper: Array< string >, dragItems: Array<any>)=>string)
cssHelper?: any //object of css properties applied to helper.
diDrag?: numberorstring
diHelper?: Array<string>
dragNodes?: ((rd: any, evt: any) => Array<any>)
iconAccept?: string
iconReject?: string
isDraggable?: (ui: any)=>boolean
options?: any
tmplDrag?: string //template for normal cells.
tmplDragN?: string //template for number cell.
tmplHelper?: string
}
//6.0.0
dropModel?: {
accept?: string
clsParent?: string //7.4
divider?: number //7.4
drop?: (evt: any, ui: any)=> void
isDroppable?: (evt: any, ui: any)=>(void | boolean)
on?: boolean
options?: any
}
editable?: boolean| (( ui: rowObject )=>boolean)
editModel?:{
addDisableCls?: boolean //7.0
//cellBorderWidth?: number
clicksToEdit?: number
pressToEdit?: boolean
filterKeys?: boolean
keyUpDown?: boolean
saveKey?: any
onSave?: 'nextFocus' | 'nextEdit' | 'downFocus' | '', //7.3.0:downFocus
onTab?: 'nextFocus' | 'nextEdit' | 'downFocus' | '', //7.3.0:downFocus
onBlur?: 'validate' | 'save' | '',
allowInvalid?: boolean
invalidClass?: string
warnClass?: string
}
editor?: {
attr?: string
cls?: string
getData?: ((ui:any)=>any) //8.2.0
init?: ((ui:any)=>any) //8.2.0
select?: boolean
style?: string | object
type?: string
}
filterModel?: filterModel
flex?: {
on?: boolean
one?: boolean
all?: boolean
}
fmtDate?: string //10.0.0
fmtDateEdit?: string //10.0.0
fmtDateFilter?: string //10.0.0
fmtNumber?: string //10.0.0
fmtNumberEdit?: string //10.0.0
fmtNumberFilter?: string //10.0.0
format?: (rd:object, col:object, cellprop: object, rowprop: object) => string
formulas?: Array<[ number | string, (rowData: any, column: column) => any ]>,
formulasModel?: {
on?: boolean
}
freezeBorders?: boolean
freezeCols?: number
freezeRows?: number
groupModel?: groupModel
/** height of grid can be number in pixels e.g., 500, as string e.g., '50%-10', or 'flex' */
height?: numberorstring
hoverMode?: string
hwrap?: boolean
locale?: string //6.1.0
localeFmt?: string //10.0.0
maxHeight?: numberorstring
maxWidth?: numberorstring
menuIcon?: boolean //5.2.0
menuUI?: {//5.2.0
buttons?: Array<string> //['clear', 'ok']
gridOptions?: any
singleFilter?: boolean
popupOptions?: any
tabs?: Array<string> //['hideCols', 'filter', 'export' ] //9.0.0: 'export'
}
mergeCells?: Array<{
r1: number
c1: number
rc: number
cc: number
attr?: string
cls?: string
style?: string
}>
mergeModel?: {
/**merged cells are wrapped in div when false */
flex: boolean
}
minWidth?: numberorstring
noStickyHeader?: boolean //9.1.0
numberCell?: {
width?: number
title?: string
resizable?: boolean
minWidth?: number
show?: boolean
menuUI?: object //9.0.0
}
pageModel?: pageModel
pasteModel?: {
on?: boolean
select?: boolean
allowInvalid?: boolean
/**replace, append or prepend */
type?: string
}
//7.2.0
pics?: Array<{
name?: string
src: string
from: [number, number, number, number]
to?: [number, number, number, number]
cx?: number
cy?: number
}>
postRenderInterval?: number
reactive?: boolean //6.1.0
refreshCompareBy?: string //8.4.0
resizable?: boolean
realFocus?: boolean
roundCorners?: boolean
rowBorders?: boolean
rowHt?: number
rowHtHead?: number
rowHtSum?: number
rowInit?: (ui: rowObject) => void | {
attr?: string
style?: string
cls?: string
}
rowResize?: boolean //7.4
rowSpanHead?: boolean //9.0.0
rowTemplate?: object //8.0.0
scrollModel?: {
horizontal?: boolean
pace?: string
autoFit?: boolean
lastColumn?: string
theme?: boolean
flexContent?: boolean
}
selectionModel?: {
type?: string
mode?: string
all?: boolean
native?: boolean
onTab?: string
row?: boolean
column?: boolean
toggle?: boolean
}
showBottom?: boolean
showHeader?: boolean
showTitle?: boolean
showToolbar?: boolean
showTop?: boolean
skipSSFn?: boolean //9.1.0
sortable?: boolean
sortModel?: sortModel
stateColKeys?: object //5.4.0
stateKeys?: object //5.4.0
stringify?: boolean
stripeRows?: boolean
summaryData?: any[]
summaryOnTop?: boolean //8.1.0
summaryOptions?:{
date?: string
number?: string
string?: string
}
summaryTitle?: any
swipeModel?: any
//8.1.0
tabModel?: {
activeId?: number
newTab?: (()=> tab)
noAdd?: boolean
noSortable?: boolean
tabs?: tab[]
}
title?: string
toolbar?: {
cls?: string
items: Array<{
attr?: string
attrFile?: string //7.2
cls?: string
icon?: string //can also be used with type:file(7.2)
init?: (ele: any)=> void//7.1
label?: string
listener?: any
options?: any[] | any
listeners?: any[]
style?: string
type: string
value?: any
}>
}
toolPanel?: toolPanel
trackModel?: {
on?: boolean
dirtyClass?: string
}
trigger?: boolean
validation?:{
icon?: string
cls?: string
style?: string
}
treeModel?: {
childstr?: string
dataIndx?: numberorstring
filterLockSummary?: boolean //7.7
filterShowChildren?: boolean //7.7
format?: string
hideLines?: boolean //9.1.0
historyAdd?: boolean //7.4
historyDelete?: boolean //7.4
historyMove?: boolean //7.4
iconCollapse?: string[]
iconFolder?: string[]
iconFile?: string
icons?: boolean
id?: string
indent?: number
leafIfEmpty?: boolean //7.4
parentId?: string
render?: (ui: object)=> any
nodeClose?: object //7.2
summary?: boolean
summaryInTitleRow?: boolean //7.7
cascade?: boolean
cbId?: string
checkbox?: boolean | ((node: any)=> boolean)
checkboxHead?: boolean
maxCheck?: number
select?: boolean
useLabel?: boolean
}
virtualWin?: boolean //8.1.0
virtualX?: boolean
virtualY?: boolean
warning?:{
icon?: string
cls?: string
style?: string
}
/** height of grid can be number in pixels e.g., 500, as string e.g., '50%-10', or 'flex' */
width?: numberorstring
wrap?: boolean
//#################################inline Events------------
autoRowHeight?: (evt, ui) => void
beforeCellClick?: (evt, ui) => boolean | void
beforeCellKeyDown?: (evt, ui) => boolean | void
beforeCheck?: (evt, ui) => boolean | void
beforeColAdd?: (evt, ui) => boolean | void //7.0
beforeColMove?: (evt, ui) => boolean | void //7.1
beforeColRemove?: (evt, ui) => boolean | void //7.0
beforeColumnCollapse?: (evt, ui) => boolean | void
beforeColumnOrder?: (evt, ui) => boolean | void //5.5.0
beforeCopy?: (evt, ui) => boolean | void //8.4.0
beforeExport?: (evt, ui) => boolean | void
beforeFillHandle?: (evt, ui) => boolean | void
beforeFilter?: (evt, ui) => boolean | void
beforeGroupExpand?: (evt, ui) => boolean | void
beforeHeadKeyDown?: (evt, ui) => boolean | void //8.7.0
beforeHideCols?: (evt, ui:{ //5.2.0
diHide?: Array<numberorstring>
diShow?: Array<numberorstring>
}) => boolean | void
beforeNewData?: (evt, ui) => boolean | void //8.6.0
beforePaste?: (evt, ui) => boolean | void
beforeRowExpand?: (evt, ui) => boolean | void //5.5.0: updated
beforeRowSelect?: (evt, ui) => boolean | void
beforeSort?: (evt, ui) => boolean | void
beforeTableView?: (evt, ui) => boolean | void
beforeTreeExpand?: (evt, ui) => boolean | void
beforeValidate?: (evt, ui) => boolean | void
blur?: (evt, ui) => any //8.7.0
blurHead?: (evt, ui) => any //8.7.0
cellBeforeSave?: (evt, ui) => boolean | void
cellClick?: (evt, ui) => any
cellDblClick?: (evt, ui) => any
cellKeyDown?: (evt, ui) => any
cellRightClick?: (evt, ui) => any //6.0.0: updated to include number cells, 7.2.0: deprecated
cellSave?: (evt, ui) => any
change?: (evt, ui) => any
check?: (evt, ui) => any
colAdd?: (evt, ui) => any //7.0
colMove?: (evt, ui) => any //7.1
colRemove?: (evt, ui) => any //7.0
columnCollapse?: (evt, ui) => any
columnDrag?: (evt, ui) => any
columnOrder?: (evt: Object, ui: Object) => void|boolean
columnResize?: (evt, ui) => any
copy?: (evt, ui) => any //8.4.0
/**event fired when grid data binding and view is complete. */
complete?: (evt: Object, ui: Object) => void|boolean
context?: (evt, ui) => any //7.2.0
create?: (evt, ui) => any
customSort?: (evt, ui) => any
dataReady?: (evt, ui) => any
destroy?: (evt, ui) => any
editorBegin?: (evt, ui) => any
editorBlur?: (evt, ui) => any
editorEnd?: (evt, ui) => any
editorFocus?: (evt, ui) => any
editorKeyDown?: (evt, ui) => any
editorKeyPress?: (evt, ui) => any
editorKeyUp?: (evt, ui) => any
exportData?: (evt, ui) => any
//exportExcel?: (evt, ui) => any
filter?: (evt, ui) => any
focus?: (evt, ui) => any //8.7.0
focusHead?: (evt, ui) => any //8.7.0
group?: (evt, ui) => any
groupChange?: (evt, ui) => any
groupData?: (evt, ui) => any
groupHideRows?: (evt, ui) => any //7.2.0
groupOption?: (evt, ui) => any
headerCellClick?: (evt, ui) => any
headRightClick?: (evt, ui) => any //6.0.0, 7.2.0: deprecated
hideCols?: (evt, ui:{ //5.2.0
diHide?: Array<numberorstring>
diShow?: Array<numberorstring>
}) => void
history?: (evt, ui:{
canUndo: boolean
canRedo: boolean
type: string
num_undo: number
num_redo: number
}) => any
lazyInit?: ((evt, ui)=> void) //8.5.0
lazyProgress?: ((evt, ui)=> void) //8.5.0
lazyComplete?: ((evt, ui)=> void) //8.5.0
load?: ((evt, ui)=> void)
moveNode?: ((evt, ui)=> void) //6.0.0
paste?: (evt, ui) => void
pivotCM?: ((evt, ui) => void) //5.3.0
/**event fired whenever grid is refreshed */
refresh?: (evt, ui) => void|boolean
refreshHeader?: (evt, ui) => any
refreshRow?: (evt, ui: rowObject) => any
render?: (evt, ui) => any
rowClick?: (evt, ui: rowObject) => any
rowDblClick?: (evt, ui: rowObject) => any
//rowRightClick?: (evt, ui: rowObject) => any //6.0.0: deprecated, 7.2.0: removed.
rowSelect?: (evt: Object, ui: any)=> void
scroll?: (evt: Object, ui: any)=> void
scrollStop?: (evt: Object, ui: any)=> void
selectChange?: (evt: any, ui: {selection: any}) => any
selectEnd?: (evt, ui: {selection: any}) => any
selectGridCreated?: (evt, ui: object) => void //5.2.0
sort?: (evt, ui: {
dataIndx: numberorstring
single: boolean
oldSorter: any[]
sorter: any[]
}) => any
tabActivate?: (evt, ui: {tab: tab}) => any //8.6.0
tabsReady?: (evt, ui: {state: string}) => any //8.6.0
tabRename?: (evt, ui: {tab: tab, oldVal: string}) => any //8.6.0
toggle?: (evt, ui: {state: string}) => any
treeExpand?: (evt, ui: any) => any
workbookReady?: (evt, ui: {workbook: workbook}) => any
}
interface objRange{
r1?: number
c1?: number
r2?: number
c2?: number
rc?: number
cc?: number
style?: string //10.0.0
}
interface Range{
address(): Array<objRange>
addressLast(): objRange
add(obj?: objRange)
addCol(right?: boolean, col?: object) //9.0.0
addRow(below?: boolean, row?: object) //9.0.0
align(str?: string): string //v7.0.0
border(type: string, style: string, color: string) //9.0.0
clear()
comment(text?: string): string //v7.0.0
copy(obj?: {
dest?: objRange
render?: boolean
header?: boolean //7.3.0
})
count(): number
cut(obj?: {
dest?: objRange
render?: boolean
header?: boolean //7.3.0
})
deleteCol() //9.0.0
deleteRow() //9.0.0
eachCol( callback: (column: column, index: number) => void ) //v8.0.0
eachRow( callback: (rowData: object, index: number) => void ) //v8.0.0
enable(enable?: boolean): boolean //v7.0.0
//getStyle(key: string): string //v7.0.0
format(val?: string): string //v8.1.0
freezePanes() //v9.0.0
hideCols() //8.0.0
hideRows() //8.0.0
indexOf(obj?: objRange): number
link(url?: string): string | void //9.0.0
merge()
pic(file: any, x?: number, y?: number) //7.2.0
select()
showCols() //8.0.0
showRows() //8.0.0
style(key: string, val?: string): string //v7.0.0
toggleStyle(key: string, val: any[]) //v7.0.0
unmerge()
valign(str?: string): string //v7.0.0
value(val?: any[]): any[]
}
interface Selection extends Range{
getSelection(): cellObject[]
isSelected(obj: {rowIndx: number, colIndx?: number, dataIndx?: numberorstring}): boolean
removeAll()
selectAll(obj?:{all:boolean})
}
interface wsStyle{
/**left, center, right */
align?: string
/**background color with hexadecimal 6 digit format i.e., ff0000 for red */
bgColor?: string
bold?: boolean
//v7.0.0
border?: {
/**same as css style e.g., "1px solid #ff0000" */
left?: string
right?: string
top?: string
bottom?: string
}
/**text color with hexadecimal 6 digit format i.e., ff0000 for red */
color?: string
//v7.0.0
comment?: string
italic?: boolean
/**font family */
font?: string
fontSize?: number
underline?: boolean
/** top, center, bottom */
valign?: string
wrap?: boolean
}
interface worksheetCell extends wsStyle{
/**dataIndx of cell while export of grid */
dataIndx?: string | number
/**Zero based index of cell*/
indx?: number
/**Excel format string for numbers, dates */
format?: string
/**formula without leading = sign */
formula?: string
value?: any
}
interface worksheetColumn extends wsStyle{
hidden?: boolean
width?: number
/**Zero based index of column*/
indx?: number
}
/*interface wsBorder{
color: string
style: string
width: string
}*/
interface worksheetRow extends wsStyle{
/**Zero based index of row*/
indx?: number
cells: worksheetCell[]
hidden?: boolean
}
interface worksheet{
name?: string
columns?: worksheetColumn[]
frozenRows?: number
frozenCols?: number
hidden?: boolean
mergeCells?: string[]
/**number of header rows in rows. */
headerRows?: number
rows: worksheetRow[]
}
interface workbook{
activeId?: number
sheets?: worksheet[]
}
interface Checkbox{
checkAll()
checkNodes(nodes: any[])
getCheckedNodes(all?: boolean): any[]
isHeadChecked(): boolean | null
unCheckAll()
unCheckNodes(nodes: any[])
}
interface Columns{
add( columns: Array<column>, ci?: number, cm?: colModel, source?: string ): void //7.0
alter( callback: () => any)
each( callback:(column) => any, cm?: colModel)
find( callback:(column) => boolean, cm?: colModel): column
hide( ui: {diHide?: Array<string>, diShow?: Array<string> })//5.2.0
move( num: number, fromindx: number, toindx: number, fromParent?: column, toParent?: column, source?: string): column[]//7.1
reduce( callback:(column) => object | void, cm?: colModel ): colModel //5.3.0
remove( num: number, ci: number, cm?: colModel, source?: string ): void //7.0
reverse(): void //6.2.0
}
interface History{
canRedo(): boolean
canUndo(): boolean
redo()
reset()
undo()
}
//7.2
interface Formulas{
exec(formula: string): numberorstring
computeAll(): void
}
//7.2
interface Pic{
add(name: string, src: string, from: [number, number, number, number], to?: [number, number, number, number], cx?: number, cy?: number)
getId(img: any): number
remove( id: number)
}
interface SelectRow{
add(obj:{rowIndx?: number, isFirst?: boolean, rows?: {rowIndx?: number, rowIndxPage?: number}[]})
extend(obj:{rowIndx: number})
getFirst(): number
getSelection(): rowObject[]
isSelected(rowObject: rowObject): boolean
remove(obj:{rowIndx?: number, rows?: {rowIndx?: number, rowIndxPage?: number}[]})
removeAll(obj?: {all: boolean})
replace(obj:{rowIndx?: number, isFirst?: boolean, rows?: {rowIndx?: number, rowIndxPage?: number}[]})//5.4.0
selectAll(obj?: {all: boolean})
setFirst(rowIndx: number)
toggle(obj:{rowIndx: number, isFirst?: boolean})
toRange(): Range
}
interface Group{
addGroup(datIndx: numberorstring, indx?: number)
addNodes(nodes: any[], parent: any, indx?: number) //6.0.0
checkAll()//5.2.0
checkNodes(nodes: any[])//5.2.0
collapse(level?: number)
collapseAll(level?: number)
collapseTo(address: string)
deleteNodes(nodes: any[]) //6.0.0
expand(level?: number)
expandAll(level?: number)
expandTo(address: string)
getCheckedNodes(all?: boolean): any[]//5.2.0
getChildren(node: any): any[] //6.0.0
getChildrenAll(node: any): any[] //6.0.0
getNode(id: numberorstring): any //6.0.0
getParent(node: any): any //6.0.0
getSummary(node: any): any //6.0.0
isAncestor(childNode: any, ancestorNode: any): boolean //6.0.0
isFolder(any): boolean //6.0.0
isHeadChecked(): boolean | null//5.2.0
moveNodes(nodes: any[], parent: any, indx?: number) //6.0.0
option(options: any)
removeGroup(datIndx: numberorstring)
unCheckAll()//5.2.0
unCheckNodes(nodes: any[])//5.2.0
}
interface Tree{
addNodes(nodes: any[], parent?: any, indx?: number) //6.0.0, updated.
checkAll()//5.2.0
checkNodes(nodes: any[])
collapseAll()
collapseNodes(nodes: any[])
deleteNodes(nodes: any[])//5.2.0
eachChild(node: any, cb: ((node: any, parent: any) => void) ) //7.4.0: parent added
eachParent(node: any, cb: ((node: any) => void) )
expandAll()
expandNodes(nodes: any[])
expandTo(node: any)
getCheckedNodes(all?: boolean): any[]
getChildren(node?: any): any[] //6.0.0, 7.4.0: node optional
getChildrenAll(node: any): any[] //6.0.0
getLevel(node: any): number
getNode(id: numberorstring): any
getParent(node: any): any
getRoots(): any[]
getSummary(node: any): any //6.0.0
isAncestor(childNode: any, ancestorNode: any): boolean //6.0.0
isCollapsed(node: any): boolean
isFolder(node: any): boolean
isHeadChecked(): boolean | null//5.2.0
moveNodes(nodes: any[], parent?: any, indx?: number) //6.0.0, 7.4.0 parent optional
option(options: any)
unCheckAll()//5.2.0
unCheckNodes(nodes: any[])
updateId(node: any, id: numberorstring) //7.4.0
}
//8.7.0
interface Detail{
getRip(node: any): number
rowCollapse(obj: { rowIndx?: number, rowIndxPage?: number } )
rowExpand(obj: { rowIndx?: number, rowIndxPage?: number } )
toggleAll()
}
/******************************************grid methods ***************/
interface instance{
addClass(obj:{
rowData?: any,
rowIndx?: number,
dataIndx?: string | number,
cls: string,
refresh?: boolean
})
//8.7.0
addClassHead(obj:{
ri: number,
colIndx: number
})
addNodes(nodes: any[], rowIndx?: number)//6.0.0
addRow(obj: {
newRow?: any,
//rowData?: any,
rowIndx?: number,
//rowIndxPage?: number,
rowList?: any[],
track?: boolean,
source?: string,
history?: boolean,
checkEditable?: boolean,
refresh?: boolean
})
attr(obj: {
rowData?: any,
rowIndx?: number,
dataIndx: string|number,
attr: string
})
canPaste(): boolean //6.0.0
//5.2.0
Checkbox(dataIndx: numberorstring): Checkbox
clearPaste() //6.0.0
collapse()
Columns(): Columns
commit(obj?:{
type?: string,
rows?: any[]
});
//9.0.0
Context(): {
showMenu(evt, ui: object)
}
copy(obj?: any)
createTable(obj: {
$cont: JQuery,
data: any[]
})
data(obj:{
rowData,
rowIndx,
dataIndx,
data
})
cut(obj?: any)
deleteNodes(nodes: any[])//6.0.0
deleteRow(obj: {
rowIndx?: number,
rowData?: any, //6.0.0
rowList?: any[],
track?: boolean,
source?: string,
history?: boolean,
refresh?: boolean
})
destroy();
Detail(): Detail //8.7.0
disable()
//6.0.0
Drag(): Drag
enable()
editCell(obj: cellObject)
editFirstCellInRow(obj: { rowIndx: number } )
expand( )
exportData(options: {
eachCell?: any,
eachCellHead?: any,
eachRow?: any,
eachRowHead?: any,
eachCol?: any,
activeSheet?: boolean,
/**String of css rules applicable to Html format. */
cssRules?: string,
cssTable?: string,
/**Name of file without extension. */
//filename?: string,
/**csv, xlsx, json, js, wb or htm */
format?: string,
linkStyle?: string, //9.0.0
/**non-json export: exclude header in export. */
noheader?: boolean,
/**json export: exclude pq_ related meta data. */
nopqdata?: boolean,
/**json export: skip formatting of exported data. */
nopretty?: boolean,
/**include rendered cells. */
render?: boolean,
/**Excel export: replace unwanted characters. */
replace?: [any, string], //6.2.4
selection?: string, //9.0.0
separator?: string,
/**Excel sheet name. */
sheetName?: string,
sheets?: Array< string >,
skipHiddenCols?: boolean, //9.0.0
skipHiddenRows?: boolean, //9.0.0
skipHiddenSheets?: boolean, //9.0.0
/**Applicable to htm format. Title of html page. */
title?: string,
/**Excel export: maps to type parameter of jsZip generate method.*/
type?: string
/**Absolute or relative url where grid posts the data to be returned back by server as a download file. The data is not posted when url is not provided. */
//url?: string,
/**Excel export: generate intermediate json workbook instead of final Excel file. */
workbook?: boolean
/**Applicable to non-xlsx format. Set it true to reduce the size of download file by compressing it. */
//zip?: boolean
}): string|Blob;
exportExcel(option?: any)
filter(obj: {
/** 'AND' or 'OR' */
mode?: string
/** 'add', 'remove' or 'replace' */
oper?: string,
rules?: Array< rule >,
rule?: rule,
data?: any[]
}): any[]
flex(obj?: {
dataIndx?: Array<numberorstring>, colIndx?: Array<number>
})
focus(obj?: {
rowIndxPage: number,
colIndx: number
})
//8.7.0
focusHead(obj?: {
ri: number,
colIndx: number
})
freezeTopRow()//9.0.0
freezeFirstCol()//9.0.0
Formulas(): Formulas //7.2.0
getCell(obj: {
dataIndx?: numberorstring,
colIndx?: number
rowIndx?: number
rowIndxPage?: number
vci?: number //5.4.0
}): JQuery
//5.4.0
getCellFilter(obj: {
dataIndx?: numberorstring,
colIndx?: number
vci?: number
}): JQuery
getCellHeader(obj: {
dataIndx?: numberorstring,
colIndx?: number
ri?: number //5.4.0
vci?: number //5.4.0
}): JQuery
getCellsByClass(obj: {
cls: string
}): Array<cellObject>
getCellIndices({
$td: JQuery
}): cellObject
getChanges(obj?: {
/** 'byVal', 'raw' or null. */
format?: string,
/** Applicable only when format is 'byVal', it returns all fields in updateList when true. */
all?: boolean }): {
addList: any[]
deleteList: any[]
oldList: any[]
updateList: any[]
}
getColIndx(obj: {
dataIndx?: string | number
column?: any
}): number
getColumn(obj: {
dataIndx?: numberorstring
colIndx?: number
}): any
/** Array of leaf level col