Skip to content
This repository was archived by the owner on Mar 16, 2021. It is now read-only.

Commit 8d7aec3

Browse files
authored
Update of the available options, hooks and dependencies. (#112)
* Updated: inputs and their definitions. Added: ts-ignore to ce-settings-resolver, it's a temporary workaround, until we fix our handsontable.d.ts. #109 * Added: @ts-ingore to imports packages from paths. #109 * Added: tests. Updated: package-lock. #109 * Missing changes in peerDeps and travis config. #109
1 parent 5a3a9ca commit 8d7aec3

21 files changed

Lines changed: 1711 additions & 1261 deletions

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ language: node_js
33
sudo: false
44

55
node_js:
6-
- '6'
6+
- '8'
77

88
before_script:
99
- 'export CHROME_BIN=chromium-browser'

lib/ce/package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
{
22
"name": "@handsontable/angular",
3-
"version": "1.0.0-beta4",
43
"keywords": [],
54
"peerDependencies": {
6-
"handsontable": "^4.0.0",
5+
"handsontable": "^5.0.0",
76
"zone.js": "^0.8.19"
87
},
98
"ngPackage": {

lib/ce/src/hot-column.component.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,16 @@ import {
55
OnDestroy,
66
Input,
77
} from '@angular/core';
8-
98
import { HotTableComponent } from './hot-table.component';
109

1110
@Component({
1211
// tslint:disable-next-line
1312
selector: 'hot-column',
1413
template: '',
1514
})
16-
1715
export class HotColumnComponent implements OnInit, OnChanges, OnDestroy {
1816
private firstRun = true;
19-
17+
// handsontable column options
2018
@Input() allowEmpty: boolean;
2119
@Input() allowHtml: boolean;
2220
@Input() allowInvalid: boolean;
@@ -59,20 +57,20 @@ export class HotColumnComponent implements OnInit, OnChanges, OnDestroy {
5957

6058
constructor(private parentComponent: HotTableComponent) {}
6159

62-
ngOnInit() {
60+
ngOnInit(): void {
6361
this.firstRun = false;
6462
this.parentComponent.addColumn(this);
6563
}
6664

67-
ngOnChanges() {
65+
ngOnChanges(): void {
6866
if (this.firstRun) {
6967
return;
7068
}
7169

7270
this.parentComponent.onAfterColumnsChange();
7371
}
7472

75-
ngOnDestroy() {
73+
ngOnDestroy(): void {
7674
this.parentComponent.removeColumn(this);
7775
}
7876
}

lib/ce/src/hot-settings-resolver.service.ts

Lines changed: 10 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,17 @@
11
import { Injectable, SimpleChanges } from '@angular/core';
2-
3-
const AVAILABLE_OPTIONS: string[] = ['activeHeaderClassName', 'allowEmpty', 'allowHtml', 'allowInsertColumn', 'allowInsertRow',
4-
'allowInvalid', 'allowRemoveColumn', 'allowRemoveRow', 'autoColumnSize', 'autoComplete', 'autoRowSize',
5-
'autoWrapCol', 'autoWrapRow', 'cell', 'cells', 'checkedTemplate', 'className', 'colHeaders', 'columnHeaderHeight',
6-
'columns', 'columnSorting', 'colWidths', 'commentedCellClassName', 'comments', 'contextMenu', 'copyable',
7-
'copyPaste', 'correctFormat', 'currentColClassName', 'currentHeaderClassName', 'currentRowClassName',
8-
'customBorders', 'data', 'dataSchema', 'dateFormat', 'debug', 'defaultDate', 'disableVisualSelection',
9-
'dragToScroll', 'editor', 'enterBeginsEditing', 'enterMoves', 'fillHandle', 'filter', 'filteringCaseSensitive',
10-
'fixedColumnsLeft', 'fixedRowsTop', 'fragmentSelection', 'height', 'invalidCellClassName', 'label',
11-
'language', 'manualColumnFreeze', 'manualColumnMove', 'manualColumnResize', 'manualRowMove', 'manualRowResize',
12-
'maxCols', 'maxRows', 'mergeCells', 'minCols', 'minRows', 'minSpareCols', 'minSpareRows', 'multiSelect',
13-
'noWordWrapClassName', 'numericFormat', 'observeChanges', 'observeDOMVisibility', 'outsideClickDeselects',
14-
'persistentState', 'placeholder', 'placeholderCellClassName', 'preventOverflow', 'readOnly',
15-
'readOnlyCellClassName', 'renderAllRows', 'renderer', 'rowHeaders', 'rowHeaderWidth', 'rowHeights',
16-
'search', 'selectionMode', 'selectOptions', 'skipColumnOnPaste', 'sortByRelevance', 'sortFunction', 'sortIndicator',
17-
'source', 'startCols', 'startRows', 'stretchH', 'strict', 'tableClassName', 'tabMoves', 'title',
18-
'trimDropdown', 'trimWhitespace', 'type', 'uncheckedTemplate', 'undo', 'validator',
19-
'viewportColumnRenderingOffset', 'viewportRowRenderingOffset', 'visibleRows', 'width', 'wordWrap'];
20-
21-
const AVAILABLE_HOOKS: string[] = ['afterBeginEditing', 'afterCellMetaReset', 'afterChange',
22-
'afterChangesObserved', 'afterColumnMove', 'afterColumnResize', 'afterColumnSort',
23-
'afterContextMenuDefaultOptions', 'afterContextMenuHide', 'afterContextMenuShow', 'afterCopy',
24-
'afterCopyLimit', 'afterCreateCol', 'afterCreateRow', 'afterCut', 'afterDeselect', 'afterDestroy',
25-
'afterDocumentKeyDown', 'afterGetCellMeta', 'afterGetColHeader', 'afterGetColumnHeaderRenderers',
26-
'afterGetRowHeader', 'afterGetRowHeaderRenderers', 'afterInit', 'afterLanguageChange', 'afterListen',
27-
'afterLoadData', 'afterModifyTransformEnd', 'afterModifyTransformStart', 'afterMomentumScroll',
28-
'afterOnCellCornerDblClick', 'afterOnCellCornerMouseDown', 'afterOnCellMouseDown',
29-
'afterOnCellMouseOut', 'afterOnCellMouseOver', 'afterPaste', 'afterPluginsInitialized', 'afterRedo',
30-
'afterRemoveCellMeta', 'afterRemoveCol', 'afterRemoveRow', 'afterRender', 'afterRenderer',
31-
'afterRowMove', 'afterRowResize', 'afterScrollHorizontally', 'afterScrollVertically', 'afterSelection',
32-
'afterSelectionByProp', 'afterSelectionEnd', 'afterSelectionEndByProp', 'afterSetCellMeta',
33-
'afterSetDataAtCell', 'afterSetDataAtRowProp', 'afterUndo', 'afterUnlisten', 'afterUpdateSettings',
34-
'afterValidate', 'afterViewportColumnCalculatorOverride', 'afterViewportRowCalculatorOverride',
35-
'beforeAutofill', 'beforeAutofillInsidePopulate', 'beforeCellAlignment', 'beforeChange', 'beforeChangeRender',
36-
'beforeColumnMove', 'beforeColumnResize', 'beforeColumnSort', 'beforeContextMenuSetItems', 'beforeCopy',
37-
'beforeCreateCol', 'beforeCreateRow', 'beforeCut', 'beforeDrawBorders', 'beforeGetCellMeta', 'beforeInit',
38-
'beforeInitWalkontable', 'beforeKeyDown', 'beforeLanguageChange', 'beforeOnCellMouseDown', 'beforeOnCellMouseOut',
39-
'beforeOnCellMouseOver', 'beforePaste', 'beforeRedo', 'beforeRemoveCellMeta', 'beforeRemoveCol',
40-
'beforeRemoveRow', 'beforeRender', 'beforeRenderer', 'beforeRowMove', 'beforeRowResize', 'beforeSetRangeEnd',
41-
'beforeSetRangeStart', 'beforeStretchingColumnWidth', 'beforeTouchScroll', 'beforeUndo', 'beforeValidate',
42-
'beforeValueRender', 'construct', 'init', 'manualRowHeights', 'modifyAutofillRange', 'modifyCol',
43-
'modifyColHeader', 'modifyColumnHeaderHeight', 'modifyColWidth', 'modifyCopyableRange', 'modifyData',
44-
'modifyRow', 'modifyRowData', 'modifyRowHeader', 'modifyRowHeaderWidth', 'modifyRowHeight', 'modifyTransformEnd',
45-
'modifyTransformStart', 'persistentStateLoad', 'persistentStateReset', 'persistentStateSave',
46-
'skipLengthCache', 'unmodifyCol', 'unmodifyRow'];
2+
import * as Handsontable from 'handsontable';
3+
// @ts-ignore
4+
const AVAILABLE_OPTIONS: string[] = Object.keys(Handsontable.DefaultSettings.prototype);
5+
// @ts-ignore
6+
const AVAILABLE_HOOKS: string[] = Handsontable.hooks.getRegistered();
477

488
@Injectable()
499
export class HotSettingsResolver {
50-
51-
mergeSettings(component): object {
52-
const mergedSettings: object = {};
10+
mergeSettings(component): Handsontable.GridSettings {
11+
const mergedSettings: Handsontable.GridSettings = {};
5312
const options = AVAILABLE_HOOKS.concat(AVAILABLE_OPTIONS);
5413

55-
options.forEach((key) => {
14+
options.forEach(key => {
5615
let option;
5716

5817
if (typeof component['settings'] === 'object') {
@@ -81,8 +40,8 @@ export class HotSettingsResolver {
8140
return mergedSettings;
8241
}
8342

84-
prepareChanges(changes: SimpleChanges): object {
85-
const result: object = {};
43+
prepareChanges(changes: SimpleChanges): Handsontable.GridSettings {
44+
const result: Handsontable.GridSettings = {};
8645
const parameters: string[] = Object.keys(changes);
8746

8847
parameters.forEach((param) => {
Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { Injectable } from '@angular/core';
2-
32
import * as Handsontable from 'handsontable';
43

54
const instances = new Map<string, Handsontable>();
@@ -10,11 +9,11 @@ export class HotTableRegisterer {
109
return instances.get(id);
1110
}
1211

13-
public registerInstance(id: string, instance: Handsontable): void {
14-
instances.set(id, instance);
12+
public registerInstance(id: string, instance: Handsontable): Map<string, Handsontable> {
13+
return instances.set(id, instance);
1514
}
1615

17-
public removeInstance(id: string): void {
18-
instances.delete(id);
16+
public removeInstance(id: string): boolean {
17+
return instances.delete(id);
1918
}
2019
}

0 commit comments

Comments
 (0)