@quantlab/handsontable
Version:
Spreadsheet-like data grid editor that provides copy/paste functionality compatible with Excel/Google Docs
492 lines (482 loc) • 19 kB
text/typescript
import Handsontable from '../../handsontable';
var test = Handsontable.plugins.CopyPaste.columnsLimit;
var elem = document.createElement('div');
var hot = new Handsontable(elem, {
allowEmpty: true,
allowHtml: true,
allowInsertColumn: true,
allowInsertRow: true,
allowInvalid: true,
allowRemoveColumn: true,
allowRemoveRow: true,
autoColumnSize: true,
autoComplete: [],
autoRowSize: true,
autoWrapCol: true,
autoWrapRow: true,
bindRowsWithHeaders: 'foo',
cell: [],
cells: function() {
return {};
},
checkedTemplate: true,
className: [],
colHeaders: true,
collapsibleColumns: true,
columnHeaderHeight: 123,
columns: [],
columnSorting: {},
columnSummary: {},
colWidths: 123,
commentedCellClassName: 'foo',
comments: [],
contextMenu: true,
contextMenuCopyPaste: {},
copyable: true,
copyColsLimit: 123,
copyPaste: true,
copyRowsLimit: 123,
correctFormat: true,
currentColClassName: 'foo',
currentHeaderClassName: 'foo',
currentRowClassName: 'foo',
customBorders: true,
data: [],
dataSchema: {},
dateFormat: 'foo',
debug: true,
defaultDate: 'foo',
disableVisualSelection: true,
dropdownMenu: [],
editor: true,
enterBeginsEditing: true,
enterMoves: {},
fillHandle: true,
filter: true,
filteringCaseSensitive: true,
filters: false,
fixedColumnsLeft: 123,
fixedRowsBottom: 123,
fixedRowsTop: 123,
format: 'foo',
fragmentSelection: true,
ganttChart: {},
headerTooltips: true,
height: 123,
hiddenColumns: true,
hiddenRows: {},
invalidCellClassName: 'foo',
isEmptyCol: (col) => { return true; },
isEmptyRow: (row) => { return true; },
label: {},
language: 'foo',
manualColumnFreeze: true,
manualColumnMove: true,
manualColumnResize: true,
manualRowMove: true,
manualRowResize: true,
maxCols: 123,
maxRows: 123,
mergeCells: true,
minCols: 123,
minRows: 123,
minSpareCols: 123,
minSpareRows: 123,
multiSelect: true,
nestedHeaders: [],
noWordWrapClassName: 'foo',
observeChanges: true,
observeDOMVisibility: true,
outsideClickDeselects: true,
pasteMode: 'foo',
persistentState: true,
placeholder: 123,
placeholderCellClassName: 'foo',
preventOverflow: true,
readOnly: true,
readOnlyCellClassName: 'foo',
renderAllRows: true,
renderer: 'foo',
rowHeaders: true,
rowHeaderWidth: 123,
rowHeights: 123,
search: true,
selectOptions: [],
skipColumnOnPaste: true,
sortByRelevance: true,
sortFunction: function() {},
sortIndicator: true,
source: [],
startCols: 123,
startRows: 123,
stretchH: 'foo',
strict: true,
tableClassName: 'foo',
tabMoves: {},
title: 'foo',
trimDropdown: true,
trimRows: true,
trimWhitespace: true,
type: 'foo',
uncheckedTemplate: true,
undo: true,
validator: function() {},
viewportColumnRenderingOffset: 123,
viewportRowRenderingOffset: 123,
visibleRows: 123,
width: 1232,
wordWrap: true,
// Hooks
afterAddChild: (parent, element, index) => {},
afterBeginEdting: (row, column) => {},
afterCellMetaReset: () => {},
afterChange: (changes, source) => {},
afterChangesObserved: () => {},
afterColumnMove: (startColumn, endColumn) => {},
afterColumnResize: (currentColumn, newSize, isDoubleClick) => {},
afterColumnSort: (column, order) => {},
afterContextMenuDefaultOptions: (predefinedItems) => {},
afterContextMenuHide: (context) => {},
afterContextMenuShow: (context) => {},
afterCopy: (data, coords) => {},
afterCopyLimit: (selectedRows, selectedColumnds, copyRowsLimit, copyColumnsLimit) => {},
afterCreateCol: (index, amount) => {},
afterCreateRow: (index, amount) => {},
afterCut: (data, coords) => {},
afterDeselect: () => {},
afterDestroy: () => {},
afterDetachChild: (parent, element) => {},
afterDocumentKeyDown: (event) => {},
afterDropdownMenuDefaultOptions: (predefinedItems) => {},
afterDropdownMenuHide: (instance) => {},
afterDropdownMenuShow: (instance) => {},
afterFilter: (formulasStack) => {},
afterGetCellMeta: (row, col, cellProperties) => {},
afterGetColHeader: (col, TH) => {},
afterGetColumnHeaderRenderers: (array) => {},
afterGetRowHeader: (row, TH) => {},
afterGetRowHeaderRenderers: (array) => {},
afterInit: () => {},
afterLoadData: (firstTime) => {},
afterModifyTransformEnd: (coords, rowTransformDir, colTransformDir) => {},
afterModifyTransformStart: (coords, rowTransformDir, colTransformDir) => {},
afterMomentumScroll: () => {},
afterOnCellCornerDblClick: (event) => {},
afterOnCellCornerMouseDown: (event) => {},
afterOnCellMouseDown: (event, coords, TD) => {},
afterOnCellMouseOver: (event, coords, TD) => {},
afterOnCellMouseOut: (event, coords, TD) => {},
afterPaste: (data, coords) => {},
afterPluginsInitialized: () => {},
afterRedo: (action) => {},
afterRemoveCol: (index, amount) => {},
afterRemoveRow: (index, amount) => {},
afterRender: (isForced) => {},
afterRenderer: (TD, row, col, prop, value, cellProperties) => {},
afterRowMove: (startRow, endRow) => {},
afterRowResize: (currentRow, newSize, isDoubleClick) => {},
afterScrollHorizontally: () => {},
afterScrollVertically: () => {},
afterSelection: (r, c, r2, c2) => {},
afterSelectionByProp: (r, p, r2, p2) => {},
afterSelectionEnd: (r, c, r2, c2) => {},
afterSelectionEndByProp: (r, p, r2, p2) => {},
afterSetCellMeta: (row, col, key, value) => {},
afterSetDataAtCell: (changes, source) => {},
afterSetDataAtRowProp: (changes, source) => {},
afterTrimRow: (rows) => {},
afterUndo: (action) => {},
afterUntrimRow: (rows) => {},
afterUpdateSettings: () => {},
afterValidate: () => {},
afterViewportColumnCalculatorOverride: (calc) => {},
afterViewportRowCalculatorOverride: (calc) => {},
beforeAddChild: (parent, element, index) => {},
beforeAutofill: (start, end, data) => {},
beforeAutofillInsidePopulate: (index, direction, input, deltas) => {},
beforeCellAlignment: (stateBefore, range, type, alignmentClass) => {},
beforeChange: (changes, source) => {},
beforeChangeRender: (changes, source) => {},
beforeColumnMove: (startColumn, endColumn) => {},
beforeColumnResize: (currentColumn, newSize, isDoubleClick) => {},
beforeColumnSort: (column, order) => {},
beforeContextMenuSetItems: (menuItems) => {},
beforeCopy: (data, coords) => {},
beforeCreateCol: (index, amount, source) => {},
beforeCreateRow: (index, amount, source) => {},
beforeCut: (data, coords) => {},
beforeDetachChild: (parent, element) => {},
beforeDrawBorders: (corners, borderClassName) => {},
beforeFilter: (formulasStack) => {},
beforeGetCellMeta: (row, col, cellProperties) => {},
beforeInit: () => {},
beforeInitWalkontable: (walkontableConfig) => {},
beforeKeyDown: (event) => {},
beforeOnCellMouseDown: () => {},
beforeOnCellMouseOut: (event, coords, TD) => {},
beforeOnCellMouseOver: (event, coords, TD, blockCalculations) => {},
beforePaste: (data, coords) => {},
beforeRedo: (action) => {},
beforeRemoveCol: (index, amount, logicalCols = [1, 2, 3]) => {},
beforeRemoveRow: (index, amount, logicalCols = [1, 2, 3]) => {},
beforeRender: (isForced, skipRender) => {},
beforeRenderer: (TD, row, col, prop, value, cellProperties) => {},
beforeRowMove: (startRow, endRow) => {},
beforeRowResize: (currentRow, newSize, isDoubleClick) => {},
beforeSetRangeEnd: (coords) => {},
beforeSetRangeStart: (coords) => {},
beforeStretchingColumnWidth: (stretchedWidth, column) => {},
beforeTouchScroll: () => {},
beforeUndo: (action) => {},
beforeValidate: (value, row, prop, source = 'source') => {},
beforeValueRender: (value) => {},
construct: () => {},
hiddenColumn: (column) => {},
hiddenRow: (row) => {},
init: () => {},
manualRowHeights: (state) => {},
modifyAutofillRange: (startArea, entireArea) => {},
modifyCol: (col) => {},
modifyColHeader: (column) => {},
modifyColWidth: (width) => {},
modifyCopyableRange: (copyableRanges) => {},
modifyRow: (row) => {},
modifyRowHeader: (row) => {},
modifyRowHeight: (height, row) => {},
modifyRowSourceData: (row) => {},
modifyTransformEnd: (delta) => {},
modifyTransformStart: (delta) => {},
persistentStateLoad: () => {},
persistentStateReset: () => {},
persistentStateSave: () => {},
skipLengthCache: (delay) => {},
unmodifyCol: () => {},
unmodifyRow: (row) => {},
});
function test_HandsontableMethods() {
var elem = document.createElement('div');
var hot = new Handsontable(elem, {});
hot.addHook('foo', []);
hot.addHookOnce('foo', []);
hot.alter('foo', 123, 123, 'foo', true);
hot.clear();
hot.colOffset();
hot.colToProp(123);
hot.countCols();
hot.countEmptyCols(true);
hot.countEmptyRows(true);
hot.countRenderedCols();
hot.countRenderedRows();
hot.countRows();
hot.countSourceRows();
hot.countVisibleCols();
hot.countVisibleRows();
hot.deselectCell();
hot.destroy();
hot.destroyEditor(true);
hot.getActiveEditor();
hot.getCell(123, 123, true);
hot.getCellEditor(123, 123);
hot.getCellMeta(123, 123);
hot.getCellRenderer(123, 123);
hot.getCellValidator(123, 123);
hot.getColHeader(123);
hot.getColWidth(123);
hot.getCoords(elem.querySelector('td'));
hot.getCopyableData(123, 123);
hot.getCopyableText(123, 123, 123, 123);
hot.getData(123, 123, 123, 123);
hot.getDataAtCell(123, 123);
hot.getDataAtCol(123);
hot.getDataAtProp(123);
hot.getDataAtRow(123);
hot.getDataAtRowProp(123, 'foo');
hot.getDataType(123, 123, 123, 123);
hot.getInstance();
hot.getPlugin('foo');
hot.getRowHeader(123);
hot.getRowHeight(123);
hot.getSchema();
hot.getSelected();
hot.getSelectedRange();
hot.getSettings();
hot.getSourceData(123, 123, 123, 123);
hot.getSourceDataAtCell(123, 123);
hot.getSourceDataAtCol(123);
hot.getSourceDataAtRow(123);
hot.getValue();
hot.hasColHeaders();
hot.hasHook('foo');
hot.hasRowHeaders();
hot.isEmptyCol(123);
hot.isEmptyRow(123);
hot.isListening();
hot.listen();
hot.loadData([]);
hot.populateFromArray(123, 123, [], 123, 123, 'foo', 'foo', 'foo', []);
hot.propToCol('foo');
hot.propToCol(123);
hot.removeCellMeta(123, 123, 'foo');
hot.removeHook('foo', function() {});
hot.render();
hot.rowOffset();
hot.runHooks('foo', 123, 'foo', true, {}, [], function() {});
hot.selectCell(123, 123, 123, 123, true, true);
hot.selectCellByProp(123, 'foo', 123, 'foo', true);
hot.setCellMeta(123, 123, 'foo', 'foo');
hot.setCellMetaObject(123, 123, {});
hot.setDataAtCell(123, 123, 'foo', 'foo');
hot.setDataAtRowProp(123, 'foo', 'foo', 'foo');
hot.spliceCol(123, 123, 123, 'foo');
hot.spliceRow(123, 123, 123, 'foo');
hot.unlisten();
hot.updateSettings({}, true);
hot.validateCells(function() {});
let baseVersion = Handsontable.baseVersion;
let buildDate = Handsontable.buildDate;
let version = Handsontable.version;
let gridSettingsObj = {
valid: true,
className: 'foo'
};
Handsontable.renderers.AutocompleteRenderer(hot, new HTMLTableDataCellElement(), 0, 0, "prop", 1.235, gridSettingsObj);
Handsontable.renderers.BaseRenderer(hot, new HTMLTableDataCellElement(), 0, 0, "prop", 1.235, gridSettingsObj);
Handsontable.renderers.CheckboxRenderer(hot, new HTMLTableDataCellElement(), 0, 0, "prop", 1.235, gridSettingsObj);
Handsontable.renderers.HtmlRenderer(hot, new HTMLTableDataCellElement(), 0, 0, "prop", 1.235, gridSettingsObj);
Handsontable.renderers.NumericRenderer(hot, new HTMLTableDataCellElement(), 0, 0, "prop", 1.235, gridSettingsObj);
Handsontable.renderers.PasswordRenderer(hot, new HTMLTableDataCellElement(), 0, 0, "prop", 1.235, gridSettingsObj);
Handsontable.renderers.TextRenderer(hot, new HTMLTableDataCellElement(), 0, 0, "prop", 1.235, gridSettingsObj);
let domElement = new HTMLElement();
let domEvent = new Event('foo');
Handsontable.dom.addEvent(domElement, "eventName", () => {});
let htmlCharacters = Handsontable.dom.HTML_CHARACTERS;
Handsontable.dom.addClass(domElement, ['foo', 'bar']);
Handsontable.dom.addEvent(domElement, 'foo', () => {});
Handsontable.dom.closest(domElement, ['foo'], domElement);
Handsontable.dom.closestDown(domElement, ['foo', 'bar'], domElement);
Handsontable.dom.empty(domElement);
Handsontable.dom.fastInnerHTML(domElement, 'foo');
Handsontable.dom.fastInnerText(domElement, 'foo');
Handsontable.dom.getCaretPosition(domElement);
Handsontable.dom.getComputedStyle(domElement);
Handsontable.dom.getCssTransform(domElement);
Handsontable.dom.getParent(domElement, 1);
Handsontable.dom.getScrollLeft(domElement);
Handsontable.dom.getScrollTop(domElement);
Handsontable.dom.getScrollableElement(domElement);
Handsontable.dom.getScrollbarWidth();
Handsontable.dom.getSelectionEndPosition(domElement);
Handsontable.dom.getSelectionText();
Handsontable.dom.getStyle(domElement, 'foo');
Handsontable.dom.getTrimmingContainer(domElement);
Handsontable.dom.getWindowScrollLeft();
Handsontable.dom.getWindowScrollTop();
Handsontable.dom.hasClass(domElement, 'foo');
Handsontable.dom.hasHorizontalScrollbar(domElement);
Handsontable.dom.hasVerticalScrollbar(domElement);
Handsontable.dom.index(domElement);
Handsontable.dom.innerHeight(domElement);
Handsontable.dom.innerWidth(domElement);
Handsontable.dom.isChildOf(domElement, 'foo');
Handsontable.dom.isChildOfWebComponentTable(domElement);
Handsontable.dom.isImmediatePropagationStopped(domEvent);
Handsontable.dom.isInput(domElement);
Handsontable.dom.isLeftClick(domEvent);
Handsontable.dom.isOutsideInput(domElement);
Handsontable.dom.isRightClick(domEvent);
Handsontable.dom.isVisible(domElement);
Handsontable.dom.offset(domElement);
Handsontable.dom.outerHeight(domElement);
Handsontable.dom.outerWidth(domElement);
Handsontable.dom.overlayContainsElement('foo', domElement);
Handsontable.dom.pageX(domEvent);
Handsontable.dom.pageY(domEvent);
Handsontable.dom.polymerUnwrap(domElement);
Handsontable.dom.polymerWrap(domElement);
Handsontable.dom.removeClass(domElement, ['foo', 'bar']);
Handsontable.dom.removeEvent(domElement, 'foo', () => {});
Handsontable.dom.removeTextNodes(domElement, domElement);
Handsontable.dom.resetCssTransform(domElement);
Handsontable.dom.setCaretPosition(domElement, 0, 0);
Handsontable.dom.setOverlayPosition(domElement, 0, 0);
Handsontable.dom.stopImmediatePropagation(domEvent);
Handsontable.dom.stopPropagation(domEvent);
Handsontable.helper.arrayAvg([1, 3, 4]);
Handsontable.helper.arrayEach([1, 2, 3], (value, index, array) => {});
Handsontable.helper.arrayFilter([1, 'foo', true], (value, index, array) => {});
Handsontable.helper.arrayFlatten([1, 'foo', true]);
Handsontable.helper.arrayIncludes([1, 'foo', true], 'foo', 1);
Handsontable.helper.arrayMap([1, 'foo', true], (value, index, array) => {});
Handsontable.helper.arrayMax([1, 'foo', true]);
Handsontable.helper.arrayMin([1, 'foo', true]);
Handsontable.helper.arrayReduce([1, 'foo', true], (value, index, array) => {}, 'foo', false);
Handsontable.helper.arraySum([1, 'foo', true]);
Handsontable.helper.arrayUnique([1, 'foo', true]);
Handsontable.helper.cancelAnimationFrame(1);
Handsontable.helper.cellMethodLookupFactory('foo', true);
Handsontable.helper.clone({key: 'foo'});
Handsontable.helper.columnFactory(gridSettingsObj, [1, 'foo', true]);
Handsontable.helper.createEmptySpreadsheetData(0, 0);
Handsontable.helper.createObjectPropListener('foo', 'bar');
Handsontable.helper.createSpreadsheetData(0, 0);
Handsontable.helper.createSpreadsheetObjectData(0, 0);
Handsontable.helper.curry(() => {});
Handsontable.helper.curryRight(() => {});
Handsontable.helper.debounce(() => {}, 1);
Handsontable.helper.deepClone({key: 'foo'});
Handsontable.helper.deepExtend({key: 'foo'}, {key2: 'foo'});
Handsontable.helper.deepObjectSize({key: 'foo'});
Handsontable.helper.defineGetter({key: 'foo'}, 'key', 'bar', {});
Handsontable.helper.duckSchema({});
Handsontable.helper.endsWith('foo', 'bar');
Handsontable.helper.equalsIgnoreCase('foo', 'bar');
Handsontable.helper.extend({key: 'foo'}, {key2: 'foo'});
Handsontable.helper.extendArray([1, 'foo'], [true]);
Handsontable.helper.getComparisonFunction('en', {});
Handsontable.helper.getNormalizedDate('YYYY-mm-dd');
Handsontable.helper.getProperty({key: 'foo'}, 'key');
Handsontable.helper.getPrototypeOf({key: 'foo'});
Handsontable.helper.hasCaptionProblem();
Handsontable.helper.inherit({key: 'foo'}, {key2: 'bar'});
Handsontable.helper.isChrome();
Handsontable.helper.isCtrlKey(1);
Handsontable.helper.isDefined(1);
Handsontable.helper.isEmpty(1);
Handsontable.helper.isFunction(1);
Handsontable.helper.isIE8();
Handsontable.helper.isIE9();
Handsontable.helper.isKey(1, 'foo');
Handsontable.helper.isMetaKey(1);
Handsontable.helper.isMobileBrowser('foo');
Handsontable.helper.isNumeric(true);
Handsontable.helper.isObject('foo');
Handsontable.helper.isObjectEquals([1, 2, 3], {});
Handsontable.helper.isPercentValue('1');
Handsontable.helper.isPrintableChar(1);
Handsontable.helper.isSafari();
Handsontable.helper.isTouchSupported();
Handsontable.helper.isUndefined(null);
Handsontable.helper.isWebComponentSupportedNatively();
Handsontable.helper.mixin({}, {key: 'foo'}, {key2: 'bar'});
Handsontable.helper.objectEach({key: 'foo'}, (value, key, object) => {});
Handsontable.helper.padStart('foo', 1, 'bar');
Handsontable.helper.partial(() => {}, 1, 'foo', true);
Handsontable.helper.pipe(() => {}, () => {});
Handsontable.helper.pivot([1, 'foo', true]);
Handsontable.helper.randomString();
Handsontable.helper.rangeEach(0, 0, (index) => {});
Handsontable.helper.rangeEachReverse(0, 0, (index) => {});
Handsontable.helper.requestAnimationFrame(() => {});
Handsontable.helper.spreadsheetColumnIndex('foo');
Handsontable.helper.spreadsheetColumnLabel(1);
Handsontable.helper.startsWith('foo', 'bar');
Handsontable.helper.stringify(1);
Handsontable.helper.stripTags('<a>foo</a>');
Handsontable.helper.substitute('foo', {});
Handsontable.helper.throttle(() => {}, 1);
Handsontable.helper.throttleAfterHits(() => {}, 0, 1);
Handsontable.helper.to2dArray([1, 'foo', true]);
Handsontable.helper.toUpperCaseFirst('foo');
Handsontable.helper.translateRowsToColumns([1, 'foo', true]);
Handsontable.helper.valueAccordingPercent(1, 90);
}