ngx-rendering-service-lib 0.0.66849 → 0.0.66851

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.
@@ -38,7 +38,7 @@ export class BinderComponent {
38
38
  return this.sanitizer.bypassSecurityTrustResourceUrl(uri.toString());
39
39
  }
40
40
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: BinderComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
41
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: BinderComponent, isStandalone: true, selector: "rs-module-binder", inputs: { data: "data", node: "node" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"binder-wrapper\">\n <div class=\"binder-link-container\">\n <mat-spinner [diameter]=\"50\" *ngIf=\"binderItem()?.link === ''\" ></mat-spinner>\n <a mat-button [href]=\"binderItem()?.link\" target=\"_blank\" *ngIf=\"binderItem()?.link !== ''\">Link to object</a>\n </div>\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>\n", styles: [":host{position:relative;display:flex;align-items:center;width:100%}.binder-wrapper{width:100%;position:relative;display:flex;flex-direction:column;justify-content:center}.binder-wrapper .preview-container>.frame{width:100%;height:100%}.binder-wrapper .binder-link-container{padding-bottom:1em}\n"], dependencies: [{ kind: "ngmodule", type: RenderingModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }] }); }
41
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: BinderComponent, isStandalone: true, selector: "rs-module-binder", inputs: { data: "data", node: "node" }, usesOnChanges: true, ngImport: i0, template: "<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", styles: [":host{position:relative;display:flex;align-items:center;width:100%}.binder-wrapper{width:100%;height:100%;position:relative;display:flex;flex-direction:column;justify-content:center}.binder-wrapper .preview-container{flex-grow:1}.binder-wrapper .preview-container>.frame{width:100%;height:100%}.binder-wrapper .binder-link-container{display:flex;justify-content:center;padding-top:1em}\n"], dependencies: [{ kind: "ngmodule", type: RenderingModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }] }); }
42
42
  }
