22 foreach (
$data[
'values'] as $classList)
25 if (is_string($classList))
27 $classListArray = explode(
' ', $classList);
29 if (is_array($classList))
31 $classListArray = $classList;
33 $this->originalClassLists[] = implode(
' ', $classListArray);
34 $classListArray = array_filter($classListArray,
static function($value) {
35 return $value !==
null && str_starts_with($value,
'fa');
37 $classListArrayValues = array_values($classListArray);
38 $this->classLists[] = $classListArrayValues;
51 $codeSuffix = substr($this->getCode(), 1);
53 foreach ($this->classLists as $index => $classList)
55 $processedClassList = is_array($classList) ? implode(
' ', $classList) : $classList;
56 $processedClassList = $codeSuffix .
' ' . $processedClassList;
58 $nodeDataArray[$index][
'classList'] = $processedClassList;
60 if (isset($this->originalClassLists[$index]))
62 $classListOriginal = $this->originalClassLists[$index];
63 $classListOriginalArray = is_string($classListOriginal)
64 ? explode(
' ', $classListOriginal)
67 $filteredClasses = array_filter($classListOriginalArray,
static function($class) use ($codeSuffix) {
68 return $class !== $codeSuffix && (!str_starts_with($class,
'fa') || $class ===
'fa');
71 if (!empty($filteredClasses))
73 $nodeDataArray[$index][
'classList'] .=
' ' . implode(
' ', $filteredClasses);
78 return $nodeDataArray;
108 $classListArray = explode(
' ', trim($classList));
110 if (
count($classListArray) !== 2)
112 return implode(
' ', [self::DEFAULT_VENDOR, self::DEFAULT_CLASS]);
115 $vendorName = $classListArray[0];
117 if (!in_array($vendorName, self::ALLOWED_VENDORS,
true))
119 $vendorName = self::DEFAULT_VENDOR;
122 $className = $classListArray[1];
124 if (!str_starts_with($className,
'fa-'))
126 $className = self::DEFAULT_CLASS;
130 if ($iconContent ===
null)
132 $iconContentFound =
false;
133 foreach (self::ALLOWED_VENDORS as $vendor)
139 if ($iconContent !==
null)
141 $vendorName = $vendor;
142 $iconContentFound =
true;
146 if ($iconContentFound ===
false)
148 $vendorName = self::DEFAULT_VENDOR;
149 $className = self::DEFAULT_CLASS;
153 return implode(
' ', [$vendorName, $className]);