ngx-rendering-service-lib 0.1.6 → 0.1.8

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 (20) hide show
  1. package/fesm2022/{ngx-rendering-service-lib-audio.component-BMryQbt4.mjs → ngx-rendering-service-lib-audio.component-C6xB3sSv.mjs} +2 -2
  2. package/fesm2022/{ngx-rendering-service-lib-audio.component-BMryQbt4.mjs.map → ngx-rendering-service-lib-audio.component-C6xB3sSv.mjs.map} +1 -1
  3. package/fesm2022/{ngx-rendering-service-lib-binder.component-CToLjTo1.mjs → ngx-rendering-service-lib-binder.component-D9LXNylY.mjs} +2 -2
  4. package/fesm2022/{ngx-rendering-service-lib-binder.component-CToLjTo1.mjs.map → ngx-rendering-service-lib-binder.component-D9LXNylY.mjs.map} +1 -1
  5. package/fesm2022/{ngx-rendering-service-lib-ddb.component-DcC_1-cN.mjs → ngx-rendering-service-lib-ddb.component-B4D3vyAw.mjs} +2 -2
  6. package/fesm2022/{ngx-rendering-service-lib-ddb.component-DcC_1-cN.mjs.map → ngx-rendering-service-lib-ddb.component-B4D3vyAw.mjs.map} +1 -1
  7. package/fesm2022/{ngx-rendering-service-lib-default.component-CcoF3xIt.mjs → ngx-rendering-service-lib-default.component-C6aCLEvg.mjs} +2 -2
  8. package/fesm2022/{ngx-rendering-service-lib-default.component-CcoF3xIt.mjs.map → ngx-rendering-service-lib-default.component-C6aCLEvg.mjs.map} +1 -1
  9. package/fesm2022/{ngx-rendering-service-lib-error.component-C5ElpxNO.mjs → ngx-rendering-service-lib-error.component-BOomz7QZ.mjs} +4 -4
  10. package/fesm2022/{ngx-rendering-service-lib-error.component-C5ElpxNO.mjs.map → ngx-rendering-service-lib-error.component-BOomz7QZ.mjs.map} +1 -1
  11. package/fesm2022/{ngx-rendering-service-lib-h5p.component-D4Xiue_W.mjs → ngx-rendering-service-lib-h5p.component-DlFVy4uD.mjs} +2 -2
  12. package/fesm2022/{ngx-rendering-service-lib-h5p.component-D4Xiue_W.mjs.map → ngx-rendering-service-lib-h5p.component-DlFVy4uD.mjs.map} +1 -1
  13. package/fesm2022/{ngx-rendering-service-lib-moodle.component-BWAGEimd.mjs → ngx-rendering-service-lib-moodle.component-JBzb9loF.mjs} +2 -2
  14. package/fesm2022/{ngx-rendering-service-lib-moodle.component-BWAGEimd.mjs.map → ngx-rendering-service-lib-moodle.component-JBzb9loF.mjs.map} +1 -1
  15. package/fesm2022/{ngx-rendering-service-lib-ngx-rendering-service-lib-CiwU3Ue9.mjs → ngx-rendering-service-lib-ngx-rendering-service-lib-43EhWUx7.mjs} +23 -85
  16. package/fesm2022/ngx-rendering-service-lib-ngx-rendering-service-lib-43EhWUx7.mjs.map +1 -0
  17. package/fesm2022/ngx-rendering-service-lib.mjs +1 -1
  18. package/lib/render.component.d.ts +4 -9
  19. package/package.json +1 -1
  20. package/fesm2022/ngx-rendering-service-lib-ngx-rendering-service-lib-CiwU3Ue9.mjs.map +0 -1
@@ -12,18 +12,18 @@ 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 i4$2 from 'ngx-edu-sharing-ui';
15
+ import * as i6 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$3 from 'ngx-extended-pdf-viewer';
19
+ import * as i4$2 from 'ngx-extended-pdf-viewer';
20
20
  import { AnnotationEditorType, pdfDefaultOptions, NgxExtendedPdfViewerModule, NgxExtendedPdfViewerComponent } from 'ngx-extended-pdf-viewer';
21
21
  import { firstValueFrom, Subject, BehaviorSubject, debounceTime, switchMap, interval, takeUntil, exhaustMap } from 'rxjs';
22
22
  import * as i1$2 from '@angular/platform-browser';
