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,
22 * @param array<string, bool|int> $parts
25 * deleteLink?: DeleteLinkEnum,
27 * hasNavigationBar?: bool,
28 * hasBookmarkForm?: bool,
29 * hasTextButton?: bool,
33 public static function fromArray(array $parts): 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,
47 * @param array<string, bool|int> $parts
50 * deleteLink?: DeleteLinkEnum,
52 * hasNavigationBar?: bool,
53 * hasBookmarkForm?: bool,
54 * hasTextButton?: bool,
58 public function with(array $parts): 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
,