{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/advanced/carousel/src/carousel.props.ts","../../../../../projects/components/widgets/advanced/carousel/src/carousel.animator.ts","../../../../../projects/components/widgets/advanced/carousel/src/carousel.directive.ts","../../../../../projects/components/widgets/advanced/carousel/src/carousel-template/carousel-template.props.ts","../../../../../projects/components/widgets/advanced/carousel/src/carousel-template/carousel-template.directive.ts","../../../../../projects/components/widgets/advanced/carousel/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n    register(\n        'wm-carousel',\n        new Map(\n            [\n                ['animation', {value: 'auto', ... PROP_STRING}],\n                ['animationinterval', {value: 3, ...  PROP_NUMBER}],\n                ['controls', {value: 'both', ... PROP_STRING}],\n                ['dataset', PROP_ANY],\n                ['name', PROP_STRING],\n                ['nodatamessage', {value: 'No Data Found', ... PROP_STRING}],\n                ['show', PROP_BOOLEAN]\n            ]\n        )\n    );\n};\n","import {NgZone} from '@angular/core';\n\nimport {SwipeAnimation} from '@swipey';\n\nimport {CarouselDirective} from './carousel.directive';\nimport {findIndex} from \"lodash-es\";\n\ndeclare const $;\n\nexport class CarouselAnimator extends SwipeAnimation {\n\n    private _$el;\n    private _activeIndex = 0;\n    private _animationPaused = false;\n    private _indicators;\n    private _items;\n    private _intervalId;\n    private _pauseCaroselTill = 0;\n    private _swiping;\n    private _width;\n    private _oldIndex = 0;\n\n    public constructor(private carousel: CarouselDirective, private interval: number, private ngZone: NgZone) {\n        super();\n        const self = this;\n        this._$el = $(this.carousel.getNativeElement()).find('>.carousel');\n        this.init(this._$el.find('>.carousel-inner'));\n        this._items = this._$el.find('>.carousel-inner >.carousel-item');\n        this._indicators = this._$el.find('>.carousel-indicators');\n        this._indicators.find('li').each(function (i) {\n            $(this).on('click', () => {\n                self._activeIndex = i;\n                self.setActiveItem();\n                // WMS-17583: Triggering onChange event\n                self.carousel.onChangeCB(self._activeIndex, self._oldIndex);\n                self._oldIndex = self._activeIndex;\n            });\n        });\n        this._$el.find('>.left.carousel-control').on('click', () => {\n            // WMS-22278, If a swipe is already in process do not process other events\n            if (this._swiping) {\n                return;\n            }\n            this._pauseCaroselTill = Date.now() + this.interval;\n            this.goToUpper();\n        });\n        this._$el.find('>.right.carousel-control').on('click', () => {\n            // WMS-22278, If a swipe is already in process do not process other events\n            if (this._swiping) {\n                return;\n            }\n            this._pauseCaroselTill = Date.now() + this.interval;\n            this.goToLower();\n        });\n        this.setActiveItem();\n        if (this.interval) {\n            this.start();\n        }\n        $('carousel slide').removeAttr('aria-hidden');\n    }\n\n    public bounds() {\n        this._width = this._items.width();\n        this._swiping = true;\n        return {\n            'lower': -this._width,\n            'center': 0,\n            'upper': this._width\n        };\n    }\n\n    public context() {\n        return {\n            'w': this._width\n        };\n    }\n\n\n    public animation() {\n        return [{\n            'target': this.getTarget.bind(this),\n            'css': {\n                'transform': 'translate3d(${{ (($D + $d) / w) * 100 + \\'%\\'}}, 0, 0)',\n                '-webkit-transform': 'translate3d(${{ (($D + $d) / w) * 100 + \\'%\\'}}, 0, 0)'\n            }\n        }];\n    }\n\n    public onUpper() {\n        this.resetTransition();\n        this._activeIndex -= 1;\n        this.setActiveItem();\n        this._swiping = false;\n    }\n\n    public onLower() {\n        this.resetTransition();\n        this._activeIndex += 1;\n        this.setActiveItem();\n        this._swiping = false;\n    }\n\n    public onAnimation() {\n        const newIndex = (this._items.length + this._activeIndex) % this._items.length;\n        this.carousel.onChangeCB(newIndex, this._oldIndex);\n        this._oldIndex = newIndex;\n        const activeElementIndex = findIndex(this._items, this._$el.find('>.carousel-inner >.carousel-item.active')[0]);\n        this._$el.find('>.left.carousel-control').attr('aria-label', (activeElementIndex === 0 ? this._items.length : activeElementIndex) + ' of ' + this._items.length);\n        this._$el.find('>.right.carousel-control').attr('aria-label', (activeElementIndex === this._items.length - 1 ? 1 : activeElementIndex + 2) + ' of ' + this._items.length);\n    }\n\n    public start() {\n        this.ngZone.runOutsideAngular(() => {\n            this._intervalId = setInterval(() => {\n                if (!this._swiping && this._pauseCaroselTill < Date.now()) {\n                    this.goToLower(600);\n                }\n            }, this.interval);\n        });\n    }\n\n    public pause() {\n        this._animationPaused = true;\n        if (!this._intervalId) {\n            this.start();\n        }\n    }\n\n    public resume() {\n        this._animationPaused = false;\n    }\n\n    public stop() {\n        if (this._intervalId) {\n            clearInterval(this._intervalId);\n            this._intervalId = 0;\n        }\n    }\n\n    public threshold() {\n        return 5;\n    }\n\n    // Returns multiple elements as single jQuery element.\n    private getTarget() {\n        const noOfItems = this._items.length,\n            activeItem = this._items.eq((noOfItems + this._activeIndex) % noOfItems),\n            leftItem = this._items.eq((noOfItems + this._activeIndex - 1) % noOfItems),\n            rightItem = this._items.eq((noOfItems + this._activeIndex + 1) % noOfItems);\n        return activeItem.add(rightItem).add(leftItem);\n    }\n\n    private resetTransition() {\n        this.getTarget().css({\n            '-webkit-transition': 'none',\n            '-webkit-transform': '',\n            'transition': 'none',\n            'transform': ''\n        });\n    }\n\n    // Sets active item, leftItem, rightItem by removing / adding respective classes.\n    private setActiveItem() {\n        const items = this._items,\n            left = this._activeIndex - 1,\n            right = this._activeIndex + 1;\n        // if there is only one carousel-item then there won't be any right or left-item.\n        if (items.length === 1) {\n            items.eq(0).removeClass('left-item right-item');\n            return;\n        }\n\n        this._indicators.find('>.active').removeClass('active');\n        this._indicators.find('> li').eq((items.length + this._activeIndex) % items.length).addClass('active');\n\n\n        items.filter('.active').removeClass('active');\n        items.addClass('left-item');\n        items.eq((items.length + left) % items.length).addClass('left-item').removeClass('right-item');\n        items.eq((items.length + this._activeIndex) % items.length).removeClass('left-item right-item').addClass('active');\n        items.eq((items.length + right) % items.length).addClass('right-item').removeClass('left-item');\n    }\n}\n","import {\n    AfterContentInit,\n    ContentChildren,\n    Directive, Inject,\n    Injector,\n    NgZone,\n    OnDestroy,\n    OnInit,\n    Optional,\n    QueryList\n} from '@angular/core';\n\nimport { CarouselComponent, SlideComponent } from 'ngx-bootstrap/carousel';\n\nimport { createArrayFrom, IWidgetConfig, StylableComponent, styler } from '@wm/components/base';\n\nimport { registerProps } from './carousel.props';\nimport { CarouselAnimator } from './carousel.animator';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n    widgetType: 'wm-carousel'\n};\n\nconst navigationClassMap = {\n    indicators: 'hide-navs',\n    navs: 'hide-indicators',\n    none: 'hide-both'\n};\n\n@Directive({\n  standalone: true,\n    selector: '[wmCarousel]',\n    exportAs: 'wmCarousel'\n})\nexport class CarouselDirective extends StylableComponent implements AfterContentInit, OnDestroy, OnInit {\n    static initializeProps = registerProps();\n\n    private animator;\n    private navigationClass;\n    private fieldDefs;\n    private interval;\n    private slidesChangesSubscription;\n\n    public animationinterval;\n    public animation;\n    public controls;\n    public currentslide;\n    public previousslide;\n\n    @ContentChildren(SlideComponent) slides: QueryList<SlideComponent>;\n\n    constructor(public component: CarouselComponent, inj: Injector, private ngZone: NgZone, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n        super(inj, WIDGET_CONFIG, explicitContext);\n        styler(this.nativeElement, this);\n    }\n\n    private onDataChange(newVal) {\n        this.fieldDefs = createArrayFrom(newVal);\n    }\n\n    private stopAnimation() {\n        if (this.animator) {\n            this.animator.stop();\n        }\n    }\n\n    private startAnimation() {\n        if (this.animator) {\n            this.animator.interval = this.animationinterval * 1000;\n            this.animator.start();\n        }\n    }\n\n    private onSlidesRender(slides) {\n        // if dynamic carousel, initialize the 'currentslide' property as the first object\n        if (this.fieldDefs && this.fieldDefs.length) {\n            this.currentslide = this.fieldDefs[0];\n        }\n        if (slides.length) {\n            setTimeout(() => {\n                this.animator = new CarouselAnimator(this, this.interval, this.ngZone);\n            }, 50);\n        }\n    }\n\n    private setupHandlers() {\n        // MEMORY LEAK FIX: Store subscription reference for cleanup\n        this.slidesChangesSubscription = this.slides.changes.subscribe( slides => {\n            this.triggerAnimation(slides);\n        });\n        this.slides.setDirty();\n    }\n\n    public onChangeCB(newIndex, oldIndex) {\n        // assign current and previous slides on widget. In case of static carousel, fieldDefs will be undefined, hence the check\n        this.currentslide = this.fieldDefs && this.fieldDefs[newIndex];\n        this.previousslide = this.fieldDefs && this.fieldDefs[oldIndex];\n        this.invokeEventCallback('change', {newIndex: newIndex, oldIndex: oldIndex});\n    }\n\n    ngAfterContentInit() {\n        this.triggerAnimation(this.slides);\n        this.setupHandlers();\n    }\n\n    ngOnDestroy() {\n        this.stopAnimation();\n\n        // MEMORY LEAK FIX: Unsubscribe from slides changes\n        if (this.slidesChangesSubscription) {\n            this.slidesChangesSubscription.unsubscribe();\n            this.slidesChangesSubscription = null;\n        }\n\n        // MEMORY LEAK FIX: Clear QueryList reference\n        if (this.slides) {\n            this.slides = null;\n        }\n\n        // MEMORY LEAK FIX: Clear animator reference\n        this.animator = null;\n\n        // MEMORY LEAK FIX: Clear field definitions\n        this.fieldDefs = null;\n\n        super.ngOnDestroy();\n    }\n\n    // Calculating animation interval if animation is enabled\n    setanimationinterval() {\n        this.interval = this.animation === 'auto' ? this.animationinterval * 1000 : 0 ;\n    }\n\n    triggerAnimation(slides) {\n        this.stopAnimation();\n        this.onSlidesRender(slides);\n    }\n\n    ngOnInit() {\n        super.ngOnInit();\n         this.setanimationinterval();\n        // TODO transition is pending\n\n    }\n\n    // on property change handler\n    onPropertyChange(key: string, nv: any, ov?: any) {\n        if (key === 'dataset') {\n            this.onDataChange(nv);\n        } else if (key === 'controls') {\n            // For showing controls\n            this.navigationClass = navigationClassMap[this.controls];\n        }  else if (key === 'animation' || key === 'animationinterval') {\n            if (key === 'animationinterval') {\n                this.stopAnimation();\n                this.setanimationinterval();\n            }\n            this.animation === 'none' ? this.stopAnimation() :  this.startAnimation();\n        } else {\n            super.onPropertyChange(key, nv, ov);\n        }\n    }\n}\n","import { PROP_BOOLEAN, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n    register(\n        'wm-carousel-template',\n        new Map(\n            [\n                ['show', PROP_BOOLEAN]\n            ]\n        )\n    );\n};\n","import {Directive, Inject, Injector, Optional} from '@angular/core';\n\nimport {IWidgetConfig, StylableComponent, styler} from '@wm/components/base';\nimport {registerProps} from './carousel-template.props';\n\nconst DEFAULT_CLS = 'app-carousel-item';\nconst WIDGET_CONFIG: IWidgetConfig = {\n    widgetType: 'wm-carousel-template',\n    hostClass: DEFAULT_CLS\n};\n\n@Directive({\n  standalone: true,\n    selector: '[wmCarouselTemplate]',\n    exportAs: 'carouselTemplateRef',\n})\nexport class CarouselTemplateDirective extends StylableComponent {\n    static initializeProps = registerProps();\n\n    constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n        super(inj, WIDGET_CONFIG, explicitContext);\n        styler(this.nativeElement, this);\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","WIDGET_CONFIG"],"mappings":"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"}