23
23
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
24
- import * as i5 from '@angular/material/progress-spinner';
24
+ import * as i4$3 from '@angular/material/progress-spinner';
25
25
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
26
- import * as i6 from '@angular/material/progress-bar';
26
+ import * as i6$1 from '@angular/material/progress-bar';
27
27
  import { MatProgressBarModule } from '@angular/material/progress-bar';
28
28
  import { filter } from 'rxjs/operators';
29
29
 
@@ -354,8 +354,8 @@ class PdfComponent {
354
354
  }
355
355
  }
356
356
  }
357
- 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 }); }
358
- 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 [enableDragAndDrop]=\"false\"\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]=\"'var(--containerHeight, 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%;max-height:var(--containerHeight, none);overflow:hidden}:host ::ng-deep ngx-extended-pdf-viewer,:host ::ng-deep ngx-extended-pdf-viewer .zoom{max-height:var(--containerHeight, none)}.pdf-wrapper{width:100%;height:100%;max-height:var(--containerHeight, none)}@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"] }] }); }
357
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PdfComponent, deps: [{ token: i1$1.AssetControllerService }, { token: i6.NodeHelperService }, { token: RENDERING_SERVICE_LIB_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
358
+ 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 [enableDragAndDrop]=\"false\"\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]=\"'var(--containerHeight, 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%;max-height:var(--containerHeight, none);overflow:hidden}:host ::ng-deep ngx-extended-pdf-viewer,:host ::ng-deep ngx-extended-pdf-viewer .zoom{max-height:var(--containerHeight, none)}.pdf-wrapper{width:100%;height:100%;max-height:var(--containerHeight, none)}@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"] }] }); }
359
359
  }
360
360
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PdfComponent, decorators: [{
361
361
  type: Component,
@@ -366,7 +366,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
366
366
  MatIconModule,
367
367
  NgxExtendedPdfViewerModule
368
368
  ], 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 [enableDragAndDrop]=\"false\"\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]=\"'var(--containerHeight, 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%;max-height:var(--containerHeight, none);overflow:hidden}:host ::ng-deep ngx-extended-pdf-viewer,:host ::ng-deep ngx-extended-pdf-viewer .zoom{max-height:var(--containerHeight, none)}.pdf-wrapper{width:100%;height:100%;max-height:var(--containerHeight, none)}@media print{.hide-all *{display:none!important}}\n"] }]
