From f28dfe15b9fe38046223fd9af26e434ed921dad4 Mon Sep 17 00:00:00 2001 From: Fahri Gedik <53567152+fahrigedik@users.noreply.github.com> Date: Thu, 15 Jan 2026 16:04:39 +0300 Subject: [PATCH] Refactor row detail context and typings in table component Introduced a RowDetailContext interface for row detail templates to improve type safety and clarity. Updated rowDetailTemplate and related methods to use the new context type. Also added documentation regarding deprecated ::ng-deep usage in styles. --- .../extensible-table/extensible-table.component.ts | 10 ++++------ .../components/extensible/src/lib/models/row-detail.ts | 4 ++++ .../packages/components/extensible/src/public-api.ts | 1 + 3 files changed, 9 insertions(+), 6 deletions(-) create mode 100644 npm/ng-packs/packages/components/extensible/src/lib/models/row-detail.ts diff --git a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.ts b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.ts index 491e4f5a38..75253b1f02 100644 --- a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.ts +++ b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.ts @@ -56,6 +56,7 @@ import { } from '../../tokens/extensions.token'; import { GridActionsComponent } from '../grid-actions/grid-actions.component'; import { ExtensibleTableRowDetailComponent } from './extensible-table-row-detail'; +import { RowDetailContext } from '../../models/row-detail'; const DEFAULT_ACTIONS_COLUMN_WIDTH = 150; @@ -136,8 +137,7 @@ export class ExtensibleTableComponent implements OnChanges, AfterViewIn @Output() loadMore = new EventEmitter(); @Input() tableHeight: number; - // Row detail configuration (supports both direct template and child component) - @Input() rowDetailTemplate?: TemplateRef<{ row: R; expanded: boolean }>; + @Input() rowDetailTemplate?: TemplateRef>; @Input() rowDetailHeight: string | number = '100%'; @Output() rowDetailToggle = new EventEmitter(); @@ -146,13 +146,11 @@ export class ExtensibleTableComponent implements OnChanges, AfterViewIn @ViewChild('table', { static: false }) table!: DatatableComponent; - /** Gets the effective row detail template (from component or direct input) */ - get effectiveRowDetailTemplate(): TemplateRef | undefined { + protected get effectiveRowDetailTemplate(): TemplateRef> | undefined { return this.rowDetailComponent?.template() ?? this.rowDetailTemplate; } - /** Gets the effective row detail height */ - get effectiveRowDetailHeight(): string | number { + protected get effectiveRowDetailHeight(): string | number { return this.rowDetailComponent?.rowHeight() ?? this.rowDetailHeight; } diff --git a/npm/ng-packs/packages/components/extensible/src/lib/models/row-detail.ts b/npm/ng-packs/packages/components/extensible/src/lib/models/row-detail.ts new file mode 100644 index 0000000000..c344e9add7 --- /dev/null +++ b/npm/ng-packs/packages/components/extensible/src/lib/models/row-detail.ts @@ -0,0 +1,4 @@ +export interface RowDetailContext { + row: R; + expanded: boolean; +} diff --git a/npm/ng-packs/packages/components/extensible/src/public-api.ts b/npm/ng-packs/packages/components/extensible/src/public-api.ts index 5d06088a02..6d53f8ba9a 100644 --- a/npm/ng-packs/packages/components/extensible/src/public-api.ts +++ b/npm/ng-packs/packages/components/extensible/src/public-api.ts @@ -69,4 +69,5 @@ export * from './lib/utils/form-props.util'; export * from './lib/utils/props.util'; export * from './lib/utils/state.util'; export * from './lib/utils/model.utils'; +export * from './lib/models/row-detail'; export * from './lib/extensible.module';