AAE-36664 Cleanup deprecated AppConfigModule (#11016)

* cleanup deprecated AppConfigModule

* migrate factory to initializer

* add provideAppExtensions() api to allow deprecating ExtensionsModule in apps

* fix viewer render import

* use Angular control flow instead of NgIf

* use Angular control flow instead of NgSwitch
This commit is contained in:
Denys Vuika
2025-07-30 14:08:33 -04:00
committed by GitHub
parent 4c4dd195a4
commit d5c2e7c585
8 changed files with 126 additions and 146 deletions
+5 -15
View File
@@ -15,36 +15,26 @@
* limitations under the License.
*/
import { DynamicExtensionComponent } from './components/dynamic-component/dynamic.component';
import { DynamicTabComponent } from './components/dynamic-tab/dynamic-tab.component';
import { DynamicColumnComponent } from './components/dynamic-column/dynamic-column.component';
import { PreviewExtensionComponent } from './components/viewer/preview-extension.component';
import { NgModule, ModuleWithProviders, inject, provideAppInitializer } from '@angular/core';
import { AppExtensionService } from './services/app-extension.service';
import { setupExtensions } from './services/startup-extension-factory';
export const EXTENSION_DIRECTIVES = [DynamicExtensionComponent, DynamicTabComponent, DynamicColumnComponent, PreviewExtensionComponent] as const;
/** @deprecated import EXTENSION_DIRECTIVES or standalone components instead */
@NgModule({
imports: [...EXTENSION_DIRECTIVES],
exports: [...EXTENSION_DIRECTIVES]
})
/** @deprecated use provideAppExtensions() api instead */
@NgModule()
export class ExtensionsModule {
static forRoot(): ModuleWithProviders<ExtensionsModule> {
return {
ngModule: ExtensionsModule,
providers: [
provideAppInitializer(() => {
const initializerFn = setupExtensions(inject(AppExtensionService));
return initializerFn();
const appExtensionService = inject(AppExtensionService);
return appExtensionService.load();
})
]
};
}
/**
* @deprecated use `ExtensionsModule` instead, `EXTENSION_DIRECTIVES` or direct standalone components
* @deprecated use provideAppExtensions() api instead
* @returns Module with providers
*/
static forChild(): ModuleWithProviders<ExtensionsModule> {
@@ -15,6 +15,18 @@
* limitations under the License.
*/
import { AppExtensionService } from './app-extension.service';
import { EnvironmentProviders, inject, provideAppInitializer, Provider } from '@angular/core';
import { AppExtensionService } from './services/app-extension.service';
export const setupExtensions = (appExtensionService: AppExtensionService) => () => appExtensionService.load();
/**
* Provides all necessary entries for the app extensibility
* @returns list of providers
*/
export function provideAppExtensions(): (Provider | EnvironmentProviders)[] {
return [
provideAppInitializer(() => {
const appExtensionService = inject(AppExtensionService);
return appExtensionService.load();
})
];
}
+1
View File
@@ -41,3 +41,4 @@ export * from './lib/store/states/repository.state';
export * from './lib/components/public-api';
export * from './lib/extensions.module';
export * from './lib/providers';