@crystalui/angular-lightbox
Version:
Angular library for viewing images in a pop-up window with touch screen support.
104 lines • 12.7 kB
JavaScript
import { __decorate } from "tslib";
import { Directive, HostBinding, ContentChildren } from '@angular/core';
import { EventService } from './event.service';
import { LightboxDirective } from './lightbox.directive';
import { CrystalLightbox } from './lightbox.service';
var LightboxGroupDirective = /** @class */ (function () {
function LightboxGroupDirective(eventService, lightbox) {
var _this = this;
this.eventService = eventService;
this.lightbox = lightbox;
this.thumbnailImages = [];
this.images = [];
this.properties = {};
this.hostLightboxGroup = true;
this.globalEventsSubscription = this.eventService.emitter.subscribe(function (event) {
_this.handleGlobalEvents(event);
});
}
Object.defineProperty(LightboxGroupDirective.prototype, "lightboxDirectiveList", {
get: function () {
if (this._lightboxDirectiveList) {
return this._lightboxDirectiveList.toArray();
}
else {
return [];
}
},
enumerable: true,
configurable: true
});
LightboxGroupDirective.prototype.handleGlobalEvents = function (event) {
if (event.type === 'thumbnail:click') {
this.thumbnailImageElement = event.elementRef.nativeElement;
this.thumbnailImages = this.getThumbnailImages();
this.thumbnailImageIndex = this.getThumbnailImageIndex(this.thumbnailImageElement);
if (this.thumbnailImageIndex == undefined) {
return;
}
this.thumbnailLightboxDirective = this.getThumbnailLightboxDirective(this.thumbnailImageIndex);
this.images = this.getImages();
this.properties = event.properties;
this.properties.index = this.thumbnailImageIndex;
this.lightbox.open({
images: this.images,
//index: this.thumbnailImageIndex,
properties: this.properties
});
}
};
LightboxGroupDirective.prototype.getThumbnailImageIndex = function (element) {
var images = this.thumbnailImages;
for (var i = 0; i < images.length; i++) {
if (element === images[i]) {
return i;
}
}
};
LightboxGroupDirective.prototype.getThumbnailLightboxDirective = function (index) {
return this.lightboxDirectiveList[index];
};
LightboxGroupDirective.prototype.getThumbnailImages = function () {
var thumbnailImages = [];
this.lightboxDirectiveList.forEach(function (el) {
thumbnailImages.push(el['elementRef'].nativeElement);
});
return thumbnailImages;
};
LightboxGroupDirective.prototype.getImages = function () {
var images = [];
this.lightboxDirectiveList.forEach(function (el) {
var image = {};
var nativeElement = el['elementRef'].nativeElement;
if (el.fullImage) {
image.fullImage = el.fullImage;
}
image.thumbnailImage = {
path: nativeElement.src,
height: nativeElement.naturalHeight,
width: nativeElement.naturalWidth
};
image.nativeElement = nativeElement;
images.push(image);
});
return images;
};
LightboxGroupDirective.ctorParameters = function () { return [
{ type: EventService },
{ type: CrystalLightbox }
]; };
__decorate([
HostBinding('class.lightbox-group')
], LightboxGroupDirective.prototype, "hostLightboxGroup", void 0);
__decorate([
ContentChildren(LightboxDirective, { descendants: true })
], LightboxGroupDirective.prototype, "_lightboxDirectiveList", void 0);
LightboxGroupDirective = __decorate([
Directive({
selector: '[lightbox-group]'
})
], LightboxGroupDirective);
return LightboxGroupDirective;
}());
export { LightboxGroupDirective };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRib3gtZ3JvdXAuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNyeXN0YWx1aS9hbmd1bGFyLWxpZ2h0Ym94LyIsInNvdXJjZXMiOlsibGliL2xpZ2h0Ym94LWdyb3VwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQUssc0JBQXNCLENBQUE7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFLLG9CQUFvQixDQUFDO0FBT3BEO0lBbUJJLGdDQUNZLFlBQTBCLEVBQzFCLFFBQXlCO1FBRnJDLGlCQVNDO1FBUlcsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFqQnJDLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFDWixlQUFVLEdBQWUsRUFBRSxDQUFDO1FBV1Msc0JBQWlCLEdBQVksSUFBSSxDQUFDO1FBTW5FLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQy9ELFVBQUMsS0FBSztZQUNGLEtBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQ0osQ0FBQztJQUNOLENBQUM7SUFuQkQsc0JBQUkseURBQXFCO2FBQXpCO1lBQ0ksSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUM7Z0JBQzVCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ2hEO2lCQUFNO2dCQUNILE9BQU8sRUFBRSxDQUFDO2FBQ2I7UUFDTCxDQUFDOzs7T0FBQTtJQWVELG1EQUFrQixHQUFsQixVQUFtQixLQUFLO1FBQ3BCLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxpQkFBaUIsRUFBQztZQUNqQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7WUFDNUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUNqRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBRW5GLElBQUksSUFBSSxDQUFDLG1CQUFtQixJQUFJLFNBQVMsRUFBQztnQkFDdEMsT0FBTzthQUNWO1lBRUQsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUMvRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1lBRWpELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUNmLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDbkIsa0NBQWtDO2dCQUNsQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7YUFDOUIsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRUQsdURBQXNCLEdBQXRCLFVBQXVCLE9BQU87UUFDMUIsSUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUNwQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNwQyxJQUFJLE9BQU8sS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUM7Z0JBQ3RCLE9BQU8sQ0FBQyxDQUFDO2FBQ1o7U0FDSjtJQUNMLENBQUM7SUFFRCw4REFBNkIsR0FBN0IsVUFBOEIsS0FBSztRQUMvQixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsbURBQWtCLEdBQWxCO1FBQ0ksSUFBSSxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsVUFBQSxFQUFFO1lBQ2pDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pELENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxlQUFlLENBQUM7SUFDM0IsQ0FBQztJQUVELDBDQUFTLEdBQVQ7UUFDSSxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxVQUFBLEVBQUU7WUFDakMsSUFBSSxLQUFLLEdBQWtCLEVBQUUsQ0FBQztZQUM5QixJQUFNLGFBQWEsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUMsYUFBYSxDQUFDO1lBRXJELElBQUksRUFBRSxDQUFDLFNBQVMsRUFBQztnQkFDYixLQUFLLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUM7YUFDbEM7WUFFRCxLQUFLLENBQUMsY0FBYyxHQUFHO2dCQUNuQixJQUFJLEVBQUUsYUFBYSxDQUFDLEdBQUc7Z0JBQ3ZCLE1BQU0sRUFBRSxhQUFhLENBQUMsYUFBYTtnQkFDbkMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxZQUFZO2FBQ3BDLENBQUE7WUFFRCxLQUFLLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztZQUNwQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs7Z0JBM0V5QixZQUFZO2dCQUNoQixlQUFlOztJQUpBO1FBQXBDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQztxRUFBbUM7SUFDZDtRQUF4RCxlQUFlLENBQUMsaUJBQWlCLEVBQUUsRUFBQyxXQUFXLEVBQUUsSUFBSSxFQUFDLENBQUM7MEVBQXNEO0lBbEJyRyxzQkFBc0I7UUFKbEMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLGtCQUFrQjtTQUMvQixDQUFDO09BRVcsc0JBQXNCLENBZ0dsQztJQUFELDZCQUFDO0NBQUEsQUFoR0QsSUFnR0M7U0FoR1ksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0QmluZGluZywgQ29udGVudENoaWxkcmVuLCBRdWVyeUxpc3QsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV2ZW50U2VydmljZSB9IGZyb20gJy4vZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBMaWdodGJveERpcmVjdGl2ZSB9IGZyb20nLi9saWdodGJveC5kaXJlY3RpdmUnIFxuaW1wb3J0IHsgQ3J5c3RhbExpZ2h0Ym94IH0gZnJvbScuL2xpZ2h0Ym94LnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvcGVydGllcywgSW1hZ2VFeHRlbmRlZCB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2xpZ2h0Ym94LWdyb3VwXSdcbn0pXG5cbmV4cG9ydCBjbGFzcyBMaWdodGJveEdyb3VwRGlyZWN0aXZlIHtcbiAgICB0aHVtYm5haWxJbWFnZUVsZW1lbnQ7XG4gICAgdGh1bWJuYWlsTGlnaHRib3hEaXJlY3RpdmU6IExpZ2h0Ym94RGlyZWN0aXZlO1xuICAgIHRodW1ibmFpbEltYWdlSW5kZXg6IG51bWJlcjtcbiAgICB0aHVtYm5haWxJbWFnZXMgPSBbXTtcbiAgICBpbWFnZXMgPSBbXTtcbiAgICBwcm9wZXJ0aWVzOiBQcm9wZXJ0aWVzID0ge307IFxuICAgIGdsb2JhbEV2ZW50c1N1YnNjcmlwdGlvbjtcblxuICAgIGdldCBsaWdodGJveERpcmVjdGl2ZUxpc3QoKXtcbiAgICAgICAgaWYgKHRoaXMuX2xpZ2h0Ym94RGlyZWN0aXZlTGlzdCl7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbGlnaHRib3hEaXJlY3RpdmVMaXN0LnRvQXJyYXkoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MubGlnaHRib3gtZ3JvdXAnKSBob3N0TGlnaHRib3hHcm91cDogYm9vbGVhbiA9IHRydWU7XG4gICAgQENvbnRlbnRDaGlsZHJlbihMaWdodGJveERpcmVjdGl2ZSwge2Rlc2NlbmRhbnRzOiB0cnVlfSkgX2xpZ2h0Ym94RGlyZWN0aXZlTGlzdDogUXVlcnlMaXN0PExpZ2h0Ym94RGlyZWN0aXZlPjsgXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbGlnaHRib3g6IENyeXN0YWxMaWdodGJveCkge1xuXG4gICAgICAgIHRoaXMuZ2xvYmFsRXZlbnRzU3Vic2NyaXB0aW9uID0gdGhpcy5ldmVudFNlcnZpY2UuZW1pdHRlci5zdWJzY3JpYmUoXG4gICAgICAgICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUdsb2JhbEV2ZW50cyhldmVudCk7IFxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGhhbmRsZUdsb2JhbEV2ZW50cyhldmVudCl7XG4gICAgICAgIGlmIChldmVudC50eXBlID09PSAndGh1bWJuYWlsOmNsaWNrJyl7XG4gICAgICAgICAgICB0aGlzLnRodW1ibmFpbEltYWdlRWxlbWVudCA9IGV2ZW50LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIHRoaXMudGh1bWJuYWlsSW1hZ2VzID0gdGhpcy5nZXRUaHVtYm5haWxJbWFnZXMoKTtcbiAgICAgICAgICAgIHRoaXMudGh1bWJuYWlsSW1hZ2VJbmRleCA9IHRoaXMuZ2V0VGh1bWJuYWlsSW1hZ2VJbmRleCh0aGlzLnRodW1ibmFpbEltYWdlRWxlbWVudCk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnRodW1ibmFpbEltYWdlSW5kZXggPT0gdW5kZWZpbmVkKXtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMudGh1bWJuYWlsTGlnaHRib3hEaXJlY3RpdmUgPSB0aGlzLmdldFRodW1ibmFpbExpZ2h0Ym94RGlyZWN0aXZlKHRoaXMudGh1bWJuYWlsSW1hZ2VJbmRleCk7XG4gICAgICAgICAgICB0aGlzLmltYWdlcyA9IHRoaXMuZ2V0SW1hZ2VzKCk7XG4gICAgICAgICAgICB0aGlzLnByb3BlcnRpZXMgPSBldmVudC5wcm9wZXJ0aWVzO1xuICAgICAgICAgICAgdGhpcy5wcm9wZXJ0aWVzLmluZGV4ID0gdGhpcy50aHVtYm5haWxJbWFnZUluZGV4O1xuXG4gICAgICAgICAgICB0aGlzLmxpZ2h0Ym94Lm9wZW4oe1xuICAgICAgICAgICAgICAgIGltYWdlczogdGhpcy5pbWFnZXMsXG4gICAgICAgICAgICAgICAgLy9pbmRleDogdGhpcy50aHVtYm5haWxJbWFnZUluZGV4LFxuICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHRoaXMucHJvcGVydGllc1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRUaHVtYm5haWxJbWFnZUluZGV4KGVsZW1lbnQpe1xuICAgICAgICBjb25zdCBpbWFnZXMgPSB0aGlzLnRodW1ibmFpbEltYWdlcztcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbWFnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlbGVtZW50ID09PSBpbWFnZXNbaV0pe1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0VGh1bWJuYWlsTGlnaHRib3hEaXJlY3RpdmUoaW5kZXgpe1xuICAgICAgICByZXR1cm4gdGhpcy5saWdodGJveERpcmVjdGl2ZUxpc3RbaW5kZXhdO1xuICAgIH1cblxuICAgIGdldFRodW1ibmFpbEltYWdlcygpe1xuICAgICAgICBsZXQgdGh1bWJuYWlsSW1hZ2VzID0gW107XG4gICAgICAgIHRoaXMubGlnaHRib3hEaXJlY3RpdmVMaXN0LmZvckVhY2goZWwgPT4ge1xuICAgICAgICAgICAgdGh1bWJuYWlsSW1hZ2VzLnB1c2goZWxbJ2VsZW1lbnRSZWYnXS5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aHVtYm5haWxJbWFnZXM7XG4gICAgfVxuXG4gICAgZ2V0SW1hZ2VzKCl7XG4gICAgICAgIGxldCBpbWFnZXMgPSBbXTtcbiAgICAgICAgdGhpcy5saWdodGJveERpcmVjdGl2ZUxpc3QuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgICAgICBsZXQgaW1hZ2U6IEltYWdlRXh0ZW5kZWQgPSB7fTtcbiAgICAgICAgICAgIGNvbnN0IG5hdGl2ZUVsZW1lbnQgPSBlbFsnZWxlbWVudFJlZiddLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgICAgIGlmIChlbC5mdWxsSW1hZ2Upe1xuICAgICAgICAgICAgICAgIGltYWdlLmZ1bGxJbWFnZSA9IGVsLmZ1bGxJbWFnZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaW1hZ2UudGh1bWJuYWlsSW1hZ2UgPSB7XG4gICAgICAgICAgICAgICAgcGF0aDogbmF0aXZlRWxlbWVudC5zcmMsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBuYXRpdmVFbGVtZW50Lm5hdHVyYWxIZWlnaHQsXG4gICAgICAgICAgICAgICAgd2lkdGg6IG5hdGl2ZUVsZW1lbnQubmF0dXJhbFdpZHRoXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGltYWdlLm5hdGl2ZUVsZW1lbnQgPSBuYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgaW1hZ2VzLnB1c2goaW1hZ2UpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gaW1hZ2VzO1xuICAgIH1cbn1cbiJdfQ==