package xapi.polymer.core;
import static xapi.components.impl.JsSupport.create;
import static xapi.ui.html.api.HtmlTemplate.KEY_VALUE;
import com.google.gwt.core.client.js.JsProperty;
import com.google.gwt.core.client.js.JsType;
import elemental.dom.Element;
import xapi.annotation.common.Property;
import xapi.elemental.X_Elemental;
import xapi.elemental.api.PotentialNode;
import xapi.ui.html.api.El;
import xapi.ui.html.api.NoUi;
import xapi.util.api.ConvertsValue;
@El(
tag = "core-label",
properties = {
@Property(name="layout", value=""),
@Property(name="horizontal", value=""),
@Property(name="center", value=""),
},
html="$children"
)
@JsType
public interface PolymerLabel {
ConvertsValue<PolymerLabel, PotentialNode<Element>> BUILDER = X_Elemental.<PolymerLabel, Element>toElementBuilder(PolymerLabel.class);
@El(
html="$value",
className="label",
properties={
@Property(name="flex"),
@Property(name="three"),
@Property(name="self-center"),
})
@JsProperty
String label();
@El(
tag="",
html=KEY_VALUE,
useToHtml=PolymerInput.class
)
@JsProperty
PolymerInput input();
@NoUi
@JsProperty
PolymerLabel input(PolymerInput input);
@NoUi
@JsProperty
PolymerLabel label(String label);
@NoUi
default Element build() {
PotentialNode<Element> node = BUILDER.convert(this);
return node.getElement();
}
@NoUi
public static PolymerLabel newLabel() {
return create();
}
}