render method
ValueProvider
render(
- JSONRender render,
- DivElement output,
- dynamic node,
- dynamic nodeOriginal,
- NodeKey nodeKey,
override
Implementation
@override
ValueProvider render(JSONRender render, DivElement output, dynamic node,
dynamic nodeOriginal, NodeKey nodeKey) {
var emailLabel = '$node';
var email = emailLabel.trim();
Element elem;
ValueProvider valueProvider;
if (render.renderMode == JSONRenderMode.input) {
var input = InputElement()
..value = emailLabel
..type = 'email';
elem = input;
_adjustInputWidthByValueOnKeyPress(elem as InputElement);
elem.onDoubleClick.listen((e) {
var inputEmail = input.value;
if (inputEmail == emailLabel) {
// ignore: unsafe_html
window.open('mailto:$email', '_self');
} else {
// ignore: unsafe_html
window.open('mailto:$inputEmail', '_self');
}
});
valueProvider = (parent) => (elem as InputElement).value;
} else {
var a = AnchorElement(href: 'mailto:$email')..text = emailLabel;
elem = a;
valueProvider = (parent) => nodeOriginal;
}
output.children.add(elem);
applyCSS(render, output, extraElements: [elem]);
return valueProvider;
}