ngx-rendering-service-lib 0.0.67019 → 0.0.67021

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. package/assets/pdf/main.js +37 -6
  2. package/assets/pdf/main.js.map +1 -1
  3. package/fesm2022/{ngx-rendering-service-lib-audio.component-BHG-msJn.mjs → ngx-rendering-service-lib-audio.component-BCMbYDVH.mjs} +2 -2
  4. package/fesm2022/{ngx-rendering-service-lib-audio.component-BHG-msJn.mjs.map → ngx-rendering-service-lib-audio.component-BCMbYDVH.mjs.map} +1 -1
  5. package/fesm2022/{ngx-rendering-service-lib-binder.component-BIOkMSvM.mjs → ngx-rendering-service-lib-binder.component-Cqekah6Z.mjs} +2 -2
  6. package/fesm2022/{ngx-rendering-service-lib-binder.component-BIOkMSvM.mjs.map → ngx-rendering-service-lib-binder.component-Cqekah6Z.mjs.map} +1 -1
  7. package/fesm2022/{ngx-rendering-service-lib-ddb.component-CVgi1ocu.mjs → ngx-rendering-service-lib-ddb.component-B0fyWhTw.mjs} +2 -2
  8. package/fesm2022/{ngx-rendering-service-lib-ddb.component-CVgi1ocu.mjs.map → ngx-rendering-service-lib-ddb.component-B0fyWhTw.mjs.map} +1 -1
  9. package/fesm2022/{ngx-rendering-service-lib-default.component-D1_Wt37g.mjs → ngx-rendering-service-lib-default.component-DPBhpamB.mjs} +2 -2
  10. package/fesm2022/{ngx-rendering-service-lib-default.component-D1_Wt37g.mjs.map → ngx-rendering-service-lib-default.component-DPBhpamB.mjs.map} +1 -1
  11. package/fesm2022/{ngx-rendering-service-lib-error.component-C29LYchz.mjs → ngx-rendering-service-lib-error.component-Dp6yNgd-.mjs} +4 -4
  12. package/fesm2022/{ngx-rendering-service-lib-error.component-C29LYchz.mjs.map → ngx-rendering-service-lib-error.component-Dp6yNgd-.mjs.map} +1 -1
  13. package/fesm2022/{ngx-rendering-service-lib-h5p.component-CPxi6pWu.mjs → ngx-rendering-service-lib-h5p.component-DAfGHJvJ.mjs} +2 -2
  14. package/fesm2022/{ngx-rendering-service-lib-h5p.component-CPxi6pWu.mjs.map → ngx-rendering-service-lib-h5p.component-DAfGHJvJ.mjs.map} +1 -1
  15. package/fesm2022/{ngx-rendering-service-lib-moodle.component-Chz4jEFG.mjs → ngx-rendering-service-lib-moodle.component-BXvR4xSJ.mjs} +2 -2
  16. package/fesm2022/{ngx-rendering-service-lib-moodle.component-Chz4jEFG.mjs.map → ngx-rendering-service-lib-moodle.component-BXvR4xSJ.mjs.map} +1 -1
  17. package/fesm2022/{ngx-rendering-service-lib-ngx-rendering-service-lib-DYUwBoKX.mjs → ngx-rendering-service-lib-ngx-rendering-service-lib-Bxsjd3lm.mjs} +47 -33
  18. package/fesm2022/ngx-rendering-service-lib-ngx-rendering-service-lib-Bxsjd3lm.mjs.map +1 -0
  19. package/fesm2022/ngx-rendering-service-lib.mjs +1 -1
  20. package/lib/asset-link.pipe.d.ts +4 -2
  21. package/lib/current-render-root-url.service.d.ts +6 -0
  22. package/lib/render.component.d.ts +4 -2
  23. package/package.json +1 -1
  24. package/fesm2022/ngx-rendering-service-lib-ngx-rendering-service-lib-DYUwBoKX.mjs.map +0 -1
@@ -1,9 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Pipe, NgModule, signal, HostListener, Input, Component, Injectable, ViewChild, InjectionToken, Optional, Inject, createEnvironmentInjector } from '@angular/core';
2
+ import { Injectable, Optional, Pipe, NgModule, signal, HostListener, Input, Component, ViewChild, InjectionToken, Inject, createEnvironmentInjector } from '@angular/core';
3
3
  import * as i2 from '@angular/common';
4
4
  import { CommonModule, NgOptimizedImage } from '@angular/common';
5
5
  import * as i1$1 from 'ngx-rendering-service-api';
6
- import { RSApiConfiguration, JobInfoControllerService, RenderControllerWrapperService } from 'ngx-rendering-service-api';
6
+ import { RSApiConfiguration, JobInfoControllerService, RenderControllerWrapperService, ModuleInfoControllerService } from 'ngx-rendering-service-api';
7
7
  import * as i1 from 'ngx-edu-sharing-api';
8
8
  import { EduSharingApiModule, RestConstants } from 'ngx-edu-sharing-api';
9
9
  import * as i3 from '@angular/material/button';
@@ -12,39 +12,48 @@ import * as i4 from '@angular/material/icon';
12
12
  import { MatIconModule, MatIcon } from '@angular/material/icon';
13
13
  import { FormsModule } from '@angular/forms';
14
14
  import { MatMenu, MatMenuTrigger, MatMenuItem } from '@angular/material/menu';
15
- import * as i2$1 from 'ngx-edu-sharing-ui';
15
+ import * as i4$2 from 'ngx-edu-sharing-ui';
16
16
  import { EduSharingUiModule, NodesRightMode, EduSharingUiCommonModule, InfoMessageComponent } from 'ngx-edu-sharing-ui';
17
17
  import * as i4$1 from '@ngx-translate/core';
18
18
  import { TranslateModule, TranslateService } from '@ngx-translate/core';
19
- import * as i4$2 from 'ngx-extended-pdf-viewer';
19
+ import * as i4$3 from 'ngx-extended-pdf-viewer';
20
20
  import { pdfDefaultOptions, NgxExtendedPdfViewerModule, NgxExtendedPdfViewerComponent } from 'ngx-extended-pdf-viewer';
21
21
  import { YouTubePlayer } from '@angular/youtube-player';
22
22
  import { firstValueFrom, Subject, BehaviorSubject, debounceTime, switchMap, interval, takeUntil, exhaustMap } from 'rxjs';
23
23
  import * as i1$2 from '@angular/platform-browser';
24
24
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
25
- import * as i4$3 from '@angular/material/progress-spinner';
25
+ import * as i5 from '@angular/material/progress-spinner';
26
26
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
27
- import * as i5 from '@angular/material/progress-bar';
27
+ import * as i6 from '@angular/material/progress-bar';
28
28
  import { MatProgressBarModule } from '@angular/material/progress-bar';
29
29
  import { filter } from 'rxjs/operators';
30
30
 
31
+ class CurrentRenderRootUrlService {
32
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CurrentRenderRootUrlService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
33
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CurrentRenderRootUrlService }); }
34
+ }
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CurrentRenderRootUrlService, decorators: [{
36
+ type: Injectable
37
+ }] });
38
+
31
39
  /**
32
40
  * this pipe transforms any reported asset data uri from the rendering to the uri that is currently configured for the backend
33
41
  * this is required in case the rendering service is behind a proxy, i.e. in dev mode
34
42
  */
35
43
  class AssetLinkPipe {
36
- constructor(injector) {
44
+ constructor(injector, current) {
37
45
  this.injector = injector;
46
+ this.current = current;
38
47
  }
39
48
  transform(value) {
40
49
  if (value) {
41
50
  const str = value.split('/public');
42
- str[0] = this.injector.get(RSApiConfiguration).rootUrl;
51
+ str[0] = this.current?.rootUrl ?? this.injector.get(RSApiConfiguration).rootUrl;
43
52
  return str.join('/public');
44
53
  }
45
54
  return value;
46
55
  }
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: AssetLinkPipe, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Pipe }); }
56
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: AssetLinkPipe, deps: [{ token: i0.Injector }, { token: CurrentRenderRootUrlService, optional: true }], target: i0.ɵɵFactoryTarget.Pipe }); }
48
57
  static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: AssetLinkPipe, isStandalone: false, name: "rsAssetLink" }); }
49
58
  }
50
59
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: AssetLinkPipe, decorators: [{
@@ -53,7 +62,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
53
62
  name: 'rsAssetLink',
54
63
  standalone: false
55
64
  }]
56
- }], ctorParameters: () => [{ type: i0.Injector }] });
65
+ }], ctorParameters: () => [{ type: i0.Injector }, { type: CurrentRenderRootUrlService, decorators: [{
66
+ type: Optional
67
+ }] }] });
57
68
 
58
69
  class RenderingModule {
59
70
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: RenderingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -331,8 +342,8 @@ class PdfComponent {
331
342
  }
332
343
  }
333
344
  }