369
- }], ctorParameters: () => [{ type: i1$1.AssetControllerService }, { type: i4$2.NodeHelperService }, { type: RenderingServiceLibConfiguration, decorators: [{
369
+ }], ctorParameters: () => [{ type: i1$1.AssetControllerService }, { type: i6.NodeHelperService }, { type: RenderingServiceLibConfiguration, decorators: [{
370
370
  type: Optional
371
371
  }, {
372
372
  type: Inject,
@@ -448,7 +448,7 @@ class PdfIframeComponent {
448
448
  iframeDoc.close();
449
449
  }
450
450
  }
451
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PdfIframeComponent, deps: [{ token: i4$2.NodeHelperService }, { token: i0.ElementRef }, { token: RENDERING_SERVICE_LIB_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
451
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PdfIframeComponent, deps: [{ token: i6.NodeHelperService }, { token: i0.ElementRef }, { token: RENDERING_SERVICE_LIB_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
452
452
  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 }] }); }
453
453
  }
454
454
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PdfIframeComponent, decorators: [{
@@ -456,7 +456,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
456
456
  args: [{ selector: 'rs-module-pdf-iframe', imports: [
457
457
  RenderingModule,
458
458
  ], 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"] }]
459
- }], ctorParameters: () => [{ type: i4$2.NodeHelperService }, { type: i0.ElementRef }, { type: RenderingServiceLibConfiguration, decorators: [{
459
+ }], ctorParameters: () => [{ type: i6.NodeHelperService }, { type: i0.ElementRef }, { type: RenderingServiceLibConfiguration, decorators: [{
460
460
  type: Optional
461
461
  }, {
462
462
  type: Inject,
@@ -701,8 +701,8 @@ class UrlComponent {
701
701
  }
702
702
  this.embedding = UrlEmbeddings.SODIX;
703
703
  }
704
- 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 }); }
705
- 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 <iframe class=\"youtubeFrame\" [src]=\"sanitizedUrl\" allowfullscreen allow=\"fullscreen\"></iframe>\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 || embedding === UrlEmbeddings.PIXABAY || embedding === UrlEmbeddings.OERSI || embedding === UrlEmbeddings.BROCKHAUS\" >\n <div class=\"link-wrapper\">\n <img [src]=previewUrl alt=\"preview\">\n <a mat-flat-button color=\"primary\" [href]=\"url\" target=\"_blank\" (click)=\"onLinkClick()\">\n <div class=\"link-label\">\n {{ 'SHARING.LINK' | translate }}<i esIcon=\"open_in_new\"></i>\n </div>\n </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,.url-wrapper .eduUrlFrame,.url-wrapper .youtubeFrame{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 .link-wrapper .link-label{display:flex;align-items:center;justify-content:center;gap:10px}.url-wrapper .youtube-wrapper{width:100%;height:auto;display:flex;justify-content:center}.url-wrapper .video-wrapper video{width:100%;height:auto;max-height:calc(var(--containerHeight) - 60px);object-fit:contain}\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: "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" }, { kind: "directive", type: i4$2.IconDirective, selector: "i[esIcon], i.material-icons", inputs: ["altText", "aria", "esIcon", "esIconContext", "path"] }] }); }
704
+ 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: i6.AccessibilityService }, { token: i1$1.GlobalStateService }], target: i0.ɵɵFactoryTarget.Component }); }
705
+ 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 <iframe class=\"youtubeFrame\" [src]=\"sanitizedUrl\" allowfullscreen allow=\"fullscreen\"></iframe>\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 || embedding === UrlEmbeddings.PIXABAY || embedding === UrlEmbeddings.OERSI || embedding === UrlEmbeddings.BROCKHAUS\" >\n <div class=\"link-wrapper\">\n <img [src]=previewUrl alt=\"preview\">\n <a mat-flat-button color=\"primary\" [href]=\"url\" target=\"_blank\" (click)=\"onLinkClick()\">\n <div class=\"link-label\">\n {{ 'SHARING.LINK' | translate }}<i esIcon=\"open_in_new\"></i>\n </div>\n </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,.url-wrapper .eduUrlFrame,.url-wrapper .youtubeFrame{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 .link-wrapper .link-label{display:flex;align-items:center;justify-content:center;gap:10px}.url-wrapper .youtube-wrapper{width:100%;height:auto;display:flex;justify-content:center}.url-wrapper .video-wrapper video{width:100%;height:auto;max-height:calc(var(--containerHeight) - 60px);object-fit:contain}\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: "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" }, { kind: "directive", type: i6.IconDirective, selector: "i[esIcon], i.material-icons", inputs: ["altText", "aria", "esIcon", "esIconContext", "path"] }] }); }
706
706
  }
707
707
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: UrlComponent, decorators: [{
708
708
  type: Component,
@@ -713,7 +713,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
713
713
  NgOptimizedImage,
714
714
  EduSharingUiModule,
715
715
  ], template: "<div class=\"url-wrapper\">\n <div *ngIf=\"gdpr === null\">\n <ng-container *ngIf=\"embedding === UrlEmbeddings.YOUTUBE && externalId !== ''\">\n <div class=\"youtube-wrapper\">\n <iframe class=\"youtubeFrame\" [src]=\"sanitizedUrl\" allowfullscreen allow=\"fullscreen\"></iframe>\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 || embedding === UrlEmbeddings.PIXABAY || embedding === UrlEmbeddings.OERSI || embedding === UrlEmbeddings.BROCKHAUS\" >\n <div class=\"link-wrapper\">\n <img [src]=previewUrl alt=\"preview\">\n <a mat-flat-button color=\"primary\" [href]=\"url\" target=\"_blank\" (click)=\"onLinkClick()\">\n <div class=\"link-label\">\n {{ 'SHARING.LINK' | translate }}<i esIcon=\"open_in_new\"></i>\n </div>\n </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,.url-wrapper .eduUrlFrame,.url-wrapper .youtubeFrame{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 .link-wrapper .link-label{display:flex;align-items:center;justify-content:center;gap:10px}.url-wrapper .youtube-wrapper{width:100%;height:auto;display:flex;justify-content:center}.url-wrapper .video-wrapper video{width:100%;height:auto;max-height:calc(var(--containerHeight) - 60px);object-fit:contain}\n"] }]
