UNPKG

@kolkov/ngx-gallery

Version:

A simple responsive native gallery component for Angular 8+ and 13+.

62 lines 7.47 kB
import { Injectable } from '@angular/core'; import * as i0 from "@angular/core"; export class NgxGalleryService { constructor(renderer) { this.renderer = renderer; this.swipeHandlers = new Map(); } manageSwipe(status, element, id, nextHandler, prevHandler) { const handlers = this.getSwipeHandlers(id); // swipeleft and swiperight are available only if hammerjs is included try { if (status && !handlers) { this.swipeHandlers.set(id, [ this.renderer.listen(element.nativeElement, 'swipeleft', () => nextHandler()), this.renderer.listen(element.nativeElement, 'swiperight', () => prevHandler()) ]); } else if (!status && handlers) { handlers.map((handler) => handler()); this.removeSwipeHandlers(id); } } catch (e) { } } validateUrl(url) { if (url.replace) { return url.replace(new RegExp(' ', 'g'), '%20') .replace(new RegExp('\'', 'g'), '%27'); } else { return url; } } getBackgroundUrl(image) { return 'url(\'' + this.validateUrl(image) + '\')'; } getFileType(fileSource) { const fileExtension = fileSource.split('.').pop().toLowerCase(); if (fileExtension === 'avi' || fileExtension === 'flv' || fileExtension === 'wmv' || fileExtension === 'mov' || fileExtension === 'mp4') { return 'video'; } return 'image'; } getSwipeHandlers(id) { return this.swipeHandlers.get(id); } removeSwipeHandlers(id) { this.swipeHandlers.delete(id); } } NgxGalleryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NgxGalleryService, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable }); NgxGalleryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NgxGalleryService, providedIn: 'root' }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NgxGalleryService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWdhbGxlcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2dhbGxlcnkvc3JjL2xpYi9uZ3gtZ2FsbGVyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7O0FBS2hFLE1BQU0sT0FBTyxpQkFBaUI7SUFHNUIsWUFBb0IsUUFBbUI7UUFBbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUYvQixrQkFBYSxHQUFnQyxJQUFJLEdBQUcsRUFBMEIsQ0FBQztJQUd2RixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWUsRUFBRSxPQUFtQixFQUFFLEVBQVUsRUFBRSxXQUF1QixFQUFFLFdBQXVCO1FBRTVHLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUUzQyxzRUFBc0U7UUFDdEUsSUFBSTtZQUNGLElBQUksTUFBTSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUU7b0JBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUM3RSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztpQkFDL0UsQ0FBQyxDQUFDO2FBQ0o7aUJBQU0sSUFBSSxDQUFDLE1BQU0sSUFBSSxRQUFRLEVBQUU7Z0JBQzlCLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUM5QjtTQUNGO1FBQUMsT0FBTyxDQUFDLEVBQUU7U0FDWDtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsR0FBVztRQUNyQixJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUU7WUFDZixPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQztpQkFDNUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUMxQzthQUFNO1lBQ0wsT0FBTyxHQUFHLENBQUM7U0FDWjtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFhO1FBQzVCLE9BQU8sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ3BELENBQUM7SUFFRCxXQUFXLENBQUUsVUFBa0I7UUFDN0IsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNoRSxJQUFJLGFBQWEsS0FBSyxLQUFLLElBQUksYUFBYSxLQUFLLEtBQUs7ZUFDakQsYUFBYSxLQUFLLEtBQUssSUFBSSxhQUFhLEtBQUssS0FBSztlQUNsRCxhQUFhLEtBQUssS0FBSyxFQUFFO1lBQzVCLE9BQU8sT0FBTyxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUVTLGdCQUFnQixDQUFDLEVBQVU7UUFDakMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU8sbUJBQW1CLENBQUMsRUFBVTtRQUNwQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoQyxDQUFDOzs4R0F0RFUsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FGaEIsTUFBTTsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFbGVtZW50UmVmLCBJbmplY3RhYmxlLCBSZW5kZXJlcjJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBOZ3hHYWxsZXJ5U2VydmljZSB7XG4gIHByaXZhdGUgc3dpcGVIYW5kbGVyczogTWFwPHN0cmluZywgKCgpID0+IHZvaWQpW10+ID0gbmV3IE1hcDxzdHJpbmcsICgoKSA9PiB2b2lkKVtdPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICB9XG5cbiAgbWFuYWdlU3dpcGUoc3RhdHVzOiBib29sZWFuLCBlbGVtZW50OiBFbGVtZW50UmVmLCBpZDogc3RyaW5nLCBuZXh0SGFuZGxlcjogKCkgPT4gdm9pZCwgcHJldkhhbmRsZXI6ICgpID0+IHZvaWQpOiB2b2lkIHtcblxuICAgIGNvbnN0IGhhbmRsZXJzID0gdGhpcy5nZXRTd2lwZUhhbmRsZXJzKGlkKTtcblxuICAgIC8vIHN3aXBlbGVmdCBhbmQgc3dpcGVyaWdodCBhcmUgYXZhaWxhYmxlIG9ubHkgaWYgaGFtbWVyanMgaXMgaW5jbHVkZWRcbiAgICB0cnkge1xuICAgICAgaWYgKHN0YXR1cyAmJiAhaGFuZGxlcnMpIHtcbiAgICAgICAgdGhpcy5zd2lwZUhhbmRsZXJzLnNldChpZCwgW1xuICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKGVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3N3aXBlbGVmdCcsICgpID0+IG5leHRIYW5kbGVyKCkpLFxuICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKGVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3N3aXBlcmlnaHQnLCAoKSA9PiBwcmV2SGFuZGxlcigpKVxuICAgICAgICBdKTtcbiAgICAgIH0gZWxzZSBpZiAoIXN0YXR1cyAmJiBoYW5kbGVycykge1xuICAgICAgICBoYW5kbGVycy5tYXAoKGhhbmRsZXIpID0+IGhhbmRsZXIoKSk7XG4gICAgICAgIHRoaXMucmVtb3ZlU3dpcGVIYW5kbGVycyhpZCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlVXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAodXJsLnJlcGxhY2UpIHtcbiAgICAgIHJldHVybiB1cmwucmVwbGFjZShuZXcgUmVnRXhwKCcgJywgJ2cnKSwgJyUyMCcpXG4gICAgICAgIC5yZXBsYWNlKG5ldyBSZWdFeHAoJ1xcJycsICdnJyksICclMjcnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVybDtcbiAgICB9XG4gIH1cblxuICBnZXRCYWNrZ3JvdW5kVXJsKGltYWdlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gJ3VybChcXCcnICsgdGhpcy52YWxpZGF0ZVVybChpbWFnZSkgKyAnXFwnKSc7XG4gIH1cblxuICBnZXRGaWxlVHlwZSAoZmlsZVNvdXJjZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZVNvdXJjZS5zcGxpdCgnLicpLnBvcCgpLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKGZpbGVFeHRlbnNpb24gPT09ICdhdmknIHx8IGZpbGVFeHRlbnNpb24gPT09ICdmbHYnXG4gICAgICB8fCBmaWxlRXh0ZW5zaW9uID09PSAnd212JyB8fCBmaWxlRXh0ZW5zaW9uID09PSAnbW92J1xuICAgICAgfHwgZmlsZUV4dGVuc2lvbiA9PT0gJ21wNCcpIHtcbiAgICAgIHJldHVybiAndmlkZW8nO1xuICAgIH1cbiAgICByZXR1cm4gJ2ltYWdlJztcbn1cblxuICBwcml2YXRlIGdldFN3aXBlSGFuZGxlcnMoaWQ6IHN0cmluZyk6ICgoKSA9PiB2b2lkKVtdIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5zd2lwZUhhbmRsZXJzLmdldChpZCk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVN3aXBlSGFuZGxlcnMoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc3dpcGVIYW5kbGVycy5kZWxldGUoaWQpO1xuICB9XG59XG4iXX0=