@udilhan/ngx-photo-gallery 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +110 -0
- package/esm2020/lib/components/lightbox/lightbox.component.mjs +15 -0
- package/esm2020/lib/directives/photo-gallery-group.directive.mjs +165 -0
- package/esm2020/lib/directives/photo-gallery.directive.mjs +43 -0
- package/esm2020/lib/interfaces/config.mjs +3 -0
- package/esm2020/lib/interfaces/photoswipe.mjs +2 -0
- package/esm2020/lib/photo-gallery.module.mjs +32 -0
- package/esm2020/lib/services/lightbox.service.mjs +38 -0
- package/esm2020/public-api.mjs +7 -0
- package/esm2020/twogate-ngx-photo-gallery.mjs +5 -0
- package/fesm2015/twogate-ngx-photo-gallery.mjs +294 -0
- package/fesm2015/twogate-ngx-photo-gallery.mjs.map +1 -0
- package/fesm2020/twogate-ngx-photo-gallery.mjs +291 -0
- package/fesm2020/twogate-ngx-photo-gallery.mjs.map +1 -0
- package/index.d.ts +6 -0
- package/lib/components/lightbox/lightbox.component.d.ts +9 -0
- package/lib/components/lightbox/lightbox.component.d.ts.map +1 -0
- package/lib/directives/photo-gallery-group.directive.d.ts +42 -0
- package/lib/directives/photo-gallery-group.directive.d.ts.map +1 -0
- package/lib/directives/photo-gallery.directive.d.ts +18 -0
- package/lib/directives/photo-gallery.directive.d.ts.map +1 -0
- package/lib/interfaces/config.d.ts +5 -0
- package/lib/interfaces/config.d.ts.map +1 -0
- package/lib/interfaces/photoswipe.d.ts +79 -0
- package/lib/interfaces/photoswipe.d.ts.map +1 -0
- package/lib/photo-gallery.module.d.ts +13 -0
- package/lib/photo-gallery.module.d.ts.map +1 -0
- package/lib/services/lightbox.service.d.ts +19 -0
- package/lib/services/lightbox.service.d.ts.map +1 -0
- package/package.json +47 -0
- package/public-api.d.ts +4 -0
- package/public-api.d.ts.map +1 -0
- package/twogate-ngx-photo-gallery.d.ts.map +1 -0
@@ -0,0 +1,38 @@
|
|
1
|
+
import { Injectable, createComponent } from '@angular/core';
|
2
|
+
import { LightboxComponent } from '../components/lightbox/lightbox.component';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
export class LightboxService {
|
5
|
+
constructor(applicationRef) {
|
6
|
+
this.applicationRef = applicationRef;
|
7
|
+
this.lightbox = null;
|
8
|
+
this.lightboxElement = null;
|
9
|
+
}
|
10
|
+
create() {
|
11
|
+
this.lightbox = createComponent(LightboxComponent, { environmentInjector: this.applicationRef.injector });
|
12
|
+
document.body.appendChild(this.lightbox.location.nativeElement);
|
13
|
+
this.applicationRef.attachView(this.lightbox.hostView);
|
14
|
+
this.lightboxElement = this.lightbox.instance.element;
|
15
|
+
}
|
16
|
+
destroy() {
|
17
|
+
if (this.lightbox) {
|
18
|
+
this.applicationRef.detachView(this.lightbox.hostView);
|
19
|
+
this.lightbox = null;
|
20
|
+
this.lightboxElement = null;
|
21
|
+
}
|
22
|
+
}
|
23
|
+
/**
|
24
|
+
* Returns the lightbox element.
|
25
|
+
* This method is called after the lightbox is created.
|
26
|
+
* @returns HTMLElement
|
27
|
+
*/
|
28
|
+
getLightboxElement() {
|
29
|
+
return this.lightboxElement.nativeElement;
|
30
|
+
}
|
31
|
+
}
|
32
|
+
LightboxService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LightboxService, deps: [{ token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable });
|
33
|
+
LightboxService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LightboxService, providedIn: 'root' });
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LightboxService, decorators: [{
|
35
|
+
type: Injectable,
|
36
|
+
args: [{ providedIn: 'root' }]
|
37
|
+
}], ctorParameters: function () { return [{ type: i0.ApplicationRef }]; } });
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRib3guc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy9saWdodGJveC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQTRDLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7QUFHOUUsTUFBTSxPQUFPLGVBQWU7SUFJMUIsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQ2hELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQzdCLGlCQUFpQixFQUNqQixFQUFFLG1CQUFtQixFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQ3RELENBQUM7UUFDRixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXZELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO0lBQ3hELENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdkQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7U0FDN0I7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBNEIsQ0FBQztJQUMzRCxDQUFDOzs2R0FuQ1UsZUFBZTtpSEFBZixlQUFlLGNBREYsTUFBTTs0RkFDbkIsZUFBZTtrQkFEM0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBDb21wb25lbnRSZWYsIEVsZW1lbnRSZWYsIEFwcGxpY2F0aW9uUmVmLCBjcmVhdGVDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTGlnaHRib3hDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2xpZ2h0Ym94L2xpZ2h0Ym94LmNvbXBvbmVudCc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTGlnaHRib3hTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBsaWdodGJveDogQ29tcG9uZW50UmVmPExpZ2h0Ym94Q29tcG9uZW50PiB8IG51bGw7XG4gIHByaXZhdGUgbGlnaHRib3hFbGVtZW50OiBFbGVtZW50UmVmIHwgbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwcGxpY2F0aW9uUmVmOiBBcHBsaWNhdGlvblJlZikge1xuICAgIHRoaXMubGlnaHRib3ggPSBudWxsO1xuICAgIHRoaXMubGlnaHRib3hFbGVtZW50ID0gbnVsbDtcbiAgfVxuXG4gIGNyZWF0ZSgpIHtcbiAgICB0aGlzLmxpZ2h0Ym94ID0gY3JlYXRlQ29tcG9uZW50KFxuICAgICAgTGlnaHRib3hDb21wb25lbnQsXG4gICAgICB7IGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuYXBwbGljYXRpb25SZWYuaW5qZWN0b3IgfVxuICAgICk7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmxpZ2h0Ym94LmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHRoaXMuYXBwbGljYXRpb25SZWYuYXR0YWNoVmlldyh0aGlzLmxpZ2h0Ym94Lmhvc3RWaWV3KTtcblxuICAgIHRoaXMubGlnaHRib3hFbGVtZW50ID0gdGhpcy5saWdodGJveC5pbnN0YW5jZS5lbGVtZW50O1xuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5saWdodGJveCkge1xuICAgICAgdGhpcy5hcHBsaWNhdGlvblJlZi5kZXRhY2hWaWV3KHRoaXMubGlnaHRib3guaG9zdFZpZXcpO1xuICAgICAgdGhpcy5saWdodGJveCA9IG51bGw7XG4gICAgICB0aGlzLmxpZ2h0Ym94RWxlbWVudCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGxpZ2h0Ym94IGVsZW1lbnQuXG4gICAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBhZnRlciB0aGUgbGlnaHRib3ggaXMgY3JlYXRlZC5cbiAgICogQHJldHVybnMgSFRNTEVsZW1lbnRcbiAgICovXG4gIGdldExpZ2h0Ym94RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMubGlnaHRib3hFbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,7 @@
|
|
1
|
+
/*
|
2
|
+
* Public API Surface of core
|
3
|
+
*/
|
4
|
+
export * from './lib/photo-gallery.module';
|
5
|
+
export * from './lib/directives/photo-gallery-group.directive';
|
6
|
+
export * from './lib/directives/photo-gallery.directive';
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDRCQUE0QixDQUFDO0FBRTNDLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYywwQ0FBMEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgY29yZVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3Bob3RvLWdhbGxlcnkubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9waG90by1nYWxsZXJ5LWdyb3VwLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3Bob3RvLWdhbGxlcnkuZGlyZWN0aXZlJztcbiJdfQ==
|
@@ -0,0 +1,5 @@
|
|
1
|
+
/**
|
2
|
+
* Generated bundle index. Do not edit.
|
3
|
+
*/
|
4
|
+
export * from './public-api';
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdvZ2F0ZS1uZ3gtcGhvdG8tZ2FsbGVyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL3R3b2dhdGUtbmd4LXBob3RvLWdhbGxlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
@@ -0,0 +1,294 @@
|
|
1
|
+
import * as i0 from '@angular/core';
|
2
|
+
import { Component, ChangeDetectionStrategy, ViewChild, createComponent, Injectable, EventEmitter, Directive, Optional, Input, Output, HostListener, NgModule } from '@angular/core';
|
3
|
+
import { __awaiter } from 'tslib';
|
4
|
+
import PhotoSwipe from 'photoswipe';
|
5
|
+
import PhotoSwipeUI_Default from 'photoswipe/dist/photoswipe-ui-default';
|
6
|
+
|
7
|
+
class LightboxComponent {
|
8
|
+
constructor() { }
|
9
|
+
}
|
10
|
+
LightboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LightboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
11
|
+
LightboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: LightboxComponent, selector: "photo-gallery-lightbox", viewQueries: [{ propertyName: "element", first: true, predicate: ["Lightbox"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"lightbox-wrapper\">\n <!-- Root element of PhotoSwipe. Must have class pswp. -->\n <div class=\"pswp\" #Lightbox tabindex=\"-1\" role=\"dialog\" aria-hidden=\"true\">\n <!-- Background of PhotoSwipe.\n It's a separate element, as animating opacity is faster than rgba(). -->\n <div class=\"pswp__bg\"></div>\n <!-- Slides wrapper with overflow:hidden. -->\n <div class=\"pswp__scroll-wrap\">\n <!-- Container that holds slides. PhotoSwipe keeps only 3 slides in DOM to save memory. -->\n <!-- don't modify these 3 pswp__item elements, data is added later on. -->\n <div class=\"pswp__container\">\n <div class=\"pswp__item\"></div>\n <div class=\"pswp__item\"></div>\n <div class=\"pswp__item\"></div>\n </div>\n <!-- Default (PhotoSwipeUI_Default) interface on top of sliding area. Can be changed. -->\n <div class=\"pswp__ui pswp__ui--hidden\">\n <div class=\"pswp__top-bar\">\n <!-- Controls are self-explanatory. Order can be changed. -->\n <div class=\"pswp__counter\"></div>\n <button class=\"pswp__button pswp__button--close\" title=\"Close (Esc)\"></button>\n <button class=\"pswp__button pswp__button--share\" title=\"Share\"></button>\n <button class=\"pswp__button pswp__button--fs\" title=\"Toggle fullscreen\"></button>\n <button class=\"pswp__button pswp__button--zoom\" title=\"Zoom in/out\"></button>\n <!-- Preloader demo http://codepen.io/dimsemenov/pen/yyBWoR -->\n <!-- element will get class pswp__preloader--active when preloader is running -->\n <div class=\"pswp__preloader\">\n <div class=\"pswp__preloader__icn\">\n <div class=\"pswp__preloader__cut\">\n <div class=\"pswp__preloader__donut\"></div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"pswp__share-modal pswp__share-modal--hidden pswp__single-tap\">\n <div class=\"pswp__share-tooltip\"></div>\n </div>\n <button class=\"pswp__button pswp__button--arrow--left\" title=\"Previous (arrow left)\"></button>\n <button class=\"pswp__button pswp__button--arrow--right\" title=\"Next (arrow right)\"></button>\n <div class=\"pswp__caption\">\n <div class=\"pswp__caption__center\"></div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";.lightbox-wrapper::ng-deep{position:relative;z-index:20000}.lightbox-wrapper::ng-deep .pswp{display:none;position:absolute;width:100%;height:100%;left:0;top:0;overflow:hidden;touch-action:none;z-index:20000;-webkit-text-size-adjust:100%;-webkit-backface-visibility:hidden;outline:none}.lightbox-wrapper::ng-deep .pswp *{box-sizing:border-box}.lightbox-wrapper::ng-deep .pswp img{max-width:none}.lightbox-wrapper::ng-deep .pswp--animate_opacity{opacity:.001;will-change:opacity;transition:opacity .3s cubic-bezier(.4,0,.22,1)}.lightbox-wrapper::ng-deep .pswp--open{display:block}.lightbox-wrapper::ng-deep .pswp--zoom-allowed .pswp__img{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.lightbox-wrapper::ng-deep .pswp--zoomed-in .pswp__img{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.lightbox-wrapper::ng-deep .pswp--dragging .pswp__img{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.lightbox-wrapper::ng-deep .pswp__bg{position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,.8);opacity:0;transform:translateZ(0);-webkit-backface-visibility:hidden;will-change:opacity}.lightbox-wrapper::ng-deep .pswp__scroll-wrap{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden}.lightbox-wrapper::ng-deep .pswp__container,.lightbox-wrapper::ng-deep .pswp__zoom-wrap{touch-action:none;position:absolute;inset:0}.lightbox-wrapper::ng-deep .pswp__container,.lightbox-wrapper::ng-deep .pswp__img{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-touch-callout:none}.lightbox-wrapper::ng-deep .pswp__zoom-wrap{position:absolute;width:100%;transform-origin:left top;transition:transform .3s cubic-bezier(.4,0,.22,1)}.lightbox-wrapper::ng-deep .pswp__bg{will-change:opacity;transition:opacity .3s cubic-bezier(.4,0,.22,1)}.lightbox-wrapper::ng-deep .pswp--animated-in .pswp__bg,.lightbox-wrapper::ng-deep .pswp--animated-in .pswp__zoom-wrap{transition:none}.lightbox-wrapper::ng-deep .pswp__container,.lightbox-wrapper::ng-deep .pswp__zoom-wrap{-webkit-backface-visibility:hidden}.lightbox-wrapper::ng-deep .pswp__item{position:absolute;inset:0;overflow:hidden}.lightbox-wrapper::ng-deep .pswp__img{position:absolute;width:auto;height:auto;top:0;left:0}.lightbox-wrapper::ng-deep .pswp__img--placeholder{-webkit-backface-visibility:hidden}.lightbox-wrapper::ng-deep .pswp__img--placeholder--blank{background:#333333}.lightbox-wrapper::ng-deep .pswp--ie .pswp__img{width:100%!important;height:auto!important;left:0;top:0}.lightbox-wrapper::ng-deep .pswp__error-msg{position:absolute;left:0;top:50%;width:100%;text-align:center;font-size:14px;line-height:16px;margin-top:-8px;color:#ccc}.lightbox-wrapper::ng-deep .pswp__error-msg a{color:#ccc;text-decoration:underline}.lightbox-wrapper::ng-deep .pswp__button{width:44px;height:44px;position:relative;background:none;cursor:pointer;overflow:visible;-webkit-appearance:none;display:block;border:0;padding:0;margin:0;float:right;opacity:.75;transition:opacity .2s;box-shadow:none}.lightbox-wrapper::ng-deep .pswp__button:focus,.lightbox-wrapper::ng-deep .pswp__button:hover{opacity:1}.lightbox-wrapper::ng-deep .pswp__button:active{outline:none;opacity:.9}.lightbox-wrapper::ng-deep .pswp__button::-moz-focus-inner{padding:0;border:0}.lightbox-wrapper::ng-deep .pswp__ui--over-close .pswp__button--close{opacity:1}.lightbox-wrapper::ng-deep .pswp__button,.lightbox-wrapper::ng-deep .pswp__button--arrow--left:before,.lightbox-wrapper::ng-deep .pswp__button--arrow--right:before{background:url(/default-skin.png) 0 0 no-repeat;background-size:264px 88px;width:44px;height:44px}@media (min-resolution: 105dpi),(min-resolution: 1.1dppx){.lightbox-wrapper::ng-deep .pswp--svg .pswp__button,.lightbox-wrapper::ng-deep .pswp--svg .pswp__button--arrow--left:before,.lightbox-wrapper::ng-deep .pswp--svg .pswp__button--arrow--right:before{background-image:url(/default-skin.svg)}.lightbox-wrapper::ng-deep .pswp--svg .pswp__button--arrow--left,.lightbox-wrapper::ng-deep .pswp--svg .pswp__button--arrow--right{background:none}}.lightbox-wrapper::ng-deep .pswp__button--close{background-position:0 -44px}.lightbox-wrapper::ng-deep .pswp__button--share{background-position:-44px -44px}.lightbox-wrapper::ng-deep .pswp__button--fs{display:none}.lightbox-wrapper::ng-deep .pswp--supports-fs .pswp__button--fs{display:block}.lightbox-wrapper::ng-deep .pswp--fs .pswp__button--fs{background-position:-44px 0}.lightbox-wrapper::ng-deep .pswp__button--zoom{display:none;background-position:-88px 0}.lightbox-wrapper::ng-deep .pswp--zoom-allowed .pswp__button--zoom{display:block}.lightbox-wrapper::ng-deep .pswp--zoomed-in .pswp__button--zoom{background-position:-132px 0}.lightbox-wrapper::ng-deep .pswp--touch .pswp__button--arrow--left,.lightbox-wrapper::ng-deep .pswp--touch .pswp__button--arrow--right{visibility:hidden}.lightbox-wrapper::ng-deep .pswp__button--arrow--left,.lightbox-wrapper::ng-deep .pswp__button--arrow--right{background:none;top:50%;margin-top:-50px;width:70px;height:100px;position:absolute}.lightbox-wrapper::ng-deep .pswp__button--arrow--left{left:0}.lightbox-wrapper::ng-deep .pswp__button--arrow--right{right:0}.lightbox-wrapper::ng-deep .pswp__button--arrow--left:before,.lightbox-wrapper::ng-deep .pswp__button--arrow--right:before{content:\"\";top:35px;background-color:#0000004d;height:30px;width:32px;position:absolute}.lightbox-wrapper::ng-deep .pswp__button--arrow--left:before{left:6px;background-position:-138px -44px}.lightbox-wrapper::ng-deep .pswp__button--arrow--right:before{right:6px;background-position:-94px -44px}.lightbox-wrapper::ng-deep .pswp__counter,.lightbox-wrapper::ng-deep .pswp__share-modal{-webkit-user-select:none;user-select:none}.lightbox-wrapper::ng-deep .pswp__share-modal{display:block;background:rgba(0,0,0,.5);width:100%;height:100%;top:0;left:0;padding:10px;position:absolute;z-index:20100;opacity:0;transition:opacity .25s ease-out;-webkit-backface-visibility:hidden;will-change:opacity}.lightbox-wrapper::ng-deep .pswp__share-modal--hidden{display:none}.lightbox-wrapper::ng-deep .pswp__share-tooltip{z-index:20120;position:absolute;background:#FFF;top:56px;border-radius:2px;display:block;width:auto;right:44px;box-shadow:0 2px 5px #00000040;transform:translateY(6px);transition:transform .25s;-webkit-backface-visibility:hidden;will-change:transform}.lightbox-wrapper::ng-deep .pswp__share-tooltip a{display:block;padding:8px 12px;color:#000;text-decoration:none;font-size:14px;line-height:18px}.lightbox-wrapper::ng-deep .pswp__share-tooltip a:hover{text-decoration:none;color:#000}.lightbox-wrapper::ng-deep .pswp__share-tooltip a:first-child{border-radius:2px 2px 0 0}.lightbox-wrapper::ng-deep .pswp__share-tooltip a:last-child{border-radius:0 0 2px 2px}.lightbox-wrapper::ng-deep .pswp__share-modal--fade-in{opacity:1}.lightbox-wrapper::ng-deep .pswp__share-modal--fade-in .pswp__share-tooltip{transform:translateY(0)}.lightbox-wrapper::ng-deep .pswp--touch .pswp__share-tooltip a{padding:16px 12px}.lightbox-wrapper::ng-deep a.pswp__share--facebook:before{content:\"\";display:block;width:0;height:0;position:absolute;top:-12px;right:15px;border:6px solid rgba(0,0,0,0);border-bottom-color:#fff;-webkit-pointer-events:none;-moz-pointer-events:none;pointer-events:none}.lightbox-wrapper::ng-deep a.pswp__share--facebook:hover{background:#3E5C9A;color:#fff}.lightbox-wrapper::ng-deep a.pswp__share--facebook:hover:before{border-bottom-color:#3e5c9a}.lightbox-wrapper::ng-deep a.pswp__share--twitter:hover{background:#55ACEE;color:#fff}.lightbox-wrapper::ng-deep a.pswp__share--pinterest:hover{background:#CCC;color:#ce272d}.lightbox-wrapper::ng-deep a.pswp__share--download:hover{background:#DDD}.lightbox-wrapper::ng-deep .pswp__counter{position:absolute;left:0;top:0;height:44px;font-size:13px;line-height:44px;color:#fff;opacity:.75;padding:0 10px}.lightbox-wrapper::ng-deep .pswp__caption{position:absolute;left:0;bottom:0;width:100%;min-height:44px}.lightbox-wrapper::ng-deep .pswp__caption small{font-size:11px;color:#bbb}.lightbox-wrapper::ng-deep .pswp__caption__center{text-align:left;max-width:420px;margin:0 auto;font-size:13px;padding:10px;line-height:20px;color:#ccc}.lightbox-wrapper::ng-deep .pswp__caption--empty{display:none}.lightbox-wrapper::ng-deep .pswp__caption--fake{visibility:hidden}.lightbox-wrapper::ng-deep .pswp__preloader{width:44px;height:44px;position:absolute;top:0;left:50%;margin-left:-22px;opacity:0;transition:opacity .25s ease-out;will-change:opacity;direction:ltr}.lightbox-wrapper::ng-deep .pswp__preloader__icn{width:20px;height:20px;margin:12px}.lightbox-wrapper::ng-deep .pswp__preloader--active{opacity:1}.lightbox-wrapper::ng-deep .pswp__preloader--active .pswp__preloader__icn{background:url(/preloader.gif) 0 0 no-repeat}.lightbox-wrapper::ng-deep .pswp--css_animation .pswp__preloader--active{opacity:1}.lightbox-wrapper::ng-deep .pswp--css_animation .pswp__preloader--active .pswp__preloader__icn{animation:clockwise .5s linear infinite}.lightbox-wrapper::ng-deep .pswp--css_animation .pswp__preloader--active .pswp__preloader__donut{animation:donut-rotate 1s cubic-bezier(.4,0,.22,1) infinite}.lightbox-wrapper::ng-deep .pswp--css_animation .pswp__preloader__icn{background:none;opacity:.75;width:14px;height:14px;position:absolute;left:15px;top:15px;margin:0}.lightbox-wrapper::ng-deep .pswp--css_animation .pswp__preloader__cut{position:relative;width:7px;height:14px;overflow:hidden}.lightbox-wrapper::ng-deep .pswp--css_animation .pswp__preloader__donut{box-sizing:border-box;width:14px;height:14px;border:2px solid #FFF;border-radius:50%;border-left-color:transparent;border-bottom-color:transparent;position:absolute;top:0;left:0;background:none;margin:0}@media screen and (max-width: 1024px){.lightbox-wrapper::ng-deep .pswp__preloader{position:relative;left:auto;top:auto;margin:0;float:right}}@keyframes clockwise{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes donut-rotate{0%{transform:rotate(0)}50%{transform:rotate(-140deg)}to{transform:rotate(0)}}.lightbox-wrapper::ng-deep .pswp__ui{-webkit-font-smoothing:auto;visibility:visible;opacity:1;z-index:20050}.lightbox-wrapper::ng-deep .pswp__top-bar{position:absolute;left:0;top:0;height:44px;width:100%}.lightbox-wrapper::ng-deep .pswp__caption,.lightbox-wrapper::ng-deep .pswp__top-bar,.lightbox-wrapper::ng-deep .pswp--has_mouse .pswp__button--arrow--left,.lightbox-wrapper::ng-deep .pswp--has_mouse .pswp__button--arrow--right{-webkit-backface-visibility:hidden;will-change:opacity;transition:opacity .3s cubic-bezier(.4,0,.22,1)}.lightbox-wrapper::ng-deep .pswp--has_mouse .pswp__button--arrow--left,.lightbox-wrapper::ng-deep .pswp--has_mouse .pswp__button--arrow--right{visibility:visible}.lightbox-wrapper::ng-deep .pswp__top-bar,.lightbox-wrapper::ng-deep .pswp__caption{background-color:#00000080}.lightbox-wrapper::ng-deep .pswp__ui--fit .pswp__top-bar,.lightbox-wrapper::ng-deep .pswp__ui--fit .pswp__caption{background-color:#0000004d}.lightbox-wrapper::ng-deep .pswp__ui--idle .pswp__top-bar{opacity:0}.lightbox-wrapper::ng-deep .pswp__ui--idle .pswp__button--arrow--left,.lightbox-wrapper::ng-deep .pswp__ui--idle .pswp__button--arrow--right{opacity:0}.lightbox-wrapper::ng-deep .pswp__ui--hidden .pswp__top-bar,.lightbox-wrapper::ng-deep .pswp__ui--hidden .pswp__caption,.lightbox-wrapper::ng-deep .pswp__ui--hidden .pswp__button--arrow--left,.lightbox-wrapper::ng-deep .pswp__ui--hidden .pswp__button--arrow--right{opacity:.001}.lightbox-wrapper::ng-deep .pswp__ui--one-slide .pswp__button--arrow--left,.lightbox-wrapper::ng-deep .pswp__ui--one-slide .pswp__button--arrow--right,.lightbox-wrapper::ng-deep .pswp__ui--one-slide .pswp__counter{display:none}.lightbox-wrapper::ng-deep .pswp__element--disabled{display:none!important}.lightbox-wrapper::ng-deep .pswp--minimal--dark .pswp__top-bar{background:none}@media (min-resolution: 105dpi),(min-resolution: 1.1dppx){.lightbox-wrapper::ng-deep .pswp--svg .pswp__button,.lightbox-wrapper::ng-deep .pswp--svg .pswp__button--arrow--left:before,.lightbox-wrapper::ng-deep .pswp--svg .pswp__button--arrow--right:before{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjY0IiBoZWlnaHQ9Ijg4IiB2aWV3Qm94PSIwIDAgMjY0IDg4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjx0aXRsZT5kZWZhdWx0LXNraW4gMjwvdGl0bGU+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48Zz48cGF0aCBkPSJNNjcuMDAyIDU5LjV2My43NjhjLTYuMzA3Ljg0LTkuMTg0IDUuNzUtMTAuMDAyIDkuNzMyIDIuMjItMi44MyA1LjU2NC01LjA5OCAxMC4wMDItNS4wOThWNzEuNUw3MyA2NS41ODUgNjcuMDAyIDU5LjV6IiBpZD0iU2hhcGUiIGZpbGw9IiNmZmYiLz48ZyBmaWxsPSIjZmZmIj48cGF0aCBkPSJNMTMgMjl2LTVoMnYzaDN2MmgtNXpNMTMgMTVoNXYyaC0zdjNoLTJ2LTV6TTMxIDE1djVoLTJ2LTNoLTN2LTJoNXpNMzEgMjloLTV2LTJoM3YtM2gydjV6IiBpZD0iU2hhcGUiLz48L2c+PGcgZmlsbD0iI2ZmZiI+PHBhdGggZD0iTTYyIDI0djVoLTJ2LTNoLTN2LTJoNXpNNjIgMjBoLTV2LTJoM3YtM2gydjV6TTcwIDIwdi01aDJ2M2gzdjJoLTV6TTcwIDI0aDV2MmgtM3YzaC0ydi01eiIvPjwvZz48cGF0aCBkPSJNMjAuNTg2IDY2bC01LjY1Ni01LjY1NiAxLjQxNC0xLjQxNEwyMiA2NC41ODZsNS42NTYtNS42NTYgMS40MTQgMS40MTRMMjMuNDE0IDY2bDUuNjU2IDUuNjU2LTEuNDE0IDEuNDE0TDIyIDY3LjQxNGwtNS42NTYgNS42NTYtMS40MTQtMS40MTRMMjAuNTg2IDY2eiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0xMTEuNzg1IDY1LjAzTDExMCA2My41bDMtMy41aC0xMHYtMmgxMGwtMy0zLjUgMS43ODUtMS40NjhMMTE3IDU5bC01LjIxNSA2LjAzeiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0xNTIuMjE1IDY1LjAzTDE1NCA2My41bC0zLTMuNWgxMHYtMmgtMTBsMy0zLjUtMS43ODUtMS40NjhMMTQ3IDU5bDUuMjE1IDYuMDN6IiBmaWxsPSIjZmZmIi8+PGc+PHBhdGggaWQ9IlJlY3RhbmdsZS0xMSIgZmlsbD0iI2ZmZiIgZD0iTTE2MC45NTcgMjguNTQzbC0zLjI1LTMuMjUtMS40MTMgMS40MTQgMy4yNSAzLjI1eiIvPjxwYXRoIGQ9Ik0xNTIuNSAyN2MzLjAzOCAwIDUuNS0yLjQ2MiA1LjUtNS41cy0yLjQ2Mi01LjUtNS41LTUuNS01LjUgMi40NjItNS41IDUuNSAyLjQ2MiA1LjUgNS41IDUuNXoiIGlkPSJPdmFsLTEiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTUwIDIxaDV2MWgtNXoiLz48L2c+PGc+PHBhdGggZD0iTTExNi45NTcgMjguNTQzbC0xLjQxNCAxLjQxNC0zLjI1LTMuMjUgMS40MTQtMS40MTQgMy4yNSAzLjI1eiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0xMDguNSAyN2MzLjAzOCAwIDUuNS0yLjQ2MiA1LjUtNS41cy0yLjQ2Mi01LjUtNS41LTUuNS01LjUgMi40NjItNS41IDUuNSAyLjQ2MiA1LjUgNS41IDUuNXoiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTA2IDIxaDV2MWgtNXoiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTA5LjA0MyAxOS4wMDhsLS4wODUgNS0xLS4wMTcuMDg1LTV6Ii8+PC9nPjwvZz48L2c+PC9zdmc+)}}.lightbox-wrapper::ng-deep .pswp__img--placeholder{align-items:center;display:flex;justify-content:center}.lightbox-wrapper::ng-deep .pswp__img--placeholder:after{background:url(data:image/gif;base64,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) center/64px no-repeat;color:#fff;content:\"\";font-size:128px;height:128px;left:50%;pointer-events:none;position:absolute;top:50%;transform:translate3d(-50%,-50%,0);width:128px}.lightbox-wrapper::ng-deep .pswp__ui--hidden .pswp__top-bar{transform:translateY(-15px)}.lightbox-wrapper::ng-deep .pswp__top-bar{background:none;height:30px;margin-top:env(safe-area-inset-top);padding:16px;transition:transform .3s ease-out,opacity .3s cubic-bezier(.4,0,.22,1)}.lightbox-wrapper::ng-deep .pswp__counter{background-color:#00000080;border-radius:15px;font-family:Hiragino Kaku Gothic ProN,\\30e1\\30a4\\30ea\\30aa,sans-serif;font-size:12px;font-weight:700;height:30px;left:16px;line-height:30px;padding:0 16px;top:16px}.lightbox-wrapper::ng-deep .pswp__button{background-size:180px 60px;height:30px;margin-left:8px;opacity:1;width:30px}.lightbox-wrapper::ng-deep .pswp__button:before{background-color:#00000080;border-radius:50%;content:\"\";inset:0;position:absolute;z-index:-1}.lightbox-wrapper::ng-deep .pswp__button--close{background-position:0 -30px}.lightbox-wrapper::ng-deep .pswp__button--share{background-position:-30px -30px}.lightbox-wrapper::ng-deep .pswp__button--zoom{background-position:-60px 0}.lightbox-wrapper::ng-deep .pswp--zoomed-in .pswp__button--zoom{background-position:-90px 0}.lightbox-wrapper::ng-deep .pswp--fs .pswp__button--fs{background-position:-30px 0}.lightbox-wrapper::ng-deep .pswp__button--arrow--left:before{background-position:-94px -30px}.lightbox-wrapper::ng-deep .pswp__button--arrow--right:before{background-position:-64px -30px}.lightbox-wrapper::ng-deep .pswp__caption{padding-bottom:env(safe-area-inset-top)}.lightbox-wrapper::ng-deep .pswp__caption--empty{display:block;opacity:0;pointer-events:none;transition:opacity .2s ease-out}.lightbox-wrapper::ng-deep .pswp__caption__center{min-height:40px}.lightbox-wrapper::ng-deep .pswp__video-wrapper{display:flex;justify-content:center;align-items:center;background:black}.lightbox-wrapper::ng-deep .pswp__video-wrapper video{max-width:90vw;max-height:80vh;outline:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LightboxComponent, decorators: [{
|
13
|
+
type: Component,
|
14
|
+
args: [{ selector: 'photo-gallery-lightbox', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"lightbox-wrapper\">\n <!-- Root element of PhotoSwipe. Must have class pswp. -->\n <div class=\"pswp\" #Lightbox tabindex=\"-1\" role=\"dialog\" aria-hidden=\"true\">\n <!-- Background of PhotoSwipe.\n It's a separate element, as animating opacity is faster than rgba(). -->\n <div class=\"pswp__bg\"></div>\n <!-- Slides wrapper with overflow:hidden. -->\n <div class=\"pswp__scroll-wrap\">\n <!-- Container that holds slides. PhotoSwipe keeps only 3 slides in DOM to save memory. -->\n <!-- don't modify these 3 pswp__item elements, data is added later on. -->\n <div class=\"pswp__container\">\n <div class=\"pswp__item\"></div>\n <div class=\"pswp__item\"></div>\n <div class=\"pswp__item\"></div>\n </div>\n <!-- Default (PhotoSwipeUI_Default) interface on top of sliding area. Can be changed. -->\n <div class=\"pswp__ui pswp__ui--hidden\">\n <div class=\"pswp__top-bar\">\n <!-- Controls are self-explanatory. Order can be changed. -->\n <div class=\"pswp__counter\"></div>\n <button class=\"pswp__button pswp__button--close\" title=\"Close (Esc)\"></button>\n <button class=\"pswp__button pswp__button--share\" title=\"Share\"></button>\n <button class=\"pswp__button pswp__button--fs\" title=\"Toggle fullscreen\"></button>\n <button class=\"pswp__button pswp__button--zoom\" title=\"Zoom in/out\"></button>\n <!-- Preloader demo http://codepen.io/dimsemenov/pen/yyBWoR -->\n <!-- element will get class pswp__preloader--active when preloader is running -->\n <div class=\"pswp__preloader\">\n <div class=\"pswp__preloader__icn\">\n <div class=\"pswp__preloader__cut\">\n <div class=\"pswp__preloader__donut\"></div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"pswp__share-modal pswp__share-modal--hidden pswp__single-tap\">\n <div class=\"pswp__share-tooltip\"></div>\n </div>\n <button class=\"pswp__button pswp__button--arrow--left\" title=\"Previous (arrow left)\"></button>\n <button class=\"pswp__button pswp__button--arrow--right\" title=\"Next (arrow right)\"></button>\n <div class=\"pswp__caption\">\n <div class=\"pswp__caption__center\"></div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";.lightbox-wrapper::ng-deep{position:relative;z-index:20000}.lightbox-wrapper::ng-deep .pswp{display:none;position:absolute;width:100%;height:100%;left:0;top:0;overflow:hidden;touch-action:none;z-index:20000;-webkit-text-size-adjust:100%;-webkit-backface-visibility:hidden;outline:none}.lightbox-wrapper::ng-deep .pswp *{box-sizing:border-box}.lightbox-wrapper::ng-deep .pswp img{max-width:none}.lightbox-wrapper::ng-deep .pswp--animate_opacity{opacity:.001;will-change:opacity;transition:opacity .3s cubic-bezier(.4,0,.22,1)}.lightbox-wrapper::ng-deep .pswp--open{display:block}.lightbox-wrapper::ng-deep .pswp--zoom-allowed .pswp__img{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.lightbox-wrapper::ng-deep .pswp--zoomed-in .pswp__img{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.lightbox-wrapper::ng-deep .pswp--dragging .pswp__img{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.lightbox-wrapper::ng-deep .pswp__bg{position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,.8);opacity:0;transform:translateZ(0);-webkit-backface-visibility:hidden;will-change:opacity}.lightbox-wrapper::ng-deep .pswp__scroll-wrap{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden}.lightbox-wrapper::ng-deep .pswp__container,.lightbox-wrapper::ng-deep .pswp__zoom-wrap{touch-action:none;position:absolute;inset:0}.lightbox-wrapper::ng-deep .pswp__container,.lightbox-wrapper::ng-deep .pswp__img{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-touch-callout:none}.lightbox-wrapper::ng-deep .pswp__zoom-wrap{position:absolute;width:100%;transform-origin:left top;transition:transform .3s cubic-bezier(.4,0,.22,1)}.lightbox-wrapper::ng-deep .pswp__bg{will-change:opacity;transition:opacity .3s cubic-bezier(.4,0,.22,1)}.lightbox-wrapper::ng-deep .pswp--animated-in .pswp__bg,.lightbox-wrapper::ng-deep .pswp--animated-in .pswp__zoom-wrap{transition:none}.lightbox-wrapper::ng-deep .pswp__container,.lightbox-wrapper::ng-deep .pswp__zoom-wrap{-webkit-backface-visibility:hidden}.lightbox-wrapper::ng-deep .pswp__item{position:absolute;inset:0;overflow:hidden}.lightbox-wrapper::ng-deep .pswp__img{position:absolute;width:auto;height:auto;top:0;left:0}.lightbox-wrapper::ng-deep .pswp__img--placeholder{-webkit-backface-visibility:hidden}.lightbox-wrapper::ng-deep .pswp__img--placeholder--blank{background:#333333}.lightbox-wrapper::ng-deep .pswp--ie .pswp__img{width:100%!important;height:auto!important;left:0;top:0}.lightbox-wrapper::ng-deep .pswp__error-msg{position:absolute;left:0;top:50%;width:100%;text-align:center;font-size:14px;line-height:16px;margin-top:-8px;color:#ccc}.lightbox-wrapper::ng-deep .pswp__error-msg a{color:#ccc;text-decoration:underline}.lightbox-wrapper::ng-deep .pswp__button{width:44px;height:44px;position:relative;background:none;cursor:pointer;overflow:visible;-webkit-appearance:none;display:block;border:0;padding:0;margin:0;float:right;opacity:.75;transition:opacity .2s;box-shadow:none}.lightbox-wrapper::ng-deep .pswp__button:focus,.lightbox-wrapper::ng-deep .pswp__button:hover{opacity:1}.lightbox-wrapper::ng-deep .pswp__button:active{outline:none;opacity:.9}.lightbox-wrapper::ng-deep .pswp__button::-moz-focus-inner{padding:0;border:0}.lightbox-wrapper::ng-deep .pswp__ui--over-close .pswp__button--close{opacity:1}.lightbox-wrapper::ng-deep .pswp__button,.lightbox-wrapper::ng-deep .pswp__button--arrow--left:before,.lightbox-wrapper::ng-deep .pswp__button--arrow--right:before{background:url(/default-skin.png) 0 0 no-repeat;background-size:264px 88px;width:44px;height:44px}@media (min-resolution: 105dpi),(min-resolution: 1.1dppx){.lightbox-wrapper::ng-deep .pswp--svg .pswp__button,.lightbox-wrapper::ng-deep .pswp--svg .pswp__button--arrow--left:before,.lightbox-wrapper::ng-deep .pswp--svg .pswp__button--arrow--right:before{background-image:url(/default-skin.svg)}.lightbox-wrapper::ng-deep .pswp--svg .pswp__button--arrow--left,.lightbox-wrapper::ng-deep .pswp--svg .pswp__button--arrow--right{background:none}}.lightbox-wrapper::ng-deep .pswp__button--close{background-position:0 -44px}.lightbox-wrapper::ng-deep .pswp__button--share{background-position:-44px -44px}.lightbox-wrapper::ng-deep .pswp__button--fs{display:none}.lightbox-wrapper::ng-deep .pswp--supports-fs .pswp__button--fs{display:block}.lightbox-wrapper::ng-deep .pswp--fs .pswp__button--fs{background-position:-44px 0}.lightbox-wrapper::ng-deep .pswp__button--zoom{display:none;background-position:-88px 0}.lightbox-wrapper::ng-deep .pswp--zoom-allowed .pswp__button--zoom{display:block}.lightbox-wrapper::ng-deep .pswp--zoomed-in .pswp__button--zoom{background-position:-132px 0}.lightbox-wrapper::ng-deep .pswp--touch .pswp__button--arrow--left,.lightbox-wrapper::ng-deep .pswp--touch .pswp__button--arrow--right{visibility:hidden}.lightbox-wrapper::ng-deep .pswp__button--arrow--left,.lightbox-wrapper::ng-deep .pswp__button--arrow--right{background:none;top:50%;margin-top:-50px;width:70px;height:100px;position:absolute}.lightbox-wrapper::ng-deep .pswp__button--arrow--left{left:0}.lightbox-wrapper::ng-deep .pswp__button--arrow--right{right:0}.lightbox-wrapper::ng-deep .pswp__button--arrow--left:before,.lightbox-wrapper::ng-deep .pswp__button--arrow--right:before{content:\"\";top:35px;background-color:#0000004d;height:30px;width:32px;position:absolute}.lightbox-wrapper::ng-deep .pswp__button--arrow--left:before{left:6px;background-position:-138px -44px}.lightbox-wrapper::ng-deep .pswp__button--arrow--right:before{right:6px;background-position:-94px -44px}.lightbox-wrapper::ng-deep .pswp__counter,.lightbox-wrapper::ng-deep .pswp__share-modal{-webkit-user-select:none;user-select:none}.lightbox-wrapper::ng-deep .pswp__share-modal{display:block;background:rgba(0,0,0,.5);width:100%;height:100%;top:0;left:0;padding:10px;position:absolute;z-index:20100;opacity:0;transition:opacity .25s ease-out;-webkit-backface-visibility:hidden;will-change:opacity}.lightbox-wrapper::ng-deep .pswp__share-modal--hidden{display:none}.lightbox-wrapper::ng-deep .pswp__share-tooltip{z-index:20120;position:absolute;background:#FFF;top:56px;border-radius:2px;display:block;width:auto;right:44px;box-shadow:0 2px 5px #00000040;transform:translateY(6px);transition:transform .25s;-webkit-backface-visibility:hidden;will-change:transform}.lightbox-wrapper::ng-deep .pswp__share-tooltip a{display:block;padding:8px 12px;color:#000;text-decoration:none;font-size:14px;line-height:18px}.lightbox-wrapper::ng-deep .pswp__share-tooltip a:hover{text-decoration:none;color:#000}.lightbox-wrapper::ng-deep .pswp__share-tooltip a:first-child{border-radius:2px 2px 0 0}.lightbox-wrapper::ng-deep .pswp__share-tooltip a:last-child{border-radius:0 0 2px 2px}.lightbox-wrapper::ng-deep .pswp__share-modal--fade-in{opacity:1}.lightbox-wrapper::ng-deep .pswp__share-modal--fade-in .pswp__share-tooltip{transform:translateY(0)}.lightbox-wrapper::ng-deep .pswp--touch .pswp__share-tooltip a{padding:16px 12px}.lightbox-wrapper::ng-deep a.pswp__share--facebook:before{content:\"\";display:block;width:0;height:0;position:absolute;top:-12px;right:15px;border:6px solid rgba(0,0,0,0);border-bottom-color:#fff;-webkit-pointer-events:none;-moz-pointer-events:none;pointer-events:none}.lightbox-wrapper::ng-deep a.pswp__share--facebook:hover{background:#3E5C9A;color:#fff}.lightbox-wrapper::ng-deep a.pswp__share--facebook:hover:before{border-bottom-color:#3e5c9a}.lightbox-wrapper::ng-deep a.pswp__share--twitter:hover{background:#55ACEE;color:#fff}.lightbox-wrapper::ng-deep a.pswp__share--pinterest:hover{background:#CCC;color:#ce272d}.lightbox-wrapper::ng-deep a.pswp__share--download:hover{background:#DDD}.lightbox-wrapper::ng-deep .pswp__counter{position:absolute;left:0;top:0;height:44px;font-size:13px;line-height:44px;color:#fff;opacity:.75;padding:0 10px}.lightbox-wrapper::ng-deep .pswp__caption{position:absolute;left:0;bottom:0;width:100%;min-height:44px}.lightbox-wrapper::ng-deep .pswp__caption small{font-size:11px;color:#bbb}.lightbox-wrapper::ng-deep .pswp__caption__center{text-align:left;max-width:420px;margin:0 auto;font-size:13px;padding:10px;line-height:20px;color:#ccc}.lightbox-wrapper::ng-deep .pswp__caption--empty{display:none}.lightbox-wrapper::ng-deep .pswp__caption--fake{visibility:hidden}.lightbox-wrapper::ng-deep .pswp__preloader{width:44px;height:44px;position:absolute;top:0;left:50%;margin-left:-22px;opacity:0;transition:opacity .25s ease-out;will-change:opacity;direction:ltr}.lightbox-wrapper::ng-deep .pswp__preloader__icn{width:20px;height:20px;margin:12px}.lightbox-wrapper::ng-deep .pswp__preloader--active{opacity:1}.lightbox-wrapper::ng-deep .pswp__preloader--active .pswp__preloader__icn{background:url(/preloader.gif) 0 0 no-repeat}.lightbox-wrapper::ng-deep .pswp--css_animation .pswp__preloader--active{opacity:1}.lightbox-wrapper::ng-deep .pswp--css_animation .pswp__preloader--active .pswp__preloader__icn{animation:clockwise .5s linear infinite}.lightbox-wrapper::ng-deep .pswp--css_animation .pswp__preloader--active .pswp__preloader__donut{animation:donut-rotate 1s cubic-bezier(.4,0,.22,1) infinite}.lightbox-wrapper::ng-deep .pswp--css_animation .pswp__preloader__icn{background:none;opacity:.75;width:14px;height:14px;position:absolute;left:15px;top:15px;margin:0}.lightbox-wrapper::ng-deep .pswp--css_animation .pswp__preloader__cut{position:relative;width:7px;height:14px;overflow:hidden}.lightbox-wrapper::ng-deep .pswp--css_animation .pswp__preloader__donut{box-sizing:border-box;width:14px;height:14px;border:2px solid #FFF;border-radius:50%;border-left-color:transparent;border-bottom-color:transparent;position:absolute;top:0;left:0;background:none;margin:0}@media screen and (max-width: 1024px){.lightbox-wrapper::ng-deep .pswp__preloader{position:relative;left:auto;top:auto;margin:0;float:right}}@keyframes clockwise{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes donut-rotate{0%{transform:rotate(0)}50%{transform:rotate(-140deg)}to{transform:rotate(0)}}.lightbox-wrapper::ng-deep .pswp__ui{-webkit-font-smoothing:auto;visibility:visible;opacity:1;z-index:20050}.lightbox-wrapper::ng-deep .pswp__top-bar{position:absolute;left:0;top:0;height:44px;width:100%}.lightbox-wrapper::ng-deep .pswp__caption,.lightbox-wrapper::ng-deep .pswp__top-bar,.lightbox-wrapper::ng-deep .pswp--has_mouse .pswp__button--arrow--left,.lightbox-wrapper::ng-deep .pswp--has_mouse .pswp__button--arrow--right{-webkit-backface-visibility:hidden;will-change:opacity;transition:opacity .3s cubic-bezier(.4,0,.22,1)}.lightbox-wrapper::ng-deep .pswp--has_mouse .pswp__button--arrow--left,.lightbox-wrapper::ng-deep .pswp--has_mouse .pswp__button--arrow--right{visibility:visible}.lightbox-wrapper::ng-deep .pswp__top-bar,.lightbox-wrapper::ng-deep .pswp__caption{background-color:#00000080}.lightbox-wrapper::ng-deep .pswp__ui--fit .pswp__top-bar,.lightbox-wrapper::ng-deep .pswp__ui--fit .pswp__caption{background-color:#0000004d}.lightbox-wrapper::ng-deep .pswp__ui--idle .pswp__top-bar{opacity:0}.lightbox-wrapper::ng-deep .pswp__ui--idle .pswp__button--arrow--left,.lightbox-wrapper::ng-deep .pswp__ui--idle .pswp__button--arrow--right{opacity:0}.lightbox-wrapper::ng-deep .pswp__ui--hidden .pswp__top-bar,.lightbox-wrapper::ng-deep .pswp__ui--hidden .pswp__caption,.lightbox-wrapper::ng-deep .pswp__ui--hidden .pswp__button--arrow--left,.lightbox-wrapper::ng-deep .pswp__ui--hidden .pswp__button--arrow--right{opacity:.001}.lightbox-wrapper::ng-deep .pswp__ui--one-slide .pswp__button--arrow--left,.lightbox-wrapper::ng-deep .pswp__ui--one-slide .pswp__button--arrow--right,.lightbox-wrapper::ng-deep .pswp__ui--one-slide .pswp__counter{display:none}.lightbox-wrapper::ng-deep .pswp__element--disabled{display:none!important}.lightbox-wrapper::ng-deep .pswp--minimal--dark .pswp__top-bar{background:none}@media (min-resolution: 105dpi),(min-resolution: 1.1dppx){.lightbox-wrapper::ng-deep .pswp--svg .pswp__button,.lightbox-wrapper::ng-deep .pswp--svg .pswp__button--arrow--left:before,.lightbox-wrapper::ng-deep .pswp--svg .pswp__button--arrow--right:before{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjY0IiBoZWlnaHQ9Ijg4IiB2aWV3Qm94PSIwIDAgMjY0IDg4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjx0aXRsZT5kZWZhdWx0LXNraW4gMjwvdGl0bGU+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48Zz48cGF0aCBkPSJNNjcuMDAyIDU5LjV2My43NjhjLTYuMzA3Ljg0LTkuMTg0IDUuNzUtMTAuMDAyIDkuNzMyIDIuMjItMi44MyA1LjU2NC01LjA5OCAxMC4wMDItNS4wOThWNzEuNUw3MyA2NS41ODUgNjcuMDAyIDU5LjV6IiBpZD0iU2hhcGUiIGZpbGw9IiNmZmYiLz48ZyBmaWxsPSIjZmZmIj48cGF0aCBkPSJNMTMgMjl2LTVoMnYzaDN2MmgtNXpNMTMgMTVoNXYyaC0zdjNoLTJ2LTV6TTMxIDE1djVoLTJ2LTNoLTN2LTJoNXpNMzEgMjloLTV2LTJoM3YtM2gydjV6IiBpZD0iU2hhcGUiLz48L2c+PGcgZmlsbD0iI2ZmZiI+PHBhdGggZD0iTTYyIDI0djVoLTJ2LTNoLTN2LTJoNXpNNjIgMjBoLTV2LTJoM3YtM2gydjV6TTcwIDIwdi01aDJ2M2gzdjJoLTV6TTcwIDI0aDV2MmgtM3YzaC0ydi01eiIvPjwvZz48cGF0aCBkPSJNMjAuNTg2IDY2bC01LjY1Ni01LjY1NiAxLjQxNC0xLjQxNEwyMiA2NC41ODZsNS42NTYtNS42NTYgMS40MTQgMS40MTRMMjMuNDE0IDY2bDUuNjU2IDUuNjU2LTEuNDE0IDEuNDE0TDIyIDY3LjQxNGwtNS42NTYgNS42NTYtMS40MTQtMS40MTRMMjAuNTg2IDY2eiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0xMTEuNzg1IDY1LjAzTDExMCA2My41bDMtMy41aC0xMHYtMmgxMGwtMy0zLjUgMS43ODUtMS40NjhMMTE3IDU5bC01LjIxNSA2LjAzeiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0xNTIuMjE1IDY1LjAzTDE1NCA2My41bC0zLTMuNWgxMHYtMmgtMTBsMy0zLjUtMS43ODUtMS40NjhMMTQ3IDU5bDUuMjE1IDYuMDN6IiBmaWxsPSIjZmZmIi8+PGc+PHBhdGggaWQ9IlJlY3RhbmdsZS0xMSIgZmlsbD0iI2ZmZiIgZD0iTTE2MC45NTcgMjguNTQzbC0zLjI1LTMuMjUtMS40MTMgMS40MTQgMy4yNSAzLjI1eiIvPjxwYXRoIGQ9Ik0xNTIuNSAyN2MzLjAzOCAwIDUuNS0yLjQ2MiA1LjUtNS41cy0yLjQ2Mi01LjUtNS41LTUuNS01LjUgMi40NjItNS41IDUuNSAyLjQ2MiA1LjUgNS41IDUuNXoiIGlkPSJPdmFsLTEiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTUwIDIxaDV2MWgtNXoiLz48L2c+PGc+PHBhdGggZD0iTTExNi45NTcgMjguNTQzbC0xLjQxNCAxLjQxNC0zLjI1LTMuMjUgMS40MTQtMS40MTQgMy4yNSAzLjI1eiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0xMDguNSAyN2MzLjAzOCAwIDUuNS0yLjQ2MiA1LjUtNS41cy0yLjQ2Mi01LjUtNS41LTUuNS01LjUgMi40NjItNS41IDUuNSAyLjQ2MiA1LjUgNS41IDUuNXoiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTA2IDIxaDV2MWgtNXoiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTA5LjA0MyAxOS4wMDhsLS4wODUgNS0xLS4wMTcuMDg1LTV6Ii8+PC9nPjwvZz48L2c+PC9zdmc+)}}.lightbox-wrapper::ng-deep .pswp__img--placeholder{align-items:center;display:flex;justify-content:center}.lightbox-wrapper::ng-deep .pswp__img--placeholder:after{background:url(data:image/gif;base64,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) center/64px no-repeat;color:#fff;content:\"\";font-size:128px;height:128px;left:50%;pointer-events:none;position:absolute;top:50%;transform:translate3d(-50%,-50%,0);width:128px}.lightbox-wrapper::ng-deep .pswp__ui--hidden .pswp__top-bar{transform:translateY(-15px)}.lightbox-wrapper::ng-deep .pswp__top-bar{background:none;height:30px;margin-top:env(safe-area-inset-top);padding:16px;transition:transform .3s ease-out,opacity .3s cubic-bezier(.4,0,.22,1)}.lightbox-wrapper::ng-deep .pswp__counter{background-color:#00000080;border-radius:15px;font-family:Hiragino Kaku Gothic ProN,\\30e1\\30a4\\30ea\\30aa,sans-serif;font-size:12px;font-weight:700;height:30px;left:16px;line-height:30px;padding:0 16px;top:16px}.lightbox-wrapper::ng-deep .pswp__button{background-size:180px 60px;height:30px;margin-left:8px;opacity:1;width:30px}.lightbox-wrapper::ng-deep .pswp__button:before{background-color:#00000080;border-radius:50%;content:\"\";inset:0;position:absolute;z-index:-1}.lightbox-wrapper::ng-deep .pswp__button--close{background-position:0 -30px}.lightbox-wrapper::ng-deep .pswp__button--share{background-position:-30px -30px}.lightbox-wrapper::ng-deep .pswp__button--zoom{background-position:-60px 0}.lightbox-wrapper::ng-deep .pswp--zoomed-in .pswp__button--zoom{background-position:-90px 0}.lightbox-wrapper::ng-deep .pswp--fs .pswp__button--fs{background-position:-30px 0}.lightbox-wrapper::ng-deep .pswp__button--arrow--left:before{background-position:-94px -30px}.lightbox-wrapper::ng-deep .pswp__button--arrow--right:before{background-position:-64px -30px}.lightbox-wrapper::ng-deep .pswp__caption{padding-bottom:env(safe-area-inset-top)}.lightbox-wrapper::ng-deep .pswp__caption--empty{display:block;opacity:0;pointer-events:none;transition:opacity .2s ease-out}.lightbox-wrapper::ng-deep .pswp__caption__center{min-height:40px}.lightbox-wrapper::ng-deep .pswp__video-wrapper{display:flex;justify-content:center;align-items:center;background:black}.lightbox-wrapper::ng-deep .pswp__video-wrapper video{max-width:90vw;max-height:80vh;outline:none}\n"] }]
|
15
|
+
}], ctorParameters: function () { return []; }, propDecorators: { element: [{
|
16
|
+
type: ViewChild,
|
17
|
+
args: ['Lightbox', { static: true }]
|
18
|
+
}] } });
|
19
|
+
|
20
|
+
class PhotoGalleryConfig {
|
21
|
+
}
|
22
|
+
|
23
|
+
class LightboxService {
|
24
|
+
constructor(applicationRef) {
|
25
|
+
this.applicationRef = applicationRef;
|
26
|
+
this.lightbox = null;
|
27
|
+
this.lightboxElement = null;
|
28
|
+
}
|
29
|
+
create() {
|
30
|
+
this.lightbox = createComponent(LightboxComponent, { environmentInjector: this.applicationRef.injector });
|
31
|
+
document.body.appendChild(this.lightbox.location.nativeElement);
|
32
|
+
this.applicationRef.attachView(this.lightbox.hostView);
|
33
|
+
this.lightboxElement = this.lightbox.instance.element;
|
34
|
+
}
|
35
|
+
destroy() {
|
36
|
+
if (this.lightbox) {
|
37
|
+
this.applicationRef.detachView(this.lightbox.hostView);
|
38
|
+
this.lightbox = null;
|
39
|
+
this.lightboxElement = null;
|
40
|
+
}
|
41
|
+
}
|
42
|
+
/**
|
43
|
+
* Returns the lightbox element.
|
44
|
+
* This method is called after the lightbox is created.
|
45
|
+
* @returns HTMLElement
|
46
|
+
*/
|
47
|
+
getLightboxElement() {
|
48
|
+
return this.lightboxElement.nativeElement;
|
49
|
+
}
|
50
|
+
}
|
51
|
+
LightboxService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LightboxService, deps: [{ token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable });
|
52
|
+
LightboxService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LightboxService, providedIn: 'root' });
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LightboxService, decorators: [{
|
54
|
+
type: Injectable,
|
55
|
+
args: [{ providedIn: 'root' }]
|
56
|
+
}], ctorParameters: function () { return [{ type: i0.ApplicationRef }]; } });
|
57
|
+
|
58
|
+
const DEFAULT_OPTIONS = {
|
59
|
+
history: false,
|
60
|
+
closeEl: true,
|
61
|
+
captionEl: false,
|
62
|
+
fullscreenEl: false,
|
63
|
+
zoomEl: true,
|
64
|
+
shareEl: false,
|
65
|
+
counterEl: true,
|
66
|
+
arrowEl: false,
|
67
|
+
preloaderEl: true,
|
68
|
+
};
|
69
|
+
class PhotoGalleryGroupDirective {
|
70
|
+
constructor(photoGalleryConfig, lightboxService) {
|
71
|
+
var _a;
|
72
|
+
this.photoGalleryConfig = photoGalleryConfig;
|
73
|
+
this.lightboxService = lightboxService;
|
74
|
+
this.onPhotoGalleryInit = new EventEmitter();
|
75
|
+
this.onPhotoGalleryDestroy = new EventEmitter();
|
76
|
+
this.galleryItems = {};
|
77
|
+
this.galleryItemIds = new Set();
|
78
|
+
this.galleryImages = [];
|
79
|
+
this.defaultOptions = Object.assign(Object.assign({}, DEFAULT_OPTIONS), (_a = this.photoGalleryConfig) === null || _a === void 0 ? void 0 : _a.defaultOptions);
|
80
|
+
}
|
81
|
+
isVideo(url) {
|
82
|
+
return url === null || url === void 0 ? void 0 : url.includes('/videos/');
|
83
|
+
}
|
84
|
+
registerGalleryItem(item) {
|
85
|
+
const image = Object.assign(Object.assign({ id: item.id, src: item.imageUrl }, (item.caption ? { title: item.caption } : {})), { w: 0, h: 0, doGetSlideDimensions: true });
|
86
|
+
this.galleryItems[item.id] = {
|
87
|
+
id: item.id,
|
88
|
+
element: item.element,
|
89
|
+
image,
|
90
|
+
};
|
91
|
+
this.galleryItemIds.add(item.id);
|
92
|
+
}
|
93
|
+
unregisterGalleryItem(id) {
|
94
|
+
this.galleryItemIds.delete(id);
|
95
|
+
}
|
96
|
+
openPhotoSwipe(id) {
|
97
|
+
return __awaiter(this, void 0, void 0, function* () {
|
98
|
+
this.lightboxService.create();
|
99
|
+
const targetItem = this.galleryItems[id].image;
|
100
|
+
if (targetItem.doGetSlideDimensions && !this.isVideo(targetItem.src)) {
|
101
|
+
const targetImage = yield loadImage(targetItem.src);
|
102
|
+
targetItem.w = targetImage.naturalWidth;
|
103
|
+
targetItem.h = targetImage.naturalHeight;
|
104
|
+
delete targetItem.doGetSlideDimensions;
|
105
|
+
}
|
106
|
+
// Crée la liste complète des médias
|
107
|
+
this.galleryImages = ([...this.galleryItemIds].map((key) => {
|
108
|
+
const media = this.galleryItems[key].image;
|
109
|
+
if (this.isVideo(media.src)) {
|
110
|
+
return {
|
111
|
+
id: media.id,
|
112
|
+
html: `
|
113
|
+
<div class="pswp__video-wrapper">
|
114
|
+
<video
|
115
|
+
src="${media.src}"
|
116
|
+
controls
|
117
|
+
autoplay
|
118
|
+
preload="metadata"
|
119
|
+
style="max-width: 100%; max-height: 100%; border-radius: 8px;"
|
120
|
+
></video>
|
121
|
+
</div>
|
122
|
+
`,
|
123
|
+
title: media.title || '',
|
124
|
+
w: 1920,
|
125
|
+
h: 1080,
|
126
|
+
};
|
127
|
+
}
|
128
|
+
return media;
|
129
|
+
}));
|
130
|
+
const idx = this.galleryImages.findIndex((image) => image.id === id);
|
131
|
+
const options = Object.assign(Object.assign({}, this.defaultOptions), this.options);
|
132
|
+
options.index = idx;
|
133
|
+
options.getThumbBoundsFn = (imageIndex) => {
|
134
|
+
const key = this.galleryImages[imageIndex].id;
|
135
|
+
const thumbnail = this.galleryItems[key].element;
|
136
|
+
const origin = this.galleryItems[key].image;
|
137
|
+
const pageYScroll = window.pageYOffset || document.documentElement.scrollTop;
|
138
|
+
const rect = thumbnail.getBoundingClientRect();
|
139
|
+
const thumbnailRate = rect.height / rect.width;
|
140
|
+
const originRate = origin.h / origin.w;
|
141
|
+
let x, y, w;
|
142
|
+
if (thumbnailRate > originRate) {
|
143
|
+
y = rect.top + pageYScroll;
|
144
|
+
w = (origin.w * rect.height) / origin.h;
|
145
|
+
x = rect.left - (w - rect.width) / 2;
|
146
|
+
}
|
147
|
+
else {
|
148
|
+
const imageHeight = (origin.h * rect.width) / origin.w;
|
149
|
+
x = rect.left;
|
150
|
+
w = rect.width;
|
151
|
+
y = rect.top + pageYScroll - (imageHeight - rect.height) / 2;
|
152
|
+
}
|
153
|
+
return { x, y, w };
|
154
|
+
};
|
155
|
+
const photoSwipe = this.lightboxService.getLightboxElement();
|
156
|
+
this.gallery = new PhotoSwipe(photoSwipe, PhotoSwipeUI_Default, this.galleryImages, options);
|
157
|
+
this.gallery.listen('gettingData', (_, slide) => {
|
158
|
+
if (slide.doGetSlideDimensions && !this.isVideo(slide.src)) {
|
159
|
+
setTimeout(() => __awaiter(this, void 0, void 0, function* () { return yield this.getSlideDimensions(slide); }), 300);
|
160
|
+
}
|
161
|
+
});
|
162
|
+
this.gallery.listen('imageLoadComplete', (_, slide) => __awaiter(this, void 0, void 0, function* () {
|
163
|
+
if (slide.doGetSlideDimensions && !this.isVideo(slide.src)) {
|
164
|
+
yield this.getSlideDimensions(slide);
|
165
|
+
}
|
166
|
+
}));
|
167
|
+
this.gallery.listen('destroy', () => {
|
168
|
+
this.lightboxService.destroy();
|
169
|
+
this.onPhotoGalleryDestroy.emit();
|
170
|
+
});
|
171
|
+
this.onPhotoGalleryInit.emit();
|
172
|
+
this.gallery.init();
|
173
|
+
});
|
174
|
+
}
|
175
|
+
getSlideDimensions(slide) {
|
176
|
+
return __awaiter(this, void 0, void 0, function* () {
|
177
|
+
if (!slide.doGetSlideDimensions) {
|
178
|
+
return;
|
179
|
+
}
|
180
|
+
const image = yield loadImage(slide.src).catch(() => null);
|
181
|
+
slide.doGetSlideDimensions = false;
|
182
|
+
slide.w = image.naturalWidth;
|
183
|
+
slide.h = image.naturalHeight;
|
184
|
+
this.gallery.invalidateCurrItems();
|
185
|
+
this.gallery.updateSize(true);
|
186
|
+
});
|
187
|
+
}
|
188
|
+
}
|
189
|
+
PhotoGalleryGroupDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PhotoGalleryGroupDirective, deps: [{ token: PhotoGalleryConfig, optional: true }, { token: LightboxService }], target: i0.ɵɵFactoryTarget.Directive });
|
190
|
+
PhotoGalleryGroupDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: PhotoGalleryGroupDirective, selector: "[photoGalleryGroup]", inputs: { options: ["photoGalleryGroup", "options"] }, outputs: { onPhotoGalleryInit: "onPhotoGalleryInit", onPhotoGalleryDestroy: "onPhotoGalleryDestroy" }, ngImport: i0 });
|
191
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PhotoGalleryGroupDirective, decorators: [{
|
192
|
+
type: Directive,
|
193
|
+
args: [{
|
194
|
+
selector: '[photoGalleryGroup]',
|
195
|
+
}]
|
196
|
+
}], ctorParameters: function () {
|
197
|
+
return [{ type: PhotoGalleryConfig, decorators: [{
|
198
|
+
type: Optional
|
199
|
+
}] }, { type: LightboxService }];
|
200
|
+
}, propDecorators: { options: [{
|
201
|
+
type: Input,
|
202
|
+
args: ['photoGalleryGroup']
|
203
|
+
}], onPhotoGalleryInit: [{
|
204
|
+
type: Output
|
205
|
+
}], onPhotoGalleryDestroy: [{
|
206
|
+
type: Output
|
207
|
+
}] } });
|
208
|
+
function loadImage(path) {
|
209
|
+
return new Promise((resolve, reject) => {
|
210
|
+
const image = new Image();
|
211
|
+
image.onload = () => resolve(image);
|
212
|
+
image.onerror = (e) => reject(e);
|
213
|
+
image.src = path;
|
214
|
+
});
|
215
|
+
}
|
216
|
+
|
217
|
+
class PhotoGalleryDirective {
|
218
|
+
constructor(el, photoGalleryGroup) {
|
219
|
+
this.el = el;
|
220
|
+
this.photoGalleryGroup = photoGalleryGroup;
|
221
|
+
}
|
222
|
+
openPhotoSwipe() {
|
223
|
+
return __awaiter(this, void 0, void 0, function* () {
|
224
|
+
yield this.photoGalleryGroup.openPhotoSwipe(this.id);
|
225
|
+
});
|
226
|
+
}
|
227
|
+
ngAfterContentInit() {
|
228
|
+
this.id = this.photoGalleryTrackBy || this.imageUrl;
|
229
|
+
this.photoGalleryGroup.registerGalleryItem({
|
230
|
+
id: this.id,
|
231
|
+
element: this.el.nativeElement,
|
232
|
+
imageUrl: this.imageUrl,
|
233
|
+
caption: this.photoGalleryCaption,
|
234
|
+
});
|
235
|
+
}
|
236
|
+
ngOnDestroy() {
|
237
|
+
this.photoGalleryGroup.unregisterGalleryItem(this.id);
|
238
|
+
}
|
239
|
+
}
|
240
|
+
PhotoGalleryDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PhotoGalleryDirective, deps: [{ token: i0.ElementRef }, { token: PhotoGalleryGroupDirective }], target: i0.ɵɵFactoryTarget.Directive });
|
241
|
+
PhotoGalleryDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: PhotoGalleryDirective, selector: "[photoGallery]", inputs: { imageUrl: ["photoGallery", "imageUrl"], photoGalleryTrackBy: "photoGalleryTrackBy", photoGalleryCaption: "photoGalleryCaption" }, host: { listeners: { "click": "openPhotoSwipe()" } }, ngImport: i0 });
|
242
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PhotoGalleryDirective, decorators: [{
|
243
|
+
type: Directive,
|
244
|
+
args: [{
|
245
|
+
selector: '[photoGallery]',
|
246
|
+
}]
|
247
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: PhotoGalleryGroupDirective }]; }, propDecorators: { imageUrl: [{
|
248
|
+
type: Input,
|
249
|
+
args: ['photoGallery']
|
250
|
+
}], photoGalleryTrackBy: [{
|
251
|
+
type: Input
|
252
|
+
}], photoGalleryCaption: [{
|
253
|
+
type: Input
|
254
|
+
}], openPhotoSwipe: [{
|
255
|
+
type: HostListener,
|
256
|
+
args: ['click']
|
257
|
+
}] } });
|
258
|
+
|
259
|
+
class PhotoGalleryModule {
|
260
|
+
static forRoot(config) {
|
261
|
+
return {
|
262
|
+
ngModule: PhotoGalleryModule,
|
263
|
+
providers: [
|
264
|
+
{
|
265
|
+
provide: PhotoGalleryConfig,
|
266
|
+
useValue: config,
|
267
|
+
},
|
268
|
+
],
|
269
|
+
};
|
270
|
+
}
|
271
|
+
}
|
272
|
+
PhotoGalleryModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PhotoGalleryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
273
|
+
PhotoGalleryModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: PhotoGalleryModule, declarations: [LightboxComponent, PhotoGalleryDirective, PhotoGalleryGroupDirective], exports: [PhotoGalleryDirective, PhotoGalleryGroupDirective] });
|
274
|
+
PhotoGalleryModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PhotoGalleryModule });
|
275
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PhotoGalleryModule, decorators: [{
|
276
|
+
type: NgModule,
|
277
|
+
args: [{
|
278
|
+
declarations: [LightboxComponent, PhotoGalleryDirective, PhotoGalleryGroupDirective],
|
279
|
+
providers: [],
|
280
|
+
imports: [],
|
281
|
+
exports: [PhotoGalleryDirective, PhotoGalleryGroupDirective],
|
282
|
+
}]
|
283
|
+
}] });
|
284
|
+
|
285
|
+
/*
|
286
|
+
* Public API Surface of core
|
287
|
+
*/
|
288
|
+
|
289
|
+
/**
|
290
|
+
* Generated bundle index. Do not edit.
|
291
|
+
*/
|
292
|
+
|
293
|
+
export { DEFAULT_OPTIONS, PhotoGalleryDirective, PhotoGalleryGroupDirective, PhotoGalleryModule };
|
294
|
+
//# sourceMappingURL=twogate-ngx-photo-gallery.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"twogate-ngx-photo-gallery.mjs","sources":["../../../projects/core/src/lib/components/lightbox/lightbox.component.ts","../../../projects/core/src/lib/components/lightbox/lightbox.component.html","../../../projects/core/src/lib/interfaces/config.ts","../../../projects/core/src/lib/services/lightbox.service.ts","../../../projects/core/src/lib/directives/photo-gallery-group.directive.ts","../../../projects/core/src/lib/directives/photo-gallery.directive.ts","../../../projects/core/src/lib/photo-gallery.module.ts","../../../projects/core/src/public-api.ts","../../../projects/core/src/twogate-ngx-photo-gallery.ts"],"sourcesContent":["import { Component, ViewChild, ElementRef, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n selector: 'photo-gallery-lightbox',\n templateUrl: './lightbox.component.html',\n styleUrls: ['./lightbox.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LightboxComponent {\n @ViewChild('Lightbox', { static: true }) element: ElementRef;\n\n constructor() {}\n}\n","<div class=\"lightbox-wrapper\">\n <!-- Root element of PhotoSwipe. Must have class pswp. -->\n <div class=\"pswp\" #Lightbox tabindex=\"-1\" role=\"dialog\" aria-hidden=\"true\">\n <!-- Background of PhotoSwipe.\n It's a separate element, as animating opacity is faster than rgba(). -->\n <div class=\"pswp__bg\"></div>\n <!-- Slides wrapper with overflow:hidden. -->\n <div class=\"pswp__scroll-wrap\">\n <!-- Container that holds slides. PhotoSwipe keeps only 3 slides in DOM to save memory. -->\n <!-- don't modify these 3 pswp__item elements, data is added later on. -->\n <div class=\"pswp__container\">\n <div class=\"pswp__item\"></div>\n <div class=\"pswp__item\"></div>\n <div class=\"pswp__item\"></div>\n </div>\n <!-- Default (PhotoSwipeUI_Default) interface on top of sliding area. Can be changed. -->\n <div class=\"pswp__ui pswp__ui--hidden\">\n <div class=\"pswp__top-bar\">\n <!-- Controls are self-explanatory. Order can be changed. -->\n <div class=\"pswp__counter\"></div>\n <button class=\"pswp__button pswp__button--close\" title=\"Close (Esc)\"></button>\n <button class=\"pswp__button pswp__button--share\" title=\"Share\"></button>\n <button class=\"pswp__button pswp__button--fs\" title=\"Toggle fullscreen\"></button>\n <button class=\"pswp__button pswp__button--zoom\" title=\"Zoom in/out\"></button>\n <!-- Preloader demo http://codepen.io/dimsemenov/pen/yyBWoR -->\n <!-- element will get class pswp__preloader--active when preloader is running -->\n <div class=\"pswp__preloader\">\n <div class=\"pswp__preloader__icn\">\n <div class=\"pswp__preloader__cut\">\n <div class=\"pswp__preloader__donut\"></div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"pswp__share-modal pswp__share-modal--hidden pswp__single-tap\">\n <div class=\"pswp__share-tooltip\"></div>\n </div>\n <button class=\"pswp__button pswp__button--arrow--left\" title=\"Previous (arrow left)\"></button>\n <button class=\"pswp__button pswp__button--arrow--right\" title=\"Next (arrow right)\"></button>\n <div class=\"pswp__caption\">\n <div class=\"pswp__caption__center\"></div>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { GalleryOptions } from './photoswipe';\n\nexport abstract class PhotoGalleryConfig {\n defaultOptions?: GalleryOptions;\n}\n","import { Injectable, ComponentRef, ElementRef, ApplicationRef, createComponent } from '@angular/core';\n\nimport { LightboxComponent } from '../components/lightbox/lightbox.component';\n\n@Injectable({ providedIn: 'root' })\nexport class LightboxService {\n private lightbox: ComponentRef<LightboxComponent> | null;\n private lightboxElement: ElementRef | null;\n\n constructor(private applicationRef: ApplicationRef) {\n this.lightbox = null;\n this.lightboxElement = null;\n }\n\n create() {\n this.lightbox = createComponent(\n LightboxComponent,\n { environmentInjector: this.applicationRef.injector }\n );\n document.body.appendChild(this.lightbox.location.nativeElement);\n this.applicationRef.attachView(this.lightbox.hostView);\n\n this.lightboxElement = this.lightbox.instance.element;\n }\n\n destroy() {\n if (this.lightbox) {\n this.applicationRef.detachView(this.lightbox.hostView);\n this.lightbox = null;\n this.lightboxElement = null;\n }\n }\n\n /**\n * Returns the lightbox element.\n * This method is called after the lightbox is created.\n * @returns HTMLElement\n */\n getLightboxElement(): HTMLElement {\n return this.lightboxElement.nativeElement as HTMLElement;\n }\n}\n","import { Directive, Output, Input, EventEmitter, Optional } from '@angular/core';\nimport PhotoSwipe from 'photoswipe';\nimport PhotoSwipeUI_Default from 'photoswipe/dist/photoswipe-ui-default';\n\nimport { PhotoGalleryConfig } from '../interfaces/config';\nimport { GalleryImage, GalleryItem, GalleryOptions } from '../interfaces/photoswipe';\nimport { LightboxService } from '../services/lightbox.service';\n\nexport const DEFAULT_OPTIONS = {\n history: false,\n closeEl: true,\n captionEl: false,\n fullscreenEl: false,\n zoomEl: true,\n shareEl: false,\n counterEl: true,\n arrowEl: false,\n preloaderEl: true,\n};\n\n@Directive({\n selector: '[photoGalleryGroup]',\n})\nexport class PhotoGalleryGroupDirective {\n @Input('photoGalleryGroup') options: GalleryOptions;\n @Output() onPhotoGalleryInit = new EventEmitter();\n @Output() onPhotoGalleryDestroy = new EventEmitter();\n\n private defaultOptions: GalleryOptions;\n private gallery: any;\n private galleryItems: { [key: string]: GalleryItem } = {};\n private galleryItemIds: Set<string> = new Set<string>();\n private galleryImages: GalleryImage[] = [];\n\n constructor(\n @Optional() private photoGalleryConfig: PhotoGalleryConfig,\n private lightboxService: LightboxService\n ) {\n this.defaultOptions = { ...DEFAULT_OPTIONS, ...this.photoGalleryConfig?.defaultOptions };\n }\n\n private isVideo(url: string): boolean {\n return url?.includes('/videos/');\n }\n\n registerGalleryItem(item: { id: string; element: HTMLElement; imageUrl: string; caption?: string }): void {\n const image: GalleryImage = {\n id: item.id,\n src: item.imageUrl,\n ...(item.caption ? { title: item.caption } : {}),\n w: 0,\n h: 0,\n doGetSlideDimensions: true,\n };\n this.galleryItems[item.id] = {\n id: item.id,\n element: item.element,\n image,\n };\n\n this.galleryItemIds.add(item.id);\n }\n\n unregisterGalleryItem(id: string): void {\n this.galleryItemIds.delete(id);\n }\n\n async openPhotoSwipe(id: string): Promise<void> {\n this.lightboxService.create();\n\n const targetItem = this.galleryItems[id].image;\n\n if (targetItem.doGetSlideDimensions && !this.isVideo(targetItem.src)) {\n const targetImage = await loadImage(targetItem.src);\n targetItem.w = targetImage.naturalWidth;\n targetItem.h = targetImage.naturalHeight;\n delete targetItem.doGetSlideDimensions;\n }\n\n // Crée la liste complète des médias\n this.galleryImages = ([...this.galleryItemIds].map((key) => {\n const media = this.galleryItems[key].image;\n\n if (this.isVideo(media.src)) {\n return {\n id: media.id,\n html: `\n <div class=\"pswp__video-wrapper\">\n <video\n src=\"${media.src}\"\n controls\n autoplay\n preload=\"metadata\"\n style=\"max-width: 100%; max-height: 100%; border-radius: 8px;\"\n ></video>\n </div>\n `,\n title: media.title || '',\n w: 1920,\n h: 1080,\n };\n }\n\n return media;\n })) as any[];\n\n const idx = this.galleryImages.findIndex((image) => image.id === id);\n const options: GalleryOptions = { ...this.defaultOptions, ...this.options };\n options.index = idx;\n\n options.getThumbBoundsFn = (imageIndex: number) => {\n const key = this.galleryImages[imageIndex].id;\n const thumbnail = this.galleryItems[key].element;\n const origin = this.galleryItems[key].image;\n const pageYScroll = window.pageYOffset || document.documentElement.scrollTop;\n const rect = thumbnail.getBoundingClientRect();\n\n const thumbnailRate = rect.height / rect.width;\n const originRate = origin.h / origin.w;\n let x: number, y: number, w: number;\n\n if (thumbnailRate > originRate) {\n y = rect.top + pageYScroll;\n w = (origin.w * rect.height) / origin.h;\n x = rect.left - (w - rect.width) / 2;\n } else {\n const imageHeight = (origin.h * rect.width) / origin.w;\n x = rect.left;\n w = rect.width;\n y = rect.top + pageYScroll - (imageHeight - rect.height) / 2;\n }\n\n return { x, y, w };\n };\n\n const photoSwipe = this.lightboxService.getLightboxElement();\n\n this.gallery = new PhotoSwipe(photoSwipe, PhotoSwipeUI_Default, this.galleryImages, options);\n\n this.gallery.listen('gettingData', (_, slide: any) => {\n if (slide.doGetSlideDimensions && !this.isVideo(slide.src)) {\n setTimeout(async () => await this.getSlideDimensions(slide), 300);\n }\n });\n\n this.gallery.listen('imageLoadComplete', async (_, slide: any) => {\n if (slide.doGetSlideDimensions && !this.isVideo(slide.src)) {\n await this.getSlideDimensions(slide);\n }\n });\n\n this.gallery.listen('destroy', () => {\n this.lightboxService.destroy();\n this.onPhotoGalleryDestroy.emit();\n });\n\n this.onPhotoGalleryInit.emit();\n this.gallery.init();\n }\n\n private async getSlideDimensions(slide: GalleryImage): Promise<void> {\n if (!slide.doGetSlideDimensions) {\n return;\n }\n\n const image: HTMLImageElement = await loadImage(slide.src).catch(() => null);\n\n slide.doGetSlideDimensions = false;\n\n slide.w = image.naturalWidth;\n slide.h = image.naturalHeight;\n\n this.gallery.invalidateCurrItems();\n this.gallery.updateSize(true);\n }\n}\n\nfunction loadImage(path: string): Promise<HTMLImageElement> {\n return new Promise((resolve, reject) => {\n const image = new Image();\n image.onload = () => resolve(image);\n image.onerror = (e) => reject(e);\n image.src = path;\n });\n}\n","import { Directive, HostListener, Input, ElementRef, AfterContentInit, OnDestroy } from '@angular/core';\n\nimport { PhotoGalleryGroupDirective } from './photo-gallery-group.directive';\n\n@Directive({\n selector: '[photoGallery]',\n})\nexport class PhotoGalleryDirective implements AfterContentInit, OnDestroy {\n @Input('photoGallery') imageUrl: string;\n @Input() photoGalleryTrackBy: string;\n @Input() photoGalleryCaption: string;\n id: string;\n\n constructor(private el: ElementRef, private photoGalleryGroup: PhotoGalleryGroupDirective) {}\n\n @HostListener('click')\n async openPhotoSwipe(): Promise<void> {\n await this.photoGalleryGroup.openPhotoSwipe(this.id);\n }\n\n ngAfterContentInit(): void {\n this.id = this.photoGalleryTrackBy || this.imageUrl;\n this.photoGalleryGroup.registerGalleryItem({\n id: this.id,\n element: this.el.nativeElement as HTMLElement,\n imageUrl: this.imageUrl,\n caption: this.photoGalleryCaption,\n });\n }\n\n ngOnDestroy(): void {\n this.photoGalleryGroup.unregisterGalleryItem(this.id);\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { LightboxComponent } from './components/lightbox/lightbox.component';\nimport { PhotoGalleryGroupDirective } from './directives/photo-gallery-group.directive';\nimport { PhotoGalleryDirective } from './directives/photo-gallery.directive';\nimport { PhotoGalleryConfig } from './interfaces/config';\n\n@NgModule({\n declarations: [LightboxComponent, PhotoGalleryDirective, PhotoGalleryGroupDirective],\n providers: [],\n imports: [],\n exports: [PhotoGalleryDirective, PhotoGalleryGroupDirective],\n})\nexport class PhotoGalleryModule {\n static forRoot(config: PhotoGalleryConfig): ModuleWithProviders<PhotoGalleryModule> {\n return {\n ngModule: PhotoGalleryModule,\n providers: [\n {\n provide: PhotoGalleryConfig,\n useValue: config,\n },\n ],\n };\n }\n}\n","/*\n * Public API Surface of core\n */\n\nexport * from './lib/photo-gallery.module';\n\nexport * from './lib/directives/photo-gallery-group.directive';\nexport * from './lib/directives/photo-gallery.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PhotoGalleryConfig","i2.LightboxService","i1.PhotoGalleryGroupDirective"],"mappings":"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"}
|