{"version":3,"file":"3kles-kles-ng-carousel.mjs","sources":["../../../projects/kles-ng-carousel/src/lib/carousel.animations.ts","../../../projects/kles-ng-carousel/src/lib/carousel.position.ts","../../../projects/kles-ng-carousel/src/lib/carousel.component.ts","../../../projects/kles-ng-carousel/src/lib/carousel.component.html","../../../projects/kles-ng-carousel/src/lib/carousel.module.ts","../../../projects/kles-ng-carousel/src/3kles-kles-ng-carousel.ts"],"sourcesContent":["import { style, animate, animation, keyframes } from '@angular/animations';\n\n// =========================\n// Enum for referencing animations\n// =========================\nexport enum AnimationType {\n  Scale = 'scale',\n  Fade = 'fade',\n  Flip = 'flip',\n  JackInTheBox = 'jackInTheBox'\n}\n\n// =========================\n// Scale\n// =========================\nexport const scaleIn = animation([\n  style({ opacity: 0, transform: 'scale(0.5)' }), // start state\n  animate(\n    '{{time}} cubic-bezier(0.785, 0.135, 0.15, 0.86)',\n    style({ opacity: 1, transform: 'scale(1)' })\n  )\n]);\n\nexport const scaleOut = animation([\n  animate(\n    '{{time}} cubic-bezier(0.785, 0.135, 0.15, 0.86)',\n    style({ opacity: 0, transform: 'scale(0.5)' })\n  )\n]);\n\n// =========================\n// Fade\n// =========================\nexport const fadeIn = animation([\n  style({ opacity: 0 }), // start state\n  animate(\n    '{{time}} cubic-bezier(0.785, 0.135, 0.15, 0.86)',\n    style({ opacity: 1 })\n  )\n]);\n\nexport const fadeOut = animation([\n  animate(\n    '{{time}} cubic-bezier(0.785, 0.135, 0.15, 0.86)',\n    style({ opacity: 0 })\n  )\n]);\n\n// =========================\n// Flip\n// =========================\nexport const flipIn = animation([\n  animate(\n    '{{time}} cubic-bezier(0.785, 0.135, 0.15, 0.86)',\n    keyframes([\n      style({\n        opacity: 1,\n        transform: 'perspective(400px) rotate3d(1, 0, 0, 90deg)',\n        offset: 0\n      }), // start state\n      style({ transform: 'perspective(400px)', offset: 1 })\n    ])\n  )\n]);\n\nexport const flipOut = animation([\n  // just hide it\n]);\n\n// =========================\n// Jack in the box\n// =========================\nexport const jackIn = animation([\n  animate(\n    '{{time}} ease-in',\n    keyframes([\n      style({\n        animationFillMode: 'forwards',\n        transform: 'scale(0.1) rotate(30deg)',\n        transformOrigin: 'center bottom',\n        offset: 0\n      }),\n      style({\n        transform: 'rotate(-10deg)',\n        offset: 0.5\n      }),\n      style({\n        transform: 'rotate(3deg)',\n        offset: 0.7\n      }),\n      style({\n        transform: 'perspective(400px)',\n        offset: 1\n      })\n    ])\n  )\n]);\n\nexport const jackOut = animation([\n  // just hide it\n]);\n","export enum IndicatorsPosition {\n    Below = 'below',\n    On = 'on',\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { KlesSlide } from './carousel.interface';\nimport { trigger, transition, useAnimation } from '@angular/animations';\n\nimport {\n  AnimationType,\n  scaleIn,\n  scaleOut,\n  fadeIn,\n  fadeOut,\n  flipIn,\n  flipOut,\n  jackIn,\n  jackOut\n} from './carousel.animations';\nimport { IndicatorsPosition } from './carousel.position';\n\n@Component({\n  selector: 'kles-carousel',\n  templateUrl: './carousel.component.html',\n  styleUrls: ['./carousel.component.scss'],\n  animations: [\n    trigger('slideAnimation', [\n      /* scale */\n      transition('void => scale', [\n        useAnimation(scaleIn, { params: { time: '500ms' } })\n      ]),\n      transition('scale => void', [\n        useAnimation(scaleOut, { params: { time: '500ms' } })\n      ]),\n\n      /* fade */\n      transition('void => fade', [\n        useAnimation(fadeIn, { params: { time: '500ms' } })\n      ]),\n      transition('fade => void', [\n        useAnimation(fadeOut, { params: { time: '500ms' } })\n      ]),\n\n      /* flip */\n      transition('void => flip', [\n        useAnimation(flipIn, { params: { time: '500ms' } })\n      ]),\n      transition('flip => void', [\n        useAnimation(flipOut, { params: { time: '500ms' } })\n      ]),\n\n      /* JackInTheBox */\n      transition('void => jackInTheBox', [\n        useAnimation(jackIn, { params: { time: '700ms' } })\n      ]),\n      transition('jackInTheBox => void', [\n        useAnimation(jackOut, { params: { time: '700ms' } })\n      ])\n    ])\n  ]\n})\nexport class KlesCarouselComponent implements OnInit {\n  @Input() slides: KlesSlide[];\n  @Input() animationType = AnimationType.Fade;\n  @Input() indicatorsPosition = IndicatorsPosition.On;\n\n  indicatorsPositionEnum = IndicatorsPosition;\n\n  currentSlide = 0;\n\n  constructor() { }\n\n  onPreviousClick() {\n    const previous = this.currentSlide - 1;\n    this.currentSlide = previous < 0 ? this.slides.length - 1 : previous;\n  }\n\n  onNextClick() {\n    const next = this.currentSlide + 1;\n    this.currentSlide = next === this.slides.length ? 0 : next;\n  }\n\n  onClickIndicator(index: number) {\n    console.log('ici', index)\n    const next = index;\n    this.currentSlide = next === this.slides.length ? 0 : next;\n  }\n\n  ngOnInit() {\n\n  }\n}\n","<!-- carousel -->\n<div class=\"carousel\" [ngClass]=\"indicatorsPosition === indicatorsPositionEnum.Below ? 'carousel-indicators' : ''\">\n  @for (slide of slides; track slide.src) {\n    @if ($index === currentSlide) {\n      <img [src]=\"slide.src\" class=\"slide\" [@slideAnimation]=\"animationType\"/>\n    }\n  }\n\n  <!-- controls -->\n  <button class=\"control prev\" (click)=\"onPreviousClick()\">\n    <span class=\"arrow left\"></span>\n  </button>\n  <button class=\"control next\" (click)=\"onNextClick()\">\n    <span class=\"arrow right\"></span>\n  </button>\n\n  @if (indicatorsPosition === indicatorsPositionEnum.On) {\n    <ul class=\"indicators inside\">\n      @for (slide of slides; track slide.src) {\n        <li [ngClass]=\"{'active': currentSlide === $index }\" (click)=\"onClickIndicator($index)\"></li>\n      }\n    </ul>\n  }\n</div>\n\n@if (indicatorsPosition === indicatorsPositionEnum.Below) {\n  <ul class=\"indicators\">\n    @for (slide of slides; track slide.src) {\n      <li [ngClass]=\"{'active': currentSlide === $index }\" (click)=\"onClickIndicator($index)\"></li>\n    }\n  </ul>\n}","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { KlesCarouselComponent } from './carousel.component';\n\nconst components = [KlesCarouselComponent];\n\n\n@NgModule({\n    declarations: [\n        components\n    ],\n    imports: [CommonModule, FormsModule],\n    exports: [\n        components,\n    ]\n})\nexport class KlesCarouselModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}