@crystalui/angular-lightbox
Version:
Angular library for viewing images in a pop-up window with touch screen support.
57 lines • 7.7 kB
JavaScript
import { __decorate } from "tslib";
import { Injectable, Injector, ComponentFactoryResolver, EmbeddedViewRef, ApplicationRef, ComponentRef } from '@angular/core';
import { LightboxComponent } from './lightbox.component';
import { DefaultProperties } from './default-properties';
var CrystalLightbox = /** @class */ (function () {
function CrystalLightbox(componentFactoryResolver, appRef, injector) {
this.componentFactoryResolver = componentFactoryResolver;
this.appRef = appRef;
this.injector = injector;
}
CrystalLightbox.prototype.appendComponentToBody = function (component, lightboxData) {
var _this = this;
var componentRef = this.componentFactoryResolver
.resolveComponentFactory(component)
.create(this.injector);
componentRef.instance.lightboxData = lightboxData;
this.appRef.attachView(componentRef.hostView);
var domElem = componentRef.hostView.rootNodes[0];
// Add to body
document.body.appendChild(domElem);
componentRef.instance.events.subscribe(function (event) {
if (event.type === 'close') {
_this.appRef.detachView(componentRef.hostView);
componentRef.destroy();
}
});
};
CrystalLightbox.prototype.open = function (lightboxData) {
lightboxData.properties = this.applyPropertieDefaults(DefaultProperties, lightboxData.properties);
var component = this.getLightboxComponent();
this.appendComponentToBody(component, lightboxData);
};
CrystalLightbox.prototype.getLightboxComponent = function () {
return LightboxComponent;
};
CrystalLightbox.prototype.applyPropertieDefaults = function (defaultProperties, properties) {
if (!properties) {
properties = {};
}
if (!properties.index) {
properties.index = 0;
}
this._defaultProperties = Object.assign({}, defaultProperties);
return Object.assign(this._defaultProperties, properties);
};
CrystalLightbox.ctorParameters = function () { return [
{ type: ComponentFactoryResolver },
{ type: ApplicationRef },
{ type: Injector }
]; };
CrystalLightbox = __decorate([
Injectable()
], CrystalLightbox);
return CrystalLightbox;
}());
export { CrystalLightbox };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRib3guc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BjcnlzdGFsdWkvYW5ndWxhci1saWdodGJveC8iLCJzb3VyY2VzIjpbImxpYi9saWdodGJveC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSx3QkFBd0IsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5SCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQVF6RDtJQUlDLHlCQUNTLHdCQUFrRCxFQUNsRCxNQUFzQixFQUN0QixRQUFrQjtRQUZsQiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFDM0IsQ0FBQztJQUVELCtDQUFxQixHQUFyQixVQUFzQixTQUFjLEVBQUUsWUFBMEI7UUFBaEUsaUJBbUJDO1FBbEJNLElBQU0sWUFBWSxHQUFHLElBQUksQ0FBQyx3QkFBd0I7YUFDN0MsdUJBQXVCLENBQUMsU0FBUyxDQUFDO2FBQ2xDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFbkIsWUFBWSxDQUFDLFFBQVMsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBRWpFLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QyxJQUFNLE9BQU8sR0FBSSxZQUFZLENBQUMsUUFBaUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFnQixDQUFDO1FBRTVGLGNBQWM7UUFDZCxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLFlBQVksQ0FBQyxRQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFDLEtBQUs7WUFDM0QsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBQztnQkFDaEMsS0FBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM5QyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDdkI7UUFDSSxDQUFDLENBQUMsQ0FBQztJQUNWLENBQUM7SUFHRCw4QkFBSSxHQUFKLFVBQUssWUFBMEI7UUFDOUIsWUFBWSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVGLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELDhDQUFvQixHQUFwQjtRQUNDLE9BQU8saUJBQWlCLENBQUM7SUFDMUIsQ0FBQztJQUVELGdEQUFzQixHQUF0QixVQUF1QixpQkFBaUIsRUFBRSxVQUFVO1FBQ25ELElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDaEIsVUFBVSxHQUFHLEVBQUUsQ0FBQztTQUNoQjtRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFDO1lBQ3JCLFVBQVUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1NBQ3JCO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDL0QsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUMzRCxDQUFDOztnQkEvQ2tDLHdCQUF3QjtnQkFDMUMsY0FBYztnQkFDWixRQUFROztJQVBmLGVBQWU7UUFEM0IsVUFBVSxFQUFFO09BQ0EsZUFBZSxDQXFEM0I7SUFBRCxzQkFBQztDQUFBLEFBckRELElBcURDO1NBckRZLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBFbWJlZGRlZFZpZXdSZWYsIEFwcGxpY2F0aW9uUmVmLCBDb21wb25lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExpZ2h0Ym94Q29tcG9uZW50IH0gZnJvbSAnLi9saWdodGJveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvcGVydGllcywgTGlnaHRib3hEYXRhIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IERlZmF1bHRQcm9wZXJ0aWVzIH0gZnJvbSAnLi9kZWZhdWx0LXByb3BlcnRpZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFkQ29tcG9uZW50IHtcblx0bGlnaHRib3hEYXRhOiBMaWdodGJveERhdGE7IFxuXHRldmVudHM6IGFueTtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENyeXN0YWxMaWdodGJveCB7XG5cdGlzTW9iaWxlOiBib29sZWFuO1xuXHRfZGVmYXVsdFByb3BlcnRpZXM6IFByb3BlcnRpZXM7XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcblx0XHRwcml2YXRlIGFwcFJlZjogQXBwbGljYXRpb25SZWYsXG5cdFx0cHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpeyBcblx0fVxuIFxuXHRhcHBlbmRDb21wb25lbnRUb0JvZHkoY29tcG9uZW50OiBhbnksIGxpZ2h0Ym94RGF0YTogTGlnaHRib3hEYXRhKSB7XHRcdFxuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlclxuICAgICAgICAgICAgLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudClcbiAgICAgICAgICAgIC5jcmVhdGUodGhpcy5pbmplY3Rvcik7XG5cblx0XHQoPEFkQ29tcG9uZW50PmNvbXBvbmVudFJlZi5pbnN0YW5jZSkubGlnaHRib3hEYXRhID0gbGlnaHRib3hEYXRhO1xuXG5cdFx0dGhpcy5hcHBSZWYuYXR0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuXHRcdGNvbnN0IGRvbUVsZW0gPSAoY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KS5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG5cblx0XHQvLyBBZGQgdG8gYm9keVxuXHRcdGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9tRWxlbSk7XG5cdFx0XG4gICAgICAgICg8QWRDb21wb25lbnQ+Y29tcG9uZW50UmVmLmluc3RhbmNlKS5ldmVudHMuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICBcdGlmIChldmVudC50eXBlID09PSAnY2xvc2UnKXtcblx0XHRcdFx0dGhpcy5hcHBSZWYuZGV0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuXHRcdFx0XHRjb21wb25lbnRSZWYuZGVzdHJveSgpO1xuXHRcdFx0fVxuICAgICAgICB9KTtcblx0fVxuXG5cblx0b3BlbihsaWdodGJveERhdGE6IExpZ2h0Ym94RGF0YSl7XG5cdFx0bGlnaHRib3hEYXRhLnByb3BlcnRpZXMgPSB0aGlzLmFwcGx5UHJvcGVydGllRGVmYXVsdHMoRGVmYXVsdFByb3BlcnRpZXMsIGxpZ2h0Ym94RGF0YS5wcm9wZXJ0aWVzKTtcbiAgICAgICAgbGV0IGNvbXBvbmVudCA9IHRoaXMuZ2V0TGlnaHRib3hDb21wb25lbnQoKTtcblx0XHR0aGlzLmFwcGVuZENvbXBvbmVudFRvQm9keShjb21wb25lbnQsIGxpZ2h0Ym94RGF0YSk7XG5cdH1cblxuXHRnZXRMaWdodGJveENvbXBvbmVudCgpe1xuXHRcdHJldHVybiBMaWdodGJveENvbXBvbmVudDtcblx0fVxuXG5cdGFwcGx5UHJvcGVydGllRGVmYXVsdHMoZGVmYXVsdFByb3BlcnRpZXMsIHByb3BlcnRpZXMpe1xuXHRcdGlmICghcHJvcGVydGllcykge1xuXHRcdFx0cHJvcGVydGllcyA9IHt9O1xuXHRcdH1cblxuXHRcdGlmICghcHJvcGVydGllcy5pbmRleCl7IFxuXHRcdFx0cHJvcGVydGllcy5pbmRleCA9IDA7XG5cdFx0fVxuXHRcdHRoaXMuX2RlZmF1bHRQcm9wZXJ0aWVzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdFByb3BlcnRpZXMpO1xuXHRcdHJldHVybiBPYmplY3QuYXNzaWduKHRoaXMuX2RlZmF1bHRQcm9wZXJ0aWVzLCBwcm9wZXJ0aWVzKTtcblx0fVxufSJdfQ==