package udash
- Alphabetic
- By Inheritance
- udash
- Routing
- Properties
- Bindings
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Package Members
Type Members
- class Application[HierarchyRoot >: Null <: GState[HierarchyRoot]] extends CrossLogging
Root application which is used to start single instance of app.
Root application which is used to start single instance of app.
- HierarchyRoot
Should be a sealed trait which extends io.udash.core.State.
- type Blank[T] = udash.properties.Blank[T]
- Definition Classes
- Properties
- type CallbackSequencer = udash.properties.CallbackSequencer
- Definition Classes
- Properties
- type CastableProperty[A] = udash.properties.single.CastableProperty[A]
- Definition Classes
- Properties
- type CastableReadableProperty[A] = udash.properties.single.CastableReadableProperty[A]
- Definition Classes
- Properties
- type ComponentId = udash.component.ComponentId
- type ContainerView = udash.core.ContainerView
- type FileUploader = udash.utils.FileUploader
- type GState[HRoot <: State] = udash.core.State { type HierarchyRoot = HRoot }
- type HasModelPropertyCreator[T] = udash.properties.HasModelPropertyCreator[T]
- type ModelProperty[A] = udash.properties.model.ModelProperty[A]
- Definition Classes
- Properties
- type Patch[+P <: ReadableProperty[_]] = udash.properties.seq.Patch[P]
- Definition Classes
- Properties
- type Presenter[S <: State] = udash.core.Presenter[S]
- type Property[A] = udash.properties.single.Property[A]
- Definition Classes
- Properties
- type ReadableModelProperty[A] = udash.properties.model.ReadableModelProperty[A]
- Definition Classes
- Properties
- type ReadableProperty[A] = udash.properties.single.ReadableProperty[A]
- Definition Classes
- Properties
- type ReadableSeqProperty[A] = udash.properties.seq.ReadableSeqProperty[A, _ <: ReadableProperty[A]]
- Definition Classes
- Properties
- type Registration = udash.utils.Registration
- type RoutingRegistry[HierarchyRoot <: State] = udash.routing.RoutingRegistry[HierarchyRoot]
- type SeqProperty[A] = udash.properties.seq.SeqProperty[A, _ <: Property[A]]
- Definition Classes
- Properties
- type State = udash.core.State
- type StaticViewFactory[S <: State] = udash.core.StaticViewFactory[S]
- type Url = udash.core.Url
- type UrlChangeProvider = udash.routing.UrlChangeProvider
- Definition Classes
- Routing
- type View = udash.core.View
- type ViewFactory[S <: State] = udash.core.ViewFactory[S]
- type ViewFactoryRegistry[HierarchyRoot <: State] = udash.core.ViewFactoryRegistry[HierarchyRoot]
- type WindowUrlFragmentChangeProvider = udash.routing.WindowUrlFragmentChangeProvider
- Definition Classes
- Routing
- type WindowUrlPathChangeProvider = udash.routing.WindowUrlPathChangeProvider
- Definition Classes
- Routing
- implicit final class InlineStyleOps[T] extends AnyRef
- Definition Classes
- Bindings
Value Members
- final val Blank: udash.properties.Blank.type
- Definition Classes
- Properties
- final val CallbackSequencer: udash.properties.CallbackSequencer.type
- Definition Classes
- Properties
- final val CheckButtons: udash.bindings.inputs.CheckButtons.type
- Definition Classes
- Bindings
- final val Checkbox: udash.bindings.inputs.Checkbox.type
- Definition Classes
- Bindings
- final val ComponentId: udash.component.ComponentId.type
- final val EmptyPresenter: udash.core.EmptyPresenter.type
- final val FileInput: udash.bindings.inputs.FileInput.type
- Definition Classes
- Bindings
- final val FileUploader: udash.utils.FileUploader.type
- final val ModelProperty: udash.properties.model.ModelProperty.type
- Definition Classes
- Properties
- final val NumberInput: udash.bindings.inputs.NumberInput.type
- Definition Classes
- Bindings
- final val PasswordInput: udash.bindings.inputs.PasswordInput.type
- Definition Classes
- Bindings
- final val Property: udash.properties.single.Property.type
- Definition Classes
- Properties
- final val RadioButtons: udash.bindings.inputs.RadioButtons.type
- Definition Classes
- Bindings
- final val RangeInput: udash.bindings.inputs.RangeInput.type
- Definition Classes
- Bindings
- final val Select: udash.bindings.inputs.Select.type
- Definition Classes
- Bindings
- final val SeqProperty: udash.properties.seq.SeqProperty.type
- Definition Classes
- Properties
- final val TextArea: udash.bindings.inputs.TextArea.type
- Definition Classes
- Bindings
- final val TextInput: udash.bindings.inputs.TextInput.type
- Definition Classes
- Bindings
- final val Url: udash.core.Url.type
- implicit def any2Property[A](value: A): Any2Property[A]
- Definition Classes
- Properties
- implicit def any2SeqProperty[A](value: Seq[A]): Any2SeqProperty[A]
- Definition Classes
- Properties
- def bind(property: udash.properties.single.ReadableProperty[_]): Binding
Use it to bind value of property into DOM structure.
Use it to bind value of property into DOM structure. Value of the property will be rendered as text node. (Using .toString method.) If property value is null, empty text node will be added.
- property
Property
to bind.- returns
property binding.
- Definition Classes
- Bindings
- implicit def booleanProp2BooleanOpsProperty(value: Property[Boolean]): BooleanPropertyOps
- Definition Classes
- Properties
- def emptyStringNode(): Node
Creates empty text node, which is useful as placeholder.
Creates empty text node, which is useful as placeholder.
- Definition Classes
- Bindings
- def produce[T](property: udash.properties.seq.ReadableSeqProperty[T, _ <: udash.properties.single.ReadableProperty[T]], customElementsReplace: ReplaceMethod)(builder: (Seq[T]) => Seq[Node]): Binding
Use it to bind sequence property into DOM structure, given
builder
will be used to generate DOM element on every value change.Use it to bind sequence property into DOM structure, given
builder
will be used to generate DOM element on every value change. Notice that on every property change, whole element representing property will be rendered again.- property
Property
to bind.- customElementsReplace
takes root element, old children and new children. It should return
true
, if it did not replace elements in DOM. Is such a case the default implementation will replace the elements. Otherwise you have to replace elements in DOM manually.- builder
Element
builder which will be used to create HTML element. Seq passed to the builder can not be null.- returns
property binding.
- Definition Classes
- Bindings
- def produce[T](property: udash.properties.seq.ReadableSeqProperty[T, _ <: udash.properties.single.ReadableProperty[T]])(builder: (Seq[T]) => Seq[Node]): Binding
Use it to bind sequence property into DOM structure, given
builder
will be used to generate DOM element on every value change.Use it to bind sequence property into DOM structure, given
builder
will be used to generate DOM element on every value change. Notice that on every property change, whole element representing property will be rendered again.- property
Property
to bind.- builder
Element
builder which will be used to create HTML element.Seq
passed to the builder cannot be null.- returns
property binding.
- Definition Classes
- Bindings
- def produce[T](property: udash.properties.single.ReadableProperty[T], customElementsReplace: ReplaceMethod, checkNull: Boolean)(builder: (T) => Seq[Node]): Binding
Use it to bind property into DOM structure, given
builder
will be used to generate DOM element on every value change.Use it to bind property into DOM structure, given
builder
will be used to generate DOM element on every value change. If property value is null, empty text node will be added as placeholder.- property
Property
to bind.- customElementsReplace
takes root element, old children and new children. It should return
true
, if it did not replace elements in DOM. Is such a case the default implementation will replace the elements. Otherwise you have to replace elements in DOM manually.- checkNull
if it is true, then null value of property will result in rendering empty text node. if it is false, then null value has to be handled by builder.
- builder
Element
builder which will be used to create HTML element.- returns
property binding.
- Definition Classes
- Bindings
- def produce[T](property: udash.properties.single.ReadableProperty[T], checkNull: Boolean = true)(builder: (T) => Seq[Node]): Binding
Use it to bind property into DOM structure, given
builder
will be used to generate DOM element on every value change.Use it to bind property into DOM structure, given
builder
will be used to generate DOM element on every value change. If property value is null, empty text node will be added as placeholder.- property
Property
to bind.- checkNull
if it is true, then null value of property will result in rendering empty text node. if it is false, then null value has to be handled by builder.
- builder
Element
builder which will be used to create HTML element.- returns
property binding.
- Definition Classes
- Bindings
- def produceWithNested[T](property: udash.properties.seq.ReadableSeqProperty[T, _ <: udash.properties.single.ReadableProperty[T]], customElementsReplace: ReplaceMethod)(builder: (Seq[T], NestedInterceptor) => Seq[Node]): Binding
Use it to bind sequence property into DOM structure, given
builder
will be used to generate DOM element on every value change.Use it to bind sequence property into DOM structure, given
builder
will be used to generate DOM element on every value change. Notice that on every property change, whole element representing property will be rendered again.The builder takes nested bindings interceptor - it should be used if you want to create another binding inside this builder. This prevents memory leaks by killing nested bindings on property change.
- property
Property
to bind.- customElementsReplace
takes root element, old children and new children. It should return
true
, if it did not replace elements in DOM. Is such a case the default implementation will replace the elements. Otherwise you have to replace elements in DOM manually.- builder
Element
builder which will be used to create HTML element. Seq passed to the builder can not be null.- returns
property binding.
- Definition Classes
- Bindings
- def produceWithNested[T](property: udash.properties.seq.ReadableSeqProperty[T, _ <: udash.properties.single.ReadableProperty[T]])(builder: (Seq[T], NestedInterceptor) => Seq[Node]): Binding
Use it to bind sequence property into DOM structure, given
builder
will be used to generate DOM element on every value change.Use it to bind sequence property into DOM structure, given
builder
will be used to generate DOM element on every value change. Notice that on every property change, whole element representing property will be rendered again.The builder takes nested bindings interceptor - it should be used if you want to create another binding inside this builder. This prevents memory leaks by killing nested bindings on property change.
- property
Property
to bind.- builder
Element
builder which will be used to create HTML element. Seq passed to the builder can not be null.- returns
property binding.
- Definition Classes
- Bindings
- def produceWithNested[T](property: udash.properties.single.ReadableProperty[T], customElementsReplace: ReplaceMethod, checkNull: Boolean)(builder: (T, NestedInterceptor) => Seq[Node]): Binding
Use it to bind property into DOM structure, given
builder
will be used to generate DOM element on every value change.Use it to bind property into DOM structure, given
builder
will be used to generate DOM element on every value change. If property value is null, empty text node will be added as placeholder.The builder takes nested bindings interceptor - it should be used if you want to create another binding inside this builder. This prevents memory leaks by killing nested bindings on property change.
For example:
produceWithNested(property) { case (data, nested) => div(data, nested(produce(anotherProperty) { innerData => span(innerData).render })).render }
- property
Property
to bind.- customElementsReplace
takes root element, old children and new children. It should return
true
, if it did not replace elements in DOM. Is such a case the default implementation will replace the elements. Otherwise you have to replace elements in DOM manually.- checkNull
if it is true, then null value of property will result in rendering empty text node. if it is false, then null value has to be handled by builder.
- builder
Element
builder which will be used to create HTML element.- returns
property binding.
- Definition Classes
- Bindings
- def produceWithNested[T](property: udash.properties.single.ReadableProperty[T], checkNull: Boolean = true)(builder: (T, NestedInterceptor) => Seq[Node]): Binding
Use it to bind property into DOM structure, given
builder
will be used to generate DOM element on every value change.Use it to bind property into DOM structure, given
builder
will be used to generate DOM element on every value change. If property value is null, empty text node will be added as placeholder.The builder takes nested bindings interceptor - it should be used if you want to create another binding inside this builder. This prevents memory leaks by killing nested bindings on property change.
For example:
produceWithNested(property) { case (data, nested) => div(data, nested(produce(anotherProperty) { innerData => span(innerData).render })).render }
- property
Property
to bind.- checkNull
if it is true, then null value of property will result in rendering empty text node. if it is false, then null value has to be handled by builder.
- builder
Element
builder which will be used to create HTML element.- returns
property binding.
- Definition Classes
- Bindings
- implicit def propertySeq2SeqProperty[A](value: com.avsystem.commons.ISeq[ReadableProperty[A]]): PropertySeq2SeqProperty[A]
- Definition Classes
- Properties
- def queuedNode(component: => Seq[Node], timeout: Int = 0): Modifier[Element]
Renders component with provided timeout.
Renders component with provided timeout. It's useful to render heavy components after displaying the main view.
- Definition Classes
- Bindings
- def repeat[T, E <: udash.properties.single.ReadableProperty[T]](property: udash.properties.seq.ReadableSeqProperty[T, E], customElementsReplace: ReplaceMethod = DOMManipulator.DefaultElementReplace, customElementsInsert: InsertMethod = DOMManipulator.DefaultElementInsert)(builder: (E) => Seq[Node]): Binding
Use it to bind sequence property into DOM structure.
Use it to bind sequence property into DOM structure. This method cares about adding new elements which appears in sequence and also removes those which were removed. You only need to provide builder which is used to create HTML element for each sequence member.
Note: This will handle only structure changes, if you want to handle concrete subproperties changes, you should use another binding method insidebuilder
.- property
Property
to bind.- customElementsReplace
takes root element, old children and new children. It should return
true
, if it did not replace elements in DOM. Is such a case the default implementation will replace the elements. Otherwise you have to replace elements in DOM manually.- customElementsInsert
takes root element, ref node and new children. It should return
true
, if it does not insert elements in DOM. Is such a case the default implementation will insert the elements. Otherwise you have to insert elements in DOM manually.- builder
Builder
which is used for every element.- returns
property binding.
- Definition Classes
- Bindings
- def repeatWithIndex[T, E <: udash.properties.single.ReadableProperty[T]](property: udash.properties.seq.ReadableSeqProperty[T, E], customElementsReplace: ReplaceMethod = DOMManipulator.DefaultElementReplace, customElementsInsert: InsertMethod = DOMManipulator.DefaultElementInsert)(builder: (E, udash.properties.single.ReadableProperty[Int], NestedInterceptor) => Seq[Node]): Binding
Use it to bind sequence property into DOM structure.
Use it to bind sequence property into DOM structure. This method cares about adding new elements which appears in sequence and also removes those which were removed. You only need to provide builder which is used to create HTML element for each sequence member. This modifier provides also property with element index in sequence.
Note: This will handle only structure changes, if you want to handle concrete subproperties changes, you should use another binding method insidebuilder
.The builder takes nested bindings interceptor - it should be used if you want to create another binding inside this builder. This prevents memory leaks by killing nested bindings on property change.
- property
Property
to bind.- customElementsReplace
takes root element, old children and new children. It should return
true
, if it did not replace elements in DOM. Is such a case the default implementation will replace the elements. Otherwise you have to replace elements in DOM manually.- customElementsInsert
takes root element, ref node and new children. It should return
true
, if it does not insert elements in DOM. Is such a case the default implementation will insert the elements. Otherwise you have to insert elements in DOM manually.- builder
Builder
which is used for every element.- returns
property binding.
- Definition Classes
- Bindings
- def repeatWithNested[T, E <: udash.properties.single.ReadableProperty[T]](property: udash.properties.seq.ReadableSeqProperty[T, E], customElementsReplace: ReplaceMethod = DOMManipulator.DefaultElementReplace, customElementsInsert: InsertMethod = DOMManipulator.DefaultElementInsert)(builder: (E, NestedInterceptor) => Seq[Node]): Binding
Use it to bind sequence property into DOM structure.
Use it to bind sequence property into DOM structure. This method cares about adding new elements which appears in sequence and also removes those which were removed. You only need to provide builder which is used to create HTML element for each sequence member.
Note: This will handle only structure changes, if you want to handle concrete subproperties changes, you should use another binding method insidebuilder
.The builder takes nested bindings interceptor - it should be used if you want to create another binding inside this builder. This prevents memory leaks by killing nested bindings on property change.
- property
Property
to bind.- customElementsReplace
takes root element, old children and new children. It should return
true
, if it did not replace elements in DOM. Is such a case the default implementation will replace the elements. Otherwise you have to replace elements in DOM manually.- customElementsInsert
takes root element, ref node and new children. It should return
true
, if it does not insert elements in DOM. Is such a case the default implementation will insert the elements. Otherwise you have to insert elements in DOM manually.- builder
Builder
which is used for every element.- returns
property binding.
- Definition Classes
- Bindings
- implicit def seqFromElement(el: Element): Seq[Element]
- Definition Classes
- Bindings
- implicit def seqFromNode(el: Node): Seq[Node]
- Definition Classes
- Bindings
- implicit def seqNodeFromOpt[T](el: com.avsystem.commons.Opt[T])(implicit ev: (T) => Modifier[Element]): Modifier[Element]
- Definition Classes
- Bindings
- def showIf(property: udash.properties.single.ReadableProperty[Boolean], customElementsReplace: ReplaceMethod)(elements: => Seq[Node]): Binding
Shows provided DOM elements only if property value is
true
.Shows provided DOM elements only if property value is
true
.- property
Property
to check.- customElementsReplace
takes root element, old children and new children. It should return
true
, if it did not replace elements in DOM. Is such a case the default implementation will replace the elements. Otherwise you have to replace elements in DOM manually.- elements
Element
s to show if property value istrue
.- returns
property binding.
- Definition Classes
- Bindings
- def showIf(property: udash.properties.single.ReadableProperty[Boolean])(elements: => Seq[Node]): Binding
Shows provided DOM elements only if property value is
true
.Shows provided DOM elements only if property value is
true
.- property
Property
to check.- elements
Element
s to show if property value istrue
.- returns
property binding.
- Definition Classes
- Bindings
- def showIfElse(property: udash.properties.single.ReadableProperty[Boolean], customElementsReplace: ReplaceMethod)(elements: => Seq[Node], elseElements: => Seq[Node]): Binding
Switches provided DOM elements depending on property value.
Switches provided DOM elements depending on property value.
- property
Property
to check.- customElementsReplace
takes root element, old children and new children. It should return
true
, if it did not replace elements in DOM. Is such a case the default implementation will replace the elements. Otherwise you have to replace elements in DOM manually.- elements
Element
s to show if property value istrue
.- elseElements
Element
s to show if property value isfalse
.- returns
property binding.
- Definition Classes
- Bindings
- def showIfElse(property: udash.properties.single.ReadableProperty[Boolean])(elements: => Seq[Node], elseElements: => Seq[Node]): Binding
Switches provided DOM elements depending on property value.
Switches provided DOM elements depending on property value.
- property
Property
to check.- elements
Element
s to show if property value istrue
.- elseElements
Element
s to show if property value isfalse
.- returns
property binding.
- Definition Classes
- Bindings
- implicit def toAttrOps(attr: Attr): AttrOps
- Definition Classes
- Bindings
- implicit def toAttrPairOps(attr: AttrPair[Element, _]): AttrPairOps
- Definition Classes
- Bindings
- implicit def toPropertyOps[T](property: udash.properties.single.ReadableProperty[T]): PropertyOps[T]
- Definition Classes
- Bindings