diff --git a/npm/ng-packs/packages/tenant-management/src/lib/tenant-management.module.ts b/npm/ng-packs/packages/tenant-management/src/lib/tenant-management.module.ts index 035b658363..a38a709ddb 100644 --- a/npm/ng-packs/packages/tenant-management/src/lib/tenant-management.module.ts +++ b/npm/ng-packs/packages/tenant-management/src/lib/tenant-management.module.ts @@ -6,8 +6,17 @@ import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; import { NgxValidateCoreModule } from '@ngx-validate/core'; import { NgxsModule } from '@ngxs/store'; import { TenantsComponent } from './components/tenants/tenants.component'; +import { TenantManagementExtensionsGuard } from './guards/extensions.guard'; +import { TenantManagementConfigOptions } from './models/config-options'; import { TenantManagementState } from './states/tenant-management.state'; import { TenantManagementRoutingModule } from './tenant-management-routing.module'; +import { + TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS, + TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS, + TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS, + TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS, + TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS, +} from './tokens/extensions.token'; @NgModule({ declarations: [TenantsComponent], @@ -23,14 +32,40 @@ import { TenantManagementRoutingModule } from './tenant-management-routing.modul ], }) export class TenantManagementModule { - static forChild(): ModuleWithProviders { + static forChild( + options: TenantManagementConfigOptions = {}, + ): ModuleWithProviders { return { ngModule: TenantManagementModule, - providers: [], + providers: [ + { + provide: TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS, + useValue: options.entityActionContributors, + }, + { + provide: TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS, + useValue: options.toolbarActionContributors, + }, + { + provide: TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS, + useValue: options.entityPropContributors, + }, + { + provide: TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS, + useValue: options.createFormPropContributors, + }, + { + provide: TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS, + useValue: options.editFormPropContributors, + }, + TenantManagementExtensionsGuard, + ], }; } - static forLazy(): NgModuleFactory { - return new LazyModuleFactory(TenantManagementModule.forChild()); + static forLazy( + options: TenantManagementConfigOptions = {}, + ): NgModuleFactory { + return new LazyModuleFactory(TenantManagementModule.forChild(options)); } }