diff --git a/app/src/app/app.config.ts b/app/src/app/app.config.ts
index d47e82b9a..d091387c9 100644
--- a/app/src/app/app.config.ts
+++ b/app/src/app/app.config.ts
@@ -22,11 +22,20 @@
* from Hyland Software. If not, see .
*/
-import { importProvidersFrom, ApplicationConfig } from '@angular/core';
+import { importProvidersFrom, ApplicationConfig, Provider, EnvironmentProviders } from '@angular/core';
import { provideNoopAnimations, provideAnimations } from '@angular/platform-browser/animations';
-import { AuthGuard, CoreModule, AuthModule, provideTranslations } from '@alfresco/adf-core';
-import { AppService } from '@alfresco/aca-shared';
-import { AppExtensionsModule } from './extensions.module';
+import {
+ AuthGuard,
+ AuthModule,
+ provideTranslations,
+ provideAppConfig,
+ FORM_FIELD_MODEL_RENDER_MIDDLEWARE,
+ DecimalRenderMiddlewareService,
+ AuthenticationService,
+ TranslateLoaderService
+} from '@alfresco/adf-core';
+import { AppService, provideContentAppExtensions } from '@alfresco/aca-shared';
+import { provideApplicationExtensions } from './extensions.module';
import { environment } from '../environments/environment';
import { registerLocaleData } from '@angular/common';
import localeFr from '@angular/common/locales/fr';
@@ -46,10 +55,14 @@ import localeFi from '@angular/common/locales/fi';
import localeDa from '@angular/common/locales/da';
import localeSv from '@angular/common/locales/sv';
import { provideRouter, withHashLocation } from '@angular/router';
-import { CONTENT_LAYOUT_ROUTES, ContentServiceExtensionModule, ContentUrlService, provideExtensions } from '@alfresco/aca-content';
+import { CONTENT_LAYOUT_ROUTES, ContentServiceExtensionModule, ContentUrlService } from '@alfresco/aca-content';
import { ContentVersionService } from '@alfresco/adf-content-services';
import { SHELL_APP_SERVICE, SHELL_AUTH_TOKEN, provideShellRoutes } from '@alfresco/adf-core/shell';
import { APP_ROUTES } from './app.routes';
+import { HTTP_INTERCEPTORS, HttpClient, provideHttpClient, withInterceptorsFromDi, withXsrfConfiguration } from '@angular/common/http';
+import { MAT_SNACK_BAR_DEFAULT_OPTIONS } from '@angular/material/snack-bar';
+import { Authentication, AuthenticationInterceptor } from '@alfresco/adf-core/auth';
+import { provideTranslateService, TranslateLoader } from '@ngx-translate/core';
registerLocaleData(localeFr);
registerLocaleData(localeDe);
@@ -68,11 +81,42 @@ registerLocaleData(localeFi);
registerLocaleData(localeDa);
registerLocaleData(localeSv);
+/* The replacement for the CoreModule.forRoot() */
+function provideAdfCore(): (Provider | EnvironmentProviders)[] {
+ return [
+ provideAppConfig(),
+ provideHttpClient(withInterceptorsFromDi(), withXsrfConfiguration({ cookieName: 'CSRF-TOKEN', headerName: 'X-CSRF-TOKEN' })),
+ { provide: HTTP_INTERCEPTORS, useClass: AuthenticationInterceptor, multi: true },
+ { provide: Authentication, useClass: AuthenticationService },
+ {
+ provide: MAT_SNACK_BAR_DEFAULT_OPTIONS,
+ useValue: {
+ duration: 10000
+ }
+ },
+ {
+ provide: FORM_FIELD_MODEL_RENDER_MIDDLEWARE,
+ useClass: DecimalRenderMiddlewareService,
+ multi: true
+ }
+ ];
+}
+
export const AppConfig: ApplicationConfig = {
providers: [
importProvidersFrom(AuthModule.forRoot({ useHash: true })),
- importProvidersFrom(CoreModule.forRoot(), AppExtensionsModule, ContentServiceExtensionModule),
- provideExtensions(),
+ importProvidersFrom(ContentServiceExtensionModule),
+ provideTranslateService({
+ loader: {
+ provide: TranslateLoader,
+ useClass: TranslateLoaderService,
+ deps: [HttpClient]
+ },
+ defaultLanguage: 'en'
+ }),
+ provideAdfCore(),
+ provideContentAppExtensions(),
+ provideApplicationExtensions(),
provideRouter(APP_ROUTES, withHashLocation()),
environment.e2e ? provideNoopAnimations() : provideAnimations(),
provideShellRoutes(CONTENT_LAYOUT_ROUTES),
diff --git a/app/src/app/extensions.module.ts b/app/src/app/extensions.module.ts
index 3c5ed3f2e..c57c5500f 100644
--- a/app/src/app/extensions.module.ts
+++ b/app/src/app/extensions.module.ts
@@ -22,18 +22,25 @@
* from Hyland Software. If not, see .
*/
-import { NgModule } from '@angular/core';
-import { AcaFolderRulesModule } from '@alfresco/aca-content/folder-rules';
-import { AosExtensionModule } from '@alfresco/aca-content/ms-office';
-import { AcaAboutModule, DEV_MODE_TOKEN, PACKAGE_JSON } from '@alfresco/aca-content/about';
+import { EnvironmentProviders, NgModule, Provider } from '@angular/core';
+import { provideFolderRulesExtension } from '@alfresco/aca-content/folder-rules';
+import { provideAosExtension } from '@alfresco/aca-content/ms-office';
+import { DEV_MODE_TOKEN, PACKAGE_JSON, provideAboutExtension } from '@alfresco/aca-content/about';
import { environment } from '../environments/environment';
import packageJson from 'package.json';
-@NgModule({
- imports: [AosExtensionModule, AcaAboutModule, AcaFolderRulesModule],
- providers: [
+export function provideApplicationExtensions(): (Provider | EnvironmentProviders)[] {
+ return [
+ ...provideAboutExtension(),
+ ...provideAosExtension(),
+ ...provideFolderRulesExtension(),
{ provide: PACKAGE_JSON, useValue: packageJson },
{ provide: DEV_MODE_TOKEN, useValue: !environment.production }
- ]
+ ];
+}
+
+/* @deprecated use `provideApplicationExtensions()` provider api instead */
+@NgModule({
+ providers: [...provideApplicationExtensions()]
})
export class AppExtensionsModule {}
diff --git a/projects/aca-content/about/src/aca-about.module.ts b/projects/aca-content/about/src/aca-about.module.ts
index 187a6b6d5..1914accfa 100644
--- a/projects/aca-content/about/src/aca-about.module.ts
+++ b/projects/aca-content/about/src/aca-about.module.ts
@@ -22,17 +22,23 @@
* from Hyland Software. If not, see .
*/
-import { NgModule } from '@angular/core';
+import { NgModule, Provider } from '@angular/core';
import { AboutComponent } from './about.component';
-import { ExtensionService, provideExtensionConfig } from '@alfresco/adf-extensions';
+import { provideExtensionConfig, provideExtensions } from '@alfresco/adf-extensions';
-@NgModule({
- providers: [provideExtensionConfig(['about.plugin.json'])]
-})
-export class AcaAboutModule {
- constructor(extensions: ExtensionService) {
- extensions.setComponents({
- 'app.about.component': AboutComponent
- });
- }
+export function provideAboutExtension(): Provider[] {
+ return [
+ provideExtensionConfig(['about.plugin.json']),
+ provideExtensions({
+ components: {
+ 'app.about.component': AboutComponent
+ }
+ })
+ ];
}
+
+/* @deprecated use `provideAboutExtension()` provider api instead */
+@NgModule({
+ providers: [...provideAboutExtension()]
+})
+export class AcaAboutModule {}
diff --git a/projects/aca-content/folder-rules/src/folder-rules.module.ts b/projects/aca-content/folder-rules/src/folder-rules.module.ts
index 777b238dd..168cfbe9c 100644
--- a/projects/aca-content/folder-rules/src/folder-rules.module.ts
+++ b/projects/aca-content/folder-rules/src/folder-rules.module.ts
@@ -23,14 +23,14 @@
*/
import { provideTranslations } from '@alfresco/adf-core';
-import { ExtensionService, provideExtensionConfig } from '@alfresco/adf-extensions';
-import { NgModule } from '@angular/core';
+import { provideExtensionConfig, provideExtensions } from '@alfresco/adf-extensions';
+import { EnvironmentProviders, NgModule, Provider } from '@angular/core';
import * as rules from './folder-rules.rules';
import { provideRouter, Routes } from '@angular/router';
import { ManageRulesSmartComponent } from './manage-rules/manage-rules.smart-component';
import { PluginEnabledGuard } from '@alfresco/aca-shared';
-const routes: Routes = [
+export const FOLDER_RULES_ROUTES: Routes = [
{
path: 'rules',
component: ManageRulesSmartComponent,
@@ -41,13 +41,21 @@ const routes: Routes = [
}
];
-@NgModule({
- providers: [provideTranslations('folder-rules', 'assets/folder-rules'), provideExtensionConfig(['folder-rules.plugin.json']), provideRouter(routes)]
-})
-export class AcaFolderRulesModule {
- constructor(extensions: ExtensionService) {
- extensions.setEvaluators({
- 'rules.isFolderRulesEnabled': rules.isFolderRulesEnabled
- });
- }
+export function provideFolderRulesExtension(): (Provider | EnvironmentProviders)[] {
+ return [
+ provideTranslations('folder-rules', 'assets/folder-rules'),
+ provideExtensionConfig(['folder-rules.plugin.json']),
+ provideRouter(FOLDER_RULES_ROUTES),
+ provideExtensions({
+ evaluators: {
+ 'rules.isFolderRulesEnabled': rules.isFolderRulesEnabled
+ }
+ })
+ ];
}
+
+/** @deprecated use `provideFolderRulesExtension()` instead **/
+@NgModule({
+ providers: [...provideFolderRulesExtension()]
+})
+export class AcaFolderRulesModule {}
diff --git a/projects/aca-content/ms-office/src/aos-extension.module.ts b/projects/aca-content/ms-office/src/aos-extension.module.ts
index 63e5f184f..38fd1ec88 100644
--- a/projects/aca-content/ms-office/src/aos-extension.module.ts
+++ b/projects/aca-content/ms-office/src/aos-extension.module.ts
@@ -22,20 +22,28 @@
* from Hyland Software. If not, see .
*/
-import { ExtensionService, provideExtensionConfig } from '@alfresco/adf-extensions';
-import { NgModule } from '@angular/core';
+import { provideExtensionConfig, provideExtensions } from '@alfresco/adf-extensions';
+import { EnvironmentProviders, NgModule, Provider } from '@angular/core';
import { provideEffects } from '@ngrx/effects';
import { AosEffects } from './effects/aos.effects';
import { provideTranslations } from '@alfresco/adf-core';
import { canOpenWithOffice } from '@alfresco/aca-shared/rules';
-@NgModule({
- providers: [provideExtensionConfig(['aos.plugin.json']), provideTranslations('ms-office', 'assets/ms-office'), provideEffects(AosEffects)]
-})
-export class AosExtensionModule {
- constructor(extensions: ExtensionService) {
- extensions.setEvaluators({
- 'aos.canOpenWithOffice': canOpenWithOffice
- });
- }
+export function provideAosExtension(): (Provider | EnvironmentProviders)[] {
+ return [
+ provideExtensionConfig(['aos.plugin.json']),
+ provideTranslations('ms-office', 'assets/ms-office'),
+ provideEffects(AosEffects),
+ provideExtensions({
+ evaluators: {
+ 'aos.canOpenWithOffice': canOpenWithOffice
+ }
+ })
+ ];
}
+
+/* @deprecated use `provideAosExtension()` provider api instead */
+@NgModule({
+ providers: [...provideAosExtension()]
+})
+export class AosExtensionModule {}
diff --git a/projects/aca-content/src/lib/aca-content.module.ts b/projects/aca-content/src/lib/aca-content.module.ts
index f3e0a69c6..adc7da12d 100644
--- a/projects/aca-content/src/lib/aca-content.module.ts
+++ b/projects/aca-content/src/lib/aca-content.module.ts
@@ -24,7 +24,6 @@
import { HammerModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
-import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { AuthGuardEcm, LanguagePickerComponent, NotificationHistoryComponent, provideTranslations } from '@alfresco/adf-core';
import {
ContentModule,
@@ -34,17 +33,11 @@ import {
LibraryStatusColumnComponent,
TrashcanNameColumnComponent
} from '@alfresco/adf-content-services';
-import { DocumentBasePageService, ExtensionsDataLoaderGuard } from '@alfresco/aca-shared';
+import { DocumentBasePageService, ExtensionsDataLoaderGuard, provideContentAppExtensions } from '@alfresco/aca-shared';
import * as rules from '@alfresco/aca-shared/rules';
import { AppStoreModule } from './store/app-store.module';
-import { CoreExtensionsModule } from './extensions/core.extensions.module';
-import { ExtensionService, ExtensionsModule } from '@alfresco/adf-extensions';
-import { APP_TOOLBAR_DIRECTIVES } from './components/toolbar';
-import { APP_SIDENAV_DIRECTIVES } from './components/sidenav';
-import { APP_COMMON_DIRECTIVES } from './components/common';
-import { APP_SEARCH_DIRECTIVES } from './components/search';
+import { provideAppExtensions, provideExtensions } from '@alfresco/adf-extensions';
import { ContentUrlService } from './services/content-url.service';
-import { CommonModule } from '@angular/common';
import { LocationLinkComponent } from './components/common/location-link/location-link.component';
import { LogoutComponent } from './components/common/logout/logout.component';
import { ToggleSharedComponent } from './components/common/toggle-shared/toggle-shared.component';
@@ -62,16 +55,15 @@ import { ToggleJoinLibraryButtonComponent } from './components/toolbar/toggle-jo
import { ToggleJoinLibraryMenuComponent } from './components/toolbar/toggle-join-library/toggle-join-library-menu.component';
import { ViewNodeComponent } from './components/toolbar/view-node/view-node.component';
import { CONTENT_ROUTES } from './aca-content.routes';
-import { RouterModule } from '@angular/router';
+import { provideRouter } from '@angular/router';
import { UploadFilesDialogComponent } from './components/upload-files-dialog/upload-files-dialog.component';
-import { AcaFolderRulesModule } from '@alfresco/aca-content/folder-rules';
+import { provideFolderRulesExtension } from '@alfresco/aca-content/folder-rules';
import { TagsColumnComponent } from './components/dl-custom-components/tags-column/tags-column.component';
import { UserInfoComponent } from './components/common/user-info/user-info.component';
import { SidenavComponent } from './components/sidenav/sidenav.component';
import { ContentManagementService } from './services/content-management.service';
import { SHELL_NAVBAR_MIN_WIDTH, ShellLayoutComponent } from '@alfresco/adf-core/shell';
import { UserMenuComponent } from './components/sidenav/user-menu/user-menu.component';
-import { ContextMenuComponent } from './components/context-menu/context-menu.component';
import { MAT_DIALOG_DEFAULT_OPTIONS } from '@angular/material/dialog';
import { SearchResultsRowComponent } from './components/search/search-results-row/search-results-row.component';
import { BulkActionsDropdownComponent } from './components/bulk-actions-dropdown/bulk-actions-dropdown.component';
@@ -79,116 +71,101 @@ import { AgentsButtonComponent } from './components/knowledge-retrieval/search-a
import { SaveSearchSidenavComponent } from './components/search/search-save/sidenav/save-search-sidenav.component';
@NgModule({
- imports: [
- CommonModule,
- FormsModule,
- ReactiveFormsModule,
- ContentModule.forRoot(),
- RouterModule.forChild(CONTENT_ROUTES),
- ExtensionsModule,
- CoreExtensionsModule,
- AppStoreModule,
- ...APP_COMMON_DIRECTIVES,
- ...APP_TOOLBAR_DIRECTIVES,
- ...APP_SIDENAV_DIRECTIVES,
- ...APP_SEARCH_DIRECTIVES,
- ContextMenuComponent,
- HammerModule,
- AcaFolderRulesModule
- ],
+ imports: [ContentModule.forRoot(), AppStoreModule, HammerModule],
providers: [
+ provideRouter(CONTENT_ROUTES),
{ provide: ContentVersionService, useClass: ContentUrlService },
{ provide: DocumentBasePageService, useExisting: ContentManagementService },
+ provideAppExtensions(),
+ provideContentAppExtensions(),
+ provideFolderRulesExtension(),
provideTranslations('app', 'assets'),
{ provide: SHELL_NAVBAR_MIN_WIDTH, useValue: 0 },
{
provide: MAT_DIALOG_DEFAULT_OPTIONS,
useValue: { closeOnNavigation: true, hasBackdrop: true, autoFocus: true }
- }
+ },
+ provideExtensions({
+ authGuards: {
+ 'app.auth': AuthGuardEcm,
+ 'app.extensions.dataLoaderGuard': ExtensionsDataLoaderGuard
+ },
+ components: {
+ 'app.layout.main': ShellLayoutComponent,
+ 'app.layout.sidenav': SidenavComponent,
+ 'app.shell.sibling': UploadFilesDialogComponent,
+ 'app.components.tabs.metadata': MetadataTabComponent,
+ 'app.components.tabs.library.metadata': LibraryMetadataTabComponent,
+ 'app.components.tabs.comments': CommentsTabComponent,
+ 'app.components.tabs.versions': VersionsTabComponent,
+ 'app.components.preview': PreviewComponent,
+ 'app.toolbar.toggleInfoDrawer': ToggleInfoDrawerComponent,
+ 'app.toolbar.toggleFavorite': ToggleFavoriteComponent,
+ 'app.toolbar.toggleFavoriteLibrary': ToggleFavoriteLibraryComponent,
+ 'app.toolbar.toggleJoinLibrary': ToggleJoinLibraryButtonComponent,
+ 'app.toolbar.ai.agents-button': AgentsButtonComponent,
+ 'app.menu.toggleJoinLibrary': ToggleJoinLibraryMenuComponent,
+ 'app.bulk-actions-dropdown': BulkActionsDropdownComponent,
+ 'app.shared-link.toggleSharedLink': ToggleSharedComponent,
+ 'app.columns.name': CustomNameColumnComponent,
+ 'app.columns.libraryName': LibraryNameColumnComponent,
+ 'app.columns.libraryRole': LibraryRoleColumnComponent,
+ 'app.columns.libraryStatus': LibraryStatusColumnComponent,
+ 'app.columns.trashcanName': TrashcanNameColumnComponent,
+ 'app.columns.location': LocationLinkComponent,
+ 'app.columns.tags': TagsColumnComponent,
+ 'app.toolbar.toggleEditOffline': ToggleEditOfflineComponent,
+ 'app.toolbar.viewNode': ViewNodeComponent,
+ 'app.languagePicker': LanguagePickerComponent,
+ 'app.logout': LogoutComponent,
+ 'app.user': UserInfoComponent,
+ 'app.notification-center': NotificationHistoryComponent,
+ 'app.user.menu': UserMenuComponent,
+ 'app.search.columns.name': SearchResultsRowComponent,
+ 'app.search.navbar': SaveSearchSidenavComponent
+ },
+ evaluators: {
+ canToggleJoinLibrary: rules.canToggleJoinLibrary,
+ canToggleSharedLink: rules.canToggleSharedLink,
+ canToggleFileLock: rules.canToggleFileLock,
+ canToggleFavorite: rules.canToggleFavorite,
+ isLibraryManager: rules.isLibraryManager,
+ canEditAspects: rules.canEditAspects,
+ isSmartFolder: rules.isSmartFolder,
+ isMultiSelection: rules.isMultiselection,
+ canPrintFile: rules.canPrintFile,
+
+ 'app.selection.canDelete': rules.canDeleteSelection,
+ 'app.selection.canDownload': rules.canDownloadSelection,
+ 'app.selection.notEmpty': rules.hasSelection,
+ 'app.selection.canAddFavorite': rules.canAddFavorite,
+ 'app.selection.canRemoveFavorite': rules.canRemoveFavorite,
+ 'app.selection.first.canUpdate': rules.canUpdateSelectedNode,
+ 'app.selection.file': rules.hasFileSelected,
+ 'app.selection.file.isLocked': rules.hasLockedFiles,
+ 'app.selection.file.canUploadVersion': rules.canUploadVersion,
+ 'app.selection.library': rules.hasLibrarySelected,
+ 'app.selection.hasLibraryRole': rules.hasLibraryRole,
+ 'app.selection.folder': rules.hasFolderSelected,
+ 'app.selection.folder.canUpdate': rules.canUpdateSelectedFolder,
+ 'app.selection.displayedKnowledgeRetrievalButton': rules.canDisplayKnowledgeRetrievalButton,
+
+ 'app.navigation.folder.canCreate': rules.canCreateFolder,
+ 'app.navigation.isTrashcan': rules.isTrashcan,
+ 'app.navigation.isLibraries': rules.isLibraries,
+ 'app.navigation.isSharedFiles': rules.isSharedFiles,
+ 'app.navigation.isFavorites': rules.isFavorites,
+ 'app.navigation.isRecentFiles': rules.isRecentFiles,
+ 'app.navigation.isSearchResults': rules.isSearchResults,
+ 'app.navigation.isPreview': rules.isPreview,
+ 'app.navigation.isDetails': rules.isDetails,
+
+ 'app.canShowLogout': rules.canShowLogout,
+ 'app.isContentServiceEnabled': rules.isContentServiceEnabled,
+ 'app.areTagsEnabled': rules.areTagsEnabled,
+ 'app.areCategoriesEnabled': rules.areCategoriesEnabled
+ }
+ })
]
})
-export class ContentServiceExtensionModule {
- constructor(public extensions: ExtensionService) {
- extensions.setAuthGuards({
- 'app.auth': AuthGuardEcm,
- 'app.extensions.dataLoaderGuard': ExtensionsDataLoaderGuard
- });
-
- extensions.setComponents({
- 'app.layout.main': ShellLayoutComponent,
- 'app.layout.sidenav': SidenavComponent,
- 'app.shell.sibling': UploadFilesDialogComponent,
- 'app.components.tabs.metadata': MetadataTabComponent,
- 'app.components.tabs.library.metadata': LibraryMetadataTabComponent,
- 'app.components.tabs.comments': CommentsTabComponent,
- 'app.components.tabs.versions': VersionsTabComponent,
- 'app.components.preview': PreviewComponent,
- 'app.toolbar.toggleInfoDrawer': ToggleInfoDrawerComponent,
- 'app.toolbar.toggleFavorite': ToggleFavoriteComponent,
- 'app.toolbar.toggleFavoriteLibrary': ToggleFavoriteLibraryComponent,
- 'app.toolbar.toggleJoinLibrary': ToggleJoinLibraryButtonComponent,
- 'app.toolbar.ai.agents-button': AgentsButtonComponent,
- 'app.menu.toggleJoinLibrary': ToggleJoinLibraryMenuComponent,
- 'app.bulk-actions-dropdown': BulkActionsDropdownComponent,
- 'app.shared-link.toggleSharedLink': ToggleSharedComponent,
- 'app.columns.name': CustomNameColumnComponent,
- 'app.columns.libraryName': LibraryNameColumnComponent,
- 'app.columns.libraryRole': LibraryRoleColumnComponent,
- 'app.columns.libraryStatus': LibraryStatusColumnComponent,
- 'app.columns.trashcanName': TrashcanNameColumnComponent,
- 'app.columns.location': LocationLinkComponent,
- 'app.columns.tags': TagsColumnComponent,
- 'app.toolbar.toggleEditOffline': ToggleEditOfflineComponent,
- 'app.toolbar.viewNode': ViewNodeComponent,
- 'app.languagePicker': LanguagePickerComponent,
- 'app.logout': LogoutComponent,
- 'app.user': UserInfoComponent,
- 'app.notification-center': NotificationHistoryComponent,
- 'app.user.menu': UserMenuComponent,
- 'app.search.columns.name': SearchResultsRowComponent,
- 'app.search.navbar': SaveSearchSidenavComponent
- });
-
- extensions.setEvaluators({
- canToggleJoinLibrary: rules.canToggleJoinLibrary,
- canToggleSharedLink: rules.canToggleSharedLink,
- canToggleFileLock: rules.canToggleFileLock,
- canToggleFavorite: rules.canToggleFavorite,
- isLibraryManager: rules.isLibraryManager,
- canEditAspects: rules.canEditAspects,
- isSmartFolder: rules.isSmartFolder,
- isMultiSelection: rules.isMultiselection,
- canPrintFile: rules.canPrintFile,
-
- 'app.selection.canDelete': rules.canDeleteSelection,
- 'app.selection.canDownload': rules.canDownloadSelection,
- 'app.selection.notEmpty': rules.hasSelection,
- 'app.selection.canAddFavorite': rules.canAddFavorite,
- 'app.selection.canRemoveFavorite': rules.canRemoveFavorite,
- 'app.selection.first.canUpdate': rules.canUpdateSelectedNode,
- 'app.selection.file': rules.hasFileSelected,
- 'app.selection.file.isLocked': rules.hasLockedFiles,
- 'app.selection.file.canUploadVersion': rules.canUploadVersion,
- 'app.selection.library': rules.hasLibrarySelected,
- 'app.selection.hasLibraryRole': rules.hasLibraryRole,
- 'app.selection.folder': rules.hasFolderSelected,
- 'app.selection.folder.canUpdate': rules.canUpdateSelectedFolder,
- 'app.selection.displayedKnowledgeRetrievalButton': rules.canDisplayKnowledgeRetrievalButton,
-
- 'app.navigation.folder.canCreate': rules.canCreateFolder,
- 'app.navigation.isTrashcan': rules.isTrashcan,
- 'app.navigation.isLibraries': rules.isLibraries,
- 'app.navigation.isSharedFiles': rules.isSharedFiles,
- 'app.navigation.isFavorites': rules.isFavorites,
- 'app.navigation.isRecentFiles': rules.isRecentFiles,
- 'app.navigation.isSearchResults': rules.isSearchResults,
- 'app.navigation.isPreview': rules.isPreview,
- 'app.navigation.isDetails': rules.isDetails,
-
- 'app.canShowLogout': rules.canShowLogout,
- 'app.isContentServiceEnabled': rules.isContentServiceEnabled,
- 'app.areTagsEnabled': rules.areTagsEnabled,
- 'app.areCategoriesEnabled': rules.areCategoriesEnabled
- });
- }
-}
+export class ContentServiceExtensionModule {}
diff --git a/projects/aca-content/src/lib/aca-content.routes.ts b/projects/aca-content/src/lib/aca-content.routes.ts
index ee9f467f3..bbc4f25ac 100644
--- a/projects/aca-content/src/lib/aca-content.routes.ts
+++ b/projects/aca-content/src/lib/aca-content.routes.ts
@@ -337,7 +337,7 @@ export const CONTENT_LAYOUT_ROUTES: Route[] = [
children: [
{
path: '',
- loadChildren: () => import('@alfresco/aca-content/folder-rules').then((m) => m.AcaFolderRulesModule)
+ loadChildren: () => import('@alfresco/aca-content/folder-rules').then((m) => m.FOLDER_RULES_ROUTES)
}
]
},
diff --git a/projects/aca-content/src/lib/components/common/index.ts b/projects/aca-content/src/lib/components/common/index.ts
index e89fc7581..721600fc4 100644
--- a/projects/aca-content/src/lib/components/common/index.ts
+++ b/projects/aca-content/src/lib/components/common/index.ts
@@ -28,6 +28,7 @@ import { LanguagePickerComponent } from './language-picker/language-picker.compo
import { LogoutComponent } from './logout/logout.component';
import { UserInfoComponent } from './user-info/user-info.component';
+/* @deprecated import standalone components instead */
export const APP_COMMON_DIRECTIVES = [
LanguagePickerComponent,
LocationLinkComponent,
diff --git a/projects/aca-content/src/lib/components/search/index.ts b/projects/aca-content/src/lib/components/search/index.ts
index 38837cbf7..cbad922bf 100644
--- a/projects/aca-content/src/lib/components/search/index.ts
+++ b/projects/aca-content/src/lib/components/search/index.ts
@@ -29,6 +29,7 @@ import { SearchResultsRowComponent } from './search-results-row/search-results-r
import { SearchInputComponent } from './search-input/search-input.component';
import { SearchInputControlComponent } from './search-input-control/search-input-control.component';
+/* @deprecated import standalone components instead */
export const APP_SEARCH_DIRECTIVES = [
SearchActionMenuComponent,
SearchLibrariesResultsComponent,
diff --git a/projects/aca-content/src/lib/components/sidenav/index.ts b/projects/aca-content/src/lib/components/sidenav/index.ts
index 56da49fdd..d1c818176 100644
--- a/projects/aca-content/src/lib/components/sidenav/index.ts
+++ b/projects/aca-content/src/lib/components/sidenav/index.ts
@@ -32,6 +32,7 @@ import { ActionDirective } from './directives/action.directive';
import { SidenavHeaderComponent } from './components/sidenav-header.component';
import { UserMenuComponent } from './user-menu/user-menu.component';
+/* @deprecated import standalone components instead */
export const APP_SIDENAV_DIRECTIVES = [
ButtonMenuComponent,
ActiveLinkDirective,
diff --git a/projects/aca-content/src/lib/components/toolbar/index.ts b/projects/aca-content/src/lib/components/toolbar/index.ts
index 0b3e6fbdd..4419218d1 100644
--- a/projects/aca-content/src/lib/components/toolbar/index.ts
+++ b/projects/aca-content/src/lib/components/toolbar/index.ts
@@ -30,6 +30,7 @@ import { ToggleFavoriteLibraryComponent } from './toggle-favorite-library/toggle
import { ToggleEditOfflineComponent } from './toggle-edit-offline/toggle-edit-offline.component';
import { ViewNodeComponent } from './view-node/view-node.component';
+/* @deprecated import standalone components instead */
export const APP_TOOLBAR_DIRECTIVES = [
ToggleFavoriteComponent,
ToggleEditOfflineComponent,
diff --git a/projects/aca-content/src/lib/extensions/core.extensions.module.ts b/projects/aca-content/src/lib/extensions/core.extensions.module.ts
deleted file mode 100644
index bcca4df02..000000000
--- a/projects/aca-content/src/lib/extensions/core.extensions.module.ts
+++ /dev/null
@@ -1,42 +0,0 @@
-/*!
- * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
- *
- * Alfresco Example Content Application
- *
- * This file is part of the Alfresco Example Content Application.
- * If the software was purchased under a paid Alfresco license, the terms of
- * the paid license agreement will prevail. Otherwise, the software is
- * provided under the following open source license terms:
- *
- * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * The Alfresco Example Content Application is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * from Hyland Software. If not, see .
- */
-
-import { inject, ModuleWithProviders, NgModule, provideAppInitializer } from '@angular/core';
-import { AppExtensionService } from '@alfresco/aca-shared';
-
-/** @deprecated use provideExtensions() api instead */
-@NgModule()
-export class CoreExtensionsModule {
- static forRoot(): ModuleWithProviders {
- return {
- ngModule: CoreExtensionsModule,
- providers: [
- provideAppInitializer(() => {
- const service = inject(AppExtensionService);
- return service.load();
- })
- ]
- };
- }
-}
diff --git a/projects/aca-content/src/lib/extensions/provide-extensions.ts b/projects/aca-content/src/lib/extensions/provide-extensions.ts
deleted file mode 100644
index 7c71c2a1c..000000000
--- a/projects/aca-content/src/lib/extensions/provide-extensions.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-/*!
- * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
- *
- * Alfresco Example Content Application
- *
- * This file is part of the Alfresco Example Content Application.
- * If the software was purchased under a paid Alfresco license, the terms of
- * the paid license agreement will prevail. Otherwise, the software is
- * provided under the following open source license terms:
- *
- * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * The Alfresco Example Content Application is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * from Hyland Software. If not, see .
- */
-
-import { EnvironmentProviders, inject, provideAppInitializer, Provider } from '@angular/core';
-import { AppExtensionService } from '@alfresco/aca-shared';
-
-export function provideExtensions(): (Provider | EnvironmentProviders)[] {
- return [
- provideAppInitializer(() => {
- const service = inject(AppExtensionService);
- return service.load();
- })
- ];
-}
diff --git a/projects/aca-content/src/public-api.ts b/projects/aca-content/src/public-api.ts
index 1dbe98157..55a4fa91d 100644
--- a/projects/aca-content/src/public-api.ts
+++ b/projects/aca-content/src/public-api.ts
@@ -28,10 +28,8 @@
export * from './lib/aca-content.module';
export * from './lib/aca-content.routes';
-export * from './lib/extensions/core.extensions.module';
export * from './lib/store/initial-state';
export * from './lib/services/content-url.service';
export * from './lib/services/content-management.service';
export * from './lib/components/info-drawer/comments-tab/external-node-permission-comments-tab.service';
export * from './lib/utils/aca-search-utils';
-export * from './lib/extensions/provide-extensions';
diff --git a/projects/aca-playwright-shared/src/api/rules-api.ts b/projects/aca-playwright-shared/src/api/rules-api.ts
index 02c3e9de3..fc1d1eb04 100644
--- a/projects/aca-playwright-shared/src/api/rules-api.ts
+++ b/projects/aca-playwright-shared/src/api/rules-api.ts
@@ -23,7 +23,6 @@
*/
import { ApiClientFactory } from './api-client-factory';
-import { AcaFolderRulesModule } from '@alfresco/aca-content/folder-rules';
import * as crypto from 'crypto';
export class RulesApi {
@@ -199,7 +198,7 @@ export interface Rule {
errorScript: string;
isShared: boolean;
triggers: RuleTrigger[];
- conditions: AcaFolderRulesModule;
+ conditions: any;
actions: RuleAction[];
}
@@ -288,6 +287,6 @@ export class ConditionsTypes {
static readonly conditions = [ConditionsTypes.MIMETYPE.value, ConditionsTypes.CMNAME.value, ConditionsTypes.SIZE.value, ConditionsTypes.TAG.value];
constructor(
public key: string,
- public value: AcaFolderRulesModule
+ public value: any
) {}
}
diff --git a/projects/aca-shared/src/lib/services/app.extension.service.ts b/projects/aca-shared/src/lib/services/app.extension.service.ts
index 7c02d789a..e1dbfbb81 100644
--- a/projects/aca-shared/src/lib/services/app.extension.service.ts
+++ b/projects/aca-shared/src/lib/services/app.extension.service.ts
@@ -22,7 +22,7 @@
* from Hyland Software. If not, see .
*/
-import { Injectable } from '@angular/core';
+import { EnvironmentProviders, inject, Injectable, provideAppInitializer } from '@angular/core';
import { Store } from '@ngrx/store';
import { MatIconRegistry } from '@angular/material/icon';
import { DomSanitizer } from '@angular/platform-browser';
@@ -58,6 +58,15 @@ import { NodePermissionService } from '../services/node-permission.service';
import { map } from 'rxjs/operators';
import { SearchCategory } from '@alfresco/adf-content-services';
+export function provideContentAppExtensions(): EnvironmentProviders[] {
+ return [
+ provideAppInitializer(() => {
+ const service = inject(AppExtensionService);
+ return service.load();
+ })
+ ];
+}
+
@Injectable({
providedIn: 'root'
})