43
43
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: BinderComponent, decorators: [{
44
44
  type: Component,
@@ -47,10 +47,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
47
47
  FormsModule,
48
48
  MatProgressSpinner,
49
49
  MatAnchor,
50
- ], template: "<div class=\"binder-wrapper\">\n <div class=\"binder-link-container\">\n <mat-spinner [diameter]=\"50\" *ngIf=\"binderItem()?.link === ''\" ></mat-spinner>\n <a mat-button [href]=\"binderItem()?.link\" target=\"_blank\" *ngIf=\"binderItem()?.link !== ''\">Link to object</a>\n </div>\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>\n", styles: [":host{position:relative;display:flex;align-items:center;width:100%}.binder-wrapper{width:100%;position:relative;display:flex;flex-direction:column;justify-content:center}.binder-wrapper .preview-container>.frame{width:100%;height:100%}.binder-wrapper .binder-link-container{padding-bottom:1em}\n"] }]
50
+ ], template: "<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", styles: [":host{position:relative;display:flex;align-items:center;width:100%}.binder-wrapper{width:100%;height:100%;position:relative;display:flex;flex-direction:column;justify-content:center}.binder-wrapper .preview-container{flex-grow:1}.binder-wrapper .preview-container>.frame{width:100%;height:100%}.binder-wrapper .binder-link-container{display:flex;justify-content:center;padding-top:1em}\n"] }]
51
51
  }], ctorParameters: () => [{ type: i1.DomSanitizer }], propDecorators: { data: [{
52
52
  type: Input
53
53
  }], node: [{
54
54
  type: Input
55
55
  }] } });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbW9kdWxlL2JpbmRlci9iaW5kZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9tb2R1bGUvYmluZGVyL2JpbmRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUd2RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFDLGtCQUFrQixFQUEyQixNQUFNLG9DQUFvQyxDQUFDO0FBRWhHLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQWNuRCxNQUFNLE9BQU8sZUFBZTtJQU8xQixZQUFvQixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBSjNDLGVBQVUsR0FBRyxNQUFNLENBQTZCLFNBQVMsQ0FBQyxDQUFDO1FBQzNELGVBQVUsR0FBRyxNQUFNLENBQThCLFNBQVMsQ0FBQyxDQUFBO1FBQzNELGVBQVUsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUE7SUFFVyxDQUFDO0lBRS9DLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxLQUFLLElBQUksQ0FBQyxDQUFBO1FBQ2xGLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUMxQixJQUFLLGFBQWEsS0FBSyxTQUFTLEVBQUcsQ0FBQztZQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUNwQyxDQUFDO1FBQ0QsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsS0FBSyxJQUFJLENBQUMsQ0FBQTtRQUNuRixPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDM0IsSUFBSSxjQUFjLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDekIsSUFBSSxjQUFjLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxjQUFjLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDO2dCQUNwRSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1lBQzNELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxTQUFpQjtRQUN4QixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUM5QixJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDcEMsR0FBRyxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUE7UUFDNUIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUN4RSxDQUFDOzhHQWpDVSxlQUFlO2tHQUFmLGVBQWUseUlDdEI1QixtaUJBVUEsZ1dESUksZUFBZSxrSUFDZixXQUFXLCtCQUNYLGtCQUFrQiwrS0FDbEIsU0FBUzs7MkZBS0EsZUFBZTtrQkFaM0IsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQO3dCQUNQLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxrQkFBa0I7d0JBQ2xCLFNBQVM7cUJBQ1Y7aUZBS1EsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgc2lnbmFsLCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UmVuZGVyaW5nTW9kdWxlfSBmcm9tIFwiLi4vLi4vcmVuZGVyaW5nLm1vZHVsZVwiO1xuaW1wb3J0IHtSZW5kZXJNb2R1bGV9IGZyb20gXCIuLi9SZW5kZXJNb2R1bGVcIjtcbmltcG9ydCB7Tm9kZX0gZnJvbSBcIm5neC1lZHUtc2hhcmluZy1hcGlcIjtcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtSZW5kZXJEYXRhLCBBc3NldFN0YXRlSXRlbX0gZnJvbSBcIi4uLy4uL2R0by9SZW5kZXJEYXRhXCI7XG5pbXBvcnQge01hdFByb2dyZXNzU3Bpbm5lciwgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lclwiO1xuaW1wb3J0IHtEb21TYW5pdGl6ZXIsIFNhZmVSZXNvdXJjZVVybH0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcbmltcG9ydCB7TWF0QW5jaG9yfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JzLW1vZHVsZS1iaW5kZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgUmVuZGVyaW5nTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lcixcbiAgICBNYXRBbmNob3IsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9iaW5kZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYmluZGVyLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBCaW5kZXJDb21wb25lbnQgaW1wbGVtZW50cyBSZW5kZXJNb2R1bGUsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGRhdGE6IFJlbmRlckRhdGEgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIG5vZGU6IE5vZGUgfCB1bmRlZmluZWQ7XG4gIGJpbmRlckl0ZW0gPSBzaWduYWw8QXNzZXRTdGF0ZUl0ZW0gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByZXZpZXdVcmwgPSBzaWduYWw8U2FmZVJlc291cmNlVXJsIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpXG4gIGhhc1ByZXZpZXcgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3QgYmluZGVySm9iRGF0YSA9IHRoaXMuZGF0YT8uaXRlbXM/LmZpbmQoaXRlbSA9PiBpdGVtLmFkZGl0aW9uYWxEYXRhID09PSBudWxsKVxuICAgIGNvbnNvbGUubG9nKFwiQklOREVSREFUQVwiKVxuICAgIGNvbnNvbGUubG9nKGJpbmRlckpvYkRhdGEpXG4gICAgaWYgKCBiaW5kZXJKb2JEYXRhICE9PSB1bmRlZmluZWQgKSB7XG4gICAgICB0aGlzLmJpbmRlckl0ZW0uc2V0KGJpbmRlckpvYkRhdGEpXG4gICAgfVxuICAgIGNvbnN0IHByZXZpZXdKb2JEYXRhID0gdGhpcy5kYXRhPy5pdGVtcz8uZmluZChpdGVtID0+IGl0ZW0uYWRkaXRpb25hbERhdGEgIT09IG51bGwpXG4gICAgY29uc29sZS5sb2coXCJQUkVWSUVXREFUQVwiKVxuICAgIGNvbnNvbGUubG9nKHByZXZpZXdKb2JEYXRhKVxuICAgIGlmIChwcmV2aWV3Sm9iRGF0YSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmhhc1ByZXZpZXcuc2V0KHRydWUpXG4gICAgICBpZiAocHJldmlld0pvYkRhdGEubGluayAhPT0gdW5kZWZpbmVkICYmIHByZXZpZXdKb2JEYXRhLmxpbmsgIT09IFwiXCIpIHtcbiAgICAgICAgdGhpcy5wcmV2aWV3VXJsLnNldCh0aGlzLmdldFNhZmVVcmkocHJldmlld0pvYkRhdGEubGluaykpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0U2FmZVVyaShhc3NldExpbms6IHN0cmluZykge1xuICAgICAgY29uc3QgdXJpID0gbmV3IFVSTChhc3NldExpbmspXG4gICAgICBpZiAodXJpLmhvc3RuYW1lLmluY2x1ZGVzKFwibmlwLmlvXCIpKSB7XG4gICAgICAgIHVyaS5ob3N0bmFtZSA9IFwibG9jYWxob3N0XCJcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwodXJpLnRvU3RyaW5nKCkpXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJiaW5kZXItd3JhcHBlclwiPlxuICA8ZGl2IGNsYXNzPVwiYmluZGVyLWxpbmstY29udGFpbmVyXCI+XG4gICAgPG1hdC1zcGlubmVyIFtkaWFtZXRlcl09XCI1MFwiICpuZ0lmPVwiYmluZGVySXRlbSgpPy5saW5rID09PSAnJ1wiID48L21hdC1zcGlubmVyPlxuICAgIDxhIG1hdC1idXR0b24gW2hyZWZdPVwiYmluZGVySXRlbSgpPy5saW5rXCIgdGFyZ2V0PVwiX2JsYW5rXCIgKm5nSWY9XCJiaW5kZXJJdGVtKCk/LmxpbmsgIT09ICcnXCI+TGluayB0byBvYmplY3Q8L2E+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicHJldmlldy1jb250YWluZXJcIiAqbmdJZj1cImhhc1ByZXZpZXcoKVwiPlxuICAgIDxtYXQtc3Bpbm5lciBbZGlhbWV0ZXJdPVwiNTBcIiAqbmdJZj1cInByZXZpZXdVcmwoKSA9PT0gJydcIj48L21hdC1zcGlubmVyPlxuICAgIDxpZnJhbWUgY2xhc3M9XCJmcmFtZVwiIFtzcmNdPVwicHJldmlld1VybCgpXCIgKm5nSWY9XCJwcmV2aWV3VXJsKCkgIT09ICcnXCIgPjwvaWZyYW1lPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbW9kdWxlL2JpbmRlci9iaW5kZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9tb2R1bGUvYmluZGVyL2JpbmRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUd2RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFDLGtCQUFrQixFQUEyQixNQUFNLG9DQUFvQyxDQUFDO0FBRWhHLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQWNuRCxNQUFNLE9BQU8sZUFBZTtJQU8xQixZQUFvQixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBSjNDLGVBQVUsR0FBRyxNQUFNLENBQTZCLFNBQVMsQ0FBQyxDQUFDO1FBQzNELGVBQVUsR0FBRyxNQUFNLENBQThCLFNBQVMsQ0FBQyxDQUFBO1FBQzNELGVBQVUsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUE7SUFFVyxDQUFDO0lBRS9DLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxLQUFLLElBQUksQ0FBQyxDQUFBO1FBQ2xGLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUMxQixJQUFLLGFBQWEsS0FBSyxTQUFTLEVBQUcsQ0FBQztZQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUNwQyxDQUFDO1FBQ0QsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsS0FBSyxJQUFJLENBQUMsQ0FBQTtRQUNuRixPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDM0IsSUFBSSxjQUFjLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDekIsSUFBSSxjQUFjLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxjQUFjLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDO2dCQUNwRSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1lBQzNELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxTQUFpQjtRQUN4QixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUM5QixJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDcEMsR0FBRyxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUE7UUFDNUIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUN4RSxDQUFDOzhHQWpDVSxlQUFlO2tHQUFmLGVBQWUseUlDdEI1QiwwakJBVUEsNGJESUksZUFBZSxrSUFDZixXQUFXLCtCQUNYLGtCQUFrQiwrS0FDbEIsU0FBUzs7MkZBS0EsZUFBZTtrQkFaM0IsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQO3dCQUNQLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxrQkFBa0I7d0JBQ2xCLFNBQVM7cUJBQ1Y7aUZBS1EsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgc2lnbmFsLCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UmVuZGVyaW5nTW9kdWxlfSBmcm9tIFwiLi4vLi4vcmVuZGVyaW5nLm1vZHVsZVwiO1xuaW1wb3J0IHtSZW5kZXJNb2R1bGV9IGZyb20gXCIuLi9SZW5kZXJNb2R1bGVcIjtcbmltcG9ydCB7Tm9kZX0gZnJvbSBcIm5neC1lZHUtc2hhcmluZy1hcGlcIjtcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtSZW5kZXJEYXRhLCBBc3NldFN0YXRlSXRlbX0gZnJvbSBcIi4uLy4uL2R0by9SZW5kZXJEYXRhXCI7XG5pbXBvcnQge01hdFByb2dyZXNzU3Bpbm5lciwgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lclwiO1xuaW1wb3J0IHtEb21TYW5pdGl6ZXIsIFNhZmVSZXNvdXJjZVVybH0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcbmltcG9ydCB7TWF0QW5jaG9yfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JzLW1vZHVsZS1iaW5kZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgUmVuZGVyaW5nTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lcixcbiAgICBNYXRBbmNob3IsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9iaW5kZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYmluZGVyLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBCaW5kZXJDb21wb25lbnQgaW1wbGVtZW50cyBSZW5kZXJNb2R1bGUsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGRhdGE6IFJlbmRlckRhdGEgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIG5vZGU6IE5vZGUgfCB1bmRlZmluZWQ7XG4gIGJpbmRlckl0ZW0gPSBzaWduYWw8QXNzZXRTdGF0ZUl0ZW0gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByZXZpZXdVcmwgPSBzaWduYWw8U2FmZVJlc291cmNlVXJsIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpXG4gIGhhc1ByZXZpZXcgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3QgYmluZGVySm9iRGF0YSA9IHRoaXMuZGF0YT8uaXRlbXM/LmZpbmQoaXRlbSA9PiBpdGVtLmFkZGl0aW9uYWxEYXRhID09PSBudWxsKVxuICAgIGNvbnNvbGUubG9nKFwiQklOREVSREFUQVwiKVxuICAgIGNvbnNvbGUubG9nKGJpbmRlckpvYkRhdGEpXG4gICAgaWYgKCBiaW5kZXJKb2JEYXRhICE9PSB1bmRlZmluZWQgKSB7XG4gICAgICB0aGlzLmJpbmRlckl0ZW0uc2V0KGJpbmRlckpvYkRhdGEpXG4gICAgfVxuICAgIGNvbnN0IHByZXZpZXdKb2JEYXRhID0gdGhpcy5kYXRhPy5pdGVtcz8uZmluZChpdGVtID0+IGl0ZW0uYWRkaXRpb25hbERhdGEgIT09IG51bGwpXG4gICAgY29uc29sZS5sb2coXCJQUkVWSUVXREFUQVwiKVxuICAgIGNvbnNvbGUubG9nKHByZXZpZXdKb2JEYXRhKVxuICAgIGlmIChwcmV2aWV3Sm9iRGF0YSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmhhc1ByZXZpZXcuc2V0KHRydWUpXG4gICAgICBpZiAocHJldmlld0pvYkRhdGEubGluayAhPT0gdW5kZWZpbmVkICYmIHByZXZpZXdKb2JEYXRhLmxpbmsgIT09IFwiXCIpIHtcbiAgICAgICAgdGhpcy5wcmV2aWV3VXJsLnNldCh0aGlzLmdldFNhZmVVcmkocHJldmlld0pvYkRhdGEubGluaykpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0U2FmZVVyaShhc3NldExpbms6IHN0cmluZykge1xuICAgICAgY29uc3QgdXJpID0gbmV3IFVSTChhc3NldExpbmspXG4gICAgICBpZiAodXJpLmhvc3RuYW1lLmluY2x1ZGVzKFwibmlwLmlvXCIpKSB7XG4gICAgICAgIHVyaS5ob3N0bmFtZSA9IFwibG9jYWxob3N0XCJcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwodXJpLnRvU3RyaW5nKCkpXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJiaW5kZXItd3JhcHBlclwiPlxuICA8ZGl2IGNsYXNzPVwicHJldmlldy1jb250YWluZXJcIiAqbmdJZj1cImhhc1ByZXZpZXcoKVwiPlxuICAgIDxtYXQtc3Bpbm5lciBbZGlhbWV0ZXJdPVwiNTBcIiAqbmdJZj1cInByZXZpZXdVcmwoKSA9PT0gJydcIj48L21hdC1zcGlubmVyPlxuICAgIDxpZnJhbWUgY2xhc3M9XCJmcmFtZVwiIFtzcmNdPVwicHJldmlld1VybCgpXCIgKm5nSWY9XCJwcmV2aWV3VXJsKCkgIT09ICcnXCIgPjwvaWZyYW1lPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImJpbmRlci1saW5rLWNvbnRhaW5lclwiPlxuICAgIDxtYXQtc3Bpbm5lciBbZGlhbWV0ZXJdPVwiNTBcIiAqbmdJZj1cImJpbmRlckl0ZW0oKT8ubGluayA9PT0gJydcIiA+PC9tYXQtc3Bpbm5lcj5cbiAgICA8YSBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2hyZWZdPVwiYmluZGVySXRlbSgpPy5saW5rXCIgdGFyZ2V0PVwiX2JsYW5rXCIgKm5nSWY9XCJiaW5kZXJJdGVtKCk/LmxpbmsgIT09ICcnXCI+TGluayB0byBvYmplY3Q8L2E+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -39,7 +39,7 @@ class BinderComponent {
39
39
  return this.sanitizer.bypassSecurityTrustResourceUrl(uri.toString());
40
40
  }
