diff --git a/packages/angular-material/src/library/module.ts b/packages/angular-material/src/library/module.ts index 519322408..15866aeb2 100644 --- a/packages/angular-material/src/library/module.ts +++ b/packages/angular-material/src/library/module.ts @@ -57,7 +57,7 @@ import { LabelRenderer } from './other/label.renderer'; import { JsonFormsDetailComponent } from './other/master-detail/detail'; import { MasterListComponent } from './other/master-detail/master'; import { ObjectControlRenderer } from './other/object.renderer'; -import { TableRenderer } from './other/table.renderer'; +import { TableRenderer, GetProps } from './other/table.renderer'; import { CategorizationTabLayoutRenderer } from './layouts/categorization-layout.renderer'; import { GroupLayoutRenderer } from './layouts/group-layout.renderer'; import { HorizontalLayoutRenderer } from './layouts/horizontal-layout.renderer'; @@ -110,6 +110,7 @@ import { LayoutChildrenRenderPropsPipe } from './layouts'; TableRenderer, ArrayLayoutRenderer, LayoutChildrenRenderPropsPipe, + GetProps, ], exports: [ CommonModule, diff --git a/packages/angular-material/src/library/other/table.renderer.ts b/packages/angular-material/src/library/other/table.renderer.ts index 8be5d06c3..0e3589c6b 100644 --- a/packages/angular-material/src/library/other/table.renderer.ts +++ b/packages/angular-material/src/library/other/table.renderer.ts @@ -23,7 +23,7 @@ THE SOFTWARE. */ import startCase from 'lodash/startCase'; -import { Component, OnInit } from '@angular/core'; +import { Component, OnInit, Pipe, PipeTransform } from '@angular/core'; import { JsonFormsAngularService, JsonFormsArrayControl, @@ -126,7 +126,7 @@ import { {{ item.header }} @@ -162,14 +162,6 @@ export class TableRenderer extends JsonFormsArrayControl implements OnInit { } this.translations = props.translations; } - getProps(index: number, props: OwnPropsOfRenderer): OwnPropsOfRenderer { - const rowPath = Paths.compose(props.path, `${index}`); - return { - schema: props.schema, - uischema: props.uischema, - path: rowPath, - }; - } remove(index: number): void { this.removeItems(this.propsPath, [index])(); @@ -265,3 +257,15 @@ export const controlWithoutLabel = (scope: string): ControlElement => ({ scope: scope, label: false, }); + +@Pipe({ name: 'getProps' }) +export class GetProps implements PipeTransform { + transform(index: number, props: OwnPropsOfRenderer) { + const rowPath = Paths.compose(props.path, `${index}`); + return { + schema: props.schema, + uischema: props.uischema, + path: rowPath, + }; + } +} diff --git a/packages/angular-material/test/table-control.spec.ts b/packages/angular-material/test/table-control.spec.ts index b350bdf1c..e4274e2eb 100644 --- a/packages/angular-material/test/table-control.spec.ts +++ b/packages/angular-material/test/table-control.spec.ts @@ -35,6 +35,7 @@ import { JsonFormsAngularService, JsonFormsModule } from '@jsonforms/angular'; import { ControlElement } from '@jsonforms/core'; import { TextControlRenderer, TextControlRendererTester } from '../src'; import { + GetProps, TableRenderer, TableRendererTester, } from '../src/library/other/table.renderer'; @@ -139,7 +140,7 @@ describe('Table', () => { beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [TableRenderer, TextControlRenderer], + declarations: [TableRenderer, TextControlRenderer, GetProps], imports: [ CommonModule, JsonFormsModule,