@ngu/carousel
Version:
Angular Universal carousel
1 lines • 208 kB
Source Map (JSON)
{"version":3,"file":"ngu-carousel.mjs","sources":["../tmp-esm2022/lib/ngu-carousel/ngu-carousel.js","../tmp-esm2022/lib/symbols.js","../tmp-esm2022/lib/ngu-carousel.directive.js","../tmp-esm2022/lib/ngu-carousel/ngu-carousel-hammer-manager.js","../tmp-esm2022/lib/ngu-carousel/ngu-window-scroll-listener.js","../tmp-esm2022/lib/ngu-carousel/ngu-carousel.component.js","../tmp-esm2022/lib/ngu-item/ngu-item.component.js","../tmp-esm2022/lib/ngu-tile/ngu-tile.component.js","../tmp-esm2022/public-api.js","../tmp-esm2022/ngu-carousel.js"],"sourcesContent":["import { signal } from '@angular/core';\nexport class NguCarouselStore {\n constructor(touch = new Touch(), vertical = new Vertical(), interval, transform = new Transfrom(), button, visibleItems, deviceType, type = 'fixed', token = '', items = 0, load = 0, deviceWidth = 0, carouselWidth = 0, itemWidth = 0, slideItems = 0, itemWidthPer = 0, itemLength = 0, currentSlide = 0, easing = 'cubic-bezier(0, 0, 0.2, 1)', speed = 200, loop = false, dexVal = 0, touchTransform = 0, isEnd = false, isFirst = signal(true), isLast = signal(false), RTL = false, point = true, velocity = 1) {\n this.touch = touch;\n this.vertical = vertical;\n this.interval = interval;\n this.transform = transform;\n this.button = button;\n this.visibleItems = visibleItems;\n this.deviceType = deviceType;\n this.type = type;\n this.token = token;\n this.items = items;\n this.load = load;\n this.deviceWidth = deviceWidth;\n this.carouselWidth = carouselWidth;\n this.itemWidth = itemWidth;\n this.slideItems = slideItems;\n this.itemWidthPer = itemWidthPer;\n this.itemLength = itemLength;\n this.currentSlide = currentSlide;\n this.easing = easing;\n this.speed = speed;\n this.loop = loop;\n this.dexVal = dexVal;\n this.touchTransform = touchTransform;\n this.isEnd = isEnd;\n this.isFirst = isFirst;\n this.isLast = isLast;\n this.RTL = RTL;\n this.point = point;\n this.velocity = velocity;\n }\n}\nexport class ItemsControl {\n}\nexport class Vertical {\n}\nexport class NguButton {\n}\nexport class Touch {\n}\n// This is misspelled. Must be changed to `Transform`.\nexport class Transfrom {\n constructor(xs = 0, sm = 0, md = 0, lg = 0, all = 0) {\n this.xs = xs;\n this.sm = sm;\n this.md = md;\n this.lg = lg;\n this.all = all;\n this.xl = 0;\n }\n}\n/**\n * Default values\n * {sm: 768, md: 992, lg: 1200, xl: 1200}\n *\n * Bootstrap values:\n * {sm: 576, md: 768, lg: 992, xl: 1200}\n */\nexport class Breakpoints {\n constructor(sm = 768, md = 992, lg = 1200, xl = 1200) {\n this.sm = sm;\n this.md = md;\n this.lg = lg;\n this.xl = xl;\n }\n}\nexport class NguCarouselConfig {\n}\nexport class NguCarouselOutletContext {\n constructor(data) {\n this.$implicit = data;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd1LWNhcm91c2VsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3UvY2Fyb3VzZWwvc3JjL2xpYi9uZ3UtY2Fyb3VzZWwvbmd1LWNhcm91c2VsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkMsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixZQUNTLFFBQVEsSUFBSSxLQUFLLEVBQUUsRUFDbkIsV0FBVyxJQUFJLFFBQVEsRUFBRSxFQUN6QixRQUEyQixFQUMzQixZQUFZLElBQUksU0FBUyxFQUFFLEVBQzNCLE1BQWtCLEVBQ2xCLFlBQTJCLEVBQzNCLFVBQXVCLEVBQ3ZCLE9BQU8sT0FBTyxFQUNkLFFBQVEsRUFBRSxFQUNWLFFBQVEsQ0FBQyxFQUNULE9BQU8sQ0FBQyxFQUNSLGNBQWMsQ0FBQyxFQUNmLGdCQUFnQixDQUFDLEVBQ2pCLFlBQVksQ0FBQyxFQUNiLGFBQWEsQ0FBQyxFQUNkLGVBQWUsQ0FBQyxFQUNoQixhQUFhLENBQUMsRUFDZCxlQUFlLENBQUMsRUFDaEIsU0FBUyw0QkFBNEIsRUFDckMsUUFBUSxHQUFHLEVBQ1gsT0FBTyxLQUFLLEVBQ1osU0FBUyxDQUFDLEVBQ1YsaUJBQWlCLENBQUMsRUFDbEIsUUFBUSxLQUFLLEVBQ0osVUFBVSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQ3RCLFNBQVMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUMvQixNQUFNLEtBQUssRUFDWCxRQUFRLElBQUksRUFDWixXQUFXLENBQUM7UUE1QlosVUFBSyxHQUFMLEtBQUssQ0FBYztRQUNuQixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixhQUFRLEdBQVIsUUFBUSxDQUFtQjtRQUMzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixXQUFNLEdBQU4sTUFBTSxDQUFZO1FBQ2xCLGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBQzNCLGVBQVUsR0FBVixVQUFVLENBQWE7UUFDdkIsU0FBSSxHQUFKLElBQUksQ0FBVTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQUs7UUFDVixVQUFLLEdBQUwsS0FBSyxDQUFJO1FBQ1QsU0FBSSxHQUFKLElBQUksQ0FBSTtRQUNSLGdCQUFXLEdBQVgsV0FBVyxDQUFJO1FBQ2Ysa0JBQWEsR0FBYixhQUFhLENBQUk7UUFDakIsY0FBUyxHQUFULFNBQVMsQ0FBSTtRQUNiLGVBQVUsR0FBVixVQUFVLENBQUk7UUFDZCxpQkFBWSxHQUFaLFlBQVksQ0FBSTtRQUNoQixlQUFVLEdBQVYsVUFBVSxDQUFJO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQUk7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBK0I7UUFDckMsVUFBSyxHQUFMLEtBQUssQ0FBTTtRQUNYLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixXQUFNLEdBQU4sTUFBTSxDQUFJO1FBQ1YsbUJBQWMsR0FBZCxjQUFjLENBQUk7UUFDbEIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNKLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDL0IsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUNYLFVBQUssR0FBTCxLQUFLLENBQU87UUFDWixhQUFRLEdBQVIsUUFBUSxDQUFJO0lBQ2xCLENBQUM7Q0FDTDtBQUtELE1BQU0sT0FBTyxZQUFZO0NBR3hCO0FBRUQsTUFBTSxPQUFPLFFBQVE7Q0FJcEI7QUFFRCxNQUFNLE9BQU8sU0FBUztDQUdyQjtBQUVELE1BQU0sT0FBTyxLQUFLO0NBSWpCO0FBYUQsc0RBQXNEO0FBQ3RELE1BQU0sT0FBTyxTQUFTO0lBRXBCLFlBQ1MsS0FBSyxDQUFDLEVBQ04sS0FBSyxDQUFDLEVBQ04sS0FBSyxDQUFDLEVBQ04sS0FBSyxDQUFDLEVBQ04sTUFBTSxDQUFDO1FBSlAsT0FBRSxHQUFGLEVBQUUsQ0FBSTtRQUNOLE9BQUUsR0FBRixFQUFFLENBQUk7UUFDTixPQUFFLEdBQUYsRUFBRSxDQUFJO1FBQ04sT0FBRSxHQUFGLEVBQUUsQ0FBSTtRQUNOLFFBQUcsR0FBSCxHQUFHLENBQUk7UUFOVCxPQUFFLEdBQUksQ0FBQyxDQUFDO0lBT1osQ0FBQztDQUNMO0FBV0Q7Ozs7OztHQU1HO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFDdEIsWUFDUyxLQUFLLEdBQUcsRUFDUixLQUFLLEdBQUcsRUFDUixLQUFLLElBQUksRUFDVCxLQUFLLElBQUk7UUFIVCxPQUFFLEdBQUYsRUFBRSxDQUFNO1FBQ1IsT0FBRSxHQUFGLEVBQUUsQ0FBTTtRQUNSLE9BQUUsR0FBRixFQUFFLENBQU87UUFDVCxPQUFFLEdBQUYsRUFBRSxDQUFPO0lBQ2YsQ0FBQztDQUNMO0FBRUQsTUFBTSxPQUFPLGlCQUFpQjtDQWtCN0I7QUEyQkQsTUFBTSxPQUFPLHdCQUF3QjtJQWFuQyxZQUFZLElBQU87UUFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDeEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBOZ3VDYXJvdXNlbFN0b3JlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRvdWNoID0gbmV3IFRvdWNoKCksXG4gICAgcHVibGljIHZlcnRpY2FsID0gbmV3IFZlcnRpY2FsKCksXG4gICAgcHVibGljIGludGVydmFsPzogQ2Fyb3VzZWxJbnRlcnZhbCxcbiAgICBwdWJsaWMgdHJhbnNmb3JtID0gbmV3IFRyYW5zZnJvbSgpLFxuICAgIHB1YmxpYyBidXR0b24/OiBOZ3VCdXR0b24sXG4gICAgcHVibGljIHZpc2libGVJdGVtcz86IEl0ZW1zQ29udHJvbCxcbiAgICBwdWJsaWMgZGV2aWNlVHlwZT86IERldmljZVR5cGUsXG4gICAgcHVibGljIHR5cGUgPSAnZml4ZWQnLFxuICAgIHB1YmxpYyB0b2tlbiA9ICcnLFxuICAgIHB1YmxpYyBpdGVtcyA9IDAsXG4gICAgcHVibGljIGxvYWQgPSAwLFxuICAgIHB1YmxpYyBkZXZpY2VXaWR0aCA9IDAsXG4gICAgcHVibGljIGNhcm91c2VsV2lkdGggPSAwLFxuICAgIHB1YmxpYyBpdGVtV2lkdGggPSAwLFxuICAgIHB1YmxpYyBzbGlkZUl0ZW1zID0gMCxcbiAgICBwdWJsaWMgaXRlbVdpZHRoUGVyID0gMCxcbiAgICBwdWJsaWMgaXRlbUxlbmd0aCA9IDAsXG4gICAgcHVibGljIGN1cnJlbnRTbGlkZSA9IDAsXG4gICAgcHVibGljIGVhc2luZyA9ICdjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKScsXG4gICAgcHVibGljIHNwZWVkID0gMjAwLFxuICAgIHB1YmxpYyBsb29wID0gZmFsc2UsXG4gICAgcHVibGljIGRleFZhbCA9IDAsXG4gICAgcHVibGljIHRvdWNoVHJhbnNmb3JtID0gMCxcbiAgICBwdWJsaWMgaXNFbmQgPSBmYWxzZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgaXNGaXJzdCA9IHNpZ25hbCh0cnVlKSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgaXNMYXN0ID0gc2lnbmFsKGZhbHNlKSxcbiAgICBwdWJsaWMgUlRMID0gZmFsc2UsXG4gICAgcHVibGljIHBvaW50ID0gdHJ1ZSxcbiAgICBwdWJsaWMgdmVsb2NpdHkgPSAxXG4gICkge31cbn1cbmV4cG9ydCB0eXBlIERldmljZVR5cGUgPSAneHMnIHwgJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJyB8ICdhbGwnO1xuXG5leHBvcnQgdHlwZSBCdXR0b25WaXNpYmxlID0gJ2Rpc2FibGVkJyB8ICdoaWRlJztcblxuZXhwb3J0IGNsYXNzIEl0ZW1zQ29udHJvbCB7XG4gIHN0YXJ0OiBudW1iZXI7XG4gIGVuZDogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgVmVydGljYWwge1xuICBlbmFibGVkOiBib29sZWFuO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgLy8gbnVtSGVpZ2h0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgTmd1QnV0dG9uIHtcbiAgdmlzaWJpbGl0eT86IEJ1dHRvblZpc2libGU7XG4gIGVsYXN0aWM/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBUb3VjaCB7XG4gIGFjdGl2ZT86IGJvb2xlYW47XG4gIHN3aXBlOiBzdHJpbmc7XG4gIHZlbG9jaXR5OiBudW1iZXI7XG59XG5cbi8vIEludGVyZmFjZSBpcyBkZWNsYXJlZCB0byBwcmV2ZW50IHByb3BlcnR5LW1pbmlmaWNhdGlvblxuLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vdWl1bml2ZXJzYWwvbmd1LWNhcm91c2VsL2lzc3Vlcy8zMjJcbmRlY2xhcmUgaW50ZXJmYWNlIFRyYW5zZm9ybUludGVyZmFjZSB7XG4gIHhzOiBudW1iZXI7XG4gIHNtOiBudW1iZXI7XG4gIG1kOiBudW1iZXI7XG4gIGxnOiBudW1iZXI7XG4gIHhsPzogbnVtYmVyO1xuICBhbGw6IG51bWJlcjtcbn1cblxuLy8gVGhpcyBpcyBtaXNzcGVsbGVkLiBNdXN0IGJlIGNoYW5nZWQgdG8gYFRyYW5zZm9ybWAuXG5leHBvcnQgY2xhc3MgVHJhbnNmcm9tIGltcGxlbWVudHMgVHJhbnNmb3JtSW50ZXJmYWNlIHtcbiAgcHVibGljIHhsPyA9IDA7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB4cyA9IDAsXG4gICAgcHVibGljIHNtID0gMCxcbiAgICBwdWJsaWMgbWQgPSAwLFxuICAgIHB1YmxpYyBsZyA9IDAsXG4gICAgcHVibGljIGFsbCA9IDBcbiAgKSB7fVxufVxuXG4vLyBJbnRlcmZhY2UgaXMgZGVjbGFyZWQgdG8gcHJldmVudCBwcm9wZXJ0eS1taW5pZmljYXRpb25cbi8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL3VpdW5pdmVyc2FsL25ndS1jYXJvdXNlbC9pc3N1ZXMvMzIyXG5kZWNsYXJlIGludGVyZmFjZSBCcmVha3BvaW50c0ludGVyZmFjZSB7XG4gIHNtOiBudW1iZXI7XG4gIG1kOiBudW1iZXI7XG4gIGxnOiBudW1iZXI7XG4gIHhsOiBudW1iZXI7XG59XG5cbi8qKlxuICogRGVmYXVsdCB2YWx1ZXNcbiAqIHtzbTogNzY4LCBtZDogOTkyLCBsZzogMTIwMCwgeGw6IDEyMDB9XG4gKlxuICogQm9vdHN0cmFwIHZhbHVlczpcbiAqIHtzbTogNTc2LCBtZDogNzY4LCBsZzogOTkyLCB4bDogMTIwMH1cbiAqL1xuZXhwb3J0IGNsYXNzIEJyZWFrcG9pbnRzIGltcGxlbWVudHMgQnJlYWtwb2ludHNJbnRlcmZhY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgc20gPSA3NjgsXG4gICAgcHVibGljIG1kID0gOTkyLFxuICAgIHB1YmxpYyBsZyA9IDEyMDAsXG4gICAgcHVibGljIHhsID0gMTIwMFxuICApIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBOZ3VDYXJvdXNlbENvbmZpZyB7XG4gIGdyaWQ6IFRyYW5zZnJvbTtcbiAgZ3JpZEJyZWFrcG9pbnRzPzogQnJlYWtwb2ludHM7XG4gIHNsaWRlPzogbnVtYmVyO1xuICBzcGVlZD86IG51bWJlcjtcbiAgaW50ZXJ2YWw/OiBDYXJvdXNlbEludGVydmFsO1xuICBhbmltYXRpb24/OiBBbmltYXRlO1xuICBwb2ludD86IFBvaW50O1xuICB0eXBlPzogc3RyaW5nO1xuICBsb2FkPzogbnVtYmVyO1xuICBjdXN0b20/OiBDdXN0b207XG4gIGxvb3A/OiBib29sZWFuO1xuICB0b3VjaD86IGJvb2xlYW47XG4gIGVhc2luZz86IHN0cmluZztcbiAgUlRMPzogYm9vbGVhbjtcbiAgYnV0dG9uPzogTmd1QnV0dG9uO1xuICB2ZXJ0aWNhbD86IFZlcnRpY2FsO1xuICB2ZWxvY2l0eT86IG51bWJlcjtcbn1cblxuZXhwb3J0IHR5cGUgQ3VzdG9tID0gJ2Jhbm5lcic7XG5leHBvcnQgdHlwZSBBbmltYXRlID0gJ2xhenknO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBvaW50IHtcbiAgdmlzaWJsZTogYm9vbGVhbjtcbiAgaGlkZU9uU2luZ2xlU2xpZGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFuaW1hdGlvbiB7XG4gIHR5cGU/OiBBbmltYXRlO1xuICBhbmltYXRlU3R5bGVzPzogQW5pbWF0aW9uU3R5bGVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFuaW1hdGlvblN0eWxlcyB7XG4gIHN0eWxlPzogc3RyaW5nO1xuICBvcGVuPzogc3RyaW5nO1xuICBjbG9zZT86IHN0cmluZztcbiAgc3RhZ2dlcj86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYXJvdXNlbEludGVydmFsIHtcbiAgdGltaW5nOiBudW1iZXI7XG4gIGluaXRpYWxEZWxheT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIE5ndUNhcm91c2VsT3V0bGV0Q29udGV4dDxUPiB7XG4gIC8qKiBEYXRhIGZvciB0aGUgbm9kZS4gKi9cbiAgJGltcGxpY2l0OiBUO1xuXG4gIC8qKiBEZXB0aCBvZiB0aGUgbm9kZS4gKi9cbiAgbGV2ZWw6IG51bWJlcjtcblxuICAvKiogSW5kZXggbG9jYXRpb24gb2YgdGhlIG5vZGUuICovXG4gIGluZGV4PzogbnVtYmVyO1xuXG4gIC8qKiBMZW5ndGggb2YgdGhlIG51bWJlciBvZiB0b3RhbCBkYXRhTm9kZXMuICovXG4gIGNvdW50PzogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE6IFQpIHtcbiAgICB0aGlzLiRpbXBsaWNpdCA9IGRhdGE7XG4gIH1cbn1cbiJdfQ==","import { isPlatformBrowser } from '@angular/common';\nimport { InjectionToken, PLATFORM_ID, inject } from '@angular/core';\nexport const IS_BROWSER = new InjectionToken('IS_BROWSER', {\n providedIn: 'root',\n factory: () => isPlatformBrowser(inject(PLATFORM_ID))\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmd1L2Nhcm91c2VsL3NyYy9saWIvc3ltYm9scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEUsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLElBQUksY0FBYyxDQUFVLFlBQVksRUFBRTtJQUNsRSxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0NBQ3RELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdGlvblRva2VuLCBQTEFURk9STV9JRCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBJU19CUk9XU0VSID0gbmV3IEluamVjdGlvblRva2VuPGJvb2xlYW4+KCdJU19CUk9XU0VSJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IGlzUGxhdGZvcm1Ccm93c2VyKGluamVjdChQTEFURk9STV9JRCkpXG59KTtcbiJdfQ==","import { Directive, TemplateRef, ViewContainerRef, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class NguCarouselItemDirective {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: NguCarouselItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.3\", type: NguCarouselItemDirective, isStandalone: true, selector: \"[NguCarouselItem]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: NguCarouselItemDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[NguCarouselItem]'\n }]\n }] });\nexport class NguCarouselNextDirective {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: NguCarouselNextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.3\", type: NguCarouselNextDirective, isStandalone: true, selector: \"[NguCarouselNext]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: NguCarouselNextDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[NguCarouselNext]'\n }]\n }] });\nexport class NguCarouselPrevDirective {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: NguCarouselPrevDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.3\", type: NguCarouselPrevDirective, isStandalone: true, selector: \"[NguCarouselPrev]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: NguCarouselPrevDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[NguCarouselPrev]'\n }]\n }] });\nexport class NguCarouselPointDirective {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: NguCarouselPointDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.3\", type: NguCarouselPointDirective, isStandalone: true, selector: \"[NguCarouselPoint]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: NguCarouselPointDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[NguCarouselPoint]'\n }]\n }] });\nexport class NguCarouselDefDirective {\n constructor() {\n this.template = inject(TemplateRef);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: NguCarouselDefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.3\", type: NguCarouselDefDirective, isStandalone: true, selector: \"[nguCarouselDef]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: NguCarouselDefDirective, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[nguCarouselDef]'\n }]\n }] });\nexport class NguCarouselOutlet {\n constructor() {\n this.viewContainer = inject(ViewContainerRef);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: NguCarouselOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.3\", type: NguCarouselOutlet, isStandalone: true, selector: \"[nguCarouselOutlet]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: NguCarouselOutlet, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[nguCarouselOutlet]'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd1LWNhcm91c2VsLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmd1L2Nhcm91c2VsL3NyYy9saWIvbmd1LWNhcm91c2VsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBS2pGLE1BQU0sT0FBTyx3QkFBd0I7OEdBQXhCLHdCQUF3QjtrR0FBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQUhwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7aUJBQzlCOztBQU1ELE1BQU0sT0FBTyx3QkFBd0I7OEdBQXhCLHdCQUF3QjtrR0FBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQUhwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7aUJBQzlCOztBQU1ELE1BQU0sT0FBTyx3QkFBd0I7OEdBQXhCLHdCQUF3QjtrR0FBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQUhwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7aUJBQzlCOztBQU1ELE1BQU0sT0FBTyx5QkFBeUI7OEdBQXpCLHlCQUF5QjtrR0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQUhyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7aUJBQy9COztBQU9ELE1BQU0sT0FBTyx1QkFBdUI7SUFKcEM7UUFLRSxhQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBRWhDOzhHQUhZLHVCQUF1QjtrR0FBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQUpuQyxTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLGtCQUFrQjtpQkFDN0I7O0FBVUQsTUFBTSxPQUFPLGlCQUFpQjtJQUo5QjtRQUtFLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7S0FDMUM7OEdBRlksaUJBQWlCO2tHQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBSjdCLFNBQVM7bUJBQUM7b0JBQ1QsOERBQThEO29CQUM5RCxRQUFRLEVBQUUscUJBQXFCO2lCQUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbTmd1Q2Fyb3VzZWxJdGVtXSdcbn0pXG5leHBvcnQgY2xhc3MgTmd1Q2Fyb3VzZWxJdGVtRGlyZWN0aXZlIHt9XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tOZ3VDYXJvdXNlbE5leHRdJ1xufSlcbmV4cG9ydCBjbGFzcyBOZ3VDYXJvdXNlbE5leHREaXJlY3RpdmUge31cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW05ndUNhcm91c2VsUHJldl0nXG59KVxuZXhwb3J0IGNsYXNzIE5ndUNhcm91c2VsUHJldkRpcmVjdGl2ZSB7fVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbTmd1Q2Fyb3VzZWxQb2ludF0nXG59KVxuZXhwb3J0IGNsYXNzIE5ndUNhcm91c2VsUG9pbnREaXJlY3RpdmUge31cblxuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW25ndUNhcm91c2VsRGVmXSdcbn0pXG5leHBvcnQgY2xhc3MgTmd1Q2Fyb3VzZWxEZWZEaXJlY3RpdmU8VD4ge1xuICB0ZW1wbGF0ZSA9IGluamVjdChUZW1wbGF0ZVJlZik7XG4gIHdoZW4/OiAoaW5kZXg6IG51bWJlciwgbm9kZURhdGE6IFQpID0+IGJvb2xlYW47XG59XG5cbkBEaXJlY3RpdmUoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1tuZ3VDYXJvdXNlbE91dGxldF0nXG59KVxuZXhwb3J0IGNsYXNzIE5ndUNhcm91c2VsT3V0bGV0IHtcbiAgdmlld0NvbnRhaW5lciA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { Observable, Subject, defer, fromEvent, map, shareReplay, takeUntil } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class NguHammerLoader {\n constructor() {\n this._hammer$ = defer(() => import('hammerjs')).pipe(shareReplay({ bufferSize: 1, refCount: true }));\n }\n load() {\n return this._hammer$;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: NguHammerLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: NguHammerLoader, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: NguHammerLoader, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nexport class NguCarouselHammerManager {\n constructor(_ngZone, _nguHammerLoader) {\n this._ngZone = _ngZone;\n this._nguHammerLoader = _nguHammerLoader;\n this._destroy$ = new Subject();\n }\n ngOnDestroy() {\n this._destroy$.next();\n }\n createHammer(element) {\n return this._nguHammerLoader.load().pipe(map(() => \n // Note: The Hammer manager should be created outside of the Angular zone since it sets up\n // `pointermove` event listener which triggers change detection every time the pointer is moved.\n this._ngZone.runOutsideAngular(() => new Hammer(element))), \n // Note: the dynamic import is always a microtask which may run after the view is destroyed.\n // `takeUntil` is used to prevent setting Hammer up if the view had been destroyed before\n // the HammerJS is loaded.\n takeUntil(this._destroy$));\n }\n on(hammer, event) {\n return fromEvent(hammer, event).pipe(\n // Note: We have to re-enter the Angular zone because Hammer would trigger events outside of the\n // Angular zone (since we set it up with `runOutsideAngular`).\n enterNgZone(this._ngZone), takeUntil(this._destroy$));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: NguCarouselHammerManager, deps: [{ token: i0.NgZone }, { token: NguHammerLoader }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: NguCarouselHammerManager }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: NguCarouselHammerManager, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: i0.NgZone }, { type: NguHammerLoader }] });\nfunction enterNgZone(ngZone) {\n return (source) => new Observable(subscriber => source.subscribe({\n next: value => ngZone.run(() => subscriber.next(value)),\n error: error => ngZone.run(() => subscriber.error(error)),\n complete: () => ngZone.run(() => subscriber.complete())\n }));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd1LWNhcm91c2VsLWhhbW1lci1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3UvY2Fyb3VzZWwvc3JjL2xpYi9uZ3UtY2Fyb3VzZWwvbmd1LWNhcm91c2VsLWhhbW1lci1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRzFGLE1BQU0sT0FBTyxlQUFlO0lBRDVCO1FBRVUsYUFBUSxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3JELFdBQVcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQy9DLENBQUM7S0FLSDtJQUhDLElBQUk7UUFDRixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQzs4R0FQVSxlQUFlO2tIQUFmLGVBQWUsY0FERixNQUFNOzsyRkFDbkIsZUFBZTtrQkFEM0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7O0FBWWxDLE1BQU0sT0FBTyx3QkFBd0I7SUFHbkMsWUFDVSxPQUFlLEVBQ2YsZ0JBQWlDO1FBRGpDLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBSm5DLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBS3JDLENBQUM7SUFFSixXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQW9CO1FBQy9CLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FDdEMsR0FBRyxDQUFDLEdBQUcsRUFBRTtRQUNQLDBGQUEwRjtRQUMxRixzR0FBc0c7UUFDdEcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUMxRDtRQUNELDRGQUE0RjtRQUM1RiwrRkFBK0Y7UUFDL0YsZ0NBQWdDO1FBQ2hDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCLENBQUM7SUFDSixDQUFDO0lBRUQsRUFBRSxDQUFDLE1BQXFCLEVBQUUsS0FBYTtRQUNyQyxPQUFPLFNBQVMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSTtRQUNsQyxnR0FBZ0c7UUFDaEcsb0VBQW9FO1FBQ3BFLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQ3pCLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCLENBQUM7SUFDSixDQUFDOzhHQWpDVSx3QkFBd0I7a0hBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVTs7QUFxQ1gsU0FBUyxXQUFXLENBQUksTUFBYztJQUNwQyxPQUFPLENBQUMsTUFBcUIsRUFBRSxFQUFFLENBQy9CLElBQUksVUFBVSxDQUFJLFVBQVUsQ0FBQyxFQUFFLENBQzdCLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDZixJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pELFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztLQUN4RCxDQUFDLENBQ0gsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgZGVmZXIsIGZyb21FdmVudCwgbWFwLCBzaGFyZVJlcGxheSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTmd1SGFtbWVyTG9hZGVyIHtcbiAgcHJpdmF0ZSBfaGFtbWVyJCA9IGRlZmVyKCgpID0+IGltcG9ydCgnaGFtbWVyanMnKSkucGlwZShcbiAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICk7XG5cbiAgbG9hZCgpIHtcbiAgICByZXR1cm4gdGhpcy5faGFtbWVyJDtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmd1Q2Fyb3VzZWxIYW1tZXJNYW5hZ2VyIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX25nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgX25ndUhhbW1lckxvYWRlcjogTmd1SGFtbWVyTG9hZGVyXG4gICkge31cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gIH1cblxuICBjcmVhdGVIYW1tZXIoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBPYnNlcnZhYmxlPEhhbW1lck1hbmFnZXI+IHtcbiAgICByZXR1cm4gdGhpcy5fbmd1SGFtbWVyTG9hZGVyLmxvYWQoKS5waXBlKFxuICAgICAgbWFwKCgpID0+XG4gICAgICAgIC8vIE5vdGU6IFRoZSBIYW1tZXIgbWFuYWdlciBzaG91bGQgYmUgY3JlYXRlZCBvdXRzaWRlIG9mIHRoZSBBbmd1bGFyIHpvbmUgc2luY2UgaXQgc2V0cyB1cFxuICAgICAgICAvLyAgICAgICBgcG9pbnRlcm1vdmVgIGV2ZW50IGxpc3RlbmVyIHdoaWNoIHRyaWdnZXJzIGNoYW5nZSBkZXRlY3Rpb24gZXZlcnkgdGltZSB0aGUgcG9pbnRlciBpcyBtb3ZlZC5cbiAgICAgICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IG5ldyBIYW1tZXIoZWxlbWVudCkpXG4gICAgICApLFxuICAgICAgLy8gTm90ZTogdGhlIGR5bmFtaWMgaW1wb3J0IGlzIGFsd2F5cyBhIG1pY3JvdGFzayB3aGljaCBtYXkgcnVuIGFmdGVyIHRoZSB2aWV3IGlzIGRlc3Ryb3llZC5cbiAgICAgIC8vICAgICAgIGB0YWtlVW50aWxgIGlzIHVzZWQgdG8gcHJldmVudCBzZXR0aW5nIEhhbW1lciB1cCBpZiB0aGUgdmlldyBoYWQgYmVlbiBkZXN0cm95ZWQgYmVmb3JlXG4gICAgICAvLyAgICAgICB0aGUgSGFtbWVySlMgaXMgbG9hZGVkLlxuICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKVxuICAgICk7XG4gIH1cblxuICBvbihoYW1tZXI6IEhhbW1lck1hbmFnZXIsIGV2ZW50OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZnJvbUV2ZW50KGhhbW1lciwgZXZlbnQpLnBpcGUoXG4gICAgICAvLyBOb3RlOiBXZSBoYXZlIHRvIHJlLWVudGVyIHRoZSBBbmd1bGFyIHpvbmUgYmVjYXVzZSBIYW1tZXIgd291bGQgdHJpZ2dlciBldmVudHMgb3V0c2lkZSBvZiB0aGVcbiAgICAgIC8vICAgICAgIEFuZ3VsYXIgem9uZSAoc2luY2Ugd2Ugc2V0IGl0IHVwIHdpdGggYHJ1bk91dHNpZGVBbmd1bGFyYCkuXG4gICAgICBlbnRlck5nWm9uZSh0aGlzLl9uZ1pvbmUpLFxuICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKVxuICAgICk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZW50ZXJOZ1pvbmU8VD4obmdab25lOiBOZ1pvbmUpIHtcbiAgcmV0dXJuIChzb3VyY2U6IE9ic2VydmFibGU8VD4pID0+XG4gICAgbmV3IE9ic2VydmFibGU8VD4oc3Vic2NyaWJlciA9PlxuICAgICAgc291cmNlLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IHZhbHVlID0+IG5nWm9uZS5ydW4oKCkgPT4gc3Vic2NyaWJlci5uZXh0KHZhbHVlKSksXG4gICAgICAgIGVycm9yOiBlcnJvciA9PiBuZ1pvbmUucnVuKCgpID0+IHN1YnNjcmliZXIuZXJyb3IoZXJyb3IpKSxcbiAgICAgICAgY29tcGxldGU6ICgpID0+IG5nWm9uZS5ydW4oKCkgPT4gc3Vic2NyaWJlci5jb21wbGV0ZSgpKVxuICAgICAgfSlcbiAgICApO1xufVxuIl19","import { Injectable, NgZone, inject } from '@angular/core';\nimport { Subject, fromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { IS_BROWSER } from '../symbols';\nimport * as i0 from \"@angular/core\";\nexport class NguWindowScrollListener extends Subject {\n constructor() {\n super();\n this._destroy$ = new Subject();\n const isBrowser = inject(IS_BROWSER);\n const ngZone = inject(NgZone);\n // Note: this service is shared between multiple `NguCarousel` components and each instance\n // doesn't add new events listener for the `window`.\n if (isBrowser) {\n ngZone.runOutsideAngular(() => fromEvent(window, 'scroll').pipe(takeUntil(this._destroy$)).subscribe(this));\n }\n }\n ngOnDestroy() {\n this._destroy$.next();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: NguWindowScrollListener, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: NguWindowScrollListener, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: NguWindowScrollListener, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd1LXdpbmRvdy1zY3JvbGwtbGlzdGVuZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25ndS9jYXJvdXNlbC9zcmMvbGliL25ndS1jYXJvdXNlbC9uZ3Utd2luZG93LXNjcm9sbC1saXN0ZW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7O0FBR3hDLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxPQUFjO0lBR3pEO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFITyxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUsvQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLDJGQUEyRjtRQUMzRiwwREFBMEQ7UUFDMUQsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FDNUIsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FDNUUsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQzs4R0FuQlUsdUJBQXVCO2tIQUF2Qix1QkFBdUIsY0FEVixNQUFNOzsyRkFDbkIsdUJBQXVCO2tCQURuQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSwgT25EZXN0cm95LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBJU19CUk9XU0VSIH0gZnJvbSAnLi4vc3ltYm9scyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTmd1V2luZG93U2Nyb2xsTGlzdGVuZXIgZXh0ZW5kcyBTdWJqZWN0PEV2ZW50PiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgY29uc3QgaXNCcm93c2VyID0gaW5qZWN0KElTX0JST1dTRVIpO1xuICAgIGNvbnN0IG5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuICAgIC8vIE5vdGU6IHRoaXMgc2VydmljZSBpcyBzaGFyZWQgYmV0d2VlbiBtdWx0aXBsZSBgTmd1Q2Fyb3VzZWxgIGNvbXBvbmVudHMgYW5kIGVhY2ggaW5zdGFuY2VcbiAgICAvLyAgICAgICBkb2Vzbid0IGFkZCBuZXcgZXZlbnRzIGxpc3RlbmVyIGZvciB0aGUgYHdpbmRvd2AuXG4gICAgaWYgKGlzQnJvd3Nlcikge1xuICAgICAgbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+XG4gICAgICAgIGZyb21FdmVudCh3aW5kb3csICdzY3JvbGwnKS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpLnN1YnNjcmliZSh0aGlzKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gIH1cbn1cbiJdfQ==","import { ChangeDetectionStrategy, Component, ElementRef, IterableDiffers, NgZone, Renderer2, computed, contentChild, contentChildren, effect, inject, input, output, viewChild, signal, untracked, ChangeDetectorRef, afterNextRender } from '@angular/core';\nimport { EMPTY, Subject, fromEvent, interval, merge, timer } from 'rxjs';\nimport { debounceTime, filter, map, startWith, switchMap, takeUntil } from 'rxjs/operators';\nimport { IS_BROWSER } from '../symbols';\nimport { NguCarouselDefDirective, NguCarouselNextDirective, NguCarouselOutlet, NguCarouselPrevDirective } from '../ngu-carousel.directive';\nimport { Breakpoints, NguCarouselOutletContext, NguCarouselStore } from './ngu-carousel';\nimport { NguCarouselHammerManager } from './ngu-carousel-hammer-manager';\nimport { NguWindowScrollListener } from './ngu-window-scroll-listener';\nimport * as i0 from \"@angular/core\";\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || ngDevMode;\nexport class NguCarousel extends NguCarouselStore {\n constructor() {\n super();\n this._host = inject(ElementRef);\n this._renderer = inject(Renderer2);\n this._differs = inject(IterableDiffers);\n this._isBrowser = inject(IS_BROWSER);\n this._ngZone = inject(NgZone);\n this._nguWindowScrollListener = inject(NguWindowScrollListener);\n this._nguCarouselHammerManager = inject(NguCarouselHammerManager);\n this._cdr = inject(ChangeDetectorRef);\n /** Public property that may be accessed outside of the component. */\n this.activePoint = signal(0, ...(ngDevMode ? [{ debugName: \"activePoint\" }] : []));\n this.pointNumbers = signal([], ...(ngDevMode ? [{ debugName: \"pointNumbers\" }] : []));\n this.inputs = input.required(...(ngDevMode ? [{ debugName: \"inputs\" }] : []));\n this.carouselLoad = output();\n this.onMove = output();\n this._defDirectives = contentChildren(NguCarouselDefDirective, ...(ngDevMode ? [{ debugName: \"_defDirectives\" }] : []));\n this._nodeOutlet = viewChild.required(NguCarouselOutlet);\n this.nextButton = contentChild(NguCarouselNextDirective, ...(ngDevMode ? [{ debugName: \"nextButton\", read: ElementRef }] : [{ read: ElementRef }]));\n this.prevButton = contentChild(NguCarouselPrevDirective, ...(ngDevMode ? [{ debugName: \"prevButton\", read: ElementRef }] : [{ read: ElementRef }]));\n this.carouselMain1 = viewChild.required('ngucarousel', { read: ElementRef });\n this._nguItemsContainer = viewChild.required('nguItemsContainer', { read: ElementRef });\n this._touchContainer = viewChild.required('touchContainer', { read: ElementRef });\n this._arrayChanges = null;\n this.dataSource = input.required(...(ngDevMode ? [{ debugName: \"dataSource\", transform: (v) => v || [] }] : [{\n transform: (v) => v || []\n }]));\n this._intervalController$ = new Subject();\n this._hammer = null;\n this._withAnimation = true;\n this._destroy$ = new Subject();\n /**\n * Tracking function that will be used to check the differences in data changes. Used similarly\n * to `ngFor` `trackBy` function. Optimize Items operations by identifying a Items based on its data\n * relative to the function to know if a Items should be added/removed/moved.\n * Accepts a function that takes two parameters, `index` and `item`.\n */\n this.trackBy = input(...(ngDevMode ? [undefined, { debugName: \"trackBy\" }] : []));\n this._trackByFn = computed(() => {\n const fn = this.trackBy();\n if (NG_DEV_MODE && fn != null && typeof fn !== 'function' && console?.warn) {\n console.warn(`trackBy must be a function, but received ${JSON.stringify(fn)}.`);\n }\n return fn || ((index, item) => item);\n }, ...(ngDevMode ? [{ debugName: \"_trackByFn\" }] : []));\n this._dataDiffer = this._differs.find([]).create(this._trackByFn());\n afterNextRender({\n earlyRead: () => true,\n write: () => {\n this._inputValidation();\n this._carouselCssNode = this._createStyleElem();\n if (this._isBrowser) {\n this._carouselInterval();\n if (!this.vertical.enabled && this.inputs()?.touch) {\n this._setupHammer();\n }\n this._setupWindowResizeListener();\n this._onWindowScrolling();\n }\n }\n });\n effect(() => {\n const _ = this._defDirectives();\n const data = this.dataSource();\n untracked(() => this._checkChanges(data));\n });\n effect(cleanup => {\n const prevButton = this.prevButton();\n untracked(() => {\n if (prevButton) {\n const preSub = fromEvent(prevButton.nativeElement, 'click')\n .pipe(takeUntil(this._destroy$))\n .subscribe(() => this._carouselScrollOne(0));\n cleanup(() => preSub.unsubscribe());\n }\n });\n });\n effect(cleanup => {\n const nextButton = this.nextButton();\n untracked(() => {\n if (nextButton) {\n const nextSub = fromEvent(nextButton.nativeElement, 'click')\n .pipe(takeUntil(this._destroy$))\n .subscribe(() => this._carouselScrollOne(1));\n cleanup(() => nextSub.unsubscribe());\n }\n });\n });\n }\n _checkChanges(data) {\n // if (this.ngu_dirty) {\n // this.ngu_dirty = false;\n // const dataStream = this.dataSource;\n // if (!this._arrayChanges && !!dataStream) {\n // this._dataDiffer = this._differs\n // .find(dataStream)\n // .create((index: number, item: any) => this._trackByFn()(index, item))!;\n // }\n // }\n // if (this._dataDiffer) {\n // this._arrayChanges =\n // this._markedForCheck && this._arrayChanges\n // ? this._arrayChanges\n // : this._dataDiffer.diff(this.dataSource)!;\n // if (this._arrayChanges) {\n // this.renderNodeChanges(Array.from(this.dataSource()));\n // }\n // }\n this._arrayChanges = this._dataDiffer.diff(data);\n if (this._arrayChanges) {\n this.renderNodeChanges(Array.from(data));\n }\n }\n renderNodeChanges(data) {\n if (!this._arrayChanges)\n return;\n this.isLast.set(this._pointIndex === this.currentSlide);\n const viewContainer = this._nodeOutlet().viewContainer;\n // this._markedForCheck = false;\n this._arrayChanges.forEachOperation((item, adjustedPreviousIndex, currentIndex) => {\n const node = this._getNodeDef(data[currentIndex], currentIndex);\n if (node?.template) {\n if (item.previousIndex == null) {\n const context = new NguCarouselOutletContext(data[currentIndex]);\n context.index = currentIndex;\n viewContainer.createEmbeddedView(node.template, context, currentIndex);\n }\n else if (currentIndex == null) {\n viewContainer.remove(adjustedPreviousIndex);\n }\n else {\n const view = viewContainer.get(adjustedPreviousIndex);\n viewContainer.move(view, currentIndex);\n }\n }\n });\n this._updateItemIndexContext();\n if (this._host.nativeElement) {\n this._storeCarouselData();\n }\n }\n /**\n * Updates the index-related context for each row to reflect any changes in the index of the rows,\n * e.g. first/last/even/odd.\n */\n _updateItemIndexContext() {\n const viewContainer = this._nodeOutlet().viewContainer;\n for (let renderIndex = 0, count = viewContainer.length; renderIndex < count; renderIndex++) {\n const viewRef = viewContainer.get(renderIndex);\n const context = viewRef.context;\n context.count = count;\n context.first = renderIndex === 0;\n context.last = renderIndex === count - 1;\n context.even = renderIndex % 2 === 0;\n context.odd = !context.even;\n context.index = renderIndex;\n }\n }\n _getNodeDef(data, i) {\n if (this._defDirectives()?.length === 1) {\n return this._defDirectives()[0];\n }\n const nodeDef = (this._defDirectives() || []).find(def => !!def.when?.(i, data));\n return nodeDef;\n }\n _inputValidation() {\n const inputs = this.inputs();\n inputs.gridBreakpoints = inputs.gridBreakpoints ? inputs.gridBreakpoints : new Breakpoints();\n if (inputs.grid.xl === undefined) {\n inputs.grid.xl = inputs.grid.lg;\n }\n this.type = inputs.grid.all !== 0 ? 'fixed' : 'responsive';\n this.loop = inputs.loop || false;\n inputs.easing = inputs.easing || 'cubic-bezier(0, 0, 0.2, 1)';\n this.touch.active = inputs.touch || false;\n this.RTL = inputs.RTL ? true : false;\n this.interval = inputs.interval || undefined;\n this.velocity = typeof inputs.velocity === 'number' ? inputs.velocity : this.velocity;\n if (inputs.vertical && inputs.vertical.enabled) {\n this.vertical.enabled = inputs.vertical.enabled;\n this.vertical.height = inputs.vertical.height;\n }\n this._directionSymbol = this.RTL ? '' : '-';\n this.point =\n inputs.point && typeof inputs.point.visible !== 'undefined' ? inputs.point.visible : true;\n this._carouselSize();\n }\n ngOnDestroy() {\n this._hammer?.destroy();\n this._destroy$.next();\n }\n /** Get Touch input */\n _setupHammer() {\n // Note: doesn't need to unsubscribe because streams are piped with `takeUntil` already.\n this._nguCarouselHammerManager\n .createHammer(this._touchContainer().nativeElement)\n .subscribe(hammer => {\n this._hammer = hammer;\n hammer.get('pan').set({ direction: Hammer.DIRECTION_HORIZONTAL });\n this._nguCarouselHammerManager.on(hammer, 'panstart').subscribe(() => {\n this.carouselWidth = this._nguItemsContainer().nativeElement.offsetWidth;\n this.touchTransform = this.transform[this.deviceType];\n this.dexVal = 0;\n this._setStyle(this._nguItemsContainer().nativeElement, 'transition', '');\n });\n if (this.vertical.enabled) {\n this._nguCarouselHammerManager.on(hammer, 'panup').subscribe((ev) => {\n this._touchHandling('panleft', ev);\n });\n this._nguCarouselHammerManager.on(hammer, 'pandown').subscribe((ev) => {\n this._touchHandling('panright', ev);\n });\n }\n else {\n this._nguCarouselHammerManager.on(hammer, 'panleft').subscribe((ev) => {\n this._touchHandling('panleft', ev);\n });\n this._nguCarouselHammerManager.on(hammer, 'panright').subscribe((ev) => {\n this._touchHandling('panright', ev);\n });\n }\n this._nguCarouselHammerManager.on(hammer, 'panend pancancel').subscribe(({ velocity }) => {\n if (Math.abs(velocity) >= this.velocity) {\n this.touch.velocity = velocity;\n let direc = 0;\n if (!this.RTL) {\n direc = this.touch.swipe === 'panright' ? 0 : 1;\n }\n else {\n direc = this.touch.swipe === 'panright' ? 1 : 0;\n }\n this._carouselScrollOne(direc);\n }\n else {\n this.dexVal = 0;\n this._setStyle(this._nguItemsContainer().nativeElement, 'transition', 'transform 324ms cubic-bezier(0, 0, 0.2, 1)');\n this._setStyle(this._nguItemsContainer().nativeElement, 'transform', '');\n }\n });\n this._nguCarouselHammerManager.on(hammer, 'hammer.input').subscribe(({ srcEvent }) => {\n // allow nested touch events to no propagate, this may have other side affects but works for now.\n // TODO: It is probably better to check the source element of the event and only apply the handle to the correct carousel\n srcEvent.stopPropagation();\n });\n });\n }\n /** handle touch input */\n _touchHandling(e, ev) {\n // vertical touch events seem to cause to panstart event with an odd delta\n // and a center of {x:0,y:0} so this will ignore them\n if (ev.center.x === 0) {\n return;\n }\n ev = Math.abs(this.vertical.enabled ? ev.deltaY : ev.deltaX);\n let valt = ev - this.dexVal;\n valt =\n this.type === 'responsive'\n ? (Math.abs(ev - this.dexVal) /\n (this.vertical.enabled ? this.vertical.height : this.carouselWidth)) *\n 100\n : valt;\n this.dexVal = ev;\n this.touch.swipe = e;\n this._setTouchTransfrom(e, valt);\n this._setTransformFromTouch();\n }\n _setTouchTransfrom(e, valt) {\n const condition = this.RTL ? 'panright' : 'panleft';\n this.touchTransform = e === condition ? valt + this.touchTransform : this.touchTransform - valt;\n }\n _setTransformFromTouch() {\n if (this.touchTransform < 0) {\n this.touchTransform = 0;\n }\n const type = this.type === 'responsive' ? '%' : 'px';\n this._setStyle(this._nguItemsContainer().nativeElement, 'transform', this.vertical.enabled\n ? `translate3d(0, ${this._directionSymbol}${this.touchTransform}${type}, 0)`\n : `translate3d(${this._directionSymbol}${this.touchTransform}${type}, 0, 0)`);\n }\n /** this fn used to disable the interval when it is not on the viewport */\n _onWindowScrolling() {\n const { offsetTop, offsetHeight } = this._host.nativeElement;\n const { scrollY: windowScrollY, innerHeight: windowInnerHeight } = window;\n const isCarouselOnScreen = offsetTop <= windowScrollY + windowInnerHeight - offsetHeight / 4 &&\n offsetHeight + offsetHeight / 2 >= windowScrollY;\n if (isCarouselOnScreen) {\n this._intervalController$.next(1);\n }\n else {\n this._intervalController$.next(0);\n }\n }\n /** store data based on width of the screen for the carousel */\n _storeCarouselData() {\n const inputs = this.inputs();\n const breakpoints = this.inputs().gridBreakpoints;\n this.deviceWidth = this._isBrowser ? window.innerWidth : breakpoints?.xl;\n this.carouselWidth = this.carouselMain1().nativeElement.offsetWidth;\n if (this.type === 'responsive') {\n this.deviceType =\n this.deviceWidth >= breakpoints?.xl\n ? 'xl'\n : this.deviceWidth >= breakpoints?.lg\n ? 'lg'\n : this.deviceWidth >= breakpoints?.md\n ? 'md'\n : this.deviceWidth >= breakpoints?.sm\n ? 'sm'\n : 'xs';\n this.items = inputs.grid[this.deviceType];\n this.itemWidth = this.carouselWidth / this.items;\n }\n else {\n this.items = Math.trunc(this.carouselWidth / inputs.grid.all);\n this.itemWidth = inputs.grid.all;\n this.deviceType = 'all';\n }\n this.slideItems = +(inputs.slide < this.items ? inputs.slide : this.items);\n this.load = inputs.load >= this.slideItems ? inputs.load : this.slideItems;\n this.speed = inputs.speed && inputs.speed > -1 ? inputs.speed : 400;\n this._carouselPoint();\n }\n /** Used to reset the carousel */\n reset(withoutAnimation) {\n withoutAnimation && (this._withAnimation = false);\n this._carouselCssNode.textContent = '';\n this.moveTo(0);\n this._carouselPoint();\n }\n /** Init carousel point */\n _carouselPoint() {\n const Nos = Array.from(this.dataSource()).length - (this.items - this.slideItems);\n this._pointIndex = Math.ceil(Nos / this.slideItems);\n const pointers = [];\n if (this._pointIndex > 1 || !this.inputs().point?.hideOnSingleSlide) {\n for (let i = 0; i < this._pointIndex; i++) {\n pointers.push(i);\n }\n }\n this.pointNumbers.set(pointers);\n this._carouselPointActiver();\n if (this._pointIndex <= 1) {\n this._btnBoolean(1, 1);\n }\n else {\n if (this.currentSlide === 0 && !this.loop) {\n this._btnBool