UNPKG

angular-auth-oidc-client

Version:
59 lines 7.71 kB
import { DOCUMENT } from '@angular/common'; import { Injectable, inject } from '@angular/core'; import { LoggerService } from '../logging/logger.service'; import * as i0 from "@angular/core"; export class IFrameService { constructor() { this.document = inject(DOCUMENT); this.loggerService = inject(LoggerService); } getExistingIFrame(identifier) { const iFrameOnParent = this.getIFrameFromParentWindow(identifier); if (this.isIFrameElement(iFrameOnParent)) { return iFrameOnParent; } const iFrameOnSelf = this.getIFrameFromWindow(identifier); if (this.isIFrameElement(iFrameOnSelf)) { return iFrameOnSelf; } return null; } addIFrameToWindowBody(identifier, config) { const sessionIframe = this.document.createElement('iframe'); sessionIframe.id = identifier; sessionIframe.title = identifier; this.loggerService.logDebug(config, sessionIframe); sessionIframe.style.display = 'none'; this.document.body.appendChild(sessionIframe); return sessionIframe; } getIFrameFromParentWindow(identifier) { try { const iFrameElement = this.document.defaultView?.parent.document.getElementById(identifier); if (this.isIFrameElement(iFrameElement)) { return iFrameElement; } return null; } catch (e) { return null; } } getIFrameFromWindow(identifier) { const iFrameElement = this.document.getElementById(identifier); if (this.isIFrameElement(iFrameElement)) { return iFrameElement; } return null; } isIFrameElement(element) { return !!element && element instanceof HTMLIFrameElement; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: IFrameService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: IFrameService, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: IFrameService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhpc3RpbmctaWZyYW1lLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWF1dGgtb2lkYy1jbGllbnQvc3JjL2xpYi9pZnJhbWUvZXhpc3RpbmctaWZyYW1lLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFHMUQsTUFBTSxPQUFPLGFBQWE7SUFEMUI7UUFFbUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU1QixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztLQWlFeEQ7SUEvREMsaUJBQWlCLENBQUMsVUFBa0I7UUFDbEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWxFLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQ3pDLE9BQU8sY0FBYyxDQUFDO1FBQ3hCLENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFMUQsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDdkMsT0FBTyxZQUFZLENBQUM7UUFDdEIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELHFCQUFxQixDQUNuQixVQUFrQixFQUNsQixNQUEyQjtRQUUzQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU1RCxhQUFhLENBQUMsRUFBRSxHQUFHLFVBQVUsQ0FBQztRQUM5QixhQUFhLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQztRQUNqQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDbkQsYUFBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUU5QyxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBRU8seUJBQXlCLENBQy9CLFVBQWtCO1FBRWxCLElBQUksQ0FBQztZQUNILE1BQU0sYUFBYSxHQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUV4RSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztnQkFDeEMsT0FBTyxhQUFhLENBQUM7WUFDdkIsQ0FBQztZQUVELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsVUFBa0I7UUFDNUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFL0QsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDeEMsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLGVBQWUsQ0FDckIsT0FBdUM7UUFFdkMsT0FBTyxDQUFDLENBQUMsT0FBTyxJQUFJLE9BQU8sWUFBWSxpQkFBaUIsQ0FBQztJQUMzRCxDQUFDOzhHQW5FVSxhQUFhO2tIQUFiLGFBQWEsY0FEQSxNQUFNOzsyRkFDbkIsYUFBYTtrQkFEekIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9wZW5JZENvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9jb25maWcvb3BlbmlkLWNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uL2xvZ2dpbmcvbG9nZ2VyLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIElGcmFtZVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlclNlcnZpY2UgPSBpbmplY3QoTG9nZ2VyU2VydmljZSk7XG5cbiAgZ2V0RXhpc3RpbmdJRnJhbWUoaWRlbnRpZmllcjogc3RyaW5nKTogSFRNTElGcmFtZUVsZW1lbnQgfCBudWxsIHtcbiAgICBjb25zdCBpRnJhbWVPblBhcmVudCA9IHRoaXMuZ2V0SUZyYW1lRnJvbVBhcmVudFdpbmRvdyhpZGVudGlmaWVyKTtcblxuICAgIGlmICh0aGlzLmlzSUZyYW1lRWxlbWVudChpRnJhbWVPblBhcmVudCkpIHtcbiAgICAgIHJldHVybiBpRnJhbWVPblBhcmVudDtcbiAgICB9XG5cbiAgICBjb25zdCBpRnJhbWVPblNlbGYgPSB0aGlzLmdldElGcmFtZUZyb21XaW5kb3coaWRlbnRpZmllcik7XG5cbiAgICBpZiAodGhpcy5pc0lGcmFtZUVsZW1lbnQoaUZyYW1lT25TZWxmKSkge1xuICAgICAgcmV0dXJuIGlGcmFtZU9uU2VsZjtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGFkZElGcmFtZVRvV2luZG93Qm9keShcbiAgICBpZGVudGlmaWVyOiBzdHJpbmcsXG4gICAgY29uZmlnOiBPcGVuSWRDb25maWd1cmF0aW9uXG4gICk6IEhUTUxJRnJhbWVFbGVtZW50IHtcbiAgICBjb25zdCBzZXNzaW9uSWZyYW1lID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtcblxuICAgIHNlc3Npb25JZnJhbWUuaWQgPSBpZGVudGlmaWVyO1xuICAgIHNlc3Npb25JZnJhbWUudGl0bGUgPSBpZGVudGlmaWVyO1xuICAgIHRoaXMubG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyhjb25maWcsIHNlc3Npb25JZnJhbWUpO1xuICAgIHNlc3Npb25JZnJhbWUuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2Vzc2lvbklmcmFtZSk7XG5cbiAgICByZXR1cm4gc2Vzc2lvbklmcmFtZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SUZyYW1lRnJvbVBhcmVudFdpbmRvdyhcbiAgICBpZGVudGlmaWVyOiBzdHJpbmdcbiAgKTogSFRNTElGcmFtZUVsZW1lbnQgfCBudWxsIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgaUZyYW1lRWxlbWVudCA9XG4gICAgICAgIHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXc/LnBhcmVudC5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZGVudGlmaWVyKTtcblxuICAgICAgaWYgKHRoaXMuaXNJRnJhbWVFbGVtZW50KGlGcmFtZUVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiBpRnJhbWVFbGVtZW50O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldElGcmFtZUZyb21XaW5kb3coaWRlbnRpZmllcjogc3RyaW5nKTogSFRNTElGcmFtZUVsZW1lbnQgfCBudWxsIHtcbiAgICBjb25zdCBpRnJhbWVFbGVtZW50ID0gdGhpcy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZGVudGlmaWVyKTtcblxuICAgIGlmICh0aGlzLmlzSUZyYW1lRWxlbWVudChpRnJhbWVFbGVtZW50KSkge1xuICAgICAgcmV0dXJuIGlGcmFtZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIGlzSUZyYW1lRWxlbWVudChcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgfCB1bmRlZmluZWRcbiAgKTogZWxlbWVudCBpcyBIVE1MSUZyYW1lRWxlbWVudCB7XG4gICAgcmV0dXJuICEhZWxlbWVudCAmJiBlbGVtZW50IGluc3RhbmNlb2YgSFRNTElGcmFtZUVsZW1lbnQ7XG4gIH1cbn1cbiJdfQ==