From 5b165217e98b54cb1b9390be894eaa57e1eb1ba3 Mon Sep 17 00:00:00 2001 From: Sebastian Blank Date: Thu, 27 Nov 2025 11:36:38 +0100 Subject: [PATCH 1/2] Add missing Asset\Image focalPoints --- src/GraphQL/AssetType/AssetType.php | 11 +++++++++++ src/GraphQL/Resolver/AssetType.php | 21 ++++++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/src/GraphQL/AssetType/AssetType.php b/src/GraphQL/AssetType/AssetType.php index c32ed60d2..fc73f1b3e 100644 --- a/src/GraphQL/AssetType/AssetType.php +++ b/src/GraphQL/AssetType/AssetType.php @@ -71,6 +71,13 @@ public function build(&$config) 'height' => Type::int(), ], ]); + $focalPointsType = new ObjectType([ + 'name' => 'focalPoints', + 'fields' => [ + 'x' => Type::float(), + 'y' => Type::float(), + ] + ]); // see https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images#Resolution_switching_Same_size_different_resolutions $resolutionsType = Type::listOf(new ObjectType([ @@ -123,6 +130,10 @@ public function build(&$config) 'type' => Type::float(), 'resolve' => [$resolver, 'resolveDuration'], ], + 'focalPoints' => [ + 'type' => $focalPointsType, + 'resolve' => [$resolver, 'resolveFocalPoints'], + ], 'srcset' => [ 'type' => Type::listOf(new ObjectType([ 'name' => 'srcset', diff --git a/src/GraphQL/Resolver/AssetType.php b/src/GraphQL/Resolver/AssetType.php index 3f3a20b72..878fadb0f 100644 --- a/src/GraphQL/Resolver/AssetType.php +++ b/src/GraphQL/Resolver/AssetType.php @@ -376,7 +376,26 @@ public function resolveVersion($value = null, $args = [], $context = [], Resolve } /** - * @param ElementDescriptor $value + * @return array{x: float, y: float}|null + * + * @throws Exception + */ + public function resolveFocalPoints(?ElementDescriptor $value = null, array $context = []): ?array + { + $asset = $this->getAssetFromValue($value, $context); + + if (!$asset instanceof Asset\Image) { + return null; + } + + return [ + 'x' => $asset->getCustomSetting('focalPointX'), + 'y' => $asset->getCustomSetting('focalPointY'), + ]; + } + + /** + * @param ElementDescriptor|null $value * @param array $context * * @return Asset|null From 4d7b860e4e1ab85cd168f8a827f207df65260a5d Mon Sep 17 00:00:00 2001 From: blankse <998558+blankse@users.noreply.github.com> Date: Thu, 27 Nov 2025 10:37:20 +0000 Subject: [PATCH 2/2] Apply php-cs-fixer changes --- src/GraphQL/AssetType/AssetType.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GraphQL/AssetType/AssetType.php b/src/GraphQL/AssetType/AssetType.php index fc73f1b3e..f537ac62a 100644 --- a/src/GraphQL/AssetType/AssetType.php +++ b/src/GraphQL/AssetType/AssetType.php @@ -76,7 +76,7 @@ public function build(&$config) 'fields' => [ 'x' => Type::float(), 'y' => Type::float(), - ] + ], ]); // see https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images#Resolution_switching_Same_size_different_resolutions