1<?php
2/**
3 * Copyright (c) 2020. ComboStrap, Inc. and its affiliates. All Rights Reserved.
4 *
5 * This source code is licensed under the GPL license found in the
6 * COPYING  file in the root directory of this source tree.
7 *
8 * @license  GPL 3 (https://www.gnu.org/licenses/gpl-3.0.en.html)
9 * @author   ComboStrap <support@combostrap.com>
10 *
11 */
12
13namespace ComboStrap;
14
15require_once(__DIR__ . '/StringUtility.php');
16
17class StyleUtility
18{
19
20    public static function getRule(array $styles, $selector)
21    {
22        $rule = $selector." {".DOKU_LF;
23        foreach ($styles as $key => $value){
24            $rule .= "    $key:$value;".DOKU_LF;
25        }
26        StringUtility::rtrim($rule,";");
27        return $rule.DOKU_LF."}".DOKU_LF;
28
29    }
30
31    /**
32     * @param array $array of property as key and value
33     * @return string a html inline style property
34     */
35    public static function createInlineValue(array $array)
36    {
37        $inline = "";
38        foreach ($array as $property => $value) {
39            if ($inline!="") {
40                $inline .= ";$property:$value";
41            } else {
42                $inline = "$property:$value";
43            }
44        }
45        return $inline;
46
47    }
48
49    /**
50     * Add class for user styling
51     * See
52     * https://combostrap.com/styling/userstyle#class
53     * @param TagAttributes $param
54     */
55    public static function addStylingClass(TagAttributes &$param)
56    {
57        if (!empty($param->getLogicalTag())) {
58            $param->addClassName($param->getLogicalTag() . "-combo");
59            if (!empty($param->getType())) {
60                $param->addClassName($param->getLogicalTag() . "-" . $param->getType() . "-combo");
61            }
62        }
63    }
64}
65