ysny.karibu-tools.karibu-tools.0.20.source-code.HtmlSpan.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of karibu-tools Show documentation
Show all versions of karibu-tools Show documentation
Karibu-Tools: The Vaadin Missing Utilities
package com.github.mvysny.kaributools
import com.vaadin.flow.component.html.Span
import org.intellij.lang.annotations.Language
/**
* Populates its contents with given html snippet. The advantage over [com.vaadin.flow.component.Html]
* is that any html is accepted - it doesn't have to be wrapped in a single root element.
*
* Note that it is the developer's responsibility to sanitize and remove any
* dangerous parts of the HTML before sending it to the user through this
* component. Passing raw input data to the user will possibly lead to
* cross-site scripting attacks.
*
* This component does not expand the HTML fragment into a server side DOM tree
* so you cannot traverse or modify the HTML on the server. The root element can
* be accessed through [element] and the inner HTML through
* [innerHTML].
* @param innerHTML the HTML snippet to populate the span with.
*/
public class HtmlSpan(@Language("html") innerHTML: String = "") : Span() {
/**
* Sets the inner html. Removes any children added via [add].
*/
@get:Language("html")
@set:Language("html")
public var innerHTML: String
get() = element.getProperty("innerHTML", "")
set(value) {
removeAll()
element.setProperty("innerHTML", value)
}
init {
this.innerHTML = innerHTML
}
}