Source code for duck.html.components.footer

"""
Footer component module.
"""
from duck.html.components import (
  Component,
  InnerComponent,
  Theme,
  to_component,
)
from duck.html.components.duck import MadeWithDuck
from duck.html.components.container import FlexContainer
from duck.html.components.style import Style
from duck.html.components.link import Link
from duck.html.components.heading import Heading


[docs] class FooterBlock(FlexContainer): """ Footer Block component which will contain a list of footer items. Args: heading (str): The heading for the footer block elements (list[str]): List containing block elements as html e.g ['<b>Value</b>', ...] Notes: - This component may have different footer blocks with different headings and items. """
[docs] def on_create(self): super().on_create() self.style["flex-direction"] = "column" if "heading" in self.kwargs: heading = self.kwargs.get('heading') self.heading = Heading("h2", text=heading, klass="footer-heading", color="white") self.heading.style["font-size"] = "1.2rem" self.add_child(self.heading) if 'elements' in self.kwargs: for element in self.kwargs.get('elements', []): # This is an html element if isinstance(element, Component): self.add_child(element) else: self.add_child(to_component(element))
[docs] class FooterItems(FlexContainer): """ Main container component for storing footer items. Args: footer_items (dict[str, list[str]]): A dictionary containing a mapping of footer block headings to a list of different html elements as strings. """
[docs] def on_create(self): super().on_create() self.style["gap"] = "10px" self.style["padding"] = Theme.padding self.style["justify-content"] = "space-between" self.style["flex-wrap"] = "wrap" if "footer_items" in self.kwargs: for heading, elements in self.kwargs.get('footer_items', {}).items(): footer_block = FooterBlock(heading=heading, elements=elements) self.add_child(footer_block)