diff --git a/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.html b/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.html
index a81444e56c..257221add9 100644
--- a/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.html
+++ b/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.html
@@ -29,8 +29,8 @@
@for (feature of features[group.name]; track feature.id || i; let i = $index) {
@let provider = feature.provider.name;
- @let isFeatureDisabled =
- provider !== providerName && provider !== defaultProviderName;
+ @let isFeatureDisabled = !feature.parentName ? isParentDisabled(feature.name, group.name, provider) :
+ (provider !== providerName && provider !== defaultProviderName);
@switch (feature.valueType?.name) {
diff --git a/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts b/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts
index 85ee18fb78..bfadbf65fb 100644
--- a/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts
+++ b/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts
@@ -184,6 +184,22 @@ export class FeatureManagementComponent
}
}
+ isParentDisabled(parentName: string, groupName: string, provider: string): boolean {
+ const children = this.features[groupName]?.filter(f => f.parentName === parentName);
+
+ if (children?.length) {
+ return children.some(child => {
+ const childProvider = child.provider?.name;
+ return (
+ (childProvider !== this.providerName && childProvider !== this.defaultProviderName) ||
+ (provider !== this.providerName && provider !== this.defaultProviderName)
+ );
+ });
+ } else {
+ return provider !== this.providerName && provider !== this.defaultProviderName;
+ }
+ }
+
private uncheckToggleDescendants(feature: FeatureDto) {
this.findAllDescendantsOfByType(feature, ValueTypes.ToggleStringValueType).forEach(node =>
this.setFeatureValue(node, false),