handsontable.d.ts 65 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810
  1. declare namespace _Handsontable {
  2. namespace wot {
  3. interface CellCoords {
  4. col: number,
  5. row: number
  6. }
  7. interface CellRange {
  8. highlight: CellCoords;
  9. from: CellCoords;
  10. to: CellCoords;
  11. }
  12. }
  13. namespace cellTypes {
  14. interface Autocomplete {
  15. editor: editors.Autocomplete;
  16. renderer: renderers.Autocomplete;
  17. validator: (value: any, callback: () => void) => boolean;
  18. }
  19. interface Checkbox {
  20. editor: editors.Checkbox;
  21. renderer: renderers.Checkbox;
  22. }
  23. interface Date {
  24. editor: editors.Date;
  25. renderer: renderers.Autocomplete;
  26. validator: (value: any, callback: () => void) => boolean;
  27. }
  28. interface Dropdown {
  29. editor: editors.Dropdown;
  30. renderer: renderers.Autocomplete;
  31. validator: (value: any, callback: () => void) => boolean;
  32. }
  33. interface Handsontable {
  34. editor: editors.Handsontable;
  35. renderer: renderers.Autocomplete;
  36. }
  37. interface Numeric {
  38. dataType: string;
  39. editor: editors.Numeric;
  40. renderer: renderers.Numeric;
  41. validator: (value: any, callback: () => void) => boolean;
  42. }
  43. interface Password {
  44. copyable: boolean;
  45. editor: editors.Password;
  46. renderer: renderers.Password;
  47. }
  48. interface Text {
  49. editor: editors.Text;
  50. renderer: renderers.Text;
  51. }
  52. interface Time {
  53. editor: editors.Text;
  54. renderer: renderers.Text;
  55. validator: (value: any, callback: () => void) => boolean;
  56. }
  57. }
  58. namespace editors {
  59. class Base {
  60. instance: Core;
  61. row: number;
  62. col: number;
  63. prop: string | number;
  64. TD: HTMLElement;
  65. cellProperties: object;
  66. constructor (hotInstance: Core, row: number, col: number, prop: string | number, TD: HTMLElement, cellProperties: object)
  67. beginEditing(initialValue?: string): void;
  68. cancelChanges(): void;
  69. checkEditorSection(): void;
  70. close(): void;
  71. discardEditor(validationResult?: boolean): void;
  72. enableFullEditMode(): void;
  73. extend(): void;
  74. finishEditing(restoreOriginalValue?: boolean, ctrlDown?: boolean, callback?: () => void): void;
  75. getValue(): void;
  76. init(): void;
  77. isInFullEditMode(): void;
  78. isOpened(): boolean;
  79. isWaiting(): boolean;
  80. open(): void;
  81. prepare(row: number, col: number, prop: string | number, TD: HTMLElement, originalValue: any, cellProperties: object): void;
  82. saveValue(val?: any, ctrlDown?: boolean): void;
  83. setValue(newValue?: any): void;
  84. }
  85. class Checkbox extends Base { }
  86. class Mobile extends Base {
  87. hideCellPointer(): void;
  88. onBeforeKeyDown(event?: Event): void;
  89. prepareAndSave(): void;
  90. scrollToView(): void;
  91. updateEditorData(): void;
  92. updateEditorPosition(x?: number, y?: number): void;
  93. valueChanged(): void;
  94. }
  95. class Select extends Base {
  96. focus(): void;
  97. getEditedCell(): void;
  98. prepareOptions(optionsToPrepare?: object | any[]): void;
  99. refreshDimensions(): void;
  100. refreshValue(): void;
  101. registerHooks(): void;
  102. }
  103. class Text extends Base {
  104. bindEvents(): void;
  105. close(tdOutside?: HTMLElement): void;
  106. createElements(): void;
  107. destroy(): void;
  108. focus(): void;
  109. getEditedCell(): void;
  110. refreshDimensions(): void;
  111. refreshValue():void;
  112. }
  113. class Date extends Text {
  114. close(): void;
  115. destroyElements(): void;
  116. finishEditing(isCancelled?: boolean, ctrlDown?: boolean): void;
  117. getDatePickerConfig(): object;
  118. hideDatepicker(): void;
  119. open(event?: Event): void;
  120. showDatepicker(event?: Event): void;
  121. }
  122. class Handsontable extends Text {
  123. assignHooks(): void;
  124. beginEditing(initialValue?: any): void;
  125. close(): void;
  126. finishEditing(isCancelled?: boolean, ctrlDown?: boolean): void;
  127. focus(): void;
  128. open(): void;
  129. }
  130. class Numeric extends Text { }
  131. class Password extends Text { }
  132. class Autocomplete extends Handsontable {
  133. allowKeyEventPropagation(keyCode?: number): void;
  134. finishEditing(restoreOriginalValue?: boolean): void;
  135. flipDropdown(dropdownHeight?: number): void;
  136. flipDropdownIfNeeded(): void;
  137. getDropdownHeight(): void;
  138. highlightBestMatchingChoice(index?: number): void;
  139. limitDropdownIfNeeded(spaceAvailable?: number, dropdownHeight?: number): void;
  140. queryChoices(query?: any): void;
  141. sortByRelevance(value?: any, choices?: any[], caseSensitive?: boolean): any[];
  142. setDropdownHeight(height?: number): void;
  143. updateChoicesList(choices?: any[]): void;
  144. unflipDropdown(): void;
  145. updateDropdownHeight(): void;
  146. }
  147. class Dropdown extends Autocomplete { }
  148. class CommentEditor {
  149. editor: HTMLElement;
  150. editorStyle: CSSStyleDeclaration;
  151. hidden: boolean;
  152. setPosition(x: number, y: number): void;
  153. setSize(width: number, height: number): void;
  154. resetSize(): void;
  155. setReadOnlyState(state: boolean): void;
  156. show(): void;
  157. hide(): void;
  158. isVisible(): void;
  159. setValue(value?: string): void;
  160. getValue(): string;
  161. isFocused(): boolean;
  162. focus(): void;
  163. createEditor(): HTMLElement;
  164. getInputElement(): HTMLElement;
  165. destroy(): void;
  166. }
  167. }
  168. namespace plugins {
  169. // utils for Filters
  170. namespace FiltersPlugin {
  171. interface BaseComponent {
  172. elements: any[];
  173. hidden: boolean;
  174. destroy(): boolean;
  175. hide(): void;
  176. isHidden(): boolean;
  177. reset(): void;
  178. show(): void;
  179. }
  180. interface ActionBarComponent extends BaseComponent {
  181. getMenuItemDescriptor(): object;
  182. accept(): void;
  183. cancel(): void;
  184. }
  185. interface ConditionComponent extends BaseComponent {
  186. getInputElement(index?: number): InputUI;
  187. getInputElements(): any[];
  188. getMenuItemDescriptor(): object;
  189. getSelectElement(): SelectUI;
  190. getState(): object;
  191. setState(value: object): void;
  192. updateState(stateInfo: object): void;
  193. }
  194. interface ValueComponent extends BaseComponent {
  195. getMenuItemDescriptor(): object;
  196. getMultipleSelectElement(): MultipleSelectUI;
  197. getState(): object;
  198. setState(value: object): void;
  199. updateState(stateInfo: object): void;
  200. }
  201. interface BaseUI {
  202. buildState: boolean;
  203. eventManager: EventManager;
  204. hot: Core;
  205. options: object;
  206. build(): void;
  207. destroy(): void;
  208. element(): Element;
  209. focus(): void;
  210. getValue(): any;
  211. hide(): void;
  212. isBuilt(): boolean;
  213. reset(): void;
  214. setValue(value: any): any;
  215. show(): void;
  216. update(): void;
  217. }
  218. interface InputUI extends BaseUI { }
  219. interface MultipleSelectUI extends BaseUI {
  220. clearAllUI: BaseUI;
  221. items: any[];
  222. itemsBox: Core;
  223. searchInput: InputUI;
  224. selectAllUI: BaseUI;
  225. getItems(): void;
  226. getValue(): any[];
  227. isSelectedAllValues(): boolean;
  228. setItems(items: any[]): void;
  229. }
  230. interface SelectUI extends BaseUI {
  231. menu: Menu | void;
  232. items: any[];
  233. setItems(items: any[]): void;
  234. openOptions(): void;
  235. closeOptions(): void;
  236. }
  237. interface FormulaCollection {
  238. formulas: object;
  239. orderStack: any[];
  240. addFormula(column: number, formulaDefinition: object): void;
  241. clean(): void;
  242. clearFormulas(column: number): void;
  243. destroy(): void;
  244. exportAllFormulas(): any[];
  245. getFormulas(column: number): any[];
  246. hasFormulas(column: number, name: string): boolean;
  247. isEmpty(): boolean;
  248. isMatch(value: object, column: number): boolean;
  249. isMatchInFormulas(formulas: any[], value: object): boolean;
  250. importAllFormulas(formulas: any[]): void;
  251. removeFormulas(column: number): void;
  252. }
  253. interface FormulaUpdateObserver {
  254. changes: any[];
  255. columnDataFactory: (column: number) => any[];
  256. formulaCollection: FormulaCollection;
  257. grouping: boolean;
  258. latestEditedColumnPosition: number;
  259. latestOrderStack: any[];
  260. destroy(): void;
  261. flush(): void;
  262. groupChanges(): void;
  263. updateStatesAtColumn(column: number, formulaArgsChange: object): void;
  264. }
  265. }
  266. interface BindStrategy {
  267. klass: () => void;
  268. strategy: string | void;
  269. clearMap(): void;
  270. createMap(length: number): void;
  271. createRow(params: any): void;
  272. destroy(): void;
  273. removeRow(params: any): void;
  274. setStrategy(name: string): void;
  275. translate(params: any): void;
  276. }
  277. interface CommandExecutor {
  278. hot: Core;
  279. commands: object;
  280. commonCallback: (() => void) | void;
  281. registerCommand(name: string, commandDescriptor: object): void;
  282. setCommonCallback(callback: () => void): void;
  283. execute(commandName: string, ...params: any[]): void;
  284. }
  285. interface Cursor {
  286. cellHeight: number;
  287. cellWidth: number;
  288. left: number;
  289. leftRelative: number;
  290. scrollLeft: number;
  291. scrollTop: number;
  292. top: number;
  293. topRelative: number;
  294. type: string;
  295. fitsAbove(element: HTMLElement): boolean;
  296. fitsBelow(element: HTMLElement, viewportHeight?: number): boolean;
  297. fitsOnLeft(element: HTMLElement): boolean;
  298. fitsOnRight(element: HTMLElement, viewportHeight?: number): boolean;
  299. getSourceType(object: any): string;
  300. }
  301. interface Endpoints {
  302. plugin: plugins.ColumnSummary;
  303. hot: Core;
  304. endpoints: any[];
  305. settings: object | (() => void);
  306. settingsType: string;
  307. currentEndpoint: object | void;
  308. assignSetting(settings: object, endpoint: object, name: string, defaultValue: any): void;
  309. getAllEndpoints(): any[];
  310. getEndpoint(index: number): object;
  311. parseSettings(settings: any[]): void;
  312. refreshAllEndpoints(init: boolean): void;
  313. refreshChangedEndpoints(changes: any[]): void;
  314. refreshEndpoint(endpoint: object): void;
  315. resetAllEndpoints(endpoints: any[], useOffset?: boolean): void;
  316. resetEndpointValue(endpoint: object, useOffset?: boolean): void;
  317. setEndpointValue(endpoint: object, source: string, render?: boolean): void;
  318. }
  319. interface EventManager {
  320. context?: object;
  321. addEventListener(element: Element, eventName: string, callback: () => void): () => void;
  322. removeEventListener(element: Element, eventName: string, callback: () => void): void;
  323. clearEvents(): void;
  324. clear(): void;
  325. destroy(): void;
  326. fireEvent(element: Element, eventName: string): void;
  327. extendEvent(context: object, event: Event): any;
  328. }
  329. interface GhostTable {
  330. columns: number[];
  331. container: HTMLElement | null;
  332. hot: Core;
  333. injected: boolean;
  334. rows: object[];
  335. samples: object | null;
  336. settings: object;
  337. addRow(row: number, samples: object): void;
  338. addColumn(column: number, samples: object): void;
  339. addColumnHeadersRow(samples: object): void;
  340. clean(): void;
  341. createCol(column: number): DocumentFragment;
  342. createColElement(column: number): HTMLElement;
  343. createColGroupsCol(): DocumentFragment;
  344. createColumnHeadersRow(): DocumentFragment;
  345. createContainer(className?: string): object;
  346. createRow(row: number): DocumentFragment;
  347. createTable(className?: string): object;
  348. getHeights(callback: (row: number, height: number) => void): void;
  349. getWidths(callback: (row: number, height: number) => void): void;
  350. getSettings(): object | void;
  351. getSetting(name: string): boolean | void;
  352. injectTable(parent?: HTMLElement | void): void;
  353. isHorizontal(): boolean;
  354. isVertical(): boolean;
  355. removeTable(): void;
  356. setSettings(settings: object): void;
  357. setSetting(name: string, value: any): void;
  358. }
  359. interface ItemsFactory {
  360. defaultOrderPattern: any[] | void;
  361. hot: Core;
  362. predefinedItems: object;
  363. getItems(pattern?: any[] | object | boolean): any[];
  364. setPredefinedItems(predefinedItems: any[]): void;
  365. }
  366. interface Menu {
  367. container: HTMLElement;
  368. eventManager: EventManager;
  369. hot: Core;
  370. hotMenu: Core;
  371. hotSubMenus: object;
  372. keyEvent: boolean;
  373. menuItems: any[] | null;
  374. offset: object;
  375. options: object;
  376. origOutsideClickDeselects: boolean | (() => void);
  377. parentMenu: Menu | null;
  378. close(closeParent?: boolean): void;
  379. closeSubMenu(row: number): void;
  380. closeAllSubMenus(): void;
  381. destroy(): void;
  382. executeCommand(event: Event): void;
  383. isOpened(): boolean;
  384. isSubMenu(): boolean;
  385. open(): void;
  386. openSubMenu(row: number): Menu | boolean;
  387. setMenuItems(menuItems: any[]): void;
  388. setOffset(area: string, offset?: number): void;
  389. selectLastCell(): void;
  390. selectFirstCell(): void;
  391. selectPrevCell(row: number, col: number): void;
  392. selectNextCell(row: number, col: number): void;
  393. setPosition(coords: Event | object): void;
  394. setPositionAboveCursor(cursor: Cursor): void;
  395. setPositionBelowCursor(cursor: Cursor): void;
  396. setPositionOnLeftOfCursor(cursor: Cursor): void;
  397. setPositionOnRightOfCursor(cursor: Cursor): void;
  398. }
  399. interface SamplesGenerator {
  400. allowDuplicates: boolean | null;
  401. customSampleCount: boolean | null;
  402. dataFactory: () => void;
  403. samples: object | null;
  404. generateColumnSamples(colRange: object, rowRange: object): object;
  405. generateRowSamples(rowRange: object | number, colRange: object): object;
  406. generateSamples(type: string, range: object, specifierRange: object | number): object;
  407. generateSample(type: string, range: object, specifierValue: number): object
  408. getSampleCount(): number;
  409. setAllowDuplicates(allowDuplicates: boolean): void;
  410. setSampleCount(sampleCount: number): void;
  411. }
  412. class Base {
  413. pluginName: string;
  414. pluginsInitializedCallback: any[];
  415. isPluginsReady: boolean;
  416. enabled: boolean;
  417. initialized: boolean;
  418. constructor(hotInstance?: Core);
  419. addHook(name: string, callback: () => void): void;
  420. callOnPluginsReady(callback: () => void): void;
  421. clearHooks(): void;
  422. destroy(): void;
  423. disablePlugin(): void;
  424. enablePlugin(): void;
  425. init(): void;
  426. removeHook(name: string): void;
  427. }
  428. interface AutoColumnSize extends Base {
  429. firstCalculation: boolean;
  430. ghostTable: GhostTable;
  431. inProgress: boolean;
  432. sampleGenerator: SamplesGenerator;
  433. widths: any[];
  434. calculateAllColumnsWidth(rowRange?: number | object): void;
  435. calculateColumnsWidth(colRange?: number | object, rowRange?: number | object, force?: boolean): void;
  436. clearCache(columns?: any[]): void;
  437. findColumnsWhereHeaderWasChanged(): any[];
  438. getColumnWidth(col: number, defaultWidth?: number, keepMinimum?: boolean): number;
  439. getFirstVisibleColumn(): number;
  440. getLastVisibleColumn(): number;
  441. getSyncCalculationLimit(): number;
  442. isNeedRecalculate(): boolean;
  443. recalculateAllColumnsWidth(): void;
  444. }
  445. interface AutoRowSize extends Base {
  446. firstCalculation: boolean;
  447. heights: any[];
  448. ghostTable: GhostTable;
  449. inProgress: boolean;
  450. sampleGenerator: SamplesGenerator;
  451. calculateAllRowsHeight(colRange?: number | object): void;
  452. calculateRowsHeight(rowRange?: number | object, colRange?: number | object, force?: boolean): void;
  453. clearCache(): void;
  454. clearCacheByRange(range: number | object): void;
  455. findColumnsWhereHeaderWasChanged(): any[];
  456. getColumnHeaderHeight(): number | void;
  457. getFirstVisibleRow(): number;
  458. getLastVisibleRow(): number;
  459. getRowHeight(col: number, defaultHeight?: number): number;
  460. getSyncCalculationLimit(): number;
  461. isNeedRecalculate(): boolean;
  462. recalculateAllRowsHeight(): void;
  463. }
  464. interface Autofill extends Base {
  465. addingStarted: boolean;
  466. autoInsertRow: boolean;
  467. directions: string[];
  468. eventManager: EventManager;
  469. handleDraggedCells: boolean;
  470. mouseDownOnCellCorner: boolean;
  471. mouseDragOutside: boolean;
  472. }
  473. interface BindRowsWithHeaders extends Base {
  474. bindStrategy: BindStrategy;
  475. removeRows: any[];
  476. }
  477. interface CollapsibleColumns extends Base {
  478. buttonEnabledList: object;
  479. collapsedSections: object;
  480. columnHeaderLevelCount: number;
  481. eventManager: EventManager;
  482. hiddenColumnsPlugin: object;
  483. nestedHeadersPlugin: object;
  484. settings: boolean | any[];
  485. checkDependencies(): void;
  486. collapseAll(): void;
  487. collapseSection(coords: object): void;
  488. expandAll(): void;
  489. expandSection(coords: object): void;
  490. generateIndicator(col: number, TH: HTMLElement): HTMLElement;
  491. markSectionAs(state: string, row: number, column: number, recursive: boolean): void;
  492. meetsDependencies(): boolean;
  493. parseSettings(): void;
  494. toggleAllCollapsibleSections(action: string): void;
  495. toggleCollapsibleSection(coords: object, action: string): void;
  496. }
  497. interface ColumnSorting extends Base {
  498. lastSortedColumn: number;
  499. sortEmptyCells: boolean;
  500. sortIndicators: any[];
  501. dateSort(sortOrder: boolean, columnMeta: object): (a: any, b: any) => boolean;
  502. defaultSort(sortOrder: boolean, columnMeta: object): (a: any, b: any) => boolean;
  503. enableObserveChangesPlugin(): void;
  504. getColHeader(col: number, TH: HTMLElement): void;
  505. isSorted(): boolean;
  506. loadSortingState(): any;
  507. numericSort(sortOrder: boolean, columnMeta: object): (a: any, b: any) => boolean;
  508. saveSortingState(): void;
  509. setSortingColumn(col: number, order: boolean | void): void;
  510. sort(): void;
  511. sortBySettings(): void;
  512. sortByColumn(col: number, order: boolean | void): void;
  513. translateRow(row: number): number;
  514. untranslateRow(row: number): number;
  515. updateOrderClass(): void;
  516. updateSortIndicator(): void;
  517. }
  518. interface ColumnSummary extends Base {
  519. endpoints: Endpoints | void;
  520. calculate(endpoint: Endpoints): void;
  521. calculateAverage(endpoint: Endpoints): number;
  522. calculateMinMax(endpoint: Endpoints, type: string): number;
  523. calculateSum(endpoint: Endpoints): void;
  524. countEmpty(rowRange: any[], col: number): number;
  525. countEntries(endpoint: Endpoints): number;
  526. getCellValue(row: number, col: number): string;
  527. getPartialMinMax(rowRange: any[], col: number, type: string): number;
  528. getPartialSum(rowRange: any[], col: number): number;
  529. }
  530. type CommentsRangeObject = {
  531. from: wot.CellCoords,
  532. to?: wot.CellCoords
  533. }
  534. interface Comments extends Base {
  535. contextMenuEvent: boolean;
  536. displayDelay: number;
  537. editor: editors.CommentEditor;
  538. eventManager: EventManager;
  539. mouseDown: boolean;
  540. range: CommentsRangeObject;
  541. timer: any;
  542. clearRange(): void;
  543. getComment(): object;
  544. getCommentMeta(row: number, column: number, property: string): any;
  545. hide(): void;
  546. refreshEditor(force?: boolean): void;
  547. removeComment(forceRender?: boolean): void;
  548. removeCommentAtCell(row: number, col: number, forceRender?: boolean): void;
  549. setComment(value: string): void;
  550. setCommentAtCell(row: number, col: number, value: string): void;
  551. setRange(range: CommentsRangeObject): void;
  552. show(): boolean;
  553. showAtCell(row: number, col: number): boolean;
  554. targetIsCellWithComment(event: Event): boolean;
  555. targetIsCommentTextArea(event: Event): boolean;
  556. updateCommentMeta(row: number, column: number, metaObject: object): void;
  557. }
  558. interface ContextMenu extends Base {
  559. eventManager: EventManager;
  560. commandExecutor: CommandExecutor;
  561. itemsFactory: ItemsFactory | void;
  562. menu: Menu | void;
  563. close(): void;
  564. executeCommand(commandName: string, ...params: any[]): void;
  565. open(event: Event): void;
  566. }
  567. interface ContextMenuCopyPaste extends Base {
  568. eventManager: EventManager;
  569. outsideClickDeselectsCache: boolean | void;
  570. swfPath: string | void;
  571. getCopyValue(): string;
  572. }
  573. interface DragToScroll extends Base {
  574. boundaries: object | void;
  575. callback: (() => void) | void;
  576. check(x: number, y: number): void;
  577. setBoundaries(boundaries: object): void;
  578. setCallback(callback: () => void): void;
  579. }
  580. type SeparatorObject = {
  581. name: string;
  582. }
  583. interface DropdownMenu extends Base {
  584. eventManager: EventManager;
  585. commandExecutor: CommandExecutor;
  586. itemsFactory: ItemsFactory | void;
  587. menu: Menu | void;
  588. SEPARATOR: SeparatorObject
  589. close(): void;
  590. executeCommand(commandName: string, ...params: any[]): void;
  591. open(event: Event): void;
  592. }
  593. interface ExportFile extends Base {
  594. downloadFile(format: string, options: object): void;
  595. exportAsString(format: string, options?: object): string;
  596. exportAsBlob(format: string, options?: object): Blob;
  597. }
  598. interface Filters extends Base {
  599. actionBarComponent: FiltersPlugin.ActionBarComponent | void;
  600. dropdownMenuPlugin: DropdownMenu | void;
  601. eventManager: EventManager;
  602. conditionComponent: FiltersPlugin.ConditionComponent | void;
  603. formulaCollection: FiltersPlugin.FormulaCollection | void;
  604. formulaUpdateObserver: FiltersPlugin.FormulaUpdateObserver | void;
  605. lastSelectedColumn?: number | void;
  606. trimRowsPlugin: TrimRows | void;
  607. valueComponent: FiltersPlugin.ValueComponent | void;
  608. addFormula(column: number, name: string, args: any[]): void;
  609. clearColumnSelection(): void;
  610. clearFormulas(column?: number | void): void;
  611. getDataMapAtColumn(column: number): any[];
  612. getSelectedColumn(): number | void;
  613. filter(): void;
  614. removeFormulas(column: number): void;
  615. }
  616. interface RecordTranslator {
  617. hot: Core;
  618. toPhysical(row: number | object, column?: number): object | any[];
  619. toPhysicalColumn(column: number): number;
  620. toPhysicalRow(row: number): number;
  621. toVisual(row: number | object, column?: number): object | any[];
  622. toVisualColumn(column: number): number;
  623. toVisualRow(row: number): number;
  624. }
  625. interface DataProvider {
  626. changes: object;
  627. hot: Core;
  628. t: RecordTranslator;
  629. clearChanges(): void;
  630. collectChanges(row: number, column: number, value: any): void;
  631. destroy(): void;
  632. getDataAtCell(row: number, column: number): any;
  633. getDataByRange(row1: number, column1: number, row2: number, column2: number): any[];
  634. getRawDataAtCell(row: number, column: number): any;
  635. getRawDataByRange(row1: number, column1: number, row2: number, column2: number): any[];
  636. getSourceDataByRange(row1: number, column1: number, row2: number, column2: number): any[];
  637. getSourceDataAtCell(row: number, column: number): any;
  638. isInDataRange(row: number, column: number): boolean;
  639. updateSourceData(row: number, column: number, value: any): void;
  640. }
  641. interface AlterManager {
  642. sheet: Sheet;
  643. hot: Core;
  644. dataProvider: DataProvider;
  645. matrix: Matrix;
  646. prepareAlter(action: string, args: any): void;
  647. triggerAlter(action: string, args: any): void;
  648. destroy(): void;
  649. }
  650. interface Matrix {
  651. t: RecordTranslator;
  652. data: any[];
  653. cellReferences: any[];
  654. getCellAt(row: number, column: number): CellValue | void;
  655. getOutOfDateCells(): any[];
  656. add(cellValue: CellValue | object): void;
  657. remove(cellValue: CellValue | object| any[]): void;
  658. getDependencies(cellCoord: object): void;
  659. registerCellRef(cellReference: CellReference | object): void;
  660. removeCellRefsAtRange(start: object, end: object): any[];
  661. reset(): void;
  662. }
  663. interface BaseCell {
  664. columnAbsolute: boolean;
  665. columnOffset: number;
  666. rowAbsolute: boolean;
  667. rowOffset: number;
  668. isEqual(cell: BaseCell): boolean;
  669. toString(): string;
  670. translateTo(rowOffset: number, columnOffset: number): void;
  671. }
  672. interface CellReference extends BaseCell { }
  673. interface CellValue extends BaseCell {
  674. error: string | void;
  675. precedents: any[];
  676. state: string;
  677. value: any;
  678. addPrecedent(cellReference: CellReference): void;
  679. clearPrecedents(): void;
  680. getError(): string | void;
  681. getPrecedents(): any[];
  682. getValue(): any;
  683. hasError(): boolean;
  684. hasPrecedent(cellReference: CellReference): boolean;
  685. hasPrecedents(): boolean;
  686. isState(state: number): boolean;
  687. removePrecedent(cellReference: CellReference): void;
  688. setError(error: string): void;
  689. setState(state: number): void;
  690. setValue(value: any): void;
  691. }
  692. type Parser = {};
  693. interface Sheet {
  694. alterManager: AlterManager
  695. dataProvider: DataProvider;
  696. hot: Core;
  697. matrix: Matrix;
  698. parser: Parser;
  699. t: RecordTranslator;
  700. applyChanges(row: number, column: number, newValue: any): void;
  701. destroy(): void;
  702. getCellAt(row: number, column: number): CellValue | void;
  703. getCellDependencies(row: number, column: number): any[];
  704. getVariable(name: string): any;
  705. parseExpression(cellValue: CellValue | object, formula: string): void;
  706. recalculate(): void;
  707. recalculateFull(): void;
  708. recalculateOptimized(): void;
  709. setVariable(name: string, value: any): void;
  710. }
  711. interface Stack {
  712. items: any[];
  713. isEmpty(): boolean;
  714. peek(): any;
  715. pop(): any;
  716. push(items: any): void;
  717. size(): number;
  718. }
  719. interface UndoRedoSnapshot {
  720. sheet: Sheet;
  721. stack: Stack;
  722. destroy(): void;
  723. restore(): void;
  724. save(axis: string, index: number, amount: number): void;
  725. }
  726. interface Formulas extends Base {
  727. dataProvider: DataProvider;
  728. eventManager: EventManager;
  729. sheet: Sheet;
  730. undoRedoSnapshot: UndoRedoSnapshot;
  731. getCellValue(row: number, column: number): any;
  732. getVariable(name: string): any;
  733. hasComputedCellValue(row: number, column: number): boolean;
  734. recalculate(): void;
  735. recalculateFull(): void;
  736. recalculateOptimized(): void;
  737. setVariable(name: string, value: any): void;
  738. }
  739. interface GanttChart extends Base {
  740. colorData: object;
  741. currentYear: number | void;
  742. dateCalculator: object | void;
  743. dataFeed: object | void;
  744. hotSource: Core | void;
  745. initialSettings: object | void;
  746. monthHeadersArray: any[];
  747. monthList: any[];
  748. nestedHeadersPlugin: NestedHeaders | void;
  749. overallWeekSectionCount: number | void;
  750. rangeBarMeta: object | void;
  751. rangeBars: object;
  752. rangeList: object;
  753. settings: object;
  754. weekHeadersArray: any[];
  755. addRangeBar(row: number, startDate: Date | string, endDate: Date | string, additionalData: object): boolean | any[];
  756. applyRangeBarMetaCache(): void;
  757. cacheRangeBarMeta(row: number, col: number, key: string, value: any | any[]): void;
  758. checkDependencies(): void;
  759. getRangeBarCoordinates(row: number): object;
  760. getRangeBarData(row: number, column: number): object | boolean;
  761. renderRangeBar(row: number, startDateColumn: number, endDateColumn: number, additionalData: object): void;
  762. removeRangeBarByDate(row: number, startDate: Date | string): void;
  763. removeRangeBarByColumn(row: number, startDateColumn: number): void;
  764. removeAllRangeBars(): void;
  765. setRangeBarColors(rows: object): void;
  766. setYear(year: number): void;
  767. uniformBackgroundRenderer(instance: Core, TD: HTMLElement, row: number, col: number, prop: string | number, value: string | number, cellProperties: object): void;
  768. unrenderRangeBar(row: number, startDateColumn: number, endDateColumn: number): void;
  769. updateRangeBarData(row: number, column: number, data: object): void;
  770. }
  771. interface HeaderTooltips extends Base {
  772. settings: boolean | object;
  773. parseSettings(): void;
  774. }
  775. interface HiddenColumns extends Base {
  776. hiddenColumns: boolean | any[];
  777. lastSelectedColumn: number;
  778. settings: object | void;
  779. isHidden(column: number, isLogicIndex?: boolean): boolean;
  780. hideColumn(column: number): void;
  781. hideColumns(columns: any[]): void;
  782. showColumn(column: number): void;
  783. showColumns(columns: any[]): void;
  784. }
  785. interface HiddenRows extends Base {
  786. hiddenRows: boolean | any[];
  787. lastSelectedRow: number;
  788. settings: object | void;
  789. isHidden(row: number, isLogicIndex?: boolean): boolean;
  790. hideRow(row: number): void;
  791. hideRows(rows: any[]): void;
  792. showRow(row: number): void;
  793. showRows(rows: any[]): void;
  794. }
  795. interface ManualColumnFreeze extends Base {
  796. frozenColumnsBasePositions: any[];
  797. manualColumnMovePlugin: ManualColumnMove;
  798. freezeColumn(column: number): void;
  799. unfreezeColumn(column: number): void;
  800. }
  801. interface arrayMapper {
  802. getValueByIndex(index: number): any;
  803. getIndexByValue(value: any): number;
  804. insertItems(index: number, amount?: number): any[];
  805. removeItems(index: number, amount?: number): any[];
  806. shiftItems(index: number, amount?: number): void;
  807. unshiftItems(index: number, amount?: number): void;
  808. }
  809. interface MoveColumnsMapper extends arrayMapper {
  810. manualColumnMove: ManualColumnMove;
  811. clearNull(): void;
  812. createMap(length?: number): void;
  813. destroy(): void;
  814. moveColumn(from: number, to: number): void;
  815. }
  816. interface MoveRowsMapper extends arrayMapper {
  817. manualRowMove: ManualRowMove;
  818. clearNull(): void;
  819. createMap(length?: number): void;
  820. destroy(): void;
  821. moveColumn(from: number, to: number): void;
  822. }
  823. interface TrimRowsMapper extends arrayMapper {
  824. trimRows: TrimRows;
  825. createMap(length?: number): void;
  826. destroy(): void;
  827. }
  828. namespace moveUI {
  829. interface BaseUI {
  830. hot: Core;
  831. state: number;
  832. appendTo(wrapper: HTMLElement): void;
  833. build(): void;
  834. destroy(): void;
  835. getOffset(): object;
  836. getPosition(): object;
  837. getSize(): object;
  838. isAppended(): boolean;
  839. isBuilt(): boolean;
  840. setOffset(top: number, left: number): void;
  841. setPosition(top: number, left: number): void;
  842. setSize(width: number, height: number): void;
  843. }
  844. interface BacklightUI extends BaseUI { }
  845. interface GuidelineUI extends BaseUI { }
  846. }
  847. interface ManualColumnMove extends Base {
  848. backlight: moveUI.BacklightUI;
  849. columnsMapper: MoveColumnsMapper;
  850. eventManager: EventManager;
  851. guideline: moveUI.GuidelineUI;
  852. removedColumns: any[];
  853. moveColumn(column: number, target: number): void;
  854. moveColumns(columns: number[], target: number): void;
  855. }
  856. interface ManualColumnResize extends Base {
  857. autoresizeTimeout: (() => void) | void;
  858. currentCol: number | void;
  859. currentTH: HTMLElement | void;
  860. currentWidth: number | void;
  861. dblclick: number;
  862. eventManager: EventManager;
  863. guide: HTMLElement;
  864. handle: HTMLElement;
  865. manualColumnWidths: any[];
  866. newSize: number | void;
  867. pressed: Core | void;
  868. selectedCols: any[];
  869. startOffset: number | void;
  870. startWidth: number | void;
  871. startY: number | void;
  872. checkIfColumnHeader(element: HTMLElement): boolean;
  873. clearManualSize(column: number): void;
  874. getTHFromTargetElement(element: HTMLElement): HTMLElement;
  875. hideHandleAndGuide(): void;
  876. loadManualColumnWidths(): void;
  877. refreshGuidePosition(): void;
  878. refreshHandlePosition(): void;
  879. saveManualColumnWidths(): void;
  880. setManualSize(column: number, width: number): number;
  881. setupGuidePosition(): void;
  882. setupHandlePosition(TH: HTMLElement): boolean | void;
  883. }
  884. interface ManualRowMove extends Base {
  885. backlight: moveUI.BacklightUI;
  886. eventManager: EventManager;
  887. guideline: moveUI.GuidelineUI;
  888. removedRows: any[];
  889. rowsMapper: MoveRowsMapper;
  890. moveRow(row: number, target: number): void;
  891. moveRows(rows: number[], target: number): void;
  892. }
  893. interface ManualRowResize extends Base {
  894. autoresizeTimeout: (() => void) | void;
  895. currentRow: number | void;
  896. currentTH: HTMLElement | void;
  897. currentWidth: number | void;
  898. dblclick: number;
  899. eventManager: EventManager;
  900. guide: HTMLElement;
  901. handle: HTMLElement;
  902. manualRowHeights: any[];
  903. newSize: number | void;
  904. pressed: Core | void;
  905. selectedRows: any[];
  906. startOffset: number | void;
  907. startWidth: number | void;
  908. startY: number | void;
  909. checkIfRowHeader(element: HTMLElement): boolean;
  910. clearManualSize(column: number): void;
  911. getTHFromTargetElement(element: HTMLElement): HTMLElement;
  912. hideHandleAndGuide(): void;
  913. loadManualRowHeights(): void;
  914. refreshGuidePosition(): void;
  915. refreshHandlePosition(): void;
  916. saveManualRowHeights(): void;
  917. setManualSize(column: number, width: number): number;
  918. setupGuidePosition(): void;
  919. setupHandlePosition(TH: HTMLElement): boolean | void;
  920. }
  921. interface MultipleSelectionHandles extends Base {
  922. dragged: any[];
  923. eventManager: EventManager;
  924. lastSetCell: HTMLElement | void;
  925. getCurrentRangeCoords(selectedRange: wot.CellRange, currentTouch: wot.CellCoords, touchStartDirection: string, currentDirection: string, draggedHandle: string): object;
  926. isDragged(): boolean;
  927. }
  928. interface GhostTableNestedHeaders {
  929. container: any;
  930. nestedHeaders: NestedHeaders;
  931. widthsCache: any[];
  932. clear(): void;
  933. }
  934. interface NestedHeaders extends Base {
  935. colspanArray: any[];
  936. columnHeaderLevelCount: number;
  937. ghostTable: GhostTableNestedHeaders;
  938. settings: any[];
  939. checkForFixedColumnsCollision(): void;
  940. checkForOverlappingHeaders(): void;
  941. getChildHeaders(row: number, column: number): any[];
  942. fillColspanArrayWithDummies(colspan: number, level: number): void;
  943. fillTheRemainingColspans(): void;
  944. getColspan(row: number, column: number): number;
  945. getNestedParent(level: number, column: number): any;
  946. headerRendererFactory(headerRow: number): () => void;
  947. levelToRowCoords(level: number): number;
  948. rowCoordsToLevel(row: number): number;
  949. setupColspanArray(): void;
  950. }
  951. interface DataManager {
  952. cache: object;
  953. data: object;
  954. hot: Core;
  955. parentReference: any; //WeakMap
  956. plugin: NestedRows;
  957. addChild(parent: object, element?: object): void;
  958. addChildAtIndex(parent: object, index: number, element?: object, globalIndex?: number): void;
  959. addSibling(index: number, where?: string): void;
  960. countAllRows(): number;
  961. countChildren(parent: object | number): number;
  962. detachFromParent(elements: object | any[], forceRender?: boolean): void;
  963. getDataObject(row: number): any | void;
  964. getRowIndex(rowObj: object): number | void;
  965. getRowIndexWithinParent(row: number | object): number;
  966. getRowLevel(row: number): number | void;
  967. getRowParent(row: number | object): object | void;
  968. hasChildren(row: number | object): boolean;
  969. isParent(row: number | object): boolean;
  970. moveRow(fromIndex: number, toIndex: number): void;
  971. rewriteCache(): void;
  972. }
  973. interface NestedRows extends Base {
  974. bindRowsWithHeadersPlugin: BindRowsWithHeaders | void;
  975. dataManager: DataManager | void;
  976. headersUI: object | void;
  977. sourceData: object | void;
  978. trimRowsPlugin: TrimRows | void;
  979. }
  980. interface DataObserver {
  981. observedData: any[];
  982. observer: object;
  983. paused: boolean;
  984. destroy(): void;
  985. isPaused(): boolean;
  986. pause(): void;
  987. resume(): void;
  988. setObservedData(observedData: any): void;
  989. }
  990. interface ObserveChanges extends Base {
  991. observer: DataObserver | void;
  992. }
  993. interface TouchScroll extends Base {
  994. clones: any[];
  995. lockedCollection: boolean;
  996. scrollbars: any[];
  997. }
  998. interface TrimRows extends Base {
  999. trimmedRows: any[];
  1000. removedRows: any[];
  1001. rowsMapper: TrimRowsMapper;
  1002. isTrimmed(row: number): boolean;
  1003. trimRow(row: number): void;
  1004. trimRows(rows: number[]): void;
  1005. untrimAll(): void;
  1006. untrimRow(row: number): void;
  1007. untrimRows(rows: number[]): void;
  1008. }
  1009. }
  1010. namespace renderers {
  1011. interface Base {
  1012. (instance: Core, TD: HTMLElement, row: number, col: number, prop: string | number, value: any, cellProperties: GridSettings): HTMLElement;
  1013. }
  1014. interface Autocomplete extends Base { }
  1015. interface Checkbox extends Base { }
  1016. interface Html extends Base { }
  1017. interface Numeric extends Base { }
  1018. interface Password extends Base { }
  1019. interface Text extends Base { }
  1020. }
  1021. interface DefaultSettings extends GridSettings { }
  1022. interface DefaultSettings extends Hooks { }
  1023. interface GridSettings {
  1024. allowEmpty?: boolean;
  1025. allowHtml?: boolean;
  1026. allowInsertColumn?: boolean;
  1027. allowInsertRow?: boolean;
  1028. allowInvalid?: boolean;
  1029. allowRemoveColumn?: boolean;
  1030. allowRemoveRow?: boolean;
  1031. autoColumnSize?: object | boolean;
  1032. autoComplete?: any[];
  1033. autoRowSize?: object | boolean;
  1034. autoWrapCol?: boolean;
  1035. autoWrapRow?: boolean;
  1036. bindRowsWithHeaders?: boolean | string; // pro
  1037. cell?: any[];
  1038. cells?: (row?: number, col?: number, prop?: object) => GridSettings;
  1039. checkedTemplate?: boolean | string;
  1040. className?: string | any[];
  1041. colHeaders?: ((index?: number) => void) | boolean | any[];
  1042. collapsibleColumns?: boolean | any[]; // pro
  1043. columnHeaderHeight?: number | any[];
  1044. columns?: ((index?: number) => void) | any[];
  1045. columnSorting?: boolean | object;
  1046. columnSummary?: object; // pro
  1047. colWidths?: ((index?: number) => void) | number | string | any[];
  1048. commentedCellClassName?: string;
  1049. comments?: boolean | CommentObject[];
  1050. contextMenu?: boolean | any[] | contextMenu.Settings;
  1051. contextMenuCopyPaste?: object;
  1052. copyable?: boolean;
  1053. copyColsLimit?: number;
  1054. copyPaste?: boolean;
  1055. copyRowsLimit?: number;
  1056. correctFormat?: boolean;
  1057. currentColClassName?: string;
  1058. currentHeaderClassName?: string;
  1059. currentRowClassName?: string;
  1060. customBorders?: boolean | any[];
  1061. data?: any | any[];
  1062. dataSchema?: object;
  1063. dateFormat?: string;
  1064. debug?: boolean;
  1065. defaultDate?: string;
  1066. disableVisualSelection?: boolean | string | any[];
  1067. dropdownMenu?: boolean | object | any[]; // pro
  1068. editor?: string | (() => void) | boolean;
  1069. enterBeginsEditing?: boolean;
  1070. enterMoves?: object | (() => void);
  1071. fillHandle?: boolean | string | object;
  1072. filter?: boolean;
  1073. filteringCaseSensitive?: boolean;
  1074. filters?: boolean; // pro
  1075. fixedColumnsLeft?: number;
  1076. fixedRowsBottom?: number; // pro
  1077. fixedRowsTop?: number;
  1078. format?: string;
  1079. fragmentSelection?: boolean | string;
  1080. ganttChart?: object; // pro
  1081. headerTooltips?: boolean | object; // pro
  1082. height?: number | (() => void);
  1083. hiddenColumns?: boolean | object; // pro
  1084. hiddenRows?: boolean | object; // pro
  1085. invalidCellClassName?: string;
  1086. isEmptyCol?: (col: number) => boolean;
  1087. isEmptyRow?: (row: number) => boolean;
  1088. label?: object;
  1089. language?: string;
  1090. manualColumnFreeze?: boolean;
  1091. manualColumnMove?: boolean | any[];
  1092. manualColumnResize?: boolean | any[];
  1093. manualRowMove?: boolean | any[ ];
  1094. manualRowResize?: boolean | any[];
  1095. maxCols?: number;
  1096. maxRows?: number;
  1097. mergeCells?: boolean | any[];
  1098. minCols?: number;
  1099. minRows?: number;
  1100. minSpareCols?: number;
  1101. minSpareRows?: number;
  1102. multiSelect?: boolean;
  1103. nestedHeaders?: any[]; // pro
  1104. noWordWrapClassName?: string;
  1105. observeChanges?: boolean;
  1106. observeDOMVisibility?: boolean;
  1107. outsideClickDeselects?: boolean;
  1108. pasteMode?: string;
  1109. persistentState?: boolean;
  1110. placeholder?: any;
  1111. placeholderCellClassName?: string;
  1112. preventOverflow?: string | boolean;
  1113. readOnly?: boolean;
  1114. readOnlyCellClassName?: string;
  1115. renderAllRows?: boolean;
  1116. renderer?: string | (() => void);
  1117. rowHeaders?: boolean | any[] | (() => void);
  1118. rowHeaderWidth?: number | any[];
  1119. rowHeights?: any[] | (() => void) | number | string;
  1120. search?: boolean;
  1121. selectOptions?: any[];
  1122. skipColumnOnPaste?: boolean;
  1123. sortByRelevance?: boolean;
  1124. sortFunction?: () => void;
  1125. sortIndicator?: boolean;
  1126. source?: any[] | (() => void);
  1127. startCols?: number;
  1128. startRows?: number;
  1129. stretchH?: string;
  1130. strict?: boolean;
  1131. tableClassName?: string | any[];
  1132. tabMoves?: object;
  1133. title?: string;
  1134. trimDropdown?: boolean;
  1135. trimRows?: boolean; // pro
  1136. trimWhitespace?: boolean;
  1137. type?: string;
  1138. uncheckedTemplate?: boolean | string;
  1139. undo?: boolean;
  1140. validator?: (() => void) | RegExp;
  1141. viewportColumnRenderingOffset?: number | string;
  1142. viewportRowRenderingOffset?: number | string;
  1143. visibleRows?: number;
  1144. width?: number | (() => void);
  1145. wordWrap?: boolean;
  1146. }
  1147. interface Hooks {
  1148. afterAddChild?: (parent: object, element: object | void, index: number | void) => void;
  1149. afterBeginEdting?: (row: number, column: number) => void;
  1150. afterCellMetaReset?: () => void;
  1151. afterChange?: (changes: any[], source: string) => void;
  1152. afterChangesObserved?: () => void;
  1153. afterColumnMove?: (startColumn: number, endColumn: number) => void;
  1154. afterColumnResize?: (currentColumn: number, newSize: number, isDoubleClick: boolean) => void;
  1155. afterColumnSort?: (column: number, order: boolean) => void;
  1156. afterContextMenuDefaultOptions?: (predefinedItems: any[]) => void;
  1157. afterContextMenuHide?: (context: object) => void;
  1158. afterContextMenuShow?: (context: object) => void;
  1159. afterCopy?: (data: any[], coords: any[]) => void;
  1160. afterCopyLimit?: (selectedRows: number, selectedColumnds: number, copyRowsLimit: number, copyColumnsLimit: number) => void;
  1161. afterCreateCol?: (index: number, amount: number) => void;
  1162. afterCreateRow?: (index: number, amount: number) => void;
  1163. afterCut?: (data: any[], coords: any[]) => void;
  1164. afterDeselect?: () => void;
  1165. afterDestroy?: () => void;
  1166. afterDetachChild?: (parent: object, element: object) => void;
  1167. afterDocumentKeyDown?: (event: Event) => void;
  1168. afterDropdownMenuDefaultOptions?: (predefinedItems: any[]) => void;
  1169. afterDropdownMenuHide?: (instance: any) => void;
  1170. afterDropdownMenuShow?: (instance: any) => void;
  1171. afterFilter?: (formulasStack: any[]) => void;
  1172. afterGetCellMeta?: (row: number, col: number, cellProperties: object) => void;
  1173. afterGetColHeader?: (col: number, TH: Element) => void;
  1174. afterGetColumnHeaderRenderers?: (array: any[]) => void;
  1175. afterGetRowHeader?: (row: number, TH: Element) => void;
  1176. afterGetRowHeaderRenderers?: (array: any[]) => void;
  1177. afterInit?: () => void;
  1178. afterLoadData?: (firstTime: boolean) => void;
  1179. afterModifyTransformEnd?: (coords: wot.CellCoords, rowTransformDir: number, colTransformDir: number) => void;
  1180. afterModifyTransformStart?: (coords: wot.CellCoords, rowTransformDir: number, colTransformDir: number) => void;
  1181. afterMomentumScroll?: () => void;
  1182. afterOnCellCornerDblClick?: (event: object) => void;
  1183. afterOnCellCornerMouseDown?: (event: object) => void;
  1184. afterOnCellMouseDown?: (event: object, coords: object, TD: Element) => void;
  1185. afterOnCellMouseOver?: (event: object, coords: object, TD: Element) => void;
  1186. afterOnCellMouseOut?: (event: object, coords: object, TD: Element) => void;
  1187. afterPaste?: (data: any[], coords: any[]) => void;
  1188. afterPluginsInitialized?: () => void;
  1189. afterRedo?: (action: object) => void;
  1190. afterRemoveCol?: (index: number, amount: number) => void;
  1191. afterRemoveRow?: (index: number, amount: number) => void;
  1192. afterRender?: (isForced: boolean) => void;
  1193. afterRenderer?: (TD: Element, row: number, col: number, prop: string|number, value: string, cellProperties: object) => void;
  1194. afterRowMove?: (startRow: number, endRow: number) => void;
  1195. afterRowResize?: (currentRow: number, newSize: number, isDoubleClick: boolean) => void;
  1196. afterScrollHorizontally?: () => void;
  1197. afterScrollVertically?: () => void;
  1198. afterSelection?: (r: number, c: number, r2: number, c2: number) => void;
  1199. afterSelectionByProp?: (r: number, p: string, r2: number, p2: string) => void;
  1200. afterSelectionEnd?: (r: number, c: number, r2: number, c2: number) => void;
  1201. afterSelectionEndByProp?: (r: number, p: string, r2: number, p2: string) => void;
  1202. afterSetCellMeta?: (row: number, col: number, key: string, value: any) => void;
  1203. afterSetDataAtCell?: (changes: any[], source?: string) => void;
  1204. afterSetDataAtRowProp?: (changes: any[], source?: string) => void;
  1205. afterTrimRow?: (rows: any[]) => void;
  1206. afterUndo?: (action: object) => void;
  1207. afterUntrimRow?: (rows: any[]) => void;
  1208. afterUpdateSettings?: () => void;
  1209. afterValidate?: (isValid: boolean, value: any, row: number, prop: string|number, source: string) => void|boolean;
  1210. afterViewportColumnCalculatorOverride?: (calc: object) => void;
  1211. afterViewportRowCalculatorOverride?: (calc: object) => void;
  1212. beforeAddChild?: (parent: object, element: object | void, index: number | void) => void;
  1213. beforeAutofill?: (start: object, end: object, data: any[]) => void;
  1214. beforeAutofillInsidePopulate?: (index: object, direction: string, input: any[], deltas: any[]) => void;
  1215. beforeCellAlignment?: (stateBefore: any, range: any, type: string, alignmentClass: string) => void;
  1216. beforeChange?: (changes: any[], source: string) => void;
  1217. beforeChangeRender?: (changes: any[], source: string) => void;
  1218. beforeColumnMove?: (startColumn: number, endColumn: number) => void;
  1219. beforeColumnResize?: (currentColumn: number, newSize: number, isDoubleClick: boolean) => void;
  1220. beforeColumnSort?: (column: number, order: boolean) => void;
  1221. beforeContextMenuSetItems?: (menuItems: any[]) => void;
  1222. beforeCopy?: (data: any[], coords: any[]) => any;
  1223. beforeCreateCol?: (index: number, amount: number, source?: string) => void;
  1224. beforeCreateRow?: (index: number, amount: number, source?: string) => void;
  1225. beforeCut?: (data: any[], coords: any[]) => any;
  1226. beforeDetachChild?: (parent: object, element: object) => void;
  1227. beforeDrawBorders?: (corners: any[], borderClassName: string) => void;
  1228. beforeDropdownMenuSetItems?: (menuItems: any[]) => void;
  1229. beforeFilter?: (formulasStack: any[]) => void;
  1230. beforeGetCellMeta?: (row: number, col: number, cellProperties: object) => void;
  1231. beforeInit?: () => void;
  1232. beforeInitWalkontable?: (walkontableConfig: object) => void;
  1233. beforeKeyDown?: (event: Event) => void;
  1234. beforeOnCellMouseDown?: (event: Event, coords: object, TD: Element) => void;
  1235. beforeOnCellMouseOut?: (event: Event, coords: wot.CellCoords, TD: Element) => void;
  1236. beforeOnCellMouseOver?: (event: Event, coords: wot.CellCoords, TD: Element, blockCalculations: object) => void;
  1237. beforePaste?: (data: any[], coords: any[]) => any;
  1238. beforeRedo?: (action: object) => void;
  1239. beforeRemoveCol?: (index: number, amount: number, logicalCols?: any[]) => void;
  1240. beforeRemoveRow?: (index: number, amount: number, logicalRows?: any[]) => void;
  1241. beforeRender?: (isForced: boolean, skipRender: object) => void;
  1242. beforeRenderer?: (TD: Element, row: number, col: number, prop: string|number, value: string, cellProperties: object) => void;
  1243. beforeRowMove?: (startRow: number, endRow: number) => void;
  1244. beforeRowResize?: (currentRow: number, newSize: number, isDoubleClick: boolean) => any;
  1245. beforeSetRangeEnd?: (coords: any[]) => void;
  1246. beforeSetRangeStart?: (coords: any[]) => void;
  1247. beforeStretchingColumnWidth?: (stretchedWidth: number, column: number) => void;
  1248. beforeTouchScroll?: () => void;
  1249. beforeUndo?: (action: object) => void;
  1250. beforeValidate?: (value: any, row: number, prop: string | number, source?: string) => void;
  1251. beforeValueRender?: (value: any) => void;
  1252. construct?: () => void;
  1253. hiddenColumn?: (column: number) => void;
  1254. hiddenRow?: (row: number) => void;
  1255. init?: () => void;
  1256. manualRowHeights?: (state: any[]) => void;
  1257. modifyAutofillRange?: (startArea: any[], entireArea: any[]) => void;
  1258. modifyCol?: (col: number) => void;
  1259. modifyColHeader?: (column: number) => void;
  1260. modifyColWidth?: (width: number, col: number) => void;
  1261. modifyCopyableRange?: (copyableRanges: any[]) => void;
  1262. modifyData?: (row: number, column: number, valueHolder: object, ioMode: string) => void;
  1263. modifyRow?: (row: number) => void;
  1264. modifyRowHeader?: (row: number) => void;
  1265. modifyRowHeaderWidth?: (rowHeaderWidth: number) => void;
  1266. modifyRowHeight?: (height: number, row: number) => void;
  1267. modifyRowSourceData?: (row: number) => void;
  1268. modifyTransformEnd?: (delta: wot.CellCoords) => void;
  1269. modifyTransformStart?: (delta: wot.CellCoords) => void;
  1270. persistentStateLoad?: (key: string, valuePlaceholder: object) => void;
  1271. persistentStateReset?: (key: string) => void;
  1272. persistentStateSave?: (key: string, value: any) => void;
  1273. skipLengthCache?: (delay: number) => void;
  1274. unmodifyCol?: (col: number) => void;
  1275. unmodifyRow?: (row: number) => void;
  1276. }
  1277. interface CellTypes {
  1278. autocomplete: cellTypes.Autocomplete;
  1279. checkbox: cellTypes.Checkbox;
  1280. date: cellTypes.Date;
  1281. dropdown: cellTypes.Dropdown;
  1282. handsontable: cellTypes.Handsontable;
  1283. numeric: cellTypes.Numeric;
  1284. password: cellTypes.Password;
  1285. text: cellTypes.Text;
  1286. time: cellTypes.Time;
  1287. }
  1288. interface Editors {
  1289. AutocompleteEditor: editors.Autocomplete;
  1290. BaseEditor: editors.Base;
  1291. CheckboxEditor: editors.Checkbox;
  1292. DateEditor: editors.Date;
  1293. DropdownEditor: editors.Dropdown;
  1294. HandsontableEditor: editors.Handsontable;
  1295. MobileEditor: editors.Mobile;
  1296. NumericEditor: editors.Numeric;
  1297. PasswordEditor: editors.Password;
  1298. SelectEditor: editors.Select;
  1299. TextEditor: editors.Text | editors.Mobile;
  1300. getEditor: (editorName: string, hotInstance: Core) => any;
  1301. registerEditor: (editorName: string, editorClass: any) => void;
  1302. }
  1303. interface Renderers {
  1304. AutocompleteRenderer: renderers.Autocomplete;
  1305. BaseRenderer: renderers.Base;
  1306. CheckboxRenderer: renderers.Checkbox;
  1307. HtmlRenderer: renderers.Html;
  1308. NumericRenderer: renderers.Numeric;
  1309. PasswordRenderer: renderers.Password;
  1310. TextRenderer: renderers.Text;
  1311. }
  1312. class Core {
  1313. constructor(element: Element, options: DefaultSettings);
  1314. addHook(key: string, callback: (() => void) | any[]): void;
  1315. addHookOnce(key: string, callback: (() => void) | any[]): void;
  1316. alter(action: string, index: number, amount?: number, source?: string, keepEmptyRows?: boolean): void;
  1317. clear(): void;
  1318. colOffset(): number;
  1319. colToProp(col: number): string | number;
  1320. countCols(): number;
  1321. countEmptyCols(ending?: boolean): number;
  1322. countEmptyRows(ending?: boolean): number;
  1323. countRenderedCols(): number;
  1324. countRenderedRows(): number;
  1325. countRows(): number;
  1326. countSourceCols(): number;
  1327. countSourceRows(): number;
  1328. countVisibleCols(): number;
  1329. countVisibleRows(): number;
  1330. deselectCell(): void;
  1331. destroy(): void;
  1332. destroyEditor(revertOriginal?: boolean): void;
  1333. getActiveEditor(): object;
  1334. getCell(row: number, col: number, topmost?: boolean): Element;
  1335. getCellEditor(row: number, col: number): object;
  1336. getCellMeta(row: number, col: number): object;
  1337. getCellMetaAtRow(row: number): any[];
  1338. getCellRenderer(row: number, col: number): () => void;
  1339. getCellValidator(row: number, col: number): any;
  1340. getColHeader(col?: number): any[] | string;
  1341. getColWidth(col: number): number;
  1342. getCoords(elem: Element): object;
  1343. getCopyableData(row: number, column: number): string;
  1344. getCopyableText(startRow: number, startCol: number, endRow: number, endCol: number): string;
  1345. getData(r?: number, c?: number, r2?: number, c2?: number): any[];
  1346. getDataAtCell(row: number, col: number): any;
  1347. getDataAtCol(col: number): any[];
  1348. getDataAtProp(prop: string | number): any[];
  1349. getDataAtRow(row: number): any[];
  1350. getDataAtRowProp(row: number, prop: string): any;
  1351. getDataType(rowFrom: number, columnFrom: number, rowTo: number, columnTo: number): string;
  1352. getInstance(): any;
  1353. getPlugin(pluginName: string): any;
  1354. getRowHeader(row?: number): any[]|string;
  1355. getRowHeight(row: number): number;
  1356. getSchema(): object;
  1357. getSelected(): any[];
  1358. getSelectedRange(): Range;
  1359. getSettings(): object;
  1360. getSourceData(r?: number, c?: number, r2?: number, c2?: number): any[];
  1361. getSourceDataArray(r?: number, c?: number, r2?: number, c2?: number): any[];
  1362. getSourceDataAtCell(row: number, column: number): any;
  1363. getSourceDataAtCol(column: number): any[];
  1364. getSourceDataAtRow(row: number): any[] | object;
  1365. getValue(): any;
  1366. hasColHeaders(): boolean;
  1367. hasHook(key: string): boolean;
  1368. hasRowHeaders(): boolean;
  1369. isEmptyCol(col: number): boolean;
  1370. isEmptyRow(row: number): boolean;
  1371. isListening(): boolean;
  1372. listen(): void;
  1373. loadData(data: any[]): void;
  1374. populateFromArray(row: number, col: number, input: any[], endRow?: number, endCol?: number, source?: string, method?: string, direction?: string, deltas?: any[]): any;
  1375. propToCol(prop: string | number): number;
  1376. removeCellMeta(row: number, col: number, key: string): void;
  1377. removeHook(key: string, callback: () => void): void;
  1378. render(): void;
  1379. rowOffset(): number;
  1380. runHooks(key: string, p1?: any, p2?: any, p3?: any, p4?: any, p5?: any, p6?: any): any;
  1381. scrollViewportTo(row?: number, column?: number, snapToBottom?: boolean, snapToRight?: boolean): boolean;
  1382. selectCell(row: number, col: number, endRow?: number, endCol?: number, scrollToCell?: boolean, changeListener?: boolean): boolean;
  1383. selectCellByProp(row: number, prop: string, endRow?: number, endProp?: string, scrollToCell?: boolean): boolean;
  1384. setCellMeta(row: number, col: number, key: string, val: string): void;
  1385. setCellMetaObject(row: number, col: number, prop: object): void;
  1386. setDataAtCell(row: number | any[], col: number, value: string, source?: string): void;
  1387. setDataAtRowProp(row: number | any[], prop: string, value: string, source?: string): void;
  1388. spliceCol(col: number, index: number, amount: number, elements?: any): void;
  1389. spliceRow(row: number, index: number, amount: number, elements?: any): void;
  1390. toPhysicalColumn(column: number): number;
  1391. toPhysicalRow(row: number): number;
  1392. toVisualColumn(column: number): number;
  1393. toVisualRow(row: number): number;
  1394. unlisten(): void;
  1395. updateSettings(settings: object, init: boolean): void;
  1396. validateCells(callback: () => void): void;
  1397. }
  1398. interface Helper {
  1399. readonly KEY_CODES: {
  1400. A: number,
  1401. ALT: number,
  1402. ARROW_DOWN: number,
  1403. ARROW_LEFT: number,
  1404. ARROW_RIGHT: number,
  1405. ARROW_UP: number,
  1406. BACKSPACE: number,
  1407. C: number,
  1408. CAPS_LOCK: number,
  1409. COMMA: number,
  1410. COMMAND_LEFT: number,
  1411. COMMAND_RIGHT: number,
  1412. CONTROL_LEFT: number,
  1413. DELETE: number,
  1414. END: number,
  1415. ENTER: number,
  1416. ESCAPE: number,
  1417. F1: number,
  1418. F2: number,
  1419. F3: number,
  1420. F4: number,
  1421. F5: number,
  1422. F6: number,
  1423. F7: number,
  1424. F8: number,
  1425. F9: number,
  1426. F10: number,
  1427. F11: number,
  1428. F12: number,
  1429. HOME: number,
  1430. INSERT: number,
  1431. MOUSE_LEFT: number,
  1432. MOUSE_MIDDLE: number,
  1433. MOUSE_RIGHT: number,
  1434. PAGE_DOWN: number,
  1435. PAGE_UP: number,
  1436. PERIOD: number,
  1437. SHIFT: number,
  1438. SPACE: number,
  1439. TAB: number,
  1440. V: number,
  1441. X: number
  1442. },
  1443. arrayAvg(array: any[]): number,
  1444. arrayEach(array: any[], iteratee: (value: any, index: number, array: any[]) => void): any[],
  1445. arrayFilter(array: any[], predicate: (value: any, index: number, array: any[]) => void): any[],
  1446. arrayFlatten(array: any[]): any[],
  1447. arrayIncludes(array: any[], searchElement: any, fromIndex: number): any[],
  1448. arrayMap(array: any[], iteratee: (value: any, index: number, array: any[]) => void): any[],
  1449. arrayMax(array: any[]): number,
  1450. arrayMin(array: any[]): number,
  1451. arrayReduce(array: any[], iteratee: (value: any, index: number, array: any[]) => void, accumulator: any, initFromArray: boolean): any,
  1452. arraySum(array: any[]): number,
  1453. arrayUnique(array: any[]): any[],
  1454. cancelAnimationFrame(id: number): void,
  1455. cellMethodLookupFactory(methodName: string, allowUndefined: boolean): void,
  1456. clone(object: object): object,
  1457. columnFactory(GridSettings: GridSettings, conflictList: any[]): object,
  1458. createEmptySpreadsheetData(rows: number, columns: number): any[],
  1459. createObjectPropListener(defaultValue?: any, propertyToListen?: string): object,
  1460. createSpreadsheetData(rows?: number, columns?: number): any[],
  1461. createSpreadsheetObjectData(rows?: number, colCount?: number): any[],
  1462. curry(func: () => void): () => void,
  1463. curryRight(func: () => void): () => void,
  1464. debounce(func: () => void, wait?: number): () => void,
  1465. deepClone(obj: object): object,
  1466. deepExtend(target: object, extension: object): void,
  1467. deepObjectSize(object: object): number,
  1468. defineGetter(object: object, property: any, value: any, options: object): void,
  1469. duckSchema(object: any[] | object): any[] | object,
  1470. endsWith(string: string, needle: string): boolean,
  1471. equalsIgnoreCase(...string: string[]): boolean,
  1472. extend(target: object, extension: object): void,
  1473. extendArray(arr: any[], extension: any[]): void,
  1474. getComparisonFunction(language: string, options?: object): any | void,
  1475. getNormalizedDate(dateString: string): Date,
  1476. getProperty(object: object, name: string): any | void,
  1477. getPrototypeOf(obj: object): any | void,
  1478. hasCaptionProblem(): boolean | void,
  1479. inherit(Child: object, Parent: object): object,
  1480. isChrome(): boolean,
  1481. isCtrlKey(keyCode: number): boolean,
  1482. isDefined(variable: any): boolean,
  1483. isEmpty(variable: any): boolean,
  1484. isFunction(func: any): boolean,
  1485. isIE8(): boolean,
  1486. isIE9(): boolean,
  1487. isKey(keyCode: number, baseCode: string): boolean
  1488. isMetaKey(keyCode: number): boolean,
  1489. isMobileBrowser(userAgent?: string): boolean,
  1490. isNumeric(n: any): boolean,
  1491. isObject(obj: any): boolean,
  1492. isObjectEquals(object1: object | any[], object2: object | any[]): boolean,
  1493. isPercentValue(value: string): boolean,
  1494. isPrintableChar(keyCode: number): boolean,
  1495. isSafari(): boolean,
  1496. isTouchSupported(): boolean,
  1497. isUndefined(variable: any): boolean,
  1498. isWebComponentSupportedNatively(): boolean,
  1499. mixin(Base: object, ...mixins: object[]): object,
  1500. objectEach(object: object, iteratee: (value: any, key: any, object: object) => void): object,
  1501. padStart(string: string, maxLength: number, fillString?: string): string,
  1502. partial(func: () => void, ...params: any[]): () => void,
  1503. pipe(...functions: (() => void)[]): () => void,
  1504. pivot(arr: any[]): any[],
  1505. randomString(): string,
  1506. rangeEach(rangeFrom: number, rangeTo: number, iteratee: (index: number) => void): void,
  1507. rangeEachReverse(rangeFrom: number, rangeTo: number, iteratee: (index: number) => void): void,
  1508. requestAnimationFrame(callback: () => void): number,
  1509. spreadsheetColumnIndex(label: string): number,
  1510. spreadsheetColumnLabel(index: number): string,
  1511. startsWith(string: string, needle: string): boolean,
  1512. stringify(value: any): string,
  1513. stripTags(string: string): string,
  1514. substitute(template: string, variables?: object): string,
  1515. throttle(func: () => void, wait?: number): () => void,
  1516. throttleAfterHits(func: () => void, wait?: number, hits?: number): () => void,
  1517. to2dArray(arr: any[]): void,
  1518. toUpperCaseFirst(string: string): string,
  1519. translateRowsToColumns(input: any[]): any[],
  1520. valueAccordingPercent(value: number, percent: string | number): number
  1521. }
  1522. interface Dom {
  1523. HTML_CHARACTERS: RegExp,
  1524. addClass: (element: HTMLElement, className: string | any[]) => void;
  1525. addEvent: (element: HTMLElement, event: string, callback: () => void) => void;
  1526. closest: (element: HTMLElement, nodes: any[], until?: HTMLElement) => HTMLElement | void;
  1527. closestDown: (element: HTMLElement, nodes: any[], until?: HTMLElement) => HTMLElement | void;
  1528. empty: (element: HTMLElement) => void;
  1529. fastInnerHTML: (element: HTMLElement, content: string) => void;
  1530. fastInnerText: (element: HTMLElement, content: string) => void;
  1531. getCaretPosition: (el: HTMLElement) => number;
  1532. getComputedStyle: (element: HTMLElement) => CSSStyleDeclaration | object;
  1533. getCssTransform: (element: HTMLElement) => number | void;
  1534. getParent: (element: HTMLElement, level?: number) => HTMLElement | void;
  1535. getScrollLeft: (element: HTMLElement) => number;
  1536. getScrollTop: (element: HTMLElement) => number;
  1537. getScrollableElement: (element: HTMLElement) => HTMLElement;
  1538. getScrollbarWidth: () => number;
  1539. getSelectionEndPosition: (el: HTMLElement) => number;
  1540. getSelectionText: () => string;
  1541. getStyle: (element: HTMLElement, prop: string) => string;
  1542. getTrimmingContainer: (base: HTMLElement) => HTMLElement;
  1543. getWindowScrollLeft: () => number;
  1544. getWindowScrollTop: () => number;
  1545. hasClass: (element: HTMLElement, className: string) => boolean;
  1546. hasHorizontalScrollbar: (element: HTMLElement) => boolean;
  1547. hasVerticalScrollbar: (element: HTMLElement) => boolean;
  1548. index: (element: Element) => number;
  1549. innerHeight: (element: HTMLElement) => number;
  1550. innerWidth: (element: HTMLElement) => number;
  1551. isChildOf: (child: HTMLElement, parent: object | string) => boolean;
  1552. isChildOfWebComponentTable: (element: Element) => boolean;
  1553. isImmediatePropagationStopped: (event: Event) => boolean;
  1554. isInput: (element: HTMLElement) => boolean;
  1555. isLeftClick: (event: Event) => boolean;
  1556. isOutsideInput: (element: HTMLElement) => boolean;
  1557. isRightClick: (event: Event) => boolean;
  1558. isVisible: (elem: HTMLElement) => boolean;
  1559. offset: (elem: HTMLElement) => object;
  1560. outerHeight: (elem: HTMLElement) => number;
  1561. outerWidth: (element: HTMLElement) => number;
  1562. overlayContainsElement: (overlayType: string, element: HTMLElement) => boolean;
  1563. pageX: (event: Event) => number;
  1564. pageY: (event: Event) => number;
  1565. polymerUnwrap: (element: HTMLElement) => any | void;
  1566. polymerWrap: (element: HTMLElement) => any | void;
  1567. removeClass: (element: HTMLElement, className: string | any[]) => void;
  1568. removeEvent: (element: HTMLElement, event: string, callback: () => void) => void;
  1569. removeTextNodes: (element: HTMLElement, parent: HTMLElement) => void;
  1570. resetCssTransform: (element: HTMLElement) => void;
  1571. setCaretPosition: (element: HTMLElement, pos: number, endPos: number) => void;
  1572. setOverlayPosition: (overlayElem: HTMLElement, left: number, top: number) => void;
  1573. stopImmediatePropagation: (event: Event) => void;
  1574. stopPropagation: (event: Event) => void;
  1575. }
  1576. interface Plugins {
  1577. AutoColumnSize: plugins.AutoColumnSize,
  1578. AutoRowSize: plugins.AutoRowSize,
  1579. Autofill: plugins.Autofill,
  1580. BasePlugin: plugins.Base,
  1581. BindRowsWithHeaders: plugins.BindRowsWithHeaders,
  1582. CollapsibleColumns: plugins.CollapsibleColumns,
  1583. ColumnSorting: plugins.ColumnSorting,
  1584. ColumnSummary: plugins.ColumnSummary,
  1585. Comments: plugins.Comments,
  1586. ContextMenu: plugins.ContextMenu,
  1587. ContextMenuCopyPaste: plugins.ContextMenuCopyPaste,
  1588. DragToScroll: plugins.DragToScroll,
  1589. DropdownMenu: plugins.DropdownMenu,
  1590. ExportFile: plugins.ExportFile,
  1591. Filters: plugins.Filters,
  1592. Formulas: plugins.Formulas,
  1593. GanttChart: plugins.GanttChart,
  1594. HeaderTooltips: plugins.HeaderTooltips,
  1595. HiddenColumns: plugins.HiddenColumns,
  1596. HiddenRows: plugins.HiddenRows,
  1597. ManualColumnFreeze: plugins.ManualColumnFreeze,
  1598. ManualColumnMove: plugins.ManualColumnMove,
  1599. ManualColumnResize: plugins.ManualColumnResize,
  1600. ManualRowMove: plugins.ManualRowMove,
  1601. ManualRowResize: plugins.ManualRowResize;
  1602. MultipleSelectionHandles: plugins.MultipleSelectionHandles,
  1603. NestedHeaders: plugins.NestedHeaders,
  1604. NestedRows: plugins.NestedRows,
  1605. ObserveChanges: plugins.ObserveChanges,
  1606. TouchScroll: plugins.TouchScroll,
  1607. TrimRows: plugins.TrimRows,
  1608. registerPlugin: () => void
  1609. }
  1610. // plugins
  1611. // Comments
  1612. interface CommentObject {
  1613. row: number,
  1614. col: number,
  1615. comment?: {
  1616. value?: string,
  1617. readOnly?: boolean,
  1618. style?: {
  1619. height?: number,
  1620. width?: number
  1621. }
  1622. }
  1623. }
  1624. // ContextMenu
  1625. namespace contextMenu {
  1626. interface Options {
  1627. start: wot.CellCoords,
  1628. end: wot.CellCoords
  1629. }
  1630. interface Settings {
  1631. callback: (key: string, options: contextMenu.Options) => void;
  1632. items: any;
  1633. }
  1634. }
  1635. }
  1636. export default class Handsontable extends _Handsontable.Core {
  1637. static baseVersion: string;
  1638. static buildDate: string;
  1639. static cellTypes: _Handsontable.CellTypes;
  1640. static Core: _Handsontable.Core;
  1641. static dom: _Handsontable.Dom;
  1642. static editors: _Handsontable.Editors;
  1643. static helper: _Handsontable.Helper;
  1644. static hooks: _Handsontable.Hooks;
  1645. static plugins: _Handsontable.Plugins;
  1646. static renderers: _Handsontable.Renderers;
  1647. static version: string;
  1648. }