diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 91edd72bf9..a367baad58 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -34,7 +34,7 @@ jobs:
#- name: Make sure configuration was exported in correct language (en or und)
# run: |
# OUTPUT=$(grep -oP '^langcode: \b(?!(?:en|und)\b)\w+' conf -R || true)
- #
+
# if [ ! -z "$OUTPUT" ]; then
# echo "Found configuration that does not match the pattern 'langcode: (en|und)':" >> $GITHUB_STEP_SUMMARY
# echo "$OUTPUT" >> $GITHUB_STEP_SUMMARY
diff --git a/.github/workflows/update-config.yml b/.github/workflows/update-config.yml
index 1a7d61f701..d36258dd60 100644
--- a/.github/workflows/update-config.yml
+++ b/.github/workflows/update-config.yml
@@ -24,6 +24,12 @@ jobs:
steps:
- uses: actions/checkout@v4
+ - name: Check if required secrets are set
+ env:
+ AUTOMATIC_UPDATE_TOKEN: ${{ secrets.AUTOMATIC_UPDATE_TOKEN }}
+ if: env.AUTOMATIC_UPDATE_TOKEN == ''
+ run: exit 1
+
- name: Download latest dump
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -77,6 +83,7 @@ jobs:
uses: peter-evans/create-pull-request@v6
with:
commit-message: Update configuration
+ token: ${{ secrets.AUTOMATIC_UPDATE_TOKEN }}
title: Automatic update
labels: auto-update
body: |
diff --git a/.platform/schema b/.platform/schema
index f11c82a4cb..9a037142aa 100644
--- a/.platform/schema
+++ b/.platform/schema
@@ -1 +1 @@
-9
\ No newline at end of file
+10
\ No newline at end of file
diff --git a/compose.override.yml b/compose.override.yml
index fe608792e8..381542bd74 100644
--- a/compose.override.yml
+++ b/compose.override.yml
@@ -1,7 +1,7 @@
services:
e2e:
container_name: "${COMPOSE_PROJECT_NAME}-e2e"
- image: mcr.microsoft.com/playwright:v1.41.0-jammy
+ image: mcr.microsoft.com/playwright:v1.48.0-jammy
ipc: host
network_mode: host
tty: true
diff --git a/composer.json b/composer.json
index 4054766f3a..5247d4dba9 100644
--- a/composer.json
+++ b/composer.json
@@ -6,7 +6,7 @@
"homepage": "https://github.com/City-of-Helsinki/drupal-helfi-platform",
"minimum-stability": "dev",
"prefer-stable": true,
- "version": "2024.14",
+ "version": "2024.16",
"require": {
"ext-json": "*",
"composer/installers": "^1.9",
@@ -56,7 +56,6 @@
"drupal/potx": "^1.0",
"drupal/purge_users": "^3.1",
"drupal/radioactivity": "^4.0",
- "drupal/raven": "^5.0",
"drupal/redis": "^1.7",
"drupal/remove_http_headers": "^2.0.1",
"drupal/restui": "^1.21",
diff --git a/composer.lock b/composer.lock
index 8667022bd0..e1cda871e5 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "ce4104284d63679dfc9b04271c9f9c5a",
+ "content-hash": "8c0754a03ad8e1e9a27cbc8b5220de66",
"packages": [
{
"name": "asm89/stack-cors",
@@ -1037,16 +1037,16 @@
},
{
"name": "consolidation/output-formatters",
- "version": "4.5.0",
+ "version": "4.6.0",
"source": {
"type": "git",
"url": "https://github.com/consolidation/output-formatters.git",
- "reference": "7a611b01eb48eb19cd54672339fc08c0985bf540"
+ "reference": "5fd5656718d7068a02d046f418a7ba873d5abbfe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/7a611b01eb48eb19cd54672339fc08c0985bf540",
- "reference": "7a611b01eb48eb19cd54672339fc08c0985bf540",
+ "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/5fd5656718d7068a02d046f418a7ba873d5abbfe",
+ "reference": "5fd5656718d7068a02d046f418a7ba873d5abbfe",
"shasum": ""
},
"require": {
@@ -1085,9 +1085,9 @@
"description": "Format text by applying transformations provided by plug-in formatters.",
"support": {
"issues": "https://github.com/consolidation/output-formatters/issues",
- "source": "https://github.com/consolidation/output-formatters/tree/4.5.0"
+ "source": "https://github.com/consolidation/output-formatters/tree/4.6.0"
},
- "time": "2024-04-02T15:18:52+00:00"
+ "time": "2024-10-18T14:02:48+00:00"
},
{
"name": "consolidation/robo",
@@ -3113,16 +3113,16 @@
},
{
"name": "drupal/core",
- "version": "10.3.6",
+ "version": "10.3.10",
"source": {
"type": "git",
"url": "https://github.com/drupal/core.git",
- "reference": "168ec99f2012aeb4e93c6c7dd4a90dc919ae96c6"
+ "reference": "3ebb71e9c4ef0c13f683353547551fca49f9a144"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/drupal/core/zipball/168ec99f2012aeb4e93c6c7dd4a90dc919ae96c6",
- "reference": "168ec99f2012aeb4e93c6c7dd4a90dc919ae96c6",
+ "url": "https://api.github.com/repos/drupal/core/zipball/3ebb71e9c4ef0c13f683353547551fca49f9a144",
+ "reference": "3ebb71e9c4ef0c13f683353547551fca49f9a144",
"shasum": ""
},
"require": {
@@ -3168,7 +3168,7 @@
"symfony/serializer": "^6.4",
"symfony/validator": "^6.4",
"symfony/yaml": "^6.4",
- "twig/twig": "^3.14.0"
+ "twig/twig": "^3.14.2"
},
"conflict": {
"drush/drush": "<12.4.3"
@@ -3271,9 +3271,9 @@
],
"description": "Drupal is an open source content management platform powering millions of websites and applications.",
"support": {
- "source": "https://github.com/drupal/core/tree/10.3.6"
+ "source": "https://github.com/drupal/core/tree/10.3.10"
},
- "time": "2024-10-03T08:58:13+00:00"
+ "time": "2024-11-22T12:51:33+00:00"
},
{
"name": "drupal/core-composer-scaffold",
@@ -5404,6 +5404,10 @@
"name": "Sascha Eggenberger (saschaeggi)",
"homepage": "https://www.drupal.org/u/saschaeggi",
"role": "Maintainer"
+ },
+ {
+ "name": "saschaeggi",
+ "homepage": "https://www.drupal.org/user/1999056"
}
],
"description": "Gin Toolbar for Frontend use",
@@ -5482,16 +5486,16 @@
},
{
"name": "drupal/hdbt",
- "version": "6.7.11",
+ "version": "6.7.19",
"source": {
"type": "git",
"url": "https://github.com/City-of-Helsinki/drupal-hdbt.git",
- "reference": "5f9902895d8690e0167af2b8df37e84798c1ab8b"
+ "reference": "2fadf070e0fee0baf582073856f47f9c62669d17"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/5f9902895d8690e0167af2b8df37e84798c1ab8b",
- "reference": "5f9902895d8690e0167af2b8df37e84798c1ab8b",
+ "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/2fadf070e0fee0baf582073856f47f9c62669d17",
+ "reference": "2fadf070e0fee0baf582073856f47f9c62669d17",
"shasum": ""
},
"require": {
@@ -5510,10 +5514,10 @@
"Drupal"
],
"support": {
- "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.7.11",
+ "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.7.19",
"issues": "https://github.com/City-of-Helsinki/drupal-hdbt/issues"
},
- "time": "2024-10-11T08:54:21+00:00"
+ "time": "2024-10-23T10:00:39+00:00"
},
{
"name": "drupal/hdbt_admin",
@@ -5604,16 +5608,16 @@
},
{
"name": "drupal/helfi_api_base",
- "version": "2.7.14",
+ "version": "2.7.11",
"source": {
"type": "git",
"url": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base.git",
- "reference": "d149db10862c62980427c0ad124d0e54c7b97902"
+ "reference": "77ba93f8f9b02bb3e74344e1de0c50caf4d1557c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-api-base/zipball/d149db10862c62980427c0ad124d0e54c7b97902",
- "reference": "d149db10862c62980427c0ad124d0e54c7b97902",
+ "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-api-base/zipball/77ba93f8f9b02bb3e74344e1de0c50caf4d1557c",
+ "reference": "77ba93f8f9b02bb3e74344e1de0c50caf4d1557c",
"shasum": ""
},
"require": {
@@ -5643,10 +5647,10 @@
],
"description": "Helfi - API Base",
"support": {
- "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/tree/2.7.14",
+ "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/tree/2.7.11",
"issues": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/issues"
},
- "time": "2024-11-07T10:23:06+00:00"
+ "time": "2024-10-23T08:01:57+00:00"
},
{
"name": "drupal/helfi_atv",
@@ -5714,16 +5718,16 @@
},
{
"name": "drupal/helfi_azure_fs",
- "version": "2.0.7",
+ "version": "2.0.8",
"source": {
"type": "git",
"url": "https://github.com/City-of-Helsinki/drupal-module-helfi-azure-fs.git",
- "reference": "f35b0a703e2da09374c4ca137dd6519274db552a"
+ "reference": "c1ce8909d3ab797bd75e391ed6d80c06b82799c9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-azure-fs/zipball/f35b0a703e2da09374c4ca137dd6519274db552a",
- "reference": "f35b0a703e2da09374c4ca137dd6519274db552a",
+ "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-azure-fs/zipball/c1ce8909d3ab797bd75e391ed6d80c06b82799c9",
+ "reference": "c1ce8909d3ab797bd75e391ed6d80c06b82799c9",
"shasum": ""
},
"require": {
@@ -5740,9 +5744,6 @@
"type": "drupal-module",
"extra": {
"patches": {
- "drupal/core": {
- "UHF-10533 D10.3 images": "https://raw.githubusercontent.com/City-of-Helsinki/drupal-module-helfi-azure-fs/f933226cdd9b046d76757d4f885d3d3567365264/patches/UHF-10533-d10-images.patch"
- },
"twistor/flysystem-stream-wrapper": {
"PHP 8.2 support (https://www.drupal.org/project/flysystem/issues/3387094)": "https://raw.githubusercontent.com/City-of-Helsinki/drupal-module-helfi-azure-fs/ddb222622b92d1c2b7db975a84167a00579a1ad0/patches/3387094-add-context-property-to-stream-wrapper.patch"
},
@@ -5756,10 +5757,10 @@
],
"description": "Helfi - Azure FS",
"support": {
- "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-azure-fs/tree/2.0.7",
+ "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-azure-fs/tree/2.0.8",
"issues": "https://github.com/City-of-Helsinki/drupal-module-helfi-azure-fs/issues"
},
- "time": "2024-10-11T07:42:06+00:00"
+ "time": "2024-10-23T12:15:22+00:00"
},
{
"name": "drupal/helfi_drupal_tools",
@@ -5767,12 +5768,12 @@
"source": {
"type": "git",
"url": "https://github.com/City-of-Helsinki/drupal-tools.git",
- "reference": "8df65343c4ff937dcf143827e3182f10b8b1b4b6"
+ "reference": "53ad81c4249c6dd38deea3f6014ad0b1be47f2db"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/City-of-Helsinki/drupal-tools/zipball/8df65343c4ff937dcf143827e3182f10b8b1b4b6",
- "reference": "8df65343c4ff937dcf143827e3182f10b8b1b4b6",
+ "url": "https://api.github.com/repos/City-of-Helsinki/drupal-tools/zipball/53ad81c4249c6dd38deea3f6014ad0b1be47f2db",
+ "reference": "53ad81c4249c6dd38deea3f6014ad0b1be47f2db",
"shasum": ""
},
"require": {
@@ -5844,7 +5845,7 @@
"source": "https://github.com/City-of-Helsinki/drupal-tools/tree/main",
"issues": "https://github.com/City-of-Helsinki/drupal-tools/issues"
},
- "time": "2024-09-24T07:18:32+00:00"
+ "time": "2024-10-23T10:28:01+00:00"
},
{
"name": "drupal/helfi_formtool_embed",
@@ -5950,16 +5951,16 @@
},
{
"name": "drupal/helfi_platform_config",
- "version": "4.6.15",
+ "version": "4.6.20",
"source": {
"type": "git",
"url": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config.git",
- "reference": "96e619f1399be1140cef46c5dd67cce2a035613e"
+ "reference": "f5451a53f0e83dcf1fc811c9ced0687f43cd4b7f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/96e619f1399be1140cef46c5dd67cce2a035613e",
- "reference": "96e619f1399be1140cef46c5dd67cce2a035613e",
+ "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/f5451a53f0e83dcf1fc811c9ced0687f43cd4b7f",
+ "reference": "f5451a53f0e83dcf1fc811c9ced0687f43cd4b7f",
"shasum": ""
},
"require": {
@@ -6078,23 +6079,23 @@
],
"description": "HELfi platform config",
"support": {
- "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.6.15",
+ "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.6.20",
"issues": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/issues"
},
- "time": "2024-10-14T06:10:36+00:00"
+ "time": "2024-10-24T12:01:48+00:00"
},
{
"name": "drupal/helfi_proxy",
- "version": "3.3.0",
+ "version": "3.3.1",
"source": {
"type": "git",
"url": "https://github.com/City-of-Helsinki/drupal-module-helfi-proxy.git",
- "reference": "efdf8d46f8b0f0114ab079f61661d1909b2a870e"
+ "reference": "0372472dbcc0ae1cea760a8d455b729ead9978f6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-proxy/zipball/efdf8d46f8b0f0114ab079f61661d1909b2a870e",
- "reference": "efdf8d46f8b0f0114ab079f61661d1909b2a870e",
+ "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-proxy/zipball/0372472dbcc0ae1cea760a8d455b729ead9978f6",
+ "reference": "0372472dbcc0ae1cea760a8d455b729ead9978f6",
"shasum": ""
},
"require": {
@@ -6123,10 +6124,10 @@
],
"description": "Provides various fixes so we can serve multiple Drupal instances in one domain.",
"support": {
- "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-proxy/tree/3.3.0",
+ "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-proxy/tree/3.3.1",
"issues": "https://github.com/City-of-Helsinki/drupal-module-helfi-proxy/issues"
},
- "time": "2024-06-26T05:50:50+00:00"
+ "time": "2024-10-25T05:12:00+00:00"
},
{
"name": "drupal/helfi_tpr",
@@ -6983,17 +6984,17 @@
},
{
"name": "drupal/linkit",
- "version": "6.1.5",
+ "version": "6.1.6",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/linkit.git",
- "reference": "6.1.5"
+ "reference": "6.1.6"
},
"dist": {
"type": "zip",
- "url": "https://ftp.drupal.org/files/projects/linkit-6.1.5.zip",
- "reference": "6.1.5",
- "shasum": "ce2e0f545e5213874e658a44ed3ef606b80b760d"
+ "url": "https://ftp.drupal.org/files/projects/linkit-6.1.6.zip",
+ "reference": "6.1.6",
+ "shasum": "113d8e569cfb92f8d7feb0a2f7713953c0715e92"
},
"require": {
"drupal/core": "^10.1"
@@ -7005,8 +7006,8 @@
"type": "drupal-module",
"extra": {
"drupal": {
- "version": "6.1.5",
- "datestamp": "1728680387",
+ "version": "6.1.6",
+ "datestamp": "1729189029",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
@@ -8296,20 +8297,20 @@
},
{
"name": "drupal/raven",
- "version": "5.0.19",
+ "version": "6.0.10",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/raven.git",
- "reference": "5.0.19"
+ "reference": "6.0.10"
},
"dist": {
"type": "zip",
- "url": "https://ftp.drupal.org/files/projects/raven-5.0.19.zip",
- "reference": "5.0.19",
- "shasum": "7ff86084a389c0740a42aa1d23b5fbcaa1a42d9f"
+ "url": "https://ftp.drupal.org/files/projects/raven-6.0.10.zip",
+ "reference": "6.0.10",
+ "shasum": "df0cce5b87bd76ce933d88afd91ebcd75741d329"
},
"require": {
- "drupal/core": "^10.1 || ^11",
+ "drupal/core": "^10.2 || ^11",
"sentry/sentry": "^4.9"
},
"require-dev": {
@@ -8320,8 +8321,8 @@
"type": "drupal-module",
"extra": {
"drupal": {
- "version": "5.0.19",
- "datestamp": "1728261182",
+ "version": "6.0.10",
+ "datestamp": "1728022661",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
@@ -8514,7 +8515,7 @@
],
"authors": [
{
- "name": "Heine",
+ "name": "heine",
"homepage": "https://www.drupal.org/user/17943"
},
{
@@ -9516,30 +9517,30 @@
},
{
"name": "drupal/tfa",
- "version": "1.8.0",
+ "version": "1.9.0",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/tfa.git",
- "reference": "8.x-1.8"
+ "reference": "8.x-1.9"
},
"dist": {
"type": "zip",
- "url": "https://ftp.drupal.org/files/projects/tfa-8.x-1.8.zip",
- "reference": "8.x-1.8",
- "shasum": "fda56a048fc15d2d24601981785d3974cd29acd9"
+ "url": "https://ftp.drupal.org/files/projects/tfa-8.x-1.9.zip",
+ "reference": "8.x-1.9",
+ "shasum": "1d42020673e8c29259dd9b6b2a7c1f974e66a415"
},
"require": {
"chillerlan/php-qrcode": "^1.0.9 || ^2.0 || ^3.2 || ^4.0",
"christian-riesen/otp": "^2.1",
- "drupal/core": "^8 || ^9 || ^10",
+ "drupal/core": "^8 || ^9 || ^10 || ^11",
"drupal/encrypt": "~3.0",
"php": ">=7.0"
},
"require-dev": {
"drupal/encrypt": "*",
"drupal/key": "*",
- "drupal/services": "^4 || ^5",
- "drush/drush": "^10 || ^11 || ^12",
+ "drupal/services": "*",
+ "drush/drush": "^10 || ^11 || ^12 || ^13",
"mglaman/phpstan-drupal": "^1.1",
"phpstan/extension-installer": "^1.2",
"phpstan/phpstan": "^1.9",
@@ -9549,8 +9550,8 @@
"type": "drupal-module",
"extra": {
"drupal": {
- "version": "8.x-1.8",
- "datestamp": "1727892298",
+ "version": "8.x-1.9",
+ "datestamp": "1729138391",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
@@ -10072,42 +10073,39 @@
},
{
"name": "drupal/views_bulk_operations",
- "version": "4.2.7",
+ "version": "4.3.1",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/views_bulk_operations.git",
- "reference": "4.2.7"
+ "reference": "4.3.1"
},
"dist": {
"type": "zip",
- "url": "https://ftp.drupal.org/files/projects/views_bulk_operations-4.2.7.zip",
- "reference": "4.2.7",
- "shasum": "25c9fa531ac49664a361fdd2202eec0a6e53bc61"
+ "url": "https://ftp.drupal.org/files/projects/views_bulk_operations-4.3.1.zip",
+ "reference": "4.3.1",
+ "shasum": "1089fe41ddb01313f34d55e19e8f3a5157889430"
},
"require": {
- "drupal/core": "^9.4 || ^10 || ^11",
- "php": ">=7.4.0"
+ "drupal/core": "^10.3 || ^11"
+ },
+ "conflict": {
+ "drush/drush": "<12.5.1"
},
"require-dev": {
- "drush/drush": "^12"
+ "drush/drush": "^12 || ^13"
},
"suggest": {
- "drush/drush": "^11 || ^12"
+ "drush/drush": "^12 || ^13"
},
"type": "drupal-module",
"extra": {
"drupal": {
- "version": "4.2.7",
- "datestamp": "1717665214",
+ "version": "4.3.1",
+ "datestamp": "1729683242",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
}
- },
- "drush": {
- "services": {
- "drush.services.yml": "^10 || ^11"
- }
}
},
"notification-url": "https://packages.drupal.org/8/downloads",
@@ -11071,29 +11069,29 @@
},
{
"name": "fileeye/mimemap",
- "version": "2.1.2",
+ "version": "2.2.0",
"source": {
"type": "git",
"url": "https://github.com/FileEye/MimeMap.git",
- "reference": "2cb60da59d5c6fb881a78b481d513c4c68a1a93c"
+ "reference": "c8c686cc6f77316b23128a83334877debf645dfb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/FileEye/MimeMap/zipball/2cb60da59d5c6fb881a78b481d513c4c68a1a93c",
- "reference": "2cb60da59d5c6fb881a78b481d513c4c68a1a93c",
+ "url": "https://api.github.com/repos/FileEye/MimeMap/zipball/c8c686cc6f77316b23128a83334877debf645dfb",
+ "reference": "c8c686cc6f77316b23128a83334877debf645dfb",
"shasum": ""
},
"require": {
- "php": ">=7.4"
+ "php": ">=8.1"
},
"require-dev": {
"composer-runtime-api": "^2.0.0",
- "sebastian/comparator": ">=4",
- "sebastian/diff": ">=4",
- "symfony/console": ">=5.4",
- "symfony/filesystem": ">=5.4",
- "symfony/var-dumper": ">=5.4",
- "symfony/yaml": ">=5.4"
+ "sebastian/comparator": ">=5",
+ "sebastian/diff": ">=5",
+ "symfony/console": ">=6.4",
+ "symfony/filesystem": ">=6.4",
+ "symfony/var-dumper": ">=6.4",
+ "symfony/yaml": ">=6.4"
},
"bin": [
"bin/fileeye-mimemap"
@@ -11123,9 +11121,9 @@
],
"support": {
"issues": "https://github.com/FileEye/MimeMap/issues",
- "source": "https://github.com/FileEye/MimeMap/tree/2.1.2"
+ "source": "https://github.com/FileEye/MimeMap/tree/2.2.0"
},
- "time": "2024-06-29T16:52:07+00:00"
+ "time": "2024-10-20T18:59:36+00:00"
},
{
"name": "fileeye/pel",
@@ -11647,16 +11645,16 @@
},
{
"name": "guzzlehttp/promises",
- "version": "2.0.3",
+ "version": "2.0.4",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
- "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8"
+ "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/promises/zipball/6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8",
- "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/f9c436286ab2892c7db7be8c8da4ef61ccf7b455",
+ "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455",
"shasum": ""
},
"require": {
@@ -11710,7 +11708,7 @@
],
"support": {
"issues": "https://github.com/guzzle/promises/issues",
- "source": "https://github.com/guzzle/promises/tree/2.0.3"
+ "source": "https://github.com/guzzle/promises/tree/2.0.4"
},
"funding": [
{
@@ -11726,7 +11724,7 @@
"type": "tidelift"
}
],
- "time": "2024-07-18T10:29:17+00:00"
+ "time": "2024-10-17T10:06:22+00:00"
},
{
"name": "guzzlehttp/psr7",
@@ -11970,16 +11968,16 @@
},
{
"name": "league/container",
- "version": "4.2.2",
+ "version": "4.2.3",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/container.git",
- "reference": "ff346319ca1ff0e78277dc2311a42107cc1aab88"
+ "reference": "72f9bebe7bd623007782a40f5ec305661ab706d8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/container/zipball/ff346319ca1ff0e78277dc2311a42107cc1aab88",
- "reference": "ff346319ca1ff0e78277dc2311a42107cc1aab88",
+ "url": "https://api.github.com/repos/thephpleague/container/zipball/72f9bebe7bd623007782a40f5ec305661ab706d8",
+ "reference": "72f9bebe7bd623007782a40f5ec305661ab706d8",
"shasum": ""
},
"require": {
@@ -12040,7 +12038,7 @@
],
"support": {
"issues": "https://github.com/thephpleague/container/issues",
- "source": "https://github.com/thephpleague/container/tree/4.2.2"
+ "source": "https://github.com/thephpleague/container/tree/4.2.3"
},
"funding": [
{
@@ -12048,7 +12046,7 @@
"type": "github"
}
],
- "time": "2024-03-13T13:12:53+00:00"
+ "time": "2024-10-23T12:06:58+00:00"
},
{
"name": "league/flysystem",
@@ -13481,16 +13479,16 @@
},
{
"name": "pear/pear-core-minimal",
- "version": "v1.10.15",
+ "version": "v1.10.16",
"source": {
"type": "git",
"url": "https://github.com/pear/pear-core-minimal.git",
- "reference": "ce0adade8b97561656ace07cdaac4751c271ea8c"
+ "reference": "c0f51b45f50683bf5bbf558036854ebc9b54d033"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/pear/pear-core-minimal/zipball/ce0adade8b97561656ace07cdaac4751c271ea8c",
- "reference": "ce0adade8b97561656ace07cdaac4751c271ea8c",
+ "url": "https://api.github.com/repos/pear/pear-core-minimal/zipball/c0f51b45f50683bf5bbf558036854ebc9b54d033",
+ "reference": "c0f51b45f50683bf5bbf558036854ebc9b54d033",
"shasum": ""
},
"require": {
@@ -13526,7 +13524,7 @@
"issues": "http://pear.php.net/bugs/search.php?cmd=display&package_name[]=PEAR",
"source": "https://github.com/pear/pear-core-minimal"
},
- "time": "2024-03-16T18:41:45+00:00"
+ "time": "2024-11-24T22:27:58+00:00"
},
{
"name": "pear/pear_exception",
@@ -15263,16 +15261,16 @@
},
{
"name": "symfony/console",
- "version": "v6.4.12",
+ "version": "v6.4.15",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "72d080eb9edf80e36c19be61f72c98ed8273b765"
+ "reference": "f1fc6f47283e27336e7cebb9e8946c8de7bff9bd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/72d080eb9edf80e36c19be61f72c98ed8273b765",
- "reference": "72d080eb9edf80e36c19be61f72c98ed8273b765",
+ "url": "https://api.github.com/repos/symfony/console/zipball/f1fc6f47283e27336e7cebb9e8946c8de7bff9bd",
+ "reference": "f1fc6f47283e27336e7cebb9e8946c8de7bff9bd",
"shasum": ""
},
"require": {
@@ -15337,7 +15335,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v6.4.12"
+ "source": "https://github.com/symfony/console/tree/v6.4.15"
},
"funding": [
{
@@ -15353,20 +15351,20 @@
"type": "tidelift"
}
],
- "time": "2024-09-20T08:15:52+00:00"
+ "time": "2024-11-06T14:19:14+00:00"
},
{
"name": "symfony/dependency-injection",
- "version": "v6.4.12",
+ "version": "v6.4.15",
"source": {
"type": "git",
"url": "https://github.com/symfony/dependency-injection.git",
- "reference": "cfb9d34a1cdd4911bc737a5358fd1cf8ebfb536e"
+ "reference": "70ab1f65a4516ef741e519ea938e6aa465e6aa36"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/cfb9d34a1cdd4911bc737a5358fd1cf8ebfb536e",
- "reference": "cfb9d34a1cdd4911bc737a5358fd1cf8ebfb536e",
+ "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/70ab1f65a4516ef741e519ea938e6aa465e6aa36",
+ "reference": "70ab1f65a4516ef741e519ea938e6aa465e6aa36",
"shasum": ""
},
"require": {
@@ -15418,7 +15416,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.12"
+ "source": "https://github.com/symfony/dependency-injection/tree/v6.4.15"
},
"funding": [
{
@@ -15434,7 +15432,7 @@
"type": "tidelift"
}
],
- "time": "2024-09-20T08:18:25+00:00"
+ "time": "2024-11-09T06:56:25+00:00"
},
{
"name": "symfony/deprecation-contracts",
@@ -15505,16 +15503,16 @@
},
{
"name": "symfony/error-handler",
- "version": "v6.4.10",
+ "version": "v6.4.14",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
- "reference": "231f1b2ee80f72daa1972f7340297d67439224f0"
+ "reference": "9e024324511eeb00983ee76b9aedc3e6ecd993d9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/error-handler/zipball/231f1b2ee80f72daa1972f7340297d67439224f0",
- "reference": "231f1b2ee80f72daa1972f7340297d67439224f0",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/9e024324511eeb00983ee76b9aedc3e6ecd993d9",
+ "reference": "9e024324511eeb00983ee76b9aedc3e6ecd993d9",
"shasum": ""
},
"require": {
@@ -15560,7 +15558,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.10"
+ "source": "https://github.com/symfony/error-handler/tree/v6.4.14"
},
"funding": [
{
@@ -15576,20 +15574,20 @@
"type": "tidelift"
}
],
- "time": "2024-07-26T12:30:32+00:00"
+ "time": "2024-11-05T15:34:40+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v6.4.8",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "8d7507f02b06e06815e56bb39aa0128e3806208b"
+ "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/8d7507f02b06e06815e56bb39aa0128e3806208b",
- "reference": "8d7507f02b06e06815e56bb39aa0128e3806208b",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e",
+ "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e",
"shasum": ""
},
"require": {
@@ -15640,7 +15638,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.8"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.13"
},
"funding": [
{
@@ -15656,7 +15654,7 @@
"type": "tidelift"
}
],
- "time": "2024-05-31T14:49:08+00:00"
+ "time": "2024-09-25T14:18:03+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
@@ -15736,16 +15734,16 @@
},
{
"name": "symfony/filesystem",
- "version": "v6.4.12",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
- "reference": "f810e3cbdf7fdc35983968523d09f349fa9ada12"
+ "reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/f810e3cbdf7fdc35983968523d09f349fa9ada12",
- "reference": "f810e3cbdf7fdc35983968523d09f349fa9ada12",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/4856c9cf585d5a0313d8d35afd681a526f038dd3",
+ "reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3",
"shasum": ""
},
"require": {
@@ -15782,7 +15780,7 @@
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/filesystem/tree/v6.4.12"
+ "source": "https://github.com/symfony/filesystem/tree/v6.4.13"
},
"funding": [
{
@@ -15798,20 +15796,20 @@
"type": "tidelift"
}
],
- "time": "2024-09-16T16:01:33+00:00"
+ "time": "2024-10-25T15:07:50+00:00"
},
{
"name": "symfony/finder",
- "version": "v6.4.11",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "d7eb6daf8cd7e9ac4976e9576b32042ef7253453"
+ "reference": "daea9eca0b08d0ed1dc9ab702a46128fd1be4958"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/d7eb6daf8cd7e9ac4976e9576b32042ef7253453",
- "reference": "d7eb6daf8cd7e9ac4976e9576b32042ef7253453",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/daea9eca0b08d0ed1dc9ab702a46128fd1be4958",
+ "reference": "daea9eca0b08d0ed1dc9ab702a46128fd1be4958",
"shasum": ""
},
"require": {
@@ -15846,7 +15844,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v6.4.11"
+ "source": "https://github.com/symfony/finder/tree/v6.4.13"
},
"funding": [
{
@@ -15862,20 +15860,20 @@
"type": "tidelift"
}
],
- "time": "2024-08-13T14:27:37+00:00"
+ "time": "2024-10-01T08:30:56+00:00"
},
{
"name": "symfony/http-foundation",
- "version": "v6.4.12",
+ "version": "v6.4.15",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "133ac043875f59c26c55e79cf074562127cce4d2"
+ "reference": "9b3165eb2f04aeaa1a5a2cfef73e63fe3b22dff6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/133ac043875f59c26c55e79cf074562127cce4d2",
- "reference": "133ac043875f59c26c55e79cf074562127cce4d2",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/9b3165eb2f04aeaa1a5a2cfef73e63fe3b22dff6",
+ "reference": "9b3165eb2f04aeaa1a5a2cfef73e63fe3b22dff6",
"shasum": ""
},
"require": {
@@ -15885,12 +15883,12 @@
"symfony/polyfill-php83": "^1.27"
},
"conflict": {
- "symfony/cache": "<6.3"
+ "symfony/cache": "<6.4.12|>=7.0,<7.1.5"
},
"require-dev": {
"doctrine/dbal": "^2.13.1|^3|^4",
"predis/predis": "^1.1|^2.0",
- "symfony/cache": "^6.3|^7.0",
+ "symfony/cache": "^6.4.12|^7.1.5",
"symfony/dependency-injection": "^5.4|^6.0|^7.0",
"symfony/expression-language": "^5.4|^6.0|^7.0",
"symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0",
@@ -15923,7 +15921,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-foundation/tree/v6.4.12"
+ "source": "https://github.com/symfony/http-foundation/tree/v6.4.15"
},
"funding": [
{
@@ -15939,20 +15937,20 @@
"type": "tidelift"
}
],
- "time": "2024-09-20T08:18:25+00:00"
+ "time": "2024-11-08T16:09:24+00:00"
},
{
"name": "symfony/http-kernel",
- "version": "v6.4.12",
+ "version": "v6.4.15",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "96df83d51b5f78804f70c093b97310794fd6257b"
+ "reference": "b002a5b3947653c5aee3adac2a024ea615fd3ff5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/96df83d51b5f78804f70c093b97310794fd6257b",
- "reference": "96df83d51b5f78804f70c093b97310794fd6257b",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/b002a5b3947653c5aee3adac2a024ea615fd3ff5",
+ "reference": "b002a5b3947653c5aee3adac2a024ea615fd3ff5",
"shasum": ""
},
"require": {
@@ -16037,7 +16035,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.12"
+ "source": "https://github.com/symfony/http-kernel/tree/v6.4.15"
},
"funding": [
{
@@ -16053,20 +16051,20 @@
"type": "tidelift"
}
],
- "time": "2024-09-21T06:02:57+00:00"
+ "time": "2024-11-13T13:57:37+00:00"
},
{
"name": "symfony/mailer",
- "version": "v6.4.12",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/mailer.git",
- "reference": "b6a25408c569ae2366b3f663a4edad19420a9c26"
+ "reference": "c2f7e0d8d7ac8fe25faccf5d8cac462805db2663"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mailer/zipball/b6a25408c569ae2366b3f663a4edad19420a9c26",
- "reference": "b6a25408c569ae2366b3f663a4edad19420a9c26",
+ "url": "https://api.github.com/repos/symfony/mailer/zipball/c2f7e0d8d7ac8fe25faccf5d8cac462805db2663",
+ "reference": "c2f7e0d8d7ac8fe25faccf5d8cac462805db2663",
"shasum": ""
},
"require": {
@@ -16117,7 +16115,7 @@
"description": "Helps sending emails",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/mailer/tree/v6.4.12"
+ "source": "https://github.com/symfony/mailer/tree/v6.4.13"
},
"funding": [
{
@@ -16133,20 +16131,20 @@
"type": "tidelift"
}
],
- "time": "2024-09-08T12:30:05+00:00"
+ "time": "2024-09-25T14:18:03+00:00"
},
{
"name": "symfony/mime",
- "version": "v6.4.12",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
- "reference": "abe16ee7790b16aa525877419deb0f113953f0e1"
+ "reference": "1de1cf14d99b12c7ebbb850491ec6ae3ed468855"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/abe16ee7790b16aa525877419deb0f113953f0e1",
- "reference": "abe16ee7790b16aa525877419deb0f113953f0e1",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/1de1cf14d99b12c7ebbb850491ec6ae3ed468855",
+ "reference": "1de1cf14d99b12c7ebbb850491ec6ae3ed468855",
"shasum": ""
},
"require": {
@@ -16202,7 +16200,7 @@
"mime-type"
],
"support": {
- "source": "https://github.com/symfony/mime/tree/v6.4.12"
+ "source": "https://github.com/symfony/mime/tree/v6.4.13"
},
"funding": [
{
@@ -16218,7 +16216,7 @@
"type": "tidelift"
}
],
- "time": "2024-09-20T08:18:25+00:00"
+ "time": "2024-10-25T15:07:50+00:00"
},
{
"name": "symfony/options-resolver",
@@ -17146,16 +17144,16 @@
},
{
"name": "symfony/process",
- "version": "v6.4.12",
+ "version": "v6.4.15",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "3f94e5f13ff58df371a7ead461b6e8068900fbb3"
+ "reference": "3cb242f059c14ae08591c5c4087d1fe443564392"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/3f94e5f13ff58df371a7ead461b6e8068900fbb3",
- "reference": "3f94e5f13ff58df371a7ead461b6e8068900fbb3",
+ "url": "https://api.github.com/repos/symfony/process/zipball/3cb242f059c14ae08591c5c4087d1fe443564392",
+ "reference": "3cb242f059c14ae08591c5c4087d1fe443564392",
"shasum": ""
},
"require": {
@@ -17187,7 +17185,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v6.4.12"
+ "source": "https://github.com/symfony/process/tree/v6.4.15"
},
"funding": [
{
@@ -17203,20 +17201,20 @@
"type": "tidelift"
}
],
- "time": "2024-09-17T12:47:12+00:00"
+ "time": "2024-11-06T14:19:14+00:00"
},
{
"name": "symfony/psr-http-message-bridge",
- "version": "v6.4.11",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/psr-http-message-bridge.git",
- "reference": "74835ba54eca99a38f374f7a6d932fa510124773"
+ "reference": "c9cf83326a1074f83a738fc5320945abf7fb7fec"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/74835ba54eca99a38f374f7a6d932fa510124773",
- "reference": "74835ba54eca99a38f374f7a6d932fa510124773",
+ "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/c9cf83326a1074f83a738fc5320945abf7fb7fec",
+ "reference": "c9cf83326a1074f83a738fc5320945abf7fb7fec",
"shasum": ""
},
"require": {
@@ -17270,7 +17268,7 @@
"psr-7"
],
"support": {
- "source": "https://github.com/symfony/psr-http-message-bridge/tree/v6.4.11"
+ "source": "https://github.com/symfony/psr-http-message-bridge/tree/v6.4.13"
},
"funding": [
{
@@ -17286,20 +17284,20 @@
"type": "tidelift"
}
],
- "time": "2024-08-14T13:55:58+00:00"
+ "time": "2024-09-25T14:18:03+00:00"
},
{
"name": "symfony/routing",
- "version": "v6.4.12",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
- "reference": "a7c8036bd159486228dc9be3e846a00a0dda9f9f"
+ "reference": "640a74250d13f9c30d5ca045b6aaaabcc8215278"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/a7c8036bd159486228dc9be3e846a00a0dda9f9f",
- "reference": "a7c8036bd159486228dc9be3e846a00a0dda9f9f",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/640a74250d13f9c30d5ca045b6aaaabcc8215278",
+ "reference": "640a74250d13f9c30d5ca045b6aaaabcc8215278",
"shasum": ""
},
"require": {
@@ -17353,7 +17351,7 @@
"url"
],
"support": {
- "source": "https://github.com/symfony/routing/tree/v6.4.12"
+ "source": "https://github.com/symfony/routing/tree/v6.4.13"
},
"funding": [
{
@@ -17369,20 +17367,20 @@
"type": "tidelift"
}
],
- "time": "2024-09-20T08:32:26+00:00"
+ "time": "2024-10-01T08:30:56+00:00"
},
{
"name": "symfony/serializer",
- "version": "v6.4.12",
+ "version": "v6.4.15",
"source": {
"type": "git",
"url": "https://github.com/symfony/serializer.git",
- "reference": "10ae9c1b90f4809ccb7277cc8fe8d80b3af4412c"
+ "reference": "9d862d66198f3c2e30404228629ef4c18d5d608e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/serializer/zipball/10ae9c1b90f4809ccb7277cc8fe8d80b3af4412c",
- "reference": "10ae9c1b90f4809ccb7277cc8fe8d80b3af4412c",
+ "url": "https://api.github.com/repos/symfony/serializer/zipball/9d862d66198f3c2e30404228629ef4c18d5d608e",
+ "reference": "9d862d66198f3c2e30404228629ef4c18d5d608e",
"shasum": ""
},
"require": {
@@ -17451,7 +17449,7 @@
"description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/serializer/tree/v6.4.12"
+ "source": "https://github.com/symfony/serializer/tree/v6.4.15"
},
"funding": [
{
@@ -17467,7 +17465,7 @@
"type": "tidelift"
}
],
- "time": "2024-09-20T08:15:52+00:00"
+ "time": "2024-10-23T13:25:59+00:00"
},
{
"name": "symfony/service-contracts",
@@ -17554,16 +17552,16 @@
},
{
"name": "symfony/string",
- "version": "v6.4.12",
+ "version": "v6.4.15",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "f8a1ccebd0997e16112dfecfd74220b78e5b284b"
+ "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/f8a1ccebd0997e16112dfecfd74220b78e5b284b",
- "reference": "f8a1ccebd0997e16112dfecfd74220b78e5b284b",
+ "url": "https://api.github.com/repos/symfony/string/zipball/73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f",
+ "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f",
"shasum": ""
},
"require": {
@@ -17620,7 +17618,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v6.4.12"
+ "source": "https://github.com/symfony/string/tree/v6.4.15"
},
"funding": [
{
@@ -17636,7 +17634,7 @@
"type": "tidelift"
}
],
- "time": "2024-09-20T08:15:52+00:00"
+ "time": "2024-11-13T13:31:12+00:00"
},
{
"name": "symfony/translation",
@@ -17813,16 +17811,16 @@
},
{
"name": "symfony/validator",
- "version": "v6.4.12",
+ "version": "v6.4.15",
"source": {
"type": "git",
"url": "https://github.com/symfony/validator.git",
- "reference": "6da1f0a1ee73d060a411d832cbe0539cfe9bbaa0"
+ "reference": "7541055cdaf54ff95f0735bf703d313374e8b20b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/validator/zipball/6da1f0a1ee73d060a411d832cbe0539cfe9bbaa0",
- "reference": "6da1f0a1ee73d060a411d832cbe0539cfe9bbaa0",
+ "url": "https://api.github.com/repos/symfony/validator/zipball/7541055cdaf54ff95f0735bf703d313374e8b20b",
+ "reference": "7541055cdaf54ff95f0735bf703d313374e8b20b",
"shasum": ""
},
"require": {
@@ -17890,7 +17888,7 @@
"description": "Provides tools to validate values",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/validator/tree/v6.4.12"
+ "source": "https://github.com/symfony/validator/tree/v6.4.15"
},
"funding": [
{
@@ -17906,20 +17904,20 @@
"type": "tidelift"
}
],
- "time": "2024-09-20T08:18:25+00:00"
+ "time": "2024-11-08T15:28:48+00:00"
},
{
"name": "symfony/var-dumper",
- "version": "v6.4.11",
+ "version": "v6.4.15",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "ee14c8254a480913268b1e3b1cba8045ed122694"
+ "reference": "38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ee14c8254a480913268b1e3b1cba8045ed122694",
- "reference": "ee14c8254a480913268b1e3b1cba8045ed122694",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80",
+ "reference": "38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80",
"shasum": ""
},
"require": {
@@ -17975,7 +17973,7 @@
"dump"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v6.4.11"
+ "source": "https://github.com/symfony/var-dumper/tree/v6.4.15"
},
"funding": [
{
@@ -17991,20 +17989,20 @@
"type": "tidelift"
}
],
- "time": "2024-08-30T16:03:21+00:00"
+ "time": "2024-11-08T15:28:48+00:00"
},
{
"name": "symfony/var-exporter",
- "version": "v7.1.2",
+ "version": "v7.1.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-exporter.git",
- "reference": "b80a669a2264609f07f1667f891dbfca25eba44c"
+ "reference": "90173ef89c40e7c8c616653241048705f84130ef"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-exporter/zipball/b80a669a2264609f07f1667f891dbfca25eba44c",
- "reference": "b80a669a2264609f07f1667f891dbfca25eba44c",
+ "url": "https://api.github.com/repos/symfony/var-exporter/zipball/90173ef89c40e7c8c616653241048705f84130ef",
+ "reference": "90173ef89c40e7c8c616653241048705f84130ef",
"shasum": ""
},
"require": {
@@ -18051,7 +18049,7 @@
"serialize"
],
"support": {
- "source": "https://github.com/symfony/var-exporter/tree/v7.1.2"
+ "source": "https://github.com/symfony/var-exporter/tree/v7.1.6"
},
"funding": [
{
@@ -18067,20 +18065,20 @@
"type": "tidelift"
}
],
- "time": "2024-06-28T08:00:31+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/yaml",
- "version": "v6.4.12",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "762ee56b2649659380e0ef4d592d807bc17b7971"
+ "reference": "e99b4e94d124b29ee4cf3140e1b537d2dad8cec9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/762ee56b2649659380e0ef4d592d807bc17b7971",
- "reference": "762ee56b2649659380e0ef4d592d807bc17b7971",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/e99b4e94d124b29ee4cf3140e1b537d2dad8cec9",
+ "reference": "e99b4e94d124b29ee4cf3140e1b537d2dad8cec9",
"shasum": ""
},
"require": {
@@ -18123,7 +18121,7 @@
"description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/yaml/tree/v6.4.12"
+ "source": "https://github.com/symfony/yaml/tree/v6.4.13"
},
"funding": [
{
@@ -18139,7 +18137,7 @@
"type": "tidelift"
}
],
- "time": "2024-09-17T12:47:12+00:00"
+ "time": "2024-09-25T14:18:03+00:00"
},
{
"name": "t4web/composer-lock-parser",
@@ -18242,16 +18240,16 @@
},
{
"name": "twig/twig",
- "version": "v3.14.0",
+ "version": "v3.15.0",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
- "reference": "126b2c97818dbff0cdf3fbfc881aedb3d40aae72"
+ "reference": "2d5b3964cc21d0188633d7ddce732dc8e874db02"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/twigphp/Twig/zipball/126b2c97818dbff0cdf3fbfc881aedb3d40aae72",
- "reference": "126b2c97818dbff0cdf3fbfc881aedb3d40aae72",
+ "url": "https://api.github.com/repos/twigphp/Twig/zipball/2d5b3964cc21d0188633d7ddce732dc8e874db02",
+ "reference": "2d5b3964cc21d0188633d7ddce732dc8e874db02",
"shasum": ""
},
"require": {
@@ -18305,7 +18303,7 @@
],
"support": {
"issues": "https://github.com/twigphp/Twig/issues",
- "source": "https://github.com/twigphp/Twig/tree/v3.14.0"
+ "source": "https://github.com/twigphp/Twig/tree/v3.15.0"
},
"funding": [
{
@@ -18317,7 +18315,7 @@
"type": "tidelift"
}
],
- "time": "2024-09-09T17:55:12+00:00"
+ "time": "2024-11-17T15:59:19+00:00"
},
{
"name": "twistor/flysystem-stream-wrapper",
@@ -20607,16 +20605,16 @@
},
{
"name": "php-http/discovery",
- "version": "1.19.4",
+ "version": "1.20.0",
"source": {
"type": "git",
"url": "https://github.com/php-http/discovery.git",
- "reference": "0700efda8d7526335132360167315fdab3aeb599"
+ "reference": "82fe4c73ef3363caed49ff8dd1539ba06044910d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-http/discovery/zipball/0700efda8d7526335132360167315fdab3aeb599",
- "reference": "0700efda8d7526335132360167315fdab3aeb599",
+ "url": "https://api.github.com/repos/php-http/discovery/zipball/82fe4c73ef3363caed49ff8dd1539ba06044910d",
+ "reference": "82fe4c73ef3363caed49ff8dd1539ba06044910d",
"shasum": ""
},
"require": {
@@ -20680,9 +20678,9 @@
],
"support": {
"issues": "https://github.com/php-http/discovery/issues",
- "source": "https://github.com/php-http/discovery/tree/1.19.4"
+ "source": "https://github.com/php-http/discovery/tree/1.20.0"
},
- "time": "2024-03-29T13:00:05+00:00"
+ "time": "2024-10-02T11:20:13+00:00"
},
{
"name": "php-http/guzzle7-adapter",
@@ -20748,16 +20746,16 @@
},
{
"name": "php-http/httplug",
- "version": "2.4.0",
+ "version": "2.4.1",
"source": {
"type": "git",
"url": "https://github.com/php-http/httplug.git",
- "reference": "625ad742c360c8ac580fcc647a1541d29e257f67"
+ "reference": "5cad731844891a4c282f3f3e1b582c46839d22f4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-http/httplug/zipball/625ad742c360c8ac580fcc647a1541d29e257f67",
- "reference": "625ad742c360c8ac580fcc647a1541d29e257f67",
+ "url": "https://api.github.com/repos/php-http/httplug/zipball/5cad731844891a4c282f3f3e1b582c46839d22f4",
+ "reference": "5cad731844891a4c282f3f3e1b582c46839d22f4",
"shasum": ""
},
"require": {
@@ -20799,9 +20797,9 @@
],
"support": {
"issues": "https://github.com/php-http/httplug/issues",
- "source": "https://github.com/php-http/httplug/tree/2.4.0"
+ "source": "https://github.com/php-http/httplug/tree/2.4.1"
},
- "time": "2023-04-14T15:10:03+00:00"
+ "time": "2024-09-23T11:39:58+00:00"
},
{
"name": "php-http/promise",
@@ -20910,16 +20908,16 @@
},
{
"name": "phpdocumentor/reflection-docblock",
- "version": "5.4.1",
+ "version": "5.6.0",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c"
+ "reference": "f3558a4c23426d12bffeaab463f8a8d8b681193c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c",
- "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/f3558a4c23426d12bffeaab463f8a8d8b681193c",
+ "reference": "f3558a4c23426d12bffeaab463f8a8d8b681193c",
"shasum": ""
},
"require": {
@@ -20928,17 +20926,17 @@
"php": "^7.4 || ^8.0",
"phpdocumentor/reflection-common": "^2.2",
"phpdocumentor/type-resolver": "^1.7",
- "phpstan/phpdoc-parser": "^1.7",
+ "phpstan/phpdoc-parser": "^1.7|^2.0",
"webmozart/assert": "^1.9.1"
},
"require-dev": {
- "mockery/mockery": "~1.3.5",
+ "mockery/mockery": "~1.3.5 || ~1.6.0",
"phpstan/extension-installer": "^1.1",
"phpstan/phpstan": "^1.8",
"phpstan/phpstan-mockery": "^1.1",
"phpstan/phpstan-webmozart-assert": "^1.2",
"phpunit/phpunit": "^9.5",
- "vimeo/psalm": "^5.13"
+ "psalm/phar": "^5.26"
},
"type": "library",
"extra": {
@@ -20968,29 +20966,29 @@
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
"support": {
"issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
- "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.4.1"
+ "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.0"
},
- "time": "2024-05-21T05:55:05+00:00"
+ "time": "2024-11-12T11:25:25+00:00"
},
{
"name": "phpdocumentor/type-resolver",
- "version": "1.8.2",
+ "version": "1.10.0",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/TypeResolver.git",
- "reference": "153ae662783729388a584b4361f2545e4d841e3c"
+ "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/153ae662783729388a584b4361f2545e4d841e3c",
- "reference": "153ae662783729388a584b4361f2545e4d841e3c",
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/679e3ce485b99e84c775d28e2e96fade9a7fb50a",
+ "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a",
"shasum": ""
},
"require": {
"doctrine/deprecations": "^1.0",
"php": "^7.3 || ^8.0",
"phpdocumentor/reflection-common": "^2.0",
- "phpstan/phpdoc-parser": "^1.13"
+ "phpstan/phpdoc-parser": "^1.18|^2.0"
},
"require-dev": {
"ext-tokenizer": "*",
@@ -21026,9 +21024,9 @@
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
"support": {
"issues": "https://github.com/phpDocumentor/TypeResolver/issues",
- "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.2"
+ "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.10.0"
},
- "time": "2024-02-23T11:10:43+00:00"
+ "time": "2024-11-09T15:12:26+00:00"
},
{
"name": "phpspec/prophecy",
@@ -23647,6 +23645,6 @@
"platform": {
"ext-json": "*"
},
- "platform-dev": [],
+ "platform-dev": {},
"plugin-api-version": "2.6.0"
}
diff --git a/conf/cmi/core.entity_form_display.paragraph.curated_event_list.default.yml b/conf/cmi/core.entity_form_display.paragraph.curated_event_list.default.yml
new file mode 100644
index 0000000000..2514fff17a
--- /dev/null
+++ b/conf/cmi/core.entity_form_display.paragraph.curated_event_list.default.yml
@@ -0,0 +1,38 @@
+uuid: b5c5ed81-d651-4db2-8d72-a67e7b66390e
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.field.paragraph.curated_event_list.field_all_events_link
+ - field.field.paragraph.curated_event_list.field_events
+ - paragraphs.paragraphs_type.curated_event_list
+ module:
+ - link
+_core:
+ default_config_hash: xbLWsjGFnK8aSW5O_r3mVF5bAlCp8J6wP5mGihlXLfU
+id: paragraph.curated_event_list.default
+targetEntityType: paragraph
+bundle: curated_event_list
+mode: default
+content:
+ field_all_events_link:
+ type: link_default
+ weight: 1
+ region: content
+ settings:
+ placeholder_url: ''
+ placeholder_title: ''
+ third_party_settings: { }
+ field_events:
+ type: entity_reference_autocomplete
+ weight: 0
+ region: content
+ settings:
+ match_operator: CONTAINS
+ match_limit: 5
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+hidden:
+ created: true
+ status: true
diff --git a/conf/cmi/core.entity_view_display.linkedevents_event.linkedevents_event.default.yml b/conf/cmi/core.entity_view_display.linkedevents_event.linkedevents_event.default.yml
new file mode 100644
index 0000000000..78ab301eea
--- /dev/null
+++ b/conf/cmi/core.entity_view_display.linkedevents_event.linkedevents_event.default.yml
@@ -0,0 +1,75 @@
+uuid: 22363443-8bc6-4b97-980f-6bfb225edb1b
+langcode: en
+status: true
+dependencies:
+ config:
+ - responsive_image.styles.card_teaser
+ module:
+ - datetime
+ - external_entities
+ - imagecache_external
+ - linkit
+_core:
+ default_config_hash: HLUzZHxqtb77OIc2B344fWXiNo5fO78woa0r4KmRGcA
+id: linkedevents_event.linkedevents_event.default
+targetEntityType: linkedevents_event
+bundle: linkedevents_event
+mode: default
+content:
+ end_time:
+ type: datetime_default
+ label: hidden
+ settings:
+ timezone_override: ''
+ format_type: medium
+ third_party_settings: { }
+ weight: 3
+ region: content
+ external_link:
+ type: linkit
+ label: hidden
+ settings:
+ trim_length: 80
+ url_only: false
+ url_plain: false
+ rel: ''
+ target: ''
+ linkit_profile: default
+ third_party_settings: { }
+ weight: 4
+ region: content
+ langcode:
+ type: string_default
+ label: hidden
+ settings: { }
+ third_party_settings: { }
+ weight: 5
+ region: content
+ main_image:
+ type: imagecache_external_responsive_image
+ label: hidden
+ settings:
+ imagecache_external_link: ''
+ imagecache_external_responsive_style: card_teaser
+ third_party_settings: { }
+ weight: 1
+ region: content
+ start_time:
+ type: datetime_default
+ label: hidden
+ settings:
+ timezone_override: ''
+ format_type: medium
+ third_party_settings: { }
+ weight: 2
+ region: content
+ title:
+ type: string
+ label: hidden
+ settings:
+ link_to_entity: false
+ third_party_settings: { }
+ weight: 0
+ region: content
+hidden:
+ search_api_excerpt: true
diff --git a/conf/cmi/core.entity_view_display.paragraph.curated_event_list.default.yml b/conf/cmi/core.entity_view_display.paragraph.curated_event_list.default.yml
new file mode 100644
index 0000000000..966ffdd46e
--- /dev/null
+++ b/conf/cmi/core.entity_view_display.paragraph.curated_event_list.default.yml
@@ -0,0 +1,40 @@
+uuid: 313ec60d-d84a-4e82-9ae3-ee3221c0e631
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.field.paragraph.curated_event_list.field_all_events_link
+ - field.field.paragraph.curated_event_list.field_events
+ - paragraphs.paragraphs_type.curated_event_list
+ module:
+ - link
+_core:
+ default_config_hash: kSyBcsfddKV9vQJsToglwPaZvKFQSf3GDFPLqkzIfTQ
+id: paragraph.curated_event_list.default
+targetEntityType: paragraph
+bundle: curated_event_list
+mode: default
+content:
+ field_all_events_link:
+ type: link
+ label: hidden
+ settings:
+ trim_length: 80
+ url_only: false
+ url_plain: false
+ rel: ''
+ target: ''
+ third_party_settings: { }
+ weight: 1
+ region: content
+ field_events:
+ type: entity_reference_entity_view
+ label: hidden
+ settings:
+ view_mode: default
+ link: false
+ third_party_settings: { }
+ weight: 0
+ region: content
+hidden:
+ search_api_excerpt: true
diff --git a/conf/cmi/core.extension.yml b/conf/cmi/core.extension.yml
index 22d09b7a54..3794c42554 100644
--- a/conf/cmi/core.extension.yml
+++ b/conf/cmi/core.extension.yml
@@ -54,12 +54,13 @@ module:
grants_admin_applications: 0
grants_applicant_info: 0
grants_application_search: 0
- grants_attachments: 0
grants_audit_log: 0
grants_budget_components: 0
grants_club_section: 0
+ grants_events: 0
grants_front_banner: 0
grants_industries: 0
+ grants_logger: 0
grants_mandate: 0
grants_members: 0
grants_metadata: 0
@@ -103,6 +104,7 @@ module:
helfi_paragraphs_columns: 0
helfi_paragraphs_contact_card_listing: 0
helfi_paragraphs_content_cards: 0
+ helfi_paragraphs_curated_event_list: 0
helfi_paragraphs_hearings: 0
helfi_paragraphs_hero: 0
helfi_paragraphs_image: 0
@@ -217,9 +219,10 @@ module:
webform_translation_permissions: 0
webform_ui: 0
webform_views: 0
- grants_handler: 1
+ grants_attachments: 1
menu_admin_per_menu: 1
pathauto: 1
+ grants_handler: 2
content_translation: 10
externalauth: 10
views: 10
diff --git a/conf/cmi/external_entities.external_entity_type.linkedevents_event.yml b/conf/cmi/external_entities.external_entity_type.linkedevents_event.yml
new file mode 100644
index 0000000000..819ef5ee38
--- /dev/null
+++ b/conf/cmi/external_entities.external_entity_type.linkedevents_event.yml
@@ -0,0 +1,38 @@
+uuid: 66fe8cbc-203c-40aa-ac7b-6e0e89470312
+langcode: en
+status: true
+dependencies: { }
+_core:
+ default_config_hash: Ll_0kw3O6gGsRvmdTi7l4K2pwhUrL0yQT4uPcttspmA
+id: linkedevents_event
+label: 'LinkedEvents: Event'
+label_plural: 'LinkedEvents: Events'
+description: 'Event entities from https://api.hel.fi/linkedevents.'
+read_only: true
+generate_aliases: false
+field_mapper_id: jsonpath
+field_mapper_config:
+ field_mappings:
+ id:
+ value: $.id
+ uuid:
+ value: $.id
+ title:
+ value: $.title
+ main_image:
+ uri: '$.images[0].url'
+ title: '$.images[0].alt_text'
+ start_time:
+ value: $.start_time
+ end_time:
+ value: $.end_time
+ external_link:
+ uri: $.external_link
+ title: $.clean_title
+storage_client_id: linkedevents_events
+storage_client_config: null
+persistent_cache_max_age: 0
+annotation_entity_type_id: null
+annotation_bundle_id: null
+annotation_field_name: null
+inherits_annotation_fields: false
diff --git a/conf/cmi/field.field.node.landing_page.field_content.yml b/conf/cmi/field.field.node.landing_page.field_content.yml
index f79d0bf279..54981785dd 100644
--- a/conf/cmi/field.field.node.landing_page.field_content.yml
+++ b/conf/cmi/field.field.node.landing_page.field_content.yml
@@ -9,6 +9,7 @@ dependencies:
- paragraphs.paragraphs_type.chart
- paragraphs.paragraphs_type.columns
- paragraphs.paragraphs_type.content_cards
+ - paragraphs.paragraphs_type.curated_event_list
- paragraphs.paragraphs_type.event_list
- paragraphs.paragraphs_type.from_library
- paragraphs.paragraphs_type.front_banner
@@ -65,6 +66,7 @@ settings:
service_list_search: service_list_search
unit_search: unit_search
unit_contact_card: unit_contact_card
+ curated_event_list: curated_event_list
negate: 0
target_bundles_drag_drop:
banner:
@@ -79,6 +81,9 @@ settings:
content_cards:
weight: 1
enabled: true
+ curated_event_list:
+ weight: 15
+ enabled: true
event_list:
weight: 13
enabled: true
diff --git a/conf/cmi/field.field.paragraph.curated_event_list.field_all_events_link.yml b/conf/cmi/field.field.paragraph.curated_event_list.field_all_events_link.yml
new file mode 100644
index 0000000000..78d0b93564
--- /dev/null
+++ b/conf/cmi/field.field.paragraph.curated_event_list.field_all_events_link.yml
@@ -0,0 +1,30 @@
+uuid: b144b934-3c5a-4c5b-ae89-b477bfb8367d
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.paragraph.field_all_events_link
+ - paragraphs.paragraphs_type.curated_event_list
+ module:
+ - link
+_core:
+ default_config_hash: FfVydFQYnAcPJkSaTbBQoyzqe8k11WrSJ5tSxAt8b1k
+id: paragraph.curated_event_list.field_all_events_link
+field_name: field_all_events_link
+entity_type: paragraph
+bundle: curated_event_list
+label: 'All events link'
+description: "Add a link to the tapahtumat.hel.fi website. You may also filter the events in the event calendar as desired and copy the page's URL.\r\n \r\nAlso provide a text for the link, eg. View all events. "
+required: false
+translatable: false
+default_value:
+ -
+ attributes: { }
+ uri: 'https://tapahtumat.hel.fi'
+ title: 'View all events'
+ options: { }
+default_value_callback: ''
+settings:
+ title: 2
+ link_type: 16
+field_type: link
diff --git a/conf/cmi/field.field.paragraph.curated_event_list.field_events.yml b/conf/cmi/field.field.paragraph.curated_event_list.field_events.yml
new file mode 100644
index 0000000000..896f3cdee2
--- /dev/null
+++ b/conf/cmi/field.field.paragraph.curated_event_list.field_events.yml
@@ -0,0 +1,28 @@
+uuid: 41acbd4d-63ba-4cb7-919c-d6435553d4a9
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.paragraph.field_events
+ - paragraphs.paragraphs_type.curated_event_list
+_core:
+ default_config_hash: XaOHQv-1E_t55GwYhhyvtA03_7mWbdEbmXA3YhGrHiA
+id: paragraph.curated_event_list.field_events
+field_name: field_events
+entity_type: paragraph
+bundle: curated_event_list
+label: Events
+description: "Pick events to display in the list. You may either search event by their name or enter their ID. \r\n \r\nYou can find the ID of an event on tapahtumat.hel.fi site from the URL of the page. For example, in the url https://tapahtumat.hel.fi/fi/events/helsinki:agiy4m4ida the helsinki:agiy4m4ida part is the ID of the event.\r\n \r\nThe page will display the top three events. You can arrange the events by dragging. Expired events will be automatically removed from the page."
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings:
+ handler: 'default:linkedevents_event'
+ handler_settings:
+ target_bundles: null
+ sort:
+ field: _none
+ direction: ASC
+ auto_create: false
+field_type: entity_reference
diff --git a/conf/cmi/field.storage.paragraph.field_all_events_link.yml b/conf/cmi/field.storage.paragraph.field_all_events_link.yml
new file mode 100644
index 0000000000..046d3b06b4
--- /dev/null
+++ b/conf/cmi/field.storage.paragraph.field_all_events_link.yml
@@ -0,0 +1,21 @@
+uuid: 1dd4d7e6-e3be-490e-9309-e9380e0c33b4
+langcode: en
+status: true
+dependencies:
+ module:
+ - link
+ - paragraphs
+_core:
+ default_config_hash: 7QiTeiuYd-9Za2xvC3WVShDfIhAcgIpMYzIV4PX2NLQ
+id: paragraph.field_all_events_link
+field_name: field_all_events_link
+entity_type: paragraph
+type: link
+settings: { }
+module: link
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/conf/cmi/field.storage.paragraph.field_events.yml b/conf/cmi/field.storage.paragraph.field_events.yml
new file mode 100644
index 0000000000..aff4e3ba3e
--- /dev/null
+++ b/conf/cmi/field.storage.paragraph.field_events.yml
@@ -0,0 +1,22 @@
+uuid: a381685c-627a-4ba4-8be3-5bb2d2a705bd
+langcode: en
+status: true
+dependencies:
+ module:
+ - external_entities
+ - paragraphs
+_core:
+ default_config_hash: 5xBhIfvn2RSNE7qg7Ep4BljIMo7j78jrEekdHV_eCgo
+id: paragraph.field_events
+field_name: field_events
+entity_type: paragraph
+type: entity_reference
+settings:
+ target_type: linkedevents_event
+module: core
+locked: false
+cardinality: -1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/conf/cmi/grants_metadata.settings.yml b/conf/cmi/grants_metadata.settings.yml
index 0fbb803dbb..1b97e04b44 100644
--- a/conf/cmi/grants_metadata.settings.yml
+++ b/conf/cmi/grants_metadata.settings.yml
@@ -299,7 +299,6 @@ third_party_options:
52: 'Liikunnan erityisavustus 2'
53: 'Kulttuurin ja vapaa-ajan erityisavustus 1'
54: 'Kulttuurin ja vapaa-ajan erityisavustus 2'
-
langcode: en
config_import_ignore:
- 53
diff --git a/conf/cmi/language/en/webform.webform.liikunta_suunnistuskartta_avustu.yml b/conf/cmi/language/en/webform.webform.liikunta_suunnistuskartta_avustu.yml
index 2a002764f5..207508f0c9 100644
--- a/conf/cmi/language/en/webform.webform.liikunta_suunnistuskartta_avustu.yml
+++ b/conf/cmi/language/en/webform.webform.liikunta_suunnistuskartta_avustu.yml
@@ -75,7 +75,7 @@ elements: |
All the attachments listed below must be submitted for the processing of the grant application. The grant application may be rejected if the attachments are not submitted. If any of the attachments is missing, let us know in the Further clarification on attachments section of the application.
Required attachments
- For the processing of the grant application, the required attachments are the confirmed attachments approved and signed by the community at its meeting for the previous accounting period and for the operating year for which the grant is being applied for. The attachments concerning the previous accounting period are the financial statements, the annual report, the audit or performance audit report and the minutes of the annual meeting. The attachments for the year for which the grant is being applied for are the budget and action plan.
+ Invoices and receipts for the cost of producing orienteering maps must be submitted only upon request.
Submission of several attachments as a single file
If you wish, you can submit several attachments as a single file under Financial statements or Budget. In this case, under the other attachment headings, indicate “The attachment has been submitted as a single file or with another application.”
Attachments previously submitted to the City of Helsinki
diff --git a/conf/cmi/language/fi/field.field.paragraph.curated_event_list.field_all_events_link.yml b/conf/cmi/language/fi/field.field.paragraph.curated_event_list.field_all_events_link.yml
new file mode 100644
index 0000000000..baa2627931
--- /dev/null
+++ b/conf/cmi/language/fi/field.field.paragraph.curated_event_list.field_all_events_link.yml
@@ -0,0 +1,5 @@
+label: 'Kaikki tapahtumat -linkki'
+description: "Lisää likki tapahtumat.hel.fi -sivulle. Voit halutessasi tehdä tapahtumakalenterissa haluamasi tapahtumien rajauksen ja kopioida sivun URL-osoitteen.\r\nLisää myös teksti linkille, esimerkiksi. Katso kaikki tapahtumat "
+default_value:
+ -
+ title: 'Katso kaikki tapahtumat'
diff --git a/conf/cmi/language/fi/field.field.paragraph.curated_event_list.field_events.yml b/conf/cmi/language/fi/field.field.paragraph.curated_event_list.field_events.yml
new file mode 100644
index 0000000000..65cac6a6ed
--- /dev/null
+++ b/conf/cmi/language/fi/field.field.paragraph.curated_event_list.field_events.yml
@@ -0,0 +1,2 @@
+label: Tapahtumat
+description: "Valitse tapahtumat, jotka näytetään listassa. Voit hakea tapahtumaa sen nimellä tai tapahtuman ID:llä.\r\n \r\nLöydät tapahtuman ID:n tapahtumat.hel.fi-sivun osoitteesta: esimerkiksi osoitteessa https://tapahtumat.hel.fi/fi/events/helsinki:agiy4m4ida kohta helsinki:agiy4m4ida on tapahtuman ID.\r\n \r\nSivulla näytetään kolme ylintä tapahtumaa. Voit järjestää tapahtumia raahaamalla. Vanhentuneet tapahtumat poistuvat sivulta automaattisesti."
diff --git a/conf/cmi/language/fi/paragraphs.paragraphs_type.curated_event_list.yml b/conf/cmi/language/fi/paragraphs.paragraphs_type.curated_event_list.yml
new file mode 100644
index 0000000000..7d8f759d86
--- /dev/null
+++ b/conf/cmi/language/fi/paragraphs.paragraphs_type.curated_event_list.yml
@@ -0,0 +1,2 @@
+label: 'Kuratoitu tapahtumalista'
+description: 'Manuaalisesti ylläpidettävä tapahtumalista tapahtumille Linked Events -rajapinnasta.'
diff --git a/conf/cmi/language/sv/webform.webform.liikunta_suunnistuskartta_avustu.yml b/conf/cmi/language/sv/webform.webform.liikunta_suunnistuskartta_avustu.yml
index b77a129bba..6b16f2a791 100644
--- a/conf/cmi/language/sv/webform.webform.liikunta_suunnistuskartta_avustu.yml
+++ b/conf/cmi/language/sv/webform.webform.liikunta_suunnistuskartta_avustu.yml
@@ -77,7 +77,7 @@ elements: |
'#markup': |-
Alla bilagor som anges nedan måste lämnas in för behandling av ansökan om understöd. Ansökan om understöd kan avslås om bilagorna inte har lämnats in. Om någon av bilagorna saknas, meddela oss om det i punkten Ytterligare information om bilagor i ansökan.
Erforderliga bilagor
- För behandling av ansökan om understöd behövs styrkta bilagor från den föregående räkenskapsperioden som samfundet har godkänt och undertecknat vid sitt möte samt bilagor för det verksamhetsår för vilket understödet ansöks. Bilagorna från den föregående räkenskapsperioden är: bokslut, verksamhetsberättelse, revisionsberättelse och protokoll från årsstämman. Bilagorna för det år för vilket understödet ansöks är: budget och verksamhetsplan.
+ Fakturorna och kvittona över kostnaderna för framställning av orienteringskartor ska lämnas endast separat på begäran.
Inlämning av flera bilagor i en fil
Om du vill kan du lämna in flera bilagor i en fil i punkten Bokslut eller budget. Ange i detta fall vid andra bilagor att ”Bilagan har lämnats in som en fil eller i samband med en annan ansökan”.
Bilagor som tidigare lämnats in till Helsingfors stad
diff --git a/conf/cmi/paragraphs.paragraphs_type.curated_event_list.yml b/conf/cmi/paragraphs.paragraphs_type.curated_event_list.yml
new file mode 100644
index 0000000000..b729b022a5
--- /dev/null
+++ b/conf/cmi/paragraphs.paragraphs_type.curated_event_list.yml
@@ -0,0 +1,12 @@
+uuid: 5b0c689e-1733-47ff-ba7c-63923e4f2116
+langcode: en
+status: true
+dependencies: { }
+_core:
+ default_config_hash: OdlftsJm7cyT434X7pj43aSTgKo7t5f7eYxG3ShBimY
+id: curated_event_list
+label: 'Curated event list'
+icon_uuid: null
+icon_default: null
+description: 'Event list with curated event picks loaded from Linked Events API.'
+behavior_plugins: { }
diff --git a/conf/cmi/raven.settings.yml b/conf/cmi/raven.settings.yml
index 983d704b24..d2afac6392 100644
--- a/conf/cmi/raven.settings.yml
+++ b/conf/cmi/raven.settings.yml
@@ -4,14 +4,14 @@ client_key: ''
environment: ''
release: ''
log_levels:
- 1: 1
- 2: 2
- 3: 3
- 4: 4
- 5: 0
- 6: 0
- 7: 0
- 8: 0
+ emergency: true
+ alert: true
+ critical: true
+ error: true
+ warning: false
+ notice: false
+ info: false
+ debug: false
stack: true
timeout: 2.0
message_limit: 2048
diff --git a/conf/cmi/responsive_image.styles.unit_contact_card.yml b/conf/cmi/responsive_image.styles.unit_contact_card.yml
index 3893c27faa..3b41081f10 100644
--- a/conf/cmi/responsive_image.styles.unit_contact_card.yml
+++ b/conf/cmi/responsive_image.styles.unit_contact_card.yml
@@ -3,72 +3,72 @@ langcode: en
status: true
dependencies:
config:
- - image.style.1.5_1120w_746h_LQ
- - image.style.1.5_1200w_800h_LQ
- - image.style.1.5_1298w_866h_LQ
- - image.style.1.5_1470w_980h_LQ
- - image.style.1.5_1854w_1236h_LQ
- - image.style.1.5_560w_373h
- - image.style.1.5_600w_400h
- - image.style.1.5_649w_433h
- - image.style.1.5_735w_490h
- - image.style.1.5_927w_618h
+ - image.style.1.5_1022w_682h_LQ
+ - image.style.1.5_217w_145h
+ - image.style.1.5_264w_176h
+ - image.style.1.5_341w_227h
+ - image.style.1.5_378w_252h
+ - image.style.1.5_434w_290h_LQ
+ - image.style.1.5_511w_341h
+ - image.style.1.5_528w_352h_LQ
+ - image.style.1.5_682w_454h_LQ
+ - image.style.1.5_756w_504h_LQ
module:
- helfi_image_styles
_core:
- default_config_hash: j4r0g0EtcwDoFwxEuB3RGVktSuN6LWThnZBfw2SpG6g
+ default_config_hash: VnnwBYRxRNKSPg5iTbuRmMLcv0ZtU6Tjd4crcbDTeCs
id: unit_contact_card
label: 'Unit Contact Card'
image_style_mappings:
-
image_mapping_type: image_style
- image_mapping: 1.5_649w_433h
+ image_mapping: 1.5_378w_252h
breakpoint_id: helfi_image_styles.xl
multiplier: 1x
-
image_mapping_type: image_style
- image_mapping: 1.5_1298w_866h_LQ
+ image_mapping: 1.5_756w_504h_LQ
breakpoint_id: helfi_image_styles.xl
multiplier: 2x
-
image_mapping_type: image_style
- image_mapping: 1.5_600w_400h
+ image_mapping: 1.5_341w_227h
breakpoint_id: helfi_image_styles.l
multiplier: 1x
-
image_mapping_type: image_style
- image_mapping: 1.5_1200w_800h_LQ
+ image_mapping: 1.5_682w_454h_LQ
breakpoint_id: helfi_image_styles.l
multiplier: 2x
-
image_mapping_type: image_style
- image_mapping: 1.5_927w_618h
+ image_mapping: 1.5_264w_176h
breakpoint_id: helfi_image_styles.m
multiplier: 1x
-
image_mapping_type: image_style
- image_mapping: 1.5_1854w_1236h_LQ
+ image_mapping: 1.5_528w_352h_LQ
breakpoint_id: helfi_image_styles.m
multiplier: 2x
-
image_mapping_type: image_style
- image_mapping: 1.5_735w_490h
+ image_mapping: 1.5_217w_145h
breakpoint_id: helfi_image_styles.s
multiplier: 1x
-
image_mapping_type: image_style
- image_mapping: 1.5_1470w_980h_LQ
+ image_mapping: 1.5_434w_290h_LQ
breakpoint_id: helfi_image_styles.s
multiplier: 2x
-
image_mapping_type: image_style
- image_mapping: 1.5_560w_373h
+ image_mapping: 1.5_511w_341h
breakpoint_id: helfi_image_styles.xs
multiplier: 1x
-
image_mapping_type: image_style
- image_mapping: 1.5_1120w_746h_LQ
+ image_mapping: 1.5_1022w_682h_LQ
breakpoint_id: helfi_image_styles.xs
multiplier: 2x
breakpoint_group: helfi_image_styles
-fallback_image_style: 1.5_735w_490h
+fallback_image_style: 1.5_378w_252h
diff --git a/conf/cmi/user.role.ad_user.yml b/conf/cmi/user.role.ad_user.yml
index d1c3ef4d7b..89763b05b0 100644
--- a/conf/cmi/user.role.ad_user.yml
+++ b/conf/cmi/user.role.ad_user.yml
@@ -6,6 +6,7 @@ dependencies:
- taxonomy.vocabulary.news_tags
module:
- file
+ - raven
- taxonomy
id: ad_user
label: 'AD User'
@@ -14,3 +15,4 @@ is_admin: null
permissions:
- 'delete own files'
- 'edit terms in news_tags'
+ - 'send performance traces to sentry'
diff --git a/conf/cmi/user.role.admin.yml b/conf/cmi/user.role.admin.yml
index c3ee3c3409..601310a188 100644
--- a/conf/cmi/user.role.admin.yml
+++ b/conf/cmi/user.role.admin.yml
@@ -56,6 +56,7 @@ dependencies:
- path
- pathauto
- publication_date
+ - raven
- redirect
- responsive_image
- role_delegation
@@ -283,6 +284,7 @@ permissions:
- 'revert service revisions'
- 'schedule publishing of nodes'
- 'select account cancellation method'
+ - 'send performance traces to sentry'
- 'set announcement published on date'
- 'set landing_page published on date'
- 'set page published on date'
diff --git a/conf/cmi/user.role.anonymous.yml b/conf/cmi/user.role.anonymous.yml
index 3aa3993dde..60e2693019 100644
--- a/conf/cmi/user.role.anonymous.yml
+++ b/conf/cmi/user.role.anonymous.yml
@@ -8,16 +8,19 @@ dependencies:
- helfi_api_base
- helfi_tpr
- media
+ - raven
- system
_core:
default_config_hash: EDyVdaROG6pYzyEct43c01Wq4gpATszrk-qR6gqnQ84
id: anonymous
-label: 'Anonyymi käyttäjä'
+label: 'Anonymous user'
weight: -10
is_admin: false
permissions:
- 'access content'
- 'display eu cookie compliance popup'
+ - 'send javascript errors to sentry'
+ - 'send performance traces to sentry'
- 'view helfi_announcements external entity'
- 'view helfi_news external entity'
- 'view helfi_news_groups external entity'
diff --git a/conf/cmi/user.role.authenticated.yml b/conf/cmi/user.role.authenticated.yml
index ecda6e3ca1..d1d55248c8 100644
--- a/conf/cmi/user.role.authenticated.yml
+++ b/conf/cmi/user.role.authenticated.yml
@@ -16,11 +16,13 @@ dependencies:
- helfi_tpr
- media
- node
+ - paragraphs
+ - raven
- system
_core:
default_config_hash: 83Nuup-6oYkkdAsvg3nrR2pBOgtTXEV1JrzpCCLkYLM
id: authenticated
-label: 'Sisäänkirjautunut käyttäjä'
+label: 'Authenticated user'
weight: -9
is_admin: false
permissions:
@@ -29,6 +31,8 @@ permissions:
- 'delete own files'
- 'display eu cookie compliance popup'
- 'edit own address content'
+ - 'send javascript errors to sentry'
+ - 'send performance traces to sentry'
- 'use text format full_html'
- 'use text format minimal'
- 'use text format webform_default'
@@ -42,3 +46,4 @@ permissions:
- 'view remote entities'
- 'view tpr_service'
- 'view tpr_unit'
+ - 'view unpublished paragraphs'
diff --git a/conf/cmi/user.role.content_producer.yml b/conf/cmi/user.role.content_producer.yml
index 8f35351246..c674e78fd1 100644
--- a/conf/cmi/user.role.content_producer.yml
+++ b/conf/cmi/user.role.content_producer.yml
@@ -35,6 +35,7 @@ dependencies:
- path
- pathauto
- publication_date
+ - raven
- scheduler
- system
- taxonomy
@@ -125,6 +126,7 @@ permissions:
- 'revert page revisions'
- 'revert service revisions'
- 'schedule publishing of nodes'
+ - 'send performance traces to sentry'
- 'set announcement published on date'
- 'set landing_page published on date'
- 'set page published on date'
diff --git a/conf/cmi/user.role.content_producer_industry.yml b/conf/cmi/user.role.content_producer_industry.yml
index 5e7d0b7534..09c3a0656a 100644
--- a/conf/cmi/user.role.content_producer_industry.yml
+++ b/conf/cmi/user.role.content_producer_industry.yml
@@ -18,6 +18,7 @@ dependencies:
- override_node_options
- paragraphs
- path
+ - raven
- scheduler
- system
- taxonomy
@@ -51,6 +52,7 @@ permissions:
- 'override service published option'
- 'revert service revisions'
- 'schedule publishing of nodes'
+ - 'send performance traces to sentry'
- 'translate editable entities'
- 'translate interface'
- 'update media'
diff --git a/conf/cmi/user.role.editor.yml b/conf/cmi/user.role.editor.yml
index 603f3c5a78..22a63ffb9f 100644
--- a/conf/cmi/user.role.editor.yml
+++ b/conf/cmi/user.role.editor.yml
@@ -32,6 +32,7 @@ dependencies:
- paragraphs_library
- path
- publication_date
+ - raven
- redirect
- scheduler
- system
@@ -132,6 +133,7 @@ permissions:
- 'revert news_item revisions'
- 'revert page revisions'
- 'schedule publishing of nodes'
+ - 'send performance traces to sentry'
- 'set announcement published on date'
- 'set landing_page published on date'
- 'set news_item published on date'
diff --git a/conf/cmi/user.role.grants_admin.yml b/conf/cmi/user.role.grants_admin.yml
index 715c5b5df6..11293a7ac7 100644
--- a/conf/cmi/user.role.grants_admin.yml
+++ b/conf/cmi/user.role.grants_admin.yml
@@ -44,6 +44,7 @@ dependencies:
- path
- pathauto
- publication_date
+ - raven
- role_delegation
- scheduler
- system
@@ -214,13 +215,13 @@ permissions:
- 'revert service revisions'
- 'schedule publishing of nodes'
- 'select account cancellation method'
+ - 'send performance traces to sentry'
- 'set announcement published on date'
- 'set landing_page published on date'
- 'set news_item published on date'
- 'set page published on date'
- 'translate announcement node'
- 'translate any webform'
- - 'translate article node'
- 'translate avustuslaji taxonomy_term'
- 'translate block_content'
- 'translate configuration'
diff --git a/conf/cmi/user.role.grants_producer.yml b/conf/cmi/user.role.grants_producer.yml
index fe781261f6..9f11962e68 100644
--- a/conf/cmi/user.role.grants_producer.yml
+++ b/conf/cmi/user.role.grants_producer.yml
@@ -3,15 +3,29 @@ langcode: en
status: true
dependencies:
config:
+ - media.type.file
+ - media.type.image
+ - media.type.remote_video
- node.type.landing_page
- node.type.page
- node.type.service
+ - taxonomy.vocabulary.avustuslaji
+ - taxonomy.vocabulary.keywords
+ - taxonomy.vocabulary.news_tags
+ - taxonomy.vocabulary.target_group
+ - taxonomy.vocabulary.ukk_kategoriat
+ - taxonomy.vocabulary.unit_type
module:
+ - block_content
+ - content_translation
- file
- locale
- media
+ - menu_link_content
- path
+ - raven
- system
+ - taxonomy
- toolbar
- view_unpublished
- webform
@@ -28,8 +42,8 @@ permissions:
- 'delete own files'
- 'edit any webform'
- 'edit terms in news_tags'
+ - 'send performance traces to sentry'
- 'translate any webform'
- - 'translate article node'
- 'translate avustuslaji taxonomy_term'
- 'translate block_content'
- 'translate editable entities'
diff --git a/conf/cmi/user.role.grants_producer_industry.yml b/conf/cmi/user.role.grants_producer_industry.yml
index ad77327c2f..bae9d5d196 100644
--- a/conf/cmi/user.role.grants_producer_industry.yml
+++ b/conf/cmi/user.role.grants_producer_industry.yml
@@ -11,6 +11,7 @@ dependencies:
- locale
- media
- path
+ - raven
- system
- toolbar
- view_unpublished
@@ -26,6 +27,7 @@ permissions:
- 'create url aliases'
- 'delete own files'
- 'edit any webform'
+ - 'send performance traces to sentry'
- 'translate interface'
- 'view any unpublished landing_page content'
- 'view any unpublished page content'
diff --git a/conf/cmi/user.role.helsinkiprofiili.yml b/conf/cmi/user.role.helsinkiprofiili.yml
index 315cafb3c8..cb6fb13043 100644
--- a/conf/cmi/user.role.helsinkiprofiili.yml
+++ b/conf/cmi/user.role.helsinkiprofiili.yml
@@ -7,6 +7,7 @@ dependencies:
- grants_mandate
- grants_oma_asiointi
- grants_profile
+ - raven
- webform
id: helsinkiprofiili
label: HelsinkiProfiili
@@ -18,5 +19,6 @@ permissions:
- 'delete own files'
- 'edit own webform submission'
- 'get mandates from dvv'
+ - 'send performance traces to sentry'
- 'view own grants_profile'
- 'view own webform submission'
diff --git a/conf/cmi/user.role.json_api_user.yml b/conf/cmi/user.role.json_api_user.yml
index 9871557ef6..7ee500c140 100644
--- a/conf/cmi/user.role.json_api_user.yml
+++ b/conf/cmi/user.role.json_api_user.yml
@@ -4,6 +4,7 @@ status: true
dependencies:
module:
- file
+ - raven
- webform
id: json_api_user
label: 'JSON API User'
@@ -12,3 +13,4 @@ is_admin: null
permissions:
- 'access any webform configuration'
- 'delete own files'
+ - 'send performance traces to sentry'
diff --git a/conf/cmi/user.role.performance_test_user.yml b/conf/cmi/user.role.performance_test_user.yml
index b19cd6f36e..bc331adc52 100644
--- a/conf/cmi/user.role.performance_test_user.yml
+++ b/conf/cmi/user.role.performance_test_user.yml
@@ -4,9 +4,11 @@ status: true
dependencies:
module:
- file
+ - raven
id: performance_test_user
label: 'Performance test user'
weight: 8
is_admin: null
permissions:
- 'delete own files'
+ - 'send performance traces to sentry'
diff --git a/conf/cmi/user.role.read_only.yml b/conf/cmi/user.role.read_only.yml
index dfdf13bb4b..bc79e76464 100644
--- a/conf/cmi/user.role.read_only.yml
+++ b/conf/cmi/user.role.read_only.yml
@@ -11,6 +11,7 @@ dependencies:
- helfi_tpr
- node
- paragraphs
+ - raven
- view_unpublished
id: read_only
label: 'Vain luku'
@@ -18,6 +19,7 @@ weight: -7
is_admin: null
permissions:
- 'delete own files'
+ - 'send performance traces to sentry'
- 'view any unpublished announcement content'
- 'view any unpublished landing_page content'
- 'view any unpublished page content'
diff --git a/conf/cmi/user.role.survey_editor.yml b/conf/cmi/user.role.survey_editor.yml
index 7ba1bc811e..87fcad06df 100644
--- a/conf/cmi/user.role.survey_editor.yml
+++ b/conf/cmi/user.role.survey_editor.yml
@@ -8,6 +8,7 @@ dependencies:
- content_translation
- node
- publication_date
+ - raven
_core:
default_config_hash: CliaTgzCQcvNF9ot3u_EbHnydymXh8bvNgNFlSffj9s
id: survey_editor
@@ -22,6 +23,7 @@ permissions:
- 'edit any survey content'
- 'edit own survey content'
- 'revert survey revisions'
+ - 'send performance traces to sentry'
- 'set survey published on date'
- 'translate survey node'
- 'view survey revisions'
diff --git a/conf/cmi/webform.webform.liikunta_suunnistuskartta_avustu.yml b/conf/cmi/webform.webform.liikunta_suunnistuskartta_avustu.yml
index 38e0fbcce9..72c30e2971 100644
--- a/conf/cmi/webform.webform.liikunta_suunnistuskartta_avustu.yml
+++ b/conf/cmi/webform.webform.liikunta_suunnistuskartta_avustu.yml
@@ -266,7 +266,7 @@ elements: |-
'#markup': |-
Avustushakemuksen käsittelyä varten tulee toimittaa kaikki alla luetellut liitteet. Avustushakemus voidaan hylätä, jos liitteitä ei ole toimitettu. Mikäli joku liitteistä puuttuu kerro siitä hakemuksen Lisäselvitys liitteistä -kohdassa.
Vaaditut liitteet
- Avustushakemuksen käsittelyä varten tarvitaan vahvistettuja, yhteisön kokouksessaan hyväksymiä ja allekirjoittamia, liitteitä edelliseltä päättyneeltä tilikaudelta sekä liitteitä sille toimintavuodelle, jolle avustusta haetaan. Edellistä tilikautta koskevat liitteet ovat: tilinpäätös, toimintakertomus ja tilin- tai toiminnantarkastuskertomus sekä vuosikokouksen pöytäkirja. Liitteet vuodelle, jolle avustusta haetaan ovat: talousarvio ja toimintasuunnitelma.
+ Suunnistuskarttojen valmistuskustannuksiin liittyvät laskut ja kuitit toimitetaan ainoastaan erikseen pyydettäessä.
Usean liitteen toimittaminen yhtenä tiedostona
Voit halutessasi toimittaa useampia liitteitä yhtenä tiedostona Tilinpäätös tai talousarvio -liitekohdassa. Merkitse tällöin muiden liiteotsikoiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.
Helsingin kaupungille aiemmin toimitetut liitteet
@@ -279,7 +279,7 @@ elements: |-
Liitteiden sisältöä ei voi tarkastella jälkikäteen
Huomioithan, että et pysty avaamaan liitteitä sen jälkeen, kun olet liittänyt ne lomakkeelle. Näet liitteestä ainoastaan sen tiedostonimen.
-
Vaikka et voi tarkastella liitteiden sisältä jälkikäteen, lomakkeelle liitetyt liitteet lähtevät lomakkeen muiden tietojen mukana avustushakemuksen käsittelijälle.
+ Vaikka et voi tarkastella liitteiden sisältöä jälkikäteen, lomakkeelle liitetyt liitteet lähtevät lomakkeen muiden tietojen mukana avustushakemuksen käsittelijälle.
extra_info:
diff --git a/docker/openshift/crons/base.sh b/docker/openshift/crons/base.sh
deleted file mode 100644
index 1e4a42bd25..0000000000
--- a/docker/openshift/crons/base.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash
-
-echo "Starting cron: $(date)"
-
-# You can add any additional cron "daemons" here:
-#
-# exec "/crons/some-command.sh" &
-#
-# Example cron (docker/openshift/crons/some-command.sh):
-# @code
-# #!/bin/bash
-# while true
-# do
-# drush some-command
-# sleep 600
-# done
-# @endcode
-
-# Uncomment this to enable TPR migration cron
-exec "/crons/migrate-tpr.sh" &
-# Uncomment this to enable Varnish purge cron
-exec "/crons/purge-queue.sh" &
-# Uncomment this to enable automatic translation updates.
-exec "/crons/update-translations.sh" &
-# Uncomment this to enable content scheduler
-# exec "/crons/content-scheduler.sh" &
-exec "/crons/pubsub.sh" &
-
-while true
-do
- echo "Running cron: $(date)\n"
- drush cron
- # Sleep for 10 minutes.
- sleep 600
-done
diff --git a/docker/openshift/crons/migrate-hearings.sh b/docker/openshift/crons/migrate-hearings.sh
deleted file mode 100644
index 9cbea08544..0000000000
--- a/docker/openshift/crons/migrate-hearings.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-
-echo "Starting hearings migration: $(date)"
-
-while true
-do
- drush mim helfi_hearings --reset-threshold 43200 --interval 1800
- sleep 900
-done
diff --git a/docker/openshift/crons/pubsub.sh b/docker/openshift/crons/pubsub.sh
index c20c01a4ca..7589ed46fa 100644
--- a/docker/openshift/crons/pubsub.sh
+++ b/docker/openshift/crons/pubsub.sh
@@ -1,10 +1,15 @@
#!/bin/bash
-#echo "Running PubSub daemon: $(date +'%Y-%m-%dT%H:%M:%S%:z')"
+if [ -z "$DRUPAL_PUBSUB_VAULT" ]; then
+ echo "PubSub is not configured, exiting."
+ exit 0
+fi
-#while true
-#do
+echo "Running PubSub daemon: $(date +'%Y-%m-%dT%H:%M:%S%:z')"
+
+while true
+do
# PubSub process exists with success return code after
# certain number of messages and should then be restarted.
-# drush helfi:azure:pubsub-listen || exit 1
-#done
+ drush helfi:azure:pubsub-listen || exit 1
+done
diff --git a/e2e/package-lock.json b/e2e/package-lock.json
index 73356a29a2..5c07515962 100644
--- a/e2e/package-lock.json
+++ b/e2e/package-lock.json
@@ -10,7 +10,7 @@
"license": "ISC",
"devDependencies": {
"@faker-js/faker": "^8.3.1",
- "@playwright/test": "^1.41.2",
+ "@playwright/test": "^1.48.0",
"@types/lodash.clonedeep": "^4.5.9",
"@types/node": "^20.11.7",
"dotenv": "^16.4.1",
@@ -34,18 +34,19 @@
}
},
"node_modules/@playwright/test": {
- "version": "1.41.2",
- "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.41.2.tgz",
- "integrity": "sha512-qQB9h7KbibJzrDpkXkYvsmiDJK14FULCCZgEcoe2AvFAS64oCirWTwzTlAYEbKaRxWs5TFesE1Na6izMv3HfGg==",
+ "version": "1.48.0",
+ "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.48.0.tgz",
+ "integrity": "sha512-W5lhqPUVPqhtc/ySvZI5Q8X2ztBOUgZ8LbAFy0JQgrXZs2xaILrUcNO3rQjwbLPfGK13+rZsDa1FpG+tqYkT5w==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "playwright": "1.41.2"
+ "playwright": "1.48.0"
},
"bin": {
"playwright": "cli.js"
},
"engines": {
- "node": ">=16"
+ "node": ">=18"
}
},
"node_modules/@types/lodash": {
@@ -90,6 +91,7 @@
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
"hasInstallScript": true,
+ "license": "MIT",
"optional": true,
"os": [
"darwin"
@@ -105,33 +107,35 @@
"dev": true
},
"node_modules/playwright": {
- "version": "1.41.2",
- "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.41.2.tgz",
- "integrity": "sha512-v0bOa6H2GJChDL8pAeLa/LZC4feoAMbSQm1/jF/ySsWWoaNItvrMP7GEkvEEFyCTUYKMxjQKaTSg5up7nR6/8A==",
+ "version": "1.48.0",
+ "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.48.0.tgz",
+ "integrity": "sha512-qPqFaMEHuY/ug8o0uteYJSRfMGFikhUysk8ZvAtfKmUK3kc/6oNl/y3EczF8OFGYIi/Ex2HspMfzYArk6+XQSA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "playwright-core": "1.41.2"
+ "playwright-core": "1.48.0"
},
"bin": {
"playwright": "cli.js"
},
"engines": {
- "node": ">=16"
+ "node": ">=18"
},
"optionalDependencies": {
"fsevents": "2.3.2"
}
},
"node_modules/playwright-core": {
- "version": "1.41.2",
- "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.41.2.tgz",
- "integrity": "sha512-VaTvwCA4Y8kxEe+kfm2+uUUw5Lubf38RxF7FpBxLPmGe5sdNkSg5e3ChEigaGrX7qdqT3pt2m/98LiyvU2x6CA==",
+ "version": "1.48.0",
+ "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.48.0.tgz",
+ "integrity": "sha512-RBvzjM9rdpP7UUFrQzRwR8L/xR4HyC1QXMzGYTbf1vjw25/ya9NRAVnXi/0fvFopjebvyPzsmoK58xxeEOaVvA==",
"dev": true,
+ "license": "Apache-2.0",
"bin": {
"playwright-core": "cli.js"
},
"engines": {
- "node": ">=16"
+ "node": ">=18"
}
},
"node_modules/undici-types": {
diff --git a/e2e/package.json b/e2e/package.json
index 73004b3bb6..98ce4905cf 100644
--- a/e2e/package.json
+++ b/e2e/package.json
@@ -13,7 +13,7 @@
"license": "ISC",
"devDependencies": {
"@faker-js/faker": "^8.3.1",
- "@playwright/test": "^1.41.2",
+ "@playwright/test": "^1.48.0",
"@types/lodash.clonedeep": "^4.5.9",
"@types/node": "^20.11.7",
"dotenv": "^16.4.1",
diff --git a/public/modules/custom/grants_admin_applications/src/Form/AtvFormBase.php b/public/modules/custom/grants_admin_applications/src/Form/AtvFormBase.php
index 30a0f35e80..75d6cbdae4 100644
--- a/public/modules/custom/grants_admin_applications/src/Form/AtvFormBase.php
+++ b/public/modules/custom/grants_admin_applications/src/Form/AtvFormBase.php
@@ -10,9 +10,9 @@
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Session\AccountProxyInterface;
use Drupal\grants_attachments\AttachmentFixerService;
+use Drupal\grants_events\EventsService;
use Drupal\grants_handler\ApplicationGetterService;
use Drupal\grants_handler\ApplicationHelpers;
-use Drupal\grants_handler\EventsService;
use Drupal\grants_handler\Helpers;
use Drupal\grants_handler\MessageService;
use Drupal\helfi_atv\AtvDocument;
@@ -62,7 +62,7 @@ public static function create(ContainerInterface $container): self {
$container->get('database'),
$container->get('grants_handler.application_getter_service'),
$container->get('http_client'),
- $container->get('grants_handler.events_service'),
+ $container->get('grants_events.events_service'),
$container->get('helfi_atv.atv_service'),
$container->get('grants_handler.message_service'),
$container->get('current_user'),
@@ -200,7 +200,27 @@ public function sendApplicationToIntegrations(AtvDocument $atvDoc, string $appli
->error('Application resending failed: @error', ['@error' => $e->getMessage()]);
$this->messenger()
->addError($this->t('Application resending failed: @error', ['@error' => $e->getMessage()]));
+
+ \Sentry\captureException($e);
}
}
+ /**
+ * Handle exceptions.
+ *
+ * @param string $message
+ * Log message prefix.
+ * @param \Throwable $e
+ * The exception.
+ */
+ protected function handleException(string $message, \Throwable $e): void {
+ $uuid = Uuid::uuid4()->toString();
+ $this->messenger()
+ ->addError('Error has occurred and has been logged. ID: @uuid', ['@uuid' => $uuid]);
+ $this->logger(self::LOGGER_CHANNEL)->error(
+ "$message: @error, ID: @uuid",
+ ['@error' => $e->getMessage(), '@uuid' => $uuid]
+ );
+ }
+
}
diff --git a/public/modules/custom/grants_admin_applications/src/Form/ResendApplicationsForm.php b/public/modules/custom/grants_admin_applications/src/Form/ResendApplicationsForm.php
index aaf6143b45..abe6d2b072 100644
--- a/public/modules/custom/grants_admin_applications/src/Form/ResendApplicationsForm.php
+++ b/public/modules/custom/grants_admin_applications/src/Form/ResendApplicationsForm.php
@@ -374,13 +374,7 @@ public function getStatus(array $form, FormStateInterface $formState): void {
}
}
catch (\Exception $e) {
- $uuid = Uuid::uuid4()->toString();
- $this->messenger()
- ->addError('Error has occured and has been logged. ID: @uuid', ['@uuid' => $uuid]);
- $this->logger(self::LOGGER_CHANNEL)->error(
- 'Error: status check: @error, ID: @uuid',
- ['@error' => $e->getMessage(), '@uuid' => $uuid]
- );
+ $this->handleException("Error: status check", $e);
}
}
@@ -411,7 +405,7 @@ public function resendApplicationCallback(array $form, FormStateInterface $formS
$formState->setRebuild();
}
catch (GuzzleException | \Exception $e) {
- $this->handleException($e);
+ $this->handleException("Error: Admin application forms - Resend error", $e);
}
}
@@ -449,25 +443,6 @@ private function handleApplicationNotFound(string $applicationId, FormStateInter
$formState->setRebuild();
}
- /**
- * Handle exceptions.
- *
- * @param \Exception $e
- * The exception.
- *
- * @return void
- * Void.
- */
- private function handleException(\Exception $e): void {
- $uuid = Uuid::uuid4()->toString();
- $this->messenger()
- ->addError('Error has occurred and has been logged. ID: @uuid', ['@uuid' => $uuid]);
- $this->logger(self::LOGGER_CHANNEL)->error(
- 'Error: Admin application forms - Resend error: @error, ID: @uuid',
- ['@error' => $e->getMessage(), '@uuid' => $uuid]
- );
- }
-
/**
* Ajax callback event.
*
diff --git a/public/modules/custom/grants_admin_applications/src/Form/SubmittedApplicationsForm.php b/public/modules/custom/grants_admin_applications/src/Form/SubmittedApplicationsForm.php
index 9b61b295f9..44aa1ecd3e 100644
--- a/public/modules/custom/grants_admin_applications/src/Form/SubmittedApplicationsForm.php
+++ b/public/modules/custom/grants_admin_applications/src/Form/SubmittedApplicationsForm.php
@@ -9,7 +9,6 @@
use Drupal\grants_handler\Helpers;
use Drupal\helfi_atv\AtvDocument;
use GuzzleHttp\Exception\GuzzleException;
-use Ramsey\Uuid\Uuid;
use Symfony\Component\HttpFoundation\Request;
/**
@@ -194,12 +193,7 @@ public function resendApplicationCallback(array $form, FormStateInterface $formS
$this->sendApplicationToIntegrations($atvDoc, $transactionId);
}
catch (GuzzleException | \Exception $e) {
- $uuid = Uuid::uuid4()->toString();
- $this->messenger()->addError('Error has occured and has been logged. ID: @uuid', ['@uuid' => $uuid]);
- $this->logger(self::LOGGER_CHANNEL)->error(
- 'Error: Admin application forms - Resend error: @error, ID: @uuid',
- ['@error' => $e->getMessage(), '@uuid' => $uuid]
- );
+ $this->handleException('Error: Admin application forms - Resend error', $e);
}
}
@@ -289,12 +283,7 @@ function (array $doc) {
$formState->setRebuild();
}
catch (\Exception $e) {
- $uuid = Uuid::uuid4()->toString();
- $this->messenger()->addError('Error has occured and has been logged. ID: @uuid', ['@uuid' => $uuid]);
- $this->logger(self::LOGGER_CHANNEL)->error(
- 'Error: status check: @error, ID: @uuid',
- ['@error' => $e->getMessage(), '@uuid' => $uuid]
- );
+ $this->handleException('Error: status check', $e);
}
catch (GuzzleException $e) {
}
diff --git a/public/modules/custom/grants_attachments/grants_attachments.info.yml b/public/modules/custom/grants_attachments/grants_attachments.info.yml
index abda7bddc3..399ac80f5f 100644
--- a/public/modules/custom/grants_attachments/grants_attachments.info.yml
+++ b/public/modules/custom/grants_attachments/grants_attachments.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^9 || ^10
dependencies:
- webform
- grants_metadata
- - grants_handler
+ - grants_events
'interface translation project': grants_attachments
'interface translation server pattern': modules/custom/grants_attachments/translations/%language.po
diff --git a/public/modules/custom/grants_attachments/grants_attachments.services.yml b/public/modules/custom/grants_attachments/grants_attachments.services.yml
index e4c6f27dc7..b86c338f44 100644
--- a/public/modules/custom/grants_attachments/grants_attachments.services.yml
+++ b/public/modules/custom/grants_attachments/grants_attachments.services.yml
@@ -26,11 +26,12 @@ services:
'@helfi_atv.atv_service',
'@grants_profile.service',
'@grants_metadata.atv_schema',
- '@grants_handler.events_service',
'@helfi_audit_log.audit_log',
'@entity_type.manager',
'@grants_metadata.application_data_service'
]
+ calls:
+ - [ setEventsService, [ '@?grants_events.events_service' ] ]
grants_attachments.attachment_fixer_service:
class: Drupal\grants_attachments\AttachmentFixerService
diff --git a/public/modules/custom/grants_attachments/src/AttachmentHandler.php b/public/modules/custom/grants_attachments/src/AttachmentHandler.php
index 63f8319e17..5730e689e3 100644
--- a/public/modules/custom/grants_attachments/src/AttachmentHandler.php
+++ b/public/modules/custom/grants_attachments/src/AttachmentHandler.php
@@ -12,10 +12,10 @@
use Drupal\Core\StringTranslation\StringTranslationTrait;
use Drupal\Core\TempStore\TempStoreException;
use Drupal\grants_attachments\Plugin\WebformElement\GrantsAttachments;
+use Drupal\grants_events\EventsService;
use Drupal\grants_handler\ApplicationHelpers;
use Drupal\grants_handler\DebuggableTrait;
use Drupal\grants_handler\EventException;
-use Drupal\grants_handler\EventsService;
use Drupal\grants_handler\Helpers;
use Drupal\grants_metadata\ApplicationDataService;
use Drupal\grants_metadata\AtvSchema;
@@ -67,6 +67,13 @@ class AttachmentHandler {
*/
protected EntityStorageInterface $fileStorage;
+ /**
+ * Events service.
+ *
+ * @var \Drupal\grants_events\EventsService
+ */
+ protected EventsService $eventService;
+
/**
* Constructs an AttachmentHandler object.
*
@@ -82,8 +89,6 @@ class AttachmentHandler {
* Profile service.
* @param \Drupal\grants_metadata\AtvSchema $atvSchema
* ATV schema.
- * @param \Drupal\grants_handler\EventsService $eventService
- * Events service.
* @param \Drupal\helfi_audit_log\AuditLogService $auditLogService
* Audit log mandate errors.
* @param \Drupal\Core\Entity\EntityTypeManagerInterface $entityTypeManager
@@ -101,7 +106,6 @@ public function __construct(
protected AtvService $atvService,
protected GrantsProfileService $grantsProfileService,
protected AtvSchema $atvSchema,
- protected EventsService $eventService,
protected AuditLogService $auditLogService,
EntityTypeManagerInterface $entityTypeManager,
protected ApplicationDataService $applicationDataService,
@@ -113,6 +117,16 @@ public function __construct(
$this->setDebug(NULL);
}
+ /**
+ * Set the getter service.
+ *
+ * @param \Drupal\grants_events\EventsService $eventsService
+ * Events service.
+ */
+ public function setEventsService(EventsService $eventsService): void {
+ $this->eventService = $eventsService;
+ }
+
/**
* Get file fields.
*
diff --git a/public/modules/custom/grants_attachments/src/Controller/GrantsAttachmentsController.php b/public/modules/custom/grants_attachments/src/Controller/GrantsAttachmentsController.php
index c5a4ff4910..65d79e1993 100644
--- a/public/modules/custom/grants_attachments/src/Controller/GrantsAttachmentsController.php
+++ b/public/modules/custom/grants_attachments/src/Controller/GrantsAttachmentsController.php
@@ -7,10 +7,10 @@
use Drupal\Core\Messenger\MessengerTrait;
use Drupal\Core\StringTranslation\StringTranslationTrait;
use Drupal\grants_attachments\Plugin\WebformElement\GrantsAttachments;
+use Drupal\grants_events\EventsService;
use Drupal\grants_handler\ApplicationGetterService;
use Drupal\grants_handler\ApplicationStatusService;
use Drupal\grants_handler\ApplicationUploaderService;
-use Drupal\grants_handler\EventsService;
use Drupal\grants_metadata\ApplicationDataService;
use Drupal\helfi_atv\AtvService;
use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -34,7 +34,7 @@ class GrantsAttachmentsController extends ControllerBase {
* The helfi_atv service.
* @param \Symfony\Component\HttpFoundation\RequestStack $requestStack
* Drupal requests.
- * @param \Drupal\grants_handler\EventsService $eventsService
+ * @param \Drupal\grants_events\EventsService $eventsService
* Use submission events productively.
* @param \Drupal\grants_handler\ApplicationStatusService $applicationStatusService
* Application status service.
@@ -62,7 +62,7 @@ public static function create(ContainerInterface $container): static {
return new static(
$container->get('helfi_atv.atv_service'),
$container->get('request_stack'),
- $container->get('grants_handler.events_service'),
+ $container->get('grants_events.events_service'),
$container->get('grants_handler.application_status_service'),
$container->get('grants_metadata.application_data_service'),
$container->get('grants_handler.application_getter_service'),
diff --git a/public/modules/custom/grants_attachments/src/Plugin/WebformElement/GrantsAttachments.php b/public/modules/custom/grants_attachments/src/Plugin/WebformElement/GrantsAttachments.php
index ea2359470f..0511df78b9 100644
--- a/public/modules/custom/grants_attachments/src/Plugin/WebformElement/GrantsAttachments.php
+++ b/public/modules/custom/grants_attachments/src/Plugin/WebformElement/GrantsAttachments.php
@@ -5,7 +5,7 @@
use Drupal\Core\Form\FormStateInterface;
use Drupal\grants_attachments\AttachmentHandler;
use Drupal\grants_attachments\Element\GrantsAttachments as ElementGrantsAttachments;
-use Drupal\grants_handler\EventsService;
+use Drupal\grants_events\EventsService;
use Drupal\webform\Plugin\WebformElement\WebformCompositeBase;
use Drupal\webform\WebformSubmissionInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -79,7 +79,7 @@ final class GrantsAttachments extends WebformCompositeBase {
/**
* Events service.
*
- * @var \Drupal\grants_handler\EventsService
+ * @var \Drupal\grants_events\EventsService
*/
protected EventsService $eventsService;
@@ -93,7 +93,7 @@ public static function create(
$plugin_definition,
): GrantsAttachments {
$instance = parent::create($container, $configuration, $plugin_id, $plugin_definition);
- $instance->eventsService = $container->get('grants_handler.events_service');
+ $instance->eventsService = $container->get('grants_events.events_service');
return $instance;
}
diff --git a/public/modules/custom/grants_events/grants_events.info.yml b/public/modules/custom/grants_events/grants_events.info.yml
new file mode 100644
index 0000000000..e88ed228ff
--- /dev/null
+++ b/public/modules/custom/grants_events/grants_events.info.yml
@@ -0,0 +1,5 @@
+name: 'grants_events'
+type: module
+description: 'Handle application events'
+package: helfi
+core_version_requirement: ^10 || ^11
diff --git a/public/modules/custom/grants_events/grants_events.module b/public/modules/custom/grants_events/grants_events.module
new file mode 100644
index 0000000000..f55bd612b0
--- /dev/null
+++ b/public/modules/custom/grants_events/grants_events.module
@@ -0,0 +1,6 @@
+ 'AVUSTUS2_MSG_OK',
+ 'AVUSTUS2_ATT_OK' => 'AVUSTUS2_ATT_OK',
+ 'STATUS_UPDATE' => 'STATUS_UPDATE',
+ 'MESSAGE_AVUS2' => 'MESSAGE_AVUS2',
+ 'MESSAGE_APP' => 'MESSAGE_APP',
+ 'MESSAGE_READ' => 'MESSAGE_READ',
+ 'MESSAGE_RESEND' => 'MESSAGE_RESEND',
+ 'HANDLER_ATT_OK' => 'HANDLER_ATT_OK',
+ 'HANDLER_ATT_DELETE' => 'HANDLER_ATT_DELETE',
+ 'HANDLER_RESEND_APP' => 'HANDLER_RESEND_APP',
+ 'HANDLER_APP_COPIED' => 'HANDLER_APP_COPIED',
+ 'INTEGRATION_INFO_ATT_OK' => 'INTEGRATION_INFO_ATT_OK',
+ 'INTEGRATION_INFO_APP_OK' => 'INTEGRATION_INFO_APP_OK',
+ 'EVENT_INFO' => 'EVENT_INFO',
+ 'HANDLER_ATT_DELETED' => 'HANDLER_ATT_DELETED',
+ 'INTEGRATION_ERROR_AVUS2' => 'INTEGRATION_ERROR_AVUS2',
+ 'INTEGRATION_ERROR_ATV_ATT' => 'INTEGRATION_ERROR_ATV_ATT',
+ ];
+
+ /**
+ * Constructs a MessageService object.
+ *
+ * @param \GuzzleHttp\Client $http_client
+ * Client to post data.
+ * @param \Drupal\Core\Logger\LoggerChannelFactory $loggerFactory
+ * Log things.
+ */
+ public function __construct(
+ Client $http_client,
+ LoggerChannelFactoryInterface $loggerFactory,
+ ) {
+ $this->httpClient = $http_client;
+ $this->logger = $loggerFactory->get('grants_handler_events_service');
+
+ $this->endpoint = getenv('AVUSTUS2_EVENT_ENDPOINT');
+ $this->username = getenv('AVUSTUS2_USERNAME');
+ $this->password = getenv('AVUSTUS2_PASSWORD');
+
+ $this->setDebug(NULL);
+
+ }
+
+ /**
+ * Get event types.
+ *
+ * @return array|string[]
+ * Event types.
+ */
+ public function getEventTypes(): array {
+ return $this->eventTypes;
+ }
+
+ /**
+ * Log event to document via event integration.
+ *
+ * @param string $applicationNumber
+ * Application to be logged.
+ * @param string $eventType
+ * Type of event, must be configured in this class as active one.
+ * @param string $eventDescription
+ * Free message to be added.
+ * @param string $eventTarget
+ * Target ID for event.
+ * @param array $eventData
+ * If we have already built-up event data, use this.
+ *
+ * @return array|null
+ * EventID if success, otherways NULL
+ *
+ * @throws \Drupal\grants_events\EventException
+ */
+ public function logEvent(
+ string $applicationNumber,
+ string $eventType,
+ string $eventDescription,
+ string $eventTarget,
+ array $eventData = [],
+ ): ?array {
+
+ if (empty($eventData)) {
+ $eventData = self::getEventData($eventType, $applicationNumber, $eventDescription, $eventTarget);
+ }
+
+ $eventDataJson = Json::encode($eventData);
+
+ if (TRUE === $this->debug) {
+ $this->logger->debug(
+ 'Event ID: %eventId, JSON: %json',
+ [
+ '%eventId' => $eventData['eventID'],
+ '%json' => $eventDataJson,
+ ]);
+ }
+
+ try {
+
+ $res = $this->httpClient->post($this->endpoint, [
+ 'auth' => [$this->username, $this->password, "Basic"],
+ 'body' => $eventDataJson,
+ ]);
+
+ if ($res->getStatusCode() == 200) {
+ $this->logger->info('Event logged: %eventId, message sent.', ['%eventId' => $eventData['eventID']]);
+ return $eventData;
+ }
+
+ }
+ catch (\Exception $e) {
+ throw new EventException($e->getMessage());
+ }
+ catch (GuzzleException $e) {
+ throw new EventException($e->getMessage());
+ }
+
+ return NULL;
+ }
+
+ /**
+ * Filter events by given key.
+ *
+ * @param array $events
+ * Events to be filtered.
+ * @param string $typeKey
+ * Event type wanted.
+ *
+ * @return array
+ * Filtered events.
+ */
+ public function filterEvents(array $events, string $typeKey): array {
+ $messageEvents = array_filter($events, function ($event) use ($typeKey) {
+ if ($event['eventType'] == $this->eventTypes[$typeKey]) {
+ return TRUE;
+ }
+ return FALSE;
+ });
+
+ return [
+ 'events' => $messageEvents,
+ 'event_targets' => array_column($messageEvents, 'eventTarget'),
+ 'event_ids' => array_column($messageEvents, 'eventID'),
+ ];
+ }
+
+ /**
+ * Build event object/array from given data.
+ *
+ * @param string $eventType
+ * Type of event, must be in self::$eventTypes.
+ * @param string $applicationNumber
+ * Application number for event.
+ * @param string $eventDescription
+ * Event description.
+ * @param string $eventTarget
+ * Eent target.
+ *
+ * @return array
+ * Event data in array.
+ *
+ * @throws \Drupal\grants_events\EventException
+ */
+ public function getEventData(string $eventType, string $applicationNumber, string $eventDescription, string $eventTarget): array {
+ $eventData = [];
+
+ if (!in_array($eventType, $this->eventTypes)) {
+ throw new EventException('Not valid event type: ' . $eventType);
+ }
+ else {
+ $eventData['eventType'] = $eventType;
+ }
+
+ $eventData['eventID'] = Uuid::uuid4()->toString();
+ $eventData['caseId'] = $applicationNumber;
+ $eventData['eventDescription'] = AtvSchema::sanitizeInput($eventDescription);
+ $eventData['eventTarget'] = $eventTarget;
+
+ if (!isset($eventData['eventSource'])) {
+ $eventData['eventSource'] = getenv('EVENTS_SOURCE');
+ }
+
+ $dt = new \DateTime();
+ $dt->setTimezone(new \DateTimeZone('Europe/Helsinki'));
+
+ $eventData['timeCreated'] = $eventData['timeUpdated'] = $dt->format('Y-m-d\TH:i:s');
+ return $eventData;
+ }
+
+}
diff --git a/public/modules/custom/grants_handler/grants_handler.install b/public/modules/custom/grants_handler/grants_handler.install
index edab455b4e..92f47b12dd 100644
--- a/public/modules/custom/grants_handler/grants_handler.install
+++ b/public/modules/custom/grants_handler/grants_handler.install
@@ -216,6 +216,8 @@ function grants_handler_schema(): array {
* Name of field.
* @param int $new_length
* New length for field.
+ *
+ * @throws \Exception
*/
function _module_change_text_field_max_length($entity_type_id, $field_name, $new_length) {
$name = 'field.storage.' . $entity_type_id . "." . $field_name;
@@ -369,3 +371,18 @@ function grants_handler_update_9008(&$sandbox) {
->schema()
->createTable('grants_handler_locks', $schema['grants_handler_locks']);
}
+
+/**
+ * Install grants_events module.
+ */
+function grants_handler_update_9009(&$sandbox): void {
+ // Enable the grants_attachments module.
+ \Drupal::service('module_installer')->install(['grants_events']);
+}
+
+/**
+ * Manually trigger locale translation.
+ */
+function grants_handler_update_9010(&$sandbox): void {
+ _locale_parse_js_file('modules/custom/grants_handler/js/webform.form.unsaved.js');
+}
diff --git a/public/modules/custom/grants_handler/grants_handler.libraries.yml b/public/modules/custom/grants_handler/grants_handler.libraries.yml
index bde18246cc..9ba38aff5b 100644
--- a/public/modules/custom/grants_handler/grants_handler.libraries.yml
+++ b/public/modules/custom/grants_handler/grants_handler.libraries.yml
@@ -53,3 +53,11 @@ application-timeout-message:
dependencies:
- core/jquery
- core/drupalSettings
+
+# Grants Dialog
+grants-dialog:
+ version: 1.0.0
+ js:
+ js/grants-dialog.js: { }
+ dependencies:
+ - core/drupal
diff --git a/public/modules/custom/grants_handler/grants_handler.module b/public/modules/custom/grants_handler/grants_handler.module
index 9ba74435cf..39f5111cd1 100644
--- a/public/modules/custom/grants_handler/grants_handler.module
+++ b/public/modules/custom/grants_handler/grants_handler.module
@@ -1289,8 +1289,8 @@ function grants_handler_preprocess_webform_submission_handler_details(&$variable
$submission = $variables['submission'];
$submissionData = $submission->getData();
- /** @var \Drupal\grants_handler\EventsService $eventService */
- $eventService = \Drupal::service('grants_handler.events_service');
+ /** @var \Drupal\grants_events\EventsService $eventService */
+ $eventService = \Drupal::service('grants_events.events_service');
$handlerEvents = array_filter($submissionData['events'], function ($event) use ($eventService) {
if ($event['eventType'] == $eventService->getEventTypes()['EVENT_INFO']) {
@@ -1314,7 +1314,7 @@ function grants_handler_preprocess_webform_submission_attachment_list(&$variable
$submissionData = $submission->getData();
// Get submission events.
- $eventService = \Drupal::service('grants_handler.events_service');
+ $eventService = \Drupal::service('grants_events.events_service');
$attachmentEventsHandler = $eventService->filterEvents($submissionData['events'], 'HANDLER_ATT_OK');
$attachments = [];
@@ -2100,3 +2100,11 @@ function grants_handler_options_list_alter(array &$options, array $context): voi
}
}
}
+
+/**
+ * Implements hook_preprocess_HOOK().
+ */
+function grants_handler_preprocess_webform(array &$variables) {
+ $variables['#attached']['library'][] = 'grants_handler/grants-dialog';
+ $variables['#attached']['library'][] = 'hdbt/focus-trap';
+}
diff --git a/public/modules/custom/grants_handler/grants_handler.services.yml b/public/modules/custom/grants_handler/grants_handler.services.yml
index 7f6beb7e17..c054cdd8b7 100644
--- a/public/modules/custom/grants_handler/grants_handler.services.yml
+++ b/public/modules/custom/grants_handler/grants_handler.services.yml
@@ -11,11 +11,12 @@ services:
'@helfi_helsinki_profiili.userdata',
'@http_client',
'@logger.factory',
- '@grants_handler.events_service',
'@helfi_atv.atv_service',
'@current_user',
'@grants_handler.application_status_service'
]
+ calls:
+ - [ setEventsService, [ '@?grants_events.events_service' ] ]
grants_handler.navigation_helper:
class: Drupal\grants_handler\GrantsHandlerNavigationHelper
@@ -28,10 +29,6 @@ services:
'@datetime.time'
]
- grants_handler.events_service:
- class: Drupal\grants_handler\EventsService
- arguments: [ '@http_client', '@logger.factory' ]
-
grants_handler.form_lock_service:
class: Drupal\grants_handler\FormLockService
arguments: [
diff --git a/public/modules/custom/grants_handler/js/grants-dialog.js b/public/modules/custom/grants_handler/js/grants-dialog.js
new file mode 100644
index 0000000000..925eead272
--- /dev/null
+++ b/public/modules/custom/grants_handler/js/grants-dialog.js
@@ -0,0 +1,110 @@
+(function (Drupal) {
+ Drupal.dialogFunctions = {
+
+ /**
+ * Creates a dialog and appends it to the body.
+ *
+ * @param {string} dialogContent - The title displayed at the top of the
+ * dialog.
+ * @param {string} actionButtonText - The text for the "leave" button.
+ * @param {string} backButtonText - The text for the "back" button.
+ * @param {string} closeButtonText - The text for the "close" button that
+ * closes the dialog.
+ * @param {Function} actionButtonCallback - The function to execute when
+ * the "action" button is clicked.
+ */
+ createDialog: (dialogContent, actionButtonText, backButtonText, closeButtonText, actionButtonCallback = null) => {
+ const dialogTitle = Drupal.t('Attention', {}, { context: 'grants_handler' });
+ const actionButtonHTML = actionButtonText && `${actionButtonText} `;
+ const backButtonHTML = backButtonText && `${backButtonText} `;
+ const closeButtonHTML = closeButtonText && `${closeButtonText} `;
+
+ const dialogHTML = `
+
+
+
+
+
+ ${dialogContent}
+
+
+ ${actionButtonHTML}
+ ${backButtonHTML}
+
+
+
+ `;
+
+ // TODO: Surveys use very similar javascript dialog implementation.
+ // This and the survey implementation could possibly be merged with some
+ // refactoring.
+
+ // Add the dialog to the body
+ document.body.insertAdjacentHTML('beforeend', dialogHTML);
+
+ Drupal.dialogFunctions.setBodyPaddingRight(true);
+
+ Drupal.dialogFunctions.toggleNoScroll(true);
+
+ const actionButton = document.getElementById('helfi-dialog__action-button');
+ const backButton = document.getElementById('helfi-dialog__back-button');
+ const closeButton = document.getElementById('helfi-dialog__close-button');
+ const dialog = document.getElementById('helfi-dialog__container');
+ const dialogFocusTrap = window.focusTrap.createFocusTrap('#helfi-dialog__container', {
+ initialFocus: () => '#helfi-dialog__title'
+ });
+
+ // Activate the focus trap so that the user needs to react to the dialog.
+ dialogFocusTrap.activate();
+
+ // Add click event listener to action button
+ if (actionButtonCallback && actionButtonText) {
+ actionButton.addEventListener('click', actionButtonCallback);
+ }
+
+ // Add click event listener to back button
+ backButton.addEventListener('click', () => {
+ dialogFocusTrap.deactivate();
+ Drupal.dialogFunctions.removeDialog(dialog);
+ });
+
+ // Add click event listener to close button
+ closeButton.addEventListener('click', () => {
+ dialogFocusTrap.deactivate();
+ Drupal.dialogFunctions.removeDialog(dialog);
+ });
+
+ // Add event listener to ESC button to remove the dialog
+ document.body.addEventListener('keydown', function (event) {
+ if (event.key === 'Escape') {
+ Drupal.dialogFunctions.removeDialog(dialog);
+ }
+ });
+ },
+
+ setBodyPaddingRight: (enable) => {
+ if (enable) {
+ document.body.style.paddingRight = `${
+ window.innerWidth - document.documentElement.clientWidth
+ }px`;
+ }
+ else {
+ document.body.style.removeProperty('padding-right');
+ }
+ },
+
+ toggleNoScroll: (enable) => {
+ const root = document.documentElement;
+ root.classList.toggle('noscroll', enable);
+ },
+
+ removeDialog: (dialog) => {
+ dialog.remove();
+ Drupal.dialogFunctions.toggleNoScroll(false);
+ Drupal.dialogFunctions.setBodyPaddingRight(false);
+ }
+ }
+})(Drupal);
diff --git a/public/modules/custom/grants_handler/js/webform.form.unsaved.js b/public/modules/custom/grants_handler/js/webform.form.unsaved.js
index 3e4ae31671..99e66c6b8d 100644
--- a/public/modules/custom/grants_handler/js/webform.form.unsaved.js
+++ b/public/modules/custom/grants_handler/js/webform.form.unsaved.js
@@ -46,6 +46,7 @@
// Set the current unsaved flag state.
unsaved = value;
},
+
attach: function (context) {
// Detect general unsaved changes.
// Look for the 'data-webform-unsaved' attribute which indicates that
@@ -109,34 +110,24 @@
}
}
};
+
$('a').on('click', function (event) {
let containingElement = document.querySelector('form');
if (unsaved && !containingElement.contains(event.target) && !event.target.getAttribute('href').startsWith('#')) {
event.preventDefault();
- const $previewDialog = $('
').appendTo('body');
- Drupal.dialog($previewDialog, {
- title: Drupal.t('Are you sure you want to leave? Leave without saving.'),
- width: '33%',
- closeText: Drupal.t('Close', {}, { context: 'grants_handler' }),
- buttons: [
- {
- text: Drupal.t('Leave the application'),
- click() {
- unsaved = false;
- $(this).dialog('close');
- modal = true;
- window.top.location.href = event.currentTarget.href;
- },
- },
- {
- text: Drupal.t('Back to application'),
- buttonType: 'secondary',
- click() {
- $(this).dialog('close');
- },
- },
- ],
- }).showModal();
+
+ return Drupal.dialogFunctions.createDialog(
+ Drupal.t('You have unsaved changes. Are you sure you want to leave?', {}, { context: 'grants_handler' }),
+ Drupal.t('Leave the application', {}, { context: 'grants_handler' }),
+ Drupal.t('Back to application', {}, { context: 'grants_handler' }),
+ Drupal.t('Close', {}, { context: 'grants_handler' }),
+ () => {
+ unsaved = false;
+ const dialog = document.getElementById('helfi-dialog__container');
+ Drupal.dialogFunctions.removeDialog(dialog);
+ window.top.location.href = event.currentTarget.href;
+ }
+ );
}
});
@@ -144,7 +135,7 @@
$(window).on('beforeunload', function (event) {
if (unsaved) {
// Show a confirmation dialog when the user tries to refresh or leave the page
- const message = Drupal.t('You have unsaved changes. Are you sure you want to leave?');
+ const message = Drupal.t('You have unsaved changes. Are you sure you want to leave?', {}, { context: 'grants_handler' });
event.preventDefault();
event.returnValue = message; // For most browsers
return message; // For older browsers
@@ -155,35 +146,27 @@
$(document).on('keydown', function (e) {
if (unsaved && (e.which === 116 || (e.which === 82 && (e.ctrlKey || e.metaKey)))) {
e.preventDefault(); // Prevent F5 and Ctrl+R / Cmd+R refresh
- const $previewDialog = $('
').appendTo('body');
- Drupal.dialog($previewDialog, {
- title: Drupal.t('You have unsaved changes. Are you sure you want to refresh?'),
- width: '33%',
- closeText: Drupal.t('Close', {}, { context: 'grants_handler' }),
- buttons: [
- {
- text: Drupal.t('Refresh the page'),
- click() {
- unsaved = false;
- $(this).dialog('close');
- location.reload(); // Perform the refresh
- },
- },
- {
- text: Drupal.t('Back to application'),
- buttonType: 'secondary',
- click() {
- $(this).dialog('close');
- },
- },
- ],
- }).showModal();
+
+ return Drupal.dialogFunctions.createDialog(
+ Drupal.t('You have unsaved changes. Are you sure you want to refresh?', {}, { context: 'grants_handler' }),
+ Drupal.t('Refresh the page', {}, { context: 'grants_handler' }),
+ Drupal.t('Back to application', {}, { context: 'grants_handler' }),
+ Drupal.t('Close', {}, { context: 'grants_handler' }),
+ () => {
+ unsaved = false;
+ const dialog = document.getElementById('helfi-dialog__container');
+ Drupal.dialogFunctions.removeDialog(dialog);
+ location.reload();
+ }
+ );
}
});
+
// Add an event listener for autologout.
document.addEventListener('autologout', function () {
autologout = true;
});
+
$(window).on('beforeunload', function () {
if (autologout) {
return;
diff --git a/public/modules/custom/grants_handler/src/ApplicationException.php b/public/modules/custom/grants_handler/src/ApplicationException.php
index 217c95ab4e..c73861f7d4 100644
--- a/public/modules/custom/grants_handler/src/ApplicationException.php
+++ b/public/modules/custom/grants_handler/src/ApplicationException.php
@@ -3,7 +3,7 @@
namespace Drupal\grants_handler;
/**
- * General error in applicatoin process.
+ * General error in application process.
*/
class ApplicationException extends \Exception {
diff --git a/public/modules/custom/grants_handler/src/ApplicationUploaderService.php b/public/modules/custom/grants_handler/src/ApplicationUploaderService.php
index 64a651ed52..38d88ae063 100644
--- a/public/modules/custom/grants_handler/src/ApplicationUploaderService.php
+++ b/public/modules/custom/grants_handler/src/ApplicationUploaderService.php
@@ -262,6 +262,9 @@ public function handleApplicationUploadViaIntegration(
catch (\Exception $e) {
$this->messenger->addError($this->t('Application saving failed, error has been logged.', [], $tOpts));
$this->logger->error('Error saving application: %msg', ['%msg' => $e->getMessage()]);
+
+ \Sentry\captureException($e);
+
return FALSE;
}
}
diff --git a/public/modules/custom/grants_handler/src/Controller/MessageController.php b/public/modules/custom/grants_handler/src/Controller/MessageController.php
index cf92cfe078..dce39f82ad 100644
--- a/public/modules/custom/grants_handler/src/Controller/MessageController.php
+++ b/public/modules/custom/grants_handler/src/Controller/MessageController.php
@@ -9,10 +9,10 @@
use Drupal\Core\Messenger\MessengerTrait;
use Drupal\Core\Render\Renderer;
use Drupal\Core\StringTranslation\StringTranslationTrait;
+use Drupal\grants_events\EventsService;
use Drupal\grants_handler\ApplicationGetterService;
use Drupal\grants_handler\DebuggableTrait;
use Drupal\grants_handler\EventException;
-use Drupal\grants_handler\EventsService;
use Drupal\grants_handler\MessageService;
use Drupal\helfi_atv\AtvService;
use GuzzleHttp\Exception\GuzzleException;
@@ -33,7 +33,7 @@ class MessageController extends ControllerBase {
/**
* The controller constructor.
*
- * @param \Drupal\grants_handler\EventsService $eventsService
+ * @param \Drupal\grants_events\EventsService $eventsService
* Use submission events productively.
* @param \Drupal\grants_handler\MessageService $messageService
* Use messages productively.
@@ -62,7 +62,7 @@ public function __construct(
*/
public static function create(ContainerInterface $container): MessageController|static {
return new static(
- $container->get('grants_handler.events_service'),
+ $container->get('grants_events.events_service'),
$container->get('grants_handler.message_service'),
$container->get('request_stack'),
$container->get('helfi_atv.atv_service'),
diff --git a/public/modules/custom/grants_handler/src/Form/CopyApplicationModalForm.php b/public/modules/custom/grants_handler/src/Form/CopyApplicationModalForm.php
index 3c3c6240df..7e2c463eb2 100644
--- a/public/modules/custom/grants_handler/src/Form/CopyApplicationModalForm.php
+++ b/public/modules/custom/grants_handler/src/Form/CopyApplicationModalForm.php
@@ -10,11 +10,11 @@
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Render\Renderer;
use Drupal\Core\Url;
+use Drupal\grants_events\EventsService;
use Drupal\grants_handler\ApplicationGetterService;
use Drupal\grants_handler\ApplicationInitService;
use Drupal\grants_handler\ApplicationStatusService;
use Drupal\grants_handler\DebuggableTrait;
-use Drupal\grants_handler\EventsService;
use GuzzleHttp\Exception\GuzzleException;
use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -49,7 +49,7 @@ public static function create(ContainerInterface $container): CopyApplicationMod
// Create a new form object and inject its services.
$form = new static(
$container->get('renderer'),
- $container->get('grants_handler.events_service'),
+ $container->get('grants_events.events_service'),
$container->get('grants_handler.application_status_service'),
$container->get('grants_handler.application_init_service'),
$container->get('grants_handler.application_getter_service')
diff --git a/public/modules/custom/grants_handler/src/MessageService.php b/public/modules/custom/grants_handler/src/MessageService.php
index 6c65dadb5f..419e565994 100644
--- a/public/modules/custom/grants_handler/src/MessageService.php
+++ b/public/modules/custom/grants_handler/src/MessageService.php
@@ -9,6 +9,7 @@
use Drupal\Core\Logger\LoggerChannelInterface;
use Drupal\Core\Session\AccountProxyInterface;
use Drupal\Core\StringTranslation\StringTranslationTrait;
+use Drupal\grants_events\EventsService;
use Drupal\grants_metadata\AtvSchema;
use Drupal\helfi_atv\AtvService;
use Drupal\helfi_helsinki_profiili\HelsinkiProfiiliUserData;
@@ -47,7 +48,7 @@ class MessageService {
/**
* Log events via integration.
*
- * @var \Drupal\grants_handler\EventsService
+ * @var \Drupal\grants_events\EventsService
*/
protected EventsService $eventsService;
@@ -103,8 +104,6 @@ class MessageService {
* Client to post data.
* @param \Drupal\Core\Logger\LoggerChannelFactoryInterface $loggerFactory
* Log things.
- * @param \Drupal\grants_handler\EventsService $eventsService
- * Log events to atv document.
* @param \Drupal\helfi_atv\AtvService $atvService
* Access to ATV.
* @param \Drupal\Core\Session\AccountProxyInterface $currentUser
@@ -116,7 +115,6 @@ public function __construct(
HelsinkiProfiiliUserData $helfi_helsinki_profiili_userdata,
Client $http_client,
LoggerChannelFactoryInterface $loggerFactory,
- EventsService $eventsService,
AtvService $atvService,
AccountProxyInterface $currentUser,
ApplicationStatusService $applicationStatusService,
@@ -124,7 +122,6 @@ public function __construct(
$this->helfiHelsinkiProfiiliUserdata = $helfi_helsinki_profiili_userdata;
$this->httpClient = $http_client;
$this->logger = $loggerFactory->get('grants_handler_message_service');
- $this->eventsService = $eventsService;
$this->atvService = $atvService;
$this->currentUser = $currentUser;
$this->applicationStatusService = $applicationStatusService;
@@ -136,6 +133,16 @@ public function __construct(
$this->setDebug(NULL);
}
+ /**
+ * Set the getter service.
+ *
+ * @param \Drupal\grants_events\EventsService $eventsService
+ * Events service.
+ */
+ public function setEventsService(EventsService $eventsService): void {
+ $this->eventsService = $eventsService;
+ }
+
/**
* Send message to backend.
*
diff --git a/public/modules/custom/grants_handler/src/Plugin/WebformHandler/GrantsHandler.php b/public/modules/custom/grants_handler/src/Plugin/WebformHandler/GrantsHandler.php
index c97c6f0070..35dfb62087 100644
--- a/public/modules/custom/grants_handler/src/Plugin/WebformHandler/GrantsHandler.php
+++ b/public/modules/custom/grants_handler/src/Plugin/WebformHandler/GrantsHandler.php
@@ -1489,13 +1489,9 @@ public function postSaveSubmitForm(): void {
);
}
}
- catch (\Exception $e) {
- $this->getLogger('grants_handler')
- ->error('Error uploadind application: @error', ['@error' => $e->getMessage()]);
- }
- catch (GuzzleException $e) {
+ catch (\Exception | GuzzleException $e) {
$this->getLogger('grants_handler')
- ->error('Error uploadind application: @error', ['@error' => $e->getMessage()]);
+ ->error('Error uploading application: @error', ['@error' => $e->getMessage()]);
}
$this->formLockService->releaseApplicationLock($this->applicationNumber);
@@ -1549,27 +1545,22 @@ public function postSave(WebformSubmissionInterface $webform_submission, $update
$this->postSaveHandleApplicationNumber($webform_submission);
- // If triggering element is either draft save or proper one,
- // we want to parse attachments from form.
- if ($this->triggeringElement == '::submitForm') {
- try {
+ try {
+ // If triggering element is either draft save or proper one,
+ // we want to parse attachments from form.
+ if ($this->triggeringElement == '::submitForm') {
$this->postSaveSubmitForm();
}
- catch (GuzzleException $e) {
- $this->messenger->addError($this->t('Error saving application. please contact support.'));
- $this->getLogger('grants_handler')
- ->error('Error saving application: @error', ['@error' => $e->getMessage()]);
- }
- }
- if ($this->triggeringElement == '::submit') {
- try {
+ if ($this->triggeringElement == '::submit') {
$this->postSaveSubmit($webform_submission);
}
- catch (GuzzleException $e) {
- $this->messenger->addError($this->t('Error saving application. please contact support.'));
- $this->getLogger('grants_handler')
- ->error('Error saving application: @error', ['@error' => $e->getMessage()]);
- }
+ }
+ catch (GuzzleException $e) {
+ $this->messenger->addError($this->t('Error saving application. please contact support.'));
+ $this->getLogger('grants_handler')
+ ->error('Error saving application: @error', ['@error' => $e->getMessage()]);
+
+ \Sentry\captureException($e);
}
}
@@ -1659,6 +1650,8 @@ public function confirmForm(
]
)
);
+
+ \Sentry\captureException($e);
}
}
diff --git a/public/modules/custom/grants_handler/tests/src/Kernel/DataConversionTest.php b/public/modules/custom/grants_handler/tests/src/Kernel/DataConversionTest.php
index e7d65adab4..0af24b75cc 100644
--- a/public/modules/custom/grants_handler/tests/src/Kernel/DataConversionTest.php
+++ b/public/modules/custom/grants_handler/tests/src/Kernel/DataConversionTest.php
@@ -43,6 +43,7 @@ class DataConversionTest extends GrantsKernelTestBase implements ServiceModifier
'helfi_yjdh',
// Project modules.
'grants_applicant_info',
+ 'grants_events',
'grants_attachments',
'grants_budget_components',
'grants_club_section',
diff --git a/public/modules/custom/grants_handler/translations/fi.po b/public/modules/custom/grants_handler/translations/fi.po
index d14718ea4a..22923ea94b 100644
--- a/public/modules/custom/grants_handler/translations/fi.po
+++ b/public/modules/custom/grants_handler/translations/fi.po
@@ -1,17 +1,5 @@
-# Finnish translation of City of Helsinki Grants Handler Module
-#
-msgctxt "grants_handler"
msgid ""
msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2022-01-18 16:58+0300\n"
-"PO-Revision-Date: 2022-10-12 08:58+0300\n"
-"Last-Translator: Petri Leinonen \n"
-"Language-Team: LANGUAGE \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
msgctxt "grants_handler"
msgid "Print table"
@@ -552,16 +540,6 @@ msgstr "Pyyntösi keskeytyi verkkovirheen takia."
msgid "Are you sure you want to leave? Leave without saving."
msgstr "Oletko varma että haluat keskeyttää lomakkeen täyttämisen? Poistu tallentamatta."
-msgctxt "grants_handler"
-msgid "Close"
-msgstr "Sulje"
-
-msgid "Leave the application"
-msgstr "Poistu hakemukselta"
-
-msgid "Back to application"
-msgstr "Takaisin hakemukselle"
-
msgctxt "grants_handler"
msgid "View application"
msgstr "Katsele hakemusta"
@@ -653,3 +631,27 @@ msgstr "Poista @item @number"
msgctxt "grants_handler"
msgid "Refresh the page"
msgstr "Lataa sivu uudelleen"
+
+msgctxt "grants_handler"
+msgid "Leave the application"
+msgstr "Poistu hakemukselta"
+
+msgctxt "grants_handler"
+msgid "Close"
+msgstr "Sulje"
+
+msgctxt "grants_handler"
+msgid "Back to application"
+msgstr "Takaisin hakemukselle"
+
+msgctxt "grants_handler"
+msgid "You have unsaved changes. Are you sure you want to refresh?"
+msgstr "Sinulla on tallentamattomia muutoksia. Haluatko varmasti ladata sivun uudelleen?"
+
+msgctxt "grants_handler"
+msgid "You have unsaved changes. Are you sure you want to leave?"
+msgstr "Sinulla on tallentamattomia muutoksia. Haluatko varmasti poistua hakemukselta?"
+
+msgctxt "grants_handler"
+msgid "Attention"
+msgstr "Huomio"
diff --git a/public/modules/custom/grants_handler/translations/sv.po b/public/modules/custom/grants_handler/translations/sv.po
index 3e7a7f1495..4f0a13a7af 100644
--- a/public/modules/custom/grants_handler/translations/sv.po
+++ b/public/modules/custom/grants_handler/translations/sv.po
@@ -1,17 +1,5 @@
-# Swedish translation of City of Helsinki Grants Handler Module
-#
-msgctxt "grants_handler"
msgid ""
msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2022-01-18 16:58+0300\n"
-"PO-Revision-Date: 2022-10-12 08:58+0300\n"
-"Last-Translator: Petri Leinonen \n"
-"Language-Team: LANGUAGE \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
msgctxt "grants_handler"
msgid "Print table"
@@ -548,19 +536,6 @@ msgstr "Din begäran uppfylldes inte på grund av nätverksfel."
msgid "Are you sure you want to leave? Leave without saving."
msgstr "Är du säker att du vill stänga blanketten? Avsluta utan att spara."
-msgctxt "grants_handler"
-msgid "Close"
-msgstr "Stäng"
-
-msgid "Leave the application"
-msgstr "Avsluta från ansökningshandling"
-
-msgid "Back to application"
-msgstr "Tillbaka till ansökningshandling"
-
-msgid "Refresh the page"
-msgstr "Uppdatera sidan"
-
msgctxt "grants_handler"
msgid "View application"
msgstr "Visa ansökning"
@@ -648,3 +623,31 @@ msgstr "%mail är inte en giltig e-postadress. Använd formen user@example.com."
msgid "Remove @item @number"
msgstr "Ta bort @item @number"
+
+msgctxt "grants_handler"
+msgid "Refresh the page"
+msgstr "Uppdatera sidan"
+
+msgctxt "grants_handler"
+msgid "Leave the application"
+msgstr "Avsluta från ansökningshandling"
+
+msgctxt "grants_handler"
+msgid "Close"
+msgstr "Stäng"
+
+msgctxt "grants_handler"
+msgid "Back to application"
+msgstr "Tillbaka till ansökningshandling"
+
+msgctxt "grants_handler"
+msgid "You have unsaved changes. Are you sure you want to refresh?"
+msgstr "Du har osparade ändringar. Är du säker på att du vill uppdatera?"
+
+msgctxt "grants_handler"
+msgid "You have unsaved changes. Are you sure you want to leave?"
+msgstr "Du har osparade ändringar. Är du säker på att du vill lämna?"
+
+msgctxt "grants_handler"
+msgid "Attention"
+msgstr "Observera"
diff --git a/public/modules/custom/grants_logger/grants_logger.info.yml b/public/modules/custom/grants_logger/grants_logger.info.yml
index de39d2fc6e..d490264609 100644
--- a/public/modules/custom/grants_logger/grants_logger.info.yml
+++ b/public/modules/custom/grants_logger/grants_logger.info.yml
@@ -1,7 +1,9 @@
name: 'Grants Logger'
type: module
-description: 'Grants logger override.'
+description: 'Grants logging customization'
package: 'helfi'
-core_version_requirement: ^9 || ^10
+core_version_requirement: ^10 || ^11
dependencies:
- - helfi_helsinki_profiili
+ - raven:raven
+ - helfi_atv:helfi_atv
+ - helfi_helsinki_profiili:helfi_helsinki_profiili
diff --git a/public/modules/custom/grants_logger/grants_logger.services.yml b/public/modules/custom/grants_logger/grants_logger.services.yml
index 9877d00fe2..4a9cf5d5b0 100644
--- a/public/modules/custom/grants_logger/grants_logger.services.yml
+++ b/public/modules/custom/grants_logger/grants_logger.services.yml
@@ -1,6 +1,6 @@
services:
- logger.dblog:
- class: Drupal\grants_logger\Logger\GrantsLogger
- arguments: ['@database', '@logger.log_message_parser', '@helfi_helsinki_profiili.userdata']
- tags:
- - { name: logger }
+ _defaults:
+ autowire: true
+ autoconfigure: true
+
+ Drupal\grants_logger\EventSubscriber\SentryEventSubscriber: ~
diff --git a/public/modules/custom/grants_logger/src/EventSubscriber/SentryEventSubscriber.php b/public/modules/custom/grants_logger/src/EventSubscriber/SentryEventSubscriber.php
new file mode 100644
index 0000000000..12b69d326f
--- /dev/null
+++ b/public/modules/custom/grants_logger/src/EventSubscriber/SentryEventSubscriber.php
@@ -0,0 +1,49 @@
+ 'onAtvException',
+ HelsinkiProfiiliExceptionEvent::EVENT_ID => 'onHelsinkiProfiiliException',
+ ];
+ }
+
+ /**
+ * Logs the event to sentry.
+ *
+ * @param \Drupal\helfi_atv\Event\AtvServiceExceptionEvent $event
+ * An exception event.
+ */
+ public function onAtvException(AtvServiceExceptionEvent $event): void {
+ // Consider ignoring the event if $event is instanceof GuzzleException
+ // and http error status code is _some_status_code_ if, for example, 404
+ // errors cause too much error spam here.
+ \Sentry\captureException($event->getException());
+ }
+
+ /**
+ * Logs the event to sentry.
+ *
+ * @param \Drupal\helfi_helsinki_profiili\Event\HelsinkiProfiiliExceptionEvent $event
+ * An exception event.
+ */
+ public function onHelsinkiProfiiliException(HelsinkiProfiiliExceptionEvent $event): void {
+ \Sentry\captureException($event->getException());
+ }
+
+}
diff --git a/public/modules/custom/grants_logger/src/Logger/GrantsLogger.php b/public/modules/custom/grants_logger/src/Logger/GrantsLogger.php
deleted file mode 100644
index f8fc036a19..0000000000
--- a/public/modules/custom/grants_logger/src/Logger/GrantsLogger.php
+++ /dev/null
@@ -1,72 +0,0 @@
-connection = $connection;
- $this->parser = $parser;
- $this->helfiHelsinkiProfiiliUserdata = $helfiHelsinkiProfiiliUserdata;
- }
-
- /**
- * {@inheritdoc}
- */
- public function log($level, $message, array $context = []): void {
-
- if ($this->helfiHelsinkiProfiiliUserdata->isAuthenticatedExternally()) {
- $userData = $this->helfiHelsinkiProfiiliUserdata->getUserData();
- if ($userData) {
- $message = $message . (' (HP UUID: @helfi_hp_uid)');
- $context['@helfi_hp_uid'] = $userData["sub"];
- }
- }
-
- parent::log($level, $message, $context);
- }
-
-}
diff --git a/public/modules/custom/grants_metadata/grants_metadata.services.yml b/public/modules/custom/grants_metadata/grants_metadata.services.yml
index fca9808161..deeb66bcf9 100644
--- a/public/modules/custom/grants_metadata/grants_metadata.services.yml
+++ b/public/modules/custom/grants_metadata/grants_metadata.services.yml
@@ -17,4 +17,4 @@ services:
'@database'
]
calls:
- - [ setEventsService, [ '@?grants_handler.events_service' ] ]
+ - [ setEventsService, [ '@?grants_events.events_service' ] ]
diff --git a/public/modules/custom/grants_metadata/src/ApplicationDataService.php b/public/modules/custom/grants_metadata/src/ApplicationDataService.php
index 9125424e4b..2d2f18001c 100644
--- a/public/modules/custom/grants_metadata/src/ApplicationDataService.php
+++ b/public/modules/custom/grants_metadata/src/ApplicationDataService.php
@@ -7,8 +7,8 @@
use Drupal\Core\Logger\LoggerChannelInterface;
use Drupal\Core\TypedData\TypedDataInterface;
use Drupal\grants_attachments\AttachmentHandler;
+use Drupal\grants_events\EventsService;
use Drupal\grants_handler\DebuggableTrait;
-use Drupal\grants_handler\EventsService;
use Drupal\grants_handler\Helpers;
/**
@@ -40,7 +40,7 @@ final class ApplicationDataService {
/**
* Events service.
*
- * @var \Drupal\grants_handler\EventsService
+ * @var \Drupal\grants_events\EventsService
*/
protected EventsService $eventsService;
@@ -63,7 +63,7 @@ public function __construct(
/**
* Set the getter service.
*
- * @param \Drupal\grants_handler\EventsService $eventsService
+ * @param \Drupal\grants_events\EventsService $eventsService
* Events service.
*/
public function setEventsService(EventsService $eventsService): void {
diff --git a/public/modules/custom/grants_metadata/tests/src/Kernel/AtvSchemaTest.php b/public/modules/custom/grants_metadata/tests/src/Kernel/AtvSchemaTest.php
index e598954a25..b33245862b 100644
--- a/public/modules/custom/grants_metadata/tests/src/Kernel/AtvSchemaTest.php
+++ b/public/modules/custom/grants_metadata/tests/src/Kernel/AtvSchemaTest.php
@@ -45,6 +45,7 @@ class AtvSchemaTest extends GrantsKernelTestBase implements ServiceModifierInter
'helfi_yjdh',
// Project modules.
'grants_applicant_info',
+ 'grants_events',
'grants_attachments',
'grants_budget_components',
'grants_club_section',
diff --git a/public/modules/custom/grants_profile/grants_profile.libraries.yml b/public/modules/custom/grants_profile/grants_profile.libraries.yml
index 788788e0ca..cbee1ec7c5 100644
--- a/public/modules/custom/grants_profile/grants_profile.libraries.yml
+++ b/public/modules/custom/grants_profile/grants_profile.libraries.yml
@@ -1,11 +1,12 @@
profile_dialog:
version: 1.x
js:
- js/profile_dialog.js: {}
+ js/profile_dialog.js: { }
dependencies:
- core/drupal
- core/jquery
- core/once
+ - grants_handler/grants-dialog
pattern_error:
js:
diff --git a/public/modules/custom/grants_profile/js/profile_dialog.js b/public/modules/custom/grants_profile/js/profile_dialog.js
index 7df4f03785..1ea699707b 100644
--- a/public/modules/custom/grants_profile/js/profile_dialog.js
+++ b/public/modules/custom/grants_profile/js/profile_dialog.js
@@ -29,58 +29,28 @@
let containingElement = document.querySelector('form');
if ((unset_name) && !containingElement.contains(event.target)) {
event.preventDefault();
- const $previewDialog = $(
- `
`,
- ).appendTo('body');
- Drupal.dialog($previewDialog, {
- title: Drupal.t('You need to have a name for your unregistered community or group. Please add a name and save or cancel them.'),
- width: '33%',
- buttons: [
- {
- text: Drupal.t('Back to profile'),
- buttonType: 'primary',
- click() {
- $(this).dialog('close');
- },
- },
- ],
- }).showModal();
+ return Drupal.dialogFunctions.createDialog(
+ Drupal.t('You need to have a name for your unregistered community or group. Please add a name and save or cancel them.', {}, { context: 'grants_profile' }),
+ '',
+ Drupal.t('Back to profile', {}, { context: 'grants_profile' }),
+ Drupal.t('Close', {}, { context: 'grants_profile' }),
+ );
} else if ((current_name !== initial_name) && !containingElement.contains(event.target)) {
event.preventDefault();
- const $previewDialog = $(
- `
`,
- ).appendTo('body');
- Drupal.dialog($previewDialog, {
- title: Drupal.t('You have unsaved changes in your profile. Please save or cancel them.'),
- width: '33%',
- buttons: [
- {
- text: Drupal.t('Back to profile'),
- buttonType: 'primary',
- click() {
- $(this).dialog('close');
- },
- },
- ],
- }).showModal();
+ return Drupal.dialogFunctions.createDialog(
+ Drupal.t('You have unsaved changes in your profile. Please save or cancel them.', {}, { context: 'grants_profile' }),
+ '',
+ Drupal.t('Back to profile', {}, { context: 'grants_profile' }),
+ Drupal.t('Close', {}, { context: 'grants_profile' }),
+ );
} else if (($('[data-drupal-selector="edit-isnewprofile"]').val() === 'initialSave') && !containingElement.contains(event.target)) {
event.preventDefault();
- const $previewDialog = $(
- `
`,
- ).appendTo('body');
- Drupal.dialog($previewDialog, {
- title: Drupal.t('You have not saved your profile. Please save your profile before leaving the form.'),
- width: '33%',
- buttons: [
- {
- text: Drupal.t('Back to profile'),
- buttonType: 'primary',
- click() {
- $(this).dialog('close');
- },
- },
- ],
- }).showModal();
+ return Drupal.dialogFunctions.createDialog(
+ Drupal.t('You have not saved your profile. Please save your profile before leaving the form.', {}, { context: 'grants_profile' }),
+ '',
+ Drupal.t('Back to profile', {}, { context: 'grants_profile' }),
+ Drupal.t('Close', {}, { context: 'grants_profile' }),
+ );
}
is_element_click = false;
diff --git a/public/modules/custom/grants_profile/src/GrantsProfileService.php b/public/modules/custom/grants_profile/src/GrantsProfileService.php
index 614c213904..b030cd4056 100644
--- a/public/modules/custom/grants_profile/src/GrantsProfileService.php
+++ b/public/modules/custom/grants_profile/src/GrantsProfileService.php
@@ -303,8 +303,9 @@ public function createNewProfile(
$this->logger
->error('Error fetching community data. Error: %error', [
'%error' => $e->getMessage(),
- ]
- );
+ ]);
+
+ \Sentry\captureException($e);
}
return $newProfile;
}
diff --git a/public/modules/custom/grants_profile/translations/fi.po b/public/modules/custom/grants_profile/translations/fi.po
index cceb749412..56bd6eb892 100644
--- a/public/modules/custom/grants_profile/translations/fi.po
+++ b/public/modules/custom/grants_profile/translations/fi.po
@@ -1,15 +1,5 @@
-# Finnish translation of City of Helsinki Grants Profile module
msgid ""
msgstr ""
-"Project-Id-Version: 1.0\n"
-"POT-Creation-Date: 2022-02-14 11:00+0300\n"
-"PO-Revision-Date: 2022-10-12 11:00+0300\n"
-"Last-Translator: Petri Leinonen \n"
-"Language-Team: LANGUAGE \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
msgctxt "grants_profile"
msgid "Delete bank account"
@@ -557,9 +547,11 @@ msgctxt "grants_profile"
msgid "Connection error"
msgstr "Yhteysvirhe"
+msgctxt "grants_profile"
msgid 'You need to have a name for your unregistered community or group. Please add a name and save or cancel them.'
msgstr 'Sinulla täytyy olla nimi rekisteröitymättömälle yhteisöllesi tai ryhmällesi. Lisää nimi ja tallenna tai peruuta ne.'
+msgctxt "grants_profile"
msgid 'You have unsaved changes in your profile. Please save or cancel them.'
msgstr 'Sinulla on tallentamattomia muutoksia profiilissasi. Ole hyvä ja tallenna tai peruuta ne.'
@@ -569,15 +561,21 @@ msgstr 'Sinulla on tallentamattomia muutoksia profiilissasi. Oletko varma, että
msgid 'You have not saved your profile. Are you sure you want to leave the form?'
msgstr 'Et ole tallentanut profiiliasi. Oletko varma, että haluat lähteä lomakkeelta?'
+msgctxt "grants_profile"
msgid 'You have not saved your profile. Please save your profile before leaving the form.'
msgstr 'Et ole tallentanut profiiliasi. Tallenna profiili ennen lomakkeelta poistumista.'
msgid 'You need to have a name for your unregistered community or group. Are you sure you want to leave the form?'
msgstr 'Sinulla täytyy olla nimi rekisteröitymättömälle yhteisöllesi tai ryhmällesi. Oletko varma, että haluat lähteä lomakkeelta?'
+msgctxt "grants_profile"
msgid 'Back to profile'
msgstr 'Takaisin profiiliin'
+msgctxt "grants_profile"
+msgid 'Close'
+msgstr 'Sulje'
+
msgctxt "grants_profile"
msgid "Fields marked with an asterisk * are required information."
msgstr "Tähdellä * merkityt kentät ovat pakollisia tietoja."
diff --git a/public/modules/custom/grants_profile/translations/sv.po b/public/modules/custom/grants_profile/translations/sv.po
index ae8890b846..6324107914 100644
--- a/public/modules/custom/grants_profile/translations/sv.po
+++ b/public/modules/custom/grants_profile/translations/sv.po
@@ -1,15 +1,5 @@
-# Swedish translation of City of Helsinki Grants Profile module
msgid ""
msgstr ""
-"Project-Id-Version: 1.0\n"
-"POT-Creation-Date: 2022-02-14 11:00+0300\n"
-"PO-Revision-Date: 2022-10-12 11:00+0300\n"
-"Last-Translator: Petri Leinonen \n"
-"Language-Team: LANGUAGE \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
msgctxt "grants_profile"
msgid "Delete bank account"
@@ -514,9 +504,11 @@ msgctxt "grants_profile"
msgid "Connection error"
msgstr "Anslutningsfel"
+msgctxt "grants_profile"
msgid 'You need to have a name for your unregistered community or group. Please add a name and save or cancel them.'
msgstr 'Du måste ha ett namn för din icke-registrerad förening eller verksamhetsgrupp. Vänligen lägg till ett namn och spara eller avbryt dem.'
+msgctxt "grants_profile"
msgid 'You have unsaved changes in your profile. Please save or cancel them.'
msgstr 'Du har osparade ändringar i din profil. Spara eller avbryt dem.'
@@ -526,15 +518,21 @@ msgstr 'Du har osparade ändringar i din profil. Är du säker på att du vill l
msgid 'You have not saved your profile. Are you sure you want to leave the form?'
msgstr 'Du har inte sparat din profil. Är du säker på att du vill lämna formuläret?'
+msgctxt "grants_profile"
msgid 'You have not saved your profile. Please save your profile before leaving the form.'
msgstr 'Du har inte sparat din profil. Spara din profil innan du lämnar formuläret.'
msgid 'You need to have a name for your unregistered community or group. Are you sure you want to leave the form?'
msgstr 'Du måste ha ett namn för din icke-registrerad förening eller verksamhetsgrupp. Är du säker på att du vill lämna formuläret?'
+msgctxt "grants_profile"
msgid 'Back to profile'
msgstr 'Tillbaka till profilen'
+msgctxt "grants_profile"
+msgid 'Close'
+msgstr "Stäng"
+
msgctxt "grants_profile"
msgid "Fields marked with an asterisk * are required information."
msgstr "Fält markerade med en asterisk * är obligatorisk information."
diff --git a/public/sites/default/settings.php b/public/sites/default/settings.php
index 872d57aab5..2f8d1e8e87 100644
--- a/public/sites/default/settings.php
+++ b/public/sites/default/settings.php
@@ -389,6 +389,11 @@ function drupal_get_env(string|array $variables) : mixed {
$default_log_level = getenv('APP_ENV') === 'production' ? 'info' : 'debug';
$settings['helfi_api_base.log_level'] = getenv('LOG_LEVEL') ?: $default_log_level;
+// Turn sentry JS error tracking on if SENTRY_DSN_PUBLIC is defined.
+if (getenv('SENTRY_DSN_PUBLIC')) {
+ $config['raven.settings']['javascript_error_handler'] = TRUE;
+}
+
/**
* Deployment identifier.
*
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 7d6b556a59..c792cc8314 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 @@
-body{--webform-element-width--input-small: 184px;--webform-element-width--input-medium: 332px;--webform-element-width--input-large: 591px;--webform-element-width--fieldset: 714px}.hel-icon--size-xs,.hds-icon--size-xs{height:16px;width:16px}.hel-icon--size-s,.hds-icon--size-s{height:24px;width:24px}.hel-icon--size-m,.hds-icon--size-m{height:32px;width:32px}.hel-icon--size-l,.hds-icon--size-l{height:48px;width:48px}.hel-icon--size-xl,.hds-icon--size-xl{height:64px;width:64px}.hel-icon.hel-icon--pen-line{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8, ");mask-image:url("data:image/svg+xml;charset=utf-8, ")}.hel-icon.hds-icon--company{background:var(--color-black);-webkit-mask-image:url("data:image/svg+xml;charset=utf-8, ");mask-image:url("data:image/svg+xml;charset=utf-8, ")}.hds-button--secondary:not(.eu-cookie-compliance-default-button):not(.eu-cookie-compliance-save-preferences-button){--background-color: transparent;--background-color-hover: var(--color-black-80);--background-color-focus: transparent;--background-color-hover-focus: var(--color-black-80);--background-color-disabled: transparent;--color: var(--color-black);--color-hover: var(--color-white);--color-focus: var(--color-black);--color-hover-focus: var(--color-black);--color-disabled: var(--color-black-40)}.hds-button--secondary:not(:disabled):not(.eu-cookie-compliance-default-button):not(.eu-cookie-compliance-save-preferences-button),.hds-button--primary:not(:disabled){border-color:transparent;border-color:var(--color-black, transparent)}.hds-button.hds-button--supplementary .hds-button__label{margin:0;padding:0 var(--spacing-2-xs)}.hds-button.hds-button--supplementary::after,.hds-button.hds-button--supplementary::before{display:none !important}.hds-button--supplementary:not(:disabled){--background-color-hover: rgba(0, 0, 0, 0.1);background:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.hds-button--supplementary:not(:disabled):hover{background-color:var(--background-color-hover)}.hds-button--alert{--background-color: rgb(255, 0, 0)}a.hds-button.webform-button--delete-draft:not(:disabled){text-decoration:none}a.hds-button.webform-button--delete-draft:not(:disabled) .hds-button__label_wrapper{display:inline}a.hds-button.webform-button--delete-draft:not(:disabled) .hds-button__label{text-decoration:underline}a.hds-button.webform-button--delete-draft:not(:disabled):hover .hds-button__label{text-decoration:none}.openid-connect-login-form input[type=submit].hds-button{width:220px}.hds-button__label_wrapper{align-items:center;display:flex}.hds-button__label_wrapper:not(.hds-button)>.hds-button__label{margin:0 var(--spacing-2-xs)}.hds-link{--link-visited-color: var(--color-black);--link-color: var(--color-black)}.hds-card{--background-color: var(--color-white);--border-color: var(--color-black-90);--color: var(--color-black-90);--border-width: 2px;--padding-horizontal: var(--spacing-l);--padding-vertical: var(--spacing-m);background-color:var(--background-color);color:var(--color);padding:var(--padding-vertical) var(--padding-horizontal)}.hds-card--border{border:var(--border-width) solid var(--border-color)}.hds-card__body{display:grid;grid-gap:var(--spacing-m);gap:var(--spacing-m);margin-bottom:var(--spacing-l)}.hds-card__body:last-child{margin-bottom:0}.hds-card__heading{font-size:var(--fontsize-heading-m);font-weight:bold;line-height:var(--lineheight-m)}.hds-card__text{font-size:var(--fontsize-body-m);line-height:var(--lineheight-l)}.hds-card--applicant-role{margin-bottom:var(--spacing-l);margin-right:0;max-width:400px;width:100%}.hds-card__heading-m{font-size:var(--fontsize-heading-m);font-weight:500;letter-spacing:-0.2px;line-height:32px;margin-top:0}.grants-profile--menuitem--login,.grants-profile--menuitem--logout{align-items:center;display:flex;flex-flow:column;font-size:var(--fontsize-body-s);height:var(--spacing-xl);margin-left:var(--spacing-2-xs);margin-right:var(--spacing-2-xs);position:relative;text-align:center;width:var(--spacing-xl)}.grants-profile--menuitem--login .hel-icon,.grants-profile--menuitem--logout .hel-icon{display:block;margin:auto}.grants-profile--menuitem--login-triggertext,.grants-profile--menuitem--logout-triggertext{clip:rect(1px, 1px, 1px, 1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);display:block;max-height:1px;max-width:1px;opacity:0;overflow:hidden;position:absolute;white-space:nowrap}.block--grants-profile--menuitem{align-items:center;display:flex;grid-area:brand;z-index:2}.block--branding{flex-grow:10}.grants-frontpage-info-block{margin-bottom:var(--spacing-layout-xl)}.grants-profile--menuitem{height:var(--spacing-m);margin-left:var(--spacing-2-xs);margin-right:var(--spacing-2-xs);position:relative;width:var(--spacing-m)}@media(min-width: 768px){.grants-profile--menuitem{height:var(--spacing-2-xl);width:var(--spacing-2-xl)}}.grants-profile--menuitem a{text-decoration:none}.grants-profile--menuitem--notifications{background-color:var(--color-error);border:2px var(--color-white) solid;border-radius:50%;color:var(--color-white);font-size:var(--fontsize-body-s);font-weight:bold;height:var(--spacing-xs) 1.25;line-height:var(--spacing-layout-2-xs);position:absolute;right:-5px;text-align:center;top:-5px;width:var(--spacing-xs) 1.25;z-index:2}.grants-profile--menuitem--initials{border-radius:50%;font-weight:bold;height:var(--spacing-m);line-height:var(--spacing-m);text-align:center;vertical-align:middle;width:var(--spacing-m)}@media(min-width: 768px){.grants-profile--menuitem--initials{height:var(--spacing-2-xl);line-height:var(--spacing-2-xl);width:var(--spacing-2-xl)}}.grants-profile--menuitem--initials:hover,.grants-profile--menuitem--initials:active,.grants-profile--menuitem--initials:focus{text-decoration:underline}.grants-profile--menuitem--initials-colorscheme-2{background-color:var(--color-bus);color:var(--color-white)}.grants-profile--menuitem--initials-colorscheme-1{background-color:var(--color-engel);color:var(--color-black)}.grants-profile--menuitem--initials-colorscheme-0{background-color:var(--color-tram);color:var(--color-white)}.sidebar-important-links{margin-top:var(--spacing-2-xl)}.sidebar-important-links .sidebar-text .sidebar-text__text-content>p{padding:var(--spacing-s) var(--spacing-m)}.block--service-page-banner{background-color:var(--color-engel);margin-top:var(--spacing-layout-s);padding:var(--spacing-layout-s)}.block--service-page-banner h2{margin-top:0}.block--service-page-banner .hds-icon{margin-bottom:var(--spacing-layout-s)}.hds-button.service-page-sidebar-link{background-color:var(--hdbt-color-palette--secondary);padding:var(--spacing-xs)}.hds-button.service-page-sidebar-link:hover{color:var(--color-black)}.terms_block{padding-bottom:var(--spacing-4-xl)}#block-servicepageauthblock h2,#block-servicepageanonblock h2{--line-height: 1.3;font-size:1.25rem;font-weight:500;line-height:var(--line-height)}@media(min-width: 992px){#block-servicepageauthblock h2,#block-servicepageanonblock h2{--line-height: 1.1666666667;font-size:1.5rem;font-weight:500}}#block-servicepageauthblock .hds-button,#block-servicepageanonblock .hds-button{margin-top:var(--spacing-m)}.grants-service-page-block{background-color:var(--color-alert-light);margin-top:var(--spacing-m);padding:var(--spacing-m)}.grants-service-page-block h3{font-size:var(--fontsize-heading-s);margin-top:0}.grants-service-page-block .hel-icon{vertical-align:text-bottom}.grants-service-page-block--auth{background-color:var(--color-info-light)}.hel-icon.hel-icon--swap-user{-webkit-mask-image:url('data:image/svg+xml, ');mask-image:url('data:image/svg+xml, ')}.nav-toggle-dropdown--profile .profile__information{background-color:var(--color-silver-light)}.nav-toggle-dropdown--profile .profile__full-name{font-weight:bold}.nav-toggle-dropdown--profile .grants-profile--menuitem--mandate,.nav-toggle-dropdown--profile .grants-profile--menuitem--switch-role{--line-height: 1.5555555556;font-size:1.125rem;font-weight:400;line-height:var(--line-height);border-top:1px solid #ccc;border-bottom:1px solid #ccc;display:block;font-weight:normal;padding:16px;text-decoration:none;width:100%}@media(min-width: 992px){.nav-toggle-dropdown--profile .grants-profile--menuitem--mandate,.nav-toggle-dropdown--profile .grants-profile--menuitem--switch-role{border-bottom:none}}.nav-toggle-dropdown--profile .grants-profile--menuitem--mandate:hover,.nav-toggle-dropdown--profile .grants-profile--menuitem--switch-role:hover{text-decoration:underline}.nav-toggle-dropdown--profile .grants-profile--menuitem--mandate:focus,.nav-toggle-dropdown--profile .grants-profile--menuitem--switch-role:focus{outline:3px solid #000;outline-offset:-3px}.application-timeout-message{display:none;padding-left:16px;padding-left:var(--spacing-s, 16px);position:fixed;right:0;top:50%;z-index:100}.application-timeout-message.slide-in{animation:slide-in-right .5s forwards ease;display:block}.application-timeout-message .close-application-timeout-message{cursor:pointer;font-size:1.25rem;position:absolute;right:1.25rem}@keyframes slide-in-right{from{right:-500px}to{right:1.25rem}}.ui-widget-overlay{z-index:99}.ui-dialog .ui-button:hover{border-width:2px}.ui-dialog .ui-dialog-titlebar-close{top:var(--spacing-s);z-index:1001}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:left}.ui-dialog .ui-dialog-buttonpane{padding:var(--spacing-2-xs) var(--spacing-m)}.ui-dialog .ui-dialog-buttonpane button{margin:0 var(--spacing-xs) 0 0}.ui-dialog .ui-dialog-content{padding:0 1em 1em;position:static;position:initial}.ui-dialog div.ui-dialog-titlebar{padding:0}.ui-dialog-titlebar{background:rgba(0,0,0,0);border:0}.ui-dialog-titlebar-close{background:none;border:none}.ui-dialog-titlebar .ui-dialog-title{display:block;font-size:var(--fontsize-heading-s);overflow:auto;padding:var(--spacing-layout-2-xs) var(--spacing-layout-2-xs) var(--spacing-layout-2-xs) var(--spacing-2-xl);position:relative;white-space:normal}.ui-dialog-title .hel-icon{left:var(--spacing-m);margin-right:var(--spacing-2-xs);position:absolute;top:var(--spacing-s)}.ui-widget-content{border:0 rgba(0,0,0,0) solid}.ui-widget-content h3{margin-top:0}div.ui-widget.ui-widget-content{border-top:var(--spacing-2-xs) solid var(--color-black);max-width:100vw;min-width:300px;padding-top:0}.ui-widget-content span.ui-icon{margin-left:-8px;margin-top:-8px;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E %3Cg fill='none' fill-rule='evenodd'%3E %3Crect width='24' height='24'/%3E %3Cpolygon fill='currentColor' points='18 7.5 13.5 12 18 16.5 16.5 18 12 13.5 7.5 18 6 16.5 10.5 12 6 7.5 7.5 6 12 10.5 16.5 6'/%3E %3C/g%3E %3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E %3Cg fill='none' fill-rule='evenodd'%3E %3Crect width='24' height='24'/%3E %3Cpolygon fill='currentColor' points='18 7.5 13.5 12 18 16.5 16.5 18 12 13.5 7.5 18 6 16.5 10.5 12 6 7.5 7.5 6 12 10.5 16.5 6'/%3E %3C/g%3E %3C/svg%3E");transform:scale(1.5)}.submission-for-copying{margin-bottom:1em;margin-top:1em}.view_application_search_search_api .main-content{margin-top:0}.view_application_search_search_api .search-result-amount--wrapper{align-items:center;display:flex}.view_application_search_search_api .search-result-amount--wrapper p{margin-top:0}.view_application_search_search_api select.search-result-amount{border:1px solid var(--color-black-50);margin-left:var(--spacing-l);margin-right:var(--spacing-2-xs)}.view_application_search_search_api .search-filter-button{background-color:var(--color-black);border-radius:180px;border:0;color:var(--color-white);display:inline-block;margin:0 var(--spacing-2-xs) var(--spacing-2-xs) 0;padding:var(--spacing-2-xs) var(--spacing-xs)}.view_application_search_search_api .search-filter-button:focus{--focus-outline-color: #000000;box-shadow:none;outline:3px solid var(--focus-outline-color);outline:var(--outline-width, 3px) solid var(--focus-outline-color);outline-offset:2px;outline-offset:var(--outline-gutter, 2px)}.view_application_search_search_api .search-filter-button span{vertical-align:middle}.view_application_search_search_api .search-filter-button span.hel-icon:hover{cursor:pointer}.view-application-search-search-api .main-content{margin-top:var(--spacing-layout-s)}.view-application-search-search-api .main-content .view-header{align-items:center;display:flex;margin-bottom:var(--spacing-layout-s)}.application_search--link{display:block;height:100%;padding-bottom:var(--spacing-m);position:relative;text-decoration:none}.application_search--link::after{--icon-size: 1.5rem;background-color:#000;background-size:contain;content:"";display:inline-block;height:calc(var(--line-height) * 1em);height:var(--icon-size, calc(var(--line-height) * 1em));-webkit-mask-image:var(--hel-icon--arrow-right);mask-image:var(--hel-icon--arrow-right);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);-webkit-mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));vertical-align:bottom;width:calc(var(--line-height) * 1em);width:var(--icon-size, calc(var(--line-height) * 1em));transition:transform .2s linear;bottom:var(--spacing-s);content:"";display:block;flex-shrink:0;left:var(--spacing-m);margin-left:-4px;margin-top:8px;position:absolute}@media(prefers-reduced-motion){.application_search--link::after{transition:none}}@media(min-width: 576px){.application_search--link::after{--icon-size: 3rem;margin-left:-8px;margin-top:16px}}.application_search--link:focus h3,.application_search--link:hover h3{text-decoration:none}.application_search--link:focus::after,.application_search--link:hover::after{transform:translateX(8px)}@media(prefers-reduced-motion){.application_search--link:focus::after,.application_search--link:hover::after{transform:none}}.application_search--filter-wrapper{background:var(--color-black-5)}.application_search--filter-wrapper h2{font-size:var(--fontsize-heading-m);margin-bottom:var(--spacing-layout-s);margin-top:var(--spacing-layout-s)}.application_search--filter-wrapper form{align-items:center;border-bottom:2px solid var(--color-black-20);display:flex;flex-flow:row wrap;gap:var(--spacing-s);justify-content:space-between;margin-bottom:var(--spacing-layout-s);padding-bottom:var(--spacing-layout-s)}.application_search--filter-wrapper form .form-item{margin-bottom:0;min-width:-moz-fit-content;min-width:fit-content;width:calc((100% - var(--spacing-s) - var(--spacing-s))/3)}.application_search--filter-wrapper form .form-item label{color:var(--label-color-default);font-size:var(--fontsize-body-m);font-weight:500;margin-bottom:var(--spacing-3-xs)}.application_search--filter-wrapper form .form-item .grant-applications--select-wrapper{min-width:100%;width:100%}.application_search--filter-wrapper form .hds-text-input:first-child{max-width:none;width:100%}.application_search--filter-wrapper form .hds-text-input:first-child input{width:100%}.application_search--filter-wrapper form .form-actions{align-items:center;display:flex;order:6;padding-top:var(--spacing-m);width:100%}@media(min-width: 768px){.application_search--filter-wrapper form .form-actions{width:17%}}.application_search--filter-wrapper form .form-actions input{min-width:250px;width:100%}.application_search--filter-wrapper form .form-item-items-per-page{display:none}.application_search--filter-wrapper form .form-item-kohderyhma{order:1}.application_search--filter-wrapper form .form-item-avustuslaji{order:2}.application_search--filter-wrapper form .form-item-hakija{order:3}.application_search--filter-wrapper form .form-item-search{max-width:100%;order:4;width:50%}.application_search--filter-wrapper form .form-item-application-open{page-break-before:left;-moz-column-break-before:left;break-before:left;display:block;margin-top:var(--spacing-m);order:5;width:30%}.application_search--filter-wrapper form [data-drupal-selector=edit-reset]{background-color:rgba(0,0,0,0);border:0;color:var(--color-black)}.application_search--filter-wrapper .hds-koros svg pattern{color:var(--color-black-5)}.application_search--filter-wrapper .hero .hero__container{padding-bottom:var(--spacing-m)}.application_search--filters{padding-bottom:var(--spacing-layout-m);padding-top:0}.application_search--rows{display:flex;flex-direction:column;flex-wrap:wrap;justify-content:flex-start;width:100%}@media(min-width: 576px){.application_search--rows{flex-direction:row;margin-left:calc(-1*var(--spacing-m));width:calc(100% + var(--spacing-m))}}.application_search--row{box-shadow:1px 2px 4px 0 rgba(0,0,0,.5);margin-bottom:var(--spacing-l);position:relative;width:100%}@media(min-width: 576px){.application_search--row{margin-left:var(--spacing-m);width:calc(50% - var(--spacing-m))}}@media(min-width: 992px){.application_search--row{width:calc(33.3333333333% - var(--spacing-m))}}.application_search--row h3{font-size:var(--fontsize-heading-m);margin-top:var(--spacing-xs)}.application_search--row .views-field-search-api-excerpt{height:auto;overflow:auto;word-break:normal}.application_search--row .views-field{padding:var(--spacing-xs) var(--spacing-m)}.application_search--row .views-field-field-target-group{padding:0}.application_search--row .views-field-field-avustuslaji{padding:var(--spacing-xs) var(--spacing-m) var(--spacing-layout-m) var(--spacing-m)}.application_search--row .views-field-field-avustuslaji .tag_avustuslaji{background:var(--color-black);border-radius:var(--spacing-m);color:var(--color-white);display:inline-block;margin-bottom:var(--spacing-2-xs);padding:var(--spacing-3-xs) var(--spacing-xs)}.application_search--row .views-field-field-application-period .field-content{align-items:center;display:flex;gap:var(--spacing-s);position:relative}.application_search--row .views-field-field-application-period .field-content span{display:block}.application_search--row .tag_target_group{background:var(--color-black-20);color:var(--color-black);font-size:var(--fontsize-body-s);font-weight:bold;padding:var(--spacing-m);text-align:center;text-transform:uppercase;width:100%}.application_search--row .tag_target_group_12{background:var(--color-brick-medium-light)}.application_search--row .tag_target_group_20{background:var(--color-copper)}.application_search--row .tag_target_group_21{background:var(--color-metro-medium-light)}.application_search--row .tag_target_group_22{background:var(--color-suomenlinna-medium-light)}.application_search--row .tag_target_group_23{background:var(--color-engel)}.application_search--row .tag_target_group_24{background:var(--color-bus-medium-light)}.application_search--row .tag_target_group_25{background:var(--color-coat-of-arms-medium-light)}.application_search--row .tag_target_group_26{background:var(--color-gold-medium-light)}.application_search--row .tag_target_group_27{background:var(--color-tram-medium-light)}.application_search--row .tag_target_group_28{background:var(--color-summer-light)}.application_search--row .tag_target_group_29{background:var(--color-fog)}.application_search--row .tag_target_group_30{background:var(--color-copper-light)}.application_search--row .tag_target_group_31{background:var(--color-gold)}.view-ukk .view-filters{display:none}.view-ukk .ukk_categories{display:block;margin:var(--spacing-xl) 0;padding:0}.view-ukk .ukk_categories li{display:inline-block;list-style:none;margin:var(--spacing-m) var(--spacing-s) 0 0;padding:0}.view-ukk .hero .hero__text-content{max-width:100%}.view-ukk #edit-field-category-target-id{display:flex}.view-ukk #edit-field-category-target-id .hds-radio-button:first-of-type{margin-top:var(--spacing-2-xs)}.view-ukk #edit-field-category-target-id .hds-radio-button .hds-radio-button__input:checked+.hds-radio-button__label{background:var(--color-black);border-radius:var(--spacing-m);color:var(--color-white);padding:var(--spacing-2-xs) var(--spacing-s)}.view-ukk #edit-field-category-target-id .hds-radio-button__label{padding:var(--spacing-2-xs) var(--spacing-s)}.view-ukk #edit-field-category-target-id .hds-radio-button__label::before,.view-ukk #edit-field-category-target-id .hds-radio-button__label::after{display:none}.view-ukk .views-exposed-form fieldset{margin-bottom:0}.view-ukk .views-exposed-form .form-submit{margin-bottom:var(--spacing-l)}.view-ukk .category{background:var(--color-black);border-radius:var(--spacing-m);color:var(--color-white);display:inline-block;padding:var(--spacing-2-xs) var(--spacing-s);text-decoration:none}.view-ukk .category-unselected{background:var(--color-black-20);color:var(--color-black)}.page--select-applicant-role{background-color:var(--color-black-5)}.page--select-applicant-role body{background-color:var(--color-black-5)}.page--select-applicant-role .layout-main-wrapper{background-color:var(--color-black-5)}.page--select-applicant-role .main-content{margin-top:var(--spacing-l)}.page--select-applicant-role h1{margin-top:var(--spacing-l)}.page--select-applicant-role p{margin-bottom:var(--spacing-m)}.node--type-service .errand-service__channels .service-channel__links a[href^="https://avustukset.hel.fi"]{display:none}.node--type-service .service-channel__info p:first-of-type{margin-top:0}.node--type-service .service-channel--mail{display:none}#block-servicepageauthblock-2,#block-servicepageanonblock-2,#block-grantspreviewlink-2{display:none}@media(max-width: 767.9px){#block-servicepageauthblock-2,#block-servicepageanonblock-2,#block-grantspreviewlink-2{display:block;margin:var(--spacing-s)}}@media(max-width: 991.9px){#block-servicepageauthblock-2,#block-servicepageanonblock-2,#block-grantspreviewlink-2{display:block;margin:var(--spacing-l)}}#block-servicepageauthblock-2>.grants-service-page-block>*,#block-servicepageanonblock-2>.grants-service-page-block>*,#block-grantspreviewlink-2>.grants-service-page-block>*{margin:var(--spacing-2-xs) 0 var(--spacing-2-xs) var(--spacing-2-xs)}@media(max-width: 991.9px){#block-servicepageauthblock-2 .node--type-service a.hds-button[href*=uusi-hakemus],#block-servicepageanonblock-2 .node--type-service a.hds-button[href*=uusi-hakemus],#block-grantspreviewlink-2 .node--type-service a.hds-button[href*=uusi-hakemus]{display:none}}.user-login__text-container{background:var(--color-white);max-width:500px;padding:var(--spacing-m)}.user-login__text-container p:first-of-type{margin-top:0}.tabs{--tablist-border-color: var(--color-black-20);--tablist-border-size: 1px;--tab-color: var(--color-black);--tab-font-size: var(--fontsize-body-m);--tab-height: 48px;--tab-min-width: 148px;--tab-spacing: var(--spacing-s);--tab-active-border-size: 5px;--tab-active-border-color: var(--color-black);--tab-focus-outline-size: 2px;--tab-focus-outline-color: var(--color-coat-of-arms);display:flex;flex-flow:row wrap}.tabs--tablist{box-sizing:border-box;flex-grow:1;margin-bottom:-1px;overflow-x:hidden;position:relative;width:100%}.tabs--content-wrapper{width:100%}.tabs--content-wrapper .container{padding-top:1px}.tabs [role=tablist]{box-sizing:border-box;list-style:none;margin:0;padding:var(--tab-focus-outline-size) 0;white-space:nowrap}.tabs [role=tab]{background:rgba(0,0,0,0);border:0;cursor:pointer;display:inline-block;margin:0;outline:none;padding:0}.tabs [role=tab] span{align-items:center;box-sizing:border-box;color:var(--tab-color);display:flex;font-size:var(--tab-font-size);height:var(--tab-height);justify-content:center;margin:0;min-width:var(--tab-min-width);padding:0 var(--tab-spacing);pointer-events:none;position:relative}.tabs [role=tab] span::before{background:var(--tablist-border-color);bottom:0;content:"";height:var(--tablist-border-size);position:absolute;width:100%;z-index:100}.tabs [role=tab] span:hover::before,.tabs [role=tab] span:focus::before,.tabs [role=tab][aria-selected=true] span::before{background-color:var(--tab-active-border-color);bottom:0;content:"";height:var(--tab-active-border-size);position:absolute;width:100%;z-index:100}.tabs [role=tabpanel].is-hidden{display:none}.node--form-page .list-of-links{margin-left:0;margin-top:0;width:100%}@media(min-width: 768px){.node--form-page .list-of-links{margin-top:0}}.node--form-page .list-of-links>.container{padding-top:0}.node--form-page .list-of-links .list-of-links__title{border-top:2px solid var(--color-black-20);margin:0 0 var(--spacing-layout-xl)}@media(min-width: 576px){.node--form-page .list-of-links .list-of-links__container{width:calc(100% - var(--spacing-layout-xl))}}@media(min-width: 768px){.node--form-page .list-of-links .list-of-links__container{width:100%}}.node--form-page .list-of-links .list-of-links__content{height:auto;margin-top:0}@media(min-width: 768px){.node--form-page .list-of-links .list-of-links__content{display:grid;grid-template-columns:auto auto auto;margin:0 var(--spacing-m) 0 0}}.node--form-page .list-of-links .list-of-links__item{align-self:stretch;border-left:4px solid var(--color-copper);margin-right:-4px;padding-left:var(--spacing-m);padding-right:var(--spacing-m)}.list-of-links--without-image .list-of-links__item .list-of-links__item__desc{color:var(--color-black-90);font-size:var(--fontsize-body-m)}.list-of-links--without-image .list-of-links__item .list-of-links__item__title{font-size:var(--fontsize-heading-m)}.js-form-type-webform-custom-composite{--border-width: 2px;--outline-width: 3px;--input-height: 56px;--textarea-height: 149px;--icon-size: var(--spacing-m);--helper-color-default: var(--color-black-60);--helper-color-invalid: var(--color-error);--icon-color-invalid: var(--color-error);--input-background-default: var(--color-white);--input-background-disabled: var(--color-black-10);--input-border-color-default: var(--color-black-50);--input-border-color-hover: var(--color-black-90);--input-border-color-focus: var(--color-black-90);--input-border-color-invalid: var(--color-error);--input-border-color-disabled: var(--color-black-10);--input-color-default: var(--color-black-90);--input-color-disabled: var(--color-black-40);--label-color-default: var(--color-black-90);--label-color-invalid: var(--color-black-90);--placeholder-color: var(--color-black-60);--focus-outline-color: var(--color-coat-of-arms)}.js-form-type-webform-custom-composite a.tabledrag-handle .handle{height:24px;width:24px}.js-form-type-webform-custom-composite input.form-number{background-color:var(--input-background-default);border:var(--border-width) solid var(--input-border-color-default);box-sizing:border-box;color:var(--input-color-default);font-size:1.125em;height:var(--input-height);line-height:normal;padding:0 var(--spacing-s);width:100%}.js-form-type-webform-custom-composite table{border-collapse:collapse;border-spacing:0;margin-bottom:var(--spacing-m)}.js-form-type-webform-custom-composite table td{border-bottom:2px var(--color-black-20) solid;border-top:2px var(--color-black-20) solid;padding-left:var(--spacing-m);padding-top:var(--spacing-m)}@media(max-width: 768px){.js-form-type-webform-custom-composite table td{border:2px var(--color-black-20) solid}}.js-form-type-webform-custom-composite table td.webform-multiple-table--operations{border-bottom:2px var(--color-black-20) solid;border-top:2px var(--color-black-20) solid;padding-left:var(--spacing-m);padding-top:var(--spacing-m)}@media(max-width: 768px){.js-form-type-webform-custom-composite table td.webform-multiple-table--operations{background:var(--color-white);border:2px var(--color-black-20) solid;padding:10px 5px 5px}}.js-form-type-webform-custom-composite table td:first-child{border-left:2px var(--color-black-20) solid}.js-form-type-webform-custom-composite table td:last-child{border-right:2px var(--color-black-20) solid;padding:var(--spacing-s)}@media(min-width: 768px){.js-form-type-webform-custom-composite table td:last-child{min-width:400px;padding:var(--spacing-s) var(--spacing-m)}}div.ui-widget.ui-datepicker{padding:var(--spacing-2-xs)}div.ui-widget.ui-datepicker .ui-datepicker-header span.ui-icon{margin-left:-8px;margin-top:-8px;-webkit-mask-image:none;mask-image:none;transform:none}div.ui-widget.ui-datepicker .ui-datepicker-calendar{border:0;display:table;margin:0;max-width:100%}div.ui-widget.ui-datepicker .ui-datepicker-calendar th,div.ui-widget.ui-datepicker .ui-datepicker-calendar td{min-width:auto}details.accordion{--background-color: var(--color-white);--border-color: var(--color-black-60);--padding-horizontal: var(--spacing-m);--padding-vertical: var(--spacing-m);--header-font-color: var(--color-black-90);--header-font-size: var(--fontsize-heading-m);--header-line-height: var(--lineheight-m);--button-size: 28px;--header-focus-outline-color: var(--color-coat-of-arms);--content-font-color: var(--color-black-90);--content-font-size: var(--fontsize-body-m);--content-line-height: var(--lineheight-l);border-bottom:1px solid var(--border-color)}details.accordion .accordion_content{padding-bottom:var(--padding-vertical)}details.accordion[open] .accordion_heading_container span.hel-icon{transform:rotate(180deg)}.accordion_header{align-items:center;color:var(--header-font-color);display:flex;font-size:var(--header-font-size);font-weight:700;justify-content:space-between;line-height:var(--header-line-height);list-style:none;padding-bottom:var(--padding-vertical);padding-top:var(--padding-vertical);position:relative}.accordion_heading_container{align-items:center;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:auto calc(var(--button-size));width:100%}.accordion_heading_container span.hel-icon{height:var(--button-size) !important;width:var(--button-size) !important}.accordion_heading_container span.hel-icon{border:2px solid rgba(0,0,0,0);box-sizing:border-box;margin:auto}.webform-element-description{--helper-color-default: var(--color-black-60);color:var(--helper-color-default);display:block;font-size:var(--fontsize-body-m);line-height:var(--lineheight-l);margin-top:var(--spacing-s)}.webform-element-help{background:var(--color-white);border:2px solid rgba(0,0,0,0);color:var(--hdbt-color-black);height:var(--spacing-layout-xs);margin-right:4px;padding:0;position:absolute;right:0;top:-3px;width:var(--spacing-layout-xs);z-index:10}div[data-tippy-root]{width:350px}.tippy-box{background-color:var(--color-black-5);border-left:var(--spacing-xs) var(--color-coat-of-arms) solid;border-radius:0;color:var(--hdbt-color-black);padding:var(--spacing-s)}.tippy-box .webform-element-help--content{white-space:normal}.tippy-box .webform-element-help--content a:link,.tippy-box .webform-element-help--content a:visited,.tippy-box .webform-element-help--content a:active,.tippy-box .webform-element-help--content a:hover{color:var(--hdbt-color-black)}.tippy-arrow{color:var(--color-black-5)}.webform-element-help--wrapper-short{max-width:-moz-fit-content;max-width:fit-content}.webform-element-help-container--title{--border-width: 2px;--outline-width: 3px;--input-height: 56px;--textarea-height: 149px;--icon-size: var(--spacing-m)}fieldset.grants-fieldset{padding:var(--spacing-s)}@media(min-width: 768px){fieldset.grants-fieldset{min-width:400px;padding:var(--spacing-s) var(--spacing-m)}}fieldset.grants-fieldset .fieldset-wrapper{align-items:flex-end;display:flex;flex-wrap:wrap;gap:0 var(--spacing-layout-2-xs)}fieldset.grants-fieldset .fieldset-wrapper .form-item--error-message{grid-column:1}fieldset.grants-fieldset-short{max-width:var(--webform-element-width--input-large)}fieldset.grants-fieldset-medium{max-width:var(--webform-element-width--fieldset)}fieldset.grants-fieldset-medium .fieldset-wrapper{justify-content:center}fieldset.premises-composite--wrapper.fieldgroup,fieldset.rented-premise-composite--wrapper.fieldgroup,.community_officials_wrapper fieldset.fieldgroup,fieldset.grants-budget-other-cost--wrapper.fieldgroup,fieldset.grants-budget-other-income--wrapper.fieldgroup,fieldset.place-of-operation-composite--wrapper.fieldgroup,fieldset.rent-income-composite--wrapper.fieldgroup,fieldset.rent-cost-composite--wrapper.fieldgroup,fieldset.club-section-composite--wrapper.fieldgroup,fieldset.members-composite--wrapper.fieldgroup,fieldset.orienteering-map-composite--wrapper,.form-item-muu-liite fieldset.grants-attachments--wrapper.fieldgroup{border-width:2px;margin-top:var(--spacing-layout-2-xs);max-width:100%;padding:var(--spacing-s);width:100%}@media(min-width: 768px){fieldset.premises-composite--wrapper.fieldgroup,fieldset.rented-premise-composite--wrapper.fieldgroup,.community_officials_wrapper fieldset.fieldgroup,fieldset.grants-budget-other-cost--wrapper.fieldgroup,fieldset.grants-budget-other-income--wrapper.fieldgroup,fieldset.place-of-operation-composite--wrapper.fieldgroup,fieldset.rent-income-composite--wrapper.fieldgroup,fieldset.rent-cost-composite--wrapper.fieldgroup,fieldset.club-section-composite--wrapper.fieldgroup,fieldset.members-composite--wrapper.fieldgroup,fieldset.orienteering-map-composite--wrapper,.form-item-muu-liite fieldset.grants-attachments--wrapper.fieldgroup{min-width:400px;padding:var(--spacing-s) var(--spacing-m)}}fieldset.premises-composite--wrapper.fieldgroup legend>span.visually-hidden,fieldset.rented-premise-composite--wrapper.fieldgroup legend>span.visually-hidden,.community_officials_wrapper fieldset.fieldgroup legend>span.visually-hidden,fieldset.grants-budget-other-cost--wrapper.fieldgroup legend>span.visually-hidden,fieldset.grants-budget-other-income--wrapper.fieldgroup legend>span.visually-hidden,fieldset.place-of-operation-composite--wrapper.fieldgroup legend>span.visually-hidden,fieldset.rent-income-composite--wrapper.fieldgroup legend>span.visually-hidden,fieldset.rent-cost-composite--wrapper.fieldgroup legend>span.visually-hidden,fieldset.club-section-composite--wrapper.fieldgroup legend>span.visually-hidden,fieldset.members-composite--wrapper.fieldgroup legend>span.visually-hidden,fieldset.orienteering-map-composite--wrapper legend>span.visually-hidden,.form-item-muu-liite fieldset.grants-attachments--wrapper.fieldgroup legend>span.visually-hidden{background:#fff;-webkit-clip-path:initial;clip-path:initial;clip:auto;clip:initial;height:auto;margin-left:calc(var(--spacing-2-xs)*-1);left:auto;overflow:visible;padding:0 var(--spacing-2-xs);top:-12px;width:-moz-max-content;width:max-content}fieldset.premises-composite--wrapper.fieldgroup legend>span.visually-hidden[\:has\(button.webform-element-help\)],fieldset.rented-premise-composite--wrapper.fieldgroup legend>span.visually-hidden[\:has\(button.webform-element-help\)],.community_officials_wrapper fieldset.fieldgroup legend>span.visually-hidden[\:has\(button.webform-element-help\)],fieldset.grants-budget-other-cost--wrapper.fieldgroup legend>span.visually-hidden[\:has\(button.webform-element-help\)],fieldset.grants-budget-other-income--wrapper.fieldgroup legend>span.visually-hidden[\:has\(button.webform-element-help\)],fieldset.place-of-operation-composite--wrapper.fieldgroup legend>span.visually-hidden[\:has\(button.webform-element-help\)],fieldset.rent-income-composite--wrapper.fieldgroup legend>span.visually-hidden[\:has\(button.webform-element-help\)],fieldset.rent-cost-composite--wrapper.fieldgroup legend>span.visually-hidden[\:has\(button.webform-element-help\)],fieldset.club-section-composite--wrapper.fieldgroup legend>span.visually-hidden[\:has\(button.webform-element-help\)],fieldset.members-composite--wrapper.fieldgroup legend>span.visually-hidden[\:has\(button.webform-element-help\)],fieldset.orienteering-map-composite--wrapper legend>span.visually-hidden[\:has\(button.webform-element-help\)],.form-item-muu-liite fieldset.grants-attachments--wrapper.fieldgroup legend>span.visually-hidden[\:has\(button.webform-element-help\)]{padding-right:var(--spacing-xl)}fieldset.premises-composite--wrapper.fieldgroup legend>span.visually-hidden:has(button.webform-element-help),fieldset.rented-premise-composite--wrapper.fieldgroup legend>span.visually-hidden:has(button.webform-element-help),.community_officials_wrapper fieldset.fieldgroup legend>span.visually-hidden:has(button.webform-element-help),fieldset.grants-budget-other-cost--wrapper.fieldgroup legend>span.visually-hidden:has(button.webform-element-help),fieldset.grants-budget-other-income--wrapper.fieldgroup legend>span.visually-hidden:has(button.webform-element-help),fieldset.place-of-operation-composite--wrapper.fieldgroup legend>span.visually-hidden:has(button.webform-element-help),fieldset.rent-income-composite--wrapper.fieldgroup legend>span.visually-hidden:has(button.webform-element-help),fieldset.rent-cost-composite--wrapper.fieldgroup legend>span.visually-hidden:has(button.webform-element-help),fieldset.club-section-composite--wrapper.fieldgroup legend>span.visually-hidden:has(button.webform-element-help),fieldset.members-composite--wrapper.fieldgroup legend>span.visually-hidden:has(button.webform-element-help),fieldset.orienteering-map-composite--wrapper legend>span.visually-hidden:has(button.webform-element-help),.form-item-muu-liite fieldset.grants-attachments--wrapper.fieldgroup legend>span.visually-hidden:has(button.webform-element-help){padding-right:var(--spacing-xl)}@media(min-width: 768px){fieldset.premises-composite--wrapper.fieldgroup legend>span.visually-hidden,fieldset.rented-premise-composite--wrapper.fieldgroup legend>span.visually-hidden,.community_officials_wrapper fieldset.fieldgroup legend>span.visually-hidden,fieldset.grants-budget-other-cost--wrapper.fieldgroup legend>span.visually-hidden,fieldset.grants-budget-other-income--wrapper.fieldgroup legend>span.visually-hidden,fieldset.place-of-operation-composite--wrapper.fieldgroup legend>span.visually-hidden,fieldset.rent-income-composite--wrapper.fieldgroup legend>span.visually-hidden,fieldset.rent-cost-composite--wrapper.fieldgroup legend>span.visually-hidden,fieldset.club-section-composite--wrapper.fieldgroup legend>span.visually-hidden,fieldset.members-composite--wrapper.fieldgroup legend>span.visually-hidden,fieldset.orienteering-map-composite--wrapper legend>span.visually-hidden,.form-item-muu-liite fieldset.grants-attachments--wrapper.fieldgroup legend>span.visually-hidden{left:auto}}.form-item-muu-liite fieldset.grants-attachments--wrapper{margin-bottom:0}fieldset.webform-composite-hidden-title .fieldset-wrapper>.form-item:last-child{margin-bottom:var(--spacing-layout-xs)}.js-form-type-webform-table table{width:100%}.js-form-type-webform-table th{text-align:left}.js-form-type-webform-table td{vertical-align:middle}.js-form-type-webform-table td>div{height:auto;margin-bottom:0}.js-form-type-webform-table td>div label{margin:-1px}.js-form-type-webform-table .hds-text-input label{border:0;clip:rect(0, 0, 0, 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.form-item{margin-bottom:var(--spacing-layout-xs);position:relative}.form-item input[type=date],.form-item input[type=time]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--input-background-default);border:var(--border-width) solid var(--input-border-color-default);box-sizing:border-box;color:var(--input-color-default);font-size:1.125em;height:var(--input-height);line-height:normal;padding:0 var(--spacing-s);width:100%;will-change:transform,box-shadow}.webform-section{padding-bottom:var(--spacing-layout-2-xs)}.webform-section table:first-of-type{margin-top:0}.form-type-webform-multiple .webform-multiple-table table{max-width:100%;width:100%}@media(min-width: 768px){.form-type-webform-multiple .webform-multiple-table table{width:auto}}.hds-text-input{max-width:-moz-fit-content;max-width:fit-content;width:100%}.webform-section-grid-wrapper{display:grid;grid-template-columns:1fr}@media(min-width: 768px){.webform-section-grid-wrapper{grid-row-gap:var(--spacing-xl);grid-template-columns:1fr 2fr}}.webform-section-grid-wrapper>dt.webform-section-title{color:var(--hdbt-color-black);display:block;flex-shrink:0;font-size:var(--fontsize-heading-s);font-weight:500;-webkit-hyphens:none;hyphens:none;line-height:1;margin-bottom:var(--spacing-3-xs);margin-top:0;padding-right:var(--spacing-2-xl);width:100%}.webform-section-grid-wrapper .webform-section-wrapper{margin-bottom:var(--spacing-layout-xs);padding-left:var(--spacing-2-xl)}@media(min-width: 768px){.webform-section-grid-wrapper .webform-section-wrapper{margin-bottom:0;padding-left:0}}fieldset input[type=button]{margin-top:var(--spacing-m)}.webform-section-wrapper>.description{margin-bottom:var(--spacing-layout-xs)}.grants__page-header{margin-bottom:var(--spacing-layout-l);font-size:2rem}@media(min-width: 768px){.grants__page-header{font-size:3rem}}.webform-section-flex-wrapper{display:flex;flex-flow:row wrap;width:100%;justify-content:left}@media(min-width: 768px){.webform-section-flex-wrapper{flex-flow:row nowrap}.webform-section-flex-wrapper h3+*>*:first-child>label:first-of-type,.webform-section-flex-wrapper h3+*>*:first-child>*:first-child>label:first-of-type{margin-top:var(--spacing-2-xs);padding-top:0}.webform-section-flex-wrapper h3+*>*:first-child>p{line-height:normal;line-height:initial;margin-top:var(--spacing-2-xs)}.webform-section-flex-wrapper h3+*>*:first-child>h4{line-height:normal;line-height:initial;margin-top:var(--spacing-m)}}.webform-section-flex-wrapper .webform-element-help-container--title{position:relative}.webform-section-flex-wrapper>h2.webform-section-title,.webform-section-flex-wrapper>h3.webform-section-title,.webform-section-flex-wrapper>h4.webform-section-title,.webform-section-flex-wrapper>dt.webform-section-title{color:var(--hdbt-color-black);display:block;flex-shrink:0;font-size:24px;font-weight:500;-webkit-hyphens:manual;hyphens:manual;margin-bottom:var(--spacing-3-xs);margin-top:0;padding-right:var(--spacing-2-xl);width:100%}@media(min-width: 768px){.webform-section-flex-wrapper>h2.webform-section-title,.webform-section-flex-wrapper>h3.webform-section-title,.webform-section-flex-wrapper>h4.webform-section-title,.webform-section-flex-wrapper>dt.webform-section-title{font-size:32px;max-width:350px;width:30%}}.webform-section-flex-wrapper h4{font-size:var(--fontsize-heading-m);line-height:38px}.webform-section-flex-wrapper>.webform-section-wrapper{--line-height: 1.5;font-size:var(--fontsize-body-m);width:100%}@media(min-width: 768px){.webform-section-flex-wrapper>.webform-section-wrapper{padding-left:var(--spacing-2-xl)}}.webform-section-flex-wrapper .form-required::after{content:"*";display:inline}.webform-section-flex-wrapper legend,.webform-section-flex-wrapper label{display:block;font-size:var(--fontsize-body-m);font-weight:500;margin-bottom:var(--spacing-2-xs);max-width:-moz-fit-content;max-width:fit-content;position:relative}.webform-section-flex-wrapper legend{padding:0 var(--spacing-2-xs);margin-left:calc(var(--spacing-2-xs)*-1);left:auto}.webform-section-flex-wrapper legend[\:has\(button.webform-element-help\)],.webform-section-flex-wrapper label[\:has\(button.webform-element-help\)]{padding-right:var(--spacing-xl)}.webform-section-flex-wrapper legend:has(button.webform-element-help),.webform-section-flex-wrapper label:has(button.webform-element-help){padding-right:var(--spacing-xl)}.webform-section-flex-wrapper fieldset legend>span[\:has\(button.webform-element-help\)]{padding-right:var(--spacing-xl)}.webform-section-flex-wrapper fieldset legend>span:has(button.webform-element-help){padding-right:var(--spacing-xl)}.webform-section-flex-wrapper fieldset legend>span.fieldset-legend[\:has\(button.webform-element-help\)],.webform-section-flex-wrapper fieldset.fieldgroup legend>span[\:has\(button.webform-element-help\)]:not(.visually-hidden.fieldset-legend){padding-right:var(--spacing-l)}.webform-section-flex-wrapper fieldset legend>span.fieldset-legend:has(button.webform-element-help),.webform-section-flex-wrapper fieldset.fieldgroup legend>span:has(button.webform-element-help):not(.visually-hidden.fieldset-legend){padding-right:var(--spacing-l)}.webform-section-flex-wrapper fieldset legend>span.fieldset-legend[\:has\(button.webform-element-help\)],.webform-section-flex-wrapper fieldset.fieldgroup legend span.fieldset-legend:not(.visually-hidden)[\:has\(button.webform-element-help\)]{padding-right:0}.webform-section-flex-wrapper fieldset legend>span.fieldset-legend:has(button.webform-element-help),.webform-section-flex-wrapper fieldset.fieldgroup legend span.fieldset-legend:not(.visually-hidden):has(button.webform-element-help){padding-right:0}.webform-section-flex-wrapper label.hds-radio-button__label{font-weight:normal}.webform-section-flex-wrapper .checkboxes--wrapper label{font-weight:normal}.webform-section-flex-wrapper .js-form-type-textarea .hds-text-input__input-wrapper{display:block}.webform-section-flex-wrapper .has-error,.webform-section-flex-wrapper .grant-applications--select-wrapper[\:has\(.has-error\)]{border-color:var(--color-error)}.webform-section-flex-wrapper .has-error,.webform-section-flex-wrapper .grant-applications--select-wrapper:has(.has-error){border-color:var(--color-error)}form .hds-text-input__input-wrapper,.hds-text-input__input-wrapper{flex-flow:row wrap}form .hds-text-input__input-wrapper .text-count-wrapper,.hds-text-input__input-wrapper .text-count-wrapper{flex-basis:100%}form .hds-text-input__input-wrapper input.webform--small,form .hds-text-input__input-wrapper textarea.webform--small,.hds-text-input__input-wrapper input.webform--small,.hds-text-input__input-wrapper textarea.webform--small{max-width:var(--webform-element-width--input-small);min-width:var(--webform-element-width--input-small);width:100%}form .hds-text-input__input-wrapper input.webform--medium,form .hds-text-input__input-wrapper textarea.webform--medium,.hds-text-input__input-wrapper input.webform--medium,.hds-text-input__input-wrapper textarea.webform--medium{max-width:var(--webform-element-width--input-medium);min-width:var(--webform-element-width--input-small);width:100%}form .hds-text-input__input-wrapper input.webform--large,form .hds-text-input__input-wrapper textarea.webform--large,.hds-text-input__input-wrapper input.webform--large,.hds-text-input__input-wrapper textarea.webform--large{max-width:var(--webform-element-width--input-large);min-width:var(--webform-element-width--input-small);width:100%}.webform--small div.grant-applications--select-wrapper{max-width:var(--webform-element-width--input-small);min-width:var(--webform-element-width--input-small);width:100%}.webform--medium div.grant-applications--select-wrapper{max-width:var(--webform-element-width--input-medium);min-width:var(--webform-element-width--input-small);width:100%}.webform--large div.grant-applications--select-wrapper{max-width:var(--webform-element-width--input-medium);min-width:var(--webform-element-width--input-small);width:100%}form .hds-checkbox{display:block}form .hds-checkbox label.hds-checkbox__label::after{content:""}fieldset.webform-composite-hidden-title{margin-bottom:var(--spacing-layout-2-xs);margin-top:0}.form-item-bank-account-account-number-select,.form-item-community-address-community-address-select{margin-bottom:0}.grants-profile-grants-profile table thead th h4{margin:0}.hakemus-form-page .main-content{margin-top:0}.hakemus-form-page h1{-webkit-hyphens:auto;hyphens:auto;word-break:break-word}.hakemus-form-errors ul li{list-style-type:none}.community_officials_wrapper .webform-readonly{margin:0}.community_officials_wrapper .hds-text-input__input-wrapper{margin:0}.community_officials_wrapper input[readonly=readonly]{height:1.25rem;margin:0;max-width:330px}.form-item--error-message{color:var(--color-error);margin-bottom:var(--spacing-layout-s);margin-top:var(--spacing-layout-2-xs)}fieldset .form-item--error-message,.community_officials_wrapper .form-item--error-message{margin-bottom:0}.form-item--error-message::before{--icon-size: 1.6rem;background-color:#000;background-size:contain;content:"";display:inline-block;height:calc(var(--line-height) * 1em);height:var(--icon-size, calc(var(--line-height) * 1em));-webkit-mask-image:var(--hel-icon--alert-circle-fill);mask-image:var(--hel-icon--alert-circle-fill);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);-webkit-mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));vertical-align:bottom;width:calc(var(--line-height) * 1em);width:var(--icon-size, calc(var(--line-height) * 1em));background-color:var(--color-error);content:" ";display:inline-block}input[type=radio]+label.form-required::after{content:""}.hds-radio-button:last-of-type,.hds-checkbox:last-of-type{margin-bottom:0}.hds-radio-button:last-of-type>label,.hds-checkbox:last-of-type>label{margin-bottom:0}@media(min-width: 992px){.place-of-operation-composite--wrapper.fieldgroup .hds-text-input,.club-section-composite--wrapper.fieldgroup .hds-text-input{max-width:100%}}.place-of-operation-composite--wrapper.fieldgroup .hds-radio-button .hds-radio-button__label,.club-section-composite--wrapper.fieldgroup .hds-radio-button .hds-radio-button__label{line-height:var(--lineheight-m) !important}@media(min-width: 992px){.place-of-operation-group__location,.place-of-operation-group__students,.place-of-operation-group__groups,.place-of-operation-group__personnel,.place-of-operation-group__rent,.place-of-operation-group__time{display:flex;justify-content:space-between}}@media(min-width: 992px){.place-of-operation-group__location--address,.place-of-operation-group__students--address,.place-of-operation-group__groups--address,.place-of-operation-group__personnel--address,.place-of-operation-group__rent--address,.place-of-operation-group__time--address{margin-top:0 !important}.place-of-operation-group__location--address,.place-of-operation-group__students--address,.place-of-operation-group__groups--address,.place-of-operation-group__personnel--address,.place-of-operation-group__rent--address,.place-of-operation-group__time--address{width:65%}}@media(min-width: 992px){.place-of-operation-group__location--post-code,.place-of-operation-group__students--post-code,.place-of-operation-group__groups--post-code,.place-of-operation-group__personnel--post-code,.place-of-operation-group__rent--post-code,.place-of-operation-group__time--post-code{margin-top:0 !important}.place-of-operation-group__location--post-code,.place-of-operation-group__students--post-code,.place-of-operation-group__groups--post-code,.place-of-operation-group__personnel--post-code,.place-of-operation-group__rent--post-code,.place-of-operation-group__time--post-code{width:30%}}@media(min-width: 992px){.place-of-operation-group__location--student-count,.place-of-operation-group__location--special-student-count,.place-of-operation-group__location--group-count,.place-of-operation-group__location--special-group-count,.place-of-operation-group__location--personnel-count,.place-of-operation-group__location--rent-amount,.place-of-operation-group__location--time-start,.place-of-operation-group__location--time-end,.place-of-operation-group__students--student-count,.place-of-operation-group__students--special-student-count,.place-of-operation-group__students--group-count,.place-of-operation-group__students--special-group-count,.place-of-operation-group__students--personnel-count,.place-of-operation-group__students--rent-amount,.place-of-operation-group__students--time-start,.place-of-operation-group__students--time-end,.place-of-operation-group__groups--student-count,.place-of-operation-group__groups--special-student-count,.place-of-operation-group__groups--group-count,.place-of-operation-group__groups--special-group-count,.place-of-operation-group__groups--personnel-count,.place-of-operation-group__groups--rent-amount,.place-of-operation-group__groups--time-start,.place-of-operation-group__groups--time-end,.place-of-operation-group__personnel--student-count,.place-of-operation-group__personnel--special-student-count,.place-of-operation-group__personnel--group-count,.place-of-operation-group__personnel--special-group-count,.place-of-operation-group__personnel--personnel-count,.place-of-operation-group__personnel--rent-amount,.place-of-operation-group__personnel--time-start,.place-of-operation-group__personnel--time-end,.place-of-operation-group__rent--student-count,.place-of-operation-group__rent--special-student-count,.place-of-operation-group__rent--group-count,.place-of-operation-group__rent--special-group-count,.place-of-operation-group__rent--personnel-count,.place-of-operation-group__rent--rent-amount,.place-of-operation-group__rent--time-start,.place-of-operation-group__rent--time-end,.place-of-operation-group__time--student-count,.place-of-operation-group__time--special-student-count,.place-of-operation-group__time--group-count,.place-of-operation-group__time--special-group-count,.place-of-operation-group__time--personnel-count,.place-of-operation-group__time--rent-amount,.place-of-operation-group__time--time-start,.place-of-operation-group__time--time-end{margin-top:0 !important}.place-of-operation-group__location--student-count,.place-of-operation-group__location--special-student-count,.place-of-operation-group__location--group-count,.place-of-operation-group__location--special-group-count,.place-of-operation-group__location--personnel-count,.place-of-operation-group__location--rent-amount,.place-of-operation-group__location--time-start,.place-of-operation-group__location--time-end,.place-of-operation-group__students--student-count,.place-of-operation-group__students--special-student-count,.place-of-operation-group__students--group-count,.place-of-operation-group__students--special-group-count,.place-of-operation-group__students--personnel-count,.place-of-operation-group__students--rent-amount,.place-of-operation-group__students--time-start,.place-of-operation-group__students--time-end,.place-of-operation-group__groups--student-count,.place-of-operation-group__groups--special-student-count,.place-of-operation-group__groups--group-count,.place-of-operation-group__groups--special-group-count,.place-of-operation-group__groups--personnel-count,.place-of-operation-group__groups--rent-amount,.place-of-operation-group__groups--time-start,.place-of-operation-group__groups--time-end,.place-of-operation-group__personnel--student-count,.place-of-operation-group__personnel--special-student-count,.place-of-operation-group__personnel--group-count,.place-of-operation-group__personnel--special-group-count,.place-of-operation-group__personnel--personnel-count,.place-of-operation-group__personnel--rent-amount,.place-of-operation-group__personnel--time-start,.place-of-operation-group__personnel--time-end,.place-of-operation-group__rent--student-count,.place-of-operation-group__rent--special-student-count,.place-of-operation-group__rent--group-count,.place-of-operation-group__rent--special-group-count,.place-of-operation-group__rent--personnel-count,.place-of-operation-group__rent--rent-amount,.place-of-operation-group__rent--time-start,.place-of-operation-group__rent--time-end,.place-of-operation-group__time--student-count,.place-of-operation-group__time--special-student-count,.place-of-operation-group__time--group-count,.place-of-operation-group__time--special-group-count,.place-of-operation-group__time--personnel-count,.place-of-operation-group__time--rent-amount,.place-of-operation-group__time--time-start,.place-of-operation-group__time--time-end{width:47.5%}}@media(min-width: 768px){.club-section__participants{display:flex;gap:var(--spacing-l);justify-content:space-between}}.club-section__participants input.form-text.hds-text-input__input{max-width:100%;width:100%}.club-section__totalhours input.form-text.hds-text-input__input{max-width:100%;width:100%}.hel-icon--size-xs{--icon-size: var(--spacing-layout-2-xs)}.hel-icon--size-s{--icon-size: var(--spacing-layout-xs)}.hel-icon--size-m{--icon-size: var(--spacing-layout-s)}.hel-icon--size-l{--icon-size: var(--spacing-layout-m)}.hel-icon--size-xl{--icon-size: var(--spacing-layout-l)}.hds-text-input__input-wrapper[focus-within][\:has\(input\[readonly\]\)]{margin-right:var(--spacing-2-xs);outline:2px var(--color-black) solid;outline-offset:2px}.hds-text-input__input-wrapper[focus-within]:has(input[readonly]){margin-right:var(--spacing-2-xs);outline:2px var(--color-black) solid;outline-offset:2px}.hds-text-input__input-wrapper[focus-within][\:has\(input\[readonly\]\)]{margin-right:var(--spacing-2-xs);outline:2px var(--color-black) solid;outline-offset:2px}.hds-text-input__input-wrapper:focus-within[\:has\(input\[readonly\]\)]{margin-right:var(--spacing-2-xs);outline:2px var(--color-black) solid;outline-offset:2px}.hds-text-input__input-wrapper:focus-within:has(input[readonly]){margin-right:var(--spacing-2-xs);outline:2px var(--color-black) solid;outline-offset:2px}.hds-text-input__input-wrapper[focus-within][\:has\(input\[readonly\]\)] input[readonly]{width:calc(100% - var(--spacing-2-xs))}.hds-text-input__input-wrapper[focus-within]:has(input[readonly]) input[readonly]{width:calc(100% - var(--spacing-2-xs))}.hds-text-input__input-wrapper[focus-within][\:has\(input\[readonly\]\)] input[readonly]{width:calc(100% - var(--spacing-2-xs))}.hds-text-input__input-wrapper:focus-within[\:has\(input\[readonly\]\)] input[readonly]{width:calc(100% - var(--spacing-2-xs))}.hds-text-input__input-wrapper:focus-within:has(input[readonly]) input[readonly]{width:calc(100% - var(--spacing-2-xs))}.form-item-application-number,.form-item-status,.form-item-applicant-type{display:none}.grants-handler__completion{background:var(--color-bus-light);padding:var(--spacing-layout-l) var(--spacing-layout-2-xl)}.grants-handler__completion h2{margin-top:var(--spacing-l)}.grants-handler__completion h3{font-size:1rem;font-weight:bold;margin-top:var(--spacing-m)}.grants-handler__completion__info-row{display:flex;flex-flow:row wrap;gap:var(--spacing-m);justify-content:flex-start;margin-bottom:var(--spacing-m)}.grants-handler__completion__button-row{display:flex;flex-flow:row wrap;gap:var(--spacing-m);justify-content:flex-start}.grants-handler__completion__longtext{margin:var(--spacing-l) 0}.hds-notification.notification-margin-bottom{margin-bottom:var(--spacing-layout-m)}.hds-notification__label{align-items:center}.hds-checkbox__input label{font-weight:normal}fieldset.grants-attachments--wrapper{margin-bottom:var(--spacing-layout-m)}fieldset.grants-attachments--wrapper legend{margin-bottom:var(--spacing-2-xs)}fieldset.grants-attachments--wrapper .form-item--error-message{width:100%}fieldset.grants-attachments--wrapper .js-form-type-managed-file{margin-bottom:0}.grants-applications-managed_file{position:relative}.grants-applications-managed_file label.hds-button--secondary:not(:disabled):not(.eu-cookie-compliance-default-button):not(.eu-cookie-compliance-save-preferences-button){left:0;position:relative}.grants-applications-managed_file label.hds-button--secondary:not(:disabled):not(.eu-cookie-compliance-default-button):not(.eu-cookie-compliance-save-preferences-button)[\:has\(input\:disabled\)]{background-color:transparent;background-color:var(--background-color-disabled, transparent);border-color:transparent;border-color:var(--border-color-disabled, transparent);color:var(--color-disabled);cursor:not-allowed}.grants-applications-managed_file label.hds-button--secondary:not(:disabled):not(.eu-cookie-compliance-default-button):not(.eu-cookie-compliance-save-preferences-button)[\:has\(input\:disabled\)]{background-color:transparent;background-color:var(--background-color-disabled, transparent);border-color:transparent;border-color:var(--border-color-disabled, transparent);color:var(--color-disabled);cursor:not-allowed}.grants-applications-managed_file label.hds-button--secondary:not(:disabled):not(.eu-cookie-compliance-default-button):not(.eu-cookie-compliance-save-preferences-button):has(input:disabled){background-color:transparent;background-color:var(--background-color-disabled, transparent);border-color:transparent;border-color:var(--border-color-disabled, transparent);color:var(--color-disabled);cursor:not-allowed}.grants-applications-managed_file label.hds-button--secondary:not(:disabled):not(.eu-cookie-compliance-default-button):not(.eu-cookie-compliance-save-preferences-button)[focus-within]{background:var(--color-black);border-color:var(--color-white);color:var(--color-white);outline:2px var(--color-black) solid}.grants-applications-managed_file label.hds-button--secondary:not(:disabled):not(.eu-cookie-compliance-default-button):not(.eu-cookie-compliance-save-preferences-button):focus-within{background:var(--color-black);border-color:var(--color-white);color:var(--color-white);outline:2px var(--color-black) solid}.grants-applications-managed_file input[type=file]{opacity:0;position:absolute}.form-managed-file{display:flex;flex-wrap:wrap;white-space:inherit}.form-managed-file>span{background-color:var(--color-info-light);border-bottom:2px dotted var(--color-coat-of-arms);display:inline-block;padding:var(--spacing-s) var(--spacing-2-xs)}.form-managed-file>.file-upload-js-error{flex-basis:100%}.grants-applications-managed_file label.hds-button{display:flex}.grants-attachments--wrapper .webform-readonly{display:none}.webform-multiple-table table{border-collapse:collapse;border:0px var(--color-white) solid;margin-bottom:var(--spacing-2-xs);max-width:-moz-fit-content;max-width:fit-content}.webform-multiple-table .webform-multiple-table--operations-two{min-width:60px}.webform-multiple-table tbody tr,.webform-multiple-table thead tr{align-items:center;justify-content:space-between;width:100%}.webform-multiple-table td,.webform-multiple-table th{max-width:100%;min-width:0;padding:0;width:100%}.webform-multiple-table table thead th{padding:var(--spacing-layout-2-xs)}div.hidden-head table{display:table}div.hidden-head table thead th{padding:0}div.hidden-head table tbody tr{border-bottom:var(--spacing-s) var(--color-white) solid}div.hidden-head table tbody tr:hover{background:rgba(0,0,0,0)}div.table-layout-form input.hds-text-input__input{width:100%}div.table-layout-form table{border:1px var(--color-black) solid;max-width:var(--webform-element-width--input-large)}div.table-layout-form table tbody tr{border:§0px var(--color-black-30) solid}div.table-layout-form table tbody tr td{border:1px var(--color-black-30) solid;padding:0}div.table-layout-form table tbody tr td input.hds-text-input__input[readonly]{padding:var(--spacing-layout-2-xs)}div.table-layout-form table .form-item{margin-bottom:0}.hds-text-input .hds-text-input__input.input--borderless{border:0 rgba(0,0,0,0) solid}#edit-subventions-items thead{background:var(--color-black-90);color:var(--color-white);text-align:left}#edit-subventions-items input.hds-text-input,#edit-subventions-items input.hds-text-input__input{background:rgba(0,0,0,0)}#subventions_table td.webform-multiple-table--operations,#subventions_table th.webform-multiple-table--operations{display:none}#subventions_table input.hds-text-input__input[readonly][name$="[amount]"]{background-color:var(--input-background-disabled);border-color:var(--input-border-color-disabled);color:var(--input-color-disabled);cursor:not-allowed}.form-item-muu-liite .webform-multiple-table--operations{display:none}.hidden-head>label{display:none}.webform-preview .accordion_header{font-size:28px;font-weight:300}@media(min-width: 768px){.webform-preview .accordion_header{font-size:36px;font-weight:500}}.webform-preview label{display:block;font-weight:bold}.grants-profile-grants-profile fieldset{background:var(--color-black-5);border:0 rgba(0,0,0,0) solid;margin:0;max-width:var(--webform-element-width--fieldset);padding:0 var(--spacing-layout-s) var(--spacing-layout-s);top:calc(-1*var(--spacing-m))}.grants-profile-grants-profile fieldset label{margin-bottom:var(--spacing-3-xs)}.grants-profile-grants-profile fieldset legend{font-size:var(--fontsize-body-l);margin-bottom:var(--spacing-m);padding-bottom:var(--spacing-s);position:relative;top:var(--spacing-l)}.grants-profile-grants-profile fieldset .fieldset-wrapper{display:flex;flex-flow:row wrap;justify-content:space-between}.grants-profile-grants-profile fieldset .hds-text-input{max-width:100%}.grants-profile-grants-profile fieldset div[class*=-address-postcode]{width:32%}.grants-profile-grants-profile fieldset div[class*=-address-city]{width:65%}.grants-profile--extrainfo .form-actions .button{margin-right:var(--spacing-2-xs)}.grants-stepper{--grants-stepper-color: var(--color-black);--grants-stepper-background-color: var(--color-white);--grants-stepper-disabled-color: var(--color-black-20);--grants-stepper-selected-step-label-color: var(--color-black-90);--grants-stepper-not-selected-step-label-color: var(--color-black);--grants-step-background-color: var(--color-white);--grants-step-content-color: var(--color-black);--grants-stepper-focus-border-color: var(--color-coat-of-arms);--grants-step-width: 120px;--circle-container-size: 36px;--progress-line-height: 2px;background-color:var(--grants-stepper-background-color);margin-bottom:var(--spacing-layout-m);position:relative}@media(max-width: 725px){.grants-stepper{--grants-step-width: 40px}}@media(max-width: 725px){.grants-stepper .grants-stepper__text{display:none}}.grants-stepper__inner{align-items:flex-start;display:flex;justify-content:space-between;margin:0;-ms-overflow-style:none;padding:0;position:relative;scroll-behavior:smooth;scrollbar-width:none;width:100%}.grants-stepper__lines{display:flex;height:var(--progress-line-height);left:calc(var(--grants-step-width)/2);line-height:var(--lineheight-l);position:absolute;transform:translateY(calc(var(--circle-container-size) / 2 + var(--progress-line-height) / 2));z-index:1}.grants-stepper__line{background-color:var(--grants-stepper-color);display:inline-block;height:100%;position:relative}.grants-stepper__line__disabled{background-color:var(--grants-stepper-disabled-color)}.grants-stepper__steps{background-color:var(--grants-stepper-background-color);box-sizing:border-box;display:flex;flex-shrink:0;justify-content:center;max-width:var(--grants-step-width);min-width:var(--grants-step-width);padding:3px}.grants-stepper__step{align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:rgba(0,0,0,0);border:0;box-sizing:content-box;color:var(--grants-stepper-color);cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;outline:none;overflow:visible;padding:0;position:relative}.grants-stepper__step[disabled],.grants-stepper__step__disabled{color:var(--grants-stepper-disabled-color);cursor:not-allowed}.grants-stepper__step[disabled] .grants-stepper__circle,.grants-stepper__step__disabled .grants-stepper__circle{background-color:var(--grants-stepper-background-color);border:2px solid var(--grants-stepper-disabled-color);color:var(--grants-stepper-disabled-color)}.grants-stepper__step[disabled] .grants-stepper__text,.grants-stepper__step__disabled .grants-stepper__text{color:var(--grants-stepper-disabled-color)}.grants-stepper__step__circle_container{align-items:center;display:flex;height:var(--circle-container-size);justify-content:center;width:var(--circle-container-size);z-index:2}.grants-stepper__step__completed_container{align-items:center;background-color:var(--grants-stepper-color);border-radius:16px;color:var(--color-white);display:none;justify-content:center;outline:2px solid var(--grants-stepper-background-color);padding:4px;vertical-align:middle}.grants-stepper .grants-stepper__error,.grants-stepper .grants-stepper__completed{display:none}.grants-stepper__text{color:var(--grants-stepper-not-selected-step-label-color);font-size:var(--fontsize-body-m);font-weight:500;line-height:var(--lineheight-l);margin-bottom:0;margin-top:6px;padding-left:var(--spacing-4-xs);padding-right:var(--spacing-4-xs);text-align:center;text-decoration:underline}.grants-stepper__circle{align-items:center;background-color:var(--grants-step-background-color);border:2px solid var(--grants-stepper-color);border-radius:16px;color:var(--grants-step-content-color);display:flex;height:28px;justify-content:center;outline:2px solid var(--grants-stepper-background-color);text-align:center;width:28px}.grants-stepper__number{font-size:var(--fontsize-body-m);font-weight:500;line-height:1.15}.grants-stepper .is-active .grants-stepper__circle{border:4px solid var(--grants-stepper-color);border-radius:18px;outline:none}.grants-stepper .is-active .grants-stepper__text{color:var(--grants-stepper-selected-step-label-color);font-weight:700;text-decoration:none}.grants-stepper .is-active .grants-stepper__number{color:var(--grants-stepper-selected-step-label-color);font-weight:700;text-decoration:none}.grants-stepper .is-complete .grants-stepper__container{align-items:center;background-color:var(--grants-stepper-color);border-radius:16px;color:var(--color-white);display:flex;justify-content:center;outline:2px solid var(--grants-stepper-background-color);padding:4px}.grants-stepper .is-complete .grants-stepper__number{display:none}.grants-stepper .is-complete .grants-stepper__completed{display:inline-block}.grants-stepper .is-complete .grants-stepper__circle{opacity:0}.grants-stepper .is-complete .grants-stepper__step__completed_container{display:flex}.grants-stepper .has-errors .grants-stepper__container{align-items:center;background-color:var(--grants-stepper-color);border-radius:16px;color:var(--color-white);display:flex;justify-content:center;outline:2px solid var(--grants-stepper-background-color);padding:4px}.grants-stepper .has-errors .grants-stepper__circle{border-color:var(--color-error);color:var(--color-error)}.grants-stepper .has-errors .grants-stepper__number{display:none}.grants-stepper .has-errors .grants-stepper__error{display:inline-block}.grants-stepper .progress-marker::before{display:none}.grants-stepper .progress-step .progress-marker{color:var(--color-black)}.grants-stepper .progress-step .progress-marker.focus-visible .grants-stepper__circle{outline:2px solid var(--color-black);outline:var(--outline-width, 2px) solid var(--color-black);outline-offset:2px}.grants-stepper .progress-step .progress-marker.focus-visible .grants-stepper__circle{outline:2px solid var(--color-black);outline:var(--outline-width, 2px) solid var(--color-black);outline-offset:2px}.grants-stepper .progress-step .progress-marker:focus-visible .grants-stepper__circle{outline:2px solid var(--color-black);outline:var(--outline-width, 2px) solid var(--color-black);outline-offset:2px}.grants-stepper .progress-step .progress-marker.focus-visible .grants-stepper__text{outline:2px solid var(--color-black);outline:var(--outline-width, 2px) solid var(--color-black)}.grants-stepper .progress-step .progress-marker.focus-visible .grants-stepper__text{outline:2px solid var(--color-black);outline:var(--outline-width, 2px) solid var(--color-black)}.grants-stepper .progress-step .progress-marker:focus-visible .grants-stepper__text{outline:2px solid var(--color-black);outline:var(--outline-width, 2px) solid var(--color-black)}.grants-stepper .progress-step:last-child{flex-grow:1}.grant-applications--select-wrapper{--border-width: 2px;--input-height: 56px;--menu-item-height: 53px;--icon-size: var(--spacing-m);--helper-color-default: var(--color-black-60);--helper-color-invalid: var(--color-error);--icon-color-invalid: var(--color-error);--input-background-default: var(--color-white);--input-background-disabled: var(--color-black-10);--input-border-color-default: var(--color-black-50);--input-border-color-hover: var(--color-black-90);--input-border-color-focus: var(--color-black-90);--input-border-color-invalid: var(--color-error);--input-border-color-disabled: var(--color-black-10);--input-color-default: var(--color-black-90);--input-color-disabled: var(--color-black-40);--label-color-default: var(--color-black-90);--label-color-invalid: var(--color-black-90);--placeholder-color: var(--color-black-60);--focus-outline-color: var(--color-coat-of-arms);align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--input-background-default);border:var(--border-width) solid var(--input-border-color-default);box-sizing:border-box;color:var(--input-color-default);cursor:pointer;display:block;font-size:1.125em;grid-template-areas:"select";line-height:normal;max-width:30ch;min-width:15ch;padding:.25em .5em;position:relative;width:100%}.grant-applications--select-wrapper select{align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border:none;color:var(--dropdown-color-default);cursor:inherit;display:flex;font-family:inherit;font-size:var(--fontsize-body-l);height:var(--input-height);line-height:inherit;margin:0;min-height:var(--menu-item-height);outline:none;padding:calc(var(--spacing-s) - var(--border-width)*2) var(--spacing-s);width:100%;z-index:1}.grant-applications--select-wrapper select::-ms-expand{display:none}.grant-applications--select-wrapper i.hel-icon{pointer-events:none;position:absolute;right:calc(var(--spacing-s) - var(--border-width)*2);top:calc(var(--spacing-s) - var(--border-width)*2)}.grant-applications--select-wrapper select,.grant-applications--select-wrapper::after{grid-area:select}.grant-applications--select-wrapper:not(.select--multiple)::after{background-color:var(--helper-color-default);-webkit-clip-path:polygon(100% 0%, 0 0%, 50% 100%);clip-path:polygon(100% 0%, 0 0%, 50% 100%);content:"";height:.5em;justify-self:end;width:.8em}.grant-applications--select-wrapper select:focus+.grant-applications--select-focus{border:2px solid var(--focus-outline-color);border-radius:inherit;bottom:-1px;left:-1px;position:absolute;right:-1px;top:-1px}.webform-submission__application_id{border-bottom:1px var(--color-black-20) solid;padding-bottom:var(--spacing-xl)}.webform-submission__application_id--header{font-size:1rem;font-weight:bold}.webform-submission__title-wrapper{padding-top:var(--spacing-2-xl)}.webform-submission__title-wrapper h1{max-width:100%}.webform-submission ul{list-style:none;margin-top:0;padding-left:0}.webform-submission-information{background:var(--color-silver-light);margin-top:var(--spacing-3-xl);padding:var(--spacing-l)}.webform-submission-information .webform-submission-information{margin-top:var(--spacing-l);padding:0}.webform-submission-information h4{margin-top:0}.webform-submission-information h5{font-size:var(--fontsize-body-m);margin-top:var(--spacing-s)}.webform-submission-information__row{display:flex}.webform-submission-information__row-edit{margin-top:var(--spacing-s)}.webform-submission-information__row-top{align-items:center;border-bottom:1px solid var(--color-black-20);justify-content:space-between}@media(max-width: 550px){.webform-submission-information__row-top{display:block}}.webform-submission-information__row-main{flex-flow:row nowrap;gap:var(--spacing-m);justify-content:space-between}@media(max-width: 1179px){.webform-submission-information__row-main{flex-flow:row wrap}}.webform-submission-information__row-main>div{flex:1}@media(max-width: 1179px){.webform-submission-information__row-main>div{flex:auto;width:100%}}.webform-submission-information__row-main>div ul{list-style-type:none;margin-bottom:0;padding-left:0}.webform-submission-information__row-main>div ul li{margin:0;padding:0}.webform-submission-information__supportlinks{display:flex;flex-flow:row nowrap;min-width:-moz-fit-content;min-width:fit-content}.webform-submission-information__supportlinks .hds-loading-spinner{left:0}.webform-submission-information__supportlinks .hds-button{min-width:-moz-fit-content;min-width:fit-content}.hel-icon.hel-icon--copy{-webkit-mask-image:url("data:image/svg+xml,%3Csvg class='Icon-module_icon__1Jtzj icon_hel-icon__1YqNC Icon-module_s__2WGWe icon_hel-icon--size-s__2Lkik' viewBox='0 0 24 24' role='img' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Crect width='24' height='24'%3E%3C/rect%3E%3Cpath fill='currentColor' d='M6,10 L6,12 L5,12 L5,18 L12,18 L12,17 L14,17 L14,19 C14,19.5522847 13.5522847,20 13,20 L4,20 C3.44771525,20 3,19.5522847 3,19 L3,11 C3,10.4477153 3.44771525,10 4,10 L6,10 Z M20,4 C20.5522847,4 21,4.44771525 21,5 L21,15 C21,15.5522847 20.5522847,16 20,16 L8,16 C7.44771525,16 7,15.5522847 7,15 L7,5 C7,4.44771525 7.44771525,4 8,4 L20,4 Z M19,6 L9,6 L9,14 L19,14 L19,6 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg class='Icon-module_icon__1Jtzj icon_hel-icon__1YqNC Icon-module_s__2WGWe icon_hel-icon--size-s__2Lkik' viewBox='0 0 24 24' role='img' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Crect width='24' height='24'%3E%3C/rect%3E%3Cpath fill='currentColor' d='M6,10 L6,12 L5,12 L5,18 L12,18 L12,17 L14,17 L14,19 C14,19.5522847 13.5522847,20 13,20 L4,20 C3.44771525,20 3,19.5522847 3,19 L3,11 C3,10.4477153 3.44771525,10 4,10 L6,10 Z M20,4 C20.5522847,4 21,4.44771525 21,5 L21,15 C21,15.5522847 20.5522847,16 20,16 L8,16 C7.44771525,16 7,15.5522847 7,15 L7,5 C7,4.44771525 7.44771525,4 8,4 L20,4 Z M19,6 L9,6 L9,14 L19,14 L19,6 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E")}.webform-submission-form .form-actions{border-top:1px rgba(0,0,0,.6) solid;margin-top:var(--spacing-l);padding-top:var(--spacing-2-xl)}@media(min-width: 768px){.webform-submission-form .form-actions{display:flex;flex-direction:row-reverse}}.webform-submission-form .form-actions .actions{display:flex;flex-wrap:wrap}.webform-submission-form .form-actions button{margin-left:0}@media(min-width: 768px){.webform-submission-form .form-actions button{margin-left:var(--spacing-2-xs)}}.webform-submission-form .form-actions input{margin-bottom:var(--spacing-layout-2-xs);width:100%}@media(min-width: 768px){.webform-submission-form .form-actions input{width:auto}}.webform-submission-form .form-actions input.webform-button--draft{background:rgba(0,0,0,0);border:0 rgba(0,0,0,0) solid;color:var(--hdbt-color-black);order:3;text-decoration:underline}.webform-submission-form .form-actions button.webform-button--next span::after,.webform-submission-form .form-actions button.webform-button--preview span::after{content:">";margin-left:var(--spacing-2-xs)}.webform-submission-form .form-actions button.webform-button--previous span::before{content:"<";margin-right:var(--spacing-2-xs)}.webform-submission-form .form-actions input.webform-button--previous{background:var(--color-white);color:var(--border-color)}.webform-button--draft .hds-button__label::before{background-color:currentColor;background-size:contain;content:"";display:inline-block;flex-shrink:0;height:24px;margin-right:var(--spacing-2-xs);-webkit-mask-image:var(--hel-icon--download-cloud);mask-image:var(--hel-icon--download-cloud);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:24px 24px;mask-size:24px 24px;transition:transform .2s linear;vertical-align:bottom;width:24px}.webform-submission-messages{background:var(--color-silver-light);margin-top:var(--spacing-3-xl);padding:var(--spacing-l)}.webform-submission-messages h4,.webform-submission-messages h5{margin-top:0}.webform-submission-messages hr{margin:var(--spacing-l) 0}.webform-submission-messages__new-message{align-items:center;background:var(--color-alert);display:inline-flex;font-weight:bold;gap:var(--spacing-2-xs);margin-bottom:var(--spacing-m);padding:var(--spacing-2-xs) var(--spacing-xs);text-transform:uppercase}.webform-submission-messages__messages-list{list-style:none;margin:0;padding:0}.webform-submission-messages__message{margin:0;padding:0}.webform-submission-messages__message__attachments{list-style:none}.webform-submission-messages__message .hds-button{margin-top:var(--spacing-s)}.js-form-type-grants-webform-summation-field{max-width:var(--webform-element-width--input-large);text-align:right}.js-form-type-grants-webform-summation-field .grants-webform-summation-field{display:inline-block;padding:var(--spacing-xs) var(--spacing-m)}.webform-print-header,.webform-print-footer{display:none}.webform-print .main-content{display:block}.webform-submission--view-mode-html .hds-text-input,.webform-submission-data-preview-page .hds-text-input,.webform-print-page-html .hds-text-input{max-width:100%}.webform-submission--view-mode-html .print-label,.webform-submission-data-preview-page .print-label,.webform-print-page-html .print-label{display:block;font-size:var(--fontsize-body-m);font-weight:500;margin-bottom:var(--spacing-3-xs);margin-top:0;max-width:-moz-fit-content;max-width:fit-content;padding-right:var(--spacing-xl);position:relative}.webform-submission--view-mode-html .webform-section-flex-wrapper h3+*>*:first-child>*:first-child,.webform-submission--view-mode-html .webform-section-flex-wrapper h3+*>*:first-child>*:first-child label:first-of-type,.webform-submission-data-preview-page .webform-section-flex-wrapper h3+*>*:first-child>*:first-child,.webform-submission-data-preview-page .webform-section-flex-wrapper h3+*>*:first-child>*:first-child label:first-of-type,.webform-print-page-html .webform-section-flex-wrapper h3+*>*:first-child>*:first-child,.webform-print-page-html .webform-section-flex-wrapper h3+*>*:first-child>*:first-child label:first-of-type{line-height:normal}.webform-submission--view-mode-html .print-notification,.webform-submission-data-preview-page .print-notification,.webform-print-page-html .print-notification{border:2px var(--color-black) solid;font-weight:bold;margin-top:var(--spacing-2-xl);padding:var(--spacing-layout-s)}.webform-submission--view-mode-html .print-notification .print-notification--icon,.webform-submission-data-preview-page .print-notification .print-notification--icon,.webform-print-page-html .print-notification .print-notification--icon{height:22px;margin-right:var(--spacing-2-xs);vertical-align:text-top;width:22px}.webform-submission--view-mode-html .webform-print-page-wizard-page~.webform-print-page-wizard-page h2,.webform-submission-data-preview-page .webform-print-page-wizard-page~.webform-print-page-wizard-page h2,.webform-print-page-html .webform-print-page-wizard-page~.webform-print-page-wizard-page h2{page-break-after:avoid;page-break-before:always}.webform-submission--view-mode-html div.hds-text-input__input,.webform-submission-data-preview-page div.hds-text-input__input,.webform-print-page-html div.hds-text-input__input{background:var(--color-white);border:2px var(--color-black) solid;height:var(--spacing-2-xl);width:100%}.webform-submission--view-mode-html div.hds-text-input__textarea,.webform-submission-data-preview-page div.hds-text-input__textarea,.webform-print-page-html div.hds-text-input__textarea{background:var(--color-white);border:2px var(--color-black) solid;height:var(--spacing-layout-2-xl);width:100%}.webform-submission--view-mode-html .webform-section-wrapper .hds-notification,.webform-submission-data-preview-page .webform-section-wrapper .hds-notification,.webform-print-page-html .webform-section-wrapper .hds-notification{margin-top:var(--spacing-s)}.webform-submission--view-mode-html .webform-print-page-body h2,.webform-submission-data-preview-page .webform-print-page-body h2,.webform-print-page-html .webform-print-page-body h2{margin-bottom:var(--spacing-layout-s)}.webform-submission--view-mode-html .webform-print-wrapper-table,.webform-submission-data-preview-page .webform-print-wrapper-table,.webform-print-page-html .webform-print-wrapper-table{border:0 rgba(0,0,0,0) solid;display:table;max-width:100%;overflow-x:visible;overflow-x:initial;width:100%}.webform-submission--view-mode-html .webform-print-wrapper-table thead,.webform-submission--view-mode-html .webform-print-wrapper-table tbody,.webform-submission--view-mode-html .webform-print-wrapper-table tfoot,.webform-submission--view-mode-html .webform-print-wrapper-table tr,.webform-submission--view-mode-html .webform-print-wrapper-table tbody tr:hover,.webform-submission--view-mode-html .webform-print-wrapper-table td,.webform-submission--view-mode-html .webform-print-wrapper-table td:first-child,.webform-submission--view-mode-html .webform-print-wrapper-table th,.webform-submission-data-preview-page .webform-print-wrapper-table thead,.webform-submission-data-preview-page .webform-print-wrapper-table tbody,.webform-submission-data-preview-page .webform-print-wrapper-table tfoot,.webform-submission-data-preview-page .webform-print-wrapper-table tr,.webform-submission-data-preview-page .webform-print-wrapper-table tbody tr:hover,.webform-submission-data-preview-page .webform-print-wrapper-table td,.webform-submission-data-preview-page .webform-print-wrapper-table td:first-child,.webform-submission-data-preview-page .webform-print-wrapper-table th,.webform-print-page-html .webform-print-wrapper-table thead,.webform-print-page-html .webform-print-wrapper-table tbody,.webform-print-page-html .webform-print-wrapper-table tfoot,.webform-print-page-html .webform-print-wrapper-table tr,.webform-print-page-html .webform-print-wrapper-table tbody tr:hover,.webform-print-page-html .webform-print-wrapper-table td,.webform-print-page-html .webform-print-wrapper-table td:first-child,.webform-print-page-html .webform-print-wrapper-table th{background:rgba(0,0,0,0);border:0;color:var(--color-black)}.webform-submission--view-mode-html .webform-print-wrapper-table ul,.webform-submission-data-preview-page .webform-print-wrapper-table ul,.webform-print-page-html .webform-print-wrapper-table ul{margin:0;padding:0}.webform-submission--view-mode-html .webform-print-wrapper-table ul li,.webform-submission-data-preview-page .webform-print-wrapper-table ul li,.webform-print-page-html .webform-print-wrapper-table ul li{border-bottom:1px var(--color-black-50) solid;list-style:none;margin-top:0;padding:1rem 0}.webform-submission--view-mode-html .webform-print-wrapper-table ul li:last-of-type,.webform-submission-data-preview-page .webform-print-wrapper-table ul li:last-of-type,.webform-print-page-html .webform-print-wrapper-table ul li:last-of-type{border-bottom:0 rgba(0,0,0,0) solid}.webform-submission--view-mode-html .webform-print-wrapper-table thead,.webform-submission-data-preview-page .webform-print-wrapper-table thead,.webform-print-page-html .webform-print-wrapper-table thead{display:table-header-group}.webform-submission--view-mode-html .webform-print-wrapper-table thead th,.webform-submission-data-preview-page .webform-print-wrapper-table thead th,.webform-print-page-html .webform-print-wrapper-table thead th{padding:0}.webform-submission--view-mode-html .webform-print-wrapper-table tfoot,.webform-submission-data-preview-page .webform-print-wrapper-table tfoot,.webform-print-page-html .webform-print-wrapper-table tfoot{display:table-footer-group}.webform-submission--view-mode-html .webform-submission-data>section,.webform-submission-data-preview-page .webform-submission-data>section,.webform-print-page-html .webform-submission-data>section{border-top:1px var(--color-black-20) solid;padding-top:var(--spacing-layout-l)}.webform-submission--view-mode-html .webform-submission-data>section>.webform-section-flex-wrapper,.webform-submission-data-preview-page .webform-submission-data>section>.webform-section-flex-wrapper,.webform-print-page-html .webform-submission-data>section>.webform-section-flex-wrapper{display:block}.webform-submission--view-mode-html .webform-submission-data>section>.webform-section-flex-wrapper>h2,.webform-submission-data-preview-page .webform-submission-data>section>.webform-section-flex-wrapper>h2,.webform-print-page-html .webform-submission-data>section>.webform-section-flex-wrapper>h2{font-size:var(--fontsize-heading-l) !important;margin:0 0 2mm !important;padding:0 !important;width:100% !important}.webform-submission--view-mode-html .webform-submission-data>section>.webform-section-flex-wrapper>h2,.webform-submission-data-preview-page .webform-submission-data>section>.webform-section-flex-wrapper>h2,.webform-print-page-html .webform-submission-data>section>.webform-section-flex-wrapper>h2{font-weight:500;min-width:100%}.webform-submission--view-mode-html .webform-submission-data>section>.webform-section-flex-wrapper>.webform-section-wrapper,.webform-submission-data-preview-page .webform-submission-data>section>.webform-section-flex-wrapper>.webform-section-wrapper,.webform-print-page-html .webform-submission-data>section>.webform-section-flex-wrapper>.webform-section-wrapper{padding:6mm 0}.webform-submission--view-mode-html .webform-submission-data>section>.webform-section-flex-wrapper>.webform-section-wrapper label,.webform-submission-data-preview-page .webform-submission-data>section>.webform-section-flex-wrapper>.webform-section-wrapper label,.webform-print-page-html .webform-submission-data>section>.webform-section-flex-wrapper>.webform-section-wrapper label{font-weight:500}.webform-submission--view-mode-html .webform-submission-data>section.hds-notification,.webform-submission-data-preview-page .webform-submission-data>section.hds-notification,.webform-print-page-html .webform-submission-data>section.hds-notification{padding-top:var(--spacing-s)}@media print{@page{.webform-submission--view-mode-html,.webform-submission-data-preview-page,.webform-print-page-html{margin:0;size:A4}}.webform-submission--view-mode-html h1,.webform-submission-data-preview-page h1,.webform-print-page-html h1{margin:0;position:relative}.webform-submission--view-mode-html details,.webform-submission-data-preview-page details,.webform-print-page-html details{page-break-before:always}.webform-submission--view-mode-html .details-section-divider,.webform-submission-data-preview-page .details-section-divider,.webform-print-page-html .details-section-divider{page-break-after:always}.webform-submission--view-mode-html label,.webform-submission-data-preview-page label,.webform-print-page-html label{font-size:8pt;margin-bottom:0}.webform-submission--view-mode-html section,.webform-submission-data-preview-page section,.webform-print-page-html section{border-top:0 var(--color-black-20) solid !important;padding-top:0 !important}.webform-submission--view-mode-html section,.webform-submission-data-preview-page section,.webform-print-page-html section{margin-bottom:0;padding-bottom:0}.webform-submission--view-mode-html div.main-content,.webform-submission-data-preview-page div.main-content,.webform-print-page-html div.main-content{margin:0}.webform-submission--view-mode-html button,.webform-submission--view-mode-html footer.footer,.webform-submission--view-mode-html header.header,.webform-submission--view-mode-html nav.breadcrumb,.webform-submission--view-mode-html .form-actions,.webform-submission--view-mode-html .hds-notification,.webform-submission--view-mode-html .messages__container,.webform-submission--view-mode-html .tools__container,.webform-submission--view-mode-html .breadcrumb__container,.webform-submission--view-mode-html .webform-progress,.webform-submission--view-mode-html .webform-progress-tracker,.webform-submission--view-mode-html .webform-progress-tracker-mobile,.webform-submission--view-mode-html .webform-multiple-add,.webform-submission--view-mode-html .webform-multiple-table--operations,.webform-submission-data-preview-page button,.webform-submission-data-preview-page footer.footer,.webform-submission-data-preview-page header.header,.webform-submission-data-preview-page nav.breadcrumb,.webform-submission-data-preview-page .form-actions,.webform-submission-data-preview-page .hds-notification,.webform-submission-data-preview-page .messages__container,.webform-submission-data-preview-page .tools__container,.webform-submission-data-preview-page .breadcrumb__container,.webform-submission-data-preview-page .webform-progress,.webform-submission-data-preview-page .webform-progress-tracker,.webform-submission-data-preview-page .webform-progress-tracker-mobile,.webform-submission-data-preview-page .webform-multiple-add,.webform-submission-data-preview-page .webform-multiple-table--operations,.webform-print-page-html button,.webform-print-page-html footer.footer,.webform-print-page-html header.header,.webform-print-page-html nav.breadcrumb,.webform-print-page-html .form-actions,.webform-print-page-html .hds-notification,.webform-print-page-html .messages__container,.webform-print-page-html .tools__container,.webform-print-page-html .breadcrumb__container,.webform-print-page-html .webform-progress,.webform-print-page-html .webform-progress-tracker,.webform-print-page-html .webform-progress-tracker-mobile,.webform-print-page-html .webform-multiple-add,.webform-print-page-html .webform-multiple-table--operations{display:none !important}.webform-submission--view-mode-html .gin--horizontal-toolbar .dialog-off-canvas-main-canvas,.webform-submission-data-preview-page .gin--horizontal-toolbar .dialog-off-canvas-main-canvas,.webform-print-page-html .gin--horizontal-toolbar .dialog-off-canvas-main-canvas{padding:0 !important}.webform-submission--view-mode-html .hds-text-input,.webform-submission-data-preview-page .hds-text-input,.webform-print-page-html .hds-text-input{max-width:100%}.webform-submission--view-mode-html .hds-text-input .hds-text-input__input,.webform-submission-data-preview-page .hds-text-input .hds-text-input__input,.webform-print-page-html .hds-text-input .hds-text-input__input{height:1cm}.webform-submission--view-mode-html .hds-text-input textarea.hds-text-input__input,.webform-submission--view-mode-html .hds-text-input div.hds-text-input__textarea,.webform-submission-data-preview-page .hds-text-input textarea.hds-text-input__input,.webform-submission-data-preview-page .hds-text-input div.hds-text-input__textarea,.webform-print-page-html .hds-text-input textarea.hds-text-input__input,.webform-print-page-html .hds-text-input div.hds-text-input__textarea{height:6cm;max-width:100%;min-width:100%;width:100%}.webform-submission--view-mode-html .hds-text-input .hds-text-input__input[readonly],.webform-submission--view-mode-html .hds-text-input .hds-text-input__input,.webform-submission-data-preview-page .hds-text-input .hds-text-input__input[readonly],.webform-submission-data-preview-page .hds-text-input .hds-text-input__input,.webform-print-page-html .hds-text-input .hds-text-input__input[readonly],.webform-print-page-html .hds-text-input .hds-text-input__input{border:2px var(--color-black) solid}.webform-submission--view-mode-html .webform-element,.webform-submission-data-preview-page .webform-element,.webform-print-page-html .webform-element{border:1px var(--color-black) solid;margin-bottom:8mm;padding:2.5mm;position:relative}.webform-submission--view-mode-html .webform-preview,.webform-submission-data-preview-page .webform-preview,.webform-print-page-html .webform-preview{margin-top:0}.webform-submission--view-mode-html .webform-preview label,.webform-submission-data-preview-page .webform-preview label,.webform-print-page-html .webform-preview label{align-items:flex-end;display:flex;font-size:8pt;height:100%;left:0;pointer-events:none;position:absolute;top:-100%;width:100%}.webform-submission--view-mode-html .webform-preview .webform-element,.webform-submission-data-preview-page .webform-preview .webform-element,.webform-print-page-html .webform-preview .webform-element{border:1px var(--color-black) solid;margin-bottom:8mm;padding:2.5mm;position:relative;top:5mm}.webform-submission--view-mode-html .webform-preview .webform-multiple-table--operations,.webform-submission-data-preview-page .webform-preview .webform-multiple-table--operations,.webform-print-page-html .webform-preview .webform-multiple-table--operations{display:none}.webform-submission--view-mode-html .webform-print-header,.webform-submission-data-preview-page .webform-print-header,.webform-print-page-html .webform-print-header{align-items:center;background:var(--color-white);border-bottom:1px var(--color-black-40) solid;display:flex;flex-flow:row nowrap;font-size:9pt;height:21mm;left:0;max-width:100%;min-width:100%;position:fixed;top:0;width:100%;z-index:1000}.webform-submission--view-mode-html .webform-print-header svg,.webform-submission-data-preview-page .webform-print-header svg,.webform-print-page-html .webform-print-header svg{color:var(--color-black);display:block;height:25mm;margin-right:3mm;width:55mm}.webform-submission--view-mode-html .webform-print-header .webform-print-header-left-text,.webform-submission-data-preview-page .webform-print-header .webform-print-header-left-text,.webform-print-page-html .webform-print-header .webform-print-header-left-text{color:var(--color-black-40);text-align:left;width:100%}.webform-submission--view-mode-html .webform-print-header .webform-print-header-right-text,.webform-submission-data-preview-page .webform-print-header .webform-print-header-right-text,.webform-print-page-html .webform-print-header .webform-print-header-right-text{color:var(--color-black-40);text-align:right;width:100%}.webform-submission--view-mode-html .webform-print-footer,.webform-submission-data-preview-page .webform-print-footer,.webform-print-page-html .webform-print-footer{align-items:center;background:var(--color-white);border-top:1px var(--color-black-40) solid;bottom:0;display:flex;flex-flow:row nowrap;font-size:9pt;height:17mm;left:0;max-width:100%;min-width:100%;position:fixed;width:100%;z-index:1000}.webform-submission--view-mode-html .webform-print-footer svg,.webform-submission-data-preview-page .webform-print-footer svg,.webform-print-page-html .webform-print-footer svg{color:var(--color-black);display:block;height:15mm;margin-right:3mm;width:33mm}.webform-submission--view-mode-html .webform-print-footer .webform-print-footer-left-text,.webform-submission-data-preview-page .webform-print-footer .webform-print-footer-left-text,.webform-print-page-html .webform-print-footer .webform-print-footer-left-text{color:var(--color-black-40);text-align:left;width:100%}.webform-submission--view-mode-html .webform-print-footer .webform-print-footer-right-text,.webform-submission-data-preview-page .webform-print-footer .webform-print-footer-right-text,.webform-print-page-html .webform-print-footer .webform-print-footer-right-text{color:var(--color-black-40);text-align:right;width:100%}.webform-submission--view-mode-html .webform-print-header-space,.webform-submission-data-preview-page .webform-print-header-space,.webform-print-page-html .webform-print-header-space{background:var(--color-white);font-size:9pt;height:21mm}.webform-submission--view-mode-html .webform-print-footer-space,.webform-submission-data-preview-page .webform-print-footer-space,.webform-print-page-html .webform-print-footer-space{background:var(--color-white);font-size:9pt;height:17mm}.webform-submission--view-mode-html .webform-print-wrapper-table,.webform-submission-data-preview-page .webform-print-wrapper-table,.webform-print-page-html .webform-print-wrapper-table{border:0;margin:0;overflow-x:visible;overflow-x:initial}.webform-submission--view-mode-html .webform-section-flex-wrapper,.webform-submission-data-preview-page .webform-section-flex-wrapper,.webform-print-page-html .webform-section-flex-wrapper{flex-flow:row wrap}.webform-submission--view-mode-html .webform-section-flex-wrapper>h3.webform-section-title,.webform-submission-data-preview-page .webform-section-flex-wrapper>h3.webform-section-title,.webform-print-page-html .webform-section-flex-wrapper>h3.webform-section-title{max-width:100%;width:100%}.webform-submission--view-mode-html .webform-section-grid-wrapper,.webform-submission-data-preview-page .webform-section-grid-wrapper,.webform-print-page-html .webform-section-grid-wrapper{display:flex;flex-flow:row nowrap}.webform-submission--view-mode-html .webform-section-grid-wrapper>h3.webform-section-title,.webform-submission-data-preview-page .webform-section-grid-wrapper>h3.webform-section-title,.webform-print-page-html .webform-section-grid-wrapper>h3.webform-section-title{font-size:1.25rem;margin-top:0;max-width:5cm;width:100%}.webform-submission--view-mode-html .webform-section-grid-wrapper>dl.webform-section-contents,.webform-submission-data-preview-page .webform-section-grid-wrapper>dl.webform-section-contents,.webform-print-page-html .webform-section-grid-wrapper>dl.webform-section-contents{margin-top:0;max-width:100%;padding-left:1cm;width:100%}.webform-submission--view-mode-html .webform-section-grid-wrapper>dl.webform-section-contents dt,.webform-submission-data-preview-page .webform-section-grid-wrapper>dl.webform-section-contents dt,.webform-print-page-html .webform-section-grid-wrapper>dl.webform-section-contents dt{font-weight:bold;margin:0;padding:0;page-break-after:avoid}.webform-submission--view-mode-html .webform-section-grid-wrapper>dl.webform-section-contents dd,.webform-submission-data-preview-page .webform-section-grid-wrapper>dl.webform-section-contents dd,.webform-print-page-html .webform-section-grid-wrapper>dl.webform-section-contents dd{margin:0;padding:0;page-break-before:avoid}.webform-submission--view-mode-html .webform-print-page-body h2,.webform-submission-data-preview-page .webform-print-page-body h2,.webform-print-page-html .webform-print-page-body h2{margin-bottom:1cm}}.webform-submission-data dl dt{font-weight:bold}.webform-submission-data dl dd{margin:0;padding:0}.webform-submission-data dl dl{padding-left:var(--spacing-2-xs)}.webform-submission-data dl>br{display:none}.webform-print-page-html .webform-section-wrapper>h4,.webform-print-page-html .webform-section-wrapper .print-label{margin-top:var(--spacing-2-xs);line-height:1.5}.webform-print-page-html .webform-section-wrapper fieldset{padding:var(--spacing-s)}@media(min-width: 768px){.webform-print-page-html .webform-section-wrapper fieldset{min-width:400px;padding:var(--spacing-s) var(--spacing-m)}}.application-list{padding-bottom:var(--spacing-xl);padding-left:0}.application-list__processed-human-readable{display:none}.application-list__item{background:var(--color-bus-light);display:block;margin:var(--spacing-m) 0;padding:var(--spacing-2-xl) var(--spacing-s) var(--spacing-m);position:relative}.application-list__item .new-message{background-color:var(--color-alert);border-radius:var(--spacing-xl);display:inline-block;padding:var(--spacing-2-xs)}.application-list__item .new-message .hel-icon--size-s{height:20px;width:20px}.application-list__item h3,.application-list__item h4{margin-top:var(--spacing-xs)}.application-list__item h4{font-size:1rem}.application-list__item--submitted{display:none}.application-list__item__link{display:flex;margin-top:var(--spacing-m)}.application-list__item__link a{font-size:1.25rem}.application-list__item__link a i{vertical-align:text-bottom}.application-list__item__row{display:flex;flex-flow:row wrap;gap:var(--spacing-m);justify-content:space-between}.application-list__item__row__left{justify-content:flex-start}.application-list__item__row__top{padding:var(--spacing-2-xs) var(--spacing-s) var(--spacing-2-xs) 0;position:absolute;top:0;width:100%}.application-list__item--status{--status-label-height: 32px;align-items:center;border-radius:20px;display:inline-flex;font-size:var(--fontsize-body-s);line-height:var(--status-label-height);min-height:var(--status-label-height);padding:var(--spacing-3-xs) var(--spacing-s);padding-left:var(--spacing-xs);vertical-align:middle}.application-list__item--status+.hds-loading-spinner{display:inline-block;left:10px;margin:0;padding:0;position:relative;top:var(--spacing-3-xs)}.application-list__item--status.hide-spinner+.hds-loading-spinner{display:none}.application-list__item--status+div+.application-list__item--error{display:none}.application-list__item--status.show-error{background:var(--color-black-20);color:var(--color-black-90)}.application-list__item--status.show-error+div+.application-list__item--error{display:inline-flex;left:var(--spacing-xs);margin:0;padding:0;position:relative;top:var(--spacing-3-xs)}.application-list__item--status.show-error+div+.application-list__item--error .application-list--error-text{display:inline-block;margin-left:var(--spacing-2-xs)}.application-list__item--status--draft{padding-left:0}.application-list__item--status--sent,.application-list__item--status--submitted{background:var(--color-black-10)}.application-list__item--status--sent::before,.application-list__item--status--submitted::before{--icon-size: 1.5rem;background-color:#000;background-size:contain;content:"";display:inline-block;height:calc(var(--line-height) * 1em);height:var(--icon-size, calc(var(--line-height) * 1em));-webkit-mask-image:var(--hel-icon--alert-circle);mask-image:var(--hel-icon--alert-circle);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);-webkit-mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));vertical-align:bottom;width:calc(var(--line-height) * 1em);width:var(--icon-size, calc(var(--line-height) * 1em));background-color:var(--color-black);content:"";margin-right:var(--spacing-2-xs)}.application-list__item--status--received,.application-list__item--status--pending,.application-list__item--status--processing,.application-list__item--status--preparing{background:var(--color-info);color:var(--color-white)}.application-list__item--status--received::before,.application-list__item--status--pending::before,.application-list__item--status--processing::before,.application-list__item--status--preparing::before{--icon-size: 1.5rem;background-color:#000;background-size:contain;content:"";display:inline-block;height:calc(var(--line-height) * 1em);height:var(--icon-size, calc(var(--line-height) * 1em));-webkit-mask-image:var(--hel-icon--info-circle);mask-image:var(--hel-icon--info-circle);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);-webkit-mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));vertical-align:bottom;width:calc(var(--line-height) * 1em);width:var(--icon-size, calc(var(--line-height) * 1em));background-color:var(--color-white);content:"";margin-right:var(--spacing-2-xs)}.application-list__item--status--done,.application-list__item--status--ready,.application-list__item--status--resolved{background:var(--color-success);color:var(--color-white)}.application-list__item--status--done::before,.application-list__item--status--ready::before,.application-list__item--status--resolved::before{--icon-size: 1.5rem;background-color:#000;background-size:contain;content:"";display:inline-block;height:calc(var(--line-height) * 1em);height:var(--icon-size, calc(var(--line-height) * 1em));-webkit-mask-image:var(--hel-icon--check-circle);mask-image:var(--hel-icon--check-circle);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);-webkit-mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));vertical-align:bottom;width:calc(var(--line-height) * 1em);width:var(--icon-size, calc(var(--line-height) * 1em));background-color:var(--color-white);content:"";margin-right:var(--spacing-2-xs)}.application-list__item--status--rejected,.application-list__item--status--deleted,.application-list__item--status--canceled,.application-list__item--status--cancelled{background:var(--color-alert)}.application-list__item--status--rejected::before,.application-list__item--status--deleted::before,.application-list__item--status--canceled::before,.application-list__item--status--cancelled::before{--icon-size: 1.5rem;background-color:#000;background-size:contain;content:"";display:inline-block;height:calc(var(--line-height) * 1em);height:var(--icon-size, calc(var(--line-height) * 1em));-webkit-mask-image:var(--hel-icon--alert-circle);mask-image:var(--hel-icon--alert-circle);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);-webkit-mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));vertical-align:bottom;width:calc(var(--line-height) * 1em);width:var(--icon-size, calc(var(--line-height) * 1em));background-color:var(--color-black);content:"";margin-right:var(--spacing-2-xs)}.application-list__item--status--error{background:var(--color-black-20);color:var(--color-black);text-transform:uppercase}.application-list__item--status--error .hel-icon{margin-right:var(--spacing-3-xs)}.application-list__count{font-size:1.5rem}.application-list__count-value{font-weight:bold}.application-list__information-row{align-items:flex-end;display:flex;flex-flow:row nowrap;justify-content:space-between;width:100%}@media(max-width: 35rem){.application-list__information-row{flex-flow:row wrap}}.application-list__information-row .grant-applications--select-wrapper select{max-width:100%;width:322px}.application-list__status__wrapper{background:var(--color-black-5)}.application-list__status__container{display:flex;flex-flow:row wrap;gap:var(--spacing-layout-m);justify-content:flex-start;padding-bottom:var(--spacing-m);padding-top:var(--spacing-m)}.application-list__status__label{font-weight:bold}.application-list__status__value{display:flex;flex-flow:row;justify-items:center;min-height:var(--spacing-xl)}.application-list__status__value>div{margin:auto}.application-list__search-row{align-items:flex-end;display:flex;flex-flow:row nowrap;gap:var(--spacing-s);justify-content:space-between;width:100%}@media(max-width: 35rem){.application-list__search-row{flex-flow:row wrap}}.application-list__search-row .hds-text-input{flex:1 100%;max-width:100%}.application-list__search-row .hds-text-input__input-wrapper{display:block}.application-list__search-row .hds-text-input__input-wrapper input{width:100%}.application-list__search-row button{white-space:nowrap}.application-list__pagination{--line-height: 1.5555555556;font-size:1.125rem;font-weight:400;line-height:var(--line-height);display:inline-flex;flex-wrap:wrap;font-weight:700;gap:var(--spacing-2-xs);justify-content:center;list-style:none;padding:0}.application-list__pagination li{margin-top:0}.application-list__pagination li.active a{text-decoration:underline}.application-list__pagination li.disabled a{cursor:default;text-decoration:none}.application-list__pagination li.disabled a:hover,.application-list__pagination li.disabled a:focus,.application-list__pagination li.disabled a:active{outline:none;text-decoration:none}.application-list__pagination li a{color:var(--color-black-90);display:block;height:var(--link-height);min-width:40px;padding-left:var(--spacing-3-xs);padding-right:var(--spacing-3-xs);text-decoration:none}.application-list__pagination li a:hover{text-decoration:underline}.application-list__pagination li a:focus,.application-list__pagination li a:active{outline:solid var(--color-coat-of-arms) 3px;outline-offset:1px}.grants-profile hr{border:1px solid var(--color-silver);margin:var(--spacing-layout-xs) 0}.grants-profile h3.info-grants{border-bottom:2px solid var(--color-silver);padding-bottom:var(--spacing-l)}.grants-profile--title{align-items:center;display:flex;flex-flow:row nowrap}.grants-profile--title .grants-profile--initials{border-radius:50%;display:none;font-size:var(--fontsize-body-xl);font-weight:bold;height:var(--spacing-4-xl);line-height:var(--spacing-4-xl);margin-right:var(--spacing-m);text-align:center;vertical-align:middle;width:var(--spacing-4-xl)}@media(min-width: 992px){.grants-profile--title .grants-profile--initials{display:block}}.grants-profile--title .grants-profile--initials:hover,.grants-profile--title .grants-profile--initials:active,.grants-profile--title .grants-profile--initials:focus{text-decoration:underline}.grants-profile--title .grants-profile--initials-colorscheme-2{background-color:var(--color-bus);color:var(--color-white)}.grants-profile--title .grants-profile--initials-colorscheme-1{background-color:var(--color-engel);color:var(--color-black)}.grants-profile--title .grants-profile--initials-colorscheme-0{background-color:var(--color-tram);color:var(--color-white)}.grants-profile--title h1{flex-grow:100}.grants-profile--basicinfo{--line-height: 1.5;background-color:var(--color-silver-light);border-bottom:8px solid var(--color-engel-dark);padding-bottom:var(--spacing-2-xs);padding-top:var(--spacing-l)}.grants-profile--basicinfo h3{font-size:var(--fontsize-heading-l);margin-top:0;padding-top:0}.grants-profile--extrainfo{padding-bottom:var(--spacing-l);padding-top:var(--spacing-l)}.grants-profile--extrainfo .hds-notification{margin-bottom:var(--spacing-xl)}.grants-profile--extrainfo fieldset.form-wrapper{background-color:var(--color-silver-light);border:0;padding:var(--spacing-l)}.grants-profile--extrainfo fieldset.inline-error-message{background-color:transparent;background-color:initial;padding:0 0 0 var(--spacing-2-xs)}.grants-profile--extrainfo fieldset.inline-error-message legend{display:none}.grants-profile--update-link{margin-bottom:var(--spacing-layout-2-xs);margin-top:var(--spacing-layout-xs)}.grants-profile--infotext{font-size:var(--fontsize-body-l);margin-bottom:var(--spacing-s)}.grants-profile--wrapper{display:flex;flex-wrap:wrap}.grants-profile--wrapper-item{margin-bottom:var(--spacing-layout-2-xs);width:100%}@media(min-width: 576px){.grants-profile--wrapper-item{flex:1;margin-bottom:0}}.grants-profile--wrapper-item:first-child{flex:auto;margin-bottom:var(--spacing-layout-2-xs);width:100%}.grants-profile .profile-add-more{margin-top:1em}[dir="ltr"] .grants-profile dd{margin-left:0}[dir="rtl"] .grants-profile dd{margin-right:0}.grants-profile--officials{margin-left:0;padding-left:0}.grants-profile--officials-item{border-left:4px var(--color-copper) solid;display:flex;flex-flow:row nowrap;justify-content:space-between;list-style:none;margin-bottom:var(--spacing-layout-s);margin-left:0;max-width:var(--webform-element-width--input-large);padding-left:var(--spacing-layout-xs);width:100%}.grants-profile--officials-item--position{font-size:var(--fontsize-heading-xs);font-weight:bold;margin-bottom:var(--spacing-layout-2-xs);margin-top:0;padding-top:0}.grants-profile--officials-edit-wrapper{text-align:right}.grants-profile--officials-edit-wrapper a{display:inline-block}.grants-profile .hel-icon--check-circle-fill{color:var(--color-success);vertical-align:middle}.grants-profile-grants-profile .tabledrag-toggle-weight-wrapper,.grants-profile-grants-profile .field-multiple-drag{display:none}.grants-profile .hds-text-input__label{display:inline-block;margin-top:0}.page--oma-asiointi__private-person .grants-profile--basicinfo{border-bottom:8px solid var(--color-copper)}.page--oma-asiointi__private-person .grants-profile--wrapper{display:grid;grid-template-columns:1fr 1fr}.page--oma-asiointi__unregistered-community .grants-profile--wrapper{display:grid;grid-template-columns:1fr 1fr}.hds-link .hel-icon{margin-right:var(--spacing-2-xs);vertical-align:bottom}.hds-link span.link-label{font-weight:bold;margin-right:var(--spacing-m)}.bold-link{font-weight:bold}div.applicant-info--from-prh,div.applicant-info--from-grants{display:grid;grid-template-columns:1fr}@media(min-width: 576px){div.applicant-info--from-prh,div.applicant-info--from-grants{grid-template-columns:1fr 1fr}}@media(min-width: 768px){div.applicant-info--from-prh,div.applicant-info--from-grants{grid-template-columns:1fr 1fr 1fr}}div.applicant-info--from-prh .form-required::after,div.applicant-info--from-grants .form-required::after{content:none}div.applicant-info--from-prh{border-bottom:2px solid var(--color-silver);margin-bottom:var(--spacing-layout-xs);padding-bottom:var(--spacing-layout-2-xs)}div.grants-handler--prefilled-field .field-prefix,.grants-profile-prh-info .field-prefix{display:block;position:absolute;right:var(--spacing-layout-s);top:0}div.grants-handler--prefilled-field .hds-text-input__input-wrapper,div.grants-handler--prefilled-field .description,.grants-profile-prh-info .hds-text-input__input-wrapper,.grants-profile-prh-info .description{display:inline-block;white-space:normal}div.grants-handler--prefilled-field .hel-icon--check-circle-fill,.grants-profile-prh-info .hel-icon--check-circle-fill{color:var(--color-success);vertical-align:middle}div.grants-handler--prefilled-field .hds-text-input__input,div.grants-handler--prefilled-field .webform-element-description,.grants-profile-prh-info .hds-text-input__input,.grants-profile-prh-info .webform-element-description{color:var(--color-black);display:block;font-size:var(--fontsize-body-m);line-height:var(--spacing-m);position:relative}div.grants-handler--prefilled-field .hds-text-input__label,.grants-profile-prh-info .hds-text-input__label{margin-bottom:0}.grants-profile--imported-section .webform-section-flex-wrapper{background-color:var(--color-silver-light);border-bottom:8px solid var(--color-engel-dark);display:block;padding-bottom:var(--spacing-2-xs);padding-left:var(--spacing-l);padding-right:var(--spacing-l);padding-top:var(--spacing-l);width:100%}.grants-profile--imported-section .webform-section-flex-wrapper h3.webform-section-title{font-size:var(--fontsize-heading-l);font-weight:400;margin-top:0;max-width:100%;padding-top:0;width:100%}.grants-profile--imported-section .webform-section-flex-wrapper .webform-section-wrapper{padding:0}.grants-profile--imported-section .webform-section-flex-wrapper .hds-text-input{margin-bottom:0}.grants-profile--imported-section .webform-section-flex-wrapper #edit-grants-profile-items-container{display:flex;flex-flow:row wrap;justify-content:space-between;margin-bottom:var(--spacing-layout-xs);margin-top:var(--spacing-layout-xs);width:100%}.grants-profile--imported-section .webform-section-flex-wrapper #edit-grants-profile-items-container>div{margin:0 var(--spacing-layout-xs) 0 0;min-width:160px}.grants-profile--imported-section .webform-section-flex-wrapper #edit-grants-profile-items-container .hds-text-input__input-wrapper{display:none}.grants-profile--imported-section .webform-section-flex-wrapper #edit-grants-profile-items-container label{font-size:var(--fontsize-body-m);font-weight:bold;margin:0}.grants-profile--imported-section .webform-section-flex-wrapper .form-item-prh-markup{border-bottom:2px solid var(--color-silver);padding-bottom:var(--spacing-layout-xs);padding-top:var(--spacing-layout-xs)}.grants-profile__local-tasks__wrapper{margin-bottom:0}.openid-connect-login-form.openid-connect-login-form{border-bottom:0;margin-bottom:0;padding-bottom:0}.grants-profile--links{display:flex;justify-content:space-between}.company-delete-confirm-form .form-actions{margin-top:var(--spacing-layout-xs)}.company-delete-confirm-form .form-submit{margin-right:var(--spacing-2-xs)}.page--oma-asiointi .main-content{margin-top:0}.page--oma-asiointi .main-content h2{margin-top:var(--spacing-m)}.hero--oma-asiointi{margin-bottom:var(--spacing-l)}.hero--oma-asiointi .container{padding-top:var(--spacing-layout-m)}.hero--oma-asiointi .hero__text-content{align-items:center;display:flex}.hero--oma-asiointi .hero__title{margin-left:0}@media(min-width: 576px){.hero--oma-asiointi .hero__title{margin-left:40px}}.hero--oma-asiointi .hel-icon{display:none}@media(min-width: 576px){.hero--oma-asiointi .hel-icon{--icon-size: 48px;display:block;flex-shrink:0}}#oma-asiointi__sent{background:var(--color-silver-light)}#oma-asiointi__sent .application-list__item{background:var(--color-white)}.oma-asiointi-block{background-color:var(--color-silver-light);padding-bottom:var(--spacing-l);padding-top:var(--spacing-l)}.oma-asiointi-block h2{margin-bottom:var(--spacing-s);margin-top:0}.oma-asiointi-block h3{font-size:var(--fontsize-heading-m);font-weight:500}.oma-asiointi-block .header{border-bottom:1px solid var(--color-silver-dark);display:flex;justify-content:space-between;padding-bottom:var(--spacing-xs)}.oma-asiointi-block .header .user,.oma-asiointi-block .header .link{font-weight:700}.oma-asiointi-block .header .link .hel-icon{vertical-align:text-top}.oma-asiointi-block--link{display:block;position:relative;text-decoration:none}.oma-asiointi-block--link::after{--icon-size: 1.5rem;background-color:#000;background-size:contain;content:"";display:inline-block;height:calc(var(--line-height) * 1em);height:var(--icon-size, calc(var(--line-height) * 1em));-webkit-mask-image:var(--hel-icon--arrow-right);mask-image:var(--hel-icon--arrow-right);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);-webkit-mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));vertical-align:bottom;width:calc(var(--line-height) * 1em);width:var(--icon-size, calc(var(--line-height) * 1em));transition:transform .2s linear;bottom:var(--spacing-m);content:"";display:block;flex-shrink:0;margin-left:-4px;margin-top:var(--spacing-2-xs);position:absolute;right:var(--spacing-m)}@media(prefers-reduced-motion){.oma-asiointi-block--link::after{transition:none}}@media(min-width: 576px){.oma-asiointi-block--link::after{--icon-size: 3rem;margin-left:-8px;margin-top:var(--spacing-s)}}.oma-asiointi-block--link:focus::after,.oma-asiointi-block--link:hover::after{transform:translateX(var(--spacing-2-xs))}@media(prefers-reduced-motion){.oma-asiointi-block--link:focus::after,.oma-asiointi-block--link:hover::after{transform:none}}.oma-asiointi-block .new-message{background-color:var(--color-alert);display:inline-block;font-weight:500;padding:var(--spacing-2-xs);text-transform:uppercase}.oma-asiointi-block .new-messages-length{background-color:var(--color-black-20);border-radius:50%;display:inline-block;font-size:var(--fontsize-heading-s);height:30px;line-height:30px;margin-left:var(--spacing-m);position:relative;text-align:center;width:30px}.oma-asiointi-block .new-messages-length.has-new-messages{background-color:var(--color-alert)}@media(min-width: 768px){.oma-asiointi-block .content{display:grid;grid-gap:var(--spacing-s);grid-template-columns:1fr 1fr}}.oma-asiointi-block .submission,.oma-asiointi-block .message{background-color:var(--color-white);margin-bottom:var(--spacing-s);margin-top:var(--spacing-s);padding:var(--spacing-m)}.oma-asiointi-block .submission .submission-title,.oma-asiointi-block .submission .message-title,.oma-asiointi-block .message .submission-title,.oma-asiointi-block .message .message-title{font-size:var(--fontsize-heading-s);font-weight:500;margin-bottom:var(--spacing-2-xs);margin-top:0;text-decoration:underline}.oma-asiointi-block .submission .message-title,.oma-asiointi-block .message .message-title{margin-top:var(--spacing-s)}.oma-asiointi-block .submission:hover .submission-title,.oma-asiointi-block .submission:hover .message-title,.oma-asiointi-block .message:hover .submission-title,.oma-asiointi-block .message:hover .message-title{text-decoration:none}.oma-asiointi-block .message{padding-right:var(--spacing-5-xl)}.oma-asiointi{margin-top:var(--spacing-l)}.oma-asiointi ul{padding:0}.oma-asiointi__list{padding-bottom:var(--spacing-l);padding-top:var(--spacing-l)}.oma-asiointi__list h2{margin-bottom:var(--spacing-m);margin-top:0}.oma-asiointi #oma-asiointi__sent{padding-top:var(--spacing-s)}.oma-asiointi .oma-asiointi-infoboxes-container .oma-asiointi-infoboxes{gap:var(--spacing-3-xl);margin:var(--spacing-2-xl) 0}@media(min-width: 768px){.oma-asiointi .oma-asiointi-infoboxes-container .oma-asiointi-infoboxes{display:flex}}.oma-asiointi .oma-asiointi-infoboxes-container .oma-asiointi-infobox{background-color:var(--color-info-light);flex:1;margin-bottom:var(--spacing-layout-2-xs);padding:var(--spacing-l)}@media(min-width: 768px){.oma-asiointi .oma-asiointi-infoboxes-container .oma-asiointi-infobox{margin-bottom:0}}.oma-asiointi .oma-asiointi-infoboxes-container .oma-asiointi-infobox:last-of-type{margin-bottom:0}.oma-asiointi .oma-asiointi-infoboxes-container .oma-asiointi-infobox--link{display:flex;margin-top:var(--spacing-layout-2-xs)}.oma-asiointi .oma-asiointi-infoboxes-container .oma-asiointi-infobox--link a{font-size:1.25rem}.oma-asiointi .oma-asiointi-infoboxes-container .oma-asiointi-infobox h3{margin-top:0}.asiointirooli-block{background-color:var(--color-black);color:var(--color-white);font-weight:500;margin-bottom:16px;padding:var(--spacing-2-xs)}.asiointirooli-block a{color:var(--color-white)}.asiointirooli-block .link--switch-role,.asiointirooli-block .link--stop-mandate{color:var(--color-white);margin-left:var(--spacing-layout-s)}@media(max-width: 768px){.asiointirooli-block .link--switch-role,.asiointirooli-block .link--stop-mandate{display:block;margin-left:0}}.asiointirooli-block .link--stop-mandate::before{--icon-size: 1.5rem;background-color:#000;background-size:contain;content:"";display:inline-block;height:calc(var(--line-height) * 1em);height:var(--icon-size, calc(var(--line-height) * 1em));-webkit-mask-image:var(--hel-icon--cross-circle-fill);mask-image:var(--hel-icon--cross-circle-fill);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);-webkit-mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));vertical-align:bottom;width:calc(var(--line-height) * 1em);width:var(--icon-size, calc(var(--line-height) * 1em));background-color:var(--color-white);content:"";display:inline-block;margin-right:10px;-webkit-mask-image:url('data:image/svg+xml, ');mask-image:url('data:image/svg+xml, ')}.asiointirooli-block .link--switch-role::before{--icon-size: 1.5rem;background-color:#000;background-size:contain;content:"";display:inline-block;height:calc(var(--line-height) * 1em);height:var(--icon-size, calc(var(--line-height) * 1em));-webkit-mask-image:var(--hel-icon--swap-user);mask-image:var(--hel-icon--swap-user);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);-webkit-mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));vertical-align:bottom;width:calc(var(--line-height) * 1em);width:var(--icon-size, calc(var(--line-height) * 1em));background-color:var(--color-white);content:"";display:inline-block;margin-right:10px;-webkit-mask-image:url('data:image/svg+xml, ');mask-image:url('data:image/svg+xml, ')}#grants-mandate-type .form-actions{display:flex;flex-direction:column;flex-wrap:wrap;justify-content:flex-start;width:100%}@media(min-width: 576px){#grants-mandate-type .form-actions{flex-direction:row;margin-left:calc(-1*var(--spacing-m));width:calc(100% + var(--spacing-m))}}#grants-mandate-type .form-actions .hds-card--applicant-role{margin-bottom:var(--spacing-l);position:relative;width:100%}@media(min-width: 576px){#grants-mandate-type .form-actions .hds-card--applicant-role{margin-left:var(--spacing-m);width:calc(50% - var(--spacing-m))}}@media(min-width: 992px){#grants-mandate-type .form-actions .hds-card--applicant-role{width:calc(33.3333333333% - var(--spacing-m))}}#grants-mandate-type .form-actions .hds-card--applicant-role .hds-card__body{align-content:space-between;height:100%}#grants-mandate-type .form-actions .hds-card--applicant-role .hds-card--mandate-card-content{display:grid;gap:var(--spacing-m);grid-gap:var(--spacing-m)}
+body{--webform-element-width--input-small: 184px;--webform-element-width--input-medium: 332px;--webform-element-width--input-large: 591px;--webform-element-width--fieldset: 714px}.hel-icon--size-xs,.hds-icon--size-xs{height:16px;width:16px}.hel-icon--size-s,.hds-icon--size-s{height:24px;width:24px}.hel-icon--size-m,.hds-icon--size-m{height:32px;width:32px}.hel-icon--size-l,.hds-icon--size-l{height:48px;width:48px}.hel-icon--size-xl,.hds-icon--size-xl{height:64px;width:64px}.hel-icon.hel-icon--pen-line{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8, ");mask-image:url("data:image/svg+xml;charset=utf-8, ")}.hel-icon.hds-icon--company{background:var(--color-black);-webkit-mask-image:url("data:image/svg+xml;charset=utf-8, ");mask-image:url("data:image/svg+xml;charset=utf-8, ")}.hds-button--secondary:not(.eu-cookie-compliance-default-button):not(.eu-cookie-compliance-save-preferences-button){--background-color: transparent;--background-color-hover: var(--color-black-80);--background-color-focus: transparent;--background-color-hover-focus: var(--color-black-80);--background-color-disabled: transparent;--color: var(--color-black);--color-hover: var(--color-white);--color-focus: var(--color-black);--color-hover-focus: var(--color-black);--color-disabled: var(--color-black-40)}.hds-button--secondary:not(:disabled):not(.eu-cookie-compliance-default-button):not(.eu-cookie-compliance-save-preferences-button),.hds-button--primary:not(:disabled){border-color:transparent;border-color:var(--color-black, transparent)}.hds-button.hds-button--supplementary .hds-button__label{margin:0;padding:0 var(--spacing-2-xs)}.hds-button.hds-button--supplementary::after,.hds-button.hds-button--supplementary::before{display:none !important}.hds-button--supplementary:not(:disabled){--background-color-hover: rgba(0, 0, 0, 0.1);background:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.hds-button--supplementary:not(:disabled):hover{background-color:var(--background-color-hover)}.hds-button--alert{--background-color: rgb(255, 0, 0)}a.hds-button.webform-button--delete-draft:not(:disabled){text-decoration:none}a.hds-button.webform-button--delete-draft:not(:disabled) .hds-button__label_wrapper{display:inline}a.hds-button.webform-button--delete-draft:not(:disabled) .hds-button__label{text-decoration:underline}a.hds-button.webform-button--delete-draft:not(:disabled):hover .hds-button__label{text-decoration:none}.openid-connect-login-form input[type=submit].hds-button{width:220px}.hds-button__label_wrapper{align-items:center;display:flex}.hds-button__label_wrapper:not(.hds-button)>.hds-button__label{margin:0 var(--spacing-2-xs)}.hds-link{--link-visited-color: var(--color-black);--link-color: var(--color-black)}.hds-card{--background-color: var(--color-white);--border-color: var(--color-black-90);--color: var(--color-black-90);--border-width: 2px;--padding-horizontal: var(--spacing-l);--padding-vertical: var(--spacing-m);background-color:var(--background-color);color:var(--color);padding:var(--padding-vertical) var(--padding-horizontal)}.hds-card--border{border:var(--border-width) solid var(--border-color)}.hds-card__body{display:grid;grid-gap:var(--spacing-m);gap:var(--spacing-m);margin-bottom:var(--spacing-l)}.hds-card__body:last-child{margin-bottom:0}.hds-card__heading{font-size:var(--fontsize-heading-m);font-weight:bold;line-height:var(--lineheight-m)}.hds-card__text{font-size:var(--fontsize-body-m);line-height:var(--lineheight-l)}.hds-card--applicant-role{margin-bottom:var(--spacing-l);margin-right:0;max-width:400px;width:100%}.hds-card__heading-m{font-size:var(--fontsize-heading-m);font-weight:500;letter-spacing:-0.2px;line-height:32px;margin-top:0}.grants-profile--menuitem--login,.grants-profile--menuitem--logout{align-items:center;display:flex;flex-flow:column;font-size:var(--fontsize-body-s);height:var(--spacing-xl);margin-left:var(--spacing-2-xs);margin-right:var(--spacing-2-xs);position:relative;text-align:center;width:var(--spacing-xl)}.grants-profile--menuitem--login .hel-icon,.grants-profile--menuitem--logout .hel-icon{display:block;margin:auto}.grants-profile--menuitem--login-triggertext,.grants-profile--menuitem--logout-triggertext{clip:rect(1px, 1px, 1px, 1px);clip-path:inset(50%);display:block;max-height:1px;max-width:1px;opacity:0;overflow:hidden;position:absolute;white-space:nowrap}.block--grants-profile--menuitem{align-items:center;display:flex;grid-area:brand;z-index:2}.block--branding{flex-grow:10}.grants-frontpage-info-block{margin-bottom:var(--spacing-layout-xl)}.grants-profile--menuitem{height:var(--spacing-m);margin-left:var(--spacing-2-xs);margin-right:var(--spacing-2-xs);position:relative;width:var(--spacing-m)}@media(min-width: 768px){.grants-profile--menuitem{height:var(--spacing-2-xl);width:var(--spacing-2-xl)}}.grants-profile--menuitem a{text-decoration:none}.grants-profile--menuitem--notifications{background-color:var(--color-error);border:2px var(--color-white) solid;border-radius:50%;color:var(--color-white);font-size:var(--fontsize-body-s);font-weight:bold;height:var(--spacing-xs) 1.25;line-height:var(--spacing-layout-2-xs);position:absolute;right:-5px;text-align:center;top:-5px;width:var(--spacing-xs) 1.25;z-index:2}.grants-profile--menuitem--initials{border-radius:50%;font-weight:bold;height:var(--spacing-m);line-height:var(--spacing-m);text-align:center;vertical-align:middle;width:var(--spacing-m)}@media(min-width: 768px){.grants-profile--menuitem--initials{height:var(--spacing-2-xl);line-height:var(--spacing-2-xl);width:var(--spacing-2-xl)}}.grants-profile--menuitem--initials:hover,.grants-profile--menuitem--initials:active,.grants-profile--menuitem--initials:focus{text-decoration:underline}.grants-profile--menuitem--initials-colorscheme-2{background-color:var(--color-bus);color:var(--color-white)}.grants-profile--menuitem--initials-colorscheme-1{background-color:var(--color-engel);color:var(--color-black)}.grants-profile--menuitem--initials-colorscheme-0{background-color:var(--color-tram);color:var(--color-white)}.sidebar-important-links{margin-top:var(--spacing-2-xl)}.sidebar-important-links .sidebar-text .sidebar-text__text-content>p{padding:var(--spacing-s) var(--spacing-m)}.block--service-page-banner{background-color:var(--color-engel);margin-top:var(--spacing-layout-s);padding:var(--spacing-layout-s)}.block--service-page-banner h2{margin-top:0}.block--service-page-banner .hds-icon{margin-bottom:var(--spacing-layout-s)}.hds-button.service-page-sidebar-link{background-color:var(--hdbt-color-palette--secondary);padding:var(--spacing-xs)}.hds-button.service-page-sidebar-link:hover{color:var(--color-black)}.terms_block{padding-bottom:var(--spacing-4-xl)}#block-servicepageauthblock h2,#block-servicepageanonblock h2{--line-height: 1.3;font-size:1.25rem;font-weight:500;line-height:var(--line-height)}@media(min-width: 992px){#block-servicepageauthblock h2,#block-servicepageanonblock h2{--line-height: 1.1666666667;font-size:1.5rem;font-weight:500}}#block-servicepageauthblock .hds-button,#block-servicepageanonblock .hds-button{margin-top:var(--spacing-m)}.grants-service-page-block{background-color:var(--color-alert-light);margin-top:var(--spacing-m);padding:var(--spacing-m)}.grants-service-page-block h3{font-size:var(--fontsize-heading-s);margin-top:0}.grants-service-page-block .hel-icon{vertical-align:text-bottom}.grants-service-page-block--auth{background-color:var(--color-info-light)}.hel-icon.hel-icon--swap-user{-webkit-mask-image:url('data:image/svg+xml, ');mask-image:url('data:image/svg+xml, ')}.nav-toggle-dropdown--profile .profile__information{background-color:var(--color-silver-light)}.nav-toggle-dropdown--profile .profile__full-name{font-weight:bold}.nav-toggle-dropdown--profile .grants-profile--menuitem--mandate,.nav-toggle-dropdown--profile .grants-profile--menuitem--switch-role{--line-height: 1.5555555556;font-size:1.125rem;font-weight:400;line-height:var(--line-height);border-top:1px solid #ccc;border-bottom:1px solid #ccc;display:block;font-weight:normal;padding:16px;text-decoration:none;width:100%}@media(min-width: 992px){.nav-toggle-dropdown--profile .grants-profile--menuitem--mandate,.nav-toggle-dropdown--profile .grants-profile--menuitem--switch-role{border-bottom:none}}.nav-toggle-dropdown--profile .grants-profile--menuitem--mandate:hover,.nav-toggle-dropdown--profile .grants-profile--menuitem--switch-role:hover{text-decoration:underline}.nav-toggle-dropdown--profile .grants-profile--menuitem--mandate:focus,.nav-toggle-dropdown--profile .grants-profile--menuitem--switch-role:focus{outline:3px solid #000;outline-offset:-3px}.application-timeout-message{display:none;padding-left:16px;padding-left:var(--spacing-s, 16px);position:fixed;right:0;top:50%;z-index:100}.application-timeout-message.slide-in{animation:slide-in-right .5s forwards ease;display:block}.application-timeout-message .close-application-timeout-message{cursor:pointer;font-size:1.25rem;position:absolute;right:1.25rem}@keyframes slide-in-right{from{right:-500px}to{right:1.25rem}}.view_application_search_search_api .main-content{margin-top:0}.view_application_search_search_api .search-result-amount--wrapper{align-items:center;display:flex}.view_application_search_search_api .search-result-amount--wrapper p{margin-top:0}.view_application_search_search_api select.search-result-amount{border:1px solid var(--color-black-50);margin-left:var(--spacing-l);margin-right:var(--spacing-2-xs)}.view_application_search_search_api .search-filter-button{background-color:var(--color-black);border-radius:180px;border:0;color:var(--color-white);display:inline-block;margin:0 var(--spacing-2-xs) var(--spacing-2-xs) 0;padding:var(--spacing-2-xs) var(--spacing-xs)}.view_application_search_search_api .search-filter-button:focus{--focus-outline-color: #000000;box-shadow:none;outline:3px solid var(--focus-outline-color);outline:var(--outline-width, 3px) solid var(--focus-outline-color);outline-offset:2px;outline-offset:var(--outline-gutter, 2px)}.view_application_search_search_api .search-filter-button span{vertical-align:middle}.view_application_search_search_api .search-filter-button span.hel-icon:hover{cursor:pointer}.view-application-search-search-api .main-content{margin-top:var(--spacing-layout-s)}.view-application-search-search-api .main-content .view-header{align-items:center;display:flex;margin-bottom:var(--spacing-layout-s)}.application_search--link{display:block;height:100%;padding-bottom:var(--spacing-m);position:relative;text-decoration:none}.application_search--link::after{--icon-size: 1.5rem;background-color:#000;background-size:contain;content:"";display:inline-block;height:calc(var(--line-height) * 1em);height:var(--icon-size, calc(var(--line-height) * 1em));-webkit-mask-image:var(--hel-icon--arrow-right);mask-image:var(--hel-icon--arrow-right);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);-webkit-mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));vertical-align:bottom;width:calc(var(--line-height) * 1em);width:var(--icon-size, calc(var(--line-height) * 1em));transition:transform .2s linear;bottom:var(--spacing-s);content:"";display:block;flex-shrink:0;left:var(--spacing-m);margin-left:-4px;margin-top:8px;position:absolute}@media(prefers-reduced-motion){.application_search--link::after{transition:none}}@media(min-width: 576px){.application_search--link::after{--icon-size: 3rem;margin-left:-8px;margin-top:16px}}.application_search--link:focus h3,.application_search--link:hover h3{text-decoration:none}.application_search--link:focus::after,.application_search--link:hover::after{transform:translateX(8px)}@media(prefers-reduced-motion){.application_search--link:focus::after,.application_search--link:hover::after{transform:none}}.application_search--filter-wrapper{background:var(--color-black-5)}.application_search--filter-wrapper h2{font-size:var(--fontsize-heading-m);margin-bottom:var(--spacing-layout-s);margin-top:var(--spacing-layout-s)}.application_search--filter-wrapper form{align-items:center;border-bottom:2px solid var(--color-black-20);display:flex;flex-flow:row wrap;gap:var(--spacing-s);justify-content:space-between;margin-bottom:var(--spacing-layout-s);padding-bottom:var(--spacing-layout-s)}.application_search--filter-wrapper form .form-item{margin-bottom:0;min-width:-moz-fit-content;min-width:fit-content;width:calc((100% - var(--spacing-s) - var(--spacing-s))/3)}.application_search--filter-wrapper form .form-item label{color:var(--label-color-default);font-size:var(--fontsize-body-m);font-weight:500;margin-bottom:var(--spacing-3-xs)}.application_search--filter-wrapper form .form-item .grant-applications--select-wrapper{min-width:100%;width:100%}.application_search--filter-wrapper form .hds-text-input:first-child{max-width:none;width:100%}.application_search--filter-wrapper form .hds-text-input:first-child input{width:100%}.application_search--filter-wrapper form .form-actions{align-items:center;display:flex;gap:16px;order:6;padding-top:var(--spacing-m);width:100%}@media(min-width: 768px){.application_search--filter-wrapper form .form-actions{width:17%}}.application_search--filter-wrapper form .form-actions input{min-width:250px;width:100%}.application_search--filter-wrapper form .form-item-items-per-page{display:none}.application_search--filter-wrapper form .form-item-kohderyhma{order:1}.application_search--filter-wrapper form .form-item-avustuslaji{order:2}.application_search--filter-wrapper form .form-item-hakija{order:3}.application_search--filter-wrapper form .form-item-search{max-width:100%;order:4;width:50%}.application_search--filter-wrapper form .form-item-application-open{page-break-before:left;-moz-column-break-before:left;break-before:left;display:block;margin-top:var(--spacing-m);order:5;width:30%}.application_search--filter-wrapper form [data-drupal-selector=edit-reset]{background-color:rgba(0,0,0,0);border:0;color:var(--color-black)}.application_search--filter-wrapper .hds-koros svg pattern{color:var(--color-black-5)}.application_search--filter-wrapper .hero .hero__container{padding-bottom:var(--spacing-m)}.application_search--filters{padding-bottom:var(--spacing-layout-m);padding-top:0}.application_search--rows{display:flex;flex-direction:column;flex-wrap:wrap;justify-content:flex-start;width:100%}@media(min-width: 576px){.application_search--rows{flex-direction:row;margin-left:calc(-1*var(--spacing-m));width:calc(100% + var(--spacing-m))}}.application_search--row{box-shadow:1px 2px 4px 0 rgba(0,0,0,.5);margin-bottom:var(--spacing-l);position:relative;width:100%}@media(min-width: 576px){.application_search--row{margin-left:var(--spacing-m);width:calc(50% - var(--spacing-m))}}@media(min-width: 992px){.application_search--row{width:calc(33.3333333333% - var(--spacing-m))}}.application_search--row h3{font-size:var(--fontsize-heading-m);margin-top:var(--spacing-xs)}.application_search--row .views-field-search-api-excerpt{height:auto;overflow:auto;word-break:normal}.application_search--row .views-field{padding:var(--spacing-xs) var(--spacing-m)}.application_search--row .views-field-field-target-group{padding:0}.application_search--row .views-field-field-avustuslaji{padding:var(--spacing-xs) var(--spacing-m) var(--spacing-layout-m) var(--spacing-m)}.application_search--row .views-field-field-avustuslaji .tag_avustuslaji{background:var(--color-black);border-radius:var(--spacing-m);color:var(--color-white);display:inline-block;margin-bottom:var(--spacing-2-xs);padding:var(--spacing-3-xs) var(--spacing-xs)}.application_search--row .views-field-field-application-period .field-content{align-items:center;display:flex;gap:var(--spacing-s);position:relative}.application_search--row .views-field-field-application-period .field-content span{display:block}.application_search--row .tag_target_group{background:var(--color-black-20);color:var(--color-black);font-size:var(--fontsize-body-s);font-weight:bold;padding:var(--spacing-m);text-align:center;text-transform:uppercase;width:100%}.application_search--row .tag_target_group_12{background:var(--color-brick-medium-light)}.application_search--row .tag_target_group_20{background:var(--color-copper)}.application_search--row .tag_target_group_21{background:var(--color-metro-medium-light)}.application_search--row .tag_target_group_22{background:var(--color-suomenlinna-medium-light)}.application_search--row .tag_target_group_23{background:var(--color-engel)}.application_search--row .tag_target_group_24{background:var(--color-bus-medium-light)}.application_search--row .tag_target_group_25{background:var(--color-coat-of-arms-medium-light)}.application_search--row .tag_target_group_26{background:var(--color-gold-medium-light)}.application_search--row .tag_target_group_27{background:var(--color-tram-medium-light)}.application_search--row .tag_target_group_28{background:var(--color-summer-light)}.application_search--row .tag_target_group_29{background:var(--color-fog)}.application_search--row .tag_target_group_30{background:var(--color-copper-light)}.application_search--row .tag_target_group_31{background:var(--color-gold)}.view-ukk .view-filters{display:none}.view-ukk .ukk_categories{display:block;margin:var(--spacing-xl) 0;padding:0}.view-ukk .ukk_categories li{display:inline-block;list-style:none;margin:var(--spacing-m) var(--spacing-s) 0 0;padding:0}.view-ukk .hero .hero__text-content{max-width:100%}.view-ukk #edit-field-category-target-id{display:flex}.view-ukk #edit-field-category-target-id .hds-radio-button:first-of-type{margin-top:var(--spacing-2-xs)}.view-ukk #edit-field-category-target-id .hds-radio-button .hds-radio-button__input:checked+.hds-radio-button__label{background:var(--color-black);border-radius:var(--spacing-m);color:var(--color-white);padding:var(--spacing-2-xs) var(--spacing-s)}.view-ukk #edit-field-category-target-id .hds-radio-button__label{padding:var(--spacing-2-xs) var(--spacing-s)}.view-ukk #edit-field-category-target-id .hds-radio-button__label::before,.view-ukk #edit-field-category-target-id .hds-radio-button__label::after{display:none}.view-ukk .views-exposed-form fieldset{margin-bottom:0}.view-ukk .views-exposed-form .form-submit{margin-bottom:var(--spacing-l)}.view-ukk .category{background:var(--color-black);border-radius:var(--spacing-m);color:var(--color-white);display:inline-block;padding:var(--spacing-2-xs) var(--spacing-s);text-decoration:none}.view-ukk .category-unselected{background:var(--color-black-20);color:var(--color-black)}.page--select-applicant-role{background-color:var(--color-black-5)}.page--select-applicant-role body{background-color:var(--color-black-5)}.page--select-applicant-role .layout-main-wrapper{background-color:var(--color-black-5)}.page--select-applicant-role .main-content{margin-top:var(--spacing-l)}.page--select-applicant-role h1{margin-top:var(--spacing-l)}.page--select-applicant-role p{margin-bottom:var(--spacing-m)}.node--type-service .errand-service__channels .service-channel__links a[href^="https://avustukset.hel.fi"]{display:none}.node--type-service .service-channel__info p:first-of-type{margin-top:0}.node--type-service .service-channel--mail{display:none}#block-servicepageauthblock-2,#block-servicepageanonblock-2,#block-grantspreviewlink-2{display:none}@media(max-width: 767.9px){#block-servicepageauthblock-2,#block-servicepageanonblock-2,#block-grantspreviewlink-2{display:block;margin:var(--spacing-s)}}@media(max-width: 991.9px){#block-servicepageauthblock-2,#block-servicepageanonblock-2,#block-grantspreviewlink-2{display:block;margin:var(--spacing-l)}}#block-servicepageauthblock-2>.grants-service-page-block>*,#block-servicepageanonblock-2>.grants-service-page-block>*,#block-grantspreviewlink-2>.grants-service-page-block>*{margin:var(--spacing-2-xs) 0 var(--spacing-2-xs) var(--spacing-2-xs)}@media(max-width: 991.9px){#block-servicepageauthblock-2 .node--type-service a.hds-button[href*=uusi-hakemus],#block-servicepageanonblock-2 .node--type-service a.hds-button[href*=uusi-hakemus],#block-grantspreviewlink-2 .node--type-service a.hds-button[href*=uusi-hakemus]{display:none}}.user-login__text-container{background:var(--color-white);max-width:500px;padding:var(--spacing-m)}.user-login__text-container p:first-of-type{margin-top:0}.tabs{--tablist-border-color: var(--color-black-20);--tablist-border-size: 1px;--tab-color: var(--color-black);--tab-font-size: var(--fontsize-body-m);--tab-height: 48px;--tab-min-width: 148px;--tab-spacing: var(--spacing-s);--tab-active-border-size: 5px;--tab-active-border-color: var(--color-black);--tab-focus-outline-size: 2px;--tab-focus-outline-color: var(--color-coat-of-arms);display:flex;flex-flow:row wrap}.tabs--tablist{box-sizing:border-box;flex-grow:1;margin-bottom:-1px;overflow-x:hidden;position:relative;width:100%}.tabs--content-wrapper{width:100%}.tabs--content-wrapper .container{padding-top:1px}.tabs [role=tablist]{box-sizing:border-box;list-style:none;margin:0;padding:var(--tab-focus-outline-size) 0;white-space:nowrap}.tabs [role=tab]{background:rgba(0,0,0,0);border:0;cursor:pointer;display:inline-block;margin:0;outline:none;padding:0}.tabs [role=tab] span{align-items:center;box-sizing:border-box;color:var(--tab-color);display:flex;font-size:var(--tab-font-size);height:var(--tab-height);justify-content:center;margin:0;min-width:var(--tab-min-width);padding:0 var(--tab-spacing);pointer-events:none;position:relative}.tabs [role=tab] span::before{background:var(--tablist-border-color);bottom:0;content:"";height:var(--tablist-border-size);position:absolute;width:100%;z-index:100}.tabs [role=tab] span:hover::before,.tabs [role=tab] span:focus::before,.tabs [role=tab][aria-selected=true] span::before{background-color:var(--tab-active-border-color);bottom:0;content:"";height:var(--tab-active-border-size);position:absolute;width:100%;z-index:100}.tabs [role=tabpanel].is-hidden{display:none}.node--form-page .list-of-links{margin-left:0;margin-top:0;width:100%}@media(min-width: 768px){.node--form-page .list-of-links{margin-top:0}}.node--form-page .list-of-links>.container{padding-top:0}.node--form-page .list-of-links .list-of-links__title{border-top:2px solid var(--color-black-20);margin:0 0 var(--spacing-layout-xl)}@media(min-width: 576px){.node--form-page .list-of-links .list-of-links__container{width:calc(100% - var(--spacing-layout-xl))}}@media(min-width: 768px){.node--form-page .list-of-links .list-of-links__container{width:100%}}.node--form-page .list-of-links .list-of-links__content{height:auto;margin-top:0}@media(min-width: 768px){.node--form-page .list-of-links .list-of-links__content{display:grid;grid-template-columns:auto auto auto;margin:0 var(--spacing-m) 0 0}}.node--form-page .list-of-links .list-of-links__item{align-self:stretch;border-left:4px solid var(--color-copper);margin-right:-4px;padding-left:var(--spacing-m);padding-right:var(--spacing-m)}.list-of-links--without-image .list-of-links__item .list-of-links__item__desc{color:var(--color-black-90);font-size:var(--fontsize-body-m)}.list-of-links--without-image .list-of-links__item .list-of-links__item__title{font-size:var(--fontsize-heading-m)}.js-form-type-webform-custom-composite{--border-width: 2px;--outline-width: 3px;--input-height: 56px;--textarea-height: 149px;--icon-size: var(--spacing-m);--helper-color-default: var(--color-black-60);--helper-color-invalid: var(--color-error);--icon-color-invalid: var(--color-error);--input-background-default: var(--color-white);--input-background-disabled: var(--color-black-10);--input-border-color-default: var(--color-black-50);--input-border-color-hover: var(--color-black-90);--input-border-color-focus: var(--color-black-90);--input-border-color-invalid: var(--color-error);--input-border-color-disabled: var(--color-black-10);--input-color-default: var(--color-black-90);--input-color-disabled: var(--color-black-40);--label-color-default: var(--color-black-90);--label-color-invalid: var(--color-black-90);--placeholder-color: var(--color-black-60);--focus-outline-color: var(--color-coat-of-arms)}.js-form-type-webform-custom-composite a.tabledrag-handle .handle{height:24px;width:24px}.js-form-type-webform-custom-composite input.form-number{background-color:var(--input-background-default);border:var(--border-width) solid var(--input-border-color-default);box-sizing:border-box;color:var(--input-color-default);font-size:1.125em;height:var(--input-height);line-height:normal;padding:0 var(--spacing-s);width:100%}.js-form-type-webform-custom-composite table{border-collapse:collapse;border-spacing:0;margin-bottom:var(--spacing-m)}.js-form-type-webform-custom-composite table td{border-bottom:2px var(--color-black-20) solid;border-top:2px var(--color-black-20) solid;padding-left:var(--spacing-m);padding-top:var(--spacing-m)}@media(max-width: 768px){.js-form-type-webform-custom-composite table td{border:2px var(--color-black-20) solid}}.js-form-type-webform-custom-composite table td.webform-multiple-table--operations{border-bottom:2px var(--color-black-20) solid;border-top:2px var(--color-black-20) solid;padding-left:var(--spacing-m);padding-top:var(--spacing-m)}@media(max-width: 768px){.js-form-type-webform-custom-composite table td.webform-multiple-table--operations{background:var(--color-white);border:2px var(--color-black-20) solid;padding:10px 5px 5px}}.js-form-type-webform-custom-composite table td:first-child{border-left:2px var(--color-black-20) solid}.js-form-type-webform-custom-composite table td:last-child{border-right:2px var(--color-black-20) solid;padding:var(--spacing-s)}@media(min-width: 768px){.js-form-type-webform-custom-composite table td:last-child{min-width:400px;padding:var(--spacing-s) var(--spacing-m)}}div.ui-widget.ui-datepicker{padding:var(--spacing-2-xs)}div.ui-widget.ui-datepicker .ui-datepicker-header span.ui-icon{margin-left:-8px;margin-top:-8px;-webkit-mask-image:none;mask-image:none;transform:none}div.ui-widget.ui-datepicker .ui-datepicker-calendar{border:0;display:table;margin:0;max-width:100%}div.ui-widget.ui-datepicker .ui-datepicker-calendar th,div.ui-widget.ui-datepicker .ui-datepicker-calendar td{min-width:auto}details.accordion{--background-color: var(--color-white);--border-color: var(--color-black-60);--padding-horizontal: var(--spacing-m);--padding-vertical: var(--spacing-m);--header-font-color: var(--color-black-90);--header-font-size: var(--fontsize-heading-m);--header-line-height: var(--lineheight-m);--button-size: 28px;--header-focus-outline-color: var(--color-coat-of-arms);--content-font-color: var(--color-black-90);--content-font-size: var(--fontsize-body-m);--content-line-height: var(--lineheight-l);border-bottom:1px solid var(--border-color)}details.accordion .accordion_content{padding-bottom:var(--padding-vertical)}details.accordion[open] .accordion_heading_container span.hel-icon{transform:rotate(180deg)}.accordion_header{align-items:center;color:var(--header-font-color);display:flex;font-size:var(--header-font-size);font-weight:700;justify-content:space-between;line-height:var(--header-line-height);list-style:none;padding-bottom:var(--padding-vertical);padding-top:var(--padding-vertical);position:relative}.accordion_heading_container{align-items:center;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:auto calc(var(--button-size));width:100%}.accordion_heading_container span.hel-icon{height:var(--button-size) !important;width:var(--button-size) !important}.accordion_heading_container span.hel-icon{border:2px solid rgba(0,0,0,0);box-sizing:border-box;margin:auto}.webform-element-description{--helper-color-default: var(--color-black-60);color:var(--helper-color-default);display:block;font-size:var(--fontsize-body-m);line-height:var(--lineheight-l);margin-top:var(--spacing-s)}.webform-element-help{background:var(--color-white);border:2px solid rgba(0,0,0,0);color:var(--hdbt-color-black);height:var(--spacing-layout-xs);margin-right:4px;padding:0;position:absolute;right:0;top:-3px;width:var(--spacing-layout-xs);z-index:10}div[data-tippy-root]{width:350px}.tippy-box{background-color:var(--color-black-5);border-left:var(--spacing-xs) var(--color-coat-of-arms) solid;border-radius:0;color:var(--hdbt-color-black);padding:var(--spacing-s)}.tippy-box .webform-element-help--content{white-space:normal}.tippy-box .webform-element-help--content a:link,.tippy-box .webform-element-help--content a:visited,.tippy-box .webform-element-help--content a:active,.tippy-box .webform-element-help--content a:hover{color:var(--hdbt-color-black)}.tippy-arrow{color:var(--color-black-5)}.webform-element-help--wrapper-short{max-width:-moz-fit-content;max-width:fit-content}.webform-element-help-container--title{--border-width: 2px;--outline-width: 3px;--input-height: 56px;--textarea-height: 149px;--icon-size: var(--spacing-m)}fieldset.grants-fieldset{padding:var(--spacing-s)}@media(min-width: 768px){fieldset.grants-fieldset{min-width:400px;padding:var(--spacing-s) var(--spacing-m)}}fieldset.grants-fieldset .fieldset-wrapper{align-items:flex-end;display:flex;flex-wrap:wrap;gap:0 var(--spacing-layout-2-xs)}fieldset.grants-fieldset .fieldset-wrapper .form-item--error-message{grid-column:1}fieldset.grants-fieldset-short{max-width:var(--webform-element-width--input-large)}fieldset.grants-fieldset-medium{max-width:var(--webform-element-width--fieldset)}fieldset.grants-fieldset-medium .fieldset-wrapper{justify-content:center}fieldset.premises-composite--wrapper.fieldgroup,fieldset.rented-premise-composite--wrapper.fieldgroup,.community_officials_wrapper fieldset.fieldgroup,fieldset.grants-budget-other-cost--wrapper.fieldgroup,fieldset.grants-budget-other-income--wrapper.fieldgroup,fieldset.place-of-operation-composite--wrapper.fieldgroup,fieldset.rent-income-composite--wrapper.fieldgroup,fieldset.rent-cost-composite--wrapper.fieldgroup,fieldset.club-section-composite--wrapper.fieldgroup,fieldset.members-composite--wrapper.fieldgroup,fieldset.orienteering-map-composite--wrapper,.form-item-muu-liite fieldset.grants-attachments--wrapper.fieldgroup{border-width:2px;margin-top:var(--spacing-layout-2-xs);max-width:100%;padding:var(--spacing-s);width:100%}@media(min-width: 768px){fieldset.premises-composite--wrapper.fieldgroup,fieldset.rented-premise-composite--wrapper.fieldgroup,.community_officials_wrapper fieldset.fieldgroup,fieldset.grants-budget-other-cost--wrapper.fieldgroup,fieldset.grants-budget-other-income--wrapper.fieldgroup,fieldset.place-of-operation-composite--wrapper.fieldgroup,fieldset.rent-income-composite--wrapper.fieldgroup,fieldset.rent-cost-composite--wrapper.fieldgroup,fieldset.club-section-composite--wrapper.fieldgroup,fieldset.members-composite--wrapper.fieldgroup,fieldset.orienteering-map-composite--wrapper,.form-item-muu-liite fieldset.grants-attachments--wrapper.fieldgroup{min-width:400px;padding:var(--spacing-s) var(--spacing-m)}}fieldset.premises-composite--wrapper.fieldgroup legend>span.visually-hidden,fieldset.rented-premise-composite--wrapper.fieldgroup legend>span.visually-hidden,.community_officials_wrapper fieldset.fieldgroup legend>span.visually-hidden,fieldset.grants-budget-other-cost--wrapper.fieldgroup legend>span.visually-hidden,fieldset.grants-budget-other-income--wrapper.fieldgroup legend>span.visually-hidden,fieldset.place-of-operation-composite--wrapper.fieldgroup legend>span.visually-hidden,fieldset.rent-income-composite--wrapper.fieldgroup legend>span.visually-hidden,fieldset.rent-cost-composite--wrapper.fieldgroup legend>span.visually-hidden,fieldset.club-section-composite--wrapper.fieldgroup legend>span.visually-hidden,fieldset.members-composite--wrapper.fieldgroup legend>span.visually-hidden,fieldset.orienteering-map-composite--wrapper legend>span.visually-hidden,.form-item-muu-liite fieldset.grants-attachments--wrapper.fieldgroup legend>span.visually-hidden{background:#fff;clip-path:initial;clip:auto;clip:initial;height:auto;margin-left:calc(var(--spacing-2-xs)*-1);left:auto;overflow:visible;padding:0 var(--spacing-2-xs);top:-12px;width:-moz-max-content;width:max-content}fieldset.premises-composite--wrapper.fieldgroup legend>span.visually-hidden[\:has\(button.webform-element-help\)],fieldset.rented-premise-composite--wrapper.fieldgroup legend>span.visually-hidden[\:has\(button.webform-element-help\)],.community_officials_wrapper fieldset.fieldgroup legend>span.visually-hidden[\:has\(button.webform-element-help\)],fieldset.grants-budget-other-cost--wrapper.fieldgroup legend>span.visually-hidden[\:has\(button.webform-element-help\)],fieldset.grants-budget-other-income--wrapper.fieldgroup legend>span.visually-hidden[\:has\(button.webform-element-help\)],fieldset.place-of-operation-composite--wrapper.fieldgroup legend>span.visually-hidden[\:has\(button.webform-element-help\)],fieldset.rent-income-composite--wrapper.fieldgroup legend>span.visually-hidden[\:has\(button.webform-element-help\)],fieldset.rent-cost-composite--wrapper.fieldgroup legend>span.visually-hidden[\:has\(button.webform-element-help\)],fieldset.club-section-composite--wrapper.fieldgroup legend>span.visually-hidden[\:has\(button.webform-element-help\)],fieldset.members-composite--wrapper.fieldgroup legend>span.visually-hidden[\:has\(button.webform-element-help\)],fieldset.orienteering-map-composite--wrapper legend>span.visually-hidden[\:has\(button.webform-element-help\)],.form-item-muu-liite fieldset.grants-attachments--wrapper.fieldgroup legend>span.visually-hidden[\:has\(button.webform-element-help\)]{padding-right:var(--spacing-xl)}fieldset.premises-composite--wrapper.fieldgroup legend>span.visually-hidden:has(button.webform-element-help),fieldset.rented-premise-composite--wrapper.fieldgroup legend>span.visually-hidden:has(button.webform-element-help),.community_officials_wrapper fieldset.fieldgroup legend>span.visually-hidden:has(button.webform-element-help),fieldset.grants-budget-other-cost--wrapper.fieldgroup legend>span.visually-hidden:has(button.webform-element-help),fieldset.grants-budget-other-income--wrapper.fieldgroup legend>span.visually-hidden:has(button.webform-element-help),fieldset.place-of-operation-composite--wrapper.fieldgroup legend>span.visually-hidden:has(button.webform-element-help),fieldset.rent-income-composite--wrapper.fieldgroup legend>span.visually-hidden:has(button.webform-element-help),fieldset.rent-cost-composite--wrapper.fieldgroup legend>span.visually-hidden:has(button.webform-element-help),fieldset.club-section-composite--wrapper.fieldgroup legend>span.visually-hidden:has(button.webform-element-help),fieldset.members-composite--wrapper.fieldgroup legend>span.visually-hidden:has(button.webform-element-help),fieldset.orienteering-map-composite--wrapper legend>span.visually-hidden:has(button.webform-element-help),.form-item-muu-liite fieldset.grants-attachments--wrapper.fieldgroup legend>span.visually-hidden:has(button.webform-element-help){padding-right:var(--spacing-xl)}@media(min-width: 768px){fieldset.premises-composite--wrapper.fieldgroup legend>span.visually-hidden,fieldset.rented-premise-composite--wrapper.fieldgroup legend>span.visually-hidden,.community_officials_wrapper fieldset.fieldgroup legend>span.visually-hidden,fieldset.grants-budget-other-cost--wrapper.fieldgroup legend>span.visually-hidden,fieldset.grants-budget-other-income--wrapper.fieldgroup legend>span.visually-hidden,fieldset.place-of-operation-composite--wrapper.fieldgroup legend>span.visually-hidden,fieldset.rent-income-composite--wrapper.fieldgroup legend>span.visually-hidden,fieldset.rent-cost-composite--wrapper.fieldgroup legend>span.visually-hidden,fieldset.club-section-composite--wrapper.fieldgroup legend>span.visually-hidden,fieldset.members-composite--wrapper.fieldgroup legend>span.visually-hidden,fieldset.orienteering-map-composite--wrapper legend>span.visually-hidden,.form-item-muu-liite fieldset.grants-attachments--wrapper.fieldgroup legend>span.visually-hidden{left:auto}}.form-item-muu-liite fieldset.grants-attachments--wrapper{margin-bottom:0}fieldset.webform-composite-hidden-title .fieldset-wrapper>.form-item:last-child{margin-bottom:var(--spacing-layout-xs)}.js-form-type-webform-table table{width:100%}.js-form-type-webform-table th{text-align:left}.js-form-type-webform-table td{vertical-align:middle}.js-form-type-webform-table td>div{height:auto;margin-bottom:0}.js-form-type-webform-table td>div label{margin:-1px}.js-form-type-webform-table .hds-text-input label{border:0;clip:rect(0, 0, 0, 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.form-item{margin-bottom:var(--spacing-layout-xs);position:relative}.form-item input[type=date],.form-item input[type=time]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--input-background-default);border:var(--border-width) solid var(--input-border-color-default);box-sizing:border-box;color:var(--input-color-default);font-size:1.125em;height:var(--input-height);line-height:normal;padding:0 var(--spacing-s);width:100%;will-change:transform,box-shadow}.webform-section{padding-bottom:var(--spacing-layout-2-xs)}.webform-section table:first-of-type{margin-top:0}.form-type-webform-multiple .webform-multiple-table table{max-width:100%;width:100%}@media(min-width: 768px){.form-type-webform-multiple .webform-multiple-table table{width:auto}}.hds-text-input{max-width:-moz-fit-content;max-width:fit-content;width:100%}.webform-section-grid-wrapper{display:grid;grid-template-columns:1fr}@media(min-width: 768px){.webform-section-grid-wrapper{grid-row-gap:var(--spacing-xl);grid-template-columns:1fr 2fr}}.webform-section-grid-wrapper>dt.webform-section-title{color:var(--hdbt-color-black);display:block;flex-shrink:0;font-size:var(--fontsize-heading-s);font-weight:500;-webkit-hyphens:none;hyphens:none;line-height:1;margin-bottom:var(--spacing-3-xs);margin-top:0;padding-right:var(--spacing-2-xl);width:100%}.webform-section-grid-wrapper .webform-section-wrapper{margin-bottom:var(--spacing-layout-xs);padding-left:var(--spacing-2-xl)}@media(min-width: 768px){.webform-section-grid-wrapper .webform-section-wrapper{margin-bottom:0;padding-left:0}}fieldset input[type=button]{margin-top:var(--spacing-m)}.webform-section-wrapper>.description{margin-bottom:var(--spacing-layout-xs)}.grants__page-header{margin-bottom:var(--spacing-layout-l);font-size:2rem}@media(min-width: 768px){.grants__page-header{font-size:3rem}}.webform-section-flex-wrapper{display:flex;flex-flow:row wrap;width:100%;justify-content:left}@media(min-width: 768px){.webform-section-flex-wrapper{flex-flow:row nowrap}.webform-section-flex-wrapper h3+*>*:first-child>label:first-of-type,.webform-section-flex-wrapper h3+*>*:first-child>*:first-child>label:first-of-type{margin-top:var(--spacing-2-xs);padding-top:0}.webform-section-flex-wrapper h3+*>*:first-child>p{line-height:normal;line-height:initial;margin-top:var(--spacing-2-xs)}.webform-section-flex-wrapper h3+*>*:first-child>h4{line-height:normal;line-height:initial;margin-top:var(--spacing-m)}}.webform-section-flex-wrapper .webform-element-help-container--title{position:relative}.webform-section-flex-wrapper>h2.webform-section-title,.webform-section-flex-wrapper>h3.webform-section-title,.webform-section-flex-wrapper>h4.webform-section-title,.webform-section-flex-wrapper>dt.webform-section-title{color:var(--hdbt-color-black);display:block;flex-shrink:0;font-size:24px;font-weight:500;-webkit-hyphens:manual;hyphens:manual;margin-bottom:var(--spacing-3-xs);margin-top:0;padding-right:var(--spacing-2-xl);width:100%}@media(min-width: 768px){.webform-section-flex-wrapper>h2.webform-section-title,.webform-section-flex-wrapper>h3.webform-section-title,.webform-section-flex-wrapper>h4.webform-section-title,.webform-section-flex-wrapper>dt.webform-section-title{font-size:32px;max-width:350px;width:30%}}.webform-section-flex-wrapper h4{font-size:var(--fontsize-heading-m);line-height:38px}.webform-section-flex-wrapper>.webform-section-wrapper{--line-height: 1.5;font-size:var(--fontsize-body-m);width:100%}@media(min-width: 768px){.webform-section-flex-wrapper>.webform-section-wrapper{padding-left:var(--spacing-2-xl)}}.webform-section-flex-wrapper .form-required::after{content:"*";display:inline}.webform-section-flex-wrapper legend,.webform-section-flex-wrapper label{display:block;font-size:var(--fontsize-body-m);font-weight:500;margin-bottom:var(--spacing-2-xs);max-width:-moz-fit-content;max-width:fit-content;position:relative}.webform-section-flex-wrapper legend{padding:0 var(--spacing-2-xs);margin-left:calc(var(--spacing-2-xs)*-1);left:auto}.webform-section-flex-wrapper legend[\:has\(button.webform-element-help\)],.webform-section-flex-wrapper label[\:has\(button.webform-element-help\)]{padding-right:var(--spacing-xl)}.webform-section-flex-wrapper legend:has(button.webform-element-help),.webform-section-flex-wrapper label:has(button.webform-element-help){padding-right:var(--spacing-xl)}.webform-section-flex-wrapper fieldset legend>span[\:has\(button.webform-element-help\)]{padding-right:var(--spacing-xl)}.webform-section-flex-wrapper fieldset legend>span:has(button.webform-element-help){padding-right:var(--spacing-xl)}.webform-section-flex-wrapper fieldset legend>span.fieldset-legend[\:has\(button.webform-element-help\)],.webform-section-flex-wrapper fieldset.fieldgroup legend>span[\:has\(button.webform-element-help\)]:not(.visually-hidden.fieldset-legend){padding-right:var(--spacing-l)}.webform-section-flex-wrapper fieldset legend>span.fieldset-legend:has(button.webform-element-help),.webform-section-flex-wrapper fieldset.fieldgroup legend>span:has(button.webform-element-help):not(.visually-hidden.fieldset-legend){padding-right:var(--spacing-l)}.webform-section-flex-wrapper fieldset legend>span.fieldset-legend[\:has\(button.webform-element-help\)],.webform-section-flex-wrapper fieldset.fieldgroup legend span.fieldset-legend:not(.visually-hidden)[\:has\(button.webform-element-help\)]{padding-right:0}.webform-section-flex-wrapper fieldset legend>span.fieldset-legend:has(button.webform-element-help),.webform-section-flex-wrapper fieldset.fieldgroup legend span.fieldset-legend:not(.visually-hidden):has(button.webform-element-help){padding-right:0}.webform-section-flex-wrapper label.hds-radio-button__label{font-weight:normal}.webform-section-flex-wrapper .checkboxes--wrapper label{font-weight:normal}.webform-section-flex-wrapper .js-form-type-textarea .hds-text-input__input-wrapper{display:block}.webform-section-flex-wrapper .has-error,.webform-section-flex-wrapper .grant-applications--select-wrapper[\:has\(.has-error\)]{border-color:var(--color-error)}.webform-section-flex-wrapper .has-error,.webform-section-flex-wrapper .grant-applications--select-wrapper:has(.has-error){border-color:var(--color-error)}form .hds-text-input__input-wrapper,.hds-text-input__input-wrapper{flex-flow:row wrap}form .hds-text-input__input-wrapper .text-count-wrapper,.hds-text-input__input-wrapper .text-count-wrapper{flex-basis:100%}form .hds-text-input__input-wrapper input.webform--small,form .hds-text-input__input-wrapper textarea.webform--small,.hds-text-input__input-wrapper input.webform--small,.hds-text-input__input-wrapper textarea.webform--small{max-width:var(--webform-element-width--input-small);min-width:var(--webform-element-width--input-small);width:100%}form .hds-text-input__input-wrapper input.webform--medium,form .hds-text-input__input-wrapper textarea.webform--medium,.hds-text-input__input-wrapper input.webform--medium,.hds-text-input__input-wrapper textarea.webform--medium{max-width:var(--webform-element-width--input-medium);min-width:var(--webform-element-width--input-small);width:100%}form .hds-text-input__input-wrapper input.webform--large,form .hds-text-input__input-wrapper textarea.webform--large,.hds-text-input__input-wrapper input.webform--large,.hds-text-input__input-wrapper textarea.webform--large{max-width:var(--webform-element-width--input-large);min-width:var(--webform-element-width--input-small);width:100%}.webform--small div.grant-applications--select-wrapper{max-width:var(--webform-element-width--input-small);min-width:var(--webform-element-width--input-small);width:100%}.webform--medium div.grant-applications--select-wrapper{max-width:var(--webform-element-width--input-medium);min-width:var(--webform-element-width--input-small);width:100%}.webform--large div.grant-applications--select-wrapper{max-width:var(--webform-element-width--input-medium);min-width:var(--webform-element-width--input-small);width:100%}form .hds-checkbox{display:block}form .hds-checkbox label.hds-checkbox__label::after{content:""}fieldset.webform-composite-hidden-title{margin-bottom:var(--spacing-layout-2-xs);margin-top:0}.form-item-bank-account-account-number-select,.form-item-community-address-community-address-select{margin-bottom:0}.grants-profile-grants-profile table thead th h4{margin:0}.hakemus-form-page .main-content{margin-top:0}.hakemus-form-page h1{-webkit-hyphens:auto;hyphens:auto;word-break:break-word}.hakemus-form-errors ul li{list-style-type:none}.community_officials_wrapper .webform-readonly{margin:0}.community_officials_wrapper .hds-text-input__input-wrapper{margin:0}.community_officials_wrapper input[readonly=readonly]{height:1.25rem;margin:0;max-width:330px}.form-item--error-message{color:var(--color-error);margin-bottom:var(--spacing-layout-s);margin-top:var(--spacing-layout-2-xs)}fieldset .form-item--error-message,.community_officials_wrapper .form-item--error-message{margin-bottom:0}.form-item--error-message::before{--icon-size: 1.6rem;background-color:#000;background-size:contain;content:"";display:inline-block;height:calc(var(--line-height) * 1em);height:var(--icon-size, calc(var(--line-height) * 1em));-webkit-mask-image:var(--hel-icon--alert-circle-fill);mask-image:var(--hel-icon--alert-circle-fill);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);-webkit-mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));vertical-align:bottom;width:calc(var(--line-height) * 1em);width:var(--icon-size, calc(var(--line-height) * 1em));background-color:var(--color-error);content:" ";display:inline-block}input[type=radio]+label.form-required::after{content:""}.hds-radio-button:last-of-type,.hds-checkbox:last-of-type{margin-bottom:0}.hds-radio-button:last-of-type>label,.hds-checkbox:last-of-type>label{margin-bottom:0}@media(min-width: 992px){.place-of-operation-composite--wrapper.fieldgroup .hds-text-input,.club-section-composite--wrapper.fieldgroup .hds-text-input{max-width:100%}}.place-of-operation-composite--wrapper.fieldgroup .hds-radio-button .hds-radio-button__label,.club-section-composite--wrapper.fieldgroup .hds-radio-button .hds-radio-button__label{line-height:var(--lineheight-m) !important}@media(min-width: 992px){.place-of-operation-group__location,.place-of-operation-group__students,.place-of-operation-group__groups,.place-of-operation-group__personnel,.place-of-operation-group__rent,.place-of-operation-group__time{display:flex;justify-content:space-between}}@media(min-width: 992px){.place-of-operation-group__location--address,.place-of-operation-group__students--address,.place-of-operation-group__groups--address,.place-of-operation-group__personnel--address,.place-of-operation-group__rent--address,.place-of-operation-group__time--address{margin-top:0 !important}.place-of-operation-group__location--address,.place-of-operation-group__students--address,.place-of-operation-group__groups--address,.place-of-operation-group__personnel--address,.place-of-operation-group__rent--address,.place-of-operation-group__time--address{width:65%}}@media(min-width: 992px){.place-of-operation-group__location--post-code,.place-of-operation-group__students--post-code,.place-of-operation-group__groups--post-code,.place-of-operation-group__personnel--post-code,.place-of-operation-group__rent--post-code,.place-of-operation-group__time--post-code{margin-top:0 !important}.place-of-operation-group__location--post-code,.place-of-operation-group__students--post-code,.place-of-operation-group__groups--post-code,.place-of-operation-group__personnel--post-code,.place-of-operation-group__rent--post-code,.place-of-operation-group__time--post-code{width:30%}}@media(min-width: 992px){.place-of-operation-group__location--student-count,.place-of-operation-group__location--special-student-count,.place-of-operation-group__location--group-count,.place-of-operation-group__location--special-group-count,.place-of-operation-group__location--personnel-count,.place-of-operation-group__location--rent-amount,.place-of-operation-group__location--time-start,.place-of-operation-group__location--time-end,.place-of-operation-group__students--student-count,.place-of-operation-group__students--special-student-count,.place-of-operation-group__students--group-count,.place-of-operation-group__students--special-group-count,.place-of-operation-group__students--personnel-count,.place-of-operation-group__students--rent-amount,.place-of-operation-group__students--time-start,.place-of-operation-group__students--time-end,.place-of-operation-group__groups--student-count,.place-of-operation-group__groups--special-student-count,.place-of-operation-group__groups--group-count,.place-of-operation-group__groups--special-group-count,.place-of-operation-group__groups--personnel-count,.place-of-operation-group__groups--rent-amount,.place-of-operation-group__groups--time-start,.place-of-operation-group__groups--time-end,.place-of-operation-group__personnel--student-count,.place-of-operation-group__personnel--special-student-count,.place-of-operation-group__personnel--group-count,.place-of-operation-group__personnel--special-group-count,.place-of-operation-group__personnel--personnel-count,.place-of-operation-group__personnel--rent-amount,.place-of-operation-group__personnel--time-start,.place-of-operation-group__personnel--time-end,.place-of-operation-group__rent--student-count,.place-of-operation-group__rent--special-student-count,.place-of-operation-group__rent--group-count,.place-of-operation-group__rent--special-group-count,.place-of-operation-group__rent--personnel-count,.place-of-operation-group__rent--rent-amount,.place-of-operation-group__rent--time-start,.place-of-operation-group__rent--time-end,.place-of-operation-group__time--student-count,.place-of-operation-group__time--special-student-count,.place-of-operation-group__time--group-count,.place-of-operation-group__time--special-group-count,.place-of-operation-group__time--personnel-count,.place-of-operation-group__time--rent-amount,.place-of-operation-group__time--time-start,.place-of-operation-group__time--time-end{margin-top:0 !important}.place-of-operation-group__location--student-count,.place-of-operation-group__location--special-student-count,.place-of-operation-group__location--group-count,.place-of-operation-group__location--special-group-count,.place-of-operation-group__location--personnel-count,.place-of-operation-group__location--rent-amount,.place-of-operation-group__location--time-start,.place-of-operation-group__location--time-end,.place-of-operation-group__students--student-count,.place-of-operation-group__students--special-student-count,.place-of-operation-group__students--group-count,.place-of-operation-group__students--special-group-count,.place-of-operation-group__students--personnel-count,.place-of-operation-group__students--rent-amount,.place-of-operation-group__students--time-start,.place-of-operation-group__students--time-end,.place-of-operation-group__groups--student-count,.place-of-operation-group__groups--special-student-count,.place-of-operation-group__groups--group-count,.place-of-operation-group__groups--special-group-count,.place-of-operation-group__groups--personnel-count,.place-of-operation-group__groups--rent-amount,.place-of-operation-group__groups--time-start,.place-of-operation-group__groups--time-end,.place-of-operation-group__personnel--student-count,.place-of-operation-group__personnel--special-student-count,.place-of-operation-group__personnel--group-count,.place-of-operation-group__personnel--special-group-count,.place-of-operation-group__personnel--personnel-count,.place-of-operation-group__personnel--rent-amount,.place-of-operation-group__personnel--time-start,.place-of-operation-group__personnel--time-end,.place-of-operation-group__rent--student-count,.place-of-operation-group__rent--special-student-count,.place-of-operation-group__rent--group-count,.place-of-operation-group__rent--special-group-count,.place-of-operation-group__rent--personnel-count,.place-of-operation-group__rent--rent-amount,.place-of-operation-group__rent--time-start,.place-of-operation-group__rent--time-end,.place-of-operation-group__time--student-count,.place-of-operation-group__time--special-student-count,.place-of-operation-group__time--group-count,.place-of-operation-group__time--special-group-count,.place-of-operation-group__time--personnel-count,.place-of-operation-group__time--rent-amount,.place-of-operation-group__time--time-start,.place-of-operation-group__time--time-end{width:47.5%}}@media(min-width: 768px){.club-section__participants{display:flex;gap:var(--spacing-l);justify-content:space-between}}.club-section__participants input.form-text.hds-text-input__input{max-width:100%;width:100%}.club-section__totalhours input.form-text.hds-text-input__input{max-width:100%;width:100%}.hel-icon--size-xs{--icon-size: var(--spacing-layout-2-xs)}.hel-icon--size-s{--icon-size: var(--spacing-layout-xs)}.hel-icon--size-m{--icon-size: var(--spacing-layout-s)}.hel-icon--size-l{--icon-size: var(--spacing-layout-m)}.hel-icon--size-xl{--icon-size: var(--spacing-layout-l)}.hds-text-input__input-wrapper[focus-within][\:has\(input\[readonly\]\)]{margin-right:var(--spacing-2-xs);outline:2px var(--color-black) solid;outline-offset:2px}.hds-text-input__input-wrapper[focus-within]:has(input[readonly]){margin-right:var(--spacing-2-xs);outline:2px var(--color-black) solid;outline-offset:2px}.hds-text-input__input-wrapper[focus-within][\:has\(input\[readonly\]\)]{margin-right:var(--spacing-2-xs);outline:2px var(--color-black) solid;outline-offset:2px}.hds-text-input__input-wrapper:focus-within[\:has\(input\[readonly\]\)]{margin-right:var(--spacing-2-xs);outline:2px var(--color-black) solid;outline-offset:2px}.hds-text-input__input-wrapper:focus-within:has(input[readonly]){margin-right:var(--spacing-2-xs);outline:2px var(--color-black) solid;outline-offset:2px}.hds-text-input__input-wrapper[focus-within][\:has\(input\[readonly\]\)] input[readonly]{width:calc(100% - var(--spacing-2-xs))}.hds-text-input__input-wrapper[focus-within]:has(input[readonly]) input[readonly]{width:calc(100% - var(--spacing-2-xs))}.hds-text-input__input-wrapper[focus-within][\:has\(input\[readonly\]\)] input[readonly]{width:calc(100% - var(--spacing-2-xs))}.hds-text-input__input-wrapper:focus-within[\:has\(input\[readonly\]\)] input[readonly]{width:calc(100% - var(--spacing-2-xs))}.hds-text-input__input-wrapper:focus-within:has(input[readonly]) input[readonly]{width:calc(100% - var(--spacing-2-xs))}.form-item-application-number,.form-item-status,.form-item-applicant-type{display:none}.grants-handler__completion{background:var(--color-bus-light);padding:var(--spacing-layout-l) var(--spacing-layout-2-xl)}.grants-handler__completion h2{margin-top:var(--spacing-l)}.grants-handler__completion h3{font-size:1rem;font-weight:bold;margin-top:var(--spacing-m)}.grants-handler__completion__info-row{display:flex;flex-flow:row wrap;gap:var(--spacing-m);justify-content:flex-start;margin-bottom:var(--spacing-m)}.grants-handler__completion__button-row{display:flex;flex-flow:row wrap;gap:var(--spacing-m);justify-content:flex-start}.grants-handler__completion__longtext{margin:var(--spacing-l) 0}.hds-notification.notification-margin-bottom{margin-bottom:var(--spacing-layout-m)}.hds-notification__label{align-items:center}.hds-checkbox__input label{font-weight:normal}fieldset.grants-attachments--wrapper{margin-bottom:var(--spacing-layout-m)}fieldset.grants-attachments--wrapper legend{margin-bottom:var(--spacing-2-xs)}fieldset.grants-attachments--wrapper .form-item--error-message{width:100%}fieldset.grants-attachments--wrapper .js-form-type-managed-file{margin-bottom:0}.grants-applications-managed_file{position:relative}.grants-applications-managed_file label.hds-button--secondary:not(:disabled):not(.eu-cookie-compliance-default-button):not(.eu-cookie-compliance-save-preferences-button){left:0;position:relative}.grants-applications-managed_file label.hds-button--secondary:not(:disabled):not(.eu-cookie-compliance-default-button):not(.eu-cookie-compliance-save-preferences-button)[\:has\(input\:disabled\)]{background-color:transparent;background-color:var(--background-color-disabled, transparent);border-color:transparent;border-color:var(--border-color-disabled, transparent);color:var(--color-disabled);cursor:not-allowed}.grants-applications-managed_file label.hds-button--secondary:not(:disabled):not(.eu-cookie-compliance-default-button):not(.eu-cookie-compliance-save-preferences-button)[\:has\(input\:disabled\)]{background-color:transparent;background-color:var(--background-color-disabled, transparent);border-color:transparent;border-color:var(--border-color-disabled, transparent);color:var(--color-disabled);cursor:not-allowed}.grants-applications-managed_file label.hds-button--secondary:not(:disabled):not(.eu-cookie-compliance-default-button):not(.eu-cookie-compliance-save-preferences-button):has(input:disabled){background-color:transparent;background-color:var(--background-color-disabled, transparent);border-color:transparent;border-color:var(--border-color-disabled, transparent);color:var(--color-disabled);cursor:not-allowed}.grants-applications-managed_file label.hds-button--secondary:not(:disabled):not(.eu-cookie-compliance-default-button):not(.eu-cookie-compliance-save-preferences-button)[focus-within]{background:var(--color-black);border-color:var(--color-white);color:var(--color-white);outline:2px var(--color-black) solid}.grants-applications-managed_file label.hds-button--secondary:not(:disabled):not(.eu-cookie-compliance-default-button):not(.eu-cookie-compliance-save-preferences-button):focus-within{background:var(--color-black);border-color:var(--color-white);color:var(--color-white);outline:2px var(--color-black) solid}.grants-applications-managed_file input[type=file]{opacity:0;position:absolute}.form-managed-file{display:flex;flex-wrap:wrap;white-space:inherit}.form-managed-file>span{background-color:var(--color-info-light);border-bottom:2px dotted var(--color-coat-of-arms);display:inline-block;padding:var(--spacing-s) var(--spacing-2-xs)}.form-managed-file>.file-upload-js-error{flex-basis:100%}.grants-applications-managed_file label.hds-button{display:flex}.grants-attachments--wrapper .webform-readonly{display:none}.webform-multiple-table table{border-collapse:collapse;border:0px var(--color-white) solid;margin-bottom:var(--spacing-2-xs);max-width:-moz-fit-content;max-width:fit-content}.webform-multiple-table .webform-multiple-table--operations-two{min-width:60px}.webform-multiple-table tbody tr,.webform-multiple-table thead tr{align-items:center;justify-content:space-between;width:100%}.webform-multiple-table td,.webform-multiple-table th{max-width:100%;min-width:0;padding:0;width:100%}.webform-multiple-table table thead th{padding:var(--spacing-layout-2-xs)}div.hidden-head table{display:table}div.hidden-head table thead th{padding:0}div.hidden-head table tbody tr{border-bottom:var(--spacing-s) var(--color-white) solid}div.hidden-head table tbody tr:hover{background:rgba(0,0,0,0)}div.table-layout-form input.hds-text-input__input{width:100%}div.table-layout-form table{border:1px var(--color-black) solid;max-width:var(--webform-element-width--input-large)}div.table-layout-form table tbody tr{border:§0px var(--color-black-30) solid}div.table-layout-form table tbody tr td{border:1px var(--color-black-30) solid;padding:0}div.table-layout-form table tbody tr td input.hds-text-input__input[readonly]{padding:var(--spacing-layout-2-xs)}div.table-layout-form table .form-item{margin-bottom:0}.hds-text-input .hds-text-input__input.input--borderless{border:0 rgba(0,0,0,0) solid}#edit-subventions-items thead{background:var(--color-black-90);color:var(--color-white);text-align:left}#edit-subventions-items input.hds-text-input,#edit-subventions-items input.hds-text-input__input{background:rgba(0,0,0,0)}#subventions_table td.webform-multiple-table--operations,#subventions_table th.webform-multiple-table--operations{display:none}#subventions_table input.hds-text-input__input[readonly][name$="[amount]"]{background-color:var(--input-background-disabled);border-color:var(--input-border-color-disabled);color:var(--input-color-disabled);cursor:not-allowed}.form-item-muu-liite .webform-multiple-table--operations{display:none}.hidden-head>label{display:none}.webform-preview .accordion_header{font-size:28px;font-weight:300}@media(min-width: 768px){.webform-preview .accordion_header{font-size:36px;font-weight:500}}.webform-preview label{display:block;font-weight:bold}.grants-profile-grants-profile fieldset{background:var(--color-black-5);border:0 rgba(0,0,0,0) solid;margin:0;max-width:var(--webform-element-width--fieldset);padding:0 var(--spacing-layout-s) var(--spacing-layout-s);top:calc(-1*var(--spacing-m))}.grants-profile-grants-profile fieldset label{margin-bottom:var(--spacing-3-xs)}.grants-profile-grants-profile fieldset legend{font-size:var(--fontsize-body-l);margin-bottom:var(--spacing-m);padding-bottom:var(--spacing-s);position:relative;top:var(--spacing-l)}.grants-profile-grants-profile fieldset .fieldset-wrapper{display:flex;flex-flow:row wrap;justify-content:space-between}.grants-profile-grants-profile fieldset .hds-text-input{max-width:100%}.grants-profile-grants-profile fieldset div[class*=-address-postcode]{width:32%}.grants-profile-grants-profile fieldset div[class*=-address-city]{width:65%}.grants-profile--extrainfo .form-actions .button{margin-right:var(--spacing-2-xs)}.grants-stepper{--grants-stepper-color: var(--color-black);--grants-stepper-background-color: var(--color-white);--grants-stepper-disabled-color: var(--color-black-20);--grants-stepper-selected-step-label-color: var(--color-black-90);--grants-stepper-not-selected-step-label-color: var(--color-black);--grants-step-background-color: var(--color-white);--grants-step-content-color: var(--color-black);--grants-stepper-focus-border-color: var(--color-coat-of-arms);--grants-step-width: 120px;--circle-container-size: 36px;--progress-line-height: 2px;background-color:var(--grants-stepper-background-color);margin-bottom:var(--spacing-layout-m);position:relative}@media(max-width: 725px){.grants-stepper{--grants-step-width: 40px}}@media(max-width: 725px){.grants-stepper .grants-stepper__text{display:none}}.grants-stepper__inner{align-items:flex-start;display:flex;justify-content:space-between;margin:0;-ms-overflow-style:none;padding:0;position:relative;scroll-behavior:smooth;scrollbar-width:none;width:100%}.grants-stepper__lines{display:flex;height:var(--progress-line-height);left:calc(var(--grants-step-width)/2);line-height:var(--lineheight-l);position:absolute;transform:translateY(calc(var(--circle-container-size) / 2 + var(--progress-line-height) / 2));z-index:1}.grants-stepper__line{background-color:var(--grants-stepper-color);display:inline-block;height:100%;position:relative}.grants-stepper__line__disabled{background-color:var(--grants-stepper-disabled-color)}.grants-stepper__steps{background-color:var(--grants-stepper-background-color);box-sizing:border-box;display:flex;flex-shrink:0;justify-content:center;max-width:var(--grants-step-width);min-width:var(--grants-step-width);padding:3px}.grants-stepper__step{align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:rgba(0,0,0,0);border:0;box-sizing:content-box;color:var(--grants-stepper-color);cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;outline:none;overflow:visible;padding:0;position:relative}.grants-stepper__step[disabled],.grants-stepper__step__disabled{color:var(--grants-stepper-disabled-color);cursor:not-allowed}.grants-stepper__step[disabled] .grants-stepper__circle,.grants-stepper__step__disabled .grants-stepper__circle{background-color:var(--grants-stepper-background-color);border:2px solid var(--grants-stepper-disabled-color);color:var(--grants-stepper-disabled-color)}.grants-stepper__step[disabled] .grants-stepper__text,.grants-stepper__step__disabled .grants-stepper__text{color:var(--grants-stepper-disabled-color)}.grants-stepper__step__circle_container{align-items:center;display:flex;height:var(--circle-container-size);justify-content:center;width:var(--circle-container-size);z-index:2}.grants-stepper__step__completed_container{align-items:center;background-color:var(--grants-stepper-color);border-radius:16px;color:var(--color-white);display:none;justify-content:center;outline:2px solid var(--grants-stepper-background-color);padding:4px;vertical-align:middle}.grants-stepper .grants-stepper__error,.grants-stepper .grants-stepper__completed{display:none}.grants-stepper__text{color:var(--grants-stepper-not-selected-step-label-color);font-size:var(--fontsize-body-m);font-weight:500;line-height:var(--lineheight-l);margin-bottom:0;margin-top:6px;padding-left:var(--spacing-4-xs);padding-right:var(--spacing-4-xs);text-align:center;text-decoration:underline}.grants-stepper__circle{align-items:center;background-color:var(--grants-step-background-color);border:2px solid var(--grants-stepper-color);border-radius:16px;color:var(--grants-step-content-color);display:flex;height:28px;justify-content:center;outline:2px solid var(--grants-stepper-background-color);text-align:center;width:28px}.grants-stepper__number{font-size:var(--fontsize-body-m);font-weight:500;line-height:1.15}.grants-stepper .is-active .grants-stepper__circle{border:4px solid var(--grants-stepper-color);border-radius:18px;outline:none}.grants-stepper .is-active .grants-stepper__text{color:var(--grants-stepper-selected-step-label-color);font-weight:700;text-decoration:none}.grants-stepper .is-active .grants-stepper__number{color:var(--grants-stepper-selected-step-label-color);font-weight:700;text-decoration:none}.grants-stepper .is-complete .grants-stepper__container{align-items:center;background-color:var(--grants-stepper-color);border-radius:16px;color:var(--color-white);display:flex;justify-content:center;outline:2px solid var(--grants-stepper-background-color);padding:4px}.grants-stepper .is-complete .grants-stepper__number{display:none}.grants-stepper .is-complete .grants-stepper__completed{display:inline-block}.grants-stepper .is-complete .grants-stepper__circle{opacity:0}.grants-stepper .is-complete .grants-stepper__step__completed_container{display:flex}.grants-stepper .has-errors .grants-stepper__container{align-items:center;background-color:var(--grants-stepper-color);border-radius:16px;color:var(--color-white);display:flex;justify-content:center;outline:2px solid var(--grants-stepper-background-color);padding:4px}.grants-stepper .has-errors .grants-stepper__circle{border-color:var(--color-error);color:var(--color-error)}.grants-stepper .has-errors .grants-stepper__number{display:none}.grants-stepper .has-errors .grants-stepper__error{display:inline-block}.grants-stepper .progress-marker::before{display:none}.grants-stepper .progress-step .progress-marker{color:var(--color-black)}.grants-stepper .progress-step .progress-marker.focus-visible .grants-stepper__circle{outline:2px solid var(--color-black);outline:var(--outline-width, 2px) solid var(--color-black);outline-offset:2px}.grants-stepper .progress-step .progress-marker.focus-visible .grants-stepper__circle{outline:2px solid var(--color-black);outline:var(--outline-width, 2px) solid var(--color-black);outline-offset:2px}.grants-stepper .progress-step .progress-marker:focus-visible .grants-stepper__circle{outline:2px solid var(--color-black);outline:var(--outline-width, 2px) solid var(--color-black);outline-offset:2px}.grants-stepper .progress-step .progress-marker.focus-visible .grants-stepper__text{outline:2px solid var(--color-black);outline:var(--outline-width, 2px) solid var(--color-black)}.grants-stepper .progress-step .progress-marker.focus-visible .grants-stepper__text{outline:2px solid var(--color-black);outline:var(--outline-width, 2px) solid var(--color-black)}.grants-stepper .progress-step .progress-marker:focus-visible .grants-stepper__text{outline:2px solid var(--color-black);outline:var(--outline-width, 2px) solid var(--color-black)}.grants-stepper .progress-step:last-child{flex-grow:1}.grant-applications--select-wrapper{--border-width: 2px;--input-height: 56px;--menu-item-height: 53px;--icon-size: var(--spacing-m);--helper-color-default: var(--color-black-60);--helper-color-invalid: var(--color-error);--icon-color-invalid: var(--color-error);--input-background-default: var(--color-white);--input-background-disabled: var(--color-black-10);--input-border-color-default: var(--color-black-50);--input-border-color-hover: var(--color-black-90);--input-border-color-focus: var(--color-black-90);--input-border-color-invalid: var(--color-error);--input-border-color-disabled: var(--color-black-10);--input-color-default: var(--color-black-90);--input-color-disabled: var(--color-black-40);--label-color-default: var(--color-black-90);--label-color-invalid: var(--color-black-90);--placeholder-color: var(--color-black-60);--focus-outline-color: var(--color-coat-of-arms);align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--input-background-default);border:var(--border-width) solid var(--input-border-color-default);box-sizing:border-box;color:var(--input-color-default);cursor:pointer;display:block;font-size:1.125em;grid-template-areas:"select";line-height:normal;max-width:30ch;min-width:15ch;padding:.25em .5em;position:relative;width:100%}.grant-applications--select-wrapper select{align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border:none;color:var(--dropdown-color-default);cursor:inherit;display:flex;font-family:inherit;font-size:var(--fontsize-body-l);height:var(--input-height);line-height:inherit;margin:0;min-height:var(--menu-item-height);outline:none;padding:calc(var(--spacing-s) - var(--border-width)*2) var(--spacing-s);width:100%;z-index:1}.grant-applications--select-wrapper select::-ms-expand{display:none}.grant-applications--select-wrapper i.hel-icon{pointer-events:none;position:absolute;right:calc(var(--spacing-s) - var(--border-width)*2);top:calc(var(--spacing-s) - var(--border-width)*2)}.grant-applications--select-wrapper select,.grant-applications--select-wrapper::after{grid-area:select}.grant-applications--select-wrapper:not(.select--multiple)::after{background-color:var(--helper-color-default);clip-path:polygon(100% 0%, 0 0%, 50% 100%);content:"";height:.5em;justify-self:end;width:.8em}.grant-applications--select-wrapper select:focus+.grant-applications--select-focus{border:2px solid var(--focus-outline-color);border-radius:inherit;bottom:-1px;left:-1px;position:absolute;right:-1px;top:-1px}.webform-submission__application_id{border-bottom:1px var(--color-black-20) solid;padding-bottom:var(--spacing-xl)}.webform-submission__application_id--header{font-size:1rem;font-weight:bold}.webform-submission__title-wrapper{padding-top:var(--spacing-2-xl)}.webform-submission__title-wrapper h1{max-width:100%}.webform-submission ul{list-style:none;margin-top:0;padding-left:0}.webform-submission-information{background:var(--color-silver-light);margin-top:var(--spacing-3-xl);padding:var(--spacing-l)}.webform-submission-information .webform-submission-information{margin-top:var(--spacing-l);padding:0}.webform-submission-information h4{margin-top:0}.webform-submission-information h5{font-size:var(--fontsize-body-m);margin-top:var(--spacing-s)}.webform-submission-information__row{display:flex}.webform-submission-information__row-edit{margin-top:var(--spacing-s)}.webform-submission-information__row-top{align-items:center;border-bottom:1px solid var(--color-black-20);justify-content:space-between}@media(max-width: 550px){.webform-submission-information__row-top{display:block}}.webform-submission-information__row-main{flex-flow:row nowrap;gap:var(--spacing-m);justify-content:space-between}@media(max-width: 1179px){.webform-submission-information__row-main{flex-flow:row wrap}}.webform-submission-information__row-main>div{flex:1}@media(max-width: 1179px){.webform-submission-information__row-main>div{flex:auto;width:100%}}.webform-submission-information__row-main>div ul{list-style-type:none;margin-bottom:0;padding-left:0}.webform-submission-information__row-main>div ul li{margin:0;padding:0}.webform-submission-information__supportlinks{display:flex;flex-flow:row nowrap;min-width:-moz-fit-content;min-width:fit-content}.webform-submission-information__supportlinks .hds-loading-spinner{left:0}.webform-submission-information__supportlinks .hds-button{min-width:-moz-fit-content;min-width:fit-content}.hel-icon.hel-icon--copy{-webkit-mask-image:url("data:image/svg+xml,%3Csvg class='Icon-module_icon__1Jtzj icon_hel-icon__1YqNC Icon-module_s__2WGWe icon_hel-icon--size-s__2Lkik' viewBox='0 0 24 24' role='img' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Crect width='24' height='24'%3E%3C/rect%3E%3Cpath fill='currentColor' d='M6,10 L6,12 L5,12 L5,18 L12,18 L12,17 L14,17 L14,19 C14,19.5522847 13.5522847,20 13,20 L4,20 C3.44771525,20 3,19.5522847 3,19 L3,11 C3,10.4477153 3.44771525,10 4,10 L6,10 Z M20,4 C20.5522847,4 21,4.44771525 21,5 L21,15 C21,15.5522847 20.5522847,16 20,16 L8,16 C7.44771525,16 7,15.5522847 7,15 L7,5 C7,4.44771525 7.44771525,4 8,4 L20,4 Z M19,6 L9,6 L9,14 L19,14 L19,6 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg class='Icon-module_icon__1Jtzj icon_hel-icon__1YqNC Icon-module_s__2WGWe icon_hel-icon--size-s__2Lkik' viewBox='0 0 24 24' role='img' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Crect width='24' height='24'%3E%3C/rect%3E%3Cpath fill='currentColor' d='M6,10 L6,12 L5,12 L5,18 L12,18 L12,17 L14,17 L14,19 C14,19.5522847 13.5522847,20 13,20 L4,20 C3.44771525,20 3,19.5522847 3,19 L3,11 C3,10.4477153 3.44771525,10 4,10 L6,10 Z M20,4 C20.5522847,4 21,4.44771525 21,5 L21,15 C21,15.5522847 20.5522847,16 20,16 L8,16 C7.44771525,16 7,15.5522847 7,15 L7,5 C7,4.44771525 7.44771525,4 8,4 L20,4 Z M19,6 L9,6 L9,14 L19,14 L19,6 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E")}.webform-submission-form .form-actions{border-top:1px rgba(0,0,0,.6) solid;margin-top:var(--spacing-l);padding-top:var(--spacing-2-xl)}@media(min-width: 768px){.webform-submission-form .form-actions{display:flex;flex-direction:row-reverse}}.webform-submission-form .form-actions .actions{display:flex;flex-wrap:wrap}.webform-submission-form .form-actions button{margin-left:0}@media(min-width: 768px){.webform-submission-form .form-actions button{margin-left:var(--spacing-2-xs)}}.webform-submission-form .form-actions input{margin-bottom:var(--spacing-layout-2-xs);width:100%}@media(min-width: 768px){.webform-submission-form .form-actions input{width:auto}}.webform-submission-form .form-actions input.webform-button--draft{background:rgba(0,0,0,0);border:0 rgba(0,0,0,0) solid;color:var(--hdbt-color-black);order:3;text-decoration:underline}.webform-submission-form .form-actions button.webform-button--next span::after,.webform-submission-form .form-actions button.webform-button--preview span::after{content:">";margin-left:var(--spacing-2-xs)}.webform-submission-form .form-actions button.webform-button--previous span::before{content:"<";margin-right:var(--spacing-2-xs)}.webform-submission-form .form-actions input.webform-button--previous{background:var(--color-white);color:var(--border-color)}.webform-button--draft .hds-button__label::before{background-color:currentColor;background-size:contain;content:"";display:inline-block;flex-shrink:0;height:24px;margin-right:var(--spacing-2-xs);-webkit-mask-image:var(--hel-icon--download-cloud);mask-image:var(--hel-icon--download-cloud);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:24px 24px;mask-size:24px 24px;transition:transform .2s linear;vertical-align:bottom;width:24px}.webform-submission-messages{background:var(--color-silver-light);margin-top:var(--spacing-3-xl);padding:var(--spacing-l)}.webform-submission-messages h4,.webform-submission-messages h5{margin-top:0}.webform-submission-messages hr{margin:var(--spacing-l) 0}.webform-submission-messages__new-message{align-items:center;background:var(--color-alert);display:inline-flex;font-weight:bold;gap:var(--spacing-2-xs);margin-bottom:var(--spacing-m);padding:var(--spacing-2-xs) var(--spacing-xs);text-transform:uppercase}.webform-submission-messages__messages-list{list-style:none;margin:0;padding:0}.webform-submission-messages__message{margin:0;padding:0}.webform-submission-messages__message__attachments{list-style:none}.webform-submission-messages__message .hds-button{margin-top:var(--spacing-s)}.js-form-type-grants-webform-summation-field{max-width:var(--webform-element-width--input-large);text-align:right}.js-form-type-grants-webform-summation-field .grants-webform-summation-field{display:inline-block;padding:var(--spacing-xs) var(--spacing-m)}.webform-print-header,.webform-print-footer{display:none}.webform-print .main-content{display:block}.webform-submission--view-mode-html .hds-text-input,.webform-submission-data-preview-page .hds-text-input,.webform-print-page-html .hds-text-input{max-width:100%}.webform-submission--view-mode-html .print-label,.webform-submission-data-preview-page .print-label,.webform-print-page-html .print-label{display:block;font-size:var(--fontsize-body-m);font-weight:500;margin-bottom:var(--spacing-3-xs);margin-top:0;max-width:-moz-fit-content;max-width:fit-content;padding-right:var(--spacing-xl);position:relative}.webform-submission--view-mode-html .webform-section-flex-wrapper h3+*>*:first-child>*:first-child,.webform-submission--view-mode-html .webform-section-flex-wrapper h3+*>*:first-child>*:first-child label:first-of-type,.webform-submission-data-preview-page .webform-section-flex-wrapper h3+*>*:first-child>*:first-child,.webform-submission-data-preview-page .webform-section-flex-wrapper h3+*>*:first-child>*:first-child label:first-of-type,.webform-print-page-html .webform-section-flex-wrapper h3+*>*:first-child>*:first-child,.webform-print-page-html .webform-section-flex-wrapper h3+*>*:first-child>*:first-child label:first-of-type{line-height:normal}.webform-submission--view-mode-html .print-notification,.webform-submission-data-preview-page .print-notification,.webform-print-page-html .print-notification{border:2px var(--color-black) solid;font-weight:bold;margin-top:var(--spacing-2-xl);padding:var(--spacing-layout-s)}.webform-submission--view-mode-html .print-notification .print-notification--icon,.webform-submission-data-preview-page .print-notification .print-notification--icon,.webform-print-page-html .print-notification .print-notification--icon{height:22px;margin-right:var(--spacing-2-xs);vertical-align:text-top;width:22px}.webform-submission--view-mode-html .webform-print-page-wizard-page~.webform-print-page-wizard-page h2,.webform-submission-data-preview-page .webform-print-page-wizard-page~.webform-print-page-wizard-page h2,.webform-print-page-html .webform-print-page-wizard-page~.webform-print-page-wizard-page h2{page-break-after:avoid;page-break-before:always}.webform-submission--view-mode-html div.hds-text-input__input,.webform-submission-data-preview-page div.hds-text-input__input,.webform-print-page-html div.hds-text-input__input{background:var(--color-white);border:2px var(--color-black) solid;height:var(--spacing-2-xl);width:100%}.webform-submission--view-mode-html div.hds-text-input__textarea,.webform-submission-data-preview-page div.hds-text-input__textarea,.webform-print-page-html div.hds-text-input__textarea{background:var(--color-white);border:2px var(--color-black) solid;height:var(--spacing-layout-2-xl);width:100%}.webform-submission--view-mode-html .webform-section-wrapper .hds-notification,.webform-submission-data-preview-page .webform-section-wrapper .hds-notification,.webform-print-page-html .webform-section-wrapper .hds-notification{margin-top:var(--spacing-s)}.webform-submission--view-mode-html .webform-print-page-body h2,.webform-submission-data-preview-page .webform-print-page-body h2,.webform-print-page-html .webform-print-page-body h2{margin-bottom:var(--spacing-layout-s)}.webform-submission--view-mode-html .webform-print-wrapper-table,.webform-submission-data-preview-page .webform-print-wrapper-table,.webform-print-page-html .webform-print-wrapper-table{border:0 rgba(0,0,0,0) solid;display:table;max-width:100%;overflow-x:visible;overflow-x:initial;width:100%}.webform-submission--view-mode-html .webform-print-wrapper-table thead,.webform-submission--view-mode-html .webform-print-wrapper-table tbody,.webform-submission--view-mode-html .webform-print-wrapper-table tfoot,.webform-submission--view-mode-html .webform-print-wrapper-table tr,.webform-submission--view-mode-html .webform-print-wrapper-table tbody tr:hover,.webform-submission--view-mode-html .webform-print-wrapper-table td,.webform-submission--view-mode-html .webform-print-wrapper-table td:first-child,.webform-submission--view-mode-html .webform-print-wrapper-table th,.webform-submission-data-preview-page .webform-print-wrapper-table thead,.webform-submission-data-preview-page .webform-print-wrapper-table tbody,.webform-submission-data-preview-page .webform-print-wrapper-table tfoot,.webform-submission-data-preview-page .webform-print-wrapper-table tr,.webform-submission-data-preview-page .webform-print-wrapper-table tbody tr:hover,.webform-submission-data-preview-page .webform-print-wrapper-table td,.webform-submission-data-preview-page .webform-print-wrapper-table td:first-child,.webform-submission-data-preview-page .webform-print-wrapper-table th,.webform-print-page-html .webform-print-wrapper-table thead,.webform-print-page-html .webform-print-wrapper-table tbody,.webform-print-page-html .webform-print-wrapper-table tfoot,.webform-print-page-html .webform-print-wrapper-table tr,.webform-print-page-html .webform-print-wrapper-table tbody tr:hover,.webform-print-page-html .webform-print-wrapper-table td,.webform-print-page-html .webform-print-wrapper-table td:first-child,.webform-print-page-html .webform-print-wrapper-table th{background:rgba(0,0,0,0);border:0;color:var(--color-black)}.webform-submission--view-mode-html .webform-print-wrapper-table ul,.webform-submission-data-preview-page .webform-print-wrapper-table ul,.webform-print-page-html .webform-print-wrapper-table ul{margin:0;padding:0}.webform-submission--view-mode-html .webform-print-wrapper-table ul li,.webform-submission-data-preview-page .webform-print-wrapper-table ul li,.webform-print-page-html .webform-print-wrapper-table ul li{border-bottom:1px var(--color-black-50) solid;list-style:none;margin-top:0;padding:1rem 0}.webform-submission--view-mode-html .webform-print-wrapper-table ul li:last-of-type,.webform-submission-data-preview-page .webform-print-wrapper-table ul li:last-of-type,.webform-print-page-html .webform-print-wrapper-table ul li:last-of-type{border-bottom:0 rgba(0,0,0,0) solid}.webform-submission--view-mode-html .webform-print-wrapper-table thead,.webform-submission-data-preview-page .webform-print-wrapper-table thead,.webform-print-page-html .webform-print-wrapper-table thead{display:table-header-group}.webform-submission--view-mode-html .webform-print-wrapper-table thead th,.webform-submission-data-preview-page .webform-print-wrapper-table thead th,.webform-print-page-html .webform-print-wrapper-table thead th{padding:0}.webform-submission--view-mode-html .webform-print-wrapper-table tfoot,.webform-submission-data-preview-page .webform-print-wrapper-table tfoot,.webform-print-page-html .webform-print-wrapper-table tfoot{display:table-footer-group}.webform-submission--view-mode-html .webform-submission-data>section,.webform-submission-data-preview-page .webform-submission-data>section,.webform-print-page-html .webform-submission-data>section{border-top:1px var(--color-black-20) solid;padding-top:var(--spacing-layout-l)}.webform-submission--view-mode-html .webform-submission-data>section>.webform-section-flex-wrapper,.webform-submission-data-preview-page .webform-submission-data>section>.webform-section-flex-wrapper,.webform-print-page-html .webform-submission-data>section>.webform-section-flex-wrapper{display:block}.webform-submission--view-mode-html .webform-submission-data>section>.webform-section-flex-wrapper>h2,.webform-submission-data-preview-page .webform-submission-data>section>.webform-section-flex-wrapper>h2,.webform-print-page-html .webform-submission-data>section>.webform-section-flex-wrapper>h2{font-size:var(--fontsize-heading-l) !important;margin:0 0 2mm !important;padding:0 !important;width:100% !important}.webform-submission--view-mode-html .webform-submission-data>section>.webform-section-flex-wrapper>h2,.webform-submission-data-preview-page .webform-submission-data>section>.webform-section-flex-wrapper>h2,.webform-print-page-html .webform-submission-data>section>.webform-section-flex-wrapper>h2{font-weight:500;min-width:100%}.webform-submission--view-mode-html .webform-submission-data>section>.webform-section-flex-wrapper>.webform-section-wrapper,.webform-submission-data-preview-page .webform-submission-data>section>.webform-section-flex-wrapper>.webform-section-wrapper,.webform-print-page-html .webform-submission-data>section>.webform-section-flex-wrapper>.webform-section-wrapper{padding:6mm 0}.webform-submission--view-mode-html .webform-submission-data>section>.webform-section-flex-wrapper>.webform-section-wrapper label,.webform-submission-data-preview-page .webform-submission-data>section>.webform-section-flex-wrapper>.webform-section-wrapper label,.webform-print-page-html .webform-submission-data>section>.webform-section-flex-wrapper>.webform-section-wrapper label{font-weight:500}.webform-submission--view-mode-html .webform-submission-data>section.hds-notification,.webform-submission-data-preview-page .webform-submission-data>section.hds-notification,.webform-print-page-html .webform-submission-data>section.hds-notification{padding-top:var(--spacing-s)}@media print{@page{.webform-submission--view-mode-html,.webform-submission-data-preview-page,.webform-print-page-html{margin:0;size:A4}}.webform-submission--view-mode-html h1,.webform-submission-data-preview-page h1,.webform-print-page-html h1{margin:0;position:relative}.webform-submission--view-mode-html details,.webform-submission-data-preview-page details,.webform-print-page-html details{page-break-before:always}.webform-submission--view-mode-html .details-section-divider,.webform-submission-data-preview-page .details-section-divider,.webform-print-page-html .details-section-divider{page-break-after:always}.webform-submission--view-mode-html label,.webform-submission-data-preview-page label,.webform-print-page-html label{font-size:8pt;margin-bottom:0}.webform-submission--view-mode-html section,.webform-submission-data-preview-page section,.webform-print-page-html section{border-top:0 var(--color-black-20) solid !important;padding-top:0 !important}.webform-submission--view-mode-html section,.webform-submission-data-preview-page section,.webform-print-page-html section{margin-bottom:0;padding-bottom:0}.webform-submission--view-mode-html div.main-content,.webform-submission-data-preview-page div.main-content,.webform-print-page-html div.main-content{margin:0}.webform-submission--view-mode-html button,.webform-submission--view-mode-html footer.footer,.webform-submission--view-mode-html header.header,.webform-submission--view-mode-html nav.breadcrumb,.webform-submission--view-mode-html .form-actions,.webform-submission--view-mode-html .hds-notification,.webform-submission--view-mode-html .messages__container,.webform-submission--view-mode-html .tools__container,.webform-submission--view-mode-html .breadcrumb__container,.webform-submission--view-mode-html .webform-progress,.webform-submission--view-mode-html .webform-progress-tracker,.webform-submission--view-mode-html .webform-progress-tracker-mobile,.webform-submission--view-mode-html .webform-multiple-add,.webform-submission--view-mode-html .webform-multiple-table--operations,.webform-submission-data-preview-page button,.webform-submission-data-preview-page footer.footer,.webform-submission-data-preview-page header.header,.webform-submission-data-preview-page nav.breadcrumb,.webform-submission-data-preview-page .form-actions,.webform-submission-data-preview-page .hds-notification,.webform-submission-data-preview-page .messages__container,.webform-submission-data-preview-page .tools__container,.webform-submission-data-preview-page .breadcrumb__container,.webform-submission-data-preview-page .webform-progress,.webform-submission-data-preview-page .webform-progress-tracker,.webform-submission-data-preview-page .webform-progress-tracker-mobile,.webform-submission-data-preview-page .webform-multiple-add,.webform-submission-data-preview-page .webform-multiple-table--operations,.webform-print-page-html button,.webform-print-page-html footer.footer,.webform-print-page-html header.header,.webform-print-page-html nav.breadcrumb,.webform-print-page-html .form-actions,.webform-print-page-html .hds-notification,.webform-print-page-html .messages__container,.webform-print-page-html .tools__container,.webform-print-page-html .breadcrumb__container,.webform-print-page-html .webform-progress,.webform-print-page-html .webform-progress-tracker,.webform-print-page-html .webform-progress-tracker-mobile,.webform-print-page-html .webform-multiple-add,.webform-print-page-html .webform-multiple-table--operations{display:none !important}.webform-submission--view-mode-html .gin--horizontal-toolbar .dialog-off-canvas-main-canvas,.webform-submission-data-preview-page .gin--horizontal-toolbar .dialog-off-canvas-main-canvas,.webform-print-page-html .gin--horizontal-toolbar .dialog-off-canvas-main-canvas{padding:0 !important}.webform-submission--view-mode-html .hds-text-input,.webform-submission-data-preview-page .hds-text-input,.webform-print-page-html .hds-text-input{max-width:100%}.webform-submission--view-mode-html .hds-text-input .hds-text-input__input,.webform-submission-data-preview-page .hds-text-input .hds-text-input__input,.webform-print-page-html .hds-text-input .hds-text-input__input{height:1cm}.webform-submission--view-mode-html .hds-text-input textarea.hds-text-input__input,.webform-submission--view-mode-html .hds-text-input div.hds-text-input__textarea,.webform-submission-data-preview-page .hds-text-input textarea.hds-text-input__input,.webform-submission-data-preview-page .hds-text-input div.hds-text-input__textarea,.webform-print-page-html .hds-text-input textarea.hds-text-input__input,.webform-print-page-html .hds-text-input div.hds-text-input__textarea{height:6cm;max-width:100%;min-width:100%;width:100%}.webform-submission--view-mode-html .hds-text-input .hds-text-input__input[readonly],.webform-submission--view-mode-html .hds-text-input .hds-text-input__input,.webform-submission-data-preview-page .hds-text-input .hds-text-input__input[readonly],.webform-submission-data-preview-page .hds-text-input .hds-text-input__input,.webform-print-page-html .hds-text-input .hds-text-input__input[readonly],.webform-print-page-html .hds-text-input .hds-text-input__input{border:2px var(--color-black) solid}.webform-submission--view-mode-html .webform-element,.webform-submission-data-preview-page .webform-element,.webform-print-page-html .webform-element{border:1px var(--color-black) solid;margin-bottom:8mm;padding:2.5mm;position:relative}.webform-submission--view-mode-html .webform-preview,.webform-submission-data-preview-page .webform-preview,.webform-print-page-html .webform-preview{margin-top:0}.webform-submission--view-mode-html .webform-preview label,.webform-submission-data-preview-page .webform-preview label,.webform-print-page-html .webform-preview label{align-items:flex-end;display:flex;font-size:8pt;height:100%;left:0;pointer-events:none;position:absolute;top:-100%;width:100%}.webform-submission--view-mode-html .webform-preview .webform-element,.webform-submission-data-preview-page .webform-preview .webform-element,.webform-print-page-html .webform-preview .webform-element{border:1px var(--color-black) solid;margin-bottom:8mm;padding:2.5mm;position:relative;top:5mm}.webform-submission--view-mode-html .webform-preview .webform-multiple-table--operations,.webform-submission-data-preview-page .webform-preview .webform-multiple-table--operations,.webform-print-page-html .webform-preview .webform-multiple-table--operations{display:none}.webform-submission--view-mode-html .webform-print-header,.webform-submission-data-preview-page .webform-print-header,.webform-print-page-html .webform-print-header{align-items:center;background:var(--color-white);border-bottom:1px var(--color-black-40) solid;display:flex;flex-flow:row nowrap;font-size:9pt;height:21mm;left:0;max-width:100%;min-width:100%;position:fixed;top:0;width:100%;z-index:1000}.webform-submission--view-mode-html .webform-print-header svg,.webform-submission-data-preview-page .webform-print-header svg,.webform-print-page-html .webform-print-header svg{color:var(--color-black);display:block;height:25mm;margin-right:3mm;width:55mm}.webform-submission--view-mode-html .webform-print-header .webform-print-header-left-text,.webform-submission-data-preview-page .webform-print-header .webform-print-header-left-text,.webform-print-page-html .webform-print-header .webform-print-header-left-text{color:var(--color-black-40);text-align:left;width:100%}.webform-submission--view-mode-html .webform-print-header .webform-print-header-right-text,.webform-submission-data-preview-page .webform-print-header .webform-print-header-right-text,.webform-print-page-html .webform-print-header .webform-print-header-right-text{color:var(--color-black-40);text-align:right;width:100%}.webform-submission--view-mode-html .webform-print-footer,.webform-submission-data-preview-page .webform-print-footer,.webform-print-page-html .webform-print-footer{align-items:center;background:var(--color-white);border-top:1px var(--color-black-40) solid;bottom:0;display:flex;flex-flow:row nowrap;font-size:9pt;height:17mm;left:0;max-width:100%;min-width:100%;position:fixed;width:100%;z-index:1000}.webform-submission--view-mode-html .webform-print-footer svg,.webform-submission-data-preview-page .webform-print-footer svg,.webform-print-page-html .webform-print-footer svg{color:var(--color-black);display:block;height:15mm;margin-right:3mm;width:33mm}.webform-submission--view-mode-html .webform-print-footer .webform-print-footer-left-text,.webform-submission-data-preview-page .webform-print-footer .webform-print-footer-left-text,.webform-print-page-html .webform-print-footer .webform-print-footer-left-text{color:var(--color-black-40);text-align:left;width:100%}.webform-submission--view-mode-html .webform-print-footer .webform-print-footer-right-text,.webform-submission-data-preview-page .webform-print-footer .webform-print-footer-right-text,.webform-print-page-html .webform-print-footer .webform-print-footer-right-text{color:var(--color-black-40);text-align:right;width:100%}.webform-submission--view-mode-html .webform-print-header-space,.webform-submission-data-preview-page .webform-print-header-space,.webform-print-page-html .webform-print-header-space{background:var(--color-white);font-size:9pt;height:21mm}.webform-submission--view-mode-html .webform-print-footer-space,.webform-submission-data-preview-page .webform-print-footer-space,.webform-print-page-html .webform-print-footer-space{background:var(--color-white);font-size:9pt;height:17mm}.webform-submission--view-mode-html .webform-print-wrapper-table,.webform-submission-data-preview-page .webform-print-wrapper-table,.webform-print-page-html .webform-print-wrapper-table{border:0;margin:0;overflow-x:visible;overflow-x:initial}.webform-submission--view-mode-html .webform-section-flex-wrapper,.webform-submission-data-preview-page .webform-section-flex-wrapper,.webform-print-page-html .webform-section-flex-wrapper{flex-flow:row wrap}.webform-submission--view-mode-html .webform-section-flex-wrapper>h3.webform-section-title,.webform-submission-data-preview-page .webform-section-flex-wrapper>h3.webform-section-title,.webform-print-page-html .webform-section-flex-wrapper>h3.webform-section-title{max-width:100%;width:100%}.webform-submission--view-mode-html .webform-section-grid-wrapper,.webform-submission-data-preview-page .webform-section-grid-wrapper,.webform-print-page-html .webform-section-grid-wrapper{display:flex;flex-flow:row nowrap}.webform-submission--view-mode-html .webform-section-grid-wrapper>h3.webform-section-title,.webform-submission-data-preview-page .webform-section-grid-wrapper>h3.webform-section-title,.webform-print-page-html .webform-section-grid-wrapper>h3.webform-section-title{font-size:1.25rem;margin-top:0;max-width:5cm;width:100%}.webform-submission--view-mode-html .webform-section-grid-wrapper>dl.webform-section-contents,.webform-submission-data-preview-page .webform-section-grid-wrapper>dl.webform-section-contents,.webform-print-page-html .webform-section-grid-wrapper>dl.webform-section-contents{margin-top:0;max-width:100%;padding-left:1cm;width:100%}.webform-submission--view-mode-html .webform-section-grid-wrapper>dl.webform-section-contents dt,.webform-submission-data-preview-page .webform-section-grid-wrapper>dl.webform-section-contents dt,.webform-print-page-html .webform-section-grid-wrapper>dl.webform-section-contents dt{font-weight:bold;margin:0;padding:0;page-break-after:avoid}.webform-submission--view-mode-html .webform-section-grid-wrapper>dl.webform-section-contents dd,.webform-submission-data-preview-page .webform-section-grid-wrapper>dl.webform-section-contents dd,.webform-print-page-html .webform-section-grid-wrapper>dl.webform-section-contents dd{margin:0;padding:0;page-break-before:avoid}.webform-submission--view-mode-html .webform-print-page-body h2,.webform-submission-data-preview-page .webform-print-page-body h2,.webform-print-page-html .webform-print-page-body h2{margin-bottom:1cm}}.webform-submission-data dl dt{font-weight:bold}.webform-submission-data dl dd{margin:0;padding:0}.webform-submission-data dl dl{padding-left:var(--spacing-2-xs)}.webform-submission-data dl>br{display:none}.webform-print-page-html .webform-section-wrapper>h4,.webform-print-page-html .webform-section-wrapper .print-label{margin-top:var(--spacing-2-xs);line-height:1.5}.webform-print-page-html .webform-section-wrapper fieldset{padding:var(--spacing-s)}@media(min-width: 768px){.webform-print-page-html .webform-section-wrapper fieldset{min-width:400px;padding:var(--spacing-s) var(--spacing-m)}}.application-list{padding-bottom:var(--spacing-xl);padding-left:0}.application-list__processed-human-readable{display:none}.application-list__item{background:var(--color-bus-light);display:block;margin:var(--spacing-m) 0;padding:var(--spacing-2-xl) var(--spacing-s) var(--spacing-m);position:relative}.application-list__item .new-message{background-color:var(--color-alert);border-radius:var(--spacing-xl);display:inline-block;padding:var(--spacing-2-xs)}.application-list__item .new-message .hel-icon--size-s{height:20px;width:20px}.application-list__item h3,.application-list__item h4{margin-top:var(--spacing-xs)}.application-list__item h4{font-size:1rem}.application-list__item--submitted{display:none}.application-list__item__link{display:flex;margin-top:var(--spacing-m)}.application-list__item__link a{font-size:1.25rem}.application-list__item__link a i{vertical-align:text-bottom}.application-list__item__row{display:flex;flex-flow:row wrap;gap:var(--spacing-m);justify-content:space-between}.application-list__item__row__left{justify-content:flex-start}.application-list__item__row__top{padding:var(--spacing-2-xs) var(--spacing-s) var(--spacing-2-xs) 0;position:absolute;top:0;width:100%}.application-list__item--status{--status-label-height: 32px;align-items:center;border-radius:20px;display:inline-flex;font-size:var(--fontsize-body-s);line-height:var(--status-label-height);min-height:var(--status-label-height);padding:var(--spacing-3-xs) var(--spacing-s);padding-left:var(--spacing-xs);vertical-align:middle}.application-list__item--status+.hds-loading-spinner{display:inline-block;left:10px;margin:0;padding:0;position:relative;top:var(--spacing-3-xs)}.application-list__item--status.hide-spinner+.hds-loading-spinner{display:none}.application-list__item--status+div+.application-list__item--error{display:none}.application-list__item--status.show-error{background:var(--color-black-20);color:var(--color-black-90)}.application-list__item--status.show-error+div+.application-list__item--error{display:inline-flex;left:var(--spacing-xs);margin:0;padding:0;position:relative;top:var(--spacing-3-xs)}.application-list__item--status.show-error+div+.application-list__item--error .application-list--error-text{display:inline-block;margin-left:var(--spacing-2-xs)}.application-list__item--status--draft{padding-left:0}.application-list__item--status--sent,.application-list__item--status--submitted{background:var(--color-black-10)}.application-list__item--status--sent::before,.application-list__item--status--submitted::before{--icon-size: 1.5rem;background-color:#000;background-size:contain;content:"";display:inline-block;height:calc(var(--line-height) * 1em);height:var(--icon-size, calc(var(--line-height) * 1em));-webkit-mask-image:var(--hel-icon--alert-circle);mask-image:var(--hel-icon--alert-circle);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);-webkit-mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));vertical-align:bottom;width:calc(var(--line-height) * 1em);width:var(--icon-size, calc(var(--line-height) * 1em));background-color:var(--color-black);content:"";margin-right:var(--spacing-2-xs)}.application-list__item--status--received,.application-list__item--status--pending,.application-list__item--status--processing,.application-list__item--status--preparing{background:var(--color-info);color:var(--color-white)}.application-list__item--status--received::before,.application-list__item--status--pending::before,.application-list__item--status--processing::before,.application-list__item--status--preparing::before{--icon-size: 1.5rem;background-color:#000;background-size:contain;content:"";display:inline-block;height:calc(var(--line-height) * 1em);height:var(--icon-size, calc(var(--line-height) * 1em));-webkit-mask-image:var(--hel-icon--info-circle);mask-image:var(--hel-icon--info-circle);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);-webkit-mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));vertical-align:bottom;width:calc(var(--line-height) * 1em);width:var(--icon-size, calc(var(--line-height) * 1em));background-color:var(--color-white);content:"";margin-right:var(--spacing-2-xs)}.application-list__item--status--done,.application-list__item--status--ready,.application-list__item--status--resolved{background:var(--color-success);color:var(--color-white)}.application-list__item--status--done::before,.application-list__item--status--ready::before,.application-list__item--status--resolved::before{--icon-size: 1.5rem;background-color:#000;background-size:contain;content:"";display:inline-block;height:calc(var(--line-height) * 1em);height:var(--icon-size, calc(var(--line-height) * 1em));-webkit-mask-image:var(--hel-icon--check-circle);mask-image:var(--hel-icon--check-circle);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);-webkit-mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));vertical-align:bottom;width:calc(var(--line-height) * 1em);width:var(--icon-size, calc(var(--line-height) * 1em));background-color:var(--color-white);content:"";margin-right:var(--spacing-2-xs)}.application-list__item--status--rejected,.application-list__item--status--deleted,.application-list__item--status--canceled,.application-list__item--status--cancelled{background:var(--color-alert)}.application-list__item--status--rejected::before,.application-list__item--status--deleted::before,.application-list__item--status--canceled::before,.application-list__item--status--cancelled::before{--icon-size: 1.5rem;background-color:#000;background-size:contain;content:"";display:inline-block;height:calc(var(--line-height) * 1em);height:var(--icon-size, calc(var(--line-height) * 1em));-webkit-mask-image:var(--hel-icon--alert-circle);mask-image:var(--hel-icon--alert-circle);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);-webkit-mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));vertical-align:bottom;width:calc(var(--line-height) * 1em);width:var(--icon-size, calc(var(--line-height) * 1em));background-color:var(--color-black);content:"";margin-right:var(--spacing-2-xs)}.application-list__item--status--error{background:var(--color-black-20);color:var(--color-black);text-transform:uppercase}.application-list__item--status--error .hel-icon{margin-right:var(--spacing-3-xs)}.application-list__count{font-size:1.5rem}.application-list__count-value{font-weight:bold}.application-list__information-row{align-items:flex-end;display:flex;flex-flow:row nowrap;justify-content:space-between;width:100%}@media(max-width: 35rem){.application-list__information-row{flex-flow:row wrap}}.application-list__information-row .grant-applications--select-wrapper select{max-width:100%;width:322px}.application-list__status__wrapper{background:var(--color-black-5)}.application-list__status__container{display:flex;flex-flow:row wrap;gap:var(--spacing-layout-m);justify-content:flex-start;padding-bottom:var(--spacing-m);padding-top:var(--spacing-m)}.application-list__status__label{font-weight:bold}.application-list__status__value{display:flex;flex-flow:row;justify-items:center;min-height:var(--spacing-xl)}.application-list__status__value>div{margin:auto}.application-list__search-row{align-items:flex-end;display:flex;flex-flow:row nowrap;gap:var(--spacing-s);justify-content:space-between;width:100%}@media(max-width: 35rem){.application-list__search-row{flex-flow:row wrap}}.application-list__search-row .hds-text-input{flex:1 100%;max-width:100%}.application-list__search-row .hds-text-input__input-wrapper{display:block}.application-list__search-row .hds-text-input__input-wrapper input{width:100%}.application-list__search-row button{white-space:nowrap}.application-list__pagination{--line-height: 1.5555555556;font-size:1.125rem;font-weight:400;line-height:var(--line-height);display:inline-flex;flex-wrap:wrap;font-weight:700;gap:var(--spacing-2-xs);justify-content:center;list-style:none;padding:0}.application-list__pagination li{margin-top:0}.application-list__pagination li.active a{text-decoration:underline}.application-list__pagination li.disabled a{cursor:default;text-decoration:none}.application-list__pagination li.disabled a:hover,.application-list__pagination li.disabled a:focus,.application-list__pagination li.disabled a:active{outline:none;text-decoration:none}.application-list__pagination li a{color:var(--color-black-90);display:block;height:var(--link-height);min-width:40px;padding-left:var(--spacing-3-xs);padding-right:var(--spacing-3-xs);text-decoration:none}.application-list__pagination li a:hover{text-decoration:underline}.application-list__pagination li a:focus,.application-list__pagination li a:active{outline:solid var(--color-coat-of-arms) 3px;outline-offset:1px}.grants-profile hr{border:1px solid var(--color-silver);margin:var(--spacing-layout-xs) 0}.grants-profile h3.info-grants{border-bottom:2px solid var(--color-silver);padding-bottom:var(--spacing-l)}.grants-profile--title{align-items:center;display:flex;flex-flow:row nowrap}.grants-profile--title .grants-profile--initials{border-radius:50%;display:none;font-size:var(--fontsize-body-xl);font-weight:bold;height:var(--spacing-4-xl);line-height:var(--spacing-4-xl);margin-right:var(--spacing-m);text-align:center;vertical-align:middle;width:var(--spacing-4-xl)}@media(min-width: 992px){.grants-profile--title .grants-profile--initials{display:block}}.grants-profile--title .grants-profile--initials:hover,.grants-profile--title .grants-profile--initials:active,.grants-profile--title .grants-profile--initials:focus{text-decoration:underline}.grants-profile--title .grants-profile--initials-colorscheme-2{background-color:var(--color-bus);color:var(--color-white)}.grants-profile--title .grants-profile--initials-colorscheme-1{background-color:var(--color-engel);color:var(--color-black)}.grants-profile--title .grants-profile--initials-colorscheme-0{background-color:var(--color-tram);color:var(--color-white)}.grants-profile--title h1{flex-grow:100}.grants-profile--basicinfo{--line-height: 1.5;background-color:var(--color-silver-light);border-bottom:8px solid var(--color-engel-dark);padding-bottom:var(--spacing-2-xs);padding-top:var(--spacing-l)}.grants-profile--basicinfo h3{font-size:var(--fontsize-heading-l);margin-top:0;padding-top:0}.grants-profile--extrainfo{padding-bottom:var(--spacing-l);padding-top:var(--spacing-l)}.grants-profile--extrainfo .hds-notification{margin-bottom:var(--spacing-xl)}.grants-profile--extrainfo fieldset.form-wrapper{background-color:var(--color-silver-light);border:0;padding:var(--spacing-l)}.grants-profile--extrainfo fieldset.inline-error-message{background-color:transparent;background-color:initial;padding:0 0 0 var(--spacing-2-xs)}.grants-profile--extrainfo fieldset.inline-error-message legend{display:none}.grants-profile--update-link{margin-bottom:var(--spacing-layout-2-xs);margin-top:var(--spacing-layout-xs)}.grants-profile--infotext{font-size:var(--fontsize-body-l);margin-bottom:var(--spacing-s)}.grants-profile--wrapper{display:flex;flex-wrap:wrap}.grants-profile--wrapper-item{margin-bottom:var(--spacing-layout-2-xs);width:100%}@media(min-width: 576px){.grants-profile--wrapper-item{flex:1;margin-bottom:0}}.grants-profile--wrapper-item:first-child{flex:auto;margin-bottom:var(--spacing-layout-2-xs);width:100%}.grants-profile .profile-add-more{margin-top:1em}[dir="ltr"] .grants-profile dd{margin-left:0}[dir="rtl"] .grants-profile dd{margin-right:0}.grants-profile--officials{margin-left:0;padding-left:0}.grants-profile--officials-item{border-left:4px var(--color-copper) solid;display:flex;flex-flow:row nowrap;justify-content:space-between;list-style:none;margin-bottom:var(--spacing-layout-s);margin-left:0;max-width:var(--webform-element-width--input-large);padding-left:var(--spacing-layout-xs);width:100%}.grants-profile--officials-item--position{font-size:var(--fontsize-heading-xs);font-weight:bold;margin-bottom:var(--spacing-layout-2-xs);margin-top:0;padding-top:0}.grants-profile--officials-edit-wrapper{text-align:right}.grants-profile--officials-edit-wrapper a{display:inline-block}.grants-profile .hel-icon--check-circle-fill{color:var(--color-success);vertical-align:middle}.grants-profile-grants-profile .tabledrag-toggle-weight-wrapper,.grants-profile-grants-profile .field-multiple-drag{display:none}.grants-profile .hds-text-input__label{display:inline-block;margin-top:0}.page--oma-asiointi__private-person .grants-profile--basicinfo{border-bottom:8px solid var(--color-copper)}.page--oma-asiointi__private-person .grants-profile--wrapper{display:grid;grid-template-columns:1fr 1fr}.page--oma-asiointi__unregistered-community .grants-profile--wrapper{display:grid;grid-template-columns:1fr 1fr}.hds-link .hel-icon{margin-right:var(--spacing-2-xs);vertical-align:bottom}.hds-link span.link-label{font-weight:bold;margin-right:var(--spacing-m)}.bold-link{font-weight:bold}div.applicant-info--from-prh,div.applicant-info--from-grants{display:grid;grid-template-columns:1fr}@media(min-width: 576px){div.applicant-info--from-prh,div.applicant-info--from-grants{grid-template-columns:1fr 1fr}}@media(min-width: 768px){div.applicant-info--from-prh,div.applicant-info--from-grants{grid-template-columns:1fr 1fr 1fr}}div.applicant-info--from-prh .form-required::after,div.applicant-info--from-grants .form-required::after{content:none}div.applicant-info--from-prh{border-bottom:2px solid var(--color-silver);margin-bottom:var(--spacing-layout-xs);padding-bottom:var(--spacing-layout-2-xs)}div.grants-handler--prefilled-field .field-prefix,.grants-profile-prh-info .field-prefix{display:block;position:absolute;right:var(--spacing-layout-s);top:0}div.grants-handler--prefilled-field .hds-text-input__input-wrapper,div.grants-handler--prefilled-field .description,.grants-profile-prh-info .hds-text-input__input-wrapper,.grants-profile-prh-info .description{display:inline-block;white-space:normal}div.grants-handler--prefilled-field .hel-icon--check-circle-fill,.grants-profile-prh-info .hel-icon--check-circle-fill{color:var(--color-success);vertical-align:middle}div.grants-handler--prefilled-field .hds-text-input__input,div.grants-handler--prefilled-field .webform-element-description,.grants-profile-prh-info .hds-text-input__input,.grants-profile-prh-info .webform-element-description{color:var(--color-black);display:block;font-size:var(--fontsize-body-m);line-height:var(--spacing-m);position:relative}div.grants-handler--prefilled-field .hds-text-input__label,.grants-profile-prh-info .hds-text-input__label{margin-bottom:0}.grants-profile--imported-section .webform-section-flex-wrapper{background-color:var(--color-silver-light);border-bottom:8px solid var(--color-engel-dark);display:block;padding-bottom:var(--spacing-2-xs);padding-left:var(--spacing-l);padding-right:var(--spacing-l);padding-top:var(--spacing-l);width:100%}.grants-profile--imported-section .webform-section-flex-wrapper h3.webform-section-title{font-size:var(--fontsize-heading-l);font-weight:400;margin-top:0;max-width:100%;padding-top:0;width:100%}.grants-profile--imported-section .webform-section-flex-wrapper .webform-section-wrapper{padding:0}.grants-profile--imported-section .webform-section-flex-wrapper .hds-text-input{margin-bottom:0}.grants-profile--imported-section .webform-section-flex-wrapper #edit-grants-profile-items-container{display:flex;flex-flow:row wrap;justify-content:space-between;margin-bottom:var(--spacing-layout-xs);margin-top:var(--spacing-layout-xs);width:100%}.grants-profile--imported-section .webform-section-flex-wrapper #edit-grants-profile-items-container>div{margin:0 var(--spacing-layout-xs) 0 0;min-width:160px}.grants-profile--imported-section .webform-section-flex-wrapper #edit-grants-profile-items-container .hds-text-input__input-wrapper{display:none}.grants-profile--imported-section .webform-section-flex-wrapper #edit-grants-profile-items-container label{font-size:var(--fontsize-body-m);font-weight:bold;margin:0}.grants-profile--imported-section .webform-section-flex-wrapper .form-item-prh-markup{border-bottom:2px solid var(--color-silver);padding-bottom:var(--spacing-layout-xs);padding-top:var(--spacing-layout-xs)}.grants-profile__local-tasks__wrapper{margin-bottom:0}.openid-connect-login-form.openid-connect-login-form{border-bottom:0;margin-bottom:0;padding-bottom:0}.grants-profile--links{display:flex;justify-content:space-between}.company-delete-confirm-form .form-actions{margin-top:var(--spacing-layout-xs)}.company-delete-confirm-form .form-submit{margin-right:var(--spacing-2-xs)}.page--oma-asiointi .main-content{margin-top:0}.page--oma-asiointi .main-content h2{margin-top:var(--spacing-m)}.hero--oma-asiointi{margin-bottom:var(--spacing-l)}.hero--oma-asiointi .container{padding-top:var(--spacing-layout-m)}.hero--oma-asiointi .hero__text-content{align-items:center;display:flex}.hero--oma-asiointi .hero__title{margin-left:0}@media(min-width: 576px){.hero--oma-asiointi .hero__title{margin-left:40px}}.hero--oma-asiointi .hel-icon{display:none}@media(min-width: 576px){.hero--oma-asiointi .hel-icon{--icon-size: 48px;display:block;flex-shrink:0}}#oma-asiointi__sent{background:var(--color-silver-light)}#oma-asiointi__sent .application-list__item{background:var(--color-white)}.oma-asiointi-block{background-color:var(--color-silver-light);padding-bottom:var(--spacing-l);padding-top:var(--spacing-l)}.oma-asiointi-block h2{margin-bottom:var(--spacing-s);margin-top:0}.oma-asiointi-block h3{font-size:var(--fontsize-heading-m);font-weight:500}.oma-asiointi-block .header{border-bottom:1px solid var(--color-silver-dark);display:flex;justify-content:space-between;padding-bottom:var(--spacing-xs)}.oma-asiointi-block .header .user,.oma-asiointi-block .header .link{font-weight:700}.oma-asiointi-block .header .link .hel-icon{vertical-align:text-top}.oma-asiointi-block--link{display:block;position:relative;text-decoration:none}.oma-asiointi-block--link::after{--icon-size: 1.5rem;background-color:#000;background-size:contain;content:"";display:inline-block;height:calc(var(--line-height) * 1em);height:var(--icon-size, calc(var(--line-height) * 1em));-webkit-mask-image:var(--hel-icon--arrow-right);mask-image:var(--hel-icon--arrow-right);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);-webkit-mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));vertical-align:bottom;width:calc(var(--line-height) * 1em);width:var(--icon-size, calc(var(--line-height) * 1em));transition:transform .2s linear;bottom:var(--spacing-m);content:"";display:block;flex-shrink:0;margin-left:-4px;margin-top:var(--spacing-2-xs);position:absolute;right:var(--spacing-m)}@media(prefers-reduced-motion){.oma-asiointi-block--link::after{transition:none}}@media(min-width: 576px){.oma-asiointi-block--link::after{--icon-size: 3rem;margin-left:-8px;margin-top:var(--spacing-s)}}.oma-asiointi-block--link:focus::after,.oma-asiointi-block--link:hover::after{transform:translateX(var(--spacing-2-xs))}@media(prefers-reduced-motion){.oma-asiointi-block--link:focus::after,.oma-asiointi-block--link:hover::after{transform:none}}.oma-asiointi-block .new-message{background-color:var(--color-alert);display:inline-block;font-weight:500;padding:var(--spacing-2-xs);text-transform:uppercase}.oma-asiointi-block .new-messages-length{background-color:var(--color-black-20);border-radius:50%;display:inline-block;font-size:var(--fontsize-heading-s);height:30px;line-height:30px;margin-left:var(--spacing-m);position:relative;text-align:center;width:30px}.oma-asiointi-block .new-messages-length.has-new-messages{background-color:var(--color-alert)}@media(min-width: 768px){.oma-asiointi-block .content{display:grid;grid-gap:var(--spacing-s);grid-template-columns:1fr 1fr}}.oma-asiointi-block .submission,.oma-asiointi-block .message{background-color:var(--color-white);margin-bottom:var(--spacing-s);margin-top:var(--spacing-s);padding:var(--spacing-m)}.oma-asiointi-block .submission .submission-title,.oma-asiointi-block .submission .message-title,.oma-asiointi-block .message .submission-title,.oma-asiointi-block .message .message-title{font-size:var(--fontsize-heading-s);font-weight:500;margin-bottom:var(--spacing-2-xs);margin-top:0;text-decoration:underline}.oma-asiointi-block .submission .message-title,.oma-asiointi-block .message .message-title{margin-top:var(--spacing-s)}.oma-asiointi-block .submission:hover .submission-title,.oma-asiointi-block .submission:hover .message-title,.oma-asiointi-block .message:hover .submission-title,.oma-asiointi-block .message:hover .message-title{text-decoration:none}.oma-asiointi-block .message{padding-right:var(--spacing-5-xl)}.oma-asiointi{margin-top:var(--spacing-l)}.oma-asiointi ul{padding:0}.oma-asiointi__list{padding-bottom:var(--spacing-l);padding-top:var(--spacing-l)}.oma-asiointi__list h2{margin-bottom:var(--spacing-m);margin-top:0}.oma-asiointi #oma-asiointi__sent{padding-top:var(--spacing-s)}.oma-asiointi .oma-asiointi-infoboxes-container .oma-asiointi-infoboxes{gap:var(--spacing-3-xl);margin:var(--spacing-2-xl) 0}@media(min-width: 768px){.oma-asiointi .oma-asiointi-infoboxes-container .oma-asiointi-infoboxes{display:flex}}.oma-asiointi .oma-asiointi-infoboxes-container .oma-asiointi-infobox{background-color:var(--color-info-light);flex:1;margin-bottom:var(--spacing-layout-2-xs);padding:var(--spacing-l)}@media(min-width: 768px){.oma-asiointi .oma-asiointi-infoboxes-container .oma-asiointi-infobox{margin-bottom:0}}.oma-asiointi .oma-asiointi-infoboxes-container .oma-asiointi-infobox:last-of-type{margin-bottom:0}.oma-asiointi .oma-asiointi-infoboxes-container .oma-asiointi-infobox--link{display:flex;margin-top:var(--spacing-layout-2-xs)}.oma-asiointi .oma-asiointi-infoboxes-container .oma-asiointi-infobox--link a{font-size:1.25rem}.oma-asiointi .oma-asiointi-infoboxes-container .oma-asiointi-infobox h3{margin-top:0}.asiointirooli-block{background-color:var(--color-black);color:var(--color-white);font-weight:500;margin-bottom:16px;padding:var(--spacing-2-xs)}.asiointirooli-block a{color:var(--color-white)}.asiointirooli-block .link--switch-role,.asiointirooli-block .link--stop-mandate{color:var(--color-white);margin-left:var(--spacing-layout-s)}@media(max-width: 768px){.asiointirooli-block .link--switch-role,.asiointirooli-block .link--stop-mandate{display:block;margin-left:0}}.asiointirooli-block .link--stop-mandate::before{--icon-size: 1.5rem;background-color:#000;background-size:contain;content:"";display:inline-block;height:calc(var(--line-height) * 1em);height:var(--icon-size, calc(var(--line-height) * 1em));-webkit-mask-image:var(--hel-icon--cross-circle-fill);mask-image:var(--hel-icon--cross-circle-fill);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);-webkit-mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));vertical-align:bottom;width:calc(var(--line-height) * 1em);width:var(--icon-size, calc(var(--line-height) * 1em));background-color:var(--color-white);content:"";display:inline-block;margin-right:10px;-webkit-mask-image:url('data:image/svg+xml, ');mask-image:url('data:image/svg+xml, ')}.asiointirooli-block .link--switch-role::before{--icon-size: 1.5rem;background-color:#000;background-size:contain;content:"";display:inline-block;height:calc(var(--line-height) * 1em);height:var(--icon-size, calc(var(--line-height) * 1em));-webkit-mask-image:var(--hel-icon--swap-user);mask-image:var(--hel-icon--swap-user);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);mask-size:calc(var(--line-height) * 1em) calc(var(--line-height) * 1em);-webkit-mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));mask-size:var(--icon-size, calc(var(--line-height) * 1em)) var(--icon-size, calc(var(--line-height) * 1em));vertical-align:bottom;width:calc(var(--line-height) * 1em);width:var(--icon-size, calc(var(--line-height) * 1em));background-color:var(--color-white);content:"";display:inline-block;margin-right:10px;-webkit-mask-image:url('data:image/svg+xml, ');mask-image:url('data:image/svg+xml, ')}#grants-mandate-type .form-actions{display:flex;flex-direction:column;flex-wrap:wrap;justify-content:flex-start;width:100%}@media(min-width: 576px){#grants-mandate-type .form-actions{flex-direction:row;margin-left:calc(-1*var(--spacing-m));width:calc(100% + var(--spacing-m))}}#grants-mandate-type .form-actions .hds-card--applicant-role{margin-bottom:var(--spacing-l);position:relative;width:100%}@media(min-width: 576px){#grants-mandate-type .form-actions .hds-card--applicant-role{margin-left:var(--spacing-m);width:calc(50% - var(--spacing-m))}}@media(min-width: 992px){#grants-mandate-type .form-actions .hds-card--applicant-role{width:calc(33.3333333333% - var(--spacing-m))}}#grants-mandate-type .form-actions .hds-card--applicant-role .hds-card__body{align-content:space-between;height:100%}#grants-mandate-type .form-actions .hds-card--applicant-role .hds-card--mandate-card-content{display:grid;gap:var(--spacing-m);grid-gap:var(--spacing-m)}
diff --git a/public/themes/custom/hdbt_subtheme/dist/js/dialog.min.js b/public/themes/custom/hdbt_subtheme/dist/js/dialog.min.js
deleted file mode 100644
index 807aa16578..0000000000
--- a/public/themes/custom/hdbt_subtheme/dist/js/dialog.min.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(){var t;!function(t,Drupal,drupalSettings){drupalSettings.dialog={autoOpen:!0,dialogClass:"",buttonClass:"button",buttonPrimaryClass:"button--primary",close:function(t){Drupal.dialog(t.target).close(),Drupal.detachBehaviors(t.target,null,"unload")}},Drupal.dialog=function(i,e){const s=t(i),o={open:!1,returnValue:undefined};function a(i){i=t.extend({},drupalSettings.dialog,e,i),t(window).trigger("dialog:beforecreate",[o,s,i]),s.dialog(i),o.open=!0,t(window).trigger("dialog:aftercreate",[o,s,i])}return o.show=function(){a({modal:!1})},o.showModal=function(){a({modal:!0})},o.close=function(i){t(window).trigger("dialog:beforeclose",[o,s]),s.dialog("close"),o.returnValue=i,o.open=!1,t(window).trigger("dialog:afterclose",[o,s])},o}}(jQuery,Drupal,drupalSettings),(t=jQuery).widget("ui.dialog",{version:"1.13.2",options:{appendTo:"body",autoOpen:!0,buttons:[],classes:{"ui-dialog":"ui-corner-all","ui-dialog-titlebar":"ui-corner-all"},closeOnEscape:!0,closeText:"Close",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using(i){const e=t(this).css(i).offset().top;e<0&&t(this).css("top",i.top-e)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),null==this.options.title&&null!=this.originalTitle&&(this.options.title=this.originalTitle),this.options.disabled&&(this.options.disabled=!1),this._createWrapper(),this.element.show().removeAttr("title").appendTo(this.uiDialog),this._addClass("ui-dialog-content","ui-widget-content"),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&t.fn.draggable&&this._makeDraggable(),this.options.resizable&&t.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init(){this.options.autoOpen&&this.open()},_appendTo(){const i=this.options.appendTo;return i&&(i.jquery||i.nodeType)?t(i):this.document.find(i||"body").eq(0)},_destroy(){let t;const{originalPosition:i}=this;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().css(this.originalCss).detach(),this.uiDialog.remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),t=i.parent.children().eq(i.index),t.length&&t[0]!==this.element[0]?t.before(this.element):i.parent.append(this.element)},widget(){return this.uiDialog},disable:t.noop,enable:t.noop,close(i){const e=this;this._isOpen&&!1!==this._trigger("beforeClose",i)&&(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),this.opener.filter(":focusable").trigger("focus").length||t.ui.safeBlur(t.ui.safeActiveElement(this.document[0])),this._hide(this.uiDialog,this.options.hide,(function(){e._trigger("close",i)})))},isOpen(){return this._isOpen},moveToTop(){this._moveToTop()},_moveToTop(i,e){let s=!1;const o=this.uiDialog.siblings(".ui-front:visible").map((function(){return+t(this).css("z-index")})).get(),a=Math.max.apply(null,o);return a>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",a+1),s=!0),s&&!e&&this._trigger("focus",i),s},open(){const i=this;this._isOpen?this._moveToTop()&&this._focusTabbable():(this._isOpen=!0,this.opener=t(t.ui.safeActiveElement(this.document[0])),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,(function(){i._focusTabbable(),i._trigger("focus")})),this._makeFocusTarget(),this._trigger("open"))},_focusTabbable(){let t=this._focusedElement;t||(t=this.element.find("[autofocus]")),t.length||(t=this.element.find(":tabbable")),t.length||(t=this.uiDialogButtonPane.find(":tabbable")),t.length||(t=this.uiDialogTitlebarClose.filter(":tabbable")),t.length||(t=this.uiDialog),t.eq(0).trigger("focus")},_restoreTabbableFocus(){const i=t.ui.safeActiveElement(this.document[0]);this.uiDialog[0]===i||t.contains(this.uiDialog[0],i)||this._focusTabbable()},_keepFocus(t){t.preventDefault(),this._restoreTabbableFocus(),this._delay(this._restoreTabbableFocus)},_createWrapper(){this.uiDialog=t("