buildOpenTagHTML method
String
buildOpenTagHTML({
- bool openCloseTag = false,
- DSXResolution dsxResolution = DSXResolution.skipDSX,
- DOMContext<
Object> ? domContext,
Implementation
String buildOpenTagHTML({
bool openCloseTag = false,
DSXResolution dsxResolution = DSXResolution.skipDSX,
DOMContext? domContext,
}) {
var html = StringBuffer('<$tag');
final attributes = _attributes;
if (attributes != null && attributes.isNotEmpty) {
var attributeId = attributes['id'];
var attributeClass = attributes['class'];
var attributeStyle = attributes['style'];
DOMAttribute.appendTo(
html,
' ',
attributeId,
domContext: domContext,
dsxResolution: dsxResolution,
);
DOMAttribute.appendTo(
html,
' ',
attributeClass,
domContext: domContext,
dsxResolution: dsxResolution,
);
DOMAttribute.appendTo(
html,
' ',
attributeStyle,
domContext: domContext,
dsxResolution: dsxResolution,
);
// An empty value is kept (`data-x=""`): only a `null` one is no value.
var attributesNormal = attributes.values.where(
(v) =>
(v.hasValue || v.value != null) &&
!_isPriorityAttribute(v) &&
!v.isBoolean,
);
for (var attr in attributesNormal) {
DOMAttribute.appendTo(
html,
' ',
attr,
domContext: domContext,
dsxResolution: dsxResolution,
);
}
var attributesBoolean = attributes.values.where(
(v) => v.hasValue && !_isPriorityAttribute(v) && v.isBoolean,
);
for (var attr in attributesBoolean) {
DOMAttribute.appendTo(
html,
' ',
attr,
domContext: domContext,
dsxResolution: dsxResolution,
);
}
}
if (_resolvedDSXEventAttributes != null) {
for (var entry in _resolvedDSXEventAttributes!.entries) {
var name = entry.key;
var value = entry.value.toString();
html.write(' ');
html.write(name);
html.write('="');
html.write(value);
html.write('"');
}
}
html.write(openCloseTag ? '/>' : '>');
return html.toString();
}