setResolvedValue method

DOMElement setResolvedValue(
  1. dynamic value
)

Implementation

DOMElement setResolvedValue(dynamic value) {
  var element = _valueAsElement(value);

  // Call `listenDSXValue` if type defines method:
  _resolvedValueListenerSubscription ??= _listenDSXValue(objectSource, (
    objSrc,
  ) {
    var value = _toDSXValue(objSrc, objSrc);
    setResolvedValue(value);
  });

  // Remove previous `_resolvedElement`:
  if (_resolvedElement != null) {
    var runtime = _resolvedElement!.getRuntime();

    if (runtime.domGenerator.isNodeInDOM(runtime.node)) {
      runtime.replaceBy([element]);
    } else {
      runtime.remove();
      _resolvedValueListenerSubscription?.cancel();
      reset();
    }
  }

  // Set after the previous element cleanup, since `reset()` clears it:
  _resolvedValue = value;
  _resolvedElement = element;

  return element;
}