All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.karasiq.bootstrap4.carousel.JSCarousels.scala Maven / Gradle / Ivy

package com.karasiq.bootstrap4.carousel

import scala.language.postfixOps
import scala.scalajs.js

import rx.Rx

import com.karasiq.bootstrap.components.BootstrapComponents
import com.karasiq.bootstrap.context.JSRenderingContext
import com.karasiq.bootstrap.jquery.BootstrapJQueryContext
import com.karasiq.bootstrap4.icons.Icons
import com.karasiq.bootstrap4.utils.Utils

trait JSCarousels extends UniversalCarousels { self: JSRenderingContext with Carousels with Utils with Icons with BootstrapComponents with BootstrapJQueryContext ⇒
  import scalaTags.all._

  type Carousel = JSCarousel
  object Carousel extends CarouselFactory {
    def apply(data: Rx[Seq[Modifier]], id: String = Bootstrap.newId): JSCarousel = {
      new JSCarousel(id, data)
    }

    def slide(image: String, content: Modifier*): Modifier = {
      UniversalCarousel.slide(image, content)
    }
  }

  class JSCarousel(carouselId: String, content: Rx[Seq[Modifier]]) extends UniversalCarousel(carouselId, content) {
    def create(interval: Int = 5000, pause: String = "hover",
               wrap: Boolean = true, keyboard: Boolean = true,
               modifiers: Modifier = Bootstrap.noModifier): Element = {
      val element = carousel(modifiers).render
      val options = js.Object().asInstanceOf[JSCarouselOptions]
      options.interval = interval
      options.pause = pause
      options.wrap = wrap
      options.keyboard = keyboard
      jQuery(element).carousel(options)
      element
    }

    override def render(md: Modifier*): Modifier = {
      create(modifiers = md)
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy