From 94ea806776ddce9a2269e07d0ae3095d8422ba08 Mon Sep 17 00:00:00 2001 From: Jonas Weigert Date: Sun, 5 Nov 2023 15:06:56 -0800 Subject: [PATCH] feat(font awesome 6): implemented icon stack --- .../v3/FontAwesome/v6/IconStackController.php | 56 +++++++++++++++++++ routes/web.php | 4 +- 2 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 app/Http/Controllers/API/v3/FontAwesome/v6/IconStackController.php diff --git a/app/Http/Controllers/API/v3/FontAwesome/v6/IconStackController.php b/app/Http/Controllers/API/v3/FontAwesome/v6/IconStackController.php new file mode 100644 index 0000000..9c43080 --- /dev/null +++ b/app/Http/Controllers/API/v3/FontAwesome/v6/IconStackController.php @@ -0,0 +1,56 @@ +get('size', 100); + + // FOREGROUND ICON + $foregroundIcon = $request->get('icon') ?: null; + $foregroundIconColor = '#'.$request->get('color', '000'); + $foregroundIconMarkup = GetIconMarkup::run($foregroundIcon); + + // FOREGROUND ICON SHIFTING + $foregroundXShiftPercent = $request->get('hoffset', 0) / $markerSize * 100.00; + $foregroundYShiftPercent = $request->get('voffset', 0) / $markerSize * 100.00; + + // FOREGROUND SIZING + $foregroundIconSize = $request->get('iconsize', $markerSize / 3); + $foregroundIconHeightPercent = $foregroundIconSize / $markerSize * 100.00; + $foregroundIconYOffset = 50 - ($foregroundIconHeightPercent / 2.00) + $foregroundYShiftPercent; + $foregroundIconXOffset = 0 + $foregroundXShiftPercent; + + // BACKGROUND ICON + $backgroundIcon = $request->get('on') ?: 'fa-solid fa-circle'; + $backgroundIconColor = '#'.$request->get('oncolor', 'CCC'); + $backgroundIconMarkup = GetIconMarkup::run($backgroundIcon); + + // LABEL + $labelMarkup = GetLabelMarkup::run(request: $request, markerSize: $markerSize); + + $mapMarkerMarkup = << + + + {$backgroundIconMarkup} + + + {$foregroundIconMarkup} + + + {$labelMarkup} + + EOD; + + return response($mapMarkerMarkup)->header('Content-Type', 'image/svg+xml'); + } +} diff --git a/routes/web.php b/routes/web.php index 0236b2e..a29991a 100644 --- a/routes/web.php +++ b/routes/web.php @@ -114,11 +114,11 @@ Route::group(['prefix' => 'v3', 'namespace' => 'v3'], function () { // FONT-AWESOME Route::group(['prefix' => 'font-awesome', 'namespace' => 'FontAwesome'], function () { - // FONT-AWESOME 5 + // FONT-AWESOME 6 Route::group(['prefix' => 'v6', 'namespace' => 'v6'], function () { Route::get('icon', 'IconController@show'); // Route::get('pin', 'PinController@show'); - // Route::get('icon-stack', 'IconStackController@show'); + Route::get('icon-stack', 'IconStackController@show'); }); }); });