716
- }], 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: [{
716
+ }], ctorParameters: () => [{ type: i1$2.DomSanitizer }, { type: TrackingService }, { type: GdprService }, { type: i4$1.TranslateService }, { type: i1.EduSharingApiConfiguration }, { type: i6.AccessibilityService }, { type: i1$1.GlobalStateService }], propDecorators: { data: [{
717
717
  type: Input
718
718
  }], node: [{
719
719
  type: Input
@@ -1088,8 +1088,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
1088
1088
  }], ctorParameters: () => [{ type: i1$1.ModuleInfoControllerService }] });
1089
1089
 
1090
1090
  class RenderComponent {
1091
- constructor(platformLocation, trackingService, injector, envInjector, destroyRef, currentRootUrl, nodeHelperService, configuration) {
1092
- this.platformLocation = platformLocation;
1091
+ constructor(trackingService, injector, envInjector, destroyRef, currentRootUrl, nodeHelperService, configuration) {
1093
1092
  this.trackingService = trackingService;
1094
1093
  this.injector = injector;
1095
1094
  this.envInjector = envInjector;
@@ -1097,17 +1096,15 @@ class RenderComponent {
1097
1096
  this.currentRootUrl = currentRootUrl;
1098
1097
  this.nodeHelperService = nodeHelperService;
1099
1098
  this.configuration = configuration;
1100
- this.activateServiceWorker = true;
1101
1099
  this.assetUrl = '';
1102
1100
  this.resourceUrl = '';
1103
1101
  this.isWebComponent = false;
1104
- this.serviceWorkerReady = false;
1105
1102
  this.loadData = new Subject();
1106
1103
  this.renderData$ = new BehaviorSubject(null);
1107
1104
  this.finished = new Subject();
1108
1105
  this.someButNotAllFinished = new Subject();
1109
1106
  this.progress$ = new BehaviorSubject(null);
1110
- this.loadData.pipe(filter(() => this.node !== undefined && this.serviceWorkerReady), debounceTime(10), switchMap(async () => {
1107
+ this.loadData.pipe(filter(() => this.node !== undefined), debounceTime(10), switchMap(async () => {
1111
1108
  // load services including the scope so they fetch via a remote render url (if applicable for the current request input)
1112
1109
  const services = this.resolveServices(this.request?.renderingBaseUrl);
1113
1110
  const frontendModule = await this.checkModule(services.moduleInfo);
@@ -1206,66 +1203,11 @@ class RenderComponent {
1206
1203
  this.renderData$.next(data);
1207
1204
  this.finished.next();
1208
1205
  }
1209
- async ngOnInit() {
1206
+ ngOnInit() {
1210
1207
  if (this.assetUrl !== '') {
1211
1208
  this.configuration.assetsUrl = this.assetUrl;
1212
1209
  }
1213
- // TEMPORARY (test): service worker registration is disabled unconditionally.
1214
- // Set DISABLE_SERVICE_WORKER back to false (or remove it) to restore the
1215
- // `activateServiceWorker` behaviour.
1216
- const DISABLE_SERVICE_WORKER = true;
1217
- if (DISABLE_SERVICE_WORKER) {
1218
- console.warn('Service worker registration is temporarily disabled');
1219
- this.serviceWorkerReady = true;
1220
- this.loadData.next();
1221
- return;
1222
- }
1223
- if (!this.activateServiceWorker) {
1224
- this.serviceWorkerReady = true;
1225
- this.loadData.next();
1226
- return;
1227
- }
1228
- if (!('serviceWorker' in navigator)) {
1229
- console.warn('Service worker API not available');
1230
- this.serviceWorkerReady = true;
1231
- this.loadData.next();
1232
- return;
1233
- }
1234
- // await firstValueFrom(this.translationsService.initialize())
1235
- try {
1236
- const reg = await navigator.serviceWorker.getRegistrations();
1237
- await Promise.all(reg?.map((r) => r.unregister()));
1238
- const serviceWorkerUrl = this.serviceWorkerUrl ?? (this.platformLocation.getBaseHrefFromDOM() + 'edu-service-worker.js');
1239
- const scope = this.serviceWorkerUrl ? '/' : this.platformLocation.getBaseHrefFromDOM();
1240
- const registration = await navigator.serviceWorker.register(serviceWorkerUrl, {
1241
- scope: scope
1242
- });
1243
- if (registration.waiting) {
1244
- registration.waiting.postMessage({ type: 'SKIP_WAITING' });
1245
- }
1246
- this.serviceWorkerReady = true;
1247
- this.loadData.next();
1248
- registration.onupdatefound = () => {
1249
- const newWorker = registration.installing;
1250
- if (newWorker) {
1251
- newWorker.onstatechange = () => {
1252
- if (newWorker.state === 'installed') {
1253
- if (navigator.serviceWorker.controller) {
1254
- newWorker.postMessage({ type: 'SKIP_WAITING' });
1255
- }
1256
- }
1257
- };
1258
- }
1259
- };
1260
- navigator.serviceWorker.addEventListener('controllerchange', () => {
1261
- console.info('Service Worker controlling this page.');
1262
- });
1263
- }
1264
- catch (error) {
1265
- console.warn('Error during service worker registration:', error);
1266
- this.serviceWorkerReady = true;
1267
- this.loadData.next();
1268
- }
1210
+ this.loadData.next();
1269
1211
  }
1270
1212
  async ngOnChanges(_) {
1271
1213
  this.loadData.next();
@@ -1368,13 +1310,13 @@ class RenderComponent {
1368
1310
  progress: progress
1369
1311
  });
1370
1312
  }
1371
- 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 }); }
1372
- 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: [
1313
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: RenderComponent, deps: [{ token: TrackingService }, { token: i0.Injector }, { token: i0.EnvironmentInjector }, { token: i0.DestroyRef }, { token: CurrentRenderRootUrlService }, { token: i6.NodeHelperService }, { token: RENDERING_SERVICE_LIB_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
1314
+ 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", assetUrl: "assetUrl", resourceUrl: "resourceUrl", isWebComponent: "isWebComponent" }, providers: [
1373
1315
  TranslateService,
1374
1316
  CurrentRenderRootUrlService,
1375
- ], 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' || data?.module === 'SCORM') {\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-D4Xiue_W.mjs').then(m => m.H5pComponent)], () => [import('./ngx-rendering-service-lib-audio.component-BMryQbt4.mjs').then(m => m.AudioComponent)], () => [import('./ngx-rendering-service-lib-moodle.component-BWAGEimd.mjs').then(m => m.MoodleComponent)], () => [import('./ngx-rendering-service-lib-binder.component-CToLjTo1.mjs').then(m => m.BinderComponent)], () => [import('./ngx-rendering-service-lib-ddb.component-DcC_1-cN.mjs').then(m => m.DdbComponent)], () => [import('./ngx-rendering-service-lib-default.component-CcoF3xIt.mjs').then(m => m.DefaultComponent)], () => [Promise.resolve().then(function () { return url_component; }).then(m => m.UrlComponent)], () => [import('./ngx-rendering-service-lib-error.component-C5ElpxNO.mjs').then(m => m.ErrorComponent)]] }); }
1317
+ ], 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' || data?.module === 'SCORM') {\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, i6$1.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-DlFVy4uD.mjs').then(m => m.H5pComponent)], () => [import('./ngx-rendering-service-lib-audio.component-C6xB3sSv.mjs').then(m => m.AudioComponent)], () => [import('./ngx-rendering-service-lib-moodle.component-JBzb9loF.mjs').then(m => m.MoodleComponent)], () => [import('./ngx-rendering-service-lib-binder.component-D9LXNylY.mjs').then(m => m.BinderComponent)], () => [import('./ngx-rendering-service-lib-ddb.component-B4D3vyAw.mjs').then(m => m.DdbComponent)], () => [import('./ngx-rendering-service-lib-default.component-C6aCLEvg.mjs').then(m => m.DefaultComponent)], () => [Promise.resolve().then(function () { return url_component; }).then(m => m.UrlComponent)], () => [import('./ngx-rendering-service-lib-error.component-BOomz7QZ.mjs').then(m => m.ErrorComponent)]] }); }
1376
1318
  }
