cba97df86d960ccc054a415d93e5e3471007918acda7faa20b65f1a1677228b91b53f5a1423299cd995b9064b02aa06e375346979b19361618c7c5743b3dc7 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490
  1. import Handsontable from '../../handsontable';
  2. var elem = document.createElement('div');
  3. var hot = new Handsontable(elem, {
  4. allowEmpty: true,
  5. allowHtml: true,
  6. allowInsertColumn: true,
  7. allowInsertRow: true,
  8. allowInvalid: true,
  9. allowRemoveColumn: true,
  10. allowRemoveRow: true,
  11. autoColumnSize: true,
  12. autoComplete: [],
  13. autoRowSize: true,
  14. autoWrapCol: true,
  15. autoWrapRow: true,
  16. bindRowsWithHeaders: 'foo',
  17. cell: [],
  18. cells: function() {
  19. return {};
  20. },
  21. checkedTemplate: true,
  22. className: [],
  23. colHeaders: true,
  24. collapsibleColumns: true,
  25. columnHeaderHeight: 123,
  26. columns: [],
  27. columnSorting: {},
  28. columnSummary: {},
  29. colWidths: 123,
  30. commentedCellClassName: 'foo',
  31. comments: [],
  32. contextMenu: true,
  33. contextMenuCopyPaste: {},
  34. copyable: true,
  35. copyColsLimit: 123,
  36. copyPaste: true,
  37. copyRowsLimit: 123,
  38. correctFormat: true,
  39. currentColClassName: 'foo',
  40. currentHeaderClassName: 'foo',
  41. currentRowClassName: 'foo',
  42. customBorders: true,
  43. data: [],
  44. dataSchema: {},
  45. dateFormat: 'foo',
  46. debug: true,
  47. defaultDate: 'foo',
  48. disableVisualSelection: true,
  49. dropdownMenu: [],
  50. editor: true,
  51. enterBeginsEditing: true,
  52. enterMoves: {},
  53. fillHandle: true,
  54. filter: true,
  55. filteringCaseSensitive: true,
  56. filters: false,
  57. fixedColumnsLeft: 123,
  58. fixedRowsBottom: 123,
  59. fixedRowsTop: 123,
  60. format: 'foo',
  61. fragmentSelection: true,
  62. ganttChart: {},
  63. headerTooltips: true,
  64. height: 123,
  65. hiddenColumns: true,
  66. hiddenRows: {},
  67. invalidCellClassName: 'foo',
  68. isEmptyCol: (col) => { return true; },
  69. isEmptyRow: (row) => { return true; },
  70. label: {},
  71. language: 'foo',
  72. manualColumnFreeze: true,
  73. manualColumnMove: true,
  74. manualColumnResize: true,
  75. manualRowMove: true,
  76. manualRowResize: true,
  77. maxCols: 123,
  78. maxRows: 123,
  79. mergeCells: true,
  80. minCols: 123,
  81. minRows: 123,
  82. minSpareCols: 123,
  83. minSpareRows: 123,
  84. multiSelect: true,
  85. nestedHeaders: [],
  86. noWordWrapClassName: 'foo',
  87. observeChanges: true,
  88. observeDOMVisibility: true,
  89. outsideClickDeselects: true,
  90. pasteMode: 'foo',
  91. persistentState: true,
  92. placeholder: 123,
  93. placeholderCellClassName: 'foo',
  94. preventOverflow: true,
  95. readOnly: true,
  96. readOnlyCellClassName: 'foo',
  97. renderAllRows: true,
  98. renderer: 'foo',
  99. rowHeaders: true,
  100. rowHeaderWidth: 123,
  101. rowHeights: 123,
  102. search: true,
  103. selectOptions: [],
  104. skipColumnOnPaste: true,
  105. sortByRelevance: true,
  106. sortFunction: function() {},
  107. sortIndicator: true,
  108. source: [],
  109. startCols: 123,
  110. startRows: 123,
  111. stretchH: 'foo',
  112. strict: true,
  113. tableClassName: 'foo',
  114. tabMoves: {},
  115. title: 'foo',
  116. trimDropdown: true,
  117. trimRows: true,
  118. trimWhitespace: true,
  119. type: 'foo',
  120. uncheckedTemplate: true,
  121. undo: true,
  122. validator: function() {},
  123. viewportColumnRenderingOffset: 123,
  124. viewportRowRenderingOffset: 123,
  125. visibleRows: 123,
  126. width: 1232,
  127. wordWrap: true,
  128. // Hooks
  129. afterAddChild: (parent, element, index) => {},
  130. afterBeginEdting: (row, column) => {},
  131. afterCellMetaReset: () => {},
  132. afterChange: (changes, source) => {},
  133. afterChangesObserved: () => {},
  134. afterColumnMove: (startColumn, endColumn) => {},
  135. afterColumnResize: (currentColumn, newSize, isDoubleClick) => {},
  136. afterColumnSort: (column, order) => {},
  137. afterContextMenuDefaultOptions: (predefinedItems) => {},
  138. afterContextMenuHide: (context) => {},
  139. afterContextMenuShow: (context) => {},
  140. afterCopy: (data, coords) => {},
  141. afterCopyLimit: (selectedRows, selectedColumnds, copyRowsLimit, copyColumnsLimit) => {},
  142. afterCreateCol: (index, amount) => {},
  143. afterCreateRow: (index, amount) => {},
  144. afterCut: (data, coords) => {},
  145. afterDeselect: () => {},
  146. afterDestroy: () => {},
  147. afterDetachChild: (parent, element) => {},
  148. afterDocumentKeyDown: (event) => {},
  149. afterDropdownMenuDefaultOptions: (predefinedItems) => {},
  150. afterDropdownMenuHide: (instance) => {},
  151. afterDropdownMenuShow: (instance) => {},
  152. afterFilter: (formulasStack) => {},
  153. afterGetCellMeta: (row, col, cellProperties) => {},
  154. afterGetColHeader: (col, TH) => {},
  155. afterGetColumnHeaderRenderers: (array) => {},
  156. afterGetRowHeader: (row, TH) => {},
  157. afterGetRowHeaderRenderers: (array) => {},
  158. afterInit: () => {},
  159. afterLoadData: (firstTime) => {},
  160. afterModifyTransformEnd: (coords, rowTransformDir, colTransformDir) => {},
  161. afterModifyTransformStart: (coords, rowTransformDir, colTransformDir) => {},
  162. afterMomentumScroll: () => {},
  163. afterOnCellCornerDblClick: (event) => {},
  164. afterOnCellCornerMouseDown: (event) => {},
  165. afterOnCellMouseDown: (event, coords, TD) => {},
  166. afterOnCellMouseOver: (event, coords, TD) => {},
  167. afterOnCellMouseOut: (event, coords, TD) => {},
  168. afterPaste: (data, coords) => {},
  169. afterPluginsInitialized: () => {},
  170. afterRedo: (action) => {},
  171. afterRemoveCol: (index, amount) => {},
  172. afterRemoveRow: (index, amount) => {},
  173. afterRender: (isForced) => {},
  174. afterRenderer: (TD, row, col, prop, value, cellProperties) => {},
  175. afterRowMove: (startRow, endRow) => {},
  176. afterRowResize: (currentRow, newSize, isDoubleClick) => {},
  177. afterScrollHorizontally: () => {},
  178. afterScrollVertically: () => {},
  179. afterSelection: (r, c, r2, c2) => {},
  180. afterSelectionByProp: (r, p, r2, p2) => {},
  181. afterSelectionEnd: (r, c, r2, c2) => {},
  182. afterSelectionEndByProp: (r, p, r2, p2) => {},
  183. afterSetCellMeta: (row, col, key, value) => {},
  184. afterSetDataAtCell: (changes, source) => {},
  185. afterSetDataAtRowProp: (changes, source) => {},
  186. afterTrimRow: (rows) => {},
  187. afterUndo: (action) => {},
  188. afterUntrimRow: (rows) => {},
  189. afterUpdateSettings: () => {},
  190. afterValidate: () => {},
  191. afterViewportColumnCalculatorOverride: (calc) => {},
  192. afterViewportRowCalculatorOverride: (calc) => {},
  193. beforeAddChild: (parent, element, index) => {},
  194. beforeAutofill: (start, end, data) => {},
  195. beforeAutofillInsidePopulate: (index, direction, input, deltas) => {},
  196. beforeCellAlignment: (stateBefore, range, type, alignmentClass) => {},
  197. beforeChange: (changes, source) => {},
  198. beforeChangeRender: (changes, source) => {},
  199. beforeColumnMove: (startColumn, endColumn) => {},
  200. beforeColumnResize: (currentColumn, newSize, isDoubleClick) => {},
  201. beforeColumnSort: (column, order) => {},
  202. beforeContextMenuSetItems: (menuItems) => {},
  203. beforeCopy: (data, coords) => {},
  204. beforeCreateCol: (index, amount, source) => {},
  205. beforeCreateRow: (index, amount, source) => {},
  206. beforeCut: (data, coords) => {},
  207. beforeDetachChild: (parent, element) => {},
  208. beforeDrawBorders: (corners, borderClassName) => {},
  209. beforeFilter: (formulasStack) => {},
  210. beforeGetCellMeta: (row, col, cellProperties) => {},
  211. beforeInit: () => {},
  212. beforeInitWalkontable: (walkontableConfig) => {},
  213. beforeKeyDown: (event) => {},
  214. beforeOnCellMouseDown: () => {},
  215. beforeOnCellMouseOut: (event, coords, TD) => {},
  216. beforeOnCellMouseOver: (event, coords, TD, blockCalculations) => {},
  217. beforePaste: (data, coords) => {},
  218. beforeRedo: (action) => {},
  219. beforeRemoveCol: (index, amount, logicalCols = [1, 2, 3]) => {},
  220. beforeRemoveRow: (index, amount, logicalCols = [1, 2, 3]) => {},
  221. beforeRender: (isForced, skipRender) => {},
  222. beforeRenderer: (TD, row, col, prop, value, cellProperties) => {},
  223. beforeRowMove: (startRow, endRow) => {},
  224. beforeRowResize: (currentRow, newSize, isDoubleClick) => {},
  225. beforeSetRangeEnd: (coords) => {},
  226. beforeSetRangeStart: (coords) => {},
  227. beforeStretchingColumnWidth: (stretchedWidth, column) => {},
  228. beforeTouchScroll: () => {},
  229. beforeUndo: (action) => {},
  230. beforeValidate: (value, row, prop, source = 'source') => {},
  231. beforeValueRender: (value) => {},
  232. construct: () => {},
  233. hiddenColumn: (column) => {},
  234. hiddenRow: (row) => {},
  235. init: () => {},
  236. manualRowHeights: (state) => {},
  237. modifyAutofillRange: (startArea, entireArea) => {},
  238. modifyCol: (col) => {},
  239. modifyColHeader: (column) => {},
  240. modifyColWidth: (width) => {},
  241. modifyCopyableRange: (copyableRanges) => {},
  242. modifyRow: (row) => {},
  243. modifyRowHeader: (row) => {},
  244. modifyRowHeight: (height, row) => {},
  245. modifyRowSourceData: (row) => {},
  246. modifyTransformEnd: (delta) => {},
  247. modifyTransformStart: (delta) => {},
  248. persistentStateLoad: () => {},
  249. persistentStateReset: () => {},
  250. persistentStateSave: () => {},
  251. skipLengthCache: (delay) => {},
  252. unmodifyCol: () => {},
  253. unmodifyRow: (row) => {},
  254. });
  255. function test_HandsontableMethods() {
  256. var elem = document.createElement('div');
  257. var hot = new Handsontable(elem, {});
  258. hot.addHook('foo', []);
  259. hot.addHookOnce('foo', []);
  260. hot.alter('foo', 123, 123, 'foo', true);
  261. hot.clear();
  262. hot.colOffset();
  263. hot.colToProp(123);
  264. hot.countCols();
  265. hot.countEmptyCols(true);
  266. hot.countEmptyRows(true);
  267. hot.countRenderedCols();
  268. hot.countRenderedRows();
  269. hot.countRows();
  270. hot.countSourceRows();
  271. hot.countVisibleCols();
  272. hot.countVisibleRows();
  273. hot.deselectCell();
  274. hot.destroy();
  275. hot.destroyEditor(true);
  276. hot.getActiveEditor();
  277. hot.getCell(123, 123, true);
  278. hot.getCellEditor(123, 123);
  279. hot.getCellMeta(123, 123);
  280. hot.getCellRenderer(123, 123);
  281. hot.getCellValidator(123, 123);
  282. hot.getColHeader(123);
  283. hot.getColWidth(123);
  284. hot.getCoords(elem.querySelector('td'));
  285. hot.getCopyableData(123, 123);
  286. hot.getCopyableText(123, 123, 123, 123);
  287. hot.getData(123, 123, 123, 123);
  288. hot.getDataAtCell(123, 123);
  289. hot.getDataAtCol(123);
  290. hot.getDataAtProp(123);
  291. hot.getDataAtRow(123);
  292. hot.getDataAtRowProp(123, 'foo');
  293. hot.getDataType(123, 123, 123, 123);
  294. hot.getInstance();
  295. hot.getPlugin('foo');
  296. hot.getRowHeader(123);
  297. hot.getRowHeight(123);
  298. hot.getSchema();
  299. hot.getSelected();
  300. hot.getSelectedRange();
  301. hot.getSettings();
  302. hot.getSourceData(123, 123, 123, 123);
  303. hot.getSourceDataAtCell(123, 123);
  304. hot.getSourceDataAtCol(123);
  305. hot.getSourceDataAtRow(123);
  306. hot.getValue();
  307. hot.hasColHeaders();
  308. hot.hasHook('foo');
  309. hot.hasRowHeaders();
  310. hot.isEmptyCol(123);
  311. hot.isEmptyRow(123);
  312. hot.isListening();
  313. hot.listen();
  314. hot.loadData([]);
  315. hot.populateFromArray(123, 123, [], 123, 123, 'foo', 'foo', 'foo', []);
  316. hot.propToCol('foo');
  317. hot.propToCol(123);
  318. hot.removeCellMeta(123, 123, 'foo');
  319. hot.removeHook('foo', function() {});
  320. hot.render();
  321. hot.rowOffset();
  322. hot.runHooks('foo', 123, 'foo', true, {}, [], function() {});
  323. hot.selectCell(123, 123, 123, 123, true, true);
  324. hot.selectCellByProp(123, 'foo', 123, 'foo', true);
  325. hot.setCellMeta(123, 123, 'foo', 'foo');
  326. hot.setCellMetaObject(123, 123, {});
  327. hot.setDataAtCell(123, 123, 'foo', 'foo');
  328. hot.setDataAtRowProp(123, 'foo', 'foo', 'foo');
  329. hot.spliceCol(123, 123, 123, 'foo');
  330. hot.spliceRow(123, 123, 123, 'foo');
  331. hot.unlisten();
  332. hot.updateSettings({}, true);
  333. hot.validateCells(function() {});
  334. let baseVersion = Handsontable.baseVersion;
  335. let buildDate = Handsontable.buildDate;
  336. let version = Handsontable.version;
  337. let gridSettingsObj = {
  338. valid: true,
  339. className: 'foo'
  340. };
  341. Handsontable.renderers.AutocompleteRenderer(hot, new HTMLTableDataCellElement(), 0, 0, "prop", 1.235, gridSettingsObj);
  342. Handsontable.renderers.BaseRenderer(hot, new HTMLTableDataCellElement(), 0, 0, "prop", 1.235, gridSettingsObj);
  343. Handsontable.renderers.CheckboxRenderer(hot, new HTMLTableDataCellElement(), 0, 0, "prop", 1.235, gridSettingsObj);
  344. Handsontable.renderers.HtmlRenderer(hot, new HTMLTableDataCellElement(), 0, 0, "prop", 1.235, gridSettingsObj);
  345. Handsontable.renderers.NumericRenderer(hot, new HTMLTableDataCellElement(), 0, 0, "prop", 1.235, gridSettingsObj);
  346. Handsontable.renderers.PasswordRenderer(hot, new HTMLTableDataCellElement(), 0, 0, "prop", 1.235, gridSettingsObj);
  347. Handsontable.renderers.TextRenderer(hot, new HTMLTableDataCellElement(), 0, 0, "prop", 1.235, gridSettingsObj);
  348. let domElement = new HTMLElement();
  349. let domEvent = new Event('foo');
  350. Handsontable.dom.addEvent(domElement, "eventName", () => {});
  351. let htmlCharacters = Handsontable.dom.HTML_CHARACTERS;
  352. Handsontable.dom.addClass(domElement, ['foo', 'bar']);
  353. Handsontable.dom.addEvent(domElement, 'foo', () => {});
  354. Handsontable.dom.closest(domElement, ['foo'], domElement);
  355. Handsontable.dom.closestDown(domElement, ['foo', 'bar'], domElement);
  356. Handsontable.dom.empty(domElement);
  357. Handsontable.dom.fastInnerHTML(domElement, 'foo');
  358. Handsontable.dom.fastInnerText(domElement, 'foo');
  359. Handsontable.dom.getCaretPosition(domElement);
  360. Handsontable.dom.getComputedStyle(domElement);
  361. Handsontable.dom.getCssTransform(domElement);
  362. Handsontable.dom.getParent(domElement, 1);
  363. Handsontable.dom.getScrollLeft(domElement);
  364. Handsontable.dom.getScrollTop(domElement);
  365. Handsontable.dom.getScrollableElement(domElement);
  366. Handsontable.dom.getScrollbarWidth();
  367. Handsontable.dom.getSelectionEndPosition(domElement);
  368. Handsontable.dom.getSelectionText();
  369. Handsontable.dom.getStyle(domElement, 'foo');
  370. Handsontable.dom.getTrimmingContainer(domElement);
  371. Handsontable.dom.getWindowScrollLeft();
  372. Handsontable.dom.getWindowScrollTop();
  373. Handsontable.dom.hasClass(domElement, 'foo');
  374. Handsontable.dom.hasHorizontalScrollbar(domElement);
  375. Handsontable.dom.hasVerticalScrollbar(domElement);
  376. Handsontable.dom.index(domElement);
  377. Handsontable.dom.innerHeight(domElement);
  378. Handsontable.dom.innerWidth(domElement);
  379. Handsontable.dom.isChildOf(domElement, 'foo');
  380. Handsontable.dom.isChildOfWebComponentTable(domElement);
  381. Handsontable.dom.isImmediatePropagationStopped(domEvent);
  382. Handsontable.dom.isInput(domElement);
  383. Handsontable.dom.isLeftClick(domEvent);
  384. Handsontable.dom.isOutsideInput(domElement);
  385. Handsontable.dom.isRightClick(domEvent);
  386. Handsontable.dom.isVisible(domElement);
  387. Handsontable.dom.offset(domElement);
  388. Handsontable.dom.outerHeight(domElement);
  389. Handsontable.dom.outerWidth(domElement);
  390. Handsontable.dom.overlayContainsElement('foo', domElement);
  391. Handsontable.dom.pageX(domEvent);
  392. Handsontable.dom.pageY(domEvent);
  393. Handsontable.dom.polymerUnwrap(domElement);
  394. Handsontable.dom.polymerWrap(domElement);
  395. Handsontable.dom.removeClass(domElement, ['foo', 'bar']);
  396. Handsontable.dom.removeEvent(domElement, 'foo', () => {});
  397. Handsontable.dom.removeTextNodes(domElement, domElement);
  398. Handsontable.dom.resetCssTransform(domElement);
  399. Handsontable.dom.setCaretPosition(domElement, 0, 0);
  400. Handsontable.dom.setOverlayPosition(domElement, 0, 0);
  401. Handsontable.dom.stopImmediatePropagation(domEvent);
  402. Handsontable.dom.stopPropagation(domEvent);
  403. Handsontable.helper.arrayAvg([1, 3, 4]);
  404. Handsontable.helper.arrayEach([1, 2, 3], (value, index, array) => {});
  405. Handsontable.helper.arrayFilter([1, 'foo', true], (value, index, array) => {});
  406. Handsontable.helper.arrayFlatten([1, 'foo', true]);
  407. Handsontable.helper.arrayIncludes([1, 'foo', true], 'foo', 1);
  408. Handsontable.helper.arrayMap([1, 'foo', true], (value, index, array) => {});
  409. Handsontable.helper.arrayMax([1, 'foo', true]);
  410. Handsontable.helper.arrayMin([1, 'foo', true]);
  411. Handsontable.helper.arrayReduce([1, 'foo', true], (value, index, array) => {}, 'foo', false);
  412. Handsontable.helper.arraySum([1, 'foo', true]);
  413. Handsontable.helper.arrayUnique([1, 'foo', true]);
  414. Handsontable.helper.cancelAnimationFrame(1);
  415. Handsontable.helper.cellMethodLookupFactory('foo', true);
  416. Handsontable.helper.clone({key: 'foo'});
  417. Handsontable.helper.columnFactory(gridSettingsObj, [1, 'foo', true]);
  418. Handsontable.helper.createEmptySpreadsheetData(0, 0);
  419. Handsontable.helper.createObjectPropListener('foo', 'bar');
  420. Handsontable.helper.createSpreadsheetData(0, 0);
  421. Handsontable.helper.createSpreadsheetObjectData(0, 0);
  422. Handsontable.helper.curry(() => {});
  423. Handsontable.helper.curryRight(() => {});
  424. Handsontable.helper.debounce(() => {}, 1);
  425. Handsontable.helper.deepClone({key: 'foo'});
  426. Handsontable.helper.deepExtend({key: 'foo'}, {key2: 'foo'});
  427. Handsontable.helper.deepObjectSize({key: 'foo'});
  428. Handsontable.helper.defineGetter({key: 'foo'}, 'key', 'bar', {});
  429. Handsontable.helper.duckSchema({});
  430. Handsontable.helper.endsWith('foo', 'bar');
  431. Handsontable.helper.equalsIgnoreCase('foo', 'bar');
  432. Handsontable.helper.extend({key: 'foo'}, {key2: 'foo'});
  433. Handsontable.helper.extendArray([1, 'foo'], [true]);
  434. Handsontable.helper.getComparisonFunction('en', {});
  435. Handsontable.helper.getNormalizedDate('YYYY-mm-dd');
  436. Handsontable.helper.getProperty({key: 'foo'}, 'key');
  437. Handsontable.helper.getPrototypeOf({key: 'foo'});
  438. Handsontable.helper.hasCaptionProblem();
  439. Handsontable.helper.inherit({key: 'foo'}, {key2: 'bar'});
  440. Handsontable.helper.isChrome();
  441. Handsontable.helper.isCtrlKey(1);
  442. Handsontable.helper.isDefined(1);
  443. Handsontable.helper.isEmpty(1);
  444. Handsontable.helper.isFunction(1);
  445. Handsontable.helper.isIE8();
  446. Handsontable.helper.isIE9();
  447. Handsontable.helper.isKey(1, 'foo');
  448. Handsontable.helper.isMetaKey(1);
  449. Handsontable.helper.isMobileBrowser('foo');
  450. Handsontable.helper.isNumeric(true);
  451. Handsontable.helper.isObject('foo');
  452. Handsontable.helper.isObjectEquals([1, 2, 3], {});
  453. Handsontable.helper.isPercentValue('1');
  454. Handsontable.helper.isPrintableChar(1);
  455. Handsontable.helper.isSafari();
  456. Handsontable.helper.isTouchSupported();
  457. Handsontable.helper.isUndefined(null);
  458. Handsontable.helper.isWebComponentSupportedNatively();
  459. Handsontable.helper.mixin({}, {key: 'foo'}, {key2: 'bar'});
  460. Handsontable.helper.objectEach({key: 'foo'}, (value, key, object) => {});
  461. Handsontable.helper.padStart('foo', 1, 'bar');
  462. Handsontable.helper.partial(() => {}, 1, 'foo', true);
  463. Handsontable.helper.pipe(() => {}, () => {});
  464. Handsontable.helper.pivot([1, 'foo', true]);
  465. Handsontable.helper.randomString();
  466. Handsontable.helper.rangeEach(0, 0, (index) => {});
  467. Handsontable.helper.rangeEachReverse(0, 0, (index) => {});
  468. Handsontable.helper.requestAnimationFrame(() => {});
  469. Handsontable.helper.spreadsheetColumnIndex('foo');
  470. Handsontable.helper.spreadsheetColumnLabel(1);
  471. Handsontable.helper.startsWith('foo', 'bar');
  472. Handsontable.helper.stringify(1);
  473. Handsontable.helper.stripTags('<a>foo</a>');
  474. Handsontable.helper.substitute('foo', {});
  475. Handsontable.helper.throttle(() => {}, 1);
  476. Handsontable.helper.throttleAfterHits(() => {}, 0, 1);
  477. Handsontable.helper.to2dArray([1, 'foo', true]);
  478. Handsontable.helper.toUpperCaseFirst('foo');
  479. Handsontable.helper.translateRowsToColumns([1, 'foo', true]);
  480. Handsontable.helper.valueAccordingPercent(1, 90);
  481. }