Translated using Weblate (Portuguese)
[phpmyadmin.git] / src / Display / DisplayParts.php
blob496ea3f59c373ad8c60eb36553ea254c6a528618
1 <?php
3 declare(strict_types=1);
5 namespace PhpMyAdmin\Display;
7 /** @psalm-immutable */
8 final class DisplayParts
10 private function __construct(
11 public readonly bool $hasEditLink,
12 public readonly DeleteLinkEnum $deleteLink,
13 public readonly bool $hasSortLink,
14 public readonly bool $hasNavigationBar,
15 public readonly bool $hasBookmarkForm,
16 public readonly bool $hasTextButton,
17 public readonly bool $hasPrintLink,
18 ) {
21 /**
22 * @param array<string, bool|int> $parts
23 * @psalm-param array{
24 * hasEditLink?: bool,
25 * deleteLink?: DeleteLinkEnum,
26 * hasSortLink?: bool,
27 * hasNavigationBar?: bool,
28 * hasBookmarkForm?: bool,
29 * hasTextButton?: bool,
30 * hasPrintLink?: bool
31 * } $parts
33 public static function fromArray(array $parts): self
35 return new self(
36 $parts['hasEditLink'] ?? false,
37 $parts['deleteLink'] ?? DeleteLinkEnum::NO_DELETE,
38 $parts['hasSortLink'] ?? false,
39 $parts['hasNavigationBar'] ?? false,
40 $parts['hasBookmarkForm'] ?? false,
41 $parts['hasTextButton'] ?? false,
42 $parts['hasPrintLink'] ?? false,
46 /**
47 * @param array<string, bool|int> $parts
48 * @psalm-param array{
49 * hasEditLink?: bool,
50 * deleteLink?: DeleteLinkEnum,
51 * hasSortLink?: bool,
52 * hasNavigationBar?: bool,
53 * hasBookmarkForm?: bool,
54 * hasTextButton?: bool,
55 * hasPrintLink?: bool
56 * } $parts
58 public function with(array $parts): self
60 return new self(
61 $parts['hasEditLink'] ?? $this->hasEditLink,
62 $parts['deleteLink'] ?? $this->deleteLink,
63 $parts['hasSortLink'] ?? $this->hasSortLink,
64 $parts['hasNavigationBar'] ?? $this->hasNavigationBar,
65 $parts['hasBookmarkForm'] ?? $this->hasBookmarkForm,
66 $parts['hasTextButton'] ?? $this->hasTextButton,
67 $parts['hasPrintLink'] ?? $this->hasPrintLink,