UNPKG

@ngx-gallery/core

Version:

Angular gallery directive that hooks the lightbox with the images automatically.

70 lines 5.05 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, Input, ViewChild, ElementRef, ChangeDetectionStrategy, Output, EventEmitter } from '@angular/core'; export class GalleryVideoComponent { constructor() { /** * Stream that emits when an error occurs */ this.error = new EventEmitter(); } /** * @param {?} shouldPause * @return {?} */ set pauseVideo(shouldPause) { /** @type {?} */ const video = this.video.nativeElement; if (shouldPause && !video.paused) { video.pause(); } } /** * @return {?} */ ngOnInit() { if (this.src instanceof Array) { // If video has multiple sources this.videoSources = [...this.src]; } else { this.videoSources = [{ url: this.src }]; } } } GalleryVideoComponent.decorators = [ { type: Component, args: [{ selector: 'gallery-video', changeDetection: ChangeDetectionStrategy.OnPush, template: ` <video #video controls poster="{{poster}}" (error)="error.emit($event)"> <source *ngFor="let src of videoSources" src="{{src?.url}}" type="{{src?.type}}"/> </video> ` }] } ]; GalleryVideoComponent.propDecorators = { src: [{ type: Input }], poster: [{ type: Input }], pauseVideo: [{ type: Input, args: ['pause',] }], error: [{ type: Output }], video: [{ type: ViewChild, args: ['video',] }] }; if (false) { /** @type {?} */ GalleryVideoComponent.prototype.videoSources; /** @type {?} */ GalleryVideoComponent.prototype.src; /** @type {?} */ GalleryVideoComponent.prototype.poster; /** * Stream that emits when an error occurs * @type {?} */ GalleryVideoComponent.prototype.error; /** @type {?} */ GalleryVideoComponent.prototype.video; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsbGVyeS12aWRlby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4LWdhbGxlcnkvY29yZS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9nYWxsZXJ5LXZpZGVvLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLFVBQVUsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBVy9ILE1BQU0sT0FBTyxxQkFBcUI7SUFUbEM7Ozs7UUF3QlksVUFBSyxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7SUFZOUMsQ0FBQzs7Ozs7SUFwQkMsSUFBb0IsVUFBVSxDQUFDLFdBQW9COztjQUMzQyxLQUFLLEdBQXFCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYTtRQUN4RCxJQUFJLFdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDaEMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2Y7SUFDSCxDQUFDOzs7O0lBT0QsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLEdBQUcsWUFBWSxLQUFLLEVBQUU7WUFDN0IsZ0NBQWdDO1lBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNuQzthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQzs7O1lBbkNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07Z0JBQy9DLFFBQVEsRUFBRTs7OztHQUlUO2FBQ0Y7OztrQkFLRSxLQUFLO3FCQUNMLEtBQUs7eUJBRUwsS0FBSyxTQUFDLE9BQU87b0JBUWIsTUFBTTtvQkFFTixTQUFTLFNBQUMsT0FBTzs7OztJQWZsQiw2Q0FBNkM7O0lBRTdDLG9DQUFzRDs7SUFDdEQsdUNBQXdCOzs7OztJQVV4QixzQ0FBNEM7O0lBRTVDLHNDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2FsbGVyeS12aWRlbycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogYFxuICAgIDx2aWRlbyAjdmlkZW8gY29udHJvbHMgcG9zdGVyPVwie3twb3N0ZXJ9fVwiIChlcnJvcik9XCJlcnJvci5lbWl0KCRldmVudClcIj5cbiAgICAgIDxzb3VyY2UgKm5nRm9yPVwibGV0IHNyYyBvZiB2aWRlb1NvdXJjZXNcIiBzcmM9XCJ7e3NyYz8udXJsfX1cIiB0eXBlPVwie3tzcmM/LnR5cGV9fVwiLz5cbiAgICA8L3ZpZGVvPlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIEdhbGxlcnlWaWRlb0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgdmlkZW9Tb3VyY2VzOiB7dXJsOiBzdHJpbmcsIHR5cGU/OiBzdHJpbmd9W107XG5cbiAgQElucHV0KCkgc3JjOiBzdHJpbmcgfCB7dXJsOiBzdHJpbmcsIHR5cGU/OiBzdHJpbmd9W107XG4gIEBJbnB1dCgpIHBvc3Rlcjogc3RyaW5nO1xuXG4gIEBJbnB1dCgncGF1c2UnKSBzZXQgcGF1c2VWaWRlbyhzaG91bGRQYXVzZTogYm9vbGVhbikge1xuICAgIGNvbnN0IHZpZGVvOiBIVE1MVmlkZW9FbGVtZW50ID0gdGhpcy52aWRlby5uYXRpdmVFbGVtZW50O1xuICAgIGlmIChzaG91bGRQYXVzZSAmJiAhdmlkZW8ucGF1c2VkKSB7XG4gICAgICB2aWRlby5wYXVzZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBTdHJlYW0gdGhhdCBlbWl0cyB3aGVuIGFuIGVycm9yIG9jY3VycyAqL1xuICBAT3V0cHV0KCkgZXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPEVycm9yPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ3ZpZGVvJykgdmlkZW86IEVsZW1lbnRSZWY7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuc3JjIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgIC8vIElmIHZpZGVvIGhhcyBtdWx0aXBsZSBzb3VyY2VzXG4gICAgICB0aGlzLnZpZGVvU291cmNlcyA9IFsuLi50aGlzLnNyY107XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlkZW9Tb3VyY2VzID0gW3sgdXJsOiB0aGlzLnNyYyB9XTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==