334
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PdfComponent, deps: [{ token: i1$1.AssetControllerService }, { token: i2$1.NodeHelperService }, { token: RENDERING_SERVICE_LIB_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
335
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: PdfComponent, isStandalone: true, selector: "rs-module-pdf", inputs: { data: "data", node: "node", assetUrl: "assetUrl" }, host: { listeners: { "window:keydown.control.s": "handleShortCutEvents($event)", "window:keydown.F12": "handleShortCutEvents($event)", "window:contextmenu": "handleContextMenu($event)" } }, viewQueries: [{ propertyName: "pdfViewer", first: true, predicate: NgxExtendedPdfViewerComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"pdf-wrapper\"\n [class.hide-all]=\"restrictedView\"\n *ngIf=\"fileData !== undefined\"\n>\n <ngx-extended-pdf-viewer\n [src]=\"fileData\"\n [showPrintButton]=\"!restrictedView\"\n [showDownloadButton]=\"false\"\n [showOpenFileButton]=\"false\"\n [textLayer]=\"!restrictedView\"\n [enablePrint]=\"!restrictedView\"\n [showBookModeButton]=\"false\"\n [showFindHighlightAll]=\"false\"\n [showDrawEditor]=\"false\"\n [sidebarVisible]=\"false\"\n [showHighlightEditor]=\"false\"\n [showTextEditor]=\"false\"\n [height]=\"'100vh'\"\n [showSecondaryToolbarButton]=\"false\"\n [showStampEditor]=\"false\"\n [authorization]=\"true\"\n [useInlineScripts]=\"false\"\n >\n </ngx-extended-pdf-viewer>\n</div>\n", styles: [":host{position:relative;display:flex;align-items:center;width:100%}:host ::ng-deep ngx-extended-pdf-viewer .zoom{height:var(--containerHeight)}.pdf-wrapper{width:100%;height:100%}@media print{.hide-all *{display:none!important}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: RenderingModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: NgxExtendedPdfViewerModule }, { kind: "component", type: i4$2.NgxExtendedPdfViewerComponent, selector: "ngx-extended-pdf-viewer", inputs: ["customFindbarInputArea", "customToolbar", "customFindbar", "customFindbarButtons", "customPdfViewer", "customSecondaryToolbar", "customSidebar", "customThumbnail", "customFreeFloatingBar", "showFreeFloatingBar", "enableDragAndDrop", "forceUsingLegacyES5", "formData", "disableForms", "pageViewMode", "scrollMode", "authorization", "httpHeaders", "contextMenuAllowed", "enablePrint", "enablePrintAutoRotate", "forceFullReloadOfJavaScriptCode", "showTextEditor", "showStampEditor", "showDrawEditor", "showHighlightEditor", "logLevel", "relativeCoordsOptions", "minifiedJSLibraries", "printResolution", "rotation", "src", "base64Src", "minHeight", "height", "backgroundColor", "filenameForDownload", "ignoreKeyboard", "ignoreKeys", "acceptKeys", "imageResourcesPath", "localeFolderPath", "language", "listenToURL", "nameddest", "password", "replaceBrowserPrint", "useInlineScripts", "showUnverifiedSignatures", "startTabindex", "showSidebarButton", "sidebarVisible", "activeSidebarView", "findbarVisible", "propertiesDialogVisible", "showFindButton", "showFindHighlightAll", "showFindMatchCase", "showFindMultiple", "showFindRegexp", "showFindEntireWord", "showFindMatchDiacritics", "showFindResultsCount", "showFindMessages", "showPagingButtons", "showFirstAndLastPageButtons", "showPreviousAndNextPageButtons", "showPageNumber", "showPageLabel", "showZoomButtons", "showZoomDropdown", "showPresentationModeButton", "showOpenFileButton", "showPrintButton", "showDownloadButton", "theme", "showToolbar", "showSecondaryToolbarButton", "showSinglePageModeButton", "showVerticalScrollButton", "showHorizontalScrollButton", "showWrappedScrollButton", "showInfiniteScrollButton", "showBookModeButton", "showRotateButton", "showRotateCwButton", "showRotateCcwButton", "handTool", "showHandToolButton", "showSpreadButton", "showPropertiesButton", "showBorders", "spread", "showScrollingButtons", "page", "pageLabel", "textLayer", "zoom", "zoomLevels", "maxZoom", "minZoom", "mobileFriendlyZoom"], outputs: ["annotationEditorEvent", "formDataChange", "pageViewModeChange", "progress", "srcChange", "scrollModeChange", "afterPrint", "beforePrint", "currentZoomFactor", "rotationChange", "annotationLayerRendered", "annotationEditorLayerRendered", "xfaLayerRendered", "outlineLoaded", "attachmentsloaded", "layersloaded", "sidebarVisibleChange", "activeSidebarViewChange", "findbarVisibleChange", "propertiesDialogVisibleChange", "handToolChange", "spreadChange", "thumbnailDrawn", "pageChange", "pageLabelChange", "pagesLoaded", "pageRender", "pageRendered", "pdfDownloaded", "pdfLoaded", "pdfLoadingStarts", "pdfLoadingFailed", "textLayerRendered", "annotationEditorModeChanged", "updateFindMatchesCount", "updateFindState", "zoomChange"] }] }); }
345
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PdfComponent, deps: [{ token: i1$1.AssetControllerService }, { token: i4$2.NodeHelperService }, { token: RENDERING_SERVICE_LIB_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
346
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: PdfComponent, isStandalone: true, selector: "rs-module-pdf", inputs: { data: "data", node: "node", assetUrl: "assetUrl" }, host: { listeners: { "window:keydown.control.s": "handleShortCutEvents($event)", "window:keydown.F12": "handleShortCutEvents($event)", "window:contextmenu": "handleContextMenu($event)" } }, viewQueries: [{ propertyName: "pdfViewer", first: true, predicate: NgxExtendedPdfViewerComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"pdf-wrapper\"\n [class.hide-all]=\"restrictedView\"\n *ngIf=\"fileData !== undefined\"\n>\n <ngx-extended-pdf-viewer\n [src]=\"fileData\"\n [showPrintButton]=\"!restrictedView\"\n [showDownloadButton]=\"false\"\n [showOpenFileButton]=\"false\"\n [textLayer]=\"!restrictedView\"\n [enablePrint]=\"!restrictedView\"\n [showBookModeButton]=\"false\"\n [showFindHighlightAll]=\"false\"\n [showDrawEditor]=\"false\"\n [sidebarVisible]=\"false\"\n [showHighlightEditor]=\"false\"\n [showTextEditor]=\"false\"\n [height]=\"'100vh'\"\n [showSecondaryToolbarButton]=\"false\"\n [showStampEditor]=\"false\"\n [authorization]=\"true\"\n [useInlineScripts]=\"false\"\n >\n </ngx-extended-pdf-viewer>\n</div>\n", styles: [":host{position:relative;display:flex;align-items:center;width:100%}:host ::ng-deep ngx-extended-pdf-viewer .zoom{height:var(--containerHeight)}.pdf-wrapper{width:100%;height:100%}@media print{.hide-all *{display:none!important}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: RenderingModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: NgxExtendedPdfViewerModule }, { kind: "component", type: i4$3.NgxExtendedPdfViewerComponent, selector: "ngx-extended-pdf-viewer", inputs: ["customFindbarInputArea", "customToolbar", "customFindbar", "customFindbarButtons", "customPdfViewer", "customSecondaryToolbar", "customSidebar", "customThumbnail", "customFreeFloatingBar", "showFreeFloatingBar", "enableDragAndDrop", "forceUsingLegacyES5", "formData", "disableForms", "pageViewMode", "scrollMode", "authorization", "httpHeaders", "contextMenuAllowed", "enablePrint", "enablePrintAutoRotate", "forceFullReloadOfJavaScriptCode", "showTextEditor", "showStampEditor", "showDrawEditor", "showHighlightEditor", "logLevel", "relativeCoordsOptions", "minifiedJSLibraries", "printResolution", "rotation", "src", "base64Src", "minHeight", "height", "backgroundColor", "filenameForDownload", "ignoreKeyboard", "ignoreKeys", "acceptKeys", "imageResourcesPath", "localeFolderPath", "language", "listenToURL", "nameddest", "password", "replaceBrowserPrint", "useInlineScripts", "showUnverifiedSignatures", "startTabindex", "showSidebarButton", "sidebarVisible", "activeSidebarView", "findbarVisible", "propertiesDialogVisible", "showFindButton", "showFindHighlightAll", "showFindMatchCase", "showFindMultiple", "showFindRegexp", "showFindEntireWord", "showFindMatchDiacritics", "showFindResultsCount", "showFindMessages", "showPagingButtons", "showFirstAndLastPageButtons", "showPreviousAndNextPageButtons", "showPageNumber", "showPageLabel", "showZoomButtons", "showZoomDropdown", "showPresentationModeButton", "showOpenFileButton", "showPrintButton", "showDownloadButton", "theme", "showToolbar", "showSecondaryToolbarButton", "showSinglePageModeButton", "showVerticalScrollButton", "showHorizontalScrollButton", "showWrappedScrollButton", "showInfiniteScrollButton", "showBookModeButton", "showRotateButton", "showRotateCwButton", "showRotateCcwButton", "handTool", "showHandToolButton", "showSpreadButton", "showPropertiesButton", "showBorders", "spread", "showScrollingButtons", "page", "pageLabel", "textLayer", "zoom", "zoomLevels", "maxZoom", "minZoom", "mobileFriendlyZoom"], outputs: ["annotationEditorEvent", "formDataChange", "pageViewModeChange", "progress", "srcChange", "scrollModeChange", "afterPrint", "beforePrint", "currentZoomFactor", "rotationChange", "annotationLayerRendered", "annotationEditorLayerRendered", "xfaLayerRendered", "outlineLoaded", "attachmentsloaded", "layersloaded", "sidebarVisibleChange", "activeSidebarViewChange", "findbarVisibleChange", "propertiesDialogVisibleChange", "handToolChange", "spreadChange", "thumbnailDrawn", "pageChange", "pageLabelChange", "pagesLoaded", "pageRender", "pageRendered", "pdfDownloaded", "pdfLoaded", "pdfLoadingStarts", "pdfLoadingFailed", "textLayerRendered", "annotationEditorModeChanged", "updateFindMatchesCount", "updateFindState", "zoomChange"] }] }); }
336
347
  }
337
348
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PdfComponent, decorators: [{
338
349
  type: Component,
@@ -343,7 +354,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
343
354
  MatIconModule,
344
355
  NgxExtendedPdfViewerModule
345
356
  ], template: "<div\n class=\"pdf-wrapper\"\n [class.hide-all]=\"restrictedView\"\n *ngIf=\"fileData !== undefined\"\n>\n <ngx-extended-pdf-viewer\n [src]=\"fileData\"\n [showPrintButton]=\"!restrictedView\"\n [showDownloadButton]=\"false\"\n [showOpenFileButton]=\"false\"\n [textLayer]=\"!restrictedView\"\n [enablePrint]=\"!restrictedView\"\n [showBookModeButton]=\"false\"\n [showFindHighlightAll]=\"false\"\n [showDrawEditor]=\"false\"\n [sidebarVisible]=\"false\"\n [showHighlightEditor]=\"false\"\n [showTextEditor]=\"false\"\n [height]=\"'100vh'\"\n [showSecondaryToolbarButton]=\"false\"\n [showStampEditor]=\"false\"\n [authorization]=\"true\"\n [useInlineScripts]=\"false\"\n >\n </ngx-extended-pdf-viewer>\n</div>\n", styles: [":host{position:relative;display:flex;align-items:center;width:100%}:host ::ng-deep ngx-extended-pdf-viewer .zoom{height:var(--containerHeight)}.pdf-wrapper{width:100%;height:100%}@media print{.hide-all *{display:none!important}}\n"] }]
346
- }], ctorParameters: () => [{ type: i1$1.AssetControllerService }, { type: i2$1.NodeHelperService }, { type: RenderingServiceLibConfiguration, decorators: [{
357
+ }], ctorParameters: () => [{ type: i1$1.AssetControllerService }, { type: i4$2.NodeHelperService }, { type: RenderingServiceLibConfiguration, decorators: [{
347
358
  type: Optional
348
359
  }, {
349
360
  type: Inject,
@@ -414,7 +425,7 @@ class PdfIframeComponent {
414
425
  iframeDoc.close();
415
426
  }
416
427
  }
417
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PdfIframeComponent, deps: [{ token: i2$1.NodeHelperService }, { token: RENDERING_SERVICE_LIB_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
428
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PdfIframeComponent, deps: [{ token: i4$2.NodeHelperService }, { token: RENDERING_SERVICE_LIB_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
418
429
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: PdfIframeComponent, isStandalone: true, selector: "rs-module-pdf-iframe", inputs: { data: "data", node: "node" }, viewQueries: [{ propertyName: "iframe", first: true, predicate: ["iframe"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"pdf-wrapper\"\n>\n <iframe #iframe></iframe>\n</div>\n", styles: [":host{position:relative;display:flex;align-items:center;width:100%;height:100%}.pdf-wrapper{width:100%;height:100%}.pdf-wrapper iframe{width:100%;height:500px;border:0}@media print{.hide-all *{display:none!important}}\n"], dependencies: [{ kind: "ngmodule", type: RenderingModule }] }); }
419
430
  }
420
431
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PdfIframeComponent, decorators: [{
@@ -422,7 +433,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
422
433
  args: [{ selector: 'rs-module-pdf-iframe', imports: [
423
434
  RenderingModule,
424
435
  ], template: "<div\n class=\"pdf-wrapper\"\n>\n <iframe #iframe></iframe>\n</div>\n", styles: [":host{position:relative;display:flex;align-items:center;width:100%;height:100%}.pdf-wrapper{width:100%;height:100%}.pdf-wrapper iframe{width:100%;height:500px;border:0}@media print{.hide-all *{display:none!important}}\n"] }]
425
- }], ctorParameters: () => [{ type: i2$1.NodeHelperService }, { type: RenderingServiceLibConfiguration, decorators: [{
436
+ }], ctorParameters: () => [{ type: i4$2.NodeHelperService }, { type: RenderingServiceLibConfiguration, decorators: [{
426
437
  type: Optional
427
438
  }, {
428
439
  type: Inject,
@@ -655,7 +666,7 @@ class UrlComponent {
655
666
  }
656
667
  this.embedding = UrlEmbeddings.SODIX;
657
668
  }
658
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: UrlComponent, deps: [{ token: i1$2.DomSanitizer }, { token: TrackingService }, { token: GdprService }, { token: i4$1.TranslateService }, { token: i1.EduSharingApiConfiguration }, { token: i2$1.AccessibilityService }, { token: i1$1.GlobalStateService }], target: i0.ɵɵFactoryTarget.Component }); }
669
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: UrlComponent, deps: [{ token: i1$2.DomSanitizer }, { token: TrackingService }, { token: GdprService }, { token: i4$1.TranslateService }, { token: i1.EduSharingApiConfiguration }, { token: i4$2.AccessibilityService }, { token: i1$1.GlobalStateService }], target: i0.ɵɵFactoryTarget.Component }); }
659
670
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: UrlComponent, isStandalone: true, selector: "rs-module-url", inputs: { data: "data", node: "node", isWebComponent: "isWebComponent" }, viewQueries: [{ propertyName: "ltiFrame", first: true, predicate: ["ltiFrame"], descendants: true }], ngImport: i0, template: "<div class=\"url-wrapper\">\n <div *ngIf=\"gdpr === null\">\n <ng-container *ngIf=\"embedding === UrlEmbeddings.YOUTUBE && externalId !== ''\">\n <div class=\"youtube-wrapper\">\n <youtube-player\n [videoId]=\"externalId ?? ''\"\n [disableCookies]=\"true\"\n ></youtube-player>\n </div>\n </ng-container>\n <ng-container *ngIf=\"embedding === UrlEmbeddings.VIMEO && externalId !== ''\">\n <iframe class=\"vimeoFrame\" [src]=\"sanitizedUrl\"></iframe>\n </ng-container>\n <ng-container *ngIf=\"embedding === UrlEmbeddings.AUDIO && url !== ''\" >\n <div class=\"audio-wrapper\">\n <video\n controls\n style=\"max-width: 100%\"\n [src]=\"url\"\n poster=\"assets/img/audio.svg\"\n >\n </video>\n </div>\n </ng-container>\n <ng-container *ngIf=\"embedding === UrlEmbeddings.IMAGE && url !== ''\">\n <div class=\"image-wrapper\">\n <img\n [ngSrc]=\"url\"\n [alt]=\"node?.title ?? 'Edu-Sharing image'\"\n [title]=\"node?.title ?? 'Edu-Sharing image'\"\n >\n </div>\n </ng-container>\n <ng-container *ngIf=\"embedding === UrlEmbeddings.VIDEO && url !== ''\">\n <div class=\"video-wrapper\">\n <video\n controls\n [src]=\"url\"\n >\n </video>\n </div>\n </ng-container>\n <ng-container *ngIf=\"(embedding === UrlEmbeddings.PREZI || embedding === UrlEmbeddings.LEARNINGAPPS) && url !== ''\">\n <iframe class=\"eduUrlFrame\" [src]=sanitizedUrl allowfullscreen=\"\" allow=\"autoplay; fullscreen\" ></iframe>\n </ng-container>\n <ng-container *ngIf=\"embedding === UrlEmbeddings.LTI13TOOL && url !== ''\">\n <iframe\n #ltiFrame\n class=\"ltiFrame\"\n [src]=sanitizedUrl\n allowfullscreen>\n </iframe>\n\n </ng-container>\n <ng-container *ngIf=\"embedding === UrlEmbeddings.SODIX\">\n <iframe\n class=\"sodixFrame\"\n [src]=sanitizedUrl>\n </iframe>\n </ng-container>\n <ng-container *ngIf=\"embedding === UrlEmbeddings.LINK\">\n <div class=\"link-wrapper\">\n <img [src]=previewUrl alt=\"preview\">\n <a mat-flat-button color=\"primary\" [href]=\"url\" target=\"_blank\" (click)=\"onLinkClick()\">{{ 'SHARING.LINK' | translate }}</a>\n </div>\n </ng-container>\n </div>\n\n <div class=\"gdpr-wrapper\" *ngIf=\"gdpr !== null\">\n <div class=\"gdpr-image-container\">\n <img [src]=\"previewUrl\">\n <div class=\"gdpr-overlay\" [class.contrast-mode]=\"isContrastMode\">\n <ng-container *ngIf=\"isGdprGeneric()\">\n <div class=\"gdpr-content\">\n <h3>{{ 'RENDERING.GDPR.EXTERNAL_SITE' | translate }}</h3>\n <span>{{gdprInfoText}}</span>\n <a mat-button=\"outlined\" [href]=\"gdpr.ref\" target=\"_blank\">{{ 'RENDERING.GDPR.GDPR_REGULATIONS' | translate }}</a>\n <button\n mat-button\n (click)=\"consentToGdprWarning()\">\n {{ 'SHARING.LINK' | translate }}\n </button>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!isGdprGeneric()\">\n <div class=\"gdpr-content\">\n <h3>{{ 'RENDERING.GDPR.EXTERNAL_CONTENT' | translate }}</h3>\n <span>{{gdprInfoText}}</span>\n <span>{{'RENDERING.GDPR.FURTHER_INFORMATION' | translate }}</span>\n <a mat-button=\"outlined\" [href]=\"gdpr.ref\" target=\"_blank\">{{ 'RENDERING.GDPR.GDPR_REGULATIONS' | translate }}</a>\n <button\n mat-button\n (click)=\"consentToGdprWarning()\">\n {{ 'RENDERING.GDPR.AGREE_AND_CONTINUE' | translate }}\n </button>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n", styles: [":host{position:relative;display:flex;align-items:center;max-height:var(--containerHeight)}.url-wrapper{width:100%;max-height:var(--containerHeight)}.url-wrapper .audio-wrapper video[poster]{object-fit:cover}.url-wrapper .vimeoFrame,.url-wrapper .preziFrame{width:100%;aspect-ratio:16/9;border:none}.url-wrapper .image-wrapper>img{width:100%;height:auto}.url-wrapper .sodixFrame{border:none;width:100%;height:var(--containerHeight)}.url-wrapper .ltiFrame{border:none;width:100%;max-width:100%}.url-wrapper .gdpr-wrapper{width:100%;display:flex;flex-direction:column;align-items:center}.url-wrapper .gdpr-wrapper .gdpr-image-container{position:relative;width:100%;display:inline-block}.url-wrapper .gdpr-wrapper .gdpr-image-container img{width:100%;height:auto;max-height:var(--containerHeight);display:block}.url-wrapper .gdpr-wrapper .gdpr-image-container .gdpr-overlay{position:absolute;bottom:0;left:0;right:0;background-color:#0009;display:flex;align-items:center;justify-content:center}.url-wrapper .gdpr-wrapper .gdpr-image-container .gdpr-overlay.contrast-mode{background-color:#000}.url-wrapper .gdpr-wrapper .gdpr-image-container .gdpr-overlay .gdpr-content{display:flex;flex-direction:column;align-items:center;gap:.5em;color:#fff;text-align:center;padding-bottom:1em}.url-wrapper .gdpr-wrapper .gdpr-image-container .gdpr-overlay .gdpr-content a{color:#fff}.url-wrapper .gdpr-wrapper .gdpr-image-container .gdpr-overlay .gdpr-content a[mat-button=outlined]{border:1px solid white}.url-wrapper .gdpr-wrapper .gdpr-image-container .gdpr-overlay .gdpr-content span,.url-wrapper .gdpr-wrapper .gdpr-image-container .gdpr-overlay .gdpr-content a{font-size:.875rem}.url-wrapper .gdpr-wrapper .gdpr-image-container .gdpr-overlay .gdpr-content button{background-color:green;color:#fff}.url-wrapper .link-wrapper{width:100%;display:flex;flex-direction:column;align-items:center;gap:1em}.url-wrapper .link-wrapper img{width:100%;height:auto;max-height:calc(var(--containerHeight) - 60px);object-fit:contain;display:block}.url-wrapper .youtube-wrapper{width:100%;height:auto;display:flex;justify-content:center}\n"], dependencies: [{ kind: "ngmodule", type: RenderingModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: YouTubePlayer, selector: "youtube-player", inputs: ["videoId", "height", "width", "startSeconds", "endSeconds", "suggestedQuality", "playerVars", "disableCookies", "loadApi", "disablePlaceholder", "showBeforeIframeApiLoads", "placeholderButtonLabel", "placeholderImageQuality"], outputs: ["ready", "stateChange", "error", "apiChange", "playbackQualityChange", "playbackRateChange"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }, { kind: "ngmodule", type: EduSharingUiModule }, { kind: "pipe", type: i4$1.TranslatePipe, name: "translate" }] }); }
660
671
  }
661
672
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: UrlComponent, decorators: [{
@@ -668,7 +679,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
668
679
  NgOptimizedImage,
669
680
  EduSharingUiModule,
670
681
  ], template: "<div class=\"url-wrapper\">\n <div *ngIf=\"gdpr === null\">\n <ng-container *ngIf=\"embedding === UrlEmbeddings.YOUTUBE && externalId !== ''\">\n <div class=\"youtube-wrapper\">\n <youtube-player\n [videoId]=\"externalId ?? ''\"\n [disableCookies]=\"true\"\n ></youtube-player>\n </div>\n </ng-container>\n <ng-container *ngIf=\"embedding === UrlEmbeddings.VIMEO && externalId !== ''\">\n <iframe class=\"vimeoFrame\" [src]=\"sanitizedUrl\"></iframe>\n </ng-container>\n <ng-container *ngIf=\"embedding === UrlEmbeddings.AUDIO && url !== ''\" >\n <div class=\"audio-wrapper\">\n <video\n controls\n style=\"max-width: 100%\"\n [src]=\"url\"\n poster=\"assets/img/audio.svg\"\n >\n </video>\n </div>\n </ng-container>\n <ng-container *ngIf=\"embedding === UrlEmbeddings.IMAGE && url !== ''\">\n <div class=\"image-wrapper\">\n <img\n [ngSrc]=\"url\"\n [alt]=\"node?.title ?? 'Edu-Sharing image'\"\n [title]=\"node?.title ?? 'Edu-Sharing image'\"\n >\n </div>\n </ng-container>\n <ng-container *ngIf=\"embedding === UrlEmbeddings.VIDEO && url !== ''\">\n <div class=\"video-wrapper\">\n <video\n controls\n [src]=\"url\"\n >\n </video>\n </div>\n </ng-container>\n <ng-container *ngIf=\"(embedding === UrlEmbeddings.PREZI || embedding === UrlEmbeddings.LEARNINGAPPS) && url !== ''\">\n <iframe class=\"eduUrlFrame\" [src]=sanitizedUrl allowfullscreen=\"\" allow=\"autoplay; fullscreen\" ></iframe>\n </ng-container>\n <ng-container *ngIf=\"embedding === UrlEmbeddings.LTI13TOOL && url !== ''\">\n <iframe\n #ltiFrame\n class=\"ltiFrame\"\n [src]=sanitizedUrl\n allowfullscreen>\n </iframe>\n\n </ng-container>\n <ng-container *ngIf=\"embedding === UrlEmbeddings.SODIX\">\n <iframe\n class=\"sodixFrame\"\n [src]=sanitizedUrl>\n </iframe>\n </ng-container>\n <ng-container *ngIf=\"embedding === UrlEmbeddings.LINK\">\n <div class=\"link-wrapper\">\n <img [src]=previewUrl alt=\"preview\">\n <a mat-flat-button color=\"primary\" [href]=\"url\" target=\"_blank\" (click)=\"onLinkClick()\">{{ 'SHARING.LINK' | translate }}</a>\n </div>\n </ng-container>\n </div>\n\n <div class=\"gdpr-wrapper\" *ngIf=\"gdpr !== null\">\n <div class=\"gdpr-image-container\">\n <img [src]=\"previewUrl\">\n <div class=\"gdpr-overlay\" [class.contrast-mode]=\"isContrastMode\">\n <ng-container *ngIf=\"isGdprGeneric()\">\n <div class=\"gdpr-content\">\n <h3>{{ 'RENDERING.GDPR.EXTERNAL_SITE' | translate }}</h3>\n <span>{{gdprInfoText}}</span>\n <a mat-button=\"outlined\" [href]=\"gdpr.ref\" target=\"_blank\">{{ 'RENDERING.GDPR.GDPR_REGULATIONS' | translate }}</a>\n <button\n mat-button\n (click)=\"consentToGdprWarning()\">\n {{ 'SHARING.LINK' | translate }}\n </button>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!isGdprGeneric()\">\n <div class=\"gdpr-content\">\n <h3>{{ 'RENDERING.GDPR.EXTERNAL_CONTENT' | translate }}</h3>\n <span>{{gdprInfoText}}</span>\n <span>{{'RENDERING.GDPR.FURTHER_INFORMATION' | translate }}</span>\n <a mat-button=\"outlined\" [href]=\"gdpr.ref\" target=\"_blank\">{{ 'RENDERING.GDPR.GDPR_REGULATIONS' | translate }}</a>\n <button\n mat-button\n (click)=\"consentToGdprWarning()\">\n {{ 'RENDERING.GDPR.AGREE_AND_CONTINUE' | translate }}\n </button>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n", styles: [":host{position:relative;display:flex;align-items:center;max-height:var(--containerHeight)}.url-wrapper{width:100%;max-height:var(--containerHeight)}.url-wrapper .audio-wrapper video[poster]{object-fit:cover}.url-wrapper .vimeoFrame,.url-wrapper .preziFrame{width:100%;aspect-ratio:16/9;border:none}.url-wrapper .image-wrapper>img{width:100%;height:auto}.url-wrapper .sodixFrame{border:none;width:100%;height:var(--containerHeight)}.url-wrapper .ltiFrame{border:none;width:100%;max-width:100%}.url-wrapper .gdpr-wrapper{width:100%;display:flex;flex-direction:column;align-items:center}.url-wrapper .gdpr-wrapper .gdpr-image-container{position:relative;width:100%;display:inline-block}.url-wrapper .gdpr-wrapper .gdpr-image-container img{width:100%;height:auto;max-height:var(--containerHeight);display:block}.url-wrapper .gdpr-wrapper .gdpr-image-container .gdpr-overlay{position:absolute;bottom:0;left:0;right:0;background-color:#0009;display:flex;align-items:center;justify-content:center}.url-wrapper .gdpr-wrapper .gdpr-image-container .gdpr-overlay.contrast-mode{background-color:#000}.url-wrapper .gdpr-wrapper .gdpr-image-container .gdpr-overlay .gdpr-content{display:flex;flex-direction:column;align-items:center;gap:.5em;color:#fff;text-align:center;padding-bottom:1em}.url-wrapper .gdpr-wrapper .gdpr-image-container .gdpr-overlay .gdpr-content a{color:#fff}.url-wrapper .gdpr-wrapper .gdpr-image-container .gdpr-overlay .gdpr-content a[mat-button=outlined]{border:1px solid white}.url-wrapper .gdpr-wrapper .gdpr-image-container .gdpr-overlay .gdpr-content span,.url-wrapper .gdpr-wrapper .gdpr-image-container .gdpr-overlay .gdpr-content a{font-size:.875rem}.url-wrapper .gdpr-wrapper .gdpr-image-container .gdpr-overlay .gdpr-content button{background-color:green;color:#fff}.url-wrapper .link-wrapper{width:100%;display:flex;flex-direction:column;align-items:center;gap:1em}.url-wrapper .link-wrapper img{width:100%;height:auto;max-height:calc(var(--containerHeight) - 60px);object-fit:contain;display:block}.url-wrapper .youtube-wrapper{width:100%;height:auto;display:flex;justify-content:center}\n"] }]
671
- }], ctorParameters: () => [{ type: i1$2.DomSanitizer }, { type: TrackingService }, { type: GdprService }, { type: i4$1.TranslateService }, { type: i1.EduSharingApiConfiguration }, { type: i2$1.AccessibilityService }, { type: i1$1.GlobalStateService }], propDecorators: { data: [{
682
+ }], ctorParameters: () => [{ type: i1$2.DomSanitizer }, { type: TrackingService }, { type: GdprService }, { type: i4$1.TranslateService }, { type: i1.EduSharingApiConfiguration }, { type: i4$2.AccessibilityService }, { type: i1$1.GlobalStateService }], propDecorators: { data: [{
672
683
  type: Input
673
684
  }], node: [{
674
685
  type: Input
@@ -1008,12 +1019,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
1008
1019
  }], ctorParameters: () => [{ type: i1$1.ModuleInfoControllerService }] });
1009
1020
 
1010
1021
  class RenderComponent {
1011
- constructor(platformLocation, trackingService, injector, envInjector, destroyRef, nodeHelperService, configuration) {
1022
+ constructor(platformLocation, trackingService, injector, envInjector, destroyRef, currentRootUrl, nodeHelperService, configuration) {
1012
1023
  this.platformLocation = platformLocation;
1013
1024
  this.trackingService = trackingService;
1014
1025
  this.injector = injector;
1015
1026
  this.envInjector = envInjector;
1016
1027
  this.destroyRef = destroyRef;
1028
+ this.currentRootUrl = currentRootUrl;
1017
1029
  this.nodeHelperService = nodeHelperService;
1018
1030
  this.configuration = configuration;
1019
1031
  this.activateServiceWorker = true;
@@ -1093,6 +1105,7 @@ class RenderComponent {
1093
1105
  });
1094
1106
  }
1095
1107
  resolveServices(baseUrl) {
1108
+ this.currentRootUrl.rootUrl = baseUrl;
1096
1109
  if (!baseUrl) {
1097
1110
  console.info('Using local rendering base url');
1098
1111
  return {
@@ -1106,15 +1119,14 @@ class RenderComponent {
1106
1119
  { provide: RSApiConfiguration, useValue: { rootUrl: baseUrl } },
1107
1120
  { provide: RenderControllerWrapperService, useClass: RenderControllerWrapperService },
1108
1121
  { provide: JobInfoControllerService, useClass: JobInfoControllerService },
1122
+ { provide: ModuleInfoControllerService, useClass: ModuleInfoControllerService },
1109
1123
  { provide: ModuleInfoService, useClass: ModuleInfoService },
1110
1124
  ], this.envInjector);
1111
- const render = child.get(RenderControllerWrapperService);
1112
- const jobInfo = child.get(JobInfoControllerService);
1113
- const moduleInfo = child.get(ModuleInfoService);
1114
- child.get(RSApiConfiguration).rootUrl = baseUrl;
1115
- console.info('scoped render rootUrl =', render.rootUrl, '/ config.rootUrl =', render.config?.rootUrl);
1116
- console.info('root render rootUrl =', this.injector.get(RenderControllerWrapperService).rootUrl);
1117
- return { render, jobInfo, moduleInfo };
1125
+ return {
1126
+ render: child.get(RenderControllerWrapperService),
1127
+ jobInfo: child.get(JobInfoControllerService),
1128
+ moduleInfo: child.get(ModuleInfoService),
1129
+ };
1118
1130
  }
1119
1131
  handleApiError(error) {
1120
1132
  const publicMessage = error.error.userMessage ?? 'GENERIC_ERROR_MESSAGE';
@@ -1269,12 +1281,13 @@ class RenderComponent {
1269
1281
  progress: progress
1270
1282
  });
1271
1283
  }
1272
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: RenderComponent, deps: [{ token: i2.PlatformLocation }, { token: TrackingService }, { token: i0.Injector }, { token: i0.EnvironmentInjector }, { token: i0.DestroyRef }, { token: i2$1.NodeHelperService }, { token: RENDERING_SERVICE_LIB_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
1284
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: RenderComponent, deps: [{ token: i2.PlatformLocation }, { token: TrackingService }, { token: i0.Injector }, { token: i0.EnvironmentInjector }, { token: i0.DestroyRef }, { token: CurrentRenderRootUrlService }, { token: i4$2.NodeHelperService }, { token: RENDERING_SERVICE_LIB_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
1273
1285
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: RenderComponent, isStandalone: true, selector: "rs-root", inputs: { request: "request", node: "node", serviceWorkerUrl: "serviceWorkerUrl", activateServiceWorker: "activateServiceWorker", assetUrl: "assetUrl", resourceUrl: "resourceUrl", isWebComponent: "isWebComponent" }, providers: [
1274
- TranslateService
1275
- ], usesOnChanges: true, ngImport: i0, template: "@defer (when node && this.nodeHelperService.isNodeRevoked(node)){\n <rs-revoked [node]=\"node\"></rs-revoked>\n}\n@defer (when node && !(this.nodeHelperService.isNodeRevoked(node) && node.size === '0')) {\n <div class=\"module module-{{(renderData$ | async)?.module}}\">\n <ng-container *ngIf=\"renderData$ | async as data\">\n @defer (when data?.module === 'IMAGE'){\n <rs-module-image [data]=\"data\" [node]=\"node\"></rs-module-image>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'SODIX'){\n <rs-module-url [data]=\"data\" [node]=\"node\"></rs-module-url>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'VIDEO'){\n <rs-module-video [data]=\"data\" [node]=\"node\"></rs-module-video>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when (data?.module === 'PDF' || data?.module === 'DOCUMENT') && isWebComponent) {\n <rs-module-pdf-iframe [data]=\"data\" [node]=\"node\"></rs-module-pdf-iframe>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when (data?.module === 'PDF' || data?.module === 'DOCUMENT') && !isWebComponent) {\n <rs-module-pdf [data]=\"data\" [node]=\"node\"></rs-module-pdf>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'EDUHTML' || data?.module === 'JUPYTER' || data.module === 'SPREADSHEET' || data.module === 'HTML') {\n <rs-module-edu-html [data]=\"data\" [node]=\"node\"></rs-module-edu-html>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'H5P'){\n <rs-module-h5p [data]=\"data\" [node]=\"node\"></rs-module-h5p>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'AUDIO'){\n <rs-module-audio [data]=\"data\" [node]=\"node\"></rs-module-audio>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'MOODLE') {\n <rs-module-moodle [data]=\"data\" [node]=\"node\" [isWebComponent]=\"isWebComponent\"></rs-module-moodle>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'BINDER'){\n <rs-module-binder [data]=\"data\" [node]=\"node\"></rs-module-binder>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'DDB'){\n <rs-module-ddb [data]=\"data\" [node]=\"node\"></rs-module-ddb>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n <ng-container *ngIf=\"data.module === 'default'\">\n @defer (when data.module === 'default') {\n <rs-module-default [node]=\"node\"></rs-module-default>\n }\n </ng-container>\n <ng-container *ngIf=\"data.module === 'url'\">\n @defer (when data.module === 'url') {\n <rs-module-url [node]=\"node\" [data]=\"data\" [isWebComponent]=\"isWebComponent\"></rs-module-url>\n }\n </ng-container>\n <ng-container *ngIf=\"data.module === 'ERROR'\">\n @defer (when data.module === 'ERROR') {\n <rs-module-error [node]=\"node\" [data]=\"data\"></rs-module-error>\n }\n </ng-container>\n </ng-container>\n <div class=\"progress\" *ngIf=\"(renderData$ | async) === null;\">\n <ng-container *ngIf=\"progress$ | async as progress\">\n <ng-container [ngSwitch]=\"['VIDEO', 'AUDIO'].includes(progress.module) ? 'bar' : 'spinner'\">\n <ng-container *ngSwitchCase=\"'bar'\">\n <div *ngIf=\"(progress.progress ?? 0) < 0\">{{ 'RENDERING.QUEUE_POSITION' | translate }}: {{-(progress.progress ?? 0)}}</div>\n <div *ngIf=\"(progress.progress ?? 0) >= 0\">{{ 'RENDERING.CONVERTING' | translate }}</div>\n <div *ngIf=\"(progress.progress ?? 0) >= 0\">\n <mat-progress-bar [value]=\"(progress.progress ?? 0)\"></mat-progress-bar>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'spinner'\">\n <div *ngIf=\"(progress.progress ?? 0) < 0\">{{ 'RENDERING.QUEUE_POSITION' | translate }}: {{-(progress.progress ?? 0)}}</div>\n <div *ngIf=\"(progress.progress ?? 0) >= 0\">{{ 'RENDERING.CONVERTING' | translate }}</div>\n <div *ngIf=\"(progress.progress ?? 0) >= 0\">\n <mat-spinner [diameter]=\"50\"></mat-spinner>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n}\n<ng-template #loading>\n <div class=\"progress\">\n <mat-spinner></mat-spinner>\n </div>\n</ng-template>\n", styles: [":host{display:flex;flex-direction:column;gap:20px}.module{display:flex;flex-direction:column;gap:5px;height:auto}.module.module-PDF{height:100%}.module.module-{align-items:center}.module .progress{width:80%;min-height:80px;display:flex;justify-content:center;flex-grow:1;align-items:center;flex-direction:column;gap:10px}.module .progress>div{width:100%;display:flex;justify-content:center}.module .progress mat-progress-bar{width:100%;height:4px}\n"], dependencies: [{ kind: "ngmodule", type: RenderingApiModule }, { kind: "ngmodule", type: RenderingModule }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i4$3.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: EduSharingApiModule }, { kind: "ngmodule", type: EduSharingUiCommonModule }, { kind: "ngmodule", type: TranslateModule }], deferBlockDependencies: [() => [Promise.resolve().then(function () { return revoked_component; }).then(m => m.RevokedComponent)], () => [i2.NgIf, i2.NgTemplateOutlet, i2.NgSwitch, i2.NgSwitchCase, i2.AsyncPipe, i4$3.MatProgressSpinner, i5.MatProgressBar, i4$1.TranslatePipe], () => [Promise.resolve().then(function () { return image_component; }).then(m => m.ImageComponent)], () => [Promise.resolve().then(function () { return url_component; }).then(m => m.UrlComponent)], () => [Promise.resolve().then(function () { return video_component; }).then(m => m.VideoComponent)], () => [Promise.resolve().then(function () { return pdfIframe_component; }).then(m => m.PdfIframeComponent)], () => [Promise.resolve().then(function () { return pdf_component; }).then(m => m.PdfComponent)], () => [Promise.resolve().then(function () { return eduHtml_component; }).then(m => m.EduHtmlComponent)], () => [import('./ngx-rendering-service-lib-h5p.component-CPxi6pWu.mjs').then(m => m.H5pComponent)], () => [import('./ngx-rendering-service-lib-audio.component-BHG-msJn.mjs').then(m => m.AudioComponent)], () => [import('./ngx-rendering-service-lib-moodle.component-Chz4jEFG.mjs').then(m => m.MoodleComponent)], () => [import('./ngx-rendering-service-lib-binder.component-BIOkMSvM.mjs').then(m => m.BinderComponent)], () => [import('./ngx-rendering-service-lib-ddb.component-CVgi1ocu.mjs').then(m => m.DdbComponent)], () => [import('./ngx-rendering-service-lib-default.component-D1_Wt37g.mjs').then(m => m.DefaultComponent)], () => [Promise.resolve().then(function () { return url_component; }).then(m => m.UrlComponent)], () => [import('./ngx-rendering-service-lib-error.component-C29LYchz.mjs').then(m => m.ErrorComponent)]] }); }
1286
+ TranslateService,
1287
+ CurrentRenderRootUrlService,
1288
+ ], usesOnChanges: true, ngImport: i0, template: "@defer (when node && this.nodeHelperService.isNodeRevoked(node)){\n <rs-revoked [node]=\"node\"></rs-revoked>\n}\n@defer (when node && !(this.nodeHelperService.isNodeRevoked(node) && node.size === '0')) {\n <div class=\"module module-{{(renderData$ | async)?.module}}\">\n <ng-container *ngIf=\"renderData$ | async as data\">\n @defer (when data?.module === 'IMAGE'){\n <rs-module-image [data]=\"data\" [node]=\"node\"></rs-module-image>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'SODIX'){\n <rs-module-url [data]=\"data\" [node]=\"node\"></rs-module-url>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'VIDEO'){\n <rs-module-video [data]=\"data\" [node]=\"node\"></rs-module-video>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when (data?.module === 'PDF' || data?.module === 'DOCUMENT') && isWebComponent) {\n <rs-module-pdf-iframe [data]=\"data\" [node]=\"node\"></rs-module-pdf-iframe>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when (data?.module === 'PDF' || data?.module === 'DOCUMENT') && !isWebComponent) {\n <rs-module-pdf [data]=\"data\" [node]=\"node\"></rs-module-pdf>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'EDUHTML' || data?.module === 'JUPYTER' || data.module === 'SPREADSHEET' || data.module === 'HTML') {\n <rs-module-edu-html [data]=\"data\" [node]=\"node\"></rs-module-edu-html>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'H5P'){\n <rs-module-h5p [data]=\"data\" [node]=\"node\"></rs-module-h5p>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'AUDIO'){\n <rs-module-audio [data]=\"data\" [node]=\"node\"></rs-module-audio>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'MOODLE') {\n <rs-module-moodle [data]=\"data\" [node]=\"node\" [isWebComponent]=\"isWebComponent\"></rs-module-moodle>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'BINDER'){\n <rs-module-binder [data]=\"data\" [node]=\"node\"></rs-module-binder>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'DDB'){\n <rs-module-ddb [data]=\"data\" [node]=\"node\"></rs-module-ddb>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n <ng-container *ngIf=\"data.module === 'default'\">\n @defer (when data.module === 'default') {\n <rs-module-default [node]=\"node\"></rs-module-default>\n }\n </ng-container>\n <ng-container *ngIf=\"data.module === 'url'\">\n @defer (when data.module === 'url') {\n <rs-module-url [node]=\"node\" [data]=\"data\" [isWebComponent]=\"isWebComponent\"></rs-module-url>\n }\n </ng-container>\n <ng-container *ngIf=\"data.module === 'ERROR'\">\n @defer (when data.module === 'ERROR') {\n <rs-module-error [node]=\"node\" [data]=\"data\"></rs-module-error>\n }\n </ng-container>\n </ng-container>\n <div class=\"progress\" *ngIf=\"(renderData$ | async) === null;\">\n <ng-container *ngIf=\"progress$ | async as progress\">\n <ng-container [ngSwitch]=\"['VIDEO', 'AUDIO'].includes(progress.module) ? 'bar' : 'spinner'\">\n <ng-container *ngSwitchCase=\"'bar'\">\n <div *ngIf=\"(progress.progress ?? 0) < 0\">{{ 'RENDERING.QUEUE_POSITION' | translate }}: {{-(progress.progress ?? 0)}}</div>\n <div *ngIf=\"(progress.progress ?? 0) >= 0\">{{ 'RENDERING.CONVERTING' | translate }}</div>\n <div *ngIf=\"(progress.progress ?? 0) >= 0\">\n <mat-progress-bar [value]=\"(progress.progress ?? 0)\"></mat-progress-bar>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'spinner'\">\n <div *ngIf=\"(progress.progress ?? 0) < 0\">{{ 'RENDERING.QUEUE_POSITION' | translate }}: {{-(progress.progress ?? 0)}}</div>\n <div *ngIf=\"(progress.progress ?? 0) >= 0\">{{ 'RENDERING.CONVERTING' | translate }}</div>\n <div *ngIf=\"(progress.progress ?? 0) >= 0\">\n <mat-spinner [diameter]=\"50\"></mat-spinner>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n}\n<ng-template #loading>\n <div class=\"progress\">\n <mat-spinner></mat-spinner>\n </div>\n</ng-template>\n", styles: [":host{display:flex;flex-direction:column;gap:20px}.module{display:flex;flex-direction:column;gap:5px;height:auto}.module.module-PDF{height:100%}.module.module-{align-items:center}.module .progress{width:80%;min-height:80px;display:flex;justify-content:center;flex-grow:1;align-items:center;flex-direction:column;gap:10px}.module .progress>div{width:100%;display:flex;justify-content:center}.module .progress mat-progress-bar{width:100%;height:4px}\n"], dependencies: [{ kind: "ngmodule", type: RenderingApiModule }, { kind: "ngmodule", type: RenderingModule }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: EduSharingApiModule }, { kind: "ngmodule", type: EduSharingUiCommonModule }, { kind: "ngmodule", type: TranslateModule }], deferBlockDependencies: [() => [Promise.resolve().then(function () { return revoked_component; }).then(m => m.RevokedComponent)], () => [i2.NgIf, i2.NgTemplateOutlet, i2.NgSwitch, i2.NgSwitchCase, i2.AsyncPipe, i5.MatProgressSpinner, i6.MatProgressBar, i4$1.TranslatePipe], () => [Promise.resolve().then(function () { return image_component; }).then(m => m.ImageComponent)], () => [Promise.resolve().then(function () { return url_component; }).then(m => m.UrlComponent)], () => [Promise.resolve().then(function () { return video_component; }).then(m => m.VideoComponent)], () => [Promise.resolve().then(function () { return pdfIframe_component; }).then(m => m.PdfIframeComponent)], () => [Promise.resolve().then(function () { return pdf_component; }).then(m => m.PdfComponent)], () => [Promise.resolve().then(function () { return eduHtml_component; }).then(m => m.EduHtmlComponent)], () => [import('./ngx-rendering-service-lib-h5p.component-DAfGHJvJ.mjs').then(m => m.H5pComponent)], () => [import('./ngx-rendering-service-lib-audio.component-BCMbYDVH.mjs').then(m => m.AudioComponent)], () => [import('./ngx-rendering-service-lib-moodle.component-BXvR4xSJ.mjs').then(m => m.MoodleComponent)], () => [import('./ngx-rendering-service-lib-binder.component-Cqekah6Z.mjs').then(m => m.BinderComponent)], () => [import('./ngx-rendering-service-lib-ddb.component-B0fyWhTw.mjs').then(m => m.DdbComponent)], () => [import('./ngx-rendering-service-lib-default.component-DPBhpamB.mjs').then(m => m.DefaultComponent)], () => [Promise.resolve().then(function () { return url_component; }).then(m => m.UrlComponent)], () => [import('./ngx-rendering-service-lib-error.component-Dp6yNgd-.mjs').then(m => m.ErrorComponent)]] }); }
1276
1289
  }
1277
- i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "19.2.14", ngImport: i0, type: RenderComponent, resolveDeferredDeps: () => [Promise.resolve().then(function () { return revoked_component; }).then(m => m.RevokedComponent), Promise.resolve().then(function () { return image_component; }).then(m => m.ImageComponent), Promise.resolve().then(function () { return url_component; }).then(m => m.UrlComponent), Promise.resolve().then(function () { return video_component; }).then(m => m.VideoComponent), Promise.resolve().then(function () { return pdfIframe_component; }).then(m => m.PdfIframeComponent), Promise.resolve().then(function () { return pdf_component; }).then(m => m.PdfComponent), Promise.resolve().then(function () { return eduHtml_component; }).then(m => m.EduHtmlComponent), import('./ngx-rendering-service-lib-h5p.component-CPxi6pWu.mjs').then(m => m.H5pComponent), import('./ngx-rendering-service-lib-audio.component-BHG-msJn.mjs').then(m => m.AudioComponent), import('./ngx-rendering-service-lib-moodle.component-Chz4jEFG.mjs').then(m => m.MoodleComponent), import('./ngx-rendering-service-lib-binder.component-BIOkMSvM.mjs').then(m => m.BinderComponent), import('./ngx-rendering-service-lib-ddb.component-CVgi1ocu.mjs').then(m => m.DdbComponent), import('./ngx-rendering-service-lib-default.component-D1_Wt37g.mjs').then(m => m.DefaultComponent), import('./ngx-rendering-service-lib-error.component-C29LYchz.mjs').then(m => m.ErrorComponent)], resolveMetadata: (RevokedComponent, ImageComponent, UrlComponent, VideoComponent, PdfIframeComponent, PdfComponent, EduHtmlComponent, H5pComponent, AudioComponent, MoodleComponent, BinderComponent, DdbComponent, DefaultComponent, ErrorComponent) => ({ decorators: [{
1290
+ i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "19.2.14", ngImport: i0, type: RenderComponent, resolveDeferredDeps: () => [Promise.resolve().then(function () { return revoked_component; }).then(m => m.RevokedComponent), Promise.resolve().then(function () { return image_component; }).then(m => m.ImageComponent), Promise.resolve().then(function () { return url_component; }).then(m => m.UrlComponent), Promise.resolve().then(function () { return video_component; }).then(m => m.VideoComponent), Promise.resolve().then(function () { return pdfIframe_component; }).then(m => m.PdfIframeComponent), Promise.resolve().then(function () { return pdf_component; }).then(m => m.PdfComponent), Promise.resolve().then(function () { return eduHtml_component; }).then(m => m.EduHtmlComponent), import('./ngx-rendering-service-lib-h5p.component-DAfGHJvJ.mjs').then(m => m.H5pComponent), import('./ngx-rendering-service-lib-audio.component-BCMbYDVH.mjs').then(m => m.AudioComponent), import('./ngx-rendering-service-lib-moodle.component-BXvR4xSJ.mjs').then(m => m.MoodleComponent), import('./ngx-rendering-service-lib-binder.component-Cqekah6Z.mjs').then(m => m.BinderComponent), import('./ngx-rendering-service-lib-ddb.component-B0fyWhTw.mjs').then(m => m.DdbComponent), import('./ngx-rendering-service-lib-default.component-DPBhpamB.mjs').then(m => m.DefaultComponent), import('./ngx-rendering-service-lib-error.component-Dp6yNgd-.mjs').then(m => m.ErrorComponent)], resolveMetadata: (RevokedComponent, ImageComponent, UrlComponent, VideoComponent, PdfIframeComponent, PdfComponent, EduHtmlComponent, H5pComponent, AudioComponent, MoodleComponent, BinderComponent, DdbComponent, DefaultComponent, ErrorComponent) => ({ decorators: [{
1278
1291
  type: Component,
1279
1292
  args: [{ selector: 'rs-root', imports: [
1280
1293
  RenderingApiModule,
@@ -1300,9 +1313,10 @@ i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "19.2.14", n
1300
1313
  MoodleComponent,
1301
1314
  H5pComponent,
1302
1315
  ], providers: [
1303
- TranslateService
1316
+ TranslateService,
1317
+ CurrentRenderRootUrlService,
1304
1318
  ], template: "@defer (when node && this.nodeHelperService.isNodeRevoked(node)){\n <rs-revoked [node]=\"node\"></rs-revoked>\n}\n@defer (when node && !(this.nodeHelperService.isNodeRevoked(node) && node.size === '0')) {\n <div class=\"module module-{{(renderData$ | async)?.module}}\">\n <ng-container *ngIf=\"renderData$ | async as data\">\n @defer (when data?.module === 'IMAGE'){\n <rs-module-image [data]=\"data\" [node]=\"node\"></rs-module-image>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'SODIX'){\n <rs-module-url [data]=\"data\" [node]=\"node\"></rs-module-url>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'VIDEO'){\n <rs-module-video [data]=\"data\" [node]=\"node\"></rs-module-video>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when (data?.module === 'PDF' || data?.module === 'DOCUMENT') && isWebComponent) {\n <rs-module-pdf-iframe [data]=\"data\" [node]=\"node\"></rs-module-pdf-iframe>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when (data?.module === 'PDF' || data?.module === 'DOCUMENT') && !isWebComponent) {\n <rs-module-pdf [data]=\"data\" [node]=\"node\"></rs-module-pdf>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'EDUHTML' || data?.module === 'JUPYTER' || data.module === 'SPREADSHEET' || data.module === 'HTML') {\n <rs-module-edu-html [data]=\"data\" [node]=\"node\"></rs-module-edu-html>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'H5P'){\n <rs-module-h5p [data]=\"data\" [node]=\"node\"></rs-module-h5p>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'AUDIO'){\n <rs-module-audio [data]=\"data\" [node]=\"node\"></rs-module-audio>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'MOODLE') {\n <rs-module-moodle [data]=\"data\" [node]=\"node\" [isWebComponent]=\"isWebComponent\"></rs-module-moodle>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'BINDER'){\n <rs-module-binder [data]=\"data\" [node]=\"node\"></rs-module-binder>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'DDB'){\n <rs-module-ddb [data]=\"data\" [node]=\"node\"></rs-module-ddb>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n <ng-container *ngIf=\"data.module === 'default'\">\n @defer (when data.module === 'default') {\n <rs-module-default [node]=\"node\"></rs-module-default>\n }\n </ng-container>\n <ng-container *ngIf=\"data.module === 'url'\">\n @defer (when data.module === 'url') {\n <rs-module-url [node]=\"node\" [data]=\"data\" [isWebComponent]=\"isWebComponent\"></rs-module-url>\n }\n </ng-container>\n <ng-container *ngIf=\"data.module === 'ERROR'\">\n @defer (when data.module === 'ERROR') {\n <rs-module-error [node]=\"node\" [data]=\"data\"></rs-module-error>\n }\n </ng-container>\n </ng-container>\n <div class=\"progress\" *ngIf=\"(renderData$ | async) === null;\">\n <ng-container *ngIf=\"progress$ | async as progress\">\n <ng-container [ngSwitch]=\"['VIDEO', 'AUDIO'].includes(progress.module) ? 'bar' : 'spinner'\">\n <ng-container *ngSwitchCase=\"'bar'\">\n <div *ngIf=\"(progress.progress ?? 0) < 0\">{{ 'RENDERING.QUEUE_POSITION' | translate }}: {{-(progress.progress ?? 0)}}</div>\n <div *ngIf=\"(progress.progress ?? 0) >= 0\">{{ 'RENDERING.CONVERTING' | translate }}</div>\n <div *ngIf=\"(progress.progress ?? 0) >= 0\">\n <mat-progress-bar [value]=\"(progress.progress ?? 0)\"></mat-progress-bar>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'spinner'\">\n <div *ngIf=\"(progress.progress ?? 0) < 0\">{{ 'RENDERING.QUEUE_POSITION' | translate }}: {{-(progress.progress ?? 0)}}</div>\n <div *ngIf=\"(progress.progress ?? 0) >= 0\">{{ 'RENDERING.CONVERTING' | translate }}</div>\n <div *ngIf=\"(progress.progress ?? 0) >= 0\">\n <mat-spinner [diameter]=\"50\"></mat-spinner>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n}\n<ng-template #loading>\n <div class=\"progress\">\n <mat-spinner></mat-spinner>\n </div>\n</ng-template>\n", styles: [":host{display:flex;flex-direction:column;gap:20px}.module{display:flex;flex-direction:column;gap:5px;height:auto}.module.module-PDF{height:100%}.module.module-{align-items:center}.module .progress{width:80%;min-height:80px;display:flex;justify-content:center;flex-grow:1;align-items:center;flex-direction:column;gap:10px}.module .progress>div{width:100%;display:flex;justify-content:center}.module .progress mat-progress-bar{width:100%;height:4px}\n"] }]
1305
- }], ctorParameters: () => [{ type: i2.PlatformLocation }, { type: TrackingService }, { type: i0.Injector }, { type: i0.EnvironmentInjector }, { type: i0.DestroyRef }, { type: i2$1.NodeHelperService }, { type: RenderingServiceLibConfiguration, decorators: [{
1319
+ }], ctorParameters: () => [{ type: i2.PlatformLocation }, { type: TrackingService }, { type: i0.Injector }, { type: i0.EnvironmentInjector }, { type: i0.DestroyRef }, { type: CurrentRenderRootUrlService }, { type: i4$2.NodeHelperService }, { type: RenderingServiceLibConfiguration, decorators: [{
1306
1320
  type: Optional
1307
1321
  }, {
1308
1322
  type: Inject,
@@ -1340,7 +1354,7 @@ class RevokedComponent {
1340
1354
  });
1341
1355
  }
1342
1356
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: RevokedComponent, deps: [{ token: DialogsService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
1343
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: RevokedComponent, isStandalone: true, selector: "rs-revoked", inputs: { node: "node" }, ngImport: i0, template: "<div class=\"revoked\">\n <!--<h1 class=\"mat-heading-1\">{{ node!! | nodeTitle }}</h1>-->\n <es-info-message mode=\"warning\" class=\"details-message\">{{\n 'RENDERING.REVOKED.DETAILS' + (node?.size === '0' ? '_EMPTY' : '') | translate\n }}</es-info-message>\n <div class=\"details\">\n <div class=\"date\">\n <label for=\"revoked-date\">{{ 'RENDERING.REVOKED.DATE' | translate }}:</label\n ><span\n id=\"revoked-date\"\n >{{ node?.properties?.['ccm:revoked_date_LONG']?.[0]!! | formatDate:{relative: false, time: false} }}</span\n >\n </div>\n <div class=\"reason\">\n <label for=\"revoked-reason\">{{ 'RENDERING.REVOKED.REASON' | translate }}:</label\n ><span id=\"revoked-reason\">{{ node?.properties?.['ccm:revoked_reason']?.join('') }}</span>\n </div>\n </div>\n <div class=\"actions\">\n <button mat-button color=\"primary\" (click)=\"reportRevokeFeedback()\" *ngIf=\"dialogsService\">\n <i esIcon=\"arrow_forward\"></i>{{ 'RENDERING.REVOKED.FEEDBACK' | translate }}\n </button>\n </div>\n</div>\n", styles: [":root{--primary: var(--palette-primary-500);--warning: #cd2457;--aiColor: #2c0799;--aiColorChipBg: color-mix(in srgb, var(--aiColor), #fff 75%);--aiColorText: #fff;--aiColorChip: #fff;--aiColorChipRemove: #555;--aiColorChipBorder: #ddd;--aiColorChipText: var(--aiColor);--tableIconSize: 38px;--textLight: #585858;--textMediumLight: #888;--textMain: #383838;--cardWidth: 240px;--chipsSeperatorLineColor: #e2e2e2;--colorStatusPositive: #40bf8e;--colorStatusNegative: var(--warning);--colorStarActive: #ba7c00;--nodeVirtualColor: #42ca8d;--nodeVirtualColorLight: #b8fcdd;--transitionNormal: .2s;--genericSeperatorLineColor: #ececec;--tableSeperatorLineColor: #d2d2d2;--focusColor: var(--palette-primary-300);--focusWidth: 2px;--fontSizeXSmall: 85%;--topBarSearchFocusColor: var(--palette-primary-300);--workspaceTopBarSafeBackground: #963a3a;--workspaceTopBarNewAlpha: .1;--itemSelectedTextColor: var(--palette-primary-700);--listItemSelectedBackground: var(--palette-primary-50);--listItemSelectedBackgroundEffect: linear-gradient( to right, var(--primary) 0, var(--primary) 5px, var(--palette-primary-50) 5px, var(--palette-primary-50) 5px ) no-repeat}:host ::ng-deep .revoked es-info-message .message-container{white-space:pre-line}.revoked{max-width:700px;margin:auto;padding:30px 20px}.revoked>*{text-align:center;justify-content:center;color:#383838}.revoked .details-message{display:flex;margin-bottom:30px}.revoked .details{display:flex;flex-direction:column;gap:10px}.revoked .details label{font-size:90%;color:var(--textLight)}.revoked .details .reason>span{white-space:pre-line}.revoked .details>div{display:flex;flex-direction:column}.revoked .actions{padding-top:30px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: InfoMessageComponent, selector: "es-info-message", inputs: ["message", "mode"] }, { kind: "ngmodule", type: EduSharingUiCommonModule }, { kind: "pipe", type: i2$1.FormatDatePipe, name: "formatDate" }, { kind: "directive", type: i2$1.IconDirective, selector: "i[esIcon], i.material-icons", inputs: ["altText", "aria", "esIcon", "esIconContext"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4$1.TranslatePipe, name: "translate" }] }); }
1357
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: RevokedComponent, isStandalone: true, selector: "rs-revoked", inputs: { node: "node" }, ngImport: i0, template: "<div class=\"revoked\">\n <!--<h1 class=\"mat-heading-1\">{{ node!! | nodeTitle }}</h1>-->\n <es-info-message mode=\"warning\" class=\"details-message\">{{\n 'RENDERING.REVOKED.DETAILS' + (node?.size === '0' ? '_EMPTY' : '') | translate\n }}</es-info-message>\n <div class=\"details\">\n <div class=\"date\">\n <label for=\"revoked-date\">{{ 'RENDERING.REVOKED.DATE' | translate }}:</label\n ><span\n id=\"revoked-date\"\n >{{ node?.properties?.['ccm:revoked_date_LONG']?.[0]!! | formatDate:{relative: false, time: false} }}</span\n >\n </div>\n <div class=\"reason\">\n <label for=\"revoked-reason\">{{ 'RENDERING.REVOKED.REASON' | translate }}:</label\n ><span id=\"revoked-reason\">{{ node?.properties?.['ccm:revoked_reason']?.join('') }}</span>\n </div>\n </div>\n <div class=\"actions\">\n <button mat-button color=\"primary\" (click)=\"reportRevokeFeedback()\" *ngIf=\"dialogsService\">\n <i esIcon=\"arrow_forward\"></i>{{ 'RENDERING.REVOKED.FEEDBACK' | translate }}\n </button>\n </div>\n</div>\n", styles: [":root{--primary: var(--palette-primary-500);--warning: #cd2457;--aiColor: #2c0799;--aiColorChipBg: color-mix(in srgb, var(--aiColor), #fff 75%);--aiColorText: #fff;--aiColorChip: #fff;--aiColorChipRemove: #555;--aiColorChipBorder: #ddd;--aiColorChipText: var(--aiColor);--tableIconSize: 38px;--textLight: #585858;--textMediumLight: #888;--textMain: #383838;--cardWidth: 240px;--chipsSeperatorLineColor: #e2e2e2;--colorStatusPositive: #40bf8e;--colorStatusNegative: var(--warning);--colorStarActive: #ba7c00;--nodeVirtualColor: #42ca8d;--nodeVirtualColorLight: #b8fcdd;--transitionNormal: .2s;--genericSeperatorLineColor: #ececec;--tableSeperatorLineColor: #d2d2d2;--focusColor: var(--palette-primary-300);--focusWidth: 2px;--fontSizeXSmall: 85%;--topBarSearchFocusColor: var(--palette-primary-300);--workspaceTopBarSafeBackground: #963a3a;--workspaceTopBarNewAlpha: .1;--itemSelectedTextColor: var(--palette-primary-700);--listItemSelectedBackground: var(--palette-primary-50);--listItemSelectedBackgroundEffect: linear-gradient( to right, var(--primary) 0, var(--primary) 5px, var(--palette-primary-50) 5px, var(--palette-primary-50) 5px ) no-repeat}:host ::ng-deep .revoked es-info-message .message-container{white-space:pre-line}.revoked{max-width:700px;margin:auto;padding:30px 20px}.revoked>*{text-align:center;justify-content:center;color:#383838}.revoked .details-message{display:flex;margin-bottom:30px}.revoked .details{display:flex;flex-direction:column;gap:10px}.revoked .details label{font-size:90%;color:var(--textLight)}.revoked .details .reason>span{white-space:pre-line}.revoked .details>div{display:flex;flex-direction:column}.revoked .actions{padding-top:30px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: InfoMessageComponent, selector: "es-info-message", inputs: ["message", "mode"] }, { kind: "ngmodule", type: EduSharingUiCommonModule }, { kind: "pipe", type: i4$2.FormatDatePipe, name: "formatDate" }, { kind: "directive", type: i4$2.IconDirective, selector: "i[esIcon], i.material-icons", inputs: ["altText", "aria", "esIcon", "esIconContext"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4$1.TranslatePipe, name: "translate" }] }); }
1344
1358
  }
1345
1359
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: RevokedComponent, decorators: [{
1346
1360
  type: Component,
@@ -1405,4 +1419,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
1405
1419
  */
1406
1420
 
1407
1421
  export { AssetLinkPipe as A, DialogsService as D, EduHtmlComponent as E, GdprService as G, ImageComponent as I, ModuleInfoService as M, PdfComponent as P, RENDERING_SERVICE_LIB_CONFIG as R, TrackingService as T, UrlComponent as U, VideoComponent as V, RenderingModule as a, RenderingServiceLibConfiguration as b, PdfIframeComponent as c, RenderComponent as d, RevokedComponent as e, RenderingServiceLibModule as f };
1408
- //# sourceMappingURL=ngx-rendering-service-lib-ngx-rendering-service-lib-DYUwBoKX.mjs.map
1422
+ //# sourceMappingURL=ngx-rendering-service-lib-ngx-rendering-service-lib-Bxsjd3lm.mjs.map