Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
| Total | |
0.00% |
0 / 7 |
|
0.00% |
0 / 3 |
CRAP | |
0.00% |
0 / 1 |
| LengthUnit | |
0.00% |
0 / 7 |
|
0.00% |
0 / 3 |
20 | |
0.00% |
0 / 1 |
| isAbsolute | |
0.00% |
0 / 3 |
|
0.00% |
0 / 1 |
2 | |||
| isFontRelative | |
0.00% |
0 / 3 |
|
0.00% |
0 / 1 |
2 | |||
| isViewportRelative | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
6 | |||
| 1 | <?php |
| 2 | |
| 3 | declare(strict_types=1); |
| 4 | |
| 5 | namespace Phpdftk\Css\Value; |
| 6 | |
| 7 | /** |
| 8 | * CSS length units per CSS Values 4. Categorised into absolute (resolvable |
| 9 | * to the pixel without context), font-relative (need a font size to |
| 10 | * resolve), and viewport-relative (need a viewport size). |
| 11 | */ |
| 12 | enum LengthUnit: string |
| 13 | { |
| 14 | // Absolute |
| 15 | case Px = 'px'; |
| 16 | case Pt = 'pt'; |
| 17 | case Pc = 'pc'; |
| 18 | case Cm = 'cm'; |
| 19 | case Mm = 'mm'; |
| 20 | case Q = 'q'; |
| 21 | case In = 'in'; |
| 22 | |
| 23 | // Font-relative |
| 24 | case Em = 'em'; |
| 25 | case Rem = 'rem'; |
| 26 | case Ex = 'ex'; |
| 27 | case Ch = 'ch'; |
| 28 | case Lh = 'lh'; |
| 29 | case Rlh = 'rlh'; |
| 30 | |
| 31 | // Viewport-relative |
| 32 | case Vw = 'vw'; |
| 33 | case Vh = 'vh'; |
| 34 | case Vmin = 'vmin'; |
| 35 | case Vmax = 'vmax'; |
| 36 | case Vi = 'vi'; |
| 37 | case Vb = 'vb'; |
| 38 | case Svw = 'svw'; |
| 39 | case Svh = 'svh'; |
| 40 | case Lvw = 'lvw'; |
| 41 | case Lvh = 'lvh'; |
| 42 | case Dvw = 'dvw'; |
| 43 | case Dvh = 'dvh'; |
| 44 | |
| 45 | public function isAbsolute(): bool |
| 46 | { |
| 47 | return in_array($this, [ |
| 48 | self::Px, self::Pt, self::Pc, self::Cm, self::Mm, self::Q, self::In, |
| 49 | ], true); |
| 50 | } |
| 51 | |
| 52 | public function isFontRelative(): bool |
| 53 | { |
| 54 | return in_array($this, [ |
| 55 | self::Em, self::Rem, self::Ex, self::Ch, self::Lh, self::Rlh, |
| 56 | ], true); |
| 57 | } |
| 58 | |
| 59 | public function isViewportRelative(): bool |
| 60 | { |
| 61 | return !$this->isAbsolute() && !$this->isFontRelative(); |
| 62 | } |
| 63 | } |