41
41
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: BinderComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
42
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: BinderComponent, isStandalone: true, selector: "rs-module-binder", inputs: { data: "data", node: "node" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"binder-wrapper\">\n <div class=\"binder-link-container\">\n <mat-spinner [diameter]=\"50\" *ngIf=\"binderItem()?.link === ''\" ></mat-spinner>\n <a mat-button [href]=\"binderItem()?.link\" target=\"_blank\" *ngIf=\"binderItem()?.link !== ''\">Link to object</a>\n </div>\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>\n", styles: [":host{position:relative;display:flex;align-items:center;width:100%}.binder-wrapper{width:100%;position:relative;display:flex;flex-direction:column;justify-content:center}.binder-wrapper .preview-container>.frame{width:100%;height:100%}.binder-wrapper .binder-link-container{padding-bottom:1em}\n"], dependencies: [{ kind: "ngmodule", type: RenderingModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }] }); }
42
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: BinderComponent, isStandalone: true, selector: "rs-module-binder", inputs: { data: "data", node: "node" }, usesOnChanges: true, ngImport: i0, template: "<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", styles: [":host{position:relative;display:flex;align-items:center;width:100%}.binder-wrapper{width:100%;height:100%;position:relative;display:flex;flex-direction:column;justify-content:center}.binder-wrapper .preview-container{flex-grow:1}.binder-wrapper .preview-container>.frame{width:100%;height:100%}.binder-wrapper .binder-link-container{display:flex;justify-content:center;padding-top:1em}\n"], dependencies: [{ kind: "ngmodule", type: RenderingModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }] }); }
43
43
  }
