UNPKG

ngx-hm-carousel

Version:

A light carousel for Angular, support mobile touch by hammerJs with SSR

46 lines 6.61 kB
import { Directive, TemplateRef, ViewContainerRef, inject, } from '@angular/core'; import { input } from '@angular/core'; import * as i0 from "@angular/core"; // TODO: ssr problem should not hide on ssr // TODO: show number change should recalculate is show and init show number export class NgxHmCarouselDynamicDirective { _view = inject(ViewContainerRef); _template = inject((TemplateRef)); index = input(undefined, { alias: 'ngxHmCarouselDynamic', }); length = input(0, { alias: 'ngxHmCarouselDynamicLength' }); show = input(1, { alias: 'ngxHmCarouselDynamicShow' }); currentI = input(0, { alias: 'ngxHmCarouselDynamicIndex', transform: (value) => { if (!this.completed) { const nextI = value + this.show(); const prevI = value - this.show(); if (this.index() === 0 || this.index() === this.length() - 1 || this.index() === nextI || this.index() === prevI || this.index() === value) { this._view.createEmbeddedView(this._template); this.completed = true; } } return value; }, }); completed = false; constructor() { this._view.clear(); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NgxHmCarouselDynamicDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.3", type: NgxHmCarouselDynamicDirective, isStandalone: true, selector: "[ngxHmCarouselDynamic]", inputs: { index: { classPropertyName: "index", publicName: "ngxHmCarouselDynamic", isSignal: true, isRequired: false, transformFunction: null }, length: { classPropertyName: "length", publicName: "ngxHmCarouselDynamicLength", isSignal: true, isRequired: false, transformFunction: null }, show: { classPropertyName: "show", publicName: "ngxHmCarouselDynamicShow", isSignal: true, isRequired: false, transformFunction: null }, currentI: { classPropertyName: "currentI", publicName: "ngxHmCarouselDynamicIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NgxHmCarouselDynamicDirective, decorators: [{ type: Directive, args: [{ selector: '[ngxHmCarouselDynamic]', standalone: true, }] }], ctorParameters: () => [] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWhtLWNhcm91c2VsLWR5bmFtaWMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL25neC1obS1jYXJvdXNlbC9zcmMvbGliL25neC1obS1jYXJvdXNlbC1keW5hbWljLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRXRDLDJDQUEyQztBQUMzQywyRUFBMkU7QUFLM0UsTUFBTSxPQUFPLDZCQUE2QjtJQUNoQyxLQUFLLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDakMsU0FBUyxHQUFHLE1BQU0sQ0FBbUIsQ0FBQSxXQUFnQixDQUFBLENBQUMsQ0FBQztJQUMvRCxLQUFLLEdBQUcsS0FBSyxDQUFxQixTQUFTLEVBQUU7UUFDM0MsS0FBSyxFQUFFLHNCQUFzQjtLQUM5QixDQUFDLENBQUM7SUFDSCxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSw0QkFBNEIsRUFBRSxDQUFDLENBQUM7SUFDM0QsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsMEJBQTBCLEVBQUUsQ0FBQyxDQUFDO0lBRXZELFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFO1FBQ2xCLEtBQUssRUFBRSwyQkFBMkI7UUFDbEMsU0FBUyxFQUFFLENBQUMsS0FBYSxFQUFFLEVBQUU7WUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDcEIsTUFBTSxLQUFLLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDbEMsTUFBTSxLQUFLLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDbEMsSUFDRSxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztvQkFDbEIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDO29CQUNsQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssS0FBSztvQkFDdEIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEtBQUs7b0JBQ3RCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxLQUFLLEVBQ3RCLENBQUM7b0JBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQzlDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUN4QixDQUFDO1lBQ0gsQ0FBQztZQUVELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztLQUNGLENBQUMsQ0FBQztJQUVLLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFFMUI7UUFDRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JCLENBQUM7dUdBbkNVLDZCQUE2QjsyRkFBN0IsNkJBQTZCOzsyRkFBN0IsNkJBQTZCO2tCQUp6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyBUT0RPOiBzc3IgcHJvYmxlbSBzaG91bGQgbm90IGhpZGUgb24gc3NyXG4vLyBUT0RPOiBzaG93IG51bWJlciBjaGFuZ2Ugc2hvdWxkIHJlY2FsY3VsYXRlIGlzIHNob3cgYW5kIGluaXQgc2hvdyBudW1iZXJcbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tuZ3hIbUNhcm91c2VsRHluYW1pY10nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hIbUNhcm91c2VsRHluYW1pY0RpcmVjdGl2ZSB7XG4gIHByaXZhdGUgX3ZpZXcgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gIHByaXZhdGUgX3RlbXBsYXRlID0gaW5qZWN0PFRlbXBsYXRlUmVmPGFueT4+KFRlbXBsYXRlUmVmPGFueT4pO1xuICBpbmRleCA9IGlucHV0PG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkLCB7XG4gICAgYWxpYXM6ICduZ3hIbUNhcm91c2VsRHluYW1pYycsXG4gIH0pO1xuICBsZW5ndGggPSBpbnB1dCgwLCB7IGFsaWFzOiAnbmd4SG1DYXJvdXNlbER5bmFtaWNMZW5ndGgnIH0pO1xuICBzaG93ID0gaW5wdXQoMSwgeyBhbGlhczogJ25neEhtQ2Fyb3VzZWxEeW5hbWljU2hvdycgfSk7XG5cbiAgY3VycmVudEkgPSBpbnB1dCgwLCB7XG4gICAgYWxpYXM6ICduZ3hIbUNhcm91c2VsRHluYW1pY0luZGV4JyxcbiAgICB0cmFuc2Zvcm06ICh2YWx1ZTogbnVtYmVyKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuY29tcGxldGVkKSB7XG4gICAgICAgIGNvbnN0IG5leHRJID0gdmFsdWUgKyB0aGlzLnNob3coKTtcbiAgICAgICAgY29uc3QgcHJldkkgPSB2YWx1ZSAtIHRoaXMuc2hvdygpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgdGhpcy5pbmRleCgpID09PSAwIHx8XG4gICAgICAgICAgdGhpcy5pbmRleCgpID09PSB0aGlzLmxlbmd0aCgpIC0gMSB8fFxuICAgICAgICAgIHRoaXMuaW5kZXgoKSA9PT0gbmV4dEkgfHxcbiAgICAgICAgICB0aGlzLmluZGV4KCkgPT09IHByZXZJIHx8XG4gICAgICAgICAgdGhpcy5pbmRleCgpID09PSB2YWx1ZVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLl92aWV3LmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl90ZW1wbGF0ZSk7XG4gICAgICAgICAgdGhpcy5jb21wbGV0ZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9LFxuICB9KTtcblxuICBwcml2YXRlIGNvbXBsZXRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuX3ZpZXcuY2xlYXIoKTtcbiAgfVxufVxuIl19