From 83ebd99566b4f00dce557ac677bd988140188c8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Fra=C5=9B?= Date: Fri, 28 Jun 2024 22:03:30 +0200 Subject: [PATCH] fix: CXSPA-7665 Remove circular dependency from organization config factories (#19014) closes: https://jira.tools.sap/browse/CXSPA-7665 --- .../components/budget/budget-components.module.ts | 5 +---- .../components/budget/budget.config.ts | 12 ++++++------ .../cost-center/cost-center-components.module.ts | 5 +---- .../components/cost-center/cost-center.config.ts | 10 +++++----- .../permission/permission-components.module.ts | 5 +---- .../components/permission/permission.config.ts | 10 +++++----- .../components/unit/units-components.module.ts | 5 +---- .../administration/components/unit/units.config.ts | 12 ++++++------ .../user-group/user-group-components.module.ts | 5 +---- .../components/user-group/user-group.config.ts | 10 +++++----- .../components/user/user-components.module.ts | 3 +-- .../administration/components/user/user.config.ts | 10 +++++----- 12 files changed, 38 insertions(+), 54 deletions(-) diff --git a/feature-libs/organization/administration/components/budget/budget-components.module.ts b/feature-libs/organization/administration/components/budget/budget-components.module.ts index 21711248305..8e860bfd649 100644 --- a/feature-libs/organization/administration/components/budget/budget-components.module.ts +++ b/feature-libs/organization/administration/components/budget/budget-components.module.ts @@ -6,7 +6,6 @@ import { NgModule } from '@angular/core'; import { - FeatureConfigService, provideDefaultConfig, provideDefaultConfigFactory, } from '@spartacus/core'; @@ -25,9 +24,7 @@ import { BudgetFormModule } from './form/budget-form.module'; ], providers: [ provideDefaultConfig(budgetCmsConfig), - provideDefaultConfigFactory(budgetTableConfigFactory, [ - FeatureConfigService, - ]), + provideDefaultConfigFactory(budgetTableConfigFactory), ], }) export class BudgetComponentsModule {} diff --git a/feature-libs/organization/administration/components/budget/budget.config.ts b/feature-libs/organization/administration/components/budget/budget.config.ts index 262e105f106..a1499721262 100644 --- a/feature-libs/organization/administration/components/budget/budget.config.ts +++ b/feature-libs/organization/administration/components/budget/budget.config.ts @@ -4,7 +4,8 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { AuthGuard, CmsConfig, FeatureConfigService } from '@spartacus/core'; +import { inject } from '@angular/core'; +import { AuthGuard, CmsConfig, FeatureToggles } from '@spartacus/core'; import { AdminGuard } from '@spartacus/organization/administration/core'; import { ROUTE_PARAMS } from '@spartacus/organization/administration/root'; import { TableConfig } from '@spartacus/storefront'; @@ -80,11 +81,10 @@ export const budgetCmsConfig: CmsConfig = { }, }; -// TODO: (CXSPA-7155) - Remove feature flag and legacy config next major release -export function budgetTableConfigFactory( - featureConfigService?: FeatureConfigService -): TableConfig { - if (featureConfigService?.isEnabled('a11yOrganizationLinkableCells')) { +export function budgetTableConfigFactory(): TableConfig { + // TODO: (CXSPA-7155) - Remove feature flag and legacy config next major release + const featureToggles = inject(FeatureToggles); + if (featureToggles.a11yOrganizationLinkableCells) { return newBudgetTableConfig; } return budgetTableConfig; diff --git a/feature-libs/organization/administration/components/cost-center/cost-center-components.module.ts b/feature-libs/organization/administration/components/cost-center/cost-center-components.module.ts index 5ba3e238212..81edb925128 100644 --- a/feature-libs/organization/administration/components/cost-center/cost-center-components.module.ts +++ b/feature-libs/organization/administration/components/cost-center/cost-center-components.module.ts @@ -6,7 +6,6 @@ import { NgModule } from '@angular/core'; import { - FeatureConfigService, provideDefaultConfig, provideDefaultConfigFactory, } from '@spartacus/core'; @@ -30,9 +29,7 @@ import { CostCenterFormModule } from './form/cost-center-form.module'; ], providers: [ provideDefaultConfig(costCenterCmsConfig), - provideDefaultConfigFactory(costCenterTableConfigFactory, [ - FeatureConfigService, - ]), + provideDefaultConfigFactory(costCenterTableConfigFactory), ], }) export class CostCenterComponentsModule {} diff --git a/feature-libs/organization/administration/components/cost-center/cost-center.config.ts b/feature-libs/organization/administration/components/cost-center/cost-center.config.ts index a241fd9c139..a95b2685237 100644 --- a/feature-libs/organization/administration/components/cost-center/cost-center.config.ts +++ b/feature-libs/organization/administration/components/cost-center/cost-center.config.ts @@ -4,7 +4,8 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { AuthGuard, CmsConfig, FeatureConfigService } from '@spartacus/core'; +import { inject } from '@angular/core'; +import { AuthGuard, CmsConfig, FeatureToggles } from '@spartacus/core'; import { AdminGuard } from '@spartacus/organization/administration/core'; import { ROUTE_PARAMS } from '@spartacus/organization/administration/root'; import { TableConfig } from '@spartacus/storefront'; @@ -93,11 +94,10 @@ export const costCenterCmsConfig: CmsConfig = { }, }; -export function costCenterTableConfigFactory( - featureConfigService: FeatureConfigService -): TableConfig { +export function costCenterTableConfigFactory(): TableConfig { // TODO: (CXSPA-7155) - Remove feature flag and legacy config next major release - if (featureConfigService?.isEnabled('a11yOrganizationLinkableCells')) { + const featureToggles = inject(FeatureToggles); + if (featureToggles.a11yOrganizationLinkableCells) { return newCostCenterTableConfig; } return costCenterTableConfig; diff --git a/feature-libs/organization/administration/components/permission/permission-components.module.ts b/feature-libs/organization/administration/components/permission/permission-components.module.ts index 3ac4052cb12..9d828a2a8eb 100644 --- a/feature-libs/organization/administration/components/permission/permission-components.module.ts +++ b/feature-libs/organization/administration/components/permission/permission-components.module.ts @@ -6,7 +6,6 @@ import { NgModule } from '@angular/core'; import { - FeatureConfigService, provideDefaultConfig, provideDefaultConfigFactory, } from '@spartacus/core'; @@ -26,9 +25,7 @@ import { ], providers: [ provideDefaultConfig(permissionCmsConfig), - provideDefaultConfigFactory(permissionTableConfigFactory, [ - FeatureConfigService, - ]), + provideDefaultConfigFactory(permissionTableConfigFactory), ], }) export class PermissionComponentsModule {} diff --git a/feature-libs/organization/administration/components/permission/permission.config.ts b/feature-libs/organization/administration/components/permission/permission.config.ts index b1dfe4c7788..69e30f7e4e2 100644 --- a/feature-libs/organization/administration/components/permission/permission.config.ts +++ b/feature-libs/organization/administration/components/permission/permission.config.ts @@ -4,7 +4,8 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { AuthGuard, CmsConfig, FeatureConfigService } from '@spartacus/core'; +import { inject } from '@angular/core'; +import { AuthGuard, CmsConfig, FeatureToggles } from '@spartacus/core'; import { AdminGuard } from '@spartacus/organization/administration/core'; import { ROUTE_PARAMS } from '@spartacus/organization/administration/root'; import { TableConfig } from '@spartacus/storefront'; @@ -72,11 +73,10 @@ export const permissionCmsConfig: CmsConfig = { }, }; -export function permissionTableConfigFactory( - featureConfigService?: FeatureConfigService -): TableConfig { +export function permissionTableConfigFactory(): TableConfig { // TODO: (CXSPA-7155) - Remove feature flag and legacy config next major release - if (featureConfigService?.isEnabled('a11yOrganizationLinkableCells')) { + const featureToggles = inject(FeatureToggles); + if (featureToggles.a11yOrganizationLinkableCells) { return newPermissionTableConfig; } return permisionTableConfig; diff --git a/feature-libs/organization/administration/components/unit/units-components.module.ts b/feature-libs/organization/administration/components/unit/units-components.module.ts index 5a649ad944d..9b831540571 100644 --- a/feature-libs/organization/administration/components/unit/units-components.module.ts +++ b/feature-libs/organization/administration/components/unit/units-components.module.ts @@ -7,7 +7,6 @@ import { NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; import { - FeatureConfigService, provideDefaultConfig, provideDefaultConfigFactory, } from '@spartacus/core'; @@ -35,9 +34,7 @@ import { unitsCmsConfig, unitsTableConfigFactory } from './units.config'; ], providers: [ provideDefaultConfig(unitsCmsConfig), - provideDefaultConfigFactory(unitsTableConfigFactory, [ - FeatureConfigService, - ]), + provideDefaultConfigFactory(unitsTableConfigFactory), ], }) export class UnitsComponentsModule {} diff --git a/feature-libs/organization/administration/components/unit/units.config.ts b/feature-libs/organization/administration/components/unit/units.config.ts index 70dd9e1a2db..a8dc3e33be5 100644 --- a/feature-libs/organization/administration/components/unit/units.config.ts +++ b/feature-libs/organization/administration/components/unit/units.config.ts @@ -4,7 +4,8 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { AuthGuard, CmsConfig, FeatureConfigService } from '@spartacus/core'; +import { inject } from '@angular/core'; +import { AuthGuard, CmsConfig, FeatureToggles } from '@spartacus/core'; import { AdminGuard, OrgUnitGuard, @@ -194,11 +195,10 @@ export const unitsCmsConfig: CmsConfig = { }, }; -export function unitsTableConfigFactory( - featureConfigService?: FeatureConfigService -): TableConfig { - if (featureConfigService?.isEnabled('a11yOrganizationLinkableCells')) { - // TODO: (CXSPA-7155) - Remove feature flag and legacy config next major release +export function unitsTableConfigFactory(): TableConfig { + // TODO: (CXSPA-7155) - Remove feature flag and legacy config next major release + const featureToggles = inject(FeatureToggles); + if (featureToggles.a11yOrganizationLinkableCells) { return newUnitsTableConfig; } return unitsTableConfig; diff --git a/feature-libs/organization/administration/components/user-group/user-group-components.module.ts b/feature-libs/organization/administration/components/user-group/user-group-components.module.ts index 3d45d77499d..c217106e398 100644 --- a/feature-libs/organization/administration/components/user-group/user-group-components.module.ts +++ b/feature-libs/organization/administration/components/user-group/user-group-components.module.ts @@ -6,7 +6,6 @@ import { NgModule } from '@angular/core'; import { - FeatureConfigService, provideDefaultConfig, provideDefaultConfigFactory, } from '@spartacus/core'; @@ -30,9 +29,7 @@ import { UserGroupUserModule } from './users/user-group-user-list.module'; ], providers: [ provideDefaultConfig(userGroupCmsConfig), - provideDefaultConfigFactory(userGroupTableConfigFactory, [ - FeatureConfigService, - ]), + provideDefaultConfigFactory(userGroupTableConfigFactory), ], }) export class UserGroupComponentsModule {} diff --git a/feature-libs/organization/administration/components/user-group/user-group.config.ts b/feature-libs/organization/administration/components/user-group/user-group.config.ts index 78f7eec601a..1bf0fecd6d8 100644 --- a/feature-libs/organization/administration/components/user-group/user-group.config.ts +++ b/feature-libs/organization/administration/components/user-group/user-group.config.ts @@ -4,7 +4,8 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { AuthGuard, CmsConfig, FeatureConfigService } from '@spartacus/core'; +import { inject } from '@angular/core'; +import { AuthGuard, CmsConfig, FeatureToggles } from '@spartacus/core'; import { AdminGuard } from '@spartacus/organization/administration/core'; import { ROUTE_PARAMS } from '@spartacus/organization/administration/root'; import { TableConfig } from '@spartacus/storefront'; @@ -111,11 +112,10 @@ export const userGroupCmsConfig: CmsConfig = { }, }; -export function userGroupTableConfigFactory( - featureConfigService?: FeatureConfigService -): TableConfig { +export function userGroupTableConfigFactory(): TableConfig { // TODO: (CXSPA-7155) - Remove feature flag and legacy config next major release - if (featureConfigService?.isEnabled('a11yOrganizationLinkableCells')) { + const featureToggles = inject(FeatureToggles); + if (featureToggles.a11yOrganizationLinkableCells) { return newUserGroupTableConfig; } return userGroupTableConfig; diff --git a/feature-libs/organization/administration/components/user/user-components.module.ts b/feature-libs/organization/administration/components/user/user-components.module.ts index 862708a8880..9f145526de7 100644 --- a/feature-libs/organization/administration/components/user/user-components.module.ts +++ b/feature-libs/organization/administration/components/user/user-components.module.ts @@ -6,7 +6,6 @@ import { NgModule } from '@angular/core'; import { - FeatureConfigService, provideDefaultConfig, provideDefaultConfigFactory, } from '@spartacus/core'; @@ -30,7 +29,7 @@ import { userCmsConfig, userTableConfigFactory } from './user.config'; ], providers: [ provideDefaultConfig(userCmsConfig), - provideDefaultConfigFactory(userTableConfigFactory, [FeatureConfigService]), + provideDefaultConfigFactory(userTableConfigFactory), ], }) export class UserComponentsModule {} diff --git a/feature-libs/organization/administration/components/user/user.config.ts b/feature-libs/organization/administration/components/user/user.config.ts index 579d819f203..7b64cebe7bd 100644 --- a/feature-libs/organization/administration/components/user/user.config.ts +++ b/feature-libs/organization/administration/components/user/user.config.ts @@ -4,7 +4,8 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { AuthGuard, CmsConfig, FeatureConfigService } from '@spartacus/core'; +import { inject } from '@angular/core'; +import { AuthGuard, CmsConfig, FeatureToggles } from '@spartacus/core'; import { AdminGuard, UserGuard, @@ -141,11 +142,10 @@ export const userCmsConfig: CmsConfig = { }, }; -export function userTableConfigFactory( - featureConfigService?: FeatureConfigService -): TableConfig { +export function userTableConfigFactory(): TableConfig { // TODO: (CXSPA-7155) - Remove feature flag and legacy config next major release - if (featureConfigService?.isEnabled('a11yOrganizationLinkableCells')) { + const featureToggles = inject(FeatureToggles); + if (featureToggles.a11yOrganizationLinkableCells) { return newUserTableConfig; } return userTableConfig;