xref: /template/strap/ComboStrap/FontSize.php (revision 82a60d039cd81033dc8147c27f0a50716b7a5301)
137748cd8SNickeau<?php
237748cd8SNickeau
337748cd8SNickeau
437748cd8SNickeaunamespace ComboStrap;
537748cd8SNickeau
637748cd8SNickeau
737748cd8SNickeauclass FontSize
837748cd8SNickeau{
937748cd8SNickeau
1037748cd8SNickeau    const FONT_SIZE = "font-size";
1137748cd8SNickeau    const CANONICAL = self::FONT_SIZE;
1237748cd8SNickeau
1337748cd8SNickeau    const SCALE_TO_HEADING_NUMBER = [
1437748cd8SNickeau            6=>1,
1537748cd8SNickeau            5=>2,
1637748cd8SNickeau            4=>3,
1737748cd8SNickeau            3=>4,
1837748cd8SNickeau            2=>5,
1937748cd8SNickeau            1=>6
2037748cd8SNickeau        ];
2137748cd8SNickeau    const HEADING_NUMBER = [
2237748cd8SNickeau        "h1"=>1,
2337748cd8SNickeau        "h2"=>2,
2437748cd8SNickeau        "h3"=>3,
2537748cd8SNickeau        "h4"=>4,
2637748cd8SNickeau        "h5"=>5,
2737748cd8SNickeau        "h6"=>6
2837748cd8SNickeau    ];
2937748cd8SNickeau
3037748cd8SNickeau    /**
3137748cd8SNickeau     *
3237748cd8SNickeau     * https://getbootstrap.com/docs/5.0/utilities/text/#font-size
3337748cd8SNickeau     * @param TagAttributes $tagAttributes
3437748cd8SNickeau     */
3537748cd8SNickeau    public static function processFontSizeAttribute(TagAttributes &$tagAttributes)
3637748cd8SNickeau    {
3737748cd8SNickeau
3837748cd8SNickeau        if ($tagAttributes->hasComponentAttribute(self::FONT_SIZE)) {
3937748cd8SNickeau            $value = $tagAttributes->getValueAndRemove(self::FONT_SIZE);
4037748cd8SNickeau            if(is_numeric($value)){
4137748cd8SNickeau                if (key_exists($value, self::SCALE_TO_HEADING_NUMBER)){
4237748cd8SNickeau                    $headingValue = self::SCALE_TO_HEADING_NUMBER[$value];
4337748cd8SNickeau                    $tagAttributes->addClassName("fs-$headingValue");
4437748cd8SNickeau                } else {
4537748cd8SNickeau                    LogUtility::msg("The font-size scale value ($value) is not between 1 and 6.",LogUtility::LVL_MSG_ERROR,self::CANONICAL);
4637748cd8SNickeau                }
4737748cd8SNickeau
4837748cd8SNickeau            } else {
4937748cd8SNickeau                if (key_exists($value, self::HEADING_NUMBER)){
5037748cd8SNickeau                    $headingValue = self::HEADING_NUMBER[$value];
5137748cd8SNickeau                    $tagAttributes->addClassName("fs-$headingValue");
5237748cd8SNickeau                } else {
53*82a60d03SNickeau                    $tagAttributes->addStyleDeclarationIfNotSet("font-size", $value);
5437748cd8SNickeau                }
5537748cd8SNickeau            }
5637748cd8SNickeau        }
5737748cd8SNickeau
5837748cd8SNickeau    }
5937748cd8SNickeau
6037748cd8SNickeau
6137748cd8SNickeau
6237748cd8SNickeau}
63