openaire-library/utils/iframe.component.ts

40 lines
1.2 KiB
TypeScript

import {Component, ElementRef, Input} from '@angular/core';
import { SafeResourceUrl, DomSanitizer } from '@angular/platform-browser';
//Usage :: <i-frame [url]="url" width="30%" height="250"></i-frame>`
@Component({
selector: 'i-frame',
template: `
<div *ngIf="!style" class=" uk-height-large" [class.iframeContainer]="addClass">
<iframe allowtransparency="true" [src]="safeUrl"></iframe>
</div>
<div *ngIf="style" [class.iframeContainer]="addClass" [ngStyle]="style">
<iframe [src]="safeUrl"></iframe>
</div>
`
})
export class IFrameComponent {
public safeUrl: SafeResourceUrl;
@Input() url ;
@Input() width: number;
@Input() height: number;
@Input() unit: string = 'px';
@Input() addClass: boolean= true;
public style: any;
constructor(private sanitizer: DomSanitizer) {
}
ngOnInit() {
this.safeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.url);
let width = 'width.' + this.unit;
let height = 'height.' + this.unit;
if(this.width && this.height) {
this.style = {};
this.style[width] = this.width;
this.style[height] = this.height;
} else if(this.height) {
this.style = {};
this.style[height] = this.height;
}
}
}