diff --git a/out/js/slickGrid.d.ts b/out/js/slickGrid.d.ts index 3745999..951723b 100644 --- a/out/js/slickGrid.d.ts +++ b/out/js/slickGrid.d.ts @@ -24,7 +24,7 @@ export declare class SlickGrid implements OnChanges, OnInit, OnDestroy, AfterVie overrideCellFn: (rowNumber, columnId, value?, data?) => string; isCellEditValid: (row: number, column: number, newValue: any) => boolean; loadFinished: EventEmitter; - onContextMenu: EventEmitter>; + onContextMenu: EventEmitter; onScroll: EventEmitter>; onActiveCellChanged: EventEmitter>; onBeforeEditCell: EventEmitter>; diff --git a/out/js/slickGrid.js b/out/js/slickGrid.js index e3a96d4..556caf2 100644 --- a/out/js/slickGrid.js +++ b/out/js/slickGrid.js @@ -422,7 +422,7 @@ let SlickGrid = SlickGrid_1 = class SlickGrid { this.onActiveCellChanged.emit(args); }); this._grid.onContextMenu.subscribe((e, args) => { - this.onContextMenu.emit(args); + this.onContextMenu.emit(e); }); } updateSchema() { diff --git a/out/js/slickGrid.js.map b/out/js/slickGrid.js.map index ade35af..7fc7ffa 100644 --- a/out/js/slickGrid.js.map +++ b/out/js/slickGrid.js.map @@ -1 +1 @@ -{"version":3,"sources":["js/slickGrid.ts"],"names":[],"mappings":"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","file":"slickGrid.js","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport {\n Component, Input, Output, Inject, forwardRef, OnChanges, OnInit, OnDestroy, ElementRef, SimpleChange, EventEmitter,\n ViewEncapsulation, HostListener, AfterViewInit\n} from '@angular/core';\nimport { Observable, Subscription } from 'rxjs/Rx';\nimport { IObservableCollection, CollectionChange, IGridDataRow, ISlickColumn } from './interfaces';\n\ndeclare let Slick;\n\n////////// Interfaces /////////////////////////////////////////////////////////\n\ninterface ISlickGridData {\n // https://github.com/mleibman/SlickGrid/wiki/DataView\n getLength(): number;\n getItem(index: number): any;\n getRange(start: number, end: number): any; // only available in the forked SlickGrid\n getItemMetadata(index: number): any;\n}\n\n////////// Text Editors ///////////////////////////////////////////////////////\n\nexport function getOverridableTextEditorClass(grid: SlickGrid): any {\n class OverridableTextEditor {\n private _textEditor: any;\n\n constructor(private _args: any) {\n this._textEditor = new Slick.Editors.Text(_args);\n }\n\n destroy(): void {\n this._textEditor.destroy();\n };\n\n focus(): void {\n this._textEditor.focus();\n };\n\n getValue(): string {\n return this._textEditor.getValue();\n };\n\n setValue(val): void {\n this._textEditor.setValue(val);\n };\n\n loadValue(item, rowNumber): void {\n if (grid.overrideCellFn) {\n let overrideValue = grid.overrideCellFn(rowNumber, this._args.column.id, item[this._args.column.id]);\n if (overrideValue !== undefined) {\n item[this._args.column.id] = overrideValue;\n }\n }\n this._textEditor.loadValue(item);\n };\n\n serializeValue(): string {\n return this._textEditor.serializeValue();\n };\n\n applyValue(item, state): void {\n let activeRow = grid.activeCell.row;\n let currentRow = grid.dataRows.at(activeRow);\n let colIndex = grid.getColumnIndex(this._args.column.name);\n let dataLength: number = grid.dataRows.getLength();\n\n // If this is not the \"new row\" at the very bottom\n if (activeRow !== dataLength) {\n currentRow.values[colIndex] = state;\n this._textEditor.applyValue(item, state);\n }\n };\n\n isValueChanged(): boolean {\n return this._textEditor.isValueChanged();\n };\n\n validate(): any {\n let activeRow = grid.activeCell.row;\n let result: any = { valid: true, msg: undefined };\n let colIndex: number = grid.getColumnIndex(this._args.column.name);\n let newValue: any = this._textEditor.getValue();\n\n // TODO: It would be nice if we could support the isCellEditValid as a promise \n if (grid.isCellEditValid && !grid.isCellEditValid(activeRow, colIndex, newValue)) {\n result.valid = false;\n }\n\n return result;\n };\n }\n\n return OverridableTextEditor;\n}\n\n////////// Implementation /////////////////////////////////////////////////////\n\n@Component({\n selector: 'slick-grid',\n template: '
',\n encapsulation: ViewEncapsulation.None\n})\nexport class SlickGrid implements OnChanges, OnInit, OnDestroy, AfterViewInit {\n\n @Input() columnDefinitions: ISlickColumn[];\n @Input() dataRows: IObservableCollection;\n @Input() resized: Observable;\n @Input() highlightedCells: { row: number, column: number }[] = [];\n @Input() blurredColumns: string[] = [];\n @Input() contextColumns: string[] = [];\n @Input() columnsLoading: string[] = [];\n @Input() showHeader: boolean = true;\n @Input() enableColumnReorder: boolean = false;\n @Input() enableAsyncPostRender: boolean = false;\n @Input() selectionModel: string | Slick.SelectionModel = '';\n @Input() plugins: Array> = [];\n @Input() enableEditing: boolean = false;\n @Input() topRowNumber: number;\n\n @Input() overrideCellFn: (rowNumber, columnId, value?, data?) => string;\n @Input() isCellEditValid: (row: number, column: number, newValue: any) => boolean;\n\n @Output() loadFinished: EventEmitter = new EventEmitter();\n\n // SLickGrid Events\n @Output() onContextMenu: EventEmitter> = new EventEmitter>();\n @Output() onScroll: EventEmitter> = new EventEmitter>();\n @Output() onActiveCellChanged: EventEmitter> = new EventEmitter>();\n @Output() onBeforeEditCell: EventEmitter> = new EventEmitter>();\n @Output() onCellChange: EventEmitter> = new EventEmitter>();\n\n @HostListener('focus')\n onFocus(): void {\n if (this._grid) {\n this._grid.focus();\n }\n }\n\n @Input() public set rowHeight(val: number) {\n this._rowHeight = val;\n if (this._grid) {\n this._grid.setOptions({ rowHeight: this.rowHeight });\n }\n }\n\n public get rowHeight(): number {\n return this._rowHeight;\n }\n\n private _rowHeight = 29;\n private _grid: Slick.Grid;\n private _gridColumns: ISlickColumn[];\n private _columnNameToIndex: any;\n private _gridData: ISlickGridData;\n private _resizeSubscription: Subscription;\n private _gridSyncSubscription: Subscription;\n\n ////////// Constructor and Angular functions //////////////////////////////\n\n constructor(@Inject(forwardRef(() => ElementRef)) private _el) {\n this._gridData = {\n getLength: (): number => {\n return this.dataRows && this._gridColumns ? this.dataRows.getLength() : 0;\n },\n getItem: (index): any => {\n return !this.dataRows ? undefined : SlickGrid.getDataWithSchema(this.dataRows.at(index), this._gridColumns);\n },\n getRange: (start, end): any => {\n return !this.dataRows ? undefined : this.dataRows.getRange(start, end).map(d => {\n return SlickGrid.getDataWithSchema(d, this._gridColumns);\n });\n },\n getItemMetadata: undefined\n };\n }\n\n ngOnChanges(changes: { [propName: string]: SimpleChange }): void {\n let columnDefinitionChanges = changes['columnDefinitions'];\n let activeCell = this._grid ? this._grid.getActiveCell() : undefined;\n let hasGridStructureChanges = false;\n let wasEditing = this._grid ? !!this._grid.getCellEditor() : false;\n\n if (columnDefinitionChanges\n && !_.isEqual(columnDefinitionChanges.previousValue, columnDefinitionChanges.currentValue)) {\n this.updateSchema();\n if (!this._grid) {\n this.initGrid();\n } else {\n this._grid.resetActiveCell();\n this._grid.setColumns(this._gridColumns);\n }\n hasGridStructureChanges = true;\n\n if (!columnDefinitionChanges.currentValue || columnDefinitionChanges.currentValue.length === 0) {\n activeCell = undefined;\n }\n if (activeCell) {\n let columnThatContainedActiveCell = columnDefinitionChanges.previousValue[Math.max(activeCell.cell - 1, 0)];\n let newActiveColumnIndex = columnThatContainedActiveCell\n ? columnDefinitionChanges.currentValue.findIndex(c => c.id === columnThatContainedActiveCell.id)\n : -1;\n activeCell.cell = newActiveColumnIndex !== -1 ? newActiveColumnIndex + 1 : 0;\n }\n }\n\n if (changes['dataRows']\n || (changes['highlightedCells'] && !_.isEqual(changes['highlightedCells'].currentValue, changes['highlightedCells'].previousValue))\n || (changes['blurredColumns'] && !_.isEqual(changes['blurredColumns'].currentValue, changes['blurredColumns'].previousValue))\n || (changes['columnsLoading'] && !_.isEqual(changes['columnsLoading'].currentValue, changes['columnsLoading'].previousValue))) {\n this.setCallbackOnDataRowsChanged();\n this._grid.updateRowCount();\n this._grid.setColumns(this._grid.getColumns());\n this._grid.invalidateAllRows();\n this._grid.render();\n hasGridStructureChanges = true;\n }\n\n if (hasGridStructureChanges) {\n if (activeCell) {\n this._grid.setActiveCell(activeCell.row, activeCell.cell);\n } else {\n this._grid.resetActiveCell();\n }\n }\n\n if (wasEditing && hasGridStructureChanges) {\n this._grid.editActiveCell();\n }\n }\n\n ngOnInit(): void {\n // ngOnInit() will be called *after* the first time ngOnChanges() is called\n // so, grid must be there already\n if (this.topRowNumber === undefined) {\n this.topRowNumber = 0;\n }\n if (this.dataRows && this.dataRows.getLength() > 0) {\n this._grid.scrollRowToTop(this.topRowNumber);\n }\n\n if (this.resized) {\n // Re-rendering the grid is expensive. Throttle so we only do so every 100ms.\n this.resized.throttleTime(100)\n .subscribe(() => this.onResize());\n }\n\n // subscribe to slick events\n // https://github.com/mleibman/SlickGrid/wiki/Grid-Events\n this.setupEvents();\n }\n\n ngAfterViewInit(): void {\n this.loadFinished.emit();\n }\n\n ngOnDestroy(): void {\n if (this._resizeSubscription !== undefined) {\n this._resizeSubscription.unsubscribe();\n }\n if (this._gridSyncSubscription !== undefined) {\n this._gridSyncSubscription.unsubscribe();\n }\n }\n\n ////////// Public functions - Add public API functions here //////////////\n\n // Enables editing on the grid\n public enterEditSession(): void {\n this.changeEditSession(true);\n }\n\n // Disables editing on the grid\n public endEditSession(): void {\n this.changeEditSession(false);\n }\n\n // Called whenever the grid's selected rows change \n // Event args: { rows: number[] }\n public get onSelectedRowsChanged(): Slick.Event> {\n return this._grid.onSelectedRowsChanged;\n }\n\n // Returns an array of row indices corresponding to the currently selected rows.\n public getSelectedRows(): number[] {\n return this._grid.getSelectedRows();\n }\n\n // Gets the column index of the column with the given name\n public getColumnIndex(name: string): number {\n return this._columnNameToIndex[name];\n }\n\n // Gets a ISlickRange corresponding to the current selection on the grid\n public getSelectedRanges(): Slick.Range[] {\n let selectionModel = this._grid.getSelectionModel();\n if (selectionModel && selectionModel.getSelectedRanges) {\n return selectionModel.getSelectedRanges();\n }\n }\n\n // Registers a Slick plugin with the given name\n public registerPlugin(plugin: Slick.Plugin | string): void {\n if (typeof plugin === 'object') {\n this._grid.registerPlugin(plugin);\n } else if (typeof plugin === 'string' && Slick[plugin] && typeof Slick[plugin] === 'function') {\n this._grid.registerPlugin(new Slick[plugin]);\n } else {\n console.error(`Tried to register plugin ${plugin}, but none was found to be attached to Slick Grid or it was not a function.\n Please extend the Slick with the plugin as a function before registering`);\n }\n }\n\n // Set this grid to be the active grid\n public setActive(): void {\n this._grid.setActiveCell(0, 1);\n }\n\n // Set the grid's selection\n public set selection(ranges: Slick.Range[] | boolean) {\n if (typeof ranges === 'boolean') {\n if (ranges) {\n let rows = [];\n for (let i = 0; i < this._grid.getDataLength(); i++) {\n rows.push(i);\n }\n this._grid.setSelectedRows(rows);\n } else {\n this._grid.setSelectedRows([]);\n }\n } else {\n let selectionModel = this._grid.getSelectionModel();\n if (selectionModel && selectionModel.setSelectedRanges) {\n selectionModel.setSelectedRanges(ranges);\n }\n }\n }\n\n ////////// Private functions //////////////////////////////////////////////\n\n private initGrid(): void {\n // https://github.com/mleibman/SlickGrid/wiki/Grid-Options\n let options = {\n enableCellNavigation: true,\n enableColumnReorder: this.enableColumnReorder,\n renderRowWithRange: true,\n showHeader: this.showHeader,\n rowHeight: this.rowHeight,\n defaultColumnWidth: 120,\n editable: this.enableEditing,\n autoEdit: this.enableEditing,\n enableAddRow: false, // TODO change when we support enableAddRow\n enableAsyncPostRender: this.enableAsyncPostRender,\n editorFactory: {\n getEditor: (column: ISlickColumn) => this.getColumnEditor(column)\n },\n formatterFactory: {\n getFormatter: this.getFormatter\n }\n };\n\n this._grid = new Slick.Grid(\n this._el.nativeElement.getElementsByClassName('grid')[0],\n this._gridData,\n this._gridColumns,\n options);\n\n if (this.selectionModel) {\n if (typeof this.selectionModel === 'object') {\n this._grid.setSelectionModel(this.selectionModel);\n } else if (typeof this.selectionModel === 'string' && Slick[this.selectionModel] && typeof Slick[this.selectionModel] === 'function') {\n this._grid.setSelectionModel(new Slick[this.selectionModel]());\n } else {\n console.error(`Tried to register selection model ${this.selectionModel}, \n but none was found to be attached to Slick Grid or it was not a function.\n Please extend the Slick namespace with the selection model as a function before registering`);\n }\n }\n\n for (let plugin of this.plugins) {\n this.registerPlugin(plugin);\n }\n\n this._columnNameToIndex = {};\n for (let i = 0; i < this._gridColumns.length; i++) {\n this._columnNameToIndex[this._gridColumns[i].name] = i;\n }\n\n this.onResize();\n }\n\n private changeEditSession(enabled: boolean): void {\n this.enableEditing = enabled;\n let options: any = this._grid.getOptions();\n options.editable = enabled;\n options.enableAddRow = false; // TODO change to \" options.enableAddRow = false;\" when we support enableAddRow\n this._grid.setOptions(options);\n }\n\n private static getDataWithSchema(data: IGridDataRow, columns: Slick.Column[]): any {\n let dataWithSchema = {};\n for (let i = 0; i < columns.length; i++) {\n dataWithSchema[columns[i].field] = data.values[i];\n }\n\n return dataWithSchema;\n }\n\n private onResize(): void {\n if (this._grid !== undefined) {\n // this will make sure the grid header and body to be re-rendered\n this._grid.resizeCanvas();\n }\n }\n\n private invalidateRange(start: number, end: number): void {\n let refreshedRows = _.range(start, end);\n this._grid.invalidateRows(refreshedRows, true);\n this._grid.render();\n }\n\n private getColumnEditor(column: ISlickColumn): any {\n if (column.isEditable === false || typeof column.isEditable === 'undefined') {\n return undefined;\n }\n\n let columnId = column.id;\n let isColumnLoading = this.columnsLoading && this.columnsLoading.indexOf(columnId) !== -1;\n let canEditColumn = columnId !== undefined && !isColumnLoading;\n if (canEditColumn) {\n return getOverridableTextEditorClass(this);\n }\n return undefined;\n };\n\n private getFormatter = (column: any): any => {\n return (row, cell, value, columnDef, dataContext) => {\n let columnId = cell > 0 && this.columnDefinitions.length > cell - 1 ? this.columnDefinitions[cell - 1].id : undefined;\n if (columnId) {\n let isHighlighted = this.highlightedCells && !!this.highlightedCells.find(c => c.row === row && c.column + 1 === cell);\n let isColumnLoading = this.columnsLoading && this.columnsLoading.indexOf(columnId) !== -1;\n let isShadowed = this.blurredColumns && !!this.blurredColumns.find(c => c === columnId);\n let isContext = this.contextColumns && !!this.contextColumns.find(c => c === columnId);\n let overrideValue = this.overrideCellFn && this.overrideCellFn(row, columnId, value, dataContext);\n\n let valueToDisplay = (value + '').replace(/&/g, '&').replace(//g, '>');\n let cellClasses = 'grid-cell-value-container';\n\n /* tslint:disable:no-null-keyword */\n let valueMissing = value === undefined || value === null;\n /* tslint:disable:no-null-keyword */\n let isOverridden = overrideValue !== undefined && overrideValue !== null;\n\n if (valueMissing && !isOverridden) {\n cellClasses += ' missing-value';\n }\n\n if (isColumnLoading === true && !isOverridden) {\n cellClasses += ' loading-cell';\n valueToDisplay = '';\n }\n\n if (isOverridden) {\n cellClasses += ' override-cell';\n valueToDisplay = overrideValue;\n }\n\n if (isContext) {\n cellClasses += ' context';\n }\n\n if (isHighlighted === true) {\n cellClasses += ' highlighted';\n }\n\n if (isShadowed && !isHighlighted && !isOverridden) {\n cellClasses += ' blurred';\n }\n\n return '' + valueToDisplay + '';\n }\n\n };\n };\n\n private setupEvents(): void {\n this._grid.onScroll.subscribe((e, args) => {\n this.onScroll.emit(args);\n });\n this._grid.onCellChange.subscribe((e, args) => {\n this.onCellChange.emit(args);\n });\n this._grid.onBeforeEditCell.subscribe((e, args) => {\n this.onBeforeEditCell.emit(args);\n });\n // Subscribe to all active cell changes to be able to catch when we tab to the header on the next row\n this._grid.onActiveCellChanged.subscribe((e, args) => {\n // Emit that we've changed active cells\n this.onActiveCellChanged.emit(args);\n });\n this._grid.onContextMenu.subscribe((e, args) => {\n this.onContextMenu.emit(args);\n });\n }\n\n private updateSchema(): void {\n if (!this.columnDefinitions) {\n return;\n }\n\n this._gridColumns = this.columnDefinitions;\n }\n\n private setCallbackOnDataRowsChanged(): void {\n if (this.dataRows) {\n // We must wait until we get the first set of dataRows before we enable editing or slickgrid will complain\n if (this.enableEditing) {\n this.enterEditSession();\n }\n\n this.dataRows.setCollectionChangedCallback((change: CollectionChange, startIndex: number, count: number) => {\n this.renderGridDataRowsRange(startIndex, count);\n });\n }\n }\n\n public get activeCell(): Slick.Cell {\n return this._grid.getActiveCell();\n }\n\n private renderGridDataRowsRange(startIndex: number, count: number): void {\n let editor = this._grid.getCellEditor();\n let oldValue = editor ? editor.getValue() : undefined;\n let wasValueChanged = editor ? editor.isValueChanged() : false;\n this.invalidateRange(startIndex, startIndex + count);\n let activeCell = this.activeCell;\n if (editor && activeCell.row >= startIndex && activeCell.row < startIndex + count) {\n if (oldValue && wasValueChanged) {\n editor.setValue(oldValue);\n }\n }\n }\n\n /* andresse: commented out 11/1/2016 due to minification issues\n private get finishGridEditingFn(): (e: any, args: any) => void {\n if (this._finishGridEditingFn === undefined) {\n this._finishGridEditingFn = ((e: any, args: any) => {\n if (e.ctrlKey === true\n && e.keyCode === 13\n && this.editableColumnIds\n && this.editableColumnIds.find(id => id === args.columnDef.id)) {\n // pressed [Ctrl + Enter] in the editing area\n this.editingFinished.next(undefined);\n }\n }).bind(this);\n }\n\n return this._finishGridEditingFn;\n }\n */\n}\n"]} \ No newline at end of file +{"version":3,"sources":["js/slickGrid.ts"],"names":[],"mappings":"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","file":"slickGrid.js","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport {\n Component, Input, Output, Inject, forwardRef, OnChanges, OnInit, OnDestroy, ElementRef, SimpleChange, EventEmitter,\n ViewEncapsulation, HostListener, AfterViewInit\n} from '@angular/core';\nimport { Observable, Subscription } from 'rxjs/Rx';\nimport { IObservableCollection, CollectionChange, IGridDataRow, ISlickColumn } from './interfaces';\n\ndeclare let Slick;\n\n////////// Interfaces /////////////////////////////////////////////////////////\n\ninterface ISlickGridData {\n // https://github.com/mleibman/SlickGrid/wiki/DataView\n getLength(): number;\n getItem(index: number): any;\n getRange(start: number, end: number): any; // only available in the forked SlickGrid\n getItemMetadata(index: number): any;\n}\n\n////////// Text Editors ///////////////////////////////////////////////////////\n\nexport function getOverridableTextEditorClass(grid: SlickGrid): any {\n class OverridableTextEditor {\n private _textEditor: any;\n\n constructor(private _args: any) {\n this._textEditor = new Slick.Editors.Text(_args);\n }\n\n destroy(): void {\n this._textEditor.destroy();\n };\n\n focus(): void {\n this._textEditor.focus();\n };\n\n getValue(): string {\n return this._textEditor.getValue();\n };\n\n setValue(val): void {\n this._textEditor.setValue(val);\n };\n\n loadValue(item, rowNumber): void {\n if (grid.overrideCellFn) {\n let overrideValue = grid.overrideCellFn(rowNumber, this._args.column.id, item[this._args.column.id]);\n if (overrideValue !== undefined) {\n item[this._args.column.id] = overrideValue;\n }\n }\n this._textEditor.loadValue(item);\n };\n\n serializeValue(): string {\n return this._textEditor.serializeValue();\n };\n\n applyValue(item, state): void {\n let activeRow = grid.activeCell.row;\n let currentRow = grid.dataRows.at(activeRow);\n let colIndex = grid.getColumnIndex(this._args.column.name);\n let dataLength: number = grid.dataRows.getLength();\n\n // If this is not the \"new row\" at the very bottom\n if (activeRow !== dataLength) {\n currentRow.values[colIndex] = state;\n this._textEditor.applyValue(item, state);\n }\n };\n\n isValueChanged(): boolean {\n return this._textEditor.isValueChanged();\n };\n\n validate(): any {\n let activeRow = grid.activeCell.row;\n let result: any = { valid: true, msg: undefined };\n let colIndex: number = grid.getColumnIndex(this._args.column.name);\n let newValue: any = this._textEditor.getValue();\n\n // TODO: It would be nice if we could support the isCellEditValid as a promise \n if (grid.isCellEditValid && !grid.isCellEditValid(activeRow, colIndex, newValue)) {\n result.valid = false;\n }\n\n return result;\n };\n }\n\n return OverridableTextEditor;\n}\n\n////////// Implementation /////////////////////////////////////////////////////\n\n@Component({\n selector: 'slick-grid',\n template: '
',\n encapsulation: ViewEncapsulation.None\n})\nexport class SlickGrid implements OnChanges, OnInit, OnDestroy, AfterViewInit {\n\n @Input() columnDefinitions: ISlickColumn[];\n @Input() dataRows: IObservableCollection;\n @Input() resized: Observable;\n @Input() highlightedCells: { row: number, column: number }[] = [];\n @Input() blurredColumns: string[] = [];\n @Input() contextColumns: string[] = [];\n @Input() columnsLoading: string[] = [];\n @Input() showHeader: boolean = true;\n @Input() enableColumnReorder: boolean = false;\n @Input() enableAsyncPostRender: boolean = false;\n @Input() selectionModel: string | Slick.SelectionModel = '';\n @Input() plugins: Array> = [];\n @Input() enableEditing: boolean = false;\n @Input() topRowNumber: number;\n\n @Input() overrideCellFn: (rowNumber, columnId, value?, data?) => string;\n @Input() isCellEditValid: (row: number, column: number, newValue: any) => boolean;\n\n @Output() loadFinished: EventEmitter = new EventEmitter();\n\n // SLickGrid Events\n @Output() onContextMenu: EventEmitter = new EventEmitter();\n @Output() onScroll: EventEmitter> = new EventEmitter>();\n @Output() onActiveCellChanged: EventEmitter> = new EventEmitter>();\n @Output() onBeforeEditCell: EventEmitter> = new EventEmitter>();\n @Output() onCellChange: EventEmitter> = new EventEmitter>();\n\n @HostListener('focus')\n onFocus(): void {\n if (this._grid) {\n this._grid.focus();\n }\n }\n\n @Input() public set rowHeight(val: number) {\n this._rowHeight = val;\n if (this._grid) {\n this._grid.setOptions({ rowHeight: this.rowHeight });\n }\n }\n\n public get rowHeight(): number {\n return this._rowHeight;\n }\n\n private _rowHeight = 29;\n private _grid: Slick.Grid;\n private _gridColumns: ISlickColumn[];\n private _columnNameToIndex: any;\n private _gridData: ISlickGridData;\n private _resizeSubscription: Subscription;\n private _gridSyncSubscription: Subscription;\n\n ////////// Constructor and Angular functions //////////////////////////////\n\n constructor(@Inject(forwardRef(() => ElementRef)) private _el) {\n this._gridData = {\n getLength: (): number => {\n return this.dataRows && this._gridColumns ? this.dataRows.getLength() : 0;\n },\n getItem: (index): any => {\n return !this.dataRows ? undefined : SlickGrid.getDataWithSchema(this.dataRows.at(index), this._gridColumns);\n },\n getRange: (start, end): any => {\n return !this.dataRows ? undefined : this.dataRows.getRange(start, end).map(d => {\n return SlickGrid.getDataWithSchema(d, this._gridColumns);\n });\n },\n getItemMetadata: undefined\n };\n }\n\n ngOnChanges(changes: { [propName: string]: SimpleChange }): void {\n let columnDefinitionChanges = changes['columnDefinitions'];\n let activeCell = this._grid ? this._grid.getActiveCell() : undefined;\n let hasGridStructureChanges = false;\n let wasEditing = this._grid ? !!this._grid.getCellEditor() : false;\n\n if (columnDefinitionChanges\n && !_.isEqual(columnDefinitionChanges.previousValue, columnDefinitionChanges.currentValue)) {\n this.updateSchema();\n if (!this._grid) {\n this.initGrid();\n } else {\n this._grid.resetActiveCell();\n this._grid.setColumns(this._gridColumns);\n }\n hasGridStructureChanges = true;\n\n if (!columnDefinitionChanges.currentValue || columnDefinitionChanges.currentValue.length === 0) {\n activeCell = undefined;\n }\n if (activeCell) {\n let columnThatContainedActiveCell = columnDefinitionChanges.previousValue[Math.max(activeCell.cell - 1, 0)];\n let newActiveColumnIndex = columnThatContainedActiveCell\n ? columnDefinitionChanges.currentValue.findIndex(c => c.id === columnThatContainedActiveCell.id)\n : -1;\n activeCell.cell = newActiveColumnIndex !== -1 ? newActiveColumnIndex + 1 : 0;\n }\n }\n\n if (changes['dataRows']\n || (changes['highlightedCells'] && !_.isEqual(changes['highlightedCells'].currentValue, changes['highlightedCells'].previousValue))\n || (changes['blurredColumns'] && !_.isEqual(changes['blurredColumns'].currentValue, changes['blurredColumns'].previousValue))\n || (changes['columnsLoading'] && !_.isEqual(changes['columnsLoading'].currentValue, changes['columnsLoading'].previousValue))) {\n this.setCallbackOnDataRowsChanged();\n this._grid.updateRowCount();\n this._grid.setColumns(this._grid.getColumns());\n this._grid.invalidateAllRows();\n this._grid.render();\n hasGridStructureChanges = true;\n }\n\n if (hasGridStructureChanges) {\n if (activeCell) {\n this._grid.setActiveCell(activeCell.row, activeCell.cell);\n } else {\n this._grid.resetActiveCell();\n }\n }\n\n if (wasEditing && hasGridStructureChanges) {\n this._grid.editActiveCell();\n }\n }\n\n ngOnInit(): void {\n // ngOnInit() will be called *after* the first time ngOnChanges() is called\n // so, grid must be there already\n if (this.topRowNumber === undefined) {\n this.topRowNumber = 0;\n }\n if (this.dataRows && this.dataRows.getLength() > 0) {\n this._grid.scrollRowToTop(this.topRowNumber);\n }\n\n if (this.resized) {\n // Re-rendering the grid is expensive. Throttle so we only do so every 100ms.\n this.resized.throttleTime(100)\n .subscribe(() => this.onResize());\n }\n\n // subscribe to slick events\n // https://github.com/mleibman/SlickGrid/wiki/Grid-Events\n this.setupEvents();\n }\n\n ngAfterViewInit(): void {\n this.loadFinished.emit();\n }\n\n ngOnDestroy(): void {\n if (this._resizeSubscription !== undefined) {\n this._resizeSubscription.unsubscribe();\n }\n if (this._gridSyncSubscription !== undefined) {\n this._gridSyncSubscription.unsubscribe();\n }\n }\n\n ////////// Public functions - Add public API functions here //////////////\n\n // Enables editing on the grid\n public enterEditSession(): void {\n this.changeEditSession(true);\n }\n\n // Disables editing on the grid\n public endEditSession(): void {\n this.changeEditSession(false);\n }\n\n // Called whenever the grid's selected rows change \n // Event args: { rows: number[] }\n public get onSelectedRowsChanged(): Slick.Event> {\n return this._grid.onSelectedRowsChanged;\n }\n\n // Returns an array of row indices corresponding to the currently selected rows.\n public getSelectedRows(): number[] {\n return this._grid.getSelectedRows();\n }\n\n // Gets the column index of the column with the given name\n public getColumnIndex(name: string): number {\n return this._columnNameToIndex[name];\n }\n\n // Gets a ISlickRange corresponding to the current selection on the grid\n public getSelectedRanges(): Slick.Range[] {\n let selectionModel = this._grid.getSelectionModel();\n if (selectionModel && selectionModel.getSelectedRanges) {\n return selectionModel.getSelectedRanges();\n }\n }\n\n // Registers a Slick plugin with the given name\n public registerPlugin(plugin: Slick.Plugin | string): void {\n if (typeof plugin === 'object') {\n this._grid.registerPlugin(plugin);\n } else if (typeof plugin === 'string' && Slick[plugin] && typeof Slick[plugin] === 'function') {\n this._grid.registerPlugin(new Slick[plugin]);\n } else {\n console.error(`Tried to register plugin ${plugin}, but none was found to be attached to Slick Grid or it was not a function.\n Please extend the Slick with the plugin as a function before registering`);\n }\n }\n\n // Set this grid to be the active grid\n public setActive(): void {\n this._grid.setActiveCell(0, 1);\n }\n\n // Set the grid's selection\n public set selection(ranges: Slick.Range[] | boolean) {\n if (typeof ranges === 'boolean') {\n if (ranges) {\n let rows = [];\n for (let i = 0; i < this._grid.getDataLength(); i++) {\n rows.push(i);\n }\n this._grid.setSelectedRows(rows);\n } else {\n this._grid.setSelectedRows([]);\n }\n } else {\n let selectionModel = this._grid.getSelectionModel();\n if (selectionModel && selectionModel.setSelectedRanges) {\n selectionModel.setSelectedRanges(ranges);\n }\n }\n }\n\n ////////// Private functions //////////////////////////////////////////////\n\n private initGrid(): void {\n // https://github.com/mleibman/SlickGrid/wiki/Grid-Options\n let options = {\n enableCellNavigation: true,\n enableColumnReorder: this.enableColumnReorder,\n renderRowWithRange: true,\n showHeader: this.showHeader,\n rowHeight: this.rowHeight,\n defaultColumnWidth: 120,\n editable: this.enableEditing,\n autoEdit: this.enableEditing,\n enableAddRow: false, // TODO change when we support enableAddRow\n enableAsyncPostRender: this.enableAsyncPostRender,\n editorFactory: {\n getEditor: (column: ISlickColumn) => this.getColumnEditor(column)\n },\n formatterFactory: {\n getFormatter: this.getFormatter\n }\n };\n\n this._grid = new Slick.Grid(\n this._el.nativeElement.getElementsByClassName('grid')[0],\n this._gridData,\n this._gridColumns,\n options);\n\n if (this.selectionModel) {\n if (typeof this.selectionModel === 'object') {\n this._grid.setSelectionModel(this.selectionModel);\n } else if (typeof this.selectionModel === 'string' && Slick[this.selectionModel] && typeof Slick[this.selectionModel] === 'function') {\n this._grid.setSelectionModel(new Slick[this.selectionModel]());\n } else {\n console.error(`Tried to register selection model ${this.selectionModel}, \n but none was found to be attached to Slick Grid or it was not a function.\n Please extend the Slick namespace with the selection model as a function before registering`);\n }\n }\n\n for (let plugin of this.plugins) {\n this.registerPlugin(plugin);\n }\n\n this._columnNameToIndex = {};\n for (let i = 0; i < this._gridColumns.length; i++) {\n this._columnNameToIndex[this._gridColumns[i].name] = i;\n }\n\n this.onResize();\n }\n\n private changeEditSession(enabled: boolean): void {\n this.enableEditing = enabled;\n let options: any = this._grid.getOptions();\n options.editable = enabled;\n options.enableAddRow = false; // TODO change to \" options.enableAddRow = false;\" when we support enableAddRow\n this._grid.setOptions(options);\n }\n\n private static getDataWithSchema(data: IGridDataRow, columns: Slick.Column[]): any {\n let dataWithSchema = {};\n for (let i = 0; i < columns.length; i++) {\n dataWithSchema[columns[i].field] = data.values[i];\n }\n\n return dataWithSchema;\n }\n\n private onResize(): void {\n if (this._grid !== undefined) {\n // this will make sure the grid header and body to be re-rendered\n this._grid.resizeCanvas();\n }\n }\n\n private invalidateRange(start: number, end: number): void {\n let refreshedRows = _.range(start, end);\n this._grid.invalidateRows(refreshedRows, true);\n this._grid.render();\n }\n\n private getColumnEditor(column: ISlickColumn): any {\n if (column.isEditable === false || typeof column.isEditable === 'undefined') {\n return undefined;\n }\n\n let columnId = column.id;\n let isColumnLoading = this.columnsLoading && this.columnsLoading.indexOf(columnId) !== -1;\n let canEditColumn = columnId !== undefined && !isColumnLoading;\n if (canEditColumn) {\n return getOverridableTextEditorClass(this);\n }\n return undefined;\n };\n\n private getFormatter = (column: any): any => {\n return (row, cell, value, columnDef, dataContext) => {\n let columnId = cell > 0 && this.columnDefinitions.length > cell - 1 ? this.columnDefinitions[cell - 1].id : undefined;\n if (columnId) {\n let isHighlighted = this.highlightedCells && !!this.highlightedCells.find(c => c.row === row && c.column + 1 === cell);\n let isColumnLoading = this.columnsLoading && this.columnsLoading.indexOf(columnId) !== -1;\n let isShadowed = this.blurredColumns && !!this.blurredColumns.find(c => c === columnId);\n let isContext = this.contextColumns && !!this.contextColumns.find(c => c === columnId);\n let overrideValue = this.overrideCellFn && this.overrideCellFn(row, columnId, value, dataContext);\n\n let valueToDisplay = (value + '').replace(/&/g, '&').replace(//g, '>');\n let cellClasses = 'grid-cell-value-container';\n\n /* tslint:disable:no-null-keyword */\n let valueMissing = value === undefined || value === null;\n /* tslint:disable:no-null-keyword */\n let isOverridden = overrideValue !== undefined && overrideValue !== null;\n\n if (valueMissing && !isOverridden) {\n cellClasses += ' missing-value';\n }\n\n if (isColumnLoading === true && !isOverridden) {\n cellClasses += ' loading-cell';\n valueToDisplay = '';\n }\n\n if (isOverridden) {\n cellClasses += ' override-cell';\n valueToDisplay = overrideValue;\n }\n\n if (isContext) {\n cellClasses += ' context';\n }\n\n if (isHighlighted === true) {\n cellClasses += ' highlighted';\n }\n\n if (isShadowed && !isHighlighted && !isOverridden) {\n cellClasses += ' blurred';\n }\n\n return '' + valueToDisplay + '';\n }\n\n };\n };\n\n private setupEvents(): void {\n this._grid.onScroll.subscribe((e, args) => {\n this.onScroll.emit(args);\n });\n this._grid.onCellChange.subscribe((e, args) => {\n this.onCellChange.emit(args);\n });\n this._grid.onBeforeEditCell.subscribe((e, args) => {\n this.onBeforeEditCell.emit(args);\n });\n // Subscribe to all active cell changes to be able to catch when we tab to the header on the next row\n this._grid.onActiveCellChanged.subscribe((e, args) => {\n // Emit that we've changed active cells\n this.onActiveCellChanged.emit(args);\n });\n this._grid.onContextMenu.subscribe((e, args) => {\n this.onContextMenu.emit(e);\n });\n }\n\n private updateSchema(): void {\n if (!this.columnDefinitions) {\n return;\n }\n\n this._gridColumns = this.columnDefinitions;\n }\n\n private setCallbackOnDataRowsChanged(): void {\n if (this.dataRows) {\n // We must wait until we get the first set of dataRows before we enable editing or slickgrid will complain\n if (this.enableEditing) {\n this.enterEditSession();\n }\n\n this.dataRows.setCollectionChangedCallback((change: CollectionChange, startIndex: number, count: number) => {\n this.renderGridDataRowsRange(startIndex, count);\n });\n }\n }\n\n public get activeCell(): Slick.Cell {\n return this._grid.getActiveCell();\n }\n\n private renderGridDataRowsRange(startIndex: number, count: number): void {\n let editor = this._grid.getCellEditor();\n let oldValue = editor ? editor.getValue() : undefined;\n let wasValueChanged = editor ? editor.isValueChanged() : false;\n this.invalidateRange(startIndex, startIndex + count);\n let activeCell = this.activeCell;\n if (editor && activeCell.row >= startIndex && activeCell.row < startIndex + count) {\n if (oldValue && wasValueChanged) {\n editor.setValue(oldValue);\n }\n }\n }\n\n /* andresse: commented out 11/1/2016 due to minification issues\n private get finishGridEditingFn(): (e: any, args: any) => void {\n if (this._finishGridEditingFn === undefined) {\n this._finishGridEditingFn = ((e: any, args: any) => {\n if (e.ctrlKey === true\n && e.keyCode === 13\n && this.editableColumnIds\n && this.editableColumnIds.find(id => id === args.columnDef.id)) {\n // pressed [Ctrl + Enter] in the editing area\n this.editingFinished.next(undefined);\n }\n }).bind(this);\n }\n\n return this._finishGridEditingFn;\n }\n */\n}\n"]} \ No newline at end of file