-
{{ 'ADF_VIEWER.LOADING' | translate }}
-
-
+@if (isLoading) {
+
+
+
+
+
{{ 'ADF_VIEWER.LOADING' | translate }}
+
+
+
-
+}
@if (urlFile || blobFile) {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ @switch (viewerType) {
+ @case ('external') {
+ @if (!!externalViewer) {
+
-
-
-
+ }
+ }
-
-
-
+ @case ('pdf') {
+
+ }
+
+ @case ('image') {
+
+ }
+
+ @case ('media') {
+
+ }
+
+ @case ('text') {
+
+ }
+
+ @case ('custom') {
+ @for (ext of viewerExtensions; track ext.id) {
+ @if (checkExtensions(ext.fileExtension)) {
+
+ }
+ }
+
+
+ @if (extensionTemplate.isVisible) {
+
+
+
+ }
+
+ }
+
+ @default {
+
+ }
+ }
}
-
+
+@if (viewerTemplateExtensions) {
-
+}
diff --git a/lib/core/src/lib/viewer/components/viewer-render/viewer-render.component.ts b/lib/core/src/lib/viewer/components/viewer-render/viewer-render.component.ts
index a73f61e532..218a09c132 100644
--- a/lib/core/src/lib/viewer/components/viewer-render/viewer-render.component.ts
+++ b/lib/core/src/lib/viewer/components/viewer-render/viewer-render.component.ts
@@ -15,8 +15,8 @@
* limitations under the License.
*/
-import { AppExtensionService, ExtensionsModule, ViewerExtensionRef } from '@alfresco/adf-extensions';
-import { NgForOf, NgIf, NgSwitch, NgSwitchCase, NgSwitchDefault, NgTemplateOutlet } from '@angular/common';
+import { AppExtensionService, ExtensionsModule, ViewerExtensionRef, PreviewExtensionComponent } from '@alfresco/adf-extensions';
+import { NgForOf, NgTemplateOutlet } from '@angular/common';
import { Component, EventEmitter, Injector, Input, OnChanges, OnInit, Output, TemplateRef, ViewEncapsulation } from '@angular/core';
import { MatDialog } from '@angular/material/dialog';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
@@ -38,9 +38,6 @@ import { UnknownFormatComponent } from '../unknown-format/unknown-format.compone
imports: [
TranslatePipe,
MatProgressSpinnerModule,
- NgSwitch,
- NgSwitchCase,
- NgIf,
PdfViewerComponent,
ImgViewerComponent,
MediaPlayerComponent,
@@ -49,7 +46,7 @@ import { UnknownFormatComponent } from '../unknown-format/unknown-format.compone
UnknownFormatComponent,
ExtensionsModule,
NgForOf,
- NgSwitchDefault
+ PreviewExtensionComponent
],
providers: [ViewUtilService]
})
diff --git a/lib/extensions/src/lib/extensions.module.ts b/lib/extensions/src/lib/extensions.module.ts
index da5954b99f..10b6c448de 100644
--- a/lib/extensions/src/lib/extensions.module.ts
+++ b/lib/extensions/src/lib/extensions.module.ts
@@ -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
{
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 {
diff --git a/lib/core/src/lib/app-config/app-config.module.ts b/lib/extensions/src/lib/providers.ts
similarity index 55%
rename from lib/core/src/lib/app-config/app-config.module.ts
rename to lib/extensions/src/lib/providers.ts
index f99bf292ee..02cd04f301 100644
--- a/lib/core/src/lib/app-config/app-config.module.ts
+++ b/lib/extensions/src/lib/providers.ts
@@ -15,12 +15,18 @@
* limitations under the License.
*/
-import { NgModule } from '@angular/core';
-import { AppConfigPipe } from './app-config.pipe';
+import { EnvironmentProviders, inject, provideAppInitializer, Provider } from '@angular/core';
+import { AppExtensionService } from './services/app-extension.service';
-/** @deprecated This module is deprecated, consider importing AppConfigPipe directly */
-@NgModule({
- imports: [AppConfigPipe],
- exports: [AppConfigPipe]
-})
-export class AppConfigModule {}
+/**
+ * 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();
+ })
+ ];
+}
diff --git a/lib/extensions/src/lib/services/startup-extension-factory.ts b/lib/extensions/src/lib/services/startup-extension-factory.ts
deleted file mode 100644
index 07e0c1f279..0000000000
--- a/lib/extensions/src/lib/services/startup-extension-factory.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-/*!
- * @license
- * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import { AppExtensionService } from './app-extension.service';
-
-export const setupExtensions = (appExtensionService: AppExtensionService) => () => appExtensionService.load();
diff --git a/lib/extensions/src/public-api.ts b/lib/extensions/src/public-api.ts
index 9d5e2bdfc7..3754faf88d 100644
--- a/lib/extensions/src/public-api.ts
+++ b/lib/extensions/src/public-api.ts
@@ -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';