import { Component, AfterViewInit, Input, Output, ContentChild, EventEmitter, TemplateRef, ContentChildren } from '@angular/core'; import { RdComponent } from '../../base/rdComponent'; import { ScriptLoaderService } from "../../library/script-loader.service"; import { StyleLoaderService } from "../../library/style-loader.service"; declare const Swiper; @Component({ selector: 'rd-slider-item', template: ` ` }) export class SliderItem extends RdComponent { @Output("rd-click") clickEvent: EventEmitter = new EventEmitter(); @ContentChild(TemplateRef) template; } @Component({ selector: 'rd-slider', template: `
`, styles: [` .swiper-container { width: 100%; height: 75px; margin:auto; } .swiper-slide { text-align: center; font-size: 18px; background: #fff; display: flex; -webkit-box-pack: center; justify-content: center; -webkit-box-align: center; align-items: center; border-radius:10px; } .swiper-slide:hover { box-shadow: 0px 5px #EBEDC3 inset; } `] }) export class Slider extends RdComponent implements AfterViewInit { constructor(style: StyleLoaderService, script: ScriptLoaderService) { super(); style.load(['./assets/css/swiper.min.css']); script.load(["./assets/js/swiper.min.js"]); } @Input("rd-per-view") perViewCount: number = 5; @ContentChildren(SliderItem) items; ngAfterViewInit() { new Swiper('.swiper-container', { slidesPerView: this.perViewCount, spaceBetween: 10, loop: true, freeMode: true, mousewheel: true, grabCursor: true, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', } }); } }