diff --git a/.github/workflows/npm-audit.yml b/.github/workflows/npm-audit.yml index 3f695bcf2..7d86086a7 100644 --- a/.github/workflows/npm-audit.yml +++ b/.github/workflows/npm-audit.yml @@ -7,63 +7,4 @@ on: jobs: npm_audit: - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Run npm audit - id: npm_audit - run: | - find public/modules/custom public/themes/custom -type f -name ".nvmrc" -exec sh -c ' - dir=$(dirname "$1") - node_version=$(cat "$1") - echo "Using Node.js version $node_version in $dir" - cd "$dir" - export NVM_DIR="$HOME/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" - nvm install $node_version - nvm use $node_version - set +e - npm audit --package-lock-only --loglevel=error; - # The npm audit command will exit with a 0 exit code if no vulnerabilities were found. - if [ $? -gt 0 ]; then - npm audit fix --package-lock-only --loglevel=error; - if [ $? -gt 0 ]; then - echo "BC_BREAK=:exclamation: NPM Audit fix could not fix all vulnerabilities. Fix them manually by running \`npm audit fix --force\` and test the functionalities thoroughly as there might be breaking changes. :exclamation:" >> $GITHUB_ENV; - fi; - echo "CREATE_PR=true" >> $GITHUB_OUTPUT; - fi; - set -e - ' sh {} \; - - - - name: Create Pull Request - if: steps.npm_audit.outputs.CREATE_PR == 'true' - uses: peter-evans/create-pull-request@v4 - with: - committer: GitHub - author: actions-bot - commit-message: Updated node modules based on npm audit fix - title: Automatic npm audit fix - labels: auto-update - body: | - # Npm audit - - ${{ env.BC_BREAK }} - - ## How to install - - * Update the HDBT theme - * `git fetch --all` - * `git checkout automation/npm-audit` - * `git pull origin automation/npm-audit` - * In the custom module or custom theme folder, run `nvm use && npm i && npm run build` - - ## How to test - Run `npm audit` - - * [ ] Check that the `npm audit` prints `found 0 vulnerabilities` - * [ ] Check that the changes for distributed files are sensible - - branch: automation/npm-audit + uses: city-of-helsinki/drupal-gh-actions/.github/workflows/npm-audit.yml@main diff --git a/.platform/schema b/.platform/schema index 19c7bdba7..8e2afd342 100644 --- a/.platform/schema +++ b/.platform/schema @@ -1 +1 @@ -16 \ No newline at end of file +17 \ No newline at end of file diff --git a/composer.lock b/composer.lock index e6c87942a..411fd5935 100644 --- a/composer.lock +++ b/composer.lock @@ -1548,26 +1548,29 @@ }, { "name": "doctrine/deprecations", - "version": "1.1.4", + "version": "1.1.5", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9" + "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/31610dbb31faa98e6b5447b62340826f54fbc4e9", - "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38", + "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, + "conflict": { + "phpunit/phpunit": "<=7.5 || >=13" + }, "require-dev": { - "doctrine/coding-standard": "^9 || ^12", - "phpstan/phpstan": "1.4.10 || 2.0.3", + "doctrine/coding-standard": "^9 || ^12 || ^13", + "phpstan/phpstan": "1.4.10 || 2.1.11", "phpstan/phpstan-phpunit": "^1.0 || ^2", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12", "psr/log": "^1 || ^2 || ^3" }, "suggest": { @@ -1587,9 +1590,9 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.4" + "source": "https://github.com/doctrine/deprecations/tree/1.1.5" }, - "time": "2024-12-07T21:18:45+00:00" + "time": "2025-04-07T20:06:18+00:00" }, { "name": "doctrine/lexer", @@ -2253,16 +2256,16 @@ }, { "name": "drupal/core", - "version": "10.4.5", + "version": "10.4.6", "source": { "type": "git", "url": "https://github.com/drupal/core.git", - "reference": "5247dbaa65b42b601058555f4a8b2bd541f5611f" + "reference": "c04823253d7d35c731b7b6fa1a1fddb671e984eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core/zipball/5247dbaa65b42b601058555f4a8b2bd541f5611f", - "reference": "5247dbaa65b42b601058555f4a8b2bd541f5611f", + "url": "https://api.github.com/repos/drupal/core/zipball/c04823253d7d35c731b7b6fa1a1fddb671e984eb", + "reference": "c04823253d7d35c731b7b6fa1a1fddb671e984eb", "shasum": "" }, "require": { @@ -2411,13 +2414,13 @@ ], "description": "Drupal is an open source content management platform powering millions of websites and applications.", "support": { - "source": "https://github.com/drupal/core/tree/10.4.5" + "source": "https://github.com/drupal/core/tree/10.4.6" }, - "time": "2025-03-19T15:53:40+00:00" + "time": "2025-04-02T21:06:44+00:00" }, { "name": "drupal/core-composer-scaffold", - "version": "10.4.5", + "version": "10.4.6", "source": { "type": "git", "url": "https://github.com/drupal/core-composer-scaffold.git", @@ -2461,7 +2464,7 @@ "drupal" ], "support": { - "source": "https://github.com/drupal/core-composer-scaffold/tree/10.4.5" + "source": "https://github.com/drupal/core-composer-scaffold/tree/10.4.6" }, "time": "2024-08-22T14:31:30+00:00" }, @@ -2897,17 +2900,17 @@ }, { "name": "drupal/editoria11y", - "version": "2.2.4", + "version": "2.2.6", "source": { "type": "git", "url": "https://git.drupalcode.org/project/editoria11y.git", - "reference": "2.2.4" + "reference": "2.2.6" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/editoria11y-2.2.4.zip", - "reference": "2.2.4", - "shasum": "6342f0614083f90088c48f8f74a231a495bf8ebe" + "url": "https://ftp.drupal.org/files/projects/editoria11y-2.2.6.zip", + "reference": "2.2.6", + "shasum": "3d62855efcd533a45f9609460c67ad5540c0a462" }, "require": { "drupal/core": "^9 || ^10 || ^11" @@ -2918,8 +2921,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "2.2.4", - "datestamp": "1737647999", + "version": "2.2.6", + "datestamp": "1743882955", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -3335,17 +3338,17 @@ }, { "name": "drupal/entity_usage", - "version": "2.0.0-beta23", + "version": "2.0.0-beta24", "source": { "type": "git", "url": "https://git.drupalcode.org/project/entity_usage.git", - "reference": "8.x-2.0-beta23" + "reference": "8.x-2.0-beta24" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/entity_usage-8.x-2.0-beta23.zip", - "reference": "8.x-2.0-beta23", - "shasum": "9fe00d1b976b153420dce6b0a7a40c6cbfecc7d4" + "url": "https://ftp.drupal.org/files/projects/entity_usage-8.x-2.0-beta24.zip", + "reference": "8.x-2.0-beta24", + "shasum": "063cf50d2b5cf7c99bb86a818c03fcfef2082151" }, "require": { "drupal/core": "^10.2 || ^11" @@ -3365,8 +3368,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-2.0-beta23", - "datestamp": "1741698539", + "version": "8.x-2.0-beta24", + "datestamp": "1743745774", "security-coverage": { "status": "not-covered", "message": "Beta releases are not covered by Drupal security advisories." @@ -3457,10 +3460,6 @@ { "name": "See other contributors", "homepage": "https://www.drupal.org/node/1538032/committers" - }, - { - "name": "svenryen", - "homepage": "https://www.drupal.org/user/667244" } ], "description": "This module aims at making the website compliant with the new EU cookie regulation.", @@ -3570,17 +3569,17 @@ }, { "name": "drupal/externalauth", - "version": "2.0.7", + "version": "2.0.8", "source": { "type": "git", "url": "https://git.drupalcode.org/project/externalauth.git", - "reference": "2.0.7" + "reference": "2.0.8" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/externalauth-2.0.7.zip", - "reference": "2.0.7", - "shasum": "93c2b15f21172f931bb81cc365c828c12be377c3" + "url": "https://ftp.drupal.org/files/projects/externalauth-2.0.8.zip", + "reference": "2.0.8", + "shasum": "e9c1b41d6b59d0674b2756361ec729b046759387" }, "require": { "drupal/core": "^9.5 || ^10 || ^11" @@ -3588,8 +3587,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "2.0.7", - "datestamp": "1735897906", + "version": "2.0.8", + "datestamp": "1743603496", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -4072,16 +4071,16 @@ }, { "name": "drupal/hdbt", - "version": "6.9.45", + "version": "6.10.11", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-hdbt.git", - "reference": "eb0236b02d822aaa5f6f7e04de0c96eda8fc0d8c" + "reference": "8fab91ff7f8e37a01b423a7288e5f0509e958996" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/eb0236b02d822aaa5f6f7e04de0c96eda8fc0d8c", - "reference": "eb0236b02d822aaa5f6f7e04de0c96eda8fc0d8c", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/8fab91ff7f8e37a01b423a7288e5f0509e958996", + "reference": "8fab91ff7f8e37a01b423a7288e5f0509e958996", "shasum": "" }, "require": { @@ -4100,10 +4099,10 @@ "Drupal" ], "support": { - "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.9.45", + "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.10.11", "issues": "https://github.com/City-of-Helsinki/drupal-hdbt/issues" }, - "time": "2025-03-25T08:36:47+00:00" + "time": "2025-04-08T09:20:34+00:00" }, { "name": "drupal/hdbt_admin", @@ -4193,16 +4192,16 @@ }, { "name": "drupal/helfi_api_base", - "version": "2.7.25", + "version": "2.7.27", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base.git", - "reference": "68216dc06e1177d188b0eca4c63a34b451cd78a2" + "reference": "5a8a1e82f0fc27678a6d2150882abf1776b6ba61" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-api-base/zipball/68216dc06e1177d188b0eca4c63a34b451cd78a2", - "reference": "68216dc06e1177d188b0eca4c63a34b451cd78a2", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-api-base/zipball/5a8a1e82f0fc27678a6d2150882abf1776b6ba61", + "reference": "5a8a1e82f0fc27678a6d2150882abf1776b6ba61", "shasum": "" }, "require": { @@ -4234,10 +4233,10 @@ ], "description": "Helfi - API Base", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/tree/2.7.25", + "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/tree/2.7.27", "issues": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/issues" }, - "time": "2025-03-10T13:25:06+00:00" + "time": "2025-04-08T08:14:54+00:00" }, { "name": "drupal/helfi_azure_fs", @@ -4291,12 +4290,12 @@ "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-tools.git", - "reference": "50c4e5464ba09a29a22077e5a254c6f10e5ee316" + "reference": "c609e05ad4a39ada2bdbc395a190774246f883f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-tools/zipball/50c4e5464ba09a29a22077e5a254c6f10e5ee316", - "reference": "50c4e5464ba09a29a22077e5a254c6f10e5ee316", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-tools/zipball/c609e05ad4a39ada2bdbc395a190774246f883f1", + "reference": "c609e05ad4a39ada2bdbc395a190774246f883f1", "shasum": "" }, "require": { @@ -4371,7 +4370,7 @@ "source": "https://github.com/City-of-Helsinki/drupal-tools/tree/main", "issues": "https://github.com/City-of-Helsinki/drupal-tools/issues" }, - "time": "2025-02-28T14:02:38+00:00" + "time": "2025-03-28T12:50:24+00:00" }, { "name": "drupal/helfi_navigation", @@ -4409,16 +4408,16 @@ }, { "name": "drupal/helfi_platform_config", - "version": "4.12.31", + "version": "4.12.36", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config.git", - "reference": "86e38359eaa69d4b1e8ea117e5887f8971394a2d" + "reference": "8aefd1e3a5c799e4ae1bccad7bfd45466e17c9ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/86e38359eaa69d4b1e8ea117e5887f8971394a2d", - "reference": "86e38359eaa69d4b1e8ea117e5887f8971394a2d", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/8aefd1e3a5c799e4ae1bccad7bfd45466e17c9ad", + "reference": "8aefd1e3a5c799e4ae1bccad7bfd45466e17c9ad", "shasum": "" }, "require": { @@ -4452,6 +4451,7 @@ "drupal/imagemagick": "^3.4", "drupal/jquery_ui": "^1.6", "drupal/jquery_ui_draggable": "^2.0", + "drupal/jsonapi_extras": "^3.26", "drupal/linkit": "^6.0", "drupal/media_entity_file_replace": "^1.0", "drupal/menu_block_current_language": "^2.0", @@ -4539,10 +4539,10 @@ ], "description": "HELfi platform config", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.12.31", + "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.12.36", "issues": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/issues" }, - "time": "2025-03-24T15:10:49+00:00" + "time": "2025-04-08T10:08:51+00:00" }, { "name": "drupal/helfi_proxy", @@ -4634,16 +4634,16 @@ }, { "name": "drupal/helfi_tunnistamo", - "version": "3.0.11", + "version": "3.0.13", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-module-helfi-tunnistamo.git", - "reference": "eafb88ab4393b3251d49a284ffcfe46e6e3c0e34" + "reference": "06eefa6d594f14a9678ac785eaa9a74effd53c3f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-tunnistamo/zipball/eafb88ab4393b3251d49a284ffcfe46e6e3c0e34", - "reference": "eafb88ab4393b3251d49a284ffcfe46e6e3c0e34", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-tunnistamo/zipball/06eefa6d594f14a9678ac785eaa9a74effd53c3f", + "reference": "06eefa6d594f14a9678ac785eaa9a74effd53c3f", "shasum": "" }, "require": { @@ -4660,10 +4660,10 @@ ], "description": "Tunnistamo integration", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-tunnistamo/tree/3.0.11", + "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-tunnistamo/tree/3.0.13", "issues": "https://github.com/City-of-Helsinki/drupal-module-helfi-tunnistamo/issues" }, - "time": "2025-02-21T11:22:23+00:00" + "time": "2025-04-07T10:38:32+00:00" }, { "name": "drupal/image_style_quality", @@ -5057,6 +5057,65 @@ "source": "https://git.drupalcode.org/project/js_cookie" } }, + { + "name": "drupal/jsonapi_extras", + "version": "3.26.0", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/jsonapi_extras.git", + "reference": "8.x-3.26" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/jsonapi_extras-8.x-3.26.zip", + "reference": "8.x-3.26", + "shasum": "344fe5580f27ef4527ddb3e2eb8ef73bdf34bd82" + }, + "require": { + "drupal/core": "^9.5 || ^10 || ^11", + "e0ipso/shaper": "^1", + "php": ">=8.1" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "8.x-3.26", + "datestamp": "1727787963", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "Mateu Aguiló Bosch", + "homepage": "https://www.drupal.org/user/3366066", + "email": "mateu.aguilo.bosch@gmail.com" + }, + { + "name": "Martin Kolar", + "homepage": "https://www.drupal.org/u/mkolar" + }, + { + "name": "Karel Majzlik", + "homepage": "https://www.drupal.org/u/karlos007" + }, + { + "name": "Björn Brala", + "homepage": "https://www.drupal.org/u/bbrala" + } + ], + "description": "JSON:API Extras provides a means to override and provide limited configurations to the default zero-configuration implementation provided by the JSON:API module.", + "homepage": "https://www.drupal.org/project/jsonapi_extras", + "support": { + "source": "https://git.drupalcode.org/project/jsonapi_extras" + } + }, { "name": "drupal/key", "version": "1.19.0", @@ -6636,17 +6695,17 @@ }, { "name": "drupal/siteimprove", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://git.drupalcode.org/project/siteimprove.git", - "reference": "2.0.3" + "reference": "2.0.4" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/siteimprove-2.0.3.zip", - "reference": "2.0.3", - "shasum": "d5b46baf312161d294cccac3bb5767dea3e1630d" + "url": "https://ftp.drupal.org/files/projects/siteimprove-2.0.4.zip", + "reference": "2.0.4", + "shasum": "c659b768910a4cc53ffb0054d1ea5f21f7a64065" }, "require": { "drupal/core": "^9.2 || ^10", @@ -6658,8 +6717,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "2.0.3", - "datestamp": "1738928590", + "version": "2.0.4", + "datestamp": "1742904189", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -7723,6 +7782,52 @@ ], "time": "2024-08-02T11:57:29+00:00" }, + { + "name": "e0ipso/shaper", + "version": "1.2.7", + "source": { + "type": "git", + "url": "https://github.com/e0ipso/shaper.git", + "reference": "1d9e726c98d3168d30c1180cd836d13267744fb7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/e0ipso/shaper/zipball/1d9e726c98d3168d30c1180cd836d13267744fb7", + "reference": "1d9e726c98d3168d30c1180cd836d13267744fb7", + "shasum": "" + }, + "require": { + "justinrainbow/json-schema": "^5.2 || ^6.3" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.4", + "phpunit/phpcov": "^8.2", + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Shaper\\": "src", + "Shaper\\Tests\\": "tests/src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0" + ], + "authors": [ + { + "name": "Mateu Aguiló Bosch", + "email": "mateu.aguilo.bosch@gmail.com" + } + ], + "description": "Lightweight library to handle in and out transformations in PHP.", + "support": { + "issues": "https://github.com/e0ipso/shaper/issues", + "source": "https://github.com/e0ipso/shaper/tree/1.2.7" + }, + "time": "2025-04-04T08:14:01+00:00" + }, { "name": "easyrdf/easyrdf", "version": "1.1.1", @@ -7867,16 +7972,16 @@ }, { "name": "elastic/transport", - "version": "v8.10.0", + "version": "v8.11.0", "source": { "type": "git", "url": "https://github.com/elastic/elastic-transport-php.git", - "reference": "8be37d679637545e50b1cea9f8ee903888783021" + "reference": "1d476af5dc0b74530d59b67d5dd96ee39768d5a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/elastic/elastic-transport-php/zipball/8be37d679637545e50b1cea9f8ee903888783021", - "reference": "8be37d679637545e50b1cea9f8ee903888783021", + "url": "https://api.github.com/repos/elastic/elastic-transport-php/zipball/1d476af5dc0b74530d59b67d5dd96ee39768d5a4", + "reference": "1d476af5dc0b74530d59b67d5dd96ee39768d5a4", "shasum": "" }, "require": { @@ -7894,7 +7999,7 @@ "nyholm/psr7": "^1.5", "open-telemetry/sdk": "^1.0", "php-http/mock-client": "^1.5", - "phpstan/phpstan": "^1.4", + "phpstan/phpstan": "^2.1", "phpunit/phpunit": "^9.5", "symfony/http-client": "^5.4" }, @@ -7919,22 +8024,22 @@ ], "support": { "issues": "https://github.com/elastic/elastic-transport-php/issues", - "source": "https://github.com/elastic/elastic-transport-php/tree/v8.10.0" + "source": "https://github.com/elastic/elastic-transport-php/tree/v8.11.0" }, - "time": "2024-08-14T08:55:07+00:00" + "time": "2025-04-02T08:20:33+00:00" }, { "name": "elasticsearch/elasticsearch", - "version": "v8.17.0", + "version": "v8.17.1", "source": { "type": "git", "url": "https://github.com/elastic/elasticsearch-php.git", - "reference": "6cd0fe6a95fdb7198a2795624927b094813b3d8b" + "reference": "10af1f4ff92eb870a193948984a10bddb42873c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/elastic/elasticsearch-php/zipball/6cd0fe6a95fdb7198a2795624927b094813b3d8b", - "reference": "6cd0fe6a95fdb7198a2795624927b094813b3d8b", + "url": "https://api.github.com/repos/elastic/elasticsearch-php/zipball/10af1f4ff92eb870a193948984a10bddb42873c0", + "reference": "10af1f4ff92eb870a193948984a10bddb42873c0", "shasum": "" }, "require": { @@ -7952,7 +8057,7 @@ "nyholm/psr7": "^1.5", "php-http/message-factory": "^1.0", "php-http/mock-client": "^1.5", - "phpstan/phpstan": "^1.4", + "phpstan/phpstan": "^2.1", "phpunit/phpunit": "^9.5", "psr/http-factory": "^1.0", "symfony/finder": "~4.0", @@ -7977,9 +8082,9 @@ ], "support": { "issues": "https://github.com/elastic/elasticsearch-php/issues", - "source": "https://github.com/elastic/elasticsearch-php/tree/v8.17.0" + "source": "https://github.com/elastic/elasticsearch-php/tree/v8.17.1" }, - "time": "2024-12-18T11:00:27+00:00" + "time": "2025-03-28T15:46:10+00:00" }, { "name": "ezyang/htmlpurifier", @@ -8387,16 +8492,16 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.9.2", + "version": "7.9.3", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "d281ed313b989f213357e3be1a179f02196ac99b" + "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d281ed313b989f213357e3be1a179f02196ac99b", - "reference": "d281ed313b989f213357e3be1a179f02196ac99b", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7b2f29fe81dc4da0ca0ea7d42107a0845946ea77", + "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77", "shasum": "" }, "require": { @@ -8493,7 +8598,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.9.2" + "source": "https://github.com/guzzle/guzzle/tree/7.9.3" }, "funding": [ { @@ -8509,20 +8614,20 @@ "type": "tidelift" } ], - "time": "2024-07-24T11:22:20+00:00" + "time": "2025-03-27T13:37:11+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.0.4", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455" + "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/f9c436286ab2892c7db7be8c8da4ef61ccf7b455", - "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455", + "url": "https://api.github.com/repos/guzzle/promises/zipball/7c69f28996b0a6920945dd20b3857e499d9ca96c", + "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c", "shasum": "" }, "require": { @@ -8576,7 +8681,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.4" + "source": "https://github.com/guzzle/promises/tree/2.2.0" }, "funding": [ { @@ -8592,20 +8697,20 @@ "type": "tidelift" } ], - "time": "2024-10-17T10:06:22+00:00" + "time": "2025-03-27T13:27:01+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.7.0", + "version": "2.7.1", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201" + "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201", - "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/c2270caaabe631b3b44c85f99e5a04bbb8060d16", + "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16", "shasum": "" }, "require": { @@ -8692,7 +8797,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.7.0" + "source": "https://github.com/guzzle/psr7/tree/2.7.1" }, "funding": [ { @@ -8708,7 +8813,7 @@ "type": "tidelift" } ], - "time": "2024-07-18T11:15:46+00:00" + "time": "2025-03-27T12:30:47+00:00" }, { "name": "jean85/pretty-package-versions", @@ -8770,6 +8875,71 @@ }, "time": "2025-03-19T14:43:43+00:00" }, + { + "name": "justinrainbow/json-schema", + "version": "5.3.0", + "source": { + "type": "git", + "url": "https://github.com/jsonrainbow/json-schema.git", + "reference": "feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8", + "reference": "feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", + "json-schema/json-schema-test-suite": "1.2.0", + "phpunit/phpunit": "^4.8.35" + }, + "bin": [ + "bin/validate-json" + ], + "type": "library", + "autoload": { + "psr-4": { + "JsonSchema\\": "src/JsonSchema/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bruno Prieto Reis", + "email": "bruno.p.reis@gmail.com" + }, + { + "name": "Justin Rainbow", + "email": "justin.rainbow@gmail.com" + }, + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + }, + { + "name": "Robert Schönthal", + "email": "seroscho@googlemail.com" + } + ], + "description": "A library to validate a json schema.", + "homepage": "https://github.com/justinrainbow/json-schema", + "keywords": [ + "json", + "schema" + ], + "support": { + "issues": "https://github.com/jsonrainbow/json-schema/issues", + "source": "https://github.com/jsonrainbow/json-schema/tree/5.3.0" + }, + "time": "2024-07-06T21:00:26+00:00" + }, { "name": "league/container", "version": "4.2.4", @@ -11393,16 +11563,16 @@ }, { "name": "symfony/console", - "version": "v6.4.17", + "version": "v6.4.20", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "799445db3f15768ecc382ac5699e6da0520a0a04" + "reference": "2e4af9c952617cc3f9559ff706aee420a8464c36" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/799445db3f15768ecc382ac5699e6da0520a0a04", - "reference": "799445db3f15768ecc382ac5699e6da0520a0a04", + "url": "https://api.github.com/repos/symfony/console/zipball/2e4af9c952617cc3f9559ff706aee420a8464c36", + "reference": "2e4af9c952617cc3f9559ff706aee420a8464c36", "shasum": "" }, "require": { @@ -11467,7 +11637,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.17" + "source": "https://github.com/symfony/console/tree/v6.4.20" }, "funding": [ { @@ -11483,20 +11653,20 @@ "type": "tidelift" } ], - "time": "2024-12-07T12:07:30+00:00" + "time": "2025-03-03T17:16:38+00:00" }, { "name": "symfony/dependency-injection", - "version": "v6.4.19", + "version": "v6.4.20", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "b343c3b2f1539fe41331657b37d5c96c1d1ea842" + "reference": "c49796a9184a532843e78e50df9e55708b92543a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/b343c3b2f1539fe41331657b37d5c96c1d1ea842", - "reference": "b343c3b2f1539fe41331657b37d5c96c1d1ea842", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/c49796a9184a532843e78e50df9e55708b92543a", + "reference": "c49796a9184a532843e78e50df9e55708b92543a", "shasum": "" }, "require": { @@ -11504,7 +11674,7 @@ "psr/container": "^1.1|^2.0", "symfony/deprecation-contracts": "^2.5|^3", "symfony/service-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.2.10|^7.0" + "symfony/var-exporter": "^6.4.20|^7.2.5" }, "conflict": { "ext-psr": "<1.1|>=2", @@ -11548,7 +11718,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.4.19" + "source": "https://github.com/symfony/dependency-injection/tree/v6.4.20" }, "funding": [ { @@ -11564,7 +11734,7 @@ "type": "tidelift" } ], - "time": "2025-02-20T10:02:49+00:00" + "time": "2025-03-13T09:55:08+00:00" }, { "name": "symfony/deprecation-contracts", @@ -11635,16 +11805,16 @@ }, { "name": "symfony/error-handler", - "version": "v6.4.19", + "version": "v6.4.20", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "3d4e55cd2b8f1979a65eba9ab749d6466c316f71" + "reference": "aa3bcf4f7674719df078e61cc8062e5b7f752031" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/3d4e55cd2b8f1979a65eba9ab749d6466c316f71", - "reference": "3d4e55cd2b8f1979a65eba9ab749d6466c316f71", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/aa3bcf4f7674719df078e61cc8062e5b7f752031", + "reference": "aa3bcf4f7674719df078e61cc8062e5b7f752031", "shasum": "" }, "require": { @@ -11690,7 +11860,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.4.19" + "source": "https://github.com/symfony/error-handler/tree/v6.4.20" }, "funding": [ { @@ -11706,7 +11876,7 @@ "type": "tidelift" } ], - "time": "2025-02-02T20:16:33+00:00" + "time": "2025-03-01T13:00:38+00:00" }, { "name": "symfony/event-dispatcher", @@ -12073,16 +12243,16 @@ }, { "name": "symfony/http-kernel", - "version": "v6.4.19", + "version": "v6.4.20", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "88f2c9f7feff86bb7b9105c5151bc2c1404cd64c" + "reference": "6be6db31bc74693ce5516e1fd5e5ff1171005e37" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/88f2c9f7feff86bb7b9105c5151bc2c1404cd64c", - "reference": "88f2c9f7feff86bb7b9105c5151bc2c1404cd64c", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6be6db31bc74693ce5516e1fd5e5ff1171005e37", + "reference": "6be6db31bc74693ce5516e1fd5e5ff1171005e37", "shasum": "" }, "require": { @@ -12167,7 +12337,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.19" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.20" }, "funding": [ { @@ -12183,7 +12353,7 @@ "type": "tidelift" } ], - "time": "2025-02-26T10:51:37+00:00" + "time": "2025-03-28T13:27:10+00:00" }, { "name": "symfony/mailer", @@ -13272,16 +13442,16 @@ }, { "name": "symfony/process", - "version": "v6.4.19", + "version": "v6.4.20", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "7a1c12e87b08ec9c97abdd188c9b3f5a40e37fc3" + "reference": "e2a61c16af36c9a07e5c9906498b73e091949a20" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/7a1c12e87b08ec9c97abdd188c9b3f5a40e37fc3", - "reference": "7a1c12e87b08ec9c97abdd188c9b3f5a40e37fc3", + "url": "https://api.github.com/repos/symfony/process/zipball/e2a61c16af36c9a07e5c9906498b73e091949a20", + "reference": "e2a61c16af36c9a07e5c9906498b73e091949a20", "shasum": "" }, "require": { @@ -13313,7 +13483,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.4.19" + "source": "https://github.com/symfony/process/tree/v6.4.20" }, "funding": [ { @@ -13329,7 +13499,7 @@ "type": "tidelift" } ], - "time": "2025-02-04T13:35:48+00:00" + "time": "2025-03-10T17:11:00+00:00" }, { "name": "symfony/psr-http-message-bridge", @@ -13844,16 +14014,16 @@ }, { "name": "symfony/validator", - "version": "v6.4.19", + "version": "v6.4.20", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "f3e853dffe7c5db675686b8216d6d890dad8c885" + "reference": "9314555aceb8d8ce8abda81e1e47e439258d9309" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/f3e853dffe7c5db675686b8216d6d890dad8c885", - "reference": "f3e853dffe7c5db675686b8216d6d890dad8c885", + "url": "https://api.github.com/repos/symfony/validator/zipball/9314555aceb8d8ce8abda81e1e47e439258d9309", + "reference": "9314555aceb8d8ce8abda81e1e47e439258d9309", "shasum": "" }, "require": { @@ -13921,7 +14091,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v6.4.19" + "source": "https://github.com/symfony/validator/tree/v6.4.20" }, "funding": [ { @@ -13937,7 +14107,7 @@ "type": "tidelift" } ], - "time": "2025-02-19T13:12:02+00:00" + "time": "2025-03-14T14:22:58+00:00" }, { "name": "symfony/var-dumper", @@ -14026,16 +14196,16 @@ }, { "name": "symfony/var-exporter", - "version": "v7.2.4", + "version": "v7.2.5", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "4ede73aa7a73d81506002d2caadbbdad1ef5b69a" + "reference": "c37b301818bd7288715d40de634f05781b686ace" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/4ede73aa7a73d81506002d2caadbbdad1ef5b69a", - "reference": "4ede73aa7a73d81506002d2caadbbdad1ef5b69a", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/c37b301818bd7288715d40de634f05781b686ace", + "reference": "c37b301818bd7288715d40de634f05781b686ace", "shasum": "" }, "require": { @@ -14082,7 +14252,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v7.2.4" + "source": "https://github.com/symfony/var-exporter/tree/v7.2.5" }, "funding": [ { @@ -14098,20 +14268,20 @@ "type": "tidelift" } ], - "time": "2025-02-13T10:27:23+00:00" + "time": "2025-03-13T12:21:46+00:00" }, { "name": "symfony/yaml", - "version": "v6.4.18", + "version": "v6.4.20", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "bf598c9d9bb4a22f495a4e26e4c4fce2f8ecefc5" + "reference": "28ee818fce4a73ac1474346b94e4b966f665c53f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/bf598c9d9bb4a22f495a4e26e4c4fce2f8ecefc5", - "reference": "bf598c9d9bb4a22f495a4e26e4c4fce2f8ecefc5", + "url": "https://api.github.com/repos/symfony/yaml/zipball/28ee818fce4a73ac1474346b94e4b966f665c53f", + "reference": "28ee818fce4a73ac1474346b94e4b966f665c53f", "shasum": "" }, "require": { @@ -14154,7 +14324,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.4.18" + "source": "https://github.com/symfony/yaml/tree/v6.4.20" }, "funding": [ { @@ -14170,7 +14340,7 @@ "type": "tidelift" } ], - "time": "2025-01-07T09:44:41+00:00" + "time": "2025-02-27T20:15:30+00:00" }, { "name": "t4web/composer-lock-parser", @@ -15781,71 +15951,6 @@ }, "time": "2024-04-03T08:15:54+00:00" }, - { - "name": "justinrainbow/json-schema", - "version": "5.3.0", - "source": { - "type": "git", - "url": "https://github.com/jsonrainbow/json-schema.git", - "reference": "feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8", - "reference": "feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", - "json-schema/json-schema-test-suite": "1.2.0", - "phpunit/phpunit": "^4.8.35" - }, - "bin": [ - "bin/validate-json" - ], - "type": "library", - "autoload": { - "psr-4": { - "JsonSchema\\": "src/JsonSchema/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bruno Prieto Reis", - "email": "bruno.p.reis@gmail.com" - }, - { - "name": "Justin Rainbow", - "email": "justin.rainbow@gmail.com" - }, - { - "name": "Igor Wiedler", - "email": "igor@wiedler.ch" - }, - { - "name": "Robert Schönthal", - "email": "seroscho@googlemail.com" - } - ], - "description": "A library to validate a json schema.", - "homepage": "https://github.com/justinrainbow/json-schema", - "keywords": [ - "json", - "schema" - ], - "support": { - "issues": "https://github.com/jsonrainbow/json-schema/issues", - "source": "https://github.com/jsonrainbow/json-schema/tree/5.3.0" - }, - "time": "2024-07-06T21:00:26+00:00" - }, { "name": "lullabot/mink-selenium2-driver", "version": "v1.7.4", diff --git a/conf/cmi/core.entity_form_display.paragraph.contact_card.default.yml b/conf/cmi/core.entity_form_display.paragraph.contact_card.default.yml index 5b5c6db10..4605001a5 100644 --- a/conf/cmi/core.entity_form_display.paragraph.contact_card.default.yml +++ b/conf/cmi/core.entity_form_display.paragraph.contact_card.default.yml @@ -6,21 +6,21 @@ dependencies: - field.field.paragraph.contact_card.field_contact_description - field.field.paragraph.contact_card.field_contact_image - field.field.paragraph.contact_card.field_contact_image_photographer + - field.field.paragraph.contact_card.field_contact_image_reference - field.field.paragraph.contact_card.field_contact_name - field.field.paragraph.contact_card.field_contact_social_media - field.field.paragraph.contact_card.field_contact_social_media_link - field.field.paragraph.contact_card.field_contact_title - field.field.paragraph.contact_card.field_email - field.field.paragraph.contact_card.field_phone_number - - image.style.thumbnail - paragraphs.paragraphs_type.contact_card module: - - focal_point - link + - media_library - paragraphs - telephone _core: - default_config_hash: YDSv_lQM9OkDPrZy_gI0k4dUlKswEjQX8YV-v17cgQ8 + default_config_hash: 9GMOG_QIuNk11PXYGJk8symwR8u84uGQZlRFHhgclTk id: paragraph.contact_card.default targetEntityType: paragraph bundle: contact_card @@ -28,33 +28,22 @@ mode: default content: field_contact_description: type: string_textarea - weight: 6 + weight: 5 region: content settings: rows: 5 placeholder: '' third_party_settings: { } - field_contact_image: - type: image_focal_point + field_contact_image_reference: + type: media_library_widget weight: 0 region: content settings: - progress_indicator: throbber - preview_image_style: thumbnail - preview_link: true - offsets: '50,50' - third_party_settings: { } - field_contact_image_photographer: - type: string_textfield - weight: 1 - region: content - settings: - size: 60 - placeholder: '' + media_types: { } third_party_settings: { } field_contact_name: type: string_textfield - weight: 2 + weight: 1 region: content settings: size: 60 @@ -62,7 +51,7 @@ content: third_party_settings: { } field_contact_social_media: type: paragraphs - weight: 7 + weight: 6 region: content settings: title: Paragraph @@ -80,7 +69,7 @@ content: third_party_settings: { } field_contact_social_media_link: type: link_default - weight: 8 + weight: 7 region: content settings: placeholder_url: '' @@ -88,7 +77,7 @@ content: third_party_settings: { } field_contact_title: type: string_textfield - weight: 3 + weight: 2 region: content settings: size: 60 @@ -96,7 +85,7 @@ content: third_party_settings: { } field_email: type: email_default - weight: 4 + weight: 3 region: content settings: placeholder: '' @@ -104,11 +93,13 @@ content: third_party_settings: { } field_phone_number: type: telephone_default - weight: 5 + weight: 4 region: content settings: placeholder: '' third_party_settings: { } hidden: created: true + field_contact_image: true + field_contact_image_photographer: true status: true diff --git a/conf/cmi/core.entity_view_display.media.image.square_thumbnail.yml b/conf/cmi/core.entity_view_display.media.image.square_thumbnail.yml new file mode 100644 index 000000000..c24a56c4f --- /dev/null +++ b/conf/cmi/core.entity_view_display.media.image.square_thumbnail.yml @@ -0,0 +1,38 @@ +uuid: 0d32e090-076b-4aea-9319-7e5b572b993f +langcode: en +status: true +dependencies: + config: + - core.entity_view_mode.media.square_thumbnail + - field.field.media.image.field_media_image + - field.field.media.image.field_photographer + - media.type.image + - responsive_image.styles.square_thumbnail + module: + - responsive_image +_core: + default_config_hash: RsZm5zJoAdk_YebwlWNiBP7_oW9gYi6X-scuL71o2hU +id: media.image.square_thumbnail +targetEntityType: media +bundle: image +mode: square_thumbnail +content: + field_media_image: + type: responsive_image + label: hidden + settings: + responsive_image_style: square_thumbnail + image_link: '' + image_loading: + attribute: eager + third_party_settings: { } + weight: 0 + region: content +hidden: + created: true + field_photographer: true + langcode: true + name: true + search_api_excerpt: true + thumbnail: true + uid: true diff --git a/conf/cmi/core.entity_view_display.paragraph.contact_card.default.yml b/conf/cmi/core.entity_view_display.paragraph.contact_card.default.yml index e398f285c..ce2b9a9de 100644 --- a/conf/cmi/core.entity_view_display.paragraph.contact_card.default.yml +++ b/conf/cmi/core.entity_view_display.paragraph.contact_card.default.yml @@ -6,6 +6,7 @@ dependencies: - field.field.paragraph.contact_card.field_contact_description - field.field.paragraph.contact_card.field_contact_image - field.field.paragraph.contact_card.field_contact_image_photographer + - field.field.paragraph.contact_card.field_contact_image_reference - field.field.paragraph.contact_card.field_contact_name - field.field.paragraph.contact_card.field_contact_social_media - field.field.paragraph.contact_card.field_contact_social_media_link @@ -13,7 +14,7 @@ dependencies: - field.field.paragraph.contact_card.field_email - field.field.paragraph.contact_card.field_phone_number - paragraphs.paragraphs_type.contact_card - - responsive_image.styles.contact_card + - responsive_image.styles.square_thumbnail module: - entity_reference_revisions - helfi_paragraphs_contact_card_listing @@ -21,7 +22,7 @@ dependencies: - responsive_image - telephone _core: - default_config_hash: g7mshBIsAGSEoG6m0KX2GLEN58sv4MnWAEXk68dClQ8 + default_config_hash: o3L_0VvwTNVLSBxb2Oqb8lmF6DAt6aBFZsubJMhB4Ro id: paragraph.contact_card.default targetEntityType: paragraph bundle: contact_card @@ -38,7 +39,7 @@ content: type: responsive_image label: hidden settings: - responsive_image_style: contact_card + responsive_image_style: square_thumbnail image_link: '' image_loading: attribute: eager @@ -53,6 +54,15 @@ content: third_party_settings: { } weight: 7 region: content + field_contact_image_reference: + type: entity_reference_entity_view + label: hidden + settings: + view_mode: square_thumbnail + link: false + third_party_settings: { } + weight: 8 + region: content field_contact_name: type: string label: hidden diff --git a/conf/cmi/core.entity_view_mode.media.square_thumbnail.yml b/conf/cmi/core.entity_view_mode.media.square_thumbnail.yml new file mode 100644 index 000000000..a9b26b00a --- /dev/null +++ b/conf/cmi/core.entity_view_mode.media.square_thumbnail.yml @@ -0,0 +1,13 @@ +uuid: 2230c2a0-8d52-4106-b17f-b0d571ef449e +langcode: en +status: true +dependencies: + module: + - media +_core: + default_config_hash: rPsJ5Ec4QDJMHnhUR-cbm0ob-Czf3pezHYMRqvfsxhs +id: media.square_thumbnail +label: 'Square thumbnail' +description: '' +targetEntityType: media +cache: true diff --git a/conf/cmi/field.field.paragraph.contact_card.field_contact_image.yml b/conf/cmi/field.field.paragraph.contact_card.field_contact_image.yml index 108522510..0ec241d7d 100644 --- a/conf/cmi/field.field.paragraph.contact_card.field_contact_image.yml +++ b/conf/cmi/field.field.paragraph.contact_card.field_contact_image.yml @@ -8,12 +8,12 @@ dependencies: module: - image _core: - default_config_hash: OwkKC_jXvLDFDw1_kbW7VDJmW4Y5tKbQlyx1NsWhczQ + default_config_hash: z7o3DViDIVEV8koDILWo4zFKtBOfeJjRD8Tp7D3rdLQ id: paragraph.contact_card.field_contact_image field_name: field_contact_image entity_type: paragraph bundle: contact_card -label: Image +label: 'DEPRECATED Image' description: 'Use a square image for the best result. Portrait and landscape images will be cropped to a square, the focal point can be selected with the image upload.' required: false translatable: false diff --git a/conf/cmi/field.field.paragraph.contact_card.field_contact_image_reference.yml b/conf/cmi/field.field.paragraph.contact_card.field_contact_image_reference.yml new file mode 100644 index 000000000..55868f0bc --- /dev/null +++ b/conf/cmi/field.field.paragraph.contact_card.field_contact_image_reference.yml @@ -0,0 +1,31 @@ +uuid: e3388822-df3f-48b3-91ff-22a054752779 +langcode: en +status: true +dependencies: + config: + - field.storage.paragraph.field_contact_image_reference + - media.type.image + - paragraphs.paragraphs_type.contact_card +_core: + default_config_hash: EEQkH4zH78mSzLWclQGhspMbw-MkvrSnB0fV0FdUZeM +id: paragraph.contact_card.field_contact_image_reference +field_name: field_contact_image_reference +entity_type: paragraph +bundle: contact_card +label: 'Contact image' +description: 'Use a square image for the best result. Portrait and landscape images will be cropped to a square, the focal point can be selected with the image upload.' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: + handler: 'default:media' + handler_settings: + target_bundles: + image: image + sort: + field: _none + direction: ASC + auto_create: false + auto_create_bundle: '' +field_type: entity_reference diff --git a/conf/cmi/field.storage.paragraph.field_contact_image_reference.yml b/conf/cmi/field.storage.paragraph.field_contact_image_reference.yml new file mode 100644 index 000000000..be8a9a05c --- /dev/null +++ b/conf/cmi/field.storage.paragraph.field_contact_image_reference.yml @@ -0,0 +1,22 @@ +uuid: bf481f31-99eb-479a-8ef0-5a15b06d4ae0 +langcode: en +status: true +dependencies: + module: + - media + - paragraphs +_core: + default_config_hash: VXOPtoCLD607Y8tIEd6kwhF0UA-P394wPNsafhJJ5wc +id: paragraph.field_contact_image_reference +field_name: field_contact_image_reference +entity_type: paragraph +type: entity_reference +settings: + target_type: media +module: core +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/conf/cmi/field.storage.paragraph.field_email.yml b/conf/cmi/field.storage.paragraph.field_email.yml index 583576a1b..92b53ec6a 100644 --- a/conf/cmi/field.storage.paragraph.field_email.yml +++ b/conf/cmi/field.storage.paragraph.field_email.yml @@ -5,7 +5,7 @@ dependencies: module: - paragraphs _core: - default_config_hash: 76XUNX8CNC1fRG7IdYnWrq_0iMEDAaTYC7d-ruvQS9w + default_config_hash: OrsbTLUgyO-Kgr1QPjJ_8KPoLkOnhAtzXOtKANOOZ0A id: paragraph.field_email field_name: field_email entity_type: paragraph @@ -13,7 +13,7 @@ type: email settings: { } module: core locked: false -cardinality: 1 +cardinality: -1 translatable: true indexes: { } persist_with_no_fields: false diff --git a/conf/cmi/language/fi/core.base_field_override.node.district.status.yml b/conf/cmi/language/fi/core.base_field_override.node.district.status.yml new file mode 100644 index 000000000..d085ebd1c --- /dev/null +++ b/conf/cmi/language/fi/core.base_field_override.node.district.status.yml @@ -0,0 +1 @@ +label: Julkaistu diff --git a/conf/cmi/language/fi/core.base_field_override.node.project.status.yml b/conf/cmi/language/fi/core.base_field_override.node.project.status.yml new file mode 100644 index 000000000..d085ebd1c --- /dev/null +++ b/conf/cmi/language/fi/core.base_field_override.node.project.status.yml @@ -0,0 +1 @@ +label: Julkaistu diff --git a/conf/cmi/language/fi/field.field.node.project.field_lead_in.yml b/conf/cmi/language/fi/field.field.node.project.field_lead_in.yml new file mode 100644 index 000000000..4da5634a2 --- /dev/null +++ b/conf/cmi/language/fi/field.field.node.project.field_lead_in.yml @@ -0,0 +1 @@ +label: Ingressi diff --git a/conf/cmi/language/fi/field.field.node.project.field_project_phase.yml b/conf/cmi/language/fi/field.field.node.project.field_project_phase.yml new file mode 100644 index 000000000..c08f8d08d --- /dev/null +++ b/conf/cmi/language/fi/field.field.node.project.field_project_phase.yml @@ -0,0 +1 @@ +label: 'Projektin vaihe' diff --git a/conf/cmi/language/fi/field.field.paragraph.contact_card.field_contact_image_reference.yml b/conf/cmi/language/fi/field.field.paragraph.contact_card.field_contact_image_reference.yml new file mode 100644 index 000000000..4c1abb8aa --- /dev/null +++ b/conf/cmi/language/fi/field.field.paragraph.contact_card.field_contact_image_reference.yml @@ -0,0 +1,2 @@ +label: Kuva +description: 'Vaaka- ja pystykuvat rajataan neliöiksi. Rajatun kuvan keskipisteen voi valita kuvan latauksen yhteydessä. ' diff --git a/conf/cmi/language/sv/field.field.paragraph.contact_card.field_contact_image_reference.yml b/conf/cmi/language/sv/field.field.paragraph.contact_card.field_contact_image_reference.yml new file mode 100644 index 000000000..b7c0a4502 --- /dev/null +++ b/conf/cmi/language/sv/field.field.paragraph.contact_card.field_contact_image_reference.yml @@ -0,0 +1 @@ +label: Bild diff --git a/conf/cmi/responsive_image.styles.square_thumbnail.yml b/conf/cmi/responsive_image.styles.square_thumbnail.yml new file mode 100644 index 000000000..8a3e57071 --- /dev/null +++ b/conf/cmi/responsive_image.styles.square_thumbnail.yml @@ -0,0 +1,26 @@ +uuid: cc481cd1-3694-4473-9722-d143aa720531 +langcode: en +status: true +dependencies: + config: + - image.style.1_250w_250h + - image.style.1_500w_500h_LQ + module: + - helfi_image_styles +_core: + default_config_hash: VuYuUIx2tfZff1D0We2JgZQtqyDoiSj7C6gjfLDaJZQ +id: square_thumbnail +label: 'Square thumbnail' +image_style_mappings: + - + image_mapping_type: image_style + image_mapping: 1_250w_250h + breakpoint_id: helfi_image_styles.xs + multiplier: 1x + - + image_mapping_type: image_style + image_mapping: 1_500w_500h_LQ + breakpoint_id: helfi_image_styles.xs + multiplier: 2x +breakpoint_group: helfi_image_styles +fallback_image_style: 1_250w_250h diff --git a/conf/cmi/user.role.anonymous.yml b/conf/cmi/user.role.anonymous.yml index 78ea20dcb..11bfbba1c 100644 --- a/conf/cmi/user.role.anonymous.yml +++ b/conf/cmi/user.role.anonymous.yml @@ -20,6 +20,7 @@ weight: 0 is_admin: false permissions: - 'access content' + - 'access debug api' - 'restful get helfi_global_mobile_menu' - 'send javascript errors to sentry' - 'view helfi_announcements external entity' diff --git a/docker/openshift/Dockerfile b/docker/openshift/Dockerfile index 401de35ec..f05d4a982 100644 --- a/docker/openshift/Dockerfile +++ b/docker/openshift/Dockerfile @@ -14,6 +14,3 @@ COPY docker/openshift/deploy /deploy RUN chmod +x /entrypoints/* /deploy/* /crons/* COPY docker/openshift/init.sh / - -# Copy nginx overrides. -COPY docker/openshift/custom.locations /etc/nginx/conf.d/custom.locations diff --git a/docker/openshift/custom.locations b/docker/openshift/custom.locations deleted file mode 100644 index ce6470cc1..000000000 --- a/docker/openshift/custom.locations +++ /dev/null @@ -1,8 +0,0 @@ -location ~* \.(css|cur|js|jpe?g|gif|htc|ico|png|xml|otf|ttf|eot|woff|woff2|svg|mp4|svgz|ogg|ogv|pdf|pptx?|zip|tgz|gz|rar|bz2|doc|xls|exe|tar|mid|midi|wav|bmp|rtf|txt|map)$ { - add_header Access-Control-Allow-Origin "*"; - try_files $uri @rewrite; - expires 1y; - add_header Pragma "cache"; - add_header Cache-Control "public"; - log_not_found off; -} diff --git a/docker/openshift/preflight/preflight.php b/docker/openshift/preflight/preflight.php index 35219bb80..44cc97da6 100644 --- a/docker/openshift/preflight/preflight.php +++ b/docker/openshift/preflight/preflight.php @@ -67,6 +67,14 @@ function environment_variable_isset(array $items) : bool { 'all.preflight.php', ]; +$private_files_folder = getenv('DRUPAL_FILES_PRIVATE'); + +// Make sure private files folder is outside webroot unless explicitly +// configured so. +if (!$private_files_folder && is_dir('/var/www/html/public/sites/default/files/private')) { + preflight_failed('sites/default/files/private folder found.'); +} + // Allow additional custom checks to be added. // Create a 'all.preflight.php' file for checks that need to be run // on all environments and '{env}.preflight.php' for environment-specific diff --git a/public/modules/custom/helfi_kymp_plans/assets/js/list-of-plans.js b/public/modules/custom/helfi_kymp_plans/assets/js/list-of-plans.js deleted file mode 100644 index 8f8ed24d7..000000000 --- a/public/modules/custom/helfi_kymp_plans/assets/js/list-of-plans.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; - -(function ($, Drupal, drupalSettings) { - Drupal.behaviors.list_of_plans = { - attach: function attach(context, settings) { - // Show only 8 items at first. - let initialPlanCount = $('.list-of-plans__plan').length; - - let numberOfItems = 8; - let showMoreItems = 8; - - if (initialPlanCount > numberOfItems) { - $('.list-of-plans__plan').hide(); - $('.list-of-plans__plan:lt(' + numberOfItems + ')').show(); - } - - // Show more items when clicking the button. - $('.list-of-plans__pager-button').click(function(e) { - e.preventDefault(); - - numberOfItems = numberOfItems + showMoreItems; - $('.list-of-plans__plan:lt(' + numberOfItems + ')').show(); - - // Scroll to the bottom of the list. - $('html').animate({ - scrollTop: $('.list-of-plans__list')[0].scrollHeight - }, 1000); - - // Hide the button when all items are visible. - if (numberOfItems >= initialPlanCount) { - $('.list-of-plans__pager-button').hide(); - } - }); - } - }; -})(jQuery, Drupal, drupalSettings); diff --git a/public/modules/custom/helfi_kymp_plans/helfi_kymp_plans.libraries.yml b/public/modules/custom/helfi_kymp_plans/helfi_kymp_plans.libraries.yml deleted file mode 100644 index 6499c8296..000000000 --- a/public/modules/custom/helfi_kymp_plans/helfi_kymp_plans.libraries.yml +++ /dev/null @@ -1,8 +0,0 @@ -list_of_plans: - version: 1.x - js: - assets/js/list-of-plans.js: {} - dependencies: - - core/drupalSettings - - core/jquery - - core/drupal diff --git a/public/modules/custom/helfi_kymp_plans/helfi_kymp_plans.module b/public/modules/custom/helfi_kymp_plans/helfi_kymp_plans.module index 3e2d7d389..72724b734 100644 --- a/public/modules/custom/helfi_kymp_plans/helfi_kymp_plans.module +++ b/public/modules/custom/helfi_kymp_plans/helfi_kymp_plans.module @@ -7,6 +7,8 @@ declare(strict_types=1); +use Drupal\Core\Url; + /** * Implements hook_theme(). */ @@ -31,7 +33,7 @@ function helfi_kymp_plans_preprocess_paragraph__list_of_plans(&$variables) { $variables['title'] = $title; $variables['description'] = $description; - $service = Drupal::service('helfi_kymp_plans'); + $service = \Drupal::service('helfi_kymp_plans'); // Check if the list already exists in cache. if ($cache = \Drupal::cache()->get('helfi_kymp_plans')) { @@ -44,12 +46,24 @@ function helfi_kymp_plans_preprocess_paragraph__list_of_plans(&$variables) { \Drupal::cache()->set('helfi_kymp_plans', $plans, \Drupal::time()->getRequestTime() + 3600, ['helfi_kymp_plans']); } - $variables['plans'] = $plans; - $variables['plan_count'] = count($plans); - $variables['rss_feed_url'] = $service->getFeedUrl(); + // Add pagination. + $items_per_page = 10; + $total_items = count($plans); + + \Drupal::service('pager.manager')->createPager($total_items, $items_per_page); + $current_page = \Drupal::service('pager.parameters')->findPage(); + + // Slice the plans array to only show the current page. + $paged_plans = array_slice($plans, $current_page * $items_per_page, $items_per_page); - // Attach the JavaScript library. - $variables['#attached']['library'][] = 'helfi_kymp_plans/list_of_plans'; + $variables['plans'] = $paged_plans; + $variables['plan_count'] = $total_items; + $variables['rss_feed_url'] = Url::fromUri($service->getFeedUrl()); + + // Attach the pager to the theme. + $variables['pager'] = [ + '#type' => 'pager', + ]; // Adding a cache tag which is used by a cron script to periodically clear // the cache related to the list of plans. diff --git a/public/modules/custom/helfi_kymp_plans/translations/fi.po b/public/modules/custom/helfi_kymp_plans/translations/fi.po index 1cf70e9c7..4e4a39e84 100644 --- a/public/modules/custom/helfi_kymp_plans/translations/fi.po +++ b/public/modules/custom/helfi_kymp_plans/translations/fi.po @@ -2,20 +2,16 @@ msgid "" msgstr "" msgctxt "List of plans number of comments" -msgid "@plan_count plans now available for comments" -msgstr "@plan_count suunnitelmaa nyt kommentoitavana" +msgid "plans now available for comments" +msgstr "suunnitelmaa nyt kommentoitavana" msgctxt "List of plans no plans description" msgid "There are new plans coming up, so please check back later." msgstr "Uusia sunnitelmia on tulossa, joten vierailethan myöhemmin uudestaan." msgctxt "List of plans publish date" -msgid "Published:" -msgstr "Julkaistu:" - -msgctxt "List of plans show more button" -msgid "Show more plans" -msgstr "Näytä lisää suunnitelmia" +msgid "Published" +msgstr "Julkaistu" msgctxt "List of plans RSS link" msgid "Subscribe to the plans' RSS feed" diff --git a/public/modules/custom/helfi_kymp_plans/translations/sv.po b/public/modules/custom/helfi_kymp_plans/translations/sv.po index 407efc101..a03d64fea 100644 --- a/public/modules/custom/helfi_kymp_plans/translations/sv.po +++ b/public/modules/custom/helfi_kymp_plans/translations/sv.po @@ -2,20 +2,16 @@ msgid "" msgstr "" msgctxt "List of plans number of comments" -msgid "@plan_count plans now available for comments" -msgstr "För närvarande kan @plan_count planer kommenteras" +msgid "plans now available for comments" +msgstr "planer kommenteras" msgctxt "List of plans no plans description" msgid "There are new plans coming up, so please check back later." msgstr "Nya planer är på väg, så du är välkommen tillbaka senare." msgctxt "List of plans publish date" -msgid "Published:" -msgstr "Publicerad:" - -msgctxt "List of plans show more button" -msgid "Show more plans" -msgstr "Visa fler planer" +msgid "Published" +msgstr "Publicerad" msgctxt "List of plans RSS link" msgid "Subscribe to the plans\' RSS feed" diff --git a/public/sites/default/settings.php b/public/sites/default/settings.php index b68b80aa9..534a220ba 100755 --- a/public/sites/default/settings.php +++ b/public/sites/default/settings.php @@ -110,7 +110,7 @@ function drupal_get_env(string|array $variables) : mixed { $settings['config_sync_directory'] = '../conf/cmi'; $settings['file_public_path'] = getenv('DRUPAL_FILES_PUBLIC') ?: 'sites/default/files'; -$settings['file_private_path'] = getenv('DRUPAL_FILES_PRIVATE'); +$settings['file_private_path'] = getenv('DRUPAL_FILES_PRIVATE') ?: '/private_files'; $settings['file_temp_path'] = getenv('DRUPAL_TMP_PATH') ?: '/tmp'; if ($reverse_proxy_address = getenv('DRUPAL_REVERSE_PROXY_ADDRESS')) { diff --git a/public/themes/custom/hdbt_subtheme/dist/css/styles.min.css b/public/themes/custom/hdbt_subtheme/dist/css/styles.min.css index 445763e82..ac089b0d4 100644 --- a/public/themes/custom/hdbt_subtheme/dist/css/styles.min.css +++ b/public/themes/custom/hdbt_subtheme/dist/css/styles.min.css @@ -1 +1 @@ -.district-teaser{background-color:#fff;margin-bottom:16px;position:relative}@media(min-width: 768px){.district-teaser{display:flex}}.district-teaser .hel-icon--arrow-right,.district-teaser .hel-icon--link-external{height:32px;width:32px;transition:transform .2s linear}@media(min-width: 768px){.district-teaser .hel-icon--arrow-right,.district-teaser .hel-icon--link-external{bottom:32px;position:absolute;right:24px}}@media(prefers-reduced-motion){.district-teaser .hel-icon--arrow-right,.district-teaser .hel-icon--link-external{transition:none}}.district-teaser:hover .hel-icon--arrow-right{transform:translateX(4px)}.district-teaser__data{display:flex;flex-direction:column;padding:32px 24px 32px 24px}@media(min-width: 768px){.district-teaser__data{padding:24px 32px 24px 32px;width:60%}}.district-teaser__data .content-tags{margin-bottom:8px}.district-teaser__data .content-tags__tags__tag:last-child{margin-bottom:0}.district-teaser__data .metadata__item{margin-bottom:16px;margin-top:0;width:100%}@media(min-width: 768px){.district-teaser__data .metadata__item>div{display:flex;flex-wrap:wrap}}.district-teaser__data .metadata__item .metadata__item-label::after{content:":";margin-right:4px}.district-teaser__image{min-width:220px;overflow:hidden}@media(min-width: 768px){.district-teaser__image{max-width:380px;width:40%}}.district-teaser__image img{display:block;height:auto;width:100%}.district-teaser__image .image-placeholder{height:100%;padding-bottom:aspect-ratio-padding(1.5)}.district-teaser__link{display:block;margin-bottom:16px;text-decoration:none}.district-teaser__link::after{content:"";inset:0;position:absolute}.district-teaser__link h3{--line-height: 1.5;font-size:1.25rem;font-weight:500;line-height:var(--line-height);display:inline-block;margin-top:0}@media(min-width: 992px){.district-teaser__link h3{--line-height: 1.25;font-size:1.5rem;font-weight:500}}.district__content-container{display:flex;flex-direction:column-reverse;margin:auto;margin-top:64px;max-width:1296px;padding-left:16px;padding-right:16px}@media(min-width: 992px){.district__content-container{flex-direction:row}}@media(min-width: 768px){.district__content-container{max-width:1328px}}@media(min-width: 768px){.district__content-container{padding-left:32px;padding-right:32px}}.district__content{margin-bottom:32px;width:100%}@media(min-width: 992px){.district__content{margin-bottom:0;margin-bottom:initial}}@media(min-width: 992px){.district__content.has-sidebar{margin-left:64px}}.district__content.has-sidebar .table-of-contents{margin:0}.district__content .table-of-contents,.district__content .component{padding:0 !important}@media(min-width: 992px){.district__sidebar-content{width:340px}}.node--type-district .hero__arrow{display:none}.node--type-district .metadata__item-content .label:not(:last-of-type)::after{content:", "}.page-type--district .lower-content .component--list-of-links:last-of-type{background-color:#f2f2f2;margin-bottom:calc((50px + 64px)*-1);padding-bottom:96px;padding-top:96px}.page-type--project .project__image-container,.page-type--project .content-tags,.page-type--project .project__metadata-wrapper{max-width:1296px;padding-left:16px;padding-right:16px;margin-left:auto;margin-right:auto}@media(min-width: 768px){.page-type--project .project__image-container,.page-type--project .content-tags,.page-type--project .project__metadata-wrapper{max-width:1328px}}@media(min-width: 768px){.page-type--project .project__image-container,.page-type--project .content-tags,.page-type--project .project__metadata-wrapper{padding-left:32px;padding-right:32px}}.page-type--project .project__image-container picture{display:block;max-width:860px}.page-type--project .project__image-container picture img{display:block;height:auto;max-width:100%;overflow:hidden;box-shadow:inset 0 0 0 1px #e6e6e6}.node--type-project .content-tags{margin-top:32px}.node--type-project .lead-in{margin-bottom:32px}.node--type-project .lower-content .component--list-of-links{background-color:#ccc}.node--type-project .metadata-container{max-width:860px}.node--type-project .metadata__item-content .label:not(:last-of-type)::after,.node--type-project .metadata__item--schedule--plan-schedule *:last-child::after,.node--type-project .card__meta__content .label:not(:last-of-type)::after,.node--type-project .card__meta__content .label--schedule:not(:last-of-type) *:last-child::after{content:", "}.node--type-project .project-metadata__schedule{display:block}.project-teaser .content-tags{margin-top:0}.component--journey-planner .media-oembed-content{border:1px solid #ccc;border-radius:10px;height:252px;width:100%}@media(min-width: 768px){.component--journey-planner .media-oembed-content{width:500px}}.component--list-of-plans{padding-left:16px;padding-right:16px;background-color:#f2f2f2}@media(min-width: 768px){.component--list-of-plans{padding-left:32px;padding-right:32px}}.layout-main-wrapper>*:last-child .component--list-of-plans:last-child{margin-bottom:-115px;padding-bottom:55px}.list-of-plans__count-container{--line-height: 1.5;font-size:1.25rem;font-weight:400;line-height:var(--line-height)}@media(min-width: 992px){.list-of-plans__count-container{--line-height: 1.5;font-size:1.375rem;font-weight:400}}.list-of-plans__count-container .list-of-plans__count{font-weight:700}.list-of-plans__list{margin-top:24px}.list-of-plans__subscribe-link{--line-height: 1.5555555556;font-size:1.125rem;font-weight:400;line-height:var(--line-height);margin-top:32px}.list-of-plans__pager{margin-top:32px}@media(min-width: 768px){.list-of-plans__pager{margin-top:64px;text-align:center}}.list-of-plans__pager-button{width:100%}@media(min-width: 768px){.list-of-plans__pager-button{width:auto}}.plan{background-color:#fff;margin-top:8px;padding-left:24px;padding-top:24px;padding-right:24px;padding-bottom:calc(24px + 28px + 8px);position:relative}@media(min-width: 992px){.plan{padding-left:32px;padding-top:32px;padding-right:32px;padding-bottom:60px}}.plan:first-child{margin-top:0}.plan__title{--line-height: 1.5;font-size:1.25rem;font-weight:500;line-height:var(--line-height);margin-top:0}@media(min-width: 992px){.plan__title{--line-height: 1.25;font-size:1.5rem;font-weight:500}}.plan__link::before{content:"";display:block;inset:0;position:absolute}.plan__published{--line-height: 1.5;font-size:1rem;font-weight:400;line-height:var(--line-height);color:#595959;margin-top:24px}.component--project-list{padding-left:16px;padding-right:16px;background-color:#f2f2f2}@media(min-width: 768px){.component--project-list{padding-left:32px;padding-right:32px}}.project-list_count{--line-height: 1.5;font-size:1.25rem;font-weight:500;line-height:var(--line-height)}@media(min-width: 992px){.project-list_count{--line-height: 1.25;font-size:1.5rem;font-weight:500}}.project-list_count-text{--line-height: 1.5555555556;font-size:1.125rem;font-weight:400;line-height:var(--line-height)}.project-list__count-container{margin-bottom:24px}.views--project-list .views-row:last-child .project-teaser{margin-bottom:0}.project-list__buttons{display:flex;flex-direction:column}@media(min-width: 768px){.project-list__buttons{flex-direction:row}}.project-list__buttons .hds-pagination-container{width:100%}.project-list__list .project-teaser .content-tags{display:none} +.district-teaser{background-color:#fff;margin-bottom:16px;position:relative}@media(min-width: 768px){.district-teaser{display:flex}}.district-teaser .hel-icon--arrow-right,.district-teaser .hel-icon--link-external{height:32px;width:32px;transition:transform .2s linear}@media(min-width: 768px){.district-teaser .hel-icon--arrow-right,.district-teaser .hel-icon--link-external{bottom:32px;position:absolute;right:24px}}@media(prefers-reduced-motion){.district-teaser .hel-icon--arrow-right,.district-teaser .hel-icon--link-external{transition:none}}.district-teaser:hover .hel-icon--arrow-right{transform:translateX(4px)}.district-teaser__data{display:flex;flex-direction:column;padding:32px 24px 32px 24px}@media(min-width: 768px){.district-teaser__data{padding:24px 32px 24px 32px;width:60%}}.district-teaser__data .content-tags{margin-bottom:8px}.district-teaser__data .content-tags__tags__tag:last-child{margin-bottom:0}.district-teaser__data .metadata__item{margin-bottom:16px;margin-top:0;width:100%}@media(min-width: 768px){.district-teaser__data .metadata__item>div{display:flex;flex-wrap:wrap}}.district-teaser__data .metadata__item .metadata__item-label::after{content:":";margin-right:4px}.district-teaser__image{min-width:220px;overflow:hidden}@media(min-width: 768px){.district-teaser__image{max-width:380px;width:40%}}.district-teaser__image img{display:block;height:auto;width:100%}.district-teaser__image .image-placeholder{height:100%;padding-bottom:aspect-ratio-padding(1.5)}.district-teaser__link{display:block;margin-bottom:16px;-webkit-text-decoration:none;text-decoration:none}.district-teaser__link::after{content:"";inset:0;position:absolute}.district-teaser__link h3{--line-height: 1.5;font-size:1.25rem;font-weight:500;line-height:1.5;line-height:var(--line-height);display:inline-block;margin-top:0}@media(min-width: 992px){.district-teaser__link h3{--line-height: 1.25;font-size:1.5rem;font-weight:500}}.district__content-container{display:flex;flex-direction:column-reverse;margin:auto;margin-top:64px;max-width:1296px;padding-left:16px;padding-right:16px}@media(min-width: 992px){.district__content-container{flex-direction:row}}@media(min-width: 768px){.district__content-container{max-width:1328px}}@media(min-width: 768px){.district__content-container{padding-left:32px;padding-right:32px}}.district__content{margin-bottom:32px;width:100%}@media(min-width: 992px){.district__content{margin-bottom:0;margin-bottom:initial}}@media(min-width: 992px){.district__content.has-sidebar{margin-left:64px}}.district__content.has-sidebar .table-of-contents{margin:0}.district__content .table-of-contents,.district__content .component{padding:0 !important}@media(min-width: 992px){.district__sidebar-content{width:340px}}.node--type-district .hero__arrow{display:none}.node--type-district .metadata__item-content .label:not(:last-of-type)::after{content:", "}.page-type--district .lower-content .component--list-of-links:last-of-type{background-color:#f2f2f2;margin-bottom:calc((50px + 64px)*-1);padding-bottom:96px;padding-top:96px}.page-type--project .project__image-container,.page-type--project .content-tags,.page-type--project .project__metadata-wrapper{max-width:1296px;padding-left:16px;padding-right:16px;margin-left:auto;margin-right:auto}@media(min-width: 768px){.page-type--project .project__image-container,.page-type--project .content-tags,.page-type--project .project__metadata-wrapper{max-width:1328px}}@media(min-width: 768px){.page-type--project .project__image-container,.page-type--project .content-tags,.page-type--project .project__metadata-wrapper{padding-left:32px;padding-right:32px}}.page-type--project .project__image-container picture{display:block;max-width:860px}.page-type--project .project__image-container picture img{box-shadow:inset 0 0 0 1px #e6e6e6;display:block;height:auto;max-width:100%;overflow:hidden}.node--type-project .content-tags{margin-top:32px}.node--type-project .lead-in{margin-bottom:32px}.node--type-project .lower-content .component--list-of-links{background-color:#ccc}.node--type-project .metadata-container{max-width:860px}.node--type-project .metadata__item-content .label:not(:last-of-type)::after,.node--type-project .metadata__item--schedule--plan-schedule *:last-child::after,.node--type-project .card__meta__content .label:not(:last-of-type)::after,.node--type-project .card__meta__content .label--schedule:not(:last-of-type) *:last-child::after{content:", "}.node--type-project .project-metadata__schedule{display:block}.project-teaser .content-tags{margin-top:0}.component--journey-planner .media-oembed-content{border:1px solid #ccc;border-radius:10px;height:252px;width:100%}@media(min-width: 768px){.component--journey-planner .media-oembed-content{width:500px}}.component--list-of-plans{padding-left:16px;padding-right:16px;background-color:#f2f2f2}@media(min-width: 768px){.component--list-of-plans{padding-left:32px;padding-right:32px}}.layout-main-wrapper>*:last-child .component--list-of-plans:last-child{margin-bottom:-115px;padding-bottom:55px}.list-of-plans__list{margin-top:24px}.list-of-plans__list .feed-link{margin-top:16px !important}.list-of-plans__list .feed-link::after{display:none !important}.component--project-list{padding-left:16px;padding-right:16px;background-color:#f2f2f2}@media(min-width: 768px){.component--project-list{padding-left:32px;padding-right:32px}}.project-list_count{--line-height: 1.5;font-size:1.25rem;font-weight:500;line-height:1.5;line-height:var(--line-height)}@media(min-width: 992px){.project-list_count{--line-height: 1.25;font-size:1.5rem;font-weight:500}}.project-list_count-text{--line-height: 1.5555555556;font-size:1.125rem;font-weight:400;line-height:1.5555555556;line-height:var(--line-height)}.project-list__count-container{margin-bottom:24px}.views--project-list .views-row:last-child .project-teaser{margin-bottom:0}.project-list__buttons{display:flex;flex-direction:column}@media(min-width: 768px){.project-list__buttons{flex-direction:row}}.project-list__buttons .hds-pagination-container{width:100%}.project-list__list .project-teaser .content-tags{display:none} diff --git a/public/themes/custom/hdbt_subtheme/package-lock.json b/public/themes/custom/hdbt_subtheme/package-lock.json index 843c95611..d05734ab0 100644 --- a/public/themes/custom/hdbt_subtheme/package-lock.json +++ b/public/themes/custom/hdbt_subtheme/package-lock.json @@ -93,12 +93,14 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz", - "integrity": "sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" @@ -432,17 +434,19 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -469,35 +473,26 @@ } }, "node_modules/@babel/helpers": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.4.tgz", - "integrity": "sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz", + "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==", + "license": "MIT", "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.4", - "@babel/types": "^7.23.4" + "@babel/template": "^7.27.0", + "@babel/types": "^7.27.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "node_modules/@babel/parser": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz", + "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==", + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "@babel/types": "^7.27.0" }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.4.tgz", - "integrity": "sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==", "bin": { "parser": "bin/babel-parser.js" }, @@ -1614,9 +1609,10 @@ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" }, "node_modules/@babel/runtime": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.4.tgz", - "integrity": "sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.0.tgz", + "integrity": "sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==", + "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -1625,13 +1621,14 @@ } }, "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz", + "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==", + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/code-frame": "^7.26.2", + "@babel/parser": "^7.27.0", + "@babel/types": "^7.27.0" }, "engines": { "node": ">=6.9.0" @@ -1658,13 +1655,13 @@ } }, "node_modules/@babel/types": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.4.tgz", - "integrity": "sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz", + "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==", + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -4320,9 +4317,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001699", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001699.tgz", - "integrity": "sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w==", + "version": "1.0.30001709", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001709.tgz", + "integrity": "sha512-NgL3vUTnDrPCZ3zTahp4fsugQ4dc7EKTSzwQDPEel6DMoMnfH2jhry9n2Zm8onbSR+f/QtKHFOA+iAQu4kbtWA==", "funding": [ { "type": "opencollective", @@ -4336,7 +4333,8 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/chalk": { "version": "2.4.2", @@ -7569,7 +7567,8 @@ "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", @@ -11580,14 +11579,6 @@ "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==" }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -12481,12 +12472,13 @@ } }, "@babel/code-frame": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz", - "integrity": "sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "requires": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" } }, "@babel/compat-data": { @@ -12723,14 +12715,14 @@ } }, "@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==" + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==" }, "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==" + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==" }, "@babel/helper-validator-option": { "version": "7.22.15", @@ -12748,30 +12740,22 @@ } }, "@babel/helpers": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.4.tgz", - "integrity": "sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz", + "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==", "requires": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.4", - "@babel/types": "^7.23.4" + "@babel/template": "^7.27.0", + "@babel/types": "^7.27.0" } }, - "@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "@babel/parser": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz", + "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==", "requires": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "@babel/types": "^7.27.0" } }, - "@babel/parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.4.tgz", - "integrity": "sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==" - }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", @@ -13489,21 +13473,21 @@ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" }, "@babel/runtime": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.4.tgz", - "integrity": "sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.0.tgz", + "integrity": "sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==", "requires": { "regenerator-runtime": "^0.14.0" } }, "@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz", + "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==", "requires": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/code-frame": "^7.26.2", + "@babel/parser": "^7.27.0", + "@babel/types": "^7.27.0" } }, "@babel/traverse": { @@ -13524,13 +13508,12 @@ } }, "@babel/types": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.4.tgz", - "integrity": "sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz", + "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==", "requires": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" } }, "@colors/colors": { @@ -14950,9 +14933,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001699", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001699.tgz", - "integrity": "sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w==" + "version": "1.0.30001709", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001709.tgz", + "integrity": "sha512-NgL3vUTnDrPCZ3zTahp4fsugQ4dc7EKTSzwQDPEel6DMoMnfH2jhry9n2Zm8onbSR+f/QtKHFOA+iAQu4kbtWA==" }, "chalk": { "version": "2.4.2", @@ -19602,11 +19585,6 @@ "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==" }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", diff --git a/public/themes/custom/hdbt_subtheme/src/scss/06_components/pages/_project.scss b/public/themes/custom/hdbt_subtheme/src/scss/06_components/pages/_project.scss index 5fbe81545..771e8a66d 100644 --- a/public/themes/custom/hdbt_subtheme/src/scss/06_components/pages/_project.scss +++ b/public/themes/custom/hdbt_subtheme/src/scss/06_components/pages/_project.scss @@ -13,11 +13,11 @@ max-width: $content-width-max; img { + box-shadow: inset 0 0 0 1px #e6e6e6; display: block; height: auto; max-width: 100%; overflow: hidden; - box-shadow: inset 0 0 0 1px #e6e6e6; } } } diff --git a/public/themes/custom/hdbt_subtheme/src/scss/06_components/paragraphs/_list-of-plans.scss b/public/themes/custom/hdbt_subtheme/src/scss/06_components/paragraphs/_list-of-plans.scss index b15e5f570..206827d00 100644 --- a/public/themes/custom/hdbt_subtheme/src/scss/06_components/paragraphs/_list-of-plans.scss +++ b/public/themes/custom/hdbt_subtheme/src/scss/06_components/paragraphs/_list-of-plans.scss @@ -5,84 +5,19 @@ // If the unit-search is just before footer. .layout-main-wrapper > *:last-child .component--list-of-plans:last-child { - margin-bottom: -115px; // Enough to get the block under the footer. - padding-bottom: 55px; // Leave enough room between the last card and footer. -} - -.list-of-plans__count-container { - @include font('lead'); - - .list-of-plans__count { - font-weight: $font-weight-bold; - } + margin-bottom: -115px; + padding-bottom: 55px; } .list-of-plans__list { margin-top: $spacing-and-half; -} - -.list-of-plans__subscribe-link { - @include font('body'); - margin-top: $spacing-double; -} -.list-of-plans__pager { - margin-top: $spacing-double; + .feed-link { + margin-top: $spacing !important; - @include breakpoint($breakpoint-m) { - margin-top: $spacing-quadruple; - text-align: center; + // External icon gets duplicated in the feed link. + &::after { + display: none !important; + } } } - -.list-of-plans__pager-button { - width: 100%; - - @include breakpoint($breakpoint-m) { - width: auto; - } -} - -.plan { - background-color: $color-white; - margin-top: $spacing-half; - padding-left: $spacing-and-half; - padding-top: $spacing-and-half; - padding-right: $spacing-and-half; - // Card padding + icon height + spacing between the arrow and publish date. - padding-bottom: calc(#{$spacing-and-half} + 28px + #{$spacing-half}); - position: relative; - - @include breakpoint($breakpoint-l) { - padding-left: $spacing-double; - padding-top: $spacing-double; - padding-right: $spacing-double; - // Arbitrary value from the design to line up the icon in a pretty way. - padding-bottom: 60px; - } - - &:first-child { - margin-top: 0; - } -} - -.plan__title { - @include font('h4'); - margin-top: 0; -} - -.plan__link { - // Make the whole card clickable. - &::before { - content: ''; - display: block; - inset: 0; - position: absolute; - } -} - -.plan__published { - @include font('small'); - color: $color-black-60; - margin-top: $spacing-and-half; -} diff --git a/public/themes/custom/hdbt_subtheme/templates/paragraph/paragraph--list-of-plans.html.twig b/public/themes/custom/hdbt_subtheme/templates/paragraph/paragraph--list-of-plans.html.twig index a4b52fd3f..7a3641882 100644 --- a/public/themes/custom/hdbt_subtheme/templates/paragraph/paragraph--list-of-plans.html.twig +++ b/public/themes/custom/hdbt_subtheme/templates/paragraph/paragraph--list-of-plans.html.twig @@ -12,9 +12,11 @@ %} {% block component_content %} -
- {{ '@plan_count plans now available for comments'|t({ '@plan_count': plan_count }, {'context': 'List of plans number of comments'}) }} -
+ {% if plan_count > 1 %} +

