1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
text.php
См. документацию.
1<?php
2declare(strict_types=1);
3
4namespace Bitrix\UI\Typography;
5
6use InvalidArgumentException;
7
8class Text
9{
10 public static function render(
11 string $size = 'md',
12 bool $accent = false,
13 string $tag = 'span',
14 ?string $align = null,
15 ?string $transform = null,
16 ?string $wrap = null,
17 null|string|array $className = null,
18 string $content = ''
19 ): string
20 {
21 self::validateSize($size);
22 self::validateAlign($align);
23 self::validateTransform($transform);
24 self::validateWrap($wrap);
25
26 $classes = self::buildClasses(
27 'ui-text',
28 $size,
29 $accent,
30 $align,
31 $transform,
32 $wrap,
33 $className
34 );
35
36 return self::buildTag($tag, $classes, $content);
37 }
38
39 protected static function validateSize(string $size): void
40 {
41 if (!in_array($size, ['2xl', 'xl', 'lg', 'md', 'sm', 'xs', '2xs', '3xs', '4xs']))
42 {
43 throw new InvalidArgumentException("Invalid size: {$size}");
44 }
45 }
46
47 protected static function validateAlign(?string $align): void
48 {
49 if ($align !== null && !in_array($align, ['left', 'center', 'right', 'justify']))
50 {
51 throw new InvalidArgumentException("Invalid align: {$align}");
52 }
53 }
54
55 protected static function validateTransform(?string $transform): void
56 {
57 if ($transform !== null && !in_array($transform, ['uppercase', 'lowercase', 'capitalize']))
58 {
59 throw new InvalidArgumentException("Invalid transform: {$transform}");
60 }
61 }
62
63 protected static function validateWrap(?string $wrap): void
64 {
65 if ($wrap !== null && !in_array($wrap, ['truncate', 'break-words', 'break-all']))
66 {
67 throw new InvalidArgumentException("Invalid wrap: {$wrap}");
68 }
69 }
70
71 protected static function buildClasses(
72 string $baseClass,
73 string $size,
74 bool $accent,
75 ?string $align,
76 ?string $transform,
77 ?string $wrap,
78 null|string|array $className
79 ): string
80 {
81 $classes = [
82 htmlspecialcharsbx($baseClass),
83 '--' . htmlspecialcharsbx($size)
84 ];
85
86 if ($accent)
87 {
88 $classes[] = '--accent';
89 }
90
91 if ($align !== null)
92 {
93 $classes[] = '--align-' . htmlspecialcharsbx($align);
94 }
95
96 if ($transform !== null)
97 {
98 $classes[] = '--' . htmlspecialcharsbx($transform);
99 }
100
101 if ($wrap !== null)
102 {
103 $classes[] = '--' . htmlspecialcharsbx($wrap);
104 }
105
106 if ($className !== null)
107 {
108 if (is_string($className))
109 {
110 $classes[] = htmlspecialcharsbx($className);
111 }
112 elseif (is_array($className))
113 {
114 foreach ($className as $class)
115 {
116 $classes[] = htmlspecialcharsbx((string)$class);
117 }
118 }
119 }
120
121 return implode(' ', $classes);
122 }
123
124 protected static function buildTag(string $tag, string $classes, string $content): string
125 {
126 return sprintf(
127 '<%s class="%s">%s</%s>',
128 htmlspecialcharsbx($tag),
129 $classes,
132 );
133 }
134}
static validateAlign(?string $align)
Определения text.php:47
static render(string $size='md', bool $accent=false, string $tag='span', ?string $align=null, ?string $transform=null, ?string $wrap=null, null|string|array $className=null, string $content='')
Определения text.php:10
static validateWrap(?string $wrap)
Определения text.php:63
static validateTransform(?string $transform)
Определения text.php:55
static validateSize(string $size)
Определения text.php:39
static buildClasses(string $baseClass, string $size, bool $accent, ?string $align, ?string $transform, ?string $wrap, null|string|array $className)
Определения text.php:71
static buildTag(string $tag, string $classes, string $content)
Определения text.php:124
$content
Определения commerceml.php:144
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
htmlspecialcharsbx($string, $flags=ENT_COMPAT, $doubleEncode=true)
Определения tools.php:2701
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393