resolveDSX method

void resolveDSX()

Implementation

void resolveDSX() {
  var attributes = _attributes;
  if (attributes == null || attributes.isEmpty) return;

  Map<String, DSX>? dsxAttributes;

  for (var entry in attributes.entries) {
    var attrVal = entry.value;

    var valueHandler = attrVal.valueHandler;

    if (valueHandler is DOMAttributeValueTemplate) {
      var dsx = valueHandler.template.asDSX;
      if (dsx != null) {
        dsxAttributes ??= <String, DSX>{};
        dsxAttributes[entry.key] = dsx;
      }
    }
  }

  if (dsxAttributes != null) {
    for (var entry in dsxAttributes.entries) {
      var attrName = entry.key;
      var dsx = entry.value;

      if (dsx.isFunction) {
        if (_resolveDSXEventFunction(attrName, dsx)) {
          _resolvedDSXEventAttributes ??= <String, DSX>{};
          _resolvedDSXEventAttributes![attrName] = dsx;

          removeAttribute(attrName);
        }
      }
    }
  }
}