ngx-rendering-service-lib 0.1.2 → 0.1.3
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.
- package/fesm2022/{ngx-rendering-service-lib-audio.component-Dq3mINfi.mjs → ngx-rendering-service-lib-audio.component-uNTFzxhr.mjs} +2 -2
- package/fesm2022/{ngx-rendering-service-lib-audio.component-Dq3mINfi.mjs.map → ngx-rendering-service-lib-audio.component-uNTFzxhr.mjs.map} +1 -1
- package/fesm2022/{ngx-rendering-service-lib-binder.component-Bc3t5CZ4.mjs → ngx-rendering-service-lib-binder.component-Yf99iTsP.mjs} +2 -2
- package/fesm2022/{ngx-rendering-service-lib-binder.component-Bc3t5CZ4.mjs.map → ngx-rendering-service-lib-binder.component-Yf99iTsP.mjs.map} +1 -1
- package/fesm2022/{ngx-rendering-service-lib-ddb.component-CTg2efaY.mjs → ngx-rendering-service-lib-ddb.component-aAaXRTDm.mjs} +2 -2
- package/fesm2022/{ngx-rendering-service-lib-ddb.component-CTg2efaY.mjs.map → ngx-rendering-service-lib-ddb.component-aAaXRTDm.mjs.map} +1 -1
- package/fesm2022/{ngx-rendering-service-lib-default.component-laGCRCUD.mjs → ngx-rendering-service-lib-default.component-CQACxN2J.mjs} +4 -4
- package/fesm2022/{ngx-rendering-service-lib-default.component-laGCRCUD.mjs.map → ngx-rendering-service-lib-default.component-CQACxN2J.mjs.map} +1 -1
- package/fesm2022/{ngx-rendering-service-lib-error.component-jGVRcC0j.mjs → ngx-rendering-service-lib-error.component-C3YphIAZ.mjs} +2 -2
- package/fesm2022/{ngx-rendering-service-lib-error.component-jGVRcC0j.mjs.map → ngx-rendering-service-lib-error.component-C3YphIAZ.mjs.map} +1 -1
- package/fesm2022/{ngx-rendering-service-lib-h5p.component-BwbnpZFg.mjs → ngx-rendering-service-lib-h5p.component-WcTUkOIg.mjs} +2 -2
- package/fesm2022/{ngx-rendering-service-lib-h5p.component-BwbnpZFg.mjs.map → ngx-rendering-service-lib-h5p.component-WcTUkOIg.mjs.map} +1 -1
- package/fesm2022/{ngx-rendering-service-lib-moodle.component-BeIyTedK.mjs → ngx-rendering-service-lib-moodle.component-DvrFPPch.mjs} +2 -2
- package/fesm2022/{ngx-rendering-service-lib-moodle.component-BeIyTedK.mjs.map → ngx-rendering-service-lib-moodle.component-DvrFPPch.mjs.map} +1 -1
- package/fesm2022/{ngx-rendering-service-lib-ngx-rendering-service-lib-7BgnH6Zt.mjs → ngx-rendering-service-lib-ngx-rendering-service-lib-BC1sUbPz.mjs} +14 -7
- package/fesm2022/ngx-rendering-service-lib-ngx-rendering-service-lib-BC1sUbPz.mjs.map +1 -0
- package/fesm2022/ngx-rendering-service-lib.mjs +1 -1
- package/lib/module/url/url.component.d.ts +1 -0
- package/package.json +1 -1
- package/fesm2022/ngx-rendering-service-lib-ngx-rendering-service-lib-7BgnH6Zt.mjs.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { signal, Input, Component } from '@angular/core';
|
|
3
|
-
import { T as TrackingService, a as RenderingModule, A as AssetLinkPipe } from './ngx-rendering-service-lib-ngx-rendering-service-lib-
|
|
3
|
+
import { T as TrackingService, a as RenderingModule, A as AssetLinkPipe } from './ngx-rendering-service-lib-ngx-rendering-service-lib-BC1sUbPz.mjs';
|
|
4
4
|
import { FormsModule } from '@angular/forms';
|
|
5
5
|
import * as i2 from '@angular/common';
|
|
6
6
|
|
|
@@ -38,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
38
38
|
}] } });
|
|
39
39
|
|
|
40
40
|
export { AudioComponent };
|
|
41
|
-
//# sourceMappingURL=ngx-rendering-service-lib-audio.component-
|
|
41
|
+
//# sourceMappingURL=ngx-rendering-service-lib-audio.component-uNTFzxhr.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-rendering-service-lib-audio.component-
|
|
1
|
+
{"version":3,"file":"ngx-rendering-service-lib-audio.component-uNTFzxhr.mjs","sources":["../../src/lib/module/audio/audio.component.ts","../../src/lib/module/audio/audio.component.html"],"sourcesContent":["import {AfterViewInit, Component, ElementRef, Input, signal, ViewChild} from '@angular/core';\nimport {RenderingModule} from '../../rendering.module';\nimport {RenderModule} from '../RenderModule';\nimport {Node} from 'ngx-edu-sharing-api';\nimport {FormsModule} from '@angular/forms';\nimport {RenderData, AssetStateItem} from '../../dto/RenderData';\nimport {TrackingService} from '../../../tracking.service';\n\n@Component({\n selector: 'rs-module-audio',\n imports: [\n RenderingModule,\n FormsModule,\n ],\n templateUrl: './audio.component.html',\n styleUrl: './audio.component.scss'\n})\nexport class AudioComponent implements RenderModule, AfterViewInit{\n @Input() data: RenderData | undefined;\n @Input() node: Node | undefined;\n previewUrl: String = ''\n private hasBeenPlayed: Boolean = false\n activeObject = signal<AssetStateItem | undefined>(undefined);\n\n constructor(private trackingService: TrackingService) { }\n\n ngAfterViewInit(): void {\n this.previewUrl = this.node?.preview?.url ?? ''\n const allFinishedItems = this.data?.items?.filter(item => item.link !== '')\n this.activeObject.set(allFinishedItems?.[0]);\n }\n\n onVideoPlay(): void {\n if (!this.hasBeenPlayed) {\n this.trackingService.trackPlayed(this.node?.ref.id!!, this.node?.ref.repo!!)\n }\n this.hasBeenPlayed = true\n }\n}\n","<div class=\"audio-wrapper\" *ngIf=\"activeObject()\">\n <video\n [poster]=\"previewUrl\"\n controls\n (play)=\"onVideoPlay()\"\n >\n <source [src]=\"activeObject()?.link | rsAssetLink\" />\n </video>\n</div>\n\n\n"],"names":["i1.TrackingService"],"mappings":";;;;;;MAiBa,cAAc,CAAA;AAOzB,IAAA,WAAA,CAAoB,eAAgC,EAAA;QAAhC,IAAe,CAAA,eAAA,GAAf,eAAe;QAJnC,IAAU,CAAA,UAAA,GAAW,EAAE;QACf,IAAa,CAAA,aAAA,GAAY,KAAK;AACtC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAA6B,SAAS,CAAC;;IAI5D,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE;QAC/C,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;QAC3E,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;;IAG9C,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAM,CAAC;;AAE9E,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;;+GAnBhB,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,ECjB3B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,uOAWA,EDAQ,MAAA,EAAA,CAAA,gIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,8LACf,WAAW,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAKN,cAAc,EAAA,UAAA,EAAA,CAAA;kBAT1B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAClB,OAAA,EAAA;wBACL,eAAe;wBACf,WAAW;AACd,qBAAA,EAAA,QAAA,EAAA,uOAAA,EAAA,MAAA,EAAA,CAAA,gIAAA,CAAA,EAAA;iFAKM,IAAI,EAAA,CAAA;sBAAZ;gBACQ,IAAI,EAAA,CAAA;sBAAZ;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { signal, Input, Component } from '@angular/core';
|
|
3
|
-
import { a as RenderingModule } from './ngx-rendering-service-lib-ngx-rendering-service-lib-
|
|
3
|
+
import { a as RenderingModule } from './ngx-rendering-service-lib-ngx-rendering-service-lib-BC1sUbPz.mjs';
|
|
4
4
|
import { FormsModule } from '@angular/forms';
|
|
5
5
|
import { MatProgressSpinner } from '@angular/material/progress-spinner';
|
|
6
6
|
import { MatAnchor } from '@angular/material/button';
|
|
@@ -54,4 +54,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
54
54
|
}] } });
|
|
55
55
|
|
|
56
56
|
export { BinderComponent };
|
|
57
|
-
//# sourceMappingURL=ngx-rendering-service-lib-binder.component-
|
|
57
|
+
//# sourceMappingURL=ngx-rendering-service-lib-binder.component-Yf99iTsP.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-rendering-service-lib-binder.component-
|
|
1
|
+
{"version":3,"file":"ngx-rendering-service-lib-binder.component-Yf99iTsP.mjs","sources":["../../src/lib/module/binder/binder.component.ts","../../src/lib/module/binder/binder.component.html"],"sourcesContent":["import { Component, Input, OnChanges, signal, SimpleChanges} from '@angular/core';\nimport {RenderingModule} from '../../rendering.module';\nimport {RenderModule} from '../RenderModule';\nimport {Node} from 'ngx-edu-sharing-api';\nimport {FormsModule} from '@angular/forms';\nimport {RenderData, AssetStateItem} from '../../dto/RenderData';\nimport {MatProgressSpinner} from '@angular/material/progress-spinner';\nimport {DomSanitizer, SafeResourceUrl} from '@angular/platform-browser';\nimport {MatAnchor} from '@angular/material/button';\n\n@Component({\n selector: 'rs-module-binder',\n imports: [\n RenderingModule,\n FormsModule,\n MatProgressSpinner,\n MatAnchor,\n ],\n templateUrl: './binder.component.html',\n styleUrl: './binder.component.scss'\n})\nexport class BinderComponent implements RenderModule, OnChanges {\n @Input() data: RenderData | undefined;\n @Input() node: Node | undefined;\n binderItem = signal<AssetStateItem | undefined>(undefined);\n previewUrl = signal<SafeResourceUrl | undefined>(undefined)\n hasPreview = signal<boolean>(false)\n\n constructor(private sanitizer: DomSanitizer) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n const binderJobData = this.data?.items?.find(item => item.additionalData === null)\n if ( binderJobData !== undefined ) {\n this.binderItem.set(binderJobData)\n }\n const previewJobData = this.data?.items?.find(item => item.additionalData !== null)\n if (previewJobData !== undefined) {\n this.hasPreview.set(true)\n if (previewJobData.link !== undefined && previewJobData.link !== '') {\n this.previewUrl.set(this.getSafeUri(previewJobData.link))\n }\n }\n }\n\n getSafeUri(assetLink: string) {\n const uri = new URL(assetLink)\n /**\n if (uri.hostname.includes(\"nip.io\")) {\n uri.hostname = \"localhost\"\n }\n */\n return this.sanitizer.bypassSecurityTrustResourceUrl(uri.toString())\n }\n}\n","<div class=\"binder-wrapper\">\n <div class=\"preview-container\" *ngIf=\"hasPreview()\">\n <mat-spinner [diameter]=\"50\" *ngIf=\"previewUrl() === ''\"></mat-spinner>\n <iframe class=\"frame\" [src]=\"previewUrl()\" *ngIf=\"previewUrl() !== ''\" ></iframe>\n </div>\n <div class=\"binder-link-container\">\n <mat-spinner [diameter]=\"50\" *ngIf=\"binderItem()?.link === ''\" ></mat-spinner>\n <a mat-flat-button color=\"primary\" [href]=\"binderItem()?.link\" target=\"_blank\" *ngIf=\"binderItem()?.link !== ''\">Link to object</a>\n </div>\n</div>\n"],"names":[],"mappings":";;;;;;;;;MAqBa,eAAe,CAAA;AAO1B,IAAA,WAAA,CAAoB,SAAuB,EAAA;QAAvB,IAAS,CAAA,SAAA,GAAT,SAAS;AAJ7B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA6B,SAAS,CAAC;AAC1D,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA8B,SAAS,CAAC;AAC3D,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAU,KAAK,CAAC;;AAInC,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC;AAClF,QAAA,IAAK,aAAa,KAAK,SAAS,EAAG;AACjC,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC;;QAEpC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC;AACnF,QAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAChC,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AACzB,YAAA,IAAI,cAAc,CAAC,IAAI,KAAK,SAAS,IAAI,cAAc,CAAC,IAAI,KAAK,EAAE,EAAE;AACnE,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;;;;AAK/D,IAAA,UAAU,CAAC,SAAiB,EAAA;AACxB,QAAA,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC;AAClC;;;;AAIQ;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;;+GA9B7D,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrB5B,0jBAUA,EDGQ,MAAA,EAAA,CAAA,qYAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,kIACf,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,kBAAkB,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClB,SAAS,EAAA,QAAA,EAAA,gFAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAKJ,eAAe,EAAA,UAAA,EAAA,CAAA;kBAX3B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EACnB,OAAA,EAAA;wBACL,eAAe;wBACf,WAAW;wBACX,kBAAkB;wBAClB,SAAS;AACZ,qBAAA,EAAA,QAAA,EAAA,0jBAAA,EAAA,MAAA,EAAA,CAAA,qYAAA,CAAA,EAAA;iFAKM,IAAI,EAAA,CAAA;sBAAZ;gBACQ,IAAI,EAAA,CAAA;sBAAZ;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { signal, HostListener, Input, Component } from '@angular/core';
|
|
3
|
-
import { a as RenderingModule } from './ngx-rendering-service-lib-ngx-rendering-service-lib-
|
|
3
|
+
import { a as RenderingModule } from './ngx-rendering-service-lib-ngx-rendering-service-lib-BC1sUbPz.mjs';
|
|
4
4
|
import { MatIcon } from '@angular/material/icon';
|
|
5
5
|
import * as i3 from '@angular/material/button';
|
|
6
6
|
import { MatButtonModule } from '@angular/material/button';
|
|
@@ -63,4 +63,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
63
63
|
}] } });
|
|
64
64
|
|
|
65
65
|
export { DdbComponent };
|
|
66
|
-
//# sourceMappingURL=ngx-rendering-service-lib-ddb.component-
|
|
66
|
+
//# sourceMappingURL=ngx-rendering-service-lib-ddb.component-aAaXRTDm.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-rendering-service-lib-ddb.component-
|
|
1
|
+
{"version":3,"file":"ngx-rendering-service-lib-ddb.component-aAaXRTDm.mjs","sources":["../../src/lib/module/ddb/ddb.component.ts","../../src/lib/module/ddb/ddb.component.html"],"sourcesContent":["import {AfterViewInit, Component, ElementRef, HostListener, Input, signal} from '@angular/core';\nimport {RenderingModule} from '../../rendering.module';\nimport {RenderModule} from '../RenderModule';\nimport {Node} from 'ngx-edu-sharing-api';\nimport {MatIcon} from '@angular/material/icon';\nimport {MatButtonModule} from '@angular/material/button';\nimport {FormsModule} from '@angular/forms';\nimport {RenderData} from '../../dto/RenderData';\n\n@Component({\n selector: 'rs-module-ddb',\n imports: [\n RenderingModule,\n MatButtonModule,\n FormsModule,\n MatIcon,\n ],\n templateUrl: './ddb.component.html',\n styleUrl: './ddb.component.scss'\n})\nexport class DdbComponent implements RenderModule, AfterViewInit{\n @Input() data: RenderData | undefined;\n @Input() node: Node | undefined;\n activeObject = signal<string | undefined>(undefined);\n\n constructor(public element: ElementRef) { }\n\n ngAfterViewInit(): void {\n this.loadOptimalSize()\n }\n\n @HostListener('document:fullscreenchange')\n private loadOptimalSize() {\n const size = this.element.nativeElement.getBoundingClientRect();\n if (this.data?.items !== undefined && this.data?.items[0].additionalData !== undefined) {\n const additionalData = this.data?.items[0].additionalData\n const keys = Object.keys(additionalData)\n const sizeKeys = keys.filter(key => key.startsWith('size_'))\n const sizes = sizeKeys.map(key => additionalData[key])\n const matchingSize = sizes.sort((a,b) => {\n return Math.abs(parseInt(a.split(',')[0]) - size.width) > Math.abs(parseInt(b.split(',')[0]) - size.width) ? 1 : -1;\n })[0]\n const width = matchingSize.split(',')[0]\n const height = matchingSize.split(',')[1]\n const widthPlaceHolder = additionalData['widthPlaceHolder'] ?? ''\n const heightPlaceHolder = additionalData['heightPlaceHolder'] ?? ''\n const linkTemplate = additionalData['linkTemplate'] ?? ''\n const link = linkTemplate.replace(widthPlaceHolder, width).replace(heightPlaceHolder, height)\n this.activeObject.set(link)\n }\n }\n\n toggleFullscreen() {\n if(document.fullscreenElement) {\n void document.exitFullscreen();\n } else {\n this.element.nativeElement.requestFullscreen();\n }\n }\n}\n","<div class=\"ddb-wrapper\" *ngIf=\"activeObject()\">\n <img\n [src]=\"activeObject()\"\n [alt]=\"node?.title || node?.name || ''\"\n >\n <button mat-icon-button (click)=\"toggleFullscreen()\"><mat-icon>fullscreen</mat-icon></button>\n</div>\n"],"names":["i2"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Input, Component } from '@angular/core';
|
|
3
|
-
import { a as RenderingModule } from './ngx-rendering-service-lib-ngx-rendering-service-lib-
|
|
3
|
+
import { a as RenderingModule } from './ngx-rendering-service-lib-ngx-rendering-service-lib-BC1sUbPz.mjs';
|
|
4
4
|
import { MatIconModule } from '@angular/material/icon';
|
|
5
5
|
import { MatButtonModule } from '@angular/material/button';
|
|
6
6
|
|
|
@@ -14,7 +14,7 @@ class DefaultComponent {
|
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DefaultComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: DefaultComponent, isStandalone: true, selector: "rs-module-default", inputs: { data: "data", node: "node" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"rs-default-wrapper\">\n <img [src]=previewUrl>\n</div>\n", styles: [".rs-default-wrapper{width:100%}.rs-default-wrapper img{width:100%;position:relative}\n"], dependencies: [{ kind: "ngmodule", type: RenderingModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }] }); }
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: DefaultComponent, isStandalone: true, selector: "rs-module-default", inputs: { data: "data", node: "node" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"rs-default-wrapper\">\n <img [src]=previewUrl>\n</div>\n", styles: [".rs-default-wrapper{width:100%}.rs-default-wrapper img{width:100%;max-height:var(--containerHeight);object-fit:contain;position:relative}\n"], dependencies: [{ kind: "ngmodule", type: RenderingModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }] }); }
|
|
18
18
|
}
|
|
19
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DefaultComponent, decorators: [{
|
|
20
20
|
type: Component,
|
|
@@ -22,7 +22,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
22
22
|
RenderingModule,
|
|
23
23
|
MatButtonModule,
|
|
24
24
|
MatIconModule,
|
|
25
|
-
], template: "<div class=\"rs-default-wrapper\">\n <img [src]=previewUrl>\n</div>\n", styles: [".rs-default-wrapper{width:100%}.rs-default-wrapper img{width:100%;position:relative}\n"] }]
|
|
25
|
+
], template: "<div class=\"rs-default-wrapper\">\n <img [src]=previewUrl>\n</div>\n", styles: [".rs-default-wrapper{width:100%}.rs-default-wrapper img{width:100%;max-height:var(--containerHeight);object-fit:contain;position:relative}\n"] }]
|
|
26
26
|
}], propDecorators: { data: [{
|
|
27
27
|
type: Input
|
|
28
28
|
}], node: [{
|
|
@@ -30,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
30
30
|
}] } });
|
|
31
31
|
|
|
32
32
|
export { DefaultComponent };
|
|
33
|
-
//# sourceMappingURL=ngx-rendering-service-lib-default.component-
|
|
33
|
+
//# sourceMappingURL=ngx-rendering-service-lib-default.component-CQACxN2J.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-rendering-service-lib-default.component-
|
|
1
|
+
{"version":3,"file":"ngx-rendering-service-lib-default.component-CQACxN2J.mjs","sources":["../../src/lib/module/default/default.component.ts","../../src/lib/module/default/default.component.html"],"sourcesContent":["import {\n Component,\n Input,\n OnChanges,\n SimpleChanges\n} from '@angular/core';\nimport {RenderingModule} from '../../rendering.module';\nimport {RenderModule} from '../RenderModule';\nimport {Node} from 'ngx-edu-sharing-api';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatButtonModule} from '@angular/material/button';\n\n@Component({\n selector: 'rs-module-default',\n imports: [\n RenderingModule,\n MatButtonModule,\n MatIconModule,\n ],\n templateUrl: './default.component.html',\n styleUrl: './default.component.scss'\n})\nexport class DefaultComponent implements RenderModule, OnChanges {\n @Input() data: undefined;\n @Input() node: Node | undefined;\n previewUrl: String = ''\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.node !== undefined) {\n this.previewUrl = this.node.preview?.url ?? ''\n }\n }\n}\n","<div class=\"rs-default-wrapper\">\n <img [src]=previewUrl>\n</div>\n"],"names":[],"mappings":";;;;;;MAsBa,gBAAgB,CAAA;AAV7B,IAAA,WAAA,GAAA;QAaE,IAAU,CAAA,UAAA,GAAW,EAAE;AAOxB;AALC,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;AAC3B,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE;;;+GAPvC,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,0ICtB7B,wEAGA,EAAA,MAAA,EAAA,CAAA,6IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDYQ,eAAe,EACf,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,8BACf,aAAa,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAKR,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAV5B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EACpB,OAAA,EAAA;wBACL,eAAe;wBACf,eAAe;wBACf,aAAa;AAChB,qBAAA,EAAA,QAAA,EAAA,wEAAA,EAAA,MAAA,EAAA,CAAA,6IAAA,CAAA,EAAA;8BAKM,IAAI,EAAA,CAAA;sBAAZ;gBACQ,IAAI,EAAA,CAAA;sBAAZ;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Input, Component } from '@angular/core';
|
|
3
|
-
import { a as RenderingModule } from './ngx-rendering-service-lib-ngx-rendering-service-lib-
|
|
3
|
+
import { a as RenderingModule } from './ngx-rendering-service-lib-ngx-rendering-service-lib-BC1sUbPz.mjs';
|
|
4
4
|
import { MatIconModule } from '@angular/material/icon';
|
|
5
5
|
import { MatButtonModule } from '@angular/material/button';
|
|
6
6
|
import * as i4$1 from 'ngx-edu-sharing-ui';
|
|
@@ -38,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
38
38
|
}] } });
|
|
39
39
|
|
|
40
40
|
export { ErrorComponent };
|
|
41
|
-
//# sourceMappingURL=ngx-rendering-service-lib-error.component-
|
|
41
|
+
//# sourceMappingURL=ngx-rendering-service-lib-error.component-C3YphIAZ.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-rendering-service-lib-error.component-
|
|
1
|
+
{"version":3,"file":"ngx-rendering-service-lib-error.component-C3YphIAZ.mjs","sources":["../../src/lib/module/error/error.component.ts","../../src/lib/module/error/error.component.html"],"sourcesContent":["import {\n AfterContentInit,\n Component,\n Input,\n} from '@angular/core';\nimport {RenderingModule} from '../../rendering.module';\nimport {RenderModule} from '../RenderModule';\nimport {Node} from 'ngx-edu-sharing-api';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatButtonModule} from '@angular/material/button';\nimport {RenderData} from '../../dto/RenderData';\nimport {EduSharingUiCommonModule, EduSharingUiModule} from 'ngx-edu-sharing-ui';\nimport {MatCard, MatCardHeader, MatCardSubtitle, MatCardTitle} from '@angular/material/card';\n\n@Component({\n selector: 'rs-module-error',\n imports: [\n RenderingModule,\n MatButtonModule,\n MatIconModule,\n EduSharingUiModule,\n MatCard,\n EduSharingUiCommonModule,\n MatCardSubtitle,\n MatCardHeader,\n MatCardTitle\n ],\n templateUrl: './error.component.html',\n styleUrl: './error.component.scss'\n})\nexport class ErrorComponent implements RenderModule, AfterContentInit {\n @Input() data: RenderData | undefined\n @Input() node: Node | undefined;\n errorMessage: string = ''\n\n ngAfterContentInit() {\n this.errorMessage = this.data?.publicErrorMessage ?? ''\n }\n}\n","<div class=\"rs-error-wrapper\">\n <es-info-message mode=\"error\">\n <div class=\"rs-error-message\">\n <h3>{{ 'RENDERING.ERROR.GENERIC_ERROR_MESSAGE' | translate }}</h3>\n <div>{{errorMessage | translate}}</div>\n </div>\n </es-info-message>\n</div>\n"],"names":["i1","i2"],"mappings":";;;;;;;;;;MA8Ba,cAAc,CAAA;AAhB3B,IAAA,WAAA,GAAA;QAmBE,IAAY,CAAA,YAAA,GAAW,EAAE;AAK1B;IAHC,kBAAkB,GAAA;QAChB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,kBAAkB,IAAI,EAAE;;+GAN9C,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9B3B,iRAQA,EAAA,MAAA,EAAA,CAAA,0QAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDSQ,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAElB,wBAAwB,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAQnB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAhB1B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAClB,OAAA,EAAA;wBACL,eAAe;wBACf,eAAe;wBACf,aAAa;wBACb,kBAAkB;wBAClB,OAAO;wBACP,wBAAwB;wBACxB,eAAe;wBACf,aAAa;wBACb;AACH,qBAAA,EAAA,QAAA,EAAA,iRAAA,EAAA,MAAA,EAAA,CAAA,0QAAA,CAAA,EAAA;8BAKM,IAAI,EAAA,CAAA;sBAAZ;gBACQ,IAAI,EAAA,CAAA;sBAAZ;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { ViewChild, Input, Inject, Optional, Component } from '@angular/core';
|
|
3
|
-
import { R as RENDERING_SERVICE_LIB_CONFIG, a as RenderingModule, b as RenderingServiceLibConfiguration } from './ngx-rendering-service-lib-ngx-rendering-service-lib-
|
|
3
|
+
import { R as RENDERING_SERVICE_LIB_CONFIG, a as RenderingModule, b as RenderingServiceLibConfiguration } from './ngx-rendering-service-lib-ngx-rendering-service-lib-BC1sUbPz.mjs';
|
|
4
4
|
import { MatIconModule } from '@angular/material/icon';
|
|
5
5
|
import { MatButtonModule } from '@angular/material/button';
|
|
6
6
|
import * as i2 from '@angular/common';
|
|
@@ -88,4 +88,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
88
88
|
}] } });
|
|
89
89
|
|
|
90
90
|
export { H5pComponent };
|
|
91
|
-
//# sourceMappingURL=ngx-rendering-service-lib-h5p.component-
|
|
91
|
+
//# sourceMappingURL=ngx-rendering-service-lib-h5p.component-WcTUkOIg.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-rendering-service-lib-h5p.component-
|
|
1
|
+
{"version":3,"file":"ngx-rendering-service-lib-h5p.component-WcTUkOIg.mjs","sources":["../../src/lib/module/h5p/h5p.component.ts","../../src/lib/module/h5p/h5p.component.html"],"sourcesContent":["import {\n AfterViewInit,\n Component,\n ElementRef,\n Inject,\n Input,\n OnInit,\n Optional,\n Renderer2,\n ViewChild\n} from '@angular/core';\nimport {RenderingModule} from '../../rendering.module';\nimport {RenderModule} from '../RenderModule';\nimport {Node} from 'ngx-edu-sharing-api';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatButtonModule} from '@angular/material/button';\nimport {RenderData} from '../../dto/RenderData';\nimport {DomSanitizer, SafeResourceUrl} from '@angular/platform-browser';\nimport {DOCUMENT, PlatformLocation} from '@angular/common';\nimport {\n RENDERING_SERVICE_LIB_CONFIG,\n RenderingServiceLibConfiguration\n} from '../../../rendering-service-lib-configuration';\n\n@Component({\n selector: 'rs-module-h5p',\n imports: [\n RenderingModule,\n MatButtonModule,\n MatIconModule,\n ],\n templateUrl: './h5p.component.html',\n styleUrl: './h5p.component.scss'\n})\nexport class H5pComponent implements RenderModule, OnInit, AfterViewInit {\n @Input() data: RenderData | undefined\n @Input() node: Node | undefined\n @ViewChild('iframeEl', { static: false }) iframeEl?: ElementRef<HTMLIFrameElement>;\n private assetsUrl: string = ''\n\n sanitizedUrl: SafeResourceUrl = new class implements SafeResourceUrl {\n }\n\n constructor(\n private renderer: Renderer2,\n private sanitizer: DomSanitizer,\n @Inject(DOCUMENT) private document: Document,\n private platformLocation: PlatformLocation,\n @Optional() @Inject(RENDERING_SERVICE_LIB_CONFIG) public configuration: RenderingServiceLibConfiguration\n ) {\n if (configuration && configuration.assetsUrl) {\n this.assetsUrl = (configuration?.assetsUrl || '').replace('assets', '')\n } else {\n this.assetsUrl = this.platformLocation.getBaseHrefFromDOM()\n }\n }\n\n ngOnInit() {\n if (this.data?.items !== undefined && this.data.items[0].link) {\n this.sanitizedUrl = this.getSafeUri()\n }\n }\n\n ngAfterViewInit(): void {\n const h5pResizerUrl = this.assetsUrl + 'h5p-resizer.js';\n\n this.addScriptAfterIframe(h5pResizerUrl);\n }\n\n getSafeUri() {\n if (this.data?.items !== undefined && this.data.items[0].link) {\n const uri = new URL(this.data.items[0].link)\n /**\n if (uri.hostname.includes('nip.io')) {\n uri.hostname = 'localhost'\n }\n */\n return this.sanitizer.bypassSecurityTrustResourceUrl(uri.toString())\n }\n return new class implements SafeResourceUrl {\n }\n }\n\n private addScriptAfterIframe(src: string): void {\n if (!this.iframeEl?.nativeElement?.parentNode) {\n return;\n }\n\n if (this.document.querySelector(`script[src=\"${src}\"]`)) {\n return;\n }\n\n const script = this.renderer.createElement('script');\n script.type = 'text/javascript';\n script.src = src;\n script.async = true;\n\n const parent = this.iframeEl.nativeElement.parentNode;\n this.renderer.insertBefore(parent, script, this.iframeEl.nativeElement.nextSibling);\n }\n}\n","<div class=\"h5p-wrapper\" *ngIf=\"data?.items !== undefined\">\n <iframe\n #iframeEl\n [title]=\"node?.title ?? 'H5P'\"\n class=\"frame\"\n [src]=\"sanitizedUrl\"\n allow=\"camera; microphone; fullscreen\"\n allowfullscreen\n ></iframe>\n</div>\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Input, Component } from '@angular/core';
|
|
3
|
-
import { a as RenderingModule } from './ngx-rendering-service-lib-ngx-rendering-service-lib-
|
|
3
|
+
import { a as RenderingModule } from './ngx-rendering-service-lib-ngx-rendering-service-lib-BC1sUbPz.mjs';
|
|
4
4
|
import { MatIconModule } from '@angular/material/icon';
|
|
5
5
|
import * as i3 from '@angular/material/button';
|
|
6
6
|
import { MatButtonModule } from '@angular/material/button';
|
|
@@ -58,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
58
58
|
}] } });
|
|
59
59
|
|
|
60
60
|
export { MoodleComponent };
|
|
61
|
-
//# sourceMappingURL=ngx-rendering-service-lib-moodle.component-
|
|
61
|
+
//# sourceMappingURL=ngx-rendering-service-lib-moodle.component-DvrFPPch.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-rendering-service-lib-moodle.component-
|
|
1
|
+
{"version":3,"file":"ngx-rendering-service-lib-moodle.component-DvrFPPch.mjs","sources":["../../src/lib/module/moodle/moodle.component.ts","../../src/lib/module/moodle/moodle.component.html"],"sourcesContent":["import {Component, Input, OnInit} from '@angular/core';\nimport {RenderingModule} from '../../rendering.module';\nimport {RenderModule} from '../RenderModule';\nimport {Node} from 'ngx-edu-sharing-api';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatButtonModule} from '@angular/material/button';\nimport {RenderData} from '../../dto/RenderData';\nimport {DomSanitizer, SafeResourceUrl} from '@angular/platform-browser';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@Component({\n selector: 'rs-module-moodle',\n imports: [\n RenderingModule,\n MatButtonModule,\n MatIconModule,\n TranslateModule,\n ],\n templateUrl: './moodle.component.html',\n styleUrl: './moodle.component.scss'\n})\nexport class MoodleComponent implements RenderModule, OnInit {\n @Input() data: RenderData | undefined\n @Input() node: Node | undefined\n @Input() isWebComponent: boolean = false\n previewUrl: string = ''\n sanitizedUrl: SafeResourceUrl | null = null\n sanitizedLinkUrl: SafeResourceUrl | null = null\n\n constructor(private sanitizer: DomSanitizer) {\n }\n\n ngOnInit() {\n if (this.data?.items !== undefined && this.data.items[0].link) {\n this.sanitizedUrl = this.getSafeUri()\n this.sanitizedLinkUrl = this.getSafeLinkUri()\n this.previewUrl = this.node?.preview?.url ?? ''\n }\n }\n\n getSafeUri() {\n if (this.data?.items !== undefined && this.data.items[0].link) {\n const uri = new URL(this.data.items[0].link)\n return this.sanitizer.bypassSecurityTrustResourceUrl(uri.toString())\n }\n return null\n }\n\n getSafeLinkUri() {\n if (this.data?.items !== undefined && this.data.items[0].additionalData) {\n const uri = new URL(this.data.items[0].additionalData['linkUrl'] ?? '')\n return this.sanitizer.bypassSecurityTrustResourceUrl(uri.toString())\n }\n return null\n }\n}\n","<div class=\"moodle-wrapper\" *ngIf=\"data?.items !== undefined\">\n <iframe *ngIf=\"!isWebComponent\" class=\"frame\" [src]=\"sanitizedUrl\"></iframe>\n <img *ngIf=\"isWebComponent\" [src]=previewUrl alt=\"preview\">\n <a mat-button=\"filled\" [href]=\"sanitizedLinkUrl\" target=\"_blank\">{{ 'RENDERING.GO_TO_COURSE' | translate }}</a>\n</div>\n"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,6 @@ import * as i4$1 from '@ngx-translate/core';
|
|
|
18
18
|
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
|
19
19
|
import * as i4$3 from 'ngx-extended-pdf-viewer';
|
|
20
20
|
import { pdfDefaultOptions, NgxExtendedPdfViewerModule, NgxExtendedPdfViewerComponent } from 'ngx-extended-pdf-viewer';
|
|
21
|
-
import { YouTubePlayer } from '@angular/youtube-player';
|
|
22
21
|
import { firstValueFrom, Subject, BehaviorSubject, debounceTime, switchMap, interval, takeUntil, exhaustMap } from 'rxjs';
|
|
23
22
|
import * as i1$2 from '@angular/platform-browser';
|
|
24
23
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
@@ -590,6 +589,9 @@ class UrlComponent {
|
|
|
590
589
|
else if (this.embedding === UrlEmbeddings.SODIX) {
|
|
591
590
|
this.sanitizedUrl = this.getSodixUrl();
|
|
592
591
|
}
|
|
592
|
+
else if (this.embedding === UrlEmbeddings.YOUTUBE) {
|
|
593
|
+
this.sanitizedUrl = this.getYoutubeUrl();
|
|
594
|
+
}
|
|
593
595
|
}
|
|
594
596
|
ngOnDestroy() {
|
|
595
597
|
this.contrastModeSubscription?.unsubscribe();
|
|
@@ -603,6 +605,12 @@ class UrlComponent {
|
|
|
603
605
|
this.trackingService.trackGdprConsent(this.node.ref.id, this.node.ref.repo);
|
|
604
606
|
}
|
|
605
607
|
}
|
|
608
|
+
getYoutubeUrl() {
|
|
609
|
+
const id = (this.externalId ?? '').split('?')[0];
|
|
610
|
+
const youtubeUrl = new URL(`https://www.youtube-nocookie.com/embed/${id}`);
|
|
611
|
+
youtubeUrl.searchParams.set('modestbranding', '1');
|
|
612
|
+
return this.sanitizer.bypassSecurityTrustResourceUrl(youtubeUrl.toString());
|
|
613
|
+
}
|
|
606
614
|
getVimeoUri() {
|
|
607
615
|
const vimeoUrl = new URL(`https://player.vimeo.com/video/${this.externalId ?? ''}`);
|
|
608
616
|
const externalId = this.externalId ?? '';
|
|
@@ -681,7 +689,7 @@ class UrlComponent {
|
|
|
681
689
|
this.embedding = UrlEmbeddings.SODIX;
|
|
682
690
|
}
|
|
683
691
|
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 }); }
|
|
684
|
-
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 <
|
|
692
|
+
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"] }] }); }
|
|
685
693
|
}
|
|
686
694
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: UrlComponent, decorators: [{
|
|
687
695
|
type: Component,
|
|
@@ -689,10 +697,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
689
697
|
RenderingModule,
|
|
690
698
|
MatButtonModule,
|
|
691
699
|
MatIconModule,
|
|
692
|
-
YouTubePlayer,
|
|
693
700
|
NgOptimizedImage,
|
|
694
701
|
EduSharingUiModule,
|
|
695
|
-
], template: "<div class=\"url-wrapper\">\n <div *ngIf=\"gdpr === null\">\n <ng-container *ngIf=\"embedding === UrlEmbeddings.YOUTUBE && externalId !== ''\">\n <div class=\"youtube-wrapper\">\n <
|
|
702
|
+
], 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"] }]
|
|
696
703
|
}], 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: [{
|
|
697
704
|
type: Input
|
|
698
705
|
}], node: [{
|
|
@@ -1342,9 +1349,9 @@ class RenderComponent {
|
|
|
1342
1349
|
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: [
|
|
1343
1350
|
TranslateService,
|
|
1344
1351
|
CurrentRenderRootUrlService,
|
|
1345
|
-
], 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-
|
|
1352
|
+
], 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-WcTUkOIg.mjs').then(m => m.H5pComponent)], () => [import('./ngx-rendering-service-lib-audio.component-uNTFzxhr.mjs').then(m => m.AudioComponent)], () => [import('./ngx-rendering-service-lib-moodle.component-DvrFPPch.mjs').then(m => m.MoodleComponent)], () => [import('./ngx-rendering-service-lib-binder.component-Yf99iTsP.mjs').then(m => m.BinderComponent)], () => [import('./ngx-rendering-service-lib-ddb.component-aAaXRTDm.mjs').then(m => m.DdbComponent)], () => [import('./ngx-rendering-service-lib-default.component-CQACxN2J.mjs').then(m => m.DefaultComponent)], () => [Promise.resolve().then(function () { return url_component; }).then(m => m.UrlComponent)], () => [import('./ngx-rendering-service-lib-error.component-C3YphIAZ.mjs').then(m => m.ErrorComponent)]] }); }
|
|
1346
1353
|
}
|
|
1347
|
-
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-
|
|
1354
|
+
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-WcTUkOIg.mjs').then(m => m.H5pComponent), import('./ngx-rendering-service-lib-audio.component-uNTFzxhr.mjs').then(m => m.AudioComponent), import('./ngx-rendering-service-lib-moodle.component-DvrFPPch.mjs').then(m => m.MoodleComponent), import('./ngx-rendering-service-lib-binder.component-Yf99iTsP.mjs').then(m => m.BinderComponent), import('./ngx-rendering-service-lib-ddb.component-aAaXRTDm.mjs').then(m => m.DdbComponent), import('./ngx-rendering-service-lib-default.component-CQACxN2J.mjs').then(m => m.DefaultComponent), import('./ngx-rendering-service-lib-error.component-C3YphIAZ.mjs').then(m => m.ErrorComponent)], resolveMetadata: (RevokedComponent, ImageComponent, UrlComponent, VideoComponent, PdfIframeComponent, PdfComponent, EduHtmlComponent, H5pComponent, AudioComponent, MoodleComponent, BinderComponent, DdbComponent, DefaultComponent, ErrorComponent) => ({ decorators: [{
|
|
1348
1355
|
type: Component,
|
|
1349
1356
|
args: [{ selector: 'rs-root', imports: [
|
|
1350
1357
|
RenderingApiModule,
|
|
@@ -1476,4 +1483,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
1476
1483
|
*/
|
|
1477
1484
|
|
|
1478
1485
|
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 };
|
|
1479
|
-
//# sourceMappingURL=ngx-rendering-service-lib-ngx-rendering-service-lib-
|
|
1486
|
+
//# sourceMappingURL=ngx-rendering-service-lib-ngx-rendering-service-lib-BC1sUbPz.mjs.map
|