From 9ae324022c8c058d5831feab380469cf57bdb316 Mon Sep 17 00:00:00 2001 From: Jannik Zschiesche Date: Tue, 19 May 2026 13:50:24 +0200 Subject: [PATCH] Pass `fullData` in all link variants --- CHANGELOG.md | 6 ++++++ src/Field/Data/AssetLinkData.php | 1 + src/Field/Data/EmailLinkData.php | 1 + src/Field/Data/ExternalLinkData.php | 1 + src/Field/Data/RichTextAssetLinkData.php | 1 + src/Field/Data/RichTextEmailLinkData.php | 1 + src/Field/Data/RichTextExternalLinkData.php | 1 + src/Field/Data/RichTextStoryLinkData.php | 1 + src/Field/Definition/LinkField.php | 6 +++--- src/RichText/LinkMarksRichTextTransformer.php | 4 ++++ 10 files changed, 20 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b87bfa8..c2ce9916 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +5.2.4 +===== + +* (improvement) Pass `fullData` in all link variants. + + 5.2.3 ===== diff --git a/src/Field/Data/AssetLinkData.php b/src/Field/Data/AssetLinkData.php index 9bfb699f..249d5830 100644 --- a/src/Field/Data/AssetLinkData.php +++ b/src/Field/Data/AssetLinkData.php @@ -8,5 +8,6 @@ public function __construct ( public readonly string $url, public readonly ?int $width, public readonly ?int $height, + public readonly array $fullData, ) {} } diff --git a/src/Field/Data/EmailLinkData.php b/src/Field/Data/EmailLinkData.php index b5d085c5..09479b87 100644 --- a/src/Field/Data/EmailLinkData.php +++ b/src/Field/Data/EmailLinkData.php @@ -6,5 +6,6 @@ final class EmailLinkData { public function __construct ( public readonly string $email, + public readonly array $fullData, ) {} } diff --git a/src/Field/Data/ExternalLinkData.php b/src/Field/Data/ExternalLinkData.php index 8f29b74a..2a6356f1 100644 --- a/src/Field/Data/ExternalLinkData.php +++ b/src/Field/Data/ExternalLinkData.php @@ -6,5 +6,6 @@ final class ExternalLinkData { public function __construct ( public readonly string $url, + public readonly array $fullData, ) {} } diff --git a/src/Field/Data/RichTextAssetLinkData.php b/src/Field/Data/RichTextAssetLinkData.php index f0fd1f1f..8180b01d 100644 --- a/src/Field/Data/RichTextAssetLinkData.php +++ b/src/Field/Data/RichTextAssetLinkData.php @@ -10,5 +10,6 @@ public function __construct ( public readonly ?string $anchor, public readonly ?string $target, public readonly ?array $custom, + public readonly array $fullData, ) {} } diff --git a/src/Field/Data/RichTextEmailLinkData.php b/src/Field/Data/RichTextEmailLinkData.php index 6d47b885..e164a97a 100644 --- a/src/Field/Data/RichTextEmailLinkData.php +++ b/src/Field/Data/RichTextEmailLinkData.php @@ -9,5 +9,6 @@ public function __construct ( public readonly string $email, public readonly ?string $anchor, public readonly ?string $target, + public readonly array $fullData, ) {} } diff --git a/src/Field/Data/RichTextExternalLinkData.php b/src/Field/Data/RichTextExternalLinkData.php index de60961d..6373a832 100644 --- a/src/Field/Data/RichTextExternalLinkData.php +++ b/src/Field/Data/RichTextExternalLinkData.php @@ -9,5 +9,6 @@ public function __construct ( public readonly string $href, public readonly ?string $anchor, public readonly ?string $target, + public readonly array $fullData, ) {} } diff --git a/src/Field/Data/RichTextStoryLinkData.php b/src/Field/Data/RichTextStoryLinkData.php index 9dca648a..e630d0a3 100644 --- a/src/Field/Data/RichTextStoryLinkData.php +++ b/src/Field/Data/RichTextStoryLinkData.php @@ -8,5 +8,6 @@ public function __construct ( public readonly ?string $uuid, public readonly ?string $anchor, public readonly ?string $target, + public readonly array $fullData, ) {} } diff --git a/src/Field/Definition/LinkField.php b/src/Field/Definition/LinkField.php index 62ff21cb..05aa26d2 100644 --- a/src/Field/Definition/LinkField.php +++ b/src/Field/Definition/LinkField.php @@ -178,7 +178,7 @@ private function transformDataToLink ( $email = $context->normalizeOptionalString($data["email"]); return null !== $email - ? new EmailLinkData($email) + ? new EmailLinkData($email, $data) : null; } @@ -193,14 +193,14 @@ private function transformDataToLink ( [$width, $height] = $context->extractImageDimensions($url); - return new AssetLinkData($url, $width, $height); + return new AssetLinkData($url, $width, $height, $data); } // "url" === $data["linktype"] $url = $context->normalizeOptionalString($data["url"]); return null !== $url - ? new ExternalLinkData($url) + ? new ExternalLinkData($url, $data) : null; } } diff --git a/src/RichText/LinkMarksRichTextTransformer.php b/src/RichText/LinkMarksRichTextTransformer.php index 7a893cfc..27f84edb 100644 --- a/src/RichText/LinkMarksRichTextTransformer.php +++ b/src/RichText/LinkMarksRichTextTransformer.php @@ -38,6 +38,7 @@ protected function transformData (array $data) : mixed uuid: $uuid, anchor: $data["anchor"] ?? null, target: $data["target"], + fullData: $data, ); } @@ -51,6 +52,7 @@ protected function transformData (array $data) : mixed email: $email, anchor: $data["anchor"] ?? null, target: $data["target"], + fullData: $data, ) : null; } @@ -70,6 +72,7 @@ protected function transformData (array $data) : mixed anchor: $data["anchor"] ?? null, target: $data["target"], custom: $data["custom"] ?? null, + fullData: $data, ); } @@ -82,6 +85,7 @@ protected function transformData (array $data) : mixed href: $href, anchor: $data["anchor"] ?? null, target: $data["target"], + fullData: $data, ) : null; }