From 90fa8875cd2896b2e64318b5abcb8bda75cedc4b Mon Sep 17 00:00:00 2001 From: howdyAnkit Date: Mon, 8 Jan 2024 17:07:51 +0530 Subject: [PATCH 1/4] Fix memory leak issue --- .../src/other/table.renderer.ts | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/packages/angular-material/src/other/table.renderer.ts b/packages/angular-material/src/other/table.renderer.ts index 8be5d06c3a..0e3589c6bd 100644 --- a/packages/angular-material/src/other/table.renderer.ts +++ b/packages/angular-material/src/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, + }; + } +} From b9529d80f1e6b83fd039b65e0ed8b06b1eb5a4d7 Mon Sep 17 00:00:00 2001 From: howdyAnkit Pal Date: Fri, 26 Jan 2024 12:00:40 +0530 Subject: [PATCH 2/4] include pipe in module --- packages/angular-material/src/library/module.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/angular-material/src/library/module.ts b/packages/angular-material/src/library/module.ts index 5193224089..6225695458 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'; @@ -108,6 +108,7 @@ import { LayoutChildrenRenderPropsPipe } from './layouts'; ObjectControlRenderer, AutocompleteControlRenderer, TableRenderer, + GetProps, ArrayLayoutRenderer, LayoutChildrenRenderPropsPipe, ], From cffd6aa78706b4035b9530628012af5b7f94d66d Mon Sep 17 00:00:00 2001 From: howdyAnkit Pal Date: Sat, 24 Feb 2024 18:20:33 +0530 Subject: [PATCH 3/4] import pipe in to module --- packages/angular-material/src/library/module.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/angular-material/src/library/module.ts b/packages/angular-material/src/library/module.ts index 6225695458..1c127f8de2 100644 --- a/packages/angular-material/src/library/module.ts +++ b/packages/angular-material/src/library/module.ts @@ -108,9 +108,9 @@ import { LayoutChildrenRenderPropsPipe } from './layouts'; ObjectControlRenderer, AutocompleteControlRenderer, TableRenderer, - GetProps, ArrayLayoutRenderer, LayoutChildrenRenderPropsPipe, + GetProps ], exports: [ CommonModule, From b7153958028a4a0954b33dd557ec01dc06e5d8bd Mon Sep 17 00:00:00 2001 From: Stefan Dirix Date: Mon, 25 Mar 2024 17:24:00 +0100 Subject: [PATCH 4/4] fix linter and tests --- packages/angular-material/src/library/module.ts | 2 +- packages/angular-material/test/table-control.spec.ts | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/angular-material/src/library/module.ts b/packages/angular-material/src/library/module.ts index 1c127f8de2..15866aeb2a 100644 --- a/packages/angular-material/src/library/module.ts +++ b/packages/angular-material/src/library/module.ts @@ -110,7 +110,7 @@ import { LayoutChildrenRenderPropsPipe } from './layouts'; TableRenderer, ArrayLayoutRenderer, LayoutChildrenRenderPropsPipe, - GetProps + GetProps, ], exports: [ CommonModule, diff --git a/packages/angular-material/test/table-control.spec.ts b/packages/angular-material/test/table-control.spec.ts index b350bdf1cd..e4274e2eb9 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,