44
44
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: BinderComponent, decorators: [{
45
45
  type: Component,
@@ -48,7 +48,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
48
48
  FormsModule,
49
49
  MatProgressSpinner,
50
50
  MatAnchor,
51
- ], template: "<div class=\"binder-wrapper\">\n <div class=\"binder-link-container\">\n <mat-spinner [diameter]=\"50\" *ngIf=\"binderItem()?.link === ''\" ></mat-spinner>\n <a mat-button [href]=\"binderItem()?.link\" target=\"_blank\" *ngIf=\"binderItem()?.link !== ''\">Link to object</a>\n </div>\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>\n", styles: [":host{position:relative;display:flex;align-items:center;width:100%}.binder-wrapper{width:100%;position:relative;display:flex;flex-direction:column;justify-content:center}.binder-wrapper .preview-container>.frame{width:100%;height:100%}.binder-wrapper .binder-link-container{padding-bottom:1em}\n"] }]
51
+ ], template: "<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", styles: [":host{position:relative;display:flex;align-items:center;width:100%}.binder-wrapper{width:100%;height:100%;position:relative;display:flex;flex-direction:column;justify-content:center}.binder-wrapper .preview-container{flex-grow:1}.binder-wrapper .preview-container>.frame{width:100%;height:100%}.binder-wrapper .binder-link-container{display:flex;justify-content:center;padding-top:1em}\n"] }]
52
52
  }], ctorParameters: () => [{ type: i1.DomSanitizer }], propDecorators: { data: [{
53
53
  type: Input
54
54
  }], node: [{
@@ -56,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
56
56
  }] } });