1377
- 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-D4Xiue_W.mjs').then(m => m.H5pComponent), import('./ngx-rendering-service-lib-audio.component-BMryQbt4.mjs').then(m => m.AudioComponent), import('./ngx-rendering-service-lib-moodle.component-BWAGEimd.mjs').then(m => m.MoodleComponent), import('./ngx-rendering-service-lib-binder.component-CToLjTo1.mjs').then(m => m.BinderComponent), import('./ngx-rendering-service-lib-ddb.component-DcC_1-cN.mjs').then(m => m.DdbComponent), import('./ngx-rendering-service-lib-default.component-CcoF3xIt.mjs').then(m => m.DefaultComponent), import('./ngx-rendering-service-lib-error.component-C5ElpxNO.mjs').then(m => m.ErrorComponent)], resolveMetadata: (RevokedComponent, ImageComponent, UrlComponent, VideoComponent, PdfIframeComponent, PdfComponent, EduHtmlComponent, H5pComponent, AudioComponent, MoodleComponent, BinderComponent, DdbComponent, DefaultComponent, ErrorComponent) => ({ decorators: [{
1319
+ 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-DlFVy4uD.mjs').then(m => m.H5pComponent), import('./ngx-rendering-service-lib-audio.component-C6xB3sSv.mjs').then(m => m.AudioComponent), import('./ngx-rendering-service-lib-moodle.component-JBzb9loF.mjs').then(m => m.MoodleComponent), import('./ngx-rendering-service-lib-binder.component-D9LXNylY.mjs').then(m => m.BinderComponent), import('./ngx-rendering-service-lib-ddb.component-B4D3vyAw.mjs').then(m => m.DdbComponent), import('./ngx-rendering-service-lib-default.component-C6aCLEvg.mjs').then(m => m.DefaultComponent), import('./ngx-rendering-service-lib-error.component-BOomz7QZ.mjs').then(m => m.ErrorComponent)], resolveMetadata: (RevokedComponent, ImageComponent, UrlComponent, VideoComponent, PdfIframeComponent, PdfComponent, EduHtmlComponent, H5pComponent, AudioComponent, MoodleComponent, BinderComponent, DdbComponent, DefaultComponent, ErrorComponent) => ({ decorators: [{
1378
1320
  type: Component,
