From 4e31b1896c7501e2f6af059d0c4c2b447815f02a Mon Sep 17 00:00:00 2001 From: ghiscoding Date: Sat, 26 May 2018 15:32:46 -0400 Subject: [PATCH] deprecate(service): delete GridExtraUtil & move function to GridService --- .../src/aurelia-slickgrid/index.ts | 9 ++----- .../models/aureliaGridInstance.interface.ts | 4 +-- .../services/grid.service.ts | 26 ++++++++++++++++++- .../services/gridExtraUtils.ts | 13 ---------- .../src/aurelia-slickgrid/services/index.ts | 3 +-- .../src/examples/slickgrid/example10.ts | 2 +- .../src/examples/slickgrid/example11.ts | 1 - .../src/examples/slickgrid/example3.ts | 9 +------ 8 files changed, 32 insertions(+), 35 deletions(-) delete mode 100644 aurelia-slickgrid/src/aurelia-slickgrid/services/gridExtraUtils.ts diff --git a/aurelia-slickgrid/src/aurelia-slickgrid/index.ts b/aurelia-slickgrid/src/aurelia-slickgrid/index.ts index a9d8c8689..a35bb3b8c 100644 --- a/aurelia-slickgrid/src/aurelia-slickgrid/index.ts +++ b/aurelia-slickgrid/src/aurelia-slickgrid/index.ts @@ -14,7 +14,6 @@ import { GraphqlService, GridEventService, GridService, - GridExtraUtils, GridStateService, GridOdataService, GroupingAndColspanService, @@ -35,12 +34,8 @@ export * from './editors/index'; export * from './filter-conditions/index'; export * from './filters/index'; -// export some of the Services -export { - GridExtraUtils, - GraphqlService, - GridOdataService -} from './services/index'; +// export the Backend Services +export { GraphqlService, GridOdataService } from './services/index'; export function configure(aurelia: any, callback: any) { aurelia.globalResources(PLATFORM.moduleName('./aurelia-slickgrid')); diff --git a/aurelia-slickgrid/src/aurelia-slickgrid/models/aureliaGridInstance.interface.ts b/aurelia-slickgrid/src/aurelia-slickgrid/models/aureliaGridInstance.interface.ts index a564bbe2c..cf9bde855 100644 --- a/aurelia-slickgrid/src/aurelia-slickgrid/models/aureliaGridInstance.interface.ts +++ b/aurelia-slickgrid/src/aurelia-slickgrid/models/aureliaGridInstance.interface.ts @@ -3,7 +3,7 @@ import { ControlAndPluginService, ExportService, FilterService, - GridExtraService, + GridService, GridEventService, GridStateService, GroupingAndColspanService, @@ -16,7 +16,7 @@ export interface AureliaGridInstance { pluginService: ControlAndPluginService; exportService: ExportService; filterService: FilterService; - gridService: GridExtraService; + gridService: GridService; gridEventService: GridEventService; gridStateService: GridStateService; groupingService: GroupingAndColspanService; diff --git a/aurelia-slickgrid/src/aurelia-slickgrid/services/grid.service.ts b/aurelia-slickgrid/src/aurelia-slickgrid/services/grid.service.ts index 96d53bbba..dd6eb9cb3 100644 --- a/aurelia-slickgrid/src/aurelia-slickgrid/services/grid.service.ts +++ b/aurelia-slickgrid/src/aurelia-slickgrid/services/grid.service.ts @@ -1,4 +1,4 @@ -import { Column, GridOption } from './../models/index'; +import { CellArgs, Column, GridOption, OnEventArgs } from './../models/index'; import * as $ from 'jquery'; // using external non-typed js libraries @@ -23,6 +23,30 @@ export class GridService { this._dataView = dataView; } + /** + * From a SlickGrid Event triggered get the Column Definition and Item Data Context + * + * For example the SlickGrid onClick will return cell arguments when subscribing to it. + * From these cellArgs, we want to get the Column Definition and Item Data + * @param cell event args + * @return object with columnDef and dataContext + */ + getColumnFromEventArguments(args: CellArgs): OnEventArgs { + if (!args || !args.grid || !args.grid.getColumns || !args.grid.getDataItem) { + throw new Error('To get the column definition and data, we need to have these arguments passed as objects (row, cell, grid)'); + } + + return { + row: args.row, + cell: args.cell, + columnDef: args.grid.getColumns()[args.cell], + dataContext: args.grid.getDataItem(args.row), + dataView: this._dataView, + grid: this._grid, + gridDefinition: this._gridOptions + }; + } + getDataItemByRowNumber(rowNumber: number) { if (!this._grid || typeof this._grid.getDataItem !== 'function') { throw new Error('We could not find SlickGrid Grid object'); diff --git a/aurelia-slickgrid/src/aurelia-slickgrid/services/gridExtraUtils.ts b/aurelia-slickgrid/src/aurelia-slickgrid/services/gridExtraUtils.ts deleted file mode 100644 index b7da5ec09..000000000 --- a/aurelia-slickgrid/src/aurelia-slickgrid/services/gridExtraUtils.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { CellArgs } from './../models/cellArgs.interface'; - -export class GridExtraUtils { - static getColumnDefinitionAndData(args: CellArgs) { - if (!args || !args.grid || !args.grid.getColumns || !args.grid.getDataItem) { - throw new Error('To get the column definition and data, we need to have these arguments passed (row, cell, grid)'); - } - return { - columnDef: args.grid.getColumns()[args.cell], - dataContext: args.grid.getDataItem(args.row) - }; - } -} diff --git a/aurelia-slickgrid/src/aurelia-slickgrid/services/index.ts b/aurelia-slickgrid/src/aurelia-slickgrid/services/index.ts index 73e9c9489..e8f1d17f3 100644 --- a/aurelia-slickgrid/src/aurelia-slickgrid/services/index.ts +++ b/aurelia-slickgrid/src/aurelia-slickgrid/services/index.ts @@ -4,8 +4,7 @@ export * from './export.service'; export * from './filter.service'; export * from './graphql.service'; export * from './gridEvent.service'; -export * from './gridExtra.service'; -export * from './gridExtraUtils'; +export * from './grid.service'; export * from './gridState.service'; export * from './grid-odata.service'; export * from './groupingAndColspan.service'; diff --git a/aurelia-slickgrid/src/examples/slickgrid/example10.ts b/aurelia-slickgrid/src/examples/slickgrid/example10.ts index 9df48a8a2..1f195f77a 100644 --- a/aurelia-slickgrid/src/examples/slickgrid/example10.ts +++ b/aurelia-slickgrid/src/examples/slickgrid/example10.ts @@ -1,5 +1,5 @@ import { autoinject, bindable } from 'aurelia-framework'; -import { AureliaGridInstance, Column, FieldType, Formatter, Formatters, GridExtraUtils, GridOption } from '../../aurelia-slickgrid'; +import { AureliaGridInstance, Column, FieldType, Formatter, Formatters, GridOption } from '../../aurelia-slickgrid'; @autoinject() export class Example2 { diff --git a/aurelia-slickgrid/src/examples/slickgrid/example11.ts b/aurelia-slickgrid/src/examples/slickgrid/example11.ts index 910724354..dbcd5c3b6 100644 --- a/aurelia-slickgrid/src/examples/slickgrid/example11.ts +++ b/aurelia-slickgrid/src/examples/slickgrid/example11.ts @@ -6,7 +6,6 @@ import { FieldType, Formatter, Formatters, - GridExtraUtils, GridOption, OnEventArgs } from '../../aurelia-slickgrid'; diff --git a/aurelia-slickgrid/src/examples/slickgrid/example3.ts b/aurelia-slickgrid/src/examples/slickgrid/example3.ts index d2573dc39..2b7eff9f4 100644 --- a/aurelia-slickgrid/src/examples/slickgrid/example3.ts +++ b/aurelia-slickgrid/src/examples/slickgrid/example3.ts @@ -11,7 +11,6 @@ import { Editors, FieldType, Formatters, - GridExtraUtils, GridOption, OnEventArgs, OperatorType @@ -197,12 +196,6 @@ export class Example3 { }, editable: true, enableCellNavigation: true, - enableCheckboxSelector: false, - rowSelectionOptions: { - // True (Single Selection), False (Multiple Selections) - // Default to True when no "rowSelectionOptions" provided - selectActiveRow: true - }, enableExcelCopyBuffer: true, editCommandHandler: (item, column, editCommand) => { this._commandQueue.push(editCommand); @@ -261,7 +254,7 @@ export class Example3 { // You could also subscribe to grid.onClick // Note that if you had already setup "onCellClick" in the column definition, you cannot use grid.onClick grid.onClick.subscribe((e, args) => { - const column = GridExtraUtils.getColumnDefinitionAndData(args); + const column = this.aureliaGrid.gridService.getColumnFromEventArguments(args); console.log('onClick', args, column); if (column.columnDef.id === 'edit') { this.alertWarning = `open a modal window to edit: ${column.dataContext.title}`;