diff --git a/context/js/src/main/scala/com/karasiq/bootstrap/context/JSCallbacks.scala b/context/js/src/main/scala/com/karasiq/bootstrap/context/JSCallbacks.scala
index 2f530ed..45a2a53 100644
--- a/context/js/src/main/scala/com/karasiq/bootstrap/context/JSCallbacks.scala
+++ b/context/js/src/main/scala/com/karasiq/bootstrap/context/JSCallbacks.scala
@@ -8,10 +8,10 @@ import org.scalajs.dom
import org.scalajs.dom.raw.MouseEvent
trait JSCallbacks extends Callbacks { self: JSRenderingContext ⇒
- type Callback = js.Function
+ type Callback = js.Function
type ClickElement = dom.html.Element
type InputElement = dom.html.Input
- type FormElement = dom.html.Form
+ type FormElement = dom.html.Form
object Callback extends CallbackFactory {
def onClick(f: ClickElement ⇒ Unit): js.Function = {
diff --git a/context/js/src/main/scala/com/karasiq/bootstrap/context/JSImplicits.scala b/context/js/src/main/scala/com/karasiq/bootstrap/context/JSImplicits.scala
index 2d7ce02..1aec3bc 100644
--- a/context/js/src/main/scala/com/karasiq/bootstrap/context/JSImplicits.scala
+++ b/context/js/src/main/scala/com/karasiq/bootstrap/context/JSImplicits.scala
@@ -4,7 +4,7 @@ import org.scalajs.dom.DOMList
trait JSImplicits {
implicit class DOMListIndexedSeq[T](dl: DOMList[T]) extends IndexedSeq[T] {
- override def length: Int = dl.length
+ override def length: Int = dl.length
override def apply(idx: Int): T = dl.apply(idx)
}
}
diff --git a/context/js/src/main/scala/com/karasiq/bootstrap/context/JSReactiveBinds.scala b/context/js/src/main/scala/com/karasiq/bootstrap/context/JSReactiveBinds.scala
index 396d4ab..0fa8e3d 100644
--- a/context/js/src/main/scala/com/karasiq/bootstrap/context/JSReactiveBinds.scala
+++ b/context/js/src/main/scala/com/karasiq/bootstrap/context/JSReactiveBinds.scala
@@ -15,14 +15,15 @@ trait JSReactiveBinds extends ReactiveBinds {
protected type Event = dom.Event
- implicit def rxEventListener[EL <: Element, EV <: Event]: ReactiveRead[EL, EventListener[EL, EV]] = new ReactiveRead[EL, EventListener[EL, EV]] {
- def bindRead(element: EL, property: EventListener[EL, EV]): Unit = {
- val function = js.ThisFunction.fromFunction2 { (el: EL, ev: EV) ⇒
- property.callback(el, ev)
+ implicit def rxEventListener[EL <: Element, EV <: Event]: ReactiveRead[EL, EventListener[EL, EV]] =
+ new ReactiveRead[EL, EventListener[EL, EV]] {
+ def bindRead(element: EL, property: EventListener[EL, EV]): Unit = {
+ val function = js.ThisFunction.fromFunction2 { (el: EL, ev: EV) ⇒
+ property.callback(el, ev)
+ }
+ element.asInstanceOf[js.Dynamic].addEventListener(property.`type`, function)
}
- element.asInstanceOf[js.Dynamic].addEventListener(property.`type`, function)
}
- }
implicit def rxModify[E <: Element, T]: ReactiveWrite[E, Modify[E, T]] = new ReactiveWrite[E, Modify[E, T]] {
def bindWrite(element: E, property: Modify[E, T]): Unit = {
@@ -37,32 +38,39 @@ trait JSReactiveBinds extends ReactiveBinds {
}
}
- implicit def rxBindNode[E <: Element, N: Renderable]: ReactiveWrite[E, BindNode[N]] = new ReactiveWrite[E, BindNode[N]] {
- def bindWrite(parent: E, property: BindNode[N]): Unit = {
- val elRx = property.value.map(identity)
- var oldElement = property.value.now.render
- elRx.triggerLater({
- val element = oldElement
- if (isElementAvailable(element) && isElementAvailable(element.parentNode)) {
- val newElement = elRx.now.render
- oldElement = newElement
- element.parentNode.replaceChild(newElement, element)
- } else {
- elRx.kill()
- }
- }: Unit)
- parent.appendChild(oldElement)
+ implicit def rxBindNode[E <: Element, N: Renderable]: ReactiveWrite[E, BindNode[N]] =
+ new ReactiveWrite[E, BindNode[N]] {
+ def bindWrite(parent: E, property: BindNode[N]): Unit = {
+ val elRx = property.value.map(identity)
+ var oldElement = property.value.now.render
+ elRx.triggerLater({
+ val element = oldElement
+ if (isElementAvailable(element) && isElementAvailable(element.parentNode)) {
+ val newElement = elRx.now.render
+ oldElement = newElement
+ element.parentNode.replaceChild(newElement, element)
+ } else {
+ elRx.kill()
+ }
+ }: Unit)
+ parent.appendChild(oldElement)
+ }
}
- }
- private[this] final case class FormValueRW[E <: Element, T](event: String, read: dom.html.Input ⇒ T, write: (dom.html.Input, T) ⇒ Unit)
- extends ReactiveRW[E, FormValue[T]] {
+ private[this] final case class FormValueRW[E <: Element, T](
+ event: String,
+ read: dom.html.Input ⇒ T,
+ write: (dom.html.Input, T) ⇒ Unit
+ ) extends ReactiveRW[E, FormValue[T]] {
private[this] def safeRead(e: Element): Try[T] =
Try(read(e.asInstanceOf[Input])).filter(v ⇒ v != null && !js.isUndefined(v))
def bindRead(element: E, property: FormValue[T]): Unit = {
- rxEventListener[E, Event].bindRead(element, EventListener(event, (e, _) ⇒ safeRead(e).foreach(property.value() = _)))
+ rxEventListener[E, Event].bindRead(
+ element,
+ EventListener(event, (e, _) ⇒ safeRead(e).foreach(property.value() = _))
+ )
}
def bindWrite(element: E, property: FormValue[T]): Unit = {
diff --git a/context/js/src/main/scala/com/karasiq/bootstrap/context/JSRenderingContext.scala b/context/js/src/main/scala/com/karasiq/bootstrap/context/JSRenderingContext.scala
index a0b09e4..829bd8a 100644
--- a/context/js/src/main/scala/com/karasiq/bootstrap/context/JSRenderingContext.scala
+++ b/context/js/src/main/scala/com/karasiq/bootstrap/context/JSRenderingContext.scala
@@ -6,11 +6,16 @@ import scalatags.JsDom
import org.scalajs.dom
import org.scalajs.dom.Node
-trait JSRenderingContext extends RenderingContext with JSReactiveBinds with JSCallbacks with JSClassModifiers with JSImplicits {
+trait JSRenderingContext
+ extends RenderingContext
+ with JSReactiveBinds
+ with JSCallbacks
+ with JSClassModifiers
+ with JSImplicits {
type Element = dom.Element
- type Output = dom.Element
- type FragT = dom.Node
+ type Output = dom.Element
+ type FragT = dom.Node
- //noinspection TypeAnnotation
+ // noinspection TypeAnnotation
val scalaTags = JsDom
-}
\ No newline at end of file
+}
diff --git a/context/shared/src/main/scala/com/karasiq/bootstrap/components/BootstrapComponents.scala b/context/shared/src/main/scala/com/karasiq/bootstrap/components/BootstrapComponents.scala
index 905c203..92904a3 100644
--- a/context/shared/src/main/scala/com/karasiq/bootstrap/components/BootstrapComponents.scala
+++ b/context/shared/src/main/scala/com/karasiq/bootstrap/components/BootstrapComponents.scala
@@ -6,9 +6,9 @@ import com.karasiq.bootstrap.components.generic.{GenComponent, GenDomComponent,
import com.karasiq.bootstrap.context.RenderingContext
trait BootstrapComponents { self: RenderingContext ⇒
- final type ModifierFactory = generic.ModifierFactory[Element]
- final type BootstrapComponent = generic.BootstrapComponent[Element]
- final type BootstrapDomComponent = generic.BootstrapDomComponent[Element, FragT]
+ final type ModifierFactory = generic.ModifierFactory[Element]
+ final type BootstrapComponent = generic.BootstrapComponent[Element]
+ final type BootstrapDomComponent = generic.BootstrapDomComponent[Element, FragT]
final type BootstrapHtmlComponent = generic.BootstrapHtmlComponent[Element, Output, FragT]
implicit def renderBootstrapHtmlComponent[C](bc: C)(implicit ev: C ⇒ BootstrapHtmlComponent): scalaTags.Tag = {
diff --git a/context/shared/src/main/scala/com/karasiq/bootstrap/components/generic/generic.scala b/context/shared/src/main/scala/com/karasiq/bootstrap/components/generic/generic.scala
index 330a790..88ecb4c 100644
--- a/context/shared/src/main/scala/com/karasiq/bootstrap/components/generic/generic.scala
+++ b/context/shared/src/main/scala/com/karasiq/bootstrap/components/generic/generic.scala
@@ -6,7 +6,7 @@ package object generic {
// Context-bound components
trait ModifierFactory[E] extends Modifier[E] {
// Shortcuts
- protected type ElementT = E
+ protected type ElementT = E
protected type ModifierT = Modifier[E]
def createModifier: ModifierT
@@ -34,7 +34,7 @@ package object generic {
}
final def render(md: ModifierT*): ModifierT = {
- renderFrag(md:_*)
+ renderFrag(md: _*)
}
}
@@ -44,7 +44,7 @@ package object generic {
def renderTag(md: ModifierT*): TagT
final def renderFrag(md: ModifierT*): FragT = {
- renderTag(md:_*)
+ renderTag(md: _*)
}
}
}
diff --git a/context/shared/src/main/scala/com/karasiq/bootstrap/context/ClassModifiers.scala b/context/shared/src/main/scala/com/karasiq/bootstrap/context/ClassModifiers.scala
index 552f10a..afa1606 100644
--- a/context/shared/src/main/scala/com/karasiq/bootstrap/context/ClassModifiers.scala
+++ b/context/shared/src/main/scala/com/karasiq/bootstrap/context/ClassModifiers.scala
@@ -17,18 +17,18 @@ trait ClassModifiers { self: RenderingContext ⇒
}
case class ClassAdd(className: String) extends ClassModifier {
- val classAdded = true
- val classRemoved = false
+ val classAdded = true
+ val classRemoved = false
def applyTo(t: Element): Unit = addClass(t, className)
}
case class ClassRemove(className: String) extends ClassModifier {
- val classAdded = false
- val classRemoved = true
+ val classAdded = false
+ val classRemoved = true
def applyTo(t: Element): Unit = removeClass(t, className)
}
- //noinspection MutatorLikeMethodIsParameterless
+ // noinspection MutatorLikeMethodIsParameterless
implicit class HtmlClassOps(className: String) {
def addClass: ClassAdd = {
ClassAdd(className)
@@ -43,13 +43,18 @@ trait ClassModifiers { self: RenderingContext ⇒
}
def classIf(state: Rx[Boolean]): Modifier = {
- writeModifier(Modify[Element, Boolean](state, (e, v) ⇒ {
- if (v) {
- ClassModifiers.this.addClass(e, className)
- } else {
- ClassModifiers.this.removeClass(e, className)
- }
- }))
+ writeModifier(
+ Modify[Element, Boolean](
+ state,
+ (e, v) ⇒ {
+ if (v) {
+ ClassModifiers.this.addClass(e, className)
+ } else {
+ ClassModifiers.this.removeClass(e, className)
+ }
+ }
+ )
+ )
}
}
diff --git a/context/shared/src/main/scala/com/karasiq/bootstrap/context/ReactiveBinds.scala b/context/shared/src/main/scala/com/karasiq/bootstrap/context/ReactiveBinds.scala
index 4651da8..3038d61 100644
--- a/context/shared/src/main/scala/com/karasiq/bootstrap/context/ReactiveBinds.scala
+++ b/context/shared/src/main/scala/com/karasiq/bootstrap/context/ReactiveBinds.scala
@@ -24,8 +24,7 @@ object ReactiveBinds {
case class Visibility(visible: Rx[Boolean])
}
-/**
- * Predefined binds
+/** Predefined binds
*/
trait ReactiveBinds { self: RenderingContext ⇒
protected type Event
diff --git a/context/shared/src/main/scala/com/karasiq/bootstrap/context/ReactiveImplicits.scala b/context/shared/src/main/scala/com/karasiq/bootstrap/context/ReactiveImplicits.scala
index 440491c..fc06e2c 100644
--- a/context/shared/src/main/scala/com/karasiq/bootstrap/context/ReactiveImplicits.scala
+++ b/context/shared/src/main/scala/com/karasiq/bootstrap/context/ReactiveImplicits.scala
@@ -22,13 +22,16 @@ trait ReactiveImplicits { self: RenderingContext ⇒
}
implicit class RxVariableOps[T](value: Var[T]) {
- def reactiveRead[EV](event: String, f: (Element, EV) ⇒ T)(implicit read: ReactiveRead[Element, EventListener[Element, EV]]): Modifier = {
- readModifier(EventListener[Element, EV](event, (el, ev) ⇒ value() = f(el,ev)))
+ def reactiveRead[EV](event: String, f: (Element, EV) ⇒ T)(implicit
+ read: ReactiveRead[Element, EventListener[Element, EV]]
+ ): Modifier = {
+ readModifier(EventListener[Element, EV](event, (el, ev) ⇒ value() = f(el, ev)))
}
- def reactiveReadWrite[EV](event: String, read: (Element, EV) ⇒ T, write: (Element, T) ⇒ Unit)
- (implicit rb: ReactiveRead[Element, EventListener[Element, EV]],
- wb: ReactiveWrite[Element, Modify[Element, T]]): Modifier = new Modifier {
+ def reactiveReadWrite[EV](event: String, read: (Element, EV) ⇒ T, write: (Element, T) ⇒ Unit)(implicit
+ rb: ReactiveRead[Element, EventListener[Element, EV]],
+ wb: ReactiveWrite[Element, Modify[Element, T]]
+ ): Modifier = new Modifier {
override def applyTo(t: Element): Unit = {
writeModifier(ReactiveBinds.Modify(value, write)).applyTo(t)
reactiveRead(event, read).applyTo(t)
@@ -39,8 +42,10 @@ trait ReactiveImplicits { self: RenderingContext ⇒
readModifier(FormValue(value))
}
- def reactiveInput(implicit rb: ReactiveRead[Element, FormValue[T]],
- wb: ReactiveWrite[Element, FormValue[T]]): Modifier = new Modifier {
+ def reactiveInput(implicit
+ rb: ReactiveRead[Element, FormValue[T]],
+ wb: ReactiveWrite[Element, FormValue[T]]
+ ): Modifier = new Modifier {
def applyTo(t: Element): Unit = {
writeModifier(FormValue(value)).applyTo(t)
readModifier(FormValue(value)).applyTo(t)
diff --git a/context/shared/src/main/scala/com/karasiq/bootstrap/context/RenderingContext.scala b/context/shared/src/main/scala/com/karasiq/bootstrap/context/RenderingContext.scala
index bb9e9f9..cfe963a 100644
--- a/context/shared/src/main/scala/com/karasiq/bootstrap/context/RenderingContext.scala
+++ b/context/shared/src/main/scala/com/karasiq/bootstrap/context/RenderingContext.scala
@@ -5,9 +5,13 @@ import scalatags.generic
import com.karasiq.bootstrap.components.BootstrapComponents
-trait RenderingContext extends ReactiveBinds with ReactiveImplicits with Callbacks
- with BootstrapComponents with ClassModifiers {
-
+trait RenderingContext
+ extends ReactiveBinds
+ with ReactiveImplicits
+ with Callbacks
+ with BootstrapComponents
+ with ClassModifiers {
+
type Element
type Output <: FragT
type FragT
diff --git a/context/shared/src/main/scala/com/karasiq/bootstrap/context/TextCallbacks.scala b/context/shared/src/main/scala/com/karasiq/bootstrap/context/TextCallbacks.scala
index 5cbc12c..3d41f54 100644
--- a/context/shared/src/main/scala/com/karasiq/bootstrap/context/TextCallbacks.scala
+++ b/context/shared/src/main/scala/com/karasiq/bootstrap/context/TextCallbacks.scala
@@ -8,18 +8,18 @@ trait TextCallbacks extends Callbacks { self: RenderingContext ⇒
protected type ClickElement = Any
protected type InputElement = Any
- protected type FormElement = Any
+ protected type FormElement = Any
object Callback extends CallbackFactory {
- def onClick(f: ClickElement => Unit): Callback = {
+ def onClick(f: ClickElement ⇒ Unit): Callback = {
()
}
- def onInput(f: (InputElement) => Unit): Callback = {
+ def onInput(f: (InputElement) ⇒ Unit): Callback = {
()
}
- def onSubmit(f: (FormElement) => Unit): Callback = {
+ def onSubmit(f: (FormElement) ⇒ Unit): Callback = {
()
}
}
diff --git a/context/shared/src/main/scala/com/karasiq/bootstrap/context/TextClassModifiers.scala b/context/shared/src/main/scala/com/karasiq/bootstrap/context/TextClassModifiers.scala
index dd3c148..e645107 100644
--- a/context/shared/src/main/scala/com/karasiq/bootstrap/context/TextClassModifiers.scala
+++ b/context/shared/src/main/scala/com/karasiq/bootstrap/context/TextClassModifiers.scala
@@ -49,7 +49,7 @@ trait TextClassModifiers extends ClassModifiers { self: TextRenderingContext ⇒
case classIndex ⇒
val (key, value) = e.attrs(classIndex)
- val newValue = f(extractClasses(value))
+ val newValue = f(extractClasses(value))
e.attrs(classIndex) = (key, ClassesValueSource(newValue))
}
}
diff --git a/context/shared/src/main/scala/com/karasiq/bootstrap/context/TextReactiveBinds.scala b/context/shared/src/main/scala/com/karasiq/bootstrap/context/TextReactiveBinds.scala
index 4e3fbf7..583e9ac 100644
--- a/context/shared/src/main/scala/com/karasiq/bootstrap/context/TextReactiveBinds.scala
+++ b/context/shared/src/main/scala/com/karasiq/bootstrap/context/TextReactiveBinds.scala
@@ -13,7 +13,7 @@ trait TextReactiveBinds extends ReactiveBinds { self: TextRenderingContext ⇒
private[this] val NO_OP_BIND: ReactiveRW[Element, Nothing] = new ReactiveRW[Element, Nothing] {
def bindWrite(element: Builder, property: Nothing): Unit = ()
- def bindRead(element: Builder, property: Nothing): Unit = ()
+ def bindRead(element: Builder, property: Nothing): Unit = ()
}
implicit def rxEventListener[EL <: Element, EV <: Event]: ReactiveRead[EL, ReactiveBinds.EventListener[EL, EV]] = {
diff --git a/context/shared/src/main/scala/com/karasiq/bootstrap/context/TextRenderingContext.scala b/context/shared/src/main/scala/com/karasiq/bootstrap/context/TextRenderingContext.scala
index 78b9705..cb5dd82 100644
--- a/context/shared/src/main/scala/com/karasiq/bootstrap/context/TextRenderingContext.scala
+++ b/context/shared/src/main/scala/com/karasiq/bootstrap/context/TextRenderingContext.scala
@@ -4,8 +4,8 @@ import scala.language.postfixOps
trait TextRenderingContext extends RenderingContext with TextReactiveBinds with TextCallbacks with TextClassModifiers {
type Element = scalatags.text.Builder
- type Output = String
- type FragT = String
+ type Output = String
+ type FragT = String
val scalaTags = scalatags.Text
}
diff --git a/jquery/src/main/scala/com/karasiq/bootstrap/jquery/BootstrapJQueryContext.scala b/jquery/src/main/scala/com/karasiq/bootstrap/jquery/BootstrapJQueryContext.scala
index d4750e1..d4b29b6 100644
--- a/jquery/src/main/scala/com/karasiq/bootstrap/jquery/BootstrapJQueryContext.scala
+++ b/jquery/src/main/scala/com/karasiq/bootstrap/jquery/BootstrapJQueryContext.scala
@@ -12,7 +12,7 @@ object BootstrapJQueryContext {
object bootstrap extends js.Object
}
- //noinspection ScalaUnusedExpression
+ // noinspection ScalaUnusedExpression
def useNpmImports(): Unit = {
imports.bootstrap
}
diff --git a/library-v4/js/src/main/scala/com/karasiq/bootstrap4/Bootstrap.scala b/library-v4/js/src/main/scala/com/karasiq/bootstrap4/Bootstrap.scala
index 771da1a..5e400ae 100644
--- a/library-v4/js/src/main/scala/com/karasiq/bootstrap4/Bootstrap.scala
+++ b/library-v4/js/src/main/scala/com/karasiq/bootstrap4/Bootstrap.scala
@@ -2,13 +2,12 @@ package com.karasiq.bootstrap4
import rx._
-/**
- * Global context
+/** Global context
*/
object Bootstrap {
private[this] lazy val _scalaRxContext = Ctx.Owner.safe()
- lazy val js: JSBootstrapBundle = JSBootstrapBundle()(_scalaRxContext)
- lazy val text: TextBootstrapBundle = TextBootstrapBundle()(_scalaRxContext)
+ lazy val js: JSBootstrapBundle = JSBootstrapBundle()(_scalaRxContext)
+ lazy val text: TextBootstrapBundle = TextBootstrapBundle()(_scalaRxContext)
lazy val default: JSBootstrapBundle = js
-}
\ No newline at end of file
+}
diff --git a/library-v4/js/src/main/scala/com/karasiq/bootstrap4/JSBootstrapBundle.scala b/library-v4/js/src/main/scala/com/karasiq/bootstrap4/JSBootstrapBundle.scala
index 5b4db23..8f70a67 100644
--- a/library-v4/js/src/main/scala/com/karasiq/bootstrap4/JSBootstrapBundle.scala
+++ b/library-v4/js/src/main/scala/com/karasiq/bootstrap4/JSBootstrapBundle.scala
@@ -13,8 +13,15 @@ import com.karasiq.bootstrap4.popover.JSPopovers
import com.karasiq.bootstrap4.tooltip.JSTooltips
// JS components implementation
-trait JSBootstrapBundle extends UniversalBootstrapBundle with JSRenderingContext with JSModals with JSTooltips
- with JSPopovers with JSNavigationBars with JSCarousels with BootstrapJQueryContext
+trait JSBootstrapBundle
+ extends UniversalBootstrapBundle
+ with JSRenderingContext
+ with JSModals
+ with JSTooltips
+ with JSPopovers
+ with JSNavigationBars
+ with JSCarousels
+ with BootstrapJQueryContext
object JSBootstrapBundle {
def apply()(implicit rx: Ctx.Owner): JSBootstrapBundle = {
diff --git a/library-v4/js/src/main/scala/com/karasiq/bootstrap4/carousel/JSCarouselOptions.scala b/library-v4/js/src/main/scala/com/karasiq/bootstrap4/carousel/JSCarouselOptions.scala
index 1c9140a..b6b4533 100644
--- a/library-v4/js/src/main/scala/com/karasiq/bootstrap4/carousel/JSCarouselOptions.scala
+++ b/library-v4/js/src/main/scala/com/karasiq/bootstrap4/carousel/JSCarouselOptions.scala
@@ -4,8 +4,8 @@ import scala.scalajs.js
@js.native
trait JSCarouselOptions extends js.Object {
- var interval: Int = js.native
- var pause: String = js.native
- var wrap: Boolean = js.native
+ var interval: Int = js.native
+ var pause: String = js.native
+ var wrap: Boolean = js.native
var keyboard: Boolean = js.native
}
diff --git a/library-v4/js/src/main/scala/com/karasiq/bootstrap4/carousel/JSCarousels.scala b/library-v4/js/src/main/scala/com/karasiq/bootstrap4/carousel/JSCarousels.scala
index 31fca2a..1a2a69c 100644
--- a/library-v4/js/src/main/scala/com/karasiq/bootstrap4/carousel/JSCarousels.scala
+++ b/library-v4/js/src/main/scala/com/karasiq/bootstrap4/carousel/JSCarousels.scala
@@ -11,7 +11,8 @@ 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 ⇒
+trait JSCarousels extends UniversalCarousels {
+ self: JSRenderingContext with Carousels with Utils with Icons with BootstrapComponents with BootstrapJQueryContext ⇒
import scalaTags.all._
type Carousel = JSCarousel
@@ -26,9 +27,13 @@ trait JSCarousels extends UniversalCarousels { self: JSRenderingContext with Car
}
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 = {
+ 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
diff --git a/library-v4/js/src/main/scala/com/karasiq/bootstrap4/modal/JSModalOptions.scala b/library-v4/js/src/main/scala/com/karasiq/bootstrap4/modal/JSModalOptions.scala
index 57a8e3e..1bc36ee 100644
--- a/library-v4/js/src/main/scala/com/karasiq/bootstrap4/modal/JSModalOptions.scala
+++ b/library-v4/js/src/main/scala/com/karasiq/bootstrap4/modal/JSModalOptions.scala
@@ -6,6 +6,6 @@ import scala.scalajs.js.|
@js.native
trait JSModalOptions extends js.Object {
var backdrop: Boolean | String = js.native
- var keyboard: Boolean = js.native
- var show: Boolean = js.native
+ var keyboard: Boolean = js.native
+ var show: Boolean = js.native
}
diff --git a/library-v4/js/src/main/scala/com/karasiq/bootstrap4/navbar/JSNavigationBars.scala b/library-v4/js/src/main/scala/com/karasiq/bootstrap4/navbar/JSNavigationBars.scala
index c78854f..014a13b 100644
--- a/library-v4/js/src/main/scala/com/karasiq/bootstrap4/navbar/JSNavigationBars.scala
+++ b/library-v4/js/src/main/scala/com/karasiq/bootstrap4/navbar/JSNavigationBars.scala
@@ -5,20 +5,20 @@ import scala.language.postfixOps
import com.karasiq.bootstrap.context.JSRenderingContext
import com.karasiq.bootstrap.jquery.BootstrapJQueryContext
-trait JSNavigationBars { self: JSRenderingContext with NavigationBars with BootstrapJQueryContext⇒
+trait JSNavigationBars { self: JSRenderingContext with NavigationBars with BootstrapJQueryContext ⇒
implicit class JSNavigation(nav: NavComponent) {
- /**
- * Selects tab by ID
- * @param id Tab ID
+ /** Selects tab by ID
+ * @param id
+ * Tab ID
*/
def selectTab(id: String): Unit = {
jQuery(s"a[data-target='#${nav.tabId(id)}']").tab("show")
}
- /**
- * Selects tab by index
- * @param i Tab index, starting from `0`
+ /** Selects tab by index
+ * @param i
+ * Tab index, starting from `0`
*/
def selectTab(i: Int): Unit = {
val tabs = nav.navTabs.now
diff --git a/library-v4/js/src/main/scala/com/karasiq/bootstrap4/popover/JSPopoverOptions.scala b/library-v4/js/src/main/scala/com/karasiq/bootstrap4/popover/JSPopoverOptions.scala
index d5975e1..0b2eefe 100644
--- a/library-v4/js/src/main/scala/com/karasiq/bootstrap4/popover/JSPopoverOptions.scala
+++ b/library-v4/js/src/main/scala/com/karasiq/bootstrap4/popover/JSPopoverOptions.scala
@@ -5,14 +5,14 @@ import scala.scalajs.js
@js.native
trait JSPopoverOptions extends js.Object {
var animation: Boolean = js.native
- var container: js.Any = js.native
- var content: js.Any = js.native
- var delay: js.Any = js.native
- var html: Boolean = js.native
- var placement: js.Any = js.native
- var selector: js.Any = js.native
- var template: String = js.native
- var title: js.Any = js.native
- var trigger: String = js.native
- var viewport: js.Any = js.native
+ var container: js.Any = js.native
+ var content: js.Any = js.native
+ var delay: js.Any = js.native
+ var html: Boolean = js.native
+ var placement: js.Any = js.native
+ var selector: js.Any = js.native
+ var template: String = js.native
+ var title: js.Any = js.native
+ var trigger: String = js.native
+ var viewport: js.Any = js.native
}
diff --git a/library-v4/js/src/main/scala/com/karasiq/bootstrap4/popover/JSPopovers.scala b/library-v4/js/src/main/scala/com/karasiq/bootstrap4/popover/JSPopovers.scala
index a3cfe35..542d67a 100644
--- a/library-v4/js/src/main/scala/com/karasiq/bootstrap4/popover/JSPopovers.scala
+++ b/library-v4/js/src/main/scala/com/karasiq/bootstrap4/popover/JSPopovers.scala
@@ -7,13 +7,14 @@ import com.karasiq.bootstrap.context.JSRenderingContext
import com.karasiq.bootstrap.jquery.BootstrapJQueryContext
import com.karasiq.bootstrap4.tooltip.Tooltips
-trait JSPopovers { self: JSRenderingContext with BootstrapComponents with Popovers with Tooltips with BootstrapJQueryContext ⇒
+trait JSPopovers {
+ self: JSRenderingContext with BootstrapComponents with Popovers with Tooltips with BootstrapJQueryContext ⇒
import scalaTags.all._
class JSPopover(val options: PopoverOptions) extends Popover {
def toggle: Modifier = new Modifier {
def applyTo(t: Element): Unit = {
- val jsOptions = scalajs.js.Object().asInstanceOf[JSPopoverOptions]
+ val jsOptions = scalajs.js.Object().asInstanceOf[JSPopoverOptions]
def set(value: String, f: String ⇒ Unit) = if (value.nonEmpty) f(value)
jsOptions.animation = options.animation
jsOptions.content = options.content.render
@@ -35,10 +36,10 @@ trait JSPopovers { self: JSRenderingContext with BootstrapComponents with Popove
}
}
- /**
- * Add small overlays of content, like those on the iPad, to any element for housing secondary information.
- * Popovers whose both title and content are zero-length are never displayed.
- * @see [[http://getbootstrap.com/javascript/#popovers]]
+ /** Add small overlays of content, like those on the iPad, to any element for housing secondary information. Popovers
+ * whose both title and content are zero-length are never displayed.
+ * @see
+ * [[http://getbootstrap.com/javascript/#popovers]]
*/
object Popover extends PopoverFactory {
def apply(title: Frag, content: Frag, placement: TooltipPlacement = TooltipPlacement.auto): JSPopover = {
diff --git a/library-v4/js/src/main/scala/com/karasiq/bootstrap4/tooltip/JSTooltipOptions.scala b/library-v4/js/src/main/scala/com/karasiq/bootstrap4/tooltip/JSTooltipOptions.scala
index cf4d20e..6d33398 100644
--- a/library-v4/js/src/main/scala/com/karasiq/bootstrap4/tooltip/JSTooltipOptions.scala
+++ b/library-v4/js/src/main/scala/com/karasiq/bootstrap4/tooltip/JSTooltipOptions.scala
@@ -5,13 +5,13 @@ import scala.scalajs.js
@js.native
trait JSTooltipOptions extends js.Object {
var animation: Boolean = js.native
- var container: js.Any = js.native
- var delay: js.Any = js.native
- var html: Boolean = js.native
- var placement: js.Any = js.native
- var selector: js.Any = js.native
- var template: String = js.native
- var title: js.Any = js.native
- var trigger: String = js.native
- var viewport: js.Any = js.native
+ var container: js.Any = js.native
+ var delay: js.Any = js.native
+ var html: Boolean = js.native
+ var placement: js.Any = js.native
+ var selector: js.Any = js.native
+ var template: String = js.native
+ var title: js.Any = js.native
+ var trigger: String = js.native
+ var viewport: js.Any = js.native
}
diff --git a/library-v4/js/src/main/scala/com/karasiq/bootstrap4/tooltip/JSTooltips.scala b/library-v4/js/src/main/scala/com/karasiq/bootstrap4/tooltip/JSTooltips.scala
index 04d74bb..69d9f86 100644
--- a/library-v4/js/src/main/scala/com/karasiq/bootstrap4/tooltip/JSTooltips.scala
+++ b/library-v4/js/src/main/scala/com/karasiq/bootstrap4/tooltip/JSTooltips.scala
@@ -17,7 +17,7 @@ trait JSTooltips { self: JSRenderingContext with BootstrapComponents with Toolti
class JSTooltip(val options: TooltipOptions) extends AbstractTooltip {
def toggle: Modifier = new Modifier {
def applyTo(t: Element): Unit = {
- val jsOptions = scalajs.js.Object().asInstanceOf[JSTooltipOptions]
+ val jsOptions = scalajs.js.Object().asInstanceOf[JSTooltipOptions]
def set(value: String, f: String ⇒ Unit) = if (value.nonEmpty) f(value)
jsOptions.animation = options.animation
jsOptions.html = options.html
diff --git a/library-v4/jvm/src/main/scala/com/karasiq/bootstrap4/Bootstrap.scala b/library-v4/jvm/src/main/scala/com/karasiq/bootstrap4/Bootstrap.scala
index 391ff63..db107e6 100644
--- a/library-v4/jvm/src/main/scala/com/karasiq/bootstrap4/Bootstrap.scala
+++ b/library-v4/jvm/src/main/scala/com/karasiq/bootstrap4/Bootstrap.scala
@@ -2,8 +2,7 @@ package com.karasiq.bootstrap4
import rx._
-/**
- * Global context
+/** Global context
*/
object Bootstrap {
private[this] lazy val _scalaRxContext = Ctx.Owner.safe()
@@ -13,4 +12,4 @@ object Bootstrap {
}
lazy val default: TextBootstrapBundle = text
-}
\ No newline at end of file
+}
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/BootstrapBundle.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/BootstrapBundle.scala
index 372f20a..5949b4d 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/BootstrapBundle.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/BootstrapBundle.scala
@@ -23,14 +23,47 @@ import com.karasiq.bootstrap4.tooltip.Tooltips
import com.karasiq.bootstrap4.utils.{UniversalUtils, Utils}
// Abstract components
-trait BootstrapBundle extends RenderingContext with BootstrapComponents with ClassModifiers with Alerts with Buttons
- with Carousels with Collapses with Dropdowns with Forms with Grids with Icons with Modals with NavigationBars
- with Cards with Popovers with ProgressBars with Tables with PageSelectors with PagedTables with SortableTables
- with Tooltips with Utils
+trait BootstrapBundle
+ extends RenderingContext
+ with BootstrapComponents
+ with ClassModifiers
+ with Alerts
+ with Buttons
+ with Carousels
+ with Collapses
+ with Dropdowns
+ with Forms
+ with Grids
+ with Icons
+ with Modals
+ with NavigationBars
+ with Cards
+ with Popovers
+ with ProgressBars
+ with Tables
+ with PageSelectors
+ with PagedTables
+ with SortableTables
+ with Tooltips
+ with Utils
// Default components implementation
-trait UniversalBootstrapBundle extends BootstrapBundle
- with UniversalPageSelectors with UniversalTables with UniversalPagedTables with UniversalSortableTables
- with UniversalProgressBars with UniversalCards with UniversalNavigationBars with UniversalModals
- with UniversalIcons with UniversalGrids with UniversalForms with UniversalDropdowns with UniversalCollapses
- with UniversalCarousels with UniversalButtons with UniversalAlerts with UniversalUtils
+trait UniversalBootstrapBundle
+ extends BootstrapBundle
+ with UniversalPageSelectors
+ with UniversalTables
+ with UniversalPagedTables
+ with UniversalSortableTables
+ with UniversalProgressBars
+ with UniversalCards
+ with UniversalNavigationBars
+ with UniversalModals
+ with UniversalIcons
+ with UniversalGrids
+ with UniversalForms
+ with UniversalDropdowns
+ with UniversalCollapses
+ with UniversalCarousels
+ with UniversalButtons
+ with UniversalAlerts
+ with UniversalUtils
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/TextBootstrapBundle.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/TextBootstrapBundle.scala
index 71bb5f7..fec0a34 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/TextBootstrapBundle.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/TextBootstrapBundle.scala
@@ -10,8 +10,12 @@ import com.karasiq.bootstrap4.popover.TextPopovers
import com.karasiq.bootstrap4.tooltip.TextTooltips
// Text components implementation
-trait TextBootstrapBundle extends UniversalBootstrapBundle with TextRenderingContext
- with TextCarousels with TextTooltips with TextPopovers
+trait TextBootstrapBundle
+ extends UniversalBootstrapBundle
+ with TextRenderingContext
+ with TextCarousels
+ with TextTooltips
+ with TextPopovers
object TextBootstrapBundle {
def apply()(implicit ctx: Ctx.Owner): TextBootstrapBundle = {
@@ -19,4 +23,4 @@ object TextBootstrapBundle {
implicit val scalaRxContext = ctx
}
}
-}
\ No newline at end of file
+}
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/alert/AlertStyles.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/alert/AlertStyles.scala
index ce1e2d9..fd5b91c 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/alert/AlertStyles.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/alert/AlertStyles.scala
@@ -5,18 +5,18 @@ import com.karasiq.bootstrap.context.RenderingContext
trait AlertStyles { self: RenderingContext ⇒
import scalaTags.all._
- final class AlertStyle private[alert](val styleName: String) extends ModifierFactory {
+ final class AlertStyle private[alert] (val styleName: String) extends ModifierFactory {
val createModifier = s"alert-$styleName".addClass
}
object AlertStyle {
- lazy val primary = new AlertStyle("primary")
+ lazy val primary = new AlertStyle("primary")
lazy val secondary = new AlertStyle("secondary")
- lazy val success = new AlertStyle("success")
- lazy val info = new AlertStyle("info")
- lazy val warning = new AlertStyle("warning")
- lazy val danger = new AlertStyle("danger")
- lazy val light = new AlertStyle("light")
- lazy val dark = new AlertStyle("dark")
+ lazy val success = new AlertStyle("success")
+ lazy val info = new AlertStyle("info")
+ lazy val warning = new AlertStyle("warning")
+ lazy val danger = new AlertStyle("danger")
+ lazy val light = new AlertStyle("light")
+ lazy val dark = new AlertStyle("dark")
}
}
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/alert/Alerts.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/alert/Alerts.scala
index e923633..b0b80e6 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/alert/Alerts.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/alert/Alerts.scala
@@ -11,16 +11,17 @@ trait Alerts extends AlertStyles { self: RenderingContext ⇒
def style: AlertStyle
}
- /**
- * Provide contextual feedback messages for typical user actions with the handful of available and flexible alert messages.
- * @see [[http://getbootstrap.com/components/#alerts]]
+ /** Provide contextual feedback messages for typical user actions with the handful of available and flexible alert
+ * messages.
+ * @see
+ * [[http://getbootstrap.com/components/#alerts]]
*/
trait AlertFactory {
def create(style: AlertStyle): Alert
def link: Tag
def apply(style: AlertStyle, content: Modifier*): Tag = {
- create(style).renderTag(content:_*)
+ create(style).renderTag(content: _*)
}
}
}
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/alert/UniversalAlerts.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/alert/UniversalAlerts.scala
index 7c3a984..d9264c1 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/alert/UniversalAlerts.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/alert/UniversalAlerts.scala
@@ -23,8 +23,13 @@ trait UniversalAlerts { self: RenderingContext with Alerts with Utils ⇒
private[this] val classes = Seq("alert", "alert-dismissible", "fade", "show")
def closeButton: Tag = {
- button(`type` := "button", "close".addClass, `data-dismiss` := "alert",
- aria.label := "Close", span(aria.hidden := true, raw("×")))
+ button(
+ `type` := "button",
+ "close".addClass,
+ `data-dismiss` := "alert",
+ aria.label := "Close",
+ span(aria.hidden := true, raw("×"))
+ )
}
override def renderTag(md: ModifierT*): TagT = {
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/buttons/ButtonGroupStyles.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/buttons/ButtonGroupStyles.scala
index 3bf747a..888e9ce 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/buttons/ButtonGroupStyles.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/buttons/ButtonGroupStyles.scala
@@ -12,15 +12,15 @@ trait ButtonGroupStyles { self: RenderingContext with Utils ⇒
val createModifier = Bootstrap.noModifier
}
- final class ButtonGroupSizeValue private[buttons](val size: String) extends ButtonGroupSize {
- val className = s"btn-group-$size"
+ final class ButtonGroupSizeValue private[buttons] (val size: String) extends ButtonGroupSize {
+ val className = s"btn-group-$size"
val createModifier = className.addClass
}
object ButtonGroupSize {
- def default: ButtonGroupSize = DefaultButtonGroupSize
- lazy val large: ButtonGroupSize = new ButtonGroupSizeValue("lg")
- lazy val small: ButtonGroupSize = new ButtonGroupSizeValue("sm")
+ def default: ButtonGroupSize = DefaultButtonGroupSize
+ lazy val large: ButtonGroupSize = new ButtonGroupSizeValue("lg")
+ lazy val small: ButtonGroupSize = new ButtonGroupSizeValue("sm")
lazy val extraSmall: ButtonGroupSize = new ButtonGroupSizeValue("xs")
}
}
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/buttons/ButtonStyles.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/buttons/ButtonStyles.scala
index 2c152ab..e148c0f 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/buttons/ButtonStyles.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/buttons/ButtonStyles.scala
@@ -12,52 +12,52 @@ trait ButtonStyles { self: RenderingContext with Utils ⇒
val createModifier = Bootstrap.noModifier
}
- final class ButtonSizeValue private[buttons](size: String) extends ButtonSize {
- val className = s"btn-$size"
+ final class ButtonSizeValue private[buttons] (size: String) extends ButtonSize {
+ val className = s"btn-$size"
val createModifier = className.addClass
}
- /**
- * @see [[https://getbootstrap.com/docs/4.0/components/buttons/#sizes]]
+ /** @see
+ * [[https://getbootstrap.com/docs/4.0/components/buttons/#sizes]]
*/
object ButtonSize {
- def default = DefaultButtonSize
+ def default = DefaultButtonSize
lazy val large = new ButtonSizeValue("lg")
lazy val small = new ButtonSizeValue("sm")
}
-
- class ButtonStyle private[buttons](style: String) extends ModifierFactory {
- val className = s"btn-$style"
+
+ class ButtonStyle private[buttons] (style: String) extends ModifierFactory {
+ val className = s"btn-$style"
val createModifier = className.addClass
}
- /**
- * @see [[https://getbootstrap.com/docs/4.0/components/buttons/]]
+ /** @see
+ * [[https://getbootstrap.com/docs/4.0/components/buttons/]]
*/
object ButtonStyle {
- def default = primary
- lazy val primary = new ButtonStyle("primary")
+ def default = primary
+ lazy val primary = new ButtonStyle("primary")
lazy val secondary = new ButtonStyle("secondary")
- lazy val success = new ButtonStyle("success")
- lazy val info = new ButtonStyle("info")
- lazy val warning = new ButtonStyle("warning")
- lazy val danger = new ButtonStyle("danger")
- lazy val light = new ButtonStyle("light")
- lazy val dark = new ButtonStyle("dark")
- lazy val link = new ButtonStyle("link")
+ lazy val success = new ButtonStyle("success")
+ lazy val info = new ButtonStyle("info")
+ lazy val warning = new ButtonStyle("warning")
+ lazy val danger = new ButtonStyle("danger")
+ lazy val light = new ButtonStyle("light")
+ lazy val dark = new ButtonStyle("dark")
+ lazy val link = new ButtonStyle("link")
}
- class ButtonOutline private[buttons](style: String) extends ButtonStyle(s"outline-$style")
+ class ButtonOutline private[buttons] (style: String) extends ButtonStyle(s"outline-$style")
object ButtonOutline {
- lazy val primary = new ButtonOutline("primary")
+ lazy val primary = new ButtonOutline("primary")
lazy val secondary = new ButtonOutline("secondary")
- lazy val success = new ButtonOutline("success")
- lazy val info = new ButtonOutline("info")
- lazy val warning = new ButtonOutline("warning")
- lazy val danger = new ButtonOutline("danger")
- lazy val light = new ButtonOutline("light")
- lazy val dark = new ButtonOutline("dark")
- lazy val white = new ButtonOutline("white")
+ lazy val success = new ButtonOutline("success")
+ lazy val info = new ButtonOutline("info")
+ lazy val warning = new ButtonOutline("warning")
+ lazy val danger = new ButtonOutline("danger")
+ lazy val light = new ButtonOutline("light")
+ lazy val dark = new ButtonOutline("dark")
+ lazy val white = new ButtonOutline("white")
}
}
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/buttons/Buttons.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/buttons/Buttons.scala
index c2b845f..b00be02 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/buttons/Buttons.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/buttons/Buttons.scala
@@ -6,7 +6,8 @@ import com.karasiq.bootstrap.components.BootstrapComponents
import com.karasiq.bootstrap.context.{ClassModifiers, RenderingContext}
import com.karasiq.bootstrap4.utils.Utils
-trait Buttons extends ButtonStyles with ButtonGroups with ButtonStates { self: RenderingContext with BootstrapComponents with ClassModifiers with Utils ⇒
+trait Buttons extends ButtonStyles with ButtonGroups with ButtonStates {
+ self: RenderingContext with BootstrapComponents with ClassModifiers with Utils ⇒
import scalaTags.all._
type Button <: AbstractButton
@@ -21,16 +22,27 @@ trait Buttons extends ButtonStyles with ButtonGroups with ButtonStates { self: R
}
trait ButtonFactory {
- /**
- * Creates button
- * @param style Use any of the available button classes to quickly create a styled button
- * @param size Fancy larger or smaller buttons? Add `.btn-lg`, `.btn-sm`, or `.btn-xs` for additional sizes
- * @param block Create block level buttons—those that span the full width of a parent— by adding `.btn-block`
- * @param active Buttons will appear pressed (with a darker background, darker border, and inset shadow) when active
- * @param disabled Make buttons look unclickable by fading them back with `opacity`
- * @see [[http://getbootstrap.com/css/#buttons]]
+
+ /** Creates button
+ * @param style
+ * Use any of the available button classes to quickly create a styled button
+ * @param size
+ * Fancy larger or smaller buttons? Add `.btn-lg`, `.btn-sm`, or `.btn-xs` for additional sizes
+ * @param block
+ * Create block level buttons—those that span the full width of a parent— by adding `.btn-block`
+ * @param active
+ * Buttons will appear pressed (with a darker background, darker border, and inset shadow) when active
+ * @param disabled
+ * Make buttons look unclickable by fading them back with `opacity`
+ * @see
+ * [[http://getbootstrap.com/css/#buttons]]
*/
- def apply(style: ButtonStyle = ButtonStyle.default, size: ButtonSize = ButtonSize.default,
- block: Boolean = false, active: Boolean = false, disabled: Boolean = false): Button
+ def apply(
+ style: ButtonStyle = ButtonStyle.default,
+ size: ButtonSize = ButtonSize.default,
+ block: Boolean = false,
+ active: Boolean = false,
+ disabled: Boolean = false
+ ): Button
}
}
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/buttons/UniversalButtonGroups.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/buttons/UniversalButtonGroups.scala
index 0040619..804b889 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/buttons/UniversalButtonGroups.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/buttons/UniversalButtonGroups.scala
@@ -9,14 +9,14 @@ trait UniversalButtonGroups { self: RenderingContext with ButtonGroups with Boot
type ButtonGroup = UniversalButtonGroup
object ButtonGroup extends ButtonGroupFactory {
def apply(size: ButtonGroupSize, buttons: Modifier*): ButtonGroup = {
- new UniversalButtonGroup(size, buttons:_*)
+ new UniversalButtonGroup(size, buttons: _*)
}
}
type ButtonToolbar = UniversalButtonToolbar
object ButtonToolbar extends ButtonToolbarFactory {
def apply(buttonGroups: ButtonGroup*): ButtonToolbar = {
- new UniversalButtonToolbar(buttonGroups:_*)
+ new UniversalButtonToolbar(buttonGroups: _*)
}
}
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/buttons/UniversalButtons.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/buttons/UniversalButtons.scala
index 9da95aa..ea55ed0 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/buttons/UniversalButtons.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/buttons/UniversalButtons.scala
@@ -5,16 +5,22 @@ import scala.language.postfixOps
import com.karasiq.bootstrap.components.BootstrapComponents
import com.karasiq.bootstrap.context.{ClassModifiers, RenderingContext}
-trait UniversalButtons extends UniversalButtonStates with UniversalButtonGroups { self: RenderingContext with BootstrapComponents with ClassModifiers with Buttons ⇒
+trait UniversalButtons extends UniversalButtonStates with UniversalButtonGroups {
+ self: RenderingContext with BootstrapComponents with ClassModifiers with Buttons ⇒
import scalaTags.all._
type Button = ButtonBuilder
object Button extends ButtonFactory {
- /**
- * Shortcut to [[com.karasiq.bootstrap4.buttons.UniversalButtons.ButtonBuilder ButtonBuilder]].
+
+ /** Shortcut to [[com.karasiq.bootstrap4.buttons.UniversalButtons.ButtonBuilder ButtonBuilder]].
*/
- def apply(style: ButtonStyle = ButtonStyle.default, size: ButtonSize = ButtonSize.default,
- block: Boolean = false, active: Boolean = false, disabled: Boolean = false): ButtonBuilder = {
+ def apply(
+ style: ButtonStyle = ButtonStyle.default,
+ size: ButtonSize = ButtonSize.default,
+ block: Boolean = false,
+ active: Boolean = false,
+ disabled: Boolean = false
+ ): ButtonBuilder = {
ButtonBuilder(style, size, block, active, disabled)
}
}
@@ -22,25 +28,39 @@ trait UniversalButtons extends UniversalButtonStates with UniversalButtonGroups
trait UniversalButton extends AbstractButton {
override def renderTag(md: ModifierT*): TagT = {
@inline def optional(flag: Boolean, className: String) = if (flag) Some(className) else None
- val classList = Seq(Some("btn"), optional(block, "btn-block"), optional(active, "active"), optional(disabled, "disabled")).flatten.map(_.addClass)
- scalaTags.tags.button(`type` := "button", classList, style, size)(md:_*)
+ val classList = Seq(
+ Some("btn"),
+ optional(block, "btn-block"),
+ optional(active, "active"),
+ optional(disabled, "disabled")
+ ).flatten.map(_.addClass)
+ scalaTags.tags.button(`type` := "button", classList, style, size)(md: _*)
}
}
- /**
- * Button builder
- * @param style Use any of the available button classes to quickly create a styled button
- * @param size Fancy larger or smaller buttons? Add `.btn-lg`, `.btn-sm`, or `.btn-xs` for additional sizes
- * @param block Create block level buttons—those that span the full width of a parent— by adding `.btn-block`
- * @param active Buttons will appear pressed (with a darker background, darker border, and inset shadow) when active
- * @param disabled Make buttons look unclickable by fading them back with `opacity`
- * @see [[http://getbootstrap.com/css/#buttons]]
+ /** Button builder
+ * @param style
+ * Use any of the available button classes to quickly create a styled button
+ * @param size
+ * Fancy larger or smaller buttons? Add `.btn-lg`, `.btn-sm`, or `.btn-xs` for additional sizes
+ * @param block
+ * Create block level buttons—those that span the full width of a parent— by adding `.btn-block`
+ * @param active
+ * Buttons will appear pressed (with a darker background, darker border, and inset shadow) when active
+ * @param disabled
+ * Make buttons look unclickable by fading them back with `opacity`
+ * @see
+ * [[http://getbootstrap.com/css/#buttons]]
*/
- case class ButtonBuilder(style: ButtonStyle = ButtonStyle.default, size: ButtonSize = ButtonSize.default,
- block: Boolean = false, active: Boolean = false, disabled: Boolean = false)
- extends UniversalButton {
+ case class ButtonBuilder(
+ style: ButtonStyle = ButtonStyle.default,
+ size: ButtonSize = ButtonSize.default,
+ block: Boolean = false,
+ active: Boolean = false,
+ disabled: Boolean = false
+ ) extends UniversalButton {
def withStyle(style: ButtonStyle): ButtonBuilder = copy(style = style)
- def withSize(size: ButtonSize): ButtonBuilder = copy(size = size)
+ def withSize(size: ButtonSize): ButtonBuilder = copy(size = size)
}
}
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/card/Cards.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/card/Cards.scala
index e2a8ae5..0d2df60 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/card/Cards.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/card/Cards.scala
@@ -24,14 +24,16 @@ trait Cards { self: RenderingContext with Icons with Utils ⇒
def imageTop(md: Modifier): Tag
def body(md: Modifier*): Tag
def text(md: Modifier*): Tag
- def link(md: Modifier*): Tag
+ def link(md: Modifier*): Tag
def button(icon: IconModifier, modifiers: Modifier*): Tag
def buttons(buttons: Modifier*): Tag
def group(cards: Modifier*): Tag
- def apply(panelId: String = Bootstrap.newId,
- header: Option[Modifier] = None,
- footer: Option[Modifier] = None,
- content: Seq[Modifier] = Nil): Card
+ def apply(
+ panelId: String = Bootstrap.newId,
+ header: Option[Modifier] = None,
+ footer: Option[Modifier] = None,
+ content: Seq[Modifier] = Nil
+ ): Card
}
}
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/card/UniversalCards.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/card/UniversalCards.scala
index 1819827..d7b1fb0 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/card/UniversalCards.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/card/UniversalCards.scala
@@ -52,15 +52,18 @@ trait UniversalCards extends Cards { self: RenderingContext with Icons with Util
div(`class` := "card-group", cards)
}
- def apply(panelId: String = Bootstrap.newId,
- header: Option[Modifier] = None,
- footer: Option[Modifier] = None,
- content: Seq[Modifier] = Nil): CardBuilder = {
+ def apply(
+ panelId: String = Bootstrap.newId,
+ header: Option[Modifier] = None,
+ footer: Option[Modifier] = None,
+ content: Seq[Modifier] = Nil
+ ): CardBuilder = {
CardBuilder(panelId, header, footer, content)
}
}
- case class CardBuilder(cardId: String, header: Option[Modifier], footer: Option[Modifier], content: Seq[Modifier]) extends AbstractCard {
+ case class CardBuilder(cardId: String, header: Option[Modifier], footer: Option[Modifier], content: Seq[Modifier])
+ extends AbstractCard {
def withId(newId: String): CardBuilder = {
copy(cardId = newId)
}
@@ -78,7 +81,7 @@ trait UniversalCards extends Cards { self: RenderingContext with Icons with Util
}
def withBody(content: Modifier*): CardBuilder = {
- withContent(Card.body(content:_*))
+ withContent(Card.body(content: _*))
}
def renderTag(md: Modifier*): TagT = {
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/carousel/Carousels.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/carousel/Carousels.scala
index cd3e4cf..ce2b3d3 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/carousel/Carousels.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/carousel/Carousels.scala
@@ -16,10 +16,11 @@ trait Carousels { self: RenderingContext with Utils ⇒
def content: Rx[Seq[Modifier]]
}
- /**
- * A slideshow component for cycling through elements, like a carousel.
- * @note Nested carousels are not supported.
- * @see [[http://getbootstrap.com/javascript/#carousel]]
+ /** A slideshow component for cycling through elements, like a carousel.
+ * @note
+ * Nested carousels are not supported.
+ * @see
+ * [[http://getbootstrap.com/javascript/#carousel]]
*/
trait CarouselFactory {
def apply(data: Rx[Seq[Modifier]], id: String = Bootstrap.newId): Carousel
@@ -27,8 +28,7 @@ trait Carousels { self: RenderingContext with Utils ⇒
def slide(image: String, content: Modifier*): Modifier
- /**
- * Modifier to switch carousel from horizontal sliding to crossfade
+ /** Modifier to switch carousel from horizontal sliding to crossfade
* @since 4.1
*/
def fade: Modifier = "carousel-fade".addClass
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/carousel/TextCarousels.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/carousel/TextCarousels.scala
index c0e1906..f595d0f 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/carousel/TextCarousels.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/carousel/TextCarousels.scala
@@ -9,7 +9,8 @@ import com.karasiq.bootstrap.context.RenderingContext
import com.karasiq.bootstrap4.icons.Icons
import com.karasiq.bootstrap4.utils.Utils
-trait TextCarousels extends UniversalCarousels { self: RenderingContext with Carousels with Utils with Icons with BootstrapComponents ⇒
+trait TextCarousels extends UniversalCarousels {
+ self: RenderingContext with Carousels with Utils with Icons with BootstrapComponents ⇒
import scalaTags.all._
type Carousel = UniversalCarousel
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/carousel/UniversalCarousels.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/carousel/UniversalCarousels.scala
index 12b0040..0931a5a 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/carousel/UniversalCarousels.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/carousel/UniversalCarousels.scala
@@ -23,7 +23,7 @@ trait UniversalCarousels { self: RenderingContext with Carousels with Utils with
val indexes = content().indices
ol(`class` := "carousel-indicators")(
mkIndicator(indexes.head)(`class` := "active"),
- for (i <- indexes.tail) yield mkIndicator(i)
+ for (i ← indexes.tail) yield mkIndicator(i)
)
}
@@ -51,7 +51,7 @@ trait UniversalCarousels { self: RenderingContext with Carousels with Utils with
}
def render(md: Modifier*): Modifier = {
- carousel(`data-ride` := "carousel")(md:_*)
+ carousel(`data-ride` := "carousel")(md: _*)
}
}
@@ -59,7 +59,7 @@ trait UniversalCarousels { self: RenderingContext with Carousels with Utils with
def slide(image: String, content: Modifier*): Modifier = {
Seq(
img(`class` := "d-block w-100", src := image),
- div(`class` := "carousel-caption")(content:_*)
+ div(`class` := "carousel-caption")(content: _*)
)
}
}
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/collapse/Collapses.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/collapse/Collapses.scala
index 2a53f54..998aa28 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/collapse/Collapses.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/collapse/Collapses.scala
@@ -20,7 +20,7 @@ trait Collapses { self: RenderingContext with Utils with BootstrapComponents ⇒
def create(title: Modifier, collapseId: String = Bootstrap.newId): Collapse
def apply(title: Modifier)(content: Modifier*): Tag = {
- create(title, Bootstrap.newId).renderTag(content:_*)
+ create(title, Bootstrap.newId).renderTag(content: _*)
}
}
-}
\ No newline at end of file
+}
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/collapse/UniversalCollapses.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/collapse/UniversalCollapses.scala
index 7152cfa..719e738 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/collapse/UniversalCollapses.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/collapse/UniversalCollapses.scala
@@ -15,8 +15,7 @@ trait UniversalCollapses { self: RenderingContext with Collapses with Utils ⇒
}
}
- class UniversalCollapse(val title: Modifier,
- val collapseId: String = Bootstrap.newId) extends AbstractCollapse {
+ class UniversalCollapse(val title: Modifier, val collapseId: String = Bootstrap.newId) extends AbstractCollapse {
protected val collapseElementId = s"$collapseId-collapse"
@@ -37,4 +36,4 @@ trait UniversalCollapses { self: RenderingContext with Collapses with Utils ⇒
div(Bootstrap.button(title, this.toggle), container(md))
}
}
-}
\ No newline at end of file
+}
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/dropdown/Dropdowns.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/dropdown/Dropdowns.scala
index 6a636ea..2853b5b 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/dropdown/Dropdowns.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/dropdown/Dropdowns.scala
@@ -17,7 +17,7 @@ trait Dropdowns { self: RenderingContext ⇒
def dropup: Tag
def renderTag(md: ModifierT*): TagT = {
- this.dropdown(md:_*)
+ this.dropdown(md: _*)
}
}
@@ -25,13 +25,12 @@ trait Dropdowns { self: RenderingContext ⇒
def apply(title: Modifier, items: Modifier*): Dropdown
def link(targetId: String, md: Modifier*): Tag
- def dropup(title: Modifier, items: Modifier*): Tag = apply(title, items:_*).dropup
- def item(md: Modifier*): Tag = this.link("javascript:void(0);", md:_*)
+ def dropup(title: Modifier, items: Modifier*): Tag = apply(title, items: _*).dropup
+ def item(md: Modifier*): Tag = this.link("javascript:void(0);", md: _*)
- /**
- * For plaintext dropdown items
+ /** For plaintext dropdown items
* @since 4.1
*/
- def `item-text`: Modifier = "dropdown-item-text".addClass
+ def `item-text`: Modifier = "dropdown-item-text".addClass
}
}
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/dropdown/UniversalDropdowns.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/dropdown/UniversalDropdowns.scala
index bf8da88..fa094db 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/dropdown/UniversalDropdowns.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/dropdown/UniversalDropdowns.scala
@@ -19,16 +19,17 @@ trait UniversalDropdowns { self: RenderingContext with Dropdowns with Utils ⇒
}
}
- private[dropdown] final class UniversalDropdown(val title: Modifier,
- val items: Seq[Modifier],
- val dropdownId: String = Bootstrap.newId)
- extends AbstractDropdown {
+ private[dropdown] final class UniversalDropdown(
+ val title: Modifier,
+ val items: Seq[Modifier],
+ val dropdownId: String = Bootstrap.newId
+ ) extends AbstractDropdown {
def dropdown: Tag = {
div(`class` := "dropdown")(
Bootstrap.button(
"dropdown-toggle".addClass,
- id := dropdownId,
+ id := dropdownId,
`data-toggle` := "dropdown",
aria.haspopup := true,
aria.expanded := false,
@@ -36,7 +37,7 @@ trait UniversalDropdowns { self: RenderingContext with Dropdowns with Utils ⇒
Bootstrap.nbsp,
span(`class` := "caret")
),
- div(`class` := "dropdown-menu", aria.labelledby := dropdownId)(items:_*)
+ div(`class` := "dropdown-menu", aria.labelledby := dropdownId)(items: _*)
)
}
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/form/Forms.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/form/Forms.scala
index 58db2c4..909f3ec 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/form/Forms.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/form/Forms.scala
@@ -23,9 +23,9 @@ trait Forms { self: RenderingContext with Utils ⇒
}
trait FormFactory {
- type FormT = Tag
+ type FormT = Tag
type InlineFormT = Tag
- type SubmitT = Tag
+ type SubmitT = Tag
def apply(md: Modifier*): FormT
def inline(md: Modifier*): InlineFormT
@@ -53,7 +53,7 @@ trait Forms { self: RenderingContext with Utils ⇒
def isDefaultOption: Boolean
def inputType: String = "radio"
- def inputId: String = this.radioId
+ def inputId: String = this.radioId
}
trait AbstractFormRadioGroup extends AbstractFormInput {
@@ -64,22 +64,27 @@ trait Forms { self: RenderingContext with Utils ⇒
}
trait FormInputFactory {
- type InputT = Tag
- type RadioT = AbstractFormRadio
+ type InputT = Tag
+ type RadioT = AbstractFormRadio
type RadioGroupT = AbstractFormRadioGroup
- type SelectT = AbstractFormSelect
+ type SelectT = AbstractFormSelect
def ofType(inputType: String, label: Modifier, md: Modifier*): InputT
- def text(label: Modifier, md: Modifier*): Tag = this.ofType("text", label, md:_*)
- def number(label: Modifier, md: Modifier*): Tag = this.ofType("number", label, md:_*)
- def email(label: Modifier, md: Modifier*): Tag = this.ofType("email", label, md:_*)
- def password(label: Modifier, md: Modifier*): Tag = this.ofType("password", label, md:_*)
+ def text(label: Modifier, md: Modifier*): Tag = this.ofType("text", label, md: _*)
+ def number(label: Modifier, md: Modifier*): Tag = this.ofType("number", label, md: _*)
+ def email(label: Modifier, md: Modifier*): Tag = this.ofType("email", label, md: _*)
+ def password(label: Modifier, md: Modifier*): Tag = this.ofType("password", label, md: _*)
def file(label: Modifier, md: Modifier*): Tag
def textArea(title: Modifier, md: Modifier*): InputT
def checkbox(label: Modifier, md: Modifier*): InputT
- def radio(title: Modifier, radioName: String, radioValue: String,
- initialState: Boolean = false, radioId: String = Bootstrap.newId): RadioT
+ def radio(
+ title: Modifier,
+ radioName: String,
+ radioValue: String,
+ initialState: Boolean = false,
+ radioId: String = Bootstrap.newId
+ ): RadioT
def radioGroup[T <: RadioT](radios: Rx[Seq[T]]): RadioGroupT
@@ -108,7 +113,7 @@ trait Forms { self: RenderingContext with Utils ⇒
}
// Default
- def apply(label: Modifier, md: Modifier*): Tag = this.text(label, md:_*)
+ def apply(label: Modifier, md: Modifier*): Tag = this.text(label, md: _*)
}
trait FormInputGroupFactory {
@@ -120,11 +125,10 @@ trait Forms { self: RenderingContext with Utils ⇒
def addon(md: Modifier*): AddonT
def apply(label: Modifier, md: Modifier*): GroupT
- def label(md: Modifier*): InputT = scalaTags.tags.label(md)
- def text(md: Modifier*): InputT = this.createInput("text", md:_*)
- def number(md: Modifier*): InputT = this.createInput("number", md:_*)
- def email(md: Modifier*): InputT = this.createInput("email", md:_*)
- def password(md: Modifier*): InputT = this.createInput("password", md:_*)
+ def label(md: Modifier*): InputT = scalaTags.tags.label(md)
+ def text(md: Modifier*): InputT = this.createInput("text", md: _*)
+ def number(md: Modifier*): InputT = this.createInput("number", md: _*)
+ def email(md: Modifier*): InputT = this.createInput("email", md: _*)
+ def password(md: Modifier*): InputT = this.createInput("password", md: _*)
}
}
-
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/grid/Grids.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/grid/Grids.scala
index 5f081c6..891fb84 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/grid/Grids.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/grid/Grids.scala
@@ -10,19 +10,19 @@ trait Grids { self: RenderingContext ⇒
type GridSystem <: AbstractGridSystem
val GridSystem: GridSystem
- /**
- * @see [[https://getbootstrap.com/docs/4.0/layout/grid/]]
+ /** @see
+ * [[https://getbootstrap.com/docs/4.0/layout/grid/]]
*/
trait AbstractGridSystem {
type ContainerT = Tag
- type RowT = Tag
+ type RowT = Tag
def container: ContainerT
def containerFluid: ContainerT
def row: RowT
def col: AbstractColumnFactory
-
+
def mkRow(md: Modifier*): Tag = {
row(col(col.maxSize).asDiv(md))
}
@@ -31,7 +31,7 @@ trait Grids { self: RenderingContext ⇒
trait AbstractColumn extends ModifierFactory {
def size: Int
def asDiv: Tag
- def apply(md: ModifierT*): Tag = this.asDiv.apply(md:_*)
+ def apply(md: ModifierT*): Tag = this.asDiv.apply(md: _*)
}
trait AbstractColumnFactory {
@@ -44,13 +44,19 @@ trait Grids { self: RenderingContext ⇒
def lg(size: Int = 0): AbstractColumn
def xl(size: Int = 0): AbstractColumn
- def responsive(xsSize: Int = maxSize, smSize: Int = maxSize, mdSize: Int = maxSize, lgSize: Int = maxSize, xlSize: Int = maxSize): AbstractColumn = new AbstractColumn {
- override val createModifier: ModifierT = Seq[ModifierT](xs(xsSize), sm(smSize), md(mdSize), lg(lgSize), xl(xlSize))
- def size: Int = lgSize
+ def responsive(
+ xsSize: Int = maxSize,
+ smSize: Int = maxSize,
+ mdSize: Int = maxSize,
+ lgSize: Int = maxSize,
+ xlSize: Int = maxSize
+ ): AbstractColumn = new AbstractColumn {
+ override val createModifier: ModifierT =
+ Seq[ModifierT](xs(xsSize), sm(smSize), md(mdSize), lg(lgSize), xl(xlSize))
+ def size: Int = lgSize
def asDiv: Tag = div(createModifier)
}
def apply(size: Int): AbstractColumn = this.responsive(size, size, size, size, size)
}
}
-
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/grid/UniversalGrids.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/grid/UniversalGrids.scala
index fcfed31..e11ad67 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/grid/UniversalGrids.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/grid/UniversalGrids.scala
@@ -9,11 +9,11 @@ trait UniversalGrids { self: RenderingContext with Grids with ClassModifiers ⇒
type GridSystem = UniversalGridSystem
object GridSystem extends UniversalGridSystem
-
+
trait UniversalGridSystem extends AbstractGridSystem {
- val container: Tag = div(`class` := "container")
+ val container: Tag = div(`class` := "container")
val containerFluid: Tag = div(`class` := "container-fluid")
- val row: Tag = div(`class` := "row")
+ val row: Tag = div(`class` := "row")
object col extends AbstractColumnFactory {
val minSize: Int = 1
@@ -29,9 +29,9 @@ trait UniversalGrids { self: RenderingContext with Grids with ClassModifiers ⇒
if (_size == 0) baseName else baseName + "-" + _size
}
override val createModifier = className.addClass
- override val size: Int = _size
+ override val size: Int = _size
}
-
+
def xs(size: Int): GridColSize = singleColSize("", size)
def sm(size: Int): GridColSize = singleColSize("sm", size)
def md(size: Int): GridColSize = singleColSize("md", size)
@@ -40,4 +40,3 @@ trait UniversalGrids { self: RenderingContext with Grids with ClassModifiers ⇒
}
}
}
-
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/icons/UniversalIcons.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/icons/UniversalIcons.scala
index e8b955b..36d02f6 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/icons/UniversalIcons.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/icons/UniversalIcons.scala
@@ -18,17 +18,17 @@ trait UniversalIcons { self: RenderingContext with Icons with ClassModifiers wit
}
def fa(iconName: String, styles: FontAwesomeStyle*): FontAwesomeIcon = {
- FontAwesome(iconName, styles:_*)
+ FontAwesome(iconName, styles: _*)
}
def faFw(iconName: String, styles: FontAwesomeStyle*): FontAwesomeIcon = {
- FontAwesome(iconName, FontAwesome.fixedWidth +: styles:_*)
+ FontAwesome(iconName, FontAwesome.fixedWidth +: styles: _*)
}
}
final class BootstrapGlyphicon(val iconName: String) extends BootstrapHtmlComponent with IconModifier {
override def renderTag(md: ModifierT*): TagT = {
- span(`class` := "glyphicon glyphicon-" + iconName, aria.hidden := true)(md:_*)
+ span(`class` := "glyphicon glyphicon-" + iconName, aria.hidden := true)(md: _*)
}
}
@@ -38,9 +38,11 @@ trait UniversalIcons { self: RenderingContext with Icons with ClassModifiers wit
}
}
- final class FontAwesomeIcon(val iconName: String, val styles: Seq[FontAwesomeStyle]) extends BootstrapHtmlComponent with IconModifier {
+ final class FontAwesomeIcon(val iconName: String, val styles: Seq[FontAwesomeStyle])
+ extends BootstrapHtmlComponent
+ with IconModifier {
override def renderTag(md: ModifierT*): TagT = {
- i(`class` := "fa fa-" + iconName, styles, aria.hidden := true)(md:_*)
+ i(`class` := "fa fa-" + iconName, styles, aria.hidden := true)(md: _*)
}
}
@@ -48,8 +50,8 @@ trait UniversalIcons { self: RenderingContext with Icons with ClassModifiers wit
override val createModifier = ("fa-" + styleName).addClass
}
- /**
- * @see [[https://fortawesome.github.io/Font-Awesome/examples]]
+ /** @see
+ * [[https://fortawesome.github.io/Font-Awesome/examples]]
*/
object FontAwesome {
def apply(name: String, styles: FontAwesomeStyle*): FontAwesomeIcon = {
@@ -63,10 +65,10 @@ trait UniversalIcons { self: RenderingContext with Icons with ClassModifiers wit
// Size modifiers
lazy val large: FontAwesomeStyle = "lg"
- lazy val x2: FontAwesomeStyle = "2x"
- lazy val x3: FontAwesomeStyle = "3x"
- lazy val x4: FontAwesomeStyle = "4x"
- lazy val x5: FontAwesomeStyle = "5x"
+ lazy val x2: FontAwesomeStyle = "2x"
+ lazy val x3: FontAwesomeStyle = "3x"
+ lazy val x4: FontAwesomeStyle = "4x"
+ lazy val x5: FontAwesomeStyle = "5x"
// Fixed width
lazy val fixedWidth: FontAwesomeStyle = "fw"
@@ -76,20 +78,20 @@ trait UniversalIcons { self: RenderingContext with Icons with ClassModifiers wit
lazy val line: FontAwesomeStyle = "li"
// Bordered & Pulled icons
- lazy val border: FontAwesomeStyle = "border"
+ lazy val border: FontAwesomeStyle = "border"
lazy val pullRight: FontAwesomeStyle = "pull-right"
- lazy val pullLeft: FontAwesomeStyle = "pull-left"
+ lazy val pullLeft: FontAwesomeStyle = "pull-left"
// Animated icons
- lazy val spin: FontAwesomeStyle = "spin"
+ lazy val spin: FontAwesomeStyle = "spin"
lazy val pulse: FontAwesomeStyle = "pulse"
// Rotated & Flipped
- lazy val rotate90: FontAwesomeStyle = "rotate-90"
- lazy val rotate180: FontAwesomeStyle = "rotate-90"
- lazy val rotate270: FontAwesomeStyle = "rotate-90"
+ lazy val rotate90: FontAwesomeStyle = "rotate-90"
+ lazy val rotate180: FontAwesomeStyle = "rotate-90"
+ lazy val rotate270: FontAwesomeStyle = "rotate-90"
lazy val flipHorizontal: FontAwesomeStyle = "flip-horizontal"
- lazy val flipVertical: FontAwesomeStyle = "flip-vertical"
+ lazy val flipVertical: FontAwesomeStyle = "flip-vertical"
// Stacked icons
def stacked(icons: Tag*): Tag = {
@@ -100,13 +102,13 @@ trait UniversalIcons { self: RenderingContext with Icons with ClassModifiers wit
lazy val stacked2x: FontAwesomeStyle = "stack-2x"
}
- //noinspection SpellCheckingInspection
+ // noinspection SpellCheckingInspection
implicit class BootstrapIconsOps(iconName: String) {
- def glyphicon: BootstrapGlyphicon = Icon.glyphicon(iconName)
- def fontAwesome(styles: FontAwesomeStyle*): FontAwesomeIcon = Icon.fa(iconName, styles:_*)
+ def glyphicon: BootstrapGlyphicon = Icon.glyphicon(iconName)
+ def fontAwesome(styles: FontAwesomeStyle*): FontAwesomeIcon = Icon.fa(iconName, styles: _*)
// Shortcuts
- def faIcon: FontAwesomeIcon = this.fontAwesome()
+ def faIcon: FontAwesomeIcon = this.fontAwesome()
def faFwIcon: FontAwesomeIcon = this.fontAwesome(FontAwesome.fixedWidth)
}
}
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/modal/ModalStyles.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/modal/ModalStyles.scala
index 2e655bb..7419a29 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/modal/ModalStyles.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/modal/ModalStyles.scala
@@ -12,15 +12,15 @@ trait ModalStyles { self: RenderingContext with Utils ⇒
val createModifier = Bootstrap.noModifier
}
- final class CustomModalDialogSize private[modal](size: String) extends ModalDialogSize {
+ final class CustomModalDialogSize private[modal] (size: String) extends ModalDialogSize {
val className: String = size
- val createModifier = className.addClass
+ val createModifier = className.addClass
}
- //noinspection TypeAnnotation
+ // noinspection TypeAnnotation
object ModalDialogSize {
val default = DefaultModalDialogSize
- val small = new CustomModalDialogSize("modal-sm")
- val large = new CustomModalDialogSize("modal-lg")
+ val small = new CustomModalDialogSize("modal-sm")
+ val large = new CustomModalDialogSize("modal-lg")
}
}
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/modal/Modals.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/modal/Modals.scala
index 45d5cbd..195d2cf 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/modal/Modals.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/modal/Modals.scala
@@ -5,7 +5,8 @@ import com.karasiq.bootstrap.context.{ClassModifiers, RenderingContext}
import com.karasiq.bootstrap4.buttons.Buttons
import com.karasiq.bootstrap4.utils.Utils
-trait Modals extends ModalStyles { self: RenderingContext with Utils with BootstrapComponents with ClassModifiers with Buttons ⇒
+trait Modals extends ModalStyles {
+ self: RenderingContext with Utils with BootstrapComponents with ClassModifiers with Buttons ⇒
import scalaTags.all._
type Modal <: AbstractModal with BootstrapHtmlComponent
@@ -23,17 +24,22 @@ trait Modals extends ModalStyles { self: RenderingContext with Utils with Bootst
def dismiss: Modifier
}
- /**
- * Modals are streamlined, but flexible, dialog prompts with the minimum required functionality and smart defaults.
- * @see [[https://getbootstrap.com/javascript/#modals]]
+ /** Modals are streamlined, but flexible, dialog prompts with the minimum required functionality and smart defaults.
+ * @see
+ * [[https://getbootstrap.com/javascript/#modals]]
*/
trait ModalFactory {
def closeButton(title: String = "Close"): Tag
def button(md: Modifier*): Tag
- def apply(title: Modifier = "Modal dialog", body: Modifier = "", buttons: Modifier = closeButton(),
- style: Modifier = Bootstrap.noModifier, dialogStyle: Modifier = ModalDialogSize.default,
- contentStyle: Modifier = Bootstrap.noModifier, modalId: String = Bootstrap.newId): Modal
+ def apply(
+ title: Modifier = "Modal dialog",
+ body: Modifier = "",
+ buttons: Modifier = closeButton(),
+ style: Modifier = Bootstrap.noModifier,
+ dialogStyle: Modifier = ModalDialogSize.default,
+ contentStyle: Modifier = Bootstrap.noModifier,
+ modalId: String = Bootstrap.newId
+ ): Modal
}
}
-
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/modal/UniversalModals.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/modal/UniversalModals.scala
index 0b15472..4dd82ea 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/modal/UniversalModals.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/modal/UniversalModals.scala
@@ -5,16 +5,23 @@ import com.karasiq.bootstrap.context.{ClassModifiers, RenderingContext}
import com.karasiq.bootstrap4.buttons.Buttons
import com.karasiq.bootstrap4.utils.Utils
-trait UniversalModals { self: RenderingContext with Utils with BootstrapComponents with ClassModifiers with Buttons with Modals with ModalStyles ⇒
+trait UniversalModals {
+ self: RenderingContext
+ with Utils
+ with BootstrapComponents
+ with ClassModifiers
+ with Buttons
+ with Modals
+ with ModalStyles ⇒
import scalaTags.all._
import BootstrapAttrs._
type Modal = ModalBuilder
- /**
- * Modals are streamlined, but flexible, dialog prompts with the minimum required functionality and smart defaults.
- * @see [[https://getbootstrap.com/javascript/#modals]]
+ /** Modals are streamlined, but flexible, dialog prompts with the minimum required functionality and smart defaults.
+ * @see
+ * [[https://getbootstrap.com/javascript/#modals]]
*/
object Modal extends ModalFactory {
val dismiss: Modifier = {
@@ -29,9 +36,15 @@ trait UniversalModals { self: RenderingContext with Utils with BootstrapComponen
Button(ButtonOutline.primary)(md)
}
- def apply(title: Modifier = "Modal dialog", body: Modifier = "", buttons: Modifier = closeButton(),
- style: Modifier = Bootstrap.noModifier, dialogStyle: Modifier = ModalDialogSize.default,
- contentStyle: Modifier = Bootstrap.noModifier, modalId: String = Bootstrap.newId): ModalBuilder = {
+ def apply(
+ title: Modifier = "Modal dialog",
+ body: Modifier = "",
+ buttons: Modifier = closeButton(),
+ style: Modifier = Bootstrap.noModifier,
+ dialogStyle: Modifier = ModalDialogSize.default,
+ contentStyle: Modifier = Bootstrap.noModifier,
+ modalId: String = Bootstrap.newId
+ ): ModalBuilder = {
ModalBuilder(title, body, buttons, style, dialogStyle, contentStyle, modalId)
}
}
@@ -75,19 +88,26 @@ trait UniversalModals { self: RenderingContext with Utils with BootstrapComponen
}
def renderTag(md: ModifierT*): TagT = {
- modal(md:_*)
+ modal(md: _*)
}
}
- case class ModalBuilder(title: Modifier, body: Modifier, buttons: Modifier, style: Modifier,
- dialogStyle: Modifier, contentStyle: Modifier, modalId: String) extends UniversalModal {
-
- def withTitle(md: Modifier*): ModalBuilder = copy(title = md)
- def withBody(md: Modifier*): ModalBuilder = copy(body = md)
- def withButtons(md: Modifier*): ModalBuilder = copy(buttons = md)
- def withStyle(md: Modifier*): ModalBuilder = copy(style = md)
- def withDialogStyle(md: Modifier*): ModalBuilder = copy(dialogStyle = md)
+ case class ModalBuilder(
+ title: Modifier,
+ body: Modifier,
+ buttons: Modifier,
+ style: Modifier,
+ dialogStyle: Modifier,
+ contentStyle: Modifier,
+ modalId: String
+ ) extends UniversalModal {
+
+ def withTitle(md: Modifier*): ModalBuilder = copy(title = md)
+ def withBody(md: Modifier*): ModalBuilder = copy(body = md)
+ def withButtons(md: Modifier*): ModalBuilder = copy(buttons = md)
+ def withStyle(md: Modifier*): ModalBuilder = copy(style = md)
+ def withDialogStyle(md: Modifier*): ModalBuilder = copy(dialogStyle = md)
def withContentStyle(md: Modifier*): ModalBuilder = copy(contentStyle = md)
- def withId(id: String): ModalBuilder = copy(modalId = id)
+ def withId(id: String): ModalBuilder = copy(modalId = id)
}
}
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/navbar/NavigationBarStyles.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/navbar/NavigationBarStyles.scala
index f7f6b31..5691762 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/navbar/NavigationBarStyles.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/navbar/NavigationBarStyles.scala
@@ -5,23 +5,23 @@ import com.karasiq.bootstrap.context.RenderingContext
trait NavigationBarStyles { self: RenderingContext ⇒
import scalaTags.all._
- class NavigationBarStyle private[navbar](style: String) extends ModifierFactory {
- val className = s"navbar-$style"
+ class NavigationBarStyle private[navbar] (style: String) extends ModifierFactory {
+ val className = s"navbar-$style"
val createModifier = className.addClass
}
object NavigationBarStyle {
// Style
lazy val light = new NavigationBarStyle("light")
- lazy val dark = new NavigationBarStyle("dark")
+ lazy val dark = new NavigationBarStyle("dark")
// Position
- lazy val fixedTop = new NavigationBarStyle("fixed-top")
+ lazy val fixedTop = new NavigationBarStyle("fixed-top")
lazy val fixedBottom = new NavigationBarStyle("fixed-bottom")
- lazy val stickyTop = new NavigationBarStyle("sticky-top")
+ lazy val stickyTop = new NavigationBarStyle("sticky-top")
}
- final class NavigationBarExpand private[navbar](size: String) extends NavigationBarStyle("expand-" + size)
+ final class NavigationBarExpand private[navbar] (size: String) extends NavigationBarStyle("expand-" + size)
object NavigationBarExpand {
lazy val sm = new NavigationBarExpand("sm")
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/navbar/NavigationBars.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/navbar/NavigationBars.scala
index 113c833..228be25 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/navbar/NavigationBars.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/navbar/NavigationBars.scala
@@ -10,7 +10,8 @@ import com.karasiq.bootstrap4.grid.Grids
import com.karasiq.bootstrap4.icons.Icons
import com.karasiq.bootstrap4.utils.Utils
-trait NavigationBars extends NavigationBarStyles { self: RenderingContext with Icons with Grids with Utils with BootstrapComponents with ClassModifiers ⇒
+trait NavigationBars extends NavigationBarStyles {
+ self: RenderingContext with Icons with Grids with Utils with BootstrapComponents with ClassModifiers ⇒
import scalaTags.all._
// -----------------------------------------------------------------------
@@ -20,9 +21,9 @@ trait NavigationBars extends NavigationBarStyles { self: RenderingContext with I
case class NavigationTabs(tabs: Rx[Seq[NavigationTab]])
object NavigationTabs {
- implicit def toRxSeq(nt: NavigationTabs): Rx[Seq[NavigationTab]] = nt.tabs
+ implicit def toRxSeq(nt: NavigationTabs): Rx[Seq[NavigationTab]] = nt.tabs
implicit def fromRxSeq(seq: Rx[Seq[NavigationTab]]): NavigationTabs = new NavigationTabs(seq)
- implicit def fromSeq(seq: Seq[NavigationTab]): NavigationTabs = fromRxSeq(Rx(seq))
+ implicit def fromSeq(seq: Seq[NavigationTab]): NavigationTabs = fromRxSeq(Rx(seq))
}
// -----------------------------------------------------------------------
@@ -52,21 +53,36 @@ trait NavigationBars extends NavigationBarStyles { self: RenderingContext with I
}
trait NavigationBarFactory {
- /**
- * Creates navigation bar
- * @param tabs Navbar tabs
- * @param barId Bar id attribute
- * @param brand Navbar "brand" content
- * @param styles Navbar styles
- * @param container Navbar container type
- * @param contentContainer Navbar content container type
- * @return Navigation bar
+
+ /** Creates navigation bar
+ * @param tabs
+ * Navbar tabs
+ * @param barId
+ * Bar id attribute
+ * @param brand
+ * Navbar "brand" content
+ * @param styles
+ * Navbar styles
+ * @param container
+ * Navbar container type
+ * @param contentContainer
+ * Navbar content container type
+ * @return
+ * Navigation bar
*/
- def apply(tabs: Seq[NavigationTab] = Nil, barId: String = Bootstrap.newId, brand: Modifier = "Navigation",
- styles: Seq[Modifier] = Seq(NavigationBarStyle.light, NavigationBarStyle.fixedTop, NavigationBarExpand.lg, Bootstrap.background.light),
- inlineContent: Modifier = (),
- container: Modifier ⇒ Modifier = md ⇒ GridSystem.container(md),
- contentContainer: Modifier ⇒ Modifier = md ⇒ GridSystem.container(GridSystem.mkRow(md))): NavigationBar
+ def apply(
+ tabs: Seq[NavigationTab] = Nil,
+ barId: String = Bootstrap.newId,
+ brand: Modifier = "Navigation",
+ styles: Seq[Modifier] = Seq(
+ NavigationBarStyle.light,
+ NavigationBarStyle.fixedTop,
+ NavigationBarExpand.lg,
+ Bootstrap.background.light
+ ),
+ inlineContent: Modifier = (),
+ container: Modifier ⇒ Modifier = md ⇒ GridSystem.container(md),
+ contentContainer: Modifier ⇒ Modifier = md ⇒ GridSystem.container(GridSystem.mkRow(md))
+ ): NavigationBar
}
}
-
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/navbar/UniversalNavigationBars.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/navbar/UniversalNavigationBars.scala
index c9bb6a4..a0b4619 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/navbar/UniversalNavigationBars.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/navbar/UniversalNavigationBars.scala
@@ -8,7 +8,15 @@ import com.karasiq.bootstrap4.grid.Grids
import com.karasiq.bootstrap4.icons.Icons
import com.karasiq.bootstrap4.utils.Utils
-trait UniversalNavigationBars { self: RenderingContext with Icons with Grids with Utils with BootstrapComponents with ClassModifiers with NavigationBars with NavigationBarStyles ⇒
+trait UniversalNavigationBars {
+ self: RenderingContext
+ with Icons
+ with Grids
+ with Utils
+ with BootstrapComponents
+ with ClassModifiers
+ with NavigationBars
+ with NavigationBarStyles ⇒
import scalaTags.all._
import BootstrapAttrs._
@@ -26,24 +34,44 @@ trait UniversalNavigationBars { self: RenderingContext with Icons with Grids wit
type NavigationBar = NavigationBarBuilder
object NavigationBar extends NavigationBarFactory {
- def apply(tabs: Seq[NavigationTab] = Nil, barId: String = Bootstrap.newId, brand: Modifier = "Navigation",
- styles: Seq[Modifier] = Seq(NavigationBarStyle.light, NavigationBarStyle.fixedTop, NavigationBarExpand.lg, Bootstrap.background.light),
- inlineContent: Modifier = (),
- container: Modifier ⇒ Modifier = md ⇒ GridSystem.container(md),
- contentContainer: Modifier ⇒ Modifier = md ⇒ GridSystem.container(GridSystem.mkRow(md))): NavigationBarBuilder = {
+ def apply(
+ tabs: Seq[NavigationTab] = Nil,
+ barId: String = Bootstrap.newId,
+ brand: Modifier = "Navigation",
+ styles: Seq[Modifier] = Seq(
+ NavigationBarStyle.light,
+ NavigationBarStyle.fixedTop,
+ NavigationBarExpand.lg,
+ Bootstrap.background.light
+ ),
+ inlineContent: Modifier = (),
+ container: Modifier ⇒ Modifier = md ⇒ GridSystem.container(md),
+ contentContainer: Modifier ⇒ Modifier = md ⇒ GridSystem.container(GridSystem.mkRow(md))
+ ): NavigationBarBuilder = {
NavigationBarBuilder(tabs, barId, brand, styles, inlineContent, container, contentContainer)
}
}
- class UniversalNavigation(val navTabs: NavigationTabs, val navType: String = "tabs",
- val navId: String = Bootstrap.newId)
- extends AbstractNavigation with BootstrapHtmlComponent {
+ class UniversalNavigation(
+ val navTabs: NavigationTabs,
+ val navType: String = "tabs",
+ val navId: String = Bootstrap.newId
+ ) extends AbstractNavigation
+ with BootstrapHtmlComponent {
private def tabContainer = Rx {
def renderTab(tab: NavigationTab, active: Boolean): Tag = {
val idLink = this.tabId(tab.id)
li(`class` := "nav-item", tab.modifiers)(
- a(`class` := "nav-link", "active".classIf(active), href := "#", aria.controls := idLink, role := "tab", `data-toggle` := "tab", `data-target` := s"#$idLink")(
+ a(
+ `class` := "nav-link",
+ "active".classIf(active),
+ href := "#",
+ aria.controls := idLink,
+ role := "tab",
+ `data-toggle` := "tab",
+ `data-target` := s"#$idLink"
+ )(
if (tab.icon != NoIcon) Seq[Modifier](tab.icon, Bootstrap.nbsp) else (),
tab.name
)
@@ -51,12 +79,14 @@ trait UniversalNavigationBars { self: RenderingContext with Icons with Grids wit
}
val tabs = navTabs()
- val tag = ul(`class` := "nav nav-" + navType, role := "tablist")
+ val tag = ul(`class` := "nav nav-" + navType, role := "tablist")
- if (tabs.nonEmpty) tag(
- renderTab(tabs.head, active = true),
- for (t ← tabs.tail) yield renderTab(t, active = false)
- ) else tag
+ if (tabs.nonEmpty)
+ tag(
+ renderTab(tabs.head, active = true),
+ for (t ← tabs.tail) yield renderTab(t, active = false)
+ )
+ else tag
}
private def tabContentContainer = Rx {
@@ -69,7 +99,7 @@ trait UniversalNavigationBars { self: RenderingContext with Icons with Grids wit
val tabs = navTabs()
div("tab-content".addClass)(
renderPanel(tabs.head)("active".addClass, "show".addClass),
- for (t <- tabs.tail) yield renderPanel(t)
+ for (t ← tabs.tail) yield renderPanel(t)
)
}
@@ -78,17 +108,18 @@ trait UniversalNavigationBars { self: RenderingContext with Icons with Grids wit
}
}
- /**
- * Simple bootstrap navigation bar
+ /** Simple bootstrap navigation bar
*/
- class UniversalNavigationBar(val navTabs: NavigationTabs,
- val navId: String,
- brand: Modifier,
- styles: Seq[Modifier],
- inlineContent: Modifier,
- container: Modifier ⇒ Modifier,
- contentContainer: Modifier ⇒ Modifier)
- extends AbstractNavigationBar with BootstrapComponent {
+ class UniversalNavigationBar(
+ val navTabs: NavigationTabs,
+ val navId: String,
+ brand: Modifier,
+ styles: Seq[Modifier],
+ inlineContent: Modifier,
+ container: Modifier ⇒ Modifier,
+ contentContainer: Modifier ⇒ Modifier
+ ) extends AbstractNavigationBar
+ with BootstrapComponent {
private[this] val nav = tag("nav")
@@ -97,7 +128,16 @@ trait UniversalNavigationBars { self: RenderingContext with Icons with Grids wit
val idLink = this.tabId(tab.id)
li(
`class` := "nav-item",
- a(href := "#", `class` := "nav-link", "active".classIf(active), aria.controls := idLink, role := "tab", `data-toggle` := "tab", `data-target` := s"#$idLink", id := idLink + "link")(
+ a(
+ href := "#",
+ `class` := "nav-link",
+ "active".classIf(active),
+ aria.controls := idLink,
+ role := "tab",
+ `data-toggle` := "tab",
+ `data-target` := s"#$idLink",
+ id := idLink + "link"
+ )(
if (tab.icon != NoIcon) Seq[Modifier](tab.icon, Bootstrap.nbsp) else (),
tab.name
),
@@ -106,17 +146,24 @@ trait UniversalNavigationBars { self: RenderingContext with Icons with Grids wit
}
val tabs = navTabs()
- val tag = ul(`class` := "navbar-nav nav mr-auto", role := "tablist")
- if (tabs.nonEmpty) tag(
- renderTab(active = true, tabs.head),
- for (tab <- tabs.tail) yield renderTab(active = false, tab)
- ) else tag
+ val tag = ul(`class` := "navbar-nav nav mr-auto", role := "tablist")
+ if (tabs.nonEmpty)
+ tag(
+ renderTab(active = true, tabs.head),
+ for (tab ← tabs.tail) yield renderTab(active = false, tab)
+ )
+ else tag
}
private[this] val tabContentContainer = Rx {
def renderContent(active: Boolean, tab: NavigationTab): Tag = {
val tabId = this.tabId(tab.id)
- div(id := tabId, role := "tabpanel", `class` := (if (active) "tab-pane active fade show" else "tab-pane fade"), aria.labelledby := tabId + "link")(
+ div(
+ id := tabId,
+ role := "tabpanel",
+ `class` := (if (active) "tab-pane active fade show" else "tab-pane fade"),
+ aria.labelledby := tabId + "link"
+ )(
tab.content
)
}
@@ -124,14 +171,23 @@ trait UniversalNavigationBars { self: RenderingContext with Icons with Grids wit
val tabs = navTabs()
div(id := s"$navId-tabcontent", `class` := "tab-content")(
renderContent(active = true, tabs.head),
- for (tab <- tabs.tail) yield renderContent(active = false, tab)
+ for (tab ← tabs.tail) yield renderContent(active = false, tab)
)
}
def navbar(md: Modifier*): Tag = {
nav(`class` := "navbar", styles)(
a(href := "javascript:void(0);", `class` := "navbar-brand", brand),
- button(`class` := "navbar-toggler", `type` := "button", `data-toggle` := "collapse", `data-target` := "#" + navId, aria.controls := navId, aria.expanded := false, aria.label := "Toggle navigation", span(`class` := "navbar-toggler-icon")),
+ button(
+ `class` := "navbar-toggler",
+ `type` := "button",
+ `data-toggle` := "collapse",
+ `data-target` := "#" + navId,
+ aria.controls := navId,
+ aria.expanded := false,
+ aria.label := "Toggle navigation",
+ span(`class` := "navbar-toggler-icon")
+ ),
div(`class` := "collapse navbar-collapse", id := navId, tabContainer, inlineContent, md)
)
}
@@ -141,22 +197,29 @@ trait UniversalNavigationBars { self: RenderingContext with Icons with Grids wit
}
def render(md: ModifierT*): ModifierT = {
- Seq(container(navbar(md:_*)), contentContainer(content))
+ Seq(container(navbar(md: _*)), contentContainer(content))
}
}
- //noinspection TypeAnnotation
- case class NavigationBarBuilder(navTabs: NavigationTabs, navId: String,
- brand: Modifier, styles: Seq[Modifier], inlineContent: Modifier,
- container: Modifier ⇒ Modifier, contentContainer: Modifier ⇒ Modifier) extends AbstractNavigationBar with BootstrapComponent {
-
- def withTabs(tabs: NavigationTabs) = copy(navTabs = tabs)
- def withTabs(tabs: NavigationTab*) = copy(navTabs = NavigationTabs.fromSeq(tabs))
- def withId(id: String) = copy(navId = id)
- def withBrand(brand: Modifier*) = copy(brand = brand)
- def withStyles(styles: Modifier*) = copy(styles = styles)
- def withInlineContent(inlineContent: Modifier) = copy(inlineContent = inlineContent)
- def withContainer(container: Modifier ⇒ Modifier) = copy(container = container)
+ // noinspection TypeAnnotation
+ case class NavigationBarBuilder(
+ navTabs: NavigationTabs,
+ navId: String,
+ brand: Modifier,
+ styles: Seq[Modifier],
+ inlineContent: Modifier,
+ container: Modifier ⇒ Modifier,
+ contentContainer: Modifier ⇒ Modifier
+ ) extends AbstractNavigationBar
+ with BootstrapComponent {
+
+ def withTabs(tabs: NavigationTabs) = copy(navTabs = tabs)
+ def withTabs(tabs: NavigationTab*) = copy(navTabs = NavigationTabs.fromSeq(tabs))
+ def withId(id: String) = copy(navId = id)
+ def withBrand(brand: Modifier*) = copy(brand = brand)
+ def withStyles(styles: Modifier*) = copy(styles = styles)
+ def withInlineContent(inlineContent: Modifier) = copy(inlineContent = inlineContent)
+ def withContainer(container: Modifier ⇒ Modifier) = copy(container = container)
def withContentContainer(contentContainer: Modifier ⇒ Modifier) = copy(contentContainer = contentContainer)
def build(): UniversalNavigationBar = {
@@ -164,7 +227,7 @@ trait UniversalNavigationBars { self: RenderingContext with Icons with Grids wit
}
def render(md: ModifierT*): ModifierT = {
- build().render(md:_*)
+ build().render(md: _*)
}
}
}
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/pagination/UniversalPageSelectors.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/pagination/UniversalPageSelectors.scala
index 58f213d..a56c651 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/pagination/UniversalPageSelectors.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/pagination/UniversalPageSelectors.scala
@@ -15,18 +15,31 @@ trait UniversalPageSelectors extends PageSelectors { self: RenderingContext ⇒
}
class UniversalPageSelector(val pages: Rx[Int], val currentPage: Var[Int])
- extends AbstractPageSelector with BootstrapHtmlComponent {
+ extends AbstractPageSelector
+ with BootstrapHtmlComponent {
def previousLink: TagT = {
- a(`class` := "page-link", href := "#", aria.label := "Previous", onclick := Callback.onClick { _ ⇒
- if (currentPage.now > 1) currentPage.update(currentPage.now - 1)
- }, span(aria.hidden := true, raw("«")))
+ a(
+ `class` := "page-link",
+ href := "#",
+ aria.label := "Previous",
+ onclick := Callback.onClick { _ ⇒
+ if (currentPage.now > 1) currentPage.update(currentPage.now - 1)
+ },
+ span(aria.hidden := true, raw("«"))
+ )
}
def nextLink: TagT = {
- a(`class` := "page-link", href := "#", aria.label := "Next", onclick := Callback.onClick { _ ⇒
- if (currentPage.now < pages.now) currentPage.update(currentPage.now + 1)
- }, span(aria.hidden := true, raw("»")))
+ a(
+ `class` := "page-link",
+ href := "#",
+ aria.label := "Next",
+ onclick := Callback.onClick { _ ⇒
+ if (currentPage.now < pages.now) currentPage.update(currentPage.now + 1)
+ },
+ span(aria.hidden := true, raw("»"))
+ )
}
def pageLink(page: Int): TagT = {
@@ -59,11 +72,15 @@ trait UniversalPageSelectors extends PageSelectors { self: RenderingContext ⇒
def renderTag(md: ModifierT*): TagT = {
val nav = tag("nav")
- nav(Rx(ul(`class` := "pagination justify-content-center", Rx(pages() == 1).reactiveHide, md)(
- previousPageButton,
- for(page ← 1 to pages()) yield pageButton(page),
- nextPageButton
- )))
+ nav(
+ Rx(
+ ul(`class` := "pagination justify-content-center", Rx(pages() == 1).reactiveHide, md)(
+ previousPageButton,
+ for (page ← 1 to pages()) yield pageButton(page),
+ nextPageButton
+ )
+ )
+ )
}
}
}
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/popover/Popovers.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/popover/Popovers.scala
index d02ea17..f7dc5ae 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/popover/Popovers.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/popover/Popovers.scala
@@ -48,8 +48,8 @@ trait Popovers { self: RenderingContext with BootstrapComponents with Tooltips w
def options: PopoverOptions
}
- /** Add small overlays of content, like those on the iPad, to any element for housing secondary information. Popovers whose both title and content
- * are zero-length are never displayed.
+ /** Add small overlays of content, like those on the iPad, to any element for housing secondary information. Popovers
+ * whose both title and content are zero-length are never displayed.
* @see
* [[http://getbootstrap.com/javascript/#popovers]]
*/
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/popover/TextPopovers.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/popover/TextPopovers.scala
index 4f9bbb4..477f4c6 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/popover/TextPopovers.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/popover/TextPopovers.scala
@@ -11,17 +11,17 @@ trait TextPopovers { self: RenderingContext with BootstrapComponents with Toolti
import scalaTags.all._
import BootstrapAttrs._
-
+
class TextPopover(val options: PopoverOptions) extends Popover {
override def render(md: ModifierT*): ModifierT = {
(`data-toggle` := "popover") +: Bootstrap.dataProps(options.toStrings: _*) +: md
}
}
- /**
- * Add small overlays of content, like those on the iPad, to any element for housing secondary information.
- * Popovers whose both title and content are zero-length are never displayed.
- * @see [[http://getbootstrap.com/javascript/#popovers]]
+ /** Add small overlays of content, like those on the iPad, to any element for housing secondary information. Popovers
+ * whose both title and content are zero-length are never displayed.
+ * @see
+ * [[http://getbootstrap.com/javascript/#popovers]]
*/
object Popover extends PopoverFactory {
def apply(title: Frag, content: Frag, placement: TooltipPlacement = TooltipPlacement.auto): Popover = {
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/progressbar/ProgressBarStyles.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/progressbar/ProgressBarStyles.scala
index 44ac6bb..7f5b9a0 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/progressbar/ProgressBarStyles.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/progressbar/ProgressBarStyles.scala
@@ -14,7 +14,7 @@ trait ProgressBarStyles { self: RenderingContext ⇒
private[progressbar] def style(style: String): ProgressBarStyle = new ProgressBarStyle {
val className = s"progress-bar-$style"
}
- lazy val striped: ProgressBarStyle = style("striped")
+ lazy val striped: ProgressBarStyle = style("striped")
lazy val animated: ProgressBarStyle = style("animated")
}
}
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/progressbar/ProgressBars.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/progressbar/ProgressBars.scala
index a675053..e9f8a89 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/progressbar/ProgressBars.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/progressbar/ProgressBars.scala
@@ -7,7 +7,8 @@ import rx.Rx
import com.karasiq.bootstrap.components.BootstrapComponents
import com.karasiq.bootstrap.context.{ReactiveBinds, ReactiveImplicits, RenderingContext}
-trait ProgressBars extends ProgressBarStyles { self: RenderingContext with BootstrapComponents with ReactiveBinds with ReactiveImplicits ⇒
+trait ProgressBars extends ProgressBarStyles {
+ self: RenderingContext with BootstrapComponents with ReactiveBinds with ReactiveImplicits ⇒
type ProgressBar <: AbstractProgressBar with BootstrapHtmlComponent
val ProgressBar: ProgressBarFactory
@@ -16,13 +17,12 @@ trait ProgressBars extends ProgressBarStyles { self: RenderingContext with Boots
def progress: Rx[Int]
}
- /**
- * Provide up-to-date feedback on the progress of a workflow or action with simple yet flexible progress bars.
- * @see [[http://getbootstrap.com/components/#progress]]
+ /** Provide up-to-date feedback on the progress of a workflow or action with simple yet flexible progress bars.
+ * @see
+ * [[http://getbootstrap.com/components/#progress]]
*/
trait ProgressBarFactory {
def basic(value: Rx[Int]): ProgressBar
def withLabel(value: Rx[Int]): ProgressBar
}
}
-
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/progressbar/UniversalProgressBars.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/progressbar/UniversalProgressBars.scala
index 648d2c8..82f2990 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/progressbar/UniversalProgressBars.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/progressbar/UniversalProgressBars.scala
@@ -33,8 +33,16 @@ trait UniversalProgressBars { self: RenderingContext with BootstrapComponents wi
override def renderTag(md: ModifierT*): TagT = {
div("progress".addClass)(
- div("progress-bar".addClass, role := "progressbar", Rx(aria.valuenow := progress()).auto,
- aria.valuemin := 0, aria.valuemax := 100, Rx[Modifier](width := progress().pct).auto, content, md)
+ div(
+ "progress-bar".addClass,
+ role := "progressbar",
+ Rx(aria.valuenow := progress()).auto,
+ aria.valuemin := 0,
+ aria.valuemax := 100,
+ Rx[Modifier](width := progress().pct).auto,
+ content,
+ md
+ )
)
}
}
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/PagedTables.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/PagedTables.scala
index b6a8347..1d32448 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/PagedTables.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/PagedTables.scala
@@ -14,8 +14,7 @@ trait PagedTables { self: RenderingContext with BootstrapComponents with Tables
type PagedTable <: AbstractPagedTable with BootstrapHtmlComponent
val PagedTable: PagedTableFactory
- /**
- * Table with pagination
+ /** Table with pagination
*/
trait AbstractPagedTable {
def table: Table
@@ -43,7 +42,11 @@ trait PagedTables { self: RenderingContext with BootstrapComponents with Tables
}
}
- private[table] def pagedDataRx(allContent: Rx[Seq[TableRow]], currentPage: Rx[Int], rowsPerPage: Int): Rx[Seq[TableRow]] = {
+ private[table] def pagedDataRx(
+ allContent: Rx[Seq[TableRow]],
+ currentPage: Rx[Int],
+ rowsPerPage: Int
+ ): Rx[Seq[TableRow]] = {
Rx {
val data = allContent()
val page = currentPage()
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/SortableTables.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/SortableTables.scala
index 1b79cc7..1a23454 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/SortableTables.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/SortableTables.scala
@@ -14,9 +14,12 @@ trait SortableTables extends TableCols { self: RenderingContext with PagedTables
val SortableTable: AbstractSortableTableFactory
trait AbstractSortableTableFactory {
- def apply[T](items: Rx[Seq[T]], columns: Rx[Seq[TableCol[T, _]]],
- rowModifiers: T ⇒ Modifier = (_: T) ⇒ Bootstrap.noModifier,
- filterItem: (T, String) ⇒ Boolean = (i: T, f: String) ⇒ i.toString.contains(f)): SortableTable[T]
+ def apply[T](
+ items: Rx[Seq[T]],
+ columns: Rx[Seq[TableCol[T, _]]],
+ rowModifiers: T ⇒ Modifier = (_: T) ⇒ Bootstrap.noModifier,
+ filterItem: (T, String) ⇒ Boolean = (i: T, f: String) ⇒ i.toString.contains(f)
+ ): SortableTable[T]
}
trait AbstractSortableTable[T] {
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/TableCols.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/TableCols.scala
index 14e8395..6634441 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/TableCols.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/TableCols.scala
@@ -16,6 +16,6 @@ trait TableCols { self: RenderingContext ⇒
def apply[T](cols: TableCol[T, _]*) = cols
}
- type GenTableCol[T] = TableCol[T, Any]
+ type GenTableCol[T] = TableCol[T, Any]
type GenTableCols[T] = Seq[GenTableCol[T]]
}
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/TableRows.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/TableRows.scala
index ce07e02..2e35148 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/TableRows.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/TableRows.scala
@@ -12,28 +12,28 @@ trait TableRows { self: RenderingContext with ClassModifiers with Utils ⇒
def styleName: String
}
- //noinspection TypeAnnotation
+ // noinspection TypeAnnotation
object TableRowStyle {
case object Default extends TableRowStyle {
- val styleName = "default"
+ val styleName = "default"
val createModifier = Bootstrap.noModifier
}
- case class Styled(styleName: String) extends TableRowStyle with StyleClassModifier {
- val className = s"table-$styleName"
+ case class Styled(styleName: String) extends TableRowStyle with StyleClassModifier {
+ val className = s"table-$styleName"
val createModifier = className.addClass
}
- def default = Default
- lazy val active = Styled("active")
- lazy val primary = Styled("primary")
+ def default = Default
+ lazy val active = Styled("active")
+ lazy val primary = Styled("primary")
lazy val secondary = Styled("secondary")
- lazy val success = Styled("success")
- lazy val warning = Styled("warning")
- lazy val danger = Styled("danger")
- lazy val info = Styled("info")
- lazy val light = Styled("light")
- lazy val dark = Styled("dark")
+ lazy val success = Styled("success")
+ lazy val warning = Styled("warning")
+ lazy val danger = Styled("danger")
+ lazy val info = Styled("info")
+ lazy val light = Styled("light")
+ lazy val dark = Styled("dark")
}
object TableRow {
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/TableStyles.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/TableStyles.scala
index 3bea98c..30a120d 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/TableStyles.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/TableStyles.scala
@@ -6,17 +6,17 @@ import com.karasiq.bootstrap4.utils.Utils
trait TableStyles { self: RenderingContext with Utils ⇒
import scalaTags.all._
- final class TableStyle private[table](val styleName: String) extends StyleClassModifier {
- val className = s"table-$styleName"
+ final class TableStyle private[table] (val styleName: String) extends StyleClassModifier {
+ val className = s"table-$styleName"
val createModifier = className.addClass
}
object TableStyle {
- lazy val dark = new TableStyle("dark")
- lazy val striped = new TableStyle("striped")
- lazy val hover = new TableStyle("hover")
- lazy val bordered = new TableStyle("bordered")
- lazy val small = new TableStyle("sm")
+ lazy val dark = new TableStyle("dark")
+ lazy val striped = new TableStyle("striped")
+ lazy val hover = new TableStyle("hover")
+ lazy val bordered = new TableStyle("bordered")
+ lazy val small = new TableStyle("sm")
lazy val borderless = new TableStyle("borderless")
}
}
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/UniversalPagedTables.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/UniversalPagedTables.scala
index 88abfa8..c300e1d 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/UniversalPagedTables.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/UniversalPagedTables.scala
@@ -7,7 +7,8 @@ import com.karasiq.bootstrap.context.RenderingContext
import com.karasiq.bootstrap4.pagination.PageSelectors
import com.karasiq.bootstrap4.utils.Utils
-trait UniversalPagedTables extends PagedTables { self: RenderingContext with BootstrapComponents with PageSelectors with Tables with Utils ⇒
+trait UniversalPagedTables extends PagedTables {
+ self: RenderingContext with BootstrapComponents with PageSelectors with Tables with Utils ⇒
import scalaTags.all._
type PagedTable = UniversalPagedTable
@@ -19,18 +20,20 @@ trait UniversalPagedTables extends PagedTables { self: RenderingContext with Boo
trait UniversalPagedTable extends AbstractPagedTable with BootstrapHtmlComponent {
override def renderTag(md: ModifierT*): TagT = {
- div(div(pageSelector), table.renderTag(md:_*))
+ div(div(pageSelector), table.renderTag(md: _*))
}
}
- protected final class UniversalStaticPagedTableImpl(val heading: Rx[Seq[Modifier]],
- val allContent: Rx[Seq[TableRow]],
- val rowsPerPage: Int)
- extends UniversalPagedTable with AbstractStaticPagedTable {
+ protected final class UniversalStaticPagedTableImpl(
+ val heading: Rx[Seq[Modifier]],
+ val allContent: Rx[Seq[TableRow]],
+ val rowsPerPage: Int
+ ) extends UniversalPagedTable
+ with AbstractStaticPagedTable {
val currentPage = Var(1)
- val table: Table = Table(heading, PagedTable.pagedDataRx(allContent, currentPage, rowsPerPage))
+ val table: Table = Table(heading, PagedTable.pagedDataRx(allContent, currentPage, rowsPerPage))
val pageSelector: PageSelector = PageSelector(PagedTable.pagesRx(allContent, rowsPerPage), currentPage)
pageSelector.pages.triggerLater {
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/UniversalSortableTables.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/UniversalSortableTables.scala
index 7da3eb1..80b3520 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/UniversalSortableTables.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/UniversalSortableTables.scala
@@ -8,24 +8,30 @@ import com.karasiq.bootstrap4.grid.Grids
import com.karasiq.bootstrap4.icons.Icons
import com.karasiq.bootstrap4.utils.Utils
-trait UniversalSortableTables extends SortableTables { self: RenderingContext with Tables with PagedTables with Icons with Utils with Forms with Grids ⇒
+trait UniversalSortableTables extends SortableTables {
+ self: RenderingContext with Tables with PagedTables with Icons with Utils with Forms with Grids ⇒
import scalaTags.all._
type SortableTable[T] = UniversalSortableTable[T]
object SortableTable extends AbstractSortableTableFactory {
- def apply[T](items: Rx[Seq[T]], columns: Rx[Seq[TableCol[T, _]]],
- rowModifiers: T ⇒ Modifier = (_: T) ⇒ Bootstrap.noModifier,
- filterItem: (T, String) ⇒ Boolean = (i: T, f: String) ⇒ i.toString.contains(f)): SortableTable[T] = {
+ def apply[T](
+ items: Rx[Seq[T]],
+ columns: Rx[Seq[TableCol[T, _]]],
+ rowModifiers: T ⇒ Modifier = (_: T) ⇒ Bootstrap.noModifier,
+ filterItem: (T, String) ⇒ Boolean = (i: T, f: String) ⇒ i.toString.contains(f)
+ ): SortableTable[T] = {
Builder(columns, rowModifiers, filterItem).createTable(items)
}
- case class Builder[T](columns: Rx[Seq[TableCol[T, _]]] = Var(Nil),
- rowModifiers: T ⇒ Modifier = (_: T) ⇒ Bootstrap.noModifier,
- filterItem: (T, String) ⇒ Boolean = (i: T, f: String) ⇒ i.toString.contains(f)) {
+ case class Builder[T](
+ columns: Rx[Seq[TableCol[T, _]]] = Var(Nil),
+ rowModifiers: T ⇒ Modifier = (_: T) ⇒ Bootstrap.noModifier,
+ filterItem: (T, String) ⇒ Boolean = (i: T, f: String) ⇒ i.toString.contains(f)
+ ) {
def withColumns(columns: Rx[Seq[TableCol[T, _]]]) = copy(columns = columns)
- def withColumns(columns: TableCol[T, _]*) = copy(columns = Var(columns.asInstanceOf[GenTableCols[T]]))
- def withRowModifiers(rowModifiers: T ⇒ Modifier) = copy(rowModifiers = rowModifiers)
+ def withColumns(columns: TableCol[T, _]*) = copy(columns = Var(columns.asInstanceOf[GenTableCols[T]]))
+ def withRowModifiers(rowModifiers: T ⇒ Modifier) = copy(rowModifiers = rowModifiers)
def withFilter(filterItem: (T, String) ⇒ Boolean) = copy(filterItem = filterItem)
def createTable(items: Rx[Seq[T]]): SortableTable[T] = {
@@ -34,13 +40,13 @@ trait UniversalSortableTables extends SortableTables { self: RenderingContext wi
new UniversalSortableTable[T] {
val items = _items
- val columns = Builder.this.columns.asInstanceOf[Rx[GenTableCols[T]]]
- val sortByColumn = Var(columns.now.head)
+ val columns = Builder.this.columns.asInstanceOf[Rx[GenTableCols[T]]]
+ val sortByColumn = Var(columns.now.head)
val reverseOrdering = Var(false)
- val filter = Var("")
+ val filter = Var("")
def filterItem(item: T, filter: String): Boolean = Builder.this.filterItem(item, filter)
- def rowModifiers(item: T): Modifier = Builder.this.rowModifiers(item)
+ def rowModifiers(item: T): Modifier = Builder.this.rowModifiers(item)
}
}
@@ -68,13 +74,14 @@ trait UniversalSortableTables extends SortableTables { self: RenderingContext wi
val content = Rx {
val columns = this.columns()
- val items = this.items()
+ val items = this.items()
val filter = this.filter()
- val filteredItems = if (hideFilterRx() || filter.isEmpty) items else items.filter(item ⇒ filterItem(item, filter))
+ val filteredItems =
+ if (hideFilterRx() || filter.isEmpty) items else items.filter(item ⇒ filterItem(item, filter))
val selectedCol = this.sortByColumn()
- val ordering = if (reverseOrdering()) selectedCol.ord.reverse else selectedCol.ord
+ val ordering = if (reverseOrdering()) selectedCol.ord.reverse else selectedCol.ord
val sortedItems = filteredItems.sortBy(item ⇒ selectedCol.extract(item))(ordering)
sortedItems.map(item ⇒ TableRow(columns.map(col ⇒ col.render(item)), rowModifiers(item)))
@@ -86,7 +93,7 @@ trait UniversalSortableTables extends SortableTables { self: RenderingContext wi
def renderTag(md: ModifierT*): TagT = {
div(
GridSystem.mkRow(Form(FormInput.text("", filter.reactiveInput)), hideFilterRx.reactiveHide),
- GridSystem.mkRow(pagedTable.renderTag(md:_*))
+ GridSystem.mkRow(pagedTable.renderTag(md: _*))
)
}
}
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/UniversalTables.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/UniversalTables.scala
index 2312edc..34ae916 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/UniversalTables.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/table/UniversalTables.scala
@@ -37,6 +37,6 @@ trait UniversalTables { self: RenderingContext with BootstrapComponents with Tab
}
}
- protected class StaticUniversalTable(val heading: Rx[Seq[Modifier]],
- val content: Rx[Seq[TableRow]]) extends UniversalTable
+ protected class StaticUniversalTable(val heading: Rx[Seq[Modifier]], val content: Rx[Seq[TableRow]])
+ extends UniversalTable
}
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/tooltip/TextTooltips.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/tooltip/TextTooltips.scala
index fe8b48f..c256081 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/tooltip/TextTooltips.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/tooltip/TextTooltips.scala
@@ -13,15 +13,15 @@ trait TextTooltips { self: RenderingContext with BootstrapComponents with Toolti
class TextTooltip(val options: TooltipOptions) extends AbstractTooltip {
override def render(md: ModifierT*): ModifierT = {
- (`data-toggle` := "tooltip") +: Bootstrap.dataProps(options.toStrings:_*) +: md
+ (`data-toggle` := "tooltip") +: Bootstrap.dataProps(options.toStrings: _*) +: md
}
}
- /**
- * Inspired by the excellent jQuery.tipsy plugin written by Jason Frame;
- * Tooltips are an updated version, which don't rely on images, use CSS3 for animations, and data-attributes for local title storage.
- * Tooltips with zero-length titles are never displayed.
- * @see [[http://getbootstrap.com/javascript/#tooltips]]
+ /** Inspired by the excellent jQuery.tipsy plugin written by Jason Frame; Tooltips are an updated version, which don't
+ * rely on images, use CSS3 for animations, and data-attributes for local title storage. Tooltips with zero-length
+ * titles are never displayed.
+ * @see
+ * [[http://getbootstrap.com/javascript/#tooltips]]
*/
object Tooltip extends TooltipFactory {
def apply(content: Frag, placement: TooltipPlacement): AbstractTooltip = {
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/tooltip/TooltipStyles.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/tooltip/TooltipStyles.scala
index 2905357..b6c6e4b 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/tooltip/TooltipStyles.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/tooltip/TooltipStyles.scala
@@ -5,17 +5,17 @@ import com.karasiq.bootstrap.context.RenderingContext
trait TooltipStyles { self: RenderingContext ⇒
import scalaTags.all._
- final class TooltipPlacement private[tooltip](val placement: String) {
+ final class TooltipPlacement private[tooltip] (val placement: String) {
override def toString: String = placement
}
- //noinspection TypeAnnotation
+ // noinspection TypeAnnotation
object TooltipPlacement {
private[this] def placement(str: String): TooltipPlacement = new TooltipPlacement(str)
- val auto = placement("auto")
- val left = placement("left")
- val right = placement("right")
- val top = placement("top")
- val bottom = placement("bottom")
+ val auto = placement("auto")
+ val left = placement("left")
+ val right = placement("right")
+ val top = placement("top")
+ val bottom = placement("bottom")
}
}
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/tooltip/Tooltips.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/tooltip/Tooltips.scala
index 9fde78b..303003b 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/tooltip/Tooltips.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/tooltip/Tooltips.scala
@@ -11,9 +11,18 @@ trait Tooltips extends TooltipStyles { self: RenderingContext with BootstrapComp
type Tooltip <: AbstractTooltip
val Tooltip: TooltipFactory
- case class TooltipOptions(animation: Boolean = true, container: String = "", delay: String = "",
- html: Boolean = false, placement: TooltipPlacement = TooltipPlacement.right, selector: String = "", template: String = "",
- title: Frag = "", trigger: String = "", viewport: String = "") {
+ case class TooltipOptions(
+ animation: Boolean = true,
+ container: String = "",
+ delay: String = "",
+ html: Boolean = false,
+ placement: TooltipPlacement = TooltipPlacement.right,
+ selector: String = "",
+ template: String = "",
+ title: Frag = "",
+ trigger: String = "",
+ viewport: String = ""
+ ) {
def toStrings: Seq[(String, String)] = {
def opt[T](name: String, value: T, default: T) = Option(name → value).filterNot(_._2 == default)
Seq(
@@ -35,11 +44,11 @@ trait Tooltips extends TooltipStyles { self: RenderingContext with BootstrapComp
def options: TooltipOptions
}
- /**
- * Inspired by the excellent jQuery.tipsy plugin written by Jason Frame;
- * Tooltips are an updated version, which don't rely on images, use CSS3 for animations, and data-attributes for local title storage.
- * Tooltips with zero-length titles are never displayed.
- * @see [[http://getbootstrap.com/javascript/#tooltips]]
+ /** Inspired by the excellent jQuery.tipsy plugin written by Jason Frame; Tooltips are an updated version, which don't
+ * rely on images, use CSS3 for animations, and data-attributes for local title storage. Tooltips with zero-length
+ * titles are never displayed.
+ * @see
+ * [[http://getbootstrap.com/javascript/#tooltips]]
*/
trait TooltipFactory {
def apply(content: Frag, placement: TooltipPlacement = TooltipPlacement.auto): AbstractTooltip
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/utils/UniversalUtils.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/utils/UniversalUtils.scala
index 77aafcf..fcc7cb0 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/utils/UniversalUtils.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/utils/UniversalUtils.scala
@@ -19,259 +19,282 @@ trait UniversalUtils { self: RenderingContext with Icons with Buttons with Class
object BootstrapAttrs extends DefaultBootstrapAttrs
trait UniversalUtils extends AbstractUtils {
- /**
- * A lightweight, flexible component that can optionally extend the entire viewport to showcase key content on your site.
- * @see [[https://getbootstrap.com/docs/4.0/components/jumbotron/]]
+
+ /** A lightweight, flexible component that can optionally extend the entire viewport to showcase key content on your
+ * site.
+ * @see
+ * [[https://getbootstrap.com/docs/4.0/components/jumbotron/]]
*/
lazy val jumbotron: Tag = div(`class` := "jumbotron")
- /**
- * Easily highlight new or unread items by adding a badge to links, Bootstrap navs, and more.
- * @see [[https://getbootstrap.com/components/#badges]]
+ /** Easily highlight new or unread items by adding a badge to links, Bootstrap navs, and more.
+ * @see
+ * [[https://getbootstrap.com/components/#badges]]
*/
lazy val badge: Tag = span(`class` := "badge")
- /**
- * Default button
+ /** Default button
*/
lazy val button: Tag = {
Button().renderTag()
}
- /**
- * Default icon
- * @param name Icon name
- * @see [[https://getbootstrap.com/components/#glyphicons]]
+ /** Default icon
+ * @param name
+ * Icon name
+ * @see
+ * [[https://getbootstrap.com/components/#glyphicons]]
*/
def icon(name: String): IconModifier = {
Icon(name)
}
- /**
- * Generates unique element ID
+ /** Generates unique element ID
*/
def newId: String = {
s"bs-auto-${UUID.randomUUID()}"
}
- /**
- * Add classes to an `img` element to easily style images in any project.
- * @see [[http://getbootstrap.com/css/#images-shapes]]
+ /** Add classes to an `img` element to easily style images in any project.
+ * @see
+ * [[http://getbootstrap.com/css/#images-shapes]]
*/
object image extends AbstractImageUtils {
- final class ImageStyle private[bootstrap4](val styleName: String) extends AbstractImageStyle with StyleClassModifier {
- val className = s"img-$styleName"
+ final class ImageStyle private[bootstrap4] (val styleName: String)
+ extends AbstractImageStyle
+ with StyleClassModifier {
+ val className = s"img-$styleName"
val createModifier = className.addClass
}
- /**
- * Images in Bootstrap 3 can be made responsive-friendly via the addition of the .img-responsive class.
- * This applies max-width: 100%;, height: auto; and display: block; to the image so that it scales nicely to the parent element.
- * To center images which use the .img-responsive class, use .center-block instead of .text-center.
- * See the helper classes section for more details about .center-block usage.
- * @see [[http://getbootstrap.com/css/#images-responsive]]
+ /** Images in Bootstrap 3 can be made responsive-friendly via the addition of the .img-responsive class. This
+ * applies max-width: 100%;, height: auto; and display: block; to the image so that it scales nicely to the
+ * parent element. To center images which use the .img-responsive class, use .center-block instead of
+ * .text-center. See the helper classes section for more details about .center-block usage.
+ * @see
+ * [[http://getbootstrap.com/css/#images-responsive]]
*/
lazy val responsive = new ImageStyle("responsive")
- lazy val rounded = new ImageStyle("rounded")
- lazy val circle = new ImageStyle("circle")
+ lazy val rounded = new ImageStyle("rounded")
+ lazy val circle = new ImageStyle("circle")
lazy val thumbnail = new ImageStyle("thumbnail")
}
sealed trait TextModifier extends StyleClassModifier {
def styleName: String
- def className = s"text-$styleName"
+ def className = s"text-$styleName"
lazy val createModifier = className.addClass
}
- /**
- * Easily realign text to components with text alignment classes.
- * @see [[http://getbootstrap.com/css/#type-alignment]]
+ /** Easily realign text to components with text alignment classes.
+ * @see
+ * [[http://getbootstrap.com/css/#type-alignment]]
*/
object textAlign extends AbstractTextAlignments {
- final class TextAlignment private[bootstrap4](val styleName: String) extends TextModifier with AbstractTextAlignment
+ final class TextAlignment private[bootstrap4] (val styleName: String)
+ extends TextModifier
+ with AbstractTextAlignment
- lazy val left = new TextAlignment("left")
- lazy val center = new TextAlignment("center")
- lazy val right = new TextAlignment("right")
+ lazy val left = new TextAlignment("left")
+ lazy val center = new TextAlignment("center")
+ lazy val right = new TextAlignment("right")
lazy val justify = new TextAlignment("justify")
- lazy val nowrap = new TextAlignment("nowrap")
+ lazy val nowrap = new TextAlignment("nowrap")
}
- /**
- * Transform text in components with text capitalization classes.
- * @see [[http://getbootstrap.com/css/#type-transformation]]
+ /** Transform text in components with text capitalization classes.
+ * @see
+ * [[http://getbootstrap.com/css/#type-transformation]]
*/
object textTransform extends AbstractTextTransformations {
- final class TextTransformation private[bootstrap4](val styleName: String) extends TextModifier with AbstractTextTransformation
+ final class TextTransformation private[bootstrap4] (val styleName: String)
+ extends TextModifier
+ with AbstractTextTransformation
- lazy val lowercase = new TextTransformation("lowercase")
- lazy val uppercase = new TextTransformation("uppercase")
+ lazy val lowercase = new TextTransformation("lowercase")
+ lazy val uppercase = new TextTransformation("uppercase")
lazy val capitalize = new TextTransformation("capitalize")
}
- /**
- * Convey meaning through color with a handful of emphasis utility classes.
- * These may also be applied to links and will darken on hover just like our default link styles.
- * @see [[http://getbootstrap.com/css/#helper-classes-colors]]
+ /** Convey meaning through color with a handful of emphasis utility classes. These may also be applied to links and
+ * will darken on hover just like our default link styles.
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-colors]]
*/
object textStyle extends AbstractTextStyles {
- final class TextStyle private[bootstrap4](val styleName: String) extends TextModifier with AbstractTextStyle
-
- lazy val muted = new TextStyle("muted")
- lazy val primary = new TextStyle("primary")
- lazy val secondary = new TextStyle("secondary")
- lazy val success = new TextStyle("success")
- lazy val info = new TextStyle("info")
- lazy val warning = new TextStyle("warning")
- lazy val danger = new TextStyle("danger")
- lazy val light = new TextStyle("light")
- lazy val dark = new TextStyle("dark")
- lazy val white = new TextStyle("white")
- lazy val hide = new TextStyle("hide")
- lazy val monospace = new TextStyle("monospace")
- lazy val body = new TextStyle("body")
+ final class TextStyle private[bootstrap4] (val styleName: String) extends TextModifier with AbstractTextStyle
+
+ lazy val muted = new TextStyle("muted")
+ lazy val primary = new TextStyle("primary")
+ lazy val secondary = new TextStyle("secondary")
+ lazy val success = new TextStyle("success")
+ lazy val info = new TextStyle("info")
+ lazy val warning = new TextStyle("warning")
+ lazy val danger = new TextStyle("danger")
+ lazy val light = new TextStyle("light")
+ lazy val dark = new TextStyle("dark")
+ lazy val white = new TextStyle("white")
+ lazy val hide = new TextStyle("hide")
+ lazy val monospace = new TextStyle("monospace")
+ lazy val body = new TextStyle("body")
lazy val `black-50%` = new TextStyle("black-50")
lazy val `white-50%` = new TextStyle("white-50")
}
- /**
- * Similar to the contextual text color classes, easily set the background of an element to any contextual class.
+ /** Similar to the contextual text color classes, easily set the background of an element to any contextual class.
* Anchor components will darken on hover, just like the text classes.
- * @see [[http://getbootstrap.com/css/#helper-classes-backgrounds]]
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-backgrounds]]
*/
object background extends AbstractBackgroundStyles {
- final class BackgroundStyle private[bootstrap4](val styleName: String) extends AbstractBackgroundStyle with StyleClassModifier {
- val className = s"bg-$styleName"
+ final class BackgroundStyle private[bootstrap4] (val styleName: String)
+ extends AbstractBackgroundStyle
+ with StyleClassModifier {
+ val className = s"bg-$styleName"
val createModifier = className.addClass
}
- lazy val primary = new BackgroundStyle("primary")
- lazy val secondary = new BackgroundStyle("secondary")
- lazy val success = new BackgroundStyle("success")
- lazy val info = new BackgroundStyle("info")
- lazy val warning = new BackgroundStyle("warning")
- lazy val danger = new BackgroundStyle("danger")
- lazy val light = new BackgroundStyle("light")
- lazy val dark = new BackgroundStyle("dark")
- lazy val white = new BackgroundStyle("white")
+ lazy val primary = new BackgroundStyle("primary")
+ lazy val secondary = new BackgroundStyle("secondary")
+ lazy val success = new BackgroundStyle("success")
+ lazy val info = new BackgroundStyle("info")
+ lazy val warning = new BackgroundStyle("warning")
+ lazy val danger = new BackgroundStyle("danger")
+ lazy val light = new BackgroundStyle("light")
+ lazy val dark = new BackgroundStyle("dark")
+ lazy val white = new BackgroundStyle("white")
lazy val transparent = new BackgroundStyle("transparent")
}
object border extends AbstractBorders {
- lazy val border = "border".addClass
- lazy val border0 = "border0".addClass
- lazy val borderTop0 = "border-top-0".addClass
+ lazy val border = "border".addClass
+ lazy val border0 = "border0".addClass
+ lazy val borderTop0 = "border-top-0".addClass
lazy val borderBottom0 = "border-bottom-0".addClass
- lazy val borderLeft0 = "border-left-0".addClass
- lazy val borderRight0 = "border-right-0".addClass
+ lazy val borderLeft0 = "border-left-0".addClass
+ lazy val borderRight0 = "border-right-0".addClass
}
- final class BorderStyle private[bootstrap4](val styleName: String) extends AbstractBorderStyle with StyleClassModifier {
- val className = s"border-$styleName"
+ final class BorderStyle private[bootstrap4] (val styleName: String)
+ extends AbstractBorderStyle
+ with StyleClassModifier {
+ val className = s"border-$styleName"
val createModifier = className.addClass
}
object borderStyle extends AbstractBorderStyles {
- lazy val primary = new BorderStyle("primary")
+ lazy val primary = new BorderStyle("primary")
lazy val secondary = new BorderStyle("secondary")
- lazy val success = new BorderStyle("success")
- lazy val info = new BorderStyle("info")
- lazy val warning = new BorderStyle("warning")
- lazy val danger = new BorderStyle("danger")
- lazy val light = new BorderStyle("light")
- lazy val dark = new BorderStyle("dark")
- lazy val white = new BorderStyle("white")
+ lazy val success = new BorderStyle("success")
+ lazy val info = new BorderStyle("info")
+ lazy val warning = new BorderStyle("warning")
+ lazy val danger = new BorderStyle("danger")
+ lazy val light = new BorderStyle("light")
+ lazy val dark = new BorderStyle("dark")
+ lazy val white = new BorderStyle("white")
}
object borderRounding extends AbstractBorderRounding {
- lazy val rounded = "rounded".addClass
- lazy val roundedTop = "rounded-top".addClass
+ lazy val rounded = "rounded".addClass
+ lazy val roundedTop = "rounded-top".addClass
lazy val roundedBottom = "rounded-bottom".addClass
- lazy val roundedRight = "rounded-right".addClass
- lazy val roundedLeft = "rounded-left".addClass
+ lazy val roundedRight = "rounded-right".addClass
+ lazy val roundedLeft = "rounded-left".addClass
lazy val roundedCircle = "rounded-circle".addClass
- lazy val rounded0 = "rounded-0".addClass
+ lazy val rounded0 = "rounded-0".addClass
}
- /**
- * Use the generic close icon for dismissing content like modals and alerts.
- * @see [[http://getbootstrap.com/css/#helper-classes-close]]
+ /** Use the generic close icon for dismissing content like modals and alerts.
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-close]]
*/
lazy val closeIcon: Tag = {
- scalaTags.tags.button(`type` := "button", `class` := "close", aria.label := "Close", span(aria.hidden := true, raw("×")))
+ scalaTags.tags.button(
+ `type` := "button",
+ `class` := "close",
+ aria.label := "Close",
+ span(aria.hidden := true, raw("×"))
+ )
}
- /**
- * Use carets to indicate dropdown functionality and direction.
- * Note that the default caret will reverse automatically in dropup menus.
- * @see [[http://getbootstrap.com/css/#helper-classes-carets]]
+ /** Use carets to indicate dropdown functionality and direction. Note that the default caret will reverse
+ * automatically in dropup menus.
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-carets]]
*/
lazy val caret: Tag = span(`class` := "caret")
- /**
- * Float an element to the left or right with a class.
- * `!important` is included to avoid specificity issues.
- * @note To align components in navbars with utility classes, use .navbar-left or .navbar-right instead. See the navbar docs for details.
- * @see [[http://getbootstrap.com/css/#helper-classes-floats]]
+ /** Float an element to the left or right with a class. `!important` is included to avoid specificity issues.
+ * @note
+ * To align components in navbars with utility classes, use .navbar-left or .navbar-right instead. See the navbar
+ * docs for details.
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-floats]]
*/
object pull extends AbstractPullModifiers {
- final class PullModifier private[bootstrap4](val styleName: String) extends AbstractPullModifier with StyleClassModifier {
- val className = s"pull-$styleName"
+ final class PullModifier private[bootstrap4] (val styleName: String)
+ extends AbstractPullModifier
+ with StyleClassModifier {
+ val className = s"pull-$styleName"
val createModifier = className.addClass
}
- lazy val left = new PullModifier("left")
+ lazy val left = new PullModifier("left")
lazy val right = new PullModifier("right")
}
- /**
- * Set an element to display: block and center via margin
- * @see [[http://getbootstrap.com/css/#helper-classes-center]]
+ /** Set an element to display: block and center via margin
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-center]]
*/
lazy val centerBlock = "center-block".addClass
- /**
- * Easily clear floats by adding `.clearfix` to the parent element.
- * Utilizes [[http://nicolasgallagher.com/micro-clearfix-hack/ the micro clearfix]] as popularized by Nicolas Gallagher.
- * @see [[http://getbootstrap.com/css/#helper-classes-clearfix]]
+ /** Easily clear floats by adding `.clearfix` to the parent element. Utilizes
+ * [[http://nicolasgallagher.com/micro-clearfix-hack/ the micro clearfix]] as popularized by Nicolas Gallagher.
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-clearfix]]
*/
lazy val clearFix = "clearfix".addClass
- /**
- * Force an element to be shown or hidden (including for screen readers) with the use of `.show` and `.hidden` classes.
- * These classes use `!important` to avoid specificity conflicts, just like the quick floats.
- * They are only available for block level toggling. They can also be used as mixins.
- * `.hide` is available, but it does not always affect screen readers and is deprecated as of v3.0.1. Use `.hidden` or `.sr-only` instead.
- * Furthermore, `.invisible` can be used to toggle only the visibility of an element, meaning its display is not modified and the element can still affect the flow of the document.
- * @see [[http://getbootstrap.com/css/#helper-classes-show-hide]]
+ /** Force an element to be shown or hidden (including for screen readers) with the use of `.show` and `.hidden`
+ * classes. These classes use `!important` to avoid specificity conflicts, just like the quick floats. They are
+ * only available for block level toggling. They can also be used as mixins. `.hide` is available, but it does not
+ * always affect screen readers and is deprecated as of v3.0.1. Use `.hidden` or `.sr-only` instead. Furthermore,
+ * `.invisible` can be used to toggle only the visibility of an element, meaning its display is not modified and
+ * the element can still affect the flow of the document.
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-show-hide]]
*/
object visibility extends AbstractVisibilityModifiers {
- final class ElementVisibility private[bootstrap4](val styleName: String) extends AbstractVisibilityModifier with StyleClassModifier {
- val className = styleName
+ final class ElementVisibility private[bootstrap4] (val styleName: String)
+ extends AbstractVisibilityModifier
+ with StyleClassModifier {
+ val className = styleName
val createModifier = className.addClass
}
- lazy val visible = new ElementVisibility("visible")
+ lazy val visible = new ElementVisibility("visible")
lazy val invisible = new ElementVisibility("invisible")
}
- class DisplayModifier private[bootstrap4](val size: Option[String], val styleName: String) extends AbstractDisplayModifier {
- val className = size.fold("d-" + styleName)(screenSize ⇒ "d-" + screenSize + "-" + styleName)
+ class DisplayModifier private[bootstrap4] (val size: Option[String], val styleName: String)
+ extends AbstractDisplayModifier {
+ val className = size.fold("d-" + styleName)(screenSize ⇒ "d-" + screenSize + "-" + styleName)
val createModifier = className.addClass
}
- class DisplayModifiers private[bootstrap4](size: Option[String]) extends AbstractDisplayModifiers {
+ class DisplayModifiers private[bootstrap4] (size: Option[String]) extends AbstractDisplayModifiers {
protected def displayModifier(str: String): DisplayModifier = new DisplayModifier(size, str)
- lazy val none = displayModifier("none")
- lazy val inline = displayModifier("inline")
+ lazy val none = displayModifier("none")
+ lazy val inline = displayModifier("inline")
lazy val inlineBlock = displayModifier("inline-block")
- lazy val block = displayModifier("block")
- lazy val table = displayModifier("table")
- lazy val tableCell = displayModifier("table-cell")
- lazy val flex = displayModifier("flex")
- lazy val inlineFlex = displayModifier("inline-flex")
+ lazy val block = displayModifier("block")
+ lazy val table = displayModifier("table")
+ lazy val tableCell = displayModifier("table-cell")
+ lazy val flex = displayModifier("flex")
+ lazy val inlineFlex = displayModifier("inline-flex")
}
object display extends DisplayModifiers(None) {
@@ -281,34 +304,37 @@ trait UniversalUtils { self: RenderingContext with Icons with Buttons with Class
lazy val xl = new DisplayModifiers(Some("xl"))
}
- class ShadowModifier private[bootstrap4](val styleName: String) extends AbstractShadowModifier {
+ class ShadowModifier private[bootstrap4] (val styleName: String) extends AbstractShadowModifier {
val createModifier: ModifierT = if (styleName.isEmpty) "shadow" else "shadow-" + styleName
}
object shadow extends AbstractShadowModifiers {
- def none = new ShadowModifier("none")
- def small = new ShadowModifier("sm")
+ def none = new ShadowModifier("none")
+ def small = new ShadowModifier("sm")
def regular = new ShadowModifier("")
- def large = new ShadowModifier("lg")
+ def large = new ShadowModifier("lg")
}
- /**
- * Hide an element to all devices except screen readers with `.sr-only`
- * @see [[http://getbootstrap.com/css/#helper-classes-screen-readers]]
+ /** Hide an element to all devices except screen readers with `.sr-only`
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-screen-readers]]
*/
lazy val srOnly = "sr-only".addClass
- /**
- * Combine [[com.karasiq.bootstrap4.utils.UniversalUtils.UniversalUtils#srOnly() .sr-only]] with `.sr-only-focusable` to show the element again when it's focused (e.g. by a keyboard-only user)
- * @see [[http://getbootstrap.com/css/#helper-classes-screen-readers]]
+ /** Combine [[com.karasiq.bootstrap4.utils.UniversalUtils.UniversalUtils#srOnly() .sr-only]] with
+ * `.sr-only-focusable` to show the element again when it's focused (e.g. by a keyboard-only user)
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-screen-readers]]
*/
lazy val srOnlyFocusable: Modifier = Array("sr-only", "sr-only-focusable").map(_.addClass)
- /**
- * Appends `data-%property%` attributes to the element
- * @param props Properties
- * @tparam T Value type
- * @return Modifier
+ /** Appends `data-%property%` attributes to the element
+ * @param props
+ * Properties
+ * @tparam T
+ * Value type
+ * @return
+ * Modifier
*/
def dataProps[T: AttrValue](props: (String, T)*): Modifier = {
props.map { case (name, value) ⇒
@@ -316,22 +342,17 @@ trait UniversalUtils { self: RenderingContext with Icons with Buttons with Class
}
}
- /**
- * Non-breaking Space
- * A common character entity used in HTML is the non-breaking space:
- * A non-breaking space is a space that will not break into a new line.
+ /** Non-breaking Space A common character entity used in HTML is the non-breaking space: A non-breaking space
+ * is a space that will not break into a new line.
*/
val nbsp = raw(" ")
- /**
- * No-op frag
+ /** No-op frag
*/
val noContent = (): FragT
- /**
- * No-op modifier
+ /** No-op modifier
*/
val noModifier = (): ModifierT
}
}
-
diff --git a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/utils/Utils.scala b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/utils/Utils.scala
index c6e71a5..da161e5 100644
--- a/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/utils/Utils.scala
+++ b/library-v4/shared/src/main/scala/com/karasiq/bootstrap4/utils/Utils.scala
@@ -15,18 +15,18 @@ trait Utils { self: RenderingContext with Icons with Buttons with ClassModifiers
val BootstrapAttrs: BootstrapAttrs
trait DefaultBootstrapAttrs {
- lazy val `data-toggle` = attr("data-toggle")
- lazy val `data-target` = attr("data-target")
+ lazy val `data-toggle` = attr("data-toggle")
+ lazy val `data-target` = attr("data-target")
lazy val `data-slide-to` = attr("data-slide-to")
- lazy val `data-ride` = attr("data-ride")
- lazy val `data-slide` = attr("data-slide")
- lazy val `data-dismiss` = attr("data-dismiss")
+ lazy val `data-ride` = attr("data-ride")
+ lazy val `data-slide` = attr("data-slide")
+ lazy val `data-dismiss` = attr("data-dismiss")
}
trait AbstractUtils {
- type FragT = Frag
- type ModifierT = Modifier
- type ElementT = Tag
+ type FragT = Frag
+ type ModifierT = Modifier
+ type ElementT = Tag
type ElementIdT = String
val image: AbstractImageUtils
@@ -42,95 +42,94 @@ trait Utils { self: RenderingContext with Icons with Buttons with ClassModifiers
val display: AbstractDisplayModifiers
val shadow: AbstractShadowModifiers
- /**
- * Generates unique element ID
+ /** Generates unique element ID
*/
def newId: ElementIdT
- /**
- * A lightweight, flexible component that can optionally extend the entire viewport to showcase key content on your site.
- * @see [[https://getbootstrap.com/components/#jumbotron]]
+ /** A lightweight, flexible component that can optionally extend the entire viewport to showcase key content on your
+ * site.
+ * @see
+ * [[https://getbootstrap.com/components/#jumbotron]]
*/
def jumbotron: ElementT
- /**
- * Easily highlight new or unread items by adding a badge to links, Bootstrap navs, and more.
- * @see [[https://getbootstrap.com/components/#badges]]
+ /** Easily highlight new or unread items by adding a badge to links, Bootstrap navs, and more.
+ * @see
+ * [[https://getbootstrap.com/components/#badges]]
*/
def badge: ElementT
- /**
- * Default button
+ /** Default button
*/
def button: ElementT
- /**
- * Default icon
- * @param name Icon name
- * @see [[https://getbootstrap.com/components/#glyphicons]]
+ /** Default icon
+ * @param name
+ * Icon name
+ * @see
+ * [[https://getbootstrap.com/components/#glyphicons]]
*/
def icon(name: String): IconModifier
- /**
- * Use the generic close icon for dismissing content like modals and alerts.
- * @see [[http://getbootstrap.com/css/#helper-classes-close]]
+ /** Use the generic close icon for dismissing content like modals and alerts.
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-close]]
*/
def closeIcon: ElementT
- /**
- * Use carets to indicate dropdown functionality and direction.
- * Note that the default caret will reverse automatically in dropup menus.
- * @see [[http://getbootstrap.com/css/#helper-classes-carets]]
+ /** Use carets to indicate dropdown functionality and direction. Note that the default caret will reverse
+ * automatically in dropup menus.
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-carets]]
*/
def caret: ElementT
- /**
- * Set an element to display: block and center via margin
- * @see [[http://getbootstrap.com/css/#helper-classes-center]]
+ /** Set an element to display: block and center via margin
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-center]]
*/
def centerBlock: ModifierT
- /**
- * Easily clear floats by adding `.clearfix` to the parent element.
- * Utilizes [[http://nicolasgallagher.com/micro-clearfix-hack/ the micro clearfix]] as popularized by Nicolas Gallagher.
- * @see [[http://getbootstrap.com/css/#helper-classes-clearfix]]
+ /** Easily clear floats by adding `.clearfix` to the parent element. Utilizes
+ * [[http://nicolasgallagher.com/micro-clearfix-hack/ the micro clearfix]] as popularized by Nicolas Gallagher.
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-clearfix]]
*/
def clearFix: ModifierT
- /**
- * Hide an element to all devices except screen readers with `.sr-only`
- * @see [[http://getbootstrap.com/css/#helper-classes-screen-readers]]
+ /** Hide an element to all devices except screen readers with `.sr-only`
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-screen-readers]]
*/
def srOnly: ModifierT
- /**
- * Combine [[com.karasiq.bootstrap4.utils.Utils.AbstractUtils#srOnly() .sr-only]] with `.sr-only-focusable` to show the element again when it's focused (e.g. by a keyboard-only user)
- * @see [[http://getbootstrap.com/css/#helper-classes-screen-readers]]
+ /** Combine [[com.karasiq.bootstrap4.utils.Utils.AbstractUtils#srOnly() .sr-only]] with `.sr-only-focusable` to show
+ * the element again when it's focused (e.g. by a keyboard-only user)
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-screen-readers]]
*/
def srOnlyFocusable: ModifierT
- /**
- * Appends `data-%property%` attributes to the element
- * @param props Properties
- * @tparam T Value type
- * @return Modifier
+ /** Appends `data-%property%` attributes to the element
+ * @param props
+ * Properties
+ * @tparam T
+ * Value type
+ * @return
+ * Modifier
*/
def dataProps[T: AttrValue](props: (String, T)*): ModifierT
- /**
- * Non-breaking Space
- * A common character entity used in HTML is the non-breaking space:
- * A non-breaking space is a space that will not break into a new line.
+ /** Non-breaking Space A common character entity used in HTML is the non-breaking space: A non-breaking space
+ * is a space that will not break into a new line.
*/
def nbsp: ModifierT
- /**
- * No-op frag
+ /** No-op frag
*/
def noContent: FragT
- /**
- * No-op modifier
+ /** No-op modifier
*/
def noModifier: ModifierT
}
@@ -143,28 +142,29 @@ trait Utils { self: RenderingContext with Icons with Buttons with ClassModifiers
def className: String
}
- trait AbstractImageStyle extends StyleModifier
- trait AbstractTextStyle extends StyleModifier
- trait AbstractTextAlignment extends AbstractTextStyle
+ trait AbstractImageStyle extends StyleModifier
+ trait AbstractTextStyle extends StyleModifier
+ trait AbstractTextAlignment extends AbstractTextStyle
trait AbstractTextTransformation extends AbstractTextStyle
- trait AbstractBackgroundStyle extends StyleModifier
- trait AbstractBorderStyle extends StyleModifier
- trait AbstractPullModifier extends StyleModifier
+ trait AbstractBackgroundStyle extends StyleModifier
+ trait AbstractBorderStyle extends StyleModifier
+ trait AbstractPullModifier extends StyleModifier
trait AbstractVisibilityModifier extends StyleModifier
- trait AbstractDisplayModifier extends StyleModifier
- trait AbstractShadowModifier extends StyleModifier
+ trait AbstractDisplayModifier extends StyleModifier
+ trait AbstractShadowModifier extends StyleModifier
- /**
- * Add classes to an `img` element to easily style images in any project.
- * @see [[http://getbootstrap.com/css/#images-shapes]]
+ /** Add classes to an `img` element to easily style images in any project.
+ * @see
+ * [[http://getbootstrap.com/css/#images-shapes]]
*/
trait AbstractImageUtils {
- /**
- * Images in Bootstrap 3 can be made responsive-friendly via the addition of the .img-responsive class.
- * This applies max-width: 100%;, height: auto; and display: block; to the image so that it scales nicely to the parent element.
- * To center images which use the .img-responsive class, use .center-block instead of .text-center.
- * See the helper classes section for more details about .center-block usage.
- * @see [[http://getbootstrap.com/css/#images-responsive]]
+
+ /** Images in Bootstrap 3 can be made responsive-friendly via the addition of the .img-responsive class. This
+ * applies max-width: 100%;, height: auto; and display: block; to the image so that it scales nicely to the parent
+ * element. To center images which use the .img-responsive class, use .center-block instead of .text-center. See
+ * the helper classes section for more details about .center-block usage.
+ * @see
+ * [[http://getbootstrap.com/css/#images-responsive]]
*/
def responsive: AbstractImageStyle
@@ -173,9 +173,9 @@ trait Utils { self: RenderingContext with Icons with Buttons with ClassModifiers
def thumbnail: AbstractImageStyle
}
- /**
- * Easily realign text to components with text alignment classes.
- * @see [[http://getbootstrap.com/css/#type-alignment]]
+ /** Easily realign text to components with text alignment classes.
+ * @see
+ * [[http://getbootstrap.com/css/#type-alignment]]
*/
trait AbstractTextAlignments {
def left: AbstractTextAlignment
@@ -185,9 +185,9 @@ trait Utils { self: RenderingContext with Icons with Buttons with ClassModifiers
def nowrap: AbstractTextAlignment
}
- /**
- * Transform text in components with text capitalization classes.
- * @see [[http://getbootstrap.com/css/#type-transformation]]
+ /** Transform text in components with text capitalization classes.
+ * @see
+ * [[http://getbootstrap.com/css/#type-transformation]]
*/
trait AbstractTextTransformations {
def lowercase: AbstractTextTransformation
@@ -195,10 +195,10 @@ trait Utils { self: RenderingContext with Icons with Buttons with ClassModifiers
def capitalize: AbstractTextTransformation
}
- /**
- * Convey meaning through color with a handful of emphasis utility classes.
- * These may also be applied to links and will darken on hover just like our default link styles.
- * @see [[http://getbootstrap.com/css/#helper-classes-colors]]
+ /** Convey meaning through color with a handful of emphasis utility classes. These may also be applied to links and
+ * will darken on hover just like our default link styles.
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-colors]]
*/
trait AbstractTextStyles {
def muted: AbstractTextStyle
@@ -212,11 +212,14 @@ trait Utils { self: RenderingContext with Icons with Buttons with ClassModifiers
def dark: AbstractTextStyle
def white: AbstractTextStyle
- /**
- * Utilize the `.text-hide` class or mixin to help replace an element's text content with a background image.
- * @see [[http://getbootstrap.com/css/#helper-classes-image-replacement]]
+ /** Utilize the `.text-hide` class or mixin to help replace an element's text content with a background image.
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-image-replacement]]
*/
- @deprecated("Deprecated .text-hide—you’ll see a warning during compilation—as it’s a dated and undocumented feature.", "4.1")
+ @deprecated(
+ "Deprecated .text-hide—you’ll see a warning during compilation—as it’s a dated and undocumented feature.",
+ "4.1"
+ )
def hide: AbstractTextStyle
// See https://blog.getbootstrap.com/2018/04/09/bootstrap-4-1/
@@ -226,10 +229,10 @@ trait Utils { self: RenderingContext with Icons with Buttons with ClassModifiers
def `white-50%`: AbstractTextStyle
}
- /**
- * Similar to the contextual text color classes, easily set the background of an element to any contextual class.
+ /** Similar to the contextual text color classes, easily set the background of an element to any contextual class.
* Anchor components will darken on hover, just like the text classes.
- * @see [[http://getbootstrap.com/css/#helper-classes-backgrounds]]
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-backgrounds]]
*/
trait AbstractBackgroundStyles {
def primary: AbstractBackgroundStyle
@@ -243,9 +246,9 @@ trait Utils { self: RenderingContext with Icons with Buttons with ClassModifiers
def white: AbstractBackgroundStyle
}
- /**
- * Change the border color using utilities built on our theme colors.
- * @see [[https://getbootstrap.com/docs/4.0/utilities/borders/#border-color]]
+ /** Change the border color using utilities built on our theme colors.
+ * @see
+ * [[https://getbootstrap.com/docs/4.0/utilities/borders/#border-color]]
*/
trait AbstractBorderStyles {
def primary: AbstractBorderStyle
@@ -259,9 +262,9 @@ trait Utils { self: RenderingContext with Icons with Buttons with ClassModifiers
def white: AbstractBorderStyle
}
- /**
- * Add classes to an element to remove all borders or some borders.
- * @see [[https://getbootstrap.com/docs/4.0/utilities/borders/]]
+ /** Add classes to an element to remove all borders or some borders.
+ * @see
+ * [[https://getbootstrap.com/docs/4.0/utilities/borders/]]
*/
trait AbstractBorders {
def border: Modifier
@@ -272,9 +275,9 @@ trait Utils { self: RenderingContext with Icons with Buttons with ClassModifiers
def borderRight0: Modifier
}
- /**
- * Add classes to an element to easily round its corners.
- * @see [[https://getbootstrap.com/docs/4.0/utilities/borders/#border-radius]]
+ /** Add classes to an element to easily round its corners.
+ * @see
+ * [[https://getbootstrap.com/docs/4.0/utilities/borders/#border-radius]]
*/
trait AbstractBorderRounding {
def rounded: Modifier
@@ -286,28 +289,29 @@ trait Utils { self: RenderingContext with Icons with Buttons with ClassModifiers
def rounded0: Modifier
}
- /**
- * Float an element to the left or right with a class.
- * `!important` is included to avoid specificity issues.
- * @note To align components in navbars with utility classes, use .navbar-left or .navbar-right instead. See the navbar docs for details.
- * @see [[http://getbootstrap.com/css/#helper-classes-floats]]
+ /** Float an element to the left or right with a class. `!important` is included to avoid specificity issues.
+ * @note
+ * To align components in navbars with utility classes, use .navbar-left or .navbar-right instead. See the navbar
+ * docs for details.
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-floats]]
*/
trait AbstractPullModifiers {
def left: AbstractPullModifier
def right: AbstractPullModifier
}
- /**
- * Control the visibility, without modifying the display, of elements with visibility utilities.
- * @see [[https://getbootstrap.com/docs/4.0/utilities/visibility/]]
+ /** Control the visibility, without modifying the display, of elements with visibility utilities.
+ * @see
+ * [[https://getbootstrap.com/docs/4.0/utilities/visibility/]]
*/
trait AbstractVisibilityModifiers {
def visible: AbstractVisibilityModifier
def invisible: AbstractVisibilityModifier
}
- /**
- * @see [[https://getbootstrap.com/docs/4.0/utilities/display/]]
+ /** @see
+ * [[https://getbootstrap.com/docs/4.0/utilities/display/]]
*/
trait AbstractDisplayModifiers {
def none: AbstractDisplayModifier
@@ -320,10 +324,10 @@ trait Utils { self: RenderingContext with Icons with Buttons with ClassModifiers
def inlineFlex: AbstractDisplayModifier
}
- /**
- * Add or remove shadows to elements with `box-shadow` utilities.
+ /** Add or remove shadows to elements with `box-shadow` utilities.
* @since 4.1
- * @see [[https://getbootstrap.com/docs/4.1/utilities/shadows/]]
+ * @see
+ * [[https://getbootstrap.com/docs/4.1/utilities/shadows/]]
*/
trait AbstractShadowModifiers {
def none: AbstractShadowModifier
@@ -332,4 +336,3 @@ trait Utils { self: RenderingContext with Icons with Buttons with ClassModifiers
def large: AbstractShadowModifier
}
}
-
diff --git a/library/js/src/main/scala/com/karasiq/bootstrap/Bootstrap.scala b/library/js/src/main/scala/com/karasiq/bootstrap/Bootstrap.scala
index e2c536a..06412f4 100644
--- a/library/js/src/main/scala/com/karasiq/bootstrap/Bootstrap.scala
+++ b/library/js/src/main/scala/com/karasiq/bootstrap/Bootstrap.scala
@@ -2,8 +2,7 @@ package com.karasiq.bootstrap
import rx._
-/**
- * Global context
+/** Global context
*/
object Bootstrap {
private[this] lazy val _scalaRxContext = Ctx.Owner.safe()
@@ -17,4 +16,4 @@ object Bootstrap {
}
lazy val default: JSBootstrapBundle = js
-}
\ No newline at end of file
+}
diff --git a/library/js/src/main/scala/com/karasiq/bootstrap/JSBootstrapBundle.scala b/library/js/src/main/scala/com/karasiq/bootstrap/JSBootstrapBundle.scala
index 7cd26ac..cd95a89 100644
--- a/library/js/src/main/scala/com/karasiq/bootstrap/JSBootstrapBundle.scala
+++ b/library/js/src/main/scala/com/karasiq/bootstrap/JSBootstrapBundle.scala
@@ -13,8 +13,15 @@ import com.karasiq.bootstrap.popover.JSPopovers
import com.karasiq.bootstrap.tooltip.JSTooltips
// JS components implementation
-trait JSBootstrapBundle extends UniversalBootstrapBundle with JSRenderingContext with JSModals with JSTooltips
- with JSPopovers with JSNavigationBars with JSCarousels with BootstrapJQueryContext
+trait JSBootstrapBundle
+ extends UniversalBootstrapBundle
+ with JSRenderingContext
+ with JSModals
+ with JSTooltips
+ with JSPopovers
+ with JSNavigationBars
+ with JSCarousels
+ with BootstrapJQueryContext
object JSBootstrapBundle {
def apply()(implicit rx: Ctx.Owner): JSBootstrapBundle = {
diff --git a/library/js/src/main/scala/com/karasiq/bootstrap/carousel/JSCarouselOptions.scala b/library/js/src/main/scala/com/karasiq/bootstrap/carousel/JSCarouselOptions.scala
index 5239a36..69453be 100644
--- a/library/js/src/main/scala/com/karasiq/bootstrap/carousel/JSCarouselOptions.scala
+++ b/library/js/src/main/scala/com/karasiq/bootstrap/carousel/JSCarouselOptions.scala
@@ -4,8 +4,8 @@ import scala.scalajs.js
@js.native
trait JSCarouselOptions extends js.Object {
- var interval: Int = js.native
- var pause: String = js.native
- var wrap: Boolean = js.native
+ var interval: Int = js.native
+ var pause: String = js.native
+ var wrap: Boolean = js.native
var keyboard: Boolean = js.native
}
diff --git a/library/js/src/main/scala/com/karasiq/bootstrap/carousel/JSCarousels.scala b/library/js/src/main/scala/com/karasiq/bootstrap/carousel/JSCarousels.scala
index 7b9ee28..bd855d2 100644
--- a/library/js/src/main/scala/com/karasiq/bootstrap/carousel/JSCarousels.scala
+++ b/library/js/src/main/scala/com/karasiq/bootstrap/carousel/JSCarousels.scala
@@ -11,7 +11,8 @@ import com.karasiq.bootstrap.icons.Icons
import com.karasiq.bootstrap.jquery.BootstrapJQueryContext
import com.karasiq.bootstrap.utils.Utils
-trait JSCarousels extends UniversalCarousels { self: JSRenderingContext with Carousels with Utils with Icons with BootstrapComponents with BootstrapJQueryContext ⇒
+trait JSCarousels extends UniversalCarousels {
+ self: JSRenderingContext with Carousels with Utils with Icons with BootstrapComponents with BootstrapJQueryContext ⇒
import scalaTags.all._
type Carousel = JSCarousel
@@ -26,9 +27,13 @@ trait JSCarousels extends UniversalCarousels { self: JSRenderingContext with Car
}
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 = {
+ 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
diff --git a/library/js/src/main/scala/com/karasiq/bootstrap/modal/JSModalOptions.scala b/library/js/src/main/scala/com/karasiq/bootstrap/modal/JSModalOptions.scala
index c91a9aa..21c3ccb 100644
--- a/library/js/src/main/scala/com/karasiq/bootstrap/modal/JSModalOptions.scala
+++ b/library/js/src/main/scala/com/karasiq/bootstrap/modal/JSModalOptions.scala
@@ -6,6 +6,6 @@ import scala.scalajs.js.|
@js.native
trait JSModalOptions extends js.Object {
var backdrop: Boolean | String = js.native
- var keyboard: Boolean = js.native
- var show: Boolean = js.native
+ var keyboard: Boolean = js.native
+ var show: Boolean = js.native
}
diff --git a/library/js/src/main/scala/com/karasiq/bootstrap/navbar/JSNavigationBars.scala b/library/js/src/main/scala/com/karasiq/bootstrap/navbar/JSNavigationBars.scala
index 42b64ca..8b96bfd 100644
--- a/library/js/src/main/scala/com/karasiq/bootstrap/navbar/JSNavigationBars.scala
+++ b/library/js/src/main/scala/com/karasiq/bootstrap/navbar/JSNavigationBars.scala
@@ -8,17 +8,17 @@ import com.karasiq.bootstrap.jquery.BootstrapJQueryContext
trait JSNavigationBars { self: JSRenderingContext with NavigationBars with BootstrapJQueryContext ⇒
implicit class JSNavigation(nav: NavComponent) {
- /**
- * Selects tab by ID
- * @param id Tab ID
+ /** Selects tab by ID
+ * @param id
+ * Tab ID
*/
def selectTab(id: String): Unit = {
jQuery(s"a[data-target='#${nav.tabId(id)}']").tab("show")
}
- /**
- * Selects tab by index
- * @param i Tab index, starting from `0`
+ /** Selects tab by index
+ * @param i
+ * Tab index, starting from `0`
*/
def selectTab(i: Int): Unit = {
val tabs = nav.navTabs.now
diff --git a/library/js/src/main/scala/com/karasiq/bootstrap/popover/JSPopovers.scala b/library/js/src/main/scala/com/karasiq/bootstrap/popover/JSPopovers.scala
index dc45e54..c6e47eb 100644
--- a/library/js/src/main/scala/com/karasiq/bootstrap/popover/JSPopovers.scala
+++ b/library/js/src/main/scala/com/karasiq/bootstrap/popover/JSPopovers.scala
@@ -9,14 +9,15 @@ import com.karasiq.bootstrap.context.JSRenderingContext
import com.karasiq.bootstrap.jquery.BootstrapJQueryContext
import com.karasiq.bootstrap.tooltip.Tooltips
-trait JSPopovers { self: JSRenderingContext with BootstrapComponents with Popovers with Tooltips with BootstrapJQueryContext ⇒
+trait JSPopovers {
+ self: JSRenderingContext with BootstrapComponents with Popovers with Tooltips with BootstrapJQueryContext ⇒
import scalaTags.all._
class JSPopover(val options: PopoverOptions) extends Popover {
- //noinspection ConvertExpressionToSAM
+ // noinspection ConvertExpressionToSAM
def toggle: Modifier = new Modifier {
def applyTo(t: Element): Unit = {
- val jsOptions = scalajs.js.Object().asInstanceOf[JSPopoverOptions]
+ val jsOptions = scalajs.js.Object().asInstanceOf[JSPopoverOptions]
def set(value: String, f: String ⇒ Unit): Unit = if (value.nonEmpty) f(value)
jsOptions.animation = options.animation
jsOptions.content = options.content.render
@@ -38,10 +39,10 @@ trait JSPopovers { self: JSRenderingContext with BootstrapComponents with Popove
}
}
- /**
- * Add small overlays of content, like those on the iPad, to any element for housing secondary information.
- * Popovers whose both title and content are zero-length are never displayed.
- * @see [[http://getbootstrap.com/javascript/#popovers]]
+ /** Add small overlays of content, like those on the iPad, to any element for housing secondary information. Popovers
+ * whose both title and content are zero-length are never displayed.
+ * @see
+ * [[http://getbootstrap.com/javascript/#popovers]]
*/
object Popover extends PopoverFactory {
def apply(title: Frag, content: Frag, placement: TooltipPlacement = TooltipPlacement.auto): JSPopover = {
diff --git a/library/js/src/main/scala/com/karasiq/bootstrap/tooltip/JSTooltipOptions.scala b/library/js/src/main/scala/com/karasiq/bootstrap/tooltip/JSTooltipOptions.scala
index bffd7a3..51bdb80 100644
--- a/library/js/src/main/scala/com/karasiq/bootstrap/tooltip/JSTooltipOptions.scala
+++ b/library/js/src/main/scala/com/karasiq/bootstrap/tooltip/JSTooltipOptions.scala
@@ -5,13 +5,13 @@ import scala.scalajs.js
@js.native
trait JSTooltipOptions extends js.Object {
var animation: Boolean = js.native
- var container: js.Any = js.native
- var delay: js.Any = js.native
- var html: Boolean = js.native
- var placement: js.Any = js.native
- var selector: js.Any = js.native
- var template: String = js.native
- var title: js.Any = js.native
- var trigger: String = js.native
- var viewport: js.Any = js.native
+ var container: js.Any = js.native
+ var delay: js.Any = js.native
+ var html: Boolean = js.native
+ var placement: js.Any = js.native
+ var selector: js.Any = js.native
+ var template: String = js.native
+ var title: js.Any = js.native
+ var trigger: String = js.native
+ var viewport: js.Any = js.native
}
diff --git a/library/js/src/main/scala/com/karasiq/bootstrap/tooltip/JSTooltips.scala b/library/js/src/main/scala/com/karasiq/bootstrap/tooltip/JSTooltips.scala
index 1d42472..fb63fe0 100644
--- a/library/js/src/main/scala/com/karasiq/bootstrap/tooltip/JSTooltips.scala
+++ b/library/js/src/main/scala/com/karasiq/bootstrap/tooltip/JSTooltips.scala
@@ -17,7 +17,7 @@ trait JSTooltips { self: JSRenderingContext with BootstrapComponents with Toolti
class JSTooltip(val options: TooltipOptions) extends AbstractTooltip {
def toggle: Modifier = new Modifier {
def applyTo(t: Element): Unit = {
- val jsOptions = scalajs.js.Object().asInstanceOf[JSTooltipOptions]
+ val jsOptions = scalajs.js.Object().asInstanceOf[JSTooltipOptions]
def set(value: String, f: String ⇒ Unit) = if (value.nonEmpty) f(value)
jsOptions.animation = options.animation
jsOptions.html = options.html
diff --git a/library/jvm/src/main/scala/com/karasiq/bootstrap/Bootstrap.scala b/library/jvm/src/main/scala/com/karasiq/bootstrap/Bootstrap.scala
index 352dbb1..3f35106 100644
--- a/library/jvm/src/main/scala/com/karasiq/bootstrap/Bootstrap.scala
+++ b/library/jvm/src/main/scala/com/karasiq/bootstrap/Bootstrap.scala
@@ -2,8 +2,7 @@ package com.karasiq.bootstrap
import rx._
-/**
- * Global context
+/** Global context
*/
object Bootstrap {
private[this] lazy val _scalaRxContext = Ctx.Owner.safe()
@@ -13,4 +12,4 @@ object Bootstrap {
}
lazy val default: TextBootstrapBundle = text
-}
\ No newline at end of file
+}
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/BootstrapBundle.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/BootstrapBundle.scala
index a5f2d50..2dcbed6 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/BootstrapBundle.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/BootstrapBundle.scala
@@ -23,14 +23,47 @@ import com.karasiq.bootstrap.tooltip.Tooltips
import com.karasiq.bootstrap.utils.{UniversalUtils, Utils}
// Abstract components
-trait BootstrapBundle extends RenderingContext with BootstrapComponents with ClassModifiers with Alerts with Buttons
- with Carousels with Collapses with Dropdowns with Forms with Grids with Icons with Modals with NavigationBars
- with Panels with Popovers with ProgressBars with Tables with PageSelectors with PagedTables with SortableTables
- with Tooltips with Utils
+trait BootstrapBundle
+ extends RenderingContext
+ with BootstrapComponents
+ with ClassModifiers
+ with Alerts
+ with Buttons
+ with Carousels
+ with Collapses
+ with Dropdowns
+ with Forms
+ with Grids
+ with Icons
+ with Modals
+ with NavigationBars
+ with Panels
+ with Popovers
+ with ProgressBars
+ with Tables
+ with PageSelectors
+ with PagedTables
+ with SortableTables
+ with Tooltips
+ with Utils
// Default components implementation
-trait UniversalBootstrapBundle extends BootstrapBundle
- with UniversalPageSelectors with UniversalTables with UniversalPagedTables with UniversalSortableTables
- with UniversalProgressBars with UniversalPanels with UniversalNavigationBars with UniversalModals
- with UniversalIcons with UniversalGrids with UniversalForms with UniversalDropdowns with UniversalCollapses
- with UniversalCarousels with UniversalButtons with UniversalAlerts with UniversalUtils
+trait UniversalBootstrapBundle
+ extends BootstrapBundle
+ with UniversalPageSelectors
+ with UniversalTables
+ with UniversalPagedTables
+ with UniversalSortableTables
+ with UniversalProgressBars
+ with UniversalPanels
+ with UniversalNavigationBars
+ with UniversalModals
+ with UniversalIcons
+ with UniversalGrids
+ with UniversalForms
+ with UniversalDropdowns
+ with UniversalCollapses
+ with UniversalCarousels
+ with UniversalButtons
+ with UniversalAlerts
+ with UniversalUtils
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/TextBootstrapBundle.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/TextBootstrapBundle.scala
index 39816bf..84bfe01 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/TextBootstrapBundle.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/TextBootstrapBundle.scala
@@ -10,8 +10,12 @@ import com.karasiq.bootstrap.popover.TextPopovers
import com.karasiq.bootstrap.tooltip.TextTooltips
// Text components implementation
-trait TextBootstrapBundle extends UniversalBootstrapBundle with TextRenderingContext
- with TextCarousels with TextTooltips with TextPopovers
+trait TextBootstrapBundle
+ extends UniversalBootstrapBundle
+ with TextRenderingContext
+ with TextCarousels
+ with TextTooltips
+ with TextPopovers
object TextBootstrapBundle {
def apply()(implicit ctx: Ctx.Owner): TextBootstrapBundle = {
@@ -19,4 +23,4 @@ object TextBootstrapBundle {
implicit val scalaRxContext = ctx
}
}
-}
\ No newline at end of file
+}
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/alert/AlertStyles.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/alert/AlertStyles.scala
index e3a5be5..3925828 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/alert/AlertStyles.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/alert/AlertStyles.scala
@@ -5,14 +5,14 @@ import com.karasiq.bootstrap.context.RenderingContext
trait AlertStyles { self: RenderingContext ⇒
import scalaTags.all._
- final class AlertStyle private[alert](val styleName: String) extends ModifierFactory {
+ final class AlertStyle private[alert] (val styleName: String) extends ModifierFactory {
val createModifier = s"alert-$styleName".addClass
}
object AlertStyle {
lazy val success = new AlertStyle("success")
- lazy val info = new AlertStyle("info")
+ lazy val info = new AlertStyle("info")
lazy val warning = new AlertStyle("warning")
- lazy val danger = new AlertStyle("danger")
+ lazy val danger = new AlertStyle("danger")
}
}
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/alert/Alerts.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/alert/Alerts.scala
index b8bde42..e660f68 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/alert/Alerts.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/alert/Alerts.scala
@@ -11,16 +11,17 @@ trait Alerts extends AlertStyles { self: RenderingContext ⇒
def style: AlertStyle
}
- /**
- * Provide contextual feedback messages for typical user actions with the handful of available and flexible alert messages.
- * @see [[http://getbootstrap.com/components/#alerts]]
+ /** Provide contextual feedback messages for typical user actions with the handful of available and flexible alert
+ * messages.
+ * @see
+ * [[http://getbootstrap.com/components/#alerts]]
*/
trait AlertFactory {
def create(style: AlertStyle): Alert
def link: Tag
def apply(style: AlertStyle, content: Modifier*): Tag = {
- create(style).renderTag(content:_*)
+ create(style).renderTag(content: _*)
}
}
}
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/alert/UniversalAlerts.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/alert/UniversalAlerts.scala
index f96cc44..508f131 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/alert/UniversalAlerts.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/alert/UniversalAlerts.scala
@@ -23,8 +23,13 @@ trait UniversalAlerts { self: RenderingContext with Alerts with Utils ⇒
private[this] val classes = Seq("alert", "alert-dismissible", "fade", "in")
def closeButton: Tag = {
- button(`type` := "button", "close".addClass, `data-dismiss` := "alert",
- aria.label := "Close", span(aria.hidden := true, raw("×")))
+ button(
+ `type` := "button",
+ "close".addClass,
+ `data-dismiss` := "alert",
+ aria.label := "Close",
+ span(aria.hidden := true, raw("×"))
+ )
}
override def renderTag(md: ModifierT*): TagT = {
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/buttons/ButtonGroupStyles.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/buttons/ButtonGroupStyles.scala
index 1f93fd0..31a135c 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/buttons/ButtonGroupStyles.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/buttons/ButtonGroupStyles.scala
@@ -12,15 +12,15 @@ trait ButtonGroupStyles { self: RenderingContext with Utils ⇒
val createModifier = Bootstrap.noModifier
}
- final class ButtonGroupSizeValue private[buttons](val size: String) extends ButtonGroupSize {
- val className = s"btn-group-$size"
+ final class ButtonGroupSizeValue private[buttons] (val size: String) extends ButtonGroupSize {
+ val className = s"btn-group-$size"
val createModifier = className.addClass
}
object ButtonGroupSize {
- def default: ButtonGroupSize = DefaultButtonGroupSize
- lazy val large: ButtonGroupSize = new ButtonGroupSizeValue("lg")
- lazy val small: ButtonGroupSize = new ButtonGroupSizeValue("sm")
+ def default: ButtonGroupSize = DefaultButtonGroupSize
+ lazy val large: ButtonGroupSize = new ButtonGroupSizeValue("lg")
+ lazy val small: ButtonGroupSize = new ButtonGroupSizeValue("sm")
lazy val extraSmall: ButtonGroupSize = new ButtonGroupSizeValue("xs")
}
}
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/buttons/ButtonStyles.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/buttons/ButtonStyles.scala
index f61d702..0716f48 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/buttons/ButtonStyles.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/buttons/ButtonStyles.scala
@@ -12,38 +12,36 @@ trait ButtonStyles { self: RenderingContext with Utils ⇒
val createModifier = Bootstrap.noModifier
}
- final class ButtonSizeValue private[buttons](size: String) extends ButtonSize {
- val className = s"btn-$size"
+ final class ButtonSizeValue private[buttons] (size: String) extends ButtonSize {
+ val className = s"btn-$size"
val createModifier = className.addClass
}
- /**
- * @see [[https://getbootstrap.com/css/#buttons-sizes]]
+ /** @see
+ * [[https://getbootstrap.com/css/#buttons-sizes]]
*/
object ButtonSize {
- def default = DefaultButtonSize
- lazy val large = new ButtonSizeValue("lg")
- lazy val small = new ButtonSizeValue("sm")
+ def default = DefaultButtonSize
+ lazy val large = new ButtonSizeValue("lg")
+ lazy val small = new ButtonSizeValue("sm")
lazy val extraSmall = new ButtonSizeValue("xs")
}
-
-
- final class ButtonStyle private[buttons](style: String) extends ModifierFactory {
- val className = s"btn-$style"
+ final class ButtonStyle private[buttons] (style: String) extends ModifierFactory {
+ val className = s"btn-$style"
val createModifier = className.addClass
}
- /**
- * @see [[https://getbootstrap.com/css/#buttons-options]]
+ /** @see
+ * [[https://getbootstrap.com/css/#buttons-options]]
*/
object ButtonStyle {
lazy val default = new ButtonStyle("default")
lazy val primary = new ButtonStyle("primary")
lazy val success = new ButtonStyle("success")
- lazy val info = new ButtonStyle("info")
+ lazy val info = new ButtonStyle("info")
lazy val warning = new ButtonStyle("warning")
- lazy val danger = new ButtonStyle("danger")
- lazy val link = new ButtonStyle("link")
+ lazy val danger = new ButtonStyle("danger")
+ lazy val link = new ButtonStyle("link")
}
}
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/buttons/Buttons.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/buttons/Buttons.scala
index 3fae6d4..bf6dc3c 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/buttons/Buttons.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/buttons/Buttons.scala
@@ -6,7 +6,8 @@ import com.karasiq.bootstrap.components.BootstrapComponents
import com.karasiq.bootstrap.context.{ClassModifiers, RenderingContext}
import com.karasiq.bootstrap.utils.Utils
-trait Buttons extends ButtonStyles with ButtonGroups with ButtonStates { self: RenderingContext with BootstrapComponents with ClassModifiers with Utils ⇒
+trait Buttons extends ButtonStyles with ButtonGroups with ButtonStates {
+ self: RenderingContext with BootstrapComponents with ClassModifiers with Utils ⇒
import scalaTags.all._
type Button <: AbstractButton
@@ -21,16 +22,27 @@ trait Buttons extends ButtonStyles with ButtonGroups with ButtonStates { self: R
}
trait ButtonFactory {
- /**
- * Creates button
- * @param style Use any of the available button classes to quickly create a styled button
- * @param size Fancy larger or smaller buttons? Add `.btn-lg`, `.btn-sm`, or `.btn-xs` for additional sizes
- * @param block Create block level buttons—those that span the full width of a parent— by adding `.btn-block`
- * @param active Buttons will appear pressed (with a darker background, darker border, and inset shadow) when active
- * @param disabled Make buttons look unclickable by fading them back with `opacity`
- * @see [[http://getbootstrap.com/css/#buttons]]
+
+ /** Creates button
+ * @param style
+ * Use any of the available button classes to quickly create a styled button
+ * @param size
+ * Fancy larger or smaller buttons? Add `.btn-lg`, `.btn-sm`, or `.btn-xs` for additional sizes
+ * @param block
+ * Create block level buttons—those that span the full width of a parent— by adding `.btn-block`
+ * @param active
+ * Buttons will appear pressed (with a darker background, darker border, and inset shadow) when active
+ * @param disabled
+ * Make buttons look unclickable by fading them back with `opacity`
+ * @see
+ * [[http://getbootstrap.com/css/#buttons]]
*/
- def apply(style: ButtonStyle = ButtonStyle.default, size: ButtonSize = ButtonSize.default,
- block: Boolean = false, active: Boolean = false, disabled: Boolean = false): Button
+ def apply(
+ style: ButtonStyle = ButtonStyle.default,
+ size: ButtonSize = ButtonSize.default,
+ block: Boolean = false,
+ active: Boolean = false,
+ disabled: Boolean = false
+ ): Button
}
}
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/buttons/UniversalButtonGroups.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/buttons/UniversalButtonGroups.scala
index af09675..27f9436 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/buttons/UniversalButtonGroups.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/buttons/UniversalButtonGroups.scala
@@ -9,14 +9,14 @@ trait UniversalButtonGroups { self: RenderingContext with ButtonGroups with Boot
type ButtonGroup = UniversalButtonGroup
object ButtonGroup extends ButtonGroupFactory {
def apply(size: ButtonGroupSize, buttons: Modifier*): ButtonGroup = {
- new UniversalButtonGroup(size, buttons:_*)
+ new UniversalButtonGroup(size, buttons: _*)
}
}
type ButtonToolbar = UniversalButtonToolbar
object ButtonToolbar extends ButtonToolbarFactory {
def apply(buttonGroups: ButtonGroup*): ButtonToolbar = {
- new UniversalButtonToolbar(buttonGroups:_*)
+ new UniversalButtonToolbar(buttonGroups: _*)
}
}
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/buttons/UniversalButtons.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/buttons/UniversalButtons.scala
index 79f4a9e..5d60d2f 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/buttons/UniversalButtons.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/buttons/UniversalButtons.scala
@@ -5,16 +5,22 @@ import scala.language.postfixOps
import com.karasiq.bootstrap.components.BootstrapComponents
import com.karasiq.bootstrap.context.{ClassModifiers, RenderingContext}
-trait UniversalButtons extends UniversalButtonStates with UniversalButtonGroups { self: RenderingContext with BootstrapComponents with ClassModifiers with Buttons ⇒
+trait UniversalButtons extends UniversalButtonStates with UniversalButtonGroups {
+ self: RenderingContext with BootstrapComponents with ClassModifiers with Buttons ⇒
import scalaTags.all._
type Button = ButtonBuilder
object Button extends ButtonFactory {
- /**
- * Shortcut to [[com.karasiq.bootstrap.buttons.UniversalButtons.ButtonBuilder ButtonBuilder]].
+
+ /** Shortcut to [[com.karasiq.bootstrap.buttons.UniversalButtons.ButtonBuilder ButtonBuilder]].
*/
- def apply(style: ButtonStyle = ButtonStyle.default, size: ButtonSize = ButtonSize.default,
- block: Boolean = false, active: Boolean = false, disabled: Boolean = false): ButtonBuilder = {
+ def apply(
+ style: ButtonStyle = ButtonStyle.default,
+ size: ButtonSize = ButtonSize.default,
+ block: Boolean = false,
+ active: Boolean = false,
+ disabled: Boolean = false
+ ): ButtonBuilder = {
ButtonBuilder(style, size, block, active, disabled)
}
}
@@ -22,25 +28,39 @@ trait UniversalButtons extends UniversalButtonStates with UniversalButtonGroups
trait UniversalButton extends AbstractButton {
override def renderTag(md: ModifierT*): TagT = {
@inline def optional(flag: Boolean, className: String) = if (flag) Some(className) else None
- val classList = Seq(Some("btn"), optional(block, "btn-block"), optional(active, "active"), optional(disabled, "disabled")).flatten.map(_.addClass)
- scalaTags.tags.button(`type` := "button", classList, style, size)(md:_*)
+ val classList = Seq(
+ Some("btn"),
+ optional(block, "btn-block"),
+ optional(active, "active"),
+ optional(disabled, "disabled")
+ ).flatten.map(_.addClass)
+ scalaTags.tags.button(`type` := "button", classList, style, size)(md: _*)
}
}
- /**
- * Button builder
- * @param style Use any of the available button classes to quickly create a styled button
- * @param size Fancy larger or smaller buttons? Add `.btn-lg`, `.btn-sm`, or `.btn-xs` for additional sizes
- * @param block Create block level buttons—those that span the full width of a parent— by adding `.btn-block`
- * @param active Buttons will appear pressed (with a darker background, darker border, and inset shadow) when active
- * @param disabled Make buttons look unclickable by fading them back with `opacity`
- * @see [[http://getbootstrap.com/css/#buttons]]
+ /** Button builder
+ * @param style
+ * Use any of the available button classes to quickly create a styled button
+ * @param size
+ * Fancy larger or smaller buttons? Add `.btn-lg`, `.btn-sm`, or `.btn-xs` for additional sizes
+ * @param block
+ * Create block level buttons—those that span the full width of a parent— by adding `.btn-block`
+ * @param active
+ * Buttons will appear pressed (with a darker background, darker border, and inset shadow) when active
+ * @param disabled
+ * Make buttons look unclickable by fading them back with `opacity`
+ * @see
+ * [[http://getbootstrap.com/css/#buttons]]
*/
- case class ButtonBuilder(style: ButtonStyle = ButtonStyle.default, size: ButtonSize = ButtonSize.default,
- block: Boolean = false, active: Boolean = false, disabled: Boolean = false)
- extends UniversalButton {
+ case class ButtonBuilder(
+ style: ButtonStyle = ButtonStyle.default,
+ size: ButtonSize = ButtonSize.default,
+ block: Boolean = false,
+ active: Boolean = false,
+ disabled: Boolean = false
+ ) extends UniversalButton {
def withStyle(style: ButtonStyle): ButtonBuilder = copy(style = style)
- def withSize(size: ButtonSize): ButtonBuilder = copy(size = size)
+ def withSize(size: ButtonSize): ButtonBuilder = copy(size = size)
}
}
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/carousel/Carousels.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/carousel/Carousels.scala
index bff1326..5b5810a 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/carousel/Carousels.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/carousel/Carousels.scala
@@ -16,10 +16,11 @@ trait Carousels { self: RenderingContext with Utils ⇒
def content: Rx[Seq[Modifier]]
}
- /**
- * A slideshow component for cycling through elements, like a carousel.
- * @note Nested carousels are not supported.
- * @see [[http://getbootstrap.com/javascript/#carousel]]
+ /** A slideshow component for cycling through elements, like a carousel.
+ * @note
+ * Nested carousels are not supported.
+ * @see
+ * [[http://getbootstrap.com/javascript/#carousel]]
*/
trait CarouselFactory {
def apply(data: Rx[Seq[Modifier]], id: String = Bootstrap.newId): Carousel
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/carousel/TextCarousels.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/carousel/TextCarousels.scala
index c3b69cf..1a5aec3 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/carousel/TextCarousels.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/carousel/TextCarousels.scala
@@ -9,7 +9,8 @@ import com.karasiq.bootstrap.context.RenderingContext
import com.karasiq.bootstrap.icons.Icons
import com.karasiq.bootstrap.utils.Utils
-trait TextCarousels extends UniversalCarousels { self: RenderingContext with Carousels with Utils with Icons with BootstrapComponents ⇒
+trait TextCarousels extends UniversalCarousels {
+ self: RenderingContext with Carousels with Utils with Icons with BootstrapComponents ⇒
import scalaTags.all._
type Carousel = UniversalCarousel
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/carousel/UniversalCarousels.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/carousel/UniversalCarousels.scala
index 97605d0..1aa1a75 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/carousel/UniversalCarousels.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/carousel/UniversalCarousels.scala
@@ -23,7 +23,7 @@ trait UniversalCarousels { self: RenderingContext with Carousels with Utils with
val indexes = content().indices
ol(`class` := "carousel-indicators")(
mkIndicator(indexes.head)(`class` := "active"),
- for (i <- indexes.tail) yield mkIndicator(i)
+ for (i ← indexes.tail) yield mkIndicator(i)
)
}
@@ -31,7 +31,7 @@ trait UniversalCarousels { self: RenderingContext with Carousels with Utils with
val data = content()
div(`class` := "carousel-inner", role := "listbox")(
div(`class` := "item active", data.head),
- for (slide <- data.tail) yield div(`class` := "item", slide)
+ for (slide ← data.tail) yield div(`class` := "item", slide)
)
}
@@ -43,7 +43,12 @@ trait UniversalCarousels { self: RenderingContext with Carousels with Utils with
Bootstrap.icon("chevron-left"),
span(`class` := "sr-only", "Previous")
),
- a(`class` := "right carousel-control", href := s"#$carouselElementId", role := "button", `data-slide` := "next")(
+ a(
+ `class` := "right carousel-control",
+ href := s"#$carouselElementId",
+ role := "button",
+ `data-slide` := "next"
+ )(
Bootstrap.icon("chevron-right"),
span(`class` := "sr-only", "Next")
)
@@ -51,7 +56,7 @@ trait UniversalCarousels { self: RenderingContext with Carousels with Utils with
}
def render(md: Modifier*): Modifier = {
- carousel(`data-ride` := "carousel")(md:_*)
+ carousel(`data-ride` := "carousel")(md: _*)
}
}
@@ -59,7 +64,7 @@ trait UniversalCarousels { self: RenderingContext with Carousels with Utils with
def slide(image: String, content: Modifier*): Modifier = {
Seq(
img(src := image),
- div(`class` := "carousel-caption")(content:_*)
+ div(`class` := "carousel-caption")(content: _*)
)
}
}
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/collapse/Collapses.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/collapse/Collapses.scala
index dcbf393..971b639 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/collapse/Collapses.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/collapse/Collapses.scala
@@ -20,7 +20,7 @@ trait Collapses { self: RenderingContext with Utils with BootstrapComponents ⇒
def create(title: Modifier, collapseId: String = Bootstrap.newId): Collapse
def apply(title: Modifier)(content: Modifier*): Tag = {
- create(title, Bootstrap.newId).renderTag(content:_*)
+ create(title, Bootstrap.newId).renderTag(content: _*)
}
}
-}
\ No newline at end of file
+}
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/collapse/UniversalCollapses.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/collapse/UniversalCollapses.scala
index d2832bd..b85f47b 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/collapse/UniversalCollapses.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/collapse/UniversalCollapses.scala
@@ -15,8 +15,7 @@ trait UniversalCollapses { self: RenderingContext with Collapses with Utils ⇒
}
}
- class UniversalCollapse(val title: Modifier,
- val collapseId: String = Bootstrap.newId) extends AbstractCollapse {
+ class UniversalCollapse(val title: Modifier, val collapseId: String = Bootstrap.newId) extends AbstractCollapse {
protected val collapseElementId = s"$collapseId-collapse"
@@ -37,4 +36,4 @@ trait UniversalCollapses { self: RenderingContext with Collapses with Utils ⇒
div(Bootstrap.button(title, this.toggle), container(Bootstrap.well(md)))
}
}
-}
\ No newline at end of file
+}
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/dropdown/Dropdowns.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/dropdown/Dropdowns.scala
index 72f6d4d..238fc5e 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/dropdown/Dropdowns.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/dropdown/Dropdowns.scala
@@ -17,7 +17,7 @@ trait Dropdowns { self: RenderingContext ⇒
def dropup: Tag
def renderTag(md: ModifierT*): TagT = {
- this.dropdown(md:_*)
+ this.dropdown(md: _*)
}
}
@@ -25,7 +25,7 @@ trait Dropdowns { self: RenderingContext ⇒
def apply(title: Modifier, items: Modifier*): Dropdown
def link(targetId: String, md: Modifier*): Tag
- def dropup(title: Modifier, items: Modifier*): Tag = apply(title, items:_*).dropup
- def item(md: Modifier*): Tag = this.link("javascript:void(0);", md:_*)
+ def dropup(title: Modifier, items: Modifier*): Tag = apply(title, items: _*).dropup
+ def item(md: Modifier*): Tag = this.link("javascript:void(0);", md: _*)
}
}
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/dropdown/UniversalDropdowns.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/dropdown/UniversalDropdowns.scala
index ca59da3..d7b8ef9 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/dropdown/UniversalDropdowns.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/dropdown/UniversalDropdowns.scala
@@ -19,16 +19,17 @@ trait UniversalDropdowns { self: RenderingContext with Dropdowns with Utils ⇒
}
}
- private[dropdown] final class UniversalDropdown(val title: Modifier,
- val items: Seq[Modifier],
- val dropdownId: String = Bootstrap.newId)
- extends AbstractDropdown {
+ private[dropdown] final class UniversalDropdown(
+ val title: Modifier,
+ val items: Seq[Modifier],
+ val dropdownId: String = Bootstrap.newId
+ ) extends AbstractDropdown {
def dropdown: Tag = {
div(`class` := "dropdown")(
Bootstrap.button(
"dropdown-toggle".addClass,
- id := dropdownId,
+ id := dropdownId,
`data-toggle` := "dropdown",
aria.haspopup := true,
aria.expanded := false,
@@ -36,7 +37,7 @@ trait UniversalDropdowns { self: RenderingContext with Dropdowns with Utils ⇒
Bootstrap.nbsp,
span(`class` := "caret")
),
- ul(`class` := "dropdown-menu", aria.labelledby := dropdownId)(items:_*)
+ ul(`class` := "dropdown-menu", aria.labelledby := dropdownId)(items: _*)
)
}
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/form/Forms.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/form/Forms.scala
index c31a37d..3e89a42 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/form/Forms.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/form/Forms.scala
@@ -23,9 +23,9 @@ trait Forms { self: RenderingContext with Utils ⇒
}
trait FormFactory {
- type FormT = Tag
+ type FormT = Tag
type InlineFormT = Tag
- type SubmitT = Tag
+ type SubmitT = Tag
def apply(md: Modifier*): FormT
def inline(md: Modifier*): InlineFormT
@@ -53,7 +53,7 @@ trait Forms { self: RenderingContext with Utils ⇒
def isDefaultOption: Boolean
def inputType: String = "radio"
- def inputId: String = this.radioId
+ def inputId: String = this.radioId
}
trait AbstractFormRadioGroup extends AbstractFormInput {
@@ -64,22 +64,27 @@ trait Forms { self: RenderingContext with Utils ⇒
}
trait FormInputFactory {
- type InputT = Tag
- type RadioT = AbstractFormRadio
+ type InputT = Tag
+ type RadioT = AbstractFormRadio
type RadioGroupT = AbstractFormRadioGroup
- type SelectT = AbstractFormSelect
+ type SelectT = AbstractFormSelect
def ofType(inputType: String, label: Modifier, md: Modifier*): InputT
- def text(label: Modifier, md: Modifier*): Tag = this.ofType("text", label, md:_*)
- def number(label: Modifier, md: Modifier*): Tag = this.ofType("number", label, md:_*)
- def email(label: Modifier, md: Modifier*): Tag = this.ofType("email", label, md:_*)
- def password(label: Modifier, md: Modifier*): Tag = this.ofType("password", label, md:_*)
+ def text(label: Modifier, md: Modifier*): Tag = this.ofType("text", label, md: _*)
+ def number(label: Modifier, md: Modifier*): Tag = this.ofType("number", label, md: _*)
+ def email(label: Modifier, md: Modifier*): Tag = this.ofType("email", label, md: _*)
+ def password(label: Modifier, md: Modifier*): Tag = this.ofType("password", label, md: _*)
def file(label: Modifier, md: Modifier*): Tag
def textArea(title: Modifier, md: Modifier*): InputT
def checkbox(label: Modifier, md: Modifier*): InputT
- def radio(title: Modifier, radioName: String, radioValue: String,
- initialState: Boolean = false, radioId: String = Bootstrap.newId): RadioT
+ def radio(
+ title: Modifier,
+ radioName: String,
+ radioValue: String,
+ initialState: Boolean = false,
+ radioId: String = Bootstrap.newId
+ ): RadioT
def radioGroup[T <: RadioT](radios: Rx[Seq[T]]): RadioGroupT
@@ -108,7 +113,7 @@ trait Forms { self: RenderingContext with Utils ⇒
}
// Default
- def apply(label: Modifier, md: Modifier*): Tag = this.text(label, md:_*)
+ def apply(label: Modifier, md: Modifier*): Tag = this.text(label, md: _*)
}
trait FormInputGroupFactory {
@@ -120,11 +125,10 @@ trait Forms { self: RenderingContext with Utils ⇒
def addon(md: Modifier*): AddonT
def apply(label: Modifier, md: Modifier*): GroupT
- def label(md: Modifier*): InputT = scalaTags.tags.label(md)
- def text(md: Modifier*): InputT = this.createInput("text", md:_*)
- def number(md: Modifier*): InputT = this.createInput("number", md:_*)
- def email(md: Modifier*): InputT = this.createInput("email", md:_*)
- def password(md: Modifier*): InputT = this.createInput("password", md:_*)
+ def label(md: Modifier*): InputT = scalaTags.tags.label(md)
+ def text(md: Modifier*): InputT = this.createInput("text", md: _*)
+ def number(md: Modifier*): InputT = this.createInput("number", md: _*)
+ def email(md: Modifier*): InputT = this.createInput("email", md: _*)
+ def password(md: Modifier*): InputT = this.createInput("password", md: _*)
}
}
-
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/grid/Grids.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/grid/Grids.scala
index 35145d6..0023a59 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/grid/Grids.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/grid/Grids.scala
@@ -10,12 +10,12 @@ trait Grids { self: RenderingContext ⇒
type GridSystem <: AbstractGridSystem
val GridSystem: GridSystem
- /**
- * @see [[https://getbootstrap.com/css/#grid-options]]
+ /** @see
+ * [[https://getbootstrap.com/css/#grid-options]]
*/
trait AbstractGridSystem {
type ContainerT = Tag
- type RowT = Tag
+ type RowT = Tag
def container: ContainerT
def containerFluid: ContainerT
@@ -42,7 +42,7 @@ trait Grids { self: RenderingContext ⇒
trait AbstractColumn extends ModifierFactory {
def size: Int
def asDiv: Tag
- def apply(md: ModifierT*): Tag = this.asDiv.apply(md:_*)
+ def apply(md: ModifierT*): Tag = this.asDiv.apply(md: _*)
}
trait AbstractColumnFactory {
@@ -56,8 +56,8 @@ trait Grids { self: RenderingContext ⇒
def responsive(xsSize: Int, smSize: Int, mdSize: Int, lgSize: Int): AbstractColumn = new AbstractColumn {
override val createModifier: ModifierT = Seq[ModifierT](xs(xsSize), sm(smSize), md(mdSize), lg(lgSize))
- def size: Int = lgSize
- def asDiv: Tag = div(createModifier)
+ def size: Int = lgSize
+ def asDiv: Tag = div(createModifier)
}
def apply(size: Int): AbstractColumn = this.responsive(size, size, size, size)
@@ -76,4 +76,3 @@ trait Grids { self: RenderingContext ⇒
def print: AbstractGridVisibility
}
}
-
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/grid/UniversalGrids.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/grid/UniversalGrids.scala
index 5f49b30..52f411b 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/grid/UniversalGrids.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/grid/UniversalGrids.scala
@@ -9,11 +9,11 @@ trait UniversalGrids { self: RenderingContext with Grids with ClassModifiers ⇒
type GridSystem = UniversalGridSystem
object GridSystem extends UniversalGridSystem
-
+
trait UniversalGridSystem extends AbstractGridSystem {
- val container: Tag = div(`class` := "container")
+ val container: Tag = div(`class` := "container")
val containerFluid: Tag = div(`class` := "container-fluid")
- val row: Tag = div(`class` := "row")
+ val row: Tag = div(`class` := "row")
object col extends AbstractColumnFactory {
val minSize: Int = 1
@@ -27,21 +27,21 @@ trait UniversalGrids { self: RenderingContext with Grids with ClassModifiers ⇒
private[this] def singleColSize(screenSize: String, _size: Int): GridColSize = new GridColSize {
// require(modifier.nonEmpty && size <= 12 && size > 0, "Invalid grid column properties")
override val createModifier = ("col-" + screenSize + "-" + _size).addClass
- override val size: Int = _size
+ override val size: Int = _size
}
-
+
def xs(size: Int): GridColSize = singleColSize("xs", size)
def sm(size: Int): GridColSize = singleColSize("sm", size)
def md(size: Int): GridColSize = singleColSize("md", size)
def lg(size: Int): GridColSize = singleColSize("lg", size)
}
- /**
- * @see [[http://getbootstrap.com/css/#responsive-utilities]]
+ /** @see
+ * [[http://getbootstrap.com/css/#responsive-utilities]]
*/
object hidden extends AbstractGridVisibilityFactory {
- final class UniversalGridHiddenModifier private[grid](val screenSize: String) extends AbstractGridVisibility {
- val hidden = true
+ final class UniversalGridHiddenModifier private[grid] (val screenSize: String) extends AbstractGridVisibility {
+ val hidden = true
val createModifier = ("hidden-" + screenSize).addClass
}
@@ -50,37 +50,40 @@ trait UniversalGrids { self: RenderingContext with Grids with ClassModifiers ⇒
new UniversalGridHiddenModifier(size)
}
- lazy val xs: UniversalGridHiddenModifier = "xs"
- lazy val sm: UniversalGridHiddenModifier = "sm"
- lazy val md: UniversalGridHiddenModifier = "md"
- lazy val lg: UniversalGridHiddenModifier = "lg"
+ lazy val xs: UniversalGridHiddenModifier = "xs"
+ lazy val sm: UniversalGridHiddenModifier = "sm"
+ lazy val md: UniversalGridHiddenModifier = "md"
+ lazy val lg: UniversalGridHiddenModifier = "lg"
lazy val print: UniversalGridHiddenModifier = "print"
}
- /**
- * @see [[http://getbootstrap.com/css/#responsive-utilities]]
+ /** @see
+ * [[http://getbootstrap.com/css/#responsive-utilities]]
*/
object visible extends AbstractGridVisibilityFactory {
- class UniversalGridVisibleModifier private[grid](val screenSize: String, as: String) extends AbstractGridVisibility {
- val hidden = false
+ class UniversalGridVisibleModifier private[grid] (val screenSize: String, as: String)
+ extends AbstractGridVisibility {
+ val hidden = false
val createModifier = ("visible-" + screenSize + "-" + as).addClass
}
- final class UniversalGridVisibility private[grid](screenSize: String) extends UniversalGridVisibleModifier(screenSize, "block") {
+ final class UniversalGridVisibility private[grid] (screenSize: String)
+ extends UniversalGridVisibleModifier(screenSize, "block") {
val block: UniversalGridVisibleModifier = this
- lazy val inline = new UniversalGridVisibleModifier(screenSize, "inline")
- lazy val `inline-block` = new UniversalGridVisibleModifier(screenSize, "inline-block")
+ lazy val inline = new UniversalGridVisibleModifier(screenSize, "inline")
+ lazy val `inline-block` = new UniversalGridVisibleModifier(screenSize, "inline-block")
}
@inline
- private[this] implicit def gridVisibility(size: String): UniversalGridVisibility = new UniversalGridVisibility(size)
+ private[this] implicit def gridVisibility(size: String): UniversalGridVisibility = new UniversalGridVisibility(
+ size
+ )
- lazy val xs: UniversalGridVisibility = "xs"
- lazy val sm: UniversalGridVisibility = "sm"
- lazy val md: UniversalGridVisibility = "md"
- lazy val lg: UniversalGridVisibility = "lg"
+ lazy val xs: UniversalGridVisibility = "xs"
+ lazy val sm: UniversalGridVisibility = "sm"
+ lazy val md: UniversalGridVisibility = "md"
+ lazy val lg: UniversalGridVisibility = "lg"
lazy val print: UniversalGridVisibility = "print"
}
}
}
-
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/icons/UniversalIcons.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/icons/UniversalIcons.scala
index fe257b0..31ab59f 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/icons/UniversalIcons.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/icons/UniversalIcons.scala
@@ -14,17 +14,17 @@ trait UniversalIcons { self: RenderingContext with Icons with ClassModifiers wit
}
def fa(iconName: String, styles: FontAwesomeStyle*): FontAwesomeIcon = {
- FontAwesome(iconName, styles:_*)
+ FontAwesome(iconName, styles: _*)
}
def faFw(iconName: String, styles: FontAwesomeStyle*): FontAwesomeIcon = {
- FontAwesome(iconName, FontAwesome.fixedWidth +: styles:_*)
+ FontAwesome(iconName, FontAwesome.fixedWidth +: styles: _*)
}
}
final class BootstrapGlyphicon(val iconName: String) extends BootstrapHtmlComponent with IconModifier {
override def renderTag(md: ModifierT*): TagT = {
- span(`class` := "glyphicon glyphicon-" + iconName, aria.hidden := true)(md:_*)
+ span(`class` := "glyphicon glyphicon-" + iconName, aria.hidden := true)(md: _*)
}
}
@@ -34,9 +34,11 @@ trait UniversalIcons { self: RenderingContext with Icons with ClassModifiers wit
}
}
- final class FontAwesomeIcon(val iconName: String, val styles: Seq[FontAwesomeStyle]) extends BootstrapHtmlComponent with IconModifier {
+ final class FontAwesomeIcon(val iconName: String, val styles: Seq[FontAwesomeStyle])
+ extends BootstrapHtmlComponent
+ with IconModifier {
override def renderTag(md: ModifierT*): TagT = {
- i(`class` := "fa fa-" + iconName, styles, aria.hidden := true)(md:_*)
+ i(`class` := "fa fa-" + iconName, styles, aria.hidden := true)(md: _*)
}
}
@@ -44,8 +46,8 @@ trait UniversalIcons { self: RenderingContext with Icons with ClassModifiers wit
override val createModifier = ("fa-" + styleName).addClass
}
- /**
- * @see [[https://fortawesome.github.io/Font-Awesome/examples]]
+ /** @see
+ * [[https://fortawesome.github.io/Font-Awesome/examples]]
*/
object FontAwesome {
def apply(name: String, styles: FontAwesomeStyle*): FontAwesomeIcon = {
@@ -59,10 +61,10 @@ trait UniversalIcons { self: RenderingContext with Icons with ClassModifiers wit
// Size modifiers
lazy val large: FontAwesomeStyle = "lg"
- lazy val x2: FontAwesomeStyle = "2x"
- lazy val x3: FontAwesomeStyle = "3x"
- lazy val x4: FontAwesomeStyle = "4x"
- lazy val x5: FontAwesomeStyle = "5x"
+ lazy val x2: FontAwesomeStyle = "2x"
+ lazy val x3: FontAwesomeStyle = "3x"
+ lazy val x4: FontAwesomeStyle = "4x"
+ lazy val x5: FontAwesomeStyle = "5x"
// Fixed width
lazy val fixedWidth: FontAwesomeStyle = "fw"
@@ -72,20 +74,20 @@ trait UniversalIcons { self: RenderingContext with Icons with ClassModifiers wit
lazy val line: FontAwesomeStyle = "li"
// Bordered & Pulled icons
- lazy val border: FontAwesomeStyle = "border"
+ lazy val border: FontAwesomeStyle = "border"
lazy val pullRight: FontAwesomeStyle = "pull-right"
- lazy val pullLeft: FontAwesomeStyle = "pull-left"
+ lazy val pullLeft: FontAwesomeStyle = "pull-left"
// Animated icons
- lazy val spin: FontAwesomeStyle = "spin"
+ lazy val spin: FontAwesomeStyle = "spin"
lazy val pulse: FontAwesomeStyle = "pulse"
// Rotated & Flipped
- lazy val rotate90: FontAwesomeStyle = "rotate-90"
- lazy val rotate180: FontAwesomeStyle = "rotate-90"
- lazy val rotate270: FontAwesomeStyle = "rotate-90"
+ lazy val rotate90: FontAwesomeStyle = "rotate-90"
+ lazy val rotate180: FontAwesomeStyle = "rotate-90"
+ lazy val rotate270: FontAwesomeStyle = "rotate-90"
lazy val flipHorizontal: FontAwesomeStyle = "flip-horizontal"
- lazy val flipVertical: FontAwesomeStyle = "flip-vertical"
+ lazy val flipVertical: FontAwesomeStyle = "flip-vertical"
// Stacked icons
def stacked(icons: Tag*): Tag = {
@@ -96,13 +98,13 @@ trait UniversalIcons { self: RenderingContext with Icons with ClassModifiers wit
lazy val stacked2x: FontAwesomeStyle = "stack-2x"
}
- //noinspection SpellCheckingInspection
+ // noinspection SpellCheckingInspection
implicit class BootstrapIconsOps(iconName: String) {
- def glyphicon: BootstrapGlyphicon = Icon(iconName)
- def fontAwesome(styles: FontAwesomeStyle*): FontAwesomeIcon = Icon.fa(iconName, styles:_*)
+ def glyphicon: BootstrapGlyphicon = Icon(iconName)
+ def fontAwesome(styles: FontAwesomeStyle*): FontAwesomeIcon = Icon.fa(iconName, styles: _*)
// Shortcuts
- def faIcon: FontAwesomeIcon = this.fontAwesome()
+ def faIcon: FontAwesomeIcon = this.fontAwesome()
def faFwIcon: FontAwesomeIcon = this.fontAwesome(FontAwesome.fixedWidth)
}
}
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/modal/ModalStyles.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/modal/ModalStyles.scala
index 6e40589..03bc54c 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/modal/ModalStyles.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/modal/ModalStyles.scala
@@ -12,15 +12,15 @@ trait ModalStyles { self: RenderingContext with Utils ⇒
val createModifier = Bootstrap.noModifier
}
- final class CustomModalDialogSize private[modal](size: String) extends ModalDialogSize {
+ final class CustomModalDialogSize private[modal] (size: String) extends ModalDialogSize {
val className: String = size
- val createModifier = className.addClass
+ val createModifier = className.addClass
}
- //noinspection TypeAnnotation
+ // noinspection TypeAnnotation
object ModalDialogSize {
val default = DefaultModalDialogSize
- val small = new CustomModalDialogSize("modal-sm")
- val large = new CustomModalDialogSize("modal-lg")
+ val small = new CustomModalDialogSize("modal-sm")
+ val large = new CustomModalDialogSize("modal-lg")
}
}
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/modal/Modals.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/modal/Modals.scala
index d083eb6..bb2a704 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/modal/Modals.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/modal/Modals.scala
@@ -5,7 +5,8 @@ import com.karasiq.bootstrap.components.BootstrapComponents
import com.karasiq.bootstrap.context.{ClassModifiers, RenderingContext}
import com.karasiq.bootstrap.utils.Utils
-trait Modals extends ModalStyles { self: RenderingContext with Utils with BootstrapComponents with ClassModifiers with Buttons ⇒
+trait Modals extends ModalStyles {
+ self: RenderingContext with Utils with BootstrapComponents with ClassModifiers with Buttons ⇒
import scalaTags.all._
type Modal <: AbstractModal with BootstrapHtmlComponent
@@ -23,17 +24,22 @@ trait Modals extends ModalStyles { self: RenderingContext with Utils with Bootst
def dismiss: Modifier
}
- /**
- * Modals are streamlined, but flexible, dialog prompts with the minimum required functionality and smart defaults.
- * @see [[https://getbootstrap.com/javascript/#modals]]
+ /** Modals are streamlined, but flexible, dialog prompts with the minimum required functionality and smart defaults.
+ * @see
+ * [[https://getbootstrap.com/javascript/#modals]]
*/
trait ModalFactory {
def closeButton(title: String = "Close"): Tag
def button(md: Modifier*): Tag
- def apply(title: Modifier = "Modal dialog", body: Modifier = "", buttons: Modifier = closeButton(),
- style: Modifier = Bootstrap.noModifier, dialogStyle: Modifier = ModalDialogSize.default,
- contentStyle: Modifier = Bootstrap.noModifier, modalId: String = Bootstrap.newId): Modal
+ def apply(
+ title: Modifier = "Modal dialog",
+ body: Modifier = "",
+ buttons: Modifier = closeButton(),
+ style: Modifier = Bootstrap.noModifier,
+ dialogStyle: Modifier = ModalDialogSize.default,
+ contentStyle: Modifier = Bootstrap.noModifier,
+ modalId: String = Bootstrap.newId
+ ): Modal
}
}
-
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/modal/UniversalModals.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/modal/UniversalModals.scala
index 92306d9..3c758f9 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/modal/UniversalModals.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/modal/UniversalModals.scala
@@ -5,16 +5,23 @@ import com.karasiq.bootstrap.components.BootstrapComponents
import com.karasiq.bootstrap.context.{ClassModifiers, RenderingContext}
import com.karasiq.bootstrap.utils.Utils
-trait UniversalModals { self: RenderingContext with Utils with BootstrapComponents with ClassModifiers with Buttons with Modals with ModalStyles ⇒
+trait UniversalModals {
+ self: RenderingContext
+ with Utils
+ with BootstrapComponents
+ with ClassModifiers
+ with Buttons
+ with Modals
+ with ModalStyles ⇒
import scalaTags.all._
import BootstrapAttrs._
type Modal = ModalBuilder
- /**
- * Modals are streamlined, but flexible, dialog prompts with the minimum required functionality and smart defaults.
- * @see [[https://getbootstrap.com/javascript/#modals]]
+ /** Modals are streamlined, but flexible, dialog prompts with the minimum required functionality and smart defaults.
+ * @see
+ * [[https://getbootstrap.com/javascript/#modals]]
*/
object Modal extends ModalFactory {
val dismiss: Modifier = {
@@ -29,9 +36,15 @@ trait UniversalModals { self: RenderingContext with Utils with BootstrapComponen
Button(ButtonStyle.primary)(md)
}
- def apply(title: Modifier = "Modal dialog", body: Modifier = "", buttons: Modifier = closeButton(),
- style: Modifier = Bootstrap.noModifier, dialogStyle: Modifier = ModalDialogSize.default,
- contentStyle: Modifier = Bootstrap.noModifier, modalId: String = Bootstrap.newId): ModalBuilder = {
+ def apply(
+ title: Modifier = "Modal dialog",
+ body: Modifier = "",
+ buttons: Modifier = closeButton(),
+ style: Modifier = Bootstrap.noModifier,
+ dialogStyle: Modifier = ModalDialogSize.default,
+ contentStyle: Modifier = Bootstrap.noModifier,
+ modalId: String = Bootstrap.newId
+ ): ModalBuilder = {
ModalBuilder(title, body, buttons, style, dialogStyle, contentStyle, modalId)
}
}
@@ -75,19 +88,26 @@ trait UniversalModals { self: RenderingContext with Utils with BootstrapComponen
}
def renderTag(md: ModifierT*): TagT = {
- modal(md:_*)
+ modal(md: _*)
}
}
- case class ModalBuilder(title: Modifier, body: Modifier, buttons: Modifier, style: Modifier,
- dialogStyle: Modifier, contentStyle: Modifier, modalId: String) extends UniversalModal {
-
- def withTitle(md: Modifier*): ModalBuilder = copy(title = md)
- def withBody(md: Modifier*): ModalBuilder = copy(body = md)
- def withButtons(md: Modifier*): ModalBuilder = copy(buttons = md)
- def withStyle(md: Modifier*): ModalBuilder = copy(style = md)
- def withDialogStyle(md: Modifier*): ModalBuilder = copy(dialogStyle = md)
+ case class ModalBuilder(
+ title: Modifier,
+ body: Modifier,
+ buttons: Modifier,
+ style: Modifier,
+ dialogStyle: Modifier,
+ contentStyle: Modifier,
+ modalId: String
+ ) extends UniversalModal {
+
+ def withTitle(md: Modifier*): ModalBuilder = copy(title = md)
+ def withBody(md: Modifier*): ModalBuilder = copy(body = md)
+ def withButtons(md: Modifier*): ModalBuilder = copy(buttons = md)
+ def withStyle(md: Modifier*): ModalBuilder = copy(style = md)
+ def withDialogStyle(md: Modifier*): ModalBuilder = copy(dialogStyle = md)
def withContentStyle(md: Modifier*): ModalBuilder = copy(contentStyle = md)
- def withId(id: String): ModalBuilder = copy(modalId = id)
+ def withId(id: String): ModalBuilder = copy(modalId = id)
}
}
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/navbar/NavigationBarStyles.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/navbar/NavigationBarStyles.scala
index 81e8e13..0c4c350 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/navbar/NavigationBarStyles.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/navbar/NavigationBarStyles.scala
@@ -5,8 +5,8 @@ import com.karasiq.bootstrap.context.RenderingContext
trait NavigationBarStyles { self: RenderingContext ⇒
import scalaTags.all._
- final class NavigationBarStyle private[navbar](style: String) extends ModifierFactory {
- val className = s"navbar-$style"
+ final class NavigationBarStyle private[navbar] (style: String) extends ModifierFactory {
+ val className = s"navbar-$style"
val createModifier = className.addClass
}
@@ -16,8 +16,8 @@ trait NavigationBarStyles { self: RenderingContext ⇒
lazy val inverse = new NavigationBarStyle("inverse")
// Position
- lazy val fixedTop = new NavigationBarStyle("fixed-top")
+ lazy val fixedTop = new NavigationBarStyle("fixed-top")
lazy val fixedBottom = new NavigationBarStyle("fixed-bottom")
- lazy val staticTop = new NavigationBarStyle("static-top")
+ lazy val staticTop = new NavigationBarStyle("static-top")
}
}
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/navbar/NavigationBars.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/navbar/NavigationBars.scala
index 5da626e..f695106 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/navbar/NavigationBars.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/navbar/NavigationBars.scala
@@ -10,7 +10,8 @@ import com.karasiq.bootstrap.grid.Grids
import com.karasiq.bootstrap.icons.Icons
import com.karasiq.bootstrap.utils.Utils
-trait NavigationBars extends NavigationBarStyles { self: RenderingContext with Icons with Grids with Utils with BootstrapComponents with ClassModifiers ⇒
+trait NavigationBars extends NavigationBarStyles {
+ self: RenderingContext with Icons with Grids with Utils with BootstrapComponents with ClassModifiers ⇒
import scalaTags.all._
// -----------------------------------------------------------------------
@@ -20,9 +21,9 @@ trait NavigationBars extends NavigationBarStyles { self: RenderingContext with I
case class NavigationTabs(tabs: Rx[Seq[NavigationTab]])
object NavigationTabs {
- implicit def toRxSeq(nt: NavigationTabs): Rx[Seq[NavigationTab]] = nt.tabs
+ implicit def toRxSeq(nt: NavigationTabs): Rx[Seq[NavigationTab]] = nt.tabs
implicit def fromRxSeq(seq: Rx[Seq[NavigationTab]]): NavigationTabs = new NavigationTabs(seq)
- implicit def fromSeq(seq: Seq[NavigationTab]): NavigationTabs = fromRxSeq(Rx(seq))
+ implicit def fromSeq(seq: Seq[NavigationTab]): NavigationTabs = fromRxSeq(Rx(seq))
}
// -----------------------------------------------------------------------
@@ -52,20 +53,30 @@ trait NavigationBars extends NavigationBarStyles { self: RenderingContext with I
}
trait NavigationBarFactory {
- /**
- * Creates navigation bar
- * @param tabs Navbar tabs
- * @param barId Bar id attribute
- * @param brand Navbar "brand" content
- * @param styles Navbar styles
- * @param container Navbar container type
- * @param contentContainer Navbar content container type
- * @return Navigation bar
+
+ /** Creates navigation bar
+ * @param tabs
+ * Navbar tabs
+ * @param barId
+ * Bar id attribute
+ * @param brand
+ * Navbar "brand" content
+ * @param styles
+ * Navbar styles
+ * @param container
+ * Navbar container type
+ * @param contentContainer
+ * Navbar content container type
+ * @return
+ * Navigation bar
*/
- def apply(tabs: Seq[NavigationTab] = Nil, barId: String = Bootstrap.newId, brand: Modifier = "Navigation",
- styles: Seq[NavigationBarStyle] = Seq(NavigationBarStyle.default, NavigationBarStyle.fixedTop),
- container: Modifier ⇒ Modifier = md ⇒ GridSystem.container(md),
- contentContainer: Modifier ⇒ Modifier = md ⇒ GridSystem.container(GridSystem.mkRow(md))): NavigationBar
+ def apply(
+ tabs: Seq[NavigationTab] = Nil,
+ barId: String = Bootstrap.newId,
+ brand: Modifier = "Navigation",
+ styles: Seq[NavigationBarStyle] = Seq(NavigationBarStyle.default, NavigationBarStyle.fixedTop),
+ container: Modifier ⇒ Modifier = md ⇒ GridSystem.container(md),
+ contentContainer: Modifier ⇒ Modifier = md ⇒ GridSystem.container(GridSystem.mkRow(md))
+ ): NavigationBar
}
}
-
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/navbar/UniversalNavigationBars.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/navbar/UniversalNavigationBars.scala
index 6e98f95..22d0750 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/navbar/UniversalNavigationBars.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/navbar/UniversalNavigationBars.scala
@@ -8,7 +8,15 @@ import com.karasiq.bootstrap.grid.Grids
import com.karasiq.bootstrap.icons.Icons
import com.karasiq.bootstrap.utils.Utils
-trait UniversalNavigationBars { self: RenderingContext with Icons with Grids with Utils with BootstrapComponents with ClassModifiers with NavigationBars with NavigationBarStyles ⇒
+trait UniversalNavigationBars {
+ self: RenderingContext
+ with Icons
+ with Grids
+ with Utils
+ with BootstrapComponents
+ with ClassModifiers
+ with NavigationBars
+ with NavigationBarStyles ⇒
import scalaTags.all._
import BootstrapAttrs._
@@ -26,14 +34,24 @@ trait UniversalNavigationBars { self: RenderingContext with Icons with Grids wit
type NavigationBar = NavigationBarBuilder
object NavigationBar extends NavigationBarFactory {
- def apply(tabs: Seq[NavigationTab] = Nil, barId: String = Bootstrap.newId, brand: Modifier = "Navigation", styles: Seq[NavigationBarStyle] = Seq(NavigationBarStyle.default, NavigationBarStyle.fixedTop), container: Modifier ⇒ Modifier = md ⇒ GridSystem.container(md), contentContainer: Modifier ⇒ Modifier = md ⇒ GridSystem.container(GridSystem.mkRow(md))): NavigationBarBuilder = {
+ def apply(
+ tabs: Seq[NavigationTab] = Nil,
+ barId: String = Bootstrap.newId,
+ brand: Modifier = "Navigation",
+ styles: Seq[NavigationBarStyle] = Seq(NavigationBarStyle.default, NavigationBarStyle.fixedTop),
+ container: Modifier ⇒ Modifier = md ⇒ GridSystem.container(md),
+ contentContainer: Modifier ⇒ Modifier = md ⇒ GridSystem.container(GridSystem.mkRow(md))
+ ): NavigationBarBuilder = {
NavigationBarBuilder(tabs, barId, brand, styles, container, contentContainer)
}
}
- class UniversalNavigation(val navTabs: NavigationTabs, val navType: String = "tabs",
- val navId: String = Bootstrap.newId)
- extends AbstractNavigation with BootstrapHtmlComponent {
+ class UniversalNavigation(
+ val navTabs: NavigationTabs,
+ val navType: String = "tabs",
+ val navId: String = Bootstrap.newId
+ ) extends AbstractNavigation
+ with BootstrapHtmlComponent {
private def tabContainer = Rx {
def renderTab(tab: NavigationTab): Tag = {
@@ -49,7 +67,7 @@ trait UniversalNavigationBars { self: RenderingContext with Icons with Grids wit
val tabs = navTabs()
ul(`class` := s"nav nav-$navType", role := "tablist")(
renderTab(tabs.head)("active".addClass),
- for (t <- tabs.tail) yield renderTab(t)
+ for (t ← tabs.tail) yield renderTab(t)
)
}
@@ -63,7 +81,7 @@ trait UniversalNavigationBars { self: RenderingContext with Icons with Grids wit
val tabs = navTabs()
div("tab-content".addClass)(
renderPanel(tabs.head)("active".addClass, "in".addClass),
- for (t <- tabs.tail) yield renderPanel(t)
+ for (t ← tabs.tail) yield renderPanel(t)
)
}
@@ -72,16 +90,17 @@ trait UniversalNavigationBars { self: RenderingContext with Icons with Grids wit
}
}
- /**
- * Simple bootstrap navigation bar
+ /** Simple bootstrap navigation bar
*/
- class UniversalNavigationBar(val navTabs: NavigationTabs,
- val navId: String,
- brand: Modifier,
- styles: Seq[NavigationBarStyle],
- container: Modifier ⇒ Modifier,
- contentContainer: Modifier ⇒ Modifier)
- extends AbstractNavigationBar with BootstrapComponent {
+ class UniversalNavigationBar(
+ val navTabs: NavigationTabs,
+ val navId: String,
+ brand: Modifier,
+ styles: Seq[NavigationBarStyle],
+ container: Modifier ⇒ Modifier,
+ contentContainer: Modifier ⇒ Modifier
+ ) extends AbstractNavigationBar
+ with BootstrapComponent {
private[this] val nav = tag("nav")
@@ -101,13 +120,17 @@ trait UniversalNavigationBars { self: RenderingContext with Icons with Grids wit
val tabs = navTabs()
ul(`class` := "nav navbar-nav")(
renderTab(active = true, tabs.head),
- for (tab <- tabs.tail) yield renderTab(active = false, tab)
+ for (tab ← tabs.tail) yield renderTab(active = false, tab)
)
}
private[this] val tabContentContainer = Rx {
def renderContent(active: Boolean, tab: NavigationTab): Tag = {
- div(id := this.tabId(tab.id), role := "tabpanel", `class` := (if (active) "tab-pane active fade in" else "tab-pane fade"))(
+ div(
+ id := this.tabId(tab.id),
+ role := "tabpanel",
+ `class` := (if (active) "tab-pane active fade in" else "tab-pane fade")
+ )(
tab.content
)
}
@@ -115,27 +138,34 @@ trait UniversalNavigationBars { self: RenderingContext with Icons with Grids wit
val tabs = navTabs()
div(id := s"$navId-tabcontent", `class` := "tab-content")(
renderContent(active = true, tabs.head),
- for (tab <- tabs.tail) yield renderContent(active = false, tab)
+ for (tab ← tabs.tail) yield renderContent(active = false, tab)
)
}
def navbar: Tag = {
nav("navbar".addClass, styles)(
- container(Seq(
- // Header
- div(`class` := "navbar-header")(
- button(`type` := "button", `data-toggle` := "collapse", `data-target` := s"#$navId", `class` := "navbar-toggle collapsed")(
- span(`class` := "sr-only", "Toggle navigation"),
- span(`class` := "icon-bar"),
- span(`class` := "icon-bar"),
- span(`class` := "icon-bar")
+ container(
+ Seq(
+ // Header
+ div(`class` := "navbar-header")(
+ button(
+ `type` := "button",
+ `data-toggle` := "collapse",
+ `data-target` := s"#$navId",
+ `class` := "navbar-toggle collapsed"
+ )(
+ span(`class` := "sr-only", "Toggle navigation"),
+ span(`class` := "icon-bar"),
+ span(`class` := "icon-bar"),
+ span(`class` := "icon-bar")
+ ),
+ a(href := "#", `class` := "navbar-brand", brand)
),
- a(href := "#", `class` := "navbar-brand", brand)
- ),
- div(id := navId, `class` := "navbar-collapse collapse")(
- tabContainer
+ div(id := navId, `class` := "navbar-collapse collapse")(
+ tabContainer
+ )
)
- ))
+ )
)
}
@@ -148,17 +178,23 @@ trait UniversalNavigationBars { self: RenderingContext with Icons with Grids wit
}
}
- //noinspection TypeAnnotation
- case class NavigationBarBuilder(navTabs: NavigationTabs, navId: String,
- brand: Modifier, styles: Seq[NavigationBarStyle],
- container: Modifier ⇒ Modifier, contentContainer: Modifier ⇒ Modifier) extends AbstractNavigationBar with BootstrapComponent {
-
- def withTabs(tabs: NavigationTabs) = copy(navTabs = tabs)
- def withTabs(tabs: NavigationTab*) = copy(navTabs = NavigationTabs.fromSeq(tabs))
- def withId(id: String) = copy(navId = id)
- def withBrand(brand: Modifier*) = copy(brand = brand)
- def withStyles(styles: NavigationBarStyle*) = copy(styles = styles)
- def withContainer(container: Modifier ⇒ Modifier) = copy(container = container)
+ // noinspection TypeAnnotation
+ case class NavigationBarBuilder(
+ navTabs: NavigationTabs,
+ navId: String,
+ brand: Modifier,
+ styles: Seq[NavigationBarStyle],
+ container: Modifier ⇒ Modifier,
+ contentContainer: Modifier ⇒ Modifier
+ ) extends AbstractNavigationBar
+ with BootstrapComponent {
+
+ def withTabs(tabs: NavigationTabs) = copy(navTabs = tabs)
+ def withTabs(tabs: NavigationTab*) = copy(navTabs = NavigationTabs.fromSeq(tabs))
+ def withId(id: String) = copy(navId = id)
+ def withBrand(brand: Modifier*) = copy(brand = brand)
+ def withStyles(styles: NavigationBarStyle*) = copy(styles = styles)
+ def withContainer(container: Modifier ⇒ Modifier) = copy(container = container)
def withContentContainer(contentContainer: Modifier ⇒ Modifier) = copy(contentContainer = contentContainer)
def build(): UniversalNavigationBar = {
@@ -166,7 +202,7 @@ trait UniversalNavigationBars { self: RenderingContext with Icons with Grids wit
}
def render(md: ModifierT*): ModifierT = {
- build().render(md:_*)
+ build().render(md: _*)
}
}
}
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/pagination/UniversalPageSelectors.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/pagination/UniversalPageSelectors.scala
index 54eee10..d1ba797 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/pagination/UniversalPageSelectors.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/pagination/UniversalPageSelectors.scala
@@ -15,18 +15,29 @@ trait UniversalPageSelectors extends PageSelectors { self: RenderingContext ⇒
}
class UniversalPageSelector(val pages: Rx[Int], val currentPage: Var[Int])
- extends AbstractPageSelector with BootstrapHtmlComponent {
+ extends AbstractPageSelector
+ with BootstrapHtmlComponent {
def previousLink: TagT = {
- a(href := "#", aria.label := "Previous", onclick := Callback.onClick { _ ⇒
- if (currentPage.now > 1) currentPage.update(currentPage.now - 1)
- }, span(aria.hidden := true, raw("«")))
+ a(
+ href := "#",
+ aria.label := "Previous",
+ onclick := Callback.onClick { _ ⇒
+ if (currentPage.now > 1) currentPage.update(currentPage.now - 1)
+ },
+ span(aria.hidden := true, raw("«"))
+ )
}
def nextLink: TagT = {
- a(href := "#", aria.label := "Next", onclick := Callback.onClick { _ ⇒
- if (currentPage.now < pages.now) currentPage.update(currentPage.now + 1)
- }, span(aria.hidden := true, raw("»")))
+ a(
+ href := "#",
+ aria.label := "Next",
+ onclick := Callback.onClick { _ ⇒
+ if (currentPage.now < pages.now) currentPage.update(currentPage.now + 1)
+ },
+ span(aria.hidden := true, raw("»"))
+ )
}
def pageLink(page: Int): TagT = {
@@ -55,11 +66,15 @@ trait UniversalPageSelectors extends PageSelectors { self: RenderingContext ⇒
}
def renderTag(md: ModifierT*): TagT = {
- div(Rx(ul(`class` := "pagination", Rx(pages() == 1).reactiveHide, md)(
- previousPageButton,
- for(page <- 1 to pages()) yield pageButton(page),
- nextPageButton
- )))
+ div(
+ Rx(
+ ul(`class` := "pagination", Rx(pages() == 1).reactiveHide, md)(
+ previousPageButton,
+ for (page ← 1 to pages()) yield pageButton(page),
+ nextPageButton
+ )
+ )
+ )
}
}
}
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/panel/PanelStyles.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/panel/PanelStyles.scala
index f5df14d..3d4bc00 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/panel/PanelStyles.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/panel/PanelStyles.scala
@@ -12,18 +12,18 @@ trait PanelStyles { self: RenderingContext with Utils ⇒
val createModifier = Bootstrap.noModifier
}
- final class PanelStyleValue private[panel](style: String) extends PanelStyle {
- val className = s"panel-$style"
+ final class PanelStyleValue private[panel] (style: String) extends PanelStyle {
+ val className = s"panel-$style"
val createModifier = className.addClass
}
- //noinspection TypeAnnotation
+ // noinspection TypeAnnotation
object PanelStyle {
- val default = DefaultPanelStyle
+ val default = DefaultPanelStyle
lazy val primary = new PanelStyleValue("primary")
lazy val success = new PanelStyleValue("success")
- lazy val info = new PanelStyleValue("info")
+ lazy val info = new PanelStyleValue("info")
lazy val warning = new PanelStyleValue("warning")
- lazy val danger = new PanelStyleValue("danger")
+ lazy val danger = new PanelStyleValue("danger")
}
}
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/panel/Panels.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/panel/Panels.scala
index 35cce0a..e19241a 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/panel/Panels.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/panel/Panels.scala
@@ -5,7 +5,8 @@ import com.karasiq.bootstrap.context.{ClassModifiers, RenderingContext}
import com.karasiq.bootstrap.icons.Icons
import com.karasiq.bootstrap.utils.Utils
-trait Panels extends PanelStyles { self: RenderingContext with Utils with BootstrapComponents with ClassModifiers with Icons ⇒
+trait Panels extends PanelStyles {
+ self: RenderingContext with Utils with BootstrapComponents with ClassModifiers with Icons ⇒
import scalaTags.all._
type Panel <: AbstractPanel with BootstrapHtmlComponent
@@ -24,7 +25,11 @@ trait Panels extends PanelStyles { self: RenderingContext with Utils with Bootst
def button(icon: IconModifier, modifiers: Modifier*): Tag
def buttons(buttons: Modifier*): Tag
- def apply(panelId: String = Bootstrap.newId, style: PanelStyle = PanelStyle.default,
- header: Option[Modifier] = None, footer: Option[Modifier] = None): Panel
+ def apply(
+ panelId: String = Bootstrap.newId,
+ style: PanelStyle = PanelStyle.default,
+ header: Option[Modifier] = None,
+ footer: Option[Modifier] = None
+ ): Panel
}
}
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/panel/UniversalPanels.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/panel/UniversalPanels.scala
index 5e13d52..687990b 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/panel/UniversalPanels.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/panel/UniversalPanels.scala
@@ -5,7 +5,8 @@ import com.karasiq.bootstrap.context.RenderingContext
import com.karasiq.bootstrap.icons.Icons
import com.karasiq.bootstrap.utils.Utils
-trait UniversalPanels { self: RenderingContext with BootstrapComponents with Utils with Icons with Panels with PanelStyles ⇒
+trait UniversalPanels {
+ self: RenderingContext with BootstrapComponents with Utils with Icons with Panels with PanelStyles ⇒
import scalaTags.all._
import BootstrapAttrs._
@@ -33,18 +34,25 @@ trait UniversalPanels { self: RenderingContext with BootstrapComponents with Uti
div(`class` := "pull-right panel-head-buttons", buttons)
}
- /**
- * Shortcut to PanelBuilder()
+ /** Shortcut to PanelBuilder()
*/
- def apply(panelId: String = Bootstrap.newId, style: PanelStyle = PanelStyle.default,
- header: Option[Modifier] = None, footer: Option[Modifier] = None): PanelBuilder = {
+ def apply(
+ panelId: String = Bootstrap.newId,
+ style: PanelStyle = PanelStyle.default,
+ header: Option[Modifier] = None,
+ footer: Option[Modifier] = None
+ ): PanelBuilder = {
PanelBuilder(panelId, style, header, footer)
}
}
- case class PanelBuilder(panelId: String, style: PanelStyle = PanelStyle.default,
- header: Option[Modifier] = None, footer: Option[Modifier] = None)
- extends AbstractPanel with BootstrapHtmlComponent {
+ case class PanelBuilder(
+ panelId: String,
+ style: PanelStyle = PanelStyle.default,
+ header: Option[Modifier] = None,
+ footer: Option[Modifier] = None
+ ) extends AbstractPanel
+ with BootstrapHtmlComponent {
def withId(newId: String): PanelBuilder = {
copy(panelId = newId)
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/popover/Popovers.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/popover/Popovers.scala
index 38907ca..1e82795 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/popover/Popovers.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/popover/Popovers.scala
@@ -10,9 +10,19 @@ import com.karasiq.bootstrap.utils.Utils
trait Popovers { self: RenderingContext with BootstrapComponents with Tooltips with Utils ⇒
import scalaTags.all._
- case class PopoverOptions(animation: Boolean = true, container: String = "", content: Frag = "", delay: String = "",
- html: Boolean = false, placement: TooltipPlacement = TooltipPlacement.right, selector: String = "", template: String = "",
- title: Frag = "", trigger: String = "", viewport: String = "") {
+ case class PopoverOptions(
+ animation: Boolean = true,
+ container: String = "",
+ content: Frag = "",
+ delay: String = "",
+ html: Boolean = false,
+ placement: TooltipPlacement = TooltipPlacement.right,
+ selector: String = "",
+ template: String = "",
+ title: Frag = "",
+ trigger: String = "",
+ viewport: String = ""
+ ) {
def toStrings: Seq[(String, String)] = {
def opt[T](name: String, value: T, default: T) = Option(name → value).filterNot(_._2 == default)
Seq(
@@ -35,10 +45,10 @@ trait Popovers { self: RenderingContext with BootstrapComponents with Tooltips w
def options: PopoverOptions
}
- /**
- * Add small overlays of content, like those on the iPad, to any element for housing secondary information.
- * Popovers whose both title and content are zero-length are never displayed.
- * @see [[http://getbootstrap.com/javascript/#popovers]]
+ /** Add small overlays of content, like those on the iPad, to any element for housing secondary information. Popovers
+ * whose both title and content are zero-length are never displayed.
+ * @see
+ * [[http://getbootstrap.com/javascript/#popovers]]
*/
trait PopoverFactory {
def apply(title: Frag, content: Frag, placement: TooltipPlacement = TooltipPlacement.auto): Popover
@@ -46,4 +56,3 @@ trait Popovers { self: RenderingContext with BootstrapComponents with Tooltips w
val Popover: PopoverFactory
}
-
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/popover/TextPopovers.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/popover/TextPopovers.scala
index 3ae4792..1425d9d 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/popover/TextPopovers.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/popover/TextPopovers.scala
@@ -11,17 +11,17 @@ trait TextPopovers { self: RenderingContext with BootstrapComponents with Toolti
import scalaTags.all._
import BootstrapAttrs._
-
+
class TextPopover(val options: PopoverOptions) extends Popover {
override def render(md: ModifierT*): ModifierT = {
(`data-toggle` := "popover") +: Bootstrap.dataProps(options.toStrings: _*) +: md
}
}
- /**
- * Add small overlays of content, like those on the iPad, to any element for housing secondary information.
- * Popovers whose both title and content are zero-length are never displayed.
- * @see [[http://getbootstrap.com/javascript/#popovers]]
+ /** Add small overlays of content, like those on the iPad, to any element for housing secondary information. Popovers
+ * whose both title and content are zero-length are never displayed.
+ * @see
+ * [[http://getbootstrap.com/javascript/#popovers]]
*/
object Popover extends PopoverFactory {
def apply(title: Frag, content: Frag, placement: TooltipPlacement = TooltipPlacement.auto): Popover = {
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/progressbar/ProgressBarStyles.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/progressbar/ProgressBarStyles.scala
index eec3196..925b45d 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/progressbar/ProgressBarStyles.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/progressbar/ProgressBarStyles.scala
@@ -16,9 +16,9 @@ trait ProgressBarStyles { self: RenderingContext ⇒
}
lazy val success: ProgressBarStyle = style("success")
- lazy val info: ProgressBarStyle = style("info")
+ lazy val info: ProgressBarStyle = style("info")
lazy val warning: ProgressBarStyle = style("warning")
- lazy val danger: ProgressBarStyle = style("danger")
+ lazy val danger: ProgressBarStyle = style("danger")
lazy val striped: ProgressBarStyle = style("striped")
lazy val animated: ProgressBarStyle = new ProgressBarStyle {
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/progressbar/ProgressBars.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/progressbar/ProgressBars.scala
index c4f1c79..462d1de 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/progressbar/ProgressBars.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/progressbar/ProgressBars.scala
@@ -7,7 +7,8 @@ import rx.Rx
import com.karasiq.bootstrap.components.BootstrapComponents
import com.karasiq.bootstrap.context.{ReactiveBinds, ReactiveImplicits, RenderingContext}
-trait ProgressBars extends ProgressBarStyles { self: RenderingContext with BootstrapComponents with ReactiveBinds with ReactiveImplicits ⇒
+trait ProgressBars extends ProgressBarStyles {
+ self: RenderingContext with BootstrapComponents with ReactiveBinds with ReactiveImplicits ⇒
type ProgressBar <: AbstractProgressBar with BootstrapHtmlComponent
val ProgressBar: ProgressBarFactory
@@ -16,13 +17,12 @@ trait ProgressBars extends ProgressBarStyles { self: RenderingContext with Boots
def progress: Rx[Int]
}
- /**
- * Provide up-to-date feedback on the progress of a workflow or action with simple yet flexible progress bars.
- * @see [[http://getbootstrap.com/components/#progress]]
+ /** Provide up-to-date feedback on the progress of a workflow or action with simple yet flexible progress bars.
+ * @see
+ * [[http://getbootstrap.com/components/#progress]]
*/
trait ProgressBarFactory {
def basic(value: Rx[Int]): ProgressBar
def withLabel(value: Rx[Int]): ProgressBar
}
}
-
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/progressbar/UniversalProgressBars.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/progressbar/UniversalProgressBars.scala
index 8045660..665bcef 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/progressbar/UniversalProgressBars.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/progressbar/UniversalProgressBars.scala
@@ -33,8 +33,16 @@ trait UniversalProgressBars { self: RenderingContext with BootstrapComponents wi
override def renderTag(md: ModifierT*): TagT = {
div("progress".addClass)(
- div("progress-bar".addClass, role := "progressbar", Rx(aria.valuenow := progress()).auto,
- aria.valuemin := 0, aria.valuemax := 100, Rx[Modifier](width := progress().pct).auto, content, md)
+ div(
+ "progress-bar".addClass,
+ role := "progressbar",
+ Rx(aria.valuenow := progress()).auto,
+ aria.valuemin := 0,
+ aria.valuemax := 100,
+ Rx[Modifier](width := progress().pct).auto,
+ content,
+ md
+ )
)
}
}
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/table/PagedTables.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/table/PagedTables.scala
index 10f5e61..8428112 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/table/PagedTables.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/table/PagedTables.scala
@@ -14,8 +14,7 @@ trait PagedTables { self: RenderingContext with BootstrapComponents with Tables
type PagedTable <: AbstractPagedTable with BootstrapHtmlComponent
val PagedTable: PagedTableFactory
- /**
- * Table with pagination
+ /** Table with pagination
*/
trait AbstractPagedTable {
def table: Table
@@ -43,7 +42,11 @@ trait PagedTables { self: RenderingContext with BootstrapComponents with Tables
}
}
- private[table] def pagedDataRx(allContent: Rx[Seq[TableRow]], currentPage: Rx[Int], rowsPerPage: Int): Rx[Seq[TableRow]] = {
+ private[table] def pagedDataRx(
+ allContent: Rx[Seq[TableRow]],
+ currentPage: Rx[Int],
+ rowsPerPage: Int
+ ): Rx[Seq[TableRow]] = {
Rx {
val data = allContent()
val page = currentPage()
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/table/SortableTables.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/table/SortableTables.scala
index 253b25b..a05ada6 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/table/SortableTables.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/table/SortableTables.scala
@@ -14,9 +14,12 @@ trait SortableTables extends TableCols { self: RenderingContext with PagedTables
val SortableTable: AbstractSortableTableFactory
trait AbstractSortableTableFactory {
- def apply[T](items: Rx[Seq[T]], columns: Rx[Seq[TableCol[T, _]]],
- rowModifiers: T ⇒ Modifier = (_: T) ⇒ Bootstrap.noModifier,
- filterItem: (T, String) ⇒ Boolean = (i: T, f: String) ⇒ i.toString.contains(f)): SortableTable[T]
+ def apply[T](
+ items: Rx[Seq[T]],
+ columns: Rx[Seq[TableCol[T, _]]],
+ rowModifiers: T ⇒ Modifier = (_: T) ⇒ Bootstrap.noModifier,
+ filterItem: (T, String) ⇒ Boolean = (i: T, f: String) ⇒ i.toString.contains(f)
+ ): SortableTable[T]
}
trait AbstractSortableTable[T] {
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/table/TableCols.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/table/TableCols.scala
index 4a5228b..de09b4b 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/table/TableCols.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/table/TableCols.scala
@@ -16,6 +16,6 @@ trait TableCols { self: RenderingContext ⇒
def apply[T](cols: TableCol[T, _]*) = cols
}
- type GenTableCol[T] = TableCol[T, Any]
+ type GenTableCol[T] = TableCol[T, Any]
type GenTableCols[T] = Seq[GenTableCol[T]]
}
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/table/TableStyles.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/table/TableStyles.scala
index 07e4522..dce5b52 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/table/TableStyles.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/table/TableStyles.scala
@@ -5,15 +5,15 @@ import com.karasiq.bootstrap.context.RenderingContext
trait TableStyles { self: RenderingContext ⇒
import scalaTags.all._
- final class TableStyle private[table](val styleName: String) extends ModifierFactory {
- val className = s"table-$styleName"
+ final class TableStyle private[table] (val styleName: String) extends ModifierFactory {
+ val className = s"table-$styleName"
val createModifier = className.addClass
}
object TableStyle {
- lazy val striped = new TableStyle("striped")
- lazy val hover = new TableStyle("hover")
- lazy val bordered = new TableStyle("bordered")
+ lazy val striped = new TableStyle("striped")
+ lazy val hover = new TableStyle("hover")
+ lazy val bordered = new TableStyle("bordered")
lazy val condensed = new TableStyle("condensed")
}
}
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/table/UniversalPagedTables.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/table/UniversalPagedTables.scala
index be39e03..199cca7 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/table/UniversalPagedTables.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/table/UniversalPagedTables.scala
@@ -6,7 +6,8 @@ import com.karasiq.bootstrap.components.BootstrapComponents
import com.karasiq.bootstrap.context.RenderingContext
import com.karasiq.bootstrap.pagination.PageSelectors
-trait UniversalPagedTables extends PagedTables { self: RenderingContext with BootstrapComponents with PageSelectors with Tables ⇒
+trait UniversalPagedTables extends PagedTables {
+ self: RenderingContext with BootstrapComponents with PageSelectors with Tables ⇒
import scalaTags.all._
type PagedTable = UniversalPagedTable
@@ -18,18 +19,20 @@ trait UniversalPagedTables extends PagedTables { self: RenderingContext with Boo
trait UniversalPagedTable extends AbstractPagedTable with BootstrapHtmlComponent {
override def renderTag(md: ModifierT*): TagT = {
- div(div(textAlign.center, pageSelector), table.renderTag(md:_*))
+ div(div(textAlign.center, pageSelector), table.renderTag(md: _*))
}
}
- protected final class UniversalStaticPagedTableImpl(val heading: Rx[Seq[Modifier]],
- val allContent: Rx[Seq[TableRow]],
- val rowsPerPage: Int)
- extends UniversalPagedTable with AbstractStaticPagedTable {
+ protected final class UniversalStaticPagedTableImpl(
+ val heading: Rx[Seq[Modifier]],
+ val allContent: Rx[Seq[TableRow]],
+ val rowsPerPage: Int
+ ) extends UniversalPagedTable
+ with AbstractStaticPagedTable {
val currentPage = Var(1)
- val table: Table = Table(heading, PagedTable.pagedDataRx(allContent, currentPage, rowsPerPage))
+ val table: Table = Table(heading, PagedTable.pagedDataRx(allContent, currentPage, rowsPerPage))
val pageSelector: PageSelector = PageSelector(PagedTable.pagesRx(allContent, rowsPerPage), currentPage)
pageSelector.pages.triggerLater {
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/table/UniversalSortableTables.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/table/UniversalSortableTables.scala
index 694c454..2d36836 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/table/UniversalSortableTables.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/table/UniversalSortableTables.scala
@@ -8,25 +8,31 @@ import com.karasiq.bootstrap.grid.Grids
import com.karasiq.bootstrap.icons.Icons
import com.karasiq.bootstrap.utils.Utils
-trait UniversalSortableTables extends SortableTables { self: RenderingContext with Tables with PagedTables with Icons with Utils with Forms with Grids ⇒
+trait UniversalSortableTables extends SortableTables {
+ self: RenderingContext with Tables with PagedTables with Icons with Utils with Forms with Grids ⇒
import scalaTags.all._
type SortableTable[T] = UniversalSortableTable[T]
object SortableTable extends AbstractSortableTableFactory {
- def apply[T](items: Rx[Seq[T]], columns: Rx[Seq[TableCol[T, _]]],
- rowModifiers: T ⇒ Modifier = (_: T) ⇒ Bootstrap.noModifier,
- filterItem: (T, String) ⇒ Boolean = (i: T, f: String) ⇒ i.toString.contains(f)): SortableTable[T] = {
+ def apply[T](
+ items: Rx[Seq[T]],
+ columns: Rx[Seq[TableCol[T, _]]],
+ rowModifiers: T ⇒ Modifier = (_: T) ⇒ Bootstrap.noModifier,
+ filterItem: (T, String) ⇒ Boolean = (i: T, f: String) ⇒ i.toString.contains(f)
+ ): SortableTable[T] = {
Builder(columns, rowModifiers, filterItem).createTable(items)
}
- case class Builder[T](columns: Rx[Seq[TableCol[T, _]]] = Var(Nil),
- rowModifiers: T ⇒ Modifier = (_: T) ⇒ Bootstrap.noModifier,
- filterItem: (T, String) ⇒ Boolean = (i: T, f: String) ⇒ i.toString.contains(f)) {
+ case class Builder[T](
+ columns: Rx[Seq[TableCol[T, _]]] = Var(Nil),
+ rowModifiers: T ⇒ Modifier = (_: T) ⇒ Bootstrap.noModifier,
+ filterItem: (T, String) ⇒ Boolean = (i: T, f: String) ⇒ i.toString.contains(f)
+ ) {
def withColumns(columns: Rx[Seq[TableCol[T, _]]]) = copy(columns = columns)
- def withColumns(columns: TableCol[T, _]*) = copy(columns = Var(columns.asInstanceOf[GenTableCols[T]]))
- def withRowModifiers(rowModifiers: T ⇒ Modifier) = copy(rowModifiers = rowModifiers)
+ def withColumns(columns: TableCol[T, _]*) = copy(columns = Var(columns.asInstanceOf[GenTableCols[T]]))
+ def withRowModifiers(rowModifiers: T ⇒ Modifier) = copy(rowModifiers = rowModifiers)
def withFilter(filterItem: (T, String) ⇒ Boolean) = copy(filterItem = filterItem)
def createTable(items: Rx[Seq[T]]): SortableTable[T] = {
@@ -35,13 +41,13 @@ trait UniversalSortableTables extends SortableTables { self: RenderingContext wi
new UniversalSortableTable[T] {
val items = _items
- val columns = Builder.this.columns.asInstanceOf[Rx[GenTableCols[T]]]
- val sortByColumn = Var(columns.now.head)
+ val columns = Builder.this.columns.asInstanceOf[Rx[GenTableCols[T]]]
+ val sortByColumn = Var(columns.now.head)
val reverseOrdering = Var(false)
- val filter = Var("")
+ val filter = Var("")
def filterItem(item: T, filter: String): Boolean = Builder.this.filterItem(item, filter)
- def rowModifiers(item: T): Modifier = Builder.this.rowModifiers(item)
+ def rowModifiers(item: T): Modifier = Builder.this.rowModifiers(item)
}
}
@@ -58,7 +64,8 @@ trait UniversalSortableTables extends SortableTables { self: RenderingContext wi
val columns = this.columns()
columns.map { column ⇒
val icon = Rx[Frag] {
- if (sortByColumn() == column) span(Icon(if (reverseOrdering()) "triangle-bottom" else "triangle-top")) // "▼" else "▲"
+ if (sortByColumn() == column)
+ span(Icon(if (reverseOrdering()) "triangle-bottom" else "triangle-top")) // "▼" else "▲"
else Bootstrap.noContent
}
@@ -68,13 +75,14 @@ trait UniversalSortableTables extends SortableTables { self: RenderingContext wi
val content = Rx {
val columns = this.columns()
- val items = this.items()
+ val items = this.items()
val filter = this.filter()
- val filteredItems = if (hideFilterRx() || filter.isEmpty) items else items.filter(item ⇒ filterItem(item, filter))
+ val filteredItems =
+ if (hideFilterRx() || filter.isEmpty) items else items.filter(item ⇒ filterItem(item, filter))
val selectedCol = this.sortByColumn()
- val ordering = if (reverseOrdering()) selectedCol.ord.reverse else selectedCol.ord
+ val ordering = if (reverseOrdering()) selectedCol.ord.reverse else selectedCol.ord
val sortedItems = filteredItems.sortBy(item ⇒ selectedCol.extract(item))(ordering)
sortedItems.map(item ⇒ TableRow(columns.map(col ⇒ col.render(item)), rowModifiers(item)))
@@ -86,7 +94,7 @@ trait UniversalSortableTables extends SortableTables { self: RenderingContext wi
def renderTag(md: ModifierT*): TagT = {
div(
GridSystem.mkRow(Form(FormInput.text("", filter.reactiveInput)), hideFilterRx.reactiveHide),
- GridSystem.mkRow(pagedTable.renderTag(md:_*))
+ GridSystem.mkRow(pagedTable.renderTag(md: _*))
)
}
}
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/table/UniversalTables.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/table/UniversalTables.scala
index a0bbbb6..43d83c3 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/table/UniversalTables.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/table/UniversalTables.scala
@@ -17,14 +17,14 @@ trait UniversalTables { self: RenderingContext with BootstrapComponents with Tab
trait UniversalTable extends AbstractTable with BootstrapHtmlComponent {
lazy val tableHead: Rx[TagT] = Rx {
- thead(tr(for (h <- heading()) yield th(h)))
+ thead(tr(for (h ← heading()) yield th(h)))
}
lazy val tableBody: Rx[TagT] = Rx {
- tbody(for (row <- content()) yield {
+ tbody(for (row ← content()) yield {
tr(
row.modifiers,
- for (col <- row.columns) yield td(col)
+ for (col ← row.columns) yield td(col)
)
})
}
@@ -36,6 +36,6 @@ trait UniversalTables { self: RenderingContext with BootstrapComponents with Tab
}
}
- protected class StaticUniversalTable(val heading: Rx[Seq[Modifier]],
- val content: Rx[Seq[TableRow]]) extends UniversalTable
+ protected class StaticUniversalTable(val heading: Rx[Seq[Modifier]], val content: Rx[Seq[TableRow]])
+ extends UniversalTable
}
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/tooltip/TextTooltips.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/tooltip/TextTooltips.scala
index 1ea0928..52fca00 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/tooltip/TextTooltips.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/tooltip/TextTooltips.scala
@@ -13,15 +13,15 @@ trait TextTooltips { self: RenderingContext with BootstrapComponents with Toolti
class TextTooltip(val options: TooltipOptions) extends AbstractTooltip {
override def render(md: ModifierT*): ModifierT = {
- (`data-toggle` := "tooltip") +: Bootstrap.dataProps(options.toStrings:_*) +: md
+ (`data-toggle` := "tooltip") +: Bootstrap.dataProps(options.toStrings: _*) +: md
}
}
- /**
- * Inspired by the excellent jQuery.tipsy plugin written by Jason Frame;
- * Tooltips are an updated version, which don't rely on images, use CSS3 for animations, and data-attributes for local title storage.
- * Tooltips with zero-length titles are never displayed.
- * @see [[http://getbootstrap.com/javascript/#tooltips]]
+ /** Inspired by the excellent jQuery.tipsy plugin written by Jason Frame; Tooltips are an updated version, which don't
+ * rely on images, use CSS3 for animations, and data-attributes for local title storage. Tooltips with zero-length
+ * titles are never displayed.
+ * @see
+ * [[http://getbootstrap.com/javascript/#tooltips]]
*/
object Tooltip extends TooltipFactory {
def apply(content: Frag, placement: TooltipPlacement): AbstractTooltip = {
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/tooltip/TooltipStyles.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/tooltip/TooltipStyles.scala
index e13e520..d8630fe 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/tooltip/TooltipStyles.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/tooltip/TooltipStyles.scala
@@ -5,17 +5,17 @@ import com.karasiq.bootstrap.context.RenderingContext
trait TooltipStyles { self: RenderingContext ⇒
import scalaTags.all._
- final class TooltipPlacement private[tooltip](val placement: String) {
+ final class TooltipPlacement private[tooltip] (val placement: String) {
override def toString: String = placement
}
- //noinspection TypeAnnotation
+ // noinspection TypeAnnotation
object TooltipPlacement {
private[this] def placement(str: String): TooltipPlacement = new TooltipPlacement(str)
- val auto = placement("auto")
- val left = placement("left")
- val right = placement("right")
- val top = placement("top")
- val bottom = placement("bottom")
+ val auto = placement("auto")
+ val left = placement("left")
+ val right = placement("right")
+ val top = placement("top")
+ val bottom = placement("bottom")
}
}
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/tooltip/Tooltips.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/tooltip/Tooltips.scala
index 5c8efdc..fd0317a 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/tooltip/Tooltips.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/tooltip/Tooltips.scala
@@ -11,9 +11,18 @@ trait Tooltips extends TooltipStyles { self: RenderingContext with BootstrapComp
type Tooltip <: AbstractTooltip
val Tooltip: TooltipFactory
- case class TooltipOptions(animation: Boolean = true, container: String = "", delay: String = "",
- html: Boolean = false, placement: TooltipPlacement = TooltipPlacement.right, selector: String = "", template: String = "",
- title: Frag = "", trigger: String = "", viewport: String = "") {
+ case class TooltipOptions(
+ animation: Boolean = true,
+ container: String = "",
+ delay: String = "",
+ html: Boolean = false,
+ placement: TooltipPlacement = TooltipPlacement.right,
+ selector: String = "",
+ template: String = "",
+ title: Frag = "",
+ trigger: String = "",
+ viewport: String = ""
+ ) {
def toStrings: Seq[(String, String)] = {
def opt[T](name: String, value: T, default: T) = Option(name → value).filterNot(_._2 == default)
Seq(
@@ -35,11 +44,11 @@ trait Tooltips extends TooltipStyles { self: RenderingContext with BootstrapComp
def options: TooltipOptions
}
- /**
- * Inspired by the excellent jQuery.tipsy plugin written by Jason Frame;
- * Tooltips are an updated version, which don't rely on images, use CSS3 for animations, and data-attributes for local title storage.
- * Tooltips with zero-length titles are never displayed.
- * @see [[http://getbootstrap.com/javascript/#tooltips]]
+ /** Inspired by the excellent jQuery.tipsy plugin written by Jason Frame; Tooltips are an updated version, which don't
+ * rely on images, use CSS3 for animations, and data-attributes for local title storage. Tooltips with zero-length
+ * titles are never displayed.
+ * @see
+ * [[http://getbootstrap.com/javascript/#tooltips]]
*/
trait TooltipFactory {
def apply(content: Frag, placement: TooltipPlacement = TooltipPlacement.auto): AbstractTooltip
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/utils/UniversalUtils.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/utils/UniversalUtils.scala
index ce7c102..a568147 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/utils/UniversalUtils.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/utils/UniversalUtils.scala
@@ -19,223 +19,246 @@ trait UniversalUtils { self: RenderingContext with Icons with Buttons with Class
object BootstrapAttrs extends DefaultBootstrapAttrs
trait UniversalUtils extends AbstractUtils {
- /**
- * A lightweight, flexible component that can optionally extend the entire viewport to showcase key content on your site.
- * @see [[https://getbootstrap.com/components/#jumbotron]]
+
+ /** A lightweight, flexible component that can optionally extend the entire viewport to showcase key content on your
+ * site.
+ * @see
+ * [[https://getbootstrap.com/components/#jumbotron]]
*/
lazy val jumbotron: Tag = div(`class` := "jumbotron")
- /**
- * Use the well as a simple effect on an element to give it an inset effect.
- * @see [[https://getbootstrap.com/components/#wells]]
+ /** Use the well as a simple effect on an element to give it an inset effect.
+ * @see
+ * [[https://getbootstrap.com/components/#wells]]
*/
lazy val well: Tag = div(`class` := "well")
- /**
- * Easily highlight new or unread items by adding a badge to links, Bootstrap navs, and more.
- * @see [[https://getbootstrap.com/components/#badges]]
+ /** Easily highlight new or unread items by adding a badge to links, Bootstrap navs, and more.
+ * @see
+ * [[https://getbootstrap.com/components/#badges]]
*/
lazy val badge: Tag = span(`class` := "badge")
- /**
- * Default button
+ /** Default button
*/
lazy val button: Tag = {
Button().renderTag()
}
- /**
- * Default icon
- * @param name Icon name
- * @see [[https://getbootstrap.com/components/#glyphicons]]
+ /** Default icon
+ * @param name
+ * Icon name
+ * @see
+ * [[https://getbootstrap.com/components/#glyphicons]]
*/
def icon(name: String): IconModifier = {
Icon(name)
}
- /**
- * Generates unique element ID
+ /** Generates unique element ID
*/
def newId: String = {
s"bs-auto-${UUID.randomUUID()}"
}
- /**
- * Add classes to an `img` element to easily style images in any project.
- * @see [[http://getbootstrap.com/css/#images-shapes]]
+ /** Add classes to an `img` element to easily style images in any project.
+ * @see
+ * [[http://getbootstrap.com/css/#images-shapes]]
*/
object image extends AbstractImageUtils {
- final class ImageStyle private[bootstrap](val styleName: String) extends AbstractImageStyle with StyleClassModifier {
- val className = s"img-$styleName"
+ final class ImageStyle private[bootstrap] (val styleName: String)
+ extends AbstractImageStyle
+ with StyleClassModifier {
+ val className = s"img-$styleName"
val createModifier = className.addClass
}
- /**
- * Images in Bootstrap 3 can be made responsive-friendly via the addition of the .img-responsive class.
- * This applies max-width: 100%;, height: auto; and display: block; to the image so that it scales nicely to the parent element.
- * To center images which use the .img-responsive class, use .center-block instead of .text-center.
- * See the helper classes section for more details about .center-block usage.
- * @see [[http://getbootstrap.com/css/#images-responsive]]
+ /** Images in Bootstrap 3 can be made responsive-friendly via the addition of the .img-responsive class. This
+ * applies max-width: 100%;, height: auto; and display: block; to the image so that it scales nicely to the
+ * parent element. To center images which use the .img-responsive class, use .center-block instead of
+ * .text-center. See the helper classes section for more details about .center-block usage.
+ * @see
+ * [[http://getbootstrap.com/css/#images-responsive]]
*/
lazy val responsive = new ImageStyle("responsive")
- lazy val rounded = new ImageStyle("rounded")
- lazy val circle = new ImageStyle("circle")
+ lazy val rounded = new ImageStyle("rounded")
+ lazy val circle = new ImageStyle("circle")
lazy val thumbnail = new ImageStyle("thumbnail")
}
sealed trait TextModifier extends StyleClassModifier {
def styleName: String
- def className = s"text-$styleName"
+ def className = s"text-$styleName"
lazy val createModifier = className.addClass
}
- /**
- * Easily realign text to components with text alignment classes.
- * @see [[http://getbootstrap.com/css/#type-alignment]]
+ /** Easily realign text to components with text alignment classes.
+ * @see
+ * [[http://getbootstrap.com/css/#type-alignment]]
*/
object textAlign extends AbstractTextAlignments {
- final class TextAlignment private[bootstrap](val styleName: String) extends TextModifier with AbstractTextAlignment
+ final class TextAlignment private[bootstrap] (val styleName: String)
+ extends TextModifier
+ with AbstractTextAlignment
- lazy val left = new TextAlignment("left")
- lazy val center = new TextAlignment("center")
- lazy val right = new TextAlignment("right")
+ lazy val left = new TextAlignment("left")
+ lazy val center = new TextAlignment("center")
+ lazy val right = new TextAlignment("right")
lazy val justify = new TextAlignment("justify")
- lazy val nowrap = new TextAlignment("nowrap")
+ lazy val nowrap = new TextAlignment("nowrap")
}
- /**
- * Transform text in components with text capitalization classes.
- * @see [[http://getbootstrap.com/css/#type-transformation]]
+ /** Transform text in components with text capitalization classes.
+ * @see
+ * [[http://getbootstrap.com/css/#type-transformation]]
*/
object textTransform extends AbstractTextTransformations {
- final class TextTransformation private[bootstrap](val styleName: String) extends TextModifier with AbstractTextTransformation
+ final class TextTransformation private[bootstrap] (val styleName: String)
+ extends TextModifier
+ with AbstractTextTransformation
- lazy val lowercase = new TextTransformation("lowercase")
- lazy val uppercase = new TextTransformation("uppercase")
+ lazy val lowercase = new TextTransformation("lowercase")
+ lazy val uppercase = new TextTransformation("uppercase")
lazy val capitalize = new TextTransformation("capitalize")
}
- /**
- * Convey meaning through color with a handful of emphasis utility classes.
- * These may also be applied to links and will darken on hover just like our default link styles.
- * @see [[http://getbootstrap.com/css/#helper-classes-colors]]
+ /** Convey meaning through color with a handful of emphasis utility classes. These may also be applied to links and
+ * will darken on hover just like our default link styles.
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-colors]]
*/
object textStyle extends AbstractTextStyles {
- final class TextStyle private[bootstrap](val styleName: String) extends TextModifier with AbstractTextStyle
+ final class TextStyle private[bootstrap] (val styleName: String) extends TextModifier with AbstractTextStyle
- lazy val muted = new TextStyle("muted")
+ lazy val muted = new TextStyle("muted")
lazy val primary = new TextStyle("primary")
lazy val success = new TextStyle("success")
- lazy val info = new TextStyle("info")
+ lazy val info = new TextStyle("info")
lazy val warning = new TextStyle("warning")
- lazy val danger = new TextStyle("danger")
+ lazy val danger = new TextStyle("danger")
- /**
- * Utilize the `.text-hide` class or mixin to help replace an element's text content with a background image.
- * @see [[http://getbootstrap.com/css/#helper-classes-image-replacement]]
+ /** Utilize the `.text-hide` class or mixin to help replace an element's text content with a background image.
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-image-replacement]]
*/
lazy val hide = new TextStyle("hide")
}
- /**
- * Similar to the contextual text color classes, easily set the background of an element to any contextual class.
+ /** Similar to the contextual text color classes, easily set the background of an element to any contextual class.
* Anchor components will darken on hover, just like the text classes.
- * @see [[http://getbootstrap.com/css/#helper-classes-backgrounds]]
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-backgrounds]]
*/
object background extends AbstractBackgroundStyles {
- final class BackgroundStyle private[bootstrap](val styleName: String) extends AbstractBackgroundStyle with StyleClassModifier {
- val className = s"bg-$styleName"
+ final class BackgroundStyle private[bootstrap] (val styleName: String)
+ extends AbstractBackgroundStyle
+ with StyleClassModifier {
+ val className = s"bg-$styleName"
val createModifier = className.addClass
}
lazy val primary = new BackgroundStyle("primary")
lazy val success = new BackgroundStyle("success")
- lazy val info = new BackgroundStyle("info")
+ lazy val info = new BackgroundStyle("info")
lazy val warning = new BackgroundStyle("warning")
- lazy val danger = new BackgroundStyle("danger")
+ lazy val danger = new BackgroundStyle("danger")
}
- /**
- * Use the generic close icon for dismissing content like modals and alerts.
- * @see [[http://getbootstrap.com/css/#helper-classes-close]]
+ /** Use the generic close icon for dismissing content like modals and alerts.
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-close]]
*/
lazy val closeIcon: Tag = {
- scalaTags.tags.button(`type` := "button", `class` := "close", aria.label := "Close", span(aria.hidden := true, raw("×")))
+ scalaTags.tags.button(
+ `type` := "button",
+ `class` := "close",
+ aria.label := "Close",
+ span(aria.hidden := true, raw("×"))
+ )
}
- /**
- * Use carets to indicate dropdown functionality and direction.
- * Note that the default caret will reverse automatically in dropup menus.
- * @see [[http://getbootstrap.com/css/#helper-classes-carets]]
+ /** Use carets to indicate dropdown functionality and direction. Note that the default caret will reverse
+ * automatically in dropup menus.
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-carets]]
*/
lazy val caret: Tag = span(`class` := "caret")
- /**
- * Float an element to the left or right with a class.
- * `!important` is included to avoid specificity issues.
- * @note To align components in navbars with utility classes, use .navbar-left or .navbar-right instead. See the navbar docs for details.
- * @see [[http://getbootstrap.com/css/#helper-classes-floats]]
+ /** Float an element to the left or right with a class. `!important` is included to avoid specificity issues.
+ * @note
+ * To align components in navbars with utility classes, use .navbar-left or .navbar-right instead. See the navbar
+ * docs for details.
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-floats]]
*/
object pull extends AbstractPullModifiers {
- final class PullModifier private[bootstrap](val styleName: String) extends AbstractPullModifier with StyleClassModifier {
- val className = s"pull-$styleName"
+ final class PullModifier private[bootstrap] (val styleName: String)
+ extends AbstractPullModifier
+ with StyleClassModifier {
+ val className = s"pull-$styleName"
val createModifier = className.addClass
}
- lazy val left = new PullModifier("left")
+ lazy val left = new PullModifier("left")
lazy val right = new PullModifier("right")
}
- /**
- * Set an element to display: block and center via margin
- * @see [[http://getbootstrap.com/css/#helper-classes-center]]
+ /** Set an element to display: block and center via margin
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-center]]
*/
lazy val centerBlock = "center-block".addClass
- /**
- * Easily clear floats by adding `.clearfix` to the parent element.
- * Utilizes [[http://nicolasgallagher.com/micro-clearfix-hack/ the micro clearfix]] as popularized by Nicolas Gallagher.
- * @see [[http://getbootstrap.com/css/#helper-classes-clearfix]]
+ /** Easily clear floats by adding `.clearfix` to the parent element. Utilizes
+ * [[http://nicolasgallagher.com/micro-clearfix-hack/ the micro clearfix]] as popularized by Nicolas Gallagher.
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-clearfix]]
*/
lazy val clearFix = "clearfix".addClass
- /**
- * Force an element to be shown or hidden (including for screen readers) with the use of `.show` and `.hidden` classes.
- * These classes use `!important` to avoid specificity conflicts, just like the quick floats.
- * They are only available for block level toggling. They can also be used as mixins.
- * `.hide` is available, but it does not always affect screen readers and is deprecated as of v3.0.1. Use `.hidden` or `.sr-only` instead.
- * Furthermore, `.invisible` can be used to toggle only the visibility of an element, meaning its display is not modified and the element can still affect the flow of the document.
- * @see [[http://getbootstrap.com/css/#helper-classes-show-hide]]
+ /** Force an element to be shown or hidden (including for screen readers) with the use of `.show` and `.hidden`
+ * classes. These classes use `!important` to avoid specificity conflicts, just like the quick floats. They are
+ * only available for block level toggling. They can also be used as mixins. `.hide` is available, but it does not
+ * always affect screen readers and is deprecated as of v3.0.1. Use `.hidden` or `.sr-only` instead. Furthermore,
+ * `.invisible` can be used to toggle only the visibility of an element, meaning its display is not modified and
+ * the element can still affect the flow of the document.
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-show-hide]]
*/
object visibility extends AbstractVisibilityModifiers {
- final class ElementVisibility private[bootstrap](val styleName: String) extends AbstractVisibilityModifier with StyleClassModifier {
- val className = styleName
+ final class ElementVisibility private[bootstrap] (val styleName: String)
+ extends AbstractVisibilityModifier
+ with StyleClassModifier {
+ val className = styleName
val createModifier = className.addClass
}
- lazy val show = new ElementVisibility("show")
- lazy val hidden = new ElementVisibility("hidden")
+ lazy val show = new ElementVisibility("show")
+ lazy val hidden = new ElementVisibility("hidden")
lazy val invisible = new ElementVisibility("invisible")
}
- /**
- * Hide an element to all devices except screen readers with `.sr-only`
- * @see [[http://getbootstrap.com/css/#helper-classes-screen-readers]]
+ /** Hide an element to all devices except screen readers with `.sr-only`
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-screen-readers]]
*/
lazy val srOnly = "sr-only".addClass
- /**
- * Combine [[com.karasiq.bootstrap.utils.UniversalUtils.UniversalUtils#srOnly() .sr-only]] with `.sr-only-focusable` to show the element again when it's focused (e.g. by a keyboard-only user)
- * @see [[http://getbootstrap.com/css/#helper-classes-screen-readers]]
+ /** Combine [[com.karasiq.bootstrap.utils.UniversalUtils.UniversalUtils#srOnly() .sr-only]] with
+ * `.sr-only-focusable` to show the element again when it's focused (e.g. by a keyboard-only user)
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-screen-readers]]
*/
lazy val srOnlyFocusable: Modifier = Array("sr-only", "sr-only-focusable").map(_.addClass)
- /**
- * Appends `data-%property%` attributes to the element
- * @param props Properties
- * @tparam T Value type
- * @return Modifier
+ /** Appends `data-%property%` attributes to the element
+ * @param props
+ * Properties
+ * @tparam T
+ * Value type
+ * @return
+ * Modifier
*/
def dataProps[T: AttrValue](props: (String, T)*): Modifier = {
props.map { case (name, value) ⇒
@@ -243,22 +266,17 @@ trait UniversalUtils { self: RenderingContext with Icons with Buttons with Class
}
}
- /**
- * Non-breaking Space
- * A common character entity used in HTML is the non-breaking space:
- * A non-breaking space is a space that will not break into a new line.
+ /** Non-breaking Space A common character entity used in HTML is the non-breaking space: A non-breaking space
+ * is a space that will not break into a new line.
*/
val nbsp = raw(" ")
- /**
- * No-op frag
+ /** No-op frag
*/
val noContent = (): FragT
- /**
- * No-op modifier
+ /** No-op modifier
*/
val noModifier = (): ModifierT
}
}
-
diff --git a/library/shared/src/main/scala/com/karasiq/bootstrap/utils/Utils.scala b/library/shared/src/main/scala/com/karasiq/bootstrap/utils/Utils.scala
index b76e64a..e0df2b9 100644
--- a/library/shared/src/main/scala/com/karasiq/bootstrap/utils/Utils.scala
+++ b/library/shared/src/main/scala/com/karasiq/bootstrap/utils/Utils.scala
@@ -15,18 +15,18 @@ trait Utils { self: RenderingContext with Icons with Buttons with ClassModifiers
val BootstrapAttrs: BootstrapAttrs
trait DefaultBootstrapAttrs {
- lazy val `data-toggle` = attr("data-toggle")
- lazy val `data-target` = attr("data-target")
+ lazy val `data-toggle` = attr("data-toggle")
+ lazy val `data-target` = attr("data-target")
lazy val `data-slide-to` = attr("data-slide-to")
- lazy val `data-ride` = attr("data-ride")
- lazy val `data-slide` = attr("data-slide")
- lazy val `data-dismiss` = attr("data-dismiss")
+ lazy val `data-ride` = attr("data-ride")
+ lazy val `data-slide` = attr("data-slide")
+ lazy val `data-dismiss` = attr("data-dismiss")
}
trait AbstractUtils {
- type FragT = Frag
- type ModifierT = Modifier
- type ElementT = Tag
+ type FragT = Frag
+ type ModifierT = Modifier
+ type ElementT = Tag
type ElementIdT = String
val image: AbstractImageUtils
@@ -37,101 +37,100 @@ trait Utils { self: RenderingContext with Icons with Buttons with ClassModifiers
val pull: AbstractPullModifiers
val visibility: AbstractVisibilityModifiers
- /**
- * Generates unique element ID
+ /** Generates unique element ID
*/
def newId: ElementIdT
- /**
- * A lightweight, flexible component that can optionally extend the entire viewport to showcase key content on your site.
- * @see [[https://getbootstrap.com/components/#jumbotron]]
+ /** A lightweight, flexible component that can optionally extend the entire viewport to showcase key content on your
+ * site.
+ * @see
+ * [[https://getbootstrap.com/components/#jumbotron]]
*/
def jumbotron: ElementT
- /**
- * Use the well as a simple effect on an element to give it an inset effect.
- * @see [[https://getbootstrap.com/components/#wells]]
+ /** Use the well as a simple effect on an element to give it an inset effect.
+ * @see
+ * [[https://getbootstrap.com/components/#wells]]
*/
def well: ElementT
- /**
- * Easily highlight new or unread items by adding a badge to links, Bootstrap navs, and more.
- * @see [[https://getbootstrap.com/components/#badges]]
+ /** Easily highlight new or unread items by adding a badge to links, Bootstrap navs, and more.
+ * @see
+ * [[https://getbootstrap.com/components/#badges]]
*/
def badge: ElementT
- /**
- * Default button
+ /** Default button
*/
def button: ElementT
- /**
- * Default icon
- * @param name Icon name
- * @see [[https://getbootstrap.com/components/#glyphicons]]
+ /** Default icon
+ * @param name
+ * Icon name
+ * @see
+ * [[https://getbootstrap.com/components/#glyphicons]]
*/
def icon(name: String): IconModifier
- /**
- * Use the generic close icon for dismissing content like modals and alerts.
- * @see [[http://getbootstrap.com/css/#helper-classes-close]]
+ /** Use the generic close icon for dismissing content like modals and alerts.
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-close]]
*/
def closeIcon: ElementT
- /**
- * Use carets to indicate dropdown functionality and direction.
- * Note that the default caret will reverse automatically in dropup menus.
- * @see [[http://getbootstrap.com/css/#helper-classes-carets]]
+ /** Use carets to indicate dropdown functionality and direction. Note that the default caret will reverse
+ * automatically in dropup menus.
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-carets]]
*/
def caret: ElementT
- /**
- * Set an element to display: block and center via margin
- * @see [[http://getbootstrap.com/css/#helper-classes-center]]
+ /** Set an element to display: block and center via margin
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-center]]
*/
def centerBlock: ModifierT
- /**
- * Easily clear floats by adding `.clearfix` to the parent element.
- * Utilizes [[http://nicolasgallagher.com/micro-clearfix-hack/ the micro clearfix]] as popularized by Nicolas Gallagher.
- * @see [[http://getbootstrap.com/css/#helper-classes-clearfix]]
+ /** Easily clear floats by adding `.clearfix` to the parent element. Utilizes
+ * [[http://nicolasgallagher.com/micro-clearfix-hack/ the micro clearfix]] as popularized by Nicolas Gallagher.
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-clearfix]]
*/
def clearFix: ModifierT
- /**
- * Hide an element to all devices except screen readers with `.sr-only`
- * @see [[http://getbootstrap.com/css/#helper-classes-screen-readers]]
+ /** Hide an element to all devices except screen readers with `.sr-only`
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-screen-readers]]
*/
def srOnly: ModifierT
- /**
- * Combine [[com.karasiq.bootstrap.utils.Utils.AbstractUtils#srOnly() .sr-only]] with `.sr-only-focusable` to show the element again when it's focused (e.g. by a keyboard-only user)
- * @see [[http://getbootstrap.com/css/#helper-classes-screen-readers]]
+ /** Combine [[com.karasiq.bootstrap.utils.Utils.AbstractUtils#srOnly() .sr-only]] with `.sr-only-focusable` to show
+ * the element again when it's focused (e.g. by a keyboard-only user)
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-screen-readers]]
*/
def srOnlyFocusable: ModifierT
- /**
- * Appends `data-%property%` attributes to the element
- * @param props Properties
- * @tparam T Value type
- * @return Modifier
+ /** Appends `data-%property%` attributes to the element
+ * @param props
+ * Properties
+ * @tparam T
+ * Value type
+ * @return
+ * Modifier
*/
def dataProps[T: AttrValue](props: (String, T)*): ModifierT
- /**
- * Non-breaking Space
- * A common character entity used in HTML is the non-breaking space:
- * A non-breaking space is a space that will not break into a new line.
+ /** Non-breaking Space A common character entity used in HTML is the non-breaking space: A non-breaking space
+ * is a space that will not break into a new line.
*/
def nbsp: ModifierT
- /**
- * No-op frag
+ /** No-op frag
*/
def noContent: FragT
- /**
- * No-op modifier
+ /** No-op modifier
*/
def noModifier: ModifierT
}
@@ -144,25 +143,26 @@ trait Utils { self: RenderingContext with Icons with Buttons with ClassModifiers
def className: String
}
- trait AbstractImageStyle extends StyleModifier
- trait AbstractTextStyle extends StyleModifier
- trait AbstractTextAlignment extends AbstractTextStyle
+ trait AbstractImageStyle extends StyleModifier
+ trait AbstractTextStyle extends StyleModifier
+ trait AbstractTextAlignment extends AbstractTextStyle
trait AbstractTextTransformation extends AbstractTextStyle
- trait AbstractBackgroundStyle extends StyleModifier
- trait AbstractPullModifier extends StyleModifier
+ trait AbstractBackgroundStyle extends StyleModifier
+ trait AbstractPullModifier extends StyleModifier
trait AbstractVisibilityModifier extends StyleModifier
- /**
- * Add classes to an `img` element to easily style images in any project.
- * @see [[http://getbootstrap.com/css/#images-shapes]]
+ /** Add classes to an `img` element to easily style images in any project.
+ * @see
+ * [[http://getbootstrap.com/css/#images-shapes]]
*/
trait AbstractImageUtils {
- /**
- * Images in Bootstrap 3 can be made responsive-friendly via the addition of the .img-responsive class.
- * This applies max-width: 100%;, height: auto; and display: block; to the image so that it scales nicely to the parent element.
- * To center images which use the .img-responsive class, use .center-block instead of .text-center.
- * See the helper classes section for more details about .center-block usage.
- * @see [[http://getbootstrap.com/css/#images-responsive]]
+
+ /** Images in Bootstrap 3 can be made responsive-friendly via the addition of the .img-responsive class. This
+ * applies max-width: 100%;, height: auto; and display: block; to the image so that it scales nicely to the parent
+ * element. To center images which use the .img-responsive class, use .center-block instead of .text-center. See
+ * the helper classes section for more details about .center-block usage.
+ * @see
+ * [[http://getbootstrap.com/css/#images-responsive]]
*/
def responsive: AbstractImageStyle
@@ -171,9 +171,9 @@ trait Utils { self: RenderingContext with Icons with Buttons with ClassModifiers
def thumbnail: AbstractImageStyle
}
- /**
- * Easily realign text to components with text alignment classes.
- * @see [[http://getbootstrap.com/css/#type-alignment]]
+ /** Easily realign text to components with text alignment classes.
+ * @see
+ * [[http://getbootstrap.com/css/#type-alignment]]
*/
trait AbstractTextAlignments {
def left: AbstractTextAlignment
@@ -183,9 +183,9 @@ trait Utils { self: RenderingContext with Icons with Buttons with ClassModifiers
def nowrap: AbstractTextAlignment
}
- /**
- * Transform text in components with text capitalization classes.
- * @see [[http://getbootstrap.com/css/#type-transformation]]
+ /** Transform text in components with text capitalization classes.
+ * @see
+ * [[http://getbootstrap.com/css/#type-transformation]]
*/
trait AbstractTextTransformations {
def lowercase: AbstractTextTransformation
@@ -193,10 +193,10 @@ trait Utils { self: RenderingContext with Icons with Buttons with ClassModifiers
def capitalize: AbstractTextTransformation
}
- /**
- * Convey meaning through color with a handful of emphasis utility classes.
- * These may also be applied to links and will darken on hover just like our default link styles.
- * @see [[http://getbootstrap.com/css/#helper-classes-colors]]
+ /** Convey meaning through color with a handful of emphasis utility classes. These may also be applied to links and
+ * will darken on hover just like our default link styles.
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-colors]]
*/
trait AbstractTextStyles {
def muted: AbstractTextStyle
@@ -206,17 +206,17 @@ trait Utils { self: RenderingContext with Icons with Buttons with ClassModifiers
def warning: AbstractTextStyle
def danger: AbstractTextStyle
- /**
- * Utilize the `.text-hide` class or mixin to help replace an element's text content with a background image.
- * @see [[http://getbootstrap.com/css/#helper-classes-image-replacement]]
+ /** Utilize the `.text-hide` class or mixin to help replace an element's text content with a background image.
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-image-replacement]]
*/
def hide: AbstractTextStyle
}
- /**
- * Similar to the contextual text color classes, easily set the background of an element to any contextual class.
+ /** Similar to the contextual text color classes, easily set the background of an element to any contextual class.
* Anchor components will darken on hover, just like the text classes.
- * @see [[http://getbootstrap.com/css/#helper-classes-backgrounds]]
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-backgrounds]]
*/
trait AbstractBackgroundStyles {
def primary: AbstractBackgroundStyle
@@ -226,24 +226,26 @@ trait Utils { self: RenderingContext with Icons with Buttons with ClassModifiers
def danger: AbstractBackgroundStyle
}
- /**
- * Float an element to the left or right with a class.
- * `!important` is included to avoid specificity issues.
- * @note To align components in navbars with utility classes, use .navbar-left or .navbar-right instead. See the navbar docs for details.
- * @see [[http://getbootstrap.com/css/#helper-classes-floats]]
+ /** Float an element to the left or right with a class. `!important` is included to avoid specificity issues.
+ * @note
+ * To align components in navbars with utility classes, use .navbar-left or .navbar-right instead. See the navbar
+ * docs for details.
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-floats]]
*/
trait AbstractPullModifiers {
def left: AbstractPullModifier
def right: AbstractPullModifier
}
- /**
- * Force an element to be shown or hidden (including for screen readers) with the use of `.show` and `.hidden` classes.
- * These classes use `!important` to avoid specificity conflicts, just like the quick floats.
- * They are only available for block level toggling. They can also be used as mixins.
- * `.hide` is available, but it does not always affect screen readers and is deprecated as of v3.0.1. Use `.hidden` or `.sr-only` instead.
- * Furthermore, `.invisible` can be used to toggle only the visibility of an element, meaning its display is not modified and the element can still affect the flow of the document.
- * @see [[http://getbootstrap.com/css/#helper-classes-show-hide]]
+ /** Force an element to be shown or hidden (including for screen readers) with the use of `.show` and `.hidden`
+ * classes. These classes use `!important` to avoid specificity conflicts, just like the quick floats. They are only
+ * available for block level toggling. They can also be used as mixins. `.hide` is available, but it does not always
+ * affect screen readers and is deprecated as of v3.0.1. Use `.hidden` or `.sr-only` instead. Furthermore,
+ * `.invisible` can be used to toggle only the visibility of an element, meaning its display is not modified and the
+ * element can still affect the flow of the document.
+ * @see
+ * [[http://getbootstrap.com/css/#helper-classes-show-hide]]
*/
trait AbstractVisibilityModifiers {
def show: AbstractVisibilityModifier
@@ -251,4 +253,3 @@ trait Utils { self: RenderingContext with Icons with Buttons with ClassModifiers
def invisible: AbstractVisibilityModifier
}
}
-
diff --git a/test/frontend-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/BootstrapTestApp.scala b/test/frontend-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/BootstrapTestApp.scala
index bb69d2d..ec9d373 100644
--- a/test/frontend-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/BootstrapTestApp.scala
+++ b/test/frontend-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/BootstrapTestApp.scala
@@ -17,22 +17,39 @@ object BootstrapTestApp {
jQuery(() ⇒ {
// Table tab will appear after 3 seconds
val tableVisible = Var(false)
- val tabTitle = Var("Wait...")
+ val tabTitle = Var("Wait...")
// Show table tab in 3 seconds
- window.setTimeout(() ⇒ {
- tableVisible.update(true)
- window.setTimeout(() ⇒ { tabTitle() = "Table" }, 1000)
- }, 3000)
-
- val tabs = Var(Seq[NavigationTab](
- NavigationTab(tabTitle, "table", "table".faFwIcon, TestTable(), tableVisible.reactiveShow),
- NavigationTab("Carousel", "carousel", "file-image-o".faFwIcon, TestCarousel("https://upload.wikimedia.org/wikipedia/commons/thumb/5/5e/Big_Wood%2C_N2.JPG/1280px-Big_Wood%2C_N2.JPG")),
- NavigationTab("ToDo list", "todo", "fort-awesome".faFwIcon, TodoList()),
- NavigationTab("Text rendering", "text", "file-text-o".faFwIcon, Bootstrap.jumbotron(
- FormInput.textArea(a("Text rendering", href := "./serverside.html"), rows := 30, readonly, TestHtmlPage())
- ))
- ))
+ window.setTimeout(
+ () ⇒ {
+ tableVisible.update(true)
+ window.setTimeout(() ⇒ { tabTitle() = "Table" }, 1000)
+ },
+ 3000
+ )
+
+ val tabs = Var(
+ Seq[NavigationTab](
+ NavigationTab(tabTitle, "table", "table".faFwIcon, TestTable(), tableVisible.reactiveShow),
+ NavigationTab(
+ "Carousel",
+ "carousel",
+ "file-image-o".faFwIcon,
+ TestCarousel(
+ "https://upload.wikimedia.org/wikipedia/commons/thumb/5/5e/Big_Wood%2C_N2.JPG/1280px-Big_Wood%2C_N2.JPG"
+ )
+ ),
+ NavigationTab("ToDo list", "todo", "fort-awesome".faFwIcon, TodoList()),
+ NavigationTab(
+ "Text rendering",
+ "text",
+ "file-text-o".faFwIcon,
+ Bootstrap.jumbotron(
+ FormInput.textArea(a("Text rendering", href := "./serverside.html"), rows := 30, readonly, TestHtmlPage())
+ )
+ )
+ )
+ )
val navigationBar = NavigationBar()
.withBrand("Scala.js Bootstrap Test", href := "https://github.com/Karasiq/scalajs-bootstrap")
@@ -44,8 +61,9 @@ object BootstrapTestApp {
navigationBar.applyTo(dom.document.body)
// Reactive navbar test
- tabs() = tabs.now :+ NavigationTab("Buttons", "buttons", "hand-o-right".faFwIcon, TestPanel("Serious business panel"))
+ tabs() =
+ tabs.now :+ NavigationTab("Buttons", "buttons", "hand-o-right".faFwIcon, TestPanel("Serious business panel"))
navigationBar.selectTab(2)
})
}
-}
\ No newline at end of file
+}
diff --git a/test/frontend-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/TestModal.scala b/test/frontend-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/TestModal.scala
index e489de6..c7080d6 100644
--- a/test/frontend-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/TestModal.scala
+++ b/test/frontend-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/TestModal.scala
@@ -9,15 +9,23 @@ import scalaTags.all._
object TestModal {
def apply(): Modal = {
val modalInputValue = Var("10000000") // Better use string
- val option2Title = Var("Option 2")
- val radioGroup = FormInput.radioGroup(FormInput.radio("Test1", "modal-title", "First radio"), FormInput.radio("Test2", "modal-title", "Second radio"))
- val select = FormInput.select("Plain select", "Option 1" → "Option 1", "Option 2" → option2Title, "Option 3" → "Option 3")
+ val option2Title = Var("Option 2")
+ val radioGroup = FormInput.radioGroup(
+ FormInput.radio("Test1", "modal-title", "First radio"),
+ FormInput.radio("Test2", "modal-title", "Second radio")
+ )
+ val select =
+ FormInput.select("Plain select", "Option 1" → "Option 1", "Option 2" → option2Title, "Option 3" → "Option 3")
val multipleSelect = FormInput.simpleMultipleSelect("Multiple select", "Option 1", "Option 2", "Option 3")
- val files = Var[Seq[File]](Nil)
+ val files = Var[Seq[File]](Nil)
files.map(_.headOption).foreach(_.foreach(file ⇒ window.alert(s"File selected: ${file.name}")))
val form = Form(
- FormInputGroup(FormInputGroup.label("Money"), FormInputGroup.addon("usd".fontAwesome(FontAwesome.fixedWidth)), FormInputGroup.number(modalInputValue.reactiveInput)),
+ FormInputGroup(
+ FormInputGroup.label("Money"),
+ FormInputGroup.addon("usd".fontAwesome(FontAwesome.fixedWidth)),
+ FormInputGroup.number(modalInputValue.reactiveInput)
+ ),
radioGroup,
select,
multipleSelect,
@@ -29,7 +37,13 @@ object TestModal {
option2Title() = "Changed option 2"
Modal()
- .withTitle(radioGroup.value, " / ", select.selected.map(_.head), " / ", multipleSelect.selected.map(_.mkString(" + ")))
+ .withTitle(
+ radioGroup.value,
+ " / ",
+ select.selected.map(_.head),
+ " / ",
+ multipleSelect.selected.map(_.mkString(" + "))
+ )
.withBody(p("You won ", modalInputValue, "$"), p(form))
.withButtons(Modal.closeButton(), Modal.button("Take", Modal.dismiss))
.withDialogStyle(ModalDialogSize.large)
diff --git a/test/frontend-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/TestPanel.scala b/test/frontend-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/TestPanel.scala
index 9596dd9..6728eb9 100644
--- a/test/frontend-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/TestPanel.scala
+++ b/test/frontend-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/TestPanel.scala
@@ -18,48 +18,88 @@ object TestPanel {
final class TestPanel(panelTitle: String) extends BootstrapHtmlComponent {
override def renderTag(md: ModifierT*): TagT = {
val titleVar = Var[Frag]("ERROR")
- val successButton = Button(ButtonStyle.success)("Win 10000000$", onclick := Callback.onClick(_ ⇒ TestModal().show()), Tooltip(i("Press me"), TooltipPlacement.left)).render
- val dangerButton = Button(ButtonStyle.danger)("Format C:\\", Popover(span(titleVar), "Popover test", TooltipPlacement.right)).render
+ val successButton = Button(ButtonStyle.success)(
+ "Win 10000000$",
+ onclick := Callback.onClick(_ ⇒ TestModal().show()),
+ Tooltip(i("Press me"), TooltipPlacement.left)
+ ).render
+ val dangerButton =
+ Button(ButtonStyle.danger)("Format C:\\", Popover(span(titleVar), "Popover test", TooltipPlacement.right)).render
titleVar() = i("Boom")
- val toggleButton = ToggleButton(Bootstrap.button("Toggle me"))
+ val toggleButton = ToggleButton(Bootstrap.button("Toggle me"))
val disabledButton = DisabledButton(Bootstrap.button("Heavy computation"))
disabledButton.state.foreach { pressed ⇒
if (pressed) {
- window.setTimeout(() ⇒ {
- window.alert(s"Answer: ${if (toggleButton.state.now) 321 else 123}")
- disabledButton.state() = false
- }, 1000)
+ window.setTimeout(
+ () ⇒ {
+ window.alert(s"Answer: ${if (toggleButton.state.now) 321 else 123}")
+ disabledButton.state() = false
+ },
+ 1000
+ )
}
}
// Render panel
- val panelId = Bootstrap.newId
+ val panelId = Bootstrap.newId
val collapseBtnTitle = Var("ERROR")
val panel = Card(panelId)
- .withHeader("euro".faFwIcon, Card.collapse(panelId, panelTitle, Bootstrap.nbsp, Bootstrap.badge("42")), Card.buttons(
- Card.button("plus".faFwIcon, onclick := Callback.onClick(_ ⇒ window.alert("Panel add"))),
- Card.button("minus".faFwIcon, onclick := Callback.onClick(_ ⇒ window.alert("Panel remove")))
- ))
+ .withHeader(
+ "euro".faFwIcon,
+ Card.collapse(panelId, panelTitle, Bootstrap.nbsp, Bootstrap.badge("42")),
+ Card.buttons(
+ Card.button("plus".faFwIcon, onclick := Callback.onClick(_ ⇒ window.alert("Panel add"))),
+ Card.button("minus".faFwIcon, onclick := Callback.onClick(_ ⇒ window.alert("Panel remove")))
+ )
+ )
.withBody(
new TestProgressBar(Bootstrap.background.success, 200 millis),
Navigation.tabs(
- NavigationTab("Simple buttons", Bootstrap.newId, "remove".faFwIcon, Card().withBody(
- GridSystem.mkRow(
- small("Hint: press the green button for reactive forms test", Bootstrap.textStyle.info)
- ),
- GridSystem.mkRow(
- ButtonGroup(ButtonGroupSize.default, successButton, dangerButton)
- ),
- GridSystem.mkRow(Collapse(collapseBtnTitle)(
- GridSystem.row(
- GridSystem.col(6).asDiv(Dropdown("Dropdown", Dropdown.item("Test 1", onclick := Callback.onClick(_ ⇒ window.alert("Test 1"))), Dropdown.item("Test 2"))),
- GridSystem.col(6).asDiv(Dropdown.dropup("Dropup", Dropdown.item("Test 3", onclick := Callback.onClick(_ ⇒ window.alert("Test 3"))), Dropdown.item("Test 4")))
+ NavigationTab(
+ "Simple buttons",
+ Bootstrap.newId,
+ "remove".faFwIcon,
+ Card().withBody(
+ GridSystem.mkRow(
+ small("Hint: press the green button for reactive forms test", Bootstrap.textStyle.info)
+ ),
+ GridSystem.mkRow(
+ ButtonGroup(ButtonGroupSize.default, successButton, dangerButton)
+ ),
+ GridSystem.mkRow(
+ Collapse(collapseBtnTitle)(
+ GridSystem.row(
+ GridSystem
+ .col(6)
+ .asDiv(
+ Dropdown(
+ "Dropdown",
+ Dropdown.item("Test 1", onclick := Callback.onClick(_ ⇒ window.alert("Test 1"))),
+ Dropdown.item("Test 2")
+ )
+ ),
+ GridSystem
+ .col(6)
+ .asDiv(
+ Dropdown.dropup(
+ "Dropup",
+ Dropdown.item("Test 3", onclick := Callback.onClick(_ ⇒ window.alert("Test 3"))),
+ Dropdown.item("Test 4")
+ )
+ )
+ )
+ )
)
- ))
- )),
- NavigationTab("Reactive buttons", Bootstrap.newId, "play-circle".faFwIcon, Card().withBody(ButtonGroup(ButtonGroupSize.large, toggleButton, disabledButton)))
+ )
+ ),
+ NavigationTab(
+ "Reactive buttons",
+ Bootstrap.newId,
+ "play-circle".faFwIcon,
+ Card().withBody(ButtonGroup(ButtonGroupSize.large, toggleButton, disabledButton))
+ )
)
)
.renderTag(Bootstrap.borderStyle.warning, Bootstrap.textStyle.info)
diff --git a/test/frontend-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/TestProgressBar.scala b/test/frontend-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/TestProgressBar.scala
index 9c1fdbe..f261dfa 100644
--- a/test/frontend-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/TestProgressBar.scala
+++ b/test/frontend-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/TestProgressBar.scala
@@ -11,16 +11,21 @@ import scalaTags.all._
final class TestProgressBar(style: Modifier, updateInterval: FiniteDuration) extends BootstrapComponent {
override def render(md: ModifierT*): ModifierT = {
val progressBarValue = Var(0)
- val progressBar = ProgressBar.withLabel(progressBarValue).renderTag(style, ProgressBarStyle.striped, ProgressBarStyle.animated, md).render
+ val progressBar = ProgressBar
+ .withLabel(progressBarValue)
+ .renderTag(style, ProgressBarStyle.striped, ProgressBarStyle.animated, md)
+ .render
implicit val scheduler = new AsyncScheduler
- val timer = Timer(updateInterval)
+ val timer = Timer(updateInterval)
timer.foreach { _ ⇒
if (progressBarValue.now < 100) {
progressBarValue.update(progressBarValue.now + 1)
} else {
- val alert = Alert(AlertStyle.success,
- strong("Testing"), " has finished. ",
+ val alert = Alert(
+ AlertStyle.success,
+ strong("Testing"),
+ " has finished. ",
Alert.link(href := "https://getbootstrap.com/components/#alerts", target := "blank", "Alert inline link.")
)
progressBar.parentNode.replaceChild(alert.render, progressBar)
diff --git a/test/frontend-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/TestTable.scala b/test/frontend-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/TestTable.scala
index c198b8f..ef8f0ea 100644
--- a/test/frontend-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/TestTable.scala
+++ b/test/frontend-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/TestTable.scala
@@ -17,18 +17,23 @@ final class TestTable extends BootstrapComponent {
val reactiveColumn = Var(2)
val items = Var(1 to 45: Seq[Int])
- val columns = Var(TableCols[Int](
- TableCol("First", identity, i ⇒ i),
- TableCol("Second", identity, i ⇒ i + 1),
- TableCol("Third", identity, i ⇒ Rx(i + reactiveColumn()))
- ))
+ val columns = Var(
+ TableCols[Int](
+ TableCol("First", identity, i ⇒ i),
+ TableCol("Second", identity, i ⇒ i + 1),
+ TableCol("Third", identity, i ⇒ Rx(i + reactiveColumn()))
+ )
+ )
// Render table
- val sortableTable = SortableTable.Builder(columns)
- .withRowModifiers(i ⇒ onclick := Callback.onClick { row ⇒
- reactiveColumn.update(reactiveColumn.now + i)
- row.classList.add(TableRowStyle.success.className)
- })
+ val sortableTable = SortableTable
+ .Builder(columns)
+ .withRowModifiers(i ⇒
+ onclick := Callback.onClick { row ⇒
+ reactiveColumn.update(reactiveColumn.now + i)
+ row.classList.add(TableRowStyle.success.className)
+ }
+ )
.createTable(items)
val renderedTable = sortableTable.renderTag(TableStyle.bordered, TableStyle.hover, TableStyle.striped, md).render
diff --git a/test/frontend-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/TodoList.scala b/test/frontend-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/TodoList.scala
index e8eac5a..6d03e5b 100644
--- a/test/frontend-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/TodoList.scala
+++ b/test/frontend-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/TodoList.scala
@@ -13,9 +13,9 @@ object TodoList {
sealed abstract class ItemPriority(val style: TableRowStyle)
object ItemPriority {
- case object Low extends ItemPriority(TableRowStyle.success)
+ case object Low extends ItemPriority(TableRowStyle.success)
case object Normal extends ItemPriority(TableRowStyle.info)
- case object High extends ItemPriority(TableRowStyle.danger)
+ case object High extends ItemPriority(TableRowStyle.danger)
def fromString(s: String): ItemPriority = Seq(Low, Normal, High).find(_.toString == s).get
}
@@ -36,21 +36,34 @@ final class TodoList extends BootstrapHtmlComponent {
}
def addTestData(): Unit = {
- items() = items.now ++ (for (_ <- 1 to 20) yield Var(Item(s"Test ${UUID.randomUUID()}", ItemPriority.Low)))
+ items() = items.now ++ (for (_ ← 1 to 20) yield Var(Item(s"Test ${UUID.randomUUID()}", ItemPriority.Low)))
}
private[this] def showDialog(title: String, priority: ItemPriority)(onApply: (String, ItemPriority) ⇒ Unit): Unit = {
- val titleText = Var(title)
+ val titleText = Var(title)
val prioritySelect = FormInput.simpleSelect("Priority", "Low", "Normal", "High")
prioritySelect.selected.update(Seq(priority.toString))
Modal("Add/edit item")
- .withBody(Form(
- FormInputGroup(FormInputGroup.label("Title"), FormInputGroup.addon("file-text-o".fontAwesome(FontAwesome.fixedWidth)), FormInputGroup.text(placeholder := "Write description", titleText.reactiveInput)),
- prioritySelect
- ))
- .withButtons(Modal.closeButton("Cancel"), Modal.button("Apply", Modal.dismiss, onclick := Callback.onClick { _ ⇒
- onApply(titleText.now, ItemPriority.fromString(prioritySelect.selected.now.head))
- }))
+ .withBody(
+ Form(
+ FormInputGroup(
+ FormInputGroup.label("Title"),
+ FormInputGroup.addon("file-text-o".fontAwesome(FontAwesome.fixedWidth)),
+ FormInputGroup.text(placeholder := "Write description", titleText.reactiveInput)
+ ),
+ prioritySelect
+ )
+ )
+ .withButtons(
+ Modal.closeButton("Cancel"),
+ Modal.button(
+ "Apply",
+ Modal.dismiss,
+ onclick := Callback.onClick { _ ⇒
+ onApply(titleText.now, ItemPriority.fromString(prioritySelect.selected.now.head))
+ }
+ )
+ )
.show(backdrop = false)
}
@@ -68,37 +81,48 @@ final class TodoList extends BootstrapHtmlComponent {
private[this] def renderItem(item: Var[Item]): TableRow = {
def todoTitle = Rx(if (item().completed) s(item().title, color.gray) else b(item().title))
- def buttons = ButtonGroup(ButtonGroupSize.small,
- Button(ButtonStyle.primary)("Edit", onclick := Callback.onClick(_ ⇒ showEditDialog(item))),
+ def buttons = ButtonGroup(
+ ButtonGroupSize.small,
+ Button(ButtonStyle.primary)("Edit", onclick := Callback.onClick(_ ⇒ showEditDialog(item))),
Button(ButtonStyle.danger)("Remove", onclick := Callback.onClick(_ ⇒ items.update(items.now.filter(_.ne(item)))))
)
TableRow(
Seq(
- Seq[Modifier](todoTitle, GridSystem.col(10), onclick := Callback.onClick(_ ⇒ item.update(item.now.copy(completed = !item.now.completed)))),
+ Seq[Modifier](
+ todoTitle,
+ GridSystem.col(10),
+ onclick := Callback.onClick(_ ⇒ item.update(item.now.copy(completed = !item.now.completed)))
+ ),
Seq[Modifier](buttons, GridSystem.col(2), textAlign.center)
),
Rx(`class` := {
- if (item().completed) "" else item().priority.style match {
- case TableRowStyle.Default ⇒ ""
- case style: TableRowStyle.Styled ⇒ style.className
- }
+ if (item().completed) ""
+ else
+ item().priority.style match {
+ case TableRowStyle.Default ⇒ ""
+ case style: TableRowStyle.Styled ⇒ style.className
+ }
}).auto
)
}
override def renderTag(md: ModifierT*): TagT = {
- val heading = Rx(Seq[Modifier](
- Seq[Modifier]("Description", GridSystem.col(10)),
- Seq[Modifier]("Actions", GridSystem.col(2)))
+ val heading = Rx(
+ Seq[Modifier](Seq[Modifier]("Description", GridSystem.col(10)), Seq[Modifier]("Actions", GridSystem.col(2)))
)
val table = PagedTable(heading, items.map(_.map(renderItem)), 5)
Card()
- .withHeader("th-list".faFwIcon, Bootstrap.nbsp, span("Scala.js Todo", Rx(Bootstrap.badge(items().count(i ⇒ !i().completed)))), Card.buttons(
- Card.button("plus".faFwIcon, onclick := Callback.onClick(_ ⇒ showAddDialog())),
- Card.button("trash".faFwIcon, onclick := Callback.onClick(_ ⇒ removeCompleted())),
- Card.button("flash".faFwIcon, onclick := Callback.onClick(_ ⇒ addTestData()))
- ))
+ .withHeader(
+ "th-list".faFwIcon,
+ Bootstrap.nbsp,
+ span("Scala.js Todo", Rx(Bootstrap.badge(items().count(i ⇒ !i().completed)))),
+ Card.buttons(
+ Card.button("plus".faFwIcon, onclick := Callback.onClick(_ ⇒ showAddDialog())),
+ Card.button("trash".faFwIcon, onclick := Callback.onClick(_ ⇒ removeCompleted())),
+ Card.button("flash".faFwIcon, onclick := Callback.onClick(_ ⇒ addTestData()))
+ )
+ )
.withBody(table.renderTag(TableStyle.bordered, TableStyle.hover, TableStyle.striped, TableStyle.small))
}
}
diff --git a/test/frontend/src/main/scala/com/karasiq/bootstrap/test/frontend/BootstrapTestApp.scala b/test/frontend/src/main/scala/com/karasiq/bootstrap/test/frontend/BootstrapTestApp.scala
index 56d0cb5..3eac8bb 100644
--- a/test/frontend/src/main/scala/com/karasiq/bootstrap/test/frontend/BootstrapTestApp.scala
+++ b/test/frontend/src/main/scala/com/karasiq/bootstrap/test/frontend/BootstrapTestApp.scala
@@ -17,22 +17,39 @@ object BootstrapTestApp {
jQuery(() ⇒ {
// Table tab will appear after 3 seconds
val tableVisible = Var(false)
- val tabTitle = Var("Wait...")
+ val tabTitle = Var("Wait...")
// Show table tab in 3 seconds
- window.setTimeout(() ⇒ {
- tableVisible.update(true)
- window.setTimeout(() ⇒ { tabTitle() = "Table" }, 1000)
- }, 3000)
-
- val tabs = Var(Seq[NavigationTab](
- NavigationTab(tabTitle, "table", "table".faFwIcon, TestTable(), tableVisible.reactiveShow),
- NavigationTab("Carousel", "carousel", "picture".glyphicon, TestCarousel("https://upload.wikimedia.org/wikipedia/commons/thumb/5/5e/Big_Wood%2C_N2.JPG/1280px-Big_Wood%2C_N2.JPG")),
- NavigationTab("ToDo list", "todo", "fort-awesome".faFwIcon, TodoList()),
- NavigationTab("Text rendering", "text", "envelope".glyphicon, Bootstrap.jumbotron(
- FormInput.textArea(a("Text rendering", href := "./serverside.html"), rows := 30, readonly, TestHtmlPage())
- ))
- ))
+ window.setTimeout(
+ () ⇒ {
+ tableVisible.update(true)
+ window.setTimeout(() ⇒ { tabTitle() = "Table" }, 1000)
+ },
+ 3000
+ )
+
+ val tabs = Var(
+ Seq[NavigationTab](
+ NavigationTab(tabTitle, "table", "table".faFwIcon, TestTable(), tableVisible.reactiveShow),
+ NavigationTab(
+ "Carousel",
+ "carousel",
+ "picture".glyphicon,
+ TestCarousel(
+ "https://upload.wikimedia.org/wikipedia/commons/thumb/5/5e/Big_Wood%2C_N2.JPG/1280px-Big_Wood%2C_N2.JPG"
+ )
+ ),
+ NavigationTab("ToDo list", "todo", "fort-awesome".faFwIcon, TodoList()),
+ NavigationTab(
+ "Text rendering",
+ "text",
+ "envelope".glyphicon,
+ Bootstrap.jumbotron(
+ FormInput.textArea(a("Text rendering", href := "./serverside.html"), rows := 30, readonly, TestHtmlPage())
+ )
+ )
+ )
+ )
val navigationBar = NavigationBar()
.withBrand("Scala.js Bootstrap Test", href := "https://github.com/Karasiq/scalajs-bootstrap")
@@ -45,8 +62,13 @@ object BootstrapTestApp {
navigationBar.applyTo(dom.document.body)
// Reactive navbar test
- tabs() = tabs.now :+ NavigationTab("Buttons", "buttons", "log-in".glyphicon, TestPanel("Serious business panel", PanelStyle.warning))
+ tabs() = tabs.now :+ NavigationTab(
+ "Buttons",
+ "buttons",
+ "log-in".glyphicon,
+ TestPanel("Serious business panel", PanelStyle.warning)
+ )
navigationBar.selectTab(2)
})
}
-}
\ No newline at end of file
+}
diff --git a/test/frontend/src/main/scala/com/karasiq/bootstrap/test/frontend/TestModal.scala b/test/frontend/src/main/scala/com/karasiq/bootstrap/test/frontend/TestModal.scala
index b379d0a..5bf21f9 100644
--- a/test/frontend/src/main/scala/com/karasiq/bootstrap/test/frontend/TestModal.scala
+++ b/test/frontend/src/main/scala/com/karasiq/bootstrap/test/frontend/TestModal.scala
@@ -9,15 +9,23 @@ import scalaTags.all._
object TestModal {
def apply(): Modal = {
val modalInputValue = Var(10000000.0)
- val option2Title = Var("Option 2")
- val radioGroup = FormInput.radioGroup(FormInput.radio("Test1", "modal-title", "First radio"), FormInput.radio("Test2", "modal-title", "Second radio"))
- val select = FormInput.select("Plain select", "Option 1" → "Option 1", "Option 2" → option2Title, "Option 3" → "Option 3")
+ val option2Title = Var("Option 2")
+ val radioGroup = FormInput.radioGroup(
+ FormInput.radio("Test1", "modal-title", "First radio"),
+ FormInput.radio("Test2", "modal-title", "Second radio")
+ )
+ val select =
+ FormInput.select("Plain select", "Option 1" → "Option 1", "Option 2" → option2Title, "Option 3" → "Option 3")
val multipleSelect = FormInput.simpleMultipleSelect("Multiple select", "Option 1", "Option 2", "Option 3")
- val files = Var[Seq[File]](Nil)
+ val files = Var[Seq[File]](Nil)
files.map(_.headOption).foreach(_.foreach(file ⇒ window.alert(s"File selected: ${file.name}")))
val form = Form(
- FormInputGroup(FormInputGroup.label("Money"), FormInputGroup.addon("usd".fontAwesome(FontAwesome.fixedWidth)), FormInputGroup.number(modalInputValue.reactiveInput)),
+ FormInputGroup(
+ FormInputGroup.label("Money"),
+ FormInputGroup.addon("usd".fontAwesome(FontAwesome.fixedWidth)),
+ FormInputGroup.number(modalInputValue.reactiveInput)
+ ),
radioGroup,
select,
multipleSelect,
@@ -29,7 +37,13 @@ object TestModal {
option2Title() = "Changed option 2"
Modal()
- .withTitle(radioGroup.value, " / ", select.selected.map(_.head), " / ", multipleSelect.selected.map(_.mkString(" + ")))
+ .withTitle(
+ radioGroup.value,
+ " / ",
+ select.selected.map(_.head),
+ " / ",
+ multipleSelect.selected.map(_.mkString(" + "))
+ )
.withBody(p("You won ", modalInputValue, "$"), p(form))
.withButtons(Modal.closeButton(), Modal.button("Take", Modal.dismiss))
.withDialogStyle(ModalDialogSize.large)
diff --git a/test/frontend/src/main/scala/com/karasiq/bootstrap/test/frontend/TestPanel.scala b/test/frontend/src/main/scala/com/karasiq/bootstrap/test/frontend/TestPanel.scala
index 604e931..0cf3c71 100644
--- a/test/frontend/src/main/scala/com/karasiq/bootstrap/test/frontend/TestPanel.scala
+++ b/test/frontend/src/main/scala/com/karasiq/bootstrap/test/frontend/TestPanel.scala
@@ -18,50 +18,88 @@ object TestPanel {
final class TestPanel(panelTitle: String, style: PanelStyle) extends BootstrapHtmlComponent {
override def renderTag(md: ModifierT*): TagT = {
val titleVar = Var[Frag]("ERROR")
- val successButton = Button(ButtonStyle.success)("Win 10000000$", onclick := Callback.onClick(_ ⇒ TestModal().show()), Tooltip(i("Press me"), TooltipPlacement.left)).render
- val dangerButton = Button(ButtonStyle.danger)("Format C:\\", Popover(span(titleVar), "Popover test", TooltipPlacement.right)).render
+ val successButton = Button(ButtonStyle.success)(
+ "Win 10000000$",
+ onclick := Callback.onClick(_ ⇒ TestModal().show()),
+ Tooltip(i("Press me"), TooltipPlacement.left)
+ ).render
+ val dangerButton =
+ Button(ButtonStyle.danger)("Format C:\\", Popover(span(titleVar), "Popover test", TooltipPlacement.right)).render
titleVar() = i("Boom")
- val toggleButton = ToggleButton(Bootstrap.button("Toggle me"))
+ val toggleButton = ToggleButton(Bootstrap.button("Toggle me"))
val disabledButton = DisabledButton(Bootstrap.button("Heavy computation"))
disabledButton.state.foreach { pressed ⇒
if (pressed) {
- window.setTimeout(() ⇒ {
- window.alert(s"Answer: ${if (toggleButton.state.now) 321 else 123}")
- disabledButton.state() = false
- }, 1000)
+ window.setTimeout(
+ () ⇒ {
+ window.alert(s"Answer: ${if (toggleButton.state.now) 321 else 123}")
+ disabledButton.state() = false
+ },
+ 1000
+ )
}
}
// Render panel
- val panelId = Bootstrap.newId
+ val panelId = Bootstrap.newId
val collapseBtnTitle = Var("ERROR")
val panel = Panel(panelId, style)
- .withHeader(Panel.title("euro".glyphicon, Panel.collapse(panelId, panelTitle, Bootstrap.nbsp, Bootstrap.badge("42")), Panel.buttons(
- Panel.button("plus".glyphicon, onclick := Callback.onClick(_ ⇒ window.alert("Panel add"))),
- Panel.button("minus".glyphicon, onclick := Callback.onClick(_ ⇒ window.alert("Panel remove")))
- )))
+ .withHeader(
+ Panel.title(
+ "euro".glyphicon,
+ Panel.collapse(panelId, panelTitle, Bootstrap.nbsp, Bootstrap.badge("42")),
+ Panel.buttons(
+ Panel.button("plus".glyphicon, onclick := Callback.onClick(_ ⇒ window.alert("Panel add"))),
+ Panel.button("minus".glyphicon, onclick := Callback.onClick(_ ⇒ window.alert("Panel remove")))
+ )
+ )
+ )
.renderTag(
new TestProgressBar(ProgressBarStyle.success, 300 millis),
Navigation.tabs(
- NavigationTab("Simple buttons", Bootstrap.newId, "remove".glyphicon, Bootstrap.well(
- GridSystem.mkRow(
- small("Hint: press the green button for reactive forms test", Bootstrap.textStyle.info)
- ),
- GridSystem.mkRow(
- ButtonGroup(ButtonGroupSize.default, successButton, dangerButton)
- ),
- GridSystem.mkRow(Collapse(collapseBtnTitle)(
- GridSystem.row(
- GridSystem.col(6)(Dropdown("Dropdown", Dropdown.item("Test 1", onclick := Callback.onClick(_ ⇒ window.alert("Test 1"))), Dropdown.item("Test 2"))),
- GridSystem.col(6)(Dropdown.dropup("Dropup", Dropdown.item("Test 3", onclick := Callback.onClick(_ ⇒ window.alert("Test 3"))), Dropdown.item("Test 4")))
+ NavigationTab(
+ "Simple buttons",
+ Bootstrap.newId,
+ "remove".glyphicon,
+ Bootstrap.well(
+ GridSystem.mkRow(
+ small("Hint: press the green button for reactive forms test", Bootstrap.textStyle.info)
+ ),
+ GridSystem.mkRow(
+ ButtonGroup(ButtonGroupSize.default, successButton, dangerButton)
+ ),
+ GridSystem.mkRow(
+ Collapse(collapseBtnTitle)(
+ GridSystem.row(
+ GridSystem.col(6)(
+ Dropdown(
+ "Dropdown",
+ Dropdown.item("Test 1", onclick := Callback.onClick(_ ⇒ window.alert("Test 1"))),
+ Dropdown.item("Test 2")
+ )
+ ),
+ GridSystem.col(6)(
+ Dropdown.dropup(
+ "Dropup",
+ Dropdown.item("Test 3", onclick := Callback.onClick(_ ⇒ window.alert("Test 3"))),
+ Dropdown.item("Test 4")
+ )
+ )
+ )
+ )
)
- ))
- )),
- NavigationTab("Reactive buttons", Bootstrap.newId, "play-circle".glyphicon, Bootstrap.well(
- ButtonGroup(ButtonGroupSize.large, toggleButton, disabledButton)
- ))
+ )
+ ),
+ NavigationTab(
+ "Reactive buttons",
+ Bootstrap.newId,
+ "play-circle".glyphicon,
+ Bootstrap.well(
+ ButtonGroup(ButtonGroupSize.large, toggleButton, disabledButton)
+ )
+ )
)
)
diff --git a/test/frontend/src/main/scala/com/karasiq/bootstrap/test/frontend/TestProgressBar.scala b/test/frontend/src/main/scala/com/karasiq/bootstrap/test/frontend/TestProgressBar.scala
index 5a56b86..cc7c9bc 100644
--- a/test/frontend/src/main/scala/com/karasiq/bootstrap/test/frontend/TestProgressBar.scala
+++ b/test/frontend/src/main/scala/com/karasiq/bootstrap/test/frontend/TestProgressBar.scala
@@ -11,16 +11,21 @@ import scalaTags.all._
final class TestProgressBar(style: ProgressBarStyle, updateInterval: FiniteDuration) extends BootstrapComponent {
override def render(md: ModifierT*): ModifierT = {
val progressBarValue = Var(0)
- val progressBar = ProgressBar.withLabel(progressBarValue).renderTag(style, ProgressBarStyle.striped, ProgressBarStyle.animated, md).render
+ val progressBar = ProgressBar
+ .withLabel(progressBarValue)
+ .renderTag(style, ProgressBarStyle.striped, ProgressBarStyle.animated, md)
+ .render
implicit val scheduler = new AsyncScheduler
- val timer = Timer(updateInterval)
+ val timer = Timer(updateInterval)
timer.foreach { _ ⇒
if (progressBarValue.now < 100) {
progressBarValue.update(progressBarValue.now + 1)
} else {
- val alert = Alert(AlertStyle.success,
- strong("Testing"), " has finished. ",
+ val alert = Alert(
+ AlertStyle.success,
+ strong("Testing"),
+ " has finished. ",
Alert.link(href := "https://getbootstrap.com/components/#alerts", target := "blank", "Alert inline link.")
)
progressBar.parentNode.replaceChild(alert.render, progressBar)
diff --git a/test/frontend/src/main/scala/com/karasiq/bootstrap/test/frontend/TestTable.scala b/test/frontend/src/main/scala/com/karasiq/bootstrap/test/frontend/TestTable.scala
index 58ef452..8faf117 100644
--- a/test/frontend/src/main/scala/com/karasiq/bootstrap/test/frontend/TestTable.scala
+++ b/test/frontend/src/main/scala/com/karasiq/bootstrap/test/frontend/TestTable.scala
@@ -17,18 +17,23 @@ final class TestTable extends BootstrapComponent {
val reactiveColumn = Var(2)
val items = Var(1 to 45: Seq[Int])
- val columns = Var(TableCols[Int](
- TableCol("First", identity, i ⇒ i),
- TableCol("Second", identity, i ⇒ i + 1),
- TableCol("Third", identity, i ⇒ Rx(i + reactiveColumn()))
- ))
+ val columns = Var(
+ TableCols[Int](
+ TableCol("First", identity, i ⇒ i),
+ TableCol("Second", identity, i ⇒ i + 1),
+ TableCol("Third", identity, i ⇒ Rx(i + reactiveColumn()))
+ )
+ )
// Render table
- val sortableTable = SortableTable.Builder(columns)
- .withRowModifiers(i ⇒ onclick := Callback.onClick { row ⇒
- reactiveColumn.update(reactiveColumn.now + i)
- row.classList.add(TableRowStyle.success.className)
- })
+ val sortableTable = SortableTable
+ .Builder(columns)
+ .withRowModifiers(i ⇒
+ onclick := Callback.onClick { row ⇒
+ reactiveColumn.update(reactiveColumn.now + i)
+ row.classList.add(TableRowStyle.success.className)
+ }
+ )
.createTable(items)
val renderedTable = sortableTable.renderTag(TableStyle.bordered, TableStyle.hover, TableStyle.striped, md).render
diff --git a/test/frontend/src/main/scala/com/karasiq/bootstrap/test/frontend/TodoList.scala b/test/frontend/src/main/scala/com/karasiq/bootstrap/test/frontend/TodoList.scala
index 8de2577..1223d92 100644
--- a/test/frontend/src/main/scala/com/karasiq/bootstrap/test/frontend/TodoList.scala
+++ b/test/frontend/src/main/scala/com/karasiq/bootstrap/test/frontend/TodoList.scala
@@ -13,9 +13,9 @@ object TodoList {
sealed abstract class ItemPriority(val style: TableRowStyle)
object ItemPriority {
- case object Low extends ItemPriority(TableRowStyle.success)
+ case object Low extends ItemPriority(TableRowStyle.success)
case object Normal extends ItemPriority(TableRowStyle.info)
- case object High extends ItemPriority(TableRowStyle.danger)
+ case object High extends ItemPriority(TableRowStyle.danger)
def fromString(s: String): ItemPriority = Seq(Low, Normal, High).find(_.toString == s).get
}
@@ -36,21 +36,34 @@ final class TodoList extends BootstrapHtmlComponent {
}
def addTestData(): Unit = {
- items() = items.now ++ (for (_ <- 1 to 20) yield Var(Item(s"Test ${UUID.randomUUID()}", ItemPriority.Low)))
+ items() = items.now ++ (for (_ ← 1 to 20) yield Var(Item(s"Test ${UUID.randomUUID()}", ItemPriority.Low)))
}
private[this] def showDialog(title: String, priority: ItemPriority)(onApply: (String, ItemPriority) ⇒ Unit): Unit = {
- val titleText = Var(title)
+ val titleText = Var(title)
val prioritySelect = FormInput.simpleSelect("Priority", "Low", "Normal", "High")
prioritySelect.selected.update(Seq(priority.toString))
Modal("Add/edit item")
- .withBody(Form(
- FormInputGroup(FormInputGroup.label("Title"), FormInputGroup.addon("file-text-o".fontAwesome(FontAwesome.fixedWidth)), FormInputGroup.text(placeholder := "Write description", titleText.reactiveInput)),
- prioritySelect
- ))
- .withButtons(Modal.closeButton("Cancel"), Modal.button("Apply", Modal.dismiss, onclick := Callback.onClick { _ ⇒
- onApply(titleText.now, ItemPriority.fromString(prioritySelect.selected.now.head))
- }))
+ .withBody(
+ Form(
+ FormInputGroup(
+ FormInputGroup.label("Title"),
+ FormInputGroup.addon("file-text-o".fontAwesome(FontAwesome.fixedWidth)),
+ FormInputGroup.text(placeholder := "Write description", titleText.reactiveInput)
+ ),
+ prioritySelect
+ )
+ )
+ .withButtons(
+ Modal.closeButton("Cancel"),
+ Modal.button(
+ "Apply",
+ Modal.dismiss,
+ onclick := Callback.onClick { _ ⇒
+ onApply(titleText.now, ItemPriority.fromString(prioritySelect.selected.now.head))
+ }
+ )
+ )
.show(backdrop = false)
}
@@ -68,13 +81,18 @@ final class TodoList extends BootstrapHtmlComponent {
private[this] def renderItem(item: Var[Item]): TableRow = {
def todoTitle = Rx(if (item().completed) s(item().title, color.gray) else b(item().title))
- def buttons = ButtonGroup(ButtonGroupSize.small,
- Button(ButtonStyle.primary)("Edit", onclick := Callback.onClick(_ ⇒ showEditDialog(item))),
+ def buttons = ButtonGroup(
+ ButtonGroupSize.small,
+ Button(ButtonStyle.primary)("Edit", onclick := Callback.onClick(_ ⇒ showEditDialog(item))),
Button(ButtonStyle.danger)("Remove", onclick := Callback.onClick(_ ⇒ items.update(items.now.filter(_.ne(item)))))
)
TableRow(
Seq(
- Seq[Modifier](todoTitle, GridSystem.col(10), onclick := Callback.onClick(_ ⇒ item.update(item.now.copy(completed = !item.now.completed)))),
+ Seq[Modifier](
+ todoTitle,
+ GridSystem.col(10),
+ onclick := Callback.onClick(_ ⇒ item.update(item.now.copy(completed = !item.now.completed)))
+ ),
Seq[Modifier](buttons, GridSystem.col(2), textAlign.center)
),
Rx(`class` := {
@@ -84,18 +102,23 @@ final class TodoList extends BootstrapHtmlComponent {
}
override def renderTag(md: ModifierT*): TagT = {
- val heading = Rx(Seq[Modifier](
- Seq[Modifier]("Description", GridSystem.col(10)),
- Seq[Modifier]("Actions", GridSystem.col(2)))
+ val heading = Rx(
+ Seq[Modifier](Seq[Modifier]("Description", GridSystem.col(10)), Seq[Modifier]("Actions", GridSystem.col(2)))
)
val table = PagedTable(heading, items.map(_.map(renderItem)), 5)
Panel(style = PanelStyle.success)
- .withHeader(Panel.title("th-list".glyphicon, span("Scala.js Todo", Bootstrap.nbsp, Rx(Bootstrap.badge(items().count(i ⇒ !i().completed)))), Panel.buttons(
- Panel.button("plus".glyphicon, onclick := Callback.onClick(_ ⇒ showAddDialog())),
- Panel.button("trash".glyphicon, onclick := Callback.onClick(_ ⇒ removeCompleted())),
- Panel.button("flash".glyphicon, onclick := Callback.onClick(_ ⇒ addTestData()))
- )))
+ .withHeader(
+ Panel.title(
+ "th-list".glyphicon,
+ span("Scala.js Todo", Bootstrap.nbsp, Rx(Bootstrap.badge(items().count(i ⇒ !i().completed)))),
+ Panel.buttons(
+ Panel.button("plus".glyphicon, onclick := Callback.onClick(_ ⇒ showAddDialog())),
+ Panel.button("trash".glyphicon, onclick := Callback.onClick(_ ⇒ removeCompleted())),
+ Panel.button("flash".glyphicon, onclick := Callback.onClick(_ ⇒ addTestData()))
+ )
+ )
+ )
.renderTag(table.renderTag(TableStyle.bordered, TableStyle.hover, TableStyle.striped, TableStyle.condensed))
}
}
diff --git a/test/shared-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/TestCarousel.scala b/test/shared-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/TestCarousel.scala
index 4562a81..fc5bf6a 100644
--- a/test/shared-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/TestCarousel.scala
+++ b/test/shared-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/TestCarousel.scala
@@ -17,7 +17,7 @@ final class TestCarousel(imgSrc: String)(implicit val rc: TestCarousel.RC) exten
type RC = TestCarousel.RC
import rc._
import scalaTags.all._
-
+
def component = Carousel(
Carousel.slide(
imgSrc,
diff --git a/test/shared-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/TestHtmlPage.scala b/test/shared-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/TestHtmlPage.scala
index 9a60c5a..d1fdd89 100644
--- a/test/shared-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/TestHtmlPage.scala
+++ b/test/shared-v4/src/main/scala/com/karasiq/bootstrap4/test/frontend/TestHtmlPage.scala
@@ -9,32 +9,40 @@ import scalaTags.all._
object TestHtmlPage {
def apply(): String = {
- "" + html(head(
- base(href := "/"),
- meta(httpEquiv := "content-type", content := "text/html; charset=utf-8"),
- meta(name := "viewport", content := "width=device-width, initial-scale=1.0"),
- script(src := "https://code.jquery.com/jquery-3.2.1.js"),
- raw(bootstrapCdnLinks),
- scalaTags.tags2.style(raw(fontAwesomeCss)),
- script(raw(activateTooltipScript)),
- scalaTags.tags2.title("Bootstrap text page")
- ), body(
- new TestContainer
- ))
+ "" + html(
+ head(
+ base(href := "/"),
+ meta(httpEquiv := "content-type", content := "text/html; charset=utf-8"),
+ meta(name := "viewport", content := "width=device-width, initial-scale=1.0"),
+ script(src := "https://code.jquery.com/jquery-3.2.1.js"),
+ raw(bootstrapCdnLinks),
+ scalaTags.tags2.style(raw(fontAwesomeCss)),
+ script(raw(activateTooltipScript)),
+ scalaTags.tags2.title("Bootstrap text page")
+ ),
+ body(
+ new TestContainer
+ )
+ )
}
private[this] class TestContainer extends BootstrapComponent {
def render(md: ModifierT*): ModifierT = {
val testModal = this.createModal
- val rxText = Var("ERROR") // Pseudo-reactive binding
+ val rxText = Var("ERROR") // Pseudo-reactive binding
val navigationBar = NavigationBar()
.withBrand(rxText, href := "http://getbootstrap.com/components/#navbar")
.withTabs(
NavigationTab("Table", "table", "table".faFwIcon, this.createTable),
NavigationTab("Carousel", "carousel", "file-image-o".faFwIcon, this.createCarousel),
- NavigationTab("Buttons", "empty", "address-book".faFwIcon, Bootstrap.jumbotron(
- Bootstrap.button("Modal", testModal.toggle)
- ))
+ NavigationTab(
+ "Buttons",
+ "empty",
+ "address-book".faFwIcon,
+ Bootstrap.jumbotron(
+ Bootstrap.button("Modal", testModal.toggle)
+ )
+ )
)
.withContentContainer(e ⇒ GridSystem.container(GridSystem.mkRow(e), marginTop := 60.px))
.build()
@@ -43,8 +51,16 @@ object TestHtmlPage {
}
private[this] def createTable = {
- val table = PagedTable(Rx(Seq("Number", "Square")), Rx(TableRow(Seq(1, 1), Tooltip(b("First row")),
- onclick := Callback.onClick(_ ⇒ println("Pseudo callback"))) +: (2 to 100).map(i ⇒ TableRow.data(i, i * i))))
+ val table = PagedTable(
+ Rx(Seq("Number", "Square")),
+ Rx(
+ TableRow(
+ Seq(1, 1),
+ Tooltip(b("First row")),
+ onclick := Callback.onClick(_ ⇒ println("Pseudo callback"))
+ ) +: (2 to 100).map(i ⇒ TableRow.data(i, i * i))
+ )
+ )
table.renderTag(TableStyle.bordered, TableStyle.hover, TableStyle.striped)
}
@@ -54,7 +70,9 @@ object TestHtmlPage {
}
private[this] def createCarousel = {
- TestCarousel("https://upload.wikimedia.org/wikipedia/commons/9/9e/Scorpius_featuring_Mars_and_Saturn._%2828837147345%29.jpg")
+ TestCarousel(
+ "https://upload.wikimedia.org/wikipedia/commons/9/9e/Scorpius_featuring_Mars_and_Saturn._%2828837147345%29.jpg"
+ )
}
}
diff --git a/test/shared/src/main/scala/com/karasiq/bootstrap/test/frontend/TestCarousel.scala b/test/shared/src/main/scala/com/karasiq/bootstrap/test/frontend/TestCarousel.scala
index 9f1f98f..79dce8e 100644
--- a/test/shared/src/main/scala/com/karasiq/bootstrap/test/frontend/TestCarousel.scala
+++ b/test/shared/src/main/scala/com/karasiq/bootstrap/test/frontend/TestCarousel.scala
@@ -17,7 +17,7 @@ final class TestCarousel(imgSrc: String)(implicit val rc: TestCarousel.RC) exten
type RC = TestCarousel.RC
import rc._
import scalaTags.all._
-
+
def component = Carousel(
Carousel.slide(
imgSrc,
diff --git a/test/shared/src/main/scala/com/karasiq/bootstrap/test/frontend/TestHtmlPage.scala b/test/shared/src/main/scala/com/karasiq/bootstrap/test/frontend/TestHtmlPage.scala
index 48a92b2..a23baf9 100644
--- a/test/shared/src/main/scala/com/karasiq/bootstrap/test/frontend/TestHtmlPage.scala
+++ b/test/shared/src/main/scala/com/karasiq/bootstrap/test/frontend/TestHtmlPage.scala
@@ -9,32 +9,40 @@ import scalaTags.all._
object TestHtmlPage {
def apply(): String = {
- "" + html(head(
- base(href := "/"),
- meta(httpEquiv := "content-type", content := "text/html; charset=utf-8"),
- meta(name := "viewport", content := "width=device-width, initial-scale=1.0"),
- script(src := "https://code.jquery.com/jquery-1.12.0.js"),
- raw(bootstrapCdnLinks),
- scalaTags.tags2.style(raw(fontAwesomeCss)),
- script(raw(activateTooltipScript)),
- scalaTags.tags2.title("Bootstrap text page")
- ), body(
- new TestContainer
- ))
+ "" + html(
+ head(
+ base(href := "/"),
+ meta(httpEquiv := "content-type", content := "text/html; charset=utf-8"),
+ meta(name := "viewport", content := "width=device-width, initial-scale=1.0"),
+ script(src := "https://code.jquery.com/jquery-1.12.0.js"),
+ raw(bootstrapCdnLinks),
+ scalaTags.tags2.style(raw(fontAwesomeCss)),
+ script(raw(activateTooltipScript)),
+ scalaTags.tags2.title("Bootstrap text page")
+ ),
+ body(
+ new TestContainer
+ )
+ )
}
private[this] class TestContainer extends BootstrapComponent {
def render(md: ModifierT*): ModifierT = {
val testModal = this.createModal
- val rxText = Var("ERROR") // Pseudo-reactive binding
+ val rxText = Var("ERROR") // Pseudo-reactive binding
val navigationBar = NavigationBar()
.withBrand(rxText, href := "http://getbootstrap.com/components/#navbar")
.withTabs(
NavigationTab("Table", "table", "table".faFwIcon, this.createTable),
NavigationTab("Carousel", "carousel", "picture".glyphicon, this.createCarousel),
- NavigationTab("Buttons", "empty", "address-book".faFwIcon, Bootstrap.jumbotron(
- Bootstrap.button("Modal", testModal.toggle)
- ))
+ NavigationTab(
+ "Buttons",
+ "empty",
+ "address-book".faFwIcon,
+ Bootstrap.jumbotron(
+ Bootstrap.button("Modal", testModal.toggle)
+ )
+ )
)
.withContentContainer(e ⇒ GridSystem.container(GridSystem.mkRow(e), marginTop := 60.px))
.build()
@@ -43,8 +51,16 @@ object TestHtmlPage {
}
private[this] def createTable = {
- val table = PagedTable(Rx(Seq("Number", "Square")), Rx(TableRow(Seq(1, 1), Tooltip(b("First row")),
- onclick := Callback.onClick(_ ⇒ println("Pseudo callback"))) +: (2 to 100).map(i ⇒ TableRow.data(i, i * i))))
+ val table = PagedTable(
+ Rx(Seq("Number", "Square")),
+ Rx(
+ TableRow(
+ Seq(1, 1),
+ Tooltip(b("First row")),
+ onclick := Callback.onClick(_ ⇒ println("Pseudo callback"))
+ ) +: (2 to 100).map(i ⇒ TableRow.data(i, i * i))
+ )
+ )
table.renderTag(TableStyle.bordered, TableStyle.hover, TableStyle.striped)
}
@@ -54,7 +70,9 @@ object TestHtmlPage {
}
private[this] def createCarousel = {
- TestCarousel("https://upload.wikimedia.org/wikipedia/commons/9/9e/Scorpius_featuring_Mars_and_Saturn._%2828837147345%29.jpg")
+ TestCarousel(
+ "https://upload.wikimedia.org/wikipedia/commons/9/9e/Scorpius_featuring_Mars_and_Saturn._%2828837147345%29.jpg"
+ )
}
}
diff --git a/test/src/main/scala/com/karasiq/bootstrap/test/backend/BootstrapTestApp.scala b/test/src/main/scala/com/karasiq/bootstrap/test/backend/BootstrapTestApp.scala
index 4da9d86..eb0bb35 100644
--- a/test/src/main/scala/com/karasiq/bootstrap/test/backend/BootstrapTestApp.scala
+++ b/test/src/main/scala/com/karasiq/bootstrap/test/backend/BootstrapTestApp.scala
@@ -21,7 +21,7 @@ object BootstrapTestApp extends App {
implicit val actorSystem = ActorSystem(Behaviors.empty, "bootstrap-test")
import actorSystem.executionContext
- Runtime.getRuntime.addShutdownHook(new Thread(() => actorSystem.terminate()))
+ Runtime.getRuntime.addShutdownHook(new Thread(() ⇒ actorSystem.terminate()))
val route =
get {
@@ -43,7 +43,7 @@ object BootstrapTestApp extends App {
StdIn.readLine() // let it run until user presses return
bindingFuture
.flatMap(_.unbind()) // trigger unbinding from the port
- .onComplete(_ => actorSystem.terminate()) // and shutdown when done
+ .onComplete(_ ⇒ actorSystem.terminate()) // and shutdown when done
}
startup()