1379
1321
  args: [{ selector: 'rs-root', imports: [
1380
1322
  RenderingApiModule,
@@ -1403,7 +1345,7 @@ i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "19.2.14", n
1403
1345
  TranslateService,
1404
1346
  CurrentRenderRootUrlService,
1405
1347
  ], 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' || data?.module === 'SCORM') {\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"] }]
1406
- }], ctorParameters: () => [{ type: i2.PlatformLocation }, { type: TrackingService }, { type: i0.Injector }, { type: i0.EnvironmentInjector }, { type: i0.DestroyRef }, { type: CurrentRenderRootUrlService }, { type: i4$2.NodeHelperService }, { type: RenderingServiceLibConfiguration, decorators: [{
1348
+ }], ctorParameters: () => [{ type: TrackingService }, { type: i0.Injector }, { type: i0.EnvironmentInjector }, { type: i0.DestroyRef }, { type: CurrentRenderRootUrlService }, { type: i6.NodeHelperService }, { type: RenderingServiceLibConfiguration, decorators: [{
1407
1349
  type: Optional
1408
1350
  }, {
1409
1351
  type: Inject,
@@ -1412,10 +1354,6 @@ i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "19.2.14", n
1412
1354
  type: Input
1413
1355
  }], node: [{
1414
1356
  type: Input
1415
- }], serviceWorkerUrl: [{
1416
- type: Input
1417
- }], activateServiceWorker: [{
1418
- type: Input
1419
1357
  }], assetUrl: [{
1420
1358
  type: Input
1421
1359
  }], resourceUrl: [{
@@ -1441,7 +1379,7 @@ class RevokedComponent {
1441
1379
  });
1442
1380
  }
1443
1381
  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 }); }
1444
- 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", "path"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4$1.TranslatePipe, name: "translate" }] }); }
1382
+ 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: i6.FormatDatePipe, name: "formatDate" }, { kind: "directive", type: i6.IconDirective, selector: "i[esIcon], i.material-icons", inputs: ["altText", "aria", "esIcon", "esIconContext", "path"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4$1.TranslatePipe, name: "translate" }] }); }
1445
1383
  }
1446
1384
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: RevokedComponent, decorators: [{
1447
1385
  type: Component,
@@ -1506,4 +1444,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
1506
1444
  */
1507
1445
 
1508
1446
  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 };
1509
- //# sourceMappingURL=ngx-rendering-service-lib-ngx-rendering-service-lib-CiwU3Ue9.mjs.map
1447
+ //# sourceMappingURL=ngx-rendering-service-lib-ngx-rendering-service-lib-43EhWUx7.mjs.map