@twogate/ngx-photo-gallery
Version:
PhotoGallery library for Angular based on [PhotoSwipe](http://photoswipe.com/).
38 lines • 5.04 kB
JavaScript
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=