57
57
 
58
58
  export { BinderComponent };
59
- //# sourceMappingURL=ngx-rendering-service-lib-binder.component-CUACKuuS.mjs.map
59
+ //# sourceMappingURL=ngx-rendering-service-lib-binder.component-BuvBftCX.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngx-rendering-service-lib-binder.component-BuvBftCX.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, MatProgressSpinnerModule} 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 standalone: true,\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 console.log(\"BINDERDATA\")\n console.log(binderJobData)\n if ( binderJobData !== undefined ) {\n this.binderItem.set(binderJobData)\n }\n const previewJobData = this.data?.items?.find(item => item.additionalData !== null)\n console.log(\"PREVIEWDATA\")\n console.log(previewJobData)\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 if (uri.hostname.includes(\"nip.io\")) {\n uri.hostname = \"localhost\"\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":"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"}
@@ -789,9 +789,9 @@ class RenderComponent {
789
789
  }
790
790
  }
791
791
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RenderComponent, deps: [{ token: i0.Injector }, { token: i1$1.RenderControllerWrapperService }, { token: i1$1.JobInfoControllerService }, { token: ModuleInfoService }, { token: i3.PlatformLocation }], target: i0.ɵɵFactoryTarget.Component }); }
792
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: RenderComponent, isStandalone: true, selector: "rs-root", inputs: { request: "request", node: "node", serviceWorkerUrl: "serviceWorkerUrl" }, usesOnChanges: true, ngImport: i0, template: "<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 === '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') {\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 === 'H5P' || data?.module === 'JUPYTER' || data.module === 'SPREADSHEET') {\n <rs-module-eduHtml [data]=\"data\" [node]=\"node\"></rs-module-eduHtml>\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 === '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\"></rs-module-url>\n }\n </ng-container>\n </ng-container>\n\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\">Queue position: {{-(progress.progress ?? 0)}}</div>\n <mat-progress-bar [value]=\"(progress.progress ?? 0)\" *ngIf=\"(progress.progress ?? 0) >= 0\"></mat-progress-bar>\n </ng-container>\n <ng-container *ngSwitchCase=\"'spinner'\">\n <div *ngIf=\"(progress.progress ?? 0) < 0\">Queue position: {{-(progress.progress ?? 0)}</div>\n <mat-spinner [diameter]=\"50\" *ngIf=\"(progress.progress ?? 0) >= 0\"></mat-spinner>\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;padding:10px 30px}.module{overflow:auto;display:flex;flex-grow:1;height:auto;border:1px solid #aaa;padding:20px}.module rs-module-image,.module rs-module-video{width:100%}.module .progress{display:flex;justify-content:center;flex-grow:1}\n"], dependencies: [{ kind: "ngmodule", type: RenderingApiModule }, { kind: "ngmodule", type: RenderingModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i4$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }], deferBlockDependencies: [() => [Promise.resolve().then(function () { return image_component; }).then(m => m.ImageComponent)], () => [Promise.resolve().then(function () { return video_component; }).then(m => m.VideoComponent)], () => [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-audio.component-Cpp5Zzp1.mjs').then(m => m.AudioComponent)], () => [import('./ngx-rendering-service-lib-binder.component-CUACKuuS.mjs').then(m => m.BinderComponent)], () => [import('./ngx-rendering-service-lib-ddb.component-BdYROITK.mjs').then(m => m.DdbComponent)], () => [import('./ngx-rendering-service-lib-default.component-BiI-arRn.mjs').then(m => m.DefaultComponent)], () => [Promise.resolve().then(function () { return url_component; }).then(m => m.UrlComponent)]] }); }
792
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: RenderComponent, isStandalone: true, selector: "rs-root", inputs: { request: "request", node: "node", serviceWorkerUrl: "serviceWorkerUrl" }, usesOnChanges: true, ngImport: i0, template: "<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 === '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') {\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 === 'H5P' || data?.module === 'JUPYTER' || data.module === 'SPREADSHEET') {\n <rs-module-eduHtml [data]=\"data\" [node]=\"node\"></rs-module-eduHtml>\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 === '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\"></rs-module-url>\n }\n </ng-container>\n </ng-container>\n\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\">Queue position: {{-(progress.progress ?? 0)}}</div>\n <mat-progress-bar [value]=\"(progress.progress ?? 0)\" *ngIf=\"(progress.progress ?? 0) >= 0\"></mat-progress-bar>\n </ng-container>\n <ng-container *ngSwitchCase=\"'spinner'\">\n <div *ngIf=\"(progress.progress ?? 0) < 0\">Queue position: {{-(progress.progress ?? 0)}</div>\n <mat-spinner [diameter]=\"50\" *ngIf=\"(progress.progress ?? 0) >= 0\"></mat-spinner>\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;padding:10px 30px}.module{overflow:auto;display:flex;flex-grow:1;height:auto;border:1px solid #aaa;padding:20px}.module rs-module-image,.module rs-module-video{width:100%}.module .progress{display:flex;justify-content:center;flex-grow:1}\n"], dependencies: [{ kind: "ngmodule", type: RenderingApiModule }, { kind: "ngmodule", type: RenderingModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i4$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }], deferBlockDependencies: [() => [Promise.resolve().then(function () { return image_component; }).then(m => m.ImageComponent)], () => [Promise.resolve().then(function () { return video_component; }).then(m => m.VideoComponent)], () => [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-audio.component-Cpp5Zzp1.mjs').then(m => m.AudioComponent)], () => [import('./ngx-rendering-service-lib-binder.component-BuvBftCX.mjs').then(m => m.BinderComponent)], () => [import('./ngx-rendering-service-lib-ddb.component-BdYROITK.mjs').then(m => m.DdbComponent)], () => [import('./ngx-rendering-service-lib-default.component-BiI-arRn.mjs').then(m => m.DefaultComponent)], () => [Promise.resolve().then(function () { return url_component; }).then(m => m.UrlComponent)]] }); }
793
793
  }
794
- i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "18.2.6", ngImport: i0, type: RenderComponent, resolveDeferredDeps: () => [Promise.resolve().then(function () { return image_component; }).then(m => m.ImageComponent), Promise.resolve().then(function () { return video_component; }).then(m => m.VideoComponent), 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-audio.component-Cpp5Zzp1.mjs').then(m => m.AudioComponent), import('./ngx-rendering-service-lib-binder.component-CUACKuuS.mjs').then(m => m.BinderComponent), import('./ngx-rendering-service-lib-ddb.component-BdYROITK.mjs').then(m => m.DdbComponent), import('./ngx-rendering-service-lib-default.component-BiI-arRn.mjs').then(m => m.DefaultComponent), Promise.resolve().then(function () { return url_component; }).then(m => m.UrlComponent)], resolveMetadata: (ImageComponent, VideoComponent, PdfComponent, EduHtmlComponent, AudioComponent, BinderComponent, DdbComponent, DefaultComponent, UrlComponent) => ({ decorators: [{
794
+ i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "18.2.6", ngImport: i0, type: RenderComponent, resolveDeferredDeps: () => [Promise.resolve().then(function () { return image_component; }).then(m => m.ImageComponent), Promise.resolve().then(function () { return video_component; }).then(m => m.VideoComponent), 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-audio.component-Cpp5Zzp1.mjs').then(m => m.AudioComponent), import('./ngx-rendering-service-lib-binder.component-BuvBftCX.mjs').then(m => m.BinderComponent), import('./ngx-rendering-service-lib-ddb.component-BdYROITK.mjs').then(m => m.DdbComponent), import('./ngx-rendering-service-lib-default.component-BiI-arRn.mjs').then(m => m.DefaultComponent), Promise.resolve().then(function () { return url_component; }).then(m => m.UrlComponent)], resolveMetadata: (ImageComponent, VideoComponent, PdfComponent, EduHtmlComponent, AudioComponent, BinderComponent, DdbComponent, DefaultComponent, UrlComponent) => ({ decorators: [{
795
795
  type: Component,
796
796
  args: [{ selector: 'rs-root', standalone: true, imports: [
797
797
  RenderingApiModule,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-rendering-service-lib",
3
- "version": "0.0.66849",
3
+ "version": "0.0.66851",
4
4
  "private": false,
5
5
  "dependencies": {
6
6
  "tslib": "^2.3.0"
@@ -1 +0,0 @@
1
- {"version":3,"file":"ngx-rendering-service-lib-binder.component-CUACKuuS.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, MatProgressSpinnerModule} 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 standalone: true,\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 console.log(\"BINDERDATA\")\n console.log(binderJobData)\n if ( binderJobData !== undefined ) {\n this.binderItem.set(binderJobData)\n }\n const previewJobData = this.data?.items?.find(item => item.additionalData !== null)\n console.log(\"PREVIEWDATA\")\n console.log(previewJobData)\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 if (uri.hostname.includes(\"nip.io\")) {\n uri.hostname = \"localhost\"\n }\n return this.sanitizer.bypassSecurityTrustResourceUrl(uri.toString())\n }\n}\n","<div class=\"binder-wrapper\">\n <div class=\"binder-link-container\">\n <mat-spinner [diameter]=\"50\" *ngIf=\"binderItem()?.link === ''\" ></mat-spinner>\n <a mat-button [href]=\"binderItem()?.link\" target=\"_blank\" *ngIf=\"binderItem()?.link !== ''\">Link to object</a>\n </div>\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>\n"],"names":[],"mappings":"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"}