+ {{ plan_count}} {{ 'plans now available for comments'|t({}, {'context': 'List of plans number of comments'}) }} +

+ {% endif %} {% if plan_count == 0 %} @@ -25,42 +27,38 @@
{% for plan in plans %} -
-

- {% set link_attributes = { - 'class': [ - 'plan__link', - ], - } %} - {{ link(plan.title, plan.link, link_attributes) }} -

- -
- {{ 'Published:'|t({}, {'context': 'List of plans publish date'}) }} - {{ plan.pub_date }} -
-
+ {% embed '@hdbt/component/card.twig' with { + card_modifier_class: 'card--list-of-plans', + card_title_level: 'h3', + card_title_lang: 'fi', + card_title: plan.title, + card_url: plan.link, + card_metas: [ + { + icon: 'clock', + label: 'Published'|t({}, {'context': 'List of plans publish date'}), + content: plan.pub_date, + } + ], + } %} + {% endembed %} {% endfor %} - {% if plan_count > 8 %} - - {% endif %} + {% set link_title %} + {{ 'Subscribe to the plans\' RSS feed'|t({}, {'context': 'List of plans RSS link'}) }} + {% endset %} + + {% include '@hdbt/misc/feed-icon.html.twig' with { + link_title: link_title, + url: rss_feed_url, + }%} + + {{ pager }}
{% endif %} - - {% endblock component_content %} {% endembed %} {% endblock paragraph %} diff --git a/public/themes/custom/hdbt_subtheme/templates/views/views-view--district-and-project-search.html.twig b/public/themes/custom/hdbt_subtheme/templates/views/views-view--district-and-project-search.html.twig index 18105dbda..8d0e5c6f4 100644 --- a/public/themes/custom/hdbt_subtheme/templates/views/views-view--district-and-project-search.html.twig +++ b/public/themes/custom/hdbt_subtheme/templates/views/views-view--district-and-project-search.html.twig @@ -5,7 +5,7 @@ */ #} -{% embed '@hdbt/component/unit-search.twig'%} +{% embed '@hdbt/component/content-list-with-count.twig'%} {% block count_container%} {%- if total_rows -%} {{ total_rows }} {% trans with {'context': 'District and project search fallback'}%}search result{% plural total_rows ?? 0 %}search results{% endtrans %}