UNPKG

slider-carousel

Version:

Angular component of the carousel, using the slider as a transition. This is a simple, clean and light alternative. It also does not need dependencies.

106 lines 13.5 kB
import { Injectable, ComponentFactoryResolver, ApplicationRef, Injector, EmbeddedViewRef, ComponentRef } from '@angular/core'; import { Observable } from 'rxjs'; import { SliderCarouselPreviewComponent } from './slider-carousel-preview/slider-carousel-preview.component'; export class Helper { constructor(componentFactoryResolver, appRef, injector) { this.componentFactoryResolver = componentFactoryResolver; this.appRef = appRef; this.injector = injector; } openPreview(data = {}) { let onCloseSubscribe; let object; object = { onClose: new Observable((subscribe) => onCloseSubscribe = subscribe), instance: null }; let componenRef = this.createComponent(SliderCarouselPreviewComponent, data, (data) => { onCloseSubscribe.next(data); }); object.instance = componenRef.instance; return object; } createComponent(component, data, onClose) { const componentRef = this.componentFactoryResolver .resolveComponentFactory(component) .create(this.injector); if (!data) data = {}; data.close = (data) => { this.appRef.detachView(componentRef.hostView); componentRef.destroy(); if (onClose) onClose(data); }; Object.assign(componentRef.instance, { modalRef: data }); this.appRef.attachView(componentRef.hostView); const domElem = componentRef.hostView.rootNodes[0]; document.body.appendChild(domElem); return componentRef; } smoothScroll(element, scroll, duration = 400, direction = 'top') { let start = direction === 'top' ? element.scrollTop : element.scrollLeft; if (scroll < 0) scroll = 0; let distance = (scroll - start) - 77; let startTime = new Date().getTime(); if (!duration) duration = 400; let easeInOutQuart = (time, from, distance, duration) => { if ((time /= duration / 2) < 1) return distance / 2 * time * time * time * time + from; return -distance / 2 * ((time -= 2) * time * time * time - 2) + from; }; let timer = setInterval(() => { const time = new Date().getTime() - startTime, newScroll = easeInOutQuart(time, start, distance, duration); if (time >= duration) { clearInterval(timer); timer = null; } if (element.scrollTo) { if (direction === 'top') element.scrollTo(element.scrollLeft, newScroll); else element.scrollTo(newScroll, element.scrollTop); } else { if (direction === 'top') element.scrollTop = newScroll; else element.scrollLeft = newScroll; } }, 1000 / 60); return timer; } elementIsChild(element, parentElment) { try { while (element && element.tagName.toUpperCase() !== 'BODY') { if (element === parentElment) { return true; } element = element.parentNode; } return false; } catch (_a) { return false; } } isMobileDevice() { return (typeof window.orientation !== "undefined") || (navigator.userAgent.indexOf('IEMobile') !== -1); } } Helper.ctorParameters = () => [ { type: ComponentFactoryResolver }, { type: ApplicationRef }, { type: Injector } ]; Helper.decorators = [ { type: Injectable } ]; Helper.ctorParameters = () => [ { type: ComponentFactoryResolver }, { type: ApplicationRef }, { type: Injector } ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vc2xpZGVyLWNhcm91c2VsLyIsInNvdXJjZXMiOlsiaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsd0JBQXdCLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlILE9BQU8sRUFBRSxVQUFVLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFHN0csTUFBTSxPQUFPLE1BQU07SUFFZixZQUNZLHdCQUFrRCxFQUNsRCxNQUFzQixFQUN0QixRQUFrQjtRQUZsQiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFHOUIsQ0FBQztJQUVHLFdBQVcsQ0FBQyxPQUErQixFQUFFO1FBQzdDLElBQUksZ0JBQWlDLENBQUM7UUFDNUMsSUFBSSxNQUdHLENBQUM7UUFFRixNQUFNLEdBQUc7WUFDTCxPQUFPLEVBQUUsSUFBSSxVQUFVLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztZQUNwRSxRQUFRLEVBQUUsSUFBSTtTQUNqQixDQUFDO1FBRUYsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyw4QkFBOEIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNsRixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsUUFBUSxHQUFJLFdBQTRELENBQUMsUUFBUSxDQUFDO1FBRXpGLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFTSxlQUFlLENBQUMsU0FBYyxFQUFFLElBQUks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U0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUNoRDtpQkFDSTtnQkFDSixJQUFJLFNBQVMsS0FBSyxLQUFLO29CQUN0QixPQUFPLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQzs7b0JBRTlCLE9BQU8sQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO2FBQ2hDO1FBQ0YsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztRQUVkLE9BQU8sS0FBSyxDQUFDO0lBQ1gsQ0FBQztJQUVHLGNBQWMsQ0FBQyxPQUFPLEVBQUUsWUFBWTtRQUMxQyxJQUFJO1lBQ0gsT0FBTyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsS0FBSyxNQUFNLEVBQUU7Z0JBQzNELElBQUksT0FBTyxLQUFLLFlBQVksRUFBRTtvQkFDN0IsT0FBTyxJQUFJLENBQUM7aUJBQ1o7Z0JBQ0QsT0FBTyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7YUFDN0I7WUFDRCxPQUFPLEtBQUssQ0FBQztTQUNiO1FBQ0QsV0FBTTtZQUNMLE9BQU8sS0FBSyxDQUFDO1NBQ2I7SUFDRixDQUFDO0lBRVMsY0FBYztRQUNqQixPQUFPLENBQUMsT0FBTyxNQUFNLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRyxDQUFDOzs7WUEvR3FDLHdCQUF3QjtZQUMxQyxjQUFjO1lBQ1osUUFBUTs7O1lBTmpDLFVBQVU7OztZQUpVLHdCQUF3QjtZQUFFLGNBQWM7WUFBRSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBBcHBsaWNhdGlvblJlZiwgSW5qZWN0b3IsIEVtYmVkZGVkVmlld1JlZiwgQ29tcG9uZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpYmVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTbGlkZXJDYXJvdXNlbFByZXZpZXdDb21wb25lbnQgfSBmcm9tICcuL3NsaWRlci1jYXJvdXNlbC1wcmV2aWV3L3NsaWRlci1jYXJvdXNlbC1wcmV2aWV3LmNvbXBvbmVudCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBIZWxwZXIge1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIHByaXZhdGUgYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcbiAgICApIHtcblxuICAgIH1cblx0XG5cdHB1YmxpYyBvcGVuUHJldmlldyhkYXRhOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge30pIHtcbiAgICAgICAgbGV0IG9uQ2xvc2VTdWJzY3JpYmU6IFN1YnNjcmliZXI8YW55Pjtcblx0XHRsZXQgb2JqZWN0OiB7XG4gICAgICAgICAgICBvbkNsb3NlOiBPYnNlcnZhYmxlPGFueT4sXG4gICAgICAgICAgICBpbnN0YW5jZTogU2xpZGVyQ2Fyb3VzZWxQcmV2aWV3Q29tcG9uZW50XG4gICAgICAgIH07XG5cbiAgICAgICAgb2JqZWN0ID0ge1xuICAgICAgICAgICAgb25DbG9zZTogbmV3IE9ic2VydmFibGUoKHN1YnNjcmliZSkgPT4gb25DbG9zZVN1YnNjcmliZSA9IHN1YnNjcmliZSksXG4gICAgICAgICAgICBpbnN0YW5jZTogbnVsbFxuICAgICAgICB9O1xuXG4gICAgICAgIGxldCBjb21wb25lblJlZiA9IHRoaXMuY3JlYXRlQ29tcG9uZW50KFNsaWRlckNhcm91c2VsUHJldmlld0NvbXBvbmVudCwgZGF0YSwgKGRhdGEpID0+IHtcbiAgICAgICAgICAgIG9uQ2xvc2VTdWJzY3JpYmUubmV4dChkYXRhKTtcbiAgICAgICAgfSk7XG4gICAgICAgIG9iamVjdC5pbnN0YW5jZSA9IChjb21wb25lblJlZiBhcyBDb21wb25lbnRSZWY8U2xpZGVyQ2Fyb3VzZWxQcmV2aWV3Q29tcG9uZW50PikuaW5zdGFuY2U7XG5cbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9XG4gICAgXG4gICAgcHVibGljIGNyZWF0ZUNvbXBvbmVudChjb21wb25lbnQ6IGFueSwgZGF0YSwgb25DbG9zZTogKGRhdGEpID0+IHZvaWQpIHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcbiAgICAgICAgICAgIC5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnQpXG4gICAgICAgICAgICAuY3JlYXRlKHRoaXMuaW5qZWN0b3IpO1xuXG4gICAgICAgIGlmICghZGF0YSkgZGF0YSA9IHt9O1xuXG4gICAgICAgIGRhdGEuY2xvc2UgPSAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hcHBSZWYuZGV0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgICAgICAgY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIGlmIChvbkNsb3NlKSBvbkNsb3NlKGRhdGEpO1xuICAgICAgICB9O1xuICAgICAgICBcbiAgICAgICAgT2JqZWN0LmFzc2lnbihjb21wb25lbnRSZWYuaW5zdGFuY2UsIHsgbW9kYWxSZWY6IGRhdGEgfSk7XG5cbiAgICAgICAgdGhpcy5hcHBSZWYuYXR0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgICBcbiAgICAgICAgY29uc3QgZG9tRWxlbSA9IChjb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgXG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9tRWxlbSk7XG5cbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudFJlZjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc21vb3RoU2Nyb2xsKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBzY3JvbGw6IG51bWJlciwgZHVyYXRpb246IG51bWJlciA9IDQwMCwgZGlyZWN0aW9uOiBzdHJpbmcgPSAndG9wJykge1xuXHRcdGxldCBzdGFydCA9IGRpcmVjdGlvbiA9PT0gJ3RvcCcgPyBlbGVtZW50LnNjcm9sbFRvcCA6IGVsZW1lbnQuc2Nyb2xsTGVmdDtcblxuXHRcdGlmIChzY3JvbGwgPCAwKSBzY3JvbGwgPSAwO1xuXG5cdFx0bGV0IGRpc3RhbmNlID0gKHNjcm9sbCAtIHN0YXJ0KSAtIDc3O1xuXG5cdFx0bGV0IHN0YXJ0VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuXG5cdFx0aWYgKCFkdXJhdGlvbikgZHVyYXRpb24gPSA0MDA7XG5cblx0XHRsZXQgZWFzZUluT3V0UXVhcnQgPSAodGltZSwgZnJvbSwgZGlzdGFuY2UsIGR1cmF0aW9uKSA9PiB7XG5cdFx0XHRpZiAoKHRpbWUgLz0gZHVyYXRpb24gLyAyKSA8IDEpXG5cdFx0XHRcdHJldHVybiBkaXN0YW5jZSAvIDIgKiB0aW1lICogdGltZSAqIHRpbWUgKiB0aW1lICsgZnJvbTtcblx0XHRcdHJldHVybiAtZGlzdGFuY2UgLyAyICogKCh0aW1lIC09IDIpICogdGltZSAqIHRpbWUgKiB0aW1lIC0gMikgKyBmcm9tO1xuXHRcdH07XG5cblx0XHRsZXQgdGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG5cdFx0XHRjb25zdCB0aW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLSBzdGFydFRpbWUsXG5cdFx0XHRuZXdTY3JvbGwgPSBlYXNlSW5PdXRRdWFydCh0aW1lLCBzdGFydCwgZGlzdGFuY2UsIGR1cmF0aW9uKTtcblxuXHRcdFx0aWYgKHRpbWUgPj0gZHVyYXRpb24pIHtcblx0XHRcdFx0Y2xlYXJJbnRlcnZhbCh0aW1lcik7XG5cdFx0XHRcdHRpbWVyID0gbnVsbDtcblx0XHRcdH1cblxuXHRcdFx0aWYgKGVsZW1lbnQuc2Nyb2xsVG8pIHtcblx0XHRcdFx0aWYgKGRpcmVjdGlvbiA9PT0gJ3RvcCcpXG5cdFx0XHRcdFx0ZWxlbWVudC5zY3JvbGxUbyhlbGVtZW50LnNjcm9sbExlZnQsIG5ld1Njcm9sbCk7XG5cdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRlbGVtZW50LnNjcm9sbFRvKG5ld1Njcm9sbCwgZWxlbWVudC5zY3JvbGxUb3ApO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdGlmIChkaXJlY3Rpb24gPT09ICd0b3AnKVxuXHRcdFx0XHRcdGVsZW1lbnQuc2Nyb2xsVG9wID0gbmV3U2Nyb2xsO1xuXHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0ZWxlbWVudC5zY3JvbGxMZWZ0ID0gbmV3U2Nyb2xsO1xuXHRcdFx0fVxuXHRcdH0sIDEwMDAgLyA2MCk7XG5cblx0XHRyZXR1cm4gdGltZXI7XG4gICAgfVxuICAgIFxuXHRwdWJsaWMgZWxlbWVudElzQ2hpbGQoZWxlbWVudCwgcGFyZW50RWxtZW50KTogYm9vbGVhbntcblx0XHR0cnkge1xuXHRcdFx0d2hpbGUgKGVsZW1lbnQgJiYgZWxlbWVudC50YWdOYW1lLnRvVXBwZXJDYXNlKCkgIT09ICdCT0RZJykge1xuXHRcdFx0XHRpZiAoZWxlbWVudCA9PT0gcGFyZW50RWxtZW50KSB7XG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxlbWVudCA9IGVsZW1lbnQucGFyZW50Tm9kZTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdFx0Y2F0Y2gge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0fVxuXG4gICAgcHVibGljIGlzTW9iaWxlRGV2aWNlKCkge1xuICAgICAgICByZXR1cm4gKHR5cGVvZiB3aW5kb3cub3JpZW50YXRpb24gIT09IFwidW5kZWZpbmVkXCIpIHx8IChuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ0lFTW9iaWxlJykgIT09IC0xKTtcbiAgICB9XG59Il19