Source code for bootlace.forms.widgets
from typing import Any
from dominate import tags
from wtforms.fields import Field
__all__ = ["Switch"]
[docs]
class Switch:
def __init__(self, **kwargs: Any) -> None:
super().__init__()
self.kwargs = kwargs
[docs]
def __call__(self, field: Field, **kwargs: Any) -> str:
div = tags.div(cls="form-check form-switch")
kwargs.setdefault("cls", "form-check-input")
kwargs.setdefault("type", "checkbox")
kwargs.setdefault("role", "switch")
div.add(tags.input_(**kwargs))
label = div.add(tags.label(field.label.text, cls="form-check-label"))
label["for"] = field.id
return div.render()