14 if (!is_array($this->configuration[
'header']) || !is_array($this->configuration[
'items']))
19 return $this->isValidHeaderConfiguration($this->configuration[
'header'])
20 && $this->isValidItemsConfiguration($this->configuration[
'items']);
23 private function isValidHeaderConfiguration(
array $headerConfiguration): bool
25 if (isset($headerConfiguration[
'iconClass']) && !is_string($headerConfiguration[
'iconClass']))
30 return is_array($headerConfiguration[
'top'])
31 && $this->isValidHeaderTopConfiguration($headerConfiguration[
'top'])
32 && is_array($headerConfiguration[
'info'])
33 && $this->isValidHeaderInfoConfiguration($headerConfiguration[
'info']);
36 private function isValidHeaderTopConfiguration(
array $headerTopConfiguration): bool
38 if (isset($headerTopConfiguration[
'subtitle']) && !is_string($headerTopConfiguration[
'subtitle']))
43 return is_string($headerTopConfiguration[
'title']);
46 private function isValidHeaderInfoConfiguration(
array $headerInfoConfiguration): bool
49 (isset($headerTopConfiguration[
'subtitle']) && !is_string($headerTopConfiguration[
'subtitle']))
50 || (isset($headerTopConfiguration[
'subtitleDescription'])
51 && !is_string($headerTopConfiguration[
'subtitleDescription']))
52 || (isset($headerTopConfiguration[
'moreLabel']) && !is_string($headerTopConfiguration[
'moreLabel']))
53 || (isset($headerTopConfiguration[
'moreUrl']) && !is_string($headerTopConfiguration[
'moreUrl']))
54 || (isset($headerTopConfiguration[
'roundContent'])
55 && (is_string($headerTopConfiguration[
'roundContent'])
56 || is_array($headerTopConfiguration[
'roundContent']))
57 && !$this->isValidRoundContentConfiguration($headerTopConfiguration[
'roundContent']))
63 return is_string($headerInfoConfiguration[
'title']);
66 private function isValidRoundContentConfiguration(
array|
string $roundContentConfiguration): bool
68 if (is_array($roundContentConfiguration))
70 return is_string($roundContentConfiguration[
'posterUrl'])
71 && is_array($roundContentConfiguration[
'videos'])
72 && $this->isValidVideosConfiguration($roundContentConfiguration[
'videos']);
78 private function isValidVideosConfiguration(
array $videosConfiguration): bool
80 foreach ($videosConfiguration as $videoConfiguration)
82 if (!is_string($videoConfiguration[
'url']) && !is_string($videoConfiguration[
'type']))
91 private function isValidItemsConfiguration(
array $itemsConfiguration): bool
93 foreach ($itemsConfiguration as $itemConfiguration)
95 if (!is_array($itemConfiguration) || !$this->isValidItemConfiguration($itemConfiguration))
104 private function isValidItemConfiguration(
array $itemConfiguration): bool
107 (isset($itemConfiguration[
'description']) && (!is_array($itemConfiguration[
'description'])
108 || !$this->isValidTextConfiguration($itemConfiguration[
'description'])))
109 || (isset($itemConfiguration[
'more']) && (!is_array($itemConfiguration[
'more'])
110 || !$this->isValidMoreItemConfiguration($itemConfiguration[
'more'])))
111 || (isset($itemConfiguration[
'icon']) && (!is_array($itemConfiguration[
'icon'])
112 || !$this->isValidItemIconConfiguration($itemConfiguration[
'icon'])))
113 || (isset($itemConfiguration[
'button']) && (!is_array($itemConfiguration[
'button'])
114 || !$this->isValidItemButtonConfiguration($itemConfiguration[
'button'])))
120 return is_array($itemConfiguration[
'title']) && $this->isValidTextConfiguration($itemConfiguration[
'title']);
123 private function isValidTextConfiguration(
array $textConfiguration): bool
125 if (isset($textConfiguration[
'color']) && !is_string($textConfiguration[
'color']))
130 return is_string($textConfiguration[
'text']);
133 private function isValidMoreItemConfiguration(
array $itemMoreConfiguration): bool
135 return is_array($itemMoreConfiguration[
'text'])
136 && $this->isValidTextConfiguration($itemMoreConfiguration[
'text']);
139 private function isValidItemIconConfiguration(
array $itemIconConfiguration): bool
141 if (isset($itemIconConfiguration[
'color']) && !is_string($itemIconConfiguration[
'color']))
146 return is_string($itemIconConfiguration[
'name']);
149 private function isValidItemButtonConfiguration(
array $itemButtonConfiguration): bool
152 (isset($itemButtonConfiguration[
'description'])
153 && !is_array($itemButtonConfiguration[
'description'])
154 && !$this->isValidTextConfiguration($itemButtonConfiguration[
'description']))
155 || (isset($itemButtonConfiguration[
'backgroundColor'])
156 && !is_string($itemButtonConfiguration[
'backgroundColor']))
157 || (isset($itemButtonConfiguration[
'onclick']) && !is_string($itemButtonConfiguration[
'onclick']))
158 || (isset($itemButtonConfiguration[
'url']) && !is_string($itemButtonConfiguration[
'url']))
164 return is_string($itemButtonConfiguration[
'text']);