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 unixEpoch = parseUnixEpoch(node)!;
var dateTime = toDateTime(unixEpoch, true).toLocal();
Element elem;
ValueProvider valueProvider;
if (render.renderMode == JSONRenderMode.input) {
var dateTimeLocal = _dateFormatDatetimeLocal.format(dateTime);
elem = InputElement()
..value = dateTimeLocal
..type = 'datetime-local';
valueProvider = (parent) {
var time = toUnixEpoch((elem as InputElement).value)!;
var timeDiff = unixEpoch - time;
if (timeDiff > 0 && timeDiff <= 1000) {
time += timeDiff;
}
return time;
};
} else {
var dateTimeStr = _dateFormatYYYYMMDDHHMMSS.format(dateTime);
elem = SpanElement()..text = dateTimeStr;
elem.onClick.listen((e) {
copyElementToClipboard(elem);
var val = '${elem.text}';
if (RegExp(r'^\d+$').hasMatch(val)) {
elem.text = dateTimeStr;
} else {
elem.text = '$unixEpoch';
}
});
valueProvider = (parent) => nodeOriginal;
}
output.children.add(elem);
applyCSS(render, output, extraElements: [elem]);
return valueProvider;
}