UNPKG

@twogate/ngx-photo-gallery

Version:

PhotoGallery library for Angular based on [PhotoSwipe](http://photoswipe.com/).

38 lines 5.04 kB
import { Injectable, createComponent } from '@angular/core'; import { LightboxComponent } from '../components/lightbox/lightbox.component'; import * as i0 from "@angular/core"; export class LightboxService { constructor(applicationRef) { this.applicationRef = applicationRef; this.lightbox = null; this.lightboxElement = null; } create() { this.lightbox = createComponent(LightboxComponent, { environmentInjector: this.applicationRef.injector }); document.body.appendChild(this.lightbox.location.nativeElement); this.applicationRef.attachView(this.lightbox.hostView); this.lightboxElement = this.lightbox.instance.element; } destroy() { if (this.lightbox) { this.applicationRef.detachView(this.lightbox.hostView); this.lightbox = null; this.lightboxElement = null; } } /** * Returns the lightbox element. * This method is called after the lightbox is created. * @returns HTMLElement */ getLightboxElement() { return this.lightboxElement.nativeElement; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: LightboxService, deps: [{ token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: LightboxService, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: LightboxService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: i0.ApplicationRef }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRib3guc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy9saWdodGJveC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQTRDLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7QUFHOUUsTUFBTSxPQUFPLGVBQWU7SUFJMUIsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQ2hELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQzdCLGlCQUFpQixFQUNqQixFQUFFLG1CQUFtQixFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQ3RELENBQUM7UUFDRixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXZELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO0lBQ3hELENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN2RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNyQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQTRCLENBQUM7SUFDM0QsQ0FBQzs4R0FuQ1UsZUFBZTtrSEFBZixlQUFlLGNBREYsTUFBTTs7MkZBQ25CLGVBQWU7a0JBRDNCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgQ29tcG9uZW50UmVmLCBFbGVtZW50UmVmLCBBcHBsaWNhdGlvblJlZiwgY3JlYXRlQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IExpZ2h0Ym94Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9saWdodGJveC9saWdodGJveC5jb21wb25lbnQnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIExpZ2h0Ym94U2VydmljZSB7XG4gIHByaXZhdGUgbGlnaHRib3g6IENvbXBvbmVudFJlZjxMaWdodGJveENvbXBvbmVudD4gfCBudWxsO1xuICBwcml2YXRlIGxpZ2h0Ym94RWxlbWVudDogRWxlbWVudFJlZiB8IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhcHBsaWNhdGlvblJlZjogQXBwbGljYXRpb25SZWYpIHtcbiAgICB0aGlzLmxpZ2h0Ym94ID0gbnVsbDtcbiAgICB0aGlzLmxpZ2h0Ym94RWxlbWVudCA9IG51bGw7XG4gIH1cblxuICBjcmVhdGUoKSB7XG4gICAgdGhpcy5saWdodGJveCA9IGNyZWF0ZUNvbXBvbmVudChcbiAgICAgIExpZ2h0Ym94Q29tcG9uZW50LFxuICAgICAgeyBlbnZpcm9ubWVudEluamVjdG9yOiB0aGlzLmFwcGxpY2F0aW9uUmVmLmluamVjdG9yIH1cbiAgICApO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5saWdodGJveC5sb2NhdGlvbi5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLmFwcGxpY2F0aW9uUmVmLmF0dGFjaFZpZXcodGhpcy5saWdodGJveC5ob3N0Vmlldyk7XG5cbiAgICB0aGlzLmxpZ2h0Ym94RWxlbWVudCA9IHRoaXMubGlnaHRib3guaW5zdGFuY2UuZWxlbWVudDtcbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMubGlnaHRib3gpIHtcbiAgICAgIHRoaXMuYXBwbGljYXRpb25SZWYuZGV0YWNoVmlldyh0aGlzLmxpZ2h0Ym94Lmhvc3RWaWV3KTtcbiAgICAgIHRoaXMubGlnaHRib3ggPSBudWxsO1xuICAgICAgdGhpcy5saWdodGJveEVsZW1lbnQgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBsaWdodGJveCBlbGVtZW50LlxuICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYWZ0ZXIgdGhlIGxpZ2h0Ym94IGlzIGNyZWF0ZWQuXG4gICAqIEByZXR1cm5zIEhUTUxFbGVtZW50XG4gICAqL1xuICBnZXRMaWdodGJveEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmxpZ2h0Ym94RWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICB9XG59XG4iXX0=