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 imageURL = parseImageURL(node);
var perspectiveFilter = parsePerspectiveFilter(node);
var clip = parseClip(node);
var rectangles = parseRectangles(node);
var points = parsePoints(node);
var time = parseTime(node);
String? urlType;
if (filterURL != null) {
var ret = filterURL!(imageURL);
imageURL = ret.url;
urlType = ret.type;
}
Element elem = createDivInline();
var imgElemContainer =
createImageElementFromURL(render, lazyLoad, imageURL, urlType);
imgElemContainer.style.maxWidth = '70vw';
imgElemContainer.style.maxHeight = '40vw';
var imgElem = imgElemContainer is ImageElement
? imgElemContainer
: imgElemContainer.querySelector('img') as ImageElement;
valueProviderOriginal(parent) => nodeOriginal;
var valueProviderRef = ValueProviderReference(valueProviderOriginal);
imgElem.onLoad.listen((e) {
renderLoadedImage(render, node, elem, imgElem, perspectiveFilter, clip,
rectangles, points, time, valueProviderRef);
});
elem.children.add(imgElemContainer);
output.children.add(elem);
this.applyCSS(render, output, extraElements: [elem]);
return valueProviderRef.asValueProvider();
}