xref: /template/strap/ComboStrap/FontSize.php (revision 37748cd8654635afbeca80942126742f0f4cc346)
1*37748cd8SNickeau<?php
2*37748cd8SNickeau
3*37748cd8SNickeau
4*37748cd8SNickeaunamespace ComboStrap;
5*37748cd8SNickeau
6*37748cd8SNickeau
7*37748cd8SNickeauclass FontSize
8*37748cd8SNickeau{
9*37748cd8SNickeau
10*37748cd8SNickeau    const FONT_SIZE = "font-size";
11*37748cd8SNickeau    const CANONICAL = self::FONT_SIZE;
12*37748cd8SNickeau
13*37748cd8SNickeau    const SCALE_TO_HEADING_NUMBER = [
14*37748cd8SNickeau            6=>1,
15*37748cd8SNickeau            5=>2,
16*37748cd8SNickeau            4=>3,
17*37748cd8SNickeau            3=>4,
18*37748cd8SNickeau            2=>5,
19*37748cd8SNickeau            1=>6
20*37748cd8SNickeau        ];
21*37748cd8SNickeau    const HEADING_NUMBER = [
22*37748cd8SNickeau        "h1"=>1,
23*37748cd8SNickeau        "h2"=>2,
24*37748cd8SNickeau        "h3"=>3,
25*37748cd8SNickeau        "h4"=>4,
26*37748cd8SNickeau        "h5"=>5,
27*37748cd8SNickeau        "h6"=>6
28*37748cd8SNickeau    ];
29*37748cd8SNickeau
30*37748cd8SNickeau    /**
31*37748cd8SNickeau     *
32*37748cd8SNickeau     * https://getbootstrap.com/docs/5.0/utilities/text/#font-size
33*37748cd8SNickeau     * @param TagAttributes $tagAttributes
34*37748cd8SNickeau     */
35*37748cd8SNickeau    public static function processFontSizeAttribute(TagAttributes &$tagAttributes)
36*37748cd8SNickeau    {
37*37748cd8SNickeau
38*37748cd8SNickeau        if ($tagAttributes->hasComponentAttribute(self::FONT_SIZE)) {
39*37748cd8SNickeau            $value = $tagAttributes->getValueAndRemove(self::FONT_SIZE);
40*37748cd8SNickeau            if(is_numeric($value)){
41*37748cd8SNickeau                if (key_exists($value, self::SCALE_TO_HEADING_NUMBER)){
42*37748cd8SNickeau                    $headingValue = self::SCALE_TO_HEADING_NUMBER[$value];
43*37748cd8SNickeau                    $tagAttributes->addClassName("fs-$headingValue");
44*37748cd8SNickeau                } else {
45*37748cd8SNickeau                    LogUtility::msg("The font-size scale value ($value) is not between 1 and 6.",LogUtility::LVL_MSG_ERROR,self::CANONICAL);
46*37748cd8SNickeau                }
47*37748cd8SNickeau
48*37748cd8SNickeau            } else {
49*37748cd8SNickeau                if (key_exists($value, self::HEADING_NUMBER)){
50*37748cd8SNickeau                    $headingValue = self::HEADING_NUMBER[$value];
51*37748cd8SNickeau                    $tagAttributes->addClassName("fs-$headingValue");
52*37748cd8SNickeau                } else {
53*37748cd8SNickeau                    $tagAttributes->addStyleDeclaration("font-size", $value);
54*37748cd8SNickeau                }
55*37748cd8SNickeau            }
56*37748cd8SNickeau        }
57*37748cd8SNickeau
58*37748cd8SNickeau    }
59*37748cd8SNickeau
60*37748cd8SNickeau
61*37748cd8SNickeau
62*37748cd8SNickeau}
63