8 public readonly
bool $useAirDesign =
false,
9 public readonly
CounterStyle $style = CounterStyle::FILLED_ALERT,
10 public readonly
int $value = 0,
11 public readonly
int $maxValue = 99,
12 public readonly
CounterColor $color = CounterColor::PRIMARY,
13 public readonly
CounterColor $secondaryColor = CounterColor::PRIMARY,
14 public readonly
bool $border =
false,
16 public readonly
bool $isDouble =
false,
17 public readonly
bool $usePercentSymbol =
false,
18 public readonly
string $id =
'',
19 public readonly
bool $hideIfZero =
false,
25 $classes = [
'ui-counter',
'ui-counter__scope'];
27 if ($this->useAirDesign)
34 $classes[] =
'ui-counter-border';
37 if ($this->value < 10 && !$this->usePercentSymbol)
39 $classes[] =
'--one-digit';
42 if ($this->hideIfZero)
44 $classes[] =
'--hide-zero';
47 $classes[] = $this->
color->value;
48 $classes[] = $this->
size->value;
49 $classes[] = $this->
style->value;
51 $classString = implode(
' ', $classes);
52 $id = $this->
id ??
'';
54 '<div id="%s" class="%s" data-value="%s">',
59 $html .= $this->getInnerHtml();
64 '<div class="ui-counter-secondary %s"></div>',
74 private function getInnerHtml(): string
76 if ($this->useAirDesign)
79 $displayValue = $this->value;
81 if ($this->usePercentSymbol)
85 elseif ($this->value > $this->maxValue)
87 $displayValue = $this->maxValue;
92 '<div class="ui-counter-inner"><span class="ui-counter__value">%s</span><span class="ui-counter__symbol">%s</span></div>',
98 $percentSymbol = $this->usePercentSymbol ?
'%' :
'';
101 '<div class="ui-counter-inner">%s%s</div>',
107 private function getValue(): string|int
109 if ($this->usePercentSymbol)
114 if ($this->value <= $this->maxValue)
119 return $this->maxValue .
'+';
__construct(public readonly bool $useAirDesign=false, public readonly CounterStyle $style=CounterStyle::FILLED_ALERT, public readonly int $value=0, public readonly int $maxValue=99, public readonly CounterColor $color=CounterColor::PRIMARY, public readonly CounterColor $secondaryColor=CounterColor::PRIMARY, public readonly bool $border=false, public readonly CounterSize $size=CounterSize::MEDIUM, public readonly bool $isDouble=false, public readonly bool $usePercentSymbol=false, public readonly string $id='', public readonly bool $hideIfZero=false,)
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)