createAcxOverlayContainer function

HtmlElement createAcxOverlayContainer(
  1. Object parent, {
  2. required String id,
  3. required String name,
  4. String? className,
})

Creates an overlay container inside the parent if one does not exist already. A hidden focusable element is inserted before and after the overlay container to support a11y features.

Implementation

HtmlElement createAcxOverlayContainer(Object parent,
    {required String id, required String name, String? className}) {
  if (parent is! HtmlElement) {
    throw ArgumentError("Not a HtmlElement type");
  }
  var container = parent.querySelector('#$id');
  if (container == null) {
    container = DivElement()
      ..id = id
      ..classes.add(overlayContainerClassName);
    if (className != null) container.classes.add(className);
    parent.append(container);
  }
  container.attributes[overlayContainerNameAttribute] = name;
  return container as HtmlElement;
}