Refactor results grid (#2147)

* got a basic ui

* working on message panel

* done with messages moving to grids

* formatting

* working on multiple grids

* it does work

* styling

* formatting

* formatting

* fixed reset methods

* moved for scrollable

* formatting

* fixing scrolling

* making progress

* formatting

* fixed scrolling

* fix horizontal scrolling and size

* fix columns for tables

* integrate view item

* implementing heightmap scrolling

* add context menu and fix scrolling

* formatting

* revert slickgrid

* add actions to message pane

* formatting

* formatting

* bottom padding for tables

* minimized and maximized table actions

* add timestamp

* added batch start message  with selection

* updating

* formatting

* formatting

* fix execution time

* formatting

* fix problems

* fix rendering issues, add icons

* formatting

* formatting

* added commit change

* fix performance, message scrolling, etc

* formatting

* formatting

* fixing performance

* formatting

* update package

* tring to fix bugs

* reworking

* the problem is the 1st sash is always the first sash visible

* remove resizing from grid panels

* add missing files

* trying to get edit to work

* fix editdata

* formatting

* update angular2-slickgrid
This commit is contained in:
Anthony Dresser
2018-08-23 12:32:47 -07:00
committed by GitHub
parent 84da9d289b
commit befa34790f
42 changed files with 3475 additions and 1413 deletions

View File

@@ -1,39 +1,3 @@
// Generated by typings
// Source: node_modules/angular2-slickgrid/out/js/gridsync.service.d.ts
declare module '~angular2-slickgrid/out/js/gridsync.service' {
import { Observable } from 'rxjs/Rx';
import { SelectionModel } from '~angular2-slickgrid/out/js/selectionModel';
export class GridSyncService {
columnMinWidthPX: number;
private _scrollLeftPX;
private _scrollBarWidthPX;
private _columnWidthPXs;
private _rowNumberColumnWidthPX;
private _updated;
private _typeDropdownOffset;
private _selectionModel;
private _initialColumnWidthPXsOnResize;
private _isGridReadOnly;
initialColumnResize(): void;
resizeColumn(index: number, deltaWidthPX: number): void;
openTypeDropdown(columnIndex: number): void;
private setColumnWidthPX(index, widthPX);
underlyingSelectionModel: any;
readonly updated: Observable<string>;
readonly typeDropdownOffset: Observable<[number, number]>;
scrollLeftPX: number;
scrollBarWidthPX: number;
columnWidthPXs: number[];
rowNumberColumnWidthPX: number;
readonly selectionModel: SelectionModel;
isGridReadOnly: boolean;
private notifyUpdates(propertyName);
}
}
declare module 'angular2-slickgrid/out/js/gridsync.service' {
export * from '~angular2-slickgrid/out/js/gridsync.service';
}
// Generated by typings
// Source: node_modules/angular2-slickgrid/out/js/interfaces.d.ts
declare module '~angular2-slickgrid/out/js/interfaces' {
@@ -57,7 +21,6 @@ export interface IObservableCollection<T> {
at(index: number): T;
getRange(start: number, end: number): T[];
setCollectionChangedCallback(callback: (change: CollectionChange, startIndex: number, count: number) => void): void;
resetWindowsAroundIndex(index: number): void;
}
export class CancellationToken {
private _isCanceled;
@@ -66,27 +29,6 @@ export class CancellationToken {
readonly isCanceled: boolean;
readonly canceled: Observable<any>;
}
export enum FieldType {
String = 0,
Boolean = 1,
Integer = 2,
Decimal = 3,
Date = 4,
Unknown = 5,
}
export interface IColumnDefinition {
id?: string;
name: string;
type: FieldType;
asyncPostRender?: (cellRef: string, row: number, dataContext: JSON, colDef: any) => void;
formatter?: (row: number, cell: any, value: any, columnDef: any, dataContext: any) => string;
isEditable?: boolean;
}
export interface ISlickColumn<T> extends Slick.Column<T> {
isEditable?: boolean;
}
export interface IGridColumnDefinition {
id: string;
type: number;
@@ -95,6 +37,9 @@ export interface IGridDataRow {
row?: number;
values: any[];
}
export interface ISlickColumn<T> extends Slick.Column<T> {
isEditable?: boolean;
}
}
declare module 'angular2-slickgrid/out/js/interfaces' {
export * from '~angular2-slickgrid/out/js/interfaces';
@@ -109,13 +54,13 @@ export class SelectionModel implements ISlickSelectionModel {
private _handler;
private _onSelectedRangesChanged;
private _slickRangeFactory;
constructor(_rowSelectionModel: ISlickSelectionModel, _handler: ISlickEventHandler, _onSelectedRangesChanged: ISlickEvent, _slickRangeFactory: (fromRow: number, fromCell: number, toRow: number, toCell: number) => ISlickRange);
readonly range: ISlickRange[];
constructor(_rowSelectionModel: ISlickSelectionModel, _handler: ISlickEventHandler, _onSelectedRangesChanged: ISlickEvent, _slickRangeFactory: (fromRow: number, fromCell: number, toRow: number, toCell: number) => Slick.Range);
readonly range: Slick.Range[];
readonly onSelectedRangesChanged: ISlickEvent;
init(grid: ISlickGrid): void;
destroy(): void;
setSelectedRanges(ranges: ISlickRange[]): void;
getSelectedRanges(): ISlickRange[];
setSelectedRanges(ranges: Slick.Range[]): void;
getSelectedRanges(): Slick.Range[];
changeSelectedRanges(selections: ISelectionRange[]): void;
toggleSingleColumnSelection(columnId: string): void;
setSingleColumnSelection(columnId: string): void;
@@ -132,27 +77,21 @@ export class SelectionModel implements ISlickSelectionModel {
private updateSelectedRanges(ranges);
}
export interface ISlickSelectionModel {
range: ISlickRange[];
range: Slick.Range[];
onSelectedRangesChanged: any;
init(grid: any): void;
destroy(): void;
setSelectedRanges(ranges: ISlickRange[]): void;
getSelectedRanges(): ISlickRange[];
setSelectedRanges(ranges: Slick.Range[]): void;
getSelectedRanges(): Slick.Range[];
}
export interface ISlickEventHandler {
subscribe(event: any, handler: any): void;
unsubscribeAll(): void;
}
export interface ISlickEvent {
notify(eventData: ISlickRange[]): void;
notify(eventData: Slick.Range[]): void;
subscribe(handler: (e: any, args: any) => void): void;
}
export interface ISlickRange {
fromCell: number;
fromRow: number;
toCell: number;
toRow: number;
}
export interface ISlickGrid {
getActiveCellNode(): any;
getCanvasNode(): any;
@@ -171,12 +110,11 @@ export * from '~angular2-slickgrid/out/js/selectionModel';
declare module '~angular2-slickgrid/out/js/slickGrid' {
import { OnChanges, OnInit, OnDestroy, SimpleChange, EventEmitter, AfterViewInit } from '@angular/core';
import { Observable } from 'rxjs/Rx';
import { IObservableCollection, IGridDataRow, IColumnDefinition } from '~angular2-slickgrid/out/js/interfaces';
import { ISlickRange } from '~angular2-slickgrid/out/js/selectionModel';
import { IObservableCollection, IGridDataRow, ISlickColumn } from '~angular2-slickgrid/out/js/interfaces';
export function getOverridableTextEditorClass(grid: SlickGrid): any;
export class SlickGrid implements OnChanges, OnInit, OnDestroy, AfterViewInit {
private _el;
private _gridSyncService;
columnDefinitions: IColumnDefinition[];
columnDefinitions: ISlickColumn<any>[];
dataRows: IObservableCollection<IGridDataRow>;
resized: Observable<any>;
highlightedCells: {
@@ -187,7 +125,6 @@ export class SlickGrid implements OnChanges, OnInit, OnDestroy, AfterViewInit {
contextColumns: string[];
columnsLoading: string[];
showHeader: boolean;
showDataTypeIcon: boolean;
enableColumnReorder: boolean;
enableAsyncPostRender: boolean;
selectionModel: string | Slick.SelectionModel<any, any>;
@@ -195,45 +132,23 @@ export class SlickGrid implements OnChanges, OnInit, OnDestroy, AfterViewInit {
enableEditing: boolean;
topRowNumber: number;
overrideCellFn: (rowNumber, columnId, value?, data?) => string;
isColumnEditable: (column: number) => boolean;
isCellEditValid: (row: number, column: number, newValue: any) => boolean;
private _rowHeight;
loadFinished: EventEmitter<void>;
editingFinished: EventEmitter<any>;
contextMenu: EventEmitter<any>;
topRowNumberChange: EventEmitter<number>;
activeCellChanged: EventEmitter<{
row: number;
column: number;
}>;
cellEditBegin: EventEmitter<{
row: number;
column: number;
}>;
cellEditExit: EventEmitter<{
row: number;
column: number;
newValue: any;
}>;
rowEditBegin: EventEmitter<{
row: number;
}>;
rowEditExit: EventEmitter<{
row: number;
}>;
onContextMenu: EventEmitter<Slick.OnContextMenuEventArgs<any>>;
onScroll: EventEmitter<Slick.OnScrollEventArgs<any>>;
onActiveCellChanged: EventEmitter<Slick.OnActiveCellChangedEventArgs<any>>;
onBeforeEditCell: EventEmitter<Slick.OnBeforeEditCellEventArgs<any>>;
onCellChange: EventEmitter<Slick.OnCellChangeEventArgs<any>>;
onFocus(): void;
rowHeight: number;
private _rowHeight;
private _grid;
private _gridColumns;
private _columnNameToIndex;
private _gridData;
private _resizeSubscription;
private _gridSyncSubscription;
private _topRow;
private _leftPx;
private _activeEditingRow;
private _activeEditingRowHasChanges;
constructor(_el: any, _gridSyncService: any);
constructor(_el: any);
ngOnChanges(changes: {
[propName: string]: SimpleChange;
}): void;
@@ -245,27 +160,20 @@ export class SlickGrid implements OnChanges, OnInit, OnDestroy, AfterViewInit {
readonly onSelectedRowsChanged: Slick.Event<Slick.OnSelectedRowsChangedEventArgs<any>>;
getSelectedRows(): number[];
getColumnIndex(name: string): number;
getSelectedRanges(): ISlickRange[];
getSelectedRanges(): Slick.Range[];
registerPlugin(plugin: Slick.Plugin<any> | string): void;
setActive(): void;
selection: ISlickRange[] | boolean;
subscribeToContextMenu(): void;
selection: Slick.Range[] | boolean;
private initGrid();
private changeEditSession(enabled);
private handleEditorCellChange(rowNumber);
private static getDataWithSchema(data, columns);
private onResize();
private invalidateRange(start, end);
private getColumnEditor;
private getColumnEditor(column);
private getFormatter;
private subscribeToScroll();
private subscribeToCellChanged();
private subscribeToBeforeEditCell();
private subscribeToActiveCellChanged();
private updateColumnWidths();
private setupEvents();
private updateSchema();
private getImagePathForDataType(type);
private setCallbackOnDataRowsChanged();
readonly activeCell: Slick.Cell;
private renderGridDataRowsRange(startIndex, count);
}
}
@@ -302,7 +210,6 @@ export * from '~angular2-slickgrid/out/js/virtualizedCollection';
// Generated by typings
// Source: node_modules/angular2-slickgrid/out/index.d.ts
declare module '~angular2-slickgrid/out/index' {
export * from '~angular2-slickgrid/out/js/gridsync.service';
export * from '~angular2-slickgrid/out/js/interfaces';
export * from '~angular2-slickgrid/out/js/selectionModel';
export * from '~angular2-slickgrid/out/js/slickGrid';