UNPKG

@3kles/kles-ng-carousel

Version:

@3kles/kles-ng-carousel is a angular library to create carousel.

1 lines 13.3 kB
{"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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"}