���Root Mod By V1rus_Alfa
User / IP
:
216.73.217.78
Host / Server
:
195.214.235.115 / npln.ir
System
:
Linux damavand.pws-dns.net 5.14.0-503.35.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Apr 4 05:23:43 EDT 2025 x86_64
Command
|
Upload
|
Mass Deface
|
Create
:
/
home2
/
cutunixc
/
repositories
/
npln
/
vendor
/
mpdf
/
mpdf
/
src
/
Css
/
Viewing: BorderMerger.php
<?php namespace Mpdf\Css; use Mpdf\Exception\InvalidArgumentException; class BorderMerger { /** * @var array<int> Border dominance levels for cell borders (top/right/bottom/left) */ private $borderDominance = [ 'T' => 0, 'R' => 0, 'B' => 0, 'L' => 0, ]; /** * Merge borders into CSS properties. * * @param array $newProperties properties to merge from * @param array $cssProperties current CSS properties (passed by reference) * @return void */ public function mergeBorderProperties($newProperties, &$cssProperties) { foreach (['TOP', 'RIGHT', 'BOTTOM', 'LEFT'] as $side) { $this->mergeSideBorder($side, $newProperties, $cssProperties); } } /** * Merge border properties for a specific side. * * Helper method for mergeBorderProperties to handle merging of individual side properties * (style, width, color) into the shorthand border property. * * @param string $side Side to merge (TOP, RIGHT, BOTTOM, LEFT) * @param array $properties Source border properties * @param array $cssProperties Target CSS properties (passed by reference) * @return void */ protected function mergeSideBorder($side, $properties, &$cssProperties) { // Merges $a['BORDER-TOP-STYLE'] to $cssProperties['BORDER-TOP'] etc. $defaults = [ 'WIDTH' => '0px', 'STYLE' => 'none', 'COLOR' => '#000000' ]; $borderKey = 'BORDER-' . $side; $currentBorder = isset($cssProperties[$borderKey]) ? trim($cssProperties[$borderKey]) : ''; foreach (['STYLE', 'WIDTH', 'COLOR'] as $el) { $propertyKey = $borderKey . '-' . $el; if (!isset($properties[$propertyKey])) { continue; } $value = trim($properties[$propertyKey]); if ($currentBorder) { // Update existing border value if ($el === 'STYLE') { $cssProperties[$borderKey] = preg_replace('/(\S+)\s+(\S+)\s+(\S+)/', '\\1 ' . $value . ' \\3', $currentBorder); } elseif ($el === 'WIDTH') { $cssProperties[$borderKey] = preg_replace('/(\S+)\s+(\S+)\s+(\S+)/', $value . ' \\2 \\3', $currentBorder); } else { // COLOR $cssProperties[$borderKey] = preg_replace('/(\S+)\s+(\S+)\s+(\S+)/', '\\1 \\2 ' . $value, $currentBorder); } $currentBorder = $cssProperties[$borderKey]; // Update current border for next iteration } else { // Build new border from scratch with defaults if (!isset($borderParts)) { $borderParts = $defaults; } $borderParts[$el] = $value; $cssProperties[$borderKey] = $borderParts['WIDTH'] . ' ' . $borderParts['STYLE'] . ' ' . $borderParts['COLOR']; $currentBorder = $cssProperties[$borderKey]; } } } /** * Set border dominance level for table cells. * * Used in table rendering to determine which cell borders take * precedence when cells share borders. * * @param array $prop CSS properties containing border definitions * @param int $val Dominance level value * @return void */ public function setDominanceFromProperties($prop, $val) { if (!empty($prop['BORDER-TOP'])) { $this->setBorderDominance('T', $val); } if (!empty($prop['BORDER-RIGHT'])) { $this->setBorderDominance('R', $val); } if (!empty($prop['BORDER-BOTTOM'])) { $this->setBorderDominance('B', $val); } if (!empty($prop['BORDER-LEFT'])) { $this->setBorderDominance('L', $val); } } /** * Set border dominance level for a specific side. * * @param string $side T|R|B|L * @param int $val Dominance value * @throws InvalidArgumentException */ public function setBorderDominance($side, $val) { if (!isset($this->borderDominance[$side])) { throw new InvalidArgumentException('Invalid border dominance value:' . $side); } $this->borderDominance[$side] = (int) $val; } /** * Get border dominance level for a specific side. * * @param string $side T|R|B|L * @return int Dominance value */ public function getBorderDominance($side) { return isset($this->borderDominance[$side]) ? $this->borderDominance[$side] : 0; } }
Coded With 💗 by
0x6ick Mod By V1rus_Alfa