mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
363 lines
14 KiB
TypeScript
363 lines
14 KiB
TypeScript
// Type definitions for Handsontable 0.24.3
|
|
// Project: https://handsontable.com/
|
|
// Definitions by: Handsoncode sp. z o.o. <http://handsoncode.net/>
|
|
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped\
|
|
|
|
declare namespace ht {
|
|
interface Options {
|
|
allowEmpty?: boolean;
|
|
allowInsertColumn?: boolean;
|
|
allowInsertRow?: boolean;
|
|
allowInvalid?: boolean;
|
|
allowRemoveColumn?: boolean;
|
|
allowRemoveRow?: boolean;
|
|
autoColumnSize?: Object|boolean;
|
|
autoComplete?: any[];
|
|
autoRowSize?: Object|boolean;
|
|
autoWrapCol?: boolean;
|
|
autoWrapRow?: boolean;
|
|
bindRowsWithHeaders?: boolean|string;
|
|
cell?: any[];
|
|
cells?: Function;
|
|
checkedTemplate?: boolean|string;
|
|
className?: string|any[];
|
|
colHeaders?: boolean|any[]|Function;
|
|
collapsibleColumns?: boolean|any[];
|
|
columnHeaderHeight?: number|any[];
|
|
columns?: any[];
|
|
columnSorting?: boolean|Object;
|
|
columnSummary?: Object;
|
|
colWidths?: any[]|Function|number|string;
|
|
commentedCellClassName?: string;
|
|
comments?: boolean|any[];
|
|
contextMenu?: boolean|any[]|Object;
|
|
contextMenuCopyPaste?: Object;
|
|
copyable?: boolean;
|
|
copyColsLimit?: number;
|
|
copyPaste?: boolean;
|
|
copyRowsLimit?: number;
|
|
correctFormat?: boolean;
|
|
currentColClassName?: string;
|
|
currentRowClassName?: string;
|
|
customBorders?: boolean|any[];
|
|
data?: any[]|Function;
|
|
dataSchema?: Object;
|
|
dateFormat?: string;
|
|
debug?: boolean;
|
|
defaultDate?: string;
|
|
disableVisualSelection?: boolean|string|any[];
|
|
dropdownMenu?: boolean|Object|any[];
|
|
editor?: string|Function|boolean;
|
|
enterBeginsEditing?: boolean;
|
|
enterMoves?: Object|Function;
|
|
fillHandle?: boolean|string|Object;
|
|
filter?: boolean;
|
|
filteringCaseSensitive?: boolean;
|
|
filters?: boolean;
|
|
fixedColumnsLeft?: number;
|
|
fixedRowsBottom?: number;
|
|
fixedRowsTop?: number;
|
|
format?: string;
|
|
fragmentSelection?: boolean|string;
|
|
ganttChart?: Object;
|
|
headerTooltips?: boolean|Object;
|
|
height?: number|Function;
|
|
hiddenColumns?: boolean|Object;
|
|
hiddenRows?: boolean|Object;
|
|
invalidCellClassName?: string;
|
|
label?: Object;
|
|
language?: string;
|
|
manualColumnFreeze?: boolean;
|
|
manualColumnMove?: boolean|any[];
|
|
manualColumnResize?: boolean|any[];
|
|
manualRowMove?: boolean|any[];
|
|
manualRowResize?: boolean|any[];
|
|
maxCols?: number;
|
|
maxRows?: number;
|
|
mergeCells?: boolean|any[];
|
|
minCols?: number;
|
|
minRows?: number;
|
|
minSpareCols?: number;
|
|
minSpareRows?: number;
|
|
multiSelect?: boolean;
|
|
nestedHeaders?: any[];
|
|
noWordWrapClassName?: string;
|
|
observeChanges?: boolean;
|
|
observeDOMVisibility?: boolean;
|
|
outsideClickDeselects?: boolean;
|
|
pasteMode?: string;
|
|
persistentState?: boolean;
|
|
placeholder?: any;
|
|
placeholderCellClassName?: string;
|
|
preventOverflow?: string|boolean;
|
|
readOnly?: boolean;
|
|
readOnlyCellClassName?: string;
|
|
renderAllRows?: boolean;
|
|
renderer?: string|Function;
|
|
rowHeaders?: boolean|any[]|Function;
|
|
rowHeaderWidth?: number|any[];
|
|
rowHeights?: any[]|Function|number|string;
|
|
search?: boolean;
|
|
selectOptions?: any[];
|
|
skipColumnOnPaste?: boolean;
|
|
sortByRelevance?: boolean;
|
|
sortFunction?: Function;
|
|
sortIndicator?: boolean;
|
|
source?: any[]|Function;
|
|
startCols?: number;
|
|
startRows?: number;
|
|
stretchH?: string;
|
|
strict?: boolean;
|
|
tableClassName?: string|any[];
|
|
tabMoves?: Object;
|
|
title?: string;
|
|
trimDropdown?: boolean;
|
|
trimWhitespace?: boolean;
|
|
type?: string;
|
|
uncheckedTemplate?: boolean|string;
|
|
undo?: boolean;
|
|
validator?: Function|RegExp;
|
|
viewportColumnRenderingOffset?: number|string;
|
|
viewportRowRenderingOffset?: number|string;
|
|
visibleRows?: number;
|
|
width?: number|Function;
|
|
wordWrap?: boolean;
|
|
isEmptyCol?: (col: number) => boolean;
|
|
isEmptyRow?: (row: number) => boolean;
|
|
|
|
// hooks
|
|
afterAutofillApplyValues?: (startArea: any[], entireArea: any[]) => void;
|
|
afterCellMetaReset?: () => void;
|
|
afterChange?: (changes: any[], source: string) => void;
|
|
afterChangesObserved?: () => void;
|
|
afterColumnMove?: (startColumn: number, endColumn: number) => void;
|
|
afterColumnResize?: (currentColumn: number, newSize: number, isDoubleClick: boolean) => void;
|
|
afterColumnSort?: (column: number, order: boolean) => void;
|
|
afterContextMenuDefaultOptions?: (predefinedItems: any[]) => void;
|
|
afterContextMenuHide?: (context: Object) => void;
|
|
afterContextMenuShow?: (context: Object) => void;
|
|
afterCopyLimit?: (selectedRows: number, selectedColumnds: number, copyRowsLimit: number, copyColumnsLimit: number) => void;
|
|
afterCreateCol?: (index: number, amount: number) => void;
|
|
afterCreateRow?: (index: number, amount: number) => void;
|
|
afterDeselect?: () => void;
|
|
afterDestroy?: () => void;
|
|
afterDocumentKeyDown?: (event: Event) => void;
|
|
afterFilter?: (formulasStack: any[]) => void;
|
|
afterGetCellMeta?: (row: number, col: number, cellProperties: Object) => void;
|
|
afterGetColHeader?: (col: number, TH: Element) => void;
|
|
afterGetColumnHeaderRenderers?: (array: any[]) => void;
|
|
afterGetRowHeader?: (row: number, TH: Element) => void;
|
|
afterGetRowHeaderRenderers?: (array: any[]) => void;
|
|
afterInit?: () => void;
|
|
afterLoadData?: (firstTime: boolean) => void;
|
|
afterMomentumScroll?: () => void;
|
|
afterOnCellCornerMouseDown?: (event: Object) => void;
|
|
afterOnCellMouseDown?: (event: Object, coords: Object, TD: Element) => void;
|
|
afterOnCellMouseOver?: (event: Object, coords: Object, TD: Element) => void;
|
|
afterRemoveCol?: (index: number, amount: number) => void;
|
|
afterRemoveRow?: (index: number, amount: number) => void;
|
|
afterRender?: (isForced: boolean) => void;
|
|
afterRenderer?: (TD: Element, row: number, col: number, prop: string|number, value: string, cellProperties: Object) => void;
|
|
afterRowMove?: (startRow: number, endRow: number) => void;
|
|
afterRowResize?: (currentRow: number, newSize: number, isDoubleClick: boolean) => void;
|
|
afterScrollHorizontally?: () => void;
|
|
afterScrollVertically?: () => void;
|
|
afterSelection?: (r: number, c: number, r2: number, c2: number) => void;
|
|
afterSelectionByProp?: (r: number, p: string, r2: number, p2: string) => void;
|
|
afterSelectionEnd?: (r: number, c: number, r2: number, c2: number) => void;
|
|
afterSelectionEndByProp?: (r: number, p: string, r2: number, p2: string) => void;
|
|
afterSetCellMeta?: (row: number, col: number, key: string, value: any) => void;
|
|
afterUpdateSettings?: () => void;
|
|
afterValidate?: (isValid: boolean, value: any, row: number, prop: string|number, source: string) => void|boolean;
|
|
beforeAutofill?: (start: Object, end: Object, data: any[]) => void;
|
|
beforeCellAlignment?: (stateBefore: any, range: any, type: string, alignmentClass: string) => void;
|
|
beforeChange?: (changes: any[], source: string) => void;
|
|
beforeChangeRender?: (changes: any[], source: string) => void;
|
|
beforeColumnMove?: (startColumn: number, endColumn: number) => void;
|
|
beforeColumnResize?: (currentColumn: number, newSize: number, isDoubleClick: boolean) => void;
|
|
beforeColumnSort?: (column: number, order: boolean) => void;
|
|
beforeDrawBorders?: (corners: any[], borderClassName: string) => void;
|
|
beforeFilter?: (formulasStack: any[]) => void;
|
|
beforeGetCellMeta?: (row: number, col: number, cellProperties: Object) => void;
|
|
beforeInit?: () => void;
|
|
beforeInitWalkontable?: (walkontableConfig: Object) => void;
|
|
beforeKeyDown?: (event: Event) => void;
|
|
beforeOnCellMouseDown?: (event: Event, coords: Object, TD: Element) => void;
|
|
beforeRemoveCol?: (index: number, amount: number, logicalCols?: any[]) => void;
|
|
beforeRemoveRow?: (index: number, amount: number, logicalRows?: any[]) => void;
|
|
beforeRender?: (isForced: boolean) => void;
|
|
beforeRenderer?: (TD: Element, row: number, col: number, prop: string|number, value: string, cellProperties: Object) => void;
|
|
beforeRowMove?: (startRow: number, endRow: number) => void;
|
|
beforeRowResize?: (currentRow: number, newSize: number, isDoubleClick: boolean) => any;
|
|
beforeSetRangeEnd?: (coords: any[]) => void;
|
|
beforeStretchingColumnWidth?: (stretchedWidth: number, column: number) => void;
|
|
beforeTouchScroll?: () => void;
|
|
beforeValidate?: (value: any, row: number, prop: string|number, source: string) => void;
|
|
construct?: () => void;
|
|
init?: () => void;
|
|
modifyCol?: (col: number) => void;
|
|
modifyColHeader?: (column: number) => void;
|
|
modifyColWidth?: (width: number, col: number) => void;
|
|
modifyCopyableRange?: (copyableRanges: any[]) => void;
|
|
modifyRow?: (row: number) => void;
|
|
modifyRowHeader?: (row: number) => void;
|
|
modifyRowHeight?: (height: number, row: number) => void;
|
|
persistentStateLoad?: (key: string, valuePlaceholder: Object) => void;
|
|
persistentStateReset?: (key: string) => void;
|
|
persistentStateSave?: (key: string, value: any) => void;
|
|
unmodifyCol?: (col: number) => void;
|
|
}
|
|
interface Methods {
|
|
addHook(key: string, callback: Function|any[]): void;
|
|
addHookOnce(key: string, callback: Function|any[]): void;
|
|
alter(action: string, index: number, amount?: number, source?: string, keepEmptyRows?: boolean): void;
|
|
clear(): void;
|
|
colOffset(): number;
|
|
colToProp(col: number): string|number;
|
|
countCols(): number;
|
|
countEmptyCols(ending?: boolean): number;
|
|
countEmptyRows(ending?: boolean): number;
|
|
countRenderedCols(): number;
|
|
countRenderedRows(): number;
|
|
countRows(): number;
|
|
countSourceRows(): number;
|
|
countVisibleCols(): number;
|
|
countVisibleRows(): number;
|
|
deselectCell(): void;
|
|
destroy(): void;
|
|
destroyEditor(revertOriginal?: boolean): void;
|
|
getActiveEditor(): Object;
|
|
getCell(row: number, col: number, topmost?: boolean): Element;
|
|
getCellEditor(row: number, col: number): Object;
|
|
getCellMeta(row: number, col: number): Object;
|
|
getCellRenderer(row: number, col: number): Function;
|
|
getCellValidator(row: number, col: number): any;
|
|
getColHeader(col?: number): any[]|string;
|
|
getColWidth(col: number): number;
|
|
getCoords(elem: Element): Object;
|
|
getCopyableData(row: number, column: number): string;
|
|
getCopyableText(startRow: number, startCol: number, endRow: number, endCol: number): string;
|
|
getData(r?: number, c?: number, r2?: number, c2?: number): any[];
|
|
getDataAtCell(row: number, col: number): any;
|
|
getDataAtCol(col: number): any[];
|
|
getDataAtProp(prop: string|number): any[];
|
|
getDataAtRow(row: number): any[];
|
|
getDataAtRowProp(row: number, prop: string): any;
|
|
getDataType(rowFrom: number, columnFrom: number, rowTo: number, columnTo: number): string;
|
|
getInstance(): any;
|
|
getPlugin(pluginName: string): any;
|
|
getRowHeader(row?: number): any[]|string;
|
|
getRowHeight(row: number): number;
|
|
getSchema(): Object;
|
|
getSelected(): any[];
|
|
getSelectedRange(): Range;
|
|
getSettings(): Object;
|
|
getSourceData(r?: number, c?: number, r2?: number, c2?: number): any[];
|
|
getSourceDataAtCell(row: number, column: number): any;
|
|
getSourceDataAtCol(column: number): any[];
|
|
getSourceDataAtRow(row: number): any[]|Object;
|
|
getValue(): any;
|
|
hasColHeaders(): boolean;
|
|
hasHook(key: string): boolean;
|
|
hasRowHeaders(): boolean;
|
|
isEmptyCol(col: number): boolean;
|
|
isEmptyRow(row: number): boolean;
|
|
isListening(): boolean;
|
|
listen(): void;
|
|
loadData(data: any[]): void;
|
|
populateFromArray(row: number, col: number, input: any[], endRow?: number, endCol?: number, source?: string, method?: string, direction?: string, deltas?: any[]): any;
|
|
propToCol(prop: string | number): number;
|
|
removeCellMeta(row: number, col: number, key: string): void;
|
|
removeHook(key: string, callback: Function): void;
|
|
render(): void;
|
|
rowOffset(): number;
|
|
runHooks(key: string, p1?: any, p2?: any, p3?: any, p4?: any, p5?: any, p6?: any): any;
|
|
selectCell(row: number, col: number, endRow?: number, endCol?: number, scrollToCell?: boolean, changeListener?: boolean): boolean;
|
|
selectCellByProp(row: number, prop: string, endRow?: number, endProp?: string, scrollToCell?: boolean): boolean;
|
|
setCellMeta(row: number, col: number, key: string, val: string): void;
|
|
setCellMetaObject(row: number, col: number, prop: Object): void;
|
|
setDataAtCell(row: number|any[], col: number, value: string, source?: string): void;
|
|
setDataAtRowProp(row: number|any[], prop: string, value: string, source?: string): void;
|
|
spliceCol(col: number, index: number, amount: number, elements?: any): void;
|
|
spliceRow(row: number, index: number, amount: number, elements?: any): void;
|
|
unlisten(): void;
|
|
updateSettings(settings: Object, init: boolean): void;
|
|
validateCells(callback: Function): void;
|
|
}
|
|
|
|
interface Selection {
|
|
start: CellPosition;
|
|
end: CellPosition;
|
|
}
|
|
|
|
interface Range {
|
|
from: CellPosition;
|
|
to: CellPosition;
|
|
}
|
|
|
|
interface HandsontableRegisterer {
|
|
getInstance(id: string): Methods;
|
|
registerInstance(id: string, instance: Methods): void;
|
|
removeInstance(id: string): void;
|
|
}
|
|
|
|
interface ColumnProperties extends CellProperties {
|
|
data?: string;
|
|
editor?: string;
|
|
selectOptions?: any[];
|
|
}
|
|
|
|
interface CellProperties {
|
|
renderer?: (
|
|
instance: Methods,
|
|
td: HTMLTableDataCellElement,
|
|
row: number,
|
|
col: number,
|
|
prop: string,
|
|
value: any,
|
|
tdCellProperties: Object) => void;
|
|
type?: string;
|
|
readOnly?: boolean;
|
|
language?: string;
|
|
format?: string;
|
|
validator?: (value: string, callback: (condition: boolean) => void) => void;
|
|
}
|
|
|
|
interface CellPosition {
|
|
row: number;
|
|
col: number;
|
|
}
|
|
}
|
|
|
|
|
|
declare var Handsontable: {
|
|
new (element: Element, options: ht.Options): ht.Methods;
|
|
renderers: {
|
|
TextRenderer(
|
|
instance: any,
|
|
td: HTMLTableCellElement,
|
|
row: number,
|
|
col: number,
|
|
prop: string,
|
|
value: any,
|
|
cellProperties: any): void;
|
|
NumericRenderer(
|
|
instance: any,
|
|
td: HTMLTableCellElement,
|
|
row: number,
|
|
col: number,
|
|
prop: string,
|
|
value: any,
|
|
cellProperties: any): void;
|
|
}
|
|
Dom: {
|
|
addEvent(element: HTMLElement, eventName: string, callback: Function): void;
|
|
}
|
|
};
|
|
|
|
declare module "handsontable" {
|
|
export var Handsontable: {
|
|
new (element: Element, options: ht.Options): ht.Methods;
|
|
};
|
|
}
|