From cb1116a8e71704da942a9c4c367220bd654ca30d Mon Sep 17 00:00:00 2001 From: Fahri Gedik <53567152+fahrigedik@users.noreply.github.com> Date: Sat, 31 Jan 2026 13:21:07 +0300 Subject: [PATCH] Refactor to use Angular signals and input() API Refactors extensible form, table, and related components to use Angular's signal-based input() API instead of @Input and ngOnChanges. Updates internal state management to use signals and effects, improves type safety with ReadonlyPropData, and updates templates to use new signal-based accessors. Removes legacy OnChanges logic and adapts utility and directive code to the new reactive paradigm. --- .../extensible-form-prop.component.html | 54 +++--- .../extensible-form-prop.component.ts | 108 ++++++----- .../extensible-form.component.html | 4 +- .../extensible-form.component.ts | 32 ++-- .../extensible-table.component.html | 18 +- .../extensible-table.component.ts | 180 +++++++++--------- .../grid-actions/grid-actions.component.ts | 5 +- .../src/lib/directives/prop-data.directive.ts | 41 ++-- .../extensible/src/lib/models/actions.ts | 5 +- .../extensible/src/lib/models/props.ts | 27 ++- .../src/lib/utils/form-props.util.ts | 10 +- .../page/src/page-part.directive.ts | 45 +++-- 12 files changed, 281 insertions(+), 248 deletions(-) diff --git a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form-prop.component.html b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form-prop.component.html index 60af79b0ec..4daf6fb854 100644 --- a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form-prop.component.html +++ b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form-prop.component.html @@ -1,34 +1,34 @@ - - @switch (getComponent(prop)) { + + @switch (getComponent(prop())) { @case ('template') { - + } }
- @switch (getComponent(prop)) { + @switch (getComponent(prop())) { @case ('input') { - } @case ('hidden') { - + } @case ('checkbox') {
-
} @case ('select') { - - +
} @case ('date') { - } @case ('time') { - + } @case ('dateTime') { - + } @case ('textarea') { - } @case ('passwordinputgroup') {
- +