getSourceTargetVariables static method

Map<String, dynamic> getSourceTargetVariables(
  1. WidgetModel source,
  2. WidgetModel target,
  3. List<String> sourceAliasNames,
  4. List<String> targetAliasNames,
  5. List<Binding>? bindings,
)

Implementation

static Map<String, dynamic> getSourceTargetVariables(
    WidgetModel source,
    WidgetModel target,
    List<String> sourceAliasNames,
    List<String> targetAliasNames,
    List<Binding>? bindings) {
  var variables = <String, dynamic>{};

  // get variables
  bindings?.forEach((binding) {
    var key = binding.key;
    var scope = source.scope;
    var name = binding.source.toLowerCase();

    var i = sourceAliasNames.indexOf(name);
    if (i >= 0) {
      key = key?.replaceFirst(sourceAliasNames[i], source.id);
      scope = source.scope;
    }

    i = targetAliasNames.indexOf(name);
    if (i >= 0) {
      key = key?.replaceFirst(targetAliasNames[i], target.id);
      scope = target.scope;
    }

    // find the observable
    var observable = System.currentApp?.scopeManager.findObservable(scope, key);

    // add to the list
    variables[binding.toString()] = observable?.get();
  });

  return variables;
}