UNPKG

@crystalui/angular-lightbox

Version:

Angular library for viewing images in a pop-up window with touch screen support.

104 lines 12.7 kB
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRib3gtZ3JvdXAuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNyeXN0YWx1aS9hbmd1bGFyLWxpZ2h0Ym94LyIsInNvdXJjZXMiOlsibGliL2xpZ2h0Ym94LWdyb3VwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQUssc0JBQXNCLENBQUE7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFLLG9CQUFvQixDQUFDO0FBT3BEO0lBbUJJLGdDQUNZLFlBQTBCLEVBQzFCLFFBQXlCO1FBRnJDLGlCQVNDO1FBUlcsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFqQnJDLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFDWixlQUFVLEdBQWUsRUFBRSxDQUFDO1FBV1Msc0JBQWlCLEdBQVksSUFBSSxDQUFDO1FBTW5FLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQy9ELFVBQUMsS0FBSztZQUNGLEtBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQ0osQ0FBQztJQUNOLENBQUM7SUFuQkQsc0JBQUkseURBQXFCO2FBQXpCO1lBQ0ksSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUM7Z0JBQzVCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ2hEO2lCQUFNO2dCQUNILE9BQU8sRUFBRSxDQUFDO2FBQ2I7UUFDTCxDQUFDOzs7T0FBQTtJQWVELG1EQUFrQixHQUFsQixV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QztxRUFBbUM7SUFDZDtRQUF4RCxlQUFlLENBQUMsaUJBQWlCLEVBQUUsRUFBQyxXQUFXLEVBQUUsSUFBSSxFQUFDLENBQUM7MEVBQXNEO0lBbEJyRyxzQkFBc0I7UUFKbEMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLGtCQUFrQjtTQUMvQixDQUFDO09BRVcsc0JBQXNCLENBZ0dsQztJQUFELDZCQUFDO0NBQUEsQUFoR0QsSUFnR0M7U0FoR1ksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0QmluZGluZywgQ29udGVudENoaWxkcmVuLCBRdWVyeUxpc3QsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV2ZW50U2VydmljZSB9IGZyb20gJy4vZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBMaWdodGJveERpcmVjdGl2ZSB9IGZyb20nLi9saWdodGJveC5kaXJlY3RpdmUnIFxuaW1wb3J0IHsgQ3J5c3RhbExpZ2h0Ym94IH0gZnJvbScuL2xpZ2h0Ym94LnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvcGVydGllcywgSW1hZ2VFeHRlbmRlZCB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2xpZ2h0Ym94LWdyb3VwXSdcbn0pXG5cbmV4cG9ydCBjbGFzcyBMaWdodGJveEdyb3VwRGlyZWN0aXZlIHtcbiAgICB0aHVtYm5haWxJbWFnZUVsZW1lbnQ7XG4gICAgdGh1bWJuYWlsTGlnaHRib3hEaXJlY3RpdmU6IExpZ2h0Ym94RGlyZWN0aXZlO1xuICAgIHRodW1ibmFpbEltYWdlSW5kZXg6IG51bWJlcjtcbiAgICB0aHVtYm5haWxJbWFnZXMgPSBbXTtcbiAgICBpbWFnZXMgPSBbXTtcbiAgICBwcm9wZXJ0aWVzOiBQcm9wZXJ0aWVzID0ge307IFxuICAgIGdsb2JhbEV2ZW50c1N1YnNjcmlwdGlvbjtcblxuICAgIGdldCBsaWdodGJveERpcmVjdGl2ZUxpc3QoKXtcbiAgICAgICAgaWYgKHRoaXMuX2xpZ2h0Ym94RGlyZWN0aXZlTGlzdCl7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbGlnaHRib3hEaXJlY3RpdmVMaXN0LnRvQXJyYXkoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MubGlnaHRib3gtZ3JvdXAnKSBob3N0TGlnaHRib3hHcm91cDogYm9vbGVhbiA9IHRydWU7XG4gICAgQENvbnRlbnRDaGlsZHJlbihMaWdodGJveERpcmVjdGl2ZSwge2Rlc2NlbmRhbnRzOiB0cnVlfSkgX2xpZ2h0Ym94RGlyZWN0aXZlTGlzdDogUXVlcnlMaXN0PExpZ2h0Ym94RGlyZWN0aXZlPjsgXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbGlnaHRib3g6IENyeXN0YWxMaWdodGJveCkge1xuXG4gICAgICAgIHRoaXMuZ2xvYmFsRXZlbnRzU3Vic2NyaXB0aW9uID0gdGhpcy5ldmVudFNlcnZpY2UuZW1pdHRlci5zdWJzY3JpYmUoXG4gICAgICAgICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUdsb2JhbEV2ZW50cyhldmVudCk7IFxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGhhbmRsZUdsb2JhbEV2ZW50cyhldmVudCl7XG4gICAgICAgIGlmIChldmVudC50eXBlID09PSAndGh1bWJuYWlsOmNsaWNrJyl7XG4gICAgICAgICAgICB0aGlzLnRodW1ibmFpbEltYWdlRWxlbWVudCA9IGV2ZW50LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIHRoaXMudGh1bWJuYWlsSW1hZ2VzID0gdGhpcy5nZXRUaHVtYm5haWxJbWFnZXMoKTtcbiAgICAgICAgICAgIHRoaXMudGh1bWJuYWlsSW1hZ2VJbmRleCA9IHRoaXMuZ2V0VGh1bWJuYWlsSW1hZ2VJbmRleCh0aGlzLnRodW1ibmFpbEltYWdlRWxlbWVudCk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnRodW1ibmFpbEltYWdlSW5kZXggPT0gdW5kZWZpbmVkKXtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMudGh1bWJuYWlsTGlnaHRib3hEaXJlY3RpdmUgPSB0aGlzLmdldFRodW1ibmFpbExpZ2h0Ym94RGlyZWN0aXZlKHRoaXMudGh1bWJuYWlsSW1hZ2VJbmRleCk7XG4gICAgICAgICAgICB0aGlzLmltYWdlcyA9IHRoaXMuZ2V0SW1hZ2VzKCk7XG4gICAgICAgICAgICB0aGlzLnByb3BlcnRpZXMgPSBldmVudC5wcm9wZXJ0aWVzO1xuICAgICAgICAgICAgdGhpcy5wcm9wZXJ0aWVzLmluZGV4ID0gdGhpcy50aHVtYm5haWxJbWFnZUluZGV4O1xuXG4gICAgICAgICAgICB0aGlzLmxpZ2h0Ym94Lm9wZW4oe1xuICAgICAgICAgICAgICAgIGltYWdlczogdGhpcy5pbWFnZXMsXG4gICAgICAgICAgICAgICAgLy9pbmRleDogdGhpcy50aHVtYm5haWxJbWFnZUluZGV4LFxuICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHRoaXMucHJvcGVydGllc1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRUaHVtYm5haWxJbWFnZUluZGV4KGVsZW1lbnQpe1xuICAgICAgICBjb25zdCBpbWFnZXMgPSB0aGlzLnRodW1ibmFpbEltYWdlcztcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbWFnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlbGVtZW50ID09PSBpbWFnZXNbaV0pe1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0VGh1bWJuYWlsTGlnaHRib3hEaXJlY3RpdmUoaW5kZXgpe1xuICAgICAgICByZXR1cm4gdGhpcy5saWdodGJveERpcmVjdGl2ZUxpc3RbaW5kZXhdO1xuICAgIH1cblxuICAgIGdldFRodW1ibmFpbEltYWdlcygpe1xuICAgICAgICBsZXQgdGh1bWJuYWlsSW1hZ2VzID0gW107XG4gICAgICAgIHRoaXMubGlnaHRib3hEaXJlY3RpdmVMaXN0LmZvckVhY2goZWwgPT4ge1xuICAgICAgICAgICAgdGh1bWJuYWlsSW1hZ2VzLnB1c2goZWxbJ2VsZW1lbnRSZWYnXS5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aHVtYm5haWxJbWFnZXM7XG4gICAgfVxuXG4gICAgZ2V0SW1hZ2VzKCl7XG4gICAgICAgIGxldCBpbWFnZXMgPSBbXTtcbiAgICAgICAgdGhpcy5saWdodGJveERpcmVjdGl2ZUxpc3QuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgICAgICBsZXQgaW1hZ2U6IEltYWdlRXh0ZW5kZWQgPSB7fTtcbiAgICAgICAgICAgIGNvbnN0IG5hdGl2ZUVsZW1lbnQgPSBlbFsnZWxlbWVudFJlZiddLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgICAgIGlmIChlbC5mdWxsSW1hZ2Upe1xuICAgICAgICAgICAgICAgIGltYWdlLmZ1bGxJbWFnZSA9IGVsLmZ1bGxJbWFnZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaW1hZ2UudGh1bWJuYWlsSW1hZ2UgPSB7XG4gICAgICAgICAgICAgICAgcGF0aDogbmF0aXZlRWxlbWVudC5zcmMsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBuYXRpdmVFbGVtZW50Lm5hdHVyYWxIZWlnaHQsXG4gICAgICAgICAgICAgICAgd2lkdGg6IG5hdGl2ZUVsZW1lbnQubmF0dXJhbFdpZHRoXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGltYWdlLm5hdGl2ZUVsZW1lbnQgPSBuYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgaW1hZ2VzLnB1c2goaW1hZ2UpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gaW1hZ2VzO1xuICAgIH1cbn1cbiJdfQ==